diff --git a/.gitignore b/.gitignore index 398bd275..974c8f6e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ build build-*/ test-results*/ .vs +.vscode .clangd test settings.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ddb8902..627d0dcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ ## Changelog +### CUDA 13.4 +* Removed obsolete samples `simpleHyperQ`, `simpleOccupancy`, `mergeSort`, `simpleTemplates`, `template`, `p2pBandwidthLatencyTest`. +* Removed redundant `_nvrtc` sample variants (`clock_nvrtc`, `matrixMul_nvrtc`, `simpleAssert_nvrtc`, `simpleAtomicIntrinsics_nvrtc`, `inlinePTX_nvrtc`, `binomialOptions_nvrtc`, `BlackScholes_nvrtc`, `quasirandomGenerator_nvrtc`); `vectorAdd_nvrtc` remains as the canonical NVRTC example. +* Rewrote `cpp/0_Introduction/simpleMultiGPU` to replace the hand-written reduction with `cub::BlockReduce` and the SDK stopwatch timer with CUDA events, removed helper header dependencies and merged `simpleMultiGPU.h` into the `.cu` for a single-file sample, modernized the code to C++17 (`std::vector`, `constexpr`), and added a minimum two-GPU check; updated README accordingly. +* Modernized `cpp/3_CUDA_Features/simpleCudaGraphs`: dropped `helper_cuda.h`/`cooperative_groups.h`; used `cub::BlockReduce`; migrated to the unified `cudaGraphAddNode` API; split into `simpleCudaGraphs_explicit` and `simpleCudaGraphs_capture` sharing `simpleCudaGraphs.cuh`; added a graph-reuse demo (fresh input each launch); rewrote README. +* Rewrote `cpp/0_Introduction/simpleAtomicIntrinsics` to show race conditions by comparing non-atomic vs atomic kernels (`atomicAdd`, `atomicMax`, `atomicCAS`), removed helper header dependencies; updated README accordingly. +* Reorganized CMake build system for all C++ samples: centralized GPU architecture detection (`DetectCudaArch.cmake`) and common build setup (`CudaSampleCommon.cmake`) into shared modules. Samples with restricted arch support now declare a `SAMPLE_DISALLOW_ARCHS` list instead of hardcoding their own arch list, and are gracefully skipped at configure time when the requested arch is unsupported. +* Added `sm_103` to the default set of GPU architectures the C++ samples build for. +* Added `sm_107` to the default set of GPU architectures the C++ samples build for. +* Rewrote `cpp/0_Introduction/simpleCallback` to replace the deprecated `cudaStreamAddCallback` with `cudaLaunchHostFunc`, replaced the `multithreading.h/.cpp` helpers with standard C++ `std::thread`, and simplified to a single-GPU, single-workload C++17 example; updated README accordingly. +* Rewrote `cpp/0_Introduction/simpleStreams` to simplify code and remove helper header dependencies; updated README accordingly. +* Added `python/2_CoreConcepts/persistentProgramCache` to demonstrate persisting and reusing compiled CUDA artifacts with `cuda.core` and `FileStreamProgramCache`. +* Updated `cpp/0_Introduction/clock` to replace the manual shared-memory tree reduction with `cub::BlockReduce` min-reduction, removed dependency on `helper_cuda.h` and `helper_functions.h`, and updated README. +* Rewrote `cpp/0_Introduction/vectorAdd` to match the corresponding example in the CUDA Programming Guide. The sample now uses Unified Memory (`cudaMallocManaged`) instead of explicit `cudaMalloc`/`cudaMemcpy`. +* Restructured the `cpp/0_Introduction/simplePrintf` README with newer style and updated sample code by removing helper dependency. +* Updated the `cpp/0_Introduction/simpleAssert` README to newer style, simplified code for better understanding. +* Added `cpp/3_CUDA_Features/dmabufInterop` - a Linux-only CUDA dma-buf interoperability sample demonstrating three scenarios in a single binary: (1) same-process round-trip export/import, (2) cross-process IPC via `fork()` + `SCM_RIGHTS`, and (3) cross-GPU sharing across processes (self-skips on systems without a qualifying GPU pair). +* Removed the unnecessary `set(CMAKE_POSITION_INDEPENDENT_CODE ON)` from the C++ sample `CMakeLists.txt` files. +* Removed `CUDA_SEPARABLE_COMPILATION ON` from C++ samples that don't require relocatable device code (kept for the CDP samples). +* Removed 26 math library samples from `cpp/4_CUDA_Libraries/` that are maintained in the [CUDA Library Samples](https://github.com/NVIDIA/CUDALibrarySamples) repository: cuBLAS (`simpleCUBLAS`, `simpleCUBLAS_LU`, `simpleCUBLASXT`, `matrixMulCUBLAS`, `batchCUBLAS`), cuFFT (`simpleCUFFT`, `simpleCUFFT_MGPU`, `simpleCUFFT_2d_MGPU`, `simpleCUFFT_callback`), cuRAND (`MersenneTwisterGP11213`), cuSOLVER (`cuSolverDn_LinearSolver`, `cuSolverRf`, `cuSolverSp_LinearSolver`, `cuSolverSp_LowlevelCholesky`, `cuSolverSp_LowlevelQR`), cuSPARSE (`conjugateGradient`, `conjugateGradientPrecond`, `conjugateGradientUM`), NPP (`boxFilterNPP`, `cannyEdgeDetectorNPP`, `FilterBorderControlNPP`, `freeImageInteropNPP`, `histEqualizationNPP`, `watershedSegmentationNPP`), and nvJPEG (`nvJPEG`, `nvJPEG_encoder`). +* Lifted the LLVM 14 upper bound on `cpp/7_libNVVM/cuda-c-linking`, which now builds against LLVM 15 and newer. +* Added samples for locality domains in `cpp/3_CUDA_FEATURES/localityDomains` and `cpp/3_CUDA_FEATURES/localityDomainsDrv`. +* Added Windows on Arm support: `cpp/5_Domain_Specific/marchingCubes` now detects the `glew32` GLEW library name used on Windows on Arm, and `cpp/7_libNVVM` searches the `nvvm/lib/arm64` directory for libNVVM. + ### CUDA 13.3 * Added **CUDA Tile C++** samples under `cpp/9_CUDA_Tile`. * Added a set of **CCCL 3.3 feature samples** under `cpp/4_CUDA_Libraries/`, each built against CCCL fetched via CPM (pinned to v3.3.3, with an optional `CCCL_SOURCE_DIR` override): diff --git a/CMakeLists.txt b/CMakeLists.txt index bf040754..1fafbd80 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,33 +1,31 @@ cmake_minimum_required(VERSION 3.20) +include(cmake/CudaSampleArchs.cmake) + +# Default to all supported architectures if the user does not specify. +# Gated on CUDA_SAMPLES_ARCHS_DEFAULTED rather than CMAKE_CUDA_ARCHITECTURES so this +# decision is made once (on the first configure) and does not flip on reconfigure, +# when CMAKE_CUDA_ARCHITECTURES is already defined from our own cached default. +# The decision is revisited when the list itself moves, which the user can do with -D +# on any later configure of the same build directory. Keep the list each configure +# ends up with, so that such a change is told apart from our own cached default. +if(NOT DEFINED CUDA_SAMPLES_ARCHS_DEFAULTED) + if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES) + list(JOIN CUDA_SAMPLES_MASTER_ARCHS ";" _default_archs) + set(CMAKE_CUDA_ARCHITECTURES "${_default_archs}" CACHE STRING "CUDA architectures") + unset(_default_archs) + set(CUDA_SAMPLES_ARCHS_DEFAULTED TRUE CACHE INTERNAL "") + else() + set(CUDA_SAMPLES_ARCHS_DEFAULTED FALSE CACHE INTERNAL "") + endif() +elseif(NOT "${CMAKE_CUDA_ARCHITECTURES}" STREQUAL "${CUDA_SAMPLES_LAST_CONFIGURED_ARCHS}") + set(CUDA_SAMPLES_ARCHS_DEFAULTED FALSE CACHE INTERNAL "") +endif() + +set(CUDA_SAMPLES_LAST_CONFIGURED_ARCHS "${CMAKE_CUDA_ARCHITECTURES}" CACHE INTERNAL "") + project(cuda-samples LANGUAGES C CXX CUDA) -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -set(CMAKE_CUDA_STANDARD 17) -set(CMAKE_CUDA_STANDARD_REQUIRED ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --extended-lambda") - -# Add MSVC-specific flags for standard-conforming preprocessor (required for CCCL) -if(MSVC) - add_compile_options($<$:-Xcompiler=/Zc:preprocessor>) -endif() - -# Include installation configuration before processing samples -include(cmake/InstallSamples.cmake) +include(cmake/CudaSampleCommon.cmake) add_subdirectory(cpp) diff --git a/Common/UtilNPP/Exceptions.h b/Common/UtilNPP/Exceptions.h deleted file mode 100644 index e0e542e0..00000000 --- a/Common/UtilNPP/Exceptions.h +++ /dev/null @@ -1,197 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_EXCEPTIONS_H -#define NV_UTIL_NPP_EXCEPTIONS_H - - -#include -#include -#include - -/// All npp related C++ classes are put into the npp namespace. -namespace npp -{ - - /// Exception base class. - /// This exception base class will be used for everything C++ throught - /// the NPP project. - /// The exception contains a string message, as well as data fields for a string - /// containing the name of the file as well as the line number where the exception was thrown. - /// The easiest way of throwing exceptions and providing filename and line number is - /// to use one of the ASSERT macros defined for that purpose. - class Exception - { - public: - /// Constructor. - /// \param rMessage A message with information as to why the exception was thrown. - /// \param rFileName The name of the file where the exception was thrown. - /// \param nLineNumber Line number in the file where the exception was thrown. - explicit - Exception(const std::string &rMessage = "", const std::string &rFileName = "", unsigned int nLineNumber = 0) - : sMessage_(rMessage), sFileName_(rFileName), nLineNumber_(nLineNumber) - { }; - - Exception(const Exception &rException) - : sMessage_(rException.sMessage_), sFileName_(rException.sFileName_), nLineNumber_(rException.nLineNumber_) - { }; - - virtual - ~Exception() - { }; - - /// Get the exception's message. - const - std::string & - message() - const - { - return sMessage_; - } - - /// Get the exception's file info. - const - std::string & - fileName() - const - { - return sFileName_; - } - - /// Get the exceptions's line info. - unsigned int - lineNumber() - const - { - return nLineNumber_; - } - - - /// Create a clone of this exception. - /// This creates a new Exception object on the heap. It is - /// the responsibility of the user of this function to free this memory - /// (delete x). - virtual - Exception * - clone() - const - { - return new Exception(*this); - } - - /// Create a single string with all the exceptions information. - /// The virtual toString() method is used by the operator<<() - /// so that all exceptions derived from this base-class can print - /// their full information correctly even if a reference to their - /// exact type is not had at the time of printing (i.e. the basic - /// operator<<() is used). - virtual - std::string - toString() - const - { - std::ostringstream oOutputString; - oOutputString << fileName() << ":" << lineNumber() << ": " << message(); - return oOutputString.str(); - } - - private: - std::string sMessage_; ///< Message regarding the cause of the exception. - std::string sFileName_; ///< Name of the file where the exception was thrown. - unsigned int nLineNumber_; ///< Line number in the file where the exception was thrown - }; - - /// Output stream inserter for Exception. - /// \param rOutputStream The stream the exception information is written to. - /// \param rException The exception that's being written. - /// \return Reference to the output stream being used. - std::ostream & - operator << (std::ostream &rOutputStream, const Exception &rException) - { - rOutputStream << rException.toString(); - return rOutputStream; - } - - /// Basic assert macro. - /// This macro should be used to enforce any kind of pre or post conditions. - /// Unlike the C-runtime assert macro, this macro does not abort execution, but throws - /// a C++ exception. The exception is automatically filled with information about the failing - /// condition, the filename and line number where the exception was thrown. - /// \note The macro is written in such a way that omitting a semicolon after its usage - /// causes a compiler error. The correct way to invoke this macro is: - /// NPP_ASSERT(n < MAX); -#define NPP_ASSERT(C) do {if (!(C)) throw npp::Exception(#C " assertion faild!", __FILE__, __LINE__);} while(false) - - // ASSERT macro. - // Same functionality as the basic assert macro with the added ability to pass - // a message M. M should be a string literal. - // Note: Never use code inside ASSERT() that causes a side-effect ASSERT macros may get compiled - // out in release mode. -#define NPP_ASSERT_MSG(C, M) do {if (!(C)) throw npp::Exception(#C " assertion faild! Message: " M, __FILE__, __LINE__);} while(false) - -#ifdef _DEBUG - /// Basic debug assert macro. - /// This macro is identical in every respect to NPP_ASSERT(C) but it does get compiled to a - /// no-op in release builds. It is therefor of utmost importance to not put statements into - /// this macro that cause side effects required for correct program execution. -#define NPP_DEBUG_ASSERT(C) do {if (!(C)) throw npp::Exception(#C " debug assertion faild!", __FILE__, __LINE__);} while(false) -#else -#define NPP_DEBUG_ASSERT(C) -#endif - - /// ASSERT for null-pointer test. - /// It is safe to put code with side effects into this macro. Also: This macro never - /// gets compiled to a no-op because resource allocation may fail based on external causes not under - /// control of a software developer. -#define NPP_ASSERT_NOT_NULL(P) do {if ((P) == 0) throw npp::Exception(#P " not null assertion faild!", __FILE__, __LINE__);} while(false) - - /// Macro for flagging methods as not implemented. - /// The macro throws an exception with a message that an implementation was missing -#define NPP_NOT_IMPLEMENTED() do {throw npp::Exception("Implementation missing!", __FILE__, __LINE__);} while(false) - - /// Macro for checking error return code of CUDA (runtime) calls. - /// This macro never gets disabled. -#define NPP_CHECK_CUDA(S) do {cudaError_t eCUDAResult; \ - eCUDAResult = S; \ - if (eCUDAResult != cudaSuccess) std::cout << "NPP_CHECK_CUDA - eCUDAResult = " << eCUDAResult << std::endl; \ - NPP_ASSERT(eCUDAResult == cudaSuccess);} while (false) - - /// Macro for checking error return code for NPP calls. -#define NPP_CHECK_NPP(S) do {NppStatus eStatusNPP; \ - eStatusNPP = S; \ - if (eStatusNPP != NPP_SUCCESS) std::cout << "NPP_CHECK_NPP - eStatusNPP = " << _cudaGetErrorEnum(eStatusNPP) << "("<< eStatusNPP << ")" << std::endl; \ - NPP_ASSERT(eStatusNPP == NPP_SUCCESS);} while (false) - - /// Macro for checking error return codes from cuFFT calls. -#define NPP_CHECK_CUFFT(S) do {cufftResult eCUFFTResult; \ - eCUFFTResult = S; \ - if (eCUFFTResult != NPP_SUCCESS) std::cout << "NPP_CHECK_CUFFT - eCUFFTResult = " << eCUFFTResult << std::endl; \ - NPP_ASSERT(eCUFFTResult == CUFFT_SUCCESS);} while (false) - -} // npp namespace - -#endif // NV_UTIL_NPP_EXCEPTIONS_H diff --git a/Common/UtilNPP/Image.h b/Common/UtilNPP/Image.h deleted file mode 100644 index a80630f7..00000000 --- a/Common/UtilNPP/Image.h +++ /dev/null @@ -1,155 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_IMAGE_H -#define NV_UTIL_NPP_IMAGE_H - -#include - -namespace npp -{ - - class Image - { - public: - struct Size - { - unsigned int nWidth; - unsigned int nHeight; - - Size() : nWidth(0), nHeight(0) - { }; - - Size(unsigned int nWidthNew, unsigned nHeightNew) : nWidth(nWidthNew), nHeight(nHeightNew) - { }; - - Size(const Size &rSize) : nWidth(rSize.nWidth), nHeight(rSize.nHeight) - { }; - - Size & - operator= (const Size &rSize) - { - if (&rSize == this) - { - return *this; - } - - nWidth = rSize.nWidth; - nHeight = rSize.nHeight; - - return *this; - } - - void - swap(Size &rSize) - { - unsigned int nTemp; - nTemp = nWidth; - nWidth = rSize.nWidth; - rSize.nWidth = nTemp; - - nTemp = nHeight; - nHeight = rSize.nHeight; - rSize.nHeight = nTemp; - } - }; - - Image() - { }; - - Image(unsigned int nWidth, unsigned int nHeight) : oSize_(nWidth, nHeight) - { }; - - Image(const Image::Size &rSize) : oSize_(rSize) - { }; - - Image(const Image &rImage) : oSize_(rImage.oSize_) - { }; - - virtual - ~Image() - { }; - - Image & - operator= (const Image &rImage) - { - if (&rImage == this) - { - return *this; - } - - oSize_ = rImage.oSize_; - return *this; - }; - - unsigned int - width() - const - { - return oSize_.nWidth; - } - - unsigned int - height() - const - { - return oSize_.nHeight; - } - - Size - size() - const - { - return oSize_; - } - - void - swap(Image &rImage) - { - oSize_.swap(rImage.oSize_); - } - - private: - Size oSize_; - }; - - bool - operator== (const Image::Size &rFirst, const Image::Size &rSecond) - { - return rFirst.nWidth == rSecond.nWidth && rFirst.nHeight == rSecond.nHeight; - } - - bool - operator!= (const Image::Size &rFirst, const Image::Size &rSecond) - { - return rFirst.nWidth != rSecond.nWidth || rFirst.nHeight != rSecond.nHeight; - } - -} // npp namespace - - -#endif // NV_UTIL_NPP_IMAGE_H diff --git a/Common/UtilNPP/ImageAllocatorsCPU.h b/Common/UtilNPP/ImageAllocatorsCPU.h deleted file mode 100644 index b5e73bc0..00000000 --- a/Common/UtilNPP/ImageAllocatorsCPU.h +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_IMAGE_ALLOCATORS_CPU_H -#define NV_UTIL_NPP_IMAGE_ALLOCATORS_CPU_H - -#include "Exceptions.h" - -namespace npp -{ - - template - class ImageAllocatorCPU - { - public: - static - D * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch) - { - NPP_ASSERT(nWidth * nHeight > 0); - - D *pResult = new D[nWidth * N * nHeight]; - *pPitch = nWidth * sizeof(D) * N; - - return pResult; - }; - - static - void - Free2D(D *pPixels) - { - delete[] pPixels; - }; - - static - void - Copy2D(D *pDst, size_t nDstPitch, const D *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - const void *pSrcLine = pSrc; - void *pDstLine = pDst; - - for (size_t iLine = 0; iLine < nHeight; ++iLine) - { - // copy one line worth of data - memcpy(pDst, pSrc, nWidth * N * sizeof(D)); - // move data pointers to next line - pDst += nDstPitch; - pSrc += nSrcPitch; - } - }; - - }; - -} // npp namespace - -#endif // NV_UTIL_NPP_IMAGE_ALLOCATORS_CPU_H diff --git a/Common/UtilNPP/ImageAllocatorsNPP.h b/Common/UtilNPP/ImageAllocatorsNPP.h deleted file mode 100644 index 6483e769..00000000 --- a/Common/UtilNPP/ImageAllocatorsNPP.h +++ /dev/null @@ -1,1139 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_IMAGE_ALLOCATORS_NPP_H -#define NV_UTIL_NPP_IMAGE_ALLOCATORS_NPP_H - -#include "Exceptions.h" - -#include -#include - -namespace npp -{ - template - D * - MallocTightCUDA(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch) - { - D *pResult; - *pPitch = nWidth * sizeof(D) * N; - NPP_CHECK_CUDA(cudaMalloc(&pResult, *pPitch * nHeight)); - NPP_ASSERT_NOT_NULL(pResult); - - return pResult; - } - - - template - class ImageAllocator - { - }; - - template<> - class ImageAllocator - { - public: - static - Npp8u * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp8u *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_8u_C1(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp8u *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp8u), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp8u), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp8u), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp8u * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp8u *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_8u_C2(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp8u *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp8u), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp8u), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp8u), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp8u * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp8u *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_8u_C3(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp8u *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp8u), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp8u), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp8u), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp8u * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp8u *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_8u_C4(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp8u *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp8u), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp8u), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp8u *pDst, size_t nDstPitch, const Npp8u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp8u), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp16u * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp16u *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_16u_C1(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp16u *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp16u), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp16u), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp16u), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp16u * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp16u *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_16u_C2(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp16u *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp16u), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp16u), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp16u), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - - template<> - class ImageAllocator - { - public: - static - Npp16u * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp16u *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_16u_C3(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp16u *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp16u), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp16u), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp16u), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp16u * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp16u *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_16u_C4(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp16u *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp16u), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp16u), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp16u *pDst, size_t nDstPitch, const Npp16u *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp16u), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp16s * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp16s *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_16s_C1(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp16s *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp16s *pDst, size_t nDstPitch, const Npp16s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp16s), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp16s *pDst, size_t nDstPitch, const Npp16s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp16s), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp16s *pDst, size_t nDstPitch, const Npp16s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp16s), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp16s * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp16s *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_16s_C2(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp16s *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp16s *pDst, size_t nDstPitch, const Npp16s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp16s), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp16s *pDst, size_t nDstPitch, const Npp16s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp16s), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp16s *pDst, size_t nDstPitch, const Npp16s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp16s), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp16s * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp16s *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_16s_C4(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp16s *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp16s *pDst, size_t nDstPitch, const Npp16s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp16s), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp16s *pDst, size_t nDstPitch, const Npp16s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp16s), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp16s *pDst, size_t nDstPitch, const Npp16s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp16s), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp32s * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp32s *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_32s_C1(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp32s *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp32s *pDst, size_t nDstPitch, const Npp32s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp32s), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp32s *pDst, size_t nDstPitch, const Npp32s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp32s), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp32s *pDst, size_t nDstPitch, const Npp32s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp32s), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp32s * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp32s *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_32s_C3(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp32s *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp32s *pDst, size_t nDstPitch, const Npp32s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp32s), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp32s *pDst, size_t nDstPitch, const Npp32s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp32s), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp32s *pDst, size_t nDstPitch, const Npp32s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp32s), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp32s * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp32s *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_32s_C4(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp32s *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp32s *pDst, size_t nDstPitch, const Npp32s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp32s), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp32s *pDst, size_t nDstPitch, const Npp32s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp32s), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp32s *pDst, size_t nDstPitch, const Npp32s *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp32s), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp32f * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp32f *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_32f_C1(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp32f *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp32f), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp32f), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * sizeof(Npp32f), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp32f * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp32f *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_32f_C2(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp32f *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp32f), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp32f), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 2 * sizeof(Npp32f), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp32f * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp32f *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_32f_C3(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp32f *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp32f), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp32f), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 3 * sizeof(Npp32f), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class ImageAllocator - { - public: - static - Npp32f * - Malloc2D(unsigned int nWidth, unsigned int nHeight, unsigned int *pPitch, bool bTight = false) - { - NPP_ASSERT(nWidth * nHeight > 0); - - Npp32f *pResult = 0; - - if (bTight) - { - pResult = MallocTightCUDA(nWidth, nHeight, pPitch); - } - else - { - pResult = nppiMalloc_32f_C4(nWidth, nHeight, reinterpret_cast(pPitch)); - NPP_ASSERT(pResult != 0); - } - - return pResult; - }; - - static - void - Free2D(Npp32f *pPixels) - { - nppiFree(pPixels); - }; - - static - void - Copy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp32f), nHeight, cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp32f), nHeight, cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy2D(Npp32f *pDst, size_t nDstPitch, const Npp32f *pSrc, size_t nSrcPitch, size_t nWidth, size_t nHeight) - { - cudaError_t eResult; - eResult = cudaMemcpy2D(pDst, nDstPitch, pSrc, nSrcPitch, nWidth * 4 * sizeof(Npp32f), nHeight, cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - -} // npp namespace - -#endif // NV_UTIL_NPP_IMAGE_ALLOCATORS_NPP_H diff --git a/Common/UtilNPP/ImageIO.h b/Common/UtilNPP/ImageIO.h deleted file mode 100644 index 75e1e37c..00000000 --- a/Common/UtilNPP/ImageIO.h +++ /dev/null @@ -1,149 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_IMAGE_IO_H -#define NV_UTIL_NPP_IMAGE_IO_H - -#include "ImagesCPU.h" -#include "ImagesNPP.h" - -#include "FreeImage.h" -#include "Exceptions.h" - -#include -#include "string.h" - - -// Error handler for FreeImage library. -// In case this handler is invoked, it throws an NPP exception. -void -FreeImageErrorHandler(FREE_IMAGE_FORMAT oFif, const char *zMessage) -{ - throw npp::Exception(zMessage); -} - -namespace npp -{ - // Load a gray-scale image from disk. - void - loadImage(const std::string &rFileName, ImageCPU_8u_C1 &rImage) - { - // set your own FreeImage error handler - FreeImage_SetOutputMessage(FreeImageErrorHandler); - - FREE_IMAGE_FORMAT eFormat = FreeImage_GetFileType(rFileName.c_str()); - - // no signature? try to guess the file format from the file extension - if (eFormat == FIF_UNKNOWN) - { - eFormat = FreeImage_GetFIFFromFilename(rFileName.c_str()); - } - - NPP_ASSERT(eFormat != FIF_UNKNOWN); - // check that the plugin has reading capabilities ... - FIBITMAP *pBitmap; - - if (FreeImage_FIFSupportsReading(eFormat)) - { - pBitmap = FreeImage_Load(eFormat, rFileName.c_str()); - } - - NPP_ASSERT(pBitmap != 0); - // make sure this is an 8-bit single channel image - NPP_ASSERT(FreeImage_GetColorType(pBitmap) == FIC_MINISBLACK); - NPP_ASSERT(FreeImage_GetBPP(pBitmap) == 8); - - // create an ImageCPU to receive the loaded image data - ImageCPU_8u_C1 oImage(FreeImage_GetWidth(pBitmap), FreeImage_GetHeight(pBitmap)); - - // Copy the FreeImage data into the new ImageCPU - unsigned int nSrcPitch = FreeImage_GetPitch(pBitmap); - const Npp8u *pSrcLine = FreeImage_GetBits(pBitmap) + nSrcPitch * (FreeImage_GetHeight(pBitmap) -1); - Npp8u *pDstLine = oImage.data(); - unsigned int nDstPitch = oImage.pitch(); - - for (size_t iLine = 0; iLine < oImage.height(); ++iLine) - { - memcpy(pDstLine, pSrcLine, oImage.width() * sizeof(Npp8u)); - pSrcLine -= nSrcPitch; - pDstLine += nDstPitch; - } - - // swap the user given image with our result image, effecively - // moving our newly loaded image data into the user provided shell - oImage.swap(rImage); - } - - // Save an gray-scale image to disk. - void - saveImage(const std::string &rFileName, const ImageCPU_8u_C1 &rImage) - { - // create the result image storage using FreeImage so we can easily - // save - FIBITMAP *pResultBitmap = FreeImage_Allocate(rImage.width(), rImage.height(), 8 /* bits per pixel */); - NPP_ASSERT_NOT_NULL(pResultBitmap); - unsigned int nDstPitch = FreeImage_GetPitch(pResultBitmap); - Npp8u *pDstLine = FreeImage_GetBits(pResultBitmap) + nDstPitch * (rImage.height()-1); - const Npp8u *pSrcLine = rImage.data(); - unsigned int nSrcPitch = rImage.pitch(); - - for (size_t iLine = 0; iLine < rImage.height(); ++iLine) - { - memcpy(pDstLine, pSrcLine, rImage.width() * sizeof(Npp8u)); - pSrcLine += nSrcPitch; - pDstLine -= nDstPitch; - } - - // now save the result image - bool bSuccess; - bSuccess = FreeImage_Save(FIF_PGM, pResultBitmap, rFileName.c_str(), 0) == TRUE; - NPP_ASSERT_MSG(bSuccess, "Failed to save result image."); - } - - // Load a gray-scale image from disk. - void - loadImage(const std::string &rFileName, ImageNPP_8u_C1 &rImage) - { - ImageCPU_8u_C1 oImage; - loadImage(rFileName, oImage); - ImageNPP_8u_C1 oResult(oImage); - rImage.swap(oResult); - } - - // Save an gray-scale image to disk. - void - saveImage(const std::string &rFileName, const ImageNPP_8u_C1 &rImage) - { - ImageCPU_8u_C1 oHostImage(rImage.size()); - // copy the device result data - rImage.copyTo(oHostImage.data(), oHostImage.pitch()); - saveImage(rFileName, oHostImage); - } -} - - -#endif // NV_UTIL_NPP_IMAGE_IO_H diff --git a/Common/UtilNPP/ImagePacked.h b/Common/UtilNPP/ImagePacked.h deleted file mode 100644 index ee4c1f95..00000000 --- a/Common/UtilNPP/ImagePacked.h +++ /dev/null @@ -1,171 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_IMAGE_PACKED_H -#define NV_UTIL_NPP_IMAGE_PACKED_H - -#include "Image.h" -#include "Pixel.h" - -namespace npp -{ - template - class ImagePacked: public npp::Image - { - public: - typedef npp::Pixel tPixel; - typedef D tData; - static const size_t gnChannels = N; - typedef npp::Image::Size tSize; - - ImagePacked(): aPixels_(0) - , nPitch_(0) - { - ; - } - - ImagePacked(unsigned int nWidth, unsigned int nHeight): Image(nWidth, nHeight) - , aPixels_(0) - , nPitch_(0) - { - aPixels_ = A::Malloc2D(width(), height(), &nPitch_); - } - - ImagePacked(unsigned int nWidth, unsigned int nHeight, bool bTight): Image(nWidth, nHeight) - , aPixels_(0) - , nPitch_(0) - { - aPixels_ = A::Malloc2D(width(), height(), &nPitch_, bTight); - } - - ImagePacked(const tSize &rSize): Image(rSize) - , aPixels_(0) - , nPitch_(0) - { - aPixels_ = A::Malloc2D(width(), height(), &nPitch_); - } - - ImagePacked(const ImagePacked &rImage): Image(rImage) - , aPixels_(0) - , nPitch_(rImage.pitch()) - { - aPixels_ = A::Malloc2D(width(), height(), &nPitch_); - A::Copy2D(aPixels_, nPitch_, rImage.pixels(), rImage.pitch(), width(), height()); - } - - virtual - ~ImagePacked() - { - A::Free2D(aPixels_); - } - - ImagePacked & - operator= (const ImagePacked &rImage) - { - // in case of self-assignment - if (&rImage == this) - { - return *this; - } - - A::Free2D(aPixels_); - aPixels_ = 0; - nPitch_ = 0; - - // assign parent class's data fields (width, height) - Image::operator =(rImage); - - aPixels_ = A::Malloc2D(width(), height(), &nPitch_); - A::Copy2D(aPixels_, nPitch_, rImage.data(), rImage.pitch(), width(), height()); - - return *this; - } - - unsigned int - pitch() - const - { - return nPitch_; - } - - /// Get a pointer to the pixel array. - /// The result pointer can be offset to pixel at position (x, y) and - /// even negative offsets are allowed. - /// \param nX Horizontal pointer/array offset. - /// \param nY Vertical pointer/array offset. - /// \return Pointer to the pixel array (or first pixel in array with coordinates (nX, nY). - tPixel * - pixels(int nX = 0, int nY = 0) - { - return reinterpret_cast(reinterpret_cast(aPixels_) + nY * pitch() + nX * gnChannels * sizeof(D)); - } - - const - tPixel * - pixels(int nX = 0, int nY = 0) - const - { - return reinterpret_cast(reinterpret_cast(aPixels_) + nY * pitch() + nX * gnChannels * sizeof(D)); - } - - D * - data(int nX = 0, int nY = 0) - { - return reinterpret_cast(pixels(nX, nY)); - } - - const - D * - data(int nX = 0, int nY = 0) - const - { - return reinterpret_cast(pixels(nX, nY)); - } - - void - swap(ImagePacked &rImage) - { - Image::swap(rImage); - - tData *aTemp = aPixels_; - aPixels_ = rImage.aPixels_; - rImage.aPixels_ = aTemp; - - unsigned int nTemp = nPitch_; - nPitch_ = rImage.nPitch_; - rImage.nPitch_ = nTemp; - } - - private: - D *aPixels_; - unsigned int nPitch_; - }; - -} // npp namespace - - -#endif // NV_IMAGE_IPP_H diff --git a/Common/UtilNPP/ImagesCPU.h b/Common/UtilNPP/ImagesCPU.h deleted file mode 100644 index d55e0955..00000000 --- a/Common/UtilNPP/ImagesCPU.h +++ /dev/null @@ -1,121 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_IMAGES_CPU_H -#define NV_UTIL_NPP_IMAGES_CPU_H - -#include "ImagePacked.h" - -#include "ImageAllocatorsCPU.h" -#include "Exceptions.h" - -#include - - -namespace npp -{ - - template - class ImageCPU: public npp::ImagePacked - { - public: - - ImageCPU() - { - ; - } - - ImageCPU(unsigned int nWidth, unsigned int nHeight): ImagePacked(nWidth, nHeight) - { - ; - } - - explicit - ImageCPU(const npp::Image::Size &rSize): ImagePacked(rSize) - { - ; - } - - ImageCPU(const ImageCPU &rImage): Image(rImage) - { - ; - } - - virtual - ~ImageCPU() - { - ; - } - - ImageCPU & - operator= (const ImageCPU &rImage) - { - ImagePacked::operator= (rImage); - - return *this; - } - - npp::Pixel & - operator()(unsigned int iX, unsigned int iY) - { - return *ImagePacked::pixels(iX, iY); - } - - npp::Pixel - operator()(unsigned int iX, unsigned int iY) - const - { - return *ImagePacked::pixels(iX, iY); - } - - }; - - - typedef ImageCPU > ImageCPU_8u_C1; - typedef ImageCPU > ImageCPU_8u_C2; - typedef ImageCPU > ImageCPU_8u_C3; - typedef ImageCPU > ImageCPU_8u_C4; - - typedef ImageCPU > ImageCPU_16u_C1; - typedef ImageCPU > ImageCPU_16u_C3; - typedef ImageCPU > ImageCPU_16u_C4; - - typedef ImageCPU > ImageCPU_16s_C1; - typedef ImageCPU > ImageCPU_16s_C3; - typedef ImageCPU > ImageCPU_16s_C4; - - typedef ImageCPU > ImageCPU_32s_C1; - typedef ImageCPU > ImageCPU_32s_C3; - typedef ImageCPU > ImageCPU_32s_C4; - - typedef ImageCPU > ImageCPU_32f_C1; - typedef ImageCPU > ImageCPU_32f_C3; - typedef ImageCPU > ImageCPU_32f_C4; - -} // npp namespace - -#endif // NV_IMAGE_IPP_H diff --git a/Common/UtilNPP/ImagesNPP.h b/Common/UtilNPP/ImagesNPP.h deleted file mode 100644 index 2cdb18ad..00000000 --- a/Common/UtilNPP/ImagesNPP.h +++ /dev/null @@ -1,149 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_IMAGES_NPP_H -#define NV_UTIL_NPP_IMAGES_NPP_H - -#include "Exceptions.h" -#include "ImagePacked.h" - -#include "ImageAllocatorsNPP.h" -#include - -namespace npp -{ - // forward declaration - template class ImageCPU; - - template - class ImageNPP: public npp::ImagePacked > - { - public: - ImageNPP() - { - ; - } - - ImageNPP(unsigned int nWidth, unsigned int nHeight, bool bTight = false): ImagePacked >(nWidth, nHeight, bTight) - { - ; - } - - ImageNPP(const npp::Image::Size &rSize): ImagePacked >(rSize) - { - ; - } - - ImageNPP(const ImageNPP &rImage): Image(rImage) - { - ; - } - - template - explicit - ImageNPP(const ImageCPU &rImage, bool bTight = false): ImagePacked >(rImage.width(), rImage.height(), bTight) - { - npp::ImageAllocator::HostToDeviceCopy2D(ImagePacked >::data(), - ImagePacked >::pitch(), - rImage.data(), - rImage.pitch(), - ImagePacked >::width(), - ImagePacked >::height()); - } - - virtual - ~ImageNPP() - { - ; - } - - ImageNPP & - operator= (const ImageNPP &rImage) - { - ImagePacked >::operator= (rImage); - - return *this; - } - - void - copyTo(D *pData, unsigned int nPitch) - const - { - NPP_ASSERT((ImagePacked >::width() * sizeof(npp::Pixel) <= nPitch)); - npp::ImageAllocator::DeviceToHostCopy2D(pData, - nPitch, - ImagePacked >::data(), - ImagePacked >::pitch(), - ImagePacked >::width(), - ImagePacked >::height()); - } - - void - copyFrom(D *pData, unsigned int nPitch) - { - NPP_ASSERT((ImagePacked >::width() * sizeof(npp::Pixel) <= nPitch)); - npp::ImageAllocator::HostToDeviceCopy2D(ImagePacked >::data(), - ImagePacked >::pitch(), - pData, - nPitch, - ImagePacked >::width(), - ImagePacked >::height()); - } - }; - - typedef ImageNPP ImageNPP_8u_C1; - typedef ImageNPP ImageNPP_8u_C2; - typedef ImageNPP ImageNPP_8u_C3; - typedef ImageNPP ImageNPP_8u_C4; - - typedef ImageNPP ImageNPP_16u_C1; - typedef ImageNPP ImageNPP_16u_C2; - typedef ImageNPP ImageNPP_16u_C3; - typedef ImageNPP ImageNPP_16u_C4; - - typedef ImageNPP ImageNPP_16s_C1; - typedef ImageNPP ImageNPP_16s_C3; - typedef ImageNPP ImageNPP_16s_C4; - - typedef ImageNPP ImageNPP_32s_C1; - typedef ImageNPP ImageNPP_32s_C3; - typedef ImageNPP ImageNPP_32s_C4; - - typedef ImageNPP ImageNPP_32f_C1; - typedef ImageNPP ImageNPP_32f_C2; - typedef ImageNPP ImageNPP_32f_C3; - typedef ImageNPP ImageNPP_32f_C4; - - typedef ImageNPP ImageNPP_64f_C1; - typedef ImageNPP ImageNPP_64f_C2; - typedef ImageNPP ImageNPP_64f_C3; - typedef ImageNPP ImageNPP_64f_C4; - -} // npp namespace - -#endif // NV_UTIL_NPP_IMAGES_NPP_H diff --git a/Common/UtilNPP/Pixel.h b/Common/UtilNPP/Pixel.h deleted file mode 100644 index 69f9ca6d..00000000 --- a/Common/UtilNPP/Pixel.h +++ /dev/null @@ -1,126 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_PIXEL_H -#define NV_UTIL_PIXEL_H - -#include "Exceptions.h" - -namespace npp -{ - template - struct Pixel - { }; - - template - struct Pixel - { - D x; - - const D & - operator[](size_t iChannel) - const - { - NPP_ASSERT(iChannel < 1); - return (&x)[iChannel]; - } - - D & - operator[](size_t iChannel) - { - NPP_ASSERT(iChannel < 1); - return (&x)[iChannel]; - } - }; - - template - struct Pixel - { - D x,y; - - const D & - operator[](size_t iChannel) - const - { - NPP_ASSERT(iChannel < 2); - return (&x)[iChannel]; - } - - D & - operator[](size_t iChannel) - { - NPP_ASSERT(iChannel < 2); - return (&x)[iChannel]; - } - }; - - template - struct Pixel - { - D x,y,z; - - const D & - operator[](size_t iChannel) - const - { - NPP_ASSERT(iChannel < 3); - return (&x)[iChannel]; - } - - D & - operator[](size_t iChannel) - { - NPP_ASSERT(iChannel < 3); - return (&x)[iChannel]; - } - }; - - template - struct Pixel - { - D x, y, z, w; - - const D & - operator[](size_t iChannel) - const - { - NPP_ASSERT(iChannel < 4); - return (&x)[iChannel]; - } - - D & - operator[](size_t iChannel) - { - NPP_ASSERT(iChannel < 4); - return (&x)[iChannel]; - } - }; - -} // npp namespace - -#endif // NV_UTIL_PIXEL_H diff --git a/Common/UtilNPP/Signal.h b/Common/UtilNPP/Signal.h deleted file mode 100644 index f45fd07b..00000000 --- a/Common/UtilNPP/Signal.h +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_SIGNAL_H -#define NV_UTIL_NPP_SIGNAL_H - -#include - -namespace npp -{ - class Signal - { - public: - Signal() : nSize_(0) - { }; - - explicit - Signal(size_t nSize) : nSize_(nSize) - { }; - - Signal(const Signal &rSignal) : nSize_(rSignal.nSize_) - { }; - - virtual - ~Signal() - { } - - Signal & - operator= (const Signal &rSignal) - { - nSize_ = rSignal.nSize_; - return *this; - } - - size_t - size() - const - { - return nSize_; - } - - void - swap(Signal &rSignal) - { - size_t nTemp = nSize_; - nSize_ = rSignal.nSize_; - rSignal.nSize_ = nTemp; - } - - - private: - size_t nSize_; - }; - - template - class SignalTemplate: public Signal - { - public: - typedef D tData; - - SignalTemplate(): aValues_(0) - { - ; - } - - SignalTemplate(size_t nSize): Signal(nSize) - , aValues_(0) - { - aValues_ = A::Malloc1D(size()); - } - - SignalTemplate(const SignalTemplate &rSignal): Signal(rSignal) - , aValues_(0) - { - aValues_ = A::Malloc1D(size()); - A::Copy1D(aValues_, rSignal.values(), size()); - } - - virtual - ~SignalTemplate() - { - A::Free1D(aValues_); - } - - SignalTemplate & - operator= (const SignalTemplate &rSignal) - { - // in case of self-assignment - if (&rSignal == this) - { - return *this; - } - - A::Free1D(aValues_); - this->aPixels_ = 0; - - // assign parent class's data fields (width, height) - Signal::operator =(rSignal); - - aValues_ = A::Malloc1D(size()); - A::Copy1D(aValues_, rSignal.value(), size()); - - return *this; - } - - /// Get a pointer to the pixel array. - /// The result pointer can be offset to pixel at position (x, y) and - /// even negative offsets are allowed. - /// \param nX Horizontal pointer/array offset. - /// \param nY Vertical pointer/array offset. - /// \return Pointer to the pixel array (or first pixel in array with coordinates (nX, nY). - tData * - values(int i = 0) - { - return aValues_ + i; - } - - const - tData * - values(int i = 0) - const - { - return aValues_ + i; - } - - void - swap(SignalTemplate &rSignal) - { - Signal::swap(rSignal); - - tData *aTemp = this->aValues_; - this->aValues_ = rSignal.aValues_; - rSignal.aValues_ = aTemp; - } - - private: - D *aValues_; - }; - -} // npp namespace - - -#endif // NV_UTIL_NPP_SIGNAL_H diff --git a/Common/UtilNPP/SignalAllocatorsCPU.h b/Common/UtilNPP/SignalAllocatorsCPU.h deleted file mode 100644 index 56751f26..00000000 --- a/Common/UtilNPP/SignalAllocatorsCPU.h +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_SIGNAL_ALLOCATORS_CPU_H -#define NV_UTIL_NPP_SIGNAL_ALLOCATORS_CPU_H - -#include "Exceptions.h" - -namespace npp -{ - - template - class SignalAllocatorCPU - { - public: - static - D * - Malloc1D(unsigned int nSize) - { - return new D[nSize];; - }; - - static - void - Free1D(D *pPixels) - { - delete[] pPixels; - }; - - static - void - Copy1D(D *pDst, const D *pSrc, size_t nSize) - { - memcpy(pDst, pSrc, nSize * sizeof(D)); - }; - - }; - -} // npp namespace - -#endif // NV_UTIL_NPP_SIGNAL_ALLOCATORS_CPU_H diff --git a/Common/UtilNPP/SignalAllocatorsNPP.h b/Common/UtilNPP/SignalAllocatorsNPP.h deleted file mode 100644 index 2f5d332e..00000000 --- a/Common/UtilNPP/SignalAllocatorsNPP.h +++ /dev/null @@ -1,684 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_SIGNAL_ALLOCATORS_NPP_H -#define NV_UTIL_NPP_SIGNAL_ALLOCATORS_NPP_H - - -#include "Exceptions.h" - -#include -#include - -namespace npp -{ - - template - class SignalAllocator - { - }; - - template<> - class SignalAllocator - { - public: - static - Npp8u * - Malloc1D(size_t nSize) - { - Npp8u *pResult = nppsMalloc_8u(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp8u *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp8u *pDst, const Npp8u *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp8u),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp8u *pDst, const Npp8u *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp8u), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp8u *pDst, const Npp8u *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp8u), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp16s * - Malloc1D(size_t nSize) - { - Npp16s *pResult = nppsMalloc_16s(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp16s *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp16s *pDst, const Npp16s *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp16s),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp16s *pDst, const Npp16s *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp16s), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp16s *pDst, const Npp16s *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp16s), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp16u * - Malloc1D(size_t nSize) - { - Npp16u *pResult = nppsMalloc_16u(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp16u *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp16u *pDst, const Npp16u *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp16u),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp16u *pDst, const Npp16u *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp16u), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp16u *pDst, const Npp16u *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp16u), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp16sc * - Malloc1D(size_t nSize) - { - Npp16sc *pResult = nppsMalloc_16sc(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp16sc *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp16sc *pDst, const Npp16sc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp16sc),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp16sc *pDst, const Npp16sc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp16sc), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp16sc *pDst, const Npp16sc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp16sc), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp32u * - Malloc1D(size_t nSize) - { - Npp32u *pResult = nppsMalloc_32u(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp32u *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp32u *pDst, const Npp32u *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32u),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp32u *pDst, const Npp32u *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32u), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp32u *pDst, const Npp32u *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32u), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp32s * - Malloc1D(size_t nSize) - { - Npp32s *pResult = nppsMalloc_32s(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp32s *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp32s *pDst, const Npp32s *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32s),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp32s *pDst, const Npp32s *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32s), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp32s *pDst, const Npp32s *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32s), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp32sc * - Malloc1D(size_t nSize) - { - Npp32sc *pResult = nppsMalloc_32sc(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp32sc *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp32sc *pDst, const Npp32sc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32sc),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp32sc *pDst, const Npp32sc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32sc), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp32sc *pDst, const Npp32sc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32sc), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp32f * - Malloc1D(size_t nSize) - { - Npp32f *pResult = nppsMalloc_32f(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp32f *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp32f *pDst, const Npp32f *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32f),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp32f *pDst, const Npp32f *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32f), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp32f *pDst, const Npp32f *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32f), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp32fc * - Malloc1D(size_t nSize) - { - Npp32fc *pResult = nppsMalloc_32fc(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp32fc *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp32fc *pDst, const Npp32fc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32fc),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp32fc *pDst, const Npp32fc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32fc), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp32fc *pDst, const Npp32fc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp32fc), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp64s * - Malloc1D(size_t nSize) - { - Npp64s *pResult = nppsMalloc_64s(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp64s *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp64s *pDst, const Npp64s *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64s),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp64s *pDst, const Npp64s *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64s), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp64s *pDst, const Npp64s *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64s), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp64sc * - Malloc1D(size_t nSize) - { - Npp64sc *pResult = nppsMalloc_64sc(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp64sc *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp64sc *pDst, const Npp64sc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64sc),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp64sc *pDst, const Npp64sc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64sc), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp64sc *pDst, const Npp64sc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64sc), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp64f * - Malloc1D(size_t nSize) - { - Npp64f *pResult = nppsMalloc_64f(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp64f *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp64f *pDst, const Npp64f *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64f),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp64f *pDst, const Npp64f *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64f), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp64f *pDst, const Npp64f *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64f), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; - - template<> - class SignalAllocator - { - public: - static - Npp64fc * - Malloc1D(size_t nSize) - { - Npp64fc *pResult = nppsMalloc_64fc(static_cast(nSize)); - NPP_ASSERT(pResult != 0); - - return pResult; - }; - - static - void - Free1D(Npp64fc *pValues) - { - nppsFree(pValues); - }; - - static - void - Copy1D(Npp64fc *pDst, const Npp64fc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64fc),cudaMemcpyDeviceToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - HostToDeviceCopy1D(Npp64fc *pDst, const Npp64fc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64fc), cudaMemcpyHostToDevice); - NPP_ASSERT(cudaSuccess == eResult); - }; - - static - void - DeviceToHostCopy1D(Npp64fc *pDst, const Npp64fc *pSrc, size_t nSize) - { - cudaError_t eResult; - eResult = cudaMemcpy(pDst, pSrc, nSize * sizeof(Npp64fc), cudaMemcpyDeviceToHost); - NPP_ASSERT(cudaSuccess == eResult); - }; - }; -} // npp namespace - -#endif // NV_UTIL_NPP_SIGNAL_ALLOCATORS_NPP_H diff --git a/Common/UtilNPP/SignalsCPU.h b/Common/UtilNPP/SignalsCPU.h deleted file mode 100644 index 7b38d550..00000000 --- a/Common/UtilNPP/SignalsCPU.h +++ /dev/null @@ -1,107 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_SIGNALS_CPU_H -#define NV_UTIL_NPP_SIGNALS_CPU_H - -#include "Signal.h" - -#include "SignalAllocatorsCPU.h" -#include "Exceptions.h" - -#include - - -namespace npp -{ - - template - class SignalCPU: public npp::SignalTemplate - { - public: - typedef typename npp::SignalTemplate::tData tData; - - SignalCPU() - { - ; - } - - SignalCPU(size_t nSize): SignalTemplate(nSize) - { - ; - } - - SignalCPU(const SignalCPU &rSignal): SignalTemplate(rSignal) - { - ; - } - - virtual - ~SignalCPU() - { - ; - } - - SignalCPU & - operator= (const SignalCPU &rSignal) - { - SignalTemplate::operator= (rSignal); - - return *this; - } - - tData & - operator [](unsigned int i) - { - return *SignalTemplate::values(i); - } - - tData - operator [](unsigned int i) - const - { - return *SignalTemplate::values(i); - } - - }; - - typedef SignalCPU > SignalCPU_8u; - typedef SignalCPU > SignalCPU_32s; - typedef SignalCPU > SignalCPU_16s; - typedef SignalCPU > SignalCPU_16sc; - typedef SignalCPU > SignalCPU_32sc; - typedef SignalCPU > SignalCPU_32f; - typedef SignalCPU > SignalCPU_32fc; - typedef SignalCPU > SignalCPU_64s; - typedef SignalCPU > SignalCPU_64sc; - typedef SignalCPU > SignalCPU_64f; - typedef SignalCPU > SignalCPU_64fc; - -} // npp namespace - -#endif // NV_UTIL_NPP_SIGNALS_CPU_H diff --git a/Common/UtilNPP/SignalsNPP.h b/Common/UtilNPP/SignalsNPP.h deleted file mode 100644 index c56b91ae..00000000 --- a/Common/UtilNPP/SignalsNPP.h +++ /dev/null @@ -1,113 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 NV_UTIL_NPP_SIGNALS_NPP_H -#define NV_UTIL_NPP_SIGNALS_NPP_H - -#include "Exceptions.h" -#include "Signal.h" - -#include "SignalAllocatorsNPP.h" -#include - -namespace npp -{ - // forward declaration - template class SignalCPU; - - template - class SignalNPP: public npp::SignalTemplate > - { - public: - SignalNPP() - { - ; - } - - explicit - SignalNPP(size_t nSize): SignalTemplate >(nSize) - { - ; - } - - SignalNPP(const SignalNPP &rSignal): SignalTemplate >(rSignal) - { - ; - } - - template - explicit - SignalNPP(const SignalCPU &rSignal): SignalTemplate >(rSignal.size()) - { - npp::SignalAllocator::HostToDeviceCopy1D(SignalTemplate >::values(), - rSignal.values(), SignalTemplate >::size()); - } - - virtual - ~SignalNPP() - { - ; - } - - SignalNPP & - operator= (const SignalNPP &rSignal) - { - SignalTemplate >::operator= (rSignal); - - return *this; - } - - void - copyTo(D *pValues) - const - { - npp::SignalAllocator::DeviceToHostCopy1D(pValues, SignalTemplate >::values(), SignalTemplate >::size()); - } - - void - copyFrom(D *pValues) - { - npp::SignalAllocator::HostToDeviceCopy1D(SignalTemplate >::values(), pValues, SignalTemplate >::size()); - } - }; - - typedef SignalNPP SignalNPP_8u; - typedef SignalNPP SignalNPP_16s; - typedef SignalNPP SignalNPP_16sc; - typedef SignalNPP SignalNPP_32s; - typedef SignalNPP SignalNPP_32sc; - typedef SignalNPP SignalNPP_32f; - typedef SignalNPP SignalNPP_32fc; - typedef SignalNPP SignalNPP_64s; - typedef SignalNPP SignalNPP_64sc; - typedef SignalNPP SignalNPP_64f; - typedef SignalNPP SignalNPP_64fc; - -} // npp namespace - -#endif // NV_UTIL_NPP_SIGNALS_NPP_H diff --git a/Common/helper_cuda.h b/Common/helper_cuda.h index 9440235e..67f86e33 100644 --- a/Common/helper_cuda.h +++ b/Common/helper_cuda.h @@ -674,6 +674,7 @@ inline int _ConvertSMVer2Cores(int major, int minor) { {0xa0, 128}, {0xa1, 128}, {0xa3, 128}, + {0xa7, 128}, {0xb0, 128}, {0xc0, 128}, {0xc1, 128}, @@ -729,6 +730,7 @@ inline const char* _ConvertSMVer2ArchName(int major, int minor) { {0xa0, "Blackwell"}, {0xa1, "Blackwell"}, {0xa3, "Blackwell"}, + {0xa7, "Rubin"}, {0xb0, "Blackwell"}, {0xc0, "Blackwell"}, {0xc1, "Blackwell"}, diff --git a/Common/helper_cuda_drvapi.h b/Common/helper_cuda_drvapi.h index 2ded503e..893c874f 100644 --- a/Common/helper_cuda_drvapi.h +++ b/Common/helper_cuda_drvapi.h @@ -119,6 +119,7 @@ inline int _ConvertSMVer2CoresDRV(int major, int minor) { {0xa0, 128}, {0xa1, 128}, {0xa3, 128}, + {0xa7, 128}, {0xb0, 128}, {0xc0, 128}, {0xc1, 128}, diff --git a/Common/helper_math.h b/Common/helper_math.h index 6d2f63ae..36281913 100644 --- a/Common/helper_math.h +++ b/Common/helper_math.h @@ -1143,10 +1143,16 @@ inline __host__ __device__ uint4 max(uint4 a, uint4 b) // - linear interpolation between a and b, based on value t in [0, 1] range //////////////////////////////////////////////////////////////////////////////// +// std::lerp (C++20) is pulled into the global namespace by GCC's ; +// only define our own scalar overload when std::lerp is unavailable, to avoid +// a redeclaration / ambiguous-overload clash. (The float2/3/4 overloads below +// take distinct argument types and never conflict.) +#if !defined(__cplusplus) || (__cplusplus < 202002L) inline __device__ __host__ float lerp(float a, float b, float t) { return a + t*(b-a); } +#endif inline __device__ __host__ float2 lerp(float2 a, float2 b, float t) { return a + t*(b-a); diff --git a/Common/helper_multiprocess.cpp b/Common/helper_multiprocess.cpp index ee1618aa..91b3aa55 100644 --- a/Common/helper_multiprocess.cpp +++ b/Common/helper_multiprocess.cpp @@ -185,22 +185,24 @@ int ipcCreateSocket(ipcHandle *&handle, const char *name, return -1; } - char path_name[50]; + char path_name[sizeof(servaddr.sun_path)]; // Create unique name for the socket with path if SOCK_FOLDER is set. - sprintf(path_name, "%s/%u", getSocketFolder().c_str(), getpid()); + int written = snprintf(path_name, sizeof(path_name), "%s/%u", + getSocketFolder().c_str(), getpid()); + if (written < 0 || (size_t)written >= sizeof(path_name)) { + perror("IPC failure: Cannot bind provided name to socket. Name too large"); + close(server_fd); + delete handle; + handle = NULL; + return -1; + } unlink(path_name); memset(&servaddr, 0, sizeof(servaddr)); servaddr.sun_family = AF_UNIX; - size_t len = strlen(path_name); - if (len > (sizeof(servaddr.sun_path) - 1)) { - perror("IPC failure: Cannot bind provided name to socket. Name too large"); - return -1; - } - - strncpy(servaddr.sun_path, path_name, len); + strncpy(servaddr.sun_path, path_name, sizeof(servaddr.sun_path) - 1); if (bind(server_fd, (struct sockaddr *)&servaddr, SUN_LEN(&servaddr)) < 0) { perror("IPC failure: Binding socket failed"); @@ -227,10 +229,18 @@ int ipcOpenSocket(ipcHandle *&handle) { memset(&cliaddr, 0, sizeof(cliaddr)); cliaddr.sun_family = AF_UNIX; - char temp[50]; + char temp[sizeof(cliaddr.sun_path)]; // Create unique name for the socket with path if SOCK_FOLDER is set. - sprintf(temp, "%s/%u", getSocketFolder().c_str(), getpid()); + int written = snprintf(temp, sizeof(temp), "%s/%u", getSocketFolder().c_str(), + getpid()); + if (written < 0 || (size_t)written >= sizeof(temp)) { + perror("IPC failure: Cannot bind provided name to socket. Name too large"); + close(sock); + delete handle; + handle = NULL; + return -1; + } strcpy(cliaddr.sun_path, temp); if (bind(sock, (struct sockaddr *)&cliaddr, sizeof(cliaddr)) < 0) { @@ -366,8 +376,14 @@ int ipcSendShareableHandle(ipcHandle *handle, // Construct client address to send this SHareable handle to memset(&cliaddr, 0, sizeof(cliaddr)); cliaddr.sun_family = AF_UNIX; - char temp[20]; - sprintf(temp, "%s/%u", getSocketFolder().c_str(), process); + char temp[sizeof(cliaddr.sun_path)]; + int written = + snprintf(temp, sizeof(temp), "%s/%u", getSocketFolder().c_str(), process); + if (written < 0 || (size_t)written >= sizeof(temp)) { + perror("IPC failure: Cannot address client socket. Name too large"); + free(control_un.control); + return -1; + } strcpy(cliaddr.sun_path, temp); len = sizeof(cliaddr); diff --git a/README.md b/README.md index 106d3f73..8e35d2e7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # CUDA Samples -Samples for CUDA Developers which demonstrates features in CUDA Toolkit. This version supports [CUDA Toolkit 13.3](https://developer.nvidia.com/cuda-downloads). +Samples for CUDA Developers which demonstrates features in CUDA Toolkit. This version supports [CUDA Toolkit 13.4](https://developer.nvidia.com/cuda-downloads). ## Release Notes @@ -28,8 +28,6 @@ Without using git the easiest way to use these samples is to download the zip fi ## Building CUDA Samples -### Building CUDA Samples - The CUDA Samples are built using CMake. Follow the instructions below for building on Linux, Windows, and for cross-compilation to Tegra devices. ### Linux @@ -51,7 +49,27 @@ Build the samples: ``` make -j$(nproc) ``` -Run the samples from their respective directories in the build folder. You can also follow this process from and subdirectory of the samples repo, or from within any individual sample. + +By default, samples are compiled for all GPU architectures supported by this release. If you only need to target a specific GPU, you can override this to build for a single architecture and reduce build time considerably: +``` +cmake -DCMAKE_CUDA_ARCHITECTURES= .. +``` +Replace `` with your GPU's SM version (e.g. `90` for sm_90). + +Run the samples from their respective directories in the build folder. + +### Building a Single Sample + +To build just one sample, configure CMake from within the sample's directory. You must explicitly specify a GPU architecture — standalone builds have no top-level default: + +```bash +cd cpp// +mkdir -p build && cd build +cmake -DCMAKE_CUDA_ARCHITECTURES= .. +make +``` + +Replace `` with your GPU's SM version (e.g. `90` for sm_90). ### Windows @@ -170,23 +188,66 @@ $ make -j$(nproc) --ignore-errors # or --keep-going ### QNX -Cross-compilation for QNX with CMake is supported in the CUDA 13.0 samples release and newer. An example build for -the Tegra Thor QNX platform might look like this: +Cross-compilation for QNX with CMake is supported in the CUDA 13.0 samples release and newer. +Set up the QNX SDP paths: + +```bash +export QNX_HOST=/path/to/qnx/host +export QNX_TARGET=/path/to/qnx/target ``` -$ mkdir build -$ cd build -QNX_HOST=/path/to/qnx/host \ -QNX_TARGET=/path/to/qnx/target \ +Build the samples for the Tegra Thor QNX platform: + +```bash +mkdir -p build && cd build cmake .. \ --DBUILD_TEGRA=True \ --DCMAKE_CUDA_COMPILER=/usr/local/cuda-13.3/bin/nvcc \ --DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/toolchain-aarch64-qnx.cmake \ --DCMAKE_LIBRARY_PATH=/usr/local/cuda-13.3/thor/targets/aarch64-qnx/lib/stubs/ \ --DCMAKE_INCLUDE_PATH=/usr/local/cuda-13.3/thor/targets/aarch64-qnx/include/ + -DBUILD_TEGRA=True \ + -DCMAKE_CUDA_COMPILER=/usr/local/cuda-13.3/bin/nvcc \ + -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/toolchain-aarch64-qnx.cmake \ + -DTARGET_FS=/path/to/qnx/targetfs \ + -DCMAKE_LIBRARY_PATH=/usr/local/cuda-13.3/thor/targets/aarch64-qnx/lib/stubs/ \ + -DCMAKE_INCLUDE_PATH=/usr/local/cuda-13.3/thor/targets/aarch64-qnx/include/ +cmake --build . ``` +`TARGET_FS` is the QNX target filesystem of your board. The `cudaNvSci` sample needs it, because the NvSci headers and libraries ship with the target filesystem and not with the CUDA toolkit. Without `TARGET_FS` the build reports `NvSCI not found` and skips the sample. + +The target filesystem is part of the NVIDIA DRIVE OS QNX SDK, which registered users download from [NVONLINE](https://partners.nvidia.com). After the SDK is installed, the filesystem is in the DRIVE OS workspace: `/drive-qnx` for the standard SDK and `/drive-qnx-safety` for the safety SDK. See the [DRIVE OS documentation](https://docs.nvidia.com/drive/) for the installation guides. + +For both QNX toolchains the build looks for `nvscibuf.h` in `/include`, `/../include` and `/usr/include`, and for `libnvscibuf.so` in `/lib-target`, `/usr/libnvidia` and `/usr/lib`. If your filesystem uses a different layout, set `NVSCIBUF_INCLUDE_DIR`, `NVSCISYNC_INCLUDE_DIR`, `NVSCIBUF_LIBRARY` and `NVSCISYNC_LIBRARY` on the cmake command line instead. + +### QNX Safety (CUDA Safe toolkit) + +Cross-compilation for **QNX Safety** uses the CUDA Safe toolkit (for example `/usr/local/cuda-13.3-safe`). + +Set up the QNX SDP and Safe toolkit paths: + +```bash +export QNX_HOST=/path/to/qnx/host +export QNX_TARGET=/path/to/qnx/target +export CUDA_PATH=/usr/local/cuda-13.3-safe +export PATH=$CUDA_PATH/nvvm/bin:$PATH +``` + +Build a single sample (standalone configure from the sample directory). + +```bash +mkdir -p build && cd build +cmake .. \ + -DCMAKE_TOOLCHAIN_FILE=../../../cmake/toolchains/toolchain-aarch64-qnx-safe.cmake \ + -DCMAKE_CUDA_COMPILER=$CUDA_PATH/bin/nvcc \ + -DCMAKE_CUDA_ARCHITECTURES=110 \ + -DTARGET_FS=/path/to/qnx/safety/targetfs +cmake --build . +``` + +The safe toolchain sets `-safety-compat`, links shared `libcudart` and `libcuda`, and uses QNX `q++` as the CUDA host compiler (`CMAKE_CUDA_HOST_COMPILER`). Set `CMAKE_CUDA_ARCHITECTURES` to match your GPU (`87` for Orin, `110` for Thor). + +Supported QNX Safety samples: `matrixMul`, `cudaNvSci`. + +`TARGET_FS` is only needed for `cudaNvSci`, which links the NvSci libraries from the safety target filesystem (`/drive-qnx-safety`, part of the DRIVE OS QNX Safety SDK). `matrixMul` builds without it. The NvSci search paths are the same as for the standard QNX build above. + ### Forward Compatibility To build samples with new CUDA Toolkit(CUDA 13.0 or later) and UMD(Version 580 or later) and old KMD(Version 550 or earlier),you need to set the `CMAKE_PREFIX_PATH` for using new driver library, the command might like this: diff --git a/cmake/CudaSampleArchs.cmake b/cmake/CudaSampleArchs.cmake new file mode 100644 index 00000000..01ded949 --- /dev/null +++ b/cmake/CudaSampleArchs.cmake @@ -0,0 +1 @@ +set(CUDA_SAMPLES_MASTER_ARCHS 75 80 86 87 89 90 100 103 107 110 120) diff --git a/cmake/CudaSampleCommon.cmake b/cmake/CudaSampleCommon.cmake new file mode 100644 index 00000000..8ca24b1c --- /dev/null +++ b/cmake/CudaSampleCommon.cmake @@ -0,0 +1,19 @@ +include_guard(GLOBAL) + +get_filename_component(_cuda_sample_cmake_dir "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY) + +list(APPEND CMAKE_MODULE_PATH "${_cuda_sample_cmake_dir}") +list(APPEND CMAKE_MODULE_PATH "${_cuda_sample_cmake_dir}/Modules") + +set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") +if(ENABLE_CUDA_DEBUG) + set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") +else() + set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") +endif() + +if(MSVC) + add_compile_options($<$:-Xcompiler=/Zc:preprocessor>) +endif() + +unset(_cuda_sample_cmake_dir) diff --git a/cmake/DetectCudaArch.cmake b/cmake/DetectCudaArch.cmake new file mode 100644 index 00000000..280b4ab8 --- /dev/null +++ b/cmake/DetectCudaArch.cmake @@ -0,0 +1,66 @@ +if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES) + message(FATAL_ERROR + "CMAKE_CUDA_ARCHITECTURES is not set.\n" + "For standalone sample builds, specify a target architecture explicitly:\n" + " cmake -DCMAKE_CUDA_ARCHITECTURES= \n" + "Example: cmake -DCMAKE_CUDA_ARCHITECTURES=90 .") +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/CudaSampleArchs.cmake") + +# Master list of all CUDA architectures supported by this repo and CUDA 13.x. +# Each sample may define SAMPLE_DISALLOW_ARCHS to exclude architectures it does not support. +set(_master_archs ${CUDA_SAMPLES_MASTER_ARCHS}) + +# Compute this sample's effective arch list: master minus any disallowed archs. +set(_effective_archs ${_master_archs}) +if(DEFINED SAMPLE_DISALLOW_ARCHS) + foreach(_arch ${SAMPLE_DISALLOW_ARCHS}) + list(REMOVE_ITEM _effective_archs "${_arch}") + endforeach() +endif() + +get_filename_component(_sample_dir "${CMAKE_CURRENT_SOURCE_DIR}" NAME) + +# CMAKE_CUDA_ARCHITECTURES is set by the top-level CMakeLists.txt (defaulting to the +# full master list if the user did not specify). Build only for the intersection with +# the effective list; skip the sample if no requested arch is supported. +# CMake special keywords (all, all-major, native) are passed through as-is. +set(_passthrough_values "all" "all-major" "native") +if(CMAKE_CUDA_ARCHITECTURES IN_LIST _passthrough_values) + set(_passthrough TRUE) +else() + set(_passthrough FALSE) +endif() + +if(NOT _passthrough) + set(_build_archs) + foreach(_arch ${CMAKE_CUDA_ARCHITECTURES}) + if(_arch IN_LIST _effective_archs) + list(APPEND _build_archs "${_arch}") + endif() + endforeach() + + if(NOT _build_archs) + if(NOT CUDA_SAMPLES_ARCHS_DEFAULTED) + message(WARNING + "Sample in directory '${_sample_dir}' skipped: " + "user specified '${CMAKE_CUDA_ARCHITECTURES}' but this sample only supports '${_effective_archs}'") + endif() + set(SAMPLE_SKIP_BUILD TRUE) + elseif(NOT "${_build_archs}" STREQUAL "${CMAKE_CUDA_ARCHITECTURES}" AND NOT CUDA_SAMPLES_ARCHS_DEFAULTED) + message(WARNING + "Sample in directory '${_sample_dir}': user requested some architecture(s) that are not supported. " + "Only building for '${_build_archs}'") + set(CMAKE_CUDA_ARCHITECTURES "${_build_archs}") + else() + set(CMAKE_CUDA_ARCHITECTURES "${_build_archs}") + endif() + unset(_build_archs) +endif() + +unset(_master_archs) +unset(_effective_archs) +unset(_sample_dir) +unset(_passthrough) +unset(_passthrough_values) diff --git a/cmake/Modules/FindFreeImage.cmake b/cmake/Modules/FindFreeImage.cmake deleted file mode 100644 index 8e6ade45..00000000 --- a/cmake/Modules/FindFreeImage.cmake +++ /dev/null @@ -1,17 +0,0 @@ -find_path(FreeImage_INCLUDE_DIR - NAMES freeimage.h FreeImage.h - PATHS /usr/include /usr/local/include -) - -find_library(FreeImage_LIBRARY - NAMES freeimage FreeImage - PATHS /usr/lib /usr/local/lib -) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(FreeImage DEFAULT_MSG FreeImage_LIBRARY FreeImage_INCLUDE_DIR) - -if(FreeImage_FOUND) - set(FreeImage_LIBRARIES ${FreeImage_LIBRARY}) - set(FreeImage_INCLUDE_DIRS ${FreeImage_INCLUDE_DIR}) -endif() diff --git a/cmake/toolchains/toolchain-aarch64-qnx-safe.cmake b/cmake/toolchains/toolchain-aarch64-qnx-safe.cmake new file mode 100644 index 00000000..df3d90a4 --- /dev/null +++ b/cmake/toolchains/toolchain-aarch64-qnx-safe.cmake @@ -0,0 +1,136 @@ +# Toolchain for QNX Safety builds with the CUDA Safe toolkit (QNX SAFE stack). +# Use this file instead of toolchain-aarch64-qnx.cmake for safe-toolkit installs. + +set(CMAKE_SYSTEM_NAME QNX) +set(CMAKE_SYSTEM_PROCESSOR aarch64) + +set(QNX_HOST $ENV{QNX_HOST}) +set(QNX_TARGET $ENV{QNX_TARGET}) + +message(STATUS "QNX_HOST = ${QNX_HOST}") +message(STATUS "QNX_TARGET = ${QNX_TARGET}") + +find_program(QNX_QCC NAMES qcc PATHS "${QNX_HOST}/usr/bin") +find_program(QNX_QPLUS NAMES q++ PATHS "${QNX_HOST}/usr/bin") + +if(NOT QNX_QCC OR NOT QNX_QPLUS) + message(FATAL_ERROR "Could not find qcc or q++ in QNX_HOST=${QNX_HOST}/usr/bin") +endif() + +set(CMAKE_C_COMPILER ${QNX_QCC}) +set(CMAKE_CXX_COMPILER ${QNX_QPLUS}) + +set(CMAKE_C_COMPILER_TARGET aarch64) +set(CMAKE_CXX_COMPILER_TARGET aarch64) + +# Toolkit root: required so CUDA compiler ID test does not expand empty CUDA_ROOT into -I/include, etc. +if(CMAKE_CUDA_COMPILER) + get_filename_component(_cuda_nvcc_dir "${CMAKE_CUDA_COMPILER}" DIRECTORY) + get_filename_component(CUDA_TOOLKIT_ROOT "${_cuda_nvcc_dir}" DIRECTORY) +elseif(DEFINED ENV{CUDA_PATH}) + set(CUDA_TOOLKIT_ROOT "$ENV{CUDA_PATH}") +endif() +if(CUDA_TOOLKIT_ROOT) + set(CUDA_TOOLKIT_ROOT "${CUDA_TOOLKIT_ROOT}" CACHE PATH "CUDA Toolkit root") + set(CUDA_ROOT "${CUDA_TOOLKIT_ROOT}" CACHE PATH "CUDA Toolkit root (nvcc / legacy CMake)" FORCE) +endif() + +if(NOT __qnx_gcc_ver) + set(__qnx_gcc_ver "12.2.0" CACHE STRING "QNX qcc/q++ toolchain version for -V / --qpp-config (match your SDP)") +endif() + +set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER} CACHE STRING "" FORCE) + +set(_cuda_safe_target "aarch64-qnx") + +# CUDA Safe toolkit flags: -safety-compat keeps the kernel-launch ABI consistent; the safe toolkit +# ships only a shared cudart (no static/cudadevrt); -I/-L point at its headers/libs; +# --unresolved-symbols defers libcudart's rootfs-resident deps (nvdvms_*, NvOs*) to runtime. +if(CUDA_TOOLKIT_ROOT) + set(_cuda_safe_inc "${CUDA_TOOLKIT_ROOT}/targets/${_cuda_safe_target}/include") + set(_cuda_safe_lib "${CUDA_TOOLKIT_ROOT}/targets/${_cuda_safe_target}/lib") + set(_cuda_safe_stubs "${CUDA_TOOLKIT_ROOT}/targets/${_cuda_safe_target}/lib/stubs") +endif() + +set(_cuda_safe_flags "-safety-compat --cudart=shared --cudadevrt=none -target-dir ${_cuda_safe_target} --qpp-config=${__qnx_gcc_ver},gcc_ntoaarch64le") +if(CUDA_TOOLKIT_ROOT) + string(APPEND _cuda_safe_flags " -I${_cuda_safe_inc} -L${_cuda_safe_lib} -L${_cuda_safe_stubs}") +endif() +string(APPEND _cuda_safe_flags " -Xlinker --unresolved-symbols=ignore-in-shared-libs") + +set(CMAKE_C_FLAGS " \"-V${__qnx_gcc_ver},gcc_ntoaarch64le\"") +set(CMAKE_CXX_FLAGS " \"-V${__qnx_gcc_ver},gcc_ntoaarch64le\"") +# Host .cpp TUs are built by q++ directly, so give them the CUDA include too. +if(CUDA_TOOLKIT_ROOT) + string(APPEND CMAKE_C_FLAGS " -I${_cuda_safe_inc}") + string(APPEND CMAKE_CXX_FLAGS " -I${_cuda_safe_inc}") +endif() +set(CMAKE_CUDA_FLAGS " ${_cuda_safe_flags}") +separate_arguments(_automagic_nvcc_flags UNIX_COMMAND "${_cuda_safe_flags}") +set(AUTOMAGIC_NVCC_FLAGS ${_automagic_nvcc_flags} + CACHE STRING "automagic feature detection flags for QNX Safe cross build") + +# Safe toolkit has no cudadevrt/static cudart, so disable CMake's implicit runtime libs and link the +# shared cudart ourselves. Also link the driver (-lcuda): the shared libcudart.so references safety- +# stack symbols (nvdvms_*, NvOs*) that are transitive deps of libcuda.so.1, so the exe must pull in +# libcuda for them to resolve/load on the target. STANDARD_LIBRARIES_INIT covers ABI checks; the +# HOST_LINK options cover real targets. +set(CMAKE_CUDA_RUNTIME_LIBRARY "None" CACHE STRING "CUDA runtime library (safe toolkit: linked manually)") +set(CMAKE_CUDA_STANDARD_LIBRARIES_INIT "-lcudart -lcuda") +if(CUDA_TOOLKIT_ROOT) + add_link_options("$" "$" + "$" "$") +endif() + +# -V on the host link only; nvcc would comma-split it at the device link (which uses --qpp-config). +add_link_options("$gcc_ntoaarch64le>") +# Defer libcudart's rootfs-resident deps to runtime. +add_link_options("-Wl,--unresolved-symbols=ignore-in-shared-libs") + +set(CROSS_COMPILE_FOR_QNX ON CACHE BOOL "Cross compiling for QNX platforms") +string(APPEND CMAKE_CXX_FLAGS " -D_QNX_SOURCE") +string(APPEND CMAKE_CUDA_FLAGS " -D_QNX_SOURCE") + +# cudaNvSci needs NvSci headers/libs from the QNX safety rootfs; point TARGET_FS at it. This +# pre-seeds FindNVSCI's cache vars and auto-detects the header/lib dirs across rootfs layouts. +if(DEFINED TARGET_FS) + # Expand a leading ~ so paths reach the linker absolute. + if(TARGET_FS MATCHES "^~") + string(REGEX REPLACE "^~" "$ENV{HOME}" TARGET_FS "${TARGET_FS}") + endif() + get_filename_component(_nvsci_sdk_root "${TARGET_FS}" DIRECTORY) + + # Header dir varies by rootfs layout. + foreach(_inc "${TARGET_FS}/include" "${_nvsci_sdk_root}/include" "${TARGET_FS}/usr/include") + if(NOT _nvsci_inc AND EXISTS "${_inc}/nvscibuf.h") + set(_nvsci_inc "${_inc}") + endif() + endforeach() + + # Lib dir varies by rootfs layout. + foreach(_lib "${TARGET_FS}/lib-target" "${TARGET_FS}/usr/libnvidia" "${TARGET_FS}/usr/lib") + if(NOT _nvsci_lib AND EXISTS "${_lib}/libnvscibuf.so") + set(_nvsci_lib "${_lib}") + endif() + endforeach() + + if(NOT _nvsci_inc OR NOT _nvsci_lib) + message(FATAL_ERROR + "Could not locate NvSci headers/libs from TARGET_FS='${TARGET_FS}'. " + "Checked include roots for nvscibuf.h and lib roots for libnvscibuf.so. " + "Please set TARGET_FS (or NVSCIBUF/NVSCISYNC cache vars) to a valid QNX safety rootfs.") + endif() + + set(NVSCIBUF_INCLUDE_DIR "${_nvsci_inc}" CACHE PATH "NvSciBuf headers (QNX safe)") + set(NVSCISYNC_INCLUDE_DIR "${_nvsci_inc}" CACHE PATH "NvSciSync headers (QNX safe)") + set(NVSCIBUF_LIBRARY "${_nvsci_lib}/libnvscibuf.so" CACHE FILEPATH "NvSciBuf library (QNX safe)") + set(NVSCISYNC_LIBRARY "${_nvsci_lib}/libnvscisync.so" CACHE FILEPATH "NvSciSync library (QNX safe)") + + # rpath-link the rootfs lib dirs so NvSci's transitive deps resolve at link time. + foreach(_dir "${_nvsci_lib}" "${TARGET_FS}/lib-target" "${TARGET_FS}/usr/libnvidia" "${TARGET_FS}/usr/lib") + if(IS_DIRECTORY "${_dir}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath-link,${_dir}") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-rpath-link,${_dir}") + endif() + endforeach() +endif() diff --git a/cmake/toolchains/toolchain-aarch64-qnx.cmake b/cmake/toolchains/toolchain-aarch64-qnx.cmake index df9839b8..b1f2bfc4 100644 --- a/cmake/toolchains/toolchain-aarch64-qnx.cmake +++ b/cmake/toolchains/toolchain-aarch64-qnx.cmake @@ -35,3 +35,50 @@ add_link_options("-V${__qnx_gcc_ver},gcc_ntoaarch64le") set(CROSS_COMPILE_FOR_QNX ON CACHE BOOL "Cross compiling for QNX platforms") string(APPEND CMAKE_CXX_FLAGS " -D_QNX_SOURCE") string(APPEND CMAKE_CUDA_FLAGS " -D_QNX_SOURCE") + +# cudaNvSci needs NvSci headers/libs from the QNX rootfs; point TARGET_FS at it. This pre-seeds +# FindNVSCI's cache vars and auto-detects the header/lib dirs across rootfs layouts. +if(DEFINED TARGET_FS) + # Expand a leading ~ so paths reach the linker absolute. + if(TARGET_FS MATCHES "^~") + string(REGEX REPLACE "^~" "$ENV{HOME}" TARGET_FS "${TARGET_FS}") + endif() + get_filename_component(_nvsci_sdk_root "${TARGET_FS}" DIRECTORY) + + # Header dir varies by rootfs layout. Both headers are required, so accept a dir only if it + # holds both. + foreach(_inc "${TARGET_FS}/include" "${_nvsci_sdk_root}/include" "${TARGET_FS}/usr/include") + if(NOT _nvsci_inc AND EXISTS "${_inc}/nvscibuf.h" AND EXISTS "${_inc}/nvscisync.h") + set(_nvsci_inc "${_inc}") + endif() + endforeach() + + # Lib dir varies by rootfs layout. FindNVSCI needs both libraries, so accept a dir only if it + # holds both. + foreach(_lib "${TARGET_FS}/lib-target" "${TARGET_FS}/usr/libnvidia" "${TARGET_FS}/usr/lib") + if(NOT _nvsci_lib AND EXISTS "${_lib}/libnvscibuf.so" AND EXISTS "${_lib}/libnvscisync.so") + set(_nvsci_lib "${_lib}") + endif() + endforeach() + + # A rootfs without NvSci is not an error: FindNVSCI then reports NvSci as missing and only the + # NvSci samples are skipped. + if(_nvsci_inc AND _nvsci_lib) + set(NVSCIBUF_INCLUDE_DIR "${_nvsci_inc}" CACHE PATH "NvSciBuf headers") + set(NVSCISYNC_INCLUDE_DIR "${_nvsci_inc}" CACHE PATH "NvSciSync headers") + set(NVSCIBUF_LIBRARY "${_nvsci_lib}/libnvscibuf.so" CACHE FILEPATH "NvSciBuf library") + set(NVSCISYNC_LIBRARY "${_nvsci_lib}/libnvscisync.so" CACHE FILEPATH "NvSciSync library") + + # rpath-link the rootfs lib dirs so NvSci's transitive deps resolve at link time. + # NvSci pulls in NvRm/NvOs/NvSciIpc, which can sit in a lib dir of their own. + foreach(_dir "${_nvsci_lib}" "${TARGET_FS}/lib-target" "${_nvsci_sdk_root}/lib-target" + "${TARGET_FS}/usr/libnvidia" "${TARGET_FS}/usr/lib") + if(IS_DIRECTORY "${_dir}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath-link,${_dir}") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-rpath-link,${_dir}") + endif() + endforeach() + else() + message(STATUS "NvSci headers/libs not found in TARGET_FS='${TARGET_FS}'") + endif() +endif() diff --git a/cpp/0_Introduction/CMakeLists.txt b/cpp/0_Introduction/CMakeLists.txt index 74534758..92fd8f86 100644 --- a/cpp/0_Introduction/CMakeLists.txt +++ b/cpp/0_Introduction/CMakeLists.txt @@ -1,44 +1,35 @@ add_subdirectory(UnifiedMemoryStreams) add_subdirectory(asyncAPI) add_subdirectory(clock) -add_subdirectory(clock_nvrtc) add_subdirectory(cudaOpenMP) add_subdirectory(fp16ScalarProduct) add_subdirectory(matrixMul) add_subdirectory(matrixMulDrv) add_subdirectory(matrixMulDynlinkJIT) -add_subdirectory(matrixMul_nvrtc) -add_subdirectory(mergeSort) add_subdirectory(simpleAWBarrier) add_subdirectory(simpleAssert) -add_subdirectory(simpleAssert_nvrtc) add_subdirectory(simpleAtomicIntrinsics) -add_subdirectory(simpleAtomicIntrinsics_nvrtc) add_subdirectory(simpleAttributes) add_subdirectory(simpleCUDA2GL) add_subdirectory(simpleCallback) add_subdirectory(simpleCooperativeGroups) add_subdirectory(simpleCubemapTexture) add_subdirectory(simpleDrvRuntime) -add_subdirectory(simpleHyperQ) add_subdirectory(simpleIPC) add_subdirectory(simpleLayeredTexture) add_subdirectory(simpleMPI) add_subdirectory(simpleMultiCopy) add_subdirectory(simpleMultiGPU) -add_subdirectory(simpleOccupancy) add_subdirectory(simpleP2P) add_subdirectory(simplePitchLinearTexture) add_subdirectory(simplePrintf) add_subdirectory(simpleStreams) add_subdirectory(simpleSurfaceWrite) -add_subdirectory(simpleTemplates) add_subdirectory(simpleTexture) add_subdirectory(simpleTexture3D) add_subdirectory(simpleTextureDrv) add_subdirectory(simpleVoteIntrinsics) add_subdirectory(simpleZeroCopy) -add_subdirectory(template) add_subdirectory(systemWideAtomics) add_subdirectory(vectorAdd) add_subdirectory(vectorAddDrv) diff --git a/cpp/0_Introduction/README.md b/cpp/0_Introduction/README.md index d32566f1..06626f9c 100644 --- a/cpp/0_Introduction/README.md +++ b/cpp/0_Introduction/README.md @@ -7,9 +7,6 @@ This sample illustrates the usage of CUDA events for both GPU timing and overlap ### [clock](./clock) This example shows how to use the clock function to measure the performance of block of threads of a kernel accurately. -### [clock_nvrtc](./clock_nvrtc) -This example shows how to use the clock function using libNVRTC to measure the performance of block of threads of a kernel accurately. - ### [cudaOpenMP](./cudaOpenMP) This sample demonstrates how to use OpenMP API to write an application for multiple GPUs. @@ -19,30 +16,18 @@ Calculates scalar product of two vectors of FP16 numbers. ### [matrixMul](./matrixMul) This sample implements matrix multiplication and is exactly the same as Chapter 6 of the programming guide. It has been written for clarity of exposition to illustrate various CUDA programming principles, not with the goal of providing the most performant generic kernel for matrix multiplication. To illustrate GPU performance for matrix multiply, this sample also shows how to use the new CUDA 4.0 interface for CUBLAS to demonstrate high-performance performance for matrix multiplication. -### [matrixMul_nvrtc](./matrixMul_nvrtc) -This sample implements matrix multiplication and is exactly the same as Chapter 6 of the programming guide. It has been written for clarity of exposition to illustrate various CUDA programming principles, not with the goal of providing the most performant generic kernel for matrix multiplication. To illustrate GPU performance for matrix multiply, this sample also shows how to use the new CUDA 4.0 interface for CUBLAS to demonstrate high-performance performance for matrix multiplication. - ### [matrixMulDrv](./matrixMulDrv) This sample implements matrix multiplication and uses the new CUDA 4.0 kernel launch Driver API. It has been written for clarity of exposition to illustrate various CUDA programming principles, not with the goal of providing the most performant generic kernel for matrix multiplication. CUBLAS provides high-performance matrix multiplication. ### [matrixMulDynlinkJIT](./matrixMulDynlinkJIT) This sample revisits matrix multiplication using the CUDA driver API. It demonstrates how to link to CUDA driver at runtime and how to use JIT (just-in-time) compilation from PTX code. It has been written for clarity of exposition to illustrate various CUDA programming principles, not with the goal of providing the most performant generic kernel for matrix multiplication. CUBLAS provides high-performance matrix multiplication. -### [mergeSort](./mergeSort) -This sample implements a merge sort (also known as Batcher's sort), algorithms belonging to the class of sorting networks. While generally subefficient on large sequences compared to algorithms with better asymptotic algorithmic complexity (i.e. merge sort or radix sort), may be the algorithms of choice for sorting batches of short- to mid-sized (key, value) array pairs. Refer to the excellent tutorial by H. W. Lang http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/networks/indexen.htm - ### [simpleAssert](./simpleAssert) This CUDA Runtime API sample is a very basic sample that implements how to use the assert function in the device code. Requires Compute Capability 2.0 . -### [simpleAssert_nvrtc](./simpleAssert_nvrtc) -This CUDA Runtime API sample is a very basic sample that implements how to use the assert function in the device code. Requires Compute Capability 2.0 . - ### [simpleAtomicIntrinsics](./simpleAtomicIntrinsics) A simple demonstration of global memory atomic instructions. -### [simpleAtomicIntrinsics_nvrtc](./simpleAtomicIntrinsics_nvrtc) -A simple demonstration of global memory atomic instructions.This sample makes use of NVRTC for Runtime Compilation. - ### [simpleAttributes](./simpleAttributes) This CUDA Runtime API sample is a very basic example that implements how to use the stream attributes that affect L2 locality. Performance improvement due to use of L2 access policy window can only be noticed on Compute capability 8.0 or higher. @@ -64,9 +49,6 @@ This sample shows how to copy CUDA image back to OpenGL using the most efficient ### [simpleDrvRuntime](./simpleDrvRuntime) A simple example which demonstrates how CUDA Driver and Runtime APIs can work together to load cuda fatbinary of vector add kernel and performing vector addition. -### [simpleHyperQ](./simpleHyperQ) -This sample demonstrates the use of CUDA streams for concurrent execution of several kernels on devices which provide HyperQ (SM 3.5). Devices without HyperQ (SM 2.0 and SM 3.0) will run a maximum of two kernels concurrently. - ### [simpleIPC](./simpleIPC) This CUDA Runtime API sample is a very basic sample that demonstrates Inter Process Communication with one process per GPU for computation. Requires Compute Capability 3.0 or higher and a Linux Operating System, or a Windows Operating System with TCC enabled GPUs @@ -82,9 +64,6 @@ Supported in GPUs with Compute Capability 1.1, overlapping compute with one memc ### [simpleMultiGPU](./simpleMultiGPU) This application demonstrates how to use the new CUDA 4.0 API for CUDA context management and multi-threaded access to run CUDA kernels on multiple-GPUs. -### [simpleOccupancy](./simpleOccupancy) -This sample demonstrates the basic usage of the CUDA occupancy calculator and occupancy-based launch configurator APIs by launching a kernel with the launch configurator, and measures the utilization difference against a manually configured launch. - ### [simpleP2P](./simpleP2P) This application demonstrates CUDA APIs that support Peer-To-Peer (P2P) copies, Peer-To-Peer (P2P) addressing, and Unified Virtual Memory Addressing (UVA) between multiple GPUs. In general, P2P is supported between two same GPUs with some exceptions, such as some Tesla and Quadro GPUs. @@ -100,9 +79,6 @@ This sample uses CUDA streams to overlap kernel executions with memory copies be ### [simpleSurfaceWrite](./simpleSurfaceWrite) Simple example that demonstrates the use of 2D surface references (Write-to-Texture) -### [simpleTemplates](./simpleTemplates) -This sample is a templatized version of the template project. It also shows how to correctly templatize dynamically allocated shared memory arrays. - ### [simpleTexture](./simpleTexture) Simple example that demonstrates use of Textures in CUDA. @@ -121,9 +97,6 @@ This sample illustrates how to use Zero MemCopy, kernels can read and write dire ### [systemWideAtomics](./systemWideAtomics) A simple demonstration of system wide atomic instructions. -### [template](./template) -A trivial template project that can be used as a starting point to create new CUDA projects. - ### [UnifiedMemoryStreams](./UnifiedMemoryStreams) This sample demonstrates the use of OpenMP and streams with Unified Memory on a single GPU. diff --git a/cpp/0_Introduction/UnifiedMemoryStreams/.vscode/c_cpp_properties.json b/cpp/0_Introduction/UnifiedMemoryStreams/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/UnifiedMemoryStreams/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/UnifiedMemoryStreams/.vscode/extensions.json b/cpp/0_Introduction/UnifiedMemoryStreams/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/UnifiedMemoryStreams/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/UnifiedMemoryStreams/CMakeLists.txt b/cpp/0_Introduction/UnifiedMemoryStreams/CMakeLists.txt index 2fd880d0..9822a65a 100644 --- a/cpp/0_Introduction/UnifiedMemoryStreams/CMakeLists.txt +++ b/cpp/0_Introduction/UnifiedMemoryStreams/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(UnifiedMemoryStreams LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) # This sample is not supported on QNX @@ -31,23 +27,15 @@ endif() find_package(OpenMP COMPONENTS CXX) if(OpenMP_CXX_FOUND) - # Add target for UnifiedMemoryStreams add_executable(UnifiedMemoryStreams UnifiedMemoryStreams.cu) - -target_compile_options(UnifiedMemoryStreams PRIVATE $<$:--extended-lambda>) - -target_compile_features(UnifiedMemoryStreams PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(UnifiedMemoryStreams PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - + target_compile_options(UnifiedMemoryStreams PRIVATE $<$:--extended-lambda>) + target_compile_features(UnifiedMemoryStreams PRIVATE cxx_std_17 cuda_std_17) target_link_libraries(UnifiedMemoryStreams PUBLIC CUDA::cublas OpenMP::OpenMP_CXX ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "OpenMP not found - will not build sample 'UnifiedMemoryStreams'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/asyncAPI/.vscode/c_cpp_properties.json b/cpp/0_Introduction/asyncAPI/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/asyncAPI/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/asyncAPI/.vscode/extensions.json b/cpp/0_Introduction/asyncAPI/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/asyncAPI/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/asyncAPI/CMakeLists.txt b/cpp/0_Introduction/asyncAPI/CMakeLists.txt index ec50945b..a059f561 100644 --- a/cpp/0_Introduction/asyncAPI/CMakeLists.txt +++ b/cpp/0_Introduction/asyncAPI/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(asyncAPI LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for asyncAPI add_executable(asyncAPI asyncAPI.cu) target_compile_options(asyncAPI PRIVATE $<$:--extended-lambda>) target_compile_features(asyncAPI PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(asyncAPI PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/clock/.vscode/c_cpp_properties.json b/cpp/0_Introduction/clock/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/clock/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/clock/.vscode/extensions.json b/cpp/0_Introduction/clock/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/clock/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/clock/CMakeLists.txt b/cpp/0_Introduction/clock/CMakeLists.txt index b9d71781..ad472fd6 100644 --- a/cpp/0_Introduction/clock/CMakeLists.txt +++ b/cpp/0_Introduction/clock/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(clock LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for asyncAPI add_executable(clock clock.cu) target_compile_options(clock PRIVATE $<$:--extended-lambda>) target_compile_features(clock PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(clock PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/clock/README.md b/cpp/0_Introduction/clock/README.md index adf55b8c..fd1d4914 100644 --- a/cpp/0_Introduction/clock/README.md +++ b/cpp/0_Introduction/clock/README.md @@ -1,32 +1,79 @@ -# clock - Clock +# clock - Per-Block Kernel Timing with CUB Reduction ## Description -This example shows how to use the clock function to measure the performance of block of threads of a kernel accurately. +A CUDA sample that demonstrates how to use the `clock()` function to accurately measure kernel execution time on a per-block basis. Each of the 64 blocks records its own start and end SM cycle counter, then performs a block-wide parallel **min-reduction** over 512 float elements using CUB's `BlockReduce`. The host collects all timestamps and computes the average elapsed clock cycles across all blocks. + +Because blocks execute in parallel and out of order with no cross-block synchronization, each block independently measures its own execution time — this is the correct way to time GPU work at block granularity. + +## What You'll Learn + +- Using `clock()` inside a CUDA kernel to capture per-block SM cycle counts +- Performing a block-wide parallel reduction with `cub::BlockReduce` using a custom binary operator +- Loading multiple elements per thread (`ITEMS_PER_THREAD = 2`) for CUB reductions +- Understanding why only thread 0 holds the valid aggregate after a `BlockReduce` +- Querying device properties (`cudaDeviceGetAttribute`) without helper libraries +- Computing average elapsed clocks on the host from per-block timestamps ## Key Concepts -Performance Strategies +- **SM Clock Counter** — `clock()` reads the streaming multiprocessor's cycle counter; difference between two samples gives elapsed cycles for that block +- **CUB BlockReduce** — warp-shuffle-based block-scope reduction; default constructor allocates shared memory internally via `PrivateStorage()`, no explicit `TempStorage` needed +- **Items per thread** — each thread owns 2 elements; CUB's array overload of `Reduce` combines them before the cross-thread reduction +- **Per-block timing** — since blocks run independently, each block times itself; the host averages results across all blocks -## Supported SM Architectures +## Key APIs -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) +### CUDA Runtime +- `cudaSetDevice` — select the active GPU for all subsequent CUDA calls +- `cudaDeviceGetAttribute` — query device properties (compute capability, SM count) without `cudaGetDeviceProperties` +- `cudaMalloc` / `cudaFree` — allocate and release device memory +- `cudaMemcpy` — transfer data between host and device +- `clock()` — device-side SM cycle counter (returns `clock_t`) -## Supported OSes +### CUB +- `cub::BlockReduce` — block-scope reduction template +- `BlockReduce::Reduce(T (&input)[ITEMS_PER_THREAD], ReductionOp op)` — reduce multiple items per thread with a custom binary operator -Linux, Windows +## Requirements -## Supported CPU Architecture +### Hardware +- NVIDIA GPU with Compute Capability 7.5 or higher -x86_64, armv7l +### Software +- CMake 3.20 or newer +- A C++17-capable host compiler -## CUDA APIs involved +## How to Build -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMalloc, cudaMemcpy, cudaFree +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. -## Prerequisites +## How to Run -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. +```bash +./clock +``` -## References (for more details) +No command-line arguments are required. The sample always runs on device 0. + +## Expected Output + +```text +CUDA Clock sample +GPU Device 0: with compute capability 8.9 and Number of SMs 142 + +Average clocks/block = 1239.640625 +``` + +The average clocks value varies by GPU and reflects how many SM cycles each block takes to complete the reduction. Blocks scheduled later on a busy GPU will show higher elapsed times. + +## Files + +- `clock.cu` — kernel implementation and host driver +- `README.md` — this file +- `CMakeLists.txt` — build configuration + +## See Also + +- [CUB BlockReduce documentation](https://nvidia.github.io/cccl/unstable/cub/developer/block_scope.html) +- [CUDA C++ Programming Guide — clock()](https://docs.nvidia.com/cuda/cuda-programming-guide/05-appendices/cpp-language-support.html#clock-and-clock64) diff --git a/cpp/0_Introduction/clock/clock.cu b/cpp/0_Introduction/clock/clock.cu index f9fa5ae5..f46a349b 100644 --- a/cpp/0_Introduction/clock/clock.cu +++ b/cpp/0_Introduction/clock/clock.cu @@ -1,4 +1,4 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +/* Copyright (c) 2026, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -41,45 +41,36 @@ // CUDA runtime #include -// helper functions and utilities to work with CUDA -#include -#include +// CUB for block-scope reduction +#include + +#define NUM_BLOCKS 64 +#define NUM_THREADS 256 // This kernel computes a standard parallel reduction and evaluates the // time it takes to do that for each block. The timing results are stored // in device memory. __global__ static void timedReduction(const float *input, float *output, clock_t *timer) { - // __shared__ float shared[2 * blockDim.x]; - extern __shared__ float shared[]; - const int tid = threadIdx.x; const int bid = blockIdx.x; if (tid == 0) timer[bid] = clock(); - // Copy input. - shared[tid] = input[tid]; - shared[tid + blockDim.x] = input[tid + blockDim.x]; + // Each thread loads 2 elements and reduces them to a local min. + float thread_data[2]; + thread_data[0] = input[tid]; + thread_data[1] = input[tid + blockDim.x]; - // Perform reduction to find minimum. - for (int d = blockDim.x; d > 0; d /= 2) { - __syncthreads(); + // Block-wide min-reduction using CUB. Default constructor allocates + // shared memory internally via PrivateStorage(). + using BlockReduce = cub::BlockReduce; + float block_min = BlockReduce().Reduce(thread_data, [] __device__(float a, float b) { return fminf(a, b); }); - if (tid < d) { - float f0 = shared[tid]; - float f1 = shared[tid + d]; - - if (f1 < f0) { - shared[tid] = f1; - } - } - } - - // Write result. + // Only thread 0 holds the valid aggregate. if (tid == 0) - output[bid] = shared[0]; + output[bid] = block_min; __syncthreads(); @@ -87,33 +78,25 @@ __global__ static void timedReduction(const float *input, float *output, clock_t timer[bid + gridDim.x] = clock(); } -#define NUM_BLOCKS 64 -#define NUM_THREADS 256 - -// It's interesting to change the number of blocks and the number of threads to -// understand how to keep the hardware busy. -// -// Here are some numbers I get on my G80: -// blocks - clocks -// 1 - 3096 -// 8 - 3232 -// 16 - 3364 -// 32 - 4615 -// 64 - 9981 -// -// With less than 16 blocks some of the multiprocessors of the device are idle. -// With more than 16 you are using all the multiprocessors, but there's only one -// block per multiprocessor and that doesn't allow you to hide the latency of -// the memory. With more than 32 the speed scales linearly. - // Start the main CUDA Sample here int main(int argc, char **argv) { printf("CUDA Clock sample\n"); - // This will pick the best possible CUDA capable device - int dev = findCudaDevice(argc, (const char **)argv); + // Select device 0 as the active GPU + int devID = 0; + cudaSetDevice(devID); + // Query compute capability (major.minor) and number of SMs on the device + int major = 0, minor = 0, smCount = 0; + cudaDeviceGetAttribute(&major, cudaDevAttrComputeCapabilityMajor, devID); + cudaDeviceGetAttribute(&minor, cudaDevAttrComputeCapabilityMinor, devID); + cudaDeviceGetAttribute(&smCount, cudaDevAttrMultiProcessorCount, devID); + + // Print device info + printf("GPU Device %d: with compute capability %d.%d and Number of SMs %d\n\n", devID, major, minor, smCount); + + // Device pointers for input data, per-block minimum output, and clock timestamps float *dinput = NULL; float *doutput = NULL; clock_t *dtimer = NULL; @@ -125,19 +108,19 @@ int main(int argc, char **argv) input[i] = (float)i; } - checkCudaErrors(cudaMalloc((void **)&dinput, sizeof(float) * NUM_THREADS * 2)); - checkCudaErrors(cudaMalloc((void **)&doutput, sizeof(float) * NUM_BLOCKS)); - checkCudaErrors(cudaMalloc((void **)&dtimer, sizeof(clock_t) * NUM_BLOCKS * 2)); + cudaMalloc((void **)&dinput, sizeof(float) * NUM_THREADS * 2); + cudaMalloc((void **)&doutput, sizeof(float) * NUM_BLOCKS); + cudaMalloc((void **)&dtimer, sizeof(clock_t) * NUM_BLOCKS * 2); - checkCudaErrors(cudaMemcpy(dinput, input, sizeof(float) * NUM_THREADS * 2, cudaMemcpyHostToDevice)); + cudaMemcpy(dinput, input, sizeof(float) * NUM_THREADS * 2, cudaMemcpyHostToDevice); - timedReduction<<>>(dinput, doutput, dtimer); + timedReduction<<>>(dinput, doutput, dtimer); - checkCudaErrors(cudaMemcpy(timer, dtimer, sizeof(clock_t) * NUM_BLOCKS * 2, cudaMemcpyDeviceToHost)); + cudaMemcpy(timer, dtimer, sizeof(clock_t) * NUM_BLOCKS * 2, cudaMemcpyDeviceToHost); - checkCudaErrors(cudaFree(dinput)); - checkCudaErrors(cudaFree(doutput)); - checkCudaErrors(cudaFree(dtimer)); + cudaFree(dinput); + cudaFree(doutput); + cudaFree(dtimer); long double avgElapsedClocks = 0; diff --git a/cpp/0_Introduction/clock_nvrtc/.vscode/c_cpp_properties.json b/cpp/0_Introduction/clock_nvrtc/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/clock_nvrtc/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/clock_nvrtc/.vscode/extensions.json b/cpp/0_Introduction/clock_nvrtc/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/clock_nvrtc/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/clock_nvrtc/CMakeLists.txt b/cpp/0_Introduction/clock_nvrtc/CMakeLists.txt deleted file mode 100644 index 9d5abe4c..00000000 --- a/cpp/0_Introduction/clock_nvrtc/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(clock_nvrtc LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add sample target executable -add_executable(clock_nvrtc clock.cpp) - -target_compile_options(clock_nvrtc PRIVATE $<$:--extended-lambda>) - -target_compile_features(clock_nvrtc PRIVATE cxx_std_17 cuda_std_17) - -target_link_libraries(clock_nvrtc PRIVATE - CUDA::nvrtc - CUDA::cuda_driver -) - -# Copy clock_kernel.cu to the output directory -add_custom_command(TARGET clock_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/clock_kernel.cu ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/clock_nvrtc/README.md b/cpp/0_Introduction/clock_nvrtc/README.md deleted file mode 100644 index d26eb3a7..00000000 --- a/cpp/0_Introduction/clock_nvrtc/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# clock_nvrtc - Clock libNVRTC - -## Description - -This example shows how to use the clock function using libNVRTC to measure the performance of block of threads of a kernel accurately. - -## Key Concepts - -Performance Strategies, Runtime Compilation - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows, QNX - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuMemcpyDtoH, cuLaunchKernel, cuMemcpyHtoD, cuCtxSynchronize, cuMemAlloc, cuMemFree, cuModuleGetFunction - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaBlockSize, cudaGridSize - -## Dependencies needed to build/run -[NVRTC](../../../README.md#nvrtc) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/0_Introduction/clock_nvrtc/clock.cpp b/cpp/0_Introduction/clock_nvrtc/clock.cpp deleted file mode 100644 index d301703c..00000000 --- a/cpp/0_Introduction/clock_nvrtc/clock.cpp +++ /dev/null @@ -1,137 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This example shows how to use the clock function to measure the performance - * of block of threads of a kernel accurately. Blocks are executed in parallel - * and out of order. Since there's no synchronization mechanism between blocks, - * we measure the clock once for each block. The clock samples are written to - * device memory. - */ - -// System includes -#include -#include -#include -#include -#include - -// helper functions and utilities to work with CUDA -#include - -#define NUM_BLOCKS 64 - -#define NUM_THREADS 256 - -// It's interesting to change the number of blocks and the number of threads to -// understand how to keep the hardware busy. -// - -// Here are some numbers I get on my G80: -// blocks - clocks -// 1 - 3096 -// 8 - 3232 -// 16 - 3364 -// 32 - 4615 -// 64 - 9981 - -// -// With less than 16 blocks some of the multiprocessors of the device are idle. -// With -// more than 16 you are using all the multiprocessors, but there's only one -// block per -// multiprocessor and that doesn't allow you to hide the latency of the memory. -// With -// more than 32 the speed scales linearly. - -// Start the main CUDA Sample here - -int main(int argc, char **argv) -{ - printf("CUDA Clock sample\n"); - - typedef long clock_t; - - clock_t timer[NUM_BLOCKS * 2]; - - float input[NUM_THREADS * 2]; - - for (int i = 0; i < NUM_THREADS * 2; i++) { - input[i] = (float)i; - } - - char *cubin, *kernel_file; - size_t cubinSize; - - kernel_file = sdkFindFilePath("clock_kernel.cu", argv[0]); - compileFileToCUBIN(kernel_file, argc, argv, &cubin, &cubinSize, 0); - - CUmodule module = loadCUBIN(cubin, argc, argv); - CUfunction kernel_addr; - - checkCudaErrors(cuModuleGetFunction(&kernel_addr, module, "timedReduction")); - - dim3 cudaBlockSize(NUM_THREADS, 1, 1); - dim3 cudaGridSize(NUM_BLOCKS, 1, 1); - - CUdeviceptr dinput, doutput, dtimer; - checkCudaErrors(cuMemAlloc(&dinput, sizeof(float) * NUM_THREADS * 2)); - checkCudaErrors(cuMemAlloc(&doutput, sizeof(float) * NUM_BLOCKS)); - checkCudaErrors(cuMemAlloc(&dtimer, sizeof(clock_t) * NUM_BLOCKS * 2)); - checkCudaErrors(cuMemcpyHtoD(dinput, input, sizeof(float) * NUM_THREADS * 2)); - - void *arr[] = {(void *)&dinput, (void *)&doutput, (void *)&dtimer}; - - checkCudaErrors(cuLaunchKernel(kernel_addr, - cudaGridSize.x, - cudaGridSize.y, - cudaGridSize.z, /* grid dim */ - cudaBlockSize.x, - cudaBlockSize.y, - cudaBlockSize.z, /* block dim */ - sizeof(float) * 2 * NUM_THREADS, - 0, /* shared mem, stream */ - &arr[0], /* arguments */ - 0)); - - checkCudaErrors(cuCtxSynchronize()); - checkCudaErrors(cuMemcpyDtoH(timer, dtimer, sizeof(clock_t) * NUM_BLOCKS * 2)); - checkCudaErrors(cuMemFree(dinput)); - checkCudaErrors(cuMemFree(doutput)); - checkCudaErrors(cuMemFree(dtimer)); - - long double avgElapsedClocks = 0; - - for (int i = 0; i < NUM_BLOCKS; i++) { - avgElapsedClocks += (long double)(timer[i + NUM_BLOCKS] - timer[i]); - } - - avgElapsedClocks = avgElapsedClocks / NUM_BLOCKS; - printf("Average clocks/block = %Lf\n", avgElapsedClocks); - - return EXIT_SUCCESS; -} diff --git a/cpp/0_Introduction/clock_nvrtc/clock_kernel.cu b/cpp/0_Introduction/clock_nvrtc/clock_kernel.cu deleted file mode 100644 index 4bc854b9..00000000 --- a/cpp/0_Introduction/clock_nvrtc/clock_kernel.cu +++ /dev/null @@ -1,77 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This example shows how to use the clock function to measure the performance - * of block of threads of a kernel accurately. Blocks are executed in parallel - * and out of order. Since there's no synchronization mechanism between blocks, - * we measure the clock once for each block. The clock samples are written to - * device memory. - */ - -// This kernel computes a standard parallel reduction and evaluates the -// time it takes to do that for each block. The timing results are stored -// in device memory. - -extern "C" __global__ void timedReduction(const float *input, float *output, clock_t *timer) -{ - // __shared__ float shared[2 * blockDim.x]; - extern __shared__ float shared[]; - - const int tid = threadIdx.x; - const int bid = blockIdx.x; - - if (tid == 0) - timer[bid] = clock(); - - // Copy input. - shared[tid] = input[tid]; - shared[tid + blockDim.x] = input[tid + blockDim.x]; - - // Perform reduction to find minimum. - for (int d = blockDim.x; d > 0; d /= 2) { - __syncthreads(); - - if (tid < d) { - float f0 = shared[tid]; - float f1 = shared[tid + d]; - - if (f1 < f0) { - shared[tid] = f1; - } - } - } - - // Write result. - if (tid == 0) - output[bid] = shared[0]; - - __syncthreads(); - - if (tid == 0) - timer[bid + gridDim.x] = clock(); -} diff --git a/cpp/0_Introduction/cudaOpenMP/.vscode/c_cpp_properties.json b/cpp/0_Introduction/cudaOpenMP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/cudaOpenMP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/cudaOpenMP/.vscode/extensions.json b/cpp/0_Introduction/cudaOpenMP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/cudaOpenMP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/cudaOpenMP/CMakeLists.txt b/cpp/0_Introduction/cudaOpenMP/CMakeLists.txt index 991936c1..b7bb5899 100644 --- a/cpp/0_Introduction/cudaOpenMP/CMakeLists.txt +++ b/cpp/0_Introduction/cudaOpenMP/CMakeLists.txt @@ -1,43 +1,35 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cudaOpenMP LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) find_package(OpenMP) -# Source file if(OpenMP_CXX_FOUND) -# Add target for asyncAPI add_executable(cudaOpenMP cudaOpenMP.cu) -target_compile_options(cudaOpenMP PRIVATE $<$:--extended-lambda>) + target_compile_options(cudaOpenMP PRIVATE $<$:--extended-lambda>) -target_compile_features(cudaOpenMP PRIVATE cxx_std_17 cuda_std_17) + target_compile_features(cudaOpenMP PRIVATE cxx_std_17 cuda_std_17) - set_target_properties(cudaOpenMP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) target_link_libraries(cudaOpenMP PUBLIC OpenMP::OpenMP_CXX ) + + include(InstallSamples) + setup_samples_install() else() message(STATUS "OpenMP not found - will not build sample 'cudaOpenMP'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/fp16ScalarProduct/.vscode/c_cpp_properties.json b/cpp/0_Introduction/fp16ScalarProduct/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/fp16ScalarProduct/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/fp16ScalarProduct/.vscode/extensions.json b/cpp/0_Introduction/fp16ScalarProduct/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/fp16ScalarProduct/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/fp16ScalarProduct/CMakeLists.txt b/cpp/0_Introduction/fp16ScalarProduct/CMakeLists.txt index 3f2a3d34..17e81190 100644 --- a/cpp/0_Introduction/fp16ScalarProduct/CMakeLists.txt +++ b/cpp/0_Introduction/fp16ScalarProduct/CMakeLists.txt @@ -1,33 +1,31 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(fp16ScalarProduct LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) if(ENABLE_CUDA_DEBUG) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) else() set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) endif() -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for asyncAPI add_executable(fp16ScalarProduct fp16ScalarProduct.cu) target_compile_options(fp16ScalarProduct PRIVATE $<$:--extended-lambda>) target_compile_features(fp16ScalarProduct PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(fp16ScalarProduct PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/matrixMul/.vscode/c_cpp_properties.json b/cpp/0_Introduction/matrixMul/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/matrixMul/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/matrixMul/.vscode/extensions.json b/cpp/0_Introduction/matrixMul/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/matrixMul/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/matrixMul/CMakeLists.txt b/cpp/0_Introduction/matrixMul/CMakeLists.txt index 9293df3f..e38ad491 100644 --- a/cpp/0_Introduction/matrixMul/CMakeLists.txt +++ b/cpp/0_Introduction/matrixMul/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(matrixMul LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for asyncAPI add_executable(matrixMul matrixMul.cu) target_compile_options(matrixMul PRIVATE $<$:--extended-lambda>) target_compile_features(matrixMul PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(matrixMul PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/matrixMul/README.md b/cpp/0_Introduction/matrixMul/README.md index b7d9c7fb..5f6b5cd6 100644 --- a/cpp/0_Introduction/matrixMul/README.md +++ b/cpp/0_Introduction/matrixMul/README.md @@ -2,7 +2,7 @@ ## Description -This sample implements matrix multiplication and is exactly the same as the second example of the [Shared Memory](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#shared-memory) section of the programming guide. It has been written for clarity of exposition to illustrate various CUDA programming principles, not with the goal of providing the most performant generic kernel for matrix multiplication. To illustrate GPU performance for matrix multiply, this sample also shows how to use the CUDA 4.0+ interface for cuBLAS to demonstrate high-performance performance for matrix multiplication. +This sample implements matrix multiplication. It has been written for clarity of exposition to illustrate various CUDA programming principles, not with the goal of providing the most performant generic kernel for matrix multiplication. To illustrate GPU performance for matrix multiply, this sample also shows how to use the CUDA 4.0+ interface for cuBLAS to demonstrate high-performance matrix multiplication. ## Key Concepts @@ -14,7 +14,7 @@ CUDA Runtime API, Linear Algebra ## Supported OSes -Linux, Windows +Linux, Windows, QNX (QNX Safety cross-build with CUDA Safe toolkit) ## Supported CPU Architecture diff --git a/cpp/0_Introduction/matrixMul/matrixMul.cu b/cpp/0_Introduction/matrixMul/matrixMul.cu index 957be0f7..2e00c4ce 100644 --- a/cpp/0_Introduction/matrixMul/matrixMul.cu +++ b/cpp/0_Introduction/matrixMul/matrixMul.cu @@ -44,8 +44,12 @@ #include // CUDA runtime -#include #include +// The CUDA Safe runtime does not ship the profiler API; gate it on header availability. +#if defined(__has_include) && __has_include() +#include +#define HAVE_CUDA_PROFILER_API 1 +#endif // Helper functions and utilities to work with CUDA #include @@ -141,11 +145,11 @@ int MatrixMultiply(int argc, char **argv, int block_size, const dim3 &dimsA, con unsigned int size_A = dimsA.x * dimsA.y; unsigned int mem_size_A = sizeof(float) * size_A; float *h_A; - checkCudaErrors(cudaMallocHost(&h_A, mem_size_A)); + checkCudaErrors(cudaMallocHost(&h_A, mem_size_A, 0)); unsigned int size_B = dimsB.x * dimsB.y; unsigned int mem_size_B = sizeof(float) * size_B; float *h_B; - checkCudaErrors(cudaMallocHost(&h_B, mem_size_B)); + checkCudaErrors(cudaMallocHost(&h_B, mem_size_B, 0)); cudaStream_t stream; // Initialize host memory @@ -160,7 +164,7 @@ int MatrixMultiply(int argc, char **argv, int block_size, const dim3 &dimsA, con dim3 dimsC(dimsB.x, dimsA.y, 1); unsigned int mem_size_C = dimsC.x * dimsC.y * sizeof(float); float *h_C; - checkCudaErrors(cudaMallocHost(&h_C, mem_size_C)); + checkCudaErrors(cudaMallocHost(&h_C, mem_size_C, 0)); if (h_C == NULL) { fprintf(stderr, "Failed to allocate host matrix C!\n"); @@ -334,9 +338,13 @@ int main(int argc, char **argv) printf("MatrixA(%d,%d), MatrixB(%d,%d)\n", dimsA.x, dimsA.y, dimsB.x, dimsB.y); +#ifdef HAVE_CUDA_PROFILER_API checkCudaErrors(cudaProfilerStart()); +#endif int matrix_result = MatrixMultiply(argc, argv, block_size, dimsA, dimsB); +#ifdef HAVE_CUDA_PROFILER_API checkCudaErrors(cudaProfilerStop()); +#endif exit(matrix_result); } diff --git a/cpp/0_Introduction/matrixMulDrv/.vscode/c_cpp_properties.json b/cpp/0_Introduction/matrixMulDrv/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/matrixMulDrv/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/matrixMulDrv/.vscode/extensions.json b/cpp/0_Introduction/matrixMulDrv/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/matrixMulDrv/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/matrixMulDrv/CMakeLists.txt b/cpp/0_Introduction/matrixMulDrv/CMakeLists.txt index 735cbe62..39d7d95f 100644 --- a/cpp/0_Introduction/matrixMulDrv/CMakeLists.txt +++ b/cpp/0_Introduction/matrixMulDrv/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(matrixMulDrv LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for matrixMulDrv add_executable(matrixMulDrv matrixMulDrv.cpp) target_compile_options(matrixMulDrv PRIVATE $<$:--extended-lambda>) target_compile_features(matrixMulDrv PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(matrixMulDrv PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(matrixMulDrv PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -56,7 +48,7 @@ endif() add_custom_command( OUTPUT ${CUDA_FATBIN_FILE} - COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} ${ALL_CCFLAGS} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} + COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} DEPENDS ${CUDA_KERNEL_SOURCE} COMMENT "Building CUDA fatbin: ${CUDA_FATBIN_FILE}" ) @@ -67,6 +59,5 @@ add_custom_target(generate_fatbin_matmulDrv ALL DEPENDS ${CUDA_FATBIN_FILE}) # Ensure matrixMulDrv depends on the fatbin add_dependencies(matrixMulDrv generate_fatbin_matmulDrv) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/matrixMulDynlinkJIT/.vscode/c_cpp_properties.json b/cpp/0_Introduction/matrixMulDynlinkJIT/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/matrixMulDynlinkJIT/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/matrixMulDynlinkJIT/.vscode/extensions.json b/cpp/0_Introduction/matrixMulDynlinkJIT/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/matrixMulDynlinkJIT/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/matrixMulDynlinkJIT/CMakeLists.txt b/cpp/0_Introduction/matrixMulDynlinkJIT/CMakeLists.txt index 6cd324cd..fe545bac 100644 --- a/cpp/0_Introduction/matrixMulDynlinkJIT/CMakeLists.txt +++ b/cpp/0_Introduction/matrixMulDynlinkJIT/CMakeLists.txt @@ -1,26 +1,20 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(matrixMulDynlinkJIT LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for matrixMulDynlinkJIT add_executable(matrixMulDynlinkJIT cuda_drvapi_dynlink.c matrixMulDynlinkJIT.cpp matrixMul_gold.cpp matrixMul_kernel_32_ptxdump.c matrixMul_kernel_64_ptxdump.c) target_compile_options(matrixMulDynlinkJIT PRIVATE $<$:--extended-lambda>) @@ -28,7 +22,6 @@ target_compile_options(matrixMulDynlinkJIT PRIVATE $<$:-- target_compile_features(matrixMulDynlinkJIT PRIVATE cxx_std_17 cuda_std_17) set_target_properties(matrixMulDynlinkJIT PROPERTIES - CUDA_SEPARABLE_COMPILATION ON POSITION_INDEPENDENT_CODE OFF ) @@ -46,6 +39,5 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") target_link_libraries(matrixMulDynlinkJIT PUBLIC dl) endif() -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/matrixMul_nvrtc/.vscode/c_cpp_properties.json b/cpp/0_Introduction/matrixMul_nvrtc/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/matrixMul_nvrtc/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/matrixMul_nvrtc/.vscode/extensions.json b/cpp/0_Introduction/matrixMul_nvrtc/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/matrixMul_nvrtc/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/matrixMul_nvrtc/CMakeLists.txt b/cpp/0_Introduction/matrixMul_nvrtc/CMakeLists.txt deleted file mode 100644 index adaa1d48..00000000 --- a/cpp/0_Introduction/matrixMul_nvrtc/CMakeLists.txt +++ /dev/null @@ -1,61 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(matrixMul_nvrtc LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add sample target executable -add_executable(matrixMul_nvrtc matrixMul.cpp) - -target_compile_options(matrixMul_nvrtc PRIVATE $<$:--extended-lambda>) - -target_compile_features(matrixMul_nvrtc PRIVATE cxx_std_17 cuda_std_17) - -target_link_libraries(matrixMul_nvrtc PRIVATE - CUDA::nvrtc - CUDA::cuda_driver -) - -# The primary directory of CUDAToolkit_INCLUDE_DIRS is the CUDA Toolkit's include directory for finding the header files. -list(GET CUDAToolkit_INCLUDE_DIRS 0 CUDA_INCLUDE_DIR) - -# Copy clock_kernel.cu to the output directory -add_custom_command(TARGET matrixMul_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/matrixMul_kernel.cu ${CUDA_INCLUDE_DIR}/cooperative_groups.h ${CMAKE_CURRENT_BINARY_DIR} -) - -add_custom_command(TARGET matrixMul_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CUDA_INCLUDE_DIR}/cooperative_groups ${CMAKE_CURRENT_BINARY_DIR}/cooperative_groups -) - -add_custom_command(TARGET matrixMul_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CUDA_INCLUDE_DIR}/cccl/nv ${CMAKE_CURRENT_BINARY_DIR}/nv -) - -add_custom_command(TARGET matrixMul_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CUDA_INCLUDE_DIR}/cccl/cuda ${CMAKE_CURRENT_BINARY_DIR}/cuda -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/matrixMul_nvrtc/README.md b/cpp/0_Introduction/matrixMul_nvrtc/README.md deleted file mode 100644 index ee7b4c20..00000000 --- a/cpp/0_Introduction/matrixMul_nvrtc/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# matrixMul_nvrtc - Matrix Multiplication with libNVRTC - -## Description - -This sample implements matrix multiplication and is exactly the same as the second example of the [Shared Memory](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#shared-memory) section of the programming guide. It has been written for clarity of exposition to illustrate various CUDA programming principles, not with the goal of providing the most performant generic kernel for matrix multiplication. To illustrate GPU performance for matrix multiply, this sample also shows how to use the CUDA 4.0+ interface for cuBLAS to demonstrate high-performance performance for matrix multiplication. - -## Key Concepts - -CUDA Runtime API, Linear Algebra, Runtime Compilation - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows, QNX - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuMemcpyDtoH, cuLaunchKernel, cuMemcpyHtoD, cuCtxSynchronize, cuMemAlloc, cuMemFree, cuModuleGetFunction - -## Dependencies needed to build/run -[NVRTC](../../../README.md#nvrtc) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/0_Introduction/matrixMul_nvrtc/matrixMul.cpp b/cpp/0_Introduction/matrixMul_nvrtc/matrixMul.cpp deleted file mode 100644 index b54eee1f..00000000 --- a/cpp/0_Introduction/matrixMul_nvrtc/matrixMul.cpp +++ /dev/null @@ -1,249 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/** - * Matrix multiplication: C = A * B. - * Host code. - * - * This sample implements matrix multiplication as described in Chapter 3 - * of the programming guide. - * It has been written for clarity of exposition to illustrate various CUDA - * programming principles, not with the goal of providing the most - * performant generic kernel for matrix multiplication. - * - * See also: - * V. Volkov and J. Demmel, "Benchmarking GPUs to tune dense linear algebra," - * in Proc. 2008 ACM/IEEE Conf. on Supercomputing (SC '08), - * Piscataway, NJ: IEEE Press, 2008, pp. Art. 31:1-11. - */ - -// System includes -#include -#include - -// CUDA runtime -#include - -#include "nvrtc_helper.h" - -// Helper functions and utilities to work with CUDA -#include - -void constantInit(float *data, int size, float val) -{ - for (int i = 0; i < size; ++i) { - data[i] = val; - } -} - -/** - * Run a simple test of matrix multiplication using CUDA - */ -int matrixMultiply(int argc, char **argv, int block_size, dim3 &dimsA, dim3 &dimsB) -{ - // Allocate host memory for matrices A and B - unsigned int size_A = dimsA.x * dimsA.y; - unsigned int mem_size_A = sizeof(float) * size_A; - float *h_A = (float *)malloc(mem_size_A); - unsigned int size_B = dimsB.x * dimsB.y; - unsigned int mem_size_B = sizeof(float) * size_B; - float *h_B = (float *)malloc(mem_size_B); - - // Initialize host memory - const float valB = 0.01f; - constantInit(h_A, size_A, 1.0f); - constantInit(h_B, size_B, valB); - - // Allocate device memory - CUdeviceptr d_A, d_B, d_C; - - char *cubin, *kernel_file; - size_t cubinSize; - - kernel_file = sdkFindFilePath("matrixMul_kernel.cu", argv[0]); - compileFileToCUBIN(kernel_file, argc, argv, &cubin, &cubinSize, 1); - - CUmodule module = loadCUBIN(cubin, argc, argv); - - // Allocate host matrix C - dim3 dimsC(dimsB.x, dimsA.y, 1); - unsigned int mem_size_C = dimsC.x * dimsC.y * sizeof(float); - float *h_C = (float *)malloc(mem_size_C); - - if (h_C == NULL) { - fprintf(stderr, "Failed to allocate host matrix C!\n"); - exit(EXIT_FAILURE); - } - - checkCudaErrors(cuMemAlloc(&d_A, mem_size_A)); - checkCudaErrors(cuMemAlloc(&d_B, mem_size_B)); - checkCudaErrors(cuMemAlloc(&d_C, mem_size_C)); - - // copy host memory to device - checkCudaErrors(cuMemcpyHtoD(d_A, h_A, mem_size_A)); - checkCudaErrors(cuMemcpyHtoD(d_B, h_B, mem_size_B)); - - // Setup execution parameters - dim3 threads(block_size, block_size); - dim3 grid(dimsB.x / threads.x, dimsA.y / threads.y); - - // Create and start timer - printf("Computing result using CUDA Kernel...\n"); - - CUfunction kernel_addr; - if (block_size == 16) { - checkCudaErrors(cuModuleGetFunction(&kernel_addr, module, "matrixMulCUDA_block16")); - } - else { - checkCudaErrors(cuModuleGetFunction(&kernel_addr, module, "matrixMulCUDA_block32")); - } - - void *arr[] = {(void *)&d_C, (void *)&d_A, (void *)&d_B, (void *)&dimsA.x, (void *)&dimsB.x}; - - // Execute the kernel - int nIter = 300; - - for (int j = 0; j < nIter; j++) { - checkCudaErrors(cuLaunchKernel(kernel_addr, - grid.x, - grid.y, - grid.z, /* grid dim */ - threads.x, - threads.y, - threads.z, /* block dim */ - 0, - 0, /* shared mem, stream */ - &arr[0], /* arguments */ - 0)); - - checkCudaErrors(cuCtxSynchronize()); - } - - // Copy result from device to host - checkCudaErrors(cuMemcpyDtoH(h_C, d_C, mem_size_C)); - - printf("Checking computed result for correctness: "); - - bool correct = true; - - // test relative error by the formula - // |_cpu - _gpu|/<|x|, |y|> < eps - - double eps = 1.e-6; // machine zero - - for (int i = 0; i < (int)(dimsC.x * dimsC.y); i++) { - double abs_err = fabs(h_C[i] - (dimsA.x * valB)); - double dot_length = dimsA.x; - double abs_val = fabs(h_C[i]); - double rel_err = abs_err / abs_val / dot_length; - - if (rel_err > eps) { - printf("Error! Matrix[%05d]=%.8f, ref=%.8f error term is > %E\n", i, h_C[i], dimsA.x * valB, eps); - correct = false; - } - } - - printf("%s\n", correct ? "Result = PASS" : "Result = FAIL"); - - printf("\nNOTE: The CUDA Samples are not meant for performance measurements. " - "Results may vary when GPU Boost is enabled.\n"); - - // Clean up memory - free(h_A); - free(h_B); - free(h_C); - - checkCudaErrors(cuMemFree(d_A)); - checkCudaErrors(cuMemFree(d_B)); - checkCudaErrors(cuMemFree(d_C)); - - if (correct) { - return EXIT_SUCCESS; - } - else { - return EXIT_FAILURE; - } -} - -/** - * Program main - */ - -int main(int argc, char **argv) -{ - printf("[Matrix Multiply Using CUDA] - Starting...\n"); - - if (checkCmdLineFlag(argc, (const char **)argv, "help") || checkCmdLineFlag(argc, (const char **)argv, "?")) { - printf("Usage -device=n (n >= 0 for deviceID)\n"); - printf(" -wA=WidthA -hA=HeightA (Width x Height of Matrix A)\n"); - printf(" -wB=WidthB -hB=HeightB (Width x Height of Matrix B)\n"); - printf(" Note: Outer matrix dimensions of A & B matrices must be equal.\n"); - - exit(EXIT_SUCCESS); - } - - int block_size = 32; - - // original: - dim3 dimsA(5 * 2 * block_size, 5 * 2 * block_size, 1); - dim3 dimsB(5 * 4 * block_size, 5 * 2 * block_size, 1); - - // reduce sizes to avoid running out of memory - // dim3 dimsA(32,32, 1); - // dim3 dimsB(32,32,1); - - // width of Matrix A - if (checkCmdLineFlag(argc, (const char **)argv, "wA")) { - dimsA.x = getCmdLineArgumentInt(argc, (const char **)argv, "wA"); - } - - // height of Matrix A - if (checkCmdLineFlag(argc, (const char **)argv, "hA")) { - dimsA.y = getCmdLineArgumentInt(argc, (const char **)argv, "hA"); - } - - // width of Matrix B - if (checkCmdLineFlag(argc, (const char **)argv, "wB")) { - dimsB.x = getCmdLineArgumentInt(argc, (const char **)argv, "wB"); - } - - // height of Matrix B - if (checkCmdLineFlag(argc, (const char **)argv, "hB")) { - dimsB.y = getCmdLineArgumentInt(argc, (const char **)argv, "hB"); - } - - if (dimsA.x != dimsB.y) { - printf("Error: outer matrix dimensions must be equal. (%d != %d)\n", dimsA.x, dimsB.y); - exit(EXIT_FAILURE); - } - - printf("MatrixA(%d,%d), MatrixB(%d,%d)\n", dimsA.x, dimsA.y, dimsB.x, dimsB.y); - - int matrix_result = matrixMultiply(argc, argv, block_size, dimsA, dimsB); - - exit(matrix_result); -} diff --git a/cpp/0_Introduction/matrixMul_nvrtc/matrixMul_kernel.cu b/cpp/0_Introduction/matrixMul_nvrtc/matrixMul_kernel.cu deleted file mode 100644 index 0b8ce226..00000000 --- a/cpp/0_Introduction/matrixMul_nvrtc/matrixMul_kernel.cu +++ /dev/null @@ -1,130 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/** - * Matrix multiplication: C = A * B. - * Host code. - * - * This sample implements matrix multiplication as described in Chapter 3 - * of the programming guide. - * It has been written for clarity of exposition to illustrate various CUDA - * programming principles, not with the goal of providing the most - * performant generic kernel for matrix multiplication. - * - * See also: - * V. Volkov and J. Demmel, "Benchmarking GPUs to tune dense linear algebra," - * in Proc. 2008 ACM/IEEE Conf. on Supercomputing (SC '08), - * Piscataway, NJ: IEEE Press, 2008, pp. Art. 31:1-11. - */ - -/** - * Matrix multiplication (CUDA Kernel) on the device: C = A * B - * wA is A's width and wB is B's width - */ - -#include - -template __device__ void matrixMulCUDA(float *C, float *A, float *B, int wA, int wB) -{ - // Handle to thread block group - cooperative_groups::thread_block cta = cooperative_groups::this_thread_block(); - // Block index - int bx = blockIdx.x; - int by = blockIdx.y; - - // Thread index - int tx = threadIdx.x; - int ty = threadIdx.y; - - // Index of the first sub-matrix of A processed by the block - int aBegin = wA * BLOCK_SIZE * by; - - // Index of the last sub-matrix of A processed by the block - int aEnd = aBegin + wA - 1; - - // Step size used to iterate through the sub-matrices of A - int aStep = BLOCK_SIZE; - - // Index of the first sub-matrix of B processed by the block - int bBegin = BLOCK_SIZE * bx; - - // Step size used to iterate through the sub-matrices of B - int bStep = BLOCK_SIZE * wB; - - // Csub is used to store the element of the block sub-matrix - // that is computed by the thread - float Csub = 0; - - // Loop over all the sub-matrices of A and B - // required to compute the block sub-matrix - for (int a = aBegin, b = bBegin; a <= aEnd; a += aStep, b += bStep) { - // Declaration of the shared memory array As used to - // store the sub-matrix of A - __shared__ float As[BLOCK_SIZE][BLOCK_SIZE]; - - // Declaration of the shared memory array Bs used to - // store the sub-matrix of B - __shared__ float Bs[BLOCK_SIZE][BLOCK_SIZE]; - - // Load the matrices from device memory - // to shared memory; each thread loads - // one element of each matrix - As[ty][tx] = A[a + wA * ty + tx]; - Bs[ty][tx] = B[b + wB * ty + tx]; - - // Synchronize to make sure the matrices are loaded - cooperative_groups::sync(cta); - -// Multiply the two matrices together; -// each thread computes one element -// of the block sub-matrix -#pragma unroll - for (int k = 0; k < BLOCK_SIZE; ++k) { - Csub += As[ty][k] * Bs[k][tx]; - } - - // Synchronize to make sure that the preceding - // computation is done before loading two new - // sub-matrices of A and B in the next iteration - cooperative_groups::sync(cta); - } - - // Write the block sub-matrix to device memory; - // each thread writes one element - int c = wB * BLOCK_SIZE * by + BLOCK_SIZE * bx; - C[c + wB * ty + tx] = Csub; -} - -extern "C" __global__ void matrixMulCUDA_block16(float *C, float *A, float *B, int wA, int wB) -{ - matrixMulCUDA<16>(C, A, B, wA, wB); -} - -extern "C" __global__ void matrixMulCUDA_block32(float *C, float *A, float *B, int wA, int wB) -{ - matrixMulCUDA<32>(C, A, B, wA, wB); -} diff --git a/cpp/0_Introduction/mergeSort/.vscode/c_cpp_properties.json b/cpp/0_Introduction/mergeSort/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/mergeSort/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/mergeSort/.vscode/extensions.json b/cpp/0_Introduction/mergeSort/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/mergeSort/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/mergeSort/README.md b/cpp/0_Introduction/mergeSort/README.md deleted file mode 100644 index 9c95b53b..00000000 --- a/cpp/0_Introduction/mergeSort/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# mergeSort - Merge Sort - -## Description - -This sample implements a merge sort (also known as Batcher's sort), algorithms belonging to the class of sorting networks. While generally subefficient on large sequences compared to algorithms with better asymptotic algorithmic complexity (i.e. merge sort or radix sort), may be the algorithms of choice for sorting batches of short- to mid-sized (key, value) array pairs. Refer to the excellent tutorial by H. W. Lang http://www.iti.fh-flensburg.de/lang/algorithmen/sortieren/networks/indexen.htm - -## Key Concepts - -Data-Parallel Algorithms - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMalloc, cudaDeviceSynchronize, cudaMemcpy, cudaFree - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. - -## References (for more details) diff --git a/cpp/0_Introduction/mergeSort/bitonic.cu b/cpp/0_Introduction/mergeSort/bitonic.cu deleted file mode 100644 index 144e55e4..00000000 --- a/cpp/0_Introduction/mergeSort/bitonic.cu +++ /dev/null @@ -1,281 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include - -namespace cg = cooperative_groups; -#include -#include - -#include "mergeSort_common.h" - -inline __device__ void Comparator(uint &keyA, uint &valA, uint &keyB, uint &valB, uint arrowDir) -{ - uint t; - - if ((keyA > keyB) == arrowDir) { - t = keyA; - keyA = keyB; - keyB = t; - t = valA; - valA = valB; - valB = t; - } -} - -__global__ void -bitonicSortSharedKernel(uint *d_DstKey, uint *d_DstVal, uint *d_SrcKey, uint *d_SrcVal, uint arrayLength, uint sortDir) -{ - // Handle to thread block group - cg::thread_block cta = cg::this_thread_block(); - // Shared memory storage for one or more short vectors - __shared__ uint s_key[SHARED_SIZE_LIMIT]; - __shared__ uint s_val[SHARED_SIZE_LIMIT]; - - // Offset to the beginning of subbatch and load data - d_SrcKey += blockIdx.x * SHARED_SIZE_LIMIT + threadIdx.x; - d_SrcVal += blockIdx.x * SHARED_SIZE_LIMIT + threadIdx.x; - d_DstKey += blockIdx.x * SHARED_SIZE_LIMIT + threadIdx.x; - d_DstVal += blockIdx.x * SHARED_SIZE_LIMIT + threadIdx.x; - s_key[threadIdx.x + 0] = d_SrcKey[0]; - s_val[threadIdx.x + 0] = d_SrcVal[0]; - s_key[threadIdx.x + (SHARED_SIZE_LIMIT / 2)] = d_SrcKey[(SHARED_SIZE_LIMIT / 2)]; - s_val[threadIdx.x + (SHARED_SIZE_LIMIT / 2)] = d_SrcVal[(SHARED_SIZE_LIMIT / 2)]; - - for (uint size = 2; size < arrayLength; size <<= 1) { - // Bitonic merge - uint dir = (threadIdx.x & (size / 2)) != 0; - - for (uint stride = size / 2; stride > 0; stride >>= 1) { - cg::sync(cta); - uint pos = 2 * threadIdx.x - (threadIdx.x & (stride - 1)); - Comparator(s_key[pos + 0], s_val[pos + 0], s_key[pos + stride], s_val[pos + stride], dir); - } - } - - // ddd == sortDir for the last bitonic merge step - { - for (uint stride = arrayLength / 2; stride > 0; stride >>= 1) { - cg::sync(cta); - uint pos = 2 * threadIdx.x - (threadIdx.x & (stride - 1)); - Comparator(s_key[pos + 0], s_val[pos + 0], s_key[pos + stride], s_val[pos + stride], sortDir); - } - } - - cg::sync(cta); - d_DstKey[0] = s_key[threadIdx.x + 0]; - d_DstVal[0] = s_val[threadIdx.x + 0]; - d_DstKey[(SHARED_SIZE_LIMIT / 2)] = s_key[threadIdx.x + (SHARED_SIZE_LIMIT / 2)]; - d_DstVal[(SHARED_SIZE_LIMIT / 2)] = s_val[threadIdx.x + (SHARED_SIZE_LIMIT / 2)]; -} - -// Helper function (also used by odd-even merge sort) -extern "C" uint factorRadix2(uint *log2L, uint L) -{ - if (!L) { - *log2L = 0; - return 0; - } - else { - for (*log2L = 0; (L & 1) == 0; L >>= 1, *log2L++) - ; - - return L; - } -} - -extern "C" void bitonicSortShared(uint *d_DstKey, - uint *d_DstVal, - uint *d_SrcKey, - uint *d_SrcVal, - uint batchSize, - uint arrayLength, - uint sortDir) -{ - // Nothing to sort - if (arrayLength < 2) { - return; - } - - // Only power-of-two array lengths are supported by this implementation - uint log2L; - uint factorizationRemainder = factorRadix2(&log2L, arrayLength); - assert(factorizationRemainder == 1); - - uint blockCount = batchSize * arrayLength / SHARED_SIZE_LIMIT; - uint threadCount = SHARED_SIZE_LIMIT / 2; - - assert(arrayLength <= SHARED_SIZE_LIMIT); - assert((batchSize * arrayLength) % SHARED_SIZE_LIMIT == 0); - - bitonicSortSharedKernel<<>>(d_DstKey, d_DstVal, d_SrcKey, d_SrcVal, arrayLength, sortDir); - getLastCudaError("bitonicSortSharedKernel<<<>>> failed!\n"); -} - -//////////////////////////////////////////////////////////////////////////////// -// Merge step 3: merge elementary intervals -//////////////////////////////////////////////////////////////////////////////// -static inline __host__ __device__ uint iDivUp(uint a, uint b) { return ((a % b) == 0) ? (a / b) : (a / b + 1); } - -static inline __host__ __device__ uint getSampleCount(uint dividend) { return iDivUp(dividend, SAMPLE_STRIDE); } - -template -static inline __device__ void -ComparatorExtended(uint &keyA, uint &valA, uint &flagA, uint &keyB, uint &valB, uint &flagB, uint arrowDir) -{ - uint t; - - if ((!(flagA || flagB) && ((keyA > keyB) == arrowDir)) || ((arrowDir == sortDir) && (flagA == 1)) - || ((arrowDir != sortDir) && (flagB == 1))) { - t = keyA; - keyA = keyB; - keyB = t; - t = valA; - valA = valB; - valB = t; - t = flagA; - flagA = flagB; - flagB = t; - } -} - -template -__global__ void bitonicMergeElementaryIntervalsKernel(uint *d_DstKey, - uint *d_DstVal, - uint *d_SrcKey, - uint *d_SrcVal, - uint *d_LimitsA, - uint *d_LimitsB, - uint stride, - uint N) -{ - // Handle to thread block group - cg::thread_block cta = cg::this_thread_block(); - __shared__ uint s_key[2 * SAMPLE_STRIDE]; - __shared__ uint s_val[2 * SAMPLE_STRIDE]; - __shared__ uint s_inf[2 * SAMPLE_STRIDE]; - - const uint intervalI = blockIdx.x & ((2 * stride) / SAMPLE_STRIDE - 1); - const uint segmentBase = (blockIdx.x - intervalI) * SAMPLE_STRIDE; - d_SrcKey += segmentBase; - d_SrcVal += segmentBase; - d_DstKey += segmentBase; - d_DstVal += segmentBase; - - // Set up threadblock-wide parameters - __shared__ uint startSrcA, lenSrcA, startSrcB, lenSrcB, startDst; - - if (threadIdx.x == 0) { - uint segmentElementsA = stride; - uint segmentElementsB = umin(stride, N - segmentBase - stride); - uint segmentSamplesA = stride / SAMPLE_STRIDE; - uint segmentSamplesB = getSampleCount(segmentElementsB); - uint segmentSamples = segmentSamplesA + segmentSamplesB; - - startSrcA = d_LimitsA[blockIdx.x]; - startSrcB = d_LimitsB[blockIdx.x]; - startDst = startSrcA + startSrcB; - - uint endSrcA = (intervalI + 1 < segmentSamples) ? d_LimitsA[blockIdx.x + 1] : segmentElementsA; - uint endSrcB = (intervalI + 1 < segmentSamples) ? d_LimitsB[blockIdx.x + 1] : segmentElementsB; - lenSrcA = endSrcA - startSrcA; - lenSrcB = endSrcB - startSrcB; - } - - s_inf[threadIdx.x + 0] = 1; - s_inf[threadIdx.x + SAMPLE_STRIDE] = 1; - - // Load input data - cg::sync(cta); - - if (threadIdx.x < lenSrcA) { - s_key[threadIdx.x] = d_SrcKey[0 + startSrcA + threadIdx.x]; - s_val[threadIdx.x] = d_SrcVal[0 + startSrcA + threadIdx.x]; - s_inf[threadIdx.x] = 0; - } - - // Prepare for bitonic merge by inversing the ordering - if (threadIdx.x < lenSrcB) { - s_key[2 * SAMPLE_STRIDE - 1 - threadIdx.x] = d_SrcKey[stride + startSrcB + threadIdx.x]; - s_val[2 * SAMPLE_STRIDE - 1 - threadIdx.x] = d_SrcVal[stride + startSrcB + threadIdx.x]; - s_inf[2 * SAMPLE_STRIDE - 1 - threadIdx.x] = 0; - } - - //"Extended" bitonic merge - for (uint stride = SAMPLE_STRIDE; stride > 0; stride >>= 1) { - cg::sync(cta); - uint pos = 2 * threadIdx.x - (threadIdx.x & (stride - 1)); - ComparatorExtended(s_key[pos + 0], - s_val[pos + 0], - s_inf[pos + 0], - s_key[pos + stride], - s_val[pos + stride], - s_inf[pos + stride], - sortDir); - } - - // Store sorted data - cg::sync(cta); - d_DstKey += startDst; - d_DstVal += startDst; - - if (threadIdx.x < lenSrcA) { - d_DstKey[threadIdx.x] = s_key[threadIdx.x]; - d_DstVal[threadIdx.x] = s_val[threadIdx.x]; - } - - if (threadIdx.x < lenSrcB) { - d_DstKey[lenSrcA + threadIdx.x] = s_key[lenSrcA + threadIdx.x]; - d_DstVal[lenSrcA + threadIdx.x] = s_val[lenSrcA + threadIdx.x]; - } -} - -extern "C" void bitonicMergeElementaryIntervals(uint *d_DstKey, - uint *d_DstVal, - uint *d_SrcKey, - uint *d_SrcVal, - uint *d_LimitsA, - uint *d_LimitsB, - uint stride, - uint N, - uint sortDir) -{ - uint lastSegmentElements = N % (2 * stride); - - uint mergePairs = (lastSegmentElements > stride) ? getSampleCount(N) : (N - lastSegmentElements) / SAMPLE_STRIDE; - - if (sortDir) { - bitonicMergeElementaryIntervalsKernel<1U> - <<>>(d_DstKey, d_DstVal, d_SrcKey, d_SrcVal, d_LimitsA, d_LimitsB, stride, N); - getLastCudaError("mergeElementaryIntervalsKernel<1> failed\n"); - } - else { - bitonicMergeElementaryIntervalsKernel<0U> - <<>>(d_DstKey, d_DstVal, d_SrcKey, d_SrcVal, d_LimitsA, d_LimitsB, stride, N); - getLastCudaError("mergeElementaryIntervalsKernel<0> failed\n"); - } -} diff --git a/cpp/0_Introduction/mergeSort/main.cpp b/cpp/0_Introduction/mergeSort/main.cpp deleted file mode 100644 index 8eb50184..00000000 --- a/cpp/0_Introduction/mergeSort/main.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include -#include -#include -#include -#include - -#include "mergeSort_common.h" - -//////////////////////////////////////////////////////////////////////////////// -// Test driver -//////////////////////////////////////////////////////////////////////////////// -int main(int argc, char **argv) -{ - uint *h_SrcKey, *h_SrcVal, *h_DstKey, *h_DstVal; - uint *d_SrcKey, *d_SrcVal, *d_BufKey, *d_BufVal, *d_DstKey, *d_DstVal; - StopWatchInterface *hTimer = NULL; - - const uint N = 4 * 1048576; - const uint DIR = 1; - const uint numValues = 65536; - - printf("%s Starting...\n\n", argv[0]); - - int dev = findCudaDevice(argc, (const char **)argv); - - if (dev == -1) { - return EXIT_FAILURE; - } - - printf("Allocating and initializing host arrays...\n\n"); - sdkCreateTimer(&hTimer); - h_SrcKey = (uint *)malloc(N * sizeof(uint)); - h_SrcVal = (uint *)malloc(N * sizeof(uint)); - h_DstKey = (uint *)malloc(N * sizeof(uint)); - h_DstVal = (uint *)malloc(N * sizeof(uint)); - - srand(2009); - - for (uint i = 0; i < N; i++) { - h_SrcKey[i] = rand() % numValues; - } - - fillValues(h_SrcVal, N); - - printf("Allocating and initializing CUDA arrays...\n\n"); - checkCudaErrors(cudaMalloc((void **)&d_DstKey, N * sizeof(uint))); - checkCudaErrors(cudaMalloc((void **)&d_DstVal, N * sizeof(uint))); - checkCudaErrors(cudaMalloc((void **)&d_BufKey, N * sizeof(uint))); - checkCudaErrors(cudaMalloc((void **)&d_BufVal, N * sizeof(uint))); - checkCudaErrors(cudaMalloc((void **)&d_SrcKey, N * sizeof(uint))); - checkCudaErrors(cudaMalloc((void **)&d_SrcVal, N * sizeof(uint))); - checkCudaErrors(cudaMemcpy(d_SrcKey, h_SrcKey, N * sizeof(uint), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_SrcVal, h_SrcVal, N * sizeof(uint), cudaMemcpyHostToDevice)); - - printf("Initializing GPU merge sort...\n"); - initMergeSort(); - - printf("Running GPU merge sort...\n"); - checkCudaErrors(cudaDeviceSynchronize()); - sdkResetTimer(&hTimer); - sdkStartTimer(&hTimer); - mergeSort(d_DstKey, d_DstVal, d_BufKey, d_BufVal, d_SrcKey, d_SrcVal, N, DIR); - checkCudaErrors(cudaDeviceSynchronize()); - sdkStopTimer(&hTimer); - printf("Time: %f ms\n", sdkGetTimerValue(&hTimer)); - - printf("Reading back GPU merge sort results...\n"); - checkCudaErrors(cudaMemcpy(h_DstKey, d_DstKey, N * sizeof(uint), cudaMemcpyDeviceToHost)); - checkCudaErrors(cudaMemcpy(h_DstVal, d_DstVal, N * sizeof(uint), cudaMemcpyDeviceToHost)); - - printf("Inspecting the results...\n"); - uint keysFlag = validateSortedKeys(h_DstKey, h_SrcKey, 1, N, numValues, DIR); - - uint valuesFlag = validateSortedValues(h_DstKey, h_DstVal, h_SrcKey, 1, N); - - printf("Shutting down...\n"); - closeMergeSort(); - sdkDeleteTimer(&hTimer); - checkCudaErrors(cudaFree(d_SrcVal)); - checkCudaErrors(cudaFree(d_SrcKey)); - checkCudaErrors(cudaFree(d_BufVal)); - checkCudaErrors(cudaFree(d_BufKey)); - checkCudaErrors(cudaFree(d_DstVal)); - checkCudaErrors(cudaFree(d_DstKey)); - free(h_DstVal); - free(h_DstKey); - free(h_SrcVal); - free(h_SrcKey); - - exit((keysFlag && valuesFlag) ? EXIT_SUCCESS : EXIT_FAILURE); -} diff --git a/cpp/0_Introduction/mergeSort/mergeSort.cu b/cpp/0_Introduction/mergeSort/mergeSort.cu deleted file mode 100644 index d2048a17..00000000 --- a/cpp/0_Introduction/mergeSort/mergeSort.cu +++ /dev/null @@ -1,537 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * Based on "Designing efficient sorting algorithms for manycore GPUs" - * by Nadathur Satish, Mark Harris, and Michael Garland - * http://mgarland.org/files/papers/gpusort-ipdps09.pdf - * - * Victor Podlozhnyuk 09/24/2009 - */ - -#include -#include - -namespace cg = cooperative_groups; - -#include - -#include "mergeSort_common.h" - -//////////////////////////////////////////////////////////////////////////////// -// Helper functions -//////////////////////////////////////////////////////////////////////////////// -static inline __host__ __device__ uint iDivUp(uint a, uint b) { return ((a % b) == 0) ? (a / b) : (a / b + 1); } - -static inline __host__ __device__ uint getSampleCount(uint dividend) { return iDivUp(dividend, SAMPLE_STRIDE); } - -#define W (sizeof(uint) * 8) -static inline __device__ uint nextPowerOfTwo(uint x) -{ - /* - --x; - x |= x >> 1; - x |= x >> 2; - x |= x >> 4; - x |= x >> 8; - x |= x >> 16; - return ++x; - */ - return 1U << (W - __clz(x - 1)); -} - -template static inline __device__ uint binarySearchInclusive(uint val, uint *data, uint L, uint stride) -{ - if (L == 0) { - return 0; - } - - uint pos = 0; - - for (; stride > 0; stride >>= 1) { - uint newPos = umin(pos + stride, L); - - if ((sortDir && (data[newPos - 1] <= val)) || (!sortDir && (data[newPos - 1] >= val))) { - pos = newPos; - } - } - - return pos; -} - -template static inline __device__ uint binarySearchExclusive(uint val, uint *data, uint L, uint stride) -{ - if (L == 0) { - return 0; - } - - uint pos = 0; - - for (; stride > 0; stride >>= 1) { - uint newPos = umin(pos + stride, L); - - if ((sortDir && (data[newPos - 1] < val)) || (!sortDir && (data[newPos - 1] > val))) { - pos = newPos; - } - } - - return pos; -} - -//////////////////////////////////////////////////////////////////////////////// -// Bottom-level merge sort (binary search-based) -//////////////////////////////////////////////////////////////////////////////// -template -__global__ void mergeSortSharedKernel(uint *d_DstKey, uint *d_DstVal, uint *d_SrcKey, uint *d_SrcVal, uint arrayLength) -{ - // Handle to thread block group - cg::thread_block cta = cg::this_thread_block(); - __shared__ uint s_key[SHARED_SIZE_LIMIT]; - __shared__ uint s_val[SHARED_SIZE_LIMIT]; - - d_SrcKey += blockIdx.x * SHARED_SIZE_LIMIT + threadIdx.x; - d_SrcVal += blockIdx.x * SHARED_SIZE_LIMIT + threadIdx.x; - d_DstKey += blockIdx.x * SHARED_SIZE_LIMIT + threadIdx.x; - d_DstVal += blockIdx.x * SHARED_SIZE_LIMIT + threadIdx.x; - s_key[threadIdx.x + 0] = d_SrcKey[0]; - s_val[threadIdx.x + 0] = d_SrcVal[0]; - s_key[threadIdx.x + (SHARED_SIZE_LIMIT / 2)] = d_SrcKey[(SHARED_SIZE_LIMIT / 2)]; - s_val[threadIdx.x + (SHARED_SIZE_LIMIT / 2)] = d_SrcVal[(SHARED_SIZE_LIMIT / 2)]; - - for (uint stride = 1; stride < arrayLength; stride <<= 1) { - uint lPos = threadIdx.x & (stride - 1); - uint *baseKey = s_key + 2 * (threadIdx.x - lPos); - uint *baseVal = s_val + 2 * (threadIdx.x - lPos); - - cg::sync(cta); - uint keyA = baseKey[lPos + 0]; - uint valA = baseVal[lPos + 0]; - uint keyB = baseKey[lPos + stride]; - uint valB = baseVal[lPos + stride]; - uint posA = binarySearchExclusive(keyA, baseKey + stride, stride, stride) + lPos; - uint posB = binarySearchInclusive(keyB, baseKey + 0, stride, stride) + lPos; - - cg::sync(cta); - baseKey[posA] = keyA; - baseVal[posA] = valA; - baseKey[posB] = keyB; - baseVal[posB] = valB; - } - - cg::sync(cta); - d_DstKey[0] = s_key[threadIdx.x + 0]; - d_DstVal[0] = s_val[threadIdx.x + 0]; - d_DstKey[(SHARED_SIZE_LIMIT / 2)] = s_key[threadIdx.x + (SHARED_SIZE_LIMIT / 2)]; - d_DstVal[(SHARED_SIZE_LIMIT / 2)] = s_val[threadIdx.x + (SHARED_SIZE_LIMIT / 2)]; -} - -static void mergeSortShared(uint *d_DstKey, - uint *d_DstVal, - uint *d_SrcKey, - uint *d_SrcVal, - uint batchSize, - uint arrayLength, - uint sortDir) -{ - if (arrayLength < 2) { - return; - } - - assert(SHARED_SIZE_LIMIT % arrayLength == 0); - assert(((batchSize * arrayLength) % SHARED_SIZE_LIMIT) == 0); - uint blockCount = batchSize * arrayLength / SHARED_SIZE_LIMIT; - uint threadCount = SHARED_SIZE_LIMIT / 2; - - if (sortDir) { - mergeSortSharedKernel<1U><<>>(d_DstKey, d_DstVal, d_SrcKey, d_SrcVal, arrayLength); - getLastCudaError("mergeSortShared<1><<<>>> failed\n"); - } - else { - mergeSortSharedKernel<0U><<>>(d_DstKey, d_DstVal, d_SrcKey, d_SrcVal, arrayLength); - getLastCudaError("mergeSortShared<0><<<>>> failed\n"); - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Merge step 1: generate sample ranks -//////////////////////////////////////////////////////////////////////////////// -template -__global__ void -generateSampleRanksKernel(uint *d_RanksA, uint *d_RanksB, uint *d_SrcKey, uint stride, uint N, uint threadCount) -{ - uint pos = blockIdx.x * blockDim.x + threadIdx.x; - - if (pos >= threadCount) { - return; - } - - const uint i = pos & ((stride / SAMPLE_STRIDE) - 1); - const uint segmentBase = (pos - i) * (2 * SAMPLE_STRIDE); - d_SrcKey += segmentBase; - d_RanksA += segmentBase / SAMPLE_STRIDE; - d_RanksB += segmentBase / SAMPLE_STRIDE; - - const uint segmentElementsA = stride; - const uint segmentElementsB = umin(stride, N - segmentBase - stride); - const uint segmentSamplesA = getSampleCount(segmentElementsA); - const uint segmentSamplesB = getSampleCount(segmentElementsB); - - if (i < segmentSamplesA) { - d_RanksA[i] = i * SAMPLE_STRIDE; - d_RanksB[i] = binarySearchExclusive( - d_SrcKey[i * SAMPLE_STRIDE], d_SrcKey + stride, segmentElementsB, nextPowerOfTwo(segmentElementsB)); - } - - if (i < segmentSamplesB) { - d_RanksB[(stride / SAMPLE_STRIDE) + i] = i * SAMPLE_STRIDE; - d_RanksA[(stride / SAMPLE_STRIDE) + i] = binarySearchInclusive( - d_SrcKey[stride + i * SAMPLE_STRIDE], d_SrcKey + 0, segmentElementsA, nextPowerOfTwo(segmentElementsA)); - } -} - -static void generateSampleRanks(uint *d_RanksA, uint *d_RanksB, uint *d_SrcKey, uint stride, uint N, uint sortDir) -{ - uint lastSegmentElements = N % (2 * stride); - uint threadCount = (lastSegmentElements > stride) ? (N + 2 * stride - lastSegmentElements) / (2 * SAMPLE_STRIDE) - : (N - lastSegmentElements) / (2 * SAMPLE_STRIDE); - - if (sortDir) { - generateSampleRanksKernel<1U> - <<>>(d_RanksA, d_RanksB, d_SrcKey, stride, N, threadCount); - getLastCudaError("generateSampleRanksKernel<1U><<<>>> failed\n"); - } - else { - generateSampleRanksKernel<0U> - <<>>(d_RanksA, d_RanksB, d_SrcKey, stride, N, threadCount); - getLastCudaError("generateSampleRanksKernel<0U><<<>>> failed\n"); - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Merge step 2: generate sample ranks and indices -//////////////////////////////////////////////////////////////////////////////// -__global__ void mergeRanksAndIndicesKernel(uint *d_Limits, uint *d_Ranks, uint stride, uint N, uint threadCount) -{ - uint pos = blockIdx.x * blockDim.x + threadIdx.x; - - if (pos >= threadCount) { - return; - } - - const uint i = pos & ((stride / SAMPLE_STRIDE) - 1); - const uint segmentBase = (pos - i) * (2 * SAMPLE_STRIDE); - d_Ranks += (pos - i) * 2; - d_Limits += (pos - i) * 2; - - const uint segmentElementsA = stride; - const uint segmentElementsB = umin(stride, N - segmentBase - stride); - const uint segmentSamplesA = getSampleCount(segmentElementsA); - const uint segmentSamplesB = getSampleCount(segmentElementsB); - - if (i < segmentSamplesA) { - uint dstPos = binarySearchExclusive<1U>( - d_Ranks[i], d_Ranks + segmentSamplesA, segmentSamplesB, nextPowerOfTwo(segmentSamplesB)) - + i; - d_Limits[dstPos] = d_Ranks[i]; - } - - if (i < segmentSamplesB) { - uint dstPos = binarySearchInclusive<1U>( - d_Ranks[segmentSamplesA + i], d_Ranks, segmentSamplesA, nextPowerOfTwo(segmentSamplesA)) - + i; - d_Limits[dstPos] = d_Ranks[segmentSamplesA + i]; - } -} - -static void mergeRanksAndIndices(uint *d_LimitsA, uint *d_LimitsB, uint *d_RanksA, uint *d_RanksB, uint stride, uint N) -{ - uint lastSegmentElements = N % (2 * stride); - uint threadCount = (lastSegmentElements > stride) ? (N + 2 * stride - lastSegmentElements) / (2 * SAMPLE_STRIDE) - : (N - lastSegmentElements) / (2 * SAMPLE_STRIDE); - - mergeRanksAndIndicesKernel<<>>(d_LimitsA, d_RanksA, stride, N, threadCount); - getLastCudaError("mergeRanksAndIndicesKernel(A)<<<>>> failed\n"); - - mergeRanksAndIndicesKernel<<>>(d_LimitsB, d_RanksB, stride, N, threadCount); - getLastCudaError("mergeRanksAndIndicesKernel(B)<<<>>> failed\n"); -} - -//////////////////////////////////////////////////////////////////////////////// -// Merge step 3: merge elementary intervals -//////////////////////////////////////////////////////////////////////////////// -template -inline __device__ void merge(uint *dstKey, - uint *dstVal, - uint *srcAKey, - uint *srcAVal, - uint *srcBKey, - uint *srcBVal, - uint lenA, - uint nPowTwoLenA, - uint lenB, - uint nPowTwoLenB, - cg::thread_block cta) -{ - uint keyA, valA, keyB, valB, dstPosA, dstPosB; - - if (threadIdx.x < lenA) { - keyA = srcAKey[threadIdx.x]; - valA = srcAVal[threadIdx.x]; - dstPosA = binarySearchExclusive(keyA, srcBKey, lenB, nPowTwoLenB) + threadIdx.x; - } - - if (threadIdx.x < lenB) { - keyB = srcBKey[threadIdx.x]; - valB = srcBVal[threadIdx.x]; - dstPosB = binarySearchInclusive(keyB, srcAKey, lenA, nPowTwoLenA) + threadIdx.x; - } - - cg::sync(cta); - - if (threadIdx.x < lenA) { - dstKey[dstPosA] = keyA; - dstVal[dstPosA] = valA; - } - - if (threadIdx.x < lenB) { - dstKey[dstPosB] = keyB; - dstVal[dstPosB] = valB; - } -} - -template -__global__ void mergeElementaryIntervalsKernel(uint *d_DstKey, - uint *d_DstVal, - uint *d_SrcKey, - uint *d_SrcVal, - uint *d_LimitsA, - uint *d_LimitsB, - uint stride, - uint N) -{ - // Handle to thread block group - cg::thread_block cta = cg::this_thread_block(); - __shared__ uint s_key[2 * SAMPLE_STRIDE]; - __shared__ uint s_val[2 * SAMPLE_STRIDE]; - - const uint intervalI = blockIdx.x & ((2 * stride) / SAMPLE_STRIDE - 1); - const uint segmentBase = (blockIdx.x - intervalI) * SAMPLE_STRIDE; - d_SrcKey += segmentBase; - d_SrcVal += segmentBase; - d_DstKey += segmentBase; - d_DstVal += segmentBase; - - // Set up threadblock-wide parameters - __shared__ uint startSrcA, startSrcB, lenSrcA, lenSrcB, startDstA, startDstB; - - if (threadIdx.x == 0) { - uint segmentElementsA = stride; - uint segmentElementsB = umin(stride, N - segmentBase - stride); - uint segmentSamplesA = getSampleCount(segmentElementsA); - uint segmentSamplesB = getSampleCount(segmentElementsB); - uint segmentSamples = segmentSamplesA + segmentSamplesB; - - startSrcA = d_LimitsA[blockIdx.x]; - startSrcB = d_LimitsB[blockIdx.x]; - uint endSrcA = (intervalI + 1 < segmentSamples) ? d_LimitsA[blockIdx.x + 1] : segmentElementsA; - uint endSrcB = (intervalI + 1 < segmentSamples) ? d_LimitsB[blockIdx.x + 1] : segmentElementsB; - lenSrcA = endSrcA - startSrcA; - lenSrcB = endSrcB - startSrcB; - startDstA = startSrcA + startSrcB; - startDstB = startDstA + lenSrcA; - } - - // Load main input data - cg::sync(cta); - - if (threadIdx.x < lenSrcA) { - s_key[threadIdx.x + 0] = d_SrcKey[0 + startSrcA + threadIdx.x]; - s_val[threadIdx.x + 0] = d_SrcVal[0 + startSrcA + threadIdx.x]; - } - - if (threadIdx.x < lenSrcB) { - s_key[threadIdx.x + SAMPLE_STRIDE] = d_SrcKey[stride + startSrcB + threadIdx.x]; - s_val[threadIdx.x + SAMPLE_STRIDE] = d_SrcVal[stride + startSrcB + threadIdx.x]; - } - - // Merge data in shared memory - cg::sync(cta); - merge(s_key, - s_val, - s_key + 0, - s_val + 0, - s_key + SAMPLE_STRIDE, - s_val + SAMPLE_STRIDE, - lenSrcA, - SAMPLE_STRIDE, - lenSrcB, - SAMPLE_STRIDE, - cta); - - // Store merged data - cg::sync(cta); - - if (threadIdx.x < lenSrcA) { - d_DstKey[startDstA + threadIdx.x] = s_key[threadIdx.x]; - d_DstVal[startDstA + threadIdx.x] = s_val[threadIdx.x]; - } - - if (threadIdx.x < lenSrcB) { - d_DstKey[startDstB + threadIdx.x] = s_key[lenSrcA + threadIdx.x]; - d_DstVal[startDstB + threadIdx.x] = s_val[lenSrcA + threadIdx.x]; - } -} - -static void mergeElementaryIntervals(uint *d_DstKey, - uint *d_DstVal, - uint *d_SrcKey, - uint *d_SrcVal, - uint *d_LimitsA, - uint *d_LimitsB, - uint stride, - uint N, - uint sortDir) -{ - uint lastSegmentElements = N % (2 * stride); - uint mergePairs = (lastSegmentElements > stride) ? getSampleCount(N) : (N - lastSegmentElements) / SAMPLE_STRIDE; - - if (sortDir) { - mergeElementaryIntervalsKernel<1U> - <<>>(d_DstKey, d_DstVal, d_SrcKey, d_SrcVal, d_LimitsA, d_LimitsB, stride, N); - getLastCudaError("mergeElementaryIntervalsKernel<1> failed\n"); - } - else { - mergeElementaryIntervalsKernel<0U> - <<>>(d_DstKey, d_DstVal, d_SrcKey, d_SrcVal, d_LimitsA, d_LimitsB, stride, N); - getLastCudaError("mergeElementaryIntervalsKernel<0> failed\n"); - } -} - -extern "C" void bitonicSortShared(uint *d_DstKey, - uint *d_DstVal, - uint *d_SrcKey, - uint *d_SrcVal, - uint batchSize, - uint arrayLength, - uint sortDir); - -extern "C" void bitonicMergeElementaryIntervals(uint *d_DstKey, - uint *d_DstVal, - uint *d_SrcKey, - uint *d_SrcVal, - uint *d_LimitsA, - uint *d_LimitsB, - uint stride, - uint N, - uint sortDir); - -static uint *d_RanksA, *d_RanksB, *d_LimitsA, *d_LimitsB; -static const uint MAX_SAMPLE_COUNT = 32768; - -extern "C" void initMergeSort(void) -{ - checkCudaErrors(cudaMalloc((void **)&d_RanksA, MAX_SAMPLE_COUNT * sizeof(uint))); - checkCudaErrors(cudaMalloc((void **)&d_RanksB, MAX_SAMPLE_COUNT * sizeof(uint))); - checkCudaErrors(cudaMalloc((void **)&d_LimitsA, MAX_SAMPLE_COUNT * sizeof(uint))); - checkCudaErrors(cudaMalloc((void **)&d_LimitsB, MAX_SAMPLE_COUNT * sizeof(uint))); -} - -extern "C" void closeMergeSort(void) -{ - checkCudaErrors(cudaFree(d_RanksA)); - checkCudaErrors(cudaFree(d_RanksB)); - checkCudaErrors(cudaFree(d_LimitsB)); - checkCudaErrors(cudaFree(d_LimitsA)); -} - -extern "C" void mergeSort(uint *d_DstKey, - uint *d_DstVal, - uint *d_BufKey, - uint *d_BufVal, - uint *d_SrcKey, - uint *d_SrcVal, - uint N, - uint sortDir) -{ - uint stageCount = 0; - - for (uint stride = SHARED_SIZE_LIMIT; stride < N; stride <<= 1, stageCount++) - ; - - uint *ikey, *ival, *okey, *oval; - - if (stageCount & 1) { - ikey = d_BufKey; - ival = d_BufVal; - okey = d_DstKey; - oval = d_DstVal; - } - else { - ikey = d_DstKey; - ival = d_DstVal; - okey = d_BufKey; - oval = d_BufVal; - } - - assert(N <= (SAMPLE_STRIDE * MAX_SAMPLE_COUNT)); - assert(N % SHARED_SIZE_LIMIT == 0); - mergeSortShared(ikey, ival, d_SrcKey, d_SrcVal, N / SHARED_SIZE_LIMIT, SHARED_SIZE_LIMIT, sortDir); - - for (uint stride = SHARED_SIZE_LIMIT; stride < N; stride <<= 1) { - uint lastSegmentElements = N % (2 * stride); - - // Find sample ranks and prepare for limiters merge - generateSampleRanks(d_RanksA, d_RanksB, ikey, stride, N, sortDir); - - // Merge ranks and indices - mergeRanksAndIndices(d_LimitsA, d_LimitsB, d_RanksA, d_RanksB, stride, N); - - // Merge elementary intervals - mergeElementaryIntervals(okey, oval, ikey, ival, d_LimitsA, d_LimitsB, stride, N, sortDir); - - if (lastSegmentElements <= stride) { - // Last merge segment consists of a single array which just needs to be - // passed through - checkCudaErrors(cudaMemcpy(okey + (N - lastSegmentElements), - ikey + (N - lastSegmentElements), - lastSegmentElements * sizeof(uint), - cudaMemcpyDeviceToDevice)); - checkCudaErrors(cudaMemcpy(oval + (N - lastSegmentElements), - ival + (N - lastSegmentElements), - lastSegmentElements * sizeof(uint), - cudaMemcpyDeviceToDevice)); - } - - uint *t; - t = ikey; - ikey = okey; - okey = t; - t = ival; - ival = oval; - oval = t; - } -} diff --git a/cpp/0_Introduction/mergeSort/mergeSort_common.h b/cpp/0_Introduction/mergeSort/mergeSort_common.h deleted file mode 100644 index 10835ff4..00000000 --- a/cpp/0_Introduction/mergeSort/mergeSort_common.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -//////////////////////////////////////////////////////////////////////////////// -// Shortcut definitions -//////////////////////////////////////////////////////////////////////////////// -typedef unsigned int uint; - -#define SHARED_SIZE_LIMIT 1024U -#define SAMPLE_STRIDE 128 - -//////////////////////////////////////////////////////////////////////////////// -// Extensive sort validation routine -//////////////////////////////////////////////////////////////////////////////// -extern "C" uint -validateSortedKeys(uint *resKey, uint *srcKey, uint batchSize, uint arrayLength, uint numValues, uint sortDir); - -extern "C" void fillValues(uint *val, uint N); - -extern "C" int validateSortedValues(uint *resKey, uint *resVal, uint *srcKey, uint batchSize, uint arrayLength); - -//////////////////////////////////////////////////////////////////////////////// -// CUDA merge sort -//////////////////////////////////////////////////////////////////////////////// -extern "C" void initMergeSort(void); - -extern "C" void closeMergeSort(void); - -extern "C" void -mergeSort(uint *dstKey, uint *dstVal, uint *bufKey, uint *bufVal, uint *srcKey, uint *srcVal, uint N, uint sortDir); - -//////////////////////////////////////////////////////////////////////////////// -// CPU "emulation" -//////////////////////////////////////////////////////////////////////////////// -extern "C" void -mergeSortHost(uint *dstKey, uint *dstVal, uint *bufKey, uint *bufVal, uint *srcKey, uint *srcVal, uint N, uint sortDir); diff --git a/cpp/0_Introduction/mergeSort/mergeSort_host.cpp b/cpp/0_Introduction/mergeSort/mergeSort_host.cpp deleted file mode 100644 index 4a322f14..00000000 --- a/cpp/0_Introduction/mergeSort/mergeSort_host.cpp +++ /dev/null @@ -1,363 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include -#include -#include - -#include "mergeSort_common.h" - -//////////////////////////////////////////////////////////////////////////////// -// Helper functions -//////////////////////////////////////////////////////////////////////////////// -static void checkOrder(uint *data, uint N, uint sortDir) -{ - if (N <= 1) { - return; - } - - for (uint i = 0; i < N - 1; i++) - if ((sortDir && (data[i] > data[i + 1])) || (!sortDir && (data[i] < data[i + 1]))) { - fprintf(stderr, "checkOrder() failed!!!\n"); - exit(EXIT_FAILURE); - } -} - -static uint umin(uint a, uint b) { return (a <= b) ? a : b; } - -static uint getSampleCount(uint dividend) -{ - return ((dividend % SAMPLE_STRIDE) != 0) ? (dividend / SAMPLE_STRIDE + 1) : (dividend / SAMPLE_STRIDE); -} - -static uint nextPowerOfTwo(uint x) -{ - --x; - x |= x >> 1; - x |= x >> 2; - x |= x >> 4; - x |= x >> 8; - x |= x >> 16; - return ++x; -} - -static uint binarySearchInclusive(uint val, uint *data, uint L, uint sortDir) -{ - if (L == 0) { - return 0; - } - - uint pos = 0; - - for (uint stride = nextPowerOfTwo(L); stride > 0; stride >>= 1) { - uint newPos = umin(pos + stride, L); - - if ((sortDir && (data[newPos - 1] <= val)) || (!sortDir && (data[newPos - 1] >= val))) { - pos = newPos; - } - } - - return pos; -} - -static uint binarySearchExclusive(uint val, uint *data, uint L, uint sortDir) -{ - if (L == 0) { - return 0; - } - - uint pos = 0; - - for (uint stride = nextPowerOfTwo(L); stride > 0; stride >>= 1) { - uint newPos = umin(pos + stride, L); - - if ((sortDir && (data[newPos - 1] < val)) || (!sortDir && (data[newPos - 1] > val))) { - pos = newPos; - } - } - - return pos; -} - -//////////////////////////////////////////////////////////////////////////////// -// Merge step 1: find sample ranks in each segment -//////////////////////////////////////////////////////////////////////////////// -static void generateSampleRanks(uint *ranksA, uint *ranksB, uint *srcKey, uint stride, uint N, uint sortDir) -{ - uint lastSegmentElements = N % (2 * stride); - uint sampleCount = (lastSegmentElements > stride) ? (N + 2 * stride - lastSegmentElements) / (2 * SAMPLE_STRIDE) - : (N - lastSegmentElements) / (2 * SAMPLE_STRIDE); - - for (uint pos = 0; pos < sampleCount; pos++) { - const uint i = pos & ((stride / SAMPLE_STRIDE) - 1); - const uint segmentBase = (pos - i) * (2 * SAMPLE_STRIDE); - - const uint lenA = stride; - const uint lenB = umin(stride, N - segmentBase - stride); - const uint nA = stride / SAMPLE_STRIDE; - const uint nB = getSampleCount(lenB); - - if (i < nA) { - ranksA[(segmentBase + 0) / SAMPLE_STRIDE + i] = i * SAMPLE_STRIDE; - ranksB[(segmentBase + 0) / SAMPLE_STRIDE + i] = binarySearchExclusive( - srcKey[segmentBase + i * SAMPLE_STRIDE], srcKey + segmentBase + stride, lenB, sortDir); - } - - if (i < nB) { - ranksB[(segmentBase + stride) / SAMPLE_STRIDE + i] = i * SAMPLE_STRIDE; - ranksA[(segmentBase + stride) / SAMPLE_STRIDE + i] = binarySearchInclusive( - srcKey[segmentBase + stride + i * SAMPLE_STRIDE], srcKey + segmentBase, lenA, sortDir); - } - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Merge step 2: merge ranks and indices to derive elementary intervals -//////////////////////////////////////////////////////////////////////////////// -static void mergeRanksAndIndices(uint *limits, uint *ranks, uint stride, uint N) -{ - uint lastSegmentElements = N % (2 * stride); - uint sampleCount = (lastSegmentElements > stride) ? (N + 2 * stride - lastSegmentElements) / (2 * SAMPLE_STRIDE) - : (N - lastSegmentElements) / (2 * SAMPLE_STRIDE); - - for (uint pos = 0; pos < sampleCount; pos++) { - const uint i = pos & ((stride / SAMPLE_STRIDE) - 1); - const uint segmentBase = (pos - i) * (2 * SAMPLE_STRIDE); - - const uint lenA = stride; - const uint lenB = umin(stride, N - segmentBase - stride); - const uint nA = stride / SAMPLE_STRIDE; - const uint nB = getSampleCount(lenB); - - if (i < nA) { - uint dstPosA = - binarySearchExclusive( - ranks[(segmentBase + 0) / SAMPLE_STRIDE + i], ranks + (segmentBase + stride) / SAMPLE_STRIDE, nB, 1) - + i; - assert(dstPosA < nA + nB); - limits[(segmentBase / SAMPLE_STRIDE) + dstPosA] = ranks[(segmentBase + 0) / SAMPLE_STRIDE + i]; - } - - if (i < nB) { - uint dstPosA = - binarySearchInclusive( - ranks[(segmentBase + stride) / SAMPLE_STRIDE + i], ranks + (segmentBase + 0) / SAMPLE_STRIDE, nA, 1) - + i; - assert(dstPosA < nA + nB); - limits[(segmentBase / SAMPLE_STRIDE) + dstPosA] = ranks[(segmentBase + stride) / SAMPLE_STRIDE + i]; - } - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Merge step 3: merge elementary intervals (each interval is <= SAMPLE_STRIDE) -//////////////////////////////////////////////////////////////////////////////// -static void merge(uint *dstKey, - uint *dstVal, - uint *srcAKey, - uint *srcAVal, - uint *srcBKey, - uint *srcBVal, - uint lenA, - uint lenB, - uint sortDir) -{ - checkOrder(srcAKey, lenA, sortDir); - checkOrder(srcBKey, lenB, sortDir); - - for (uint i = 0; i < lenA; i++) { - uint dstPos = binarySearchExclusive(srcAKey[i], srcBKey, lenB, sortDir) + i; - assert(dstPos < lenA + lenB); - dstKey[dstPos] = srcAKey[i]; - dstVal[dstPos] = srcAVal[i]; - } - - for (uint i = 0; i < lenB; i++) { - uint dstPos = binarySearchInclusive(srcBKey[i], srcAKey, lenA, sortDir) + i; - assert(dstPos < lenA + lenB); - dstKey[dstPos] = srcBKey[i]; - dstVal[dstPos] = srcBVal[i]; - } -} - -static void mergeElementaryIntervals(uint *dstKey, - uint *dstVal, - uint *srcKey, - uint *srcVal, - uint *limitsA, - uint *limitsB, - uint stride, - uint N, - uint sortDir) -{ - uint lastSegmentElements = N % (2 * stride); - uint mergePairs = (lastSegmentElements > stride) ? getSampleCount(N) : (N - lastSegmentElements) / SAMPLE_STRIDE; - - for (uint pos = 0; pos < mergePairs; pos++) { - uint i = pos & ((2 * stride) / SAMPLE_STRIDE - 1); - uint segmentBase = (pos - i) * SAMPLE_STRIDE; - - const uint lenA = stride; - const uint lenB = umin(stride, N - segmentBase - stride); - const uint nA = stride / SAMPLE_STRIDE; - const uint nB = getSampleCount(lenB); - const uint n = nA + nB; - - const uint startPosA = limitsA[pos]; - const uint endPosA = (i + 1 < n) ? limitsA[pos + 1] : lenA; - const uint startPosB = limitsB[pos]; - const uint endPosB = (i + 1 < n) ? limitsB[pos + 1] : lenB; - const uint startPosDst = startPosA + startPosB; - - assert(startPosA <= endPosA && endPosA <= lenA); - assert(startPosB <= endPosB && endPosB <= lenB); - assert((endPosA - startPosA) <= SAMPLE_STRIDE); - assert((endPosB - startPosB) <= SAMPLE_STRIDE); - - merge(dstKey + segmentBase + startPosDst, - dstVal + segmentBase + startPosDst, - (srcKey + segmentBase + 0) + startPosA, - (srcVal + segmentBase + 0) + startPosA, - (srcKey + segmentBase + stride) + startPosB, - (srcVal + segmentBase + stride) + startPosB, - endPosA - startPosA, - endPosB - startPosB, - sortDir); - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Retarded bubble sort -//////////////////////////////////////////////////////////////////////////////// -static void bubbleSort(uint *key, uint *val, uint N, uint sortDir) -{ - if (N <= 1) { - return; - } - - for (uint bottom = 0; bottom < N - 1; bottom++) { - uint savePos = bottom; - uint saveKey = key[bottom]; - - for (uint i = bottom + 1; i < N; i++) - if ((sortDir && (key[i] < saveKey)) || (!sortDir && (key[i] > saveKey))) { - savePos = i; - saveKey = key[i]; - } - - if (savePos != bottom) { - uint t; - t = key[savePos]; - key[savePos] = key[bottom]; - key[bottom] = t; - t = val[savePos]; - val[savePos] = val[bottom]; - val[bottom] = t; - } - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Interface function -//////////////////////////////////////////////////////////////////////////////// -extern "C" void -mergeSortHost(uint *dstKey, uint *dstVal, uint *bufKey, uint *bufVal, uint *srcKey, uint *srcVal, uint N, uint sortDir) -{ - uint *ikey, *ival, *okey, *oval; - uint stageCount = 0; - - for (uint stride = SHARED_SIZE_LIMIT; stride < N; stride <<= 1, stageCount++) - ; - - if (stageCount & 1) { - ikey = bufKey; - ival = bufVal; - okey = dstKey; - oval = dstVal; - } - else { - ikey = dstKey; - ival = dstVal; - okey = bufKey; - oval = bufVal; - } - - printf("Bottom-level sort...\n"); - memcpy(ikey, srcKey, N * sizeof(uint)); - memcpy(ival, srcVal, N * sizeof(uint)); - - for (uint pos = 0; pos < N; pos += SHARED_SIZE_LIMIT) { - bubbleSort(ikey + pos, ival + pos, umin(SHARED_SIZE_LIMIT, N - pos), sortDir); - } - - printf("Merge...\n"); - uint *ranksA = (uint *)malloc(getSampleCount(N) * sizeof(uint)); - uint *ranksB = (uint *)malloc(getSampleCount(N) * sizeof(uint)); - uint *limitsA = (uint *)malloc(getSampleCount(N) * sizeof(uint)); - uint *limitsB = (uint *)malloc(getSampleCount(N) * sizeof(uint)); - memset(ranksA, 0xFF, getSampleCount(N) * sizeof(uint)); - memset(ranksB, 0xFF, getSampleCount(N) * sizeof(uint)); - memset(limitsA, 0xFF, getSampleCount(N) * sizeof(uint)); - memset(limitsB, 0xFF, getSampleCount(N) * sizeof(uint)); - - for (uint stride = SHARED_SIZE_LIMIT; stride < N; stride <<= 1) { - uint lastSegmentElements = N % (2 * stride); - - // Find sample ranks and prepare for limiters merge - generateSampleRanks(ranksA, ranksB, ikey, stride, N, sortDir); - - // Merge ranks and indices - mergeRanksAndIndices(limitsA, ranksA, stride, N); - mergeRanksAndIndices(limitsB, ranksB, stride, N); - - // Merge elementary intervals - mergeElementaryIntervals(okey, oval, ikey, ival, limitsA, limitsB, stride, N, sortDir); - - if (lastSegmentElements <= stride) { - // Last merge segment consists of a single array which just needs to be - // passed through - memcpy( - okey + (N - lastSegmentElements), ikey + (N - lastSegmentElements), lastSegmentElements * sizeof(uint)); - memcpy( - oval + (N - lastSegmentElements), ival + (N - lastSegmentElements), lastSegmentElements * sizeof(uint)); - } - - uint *t; - t = ikey; - ikey = okey; - okey = t; - t = ival; - ival = oval; - oval = t; - } - - free(limitsB); - free(limitsA); - free(ranksB); - free(ranksA); -} diff --git a/cpp/0_Introduction/mergeSort/mergeSort_validate.cpp b/cpp/0_Introduction/mergeSort/mergeSort_validate.cpp deleted file mode 100644 index 4eac52a7..00000000 --- a/cpp/0_Introduction/mergeSort/mergeSort_validate.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include -#include -#include - -#include "mergeSort_common.h" - -//////////////////////////////////////////////////////////////////////////////// -// Validate sorted keys array (check for integrity and proper order) -//////////////////////////////////////////////////////////////////////////////// -extern "C" uint -validateSortedKeys(uint *resKey, uint *srcKey, uint batchSize, uint arrayLength, uint numValues, uint sortDir) -{ - uint *srcHist; - uint *resHist; - - if (arrayLength < 2) { - printf("validateSortedKeys(): arrays too short, exiting...\n"); - return 1; - } - - printf("...inspecting keys array: "); - srcHist = (uint *)malloc(numValues * sizeof(uint)); - resHist = (uint *)malloc(numValues * sizeof(uint)); - - int flag = 1; - - for (uint j = 0; j < batchSize; j++, srcKey += arrayLength, resKey += arrayLength) { - // Build histograms for keys arrays - memset(srcHist, 0, numValues * sizeof(uint)); - memset(resHist, 0, numValues * sizeof(uint)); - - for (uint i = 0; i < arrayLength; i++) { - if ((srcKey[i] < numValues) && (resKey[i] < numValues)) { - srcHist[srcKey[i]]++; - resHist[resKey[i]]++; - } - else { - fprintf(stderr, "***Set %u source/result key arrays are not limited properly***\n", j); - flag = 0; - goto brk; - } - } - - // Compare the histograms - for (uint i = 0; i < numValues; i++) - if (srcHist[i] != resHist[i]) { - fprintf(stderr, "***Set %u source/result keys histograms do not match***\n", j); - flag = 0; - goto brk; - } - - // Finally check the ordering - for (uint i = 0; i < arrayLength - 1; i++) - if ((sortDir && (resKey[i] > resKey[i + 1])) || (!sortDir && (resKey[i] < resKey[i + 1]))) { - fprintf(stderr, "***Set %u result key array is not ordered properly***\n", j); - flag = 0; - goto brk; - } - } - -brk: - free(resHist); - free(srcHist); - - if (flag) - printf("OK\n"); - - return flag; -} - -//////////////////////////////////////////////////////////////////////////////// -// Value validation / stability check routines -//////////////////////////////////////////////////////////////////////////////// -extern "C" void fillValues(uint *val, uint N) -{ - for (uint i = 0; i < N; i++) - val[i] = i; -} - -extern "C" int validateSortedValues(uint *resKey, uint *resVal, uint *srcKey, uint batchSize, uint arrayLength) -{ - int correctFlag = 1, stableFlag = 1; - - printf("...inspecting keys and values array: "); - - for (uint i = 0; i < batchSize; i++, resKey += arrayLength, resVal += arrayLength) { - for (uint j = 0; j < arrayLength; j++) { - if (resKey[j] != srcKey[resVal[j]]) - correctFlag = 0; - - if ((j < arrayLength - 1) && (resKey[j] == resKey[j + 1]) && (resVal[j] > resVal[j + 1])) - stableFlag = 0; - } - } - - printf(correctFlag ? "OK\n" : "***corrupted!!!***\n"); - printf(stableFlag ? "...stability property: stable!\n" : "...stability property: NOT stable\n"); - - return correctFlag; -} diff --git a/cpp/0_Introduction/simpleAWBarrier/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleAWBarrier/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleAWBarrier/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleAWBarrier/.vscode/extensions.json b/cpp/0_Introduction/simpleAWBarrier/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleAWBarrier/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleAWBarrier/CMakeLists.txt b/cpp/0_Introduction/simpleAWBarrier/CMakeLists.txt index 7bcb8360..e0c31e45 100644 --- a/cpp/0_Introduction/simpleAWBarrier/CMakeLists.txt +++ b/cpp/0_Introduction/simpleAWBarrier/CMakeLists.txt @@ -1,23 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleAWBarrier LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) # This sample is not supported on QNX @@ -26,16 +21,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "QNX") return() endif() -# Source file -# Add target for simpleAWBarrier add_executable(simpleAWBarrier simpleAWBarrier.cu) target_compile_options(simpleAWBarrier PRIVATE $<$:--extended-lambda>) target_compile_features(simpleAWBarrier PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleAWBarrier PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleAssert/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleAssert/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleAssert/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleAssert/.vscode/extensions.json b/cpp/0_Introduction/simpleAssert/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleAssert/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleAssert/CMakeLists.txt b/cpp/0_Introduction/simpleAssert/CMakeLists.txt index ab0406c8..963c6309 100644 --- a/cpp/0_Introduction/simpleAssert/CMakeLists.txt +++ b/cpp/0_Introduction/simpleAssert/CMakeLists.txt @@ -1,37 +1,28 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleAssert LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - # Removes -DNDEBUG For Print specific logs in this sample. string(REPLACE "-DNDEBUG" "" CMAKE_CUDA_FLAGS_RELEASE "${CMAKE_CUDA_FLAGS_RELEASE}") -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleAssert add_executable(simpleAssert simpleAssert.cu) target_compile_options(simpleAssert PRIVATE $<$:--extended-lambda>) target_compile_features(simpleAssert PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleAssert PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleAssert/README.md b/cpp/0_Introduction/simpleAssert/README.md index c3d0d7ec..302a7d45 100644 --- a/cpp/0_Introduction/simpleAssert/README.md +++ b/cpp/0_Introduction/simpleAssert/README.md @@ -1,32 +1,83 @@ -# simpleAssert - simpleAssert +# Sample: Device-Side assert (simpleAssert) ## Description -This CUDA Runtime API sample is a very basic sample that implements how to use the assert function in the device code. Requires Compute Capability 2.0 . +Use the standard C `assert` macro **inside a CUDA kernel**. The sample launches threads that each assert `gtid < N`; threads whose global index reaches `N` trip the assertion, print a diagnostic message to the host, and cause the kernel to fail. The host detects this through the `cudaErrorAssert` status returned by `cudaDeviceSynchronize` and reports it as the expected outcome. + +This sample demonstrates device-side `assert`, a debugging aid for catching invalid conditions in kernel code, and shows how an assertion failure surfaces on the host as an asynchronous CUDA error. + +## What You'll Learn + +- Calling `assert` directly from device code (`__global__` kernel) +- How a failed device assertion is reported to the host as `cudaErrorAssert` +- Detecting that error after the launch via `cudaDeviceSynchronize` +- Computing a global thread index from `blockIdx`, `blockDim`, and `threadIdx` +- Turning an error code into a human-readable message with `cudaGetErrorString` ## Key Concepts -Assert +- **Device-side `assert`** — `assert(condition)` in a kernel; a false condition halts the kernel, prints `file:line: function: block: ... Assertion ... failed`, and flags the launch as failed +- **Asynchronous error reporting** — the assertion failure is not seen at launch time; it is surfaced at the next synchronization point as `cudaErrorAssert` +- **Global thread indexing** — `blockIdx.x * blockDim.x + threadIdx.x` -## Supported SM Architectures +## Key APIs -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) +### CUDA Runtime +- `cudaSetDevice` — select the active GPU +- `cudaDeviceGetAttribute` — query compute capability (major, minor) and SM count +- `cudaDeviceSynchronize` — block the host until the kernel finishes; flushes assert output and returns `cudaErrorAssert` if an assertion failed +- `cudaGetErrorString` — convert a `cudaError_t` into a readable description -## Supported OSes +## Requirements -Linux, Windows +### Hardware +- NVIDIA GPU with Compute Capability 7.5 or higher -## Supported CPU Architecture +### Software +- CMake 3.20 or newer +- A C++17-capable host compiler -x86_64, armv7l +## How to Build -## CUDA APIs involved +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaDeviceSynchronize, cudaGetErrorString +## How to Run -## Prerequisites +```bash +./simpleAssert +``` -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. +## Expected Output -## References (for more details) +The kernel launches 2 blocks × 32 threads = 64 threads and asserts `gtid < 60`, so the 4 threads with global indices 60–63 fail the assertion. The assertion failures are **expected** — the sample reports `OK` because it successfully detected `cudaErrorAssert`: + +```text +simpleAssert starting... + +GPU Device 0: with compute capability X.Y and Number of SMs + +Launch kernel to generate assertion failures + +-- Begin assert output + +simpleAssert.cu:50: void simpleAssertKernel(int): block: [1,0,0], thread: [28,0,0] Assertion `gtid < N` failed. +... + +-- End assert output + +Device assert failed as expected, CUDA error message is: device-side assert triggered + +simpleAssert completed, returned OK +``` + +The order and exact set of failing-thread lines may vary between runs. + +## Files + +- `simpleAssert.cu` — device-side `assert` kernel + host driver +- `README.md` — this file +- `CMakeLists.txt` — build configuration + +## See Also + +- [CUDA C++ Programming Guide - Assertion](https://docs.nvidia.com/cuda/cuda-programming-guide/05-appendices/cpp-language-extensions.html#assertion) diff --git a/cpp/0_Introduction/simpleAssert/simpleAssert.cu b/cpp/0_Introduction/simpleAssert/simpleAssert.cu index 64df5d20..749fd61c 100644 --- a/cpp/0_Introduction/simpleAssert/simpleAssert.cu +++ b/cpp/0_Introduction/simpleAssert/simpleAssert.cu @@ -1,4 +1,4 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +/* Copyright (c) 2026, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -25,86 +25,47 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef _WIN32 -#define WINDOWS_LEAN_AND_MEAN -#define NOMINMAX -#include -#else -#include -#endif - -// Includes, system +// System includes #include #include -// Includes CUDA +// CUDA runtime #include -// Utilities and timing functions -#include // includes cuda.h and cuda_runtime_api.h - -// CUDA helper functions -#include // helper functions for CUDA error check - const char *sampleName = "simpleAssert"; -//////////////////////////////////////////////////////////////////////////////// // Auto-Verification Code bool testResult = true; -//////////////////////////////////////////////////////////////////////////////// -// Kernels -//////////////////////////////////////////////////////////////////////////////// -//! Tests assert function. -//! Thread whose id > N will print assertion failed error message. -//////////////////////////////////////////////////////////////////////////////// -__global__ void testKernel(int N) +// Each thread computes its global index and asserts it is below N. Threads with +// gtid >= N trip the assertion, which aborts the kernel and surfaces on the host +// as cudaErrorAssert at the next synchronization point. +__global__ void simpleAssertKernel(int N) { int gtid = blockIdx.x * blockDim.x + threadIdx.x; assert(gtid < N); } -//////////////////////////////////////////////////////////////////////////////// -// Declaration, forward -void runTest(int argc, char **argv); - -//////////////////////////////////////////////////////////////////////////////// -// Program main -//////////////////////////////////////////////////////////////////////////////// int main(int argc, char **argv) -{ - printf("%s starting...\n", sampleName); - - runTest(argc, argv); - - printf("%s completed, returned %s\n", sampleName, testResult ? "OK" : "ERROR!"); - exit(testResult ? EXIT_SUCCESS : EXIT_FAILURE); -} - -void runTest(int argc, char **argv) { int Nblocks = 2; int Nthreads = 32; cudaError_t error; -#ifndef _WIN32 - utsname OS_System_Type; - uname(&OS_System_Type); + printf("%s starting...\n\n", sampleName); - printf("OS_System_Type.release = %s\n", OS_System_Type.release); + // Select device 0 as the active GPU + int devID = 0; + cudaSetDevice(devID); - if (!strcasecmp(OS_System_Type.sysname, "Darwin")) { - printf("simpleAssert is not current supported on Mac OSX\n\n"); - exit(EXIT_SUCCESS); - } - else { - printf("OS Info: <%s>\n\n", OS_System_Type.version); - } + // Query compute capability (major.minor) and number of SMs on the device + int major = 0, minor = 0, smCount = 0; + cudaDeviceGetAttribute(&major, cudaDevAttrComputeCapabilityMajor, devID); + cudaDeviceGetAttribute(&minor, cudaDevAttrComputeCapabilityMinor, devID); + cudaDeviceGetAttribute(&smCount, cudaDevAttrMultiProcessorCount, devID); -#endif - - // This will pick the best possible CUDA capable device - findCudaDevice(argc, (const char **)argv); + // Print device info + printf("GPU Device %d: with compute capability %d.%d and Number of SMs %d\n\n", devID, major, minor, smCount); // Kernel configuration, where a one-dimensional // grid and one-dimensional blocks are configured. @@ -112,7 +73,7 @@ void runTest(int argc, char **argv) dim3 dimBlock(Nthreads); printf("Launch kernel to generate assertion failures\n"); - testKernel<<>>(60); + simpleAssertKernel<<>>(60); // Synchronize (flushes assert output). printf("\n-- Begin assert output\n\n"); @@ -127,4 +88,7 @@ void runTest(int argc, char **argv) } testResult = error == cudaErrorAssert; + + printf("%s completed, returned %s\n", sampleName, testResult ? "OK" : "ERROR!"); + exit(testResult ? EXIT_SUCCESS : EXIT_FAILURE); } diff --git a/cpp/0_Introduction/simpleAssert_nvrtc/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleAssert_nvrtc/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleAssert_nvrtc/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleAssert_nvrtc/.vscode/extensions.json b/cpp/0_Introduction/simpleAssert_nvrtc/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleAssert_nvrtc/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleAssert_nvrtc/CMakeLists.txt b/cpp/0_Introduction/simpleAssert_nvrtc/CMakeLists.txt deleted file mode 100644 index d473058e..00000000 --- a/cpp/0_Introduction/simpleAssert_nvrtc/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(simpleAssert_nvrtc LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add sample target executable -add_executable(simpleAssert_nvrtc simpleAssert.cpp) - -target_compile_options(simpleAssert_nvrtc PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleAssert_nvrtc PRIVATE cxx_std_17 cuda_std_17) - -target_link_libraries(simpleAssert_nvrtc PRIVATE - CUDA::nvrtc - CUDA::cuda_driver -) - -# Copy clock_kernel.cu to the output directory -add_custom_command(TARGET simpleAssert_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/simpleAssert_kernel.cu ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/simpleAssert_nvrtc/README.md b/cpp/0_Introduction/simpleAssert_nvrtc/README.md deleted file mode 100644 index 1d76e311..00000000 --- a/cpp/0_Introduction/simpleAssert_nvrtc/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# simpleAssert_nvrtc - simpleAssert with libNVRTC - -## Description - -This CUDA Runtime API sample is a very basic sample that implements how to use the assert function in the device code. Requires Compute Capability 2.0 . - -## Key Concepts - -Assert, Runtime Compilation - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows, QNX - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuModuleGetFunction, cuLaunchKernel, cuCtxSynchronize - -## Dependencies needed to build/run -[NVRTC](../../../README.md#nvrtc) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/0_Introduction/simpleAssert_nvrtc/simpleAssert.cpp b/cpp/0_Introduction/simpleAssert_nvrtc/simpleAssert.cpp deleted file mode 100644 index 409dc7c5..00000000 --- a/cpp/0_Introduction/simpleAssert_nvrtc/simpleAssert.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#ifdef _WIN32 -#define WINDOWS_LEAN_AND_MEAN -#define NOMINMAX -#include -#else -#include -#endif - -// Includes, system -#include -#include - -// Includes CUDA -#include - -#include "nvrtc_helper.h" - -// Utilities and timing functions -#include // includes cuda.h and cuda_runtime_api.h - -const char *sampleName = "simpleAssert_nvrtc"; - -//////////////////////////////////////////////////////////////////////////////// -// Auto-Verification Code -bool testResult = true; - -//////////////////////////////////////////////////////////////////////////////// -// Declaration, forward -void runTest(int argc, char **argv); - -//////////////////////////////////////////////////////////////////////////////// -// Program main -//////////////////////////////////////////////////////////////////////////////// - -int main(int argc, char **argv) -{ - printf("%s starting...\n", sampleName); - - runTest(argc, argv); - - exit(testResult ? EXIT_SUCCESS : EXIT_FAILURE); -} - -void runTest(int argc, char **argv) -{ - int Nblocks = 2; - int Nthreads = 32; - - // Kernel configuration, where a one-dimensional - // grid and one-dimensional blocks are configured. - - dim3 dimGrid(Nblocks); - dim3 dimBlock(Nthreads); - - printf("Launch kernel to generate assertion failures\n"); - char *cubin, *kernel_file; - size_t cubinSize; - - kernel_file = sdkFindFilePath("simpleAssert_kernel.cu", argv[0]); - compileFileToCUBIN(kernel_file, argc, argv, &cubin, &cubinSize, 0); - - CUmodule module = loadCUBIN(cubin, argc, argv); - CUfunction kernel_addr; - - checkCudaErrors(cuModuleGetFunction(&kernel_addr, module, "testKernel")); - - int count = 60; - void *args[] = {(void *)&count}; - - checkCudaErrors(cuLaunchKernel(kernel_addr, - dimGrid.x, - dimGrid.y, - dimGrid.z, /* grid dim */ - dimBlock.x, - dimBlock.y, - dimBlock.z, /* block dim */ - 0, - 0, /* shared mem, stream */ - &args[0], /* arguments */ - 0)); - - // Synchronize (flushes assert output). - printf("\n-- Begin assert output\n\n"); - CUresult res = cuCtxSynchronize(); - - printf("\n-- End assert output\n\n"); - - // Check for errors and failed asserts in asynchronous kernel launch. - if (res == CUDA_ERROR_ASSERT) { - printf("Device assert failed as expected\n"); - } - - testResult = res == CUDA_ERROR_ASSERT; -} diff --git a/cpp/0_Introduction/simpleAssert_nvrtc/simpleAssert_kernel.cu b/cpp/0_Introduction/simpleAssert_nvrtc/simpleAssert_kernel.cu deleted file mode 100644 index ada02586..00000000 --- a/cpp/0_Introduction/simpleAssert_nvrtc/simpleAssert_kernel.cu +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -//////////////////////////////////////////////////////////////////////////////// -// Kernels -//////////////////////////////////////////////////////////////////////////////// -//! Tests assert function. -//! Thread whose id > N will print assertion failed error message. -//////////////////////////////////////////////////////////////////////////////// - -extern "C" __global__ void testKernel(int N) -{ - int gtid = blockIdx.x * blockDim.x + threadIdx.x; - assert(gtid < N); -} diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleAtomicIntrinsics/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleAtomicIntrinsics/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics/.vscode/extensions.json b/cpp/0_Introduction/simpleAtomicIntrinsics/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleAtomicIntrinsics/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics/CMakeLists.txt b/cpp/0_Introduction/simpleAtomicIntrinsics/CMakeLists.txt index 7ec8e447..0bdbf076 100644 --- a/cpp/0_Introduction/simpleAtomicIntrinsics/CMakeLists.txt +++ b/cpp/0_Introduction/simpleAtomicIntrinsics/CMakeLists.txt @@ -1,35 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleAtomicIntrinsics LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleAtomicIntrinsics -add_executable(simpleAtomicIntrinsics simpleAtomicIntrinsics.cu simpleAtomicIntrinsics_cpu.cpp) +add_executable(simpleAtomicIntrinsics simpleAtomicIntrinsics.cu) target_compile_options(simpleAtomicIntrinsics PRIVATE $<$:--extended-lambda>) target_compile_features(simpleAtomicIntrinsics PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleAtomicIntrinsics PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics/README.md b/cpp/0_Introduction/simpleAtomicIntrinsics/README.md index 6ee89706..bc97dccc 100644 --- a/cpp/0_Introduction/simpleAtomicIntrinsics/README.md +++ b/cpp/0_Introduction/simpleAtomicIntrinsics/README.md @@ -1,32 +1,123 @@ -# simpleAtomicIntrinsics - Simple Atomic Intrinsics +# simpleAtomicIntrinsics - Atomic vs. Non-Atomic Operations ## Description -A simple demonstration of global memory atomic instructions. +A CUDA sample that demonstrates **why atomic operations are needed** by running the same work with and without atomics under heavy contention. 1,000,000 threads write into an array of just 10 integers, so roughly 100,000 threads collide on every element. Three operations — add, max, and compare-and-swap — are each shown four ways: a non-atomic kernel, the CUDA atomic intrinsic, `cuda::std::atomic_ref` from CCCL (the `std::atomic` API in device code), and `cuda::atomic_ref` from CCCL (the CUDA-specific variant that natively supports thread scopes): + +Both CCCL variants use `atomic_ref` rather than `atomic` so they act on the *existing* plain-`int` array — this matches the behavior of the intrinsic atomics, which also adds atomic access to memory that already exists. `atomic` would instead require the array elements themselves to be declared separately as the atomic type. + +| Operation | Non-atomic | Intrinsic | cuda::std::atomic_ref | cuda::atomic_ref | +|---|---|---|---|---| +| Add 1 to an element | `increment` | `increment_atomic` | `increment_atomic_std` | `increment_atomic_cuda` | +| Keep the maximum value | `max` | `max_atomic` | `max_atomic_std` | `max_atomic_cuda` | +| Increment via compare-and-swap | `cas` | `cas_atomic` | `cas_atomic_std` | `cas_atomic_cuda` | + +The non-atomic kernels perform the read-modify-write as separate steps, so concurrent threads interleave and lose updates. The atomic kernels perform it as one indivisible hardware operation and produce the exact expected result every time. + +## What You'll Learn + +- What a race condition looks like: the non-atomic results are dramatically (add, CAS) or subtly (max) wrong +- Using the atomic intrinsics `atomicAdd`, `atomicMax`, and `atomicCAS` on global memory +- Building an atomic operation from an `atomicCAS` retry loop — the pattern that can implement any read-modify-write atomically +- Using `cuda::std::atomic_ref` (libcu++/CCCL) to write the same atomics with the standard `std::atomic` API in device code +- Using `cuda::atomic_ref` (CCCL) — the CUDA-specific variant that shares the same API as `cuda::std::atomic_ref` but natively supports CUDA thread scopes +- Why dedicated intrinsics beat CAS loops under contention (compare the `cas_atomic` timing against `increment_atomic`) +- Timing GPU work with CUDA events (`cudaEventRecord` / `cudaEventElapsedTime`) +- Resetting device buffers between runs with `cudaMemset` ## Key Concepts -Atomic Intrinsics +- **Race condition** — a plain `g[i] = g[i] + 1` is three steps (read, modify, write); two threads can read the same old value and one increment is lost +- **Atomic read-modify-write** — the hardware serializes atomic updates to the same address (performed at the L2 cache), so no update is lost +- **Compare-and-swap (CAS)** — `atomicCAS(addr, expected, desired)` swaps only if the current value equals `expected` and returns the value it found; looping until the swap succeeds makes any operation atomic +- **Contention cost** — atomics are correct but serialize colliding threads; the CAS retry loop shows this at its most extreme -## Supported SM Architectures +## Key APIs -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) +### CUDA Device Intrinsics +- `atomicAdd` — atomically add a value to a memory location +- `atomicMax` — atomically store the maximum of the current and a proposed value +- `atomicCAS` — atomically compare-and-swap; returns the previous value -## Supported OSes +### libcu++ (CCCL) +- `cuda::std::atomic_ref` — wraps plain memory with the standard `std::atomic` interface, usable in device code; header: `` +- `cuda::atomic_ref` — CUDA-specific version of `std::atomic_ref`; same API but natively supports CUDA thread scopes (e.g. `cuda::thread_scope_device`); header: `` +- `fetch_add` — atomic add, `std::atomic` style +- `load` / `compare_exchange_weak` — the standard CAS retry loop; used to build max (which `std::atomic` lacks) and the CAS increment -Linux, Windows, QNX +### CUDA Runtime +- `cudaMalloc` / `cudaFree` — allocate and release device memory +- `cudaMemset` — fill device memory with a byte value (zero the array between runs) +- `cudaMemcpy` — copy results back to the host +- `cudaEventCreate` / `cudaEventRecord` / `cudaEventSynchronize` / `cudaEventElapsedTime` / `cudaEventDestroy` — GPU-timeline timing of each kernel -## Supported CPU Architecture +## Requirements -x86_64, armv7l, aarch64 +### Hardware +- NVIDIA GPU with Compute Capability 7.5 or higher -## CUDA APIs involved +### Software +- CUDA Toolkit +- CMake 3.20 or newer +- A C++17-capable host compiler -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaStreamCreateWithFlags, cudaFree, cudaMallocHost, cudaFreeHost, cudaStreamSynchronize, cudaMalloc, cudaMemcpyAsync +## How to Build -## Prerequisites +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. +## How to Run -## References (for more details) +```bash +./simpleAtomicIntrinsics +``` + +No command-line arguments are required. The sample always runs on device 0. + +## Expected Output + +```text +=== Atomic vs. non-atomic operations (intrinsics, cuda::std::atomic_ref, cuda::atomic_ref) === + +GPU Device 0: with compute capability X.Y and Number of SMs + +1000000 total threads in 1000 blocks writing into 10 array elements + +[add] expected: every element = 100000 +non-atomic (0.19 ms): { 13 13 13 13 13 13 13 13 13 13 } +atomicAdd() (0.19 ms): { 100000 100000 100000 100000 100000 100000 100000 100000 100000 100000 } +cuda::std::atomic_ref::fetch_add() (0.26 ms): { 100000 100000 100000 100000 100000 100000 100000 100000 100000 100000 } +cuda::atomic_ref::fetch_add() (0.26 ms): { 100000 100000 100000 100000 100000 100000 100000 100000 100000 100000 } + +[max] expected: element i = 999990 + i +non-atomic (0.013 ms): { 998070 998071 998072 998073 998064 998065 998066 998067 998068 998069 } +atomicMax() (0.18 ms): { 999990 999991 999992 999993 999994 999995 999996 999997 999998 999999 } +cuda::std::atomic_ref::compare_exchange_weak() (1.0 ms): { 999990 999991 999992 999993 999994 999995 999996 999997 999998 999999 } +cuda::atomic_ref::compare_exchange_weak() (1.0 ms): { 999990 999991 999992 999993 999994 999995 999996 999997 999998 999999 } + +[CAS] expected: every element = 100000 +non-atomic (0.014 ms): { 13 13 13 13 13 13 13 13 13 13 } +atomicCAS() (1716 ms): { 100000 100000 100000 100000 100000 100000 100000 100000 100000 100000 } +cuda::std::atomic_ref::compare_exchange_weak() (9934 ms): { 100000 100000 100000 100000 100000 100000 100000 100000 100000 100000 } +cuda::atomic_ref::compare_exchange_weak() (9934 ms): { 100000 100000 100000 100000 100000 100000 100000 100000 100000 100000 } + +The non-atomic kernels lose updates when threads race on the same +element; the atomic kernels match the expected values exactly. +``` + +**Reading the numbers:** +- The non-atomic values vary from run to run — that nondeterminism is the race condition itself +- `max` is the sneakiest failure: 998070 looks plausible next to the correct 999990 +- `cas_atomic` is orders of magnitude slower than `increment_atomic` for the same result: with ~100,000 threads contending per element, almost every CAS attempt fails and retries — use the dedicated intrinsic when one exists +- The `_std` and `_cuda` kernels are correct but slower than the intrinsics: both `cuda::std::atomic_ref` and `cuda::atomic_ref` default to sequentially-consistent ordering at system scope — a stronger guarantee than the relaxed device-scope intrinsics (which is why their timings match each other in every section above) + +## Files + +- `simpleAtomicIntrinsics.cu` — the twelve kernels and the host driver +- `README.md` — this file +- `CMakeLists.txt` — build configuration + +## See Also + +- [CUDA Programming Guide — Atomics](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html#atomics) +- [CUDA Programming Guide — Atomic Functions](https://docs.nvidia.com/cuda/cuda-programming-guide/05-appendices/cpp-language-extensions.html#atomic-functions) +- [CUDA Core Compute Libraries — cuda::atomic](https://nvidia.github.io/cccl/unstable/libcudacxx/extended_api/synchronization_primitives/atomic.html) diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics/simpleAtomicIntrinsics.cu b/cpp/0_Introduction/simpleAtomicIntrinsics/simpleAtomicIntrinsics.cu index 78fe3ee6..d6976579 100644 --- a/cpp/0_Introduction/simpleAtomicIntrinsics/simpleAtomicIntrinsics.cu +++ b/cpp/0_Introduction/simpleAtomicIntrinsics/simpleAtomicIntrinsics.cu @@ -1,4 +1,4 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +/* Copyright (c) 2026, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -25,110 +25,428 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* A simple program demonstrating trivial use of global memory atomic - * device functions (atomic*() functions). +/* A simple program demonstrating why atomic operations are needed, using the + * atomic intrinsics atomicAdd, atomicMax, and atomicCAS. + * + * 1,000,000 threads write into an array of only 10 integers (each thread maps + * to a slot with index % ARRAY_SIZE), so ~100,000 threads update every element + * at the same time. A plain update like g[i] = g[i] + 1 is three separate + * steps: read the value, modify it, write it back. When two threads interleave + * (both read the same old value, both write back the same result), one update + * silently overwrites the other and is lost. This is a race condition: the + * result depends on thread timing, not program logic, and changes every run. + * + * Each operation is therefore run four ways: a non-atomic kernel that loses + * most of its updates to these race conditions, and three atomic kernels that + * do the read-modify-write as one indivisible operation and give the exact + * result — first with the CUDA atomic intrinsics, then with + * cuda::std::atomic_ref from CCCL (the std::atomic API in device code), and + * finally with cuda::atomic_ref from CCCL (the CUDA-specific variant that + * natively supports CUDA thread scopes). */ // includes, system -#include #include -#include -#include - -#ifdef _WIN32 -#define WINDOWS_LEAN_AND_MEAN -#define NOMINMAX -#include -#endif // Includes CUDA #include -// Utilities and timing functions -#include // includes cuda.h and cuda_runtime_api.h +// Includes CCCL: std::atomic as usable in device code (cuda::std::atomic_ref) +#include -// CUDA helper functions -#include // helper functions for CUDA error check +// cuda::atomic_ref: like cuda::std::atomic_ref but CUDA-specific, supports thread scopes +#include -// Includes, kernels -#include "simpleAtomicIntrinsics_kernel.cuh" +// and cuda::ceil_div for computing the launch grid size +#include -const char *sampleName = "simpleAtomicIntrinsics"; -//////////////////////////////////////////////////////////////////////////////// -// Auto-Verification Code -bool testResult = true; +// Launch configuration: many threads hammering a small array +#define NUM_THREADS 1000000 +#define BLOCK_WIDTH 1000 +#define ARRAY_SIZE 10 -//////////////////////////////////////////////////////////////////////////////// -// Declaration, forward -void runTest(int argc, char **argv); +// Increment without atomics: threads race on shared elements and lose updates +__global__ void increment(int *g) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + // ceil_div rounds up the grid, this may launch extra threads + // Adding this guard to ignore extra threads + if (tid < NUM_THREADS) { + // each thread increments one element, wrapping at ARRAY_SIZE + int i = tid % ARRAY_SIZE; + g[i] = g[i] + 1; + } +} -extern "C" bool computeGold(int *gpuData, const int len); +// Increment with atomicAdd: read-modify-write is one indivisible operation +__global__ void increment_atomic(int *g) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + if (tid < NUM_THREADS) { + int i = tid % ARRAY_SIZE; + atomicAdd(&g[i], 1); + } +} + +// Increment with cuda::std::atomic_ref: wraps the plain int in g[] and exposes +// the exact std::atomic API (fetch_add, load, store, ...) inside device code +__global__ void increment_atomic_std(int *g) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + if (tid < NUM_THREADS) { + int i = tid % ARRAY_SIZE; + cuda::std::atomic_ref ref(g[i]); + ref.fetch_add(1); + } +} + +// Increment with cuda::atomic_ref: like cuda::std::atomic_ref but CUDA-specific +// and natively supports CUDA thread scopes +__global__ void increment_atomic_cuda(int *g) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + if (tid < NUM_THREADS) { + int i = tid % ARRAY_SIZE; + cuda::atomic_ref ref(g[i]); + ref.fetch_add(1); + } +} + +// Max without atomics: another thread can write between the compare and the +// store, so a smaller value can overwrite a larger one +__global__ void max(int *g) +{ + // each thread contributes its global index as the value + int tid = blockIdx.x * blockDim.x + threadIdx.x; + if (tid < NUM_THREADS) { + int i = tid % ARRAY_SIZE; + if (g[i] < tid) + g[i] = tid; + } +} + +// Max with atomicMax: the compare and the store happen as one operation +__global__ void max_atomic(int *g) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + if (tid < NUM_THREADS) { + int i = tid % ARRAY_SIZE; + atomicMax(&g[i], tid); + } +} + +// Max with cuda::std::atomic_ref: std::atomic has no fetch_max, so max is +// built the standard C++ way — a compare_exchange loop that stops as soon as +// the stored value is already >= ours +__global__ void max_atomic_std(int *g) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + if (tid < NUM_THREADS) { + int i = tid % ARRAY_SIZE; + + cuda::std::atomic_ref ref(g[i]); + int expected = ref.load(); + while (expected < tid && !ref.compare_exchange_weak(expected, tid)) { + } + } +} + +// Max with cuda::atomic_ref: same compare_exchange loop as the _std variant +__global__ void max_atomic_cuda(int *g) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + if (tid < NUM_THREADS) { + int i = tid % ARRAY_SIZE; + + cuda::atomic_ref ref(g[i]); + int expected = ref.load(); + while (expected < tid && !ref.compare_exchange_weak(expected, tid)) { + } + } +} + +// Increment written as compare-and-swap, without atomics: the value can change +// between the compare and the swap, so increments are lost +__global__ void cas(int *g) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + if (tid < NUM_THREADS) { + int i = tid % ARRAY_SIZE; + + int expected = g[i]; // read + if (g[i] == expected) // compare + g[i] = expected + 1; // swap (not atomic with the compare!) + } +} + +// Increment with an atomicCAS retry loop: the classic pattern for building +// any atomic operation out of compare-and-swap. atomicCAS returns the value +// it found: if another thread interfered, the swap did not happen and we retry +__global__ void cas_atomic(int *g) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + if (tid < NUM_THREADS) { + int i = tid % ARRAY_SIZE; + + int old = g[i]; + int assumed; + do { + assumed = old; + old = atomicCAS(&g[i], assumed, assumed + 1); + } while (old != assumed); + } +} + +// Increment with cuda::std::atomic_ref compare_exchange: the std::atomic way +// to write a CAS retry loop. On failure, expected is updated with the value +// actually found, so the loop just retries with fresh data +__global__ void cas_atomic_std(int *g) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + if (tid < NUM_THREADS) { + int i = tid % ARRAY_SIZE; + + cuda::std::atomic_ref ref(g[i]); + int expected = ref.load(); + while (!ref.compare_exchange_weak(expected, expected + 1)) { + } + } +} + +// CAS increment with cuda::atomic_ref: same retry loop as the _std variant +__global__ void cas_atomic_cuda(int *g) +{ + int tid = blockIdx.x * blockDim.x + threadIdx.x; + if (tid < NUM_THREADS) { + int i = tid % ARRAY_SIZE; + + cuda::atomic_ref ref(g[i]); + int expected = ref.load(); + while (!ref.compare_exchange_weak(expected, expected + 1)) { + } + } +} + +// Print every element of the array +void print_array(int *array, int size) +{ + printf("{ "); + for (int i = 0; i < size; i++) + printf("%d ", array[i]); + printf("}\n"); +} -//////////////////////////////////////////////////////////////////////////////// // Program main -//////////////////////////////////////////////////////////////////////////////// int main(int argc, char **argv) { - printf("%s starting...\n", sampleName); + printf("=== Atomic vs. non-atomic operations (intrinsics, cuda::std::atomic_ref, cuda::atomic_ref) ===\n\n"); - runTest(argc, argv); + // Select device 0 as the active GPU + int devID = 0; + cudaSetDevice(devID); - printf("%s completed, returned %s\n", sampleName, testResult ? "OK" : "ERROR!"); - exit(testResult ? EXIT_SUCCESS : EXIT_FAILURE); -} - -//////////////////////////////////////////////////////////////////////////////// -//! Run a simple test for CUDA -//////////////////////////////////////////////////////////////////////////////// -void runTest(int argc, char **argv) -{ - cudaStream_t stream; - // This will pick the best possible CUDA capable device - findCudaDevice(argc, (const char **)argv); - - StopWatchInterface *timer; - sdkCreateTimer(&timer); - sdkStartTimer(&timer); - - unsigned int numThreads = 256; - unsigned int numBlocks = 64; - unsigned int numData = 11; - unsigned int memSize = sizeof(int) * numData; - - // allocate mem for the result on host side - int *hOData; - checkCudaErrors(cudaMallocHost(&hOData, memSize)); - - // initialize the memory - for (unsigned int i = 0; i < numData; i++) - hOData[i] = 0; - - // To make the AND and XOR tests generate something other than 0... - hOData[8] = hOData[10] = 0xff; - - checkCudaErrors(cudaStreamCreateWithFlags(&stream, cudaStreamNonBlocking)); - // allocate device memory for result - int *dOData; - checkCudaErrors(cudaMalloc((void **)&dOData, memSize)); - // copy host memory to device to initialize to zero - checkCudaErrors(cudaMemcpyAsync(dOData, hOData, memSize, cudaMemcpyHostToDevice, stream)); - - // execute the kernel - testKernel<<>>(dOData); - - // Copy result from device to host - checkCudaErrors(cudaMemcpyAsync(hOData, dOData, memSize, cudaMemcpyDeviceToHost, stream)); - checkCudaErrors(cudaStreamSynchronize(stream)); - - sdkStopTimer(&timer); - printf("Processing time: %f (ms)\n", sdkGetTimerValue(&timer)); - sdkDeleteTimer(&timer); - - // Compute reference solution - testResult = computeGold(hOData, numThreads * numBlocks); - - // Cleanup memory - checkCudaErrors(cudaFreeHost(hOData)); - checkCudaErrors(cudaFree(dOData)); + // Query compute capability (major.minor) and number of SMs on the device + int major = 0, minor = 0, smCount = 0; + cudaDeviceGetAttribute(&major, cudaDevAttrComputeCapabilityMajor, devID); + cudaDeviceGetAttribute(&minor, cudaDevAttrComputeCapabilityMinor, devID); + cudaDeviceGetAttribute(&smCount, cudaDevAttrMultiProcessorCount, devID); + + // Print device info + printf("GPU Device %d: with compute capability %d.%d and Number of SMs %d\n\n", devID, major, minor, smCount); + + // enough blocks to cover all threads, rounding up if not evenly divisible + int numBlocks = cuda::ceil_div(NUM_THREADS, BLOCK_WIDTH); + printf("%d total threads in %d blocks writing into %d array elements\n\n", + NUM_THREADS, numBlocks, ARRAY_SIZE); + + // declare and allocate host memory + int h_array[ARRAY_SIZE]; + const int ARRAY_BYTES = ARRAY_SIZE * sizeof(int); + + // declare and allocate GPU memory (zeroed with cudaMemset before each run) + int *d_array; + cudaMalloc((void **)&d_array, ARRAY_BYTES); + + // CUDA events record timestamps on the GPU stream to measure device time + cudaEvent_t start, stop; + cudaEventCreate(&start); + cudaEventCreate(&stop); + float elapsed_ms; + + // ----- add: every thread adds 1, each element should reach 100000 ----- + printf("[add] expected: every element = %d\n", NUM_THREADS / ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + increment<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-36s (%g ms): ", "non-atomic", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + increment_atomic<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-36s (%g ms): ", "atomicAdd()", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + increment_atomic_std<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-36s (%g ms): ", "cuda::std::atomic_ref::fetch_add()", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + increment_atomic_cuda<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-36s (%g ms): ", "cuda::atomic_ref::fetch_add()", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + // ----- max: every thread offers its index, element i should reach + // the largest index that maps to it: NUM_THREADS - ARRAY_SIZE + i ----- + printf("\n[max] expected: element i = %d + i\n", NUM_THREADS - ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + max<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-46s (%g ms): ", "non-atomic", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + max_atomic<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-46s (%g ms): ", "atomicMax()", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + max_atomic_std<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-46s (%g ms): ", "cuda::std::atomic_ref::compare_exchange_weak()", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + max_atomic_cuda<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-46s (%g ms): ", "cuda::atomic_ref::compare_exchange_weak()", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + // ----- CAS: increment built from compare-and-swap, same expected + // result as add ----- + printf("\n[CAS] expected: every element = %d\n", NUM_THREADS / ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + cas<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-46s (%g ms): ", "non-atomic", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + cas_atomic<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-46s (%g ms): ", "atomicCAS()", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + cas_atomic_std<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-46s (%g ms): ", "cuda::std::atomic_ref::compare_exchange_weak()", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + cudaMemset((void *)d_array, 0, ARRAY_BYTES); + + cudaEventRecord(start); + cas_atomic_cuda<<>>(d_array); + cudaEventRecord(stop); + + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsed_ms, start, stop); + cudaMemcpy(h_array, d_array, ARRAY_BYTES, cudaMemcpyDeviceToHost); + + printf("%-46s (%g ms): ", "cuda::atomic_ref::compare_exchange_weak()", elapsed_ms); + print_array(h_array, ARRAY_SIZE); + + printf("\nThe non-atomic kernels lose updates when threads race on the same\n"); + printf("element; the atomic kernels match the expected values exactly.\n"); + + // free GPU memory allocation and timing events, then exit + cudaEventDestroy(start); + cudaEventDestroy(stop); + cudaFree(d_array); + return 0; } diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics/simpleAtomicIntrinsics_cpu.cpp b/cpp/0_Introduction/simpleAtomicIntrinsics/simpleAtomicIntrinsics_cpu.cpp deleted file mode 100644 index 92d6622d..00000000 --- a/cpp/0_Introduction/simpleAtomicIntrinsics/simpleAtomicIntrinsics_cpu.cpp +++ /dev/null @@ -1,183 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include - -#define min(a, b) (a) < (b) ? (a) : (b) -#define max(a, b) (a) > (b) ? (a) : (b) - -//////////////////////////////////////////////////////////////////////////////// -// export C interface -extern "C" int computeGold(int *gpuData, const int len); - -//////////////////////////////////////////////////////////////////////////////// -//! Compute reference data set -//! Each element is multiplied with the number of threads / array length -//! @param reference reference data, computed but preallocated -//! @param idata input data as provided to device -//! @param len number of elements in reference / idata -//////////////////////////////////////////////////////////////////////////////// -int computeGold(int *gpuData, const int len) -{ - int val = 0; - - for (int i = 0; i < len; ++i) { - val += 10; - } - - if (val != gpuData[0]) { - printf("atomicAdd failed\n"); - return false; - } - - val = 0; - - for (int i = 0; i < len; ++i) { - val -= 10; - } - - if (val != gpuData[1]) { - printf("atomicSub failed\n"); - return false; - } - - bool found = false; - - for (int i = 0; i < len; ++i) { - // third element should be a member of [0, len) - if (i == gpuData[2]) { - found = true; - break; - } - } - - if (!found) { - printf("atomicExch failed\n"); - return false; - } - - val = -(1 << 8); - - for (int i = 0; i < len; ++i) { - // fourth element should be len-1 - val = max(val, i); - } - - if (val != gpuData[3]) { - printf("atomicMax failed\n"); - return false; - } - - val = 1 << 8; - - for (int i = 0; i < len; ++i) { - val = min(val, i); - } - - if (val != gpuData[4]) { - printf("atomicMin failed\n"); - return false; - } - - int limit = 17; - val = 0; - - for (int i = 0; i < len; ++i) { - val = (val >= limit) ? 0 : val + 1; - } - - if (val != gpuData[5]) { - printf("atomicInc failed\n"); - return false; - } - - limit = 137; - val = 0; - - for (int i = 0; i < len; ++i) { - val = ((val == 0) || (val > limit)) ? limit : val - 1; - } - - if (val != gpuData[6]) { - printf("atomicDec failed\n"); - return false; - } - - found = false; - - for (int i = 0; i < len; ++i) { - // eighth element should be a member of [0, len) - if (i == gpuData[7]) { - found = true; - break; - } - } - - if (!found) { - printf("atomicCAS failed\n"); - return false; - } - - val = 0xff; - - for (int i = 0; i < len; ++i) { - // 9th element should be 1 - val &= (2 * i + 7); - } - - if (val != gpuData[8]) { - printf("atomicAnd failed\n"); - return false; - } - - val = 0; - - for (int i = 0; i < len; ++i) { - // 10th element should be 0xff - val |= (1 << i); - } - - if (val != gpuData[9]) { - printf("atomicOr failed\n"); - return false; - } - - val = 0xff; - - for (int i = 0; i < len; ++i) { - // 11th element should be 0xff - val ^= i; - } - - if (val != gpuData[10]) { - printf("atomicXor failed\n"); - return false; - } - - return true; -} diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics/simpleAtomicIntrinsics_kernel.cuh b/cpp/0_Introduction/simpleAtomicIntrinsics/simpleAtomicIntrinsics_kernel.cuh deleted file mode 100644 index 09714d08..00000000 --- a/cpp/0_Introduction/simpleAtomicIntrinsics/simpleAtomicIntrinsics_kernel.cuh +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* Simple kernel demonstrating atomic functions in device code. */ - -#ifndef _SIMPLEATOMICS_KERNEL_H_ -#define _SIMPLEATOMICS_KERNEL_H_ - -//////////////////////////////////////////////////////////////////////////////// -//! Simple test kernel for atomic instructions -//! @param g_idata input data in global memory -//! @param g_odata output data in global memory -//////////////////////////////////////////////////////////////////////////////// -__global__ void testKernel(int *g_odata) -{ - // access thread id - const unsigned int tid = blockDim.x * blockIdx.x + threadIdx.x; - - // Test various atomic instructions - - // Arithmetic atomic instructions - - // Atomic addition - atomicAdd(&g_odata[0], 10); - - // Atomic subtraction (final should be 0) - atomicSub(&g_odata[1], 10); - - // Atomic exchange - atomicExch(&g_odata[2], tid); - - // Atomic maximum - atomicMax(&g_odata[3], tid); - - // Atomic minimum - atomicMin(&g_odata[4], tid); - - // Atomic increment (modulo 17+1) - atomicInc((unsigned int *)&g_odata[5], 17); - - // Atomic decrement - atomicDec((unsigned int *)&g_odata[6], 137); - - // Atomic compare-and-swap - atomicCAS(&g_odata[7], tid - 1, tid); - - // Bitwise atomic instructions - - // Atomic AND - atomicAnd(&g_odata[8], 2 * tid + 7); - - // Atomic OR - atomicOr(&g_odata[9], 1 << tid); - - // Atomic XOR - atomicXor(&g_odata[10], tid); -} - -#endif // #ifndef _SIMPLEATOMICS_KERNEL_H_ diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/.vscode/extensions.json b/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/CMakeLists.txt b/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/CMakeLists.txt deleted file mode 100644 index 9c659d62..00000000 --- a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/CMakeLists.txt +++ /dev/null @@ -1,44 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(simpleAtomicIntrinsics_nvrtc LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add sample target executable -add_executable(simpleAtomicIntrinsics_nvrtc simpleAtomicIntrinsics_cpu.cpp simpleAtomicIntrinsics.cpp) - -target_compile_options(simpleAtomicIntrinsics_nvrtc PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleAtomicIntrinsics_nvrtc PRIVATE cxx_std_17 cuda_std_17) - -target_link_libraries(simpleAtomicIntrinsics_nvrtc PRIVATE - CUDA::nvrtc - CUDA::cuda_driver -) - -# Copy clock_kernel.cu to the output directory -add_custom_command(TARGET simpleAtomicIntrinsics_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/simpleAtomicIntrinsics_kernel.cuh - ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/README.md b/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/README.md deleted file mode 100644 index 4b8264c9..00000000 --- a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# simpleAtomicIntrinsics_nvrtc - Simple Atomic Intrinsics with libNVRTC - -## Description - -A simple demonstration of global memory atomic instructions.This sample makes use of NVRTC for Runtime Compilation. - -## Key Concepts - -Atomic Intrinsics, Runtime Compilation - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows, QNX - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuMemcpyDtoH, cuLaunchKernel, cuMemcpyHtoD, cuCtxSynchronize, cuMemAlloc, cuMemFree, cuModuleGetFunction - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaBlockSize, cudaGridSize - -## Dependencies needed to build/run -[NVRTC](../../../README.md#nvrtc) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/simpleAtomicIntrinsics.cpp b/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/simpleAtomicIntrinsics.cpp deleted file mode 100644 index 0e716c49..00000000 --- a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/simpleAtomicIntrinsics.cpp +++ /dev/null @@ -1,153 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* A simple program demonstrating trivial use of global memory atomic - * device functions (atomic*() functions). - */ - -// includes, system -#include -#include -#include -#include - -#ifdef _WIN32 -#define WINDOWS_LEAN_AND_MEAN -#define NOMINMAX -#include -#endif - -// Includes CUDA -#include -#include - -// Utilities and timing functions -#include // includes cuda.h and cuda_runtime_api.h - -const char *sampleName = "simpleAtomicIntrinsics_nvrtc"; - -//////////////////////////////////////////////////////////////////////////////// -// Auto-Verification Code -bool testResult = true; - -//////////////////////////////////////////////////////////////////////////////// -// Declaration, forward -void runTest(int argc, char **argv); - -extern "C" bool computeGold(int *gpuData, const int len); - -//////////////////////////////////////////////////////////////////////////////// -// Program main -//////////////////////////////////////////////////////////////////////////////// - -int main(int argc, char **argv) -{ - printf("%s starting...\n", sampleName); - - runTest(argc, argv); - - printf("%s completed, returned %s\n", sampleName, testResult ? "OK" : "ERROR!"); - - exit(testResult ? EXIT_SUCCESS : EXIT_FAILURE); -} - -//////////////////////////////////////////////////////////////////////////////// -//! Run a simple test for CUDA -//////////////////////////////////////////////////////////////////////////////// - -void runTest(int argc, char **argv) -{ - int dev = 0; - - char *cubin, *kernel_file; - size_t cubinSize; - - kernel_file = sdkFindFilePath("simpleAtomicIntrinsics_kernel.cuh", argv[0]); - compileFileToCUBIN(kernel_file, argc, argv, &cubin, &cubinSize, 0); - - CUmodule module = loadCUBIN(cubin, argc, argv); - CUfunction kernel_addr; - - checkCudaErrors(cuModuleGetFunction(&kernel_addr, module, "testKernel")); - - StopWatchInterface *timer; - sdkCreateTimer(&timer); - sdkStartTimer(&timer); - - unsigned int numThreads = 256; - unsigned int numBlocks = 64; - unsigned int numData = 11; - unsigned int memSize = sizeof(int) * numData; - - // allocate mem for the result on host side - int *hOData = (int *)malloc(memSize); - - // initialize the memory - for (unsigned int i = 0; i < numData; i++) - hOData[i] = 0; - - // To make the AND and XOR tests generate something other than 0... - hOData[8] = hOData[10] = 0xff; - - // allocate device memory for result - CUdeviceptr dOData; - checkCudaErrors(cuMemAlloc(&dOData, memSize)); - checkCudaErrors(cuMemcpyHtoD(dOData, hOData, memSize)); - - // execute the kernel - dim3 cudaBlockSize(numThreads, 1, 1); - dim3 cudaGridSize(numBlocks, 1, 1); - - void *arr[] = {(void *)&dOData}; - checkCudaErrors(cuLaunchKernel(kernel_addr, - cudaGridSize.x, - cudaGridSize.y, - cudaGridSize.z, /* grid dim */ - cudaBlockSize.x, - cudaBlockSize.y, - cudaBlockSize.z, /* block dim */ - 0, - 0, /* shared mem, stream */ - &arr[0], /* arguments */ - 0)); - - checkCudaErrors(cuCtxSynchronize()); - - checkCudaErrors(cuMemcpyDtoH(hOData, dOData, memSize)); - - // Copy result from device to host - sdkStopTimer(&timer); - printf("Processing time: %f (ms)\n", sdkGetTimerValue(&timer)); - sdkDeleteTimer(&timer); - - // Compute reference solution - testResult = computeGold(hOData, numThreads * numBlocks); - - // Cleanup memory - free(hOData); - checkCudaErrors(cuMemFree(dOData)); -} diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/simpleAtomicIntrinsics_cpu.cpp b/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/simpleAtomicIntrinsics_cpu.cpp deleted file mode 100644 index 8510b49f..00000000 --- a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/simpleAtomicIntrinsics_cpu.cpp +++ /dev/null @@ -1,182 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include - -#define min(a, b) (a) < (b) ? (a) : (b) -#define max(a, b) (a) > (b) ? (a) : (b) - -//////////////////////////////////////////////////////////////////////////////// -// export C interface -extern "C" int computeGold(int *gpuData, const int len); - -//////////////////////////////////////////////////////////////////////////////// -//! Compute reference data set -//! Each element is multiplied with the number of threads / array length -//! @param reference reference data, computed but preallocated -//! @param idata input data as provided to device -//! @param len number of elements in reference / idata -//////////////////////////////////////////////////////////////////////////////// - -int computeGold(int *gpuData, const int len) -{ - int val = 0; - - for (int i = 0; i < len; ++i) { - val += 10; - } - - if (val != gpuData[0]) { - printf("atomicAdd failed\n"); - return false; - } - - val = 0; - - for (int i = 0; i < len; ++i) { - val -= 10; - } - - if (val != gpuData[1]) { - printf("atomicSub failed\n"); - return false; - } - - bool found = false; - - for (int i = 0; i < len; ++i) { - // third element should be a member of [0, len) - if (i == gpuData[2]) { - found = true; - break; - } - } - - if (!found) { - printf("atomicExch failed\n"); - return false; - } - - val = -(1 << 8); - - for (int i = 0; i < len; ++i) { - // fourth element should be len-1 - val = max(val, i); - } - - if (val != gpuData[3]) { - printf("atomicMax failed\n"); - return false; - } - - val = 1 << 8; - - for (int i = 0; i < len; ++i) { - val = min(val, i); - } - - if (val != gpuData[4]) { - printf("atomicMin failed\n"); - return false; - } - - int limit = 17; - val = 0; - - for (int i = 0; i < len; ++i) { - val = (val >= limit) ? 0 : val + 1; - } - - if (val != gpuData[5]) { - printf("atomicInc failed\n"); - return false; - } - - limit = 137; - val = 0; - - for (int i = 0; i < len; ++i) { - val = ((val == 0) || (val > limit)) ? limit : val - 1; - } - - if (val != gpuData[6]) { - printf("atomicDec failed\n"); - return false; - } - - found = false; - - for (int i = 0; i < len; ++i) { - // eighth element should be a member of [0, len) - if (i == gpuData[7]) { - found = true; - break; - } - } - - if (!found) { - printf("atomicCAS failed\n"); - return false; - } - - val = 0xff; - for (int i = 0; i < len; ++i) { - // 9th element should be 1 - val &= (2 * i + 7); - } - - if (val != gpuData[8]) { - printf("atomicAnd failed\n"); - return false; - } - - val = 0; - for (int i = 0; i < len; ++i) { - // 10th element should be 0xff - val |= (1 << i); - } - - if (val != gpuData[9]) { - printf("atomicOr failed\n"); - return false; - } - - val = 0xff; - - for (int i = 0; i < len; ++i) { - // 11th element should be 0xff - val ^= i; - } - - if (val != gpuData[10]) { - printf("atomicXor failed\n"); - return false; - } - - return true; -} diff --git a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/simpleAtomicIntrinsics_kernel.cuh b/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/simpleAtomicIntrinsics_kernel.cuh deleted file mode 100644 index 3c4d284c..00000000 --- a/cpp/0_Introduction/simpleAtomicIntrinsics_nvrtc/simpleAtomicIntrinsics_kernel.cuh +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* Simple kernel demonstrating atomic functions in device code. */ - -#ifndef _SIMPLEATOMICS_KERNEL_H_ -#define _SIMPLEATOMICS_KERNEL_H_ - -//////////////////////////////////////////////////////////////////////////////// -//! Simple test kernel for atomic instructions -//! @param g_idata input data in global memory -//! @param g_odata output data in global memory -//////////////////////////////////////////////////////////////////////////////// - -extern "C" __global__ void testKernel(int *g_odata) -{ - // access thread id - const unsigned int tid = blockDim.x * blockIdx.x + threadIdx.x; - - // Test various atomic instructions - // Arithmetic atomic instructions - // Atomic addition - atomicAdd(&g_odata[0], 10); - - // Atomic subtraction (final should be 0) - atomicSub(&g_odata[1], 10); - - // Atomic exchange - atomicExch(&g_odata[2], tid); - - // Atomic maximum - atomicMax(&g_odata[3], tid); - - // Atomic minimum - atomicMin(&g_odata[4], tid); - - // Atomic increment (modulo 17+1) - atomicInc((unsigned int *)&g_odata[5], 17); - - // Atomic decrement - atomicDec((unsigned int *)&g_odata[6], 137); - - // Atomic compare-and-swap - atomicCAS(&g_odata[7], tid - 1, tid); - - // Bitwise atomic instructions - // Atomic AND - atomicAnd(&g_odata[8], 2 * tid + 7); - - // Atomic OR - atomicOr(&g_odata[9], 1 << tid); - - // Atomic XOR - atomicXor(&g_odata[10], tid); -} - -#endif // #ifndef _SIMPLEATOMICS_KERNEL_H_ diff --git a/cpp/0_Introduction/simpleAttributes/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleAttributes/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleAttributes/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleAttributes/.vscode/extensions.json b/cpp/0_Introduction/simpleAttributes/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleAttributes/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleAttributes/CMakeLists.txt b/cpp/0_Introduction/simpleAttributes/CMakeLists.txt index d481f57b..d15710c3 100644 --- a/cpp/0_Introduction/simpleAttributes/CMakeLists.txt +++ b/cpp/0_Introduction/simpleAttributes/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleAttributes LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleAttributes add_executable(simpleAttributes simpleAttributes.cu) target_compile_options(simpleAttributes PRIVATE $<$:--extended-lambda>) target_compile_features(simpleAttributes PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleAttributes PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleCUDA2GL/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleCUDA2GL/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleCUDA2GL/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleCUDA2GL/.vscode/extensions.json b/cpp/0_Introduction/simpleCUDA2GL/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleCUDA2GL/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleCUDA2GL/CMakeLists.txt b/cpp/0_Introduction/simpleCUDA2GL/CMakeLists.txt index 661eba02..3bb34e01 100644 --- a/cpp/0_Introduction/simpleCUDA2GL/CMakeLists.txt +++ b/cpp/0_Introduction/simpleCUDA2GL/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleCUDA2GL LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -30,31 +26,22 @@ if(WIN32) endif() endif() - find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") message(STATUS "Will not build sample simpleCUDA2GL - not supported on aarch64") else() - # Add target for simpleCUDA2GL add_executable(simpleCUDA2GL simpleCUDA2GL.cu main.cpp) - target_compile_options(simpleCUDA2GL PRIVATE $<$:--extended-lambda>) - target_compile_features(simpleCUDA2GL PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleCUDA2GL PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleCUDA2GL PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(simpleCUDA2GL ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} @@ -64,14 +51,12 @@ if(${OpenGL_FOUND}) ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET simpleCUDA2GL POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET simpleCUDA2GL POST_BUILD COMMAND ${CMAKE_COMMAND} -E @@ -79,6 +64,8 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() + include(InstallSamples) + setup_samples_install() endif() else() message(STATUS "GLUT not found - will not build sample 'simpleCUDA2GL'") @@ -86,7 +73,3 @@ if(${OpenGL_FOUND}) else() message(STATUS "OpenGL not found - will not build sample 'simpleCUDA2GL'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/simpleCallback/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleCallback/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleCallback/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleCallback/.vscode/extensions.json b/cpp/0_Introduction/simpleCallback/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleCallback/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleCallback/CMakeLists.txt b/cpp/0_Introduction/simpleCallback/CMakeLists.txt index 8c19b28f..9bd36e54 100644 --- a/cpp/0_Introduction/simpleCallback/CMakeLists.txt +++ b/cpp/0_Introduction/simpleCallback/CMakeLists.txt @@ -1,34 +1,30 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleCallback LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleCallback -add_executable(simpleCallback simpleCallback.cu multithreading.cpp) +add_executable(simpleCallback simpleCallback.cu) target_compile_options(simpleCallback PRIVATE $<$:--extended-lambda>) target_compile_features(simpleCallback PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleCallback PROPERTIES CUDA_SEPARABLE_COMPILATION ON) +# std::thread is backed by pthreads on Linux +find_package(Threads REQUIRED) +target_link_libraries(simpleCallback PRIVATE Threads::Threads) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) + +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleCallback/README.md b/cpp/0_Introduction/simpleCallback/README.md index 53e23aab..9ba7aa00 100644 --- a/cpp/0_Introduction/simpleCallback/README.md +++ b/cpp/0_Introduction/simpleCallback/README.md @@ -1,32 +1,133 @@ -# simpleCallback - Simple CUDA Callbacks +# Sample: simpleCallback ## Description -This sample implements multi-threaded heterogeneous computing workloads with the new CPU callbacks for CUDA streams and events introduced with CUDA 5.0. +A heterogeneous pipeline demo: **CPU pre-process → GPU kernel → CPU post-process**, all +coordinated by a single CUDA stream. A worker thread (`std::thread`) fills the input buffer, +enqueues the GPU work (H2D copy, kernel, D2H copy), and registers a host function with +`cudaLaunchHostFunc` — the modern replacement for the deprecated `cudaStreamAddCallback`. +CUDA invokes that host function automatically once all preceding stream work completes, +so the CPU post-processing (result verification) runs without the main thread ever polling. + +## What You'll Learn + +- Building a CPU → GPU → CPU pipeline ordered by a single CUDA stream +- Scheduling CPU post-processing on a stream with `cudaLaunchHostFunc` +- Enqueuing GPU work from a `std::thread` worker — all host threads share the device's primary context +- The rule that a host function must never call CUDA APIs +- Why pinned host memory (`cudaMallocHost`) is required for `cudaMemcpyAsync` to be truly asynchronous +- Querying GPU properties (compute capability, SM count) with `cudaDeviceGetAttribute` ## Key Concepts -CUDA Streams, Callback Functions, Multithreading +### Stream-Ordered Pipeline -## Supported SM Architectures +A stream executes its operations strictly in order. The worker thread pushes the whole +pipeline onto one stream and CUDA handles every dependency: -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) +```text +stream: [H2D copy] → [incrementKernel] → [D2H copy] → [postprocess host func] +``` -## Supported OSes +The main thread only has to `cudaStreamSynchronize` once at the end — when the stream +drains, the results are already verified. -Linux, Windows +### Host Functions (`cudaLaunchHostFunc`) -## Supported CPU Architecture +A host function is a CPU callback enqueued on a stream like any other operation. CUDA runs +it on an internal thread once all prior work in the stream has finished. Two rules apply: -x86_64, armv7l +- It must **not** call any CUDA runtime or driver API (no `cudaFree`, no kernel launches) +- It should be short — the stream cannot proceed until it returns -## CUDA APIs involved +### Threads Share the Primary Context -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaHostAlloc, cudaStreamDestroy, cudaFree, cudaSetDevice, cudaGetDeviceCount, cudaFreeHost, cudaStreamAddCallback, cudaMalloc, cudaMemcpyAsync, cudaStreamCreate, cudaGetDeviceProperties +With the CUDA runtime API, every host thread in the process shares the device's primary +context. That is why the worker thread can enqueue copies and kernels onto a stream that +`main` created. -## Prerequisites +### Pinned Host Memory -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. +`cudaMemcpyAsync` only runs *truly asynchronously* when the host buffer is page-locked (pinned), +so the OS cannot move the pages mid-transfer; with ordinary pageable memory the copy falls back to +synchronous behavior. The sample allocates the host buffer with `cudaMallocHost`. -## References (for more details) +## Key APIs + +### CUDA Runtime + +- `cudaSetDevice` — select the active GPU for all subsequent CUDA calls +- `cudaDeviceGetAttribute` — query compute capability and SM count +- `cudaMallocHost` / `cudaFreeHost` — allocate and free pinned host memory +- `cudaMalloc` / `cudaFree` — allocate and free device memory +- `cudaStreamCreate` / `cudaStreamDestroy` — create and destroy the stream that orders the pipeline +- `cudaMemcpyAsync` — non-blocking H2D and D2H transfers on the stream +- `cudaLaunchHostFunc` — enqueue a CPU callback on the stream +- `cudaStreamSynchronize` — block the host until the stream (including the host function) is done + +### C++ Standard Library + +- `std::thread` / `join()` — worker-thread creation + +## Requirements + +### Hardware + +- NVIDIA GPU with Compute Capability 7.5 or higher + +### Software + +- CMake 3.20 or newer +- A C++17-capable host compiler + +## How to Build + +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. + +## How to Run + +```bash +./simpleCallback +``` + +No command-line arguments are required. The sample always runs on device 0. + +## Expected Output + +```text +===================================================== + simpleCallback: CPU -> GPU -> CPU pipeline demo +===================================================== +Using GPU 0: compute capability X.Y, SMs +[thread] Stage 1: CPU pre-processing on a worker thread... +[thread] Filled 100000 elements. First 3 inputs: 42, 43, 44 + +[thread] Stage 2: enqueuing H2D copy, kernel, D2H copy on the stream +[thread] Registering post-processing callback with cudaLaunchHostFunc + +[main] Worker thread joined; GPU work has been enqueued. +[main] Waiting for the stream (and callback) to finish... + +[host func] Stage 3: callback fired automatically - the GPU work is done! +[host func] First 3 results: 43, 44, 45 (each input +1) +[host func] Verified all 100000 results: PASS + +[main] Pipeline complete. Result: SUCCESS +``` + +**Reading the output:** +- Inputs start at 42 because each element is `workload.id + i` with `id = 42` +- Each result is its input plus one — the kernel's only job +- The `[host func]` lines print from a CUDA internal thread, not from `main` + +## Files + +- `simpleCallback.cu` — kernel, worker-thread function, host-function callback, and main driver +- `README.md` — this file +- `CMakeLists.txt` — build configuration + +## See Also + +- [CUDA Programming Guide — Callback Functions from Streams](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/asynchronous-execution.html#callback-functions-from-streams) +- [CUDA Programming Guide — CUDA Streams](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/asynchronous-execution.html#cuda-streams) +- [CUDA Runtime API — Execution Control (cudaLaunchHostFunc)](https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__EXECUTION.html#group__CUDART__EXECUTION_1g05841eaa5f90f27124241baafb3e856f) diff --git a/cpp/0_Introduction/simpleCallback/multithreading.cpp b/cpp/0_Introduction/simpleCallback/multithreading.cpp deleted file mode 100644 index d4c89913..00000000 --- a/cpp/0_Introduction/simpleCallback/multithreading.cpp +++ /dev/null @@ -1,152 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include "multithreading.h" - -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) -// Create thread -CUTThread cutStartThread(CUT_THREADROUTINE func, void *data) -{ - return CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func, data, 0, NULL); -} - -// Wait for thread to finish -void cutEndThread(CUTThread thread) -{ - WaitForSingleObject(thread, INFINITE); - CloseHandle(thread); -} - -// Wait for multiple threads -void cutWaitForThreads(const CUTThread *threads, int num) -{ - WaitForMultipleObjects(num, threads, true, INFINITE); - - for (int i = 0; i < num; i++) { - CloseHandle(threads[i]); - } -} - -// Create barrier. -CUTBarrier cutCreateBarrier(int releaseCount) -{ - CUTBarrier barrier; - - InitializeCriticalSection(&barrier.criticalSection); - barrier.barrierEvent = CreateEvent(NULL, TRUE, FALSE, TEXT("BarrierEvent")); - barrier.count = 0; - barrier.releaseCount = releaseCount; - - return barrier; -} - -// Increment barrier. (execution continues) -void cutIncrementBarrier(CUTBarrier *barrier) -{ - int myBarrierCount; - EnterCriticalSection(&barrier->criticalSection); - myBarrierCount = ++barrier->count; - LeaveCriticalSection(&barrier->criticalSection); - - if (myBarrierCount >= barrier->releaseCount) { - SetEvent(barrier->barrierEvent); - } -} - -// Wait for barrier release. -void cutWaitForBarrier(CUTBarrier *barrier) { WaitForSingleObject(barrier->barrierEvent, INFINITE); } - -// Destroy barrier -void cutDestroyBarrier(CUTBarrier *barrier) {} - -#else -// Create thread -CUTThread cutStartThread(CUT_THREADROUTINE func, void *data) -{ - pthread_t thread; - pthread_create(&thread, NULL, func, data); - return thread; -} - -// Wait for thread to finish -void cutEndThread(CUTThread thread) { pthread_join(thread, NULL); } - -// Wait for multiple threads -void cutWaitForThreads(const CUTThread *threads, int num) -{ - for (int i = 0; i < num; i++) { - cutEndThread(threads[i]); - } -} - -// Create barrier. -CUTBarrier cutCreateBarrier(int releaseCount) -{ - CUTBarrier barrier; - - barrier.count = 0; - barrier.releaseCount = releaseCount; - - pthread_mutex_init(&barrier.mutex, 0); - pthread_cond_init(&barrier.conditionVariable, 0); - - return barrier; -} - -// Increment barrier. (execution continues) -void cutIncrementBarrier(CUTBarrier *barrier) -{ - int myBarrierCount; - pthread_mutex_lock(&barrier->mutex); - myBarrierCount = ++barrier->count; - pthread_mutex_unlock(&barrier->mutex); - - if (myBarrierCount >= barrier->releaseCount) { - pthread_cond_signal(&barrier->conditionVariable); - } -} - -// Wait for barrier release. -void cutWaitForBarrier(CUTBarrier *barrier) -{ - pthread_mutex_lock(&barrier->mutex); - - while (barrier->count < barrier->releaseCount) { - pthread_cond_wait(&barrier->conditionVariable, &barrier->mutex); - } - - pthread_mutex_unlock(&barrier->mutex); -} - -// Destroy barrier -void cutDestroyBarrier(CUTBarrier *barrier) -{ - pthread_mutex_destroy(&barrier->mutex); - pthread_cond_destroy(&barrier->conditionVariable); -} - -#endif diff --git a/cpp/0_Introduction/simpleCallback/multithreading.h b/cpp/0_Introduction/simpleCallback/multithreading.h deleted file mode 100644 index d9b4b2a0..00000000 --- a/cpp/0_Introduction/simpleCallback/multithreading.h +++ /dev/null @@ -1,101 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 MULTITHREADING_H -#define MULTITHREADING_H - -// Simple portable thread library. - -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) -// Windows threads. -#include - -typedef HANDLE CUTThread; -typedef unsigned(WINAPI *CUT_THREADROUTINE)(void *); - -struct CUTBarrier -{ - CRITICAL_SECTION criticalSection; - HANDLE barrierEvent; - int releaseCount; - int count; -}; - -#define CUT_THREADPROC unsigned WINAPI -#define CUT_THREADEND return 0 - -#else -// POSIX threads. -#include - -typedef pthread_t CUTThread; -typedef void *(*CUT_THREADROUTINE)(void *); - -#define CUT_THREADPROC void * -#define CUT_THREADEND return 0 - -struct CUTBarrier -{ - pthread_mutex_t mutex; - pthread_cond_t conditionVariable; - int releaseCount; - int count; -}; - -#endif - -#ifdef __cplusplus -extern "C" -{ -#endif - - // Create thread. - CUTThread cutStartThread(CUT_THREADROUTINE, void *data); - - // Wait for thread to finish. - void cutEndThread(CUTThread thread); - - // Wait for multiple threads. - void cutWaitForThreads(const CUTThread *threads, int num); - - // Create barrier. - CUTBarrier cutCreateBarrier(int releaseCount); - - // Increment barrier. (execution continues) - void cutIncrementBarrier(CUTBarrier *barrier); - - // Wait for barrier release. - void cutWaitForBarrier(CUTBarrier *barrier); - - // Destroy barrier - void cutDestroyBarrier(CUTBarrier *barrier); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // MULTITHREADING_H diff --git a/cpp/0_Introduction/simpleCallback/simpleCallback.cu b/cpp/0_Introduction/simpleCallback/simpleCallback.cu index c8df6ee0..b57ad8ec 100644 --- a/cpp/0_Introduction/simpleCallback/simpleCallback.cu +++ b/cpp/0_Introduction/simpleCallback/simpleCallback.cu @@ -1,4 +1,4 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +/* Copyright (c) 2026, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -26,190 +26,171 @@ */ /* - * This sample implements multi-threaded heterogeneous computing workloads with - * the new CPU callbacks for CUDA streams and events introduced with CUDA 5.0. - * Together with the thread safety of the CUDA API implementing heterogeneous - * workloads that float between CPU threads and GPUs has become simple and - * efficient. + * simpleCallback + * -------------- + * An example of a heterogeneous pipeline in the form: * - * The workloads in the sample follow the form CPU preprocess -> GPU process -> - * CPU postprocess. - * Each CPU processing step is handled by its own dedicated thread. GPU - * workloads are sent to all available GPUs in the system. + * CPU pre-process -> GPU kernel -> CPU post-process * + * The whole pipeline is coordinated by a *single* CUDA stream. A stream + * executes the operations enqueued on it in order, so we can simply push work + * onto it and let CUDA take care of ordering and dependencies for us. + * + * Two different "CPU" mechanisms appear in this sample so you can see how they + * differ: + * + * 1. The CPU pre-processing runs on a dedicated worker thread created with + * C++ std::thread. This shows how ordinary host-side threading can be + * combined with CUDA. The worker fills the input buffer and then enqueues + * the GPU pipeline itself; main joins it and waits on the stream. + * + * 2. The CPU post-processing is scheduled *on the stream itself* with + * cudaLaunchHostFunc(). CUDA calls our host function automatically once all + * the preceding stream work (copies + kernel) has completed. This is the + * modern, non-deprecated replacement for cudaStreamAddCallback(). + * + * IMPORTANT rule for cudaLaunchHostFunc callbacks: + * The host function must NOT call any CUDA runtime/driver API (no cudaMalloc, + * cudaFree, kernel launches, etc.). It should only do plain CPU work. + * + * NOTE: For clarity this sample intentionally omits CUDA error checking. Real + * applications should check the return code of every CUDA call. */ // System includes -#include +#include +#include -// helper functions and utilities to work with CUDA -#include -#include +#include // std::thread — C++11 standard threading -#include "multithreading.h" +// CUDA runtime +#include -const int N_workloads = 8; -const int N_elements_per_workload = 100000; +const int NumElements = 100000; -CUTBarrier thread_barrier; - -void CUDART_CB myStreamCallback(cudaStream_t event, cudaError_t status, void *data); - -struct heterogeneous_workload +// Everything a single pipeline needs. Passed by pointer to both the +// std::thread worker and to the stream host-function callback. +struct Workload { - int id; - int cudaDeviceID; - - int *h_data; - int *d_data; - cudaStream_t stream; - - bool success; + int id = 0; // arbitrary tag added to each element + int *h_data = nullptr; // pinned host buffer (fast async copies) + int *d_data = nullptr; // device buffer + cudaStream_t stream = nullptr; // the single stream that orders all the work + bool success = false; // set by the post-processing callback }; -__global__ void incKernel(int *data, int N) +// GPU kernel: increment every element by one. +__global__ void incrementKernel(int *data, int n) { int i = blockIdx.x * blockDim.x + threadIdx.x; - - if (i < N) - data[i]++; + if (i < n) { + data[i] += 1; + } } -CUT_THREADPROC launch(void *void_arg) +// Forward declaration: postprocess is defined below but called from preprocess. +void CUDART_CB postprocess(void *arg); + +// Worker thread: CPU pre-processing + full GPU pipeline enqueue. +// +// std::thread passes arguments with their actual types, so no void* casting +// is needed. This thread fills the input buffer, then enqueues the full GPU +// pipeline (H2D, kernel, D2H, host func) onto the workload's stream. +void preprocess(Workload *workload) { - heterogeneous_workload *workload = (heterogeneous_workload *)void_arg; - - // Select GPU for this CPU thread - checkCudaErrors(cudaSetDevice(workload->cudaDeviceID)); - - // Allocate Resources - checkCudaErrors(cudaStreamCreate(&workload->stream)); - checkCudaErrors(cudaMalloc(&workload->d_data, N_elements_per_workload * sizeof(int))); - checkCudaErrors(cudaHostAlloc(&workload->h_data, N_elements_per_workload * sizeof(int), cudaHostAllocPortable)); - - // CPU thread generates data - for (int i = 0; i < N_elements_per_workload; ++i) { + // Stage 1: CPU pre-processing ---------------------------------- + printf("[thread] Stage 1: CPU pre-processing on a worker thread...\n"); + for (int i = 0; i < NumElements; ++i) { workload->h_data[i] = workload->id + i; } + printf("[thread] Filled %d elements. First 3 inputs: %d, %d, %d\n\n", + NumElements, workload->h_data[0], workload->h_data[1], workload->h_data[2]); - // Schedule work for GPU in CUDA stream without blocking the CPU thread - // Note: Dedicated streams enable concurrent execution of workloads on the GPU - dim3 block(512); - dim3 grid((N_elements_per_workload + block.x - 1) / block.x); + // Stage 2: enqueue GPU work from this thread ------------------- + const size_t bytes = NumElements * sizeof(int); + const int threadsPerBlock = 256; + const int blocks = (NumElements + threadsPerBlock - 1) / threadsPerBlock; - checkCudaErrors(cudaMemcpyAsync(workload->d_data, - workload->h_data, - N_elements_per_workload * sizeof(int), - cudaMemcpyHostToDevice, - workload->stream)); - incKernel<<stream>>>(workload->d_data, N_elements_per_workload); - checkCudaErrors(cudaMemcpyAsync(workload->h_data, - workload->d_data, - N_elements_per_workload * sizeof(int), - cudaMemcpyDeviceToHost, - workload->stream)); + printf("[thread] Stage 2: enqueuing H2D copy, kernel, D2H copy on the stream\n"); + cudaMemcpyAsync(workload->d_data, workload->h_data, bytes, cudaMemcpyHostToDevice, workload->stream); + incrementKernel<<stream>>>(workload->d_data, NumElements); + cudaMemcpyAsync(workload->h_data, workload->d_data, bytes, cudaMemcpyDeviceToHost, workload->stream); - // New in CUDA 5.0: Add a CPU callback which is called once all currently - // pending operations in the CUDA stream have finished - checkCudaErrors(cudaStreamAddCallback(workload->stream, myStreamCallback, workload, 0)); - - CUT_THREADEND; - // CPU thread end of life, GPU continues to process data... + // Stage 3: schedule CPU post-processing on the stream ----------- + printf("[thread] Registering post-processing callback with cudaLaunchHostFunc\n\n"); + cudaLaunchHostFunc(workload->stream, postprocess, workload); } -CUT_THREADPROC postprocess(void *void_arg) +// Stage 3: CPU post-processing, scheduled on the stream via cudaLaunchHostFunc. +// +// CUDA invokes this automatically once the H2D copy, the kernel, and the D2H +// copy that precede it on the stream have all finished. Every element should +// now equal its original value plus one (from the kernel). +// +// Reminder: DO NOT call any CUDA API from inside this function. +void CUDART_CB postprocess(void *arg) { - heterogeneous_workload *workload = (heterogeneous_workload *)void_arg; - // ... GPU is done with processing, continue on new CPU thread... + // recover the typed pointer from the callback's void* arg + auto *workload = static_cast(arg); - // Select GPU for this CPU thread - checkCudaErrors(cudaSetDevice(workload->cudaDeviceID)); + // Stage 3: CPU post-processing — runs automatically when all stream work above is done + printf("[host func] Stage 3: callback fired automatically - the GPU work is done!\n"); + printf("[host func] First 3 results: %d, %d, %d (each input +1)\n", + workload->h_data[0], workload->h_data[1], workload->h_data[2]); - // CPU thread consumes results from GPU - workload->success = true; - - for (int i = 0; i < N_workloads; ++i) { - workload->success &= workload->h_data[i] == i + workload->id + 1; - } - - // Free Resources - checkCudaErrors(cudaFree(workload->d_data)); - checkCudaErrors(cudaFreeHost(workload->h_data)); - checkCudaErrors(cudaStreamDestroy(workload->stream)); - - // Signal the end of the heterogeneous workload to main thread - cutIncrementBarrier(&thread_barrier); - - CUT_THREADEND; -} - -void CUDART_CB myStreamCallback(cudaStream_t stream, cudaError_t status, void *data) -{ - // Check status of GPU after stream operations are done - checkCudaErrors(status); - - // Spawn new CPU worker thread and continue processing on the CPU - cutStartThread(postprocess, data); -} - -int main(int argc, char **argv) -{ - int N_gpus, max_gpus = 0; - int gpuInfo[32]; // assume a maximum of 32 GPUs in a system configuration - - printf("Starting simpleCallback\n"); - - checkCudaErrors(cudaGetDeviceCount(&N_gpus)); - printf("Found %d CUDA capable GPUs\n", N_gpus); - - if (N_gpus > 32) { - printf("simpleCallback only supports 32 GPU(s)\n"); - } - - for (int devid = 0; devid < N_gpus; devid++) { - int SMversion; - cudaDeviceProp deviceProp; - cudaSetDevice(devid); - cudaGetDeviceProperties(&deviceProp, devid); - SMversion = deviceProp.major << 4 + deviceProp.minor; - printf("GPU[%d] %s supports SM %d.%d", devid, deviceProp.name, deviceProp.major, deviceProp.minor); - printf(", %s GPU Callback Functions\n", (SMversion >= 0x11) ? "capable" : "NOT capable"); - - if (SMversion >= 0x11) { - gpuInfo[max_gpus++] = devid; + bool verify = true; + for (int i = 0; i < NumElements; ++i) { + if (workload->h_data[i] != workload->id + i + 1) { + verify = false; + break; } } - - printf("%d GPUs available to run Callback Functions\n", max_gpus); - - heterogeneous_workload *workloads; - workloads = (heterogeneous_workload *)malloc(N_workloads * sizeof(heterogeneous_workload)); - ; - thread_barrier = cutCreateBarrier(N_workloads); - - // Main thread spawns a CPU worker thread for each heterogeneous workload - printf("Starting %d heterogeneous computing workloads\n", N_workloads); - - for (int i = 0; i < N_workloads; ++i) { - workloads[i].id = i; - workloads[i].cudaDeviceID = gpuInfo[i % max_gpus]; // i % N_gpus; - - cutStartThread(launch, &workloads[i]); - } - - // Sleep until all workloads have finished - cutWaitForBarrier(&thread_barrier); - printf("Total of %d workloads finished:\n", N_workloads); - - bool success = true; - - for (int i = 0; i < N_workloads; ++i) { - success &= workloads[i].success; - } - - printf("%s\n", success ? "Success" : "Failure"); - - free(workloads); - - exit(success ? EXIT_SUCCESS : EXIT_FAILURE); + workload->success = verify; + printf("[host func] Verified all %d results: %s\n", NumElements, verify ? "PASS" : "MISMATCH"); +} + +int main() +{ + printf("=====================================================\n"); + printf(" simpleCallback: CPU -> GPU -> CPU pipeline demo\n"); + printf("=====================================================\n"); + + // Use the first available CUDA device. + int devID = 0; + cudaSetDevice(devID); + + int major = 0, minor = 0, smCount = 0; + cudaDeviceGetAttribute(&major, cudaDevAttrComputeCapabilityMajor, devID); + cudaDeviceGetAttribute(&minor, cudaDevAttrComputeCapabilityMinor, devID); + cudaDeviceGetAttribute(&smCount, cudaDevAttrMultiProcessorCount, devID); + printf("Using GPU %d: compute capability %d.%d, %d SMs\n", devID, major, minor, smCount); + + // Allocate resources + Workload workload; + workload.id = 42; // Any number can be used + + // Pinned (page-locked) host memory enables true asynchronous copies. + const size_t bytes = NumElements * sizeof(int); + cudaMallocHost(&workload.h_data, bytes); + cudaMalloc(&workload.d_data, bytes); + cudaStreamCreate(&workload.stream); + + // Launch worker thread; it fills the buffer AND enqueues the full GPU pipeline. + std::thread worker(preprocess, &workload); + worker.join(); + printf("[main] Worker thread joined; GPU work has been enqueued.\n"); + + // Block until the whole pipeline (including the host function) is complete. + printf("[main] Waiting for the stream (and callback) to finish...\n\n"); + cudaStreamSynchronize(workload.stream); + + // Clean up + // Safe to call CUDA APIs here: we are back on the main thread, not inside + // the host-function callback. + cudaStreamDestroy(workload.stream); + cudaFree(workload.d_data); + cudaFreeHost(workload.h_data); + + printf("\n[main] Pipeline complete. Result: %s\n", workload.success ? "SUCCESS" : "FAILURE"); + return workload.success ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/cpp/0_Introduction/simpleCooperativeGroups/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleCooperativeGroups/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleCooperativeGroups/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleCooperativeGroups/.vscode/extensions.json b/cpp/0_Introduction/simpleCooperativeGroups/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleCooperativeGroups/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleCooperativeGroups/CMakeLists.txt b/cpp/0_Introduction/simpleCooperativeGroups/CMakeLists.txt index cd0659f0..8fb2c01e 100644 --- a/cpp/0_Introduction/simpleCooperativeGroups/CMakeLists.txt +++ b/cpp/0_Introduction/simpleCooperativeGroups/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleCooperativeGroups LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleCooperativeGroups add_executable(simpleCooperativeGroups simpleCooperativeGroups.cu) target_compile_options(simpleCooperativeGroups PRIVATE $<$:--extended-lambda>) target_compile_features(simpleCooperativeGroups PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleCooperativeGroups PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleCubemapTexture/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleCubemapTexture/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleCubemapTexture/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleCubemapTexture/.vscode/extensions.json b/cpp/0_Introduction/simpleCubemapTexture/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleCubemapTexture/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleCubemapTexture/CMakeLists.txt b/cpp/0_Introduction/simpleCubemapTexture/CMakeLists.txt index 2ec278b2..0d1381de 100644 --- a/cpp/0_Introduction/simpleCubemapTexture/CMakeLists.txt +++ b/cpp/0_Introduction/simpleCubemapTexture/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleCubemapTexture LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleCubemapTexture add_executable(simpleCubemapTexture simpleCubemapTexture.cu) target_compile_options(simpleCubemapTexture PRIVATE $<$:--extended-lambda>) target_compile_features(simpleCubemapTexture PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleCubemapTexture PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleDrvRuntime/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleDrvRuntime/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleDrvRuntime/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleDrvRuntime/.vscode/extensions.json b/cpp/0_Introduction/simpleDrvRuntime/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleDrvRuntime/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleDrvRuntime/CMakeLists.txt b/cpp/0_Introduction/simpleDrvRuntime/CMakeLists.txt index a05e5b60..51568ebd 100644 --- a/cpp/0_Introduction/simpleDrvRuntime/CMakeLists.txt +++ b/cpp/0_Introduction/simpleDrvRuntime/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleDrvRuntime LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleDrvRuntime add_executable(simpleDrvRuntime simpleDrvRuntime.cpp) target_compile_options(simpleDrvRuntime PRIVATE $<$:--extended-lambda>) target_compile_features(simpleDrvRuntime PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleDrvRuntime PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleDrvRuntime PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -58,7 +50,7 @@ endif() add_custom_command( OUTPUT ${CUDA_FATBIN_FILE} - COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} ${ALL_CCFLAGS} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} + COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} DEPENDS ${CUDA_KERNEL_SOURCE} COMMENT "Building CUDA fatbin: ${CUDA_FATBIN_FILE}" ) @@ -69,6 +61,5 @@ add_custom_target(generate_fatbin_simpleDrv ALL DEPENDS ${CUDA_FATBIN_FILE}) # Ensure simpleDrvRuntime depends on the fatbin add_dependencies(simpleDrvRuntime generate_fatbin_simpleDrv) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleHyperQ/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleHyperQ/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleHyperQ/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleHyperQ/.vscode/extensions.json b/cpp/0_Introduction/simpleHyperQ/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleHyperQ/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleHyperQ/CMakeLists.txt b/cpp/0_Introduction/simpleHyperQ/CMakeLists.txt deleted file mode 100644 index 160d058f..00000000 --- a/cpp/0_Introduction/simpleHyperQ/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(simpleHyperQ LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for simpleHyperQ -add_executable(simpleHyperQ simpleHyperQ.cu) - -target_compile_options(simpleHyperQ PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleHyperQ PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(simpleHyperQ PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/simpleHyperQ/README.md b/cpp/0_Introduction/simpleHyperQ/README.md deleted file mode 100644 index 18c92b17..00000000 --- a/cpp/0_Introduction/simpleHyperQ/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# simpleHyperQ - simpleHyperQ - -## Description - -This sample demonstrates the use of CUDA streams for concurrent execution of several kernels on devices which provide HyperQ (SM 3.5). Devices without HyperQ (SM 2.0 and SM 3.0) will run a maximum of two kernels concurrently. - -## Key Concepts - -CUDA Systems Integration, Performance Strategies - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaStreamDestroy, cudaMalloc, cudaFree, cudaMallocHost, cudaEventSynchronize, cudaEventRecord, cudaFreeHost, cudaGetDevice, cudaEventDestroy, cudaEventElapsedTime, cudaStreamCreate, cudaGetDeviceProperties, cudaEventCreate - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. - -## References (for more details) - -[whitepaper](./doc/HyperQ.pdf) diff --git a/cpp/0_Introduction/simpleHyperQ/doc/HyperQ.docx b/cpp/0_Introduction/simpleHyperQ/doc/HyperQ.docx deleted file mode 100644 index 6733286e..00000000 Binary files a/cpp/0_Introduction/simpleHyperQ/doc/HyperQ.docx and /dev/null differ diff --git a/cpp/0_Introduction/simpleHyperQ/doc/HyperQ.pdf b/cpp/0_Introduction/simpleHyperQ/doc/HyperQ.pdf deleted file mode 100644 index 1b7d53a5..00000000 Binary files a/cpp/0_Introduction/simpleHyperQ/doc/HyperQ.pdf and /dev/null differ diff --git a/cpp/0_Introduction/simpleHyperQ/simpleHyperQ.cu b/cpp/0_Introduction/simpleHyperQ/simpleHyperQ.cu deleted file mode 100644 index 2a1ac958..00000000 --- a/cpp/0_Introduction/simpleHyperQ/simpleHyperQ.cu +++ /dev/null @@ -1,235 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -// -// This sample demonstrates how HyperQ allows supporting devices to avoid false -// dependencies between kernels in different streams. -// -// - Devices without HyperQ will run a maximum of two kernels at a time (one -// kernel_A and one kernel_B). -// - Devices with HyperQ will run up to 32 kernels simultaneously. - -#include -#include - -namespace cg = cooperative_groups; -#include -#include - -const char *sSDKsample = "hyperQ"; - -// This subroutine does no real work but runs for at least the specified number -// of clock ticks. -__device__ void clock_block(clock_t *d_o, clock_t clock_count) -{ - unsigned int start_clock = (unsigned int)clock(); - - clock_t clock_offset = 0; - - while (clock_offset < clock_count) { - unsigned int end_clock = (unsigned int)clock(); - - // The code below should work like - // this (thanks to modular arithmetics): - // - // clock_offset = (clock_t) (end_clock > start_clock ? - // end_clock - start_clock : - // end_clock + (0xffffffffu - start_clock)); - // - // Indeed, let m = 2^32 then - // end - start = end + m - start (mod m). - - clock_offset = (clock_t)(end_clock - start_clock); - } - - d_o[0] = clock_offset; -} - -// We create two identical kernels calling clock_block(), we create two so that -// we can identify dependencies in the profile timeline ("kernel_B" is always -// dependent on "kernel_A" in the same stream). -__global__ void kernel_A(clock_t *d_o, clock_t clock_count) { clock_block(d_o, clock_count); } -__global__ void kernel_B(clock_t *d_o, clock_t clock_count) { clock_block(d_o, clock_count); } - -// Single-warp reduction kernel (note: this is not optimized for simplicity) -__global__ void sum(clock_t *d_clocks, int N) -{ - // Handle to thread block group - cg::thread_block cta = cg::this_thread_block(); - __shared__ clock_t s_clocks[32]; - - clock_t my_sum = 0; - - for (int i = threadIdx.x; i < N; i += blockDim.x) { - my_sum += d_clocks[i]; - } - - s_clocks[threadIdx.x] = my_sum; - cg::sync(cta); - - for (int i = warpSize / 2; i > 0; i /= 2) { - if (threadIdx.x < i) { - s_clocks[threadIdx.x] += s_clocks[threadIdx.x + i]; - } - - cg::sync(cta); - } - - if (threadIdx.x == 0) { - d_clocks[0] = s_clocks[0]; - } -} - -int main(int argc, char **argv) -{ - int nstreams = 32; // One stream for each pair of kernels - float kernel_time = 10; // Time each kernel should run in ms - float elapsed_time; - int cuda_device = 0; - - printf("starting %s...\n", sSDKsample); - - // Get number of streams (if overridden on the command line) - if (checkCmdLineFlag(argc, (const char **)argv, "nstreams")) { - nstreams = getCmdLineArgumentInt(argc, (const char **)argv, "nstreams"); - } - - // Use command-line specified CUDA device, otherwise use device with - // highest Gflops/s - cuda_device = findCudaDevice(argc, (const char **)argv); - - // Get device properties - cudaDeviceProp deviceProp; - checkCudaErrors(cudaGetDevice(&cuda_device)); - checkCudaErrors(cudaGetDeviceProperties(&deviceProp, cuda_device)); - - // Get device clock rate - int clockRate; - checkCudaErrors(cudaDeviceGetAttribute(&clockRate, cudaDevAttrClockRate, cuda_device)); - - // HyperQ is available in devices of Compute Capability 3.5 and higher - if (deviceProp.major < 3 || (deviceProp.major == 3 && deviceProp.minor < 5)) { - if (deviceProp.concurrentKernels == 0) { - printf("> GPU does not support concurrent kernel execution (SM 3.5 or " - "higher required)\n"); - printf(" CUDA kernel runs will be serialized\n"); - } - else { - printf("> GPU does not support HyperQ\n"); - printf(" CUDA kernel runs will have limited concurrency\n"); - } - } - - printf("> Detected Compute SM %d.%d hardware with %d multi-processors\n", - deviceProp.major, - deviceProp.minor, - deviceProp.multiProcessorCount); - - // Allocate host memory for the output (reduced to a single value) - clock_t *a = 0; - checkCudaErrors(cudaMallocHost((void **)&a, sizeof(clock_t))); - - // Allocate device memory for the output (one value for each kernel) - clock_t *d_a = 0; - checkCudaErrors(cudaMalloc((void **)&d_a, 2 * nstreams * sizeof(clock_t))); - - // Allocate and initialize an array of stream handles - cudaStream_t *streams = (cudaStream_t *)malloc(nstreams * sizeof(cudaStream_t)); - - for (int i = 0; i < nstreams; i++) { - checkCudaErrors(cudaStreamCreate(&(streams[i]))); - } - - // Create CUDA event handles - cudaEvent_t start_event, stop_event; - checkCudaErrors(cudaEventCreate(&start_event)); - checkCudaErrors(cudaEventCreate(&stop_event)); - - // Target time per kernel is kernel_time ms, clockRate is in KHz - // Target number of clocks = target time * clock frequency -#if defined(__arm__) || defined(__aarch64__) - // the kernel takes more time than the channel reset time on arm archs, so to - // prevent hangs reduce time_clocks. - clock_t time_clocks = (clock_t)(kernel_time * (clockRate / 100)); -#else - clock_t time_clocks = (clock_t)(kernel_time * clockRate); -#endif - clock_t total_clocks = 0; - - // Start the clock - checkCudaErrors(cudaEventRecord(start_event, 0)); - - // Queue pairs of {kernel_A, kernel_B} in separate streams - for (int i = 0; i < nstreams; ++i) { - kernel_A<<<1, 1, 0, streams[i]>>>(&d_a[2 * i], time_clocks); - total_clocks += time_clocks; - kernel_B<<<1, 1, 0, streams[i]>>>(&d_a[2 * i + 1], time_clocks); - total_clocks += time_clocks; - } - - // Stop the clock in stream 0 (i.e. all previous kernels will be complete) - checkCudaErrors(cudaEventRecord(stop_event, 0)); - - // At this point the CPU has dispatched all work for the GPU and can - // continue processing other tasks in parallel. In this sample we just want - // to wait until all work is done so we use a blocking cudaMemcpy below. - - // Run the sum kernel and copy the result back to host - sum<<<1, 32>>>(d_a, 2 * nstreams); - checkCudaErrors(cudaMemcpy(a, d_a, sizeof(clock_t), cudaMemcpyDeviceToHost)); - - // stop_event will have been recorded but including the synchronize here to - // prevent copy/paste errors! - checkCudaErrors(cudaEventSynchronize(stop_event)); - checkCudaErrors(cudaEventElapsedTime(&elapsed_time, start_event, stop_event)); - - printf("Expected time for serial execution of %d sets of kernels is between " - "approx. %.3fs and %.3fs\n", - nstreams, - (nstreams + 1) * kernel_time / 1000.0f, - 2 * nstreams * kernel_time / 1000.0f); - printf("Expected time for fully concurrent execution of %d sets of kernels is " - "approx. %.3fs\n", - nstreams, - 2 * kernel_time / 1000.0f); - printf("Measured time for sample = %.3fs\n", elapsed_time / 1000.0f); - - bool bTestResult = (a[0] >= total_clocks); - - // Release resources - for (int i = 0; i < nstreams; i++) { - cudaStreamDestroy(streams[i]); - } - - free(streams); - cudaEventDestroy(start_event); - cudaEventDestroy(stop_event); - cudaFreeHost(a); - cudaFree(d_a); - - exit(bTestResult ? EXIT_SUCCESS : EXIT_FAILURE); -} diff --git a/cpp/0_Introduction/simpleIPC/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleIPC/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleIPC/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleIPC/.vscode/extensions.json b/cpp/0_Introduction/simpleIPC/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleIPC/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleIPC/CMakeLists.txt b/cpp/0_Introduction/simpleIPC/CMakeLists.txt index 2e88a7e0..a3785bb0 100644 --- a/cpp/0_Introduction/simpleIPC/CMakeLists.txt +++ b/cpp/0_Introduction/simpleIPC/CMakeLists.txt @@ -1,38 +1,30 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleIPC LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") message(STATUS "Will not build sample simpleIPC - not supported on aarch64") else() - # Source file - # Add target for simpleIPC add_executable(simpleIPC simpleIPC.cu ../../../Common/helper_multiprocess.cpp) target_compile_options(simpleIPC PRIVATE $<$:--extended-lambda>) target_compile_features(simpleIPC PRIVATE cxx_std_17 cuda_std_17) - set_target_properties(simpleIPC PROPERTIES CUDA_SEPARABLE_COMPILATION ON) endif() -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleLayeredTexture/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleLayeredTexture/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleLayeredTexture/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleLayeredTexture/.vscode/extensions.json b/cpp/0_Introduction/simpleLayeredTexture/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleLayeredTexture/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleLayeredTexture/CMakeLists.txt b/cpp/0_Introduction/simpleLayeredTexture/CMakeLists.txt index 86ad2817..03cfe202 100644 --- a/cpp/0_Introduction/simpleLayeredTexture/CMakeLists.txt +++ b/cpp/0_Introduction/simpleLayeredTexture/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleLayeredTexture LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleLayeredTexture add_executable(simpleLayeredTexture simpleLayeredTexture.cu) target_compile_options(simpleLayeredTexture PRIVATE $<$:--extended-lambda>) target_compile_features(simpleLayeredTexture PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleLayeredTexture PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleMPI/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleMPI/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleMPI/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleMPI/.vscode/extensions.json b/cpp/0_Introduction/simpleMPI/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleMPI/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleMPI/CMakeLists.txt b/cpp/0_Introduction/simpleMPI/CMakeLists.txt index 77b78c10..48b88ea8 100644 --- a/cpp/0_Introduction/simpleMPI/CMakeLists.txt +++ b/cpp/0_Introduction/simpleMPI/CMakeLists.txt @@ -1,50 +1,35 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleMPI LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) find_package(MPI) -# Source file if(${MPI_FOUND}) - # Add target for simpleMPI add_executable(simpleMPI simpleMPI.cpp simpleMPI.cu) - -target_compile_options(simpleMPI PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleMPI PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleMPI PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - + target_compile_options(simpleMPI PRIVATE $<$:--extended-lambda>) + target_compile_features(simpleMPI PRIVATE cxx_std_17 cuda_std_17) target_include_directories(simpleMPI PUBLIC ${MPI_INCLUDE_PATH} ) - target_link_libraries(simpleMPI PUBLIC ${MPI_C_LIBRARIES} ${MPI_CXX_LIBRARIES} ) - + include(InstallSamples) + setup_samples_install() else() message(STATUS "MPI not found - will not build sample 'simpleMPI'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/simpleMultiCopy/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleMultiCopy/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleMultiCopy/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleMultiCopy/.vscode/extensions.json b/cpp/0_Introduction/simpleMultiCopy/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleMultiCopy/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleMultiCopy/CMakeLists.txt b/cpp/0_Introduction/simpleMultiCopy/CMakeLists.txt index 1e2d809e..e6d06df6 100644 --- a/cpp/0_Introduction/simpleMultiCopy/CMakeLists.txt +++ b/cpp/0_Introduction/simpleMultiCopy/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleMultiCopy LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleMultiCopy add_executable(simpleMultiCopy simpleMultiCopy.cu) target_compile_options(simpleMultiCopy PRIVATE $<$:--extended-lambda>) target_compile_features(simpleMultiCopy PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleMultiCopy PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleMultiGPU/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleMultiGPU/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleMultiGPU/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleMultiGPU/.vscode/extensions.json b/cpp/0_Introduction/simpleMultiGPU/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleMultiGPU/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleMultiGPU/CMakeLists.txt b/cpp/0_Introduction/simpleMultiGPU/CMakeLists.txt index e88e0c29..6533aadd 100644 --- a/cpp/0_Introduction/simpleMultiGPU/CMakeLists.txt +++ b/cpp/0_Introduction/simpleMultiGPU/CMakeLists.txt @@ -1,34 +1,21 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleMultiGPU LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for simpleMultiGPU add_executable(simpleMultiGPU simpleMultiGPU.cu) -target_compile_options(simpleMultiGPU PRIVATE $<$:--extended-lambda>) - target_compile_features(simpleMultiGPU PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleMultiGPU PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleMultiGPU/README.md b/cpp/0_Introduction/simpleMultiGPU/README.md index 105fe014..ffb595a6 100644 --- a/cpp/0_Introduction/simpleMultiGPU/README.md +++ b/cpp/0_Introduction/simpleMultiGPU/README.md @@ -1,32 +1,130 @@ -# simpleMultiGPU - Simple Multi-GPU +# Sample: simpleMultiGPU ## Description -This application demonstrates how to use the new CUDA 4.0 API for CUDA context management and multi-threaded access to run CUDA kernels on multiple-GPUs. +A multi-GPU reduction demo: the input vector is split across every GPU in the system, each +GPU sums its slice concurrently, and the host combines the per-GPU results. Each GPU gets its +own CUDA stream, so the H2D copy → reduction kernel → D2H copy pipelines run in parallel across +devices. The device-side reduction uses `cub::BlockReduce`; the host finishes the sum across +blocks and across GPUs and checks it against a CPU reference. The whole GPU phase is timed with +CUDA events. + +## What You'll Learn + +- Enumerating and driving multiple GPUs with `cudaGetDeviceCount` and `cudaSetDevice` +- Partitioning a workload across GPUs and running them concurrently, one CUDA stream per GPU +- Overlapping H2D copy, kernel, and D2H copy with `cudaMemcpyAsync` on independent streams +- Reducing within a block using `cub::BlockReduce`, then finishing the reduction on the host +- Timing GPU work with CUDA events (`cudaEventRecord` / `cudaEventElapsedTime`) +- Why pinned host memory (`cudaMallocHost`) is required for `cudaMemcpyAsync` to be asynchronous ## Key Concepts -Asynchronous Data Transfers, CUDA Streams and Events, Multithreading, Multi-GPU +### One Stream per GPU -## Supported SM Architectures +The work is held in a `std::vector` with one entry per device, each carrying its own stream, +buffers, and data slice. Selecting a device with `cudaSetDevice` and issuing async work on that +device's stream lets all GPUs run at the same time: -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) +```text +GPU 0 stream: [H2D slice 0] → [reduceKernel] → [D2H partials 0] +GPU 1 stream: [H2D slice 1] → [reduceKernel] → [D2H partials 1] +... +``` -## Supported OSes +The host launches every GPU's pipeline before synchronizing any of them, so the copies and kernels +overlap across devices. -Linux, Windows +### Multi-Level Reduction -## Supported CPU Architecture +The reduction happens in three stages. On each GPU, `reduceKernel` launches `BLOCK_N` blocks of `THREAD_N` +threads: every thread accumulates a grid-strided partial sum, then `cub::BlockReduce` combines the +per-thread partials within its block and thread 0 writes one value per block. The host then adds the +`BLOCK_N` per-block partials into that GPU's sum, and finally adds the per-GPU sums together. -x86_64, armv7l +### Pinned Host Memory -## CUDA APIs involved +`cudaMemcpyAsync` only runs asynchronously when the host buffer is page-locked (pinned), so the OS +cannot move the pages mid-transfer; with ordinary pageable memory the copy falls back to synchronous +behavior. Both the input slice and the partial-sum buffer are allocated with `cudaMallocHost`. -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaStreamDestroy, cudaFree, cudaMallocHost, cudaSetDevice, cudaFreeHost, cudaStreamSynchronize, cudaMalloc, cudaMemcpyAsync, cudaStreamCreate, cudaGetDeviceCount +### Timing with CUDA Events -## Prerequisites +CUDA events are recorded on device 0's stream to bracket the GPU phase. `cudaEventElapsedTime` returns +the milliseconds between the recorded events. -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. +## Key APIs -## References (for more details) +### CUDA Runtime + +- `cudaGetDeviceCount` — count the CUDA-capable GPUs in the system +- `cudaSetDevice` — select the active GPU for subsequent CUDA calls +- `cudaStreamCreate` / `cudaStreamDestroy` — per-GPU stream that orders each pipeline +- `cudaMalloc` / `cudaFree` — allocate and free device memory +- `cudaMallocHost` / `cudaFreeHost` — allocate and free pinned host memory +- `cudaMemcpyAsync` — non-blocking H2D and D2H transfers on a stream +- `cudaStreamSynchronize` — block the host until a GPU's stream is done +- `cudaEventCreate` / `cudaEventRecord` / `cudaEventSynchronize` / `cudaEventElapsedTime` / `cudaEventDestroy` — event-based timing + +### CCCL / CUB + +- `cub::BlockReduce` — block-wide reduction inside the kernel + +## Requirements + +### Hardware + +- Two or more NVIDIA GPUs with Compute Capability 7.5 or higher + +### Software + +- CMake 3.20 or newer +- A C++17-capable host compiler + +## How to Build + +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. + +## How to Run + +```bash +./simpleMultiGPU +``` + +No command-line arguments are required. The sample uses every GPU it detects, and exits without +running if it finds fewer than two. + +## Expected Output + +```text +Starting simpleMultiGPU +CUDA-capable device count: 2 +Generating input data... + +Computing with 2 GPUs... + GPU Processing time: 8.138752 (ms) + +Computing with Host CPU... + +Comparing GPU and Host CPU results... + GPU sum: 16777294.000000 + CPU sum: 16777294.395033 + Relative difference: 2.354566E-08 +``` + +**Reading the output:** +- The device count and processing time depend on your system +- The sums are the same every run because the input is filled from an unseeded `rand()` +- The sample passes when the GPU and CPU results agree to within a relative difference of `1e-5` + +## Files + +- `simpleMultiGPU.cu` — reduction kernel and the multi-GPU driver +- `README.md` — this file +- `CMakeLists.txt` — build configuration + +## See Also + +- [CUDA Programming Guide — CUDA Streams](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/asynchronous-execution.html#cuda-streams) +- [CUDA Programming Guide — CUDA Events](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/asynchronous-execution.html#cuda-events) +- [CUDA Core Compute Libraries — What is CUB?](https://nvidia.github.io/cccl/unstable/cub/index.html#what-is-cub) diff --git a/cpp/0_Introduction/simpleMultiGPU/simpleMultiGPU.cu b/cpp/0_Introduction/simpleMultiGPU/simpleMultiGPU.cu index 94324151..bd5a8137 100644 --- a/cpp/0_Introduction/simpleMultiGPU/simpleMultiGPU.cu +++ b/cpp/0_Introduction/simpleMultiGPU/simpleMultiGPU.cu @@ -1,4 +1,4 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +/* Copyright (c) 2026, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -26,46 +26,54 @@ */ /* - * This application demonstrates how to use the CUDA API to use multiple GPUs, - * with an emphasis on simple illustration of the techniques (not on - * performance). + * Sums a large vector across every GPU in the system. * - * Note that in order to detect multiple GPUs in your system you have to disable - * SLI in the nvidia control panel. Otherwise only one GPU is visible to the - * application. On the other side, you can still extend your desktop to screens - * attached to both GPUs. + * The input is split into one slice per GPU, each with its own stream, so the H2D copy, + * reduction kernel, and D2H copy run concurrently across devices. cub::BlockReduce reduces + * within each thread block; the host then adds the per-block values into a per-GPU total and + * combines those into the final sum, checked against a CPU reference. CUDA events time the + * GPU phase. */ // System includes -#include +#include #include +#include +#include // CUDA runtime #include -// helper functions and utilities to work with CUDA -#include -#include +// CCCL / CUB block-wide reduction +#include -#ifndef MAX -#define MAX(a, b) (a > b ? a : b) -#endif - -#include "simpleMultiGPU.h" - -//////////////////////////////////////////////////////////////////////////////// -// Data configuration -//////////////////////////////////////////////////////////////////////////////// -const int MAX_GPU_COUNT = 32; -const int DATA_N = 1048576 * 32; - -//////////////////////////////////////////////////////////////////////////////// -// Simple reduction kernel. -// Refer to the 'reduction' CUDA Sample describing -// reduction optimization strategies -//////////////////////////////////////////////////////////////////////////////// -__global__ static void reduceKernel(float *d_Result, float *d_Input, int N) +// Everything one GPU needs: its slice of the input, its buffers, and its stream +struct TGPUplan { + int dataN; // elements assigned to this GPU + float *h_Data; // pinned input slice + float *d_Data; // the slice, on the device + float *d_Sum; // one partial sum per block + float *h_Sum_from_device; // those partial sums, copied back + cudaStream_t stream; // orders this GPU's copies and kernel +}; + +// Data configuration +constexpr int DATA_N = 1048576 * 32; + +// Reduction launch configuration +constexpr int BLOCK_N = 32; // thread blocks launched per GPU +constexpr int THREAD_N = 256; // threads per block + +// Per-block reduction kernel. +// Threads walk the input in a grid-stride loop, then cub::BlockReduce combines their totals. +// Thread 0 writes one partial sum per block (BLOCK_N values total); the host +// adds those up to obtain this GPU's final sum. +__global__ static void reduceKernel(float *d_Result, const float *d_Input, int N) +{ + using BlockReduce = cub::BlockReduce; + __shared__ typename BlockReduce::TempStorage temp_storage; + const int tid = blockIdx.x * blockDim.x + threadIdx.x; const int threadN = gridDim.x * blockDim.x; float sum = 0; @@ -73,160 +81,145 @@ __global__ static void reduceKernel(float *d_Result, float *d_Input, int N) for (int pos = tid; pos < N; pos += threadN) sum += d_Input[pos]; - d_Result[tid] = sum; + // Reduce the per-thread partial sums across the block (result valid in thread 0) + sum = BlockReduce(temp_storage).Sum(sum); + + if (threadIdx.x == 0) + d_Result[blockIdx.x] = sum; } -//////////////////////////////////////////////////////////////////////////////// -// Program main -//////////////////////////////////////////////////////////////////////////////// -int main(int argc, char **argv) +int main() { - // Solver config - TGPUplan plan[MAX_GPU_COUNT]; - - // GPU reduction results - float h_SumGPU[MAX_GPU_COUNT]; - - float sumGPU; - double sumCPU, diff; - - int i, j, gpuBase, GPU_N; - - const int BLOCK_N = 32; - const int THREAD_N = 256; - const int ACCUM_N = BLOCK_N * THREAD_N; - printf("Starting simpleMultiGPU\n"); - checkCudaErrors(cudaGetDeviceCount(&GPU_N)); - if (GPU_N > MAX_GPU_COUNT) { - GPU_N = MAX_GPU_COUNT; + int deviceCount = 0; + cudaGetDeviceCount(&deviceCount); + + printf("CUDA-capable device count: %i\n", deviceCount); + + // This sample needs at least two GPUs to show work running on several devices at once + if (deviceCount < 2) { + printf("Two or more CUDA-capable devices are required. Exiting.\n"); + return EXIT_SUCCESS; } - printf("CUDA-capable device count: %i\n", GPU_N); - printf("Generating input data...\n\n"); + std::vector plan(deviceCount); + std::vector h_SumGPU(deviceCount); // one result per GPU + // Subdividing input data across GPUs // Get data sizes for each GPU - for (i = 0; i < GPU_N; i++) { - plan[i].dataN = DATA_N / GPU_N; + for (int i = 0; i < deviceCount; i++) { + plan[i].dataN = DATA_N / deviceCount; } // Take into account "odd" data sizes - for (i = 0; i < DATA_N % GPU_N; i++) { + for (int i = 0; i < DATA_N % deviceCount; i++) { plan[i].dataN++; } - // Assign data ranges to GPUs - gpuBase = 0; - - for (i = 0; i < GPU_N; i++) { - plan[i].h_Sum = h_SumGPU + i; - gpuBase += plan[i].dataN; - } - // Create streams for issuing GPU command asynchronously and allocate memory // (GPU and System page-locked) - for (i = 0; i < GPU_N; i++) { - checkCudaErrors(cudaSetDevice(i)); - checkCudaErrors(cudaStreamCreate(&plan[i].stream)); - // Allocate memory - checkCudaErrors(cudaMalloc((void **)&plan[i].d_Data, plan[i].dataN * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&plan[i].d_Sum, ACCUM_N * sizeof(float))); - checkCudaErrors(cudaMallocHost((void **)&plan[i].h_Sum_from_device, ACCUM_N * sizeof(float))); - checkCudaErrors(cudaMallocHost((void **)&plan[i].h_Data, plan[i].dataN * sizeof(float))); + for (int i = 0; i < deviceCount; i++) { + cudaSetDevice(i); + cudaStreamCreate(&plan[i].stream); - for (j = 0; j < plan[i].dataN; j++) { + cudaMalloc(&plan[i].d_Data, plan[i].dataN * sizeof(float)); + cudaMalloc(&plan[i].d_Sum, BLOCK_N * sizeof(float)); + cudaMallocHost(&plan[i].h_Sum_from_device, BLOCK_N * sizeof(float)); + cudaMallocHost(&plan[i].h_Data, plan[i].dataN * sizeof(float)); + + for (int j = 0; j < plan[i].dataN; j++) { plan[i].h_Data[j] = (float)rand() / (float)RAND_MAX; } } // Start timing and compute on GPU(s) - printf("Computing with %d GPUs...\n", GPU_N); - // create and start timer - StopWatchInterface *timer = NULL; - sdkCreateTimer(&timer); + printf("Computing with %d GPUs...\n", deviceCount); + // Time the multi-GPU work with CUDA events (recorded on device 0) + cudaEvent_t start, stop; + cudaSetDevice(0); + cudaEventCreate(&start); + cudaEventCreate(&stop); + cudaEventRecord(start); - // start the timer - sdkStartTimer(&timer); - - // Copy data to GPU, launch the kernel and copy data back. All asynchronously - for (i = 0; i < GPU_N; i++) { - // Set device - checkCudaErrors(cudaSetDevice(i)); + // Queue every GPU's copy-in, kernel and copy-out before waiting on any of them, + // so the devices run concurrently instead of one after another + for (int i = 0; i < deviceCount; i++) { + TGPUplan &gpu = plan[i]; + cudaSetDevice(i); // Copy input data from CPU - checkCudaErrors(cudaMemcpyAsync( - plan[i].d_Data, plan[i].h_Data, plan[i].dataN * sizeof(float), cudaMemcpyHostToDevice, plan[i].stream)); + cudaMemcpyAsync(gpu.d_Data, gpu.h_Data, gpu.dataN * sizeof(float), cudaMemcpyHostToDevice, gpu.stream); - // Perform GPU computations - reduceKernel<<>>(plan[i].d_Sum, plan[i].d_Data, plan[i].dataN); - getLastCudaError("reduceKernel() execution failed.\n"); + // Launch Kernel + reduceKernel<<>>(gpu.d_Sum, gpu.d_Data, gpu.dataN); // Read back GPU results - checkCudaErrors(cudaMemcpyAsync( - plan[i].h_Sum_from_device, plan[i].d_Sum, ACCUM_N * sizeof(float), cudaMemcpyDeviceToHost, plan[i].stream)); + cudaMemcpyAsync(gpu.h_Sum_from_device, gpu.d_Sum, BLOCK_N * sizeof(float), cudaMemcpyDeviceToHost, gpu.stream); } // Process GPU results - for (i = 0; i < GPU_N; i++) { - float sum; - - // Set device - checkCudaErrors(cudaSetDevice(i)); + for (int i = 0; i < deviceCount; i++) { + cudaSetDevice(i); // Wait for all operations to finish cudaStreamSynchronize(plan[i].stream); // Finalize GPU reduction for current subvector - sum = 0; + float sum = 0; - for (j = 0; j < ACCUM_N; j++) { + for (int j = 0; j < BLOCK_N; j++) { sum += plan[i].h_Sum_from_device[j]; } - *(plan[i].h_Sum) = (float)sum; + h_SumGPU[i] = sum; - // Shut down this GPU - checkCudaErrors(cudaFreeHost(plan[i].h_Sum_from_device)); - checkCudaErrors(cudaFree(plan[i].d_Sum)); - checkCudaErrors(cudaFree(plan[i].d_Data)); - checkCudaErrors(cudaStreamDestroy(plan[i].stream)); + // Free up this GPU's resources. h_Data stays alive for the CPU check below. + cudaFreeHost(plan[i].h_Sum_from_device); + cudaFree(plan[i].d_Sum); + cudaFree(plan[i].d_Data); + cudaStreamDestroy(plan[i].stream); } - sumGPU = 0; + float sumGPU = 0; - for (i = 0; i < GPU_N; i++) { + for (int i = 0; i < deviceCount; i++) { sumGPU += h_SumGPU[i]; } - sdkStopTimer(&timer); - printf(" GPU Processing time: %f (ms)\n\n", sdkGetTimerValue(&timer)); - sdkDeleteTimer(&timer); + cudaSetDevice(0); + cudaEventRecord(stop); + cudaEventSynchronize(stop); + + float gpuTime = 0; + cudaEventElapsedTime(&gpuTime, start, stop); + printf(" GPU Processing time: %f (ms)\n\n", gpuTime); + cudaEventDestroy(start); + cudaEventDestroy(stop); // Compute on Host CPU printf("Computing with Host CPU...\n\n"); - sumCPU = 0; + double sumCPU = 0; - for (i = 0; i < GPU_N; i++) { - for (j = 0; j < plan[i].dataN; j++) { + for (int i = 0; i < deviceCount; i++) { + for (int j = 0; j < plan[i].dataN; j++) { sumCPU += plan[i].h_Data[j]; } } // Compare GPU and CPU results printf("Comparing GPU and Host CPU results...\n"); - diff = fabs(sumCPU - sumGPU) / fabs(sumCPU); + const double diff = fabs(sumCPU - sumGPU) / fabs(sumCPU); printf(" GPU sum: %f\n CPU sum: %f\n", sumGPU, sumCPU); printf(" Relative difference: %E \n\n", diff); // Cleanup and shutdown - for (i = 0; i < GPU_N; i++) { - checkCudaErrors(cudaSetDevice(i)); - checkCudaErrors(cudaFreeHost(plan[i].h_Data)); + for (int i = 0; i < deviceCount; i++) { + cudaFreeHost(plan[i].h_Data); } - exit((diff < 1e-5) ? EXIT_SUCCESS : EXIT_FAILURE); + return (diff < 1e-5) ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/cpp/0_Introduction/simpleMultiGPU/simpleMultiGPU.h b/cpp/0_Introduction/simpleMultiGPU/simpleMultiGPU.h deleted file mode 100644 index 3bfeef21..00000000 --- a/cpp/0_Introduction/simpleMultiGPU/simpleMultiGPU.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This application demonstrates how to use the CUDA API to use multiple GPUs. - * - * Note that in order to detect multiple GPUs in your system you have to disable - * SLI in the nvidia control panel. Otherwise only one GPU is visible to the - * application. On the other side, you can still extend your desktop to screens - * attached to both GPUs. - */ - -#ifndef SIMPLEMULTIGPU_H -#define SIMPLEMULTIGPU_H - -typedef struct -{ - // Host-side input data - int dataN; - float *h_Data; - - // Partial sum for this GPU - float *h_Sum; - - // Device buffers - float *d_Data, *d_Sum; - - // Reduction copied back from GPU - float *h_Sum_from_device; - - // Stream for asynchronous command execution - cudaStream_t stream; - -} TGPUplan; - -extern "C" void launch_reduceKernel(float *d_Result, float *d_Input, int N, int BLOCK_N, int THREAD_N, cudaStream_t &s); - -#endif diff --git a/cpp/0_Introduction/simpleOccupancy/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleOccupancy/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleOccupancy/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleOccupancy/.vscode/extensions.json b/cpp/0_Introduction/simpleOccupancy/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleOccupancy/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleOccupancy/CMakeLists.txt b/cpp/0_Introduction/simpleOccupancy/CMakeLists.txt deleted file mode 100644 index fbd4ec77..00000000 --- a/cpp/0_Introduction/simpleOccupancy/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(simpleOccupancy LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for simpleOccupancy -add_executable(simpleOccupancy simpleOccupancy.cu) - -target_compile_options(simpleOccupancy PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleOccupancy PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(simpleOccupancy PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/simpleOccupancy/README.md b/cpp/0_Introduction/simpleOccupancy/README.md deleted file mode 100644 index d47e7f2e..00000000 --- a/cpp/0_Introduction/simpleOccupancy/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# simpleOccupancy - simpleOccupancy - -## Description - -This sample demonstrates the basic usage of the CUDA occupancy calculator and occupancy-based launch configurator APIs by launching a kernel with the launch configurator, and measures the utilization difference against a manually configured launch. - -## Key Concepts - -Occupancy Calculator - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaFree, cudaDeviceSynchronize, cudaEventRecord, cudaGetDevice, cudaMalloc, cudaEventElapsedTime, cudaOccupancyMaxActiveBlocksPerMultiprocessor, cudaGetDeviceProperties, cudaOccupancyMaxPotentialBlockSize, cudaEventCreate - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. - -## References (for more details) diff --git a/cpp/0_Introduction/simpleOccupancy/simpleOccupancy.cu b/cpp/0_Introduction/simpleOccupancy/simpleOccupancy.cu deleted file mode 100644 index 0411006c..00000000 --- a/cpp/0_Introduction/simpleOccupancy/simpleOccupancy.cu +++ /dev/null @@ -1,240 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include // helper functions for CUDA error check -#include - -const int manualBlockSize = 32; - -//////////////////////////////////////////////////////////////////////////////// -// Test kernel -// -// This kernel squares each array element. Each thread addresses -// himself with threadIdx and blockIdx, so that it can handle any -// execution configuration, including anything the launch configurator -// API suggests. -//////////////////////////////////////////////////////////////////////////////// -__global__ void square(uint32_t *array, int arrayCount) -{ - extern __shared__ int dynamicSmem[]; - int idx = threadIdx.x + blockIdx.x * blockDim.x; - - if (idx < arrayCount) { - array[idx] *= array[idx]; - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Potential occupancy calculator -// -// The potential occupancy is calculated according to the kernel and -// execution configuration the user desires. Occupancy is defined in -// terms of active blocks per multiprocessor, and the user can convert -// it to other metrics. -// -// This wrapper routine computes the occupancy of kernel, and reports -// it in terms of active warps / maximum warps per SM. -//////////////////////////////////////////////////////////////////////////////// -static double reportPotentialOccupancy(void *kernel, int blockSize, size_t dynamicSMem) -{ - int device; - cudaDeviceProp prop; - - int numBlocks; - int activeWarps; - int maxWarps; - - double occupancy; - - checkCudaErrors(cudaGetDevice(&device)); - checkCudaErrors(cudaGetDeviceProperties(&prop, device)); - - checkCudaErrors(cudaOccupancyMaxActiveBlocksPerMultiprocessor(&numBlocks, kernel, blockSize, dynamicSMem)); - - activeWarps = numBlocks * blockSize / prop.warpSize; - maxWarps = prop.maxThreadsPerMultiProcessor / prop.warpSize; - - occupancy = (double)activeWarps / maxWarps; - - return occupancy; -} - -//////////////////////////////////////////////////////////////////////////////// -// Occupancy-based launch configurator -// -// The launch configurator, cudaOccupancyMaxPotentialBlockSize and -// cudaOccupancyMaxPotentialBlockSizeVariableSMem, suggests a block -// size that achieves the best theoretical occupancy. It also returns -// the minimum number of blocks needed to achieve the occupancy on the -// whole device. -// -// This launch configurator is purely occupancy-based. It doesn't -// translate directly to performance, but the suggestion should -// nevertheless be a good starting point for further optimizations. -// -// This function configures the launch based on the "automatic" -// argument, records the runtime, and reports occupancy and runtime. -//////////////////////////////////////////////////////////////////////////////// -static int launchConfig(uint32_t *array, int arrayCount, bool automatic) -{ - int blockSize; - int minGridSize; - int gridSize; - size_t dynamicSMemUsage = 0; - - cudaEvent_t start; - cudaEvent_t end; - - float elapsedTime; - - double potentialOccupancy; - - checkCudaErrors(cudaEventCreate(&start)); - checkCudaErrors(cudaEventCreate(&end)); - - if (automatic) { - checkCudaErrors( - cudaOccupancyMaxPotentialBlockSize(&minGridSize, &blockSize, (void *)square, dynamicSMemUsage, arrayCount)); - - std::cout << "Suggested block size: " << blockSize << std::endl - << "Minimum grid size for maximum occupancy: " << minGridSize << std::endl; - } - else { - // This block size is too small. Given limited number of - // active blocks per multiprocessor, the number of active - // threads will be limited, and thus unable to achieve maximum - // occupancy. - // - blockSize = manualBlockSize; - } - - // Round up - // - gridSize = (arrayCount + blockSize - 1) / blockSize; - - // Launch and profile - // - checkCudaErrors(cudaEventRecord(start)); - square<<>>(array, arrayCount); - checkCudaErrors(cudaEventRecord(end)); - - checkCudaErrors(cudaDeviceSynchronize()); - - // Calculate occupancy - // - potentialOccupancy = reportPotentialOccupancy((void *)square, blockSize, dynamicSMemUsage); - - std::cout << "Potential occupancy: " << potentialOccupancy * 100 << "%" << std::endl; - - // Report elapsed time - // - checkCudaErrors(cudaEventElapsedTime(&elapsedTime, start, end)); - std::cout << "Elapsed time: " << elapsedTime << "ms" << std::endl; - - return 0; -} - -//////////////////////////////////////////////////////////////////////////////// -// The test -// -// The test generates an array and squares it with a CUDA kernel, then -// verifies the result. -//////////////////////////////////////////////////////////////////////////////// -static int test(bool automaticLaunchConfig, const int count = 1000000) -{ - uint32_t *array; - uint32_t *dArray; - int size = count * sizeof(uint32_t); - - array = new uint32_t[count]; - - for (uint32_t i = 0; i < count; i += 1) { - array[i] = i; - } - - checkCudaErrors(cudaMalloc(&dArray, size)); - checkCudaErrors(cudaMemcpy(dArray, array, size, cudaMemcpyHostToDevice)); - - for (uint32_t i = 0; i < count; i += 1) { - array[i] = 0; - } - - launchConfig(dArray, count, automaticLaunchConfig); - - checkCudaErrors(cudaMemcpy(array, dArray, size, cudaMemcpyDeviceToHost)); - checkCudaErrors(cudaFree(dArray)); - - // Verify the return data - // Both GPU and CPU use uint32_t * uint32_t, which has well-defined overflow behavior (modulo 2^32) - // - for (uint32_t i = 0; i < count; i += 1) { - if (array[i] != i * i) { - std::cout << "element " << i << " expected " << i * i << " actual " << array[i] << std::endl; - return 1; - } - } - delete[] array; - - return 0; -} - -//////////////////////////////////////////////////////////////////////////////// -// Sample Main -// -// The sample runs the test with manually configured launch and -// automatically configured launch, and reports the occupancy and -// performance. -//////////////////////////////////////////////////////////////////////////////// -int main() -{ - int status; - - std::cout << "starting Simple Occupancy" << std::endl << std::endl; - - std::cout << "[ Manual configuration with " << manualBlockSize << " threads per block ]" << std::endl; - - status = test(false); - if (status) { - std::cerr << "Test failed\n" << std::endl; - return -1; - } - - std::cout << std::endl; - - std::cout << "[ Automatic, occupancy-based configuration ]" << std::endl; - status = test(true); - if (status) { - std::cerr << "Test failed\n" << std::endl; - return -1; - } - - std::cout << std::endl; - std::cout << "Test PASSED\n" << std::endl; - - return 0; -} diff --git a/cpp/0_Introduction/simpleP2P/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleP2P/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleP2P/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleP2P/.vscode/extensions.json b/cpp/0_Introduction/simpleP2P/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleP2P/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleP2P/CMakeLists.txt b/cpp/0_Introduction/simpleP2P/CMakeLists.txt index ddfe6c11..90d17c19 100644 --- a/cpp/0_Introduction/simpleP2P/CMakeLists.txt +++ b/cpp/0_Introduction/simpleP2P/CMakeLists.txt @@ -1,26 +1,20 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleP2P LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleP2P if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") message(STATUS "Will not build sample simpleP2P - not supported on aarch64") else() @@ -30,9 +24,7 @@ else() target_compile_features(simpleP2P PRIVATE cxx_std_17 cuda_std_17) - set_target_properties(simpleP2P PROPERTIES CUDA_SEPARABLE_COMPILATION ON) endif() -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simplePitchLinearTexture/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simplePitchLinearTexture/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simplePitchLinearTexture/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simplePitchLinearTexture/.vscode/extensions.json b/cpp/0_Introduction/simplePitchLinearTexture/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simplePitchLinearTexture/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simplePitchLinearTexture/CMakeLists.txt b/cpp/0_Introduction/simplePitchLinearTexture/CMakeLists.txt index 7a72745c..44567a0f 100644 --- a/cpp/0_Introduction/simplePitchLinearTexture/CMakeLists.txt +++ b/cpp/0_Introduction/simplePitchLinearTexture/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simplePitchLinearTexture LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simplePitchLinearTexture add_executable(simplePitchLinearTexture simplePitchLinearTexture.cu) target_compile_options(simplePitchLinearTexture PRIVATE $<$:--extended-lambda>) target_compile_features(simplePitchLinearTexture PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simplePitchLinearTexture PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simplePrintf/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simplePrintf/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simplePrintf/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simplePrintf/.vscode/extensions.json b/cpp/0_Introduction/simplePrintf/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simplePrintf/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simplePrintf/CMakeLists.txt b/cpp/0_Introduction/simplePrintf/CMakeLists.txt index 8f9ca7d7..0a5e77f6 100644 --- a/cpp/0_Introduction/simplePrintf/CMakeLists.txt +++ b/cpp/0_Introduction/simplePrintf/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simplePrintf LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simplePrintf add_executable(simplePrintf simplePrintf.cu) target_compile_options(simplePrintf PRIVATE $<$:--extended-lambda>) target_compile_features(simplePrintf PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simplePrintf PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simplePrintf/README.md b/cpp/0_Introduction/simplePrintf/README.md index ff00a268..4e820c37 100644 --- a/cpp/0_Introduction/simplePrintf/README.md +++ b/cpp/0_Introduction/simplePrintf/README.md @@ -1,32 +1,77 @@ -# simplePrintf - simplePrintf +# Sample: Device-Side printf (simplePrintf) ## Description -This basic CUDA Runtime API sample demonstrates how to use the printf function in the device code. +A first-look CUDA sample: call C's `printf` **from inside a CUDA kernel**. Every thread in a 2D grid of 3D blocks prints its own block and thread identifiers along with a shared value passed from the host. The CUDA runtime buffers the device-side output and flushes it to the host's standard output when the kernel completes. + +This sample is the canonical demonstration of device-side `printf`, the simplest debugging and tracing tool available inside kernel code. It also shows how multidimensional `blockIdx`/`threadIdx` coordinates are flattened into linear indices. + +## What You'll Learn + +- Calling `printf` directly from device code (`__global__` kernel) +- Launching a kernel with a **2D grid** (`dim3 dimGrid(2, 2)`) of **3D blocks** (`dim3 dimBlock(2, 2, 2)`) +- Flattening multidimensional block and thread indices into a single linear index +- Flushing device-side `printf` output to the host with `cudaDeviceSynchronize` +- Querying the active device with `cudaGetDevice` / `cudaGetDeviceProperties` ## Key Concepts -Debugging +- **Device-side `printf`** — formatted output from within a kernel; output is buffered per launch and flushed at a synchronization point +- **Multidimensional launch geometry** — `gridDim`, `blockIdx`, `blockDim`, and `threadIdx` are `dim3` values with `.x`, `.y`, `.z` components +- **Index linearization** — converting `(x, y, z)` coordinates into a flat index: + - block: `blockIdx.y * gridDim.x + blockIdx.x` + - thread: `threadIdx.z * blockDim.x * blockDim.y + threadIdx.y * blockDim.x + threadIdx.x` -## Supported SM Architectures +## Key APIs -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) +### CUDA Runtime +- `cudaSetDevice` — select the active GPU +- `cudaDeviceGetAttribute` — query compute capability (major, minor) and SM count +- `cudaDeviceSynchronize` — block the host until the kernel finishes, which also flushes the device `printf` buffer -## Supported OSes +### Device +- `printf` — standard C formatted output, callable from `__global__`/`__device__` code (requires Compute Capability 2.0 or higher) -Linux, Windows +## Requirements -## Supported CPU Architecture +### Hardware +- NVIDIA GPU with Compute Capability 2.0 or higher (device-side `printf` is unavailable on earlier architectures) -x86_64, armv7l +### Software +- CMake 3.20 or newer +- A C++17-capable host compiler -## CUDA APIs involved +## How to Build -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaGetDeviceProperties, cudaDeviceSynchronize, cudaGetDevice +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. -## Prerequisites +## How to Run -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. +```bash +./simplePrintf +``` -## References (for more details) +## Expected Output + +The launch uses a 2×2 grid of 2×2×2 blocks = 4 blocks × 8 threads = 32 lines. Each thread prints its linear block index, its linear thread index, and the value `10`. Because blocks and threads run concurrently, **the order of the lines will vary between runs**: + +```text +GPU Device 0: with compute capability X.Y and Number of SMs +printf() is called. Output: + +[0, 0]: Value is:10 +[0, 1]: Value is:10 +[0, 2]: Value is:10 +... +[3, 7]: Value is:10 +``` + +## Files + +- `simplePrintf.cu` — device-side `printf` kernel + host driver +- `README.md` — this file +- `CMakeLists.txt` — build configuration + +## See Also + +- [CUDA C++ Programming Guide — printf()](https://docs.nvidia.com/cuda/cuda-programming-guide/05-appendices/cpp-language-support.html#printf) diff --git a/cpp/0_Introduction/simplePrintf/simplePrintf.cu b/cpp/0_Introduction/simplePrintf/simplePrintf.cu index 694fa21d..29aa6318 100644 --- a/cpp/0_Introduction/simplePrintf/simplePrintf.cu +++ b/cpp/0_Introduction/simplePrintf/simplePrintf.cu @@ -1,4 +1,4 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +/* Copyright (c) 2026, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -32,34 +32,35 @@ // CUDA runtime #include -// helper functions and utilities to work with CUDA -#include -#include - #ifndef MAX #define MAX(a, b) (a > b ? a : b) #endif -__global__ void testKernel(int val) +// Each thread calls device-side printf, printing its linear block index, its +// linear thread index, and val. Output is flushed on host sync; line order is +// not deterministic since blocks/threads run concurrently. +__global__ void simplePrintfKernel(int val) { printf("[%d, %d]:\t\tValue is:%d\n", - blockIdx.y * gridDim.x + blockIdx.x, - threadIdx.z * blockDim.x * blockDim.y + threadIdx.y * blockDim.x + threadIdx.x, + blockIdx.y * gridDim.x + blockIdx.x, // linear block index + threadIdx.z * blockDim.x * blockDim.y + threadIdx.y * blockDim.x + threadIdx.x, // linear thread index val); } int main(int argc, char **argv) { - int devID; - cudaDeviceProp props; + // Select device 0 as the active GPU + int devID = 0; + cudaSetDevice(devID); - // This will pick the best possible CUDA capable device - devID = findCudaDevice(argc, (const char **)argv); + // Query compute capability (major.minor) and number of SMs on the device + int major = 0, minor = 0, smCount = 0; + cudaDeviceGetAttribute(&major, cudaDevAttrComputeCapabilityMajor, devID); + cudaDeviceGetAttribute(&minor, cudaDevAttrComputeCapabilityMinor, devID); + cudaDeviceGetAttribute(&smCount, cudaDevAttrMultiProcessorCount, devID); - // Get GPU information - checkCudaErrors(cudaGetDevice(&devID)); - checkCudaErrors(cudaGetDeviceProperties(&props, devID)); - printf("Device %d: \"%s\" with Compute capability %d.%d\n", devID, props.name, props.major, props.minor); + // Print device info + printf("GPU Device %d: with compute capability %d.%d and Number of SMs %d\n\n", devID, major, minor, smCount); printf("printf() is called. Output:\n\n"); @@ -67,7 +68,7 @@ int main(int argc, char **argv) // three-dimensional blocks are configured. dim3 dimGrid(2, 2); dim3 dimBlock(2, 2, 2); - testKernel<<>>(10); + simplePrintfKernel<<>>(10); cudaDeviceSynchronize(); return EXIT_SUCCESS; diff --git a/cpp/0_Introduction/simpleStreams/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleStreams/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleStreams/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleStreams/.vscode/extensions.json b/cpp/0_Introduction/simpleStreams/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleStreams/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleStreams/CMakeLists.txt b/cpp/0_Introduction/simpleStreams/CMakeLists.txt index 8e4be29e..5b94c813 100644 --- a/cpp/0_Introduction/simpleStreams/CMakeLists.txt +++ b/cpp/0_Introduction/simpleStreams/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleStreams LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleStreams add_executable(simpleStreams simpleStreams.cu) target_compile_options(simpleStreams PRIVATE $<$:--extended-lambda>) target_compile_features(simpleStreams PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleStreams PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleStreams/README.md b/cpp/0_Introduction/simpleStreams/README.md index 80f609b5..36135546 100644 --- a/cpp/0_Introduction/simpleStreams/README.md +++ b/cpp/0_Introduction/simpleStreams/README.md @@ -1,32 +1,125 @@ -# simpleStreams - simpleStreams +# Sample: simpleStreams ## Description -This sample uses CUDA streams to overlap kernel executions with memory copies between the host and a GPU device. This sample uses a new CUDA 4.0 feature that supports pinning of generic host memory. Requires Compute Capability 2.0 or higher. +A simple benchmark that shows how CUDA streams hide memory-transfer latency behind kernel execution. +The GPU computes an element-wise square of a 64 MB float array. It is run twice — once in a single +stream and once split across 4 streams — so you can directly compare the speedup from overlapping +H2D copies, kernel execution, and D2H copies. + +## What You'll Learn + +- How CUDA streams create independent, in-order queues that enable H2D + kernel + D2H overlap +- How to split a large buffer across N streams so each stream owns its own chunk +- Why pinned (`cudaMallocHost`) host memory is required for `cudaMemcpyAsync` to be truly async +- How to create and use CUDA events to time GPU work with ~0.5 µs precision +- How to query GPU properties (compute capability, SM count) with `cudaDeviceGetAttribute` ## Key Concepts -Asynchronous Data Transfers, CUDA Streams and Events +### CUDA Streams -## Supported SM Architectures +A stream is an ordered queue of GPU commands. Commands in the **same** stream execute in order; +commands in **different** streams may overlap if the hardware has capacity. This sample uses 4 +streams. Each stream owns one quarter of the array and runs its own H2D → kernel → D2H pipeline: -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) +``` +Stream 0: [H2D chunk 0][kernel 0][D2H chunk 0] +Stream 1: [H2D chunk 1][kernel 1][D2H chunk 1] +Stream 2: [H2D chunk 2][kernel 2][D2H chunk 2] +Stream 3: [H2D chunk 3][kernel 3][D2H chunk 3] + |----------------------------------------------> wall clock +``` -## Supported OSes +D2H copy N waits for kernel N (same stream), but overlaps with the H2D copy and kernel of stream N+1. -Linux, Windows +### The Kernel: `square_kernel` -## Supported CPU Architecture +```cu +out[idx] = in[idx] * in[idx]; +``` -x86_64, armv7l +Each thread computes the square of one float element. Simple and fast — the bottleneck is the +memory transfer, which streams are designed to hide. -## CUDA APIs involved +### Pinned Host Memory -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaSetDeviceFlags, cudaSetDevice, cudaEventDestroy, cudaStreamCreate, cudaMallocHost, cudaEventCreateWithFlags, cudaFreeHost, cudaMemcpyAsync, cudaGetDeviceCount, cudaStreamDestroy, cudaMemset, cudaEventElapsedTime, cudaHostAlloc, cudaFree, cudaHostRegister, cudaEventSynchronize, cudaEventRecord, cudaMalloc, cudaGetDeviceProperties, cudaHostUnregister +`cudaMemcpyAsync` requires pinned (page-locked) host memory so the OS cannot swap out the pages +during the transfer. This sample always uses `cudaMallocHost` — the simplest and most portable +pinning strategy. -## Prerequisites +### Single-stream vs Multi-stream -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. +| Mode | What happens | +|---|---| +| Single stream | H2D → kernel → D2H run sequentially for the full 64 MB array | +| Multi-stream | 4 chunks pipeline concurrently; copy cost approaches 1/4 of the single-stream baseline | -## References (for more details) +## Key APIs + +### CUDA Runtime + +- `cudaStreamCreate` / `cudaStreamDestroy` — create and destroy an independent command queue +- `cudaMemcpyAsync` — non-blocking H2D or D2H transfer; requires pinned host memory +- `cudaMemcpy` — blocking transfer used in the single-stream reference benchmark +- `cudaDeviceSynchronize` — wait for all streams to finish before recording the stop event +- `cudaEventCreate` / `cudaEventDestroy` — create and release timing events +- `cudaEventRecord` — insert a timestamp into a stream +- `cudaEventSynchronize` — block the host until the event is recorded +- `cudaEventElapsedTime` — compute milliseconds between two recorded events +- `cudaMallocHost` / `cudaFreeHost` — allocate and free pinned host memory +- `cudaMalloc` / `cudaFree` — standard device memory management +- `cudaDeviceGetAttribute` — query GPU properties such as compute capability and SM count + +## Requirements + +### Hardware + +- NVIDIA GPU with Compute Capability 7.5 or higher + +### Software + +- CUDA Toolkit (any version supporting the target GPU) +- CMake 3.20 or newer +- A C++17-capable host compiler + +## How to Build + +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. + +## How to Run + +```bash +./simpleStreams +``` + +No arguments needed. + +## Expected Output + +```text +[ CUDA Sample: Streams ] + +GPU Device 0: with compute capability X.Y and Number of SMs + +Single stream = 8.243 ms +Multi-stream = 3.167 ms +Speedup = 2.60x +``` + +**Reading the numbers:** +- `Single stream` — full 64 MB processed sequentially (H2D + kernel + D2H back-to-back) +- `Multi-stream` — same work split across 4 streams with overlap; typically 2–3x faster +- `Speedup` — ratio of single-stream time to multi-stream time; higher means more overlap achieved + +## Files + +- `simpleStreams.cu` — kernel, `run_single_stream`, `run_multi_stream`, and main driver +- `README.md` — this file +- `CMakeLists.txt` — build configuration + +## See Also + +- [CUDA C++ Programming Guide — CUDA Streams](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/asynchronous-execution.html#cuda-streams) +- [CUDA C++ Programming Guide — Creating and Destroying CUDA Streams](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/asynchronous-execution.html#creating-and-destroying-cuda-streams) +- [CUDA C++ Best Practices Guide — CUDA Events](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/asynchronous-execution.html#cuda-events) diff --git a/cpp/0_Introduction/simpleStreams/simpleStreams.cu b/cpp/0_Introduction/simpleStreams/simpleStreams.cu index eb92b55c..0c162c4c 100644 --- a/cpp/0_Introduction/simpleStreams/simpleStreams.cu +++ b/cpp/0_Introduction/simpleStreams/simpleStreams.cu @@ -1,4 +1,4 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +/* Copyright (c) 2026, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -27,396 +27,200 @@ /* * This sample illustrates the usage of CUDA streams for overlapping - * kernel execution with device/host memcopies. The kernel is used to - * initialize an array to a specific value, after which the array is - * copied to the host (CPU) memory. To increase performance, multiple + * kernel execution with device/host memcopies. The kernel computes an + * element-wise square of a float array, after which the result is copied + * back to host (CPU) memory. To increase performance, multiple * kernel/memcopy pairs are launched asynchronously, each pair in its - * own stream. Devices with Compute Capability 1.1 can overlap a kernel - * and a memcopy as long as they are issued in different streams. Kernels - * are serialized. Thus, if n pairs are launched, streamed approach - * can reduce the memcopy cost to the (1/n)th of a single copy of the entire - * data set. + * own stream. A GPU can overlap a kernel and a memcopy as long as they + * are issued in different streams. Thus, if n pairs are launched, the + * streamed approach can reduce the memcopy cost to the (1/n)th of a + * single copy of the entire data set. * * Additionally, this sample uses CUDA events to measure elapsed time for * CUDA calls. Events are a part of CUDA API and provide a system independent * way to measure execution times on CUDA devices with approximately 0.5 * microsecond precision. * - * Elapsed times are averaged over nreps repetitions (10 by default). - * */ -const char *sSDKsample = "simpleStreams"; - -const char *sEventSyncMethod[] = {"cudaEventDefault", "cudaEventBlockingSync", "cudaEventDisableTiming", NULL}; - -const char *sDeviceSyncMethod[] = {"cudaDeviceScheduleAuto", - "cudaDeviceScheduleSpin", - "cudaDeviceScheduleYield", - "INVALID", - "cudaDeviceScheduleBlockingSync", - NULL}; - // System includes -#include #include // CUDA runtime #include -// helper functions and utilities to work with CUDA -#include -#include +#define N (1 << 24) // ~16M elements +#define BLOCK 256 // threads per block +#define NUM_STREAMS 4 // number of concurrent streams -#ifndef WIN32 -#include // for mmap() / munmap() -#endif - -// Macro to aligned up to the memory size in question -#define MEMORY_ALIGNMENT 4096 -#define ALIGN_UP(x, size) (((size_t)x + (size - 1)) & (~(size - 1))) - -__global__ void init_array(int *g_data, int *factor, int num_iterations) -{ +// Kernel: computes element-wise square of the input array +__global__ void square_kernel(const float* in, float* out, int n){ int idx = blockIdx.x * blockDim.x + threadIdx.x; - - for (int i = 0; i < num_iterations; i++) { - g_data[idx] += *factor; // non-coalesced on purpose, to burn time + if (idx < n){ + out[idx] = in[idx] * in[idx]; } } -bool correct_data(int *a, const int n, const int c) -{ - for (int i = 0; i < n; i++) { - if (a[i] != c) { - printf("%d: %d %d\n", i, a[i], c); - return false; - } - } - - return true; -} - -inline void AllocateHostMemory(bool bPinGenericMemory, int **pp_a, int **ppAligned_a, int nbytes) -{ -#if CUDART_VERSION >= 4000 -#if !defined(__arm__) && !defined(__aarch64__) - if (bPinGenericMemory) { -// allocate a generic page-aligned chunk of system memory -#ifdef WIN32 - printf("> VirtualAlloc() allocating %4.2f Mbytes of (generic page-aligned " - "system memory)\n", - (float)nbytes / 1048576.0f); - *pp_a = (int *)VirtualAlloc(NULL, (nbytes + MEMORY_ALIGNMENT), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); -#else - printf("> mmap() allocating %4.2f Mbytes (generic page-aligned system " - "memory)\n", - (float)nbytes / 1048576.0f); - *pp_a = (int *)mmap(NULL, (nbytes + MEMORY_ALIGNMENT), PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); -#endif - - *ppAligned_a = (int *)ALIGN_UP(*pp_a, MEMORY_ALIGNMENT); - - printf("> cudaHostRegister() registering %4.2f Mbytes of generic allocated " - "system memory\n", - (float)nbytes / 1048576.0f); - // pin allocate memory - checkCudaErrors(cudaHostRegister(*ppAligned_a, nbytes, cudaHostRegisterMapped)); - } - else -#endif -#endif - { - printf("> cudaMallocHost() allocating %4.2f Mbytes of system memory\n", (float)nbytes / 1048576.0f); - // allocate host memory (pinned is required for achieve asynchronicity) - checkCudaErrors(cudaMallocHost((void **)pp_a, nbytes)); - *ppAligned_a = *pp_a; - } -} - -inline void FreeHostMemory(bool bPinGenericMemory, int **pp_a, int **ppAligned_a, int nbytes) -{ -#if CUDART_VERSION >= 4000 -#if !defined(__arm__) && !defined(__aarch64__) - // CUDA 4.0 support pinning of generic host memory - if (bPinGenericMemory) { - // unpin and delete host memory - checkCudaErrors(cudaHostUnregister(*ppAligned_a)); -#ifdef WIN32 - VirtualFree(*pp_a, 0, MEM_RELEASE); -#else - munmap(*pp_a, nbytes); -#endif - } - else -#endif -#endif - { - cudaFreeHost(*pp_a); - } -} - -static const char *sSyncMethod[] = {"0 (Automatic Blocking)", - "1 (Spin Blocking)", - "2 (Yield Blocking)", - "3 (Undefined Blocking Method)", - "4 (Blocking Sync Event) = low CPU utilization", - NULL}; - -void printHelp() -{ - printf("Usage: %s [options below]\n", sSDKsample); - printf("\t--sync_method=n for CPU/GPU synchronization\n"); - printf("\t n=%s\n", sSyncMethod[0]); - printf("\t n=%s\n", sSyncMethod[1]); - printf("\t n=%s\n", sSyncMethod[2]); - printf("\t n=%s\n", sSyncMethod[4]); - printf("\t--use_generic_memory (default) use generic page-aligned for system " - "memory\n"); - printf("\t--use_cuda_malloc_host (optional) use cudaMallocHost to allocate " - "system memory\n"); -} - -#if defined(__APPLE__) || defined(MACOSX) -#define DEFAULT_PINNED_GENERIC_MEMORY false -#else -#define DEFAULT_PINNED_GENERIC_MEMORY true -#endif - -int main(int argc, char **argv) -{ - int cuda_device = 0; - int nstreams = 4; // number of streams for CUDA calls - int nreps = 10; // number of times each experiment is repeated - int n = 16 * 1024 * 1024; // number of ints in the data set - int nbytes = n * sizeof(int); // number of data bytes - dim3 threads, blocks; // kernel launch configuration - float elapsed_time, time_memcpy, time_kernel; // timing variables - float scale_factor = 1.0f; - - // allocate generic memory and pin it laster instead of using cudaHostAlloc() - - bool bPinGenericMemory = DEFAULT_PINNED_GENERIC_MEMORY; // we want this to be the default behavior - int device_sync_method = cudaDeviceBlockingSync; // by default we use BlockingSync - - int niterations; // number of iterations for the loop inside the kernel - - printf("[ %s ]\n\n", sSDKsample); - - if (checkCmdLineFlag(argc, (const char **)argv, "help")) { - printHelp(); - return EXIT_SUCCESS; - } - - if ((device_sync_method = getCmdLineArgumentInt(argc, (const char **)argv, "sync_method")) >= 0) { - if (device_sync_method == 0 || device_sync_method == 1 || device_sync_method == 2 || device_sync_method == 4) { - printf("Device synchronization method set to = %s\n", sSyncMethod[device_sync_method]); - printf("Setting reps to 100 to demonstrate steady state\n"); - nreps = 100; - } - else { - printf("Invalid command line option sync_method=\"%d\"\n", device_sync_method); - return EXIT_FAILURE; - } - } - else { - printHelp(); - return EXIT_SUCCESS; - } - - if (checkCmdLineFlag(argc, (const char **)argv, "use_generic_memory")) { -#if defined(__APPLE__) || defined(MACOSX) - bPinGenericMemory = false; // Generic Pinning of System Paged memory not - // currently supported on Mac OSX -#else - bPinGenericMemory = true; -#endif - } - - if (checkCmdLineFlag(argc, (const char **)argv, "use_cuda_malloc_host")) { - bPinGenericMemory = false; - } - - printf("\n> "); - cuda_device = findCudaDevice(argc, (const char **)argv); - - // check the compute capability of the device - int num_devices = 0; - checkCudaErrors(cudaGetDeviceCount(&num_devices)); - - if (0 == num_devices) { - printf("your system does not have a CUDA capable device, waiving test...\n"); - return EXIT_WAIVED; - } - - // check if the command-line chosen device ID is within range, exit if not - if (cuda_device >= num_devices) { - printf("cuda_device=%d is invalid, must choose device ID between 0 and %d\n", cuda_device, num_devices - 1); - return EXIT_FAILURE; - } - - checkCudaErrors(cudaSetDevice(cuda_device)); - - // Checking for compute capabilities - cudaDeviceProp deviceProp; - checkCudaErrors(cudaGetDeviceProperties(&deviceProp, cuda_device)); - - niterations = 5; - - // Check if GPU can map host memory (Generic Method), if not then we override - // bPinGenericMemory to be false - if (bPinGenericMemory) { - printf("Device: <%s> canMapHostMemory: %s\n", deviceProp.name, deviceProp.canMapHostMemory ? "Yes" : "No"); - - if (deviceProp.canMapHostMemory == 0) { - printf("Using cudaMallocHost, CUDA device does not support mapping of " - "generic host memory\n"); - bPinGenericMemory = false; - } - } - - // Anything that is less than 32 Cores will have scaled down workload - scale_factor = - max((32.0f / (_ConvertSMVer2Cores(deviceProp.major, deviceProp.minor) * (float)deviceProp.multiProcessorCount)), - 1.0f); - n = (int)rint((float)n / scale_factor); - - printf("> CUDA Capable: SM %d.%d hardware\n", deviceProp.major, deviceProp.minor); - printf("> %d Multiprocessor(s) x %d (Cores/Multiprocessor) = %d (Cores)\n", - deviceProp.multiProcessorCount, - _ConvertSMVer2Cores(deviceProp.major, deviceProp.minor), - _ConvertSMVer2Cores(deviceProp.major, deviceProp.minor) * deviceProp.multiProcessorCount); - - printf("> scale_factor = %1.4f\n", 1.0f / scale_factor); - printf("> array_size = %d\n\n", n); - - // enable use of blocking sync, to reduce CPU usage - printf("> Using CPU/GPU Device Synchronization method (%s)\n", sDeviceSyncMethod[device_sync_method]); - checkCudaErrors(cudaSetDeviceFlags(device_sync_method | (bPinGenericMemory ? cudaDeviceMapHost : 0))); - - // allocate host memory - int c = 5; // value to which the array will be initialized - int *h_a = 0; // pointer to the array data in host memory - int *hAligned_a = 0; // pointer to the array data in host memory (aligned to - // MEMORY_ALIGNMENT) - - // Allocate Host memory (could be using cudaMallocHost or VirtualAlloc/mmap if - // using the new CUDA 4.0 features - AllocateHostMemory(bPinGenericMemory, &h_a, &hAligned_a, nbytes); +// Run the full H2D memcopy + kernel + D2H memcopy in a single default stream. +// Returns elapsed time in milliseconds. +float run_default_stream(float* h_in, float* h_out, int n){ + float *d_in, *d_out; // device input and output buffers + size_t bytes = n * sizeof(float); // allocate device memory - int *d_a = 0, - *d_c = 0; // pointers to data and init value in the device memory - checkCudaErrors(cudaMalloc((void **)&d_a, nbytes)); - checkCudaErrors(cudaMemset(d_a, 0x0, nbytes)); - checkCudaErrors(cudaMalloc((void **)&d_c, sizeof(int))); - checkCudaErrors(cudaMemcpy(d_c, &c, sizeof(int), cudaMemcpyHostToDevice)); + cudaMalloc(&d_in, bytes); + cudaMalloc(&d_out, bytes); - printf("\nStarting Test\n"); + // create CUDA event handles for timing + cudaEvent_t start, stop; + cudaEventCreate(&start); + cudaEventCreate(&stop); + + cudaEventRecord(start); + + // copy input to device, run kernel, copy result back + cudaMemcpy(d_in, h_in, bytes, cudaMemcpyHostToDevice); + int grid = (n + BLOCK - 1) / BLOCK; + square_kernel<<>>(d_in, d_out, n); + cudaMemcpy(h_out, d_out, bytes, cudaMemcpyDeviceToHost); + + cudaEventRecord(stop); + cudaEventSynchronize(stop); // block until the event is actually recorded + + float ms; + cudaEventElapsedTime(&ms, start, stop); + + // release device resources + cudaFree(d_in); + cudaFree(d_out); + cudaEventDestroy(start); + cudaEventDestroy(stop); + + return ms; +} + +// Run the same workload split across 4 streams so that H2D memcopies, +// kernel execution, and D2H memcopies can overlap on the device. +// Returns elapsed time in milliseconds. +float run_multi_stream(float* h_in, float* h_out, int n){ + int chunk = n/NUM_STREAMS; // number of elements per stream + size_t chunk_bytes = chunk * sizeof(float); + + float *d_in[NUM_STREAMS], *d_out[NUM_STREAMS]; // per-stream device buffers + cudaStream_t streams[NUM_STREAMS]; // allocate and initialize an array of stream handles - cudaStream_t *streams = (cudaStream_t *)malloc(nstreams * sizeof(cudaStream_t)); - - for (int i = 0; i < nstreams; i++) { - checkCudaErrors(cudaStreamCreate(&(streams[i]))); + for(int i = 0; i < NUM_STREAMS; i++){ + cudaStreamCreateWithFlags(&streams[i], cudaStreamNonBlocking); + cudaMalloc(&d_in[i], chunk_bytes); + cudaMalloc(&d_out[i], chunk_bytes); } - // create CUDA event handles - // use blocking sync - cudaEvent_t start_event, stop_event; - int eventflags = ((device_sync_method == cudaDeviceBlockingSync) ? cudaEventBlockingSync : cudaEventDefault); + // create CUDA event handles for timing + cudaEvent_t start, stop; + cudaEventCreate(&start); + cudaEventCreate(&stop); - checkCudaErrors(cudaEventCreateWithFlags(&start_event, eventflags)); - checkCudaErrors(cudaEventCreateWithFlags(&stop_event, eventflags)); + cudaEventRecord(start, streams[0]); - // time memcopy from device - checkCudaErrors(cudaEventRecord(start_event, 0)); // record in stream-0, to - // ensure that all previous - // CUDA calls have - // completed - checkCudaErrors(cudaMemcpyAsync(hAligned_a, d_a, nbytes, cudaMemcpyDeviceToHost, streams[0])); - checkCudaErrors(cudaEventRecord(stop_event, 0)); - checkCudaErrors(cudaEventSynchronize(stop_event)); // block until the event is actually recorded - checkCudaErrors(cudaEventElapsedTime(&time_memcpy, start_event, stop_event)); - printf("memcopy:\t%.2f\n", time_memcpy); + // asynchronously launch 4 copies + kernels + copies, each in its own + // stream so they can overlap on the device + for(int i = 0; i < NUM_STREAMS; i++){ + int offset = i * chunk; // element offset into the host arrays for this stream - // time kernel - threads = dim3(512, 1); - blocks = dim3(n / threads.x, 1); - checkCudaErrors(cudaEventRecord(start_event, 0)); - init_array<<>>(d_a, d_c, niterations); - checkCudaErrors(cudaEventRecord(stop_event, 0)); - checkCudaErrors(cudaEventSynchronize(stop_event)); - checkCudaErrors(cudaEventElapsedTime(&time_kernel, start_event, stop_event)); - printf("kernel:\t\t%.2f\n", time_kernel); + // H2D: copy this stream's chunk to device (non-blocking on host) + cudaMemcpyAsync( + d_in[i], + h_in + offset, + chunk_bytes, + cudaMemcpyHostToDevice, + streams[i] + ); - ////////////////////////////////////////////////////////////////////// - // time non-streamed execution for reference - threads = dim3(512, 1); - blocks = dim3(n / threads.x, 1); - checkCudaErrors(cudaEventRecord(start_event, 0)); + // kernel: will only start after the H2D copy in this stream completes + int grid = (chunk + BLOCK - 1) / BLOCK; + square_kernel<<>>( + d_in[i], d_out[i], chunk + ); - for (int k = 0; k < nreps; k++) { - init_array<<>>(d_a, d_c, niterations); - checkCudaErrors(cudaMemcpy(hAligned_a, d_a, nbytes, cudaMemcpyDeviceToHost)); + // D2H: copy result back; starts after the kernel in this stream finishes + cudaMemcpyAsync( + h_out + offset, + d_out[i], + chunk_bytes, + cudaMemcpyDeviceToHost, + streams[i] + ); } - checkCudaErrors(cudaEventRecord(stop_event, 0)); - checkCudaErrors(cudaEventSynchronize(stop_event)); - checkCudaErrors(cudaEventElapsedTime(&elapsed_time, start_event, stop_event)); - printf("non-streamed:\t%.2f\n", elapsed_time / nreps); + // Wait for all streams to complete their work + for(int i=0; i < NUM_STREAMS; i++) { + cudaStreamSynchronize(streams[i]); + } + cudaEventRecord(stop, streams[0]); - ////////////////////////////////////////////////////////////////////// - // time execution with nstreams streams - threads = dim3(512, 1); - blocks = dim3(n / (nstreams * threads.x), 1); - memset(hAligned_a, 255, - nbytes); // set host memory bits to all 1s, for testing correctness - checkCudaErrors(cudaMemset(d_a, 0, nbytes)); // set device memory to all 0s, for testing correctness - checkCudaErrors(cudaEventRecord(start_event, 0)); + // Sync with stream 0, which only completes once all other work + // is done and the stop event is recorded + cudaStreamSynchronize(streams[0]); - for (int k = 0; k < nreps; k++) { - // asynchronously launch nstreams kernels, each operating on its own portion - // of data - for (int i = 0; i < nstreams; i++) { - init_array<<>>(d_a + i * n / nstreams, d_c, niterations); - } + float ms; + cudaEventElapsedTime(&ms, start, stop); - // asynchronously launch nstreams memcopies. Note that memcopy in stream x - // will only - // commence executing when all previous CUDA calls in stream x have - // completed - for (int i = 0; i < nstreams; i++) { - checkCudaErrors(cudaMemcpyAsync(hAligned_a + i * n / nstreams, - d_a + i * n / nstreams, - nbytes / nstreams, - cudaMemcpyDeviceToHost, - streams[i])); - } + // release per-stream resources + for(int i=0; i < NUM_STREAMS; i++){ + cudaFree(d_in[i]); + cudaFree(d_out[i]); + cudaStreamDestroy(streams[i]); } - checkCudaErrors(cudaEventRecord(stop_event, 0)); - checkCudaErrors(cudaEventSynchronize(stop_event)); - checkCudaErrors(cudaEventElapsedTime(&elapsed_time, start_event, stop_event)); - printf("%d streams:\t%.2f\n", nstreams, elapsed_time / nreps); + cudaEventDestroy(start); + cudaEventDestroy(stop); - // check whether the output is correct - printf("-------------------------------\n"); - bool bResults = correct_data(hAligned_a, n, c * nreps * niterations); - - // release resources - for (int i = 0; i < nstreams; i++) { - checkCudaErrors(cudaStreamDestroy(streams[i])); - } - - checkCudaErrors(cudaEventDestroy(start_event)); - checkCudaErrors(cudaEventDestroy(stop_event)); - - // Free cudaMallocHost or Generic Host allocated memory (from CUDA 4.0) - FreeHostMemory(bPinGenericMemory, &h_a, &hAligned_a, nbytes); - - checkCudaErrors(cudaFree(d_a)); - checkCudaErrors(cudaFree(d_c)); - - return bResults ? EXIT_SUCCESS : EXIT_FAILURE; + return ms; +} + +int main(){ + + printf("[ CUDA Sample: Streams ]\n\n"); + + // Query compute capability and number of SMs on device 0 + int cuda_device = 0; + int major = 0, minor = 0, smCount = 0; + cudaDeviceGetAttribute(&major, cudaDevAttrComputeCapabilityMajor, cuda_device); + cudaDeviceGetAttribute(&minor, cudaDevAttrComputeCapabilityMinor, cuda_device); + cudaDeviceGetAttribute(&smCount, cudaDevAttrMultiProcessorCount, cuda_device); + printf("GPU Device %d: with compute capability %d.%d and Number of SMs %d\n\n", + cuda_device, major, minor, smCount); + + size_t bytes = N * sizeof(float); + + // allocate pinned host memory: the OS normally moves RAM pages around freely, + // pinning locks these pages in place so the GPU can read them directly + // without the data being moved away mid-transfer + float *h_in = 0; // pointer to input data in host memory + float *h_out = 0; // pointer to output data in host memory + cudaMallocHost(&h_in, bytes); + cudaMallocHost(&h_out, bytes); + + // initialize input array + for (int i = 0; i < N; i++) + h_in[i] = (float)i; + + ////////////////////////////////////////////////////////////////////// + // time single-stream execution for reference + float t1 = run_default_stream(h_in, h_out, N); + + ////////////////////////////////////////////////////////////////////// + // time execution with 4 streams + float t2 = run_multi_stream(h_in, h_out, N); + + printf("Single stream = %.3f ms\n", t1); + printf("Multi-stream = %.3f ms\n", t2); + printf("Speedup = %.2fx\n", t1 / t2); + + // release pinned host memory + cudaFreeHost(h_in); + cudaFreeHost(h_out); + + return 0; } diff --git a/cpp/0_Introduction/simpleSurfaceWrite/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleSurfaceWrite/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleSurfaceWrite/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleSurfaceWrite/.vscode/extensions.json b/cpp/0_Introduction/simpleSurfaceWrite/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleSurfaceWrite/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleSurfaceWrite/CMakeLists.txt b/cpp/0_Introduction/simpleSurfaceWrite/CMakeLists.txt index f7c5d5fc..efc34660 100644 --- a/cpp/0_Introduction/simpleSurfaceWrite/CMakeLists.txt +++ b/cpp/0_Introduction/simpleSurfaceWrite/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleSurfaceWrite LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleSurfaceWrite add_executable(simpleSurfaceWrite simpleSurfaceWrite.cu) target_compile_options(simpleSurfaceWrite PRIVATE $<$:--extended-lambda>) target_compile_features(simpleSurfaceWrite PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleSurfaceWrite PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - # Copy data to the output directory add_custom_command(TARGET simpleSurfaceWrite POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory @@ -36,6 +28,5 @@ add_custom_command(TARGET simpleSurfaceWrite POST_BUILD ${CMAKE_CURRENT_BINARY_DIR} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleTemplates/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleTemplates/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleTemplates/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleTemplates/.vscode/extensions.json b/cpp/0_Introduction/simpleTemplates/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleTemplates/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleTemplates/README.md b/cpp/0_Introduction/simpleTemplates/README.md deleted file mode 100644 index 22a0d8dc..00000000 --- a/cpp/0_Introduction/simpleTemplates/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# simpleTemplates - Simple Templates - -## Description - -This sample is a templatized version of the template project. It also shows how to correctly templatize dynamically allocated shared memory arrays. - -## Key Concepts - -C++ Templates - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMalloc, cudaMemcpy, cudaGetDeviceProperties, cudaFree - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. - -## References (for more details) diff --git a/cpp/0_Introduction/simpleTemplates/sharedmem.cuh b/cpp/0_Introduction/simpleTemplates/sharedmem.cuh deleted file mode 100644 index 1293c788..00000000 --- a/cpp/0_Introduction/simpleTemplates/sharedmem.cuh +++ /dev/null @@ -1,185 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 _SHAREDMEM_H_ -#define _SHAREDMEM_H_ - -//**************************************************************************** -// Because dynamically sized shared memory arrays are declared "extern", -// we can't templatize them directly. To get around this, we declare a -// simple wrapper struct that will declare the extern array with a different -// name depending on the type. This avoids compiler errors about duplicate -// definitions. -// -// To use dynamically allocated shared memory in a templatized __global__ or -// __device__ function, just replace code like this: -// -// -// template -// __global__ void -// foo( T* g_idata, T* g_odata) -// { -// // Shared mem size is determined by the host app at run time -// extern __shared__ T sdata[]; -// ... -// doStuff(sdata); -// ... -// } -// -// With this -// template -// __global__ void -// foo( T* g_idata, T* g_odata) -// { -// // Shared mem size is determined by the host app at run time -// SharedMemory smem; -// T* sdata = smem.getPointer(); -// ... -// doStuff(sdata); -// ... -// } -//**************************************************************************** - -// This is the un-specialized struct. Note that we prevent instantiation of -// this -// struct by putting an undefined symbol in the function body so it won't -// compile. -template struct SharedMemory -{ - // Ensure that we won't compile any un-specialized types - __device__ T *getPointer() - { - extern __device__ void error(void); - error(); - return NULL; - } -}; - -// Following are the specializations for the following types. -// int, uint, char, uchar, short, ushort, long, ulong, bool, float, and double -// One could also specialize it for user-defined types. - -template <> struct SharedMemory -{ - __device__ int *getPointer() - { - extern __shared__ int s_int[]; - return s_int; - } -}; - -template <> struct SharedMemory -{ - __device__ unsigned int *getPointer() - { - extern __shared__ unsigned int s_uint[]; - return s_uint; - } -}; - -template <> struct SharedMemory -{ - __device__ char *getPointer() - { - extern __shared__ char s_char[]; - return s_char; - } -}; - -template <> struct SharedMemory -{ - __device__ unsigned char *getPointer() - { - extern __shared__ unsigned char s_uchar[]; - return s_uchar; - } -}; - -template <> struct SharedMemory -{ - __device__ short *getPointer() - { - extern __shared__ short s_short[]; - return s_short; - } -}; - -template <> struct SharedMemory -{ - __device__ unsigned short *getPointer() - { - extern __shared__ unsigned short s_ushort[]; - return s_ushort; - } -}; - -template <> struct SharedMemory -{ - __device__ long *getPointer() - { - extern __shared__ long s_long[]; - return s_long; - } -}; - -template <> struct SharedMemory -{ - __device__ unsigned long *getPointer() - { - extern __shared__ unsigned long s_ulong[]; - return s_ulong; - } -}; - -template <> struct SharedMemory -{ - __device__ bool *getPointer() - { - extern __shared__ bool s_bool[]; - return s_bool; - } -}; - -template <> struct SharedMemory -{ - __device__ float *getPointer() - { - extern __shared__ float s_float[]; - return s_float; - } -}; - -template <> struct SharedMemory -{ - __device__ double *getPointer() - { - extern __shared__ double s_double[]; - return s_double; - } -}; - -#endif //_SHAREDMEM_H_ diff --git a/cpp/0_Introduction/simpleTemplates/simpleTemplates.cu b/cpp/0_Introduction/simpleTemplates/simpleTemplates.cu deleted file mode 100644 index 8a7dae30..00000000 --- a/cpp/0_Introduction/simpleTemplates/simpleTemplates.cu +++ /dev/null @@ -1,265 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* This sample is a templatized version of the template project. - * It also shows how to correctly templatize dynamically allocated shared - * memory arrays. - * Host code. - */ - -// System includes -#include -#include -#include -#include - -// CUDA runtime -#include - -// helper functions and utilities to work with CUDA -#include -#include - -#ifndef MAX -#define MAX(a, b) (a > b ? a : b) -#endif - -// includes, kernels -#include "sharedmem.cuh" - -int g_TotalFailures = 0; - -//////////////////////////////////////////////////////////////////////////////// -//! Simple test kernel for device functionality -//! @param g_idata input data in global memory -//! @param g_odata output data in global memory -//////////////////////////////////////////////////////////////////////////////// -template __global__ void testKernel(T *g_idata, T *g_odata) -{ - // Shared mem size is determined by the host app at run time - SharedMemory smem; - T *sdata = smem.getPointer(); - - // access thread id - const unsigned int tid = threadIdx.x; - // access number of threads in this block - const unsigned int num_threads = blockDim.x; - - // read in input data from global memory - sdata[tid] = g_idata[tid]; - __syncthreads(); - - // perform some computations - sdata[tid] = (T)num_threads * sdata[tid]; - __syncthreads(); - - // write data to global memory - g_odata[tid] = sdata[tid]; -} - -//////////////////////////////////////////////////////////////////////////////// -// declaration, forward -template void runTest(int argc, char **argv, int len); - -template void computeGold(T *reference, T *idata, const unsigned int len) -{ - const T T_len = static_cast(len); - - for (unsigned int i = 0; i < len; ++i) { - reference[i] = idata[i] * T_len; - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Program main -//////////////////////////////////////////////////////////////////////////////// -int main(int argc, char **argv) -{ - printf("> runTest\n"); - runTest(argc, argv, 32); - printf("> runTest\n"); - runTest(argc, argv, 64); - - printf("\n[simpleTemplates] -> Test Results: %d Failures\n", g_TotalFailures); - - exit(g_TotalFailures == 0 ? EXIT_SUCCESS : EXIT_FAILURE); -} - -// To completely templatize runTest (below) with cutil, we need to use -// template specialization to wrap up CUTIL's array comparison and file writing -// functions for different types. - -// Here's the generic wrapper for cutCompare* -template class ArrayComparator -{ -public: - bool compare(const T *reference, T *data, unsigned int len) - { - fprintf(stderr, "Error: no comparison function implemented for this type\n"); - return false; - } -}; - -// Here's the specialization for ints: -template <> class ArrayComparator -{ -public: - bool compare(const int *reference, int *data, unsigned int len) - { - return compareData(reference, data, len, 0.15f, 0.0f); - } -}; - -// Here's the specialization for floats: -template <> class ArrayComparator -{ -public: - bool compare(const float *reference, float *data, unsigned int len) - { - return compareData(reference, data, len, 0.15f, 0.15f); - } -}; - -// Here's the generic wrapper for cutWriteFile* -template class ArrayFileWriter -{ -public: - bool write(const char *filename, T *data, unsigned int len, float epsilon) - { - fprintf(stderr, "Error: no file write function implemented for this type\n"); - return false; - } -}; - -// Here's the specialization for ints: -template <> class ArrayFileWriter -{ -public: - bool write(const char *filename, int *data, unsigned int len, float epsilon) - { - return sdkWriteFile(filename, data, len, epsilon, false); - } -}; - -// Here's the specialization for floats: -template <> class ArrayFileWriter -{ -public: - bool write(const char *filename, float *data, unsigned int len, float epsilon) - { - return sdkWriteFile(filename, data, len, epsilon, false); - } -}; - -//////////////////////////////////////////////////////////////////////////////// -//! Run a simple test for CUDA -//////////////////////////////////////////////////////////////////////////////// -template void runTest(int argc, char **argv, int len) -{ - int devID; - cudaDeviceProp deviceProps; - - devID = findCudaDevice(argc, (const char **)argv); - - // get number of SMs on this GPU - checkCudaErrors(cudaGetDeviceProperties(&deviceProps, devID)); - printf("CUDA device [%s] has %d Multi-Processors\n", deviceProps.name, deviceProps.multiProcessorCount); - - // create and start timer - StopWatchInterface *timer = NULL; - sdkCreateTimer(&timer); - - // start the timer - sdkStartTimer(&timer); - - unsigned int num_threads = len; - unsigned int mem_size = sizeof(float) * num_threads; - - // allocate host memory - T *h_idata = (T *)malloc(mem_size); - - // initialize the memory - for (unsigned int i = 0; i < num_threads; ++i) { - h_idata[i] = (T)i; - } - - // allocate device memory - T *d_idata; - checkCudaErrors(cudaMalloc((void **)&d_idata, mem_size)); - // copy host memory to device - checkCudaErrors(cudaMemcpy(d_idata, h_idata, mem_size, cudaMemcpyHostToDevice)); - - // allocate device memory for result - T *d_odata; - checkCudaErrors(cudaMalloc((void **)&d_odata, mem_size)); - - // setup execution parameters - dim3 grid(1, 1, 1); - dim3 threads(num_threads, 1, 1); - - // execute the kernel - testKernel<<>>(d_idata, d_odata); - - // check if kernel execution generated and error - getLastCudaError("Kernel execution failed"); - - // allocate mem for the result on host side - T *h_odata = (T *)malloc(mem_size); - // copy result from device to host - checkCudaErrors(cudaMemcpy(h_odata, d_odata, sizeof(T) * num_threads, cudaMemcpyDeviceToHost)); - - sdkStopTimer(&timer); - printf("Processing time: %f (ms)\n", sdkGetTimerValue(&timer)); - sdkDeleteTimer(&timer); - - // compute reference solution - T *reference = (T *)malloc(mem_size); - computeGold(reference, h_idata, num_threads); - - ArrayComparator comparator; - ArrayFileWriter writer; - - // check result - if (checkCmdLineFlag(argc, (const char **)argv, "regression")) { - // write file for regression test - writer.write("./data/regression.dat", h_odata, num_threads, 0.0f); - } - else { - // custom output handling when no regression test running - // in this case check if the result is equivalent to the expected solution - bool res = comparator.compare(reference, h_odata, num_threads); - printf("Compare %s\n\n", (1 == res) ? "OK" : "MISMATCH"); - g_TotalFailures += (1 != res); - } - - // cleanup memory - free(h_idata); - free(h_odata); - free(reference); - checkCudaErrors(cudaFree(d_idata)); - checkCudaErrors(cudaFree(d_odata)); -} diff --git a/cpp/0_Introduction/simpleTexture/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleTexture/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleTexture/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleTexture/.vscode/extensions.json b/cpp/0_Introduction/simpleTexture/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleTexture/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleTexture/CMakeLists.txt b/cpp/0_Introduction/simpleTexture/CMakeLists.txt index d6a37b65..1b19150e 100644 --- a/cpp/0_Introduction/simpleTexture/CMakeLists.txt +++ b/cpp/0_Introduction/simpleTexture/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleTexture LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleTexture add_executable(simpleTexture simpleTexture.cu) target_compile_options(simpleTexture PRIVATE $<$:--extended-lambda>) target_compile_features(simpleTexture PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleTexture PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - # Copy data files to output directory add_custom_command(TARGET simpleTexture POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different @@ -43,6 +35,5 @@ add_custom_command(TARGET simpleTexture POST_BUILD ${CMAKE_CURRENT_BINARY_DIR}/ ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleTexture3D/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleTexture3D/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleTexture3D/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleTexture3D/.vscode/extensions.json b/cpp/0_Introduction/simpleTexture3D/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleTexture3D/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleTexture3D/CMakeLists.txt b/cpp/0_Introduction/simpleTexture3D/CMakeLists.txt index f6baaf28..a9306d75 100644 --- a/cpp/0_Introduction/simpleTexture3D/CMakeLists.txt +++ b/cpp/0_Introduction/simpleTexture3D/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleTexture3D LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,49 +29,37 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for simpleTexture3D add_executable(simpleTexture3D simpleTexture3D_kernel.cu simpleTexture3D.cpp) - target_compile_options(simpleTexture3D PRIVATE $<$:--extended-lambda>) - target_compile_features(simpleTexture3D PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleTexture3D PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleTexture3D PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(simpleTexture3D ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - # Copy data files to output directory add_custom_command(TARGET simpleTexture3D POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR} ) - - if(WIN32) + if(WIN32) target_link_libraries(simpleTexture3D ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET simpleTexture3D POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET simpleTexture3D POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -83,14 +67,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'simpleTexture3D'") endif() else() message(STATUS "OpenGL not found - will not build sample 'simpleTexture3D'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/simpleTextureDrv/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleTextureDrv/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleTextureDrv/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleTextureDrv/.vscode/extensions.json b/cpp/0_Introduction/simpleTextureDrv/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleTextureDrv/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleTextureDrv/CMakeLists.txt b/cpp/0_Introduction/simpleTextureDrv/CMakeLists.txt index e9e36b02..589d76a9 100644 --- a/cpp/0_Introduction/simpleTextureDrv/CMakeLists.txt +++ b/cpp/0_Introduction/simpleTextureDrv/CMakeLists.txt @@ -1,33 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleTextureDrv LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleTextureDrv add_executable(simpleTextureDrv simpleTextureDrv.cpp) target_compile_options(simpleTextureDrv PRIVATE $<$:--extended-lambda>) target_compile_features(simpleTextureDrv PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleTextureDrv PROPERTIES CUDA_SEPARABLE_COMPILATION ON) target_include_directories(simpleTextureDrv PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -55,7 +48,7 @@ endif() add_custom_command( OUTPUT ${CUDA_FATBIN_FILE} - COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} ${ALL_CCFLAGS} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} + COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} DEPENDS ${CUDA_KERNEL_SOURCE} COMMENT "Building CUDA fatbin: ${CUDA_FATBIN_FILE}" ) @@ -80,6 +73,5 @@ add_custom_target(generate_fatbin_textureDrv ALL DEPENDS ${CUDA_FATBIN_FILE}) # Ensure simpleTextureDrv depends on the fatbin add_dependencies(simpleTextureDrv generate_fatbin_textureDrv) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleVoteIntrinsics/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleVoteIntrinsics/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleVoteIntrinsics/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleVoteIntrinsics/.vscode/extensions.json b/cpp/0_Introduction/simpleVoteIntrinsics/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleVoteIntrinsics/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleVoteIntrinsics/CMakeLists.txt b/cpp/0_Introduction/simpleVoteIntrinsics/CMakeLists.txt index 11fa110f..bbba4248 100644 --- a/cpp/0_Introduction/simpleVoteIntrinsics/CMakeLists.txt +++ b/cpp/0_Introduction/simpleVoteIntrinsics/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleVoteIntrinsics LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleVoteIntrinsics add_executable(simpleVoteIntrinsics simpleVoteIntrinsics.cu) target_compile_options(simpleVoteIntrinsics PRIVATE $<$:--extended-lambda>) target_compile_features(simpleVoteIntrinsics PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleVoteIntrinsics PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleZeroCopy/.vscode/c_cpp_properties.json b/cpp/0_Introduction/simpleZeroCopy/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/simpleZeroCopy/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/simpleZeroCopy/.vscode/extensions.json b/cpp/0_Introduction/simpleZeroCopy/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/simpleZeroCopy/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/simpleZeroCopy/CMakeLists.txt b/cpp/0_Introduction/simpleZeroCopy/CMakeLists.txt index 536271db..21a75057 100644 --- a/cpp/0_Introduction/simpleZeroCopy/CMakeLists.txt +++ b/cpp/0_Introduction/simpleZeroCopy/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleZeroCopy LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for simpleZeroCopy add_executable(simpleZeroCopy simpleZeroCopy.cu) target_compile_options(simpleZeroCopy PRIVATE $<$:--extended-lambda>) target_compile_features(simpleZeroCopy PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleZeroCopy PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/systemWideAtomics/.vscode/c_cpp_properties.json b/cpp/0_Introduction/systemWideAtomics/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/systemWideAtomics/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/systemWideAtomics/.vscode/extensions.json b/cpp/0_Introduction/systemWideAtomics/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/systemWideAtomics/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/systemWideAtomics/CMakeLists.txt b/cpp/0_Introduction/systemWideAtomics/CMakeLists.txt index 7e37ff90..cbd45e48 100644 --- a/cpp/0_Introduction/systemWideAtomics/CMakeLists.txt +++ b/cpp/0_Introduction/systemWideAtomics/CMakeLists.txt @@ -1,42 +1,40 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(systemWideAtomics LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) if(ENABLE_CUDA_DEBUG) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) else() set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) endif() -# Include directories and libraries include_directories(../../../Common) if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") message(STATUS "Will not build sample systemWideAtomics - not supported on aarch64") else() if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - # Source file - # Add target for systemWideAtomics add_executable(systemWideAtomics systemWideAtomics.cu) target_compile_options(systemWideAtomics PRIVATE $<$:--extended-lambda>) target_compile_features(systemWideAtomics PRIVATE cxx_std_17 cuda_std_17) - set_target_properties(systemWideAtomics PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - else() message(STATUS "Will not build sample systemWideAtomics - requires Linux OS") endif() endif() -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/template/.vscode/c_cpp_properties.json b/cpp/0_Introduction/template/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/template/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/template/.vscode/extensions.json b/cpp/0_Introduction/template/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/template/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/template/CMakeLists.txt b/cpp/0_Introduction/template/CMakeLists.txt deleted file mode 100644 index 42e614e9..00000000 --- a/cpp/0_Introduction/template/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(template LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for template -add_executable(template template.cu template_cpu.cpp) - -target_compile_options(template PRIVATE $<$:--extended-lambda>) - -target_compile_features(template PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(template PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/0_Introduction/template/README.md b/cpp/0_Introduction/template/README.md deleted file mode 100644 index 4b747926..00000000 --- a/cpp/0_Introduction/template/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# template - Template - -## Description - -A trivial template project that can be used as a starting point to create new CUDA projects. - -## Key Concepts - -Device Memory Allocation - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMalloc, cudaMemcpy, cudaFree - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. - -## References (for more details) diff --git a/cpp/0_Introduction/template/template.cu b/cpp/0_Introduction/template/template.cu deleted file mode 100644 index ba0164f5..00000000 --- a/cpp/0_Introduction/template/template.cu +++ /dev/null @@ -1,165 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* Template project which demonstrates the basics on how to setup a project - * example application. - * Host code. - */ - -// includes, system -#include -#include -#include -#include - -// includes CUDA -#include - -// includes, project -#include -#include // helper functions for SDK examples - -//////////////////////////////////////////////////////////////////////////////// -// declaration, forward -void runTest(int argc, char **argv); - -extern "C" void computeGold(float *reference, float *idata, const unsigned int len); - -//////////////////////////////////////////////////////////////////////////////// -//! Simple test kernel for device functionality -//! @param g_idata input data in global memory -//! @param g_odata output data in global memory -//////////////////////////////////////////////////////////////////////////////// -__global__ void testKernel(float *g_idata, float *g_odata) -{ - // shared memory - // the size is determined by the host application - extern __shared__ float sdata[]; - - // access thread id - const unsigned int tid = threadIdx.x; - // access number of threads in this block - const unsigned int num_threads = blockDim.x; - - // read in input data from global memory - sdata[tid] = g_idata[tid]; - __syncthreads(); - - // perform some computations - sdata[tid] = (float)num_threads * sdata[tid]; - __syncthreads(); - - // write data to global memory - g_odata[tid] = sdata[tid]; -} - -//////////////////////////////////////////////////////////////////////////////// -// Program main -//////////////////////////////////////////////////////////////////////////////// -int main(int argc, char **argv) { runTest(argc, argv); } - -//////////////////////////////////////////////////////////////////////////////// -//! Run a simple test for CUDA -//////////////////////////////////////////////////////////////////////////////// -void runTest(int argc, char **argv) -{ - bool bTestResult = true; - - printf("%s Starting...\n\n", argv[0]); - - // use command-line specified CUDA device, otherwise use device with highest - // Gflops/s - int devID = findCudaDevice(argc, (const char **)argv); - - StopWatchInterface *timer = 0; - sdkCreateTimer(&timer); - sdkStartTimer(&timer); - - unsigned int num_threads = 32; - unsigned int mem_size = sizeof(float) * num_threads; - - // allocate host memory - float *h_idata = (float *)malloc(mem_size); - - // initalize the memory - for (unsigned int i = 0; i < num_threads; ++i) { - h_idata[i] = (float)i; - } - - // allocate device memory - float *d_idata; - checkCudaErrors(cudaMalloc((void **)&d_idata, mem_size)); - // copy host memory to device - checkCudaErrors(cudaMemcpy(d_idata, h_idata, mem_size, cudaMemcpyHostToDevice)); - - // allocate device memory for result - float *d_odata; - checkCudaErrors(cudaMalloc((void **)&d_odata, mem_size)); - - // setup execution parameters - dim3 grid(1, 1, 1); - dim3 threads(num_threads, 1, 1); - - // execute the kernel - testKernel<<>>(d_idata, d_odata); - - // check if kernel execution generated and error - getLastCudaError("Kernel execution failed"); - - // allocate mem for the result on host side - float *h_odata = (float *)malloc(mem_size); - // copy result from device to host - checkCudaErrors(cudaMemcpy(h_odata, d_odata, sizeof(float) * num_threads, cudaMemcpyDeviceToHost)); - - sdkStopTimer(&timer); - printf("Processing time: %f (ms)\n", sdkGetTimerValue(&timer)); - sdkDeleteTimer(&timer); - - // compute reference solution - float *reference = (float *)malloc(mem_size); - computeGold(reference, h_idata, num_threads); - - // check result - if (checkCmdLineFlag(argc, (const char **)argv, "regression")) { - // write file for regression test - sdkWriteFile("./data/regression.dat", h_odata, num_threads, 0.0f, false); - } - else { - // custom output handling when no regression test running - // in this case check if the result is equivalent to the expected solution - bTestResult = compareData(reference, h_odata, num_threads, 0.0f, 0.0f); - } - - // cleanup memory - free(h_idata); - free(h_odata); - free(reference); - checkCudaErrors(cudaFree(d_idata)); - checkCudaErrors(cudaFree(d_odata)); - - exit(bTestResult ? EXIT_SUCCESS : EXIT_FAILURE); -} diff --git a/cpp/0_Introduction/template/template_cpu.cpp b/cpp/0_Introduction/template/template_cpu.cpp deleted file mode 100644 index 2546d02d..00000000 --- a/cpp/0_Introduction/template/template_cpu.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -// export C interface -extern "C" void computeGold(float *reference, float *idata, const unsigned int len); - -//////////////////////////////////////////////////////////////////////////////// -//! Compute reference data set -//! Each element is multiplied with the number of threads / array length -//! @param reference reference data, computed but preallocated -//! @param idata input data as provided to device -//! @param len number of elements in reference / idata -//////////////////////////////////////////////////////////////////////////////// -void computeGold(float *reference, float *idata, const unsigned int len) -{ - const float f_len = static_cast(len); - - for (unsigned int i = 0; i < len; ++i) { - reference[i] = idata[i] * f_len; - } -} diff --git a/cpp/0_Introduction/vectorAdd/.vscode/c_cpp_properties.json b/cpp/0_Introduction/vectorAdd/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/vectorAdd/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/vectorAdd/.vscode/extensions.json b/cpp/0_Introduction/vectorAdd/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/vectorAdd/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/vectorAdd/CMakeLists.txt b/cpp/0_Introduction/vectorAdd/CMakeLists.txt index b3f03225..a0a4925d 100644 --- a/cpp/0_Introduction/vectorAdd/CMakeLists.txt +++ b/cpp/0_Introduction/vectorAdd/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(vectorAdd LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for vectorAdd add_executable(vectorAdd vectorAdd.cu) target_compile_options(vectorAdd PRIVATE $<$:--extended-lambda>) target_compile_features(vectorAdd PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(vectorAdd PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/vectorAdd/README.md b/cpp/0_Introduction/vectorAdd/README.md index 625adb34..23c2e040 100644 --- a/cpp/0_Introduction/vectorAdd/README.md +++ b/cpp/0_Introduction/vectorAdd/README.md @@ -1,32 +1,82 @@ -# vectorAdd - Vector Addition +# Sample: Vector Addition (Unified Memory) ## Description -This CUDA Runtime API sample is a very basic sample that implements element by element vector addition. It is the same as the sample illustrating Chapter 3 of the programming guide with some additions like error checking. +A first-look CUDA sample: add two float vectors element-wise on the GPU. This version uses **Unified Memory** (`cudaMallocManaged`) so the same pointer is accessible from both host and device, eliminating the need for explicit `cudaMemcpy` calls. The GPU result is verified against a CPU reference computed on the same buffers. + +The sample mirrors the corresponding Unified Memory example in the CUDA Programming Guide and uses the `//unified-memory-begin` / `//unified-memory-end` markers so the guide can extract the snippet directly. + +## What You'll Learn + +- Allocating memory accessible to both host and device with `cudaMallocManaged` +- Launching a 1D CUDA kernel that operates on a Unified Memory buffer with no explicit transfers +- Computing grid dimensions with `cuda::ceil_div` (from ``) +- Synchronizing host execution with device work via `cudaDeviceSynchronize` +- Validating GPU output against a serial CPU reference ## Key Concepts -CUDA Runtime API, Vector Addition +- **Unified Memory** — one pointer for both CPU and GPU; the CUDA runtime migrates pages on demand +- **1D thread indexing** — `threadIdx.x + blockIdx.x * blockDim.x` +- **Bounds checking** in the kernel so the vector length need not be a multiple of the block size -## Supported SM Architectures +## Key APIs -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) +### CUDA Runtime +- `cudaMallocManaged` — allocate Unified Memory accessible to both host and device +- `cudaDeviceSynchronize` — block the host until all submitted device work completes +- `cudaFree` — release a Unified Memory allocation -## Supported OSes +### libcudacxx +- `cuda::ceil_div` — `ceil(a / b)` used to compute the number of blocks; from `` -Linux, Windows +## Requirements -## Supported CPU Architecture +### Hardware +- NVIDIA GPU with Compute Capability 7.5 or higher -x86_64, armv7l +### Software +- CMake 3.20 or newer +- A C++17-capable host compiler -## CUDA APIs involved +## How to Build -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaGetErrorString, cudaFree, cudaGetLastError, cudaMalloc +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. -## Prerequisites +## How to Run -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. +### Basic usage (default vector length = 1024) +```bash +./vectorAdd +``` + +### Custom vector length +```bash +./vectorAdd 1000000 +``` + +## Expected Output + +On success: + +```text +Unified Memory: CPU and GPU answers match +``` + +On failure, the first mismatching index and the two diverging values are printed, followed by an error line: + +```text +Index 0 mismatch: 0.123456 != 0.123400 +Unified Memory: Error - CPU and GPU answers do not match +``` + +## Files + +- `vectorAdd.cu` — Unified Memory vector addition implementation (kernel + host driver) +- `README.md` — this file +- `CMakeLists.txt` — build configuration + +## See Also + +- [CUDA C++ Programming Guide — vectorAdd example with Unified Memory](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/intro-to-cuda-cpp.html) -## References (for more details) diff --git a/cpp/0_Introduction/vectorAdd/vectorAdd.cu b/cpp/0_Introduction/vectorAdd/vectorAdd.cu index 38b043ef..b5392c33 100644 --- a/cpp/0_Introduction/vectorAdd/vectorAdd.cu +++ b/cpp/0_Introduction/vectorAdd/vectorAdd.cu @@ -1,4 +1,4 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. +/* Copyright (c) 2026, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -33,164 +33,112 @@ * of the programming guide with some additions like error checking. */ +#include +#include +#include +#include #include - -// For the CUDA runtime routines (prefixed with "cuda_") -#include -#include +#include /** * CUDA Kernel Device code * * Computes the vector addition of A and B into C. The 3 vectors have the same - * number of elements numElements. + * number of elements. This exmple shows Vector addition using Unified memory. */ -__global__ void vectorAdd(const float *A, const float *B, float *C, int numElements) -{ - int i = blockDim.x * blockIdx.x + threadIdx.x; - if (i < numElements) { - C[i] = A[i] + B[i] + 0.0f; + +__global__ void vecAdd(float* A, float* B, float* C, int vectorLength) +{ + int workIndex = threadIdx.x + blockIdx.x*blockDim.x; + if(workIndex < vectorLength) + { + C[workIndex] = A[workIndex] + B[workIndex]; } } -/** - * Host main routine - */ -int main(void) +void initArray(float* A, int length) { - // Error code to check return values for CUDA calls - cudaError_t err = cudaSuccess; - - // Print the vector length to be used, and compute its size - int numElements = 50000; - size_t size = numElements * sizeof(float); - printf("[Vector addition of %d elements]\n", numElements); - - // Allocate the host input vector A - float *h_A = (float *)malloc(size); - - // Allocate the host input vector B - float *h_B = (float *)malloc(size); - - // Allocate the host output vector C - float *h_C = (float *)malloc(size); - - // Verify that allocations succeeded - if (h_A == NULL || h_B == NULL || h_C == NULL) { - fprintf(stderr, "Failed to allocate host vectors!\n"); - exit(EXIT_FAILURE); + std::srand(std::time({})); + for(int i=0; i>>(d_A, d_B, d_C, numElements); - err = cudaGetLastError(); - - if (err != cudaSuccess) { - fprintf(stderr, "Failed to launch vectorAdd kernel (error code %s)!\n", cudaGetErrorString(err)); - exit(EXIT_FAILURE); - } - - // Copy the device result vector in device memory to the host result vector - // in host memory. - printf("Copy output data from the CUDA device to the host memory\n"); - err = cudaMemcpy(h_C, d_C, size, cudaMemcpyDeviceToHost); - - if (err != cudaSuccess) { - fprintf(stderr, "Failed to copy vector C from device to host (error code %s)!\n", cudaGetErrorString(err)); - exit(EXIT_FAILURE); - } - - // Verify that the result vector is correct - for (int i = 0; i < numElements; ++i) { - if (fabs(h_A[i] + h_B[i] - h_C[i]) > 1e-5) { - fprintf(stderr, "Result verification failed at element %d!\n", i); - exit(EXIT_FAILURE); +bool vectorApproximatelyEqual(float* A, float* B, int length, float epsilon=0.00001) +{ + for(int i=0; i epsilon) + { + printf("Index %d mismatch: %f != %f", i, A[i], B[i]); + return false; } } + return true; +} - printf("Test PASSED\n"); - - // Free device global memory - err = cudaFree(d_A); - - if (err != cudaSuccess) { - fprintf(stderr, "Failed to free device vector A (error code %s)!\n", cudaGetErrorString(err)); - exit(EXIT_FAILURE); +int main(int argc, char** argv) +{ + int vectorLength = 1024; + if(argc >=2) + { + vectorLength = std::atoi(argv[1]); } - err = cudaFree(d_B); + //unified-memory-example-begin - if (err != cudaSuccess) { - fprintf(stderr, "Failed to free device vector B (error code %s)!\n", cudaGetErrorString(err)); - exit(EXIT_FAILURE); + // Pointers to memory vectors + float* A = nullptr; + float* B = nullptr; + float* C = nullptr; + float* comparisonResult = (float*)malloc(vectorLength*sizeof(float)); + + // Use unified memory to allocate buffers + cudaMallocManaged(&A, vectorLength*sizeof(float)); + cudaMallocManaged(&B, vectorLength*sizeof(float)); + cudaMallocManaged(&C, vectorLength*sizeof(float)); + + // Initialize vectors on the host + initArray(A, vectorLength); + initArray(B, vectorLength); + + // Launch the kernel. Unified memory will make sure A, B, and C are + // accessible to the GPU + int threads = 256; + int blocks = cuda::ceil_div(vectorLength, threads); + vecAdd<<>>(A, B, C, vectorLength); + // Wait for the kernel to complete execution + cudaDeviceSynchronize(); + + // Perform computation serially on CPU for comparison + serialVecAdd(A, B, comparisonResult, vectorLength); + + // Confirm that CPU and GPU got the same answer + if(vectorApproximatelyEqual(C, comparisonResult, vectorLength)) + { + printf("Unified Memory: CPU and GPU answers match\n"); + } + else + { + printf("Unified Memory: Error - CPU and GPU answers do not match\n"); } - err = cudaFree(d_C); + // Clean Up + cudaFree(A); + cudaFree(B); + cudaFree(C); + free(comparisonResult); - if (err != cudaSuccess) { - fprintf(stderr, "Failed to free device vector C (error code %s)!\n", cudaGetErrorString(err)); - exit(EXIT_FAILURE); - } + //unified-memory-example-end - // Free host memory - free(h_A); - free(h_B); - free(h_C); - - printf("Done\n"); return 0; } diff --git a/cpp/0_Introduction/vectorAddDrv/.vscode/c_cpp_properties.json b/cpp/0_Introduction/vectorAddDrv/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/vectorAddDrv/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/vectorAddDrv/.vscode/extensions.json b/cpp/0_Introduction/vectorAddDrv/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/vectorAddDrv/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/vectorAddDrv/CMakeLists.txt b/cpp/0_Introduction/vectorAddDrv/CMakeLists.txt index a08c02c9..8c9bac4c 100644 --- a/cpp/0_Introduction/vectorAddDrv/CMakeLists.txt +++ b/cpp/0_Introduction/vectorAddDrv/CMakeLists.txt @@ -1,33 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(vectorAddDrv LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for vectorAddDrv add_executable(vectorAddDrv vectorAddDrv.cpp) target_compile_options(vectorAddDrv PRIVATE $<$:--extended-lambda>) target_compile_features(vectorAddDrv PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(vectorAddDrv PROPERTIES CUDA_SEPARABLE_COMPILATION ON) target_include_directories(vectorAddDrv PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -55,7 +48,7 @@ endif() add_custom_command( OUTPUT ${CUDA_FATBIN_FILE} - COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} ${ALL_CCFLAGS} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} + COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} DEPENDS ${CUDA_KERNEL_SOURCE} COMMENT "Building CUDA fatbin: ${CUDA_FATBIN_FILE}" ) @@ -66,6 +59,5 @@ add_custom_target(generate_fatbin_vectorAdd ALL DEPENDS ${CUDA_FATBIN_FILE}) # Ensure matrixMulDrv depends on the fatbin add_dependencies(vectorAddDrv generate_fatbin_vectorAdd) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/vectorAddMMAP/.vscode/c_cpp_properties.json b/cpp/0_Introduction/vectorAddMMAP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/vectorAddMMAP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/vectorAddMMAP/.vscode/extensions.json b/cpp/0_Introduction/vectorAddMMAP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/vectorAddMMAP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/vectorAddMMAP/CMakeLists.txt b/cpp/0_Introduction/vectorAddMMAP/CMakeLists.txt index 8989d1c3..851bcd84 100644 --- a/cpp/0_Introduction/vectorAddMMAP/CMakeLists.txt +++ b/cpp/0_Introduction/vectorAddMMAP/CMakeLists.txt @@ -1,26 +1,20 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(vectorAddMMAP LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for vectorAddMMAP if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") message(STATUS "Will not build sample vectorAddMMAP - not supported on aarch64") else() @@ -30,7 +24,6 @@ else() target_compile_features(vectorAddMMAP PRIVATE cxx_std_17 cuda_std_17) - set_target_properties(vectorAddMMAP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) target_include_directories(vectorAddMMAP PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -50,7 +43,7 @@ else() add_custom_command( OUTPUT ${CUDA_FATBIN_FILE} - COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} ${ALL_CCFLAGS} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} + COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} DEPENDS ${CUDA_KERNEL_SOURCE} COMMENT "Building CUDA fatbin: ${CUDA_FATBIN_FILE}" ) @@ -62,6 +55,5 @@ else() add_dependencies(vectorAddMMAP generate_fatbin_vectorAddMMAP) endif() -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/vectorAdd_nvrtc/.vscode/c_cpp_properties.json b/cpp/0_Introduction/vectorAdd_nvrtc/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/0_Introduction/vectorAdd_nvrtc/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/0_Introduction/vectorAdd_nvrtc/.vscode/extensions.json b/cpp/0_Introduction/vectorAdd_nvrtc/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/0_Introduction/vectorAdd_nvrtc/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/0_Introduction/vectorAdd_nvrtc/CMakeLists.txt b/cpp/0_Introduction/vectorAdd_nvrtc/CMakeLists.txt index 75350c96..a2e3bbf5 100644 --- a/cpp/0_Introduction/vectorAdd_nvrtc/CMakeLists.txt +++ b/cpp/0_Introduction/vectorAdd_nvrtc/CMakeLists.txt @@ -1,25 +1,20 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(vectorAdd_nvrtc LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file # Add sample target executable add_executable(vectorAdd_nvrtc vectorAdd.cpp) @@ -38,6 +33,5 @@ add_custom_command(TARGET vectorAdd_nvrtc POST_BUILD ${CMAKE_CURRENT_SOURCE_DIR}/vectorAdd_kernel.cu ${CMAKE_CURRENT_BINARY_DIR} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/1_Utilities/deviceQuery/.vscode/c_cpp_properties.json b/cpp/1_Utilities/deviceQuery/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/1_Utilities/deviceQuery/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/1_Utilities/deviceQuery/.vscode/extensions.json b/cpp/1_Utilities/deviceQuery/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/1_Utilities/deviceQuery/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/1_Utilities/deviceQuery/CMakeLists.txt b/cpp/1_Utilities/deviceQuery/CMakeLists.txt index 110d95cd..36979d80 100644 --- a/cpp/1_Utilities/deviceQuery/CMakeLists.txt +++ b/cpp/1_Utilities/deviceQuery/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(deviceQuery LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for deviceQuery add_executable(deviceQuery deviceQuery.cpp) target_compile_options(deviceQuery PRIVATE $<$:--extended-lambda>) target_compile_features(deviceQuery PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(deviceQuery PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(deviceQuery PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -37,6 +29,5 @@ target_link_libraries(deviceQuery PUBLIC CUDA::cudart ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/1_Utilities/deviceQueryDrv/.vscode/c_cpp_properties.json b/cpp/1_Utilities/deviceQueryDrv/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/1_Utilities/deviceQueryDrv/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/1_Utilities/deviceQueryDrv/.vscode/extensions.json b/cpp/1_Utilities/deviceQueryDrv/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/1_Utilities/deviceQueryDrv/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/1_Utilities/deviceQueryDrv/CMakeLists.txt b/cpp/1_Utilities/deviceQueryDrv/CMakeLists.txt index ecb57221..9b9c8f9f 100644 --- a/cpp/1_Utilities/deviceQueryDrv/CMakeLists.txt +++ b/cpp/1_Utilities/deviceQueryDrv/CMakeLists.txt @@ -1,33 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(deviceQueryDrv LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for deviceQueryDrv add_executable(deviceQueryDrv deviceQueryDrv.cpp) target_compile_options(deviceQueryDrv PRIVATE $<$:--extended-lambda>) target_compile_features(deviceQueryDrv PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(deviceQueryDrv PROPERTIES CUDA_SEPARABLE_COMPILATION ON) target_include_directories(deviceQueryDrv PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -36,6 +29,5 @@ target_link_libraries(deviceQueryDrv PUBLIC CUDA::cuda_driver ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/1_Utilities/topologyQuery/.vscode/c_cpp_properties.json b/cpp/1_Utilities/topologyQuery/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/1_Utilities/topologyQuery/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/1_Utilities/topologyQuery/.vscode/extensions.json b/cpp/1_Utilities/topologyQuery/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/1_Utilities/topologyQuery/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/1_Utilities/topologyQuery/CMakeLists.txt b/cpp/1_Utilities/topologyQuery/CMakeLists.txt index 7d83b778..d7c59e81 100644 --- a/cpp/1_Utilities/topologyQuery/CMakeLists.txt +++ b/cpp/1_Utilities/topologyQuery/CMakeLists.txt @@ -1,38 +1,30 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(topologyQuery LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") message(STATUS "Will not build sample topologyQuery - not supported on aarch64") else() - # Source file - # Add target for topologyQuery add_executable(topologyQuery topologyQuery.cu) target_compile_options(topologyQuery PRIVATE $<$:--extended-lambda>) target_compile_features(topologyQuery PRIVATE cxx_std_17 cuda_std_17) - set_target_properties(topologyQuery PROPERTIES CUDA_SEPARABLE_COMPILATION ON) endif() -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/CMakeLists.txt index 63cceff7..5e8c5b96 100644 --- a/cpp/2_Concepts_and_Techniques/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/CMakeLists.txt @@ -14,7 +14,6 @@ add_subdirectory(eigenvalues) add_subdirectory(histogram) add_subdirectory(imageDenoising) add_subdirectory(inlinePTX) -add_subdirectory(inlinePTX_nvrtc) add_subdirectory(interval) add_subdirectory(particles) add_subdirectory(radixSortThrust) diff --git a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/CMakeLists.txt index 4db89334..e41969a2 100644 --- a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/CMakeLists.txt @@ -1,54 +1,40 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(EGLStream_CUDA_CrossGPU LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) find_package(EGL) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - # Source file if(${EGL_FOUND}) - # Add target for EGLStream_CUDA_CrossGPU - add_executable(EGLStream_CUDA_CrossGPU cuda_consumer.cpp cuda_producer.cpp eglstrm_common.cpp kernel.cu main.cpp) - - target_compile_options(EGLStream_CUDA_CrossGPU PRIVATE $<$:--extended-lambda>) - - target_compile_features(EGLStream_CUDA_CrossGPU PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(EGLStream_CUDA_CrossGPU PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - - target_include_directories(EGLStream_CUDA_CrossGPU PUBLIC - ${EGL_INCLUDE_DIR} - ${CUDAToolkit_INCLUDE_DIRS} - ) - - target_link_libraries(EGLStream_CUDA_CrossGPU - ${EGL_LIBRARY} - CUDA::cuda_driver - ) + add_executable(EGLStream_CUDA_CrossGPU cuda_consumer.cpp cuda_producer.cpp eglstrm_common.cpp kernel.cu main.cpp) + target_compile_options(EGLStream_CUDA_CrossGPU PRIVATE $<$:--extended-lambda>) + target_compile_features(EGLStream_CUDA_CrossGPU PRIVATE cxx_std_17 cuda_std_17) + target_include_directories(EGLStream_CUDA_CrossGPU PUBLIC + ${EGL_INCLUDE_DIR} + ${CUDAToolkit_INCLUDE_DIRS} + ) + target_link_libraries(EGLStream_CUDA_CrossGPU + ${EGL_LIBRARY} + CUDA::cuda_driver + ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "EGL not found - will not build sample 'EGLStream_CUDA_CrossGPU'") endif() else() message(STATUS "Will not build sample EGLStream_CUDA_CrossGPU - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/eglstrm_common.cpp b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/eglstrm_common.cpp index 329d41cb..0a3d7a76 100644 --- a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/eglstrm_common.cpp +++ b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/eglstrm_common.cpp @@ -114,7 +114,7 @@ int EGLStreamInit(bool isCrossDevice, int isConsumer, EGLNativeFileDescriptorKHR if (egl_device_id >= numDevices) { printf("No CUDA Capable EGL Device found.. Waiving execution\n"); - goto Done; + exit(2); } g_consumerEglDisplay = eglGetPlatformDisplayEXT(EGL_PLATFORM_DEVICE_EXT, (void *)devices[egl_device_id], NULL); @@ -126,6 +126,16 @@ int EGLStreamInit(bool isCrossDevice, int isConsumer, EGLNativeFileDescriptorKHR eglStatus = eglInitialize(g_consumerEglDisplay, 0, 0); if (!eglStatus) { + // A GPU built without graphics support is CUDA capable and is offered + // as an EGL device, but has no DRM device for EGL to reach it through. + // Any other reason is a real failure. + if (eglQueryDeviceStringEXT(devices[egl_device_id], EGL_DRM_DEVICE_FILE_EXT) == NULL + && eglQueryDeviceStringEXT(devices[egl_device_id], EGL_DRM_RENDER_NODE_FILE_EXT) == NULL) { + printf("This GPU has no graphics support, EGL is unavailable.. Waiving execution\n"); + // 2 reports an unmet hardware requirement, which run_tests.py does + // not count as a failure. + exit(2); + } printf("EGL failed to initialize. \n"); eglStatus = EGL_FALSE; goto Done; @@ -191,7 +201,7 @@ int EGLStreamInit(bool isCrossDevice, int isConsumer, EGLNativeFileDescriptorKHR if (egl_device_id >= numDevices) { printf("No CUDA Capable EGL Device found.. Waiving execution\n"); - goto Done; + exit(2); } g_producerEglDisplay = eglGetPlatformDisplayEXT(EGL_PLATFORM_DEVICE_EXT, (void *)devices[egl_device_id], NULL); @@ -203,6 +213,16 @@ int EGLStreamInit(bool isCrossDevice, int isConsumer, EGLNativeFileDescriptorKHR eglStatus = eglInitialize(g_producerEglDisplay, 0, 0); if (!eglStatus) { + // A GPU built without graphics support is CUDA capable and is offered + // as an EGL device, but has no DRM device for EGL to reach it through. + // Any other reason is a real failure. + if (eglQueryDeviceStringEXT(devices[egl_device_id], EGL_DRM_DEVICE_FILE_EXT) == NULL + && eglQueryDeviceStringEXT(devices[egl_device_id], EGL_DRM_RENDER_NODE_FILE_EXT) == NULL) { + printf("This GPU has no graphics support, EGL is unavailable.. Waiving execution\n"); + // 2 reports an unmet hardware requirement, which run_tests.py does + // not count as a failure. + exit(2); + } printf("EGL failed to initialize. \n"); eglStatus = EGL_FALSE; goto Done; diff --git a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/eglstrm_common.h b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/eglstrm_common.h index 46442d1b..46c8c28b 100644 --- a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/eglstrm_common.h +++ b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_CrossGPU/eglstrm_common.h @@ -71,6 +71,7 @@ extern bool verbose; T(PFNEGLGETPLATFORMDISPLAYEXTPROC, eglGetPlatformDisplayEXT) \ T(PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC, eglGetStreamFileDescriptorKHR) \ T(PFNEGLQUERYDEVICEATTRIBEXTPROC, eglQueryDeviceAttribEXT) \ + T(PFNEGLQUERYDEVICESTRINGEXTPROC, eglQueryDeviceStringEXT) \ T(PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC, eglCreateStreamFromFileDescriptorKHR) #define EXTLST_DECL(tx, x) tx x = NULL; diff --git a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/CMakeLists.txt index b02abc04..7657d949 100644 --- a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/CMakeLists.txt @@ -1,55 +1,40 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(EGLStream_CUDA_Interop LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) find_package(EGL) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - # Source file if(${EGL_FOUND}) - # Add target for EGLStream_CUDA_Interop add_executable(EGLStream_CUDA_Interop cuda_consumer.cpp cuda_producer.cpp eglstrm_common.cpp main.cpp) - target_compile_options(EGLStream_CUDA_Interop PRIVATE $<$:--extended-lambda>) - target_compile_features(EGLStream_CUDA_Interop PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(EGLStream_CUDA_Interop PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(EGLStream_CUDA_Interop PUBLIC ${EGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ) - target_link_libraries(EGLStream_CUDA_Interop ${EGL_LIBRARY} CUDA::cuda_driver ) - + include(InstallSamples) + setup_samples_install() else() message(STATUS "EGL not found - will not build sample 'EGLStream_CUDA_Interop'") endif() else() message(STATUS "Will not build sample EGLStream_CUDA_Interop - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/eglstrm_common.cpp b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/eglstrm_common.cpp index ac96dfa0..c7b371b3 100644 --- a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/eglstrm_common.cpp +++ b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/eglstrm_common.cpp @@ -102,6 +102,14 @@ int EGLStreamInit(int *cuda_device) eglStatus = eglInitialize(g_display, 0, 0); if (!eglStatus) { + // A GPU built without graphics support is CUDA capable and is offered as an + // EGL device, but has no DRM device for EGL to reach it through. Any other + // reason for EGL not to initialize is a real failure. + if (eglQueryDeviceStringEXT(devices[egl_device_id], EGL_DRM_DEVICE_FILE_EXT) == NULL + && eglQueryDeviceStringEXT(devices[egl_device_id], EGL_DRM_RENDER_NODE_FILE_EXT) == NULL) { + printf("This GPU has no graphics support, EGL is unavailable.. Waiving execution\n"); + exit(EXIT_WAIVED); + } printf("EGL failed to initialize. \n"); eglStatus = EGL_FALSE; exit(EXIT_FAILURE); diff --git a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/eglstrm_common.h b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/eglstrm_common.h index a86a7b63..1414c72b 100644 --- a/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/eglstrm_common.h +++ b/cpp/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/eglstrm_common.h @@ -59,6 +59,7 @@ T(PFNEGLQUERYDEVICESEXTPROC, eglQueryDevicesEXT) \ T(PFNEGLGETPLATFORMDISPLAYEXTPROC, eglGetPlatformDisplayEXT) \ T(PFNEGLQUERYDEVICEATTRIBEXTPROC, eglQueryDeviceAttribEXT) \ + T(PFNEGLQUERYDEVICESTRINGEXTPROC, eglQueryDeviceStringEXT) \ T(PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC, eglCreateStreamFromFileDescriptorKHR) #define eglCreateStreamKHR my_eglCreateStreamKHR @@ -75,6 +76,7 @@ #define eglQueryDevicesEXT my_eglQueryDevicesEXT #define eglGetPlatformDisplayEXT my_eglGetPlatformDisplayEXT #define eglQueryDeviceAttribEXT my_eglQueryDeviceAttribEXT +#define eglQueryDeviceStringEXT my_eglQueryDeviceStringEXT #define EXTLST_DECL(tx, x) tx my_##x = NULL; #define EXTLST_EXTERN(tx, x) extern tx my_##x; diff --git a/cpp/2_Concepts_and_Techniques/FunctionPointers/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/FunctionPointers/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/FunctionPointers/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/FunctionPointers/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/FunctionPointers/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/FunctionPointers/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/FunctionPointers/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/FunctionPointers/CMakeLists.txt index be26e2dc..679d0083 100644 --- a/cpp/2_Concepts_and_Techniques/FunctionPointers/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/FunctionPointers/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(FunctionPointers LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,49 +29,37 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for FunctionPointers add_executable(FunctionPointers FunctionPointers.cpp FunctionPointers_kernels.cu) - target_compile_options(FunctionPointers PRIVATE $<$:--extended-lambda>) - target_compile_features(FunctionPointers PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(FunctionPointers PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(FunctionPointers PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(FunctionPointers ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - # Copy data files to output directory add_custom_command(TARGET FunctionPointers POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(FunctionPointers ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET FunctionPointers POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET FunctionPointers POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -83,14 +67,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'FunctionPointers'") endif() else() message(STATUS "OpenGL not found - will not build sample 'FunctionPointers'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineP/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineP/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineP/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineP/CMakeLists.txt index 191b97ba..4a8cdbf0 100644 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineP/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineP/CMakeLists.txt @@ -1,39 +1,30 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(MC_EstimatePiInlineP LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for MC_EstimatePiInlineP add_executable(MC_EstimatePiInlineP src/main.cpp src/piestimator.cu src/test.cpp) target_compile_options(MC_EstimatePiInlineP PRIVATE $<$:--extended-lambda>) target_compile_features(MC_EstimatePiInlineP PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(MC_EstimatePiInlineP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(MC_EstimatePiInlineP PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineQ/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineQ/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineQ/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineQ/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineQ/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineQ/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineQ/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineQ/CMakeLists.txt index da2e1cac..20166fa2 100644 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineQ/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/MC_EstimatePiInlineQ/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(MC_EstimatePiInlineQ LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for MC_EstimatePiInlineQ add_executable(MC_EstimatePiInlineQ src/main.cpp src/piestimator.cu src/test.cpp) target_compile_options(MC_EstimatePiInlineQ PRIVATE $<$:--extended-lambda>) target_compile_features(MC_EstimatePiInlineQ PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(MC_EstimatePiInlineQ PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(MC_EstimatePiInlineQ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc ${CUDAToolkit_INCLUDE_DIRS} @@ -38,6 +30,5 @@ target_link_libraries(MC_EstimatePiInlineQ PUBLIC CUDA::curand ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiP/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/MC_EstimatePiP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiP/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/MC_EstimatePiP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiP/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/MC_EstimatePiP/CMakeLists.txt index 66ff5979..c87dcbce 100644 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiP/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/MC_EstimatePiP/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(MC_EstimatePiP LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for MC_EstimatePiP add_executable(MC_EstimatePiP src/main.cpp src/piestimator.cu src/test.cpp) target_compile_options(MC_EstimatePiP PRIVATE $<$:--extended-lambda>) target_compile_features(MC_EstimatePiP PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(MC_EstimatePiP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(MC_EstimatePiP PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc ${CUDAToolkit_INCLUDE_DIRS} @@ -38,6 +30,5 @@ target_link_libraries(MC_EstimatePiP PUBLIC CUDA::curand ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiQ/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/MC_EstimatePiQ/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiQ/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiQ/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/MC_EstimatePiQ/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiQ/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/MC_EstimatePiQ/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/MC_EstimatePiQ/CMakeLists.txt index bc06b8db..1175c952 100644 --- a/cpp/2_Concepts_and_Techniques/MC_EstimatePiQ/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/MC_EstimatePiQ/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(MC_EstimatePiQ LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for MC_EstimatePiQ add_executable(MC_EstimatePiQ src/main.cpp src/piestimator.cu src/test.cpp) target_compile_options(MC_EstimatePiQ PRIVATE $<$:--extended-lambda>) target_compile_features(MC_EstimatePiQ PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(MC_EstimatePiQ PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(MC_EstimatePiQ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc ${CUDAToolkit_INCLUDE_DIRS} @@ -38,6 +30,5 @@ target_link_libraries(MC_EstimatePiQ PUBLIC CUDA::curand ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/MC_SingleAsianOptionP/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/MC_SingleAsianOptionP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/MC_SingleAsianOptionP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/MC_SingleAsianOptionP/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/MC_SingleAsianOptionP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/MC_SingleAsianOptionP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/MC_SingleAsianOptionP/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/MC_SingleAsianOptionP/CMakeLists.txt index e1d497a3..bd2946a2 100644 --- a/cpp/2_Concepts_and_Techniques/MC_SingleAsianOptionP/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/MC_SingleAsianOptionP/CMakeLists.txt @@ -1,39 +1,30 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(MC_SingleAsianOptionP LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for MC_SingleAsianOptionP add_executable(MC_SingleAsianOptionP src/main.cpp src/pricingengine.cu src/test.cpp) target_compile_options(MC_SingleAsianOptionP PRIVATE $<$:--extended-lambda>) target_compile_features(MC_SingleAsianOptionP PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(MC_SingleAsianOptionP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(MC_SingleAsianOptionP PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/README.md b/cpp/2_Concepts_and_Techniques/README.md index 6d3596ca..cc9b34e9 100644 --- a/cpp/2_Concepts_and_Techniques/README.md +++ b/cpp/2_Concepts_and_Techniques/README.md @@ -34,9 +34,6 @@ This sample demonstrates two adaptive image denoising techniques: KNN and NLM, b ### [inlinePTX](./inlinePTX) A simple test application that demonstrates a new CUDA 4.0 ability to embed PTX in a CUDA kernel. -### [inlinePTX_nvrtc](./inlinePTX_nvrtc) -A simple test application that demonstrates a new CUDA 4.0 ability to embed PTX in a CUDA kernel. - ### [interval](./interval) Interval arithmetic operators example. Uses various C++ features (templates and recursion). The recursive mode requires Compute SM 2.0 capabilities. diff --git a/cpp/2_Concepts_and_Techniques/boxFilter/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/boxFilter/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/boxFilter/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/boxFilter/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/boxFilter/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/boxFilter/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/boxFilter/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/boxFilter/CMakeLists.txt index 8273fa7f..2fcd2735 100644 --- a/cpp/2_Concepts_and_Techniques/boxFilter/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/boxFilter/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(boxFilter LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,49 +29,37 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for boxFilter add_executable(boxFilter boxFilter.cpp boxFilter_cpu.cpp boxFilter_kernel.cu) - target_compile_options(boxFilter PRIVATE $<$:--extended-lambda>) - target_compile_features(boxFilter PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(boxFilter PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(boxFilter PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(boxFilter ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - # Copy data files to output directory add_custom_command(TARGET boxFilter POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(boxFilter ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET boxFilter POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET boxFilter POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -83,14 +67,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'boxFilter'") endif() else() message(STATUS "OpenGL not found - will not build sample 'boxFilter'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/convolutionSeparable/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/convolutionSeparable/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/convolutionSeparable/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/convolutionSeparable/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/convolutionSeparable/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/convolutionSeparable/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/convolutionSeparable/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/convolutionSeparable/CMakeLists.txt index 5fe32b58..a99cbc50 100644 --- a/cpp/2_Concepts_and_Techniques/convolutionSeparable/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/convolutionSeparable/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(convolutionSeparable LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for convolutionSeparable add_executable(convolutionSeparable convolutionSeparable.cu convolutionSeparable_gold.cpp main.cpp) target_compile_options(convolutionSeparable PRIVATE $<$:--extended-lambda>) target_compile_features(convolutionSeparable PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(convolutionSeparable PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(convolutionSeparable PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/convolutionTexture/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/convolutionTexture/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/convolutionTexture/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/convolutionTexture/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/convolutionTexture/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/convolutionTexture/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/convolutionTexture/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/convolutionTexture/CMakeLists.txt index a9589288..1f9e1426 100644 --- a/cpp/2_Concepts_and_Techniques/convolutionTexture/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/convolutionTexture/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(convolutionTexture LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for convolutionTexture add_executable(convolutionTexture convolutionTexture.cu convolutionTexture_gold.cpp main.cpp) target_compile_options(convolutionTexture PRIVATE $<$:--extended-lambda>) target_compile_features(convolutionTexture PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(convolutionTexture PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(convolutionTexture PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/dct8x8/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/dct8x8/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/dct8x8/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/dct8x8/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/dct8x8/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/dct8x8/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/dct8x8/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/dct8x8/CMakeLists.txt index 4bd93758..2c3fb954 100644 --- a/cpp/2_Concepts_and_Techniques/dct8x8/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/dct8x8/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(dct8x8 LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for dct8x8 add_executable(dct8x8 dct8x8.cu BmpUtil.cpp DCT8x8_Gold.cpp) target_compile_options(dct8x8 PRIVATE $<$:--extended-lambda>) target_compile_features(dct8x8 PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(dct8x8 PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(dct8x8 PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) @@ -54,6 +46,5 @@ add_custom_command(TARGET dct8x8 POST_BUILD ${CMAKE_CURRENT_BINARY_DIR}/ ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/eigenvalues/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/eigenvalues/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/eigenvalues/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/eigenvalues/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/eigenvalues/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/eigenvalues/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/eigenvalues/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/eigenvalues/CMakeLists.txt index af6f0355..9994e7c0 100644 --- a/cpp/2_Concepts_and_Techniques/eigenvalues/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/eigenvalues/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(eigenvalues LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for eigenvalues add_executable(eigenvalues bisect_large.cu bisect_small.cu bisect_util.cu gerschgorin.cpp main.cu matlab.cpp) target_compile_options(eigenvalues PRIVATE $<$:--extended-lambda>) target_compile_features(eigenvalues PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(eigenvalues PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - # Copy data files to output directory add_custom_command(TARGET eigenvalues POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different @@ -50,6 +42,5 @@ add_custom_command(TARGET eigenvalues POST_BUILD ${CMAKE_CURRENT_BINARY_DIR}/ ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/histogram/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/histogram/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/histogram/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/histogram/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/histogram/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/histogram/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/histogram/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/histogram/CMakeLists.txt index e646362a..20c40135 100644 --- a/cpp/2_Concepts_and_Techniques/histogram/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/histogram/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(histogram LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for histogram add_executable(histogram histogram256.cu histogram64.cu histogram_gold.cpp main.cpp) target_compile_options(histogram PRIVATE $<$:--extended-lambda>) target_compile_features(histogram PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(histogram PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(histogram PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/imageDenoising/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/imageDenoising/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/imageDenoising/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/imageDenoising/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/imageDenoising/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/imageDenoising/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/imageDenoising/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/imageDenoising/CMakeLists.txt index aeab370b..7457c377 100644 --- a/cpp/2_Concepts_and_Techniques/imageDenoising/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/imageDenoising/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(imageDenoising LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -30,53 +26,40 @@ if(WIN32) endif() endif() - find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for imageDenoising add_executable(imageDenoising bmploader.cpp imageDenoising.cu imageDenoisingGL.cpp) - target_compile_options(imageDenoising PRIVATE $<$:--extended-lambda>) - target_compile_features(imageDenoising PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(imageDenoising PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(imageDenoising PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(imageDenoising ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - # Copy data files to the output directory add_custom_command(TARGET imageDenoising POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(imageDenoising ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET imageDenoising POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET imageDenoising POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -84,14 +67,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'imageDenoising'") endif() else() message(STATUS "OpenGL not found - will not build sample 'imageDenoising'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/inlinePTX/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/inlinePTX/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/inlinePTX/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/inlinePTX/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/inlinePTX/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/inlinePTX/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/inlinePTX/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/inlinePTX/CMakeLists.txt index 5ae41446..278e3a62 100644 --- a/cpp/2_Concepts_and_Techniques/inlinePTX/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/inlinePTX/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(inlinePTX LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for inlinePTX add_executable(inlinePTX inlinePTX.cu) target_compile_options(inlinePTX PRIVATE $<$:--extended-lambda>) target_compile_features(inlinePTX PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(inlinePTX PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/CMakeLists.txt deleted file mode 100644 index 0a429aa1..00000000 --- a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(inlinePTX_nvrtc LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for inlinePTX_nvrtc -add_executable(inlinePTX_nvrtc inlinePTX.cpp) - -target_compile_options(inlinePTX_nvrtc PRIVATE $<$:--extended-lambda>) - -target_compile_features(inlinePTX_nvrtc PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(inlinePTX_nvrtc PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_link_libraries(inlinePTX_nvrtc PRIVATE - CUDA::nvrtc - CUDA::cuda_driver -) - -# Copy clock_kernel.cu to the output directory -add_custom_command(TARGET inlinePTX_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/inlinePTX_kernel.cu ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/README.md b/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/README.md deleted file mode 100644 index 593012ef..00000000 --- a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# inlinePTX_nvrtc - Using Inline PTX with libNVRTC - -## Description - -A simple test application that demonstrates a new CUDA 4.0 ability to embed PTX in a CUDA kernel. - -## Key Concepts - -Performance Strategies, PTX Assembly, CUDA Driver API, Runtime Compilation - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows, QNX - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuMemcpyDtoH, cuLaunchKernel, cuCtxSynchronize, cuMemAlloc, cuMemFree, cuModuleGetFunction - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaBlockSize, cudaGridSize - -## Dependencies needed to build/run -[NVRTC](../../../README.md#nvrtc) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/inlinePTX.cpp b/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/inlinePTX.cpp deleted file mode 100644 index 45ab7af8..00000000 --- a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/inlinePTX.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * Demonstration of inline PTX (assembly language) usage in CUDA kernels - */ - -// System includes -#include -#include - -// CUDA runtime -#include -#include - -// helper functions and utilities to work with CUDA -#include - -void sequence_cpu(int *h_ptr, int length) -{ - for (int elemID = 0; elemID < length; elemID++) { - h_ptr[elemID] = elemID % 32; - } -} - -int main(int argc, char **argv) -{ - printf("CUDA inline PTX assembler sample\n"); - - char *cubin, *kernel_file; - size_t cubinSize; - - kernel_file = sdkFindFilePath("inlinePTX_kernel.cu", argv[0]); - compileFileToCUBIN(kernel_file, argc, argv, &cubin, &cubinSize, 0); - - CUmodule module = loadCUBIN(cubin, argc, argv); - - CUfunction kernel_addr; - - checkCudaErrors(cuModuleGetFunction(&kernel_addr, module, "sequence_gpu")); - - const int N = 1000; - int *h_ptr = (int *)malloc(N * sizeof(int)); - - dim3 cudaBlockSize(256, 1, 1); - dim3 cudaGridSize((N + cudaBlockSize.x - 1) / cudaBlockSize.x, 1, 1); - - CUdeviceptr d_ptr; - checkCudaErrors(cuMemAlloc(&d_ptr, N * sizeof(int))); - - void *arr[] = {(void *)&d_ptr, (void *)&N}; - checkCudaErrors(cuLaunchKernel(kernel_addr, - cudaGridSize.x, - cudaGridSize.y, - cudaGridSize.z, /* grid dim */ - cudaBlockSize.x, - cudaBlockSize.y, - cudaBlockSize.z, /* block dim */ - 0, - 0, /* shared mem, stream */ - &arr[0], /* arguments */ - 0)); - - checkCudaErrors(cuCtxSynchronize()); - - sequence_cpu(h_ptr, N); - - int *h_d_ptr = (int *)malloc(N * sizeof(int)); - checkCudaErrors(cuMemcpyDtoH(h_d_ptr, d_ptr, N * sizeof(int))); - - bool bValid = true; - - for (int i = 0; i < N && bValid; i++) { - if (h_ptr[i] != h_d_ptr[i]) { - bValid = false; - } - } - - printf("Test %s.\n", bValid ? "Successful" : "Failed"); - - checkCudaErrors(cuMemFree(d_ptr)); - - return bValid ? EXIT_SUCCESS : EXIT_FAILURE; -} diff --git a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/inlinePTX_kernel.cu b/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/inlinePTX_kernel.cu deleted file mode 100644 index bbb2a905..00000000 --- a/cpp/2_Concepts_and_Techniques/inlinePTX_nvrtc/inlinePTX_kernel.cu +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -extern "C" __global__ void sequence_gpu(int *d_ptr, int length) -{ - int elemID = blockIdx.x * blockDim.x + threadIdx.x; - - if (elemID < length) { - unsigned int laneid; - - // This command gets the lane ID within the current warp - asm("mov.u32 %0, %%laneid;" : "=r"(laneid)); - - d_ptr[elemID] = laneid; - } -} diff --git a/cpp/2_Concepts_and_Techniques/interval/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/interval/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/interval/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/interval/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/interval/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/interval/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/interval/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/interval/CMakeLists.txt index d0d7e097..f284a2b6 100644 --- a/cpp/2_Concepts_and_Techniques/interval/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/interval/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(interval LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for interval add_executable(interval interval.cu) target_compile_options(interval PRIVATE $<$:--extended-lambda>) target_compile_features(interval PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(interval PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(interval PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/particles/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/particles/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/particles/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/particles/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/particles/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/particles/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/particles/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/particles/CMakeLists.txt index f81cb309..8cb54b68 100644 --- a/cpp/2_Concepts_and_Techniques/particles/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/particles/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(particles LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,49 +29,37 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for particles add_executable(particles particleSystem.cpp particleSystem_cuda.cu particles.cpp render_particles.cpp shaders.cpp) - -target_compile_options(particles PRIVATE $<$:--extended-lambda>) - -target_compile_features(particles PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(particles PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - + target_compile_options(particles PRIVATE $<$:--extended-lambda>) + target_compile_features(particles PRIVATE cxx_std_17 cuda_std_17) target_include_directories(particles PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(particles ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - - # Copy clock_kernel.cu to the output directory + # Copy the data directory to the output directory add_custom_command(TARGET particles POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(particles ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET particles POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET particles POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -83,14 +67,11 @@ target_compile_features(particles PRIVATE cxx_std_17 cuda_std_17) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'particles'") endif() else() message(STATUS "OpenGL not found - will not build sample 'particles'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/particles/particleSystem.cpp b/cpp/2_Concepts_and_Techniques/particles/particleSystem.cpp index 6d88ab35..b8a6d529 100644 --- a/cpp/2_Concepts_and_Techniques/particles/particleSystem.cpp +++ b/cpp/2_Concepts_and_Techniques/particles/particleSystem.cpp @@ -91,7 +91,11 @@ uint ParticleSystem::createVBO(uint size) return vbo; } +// std::lerp (C++20) is pulled into the global namespace by GCC's ; +// only define our own lerp when std::lerp is unavailable to avoid a clash. +#if !defined(__cplusplus) || (__cplusplus < 202002L) inline float lerp(float a, float b, float t) { return a + t * (b - a); } +#endif // create a color ramp void colorRamp(float t, float *r) diff --git a/cpp/2_Concepts_and_Techniques/radixSortThrust/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/radixSortThrust/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/radixSortThrust/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/radixSortThrust/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/radixSortThrust/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/radixSortThrust/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/radixSortThrust/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/radixSortThrust/CMakeLists.txt index 291522c0..7a07d9a6 100644 --- a/cpp/2_Concepts_and_Techniques/radixSortThrust/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/radixSortThrust/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(radixSortThrust LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for radixSortThrust add_executable(radixSortThrust radixSortThrust.cu) target_compile_options(radixSortThrust PRIVATE $<$:--extended-lambda>) target_compile_features(radixSortThrust PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(radixSortThrust PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/reduction/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/reduction/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/reduction/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/reduction/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/reduction/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/reduction/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/reduction/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/reduction/CMakeLists.txt index 4f2c1fa3..7934be63 100644 --- a/cpp/2_Concepts_and_Techniques/reduction/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/reduction/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(reduction LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for reduction add_executable(reduction reduction.cpp reduction_kernel.cu) target_compile_options(reduction PRIVATE $<$:--extended-lambda>) target_compile_features(reduction PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(reduction PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(reduction PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/reductionMultiBlockCG/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/reductionMultiBlockCG/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/reductionMultiBlockCG/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/reductionMultiBlockCG/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/reductionMultiBlockCG/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/reductionMultiBlockCG/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/reductionMultiBlockCG/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/reductionMultiBlockCG/CMakeLists.txt index 8be01c85..f3a4daf8 100644 --- a/cpp/2_Concepts_and_Techniques/reductionMultiBlockCG/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/reductionMultiBlockCG/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(reductionMultiBlockCG LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for reductionMultiBlockCG add_executable(reductionMultiBlockCG reductionMultiBlockCG.cu) target_compile_options(reductionMultiBlockCG PRIVATE $<$:--extended-lambda>) target_compile_features(reductionMultiBlockCG PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(reductionMultiBlockCG PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/scalarProd/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/scalarProd/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/scalarProd/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/scalarProd/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/scalarProd/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/scalarProd/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/scalarProd/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/scalarProd/CMakeLists.txt index 9defe3d1..02892072 100644 --- a/cpp/2_Concepts_and_Techniques/scalarProd/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/scalarProd/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(scalarProd LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for scalarProd add_executable(scalarProd scalarProd_cpu.cpp scalarProd.cu) target_compile_options(scalarProd PRIVATE $<$:--extended-lambda>) target_compile_features(scalarProd PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(scalarProd PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/scan/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/scan/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/scan/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/scan/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/scan/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/scan/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/scan/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/scan/CMakeLists.txt index a2de5f22..36f16967 100644 --- a/cpp/2_Concepts_and_Techniques/scan/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/scan/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(scan LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for scan add_executable(scan main.cpp scan_gold.cpp scan.cu) target_compile_options(scan PRIVATE $<$:--extended-lambda>) target_compile_features(scan PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(scan PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(scan PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/segmentationTreeThrust/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/segmentationTreeThrust/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/segmentationTreeThrust/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/segmentationTreeThrust/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/segmentationTreeThrust/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/segmentationTreeThrust/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/segmentationTreeThrust/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/segmentationTreeThrust/CMakeLists.txt index 35279fee..d0daa9c3 100644 --- a/cpp/2_Concepts_and_Techniques/segmentationTreeThrust/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/segmentationTreeThrust/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(segmentationTreeThrust LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for segmentationTreeThrust add_executable(segmentationTreeThrust segmentationTree.cu) target_compile_options(segmentationTreeThrust PRIVATE $<$:--extended-lambda>) target_compile_features(segmentationTreeThrust PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(segmentationTreeThrust PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - # Copy data files to output directory add_custom_command(TARGET segmentationTreeThrust POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different @@ -50,6 +42,5 @@ add_custom_command(TARGET segmentationTreeThrust POST_BUILD ${CMAKE_CURRENT_BINARY_DIR}/ ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/shfl_scan/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/shfl_scan/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/shfl_scan/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/shfl_scan/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/shfl_scan/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/shfl_scan/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/shfl_scan/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/shfl_scan/CMakeLists.txt index 7292f91c..5224a946 100644 --- a/cpp/2_Concepts_and_Techniques/shfl_scan/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/shfl_scan/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(shfl_scan LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for shfl_scan add_executable(shfl_scan shfl_scan.cu) target_compile_options(shfl_scan PRIVATE $<$:--extended-lambda>) target_compile_features(shfl_scan PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(shfl_scan PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/sortingNetworks/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/sortingNetworks/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/sortingNetworks/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/sortingNetworks/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/sortingNetworks/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/sortingNetworks/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/sortingNetworks/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/sortingNetworks/CMakeLists.txt index fbefb053..1ab680a5 100644 --- a/cpp/2_Concepts_and_Techniques/sortingNetworks/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/sortingNetworks/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(sortingNetworks LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for sortingNetworks add_executable(sortingNetworks main.cpp bitonicSort.cu sortingNetworks_validate.cpp) target_compile_options(sortingNetworks PRIVATE $<$:--extended-lambda>) target_compile_features(sortingNetworks PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(sortingNetworks PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(sortingNetworks PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/streamOrderedAllocation/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/streamOrderedAllocation/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/streamOrderedAllocation/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/streamOrderedAllocation/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/streamOrderedAllocation/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/streamOrderedAllocation/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/streamOrderedAllocation/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/streamOrderedAllocation/CMakeLists.txt index d57efb15..a3b31afb 100644 --- a/cpp/2_Concepts_and_Techniques/streamOrderedAllocation/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/streamOrderedAllocation/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(streamOrderedAllocation LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for streamOrderedAllocation add_executable(streamOrderedAllocation streamOrderedAllocation.cu) target_compile_options(streamOrderedAllocation PRIVATE $<$:--extended-lambda>) target_compile_features(streamOrderedAllocation PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(streamOrderedAllocation PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationIPC/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/streamOrderedAllocationIPC/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationIPC/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationIPC/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/streamOrderedAllocationIPC/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationIPC/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationIPC/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/streamOrderedAllocationIPC/CMakeLists.txt index 7cd4788c..fab170af 100644 --- a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationIPC/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/streamOrderedAllocationIPC/CMakeLists.txt @@ -1,27 +1,21 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(streamOrderedAllocationIPC LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") -# Source file -# Add target for streamOrderedAllocationIPC if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") message(STATUS "Will not build sample streamOrderedAllocationIPC - not supported on aarch64") else() @@ -31,8 +25,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") target_compile_features(streamOrderedAllocationIPC PRIVATE cxx_std_17 cuda_std_17) - set_target_properties(streamOrderedAllocationIPC PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_link_libraries(streamOrderedAllocationIPC PUBLIC CUDA::cuda_driver ) @@ -41,6 +33,5 @@ else() message(STATUS "Will not build sample streamOrderedAllocationIPC - requires Linux OS") endif() -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationP2P/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/streamOrderedAllocationP2P/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationP2P/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationP2P/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/streamOrderedAllocationP2P/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationP2P/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationP2P/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/streamOrderedAllocationP2P/CMakeLists.txt index 6aec4f59..c340cf0f 100644 --- a/cpp/2_Concepts_and_Techniques/streamOrderedAllocationP2P/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/streamOrderedAllocationP2P/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(streamOrderedAllocationP2P LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for streamOrderedAllocationP2P add_executable(streamOrderedAllocationP2P streamOrderedAllocationP2P.cu) target_compile_options(streamOrderedAllocationP2P PRIVATE $<$:--extended-lambda>) target_compile_features(streamOrderedAllocationP2P PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(streamOrderedAllocationP2P PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/threadFenceReduction/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/threadFenceReduction/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/threadFenceReduction/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/threadFenceReduction/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/threadFenceReduction/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/threadFenceReduction/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/threadFenceReduction/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/threadFenceReduction/CMakeLists.txt index 8d25b6b8..00dfa8a2 100644 --- a/cpp/2_Concepts_and_Techniques/threadFenceReduction/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/threadFenceReduction/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(threadFenceReduction LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for threadFenceReduction add_executable(threadFenceReduction threadFenceReduction.cu) target_compile_options(threadFenceReduction PRIVATE $<$:--extended-lambda>) target_compile_features(threadFenceReduction PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(threadFenceReduction PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/2_Concepts_and_Techniques/threadMigration/.vscode/c_cpp_properties.json b/cpp/2_Concepts_and_Techniques/threadMigration/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/2_Concepts_and_Techniques/threadMigration/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/2_Concepts_and_Techniques/threadMigration/.vscode/extensions.json b/cpp/2_Concepts_and_Techniques/threadMigration/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/2_Concepts_and_Techniques/threadMigration/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/2_Concepts_and_Techniques/threadMigration/CMakeLists.txt b/cpp/2_Concepts_and_Techniques/threadMigration/CMakeLists.txt index 81b626ff..92e00051 100644 --- a/cpp/2_Concepts_and_Techniques/threadMigration/CMakeLists.txt +++ b/cpp/2_Concepts_and_Techniques/threadMigration/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(threadMigration LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for threadMigration add_executable(threadMigration threadMigration.cpp) target_compile_options(threadMigration PRIVATE $<$:--extended-lambda>) target_compile_features(threadMigration PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(threadMigration PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(threadMigration PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) @@ -60,7 +52,7 @@ endif() add_custom_command( OUTPUT ${CUDA_FATBIN_FILE} - COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} ${ALL_CCFLAGS} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} + COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} -Wno-deprecated-gpu-targets ${GENCODE_FLAGS} -o ${CUDA_FATBIN_FILE} -fatbin ${CUDA_KERNEL_SOURCE} DEPENDS ${CUDA_KERNEL_SOURCE} COMMENT "Building CUDA fatbin: ${CUDA_FATBIN_FILE}" ) @@ -71,6 +63,5 @@ add_custom_target(generate_fatbin_threadMigration ALL DEPENDS ${CUDA_FATBIN_FILE # Ensure matrixMulDrv depends on the fatbin add_dependencies(threadMigration generate_fatbin_threadMigration) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/CMakeLists.txt b/cpp/3_CUDA_Features/CMakeLists.txt index d7416b24..2cfad1ff 100644 --- a/cpp/3_CUDA_Features/CMakeLists.txt +++ b/cpp/3_CUDA_Features/CMakeLists.txt @@ -9,6 +9,7 @@ add_subdirectory(cdpSimplePrint) add_subdirectory(cdpSimpleQuicksort) add_subdirectory(cudaCompressibleMemory) add_subdirectory(cudaTensorCoreGemm) +add_subdirectory(dmabufInterop) add_subdirectory(dmmaTensorCoreGemm) add_subdirectory(globalToShmemAsyncCopy) add_subdirectory(graphConditionalNodes) @@ -16,6 +17,8 @@ add_subdirectory(graphMemoryFootprint) add_subdirectory(graphMemoryNodes) add_subdirectory(immaTensorCoreGemm) add_subdirectory(jacobiCudaGraphs) +add_subdirectory(localityDomains) +add_subdirectory(localityDomainsDrv) add_subdirectory(memMapIPCDrv) add_subdirectory(newdelete) add_subdirectory(ptxjit) diff --git a/cpp/3_CUDA_Features/README.md b/cpp/3_CUDA_Features/README.md index 74278321..b4c7cc71 100644 --- a/cpp/3_CUDA_Features/README.md +++ b/cpp/3_CUDA_Features/README.md @@ -53,6 +53,12 @@ CUDA sample demonstrating a integer GEMM computation using the Warp Matrix Multi ### [jacobiCudaGraphs](./jacobiCudaGraphs) Demonstrates Instantiated CUDA Graph Update with Jacobi Iterative Method using cudaGraphExecKernelNodeSetParams() and cudaGraphExecUpdate() approach. +### [localityDomains](./localityDomains) +This CUDA Runtime API sample demonstrates APIs for creating localized green contexts and localized memory pool allocations. + +### [localityDomainsDrv](./localityDomainsDrv) +This CUDA Driver API sample demonstrates APIs for creating localized green contexts and creating localized memory allocations. + ### [memMapIPCDrv](./memMapIPCDrv) This CUDA Driver API sample is a very basic sample that demonstrates Inter Process Communication using cuMemMap APIs with one process per GPU for computation. Requires Compute Capability 3.0 or higher and a Linux Operating System, or a Windows Operating System diff --git a/cpp/3_CUDA_Features/StreamPriorities/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/StreamPriorities/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/StreamPriorities/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/StreamPriorities/.vscode/extensions.json b/cpp/3_CUDA_Features/StreamPriorities/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/StreamPriorities/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/StreamPriorities/CMakeLists.txt b/cpp/3_CUDA_Features/StreamPriorities/CMakeLists.txt index d2b347bb..46106f0e 100644 --- a/cpp/3_CUDA_Features/StreamPriorities/CMakeLists.txt +++ b/cpp/3_CUDA_Features/StreamPriorities/CMakeLists.txt @@ -1,42 +1,30 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(StreamPriorities LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - # Source file - # Add target for StreamPriorities if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") message(STATUS "Will not build sample streamPriorities - not supported on aarch64") else() add_executable(StreamPriorities StreamPriorities.cu) - target_compile_options(StreamPriorities PRIVATE $<$:--extended-lambda>) - target_compile_features(StreamPriorities PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(StreamPriorities PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + include(InstallSamples) + setup_samples_install() endif() else() message(STATUS "Will not build sample StreamPriorities - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/3_CUDA_Features/bf16TensorCoreGemm/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/bf16TensorCoreGemm/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/bf16TensorCoreGemm/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/bf16TensorCoreGemm/.vscode/extensions.json b/cpp/3_CUDA_Features/bf16TensorCoreGemm/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/bf16TensorCoreGemm/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/bf16TensorCoreGemm/CMakeLists.txt b/cpp/3_CUDA_Features/bf16TensorCoreGemm/CMakeLists.txt index 4bec1151..24e56e02 100644 --- a/cpp/3_CUDA_Features/bf16TensorCoreGemm/CMakeLists.txt +++ b/cpp/3_CUDA_Features/bf16TensorCoreGemm/CMakeLists.txt @@ -1,21 +1,24 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(bf16TensorCoreGemm LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) if(ENABLE_CUDA_DEBUG) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) else() set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) endif() -# Include directories and libraries include_directories(../../../Common) # This sample is not supported on QNX @@ -24,16 +27,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "QNX") return() endif() -# Source file -# Add target for bf16TensorCoreGemm add_executable(bf16TensorCoreGemm bf16TensorCoreGemm.cu) target_compile_options(bf16TensorCoreGemm PRIVATE $<$:--extended-lambda>) target_compile_features(bf16TensorCoreGemm PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(bf16TensorCoreGemm PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/binaryPartitionCG/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/binaryPartitionCG/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/binaryPartitionCG/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/binaryPartitionCG/.vscode/extensions.json b/cpp/3_CUDA_Features/binaryPartitionCG/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/binaryPartitionCG/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/binaryPartitionCG/CMakeLists.txt b/cpp/3_CUDA_Features/binaryPartitionCG/CMakeLists.txt index 25c46b45..4d6afc53 100644 --- a/cpp/3_CUDA_Features/binaryPartitionCG/CMakeLists.txt +++ b/cpp/3_CUDA_Features/binaryPartitionCG/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(binaryPartitionCG LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for binaryPartitionCG add_executable(binaryPartitionCG binaryPartitionCG.cu) target_compile_options(binaryPartitionCG PRIVATE $<$:--extended-lambda>) target_compile_features(binaryPartitionCG PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(binaryPartitionCG PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/bindlessTexture/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/bindlessTexture/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/bindlessTexture/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/bindlessTexture/.vscode/extensions.json b/cpp/3_CUDA_Features/bindlessTexture/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/bindlessTexture/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/bindlessTexture/CMakeLists.txt b/cpp/3_CUDA_Features/bindlessTexture/CMakeLists.txt index ee742504..89d36153 100644 --- a/cpp/3_CUDA_Features/bindlessTexture/CMakeLists.txt +++ b/cpp/3_CUDA_Features/bindlessTexture/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(bindlessTexture LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,49 +29,37 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for bindlessTexture add_executable(bindlessTexture bindlessTexture.cpp bindlessTexture_kernel.cu) - -target_compile_options(bindlessTexture PRIVATE $<$:--extended-lambda>) - -target_compile_features(bindlessTexture PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(bindlessTexture PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - + target_compile_options(bindlessTexture PRIVATE $<$:--extended-lambda>) + target_compile_features(bindlessTexture PRIVATE cxx_std_17 cuda_std_17) target_include_directories(bindlessTexture PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(bindlessTexture ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - # Copy clock_kernel.cu to the output directory add_custom_command(TARGET bindlessTexture POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(bindlessTexture ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET bindlessTexture POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET bindlessTexture POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -83,14 +67,11 @@ target_compile_features(bindlessTexture PRIVATE cxx_std_17 cuda_std_17) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'bindlessTexture'") endif() else() message(STATUS "OpenGL not found - will not build sample 'bindlessTexture'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/3_CUDA_Features/cdpAdvancedQuicksort/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/cdpAdvancedQuicksort/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/cdpAdvancedQuicksort/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/cdpAdvancedQuicksort/.vscode/extensions.json b/cpp/3_CUDA_Features/cdpAdvancedQuicksort/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/cdpAdvancedQuicksort/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/cdpAdvancedQuicksort/CMakeLists.txt b/cpp/3_CUDA_Features/cdpAdvancedQuicksort/CMakeLists.txt index 54de78a3..4c390b95 100644 --- a/cpp/3_CUDA_Features/cdpAdvancedQuicksort/CMakeLists.txt +++ b/cpp/3_CUDA_Features/cdpAdvancedQuicksort/CMakeLists.txt @@ -1,36 +1,28 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") +# CDP device-links the CUDA device runtime (cudadevrt), which the DriveOS Tegra +# toolkit ships only for the native Tegra archs; drop the desktop archs there. +get_filename_component(_ctk_root "${CMAKE_CUDA_COMPILER}" DIRECTORY) +get_filename_component(_ctk_root "${_ctk_root}" DIRECTORY) +if(EXISTS "${_ctk_root}/targets/aarch64-linux" OR EXISTS "${_ctk_root}/targets/aarch64-qnx") + set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) +endif() +unset(_ctk_root) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cdpAdvancedQuicksort LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -# The aarch64/sbsa_aarch64 CUDA toolkit are support on Tegra since 13.0, so need to check which version of the toolkit is installed -string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-linux" _aarch64_linux_ctk) -string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-qnx" _aarch64_qnx_ctk) -if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND (NOT _aarch64_linux_ctk EQUAL -1 OR NOT _aarch64_qnx_ctk EQUAL -1)) - set(CMAKE_CUDA_ARCHITECTURES 87 110) -else() - set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120) -endif() - -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -maxrregcount=64") # Limit register usage to 64 for the 'big_bitonicsort kernel -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for cdpAdvancedQuicksort add_executable(cdpAdvancedQuicksort cdpAdvancedQuicksort.cu cdpBitonicSort.cu) target_compile_options(cdpAdvancedQuicksort PRIVATE $<$:--extended-lambda>) @@ -39,6 +31,5 @@ target_compile_features(cdpAdvancedQuicksort PRIVATE cxx_std_17 cuda_std_17) set_target_properties(cdpAdvancedQuicksort PROPERTIES CUDA_SEPARABLE_COMPILATION ON) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/cdpAdvancedQuicksort/cdpAdvancedQuicksort.cu b/cpp/3_CUDA_Features/cdpAdvancedQuicksort/cdpAdvancedQuicksort.cu index e18cca90..e1962150 100644 --- a/cpp/3_CUDA_Features/cdpAdvancedQuicksort/cdpAdvancedQuicksort.cu +++ b/cpp/3_CUDA_Features/cdpAdvancedQuicksort/cdpAdvancedQuicksort.cu @@ -137,7 +137,9 @@ template static __device__ void ringbufFree(qsortRingbuf *ringbuf, // and cover the instruction overhead. // //////////////////////////////////////////////////////////////////////////////// -__global__ void qsort_warp(unsigned *indata, +// __launch_bounds__ caps registers to the launch block size so -G (device-debug) builds stay +// within the per-block register limit (big register usage under -G overflows it on Blackwell sm_110+). +__launch_bounds__(QSORT_BLOCKSIZE) __global__ void qsort_warp(unsigned *indata, unsigned *outdata, unsigned int offset, unsigned int len, diff --git a/cpp/3_CUDA_Features/cdpAdvancedQuicksort/cdpBitonicSort.cu b/cpp/3_CUDA_Features/cdpAdvancedQuicksort/cdpBitonicSort.cu index b54c39cb..995be2ca 100644 --- a/cpp/3_CUDA_Features/cdpAdvancedQuicksort/cdpBitonicSort.cu +++ b/cpp/3_CUDA_Features/cdpAdvancedQuicksort/cdpBitonicSort.cu @@ -272,14 +272,16 @@ static __device__ __forceinline__ void big_bitonicsort_kernel(unsigned *i // KERNELS //////////////////////////////////////////////////////////////////////////////// -__global__ void bitonicsort(unsigned *indata, unsigned *outdata, unsigned int offset, unsigned int len) +// __launch_bounds__ caps registers to the launch block size so -G builds stay within the per-block register limit (Blackwell sm_110+). +__launch_bounds__(BITONICSORT_LEN) __global__ void bitonicsort(unsigned *indata, unsigned *outdata, unsigned int offset, unsigned int len) { // Handle to thread block group cg::thread_block cta = cg::this_thread_block(); bitonicsort_kernel(indata, outdata, offset, len, cta); } -__global__ void +// __launch_bounds__ caps registers to the launch block size so -G builds stay within the per-block register limit (Blackwell sm_110+). +__launch_bounds__(BITONICSORT_LEN) __global__ void big_bitonicsort(unsigned *indata, unsigned *outdata, unsigned *backbuf, unsigned int offset, unsigned int len) { // Handle to thread block group diff --git a/cpp/3_CUDA_Features/cdpBezierTessellation/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/cdpBezierTessellation/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/cdpBezierTessellation/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/cdpBezierTessellation/.vscode/extensions.json b/cpp/3_CUDA_Features/cdpBezierTessellation/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/cdpBezierTessellation/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/cdpBezierTessellation/CMakeLists.txt b/cpp/3_CUDA_Features/cdpBezierTessellation/CMakeLists.txt index 3eba90fa..4e54b530 100644 --- a/cpp/3_CUDA_Features/cdpBezierTessellation/CMakeLists.txt +++ b/cpp/3_CUDA_Features/cdpBezierTessellation/CMakeLists.txt @@ -1,35 +1,28 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") +# CDP device-links the CUDA device runtime (cudadevrt), which the DriveOS Tegra +# toolkit ships only for the native Tegra archs; drop the desktop archs there. +get_filename_component(_ctk_root "${CMAKE_CUDA_COMPILER}" DIRECTORY) +get_filename_component(_ctk_root "${_ctk_root}" DIRECTORY) +if(EXISTS "${_ctk_root}/targets/aarch64-linux" OR EXISTS "${_ctk_root}/targets/aarch64-qnx") + set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) +endif() +unset(_ctk_root) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cdpBezierTessellation LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -# The aarch64/sbsa_aarch64 CUDA toolkit are support on Tegra since 13.0, so need to check which version of the toolkit is installed -string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-linux" _aarch64_linux_ctk) -string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-qnx" _aarch64_qnx_ctk) -if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND (NOT _aarch64_linux_ctk EQUAL -1 OR NOT _aarch64_qnx_ctk EQUAL -1)) - set(CMAKE_CUDA_ARCHITECTURES 87 110) -else() - set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120) -endif() - -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for cdpBezierTessellation add_executable(cdpBezierTessellation BezierLineCDP.cu) target_compile_options(cdpBezierTessellation PRIVATE $<$:--extended-lambda>) @@ -38,6 +31,5 @@ target_compile_features(cdpBezierTessellation PRIVATE cxx_std_17 cuda_std_17) set_target_properties(cdpBezierTessellation PROPERTIES CUDA_SEPARABLE_COMPILATION ON) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/cdpQuadtree/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/cdpQuadtree/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/cdpQuadtree/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/cdpQuadtree/.vscode/extensions.json b/cpp/3_CUDA_Features/cdpQuadtree/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/cdpQuadtree/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/cdpQuadtree/CMakeLists.txt b/cpp/3_CUDA_Features/cdpQuadtree/CMakeLists.txt index 1ecbfac1..6fb3a0d4 100644 --- a/cpp/3_CUDA_Features/cdpQuadtree/CMakeLists.txt +++ b/cpp/3_CUDA_Features/cdpQuadtree/CMakeLists.txt @@ -1,35 +1,28 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") +# CDP device-links the CUDA device runtime (cudadevrt), which the DriveOS Tegra +# toolkit ships only for the native Tegra archs; drop the desktop archs there. +get_filename_component(_ctk_root "${CMAKE_CUDA_COMPILER}" DIRECTORY) +get_filename_component(_ctk_root "${_ctk_root}" DIRECTORY) +if(EXISTS "${_ctk_root}/targets/aarch64-linux" OR EXISTS "${_ctk_root}/targets/aarch64-qnx") + set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) +endif() +unset(_ctk_root) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cdpQuadtree LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -# The aarch64/sbsa_aarch64 CUDA toolkit are support on Tegra since 13.0, so need to check which version of the toolkit is installed -string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-linux" _aarch64_linux_ctk) -string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-qnx" _aarch64_qnx_ctk) -if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND (NOT _aarch64_linux_ctk EQUAL -1 OR NOT _aarch64_qnx_ctk EQUAL -1)) - set(CMAKE_CUDA_ARCHITECTURES 87 110) -else() - set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120) -endif() - -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for cdpQuadtree add_executable(cdpQuadtree cdpQuadtree.cu) target_compile_options(cdpQuadtree PRIVATE $<$:--extended-lambda>) @@ -38,6 +31,5 @@ target_compile_features(cdpQuadtree PRIVATE cxx_std_17 cuda_std_17) set_target_properties(cdpQuadtree PROPERTIES CUDA_SEPARABLE_COMPILATION ON) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/cdpQuadtree/cdpQuadtree.cu b/cpp/3_CUDA_Features/cdpQuadtree/cdpQuadtree.cu index 804d2550..e599295c 100644 --- a/cpp/3_CUDA_Features/cdpQuadtree/cdpQuadtree.cu +++ b/cpp/3_CUDA_Features/cdpQuadtree/cdpQuadtree.cu @@ -25,6 +25,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include + #include #include #include diff --git a/cpp/3_CUDA_Features/cdpSimplePrint/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/cdpSimplePrint/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/cdpSimplePrint/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/cdpSimplePrint/.vscode/extensions.json b/cpp/3_CUDA_Features/cdpSimplePrint/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/cdpSimplePrint/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/cdpSimplePrint/CMakeLists.txt b/cpp/3_CUDA_Features/cdpSimplePrint/CMakeLists.txt index 00c42182..dac85278 100644 --- a/cpp/3_CUDA_Features/cdpSimplePrint/CMakeLists.txt +++ b/cpp/3_CUDA_Features/cdpSimplePrint/CMakeLists.txt @@ -1,35 +1,28 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") +# CDP device-links the CUDA device runtime (cudadevrt), which the DriveOS Tegra +# toolkit ships only for the native Tegra archs; drop the desktop archs there. +get_filename_component(_ctk_root "${CMAKE_CUDA_COMPILER}" DIRECTORY) +get_filename_component(_ctk_root "${_ctk_root}" DIRECTORY) +if(EXISTS "${_ctk_root}/targets/aarch64-linux" OR EXISTS "${_ctk_root}/targets/aarch64-qnx") + set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) +endif() +unset(_ctk_root) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cdpSimplePrint LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -# The aarch64/sbsa_aarch64 CUDA toolkit are support on Tegra since 13.0, so need to check which version of the toolkit is installed -string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-linux" _aarch64_linux_ctk) -string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-qnx" _aarch64_qnx_ctk) -if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND (NOT _aarch64_linux_ctk EQUAL -1 OR NOT _aarch64_qnx_ctk EQUAL -1)) - set(CMAKE_CUDA_ARCHITECTURES 87 110) -else() - set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120) -endif() - -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for cdpSimplePrint add_executable(cdpSimplePrint cdpSimplePrint.cu) target_compile_options(cdpSimplePrint PRIVATE $<$:--extended-lambda>) @@ -38,6 +31,5 @@ target_compile_features(cdpSimplePrint PRIVATE cxx_std_17 cuda_std_17) set_target_properties(cdpSimplePrint PROPERTIES CUDA_SEPARABLE_COMPILATION ON) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/cdpSimpleQuicksort/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/cdpSimpleQuicksort/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/cdpSimpleQuicksort/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/cdpSimpleQuicksort/.vscode/extensions.json b/cpp/3_CUDA_Features/cdpSimpleQuicksort/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/cdpSimpleQuicksort/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/cdpSimpleQuicksort/CMakeLists.txt b/cpp/3_CUDA_Features/cdpSimpleQuicksort/CMakeLists.txt index 07ab4d6e..1e8a1412 100644 --- a/cpp/3_CUDA_Features/cdpSimpleQuicksort/CMakeLists.txt +++ b/cpp/3_CUDA_Features/cdpSimpleQuicksort/CMakeLists.txt @@ -1,35 +1,28 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") +# CDP device-links the CUDA device runtime (cudadevrt), which the DriveOS Tegra +# toolkit ships only for the native Tegra archs; drop the desktop archs there. +get_filename_component(_ctk_root "${CMAKE_CUDA_COMPILER}" DIRECTORY) +get_filename_component(_ctk_root "${_ctk_root}" DIRECTORY) +if(EXISTS "${_ctk_root}/targets/aarch64-linux" OR EXISTS "${_ctk_root}/targets/aarch64-qnx") + set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) +endif() +unset(_ctk_root) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cdpSimpleQuicksort LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -# The aarch64/sbsa_aarch64 CUDA toolkit are support on Tegra since 13.0, so need to check which version of the toolkit is installed -string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-linux" _aarch64_linux_ctk) -string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-qnx" _aarch64_qnx_ctk) -if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND (NOT _aarch64_linux_ctk EQUAL -1 OR NOT _aarch64_qnx_ctk EQUAL -1)) - set(CMAKE_CUDA_ARCHITECTURES 87 110) -else() - set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120) -endif() - -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for cdpSimpleQuicksort add_executable(cdpSimpleQuicksort cdpSimpleQuicksort.cu) target_compile_options(cdpSimpleQuicksort PRIVATE $<$:--extended-lambda>) @@ -38,6 +31,5 @@ target_compile_features(cdpSimpleQuicksort PRIVATE cxx_std_17 cuda_std_17) set_target_properties(cdpSimpleQuicksort PROPERTIES CUDA_SEPARABLE_COMPILATION ON) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/cudaCompressibleMemory/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/cudaCompressibleMemory/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/cudaCompressibleMemory/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/cudaCompressibleMemory/.vscode/extensions.json b/cpp/3_CUDA_Features/cudaCompressibleMemory/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/cudaCompressibleMemory/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/cudaCompressibleMemory/CMakeLists.txt b/cpp/3_CUDA_Features/cudaCompressibleMemory/CMakeLists.txt index 20416c6f..704d07e4 100644 --- a/cpp/3_CUDA_Features/cudaCompressibleMemory/CMakeLists.txt +++ b/cpp/3_CUDA_Features/cudaCompressibleMemory/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cudaCompressibleMemory LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for cudaCompressibleMemory add_executable(cudaCompressibleMemory compMalloc.cpp saxpy.cu) target_compile_options(cudaCompressibleMemory PRIVATE $<$:--extended-lambda>) target_compile_features(cudaCompressibleMemory PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(cudaCompressibleMemory PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(cudaCompressibleMemory PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -37,6 +29,5 @@ target_link_libraries(cudaCompressibleMemory PRIVATE CUDA::cuda_driver ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/cudaTensorCoreGemm/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/cudaTensorCoreGemm/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/cudaTensorCoreGemm/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/cudaTensorCoreGemm/.vscode/extensions.json b/cpp/3_CUDA_Features/cudaTensorCoreGemm/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/cudaTensorCoreGemm/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/cudaTensorCoreGemm/CMakeLists.txt b/cpp/3_CUDA_Features/cudaTensorCoreGemm/CMakeLists.txt index fc5c0894..a4eac4be 100644 --- a/cpp/3_CUDA_Features/cudaTensorCoreGemm/CMakeLists.txt +++ b/cpp/3_CUDA_Features/cudaTensorCoreGemm/CMakeLists.txt @@ -1,35 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cudaTensorCoreGemm LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for cudaTensorCoreGemm add_executable(cudaTensorCoreGemm cudaTensorCoreGemm.cu) target_compile_options(cudaTensorCoreGemm PRIVATE $<$:--extended-lambda>) target_compile_features(cudaTensorCoreGemm PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(cudaTensorCoreGemm PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/dmabufInterop/CMakeLists.txt b/cpp/3_CUDA_Features/dmabufInterop/CMakeLists.txt new file mode 100644 index 00000000..de4f1789 --- /dev/null +++ b/cpp/3_CUDA_Features/dmabufInterop/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required(VERSION 3.20) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() + +project(dmabufInterop LANGUAGES C CXX CUDA) + +# dma-buf is a Linux-only kernel facility. Skip the sample on all other platforms. +if(NOT (CMAKE_SYSTEM_NAME STREQUAL "Linux")) + message(STATUS "Skipping dmabufInterop: requires Linux (dma-buf is Linux-only). " + "Found ${CMAKE_SYSTEM_NAME}.") + return() +endif() + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + +find_package(CUDAToolkit REQUIRED) + +include_directories(../../../Common) + +add_executable(dmabufInterop dmabufInterop.cu) + +target_compile_options(dmabufInterop PRIVATE $<$:--extended-lambda>) + +target_compile_features(dmabufInterop PRIVATE cxx_std_17 cuda_std_17) + +target_link_libraries(dmabufInterop PRIVATE + CUDA::cuda_driver + CUDA::cudart +) + +include(InstallSamples) +setup_samples_install() diff --git a/cpp/3_CUDA_Features/dmabufInterop/README.md b/cpp/3_CUDA_Features/dmabufInterop/README.md new file mode 100644 index 00000000..263cc59d --- /dev/null +++ b/cpp/3_CUDA_Features/dmabufInterop/README.md @@ -0,0 +1,124 @@ +# Sample: CUDA dma-buf Interoperability + +## Description + +Linux **dma-buf** is the kernel's standard mechanism for sharing a buffer between subsystems by representing it as a file descriptor. This sample shows CUDA acting as both a dma-buf **producer** (taking one of its own allocations and obtaining a dma-buf fd for it with `cuMemGetHandleForAddressRange`) and a dma-buf **consumer** (taking an existing dma-buf fd and turning it into a CUDA-mappable buffer with `cuImportExternalMemory` + `cuExternalMemoryGetMappedBuffer`). A single binary runs three demos in sequence: + +1. **Same-process round-trip** — one CUDA context exports a host allocation and imports it back as external memory. +2. **Cross-process IPC** — a `fork()`-ed child exports an allocation and passes the fd to the parent over a Unix domain socket using `SCM_RIGHTS`. +3. **Cross-GPU sharing across processes** — the same `fork()` + `SCM_RIGHTS` path as demo 2, but the producer child runs on one GPU and the consumer parent imports the fd into a different GPU's context. The sample auto-detects any pair of GPUs whose driver reports support for the dma-buf capability attributes. This demo self-skips when no qualifying pair is present. + +Producer-side allocations always use `cuMemAllocHost`; using a single allocator keeps the producer code identical across all three demos. + +## What You'll Learn + +- Exporting a CUDA host allocation as a Linux dma-buf file descriptor +- Importing a dma-buf fd into CUDA as external memory and mapping it to a device pointer +- Passing a dma-buf fd between processes via a Unix-domain socket using `SCM_RIGHTS` +- Sharing a single buffer between two GPUs in two different processes, with the producer-completes-before-consumer-reads ordering enforced by the existing fork + socket handshake +- Detecting dma-buf platform support at runtime with CUDA device attributes +- Coordinating fork()ed children so output and CUDA work appear in source order rather than the order processes happen to be scheduled + +## Key Concepts + +- **dma-buf** — kernel-side shareable buffer represented as a file descriptor; usable across CUDA, V4L2, DRM/KMS, Vulkan, and any other subsystem that speaks dma-buf +- **Page-aligned export** — `cuMemGetHandleForAddressRange` requires a page-aligned base, so the producer over-allocates by one page and rounds up +- **fd as IPC primitive** — once CUDA has produced a dma-buf fd, the fd is just a POSIX file descriptor and can be sent across `fork()` boundaries via `SCM_RIGHTS` +- **Capability-gated execution** — `CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED` (producer side) and `CU_DEVICE_ATTRIBUTE_DMA_BUF_SUPPORTED` (consumer side) determine which paths run on the current hardware +- **Parent-arbitrated synchronisation** — both fork()ed children block on a one-byte "go" from the parent before doing any CUDA work, so output across the three demos appears in source order even when stdout is fully buffered (e.g., over ssh) + +## Key APIs + +### CUDA Driver API +- `cuMemAllocHost` — allocate page-locked host memory that is also a valid CUDA device pointer +- `cuMemGetHandleForAddressRange` (with `CU_MEM_RANGE_HANDLE_TYPE_DMA_BUF_FD`) — export a CUDA allocation as a Linux dma-buf fd +- `cuImportExternalMemory` (with `CU_EXTERNAL_MEMORY_HANDLE_TYPE_DMABUF_FD`) — bring a dma-buf fd into CUDA as external memory +- `cuExternalMemoryGetMappedBuffer` — obtain a `CUdeviceptr` from an imported external memory object +- `cuDeviceGetAttribute` — runtime capability query for `CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED` and `CU_DEVICE_ATTRIBUTE_DMA_BUF_SUPPORTED` + +### CUDA Runtime API +- `cudaSetDevice` — pin the runtime to the producer GPU (child process) or the consumer GPU (parent process); both demos that use multiple GPUs do this on each side after the fork +- `cudaGetDeviceCount` — used inside the cross-GPU pair detection to enumerate the available GPUs +- `cudaDeviceSynchronize` — used on the producer side to make sure the kernel that wrote the buffer has retired before the fd is sent to the consumer + +### Linux / POSIX +- `socketpair` + `fork` + `sendmsg`/`recvmsg` with `SCM_RIGHTS` — pass a file descriptor between processes + +## Requirements + +### Hardware +- An NVIDIA GPU whose `CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED` is `1`. The sample queries this at startup and skips entirely on unsupported devices. +- The cross-GPU section additionally needs at least two GPUs in the system, with one reporting `CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED = 1` (producer) and the other reporting `CU_DEVICE_ATTRIBUTE_DMA_BUF_SUPPORTED = 1` (consumer). On systems without a qualifying pair the cross-GPU section prints a skip message and the sample continues. + +### Software +- CUDA Toolkit 13.4 or newer +- CMake 3.20 or newer +- Linux. dma-buf is a Linux kernel facility; this sample does not build on Windows or QNX. + +## How to Build + +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. + +## How to Run + +The sample takes no arguments: + +```bash +./dmabufInterop +``` + +All three sections run in sequence. The cross-GPU section self-skips when the running system has no qualifying GPU pair, so the same binary is appropriate for a single-GPU workstation, a multi-GPU server, or a heterogeneous-GPU platform. + +## Expected Output + +On a system with a single discrete GPU (the cross-GPU section self-skips): + +```text +Device 0: (Compute Capability X.Y) + +Same-process round-trip + producer: allocated 16384 bytes, exported as dma-buf fd 45 + producer: wrote pattern + consumer: imported dma-buf as device pointer + consumer: verified (0 mismatches) + +Cross-process IPC (fork + SCM_RIGHTS) + child: allocated 16384 bytes, exported as dma-buf fd 45 + child: wrote pattern + child: sent fd to parent + parent: received dma-buf fd 45 from child + parent: imported dma-buf as device pointer + parent: verified (0 mismatches) + +Cross-GPU sharing across processes + no GPU pair satisfies the dma-buf capability attributes. Skipping. + +Done +``` + +On a system with two or more dma-buf-capable GPUs, the cross-GPU section runs to completion: + +```text +Cross-GPU sharing across processes + child: on device 1, allocated 16384 bytes, exported as dma-buf fd 53 + child: wrote pattern + child: sent fd to parent + parent: on device 0, received dma-buf fd 4 from child + parent: imported dma-buf as device pointer + parent: verified (0 mismatches) +``` + +If a verification kernel reports any mismatches, the corresponding line ends with `Error (N mismatches)` and the sample exits with a non-zero status. + +## Files + +- `dmabufInterop.cu` — kernels, CUDA export/import helpers, and the three demo functions. Reading this file end-to-end gives the full CUDA dma-buf flow without needing to open anything else. +- `dmabufInterop_helpers.h` — POSIX-only helpers used by the cross-process demos: `sendFd` / `recvFd` for `SCM_RIGHTS`-based file-descriptor passing, and `reapCrossProcessChild` (a `waitpid` wrapper). Split out so the main `.cu` stays focused on CUDA; open this file only if you want to see the SCM_RIGHTS mechanics. +- `README.md` — this file +- `CMakeLists.txt` — build configuration (Linux-only guard, CUDA driver + runtime link) + +## See Also + +- [Linux kernel dma-buf documentation](https://docs.kernel.org/driver-api/dma-buf.html) +- [CUDA External Resource Interoperability](https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__EXTRES__INTEROP.html) +- [`cuMemGetHandleForAddressRange`](https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__MEM.html) diff --git a/cpp/3_CUDA_Features/dmabufInterop/dmabufInterop.cu b/cpp/3_CUDA_Features/dmabufInterop/dmabufInterop.cu new file mode 100644 index 00000000..cced6fd5 --- /dev/null +++ b/cpp/3_CUDA_Features/dmabufInterop/dmabufInterop.cu @@ -0,0 +1,507 @@ +/* Copyright (c) 2026, NVIDIA CORPORATION. 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. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. + */ + +/** + * CUDA dma-buf interoperability. + * + * Three demos exercise CUDA's ability to export a host allocation as a Linux + * dma-buf file descriptor and to import a dma-buf fd back as a CUDA-mappable + * buffer: (1) same-process round-trip, (2) cross-process IPC via fork() and + * SCM_RIGHTS with both sides on one GPU, and (3) cross-GPU sharing across + * processes -- the same fork+SCM_RIGHTS path as demo 2, but the producer + * child runs on one GPU and the consumer parent imports the fd into a + * different GPU's context. Demo 3 self-skips when the system does not have + * two GPUs that satisfy the dma-buf capability attributes. + * + * Producer allocations are always pinned host memory; using a single + * allocator keeps the producer path identical across all three demos. + * + * See README.md for build instructions, expected output, and the full list + * of APIs the sample exercises. + */ + +#include +#include +#include +#include + +#include +#include + +#include "dmabufInterop_helpers.h" + +#define NUM_ELEMENTS 4096 +#define BLOCK_SIZE 256 +#define PATTERN_BASE 0x1000 + +/* Kernel: writes ptr[i] = base + i. */ +__global__ void writePatternKernel(int *ptr, int base, int count) +{ + int idx = blockIdx.x * blockDim.x + threadIdx.x; + if (idx < count) { + ptr[idx] = base + idx; + } +} + +/* Kernel: counts elements that do not match base + i. */ +__global__ void verifyPatternKernel(int *ptr, int base, int count, int *errors) +{ + int idx = blockIdx.x * blockDim.x + threadIdx.x; + if (idx < count) { + if (ptr[idx] != base + idx) { + atomicAdd(errors, 1); + } + } +} + +/* Align v up to the next multiple of a. */ +static size_t alignUp(size_t v, size_t a) +{ + size_t r = v % a; + return (r == 0) ? v : v + (a - r); +} + +/* Result of a producer-side export: the allocation base (for cuMemFreeHost), + * the page-aligned pointer usable as both host and device pointer, the + * dma-buf fd, and the aligned size. */ +struct DmabufExport +{ + void *allocBase; + void *alignedPtr; + int fd; + size_t size; +}; + +/* Allocate page-aligned pinned host memory and export it as a dma-buf fd. + * cuMemGetHandleForAddressRange requires a page-aligned base, so we allocate + * an extra page of headroom and round up. */ +static DmabufExport exportHostAllocAsDmabuf(size_t size) +{ + long pageSize = sysconf(_SC_PAGESIZE); + + DmabufExport e = {}; + e.size = alignUp(size, (size_t)pageSize); + + cuMemAllocHost(&e.allocBase, e.size + (size_t)pageSize); + e.alignedPtr = (void *)alignUp((size_t)e.allocBase, (size_t)pageSize); + + cuMemGetHandleForAddressRange(&e.fd, + (CUdeviceptr)e.alignedPtr, + e.size, + CU_MEM_RANGE_HANDLE_TYPE_DMA_BUF_FD, + 0ULL); + return e; +} + +/* Import a dma-buf fd into the current CUDA context and obtain a CUdeviceptr + * that kernels can read and write. */ +static void importDmabuf(int fd, size_t size, CUexternalMemory *outExtMem, CUdeviceptr *outDevPtr) +{ + CUDA_EXTERNAL_MEMORY_HANDLE_DESC memDesc = {}; + memDesc.type = CU_EXTERNAL_MEMORY_HANDLE_TYPE_DMABUF_FD; + memDesc.handle.fd = fd; + memDesc.size = size; + cuImportExternalMemory(outExtMem, &memDesc); + + CUDA_EXTERNAL_MEMORY_BUFFER_DESC bufDesc = {}; + bufDesc.size = size; + cuExternalMemoryGetMappedBuffer(outDevPtr, *outExtMem, &bufDesc); +} + +/* Same-process round-trip: one context exports a host allocation as a + * dma-buf fd and imports it back. Producer writes the pattern; consumer + * reads via the imported mapping and verifies. */ +static int runSameProcess(int device) +{ + cudaSetDevice(device); + + DmabufExport e = exportHostAllocAsDmabuf(NUM_ELEMENTS * sizeof(int)); + printf(" producer: allocated %zu bytes, exported as dma-buf fd %d\n", e.size, e.fd); + + int blocks = (NUM_ELEMENTS + BLOCK_SIZE - 1) / BLOCK_SIZE; + writePatternKernel<<>>((int *)e.alignedPtr, PATTERN_BASE, NUM_ELEMENTS); + cudaDeviceSynchronize(); + printf(" producer: wrote pattern\n"); + + CUexternalMemory extMem = NULL; + CUdeviceptr importedPtr = 0; + importDmabuf(e.fd, e.size, &extMem, &importedPtr); + printf(" consumer: imported dma-buf as device pointer\n"); + + int *errors = NULL; + cudaMallocHost(&errors, sizeof(int)); + *errors = 0; + verifyPatternKernel<<>>( + (int *)importedPtr, PATTERN_BASE, NUM_ELEMENTS, errors); + cudaDeviceSynchronize(); + + int rc = (*errors == 0) ? 0 : -1; + printf(" consumer: %s (%d mismatches)\n", rc == 0 ? "verified" : "Error", *errors); + + /* Free up resources. */ + cudaFreeHost(errors); + cuDestroyExternalMemory(extMem); + close(e.fd); + cuMemFreeHost(e.allocBase); + return rc; +} + +/* Cross-process child: producer. Allocates, exports, writes the pattern, + * sends the fd to the parent, waits for a one-byte ack so it does not free + * the underlying memory before the parent finishes reading. + * + * The child waits for a one-byte "go" from the parent before doing any + * CUDA work, so that the parent can serialise output across the same-process + * demo and the two cross-process demos. If the parent closes the socket + * without writing (because some upstream gate failed), the child exits + * cleanly. */ +static int runCrossProcessChild(int device, int sock) +{ + cuInit(0); + cudaSetDevice(device); + + char go = 0; + if (read(sock, &go, 1) <= 0) return 0; + + DmabufExport e = exportHostAllocAsDmabuf(NUM_ELEMENTS * sizeof(int)); + printf(" child: allocated %zu bytes, exported as dma-buf fd %d\n", e.size, e.fd); + + int blocks = (NUM_ELEMENTS + BLOCK_SIZE - 1) / BLOCK_SIZE; + writePatternKernel<<>>((int *)e.alignedPtr, PATTERN_BASE, NUM_ELEMENTS); + cudaDeviceSynchronize(); + printf(" child: wrote pattern\n"); + + sendFd(sock, e.fd); + printf(" child: sent fd to parent\n"); + + char ack = 0; + [[maybe_unused]] ssize_t r = read(sock, &ack, 1); + + /* Free up resources. */ + close(e.fd); + cuMemFreeHost(e.allocBase); + return 0; +} + +/* Cross-process parent: consumer. Signals the child to start producing, + * receives the fd, imports it, verifies the pattern, and acks the child so + * it can clean up. */ +static int runCrossProcessParent(int device, int sock) +{ + cudaSetDevice(device); + + char go = 'G'; + [[maybe_unused]] ssize_t r_go = write(sock, &go, 1); + + /* fd is the dma-buf that the producer child just wrote to; it refers to + * the same underlying memory the child exported, just a different fd + * number in this process. */ + int fd = recvFd(sock); + printf(" parent: received dma-buf fd %d from child\n", fd); + + const size_t size = alignUp(NUM_ELEMENTS * sizeof(int), (size_t)sysconf(_SC_PAGESIZE)); + + CUexternalMemory extMem = NULL; + CUdeviceptr importedPtr = 0; + importDmabuf(fd, size, &extMem, &importedPtr); + printf(" parent: imported dma-buf as device pointer\n"); + + int *errors = NULL; + cudaMallocHost(&errors, sizeof(int)); + *errors = 0; + int blocks = (NUM_ELEMENTS + BLOCK_SIZE - 1) / BLOCK_SIZE; + verifyPatternKernel<<>>( + (int *)importedPtr, PATTERN_BASE, NUM_ELEMENTS, errors); + cudaDeviceSynchronize(); + + int rc = (*errors == 0) ? 0 : -1; + printf(" parent: %s (%d mismatches)\n", rc == 0 ? "verified" : "Error", *errors); + + char ack = 'A'; + [[maybe_unused]] ssize_t r_ack = write(sock, &ack, 1); + + /* Free up resources. */ + cudaFreeHost(errors); + cuDestroyExternalMemory(extMem); + close(fd); + return rc; +} + +/* Cross-process orchestration. The fork() must happen BEFORE either side + * calls cuInit: the CUDA driver does not survive fork-after-init, so child + * and parent each initialise CUDA independently after the fork. main() + * spawns the child here and drives the parent side later. */ +static pid_t spawnCrossProcessChild(int device, int *outParentSocket) +{ + int sockets[2]; + if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockets) != 0) { + perror("socketpair"); + return -1; + } + + /* Flush stdio before fork() so the child does not inherit a buffer that + * would then be flushed twice. */ + fflush(stdout); + fflush(stderr); + + pid_t pid = fork(); + if (pid < 0) { + perror("fork"); + close(sockets[0]); + close(sockets[1]); + return -1; + } + if (pid == 0) { + close(sockets[1]); + int rc = runCrossProcessChild(device, sockets[0]); + close(sockets[0]); + fflush(stdout); + fflush(stderr); + _exit(rc == 0 ? 0 : 1); + } + + close(sockets[0]); + *outParentSocket = sockets[1]; + return pid; +} + +/* Find any pair of GPUs where one supports producing a dma-buf fd from a + * host allocation and the other supports importing a dma-buf fd. Iteration + * is device-order so the result is deterministic -- child and parent each + * call this independently after the fork and arrive at the same (producer, + * consumer) pair. Both outputs are -1 if no qualifying pair is present. */ +static void findCrossGpuPair(int *outProducer, int *outConsumer) +{ + *outProducer = -1; + *outConsumer = -1; + + int deviceCount = 0; + cudaGetDeviceCount(&deviceCount); + if (deviceCount < 2) return; + + for (int p = 0; p < deviceCount; ++p) { + int hostAllocOk = 0; + cuDeviceGetAttribute(&hostAllocOk, + CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED, p); + if (!hostAllocOk) continue; + for (int c = 0; c < deviceCount; ++c) { + if (c == p) continue; + int importOk = 0; + cuDeviceGetAttribute(&importOk, + CU_DEVICE_ATTRIBUTE_DMA_BUF_SUPPORTED, c); + if (importOk) { *outProducer = p; *outConsumer = c; return; } + } + } +} + +/* Cross-GPU cross-process child: producer on the discovered producer GPU. + * Mirrors runCrossProcessChild but runs on a specific device chosen by + * findCrossGpuPair. The parent is the arbiter for skip decisions: child + * waits for a "go" byte from the parent (or an EOF if the parent decided + * to skip the demo) before allocating anything. */ +static int runCrossProcCrossGpuChild(int sock) +{ + cuInit(0); + + char go = 0; + if (read(sock, &go, 1) <= 0) return 0; + + int producer = -1, consumer = -1; + findCrossGpuPair(&producer, &consumer); + if (producer < 0) return 0; + + cudaSetDevice(producer); + + DmabufExport e = exportHostAllocAsDmabuf(NUM_ELEMENTS * sizeof(int)); + printf(" child: on device %d, allocated %zu bytes, exported as dma-buf fd %d\n", + producer, e.size, e.fd); + + int blocks = (NUM_ELEMENTS + BLOCK_SIZE - 1) / BLOCK_SIZE; + writePatternKernel<<>>((int *)e.alignedPtr, PATTERN_BASE, NUM_ELEMENTS); + cudaDeviceSynchronize(); + printf(" child: wrote pattern\n"); + + sendFd(sock, e.fd); + printf(" child: sent fd to parent\n"); + + char ack = 0; + [[maybe_unused]] ssize_t r = read(sock, &ack, 1); + + /* Free up resources. */ + close(e.fd); + cuMemFreeHost(e.allocBase); + return 0; +} + +/* Cross-GPU cross-process parent: consumer on the discovered consumer GPU. + * Decides whether the demo proceeds: signals "go" to the child if a + * qualifying pair exists, otherwise prints a skip message and returns + * (closing the socket without writing, which the child sees as EOF). */ +static int runCrossProcCrossGpuParent(int sock) +{ + int producer = -1, consumer = -1; + findCrossGpuPair(&producer, &consumer); + if (producer < 0) { + printf(" no GPU pair satisfies the dma-buf capability attributes. Skipping.\n"); + return 0; + } + + cudaSetDevice(consumer); + + char go = 'G'; + [[maybe_unused]] ssize_t r_go = write(sock, &go, 1); + + /* fd is the dma-buf that the producer child just wrote to on its own GPU; + * import it into this parent's context on the consumer GPU below to + * access the same underlying memory. */ + int fd = recvFd(sock); + printf(" parent: on device %d, received dma-buf fd %d from child\n", consumer, fd); + + const size_t size = alignUp(NUM_ELEMENTS * sizeof(int), (size_t)sysconf(_SC_PAGESIZE)); + + CUexternalMemory extMem = NULL; + CUdeviceptr importedPtr = 0; + importDmabuf(fd, size, &extMem, &importedPtr); + printf(" parent: imported dma-buf as device pointer\n"); + + int *errors = NULL; + cudaMallocHost(&errors, sizeof(int)); + *errors = 0; + int blocks = (NUM_ELEMENTS + BLOCK_SIZE - 1) / BLOCK_SIZE; + verifyPatternKernel<<>>( + (int *)importedPtr, PATTERN_BASE, NUM_ELEMENTS, errors); + cudaDeviceSynchronize(); + + int rc = (*errors == 0) ? 0 : -1; + printf(" parent: %s (%d mismatches)\n", rc == 0 ? "verified" : "Error", *errors); + + char ack = 'A'; + [[maybe_unused]] ssize_t r_ack = write(sock, &ack, 1); + + /* Free up resources. */ + cudaFreeHost(errors); + cuDestroyExternalMemory(extMem); + close(fd); + return rc; +} + +/* Cross-GPU cross-process orchestration: spawn the producer child the same + * way as spawnCrossProcessChild. Like the single-GPU IPC demo, this fork + * must happen before any cuInit in the parent process. */ +static pid_t spawnCrossProcCrossGpuChild(int *outParentSocket) +{ + int sockets[2]; + if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockets) != 0) { + perror("socketpair"); + return -1; + } + + fflush(stdout); + fflush(stderr); + + pid_t pid = fork(); + if (pid < 0) { + perror("fork"); + close(sockets[0]); + close(sockets[1]); + return -1; + } + if (pid == 0) { + close(sockets[1]); + int rc = runCrossProcCrossGpuChild(sockets[0]); + close(sockets[0]); + fflush(stdout); + fflush(stderr); + _exit(rc == 0 ? 0 : 1); + } + + close(sockets[0]); + *outParentSocket = sockets[1]; + return pid; +} + +int main() +{ + /* Make stdout line-buffered so printf output from the parent and the + * fork()ed children appears in temporal order even when stdout is + * redirected to a pipe (e.g. via ssh) rather than a terminal. */ + setvbuf(stdout, NULL, _IOLBF, 0); + + const int device = 0; + + /* Spawn both children before any cuInit in this process. Each child runs + * a producer-side role and blocks waiting for its parent to drive the + * import. fork() must precede cuInit -- the CUDA driver does not survive + * fork-after-init, so each child does its own cuInit independently. */ + int sockIpc = -1, sockCrossGpu = -1; + pid_t childIpcPid = spawnCrossProcessChild(device, &sockIpc); + if (childIpcPid < 0) return 1; + pid_t childCrossGpuPid = spawnCrossProcCrossGpuChild(&sockCrossGpu); + if (childCrossGpuPid < 0) { + close(sockIpc); + reapCrossProcessChild(childIpcPid); + return 1; + } + + cuInit(0); + + int dmabufExportSupported = 0; + cuDeviceGetAttribute(&dmabufExportSupported, + CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED, device); + if (!dmabufExportSupported) { + printf("Device %d does not report CU_DEVICE_ATTRIBUTE_HOST_ALLOC_DMA_BUF_SUPPORTED. " + "Skipping sample.\n", device); + close(sockIpc); + close(sockCrossGpu); + reapCrossProcessChild(childIpcPid); + reapCrossProcessChild(childCrossGpuPid); + return 0; + } + + cudaDeviceProp props; + cudaGetDeviceProperties(&props, device); + printf("Device %d: %s (Compute Capability %d.%d)\n\n", + device, props.name, props.major, props.minor); + + printf("Same-process round-trip\n"); + int rc = runSameProcess(device); + + printf("\nCross-process IPC (fork + SCM_RIGHTS)\n"); + int ipcParentRc = (rc == 0) ? runCrossProcessParent(device, sockIpc) : -1; + close(sockIpc); + int ipcChildRc = reapCrossProcessChild(childIpcPid); + if (rc == 0 && (ipcParentRc != 0 || ipcChildRc != 0)) rc = -1; + + printf("\nCross-GPU sharing across processes\n"); + int crossGpuParentRc = (rc == 0) ? runCrossProcCrossGpuParent(sockCrossGpu) : -1; + close(sockCrossGpu); + int crossGpuChildRc = reapCrossProcessChild(childCrossGpuPid); + if (rc == 0 && (crossGpuParentRc != 0 || crossGpuChildRc != 0)) rc = -1; + + if (rc == 0) printf("\nDone\n"); + return rc == 0 ? 0 : 1; +} diff --git a/cpp/3_CUDA_Features/dmabufInterop/dmabufInterop_helpers.h b/cpp/3_CUDA_Features/dmabufInterop/dmabufInterop_helpers.h new file mode 100644 index 00000000..cb788352 --- /dev/null +++ b/cpp/3_CUDA_Features/dmabufInterop/dmabufInterop_helpers.h @@ -0,0 +1,110 @@ +/* Copyright (c) 2026, NVIDIA CORPORATION. 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. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. + */ + +/* + * POSIX helpers used by the cross-process demos in dmabufInterop.cu: + * - sendFd / recvFd: transport a file descriptor between two processes + * over a UNIX domain socket via the SCM_RIGHTS control message. + * - reapCrossProcessChild: waitpid() wrapper that returns 0 iff the child + * exited cleanly with status 0. + * + * These are POSIX-only (no CUDA code) and are separated out so that + * dmabufInterop.cu stays focused on the CUDA dma-buf export/import flow. + */ + +#ifndef DMABUF_INTEROP_HELPERS_H +#define DMABUF_INTEROP_HELPERS_H + +#include +#include +#include +#include +#include +#include +#include + +/* Send a file descriptor over a UNIX domain socket using SCM_RIGHTS. */ +static inline void sendFd(int sock, int fd) +{ + struct msghdr msg = {}; + char dummy = 'F'; + struct iovec iov = { &dummy, 1 }; + msg.msg_iov = &iov; + msg.msg_iovlen = 1; + + char cbuf[CMSG_SPACE(sizeof(int))] = {}; + msg.msg_control = cbuf; + msg.msg_controllen = sizeof(cbuf); + + struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg); + cmsg->cmsg_level = SOL_SOCKET; + cmsg->cmsg_type = SCM_RIGHTS; + cmsg->cmsg_len = CMSG_LEN(sizeof(int)); + memcpy(CMSG_DATA(cmsg), &fd, sizeof(int)); + + (void)sendmsg(sock, &msg, 0); +} + +/* Receive a file descriptor from a UNIX domain socket. Returns -1 if no + * valid single-fd SCM_RIGHTS control message was received. */ +static inline int recvFd(int sock) +{ + struct msghdr msg = {}; + char dummy = 0; + struct iovec iov = { &dummy, 1 }; + msg.msg_iov = &iov; + msg.msg_iovlen = 1; + + char cbuf[CMSG_SPACE(sizeof(int))] = {}; + msg.msg_control = cbuf; + msg.msg_controllen = sizeof(cbuf); + + (void)recvmsg(sock, &msg, 0); + + struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msg); + /* Validate that recvmsg actually delivered a single-fd SCM_RIGHTS control + * message before dereferencing -- a truncated or absent ancillary buffer + * would otherwise crash on the memcpy below. */ + if (cmsg == NULL || cmsg->cmsg_len != CMSG_LEN(sizeof(int))) return -1; + int fd = -1; + memcpy(&fd, CMSG_DATA(cmsg), sizeof(int)); + return fd; +} + +/* Wait for a child process to exit and return 0 iff it exited cleanly with + * status 0. */ +static inline int reapCrossProcessChild(pid_t pid) +{ + int status = 0; + if (waitpid(pid, &status, 0) < 0) { + perror("waitpid"); + return -1; + } + return (WIFEXITED(status) && WEXITSTATUS(status) == 0) ? 0 : -1; +} + +#endif /* DMABUF_INTEROP_HELPERS_H */ diff --git a/cpp/3_CUDA_Features/dmmaTensorCoreGemm/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/dmmaTensorCoreGemm/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/dmmaTensorCoreGemm/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/dmmaTensorCoreGemm/.vscode/extensions.json b/cpp/3_CUDA_Features/dmmaTensorCoreGemm/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/dmmaTensorCoreGemm/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/dmmaTensorCoreGemm/CMakeLists.txt b/cpp/3_CUDA_Features/dmmaTensorCoreGemm/CMakeLists.txt index d3aa179c..af2ed418 100644 --- a/cpp/3_CUDA_Features/dmmaTensorCoreGemm/CMakeLists.txt +++ b/cpp/3_CUDA_Features/dmmaTensorCoreGemm/CMakeLists.txt @@ -1,41 +1,31 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(dmmaTensorCoreGemm LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - # This sample is not supported on QNX if(CMAKE_SYSTEM_NAME STREQUAL "QNX") message(STATUS "Will not build sample ${PROJECT_NAME} - not supported on QNX") return() endif() -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for dmmaTensorCoreGemm add_executable(dmmaTensorCoreGemm dmmaTensorCoreGemm.cu) target_compile_options(dmmaTensorCoreGemm PRIVATE $<$:--extended-lambda>) target_compile_features(dmmaTensorCoreGemm PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(dmmaTensorCoreGemm PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/globalToShmemAsyncCopy/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/globalToShmemAsyncCopy/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/globalToShmemAsyncCopy/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/globalToShmemAsyncCopy/.vscode/extensions.json b/cpp/3_CUDA_Features/globalToShmemAsyncCopy/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/globalToShmemAsyncCopy/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/globalToShmemAsyncCopy/CMakeLists.txt b/cpp/3_CUDA_Features/globalToShmemAsyncCopy/CMakeLists.txt index 47abd5e0..117c0c4c 100644 --- a/cpp/3_CUDA_Features/globalToShmemAsyncCopy/CMakeLists.txt +++ b/cpp/3_CUDA_Features/globalToShmemAsyncCopy/CMakeLists.txt @@ -1,23 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(globalToShmemAsyncCopy LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) # This sample is not supported on QNX @@ -26,16 +21,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "QNX") return() endif() -# Source file -# Add target for globalToShmemAsyncCopy add_executable(globalToShmemAsyncCopy globalToShmemAsyncCopy.cu) target_compile_options(globalToShmemAsyncCopy PRIVATE $<$:--extended-lambda>) target_compile_features(globalToShmemAsyncCopy PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(globalToShmemAsyncCopy PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/graphConditionalNodes/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/graphConditionalNodes/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/graphConditionalNodes/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/graphConditionalNodes/.vscode/extensions.json b/cpp/3_CUDA_Features/graphConditionalNodes/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/graphConditionalNodes/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/graphConditionalNodes/CMakeLists.txt b/cpp/3_CUDA_Features/graphConditionalNodes/CMakeLists.txt index 5e7cd329..d3cd9fff 100644 --- a/cpp/3_CUDA_Features/graphConditionalNodes/CMakeLists.txt +++ b/cpp/3_CUDA_Features/graphConditionalNodes/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(graphConditionalNodes LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for graphConditionalNodes add_executable(graphConditionalNodes graphConditionalNodes.cu) target_compile_options(graphConditionalNodes PRIVATE $<$:--extended-lambda>) target_compile_features(graphConditionalNodes PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(graphConditionalNodes PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/graphMemoryFootprint/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/graphMemoryFootprint/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/graphMemoryFootprint/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/graphMemoryFootprint/.vscode/extensions.json b/cpp/3_CUDA_Features/graphMemoryFootprint/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/graphMemoryFootprint/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/graphMemoryFootprint/CMakeLists.txt b/cpp/3_CUDA_Features/graphMemoryFootprint/CMakeLists.txt index 29d206b9..fc9d5b01 100644 --- a/cpp/3_CUDA_Features/graphMemoryFootprint/CMakeLists.txt +++ b/cpp/3_CUDA_Features/graphMemoryFootprint/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(graphMemoryFootprint LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for graphMemoryFootprint add_executable(graphMemoryFootprint graphMemoryFootprint.cu) target_compile_options(graphMemoryFootprint PRIVATE $<$:--extended-lambda>) target_compile_features(graphMemoryFootprint PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(graphMemoryFootprint PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/graphMemoryNodes/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/graphMemoryNodes/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/graphMemoryNodes/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/graphMemoryNodes/.vscode/extensions.json b/cpp/3_CUDA_Features/graphMemoryNodes/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/graphMemoryNodes/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/graphMemoryNodes/CMakeLists.txt b/cpp/3_CUDA_Features/graphMemoryNodes/CMakeLists.txt index aeabc6bc..a1e668cd 100644 --- a/cpp/3_CUDA_Features/graphMemoryNodes/CMakeLists.txt +++ b/cpp/3_CUDA_Features/graphMemoryNodes/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(graphMemoryNodes LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for graphMemoryNodes add_executable(graphMemoryNodes graphMemoryNodes.cu) target_compile_options(graphMemoryNodes PRIVATE $<$:--extended-lambda>) target_compile_features(graphMemoryNodes PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(graphMemoryNodes PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/immaTensorCoreGemm/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/immaTensorCoreGemm/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/immaTensorCoreGemm/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/immaTensorCoreGemm/.vscode/extensions.json b/cpp/3_CUDA_Features/immaTensorCoreGemm/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/immaTensorCoreGemm/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/immaTensorCoreGemm/CMakeLists.txt b/cpp/3_CUDA_Features/immaTensorCoreGemm/CMakeLists.txt index 7d711938..aa5b2ffe 100644 --- a/cpp/3_CUDA_Features/immaTensorCoreGemm/CMakeLists.txt +++ b/cpp/3_CUDA_Features/immaTensorCoreGemm/CMakeLists.txt @@ -1,35 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(immaTensorCoreGemm LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for immaTensorCoreGemm add_executable(immaTensorCoreGemm immaTensorCoreGemm.cu) target_compile_options(immaTensorCoreGemm PRIVATE $<$:--extended-lambda>) target_compile_features(immaTensorCoreGemm PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(immaTensorCoreGemm PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/jacobiCudaGraphs/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/jacobiCudaGraphs/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/jacobiCudaGraphs/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/jacobiCudaGraphs/.vscode/extensions.json b/cpp/3_CUDA_Features/jacobiCudaGraphs/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/jacobiCudaGraphs/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/jacobiCudaGraphs/CMakeLists.txt b/cpp/3_CUDA_Features/jacobiCudaGraphs/CMakeLists.txt index a39b81af..bab1120b 100644 --- a/cpp/3_CUDA_Features/jacobiCudaGraphs/CMakeLists.txt +++ b/cpp/3_CUDA_Features/jacobiCudaGraphs/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(jacobiCudaGraphs LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for jacobiCudaGraphs add_executable(jacobiCudaGraphs jacobi.cu main.cpp) target_compile_options(jacobiCudaGraphs PRIVATE $<$:--extended-lambda>) target_compile_features(jacobiCudaGraphs PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(jacobiCudaGraphs PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(jacobiCudaGraphs PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/0_Introduction/simpleTemplates/CMakeLists.txt b/cpp/3_CUDA_Features/localityDomains/CMakeLists.txt similarity index 68% rename from cpp/0_Introduction/simpleTemplates/CMakeLists.txt rename to cpp/3_CUDA_Features/localityDomains/CMakeLists.txt index e4ae61e1..bf3232eb 100644 --- a/cpp/0_Introduction/simpleTemplates/CMakeLists.txt +++ b/cpp/3_CUDA_Features/localityDomains/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.20) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") -project(simpleTemplates LANGUAGES C CXX CUDA) +project(localityDomains LANGUAGES C CXX CUDA) find_package(CUDAToolkit REQUIRED) @@ -16,18 +16,15 @@ else() set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) endif() -# Include directories and libraries -include_directories(../../../Common) - # Source file -# Add target for simpleTemplates -add_executable(simpleTemplates simpleTemplates.cu) +# Add target for localityDomains +add_executable(localityDomains localityDomains.cu) -target_compile_options(simpleTemplates PRIVATE $<$:--extended-lambda>) +target_compile_options(localityDomains PRIVATE $<$:--extended-lambda>) -target_compile_features(simpleTemplates PRIVATE cxx_std_17 cuda_std_17) +target_compile_features(localityDomains PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(simpleTemplates PROPERTIES CUDA_SEPARABLE_COMPILATION ON) +set_target_properties(localityDomains PROPERTIES CUDA_SEPARABLE_COMPILATION ON) # Include installation configuration include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) diff --git a/cpp/3_CUDA_Features/localityDomains/README.md b/cpp/3_CUDA_Features/localityDomains/README.md new file mode 100644 index 00000000..cc658a83 --- /dev/null +++ b/cpp/3_CUDA_Features/localityDomains/README.md @@ -0,0 +1,86 @@ +# localityDomains - CUDA Runtime API Locality Domains + +## Description + +This CUDA Runtime API sample demonstrates localized compute and memory resources. + +Compute is localized by splitting a device's SM resources into locality domain partitions and constructing a green context and stream per locality domain. Memory is localized by allocating from localized memory pools. + +## What You'll Learn +How to: +- query a device's locality domain count and SM count per domain +- partition SM resources by locality domain ID +- create green contexts and streams from localized SM partitions +- create localized memory pools and allocate from them asynchronously +- query the locality domain associated with a stream and device pointer + +## Key Concepts + +- **Locality domain** — a portion of a GPU that contains streaming multiprocessors (SMs) and device memory. +**Green context** — an execution context created from a selected subset of device resources. +- **Localized memory pool** — a stream-ordered allocator whose physical memory is placed in a selected locality domain. + +## Key APIs + +### CUDA Runtime + +- `cudaDeviceGetAttribute` — query the number of locality domains and SMs per domain +- `cudaDevSmResourceSplit` — partition the device's SM resources +- `cudaMemPoolCreate` — create a localized memory pool and allocate from it +- `cudaStreamGetDevResource` — inspect stream locality +- `cudaPointerGetAttributes` — inspect allocation locality + +## Requirements + +### Hardware + +- NVIDIA GPU that supports locality domains and stream-ordered memory pools + +### Software + +- CUDA Toolkit and NVIDIA driver with locality domain support +- Linux or QNX on x86_64 or aarch64 +- CMake 3.20 or newer +- A C++17-capable host compiler + +## How to Build + +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. + +## How to Run + +```bash +./localityDomains +``` + +No command-line arguments are required. The sample always runs on device 0. + +## Expected Output + +The number of locality domains and SMs depends on the GPU. A run has the following form: + +```text +CUDA Runtime API locality domains sample +Locality domain count: +SMs per locality domain: +Device SMs split into partitions + - result[0]: .localityDomainId = 0, .smCount = +... +Green context stream 0 is localized to locality domain 0 +... +allocation 0x
is localized to locality domain 0 +... +``` + +If device 0 does not support memory pools, the sample reports that it is waiving execution and exits with status EXIT_WAIVED. + +## Files + +- `localityDomains.cu` — Runtime API example +- `README.md` — this file +- `CMakeLists.txt` — build configuration + +## See Also + +- [CUDA Runtime API](https://docs.nvidia.com/cuda/cuda-runtime-api/) +- [CUDA Programming Guide](https://docs.nvidia.com/cuda/cuda-programming-guide/) diff --git a/cpp/3_CUDA_Features/localityDomains/localityDomains.cu b/cpp/3_CUDA_Features/localityDomains/localityDomains.cu new file mode 100644 index 00000000..456532f1 --- /dev/null +++ b/cpp/3_CUDA_Features/localityDomains/localityDomains.cu @@ -0,0 +1,171 @@ +/* Copyright (c) 2026, NVIDIA CORPORATION. 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. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. + */ + +/* + * This sample demonstrates CUDA locality domains using the Runtime API. + * It creates one green context and stream per reported locality domain and + * allocates one localized memory-pool chunk per locality domain, then queries the + * placement back from both the stream resource and the device pointer. + */ + +#include +#include +#include +#include +#include +#include + +int main() +{ + std::cout << "CUDA Runtime API locality domains sample" << std::endl; + + int dev = 0; + cudaSetDevice(dev); + + int memoryPoolsSupported = 0; + cudaDeviceGetAttribute(&memoryPoolsSupported, cudaDevAttrMemoryPoolsSupported, dev); + + if (!memoryPoolsSupported) { + std::cout << "Waiving execution as the device does not support memory pools." << std::endl; + return 0; + } + + // Device information + int localityDomainCount = 0; + { + int localityDomainSmCount = 0; + cudaDeviceGetAttribute(&localityDomainCount, cudaDevAttrLocalityDomainCount, dev); + cudaDeviceGetAttribute(&localityDomainSmCount, cudaDevAttrLocalityDomainMultiprocessorCount, dev); + + std::cout << "Locality domain count: " << localityDomainCount << std::endl; + std::cout << "SMs per locality domain: " << localityDomainSmCount << std::endl; + } + + // Construct localized green contexts and streams + std::vector greenContexts(localityDomainCount); + std::vector streams(localityDomainCount); + { + cudaDevResource smResource = {}; + cudaDeviceGetDevResource(dev, &smResource, cudaDevResourceTypeSm); + + std::vector params(localityDomainCount); + for (size_t i = 0; i < localityDomainCount; i++) { + std::memset(¶ms[i], 0, sizeof(params[i])); + params[i].flags = cudaDevSmResourceGroupLocalityDomainId; + params[i].localityDomainId = static_cast(i); + } + + std::vector result(localityDomainCount); + cudaDevResource remainder = {}; + + cudaDevSmResourceSplit(result.data(), localityDomainCount, &smResource, &remainder, 0, params.data()); + std::cout << "Device SMs split into " << localityDomainCount << " partitions" << std::endl; + for (size_t i = 0; i < localityDomainCount; i++) { + std::cout << " - result[" << i << "]: .localityDomainId = " << result[i].sm.localityDomainId + << ", .smCount = " << result[i].sm.smCount << std::endl; + } + if (remainder.sm.smCount > 0) { + std::cout << " - remainder: .localityDomainId = none, .smCount = " << remainder.sm.smCount << std::endl; + } + + for (size_t i = 0; i < localityDomainCount; i++) { + cudaDevResourceDesc_t desc = nullptr; + cudaDevResourceGenerateDesc(&desc, &result[i], 1); + cudaGreenCtxCreate(&greenContexts[i], desc, dev, 0); + cudaExecutionCtxStreamCreate(&streams[i], greenContexts[i], cudaStreamNonBlocking, 0); + } + } + + // Inspect locality of streams + { + for (size_t i = 0; i < localityDomainCount; i++) { + cudaDevResource streamSmResource = {}; + cudaStreamGetDevResource(streams[i], &streamSmResource, cudaDevResourceTypeSm); + bool isStreamLocalized = (streamSmResource.sm.flags & cudaDevSmResourceGroupLocalityDomainId) != 0; + std::cout << "Green context stream " << i << " "; + if (isStreamLocalized) { + unsigned int streamLocalityDomain = streamSmResource.sm.localityDomainId; + std::cout << "is localized to locality domain " << streamLocalityDomain << std::endl; + } + else { + std::cout << "is not localized" << std::endl; + } + } + } + + // Allocate localized memory + size_t allocationSize = 1 << 20; + std::vector localizedPtrs(localityDomainCount); + std::vector pools(localityDomainCount); + { + for (size_t i = 0; i < localityDomainCount; i++) { + cudaMemPoolProps poolProps = {}; + poolProps.allocType = cudaMemAllocationTypePinned; + poolProps.location.type = cudaMemLocationTypeDeviceLocalityDomain; + poolProps.location.localized.deviceId = static_cast(dev); + poolProps.location.localized.localityDomainId = static_cast(i); + + cudaMemPoolCreate(&pools[i], &poolProps); + cudaMallocFromPoolAsync(&localizedPtrs[i], allocationSize, pools[i], streams[i]); + cudaStreamSynchronize(streams[i]); + } + } + + // Inspect locality of allocations + { + for (void *ptr : localizedPtrs) { + cudaPointerAttributes pointerAttributes = {}; + cudaPointerGetAttributes(&pointerAttributes, ptr); + + std::cout << "allocation 0x" << std::hex << reinterpret_cast(ptr) << std::dec; + if (pointerAttributes.localityDomainOrdinal == -1) { + std::cout << " is not localized." << std::endl; + } + else { + std::cout << " is localized to locality domain " << pointerAttributes.localityDomainOrdinal + << std::endl; + } + } + } + + // Clean up + for (size_t i = 0; i < localizedPtrs.size(); i++) { + cudaFreeAsync(localizedPtrs[i], streams[i]); + } + for (cudaStream_t stream : streams) { + cudaStreamSynchronize(stream); + cudaStreamDestroy(stream); + } + for (cudaExecutionContext_t greenContext : greenContexts) { + cudaExecutionCtxDestroy(greenContext); + } + for (cudaMemPool_t pool : pools) { + cudaMemPoolDestroy(pool); + } + + return 0; +} diff --git a/cpp/0_Introduction/mergeSort/CMakeLists.txt b/cpp/3_CUDA_Features/localityDomainsDrv/CMakeLists.txt similarity index 61% rename from cpp/0_Introduction/mergeSort/CMakeLists.txt rename to cpp/3_CUDA_Features/localityDomainsDrv/CMakeLists.txt index cc8747ca..cbc27d15 100644 --- a/cpp/0_Introduction/mergeSort/CMakeLists.txt +++ b/cpp/3_CUDA_Features/localityDomainsDrv/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.20) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") -project(mergeSort LANGUAGES C CXX CUDA) +project(localityDomainsDrv LANGUAGES C CXX CUDA) find_package(CUDAToolkit REQUIRED) @@ -16,22 +16,24 @@ else() set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) endif() -# Include directories and libraries -include_directories(../../../Common) - # Source file -# Add target for mergeSort -add_executable(mergeSort mergeSort.cu main.cpp mergeSort_host.cpp mergeSort_validate.cpp) +# Add target for localityDomainsDrv +add_executable(localityDomainsDrv localityDomainsDrv.cpp) -target_compile_options(mergeSort PRIVATE $<$:--extended-lambda>) +target_compile_options(localityDomainsDrv PRIVATE $<$:--extended-lambda>) -target_compile_features(mergeSort PRIVATE cxx_std_17 cuda_std_17) +target_compile_features(localityDomainsDrv PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(mergeSort PROPERTIES CUDA_SEPARABLE_COMPILATION ON) -target_include_directories(mergeSort PRIVATE +set_target_properties(localityDomainsDrv PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + +target_include_directories(localityDomainsDrv PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) +target_link_libraries(localityDomainsDrv PUBLIC + CUDA::cuda_driver +) + # Include installation configuration include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) setup_samples_install() diff --git a/cpp/3_CUDA_Features/localityDomainsDrv/README.md b/cpp/3_CUDA_Features/localityDomainsDrv/README.md new file mode 100644 index 00000000..c12e92dd --- /dev/null +++ b/cpp/3_CUDA_Features/localityDomainsDrv/README.md @@ -0,0 +1,86 @@ +# localityDomainsDrv - CUDA Driver API Locality Domains + +## Description + +This CUDA Driver API sample demonstrates localized compute and memory resources. + +Compute is localized by splitting a device's SM resources into locality domain partitions and constructing a green context and stream per locality domain. Memory is localized by creating a localized memory region and mapping it. + +## What You'll Learn +How to: +- query a device's locality domain count and SM count per locality domain +- partition SM resources by locality domain ID +- create green contexts and streams from localized SM partitions +- create and map physical allocations in locality domains +- query the locality domain associated with a stream and device pointer + +## Key Concepts + +- **Locality domain** — a portion of a GPU that contains streaming multiprocessors (SMs) and device memory. +**Green context** — an execution context created from a selected subset of device resources. +- **Virtual memory management** — separate control over virtual addresses, physical allocations, mappings, and access permissions. + +## Key APIs + +### CUDA Driver + +- `cuDeviceGetAttribute` — query the number of locality domains and SMs per domain +- `cuDevSmResourceSplit` — partition the device's SM resources +- `cuMemCreate` — create localized physical memory +- `cuStreamGetDevResource` — inspect stream locality +- `cuPointerGetAttribute` — inspect allocation locality + +## Requirements + +### Hardware + +- NVIDIA GPU that supports locality domains + +### Software + +- CUDA Toolkit and NVIDIA driver with locality domain support +- Linux or QNX on x86_64 or aarch64 +- CMake 3.20 or newer +- A C++17-capable host compiler + +## How to Build + +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. + +## How to Run + +```bash +./localityDomainsDrv +``` + +No command-line arguments are required. The sample always runs on device 0. + +## Expected Output + +The number of locality domains and SMs depends on the GPU. A run has the following form: + +```text +CUDA Driver API locality domains sample +Locality domain count: +SMs per locality domain: +Device SMs split into partitions + - result[0]: .localityDomainId = 0, .smCount = +... +Green context stream 0 is localized to locality domain 0 +... +Allocation granularity per chunk: bytes +Reserved VA range size: bytes +allocation 0x
is localized to locality domain 0 +... +``` + +## Files + +- `localityDomainsDrv.cpp` — Driver API example +- `README.md` — this file +- `CMakeLists.txt` — build configuration + +## See Also + +- [CUDA Driver API](https://docs.nvidia.com/cuda/cuda-driver-api/) +- [CUDA Programming Guide](https://docs.nvidia.com/cuda/cuda-programming-guide/) diff --git a/cpp/3_CUDA_Features/localityDomainsDrv/localityDomainsDrv.cpp b/cpp/3_CUDA_Features/localityDomainsDrv/localityDomainsDrv.cpp new file mode 100644 index 00000000..aa868554 --- /dev/null +++ b/cpp/3_CUDA_Features/localityDomainsDrv/localityDomainsDrv.cpp @@ -0,0 +1,188 @@ +/* Copyright (c) 2026, NVIDIA CORPORATION. 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. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. + */ + +/* + * This sample demonstrates CUDA locality domains using the Driver API. + * It creates one green context and stream per reported locality domain and + * maps one virtual-address chunk to each locality domain, then queries the + * placement back from both the stream resource and the device pointer. + */ + +#include +#include +#include +#include +#include + +int main() +{ + std::cout << "CUDA Driver API locality domains sample" << std::endl; + + cuInit(0); + + CUdevice dev; + cuDeviceGet(&dev, 0); + + CUctxCreateParams ctxCreateParams = {}; + CUcontext context; + cuCtxCreate(&context, &ctxCreateParams, 0, dev); + + // Device information + int localityDomainCount = 0; + { + cuDeviceGetAttribute(&localityDomainCount, CU_DEVICE_ATTRIBUTE_LOCALITY_DOMAIN_COUNT, dev); + int localityDomainSmCount = 0; + cuDeviceGetAttribute(&localityDomainSmCount, CU_DEVICE_ATTRIBUTE_LOCALITY_DOMAIN_MULTIPROCESSOR_COUNT, dev); + + std::cout << "Locality domain count: " << localityDomainCount << std::endl; + std::cout << "SMs per locality domain: " << localityDomainSmCount << std::endl; + } + + // Construct localized green contexts and streams + std::vector greenContexts(localityDomainCount); + std::vector streams(localityDomainCount); + { + CUdevResource smResource; + cuDeviceGetDevResource(dev, &smResource, CU_DEV_RESOURCE_TYPE_SM); + + std::vector params(localityDomainCount); + for (size_t i = 0; i < localityDomainCount; i++) { + std::memset(¶ms[i], 0, sizeof(params[i])); + params[i].flags = CU_DEV_SM_RESOURCE_GROUP_LOCALITY_DOMAIN_ID; + params[i].localityDomainId = static_cast(i); + } + + std::vector result(localityDomainCount); + CUdevResource remainder = {}; + + cuDevSmResourceSplit(result.data(), localityDomainCount, &smResource, &remainder, 0, params.data()); + std::cout << "Device SMs split into " << localityDomainCount << " partitions" << std::endl; + for (size_t i = 0; i < localityDomainCount; i++) { + std::cout << " - result[" << i << "]: .localityDomainId = " << result[i].sm.localityDomainId + << ", .smCount = " << result[i].sm.smCount << std::endl; + } + if (remainder.sm.smCount > 0) { + std::cout << " - remainder: .localityDomainId = none, .smCount = " << remainder.sm.smCount << std::endl; + } + + for (size_t i = 0; i < localityDomainCount; i++) { + CUdevResourceDesc desc; + cuDevResourceGenerateDesc(&desc, &result[i], 1); + cuGreenCtxCreate(&greenContexts[i], desc, dev, CU_GREEN_CTX_DEFAULT_STREAM); + cuGreenCtxStreamCreate(&streams[i], greenContexts[i], CU_STREAM_NON_BLOCKING, 0); + } + } + + // Inspect locality of streams + { + for (size_t i = 0; i < localityDomainCount; i++) { + CUdevResource streamSmResource; + cuStreamGetDevResource(streams[i], &streamSmResource, CU_DEV_RESOURCE_TYPE_SM); + bool isStreamLocalized = (streamSmResource.sm.flags & CU_DEV_SM_RESOURCE_GROUP_LOCALITY_DOMAIN_ID) != 0; + std::cout << "Green context stream " << i << " "; + if (isStreamLocalized) { + unsigned int streamLocalityDomain = streamSmResource.sm.localityDomainId; + std::cout << "is localized to locality domain " << streamLocalityDomain << std::endl; + } + else { + std::cout << "is not localized" << std::endl; + } + } + } + + // Allocate localized memory + CUdeviceptr allocationBase = 0; + size_t allocationGranularity = 0; + size_t allocationSize = 0; + std::vector localizedPtrs(localityDomainCount); + { + { + CUmemAllocationProp prop = {}; + prop.type = CU_MEM_ALLOCATION_TYPE_PINNED; + prop.location.type = CU_MEM_LOCATION_TYPE_DEVICE_LOCALITY_DOMAIN; + prop.location.localized.deviceId = static_cast(dev); + prop.location.localized.localityDomainId = 0; + cuMemGetAllocationGranularity(&allocationGranularity, &prop, CU_MEM_ALLOC_GRANULARITY_MINIMUM); + } + std::cout << "Allocation granularity per chunk: " << allocationGranularity << " bytes" << std::endl; + allocationSize = allocationGranularity * localityDomainCount; + + cuMemAddressReserve(&allocationBase, allocationSize, 0, 0, 0); + std::cout << "Reserved VA range size: " << allocationSize << " bytes" << std::endl; + + for (size_t i = 0; i < localityDomainCount; i++) { + localizedPtrs[i] = allocationBase + i * allocationGranularity; + + CUmemGenericAllocationHandle handle; + CUmemAllocationProp prop = {}; + prop.type = CU_MEM_ALLOCATION_TYPE_PINNED; + prop.location.type = CU_MEM_LOCATION_TYPE_DEVICE_LOCALITY_DOMAIN; + prop.location.localized.deviceId = static_cast(dev); + prop.location.localized.localityDomainId = static_cast(i); + cuMemCreate(&handle, allocationGranularity, &prop, 0); + cuMemMap(localizedPtrs[i], allocationGranularity, 0, handle, 0); + + CUmemAccessDesc desc = {}; + desc.location.type = CU_MEM_LOCATION_TYPE_DEVICE_LOCALITY_DOMAIN; + desc.location.localized.deviceId = static_cast(dev); + desc.location.localized.localityDomainId = static_cast(i); + desc.flags = CU_MEM_ACCESS_FLAGS_PROT_READWRITE; + cuMemSetAccess(localizedPtrs[i], allocationGranularity, &desc, 1); + cuMemRelease(handle); + } + } + + // Inspect locality of allocations + { + for (CUdeviceptr ptr : localizedPtrs) { + unsigned int localityDomainId = 0; + cuPointerGetAttribute(&localityDomainId, CU_POINTER_ATTRIBUTE_LOCALITY_DOMAIN_ORDINAL, ptr); + std::cout << "allocation 0x" << std::hex << ptr << std::dec; + if (localityDomainId == -1) { + std::cout << " is not localized." << std::endl; + } + else { + std::cout << " is localized to locality domain " << localityDomainId << std::endl; + } + } + } + + // Clean up + for (CUstream stream : streams) { + cuStreamDestroy(stream); + } + for (CUgreenCtx greenContext : greenContexts) { + cuGreenCtxDestroy(greenContext); + } + for (CUdeviceptr localizedPtr : localizedPtrs) { + cuMemUnmap(localizedPtr, allocationGranularity); + } + cuMemAddressFree(allocationBase, allocationSize); + cuCtxDestroy(context); + + return 0; +} diff --git a/cpp/3_CUDA_Features/memMapIPCDrv/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/memMapIPCDrv/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/memMapIPCDrv/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/memMapIPCDrv/.vscode/extensions.json b/cpp/3_CUDA_Features/memMapIPCDrv/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/memMapIPCDrv/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/memMapIPCDrv/CMakeLists.txt b/cpp/3_CUDA_Features/memMapIPCDrv/CMakeLists.txt index 9856efbe..81205a8c 100644 --- a/cpp/3_CUDA_Features/memMapIPCDrv/CMakeLists.txt +++ b/cpp/3_CUDA_Features/memMapIPCDrv/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(memMapIPCDrv LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for memMapIPCDrv add_executable(memMapIPCDrv memMapIpc.cpp ../../../Common/helper_multiprocess.cpp) target_compile_options(memMapIPCDrv PRIVATE $<$:--extended-lambda>) target_compile_features(memMapIPCDrv PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(memMapIPCDrv PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(memMapIPCDrv PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -58,18 +50,16 @@ endif() add_custom_command( OUTPUT ${CUDA_PTX_FILE} - COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} ${ALL_CCFLAGS} -Wno-deprecated-gpu-targets -o ${CUDA_PTX_FILE} -ptx ${CUDA_KERNEL_SOURCE} + COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} -Wno-deprecated-gpu-targets -o ${CUDA_PTX_FILE} -ptx ${CUDA_KERNEL_SOURCE} DEPENDS ${CUDA_KERNEL_SOURCE} COMMENT "Building CUDA PTX: ${CUDA_PTX_FILE}" ) - # Create a dummy target for fatbin generation add_custom_target(generate_memMapIpc_ptx ALL DEPENDS ${CUDA_PTX_FILE}) # Ensure memMapIPCDrv depends on the fatbin add_dependencies(memMapIPCDrv generate_memMapIpc_ptx) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/newdelete/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/newdelete/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/newdelete/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/newdelete/.vscode/extensions.json b/cpp/3_CUDA_Features/newdelete/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/newdelete/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/newdelete/CMakeLists.txt b/cpp/3_CUDA_Features/newdelete/CMakeLists.txt index 4437a6d3..41437a0f 100644 --- a/cpp/3_CUDA_Features/newdelete/CMakeLists.txt +++ b/cpp/3_CUDA_Features/newdelete/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(newdelete LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for newdelete add_executable(newdelete newdelete.cu) target_compile_options(newdelete PRIVATE $<$:--extended-lambda>) target_compile_features(newdelete PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(newdelete PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/ptxjit/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/ptxjit/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/ptxjit/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/ptxjit/.vscode/extensions.json b/cpp/3_CUDA_Features/ptxjit/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/ptxjit/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/ptxjit/CMakeLists.txt b/cpp/3_CUDA_Features/ptxjit/CMakeLists.txt index 15ad74f5..cdb24826 100644 --- a/cpp/3_CUDA_Features/ptxjit/CMakeLists.txt +++ b/cpp/3_CUDA_Features/ptxjit/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(ptxjit LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for ptxjit add_executable(ptxjit ptxjit.cpp) target_compile_options(ptxjit PRIVATE $<$:--extended-lambda>) target_compile_features(ptxjit PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(ptxjit PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(ptxjit PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -51,18 +43,16 @@ endif() add_custom_command( OUTPUT ${CUDA_PTX_FILE} - COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} ${ALL_CCFLAGS} -Wno-deprecated-gpu-targets -o ${CUDA_PTX_FILE} -ptx ${CUDA_KERNEL_SOURCE} + COMMAND ${CMAKE_CUDA_COMPILER} ${INCLUDES} -Wno-deprecated-gpu-targets -o ${CUDA_PTX_FILE} -ptx ${CUDA_KERNEL_SOURCE} DEPENDS ${CUDA_KERNEL_SOURCE} COMMENT "Building CUDA PTX: ${CUDA_PTX_FILE}" ) - # Create a dummy target for fatbin generation add_custom_target(generate_ptxjit_ptx ALL DEPENDS ${CUDA_PTX_FILE}) # Ensure ptxjit depends on the fatbin add_dependencies(ptxjit generate_ptxjit_ptx) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/simpleCudaGraphs/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/simpleCudaGraphs/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/simpleCudaGraphs/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/simpleCudaGraphs/.vscode/extensions.json b/cpp/3_CUDA_Features/simpleCudaGraphs/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/simpleCudaGraphs/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/simpleCudaGraphs/CMakeLists.txt b/cpp/3_CUDA_Features/simpleCudaGraphs/CMakeLists.txt index b6a18373..ff2414ce 100644 --- a/cpp/3_CUDA_Features/simpleCudaGraphs/CMakeLists.txt +++ b/cpp/3_CUDA_Features/simpleCudaGraphs/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleCudaGraphs LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) +add_executable(simpleCudaGraphs_explicit simpleCudaGraphs_explicit.cu) +add_executable(simpleCudaGraphs_capture simpleCudaGraphs_capture.cu) -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() +foreach(target simpleCudaGraphs_explicit simpleCudaGraphs_capture) + target_compile_options(${target} PRIVATE $<$:--extended-lambda>) + target_compile_features(${target} PRIVATE cxx_std_17 cuda_std_17) + set_target_properties(${target} PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + target_include_directories(${target} PRIVATE ${CUDAToolkit_INCLUDE_DIRS}/cccl) +endforeach() -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for simpleCudaGraphs -add_executable(simpleCudaGraphs simpleCudaGraphs.cu) - -target_compile_options(simpleCudaGraphs PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleCudaGraphs PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(simpleCudaGraphs PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/simpleCudaGraphs/README.md b/cpp/3_CUDA_Features/simpleCudaGraphs/README.md index 62c1e746..f0393d82 100644 --- a/cpp/3_CUDA_Features/simpleCudaGraphs/README.md +++ b/cpp/3_CUDA_Features/simpleCudaGraphs/README.md @@ -1,30 +1,126 @@ -# simpleCudaGraphs - Simple CUDA Graphs +# Sample: CUDA Graphs (simpleCudaGraphs) ## Description -A demonstration of CUDA Graphs creation, instantiation and launch using Graphs APIs and Stream Capture APIs. +Demonstrates how to create, instantiate, and launch CUDA Graphs using two different approaches: building the graph explicitly, node by node, with `cudaGraphAddNode`, and building it automatically by recording an existing stream sequence with `cudaStreamBeginCapture` / `cudaStreamEndCapture`. A CUDA Graph records a sequence of GPU operations — memory copies, kernel launches, and host callbacks — as a reusable DAG (Directed Acyclic Graph). Once instantiated, the graph can be submitted to the GPU with a single API call per launch, reducing per-launch CPU overhead compared to issuing each operation individually. + +The workload is a two-pass parallel reduction: 16M `float` values are reduced to per-block partial sums (`reduce` kernel), then to a single `double` result (`reduceFinal` kernel). Both samples use `cub::BlockReduce` for the in-kernel reduction. Each graph is launched several times, and the host input is refilled with new random values before every launch, to show that one instantiated graph can reprocess different data each iteration. + +This sample is split into two standalone executables plus a shared header: + +| File | Role | +|---|---| +| `simpleCudaGraphs_explicit.cu` | Explicit construction via the unified `cudaGraphAddNode` API | +| `simpleCudaGraphs_capture.cu` | Automatic construction via stream capture | +| `simpleCudaGraphs.cuh` | Shared reduction kernels, host callback (and its data type), and input-fill helper used by both | + +## What You'll Learn + +- Building a CUDA Graph node by node using the unified `cudaGraphAddNode` API with a typed `cudaGraphNodeParams` +- Expressing dependencies between nodes so the runtime enforces the correct execution order +- Building the same graph automatically by recording stream operations between `cudaStreamBeginCapture` and `cudaStreamEndCapture` +- Instantiating a graph with `cudaGraphInstantiate` (one-time compilation cost) and launching it repeatedly with `cudaGraphLaunch` +- Cloning a graph with `cudaGraphClone` to produce independent executable instances +- Adding memcpy, kernel, and host-callback nodes through the single polymorphic `cudaGraphAddNode` entry point +- Reusing one instantiated graph across many launches by refilling its input buffer between launches (and synchronizing so the graph's H2D copy consumes the data before the host overwrites it) +- Using `cub::BlockReduce` for efficient block-level reductions ## Key Concepts -CUDA Graphs, Stream Capture +- **CUDA Graph** — a DAG of GPU operations captured once and replayed many times; each replay is a single `cudaGraphLaunch` call regardless of graph size +- **Graph Node** — an individual operation in the graph: memcpy, kernel launch, or host callback +- **Node dependency** — an edge from node A to node B means B cannot start until A completes; expressed as a dependency list passed to `cudaGraphAddNode` +- **Instantiation** — `cudaGraphInstantiate` compiles the graph into an optimized executable form (`cudaGraphExec_t`); this is the one-time setup cost; subsequent launches reuse it +- **Stream Capture** — `cudaStreamBeginCapture` / `cudaStreamEndCapture` records stream operations into a graph automatically; the runtime infers the same node structure as the manually built graph +- **Graph Clone** — `cudaGraphClone` deep-copies the graph structure; each clone can be independently instantiated and launched, useful when multiple CPU threads need to launch the same graph concurrently +- **Graph reuse** — an instantiated graph is a template you launch repeatedly; because this graph begins with an H2D copy from a host buffer, refilling that buffer before each launch feeds new data through the same graph (with a `cudaStreamSynchronize` between launches so the copy reads the data before the host overwrites it) +- **`cub::BlockReduce`** — CUB's block-scoped reduction primitive; all threads in a block contribute their partial sum and thread 0 receives the block total -## Supported SM Architectures +## Key APIs -## Supported OSes +### CUDA Runtime — Explicit Graph Construction +- `cudaGraphCreate` — create an empty graph +- `cudaGraphAddNode` — add a node of any type (memcpy, kernel, host, …) via a `cudaGraphNodeParams` struct +- `cudaGraphNodeParams` — unified node descriptor: a `.type` tag plus a union of per-type parameters +- `cudaGraphGetNodes` — query the number of nodes in a graph -Linux, Windows +### CUDA Runtime — Stream Capture +- `cudaStreamBeginCapture` — put a stream into capture mode; subsequent operations are recorded, not executed +- `cudaStreamEndCapture` — stop recording and return the captured graph +- `cudaLaunchHostFunc` — schedule a CPU callback on a stream (captured as a host node) -## Supported CPU Architecture +### CUDA Runtime — Instantiation and Launch +- `cudaGraphInstantiate` — compile a graph into an executable `cudaGraphExec_t` +- `cudaGraphLaunch` — submit the entire graph to a stream in a single call +- `cudaGraphClone` — deep-copy a graph structure +- `cudaStreamSynchronize` — block until the stream's queued work (including the graph's H2D copy) completes, so the host input buffer can be safely refilled for the next launch +- `cudaGraphExecDestroy` — release an executable graph +- `cudaGraphDestroy` — release a graph -x86_64, armv7l +### CUB +- `cub::BlockReduce::Sum` — reduce all per-thread values to a single block sum; result lands on thread 0 -## CUDA APIs involved +## Requirements -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaGraphClone, cudaExtent, cudaGraphLaunch, cudaStreamCreate, cudaLaunchHostFunc, cudaGraphAddMemcpyNode, cudaMallocHost, cudaPitchedPtr, cudaStreamEndCapture, cudaGraphCreate, cudaFreeHost, cudaGraphGetNodes, cudaMemsetAsync, cudaMemcpyAsync, cudaGraphAddHostNode, cudaGraphInstantiate, cudaStreamDestroy, cudaStreamBeginCapture, cudaStreamWaitEvent, cudaEventCreate, cudaMalloc, cudaFree, cudaPos, cudaGraphAddKernelNode, cudaGraphDestroy, cudaEventRecord, cudaGraphsManual, cudaStreamSynchronize, cudaGraphAddMemsetNode, cudaGraphsUsingStreamCapture, cudaGraphExecDestroy +### Hardware +- NVIDIA GPU with Compute Capability 7.5 or higher -## Prerequisites +### Software +- CMake 3.20 or newer +- A C++17-capable host compiler -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. +## How to Build -## References (for more details) +See the [top-level README](../../../README.md#building-cuda-samples) for full build instructions, including how to build all samples or a single sample standalone. + +## How to Run + +**Explicit graph construction:** +```bash +./simpleCudaGraphs_explicit +``` + +**Stream capture:** +```bash +./simpleCudaGraphs_capture +``` + +## Expected Output + +Both executables build the same 5-node graph (`Graph node count: 5`), confirming that stream capture produces the same structure as the explicit construction. Because the host input is refilled with new random values before every launch, **each of the six launches prints a different reduced sum** — showing that one instantiated graph reprocesses fresh data each iteration. The exact values depend on the platform's `rand()` implementation, but they are reproducible run-to-run and both executables print the same sequence. + +**`simpleCudaGraphs_explicit`** +```text +GPU Device 0: compute capability X.Y, SMs + +Reducing 16777216 elements +Threads per block : 512 +Graph launch iterations: 3 + +=== Explicit Graph Construction === +Graph node count: 5 +[cudaGraphsManual] Host callback final reduced sum = 0.996214 +[cudaGraphsManual] Host callback final reduced sum = 0.996187 +[cudaGraphsManual] Host callback final reduced sum = 0.996120 + +Cloned graph: +[cudaGraphsManual] Host callback final reduced sum = 0.996150 +[cudaGraphsManual] Host callback final reduced sum = 0.996184 +[cudaGraphsManual] Host callback final reduced sum = 0.996056 +``` + +**`simpleCudaGraphs_capture`** prints the same six values, each line labeled `[cudaGraphsUsingStreamCapture]` and under a `=== Stream Capture ===` header. + +## Files + +- `simpleCudaGraphs.cuh` — shared code: `THREADS_PER_BLOCK`, the `callBackData_t` type, the `myHostNodeCallback` host callback, the `init_input` host helper, and the two reduction kernels (`reduce`, `reduceFinal`) +- `simpleCudaGraphs_explicit.cu` — explicit graph construction via the unified `cudaGraphAddNode` API +- `simpleCudaGraphs_capture.cu` — graph construction via stream capture +- `CMakeLists.txt` — build configuration +- `README.md` — this file + +## See Also + +- [CUDA Programming Guide — CUDA Graphs](https://docs.nvidia.com/cuda/cuda-programming-guide/04-special-topics/cuda-graphs.html#cuda-graphs) +- [Technical Blog — Getting Started with CUDA Graphs](https://developer.nvidia.com/blog/cuda-graphs/) +- [CUDA Core Compute Libraries — What is CUB?](https://nvidia.github.io/cccl/unstable/cub/index.html#what-is-cub) diff --git a/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs.cu b/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs.cu deleted file mode 100644 index fa6eb507..00000000 --- a/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs.cu +++ /dev/null @@ -1,407 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include -#include -#include - -namespace cg = cooperative_groups; - -#define THREADS_PER_BLOCK 512 -#define GRAPH_LAUNCH_ITERATIONS 3 - -typedef struct callBackData -{ - const char *fn_name; - double *data; -} callBackData_t; - -__global__ void reduce(float *inputVec, double *outputVec, size_t inputSize, size_t outputSize) -{ - __shared__ double tmp[THREADS_PER_BLOCK]; - - cg::thread_block cta = cg::this_thread_block(); - size_t globaltid = blockIdx.x * blockDim.x + threadIdx.x; - - double temp_sum = 0.0; - for (int i = globaltid; i < inputSize; i += gridDim.x * blockDim.x) { - temp_sum += (double)inputVec[i]; - } - tmp[cta.thread_rank()] = temp_sum; - - cg::sync(cta); - - cg::thread_block_tile<32> tile32 = cg::tiled_partition<32>(cta); - - double beta = temp_sum; - double temp; - - for (int i = tile32.size() / 2; i > 0; i >>= 1) { - if (tile32.thread_rank() < i) { - temp = tmp[cta.thread_rank() + i]; - beta += temp; - tmp[cta.thread_rank()] = beta; - } - cg::sync(tile32); - } - cg::sync(cta); - - if (cta.thread_rank() == 0 && blockIdx.x < outputSize) { - beta = 0.0; - for (int i = 0; i < cta.size(); i += tile32.size()) { - beta += tmp[i]; - } - outputVec[blockIdx.x] = beta; - } -} - -__global__ void reduceFinal(double *inputVec, double *result, size_t inputSize) -{ - __shared__ double tmp[THREADS_PER_BLOCK]; - - cg::thread_block cta = cg::this_thread_block(); - size_t globaltid = blockIdx.x * blockDim.x + threadIdx.x; - - double temp_sum = 0.0; - for (int i = globaltid; i < inputSize; i += gridDim.x * blockDim.x) { - temp_sum += (double)inputVec[i]; - } - tmp[cta.thread_rank()] = temp_sum; - - cg::sync(cta); - - cg::thread_block_tile<32> tile32 = cg::tiled_partition<32>(cta); - - // do reduction in shared mem - if ((blockDim.x >= 512) && (cta.thread_rank() < 256)) { - tmp[cta.thread_rank()] = temp_sum = temp_sum + tmp[cta.thread_rank() + 256]; - } - - cg::sync(cta); - - if ((blockDim.x >= 256) && (cta.thread_rank() < 128)) { - tmp[cta.thread_rank()] = temp_sum = temp_sum + tmp[cta.thread_rank() + 128]; - } - - cg::sync(cta); - - if ((blockDim.x >= 128) && (cta.thread_rank() < 64)) { - tmp[cta.thread_rank()] = temp_sum = temp_sum + tmp[cta.thread_rank() + 64]; - } - - cg::sync(cta); - - if (cta.thread_rank() < 32) { - // Fetch final intermediate sum from 2nd warp - if (blockDim.x >= 64) - temp_sum += tmp[cta.thread_rank() + 32]; - // Reduce final warp using shuffle - for (int offset = tile32.size() / 2; offset > 0; offset /= 2) { - temp_sum += tile32.shfl_down(temp_sum, offset); - } - } - // write result for this block to global mem - if (cta.thread_rank() == 0) - result[0] = temp_sum; -} - -void init_input(float *a, size_t size) -{ - for (size_t i = 0; i < size; i++) - a[i] = (rand() & 0xFF) / (float)RAND_MAX; -} - -void CUDART_CB myHostNodeCallback(void *data) -{ - // Check status of GPU after stream operations are done - callBackData_t *tmp = (callBackData_t *)(data); - // checkCudaErrors(tmp->status); - - double *result = (double *)(tmp->data); - char *function = (char *)(tmp->fn_name); - printf("[%s] Host callback final reduced sum = %lf\n", function, *result); - *result = 0.0; // reset the result -} - -void cudaGraphsManual(float *inputVec_h, - float *inputVec_d, - double *outputVec_d, - double *result_d, - size_t inputSize, - size_t numOfBlocks) -{ - cudaStream_t streamForGraph; - cudaGraph_t graph; - std::vector nodeDependencies; - cudaGraphNode_t memcpyNode, kernelNode, memsetNode; - double result_h = 0.0; - - checkCudaErrors(cudaStreamCreate(&streamForGraph)); - - cudaKernelNodeParams kernelNodeParams = {0}; - cudaMemcpy3DParms memcpyParams = {0}; - cudaMemsetParams memsetParams = {0}; - - memcpyParams.srcArray = NULL; - memcpyParams.srcPos = make_cudaPos(0, 0, 0); - memcpyParams.srcPtr = make_cudaPitchedPtr(inputVec_h, sizeof(float) * inputSize, inputSize, 1); - memcpyParams.dstArray = NULL; - memcpyParams.dstPos = make_cudaPos(0, 0, 0); - memcpyParams.dstPtr = make_cudaPitchedPtr(inputVec_d, sizeof(float) * inputSize, inputSize, 1); - memcpyParams.extent = make_cudaExtent(sizeof(float) * inputSize, 1, 1); - memcpyParams.kind = cudaMemcpyHostToDevice; - - memsetParams.dst = (void *)outputVec_d; - memsetParams.value = 0; - memsetParams.pitch = 0; - memsetParams.elementSize = sizeof(float); // elementSize can be max 4 bytes - memsetParams.width = numOfBlocks * 2; - memsetParams.height = 1; - - checkCudaErrors(cudaGraphCreate(&graph, 0)); - checkCudaErrors(cudaGraphAddMemcpyNode(&memcpyNode, graph, NULL, 0, &memcpyParams)); - checkCudaErrors(cudaGraphAddMemsetNode(&memsetNode, graph, NULL, 0, &memsetParams)); - - nodeDependencies.push_back(memsetNode); - nodeDependencies.push_back(memcpyNode); - - void *kernelArgs[4] = {(void *)&inputVec_d, (void *)&outputVec_d, &inputSize, &numOfBlocks}; - - kernelNodeParams.func = (void *)reduce; - kernelNodeParams.gridDim = dim3(numOfBlocks, 1, 1); - kernelNodeParams.blockDim = dim3(THREADS_PER_BLOCK, 1, 1); - kernelNodeParams.sharedMemBytes = 0; - kernelNodeParams.kernelParams = (void **)kernelArgs; - kernelNodeParams.extra = NULL; - - checkCudaErrors(cudaGraphAddKernelNode( - &kernelNode, graph, nodeDependencies.data(), nodeDependencies.size(), &kernelNodeParams)); - - nodeDependencies.clear(); - nodeDependencies.push_back(kernelNode); - - memset(&memsetParams, 0, sizeof(memsetParams)); - memsetParams.dst = result_d; - memsetParams.value = 0; - memsetParams.elementSize = sizeof(float); - memsetParams.width = 2; - memsetParams.height = 1; - checkCudaErrors(cudaGraphAddMemsetNode(&memsetNode, graph, NULL, 0, &memsetParams)); - - nodeDependencies.push_back(memsetNode); - - memset(&kernelNodeParams, 0, sizeof(kernelNodeParams)); - kernelNodeParams.func = (void *)reduceFinal; - kernelNodeParams.gridDim = dim3(1, 1, 1); - kernelNodeParams.blockDim = dim3(THREADS_PER_BLOCK, 1, 1); - kernelNodeParams.sharedMemBytes = 0; - void *kernelArgs2[3] = {(void *)&outputVec_d, (void *)&result_d, &numOfBlocks}; - kernelNodeParams.kernelParams = kernelArgs2; - kernelNodeParams.extra = NULL; - - checkCudaErrors(cudaGraphAddKernelNode( - &kernelNode, graph, nodeDependencies.data(), nodeDependencies.size(), &kernelNodeParams)); - nodeDependencies.clear(); - nodeDependencies.push_back(kernelNode); - - memset(&memcpyParams, 0, sizeof(memcpyParams)); - - memcpyParams.srcArray = NULL; - memcpyParams.srcPos = make_cudaPos(0, 0, 0); - memcpyParams.srcPtr = make_cudaPitchedPtr(result_d, sizeof(double), 1, 1); - memcpyParams.dstArray = NULL; - memcpyParams.dstPos = make_cudaPos(0, 0, 0); - memcpyParams.dstPtr = make_cudaPitchedPtr(&result_h, sizeof(double), 1, 1); - memcpyParams.extent = make_cudaExtent(sizeof(double), 1, 1); - memcpyParams.kind = cudaMemcpyDeviceToHost; - checkCudaErrors( - cudaGraphAddMemcpyNode(&memcpyNode, graph, nodeDependencies.data(), nodeDependencies.size(), &memcpyParams)); - nodeDependencies.clear(); - nodeDependencies.push_back(memcpyNode); - - cudaGraphNode_t hostNode; - cudaHostNodeParams hostParams = {0}; - hostParams.fn = myHostNodeCallback; - callBackData_t hostFnData; - hostFnData.data = &result_h; - hostFnData.fn_name = "cudaGraphsManual"; - hostParams.userData = &hostFnData; - - checkCudaErrors( - cudaGraphAddHostNode(&hostNode, graph, nodeDependencies.data(), nodeDependencies.size(), &hostParams)); - - cudaGraphNode_t *nodes = NULL; - size_t numNodes = 0; - checkCudaErrors(cudaGraphGetNodes(graph, nodes, &numNodes)); - printf("\nNum of nodes in the graph created manually = %zu\n", numNodes); - - cudaGraphExec_t graphExec; - checkCudaErrors(cudaGraphInstantiate(&graphExec, graph, NULL, NULL, 0)); - - cudaGraph_t clonedGraph; - cudaGraphExec_t clonedGraphExec; - checkCudaErrors(cudaGraphClone(&clonedGraph, graph)); - checkCudaErrors(cudaGraphInstantiate(&clonedGraphExec, clonedGraph, NULL, NULL, 0)); - - for (int i = 0; i < GRAPH_LAUNCH_ITERATIONS; i++) { - checkCudaErrors(cudaGraphLaunch(graphExec, streamForGraph)); - } - - checkCudaErrors(cudaStreamSynchronize(streamForGraph)); - - printf("Cloned Graph Output.. \n"); - for (int i = 0; i < GRAPH_LAUNCH_ITERATIONS; i++) { - checkCudaErrors(cudaGraphLaunch(clonedGraphExec, streamForGraph)); - } - checkCudaErrors(cudaStreamSynchronize(streamForGraph)); - - checkCudaErrors(cudaGraphExecDestroy(graphExec)); - checkCudaErrors(cudaGraphExecDestroy(clonedGraphExec)); - checkCudaErrors(cudaGraphDestroy(graph)); - checkCudaErrors(cudaGraphDestroy(clonedGraph)); - checkCudaErrors(cudaStreamDestroy(streamForGraph)); -} - -void cudaGraphsUsingStreamCapture(float *inputVec_h, - float *inputVec_d, - double *outputVec_d, - double *result_d, - size_t inputSize, - size_t numOfBlocks) -{ - cudaStream_t stream1, stream2, stream3, streamForGraph; - cudaEvent_t forkStreamEvent, memsetEvent1, memsetEvent2; - cudaGraph_t graph; - double result_h = 0.0; - - checkCudaErrors(cudaStreamCreate(&stream1)); - checkCudaErrors(cudaStreamCreate(&stream2)); - checkCudaErrors(cudaStreamCreate(&stream3)); - checkCudaErrors(cudaStreamCreate(&streamForGraph)); - - checkCudaErrors(cudaEventCreate(&forkStreamEvent)); - checkCudaErrors(cudaEventCreate(&memsetEvent1)); - checkCudaErrors(cudaEventCreate(&memsetEvent2)); - - checkCudaErrors(cudaStreamBeginCapture(stream1, cudaStreamCaptureModeGlobal)); - - checkCudaErrors(cudaEventRecord(forkStreamEvent, stream1)); - checkCudaErrors(cudaStreamWaitEvent(stream2, forkStreamEvent, 0)); - checkCudaErrors(cudaStreamWaitEvent(stream3, forkStreamEvent, 0)); - - checkCudaErrors(cudaMemcpyAsync(inputVec_d, inputVec_h, sizeof(float) * inputSize, cudaMemcpyDefault, stream1)); - - checkCudaErrors(cudaMemsetAsync(outputVec_d, 0, sizeof(double) * numOfBlocks, stream2)); - - checkCudaErrors(cudaEventRecord(memsetEvent1, stream2)); - - checkCudaErrors(cudaMemsetAsync(result_d, 0, sizeof(double), stream3)); - checkCudaErrors(cudaEventRecord(memsetEvent2, stream3)); - - checkCudaErrors(cudaStreamWaitEvent(stream1, memsetEvent1, 0)); - - reduce<<>>(inputVec_d, outputVec_d, inputSize, numOfBlocks); - - checkCudaErrors(cudaStreamWaitEvent(stream1, memsetEvent2, 0)); - - reduceFinal<<<1, THREADS_PER_BLOCK, 0, stream1>>>(outputVec_d, result_d, numOfBlocks); - checkCudaErrors(cudaMemcpyAsync(&result_h, result_d, sizeof(double), cudaMemcpyDefault, stream1)); - - callBackData_t hostFnData = {0}; - hostFnData.data = &result_h; - hostFnData.fn_name = "cudaGraphsUsingStreamCapture"; - cudaHostFn_t fn = myHostNodeCallback; - checkCudaErrors(cudaLaunchHostFunc(stream1, fn, &hostFnData)); - checkCudaErrors(cudaStreamEndCapture(stream1, &graph)); - - cudaGraphNode_t *nodes = NULL; - size_t numNodes = 0; - checkCudaErrors(cudaGraphGetNodes(graph, nodes, &numNodes)); - printf("\nNum of nodes in the graph created using stream capture API = %zu\n", numNodes); - - cudaGraphExec_t graphExec; - checkCudaErrors(cudaGraphInstantiate(&graphExec, graph, NULL, NULL, 0)); - - cudaGraph_t clonedGraph; - cudaGraphExec_t clonedGraphExec; - checkCudaErrors(cudaGraphClone(&clonedGraph, graph)); - checkCudaErrors(cudaGraphInstantiate(&clonedGraphExec, clonedGraph, NULL, NULL, 0)); - - for (int i = 0; i < GRAPH_LAUNCH_ITERATIONS; i++) { - checkCudaErrors(cudaGraphLaunch(graphExec, streamForGraph)); - } - - checkCudaErrors(cudaStreamSynchronize(streamForGraph)); - - printf("Cloned Graph Output.. \n"); - for (int i = 0; i < GRAPH_LAUNCH_ITERATIONS; i++) { - checkCudaErrors(cudaGraphLaunch(clonedGraphExec, streamForGraph)); - } - - checkCudaErrors(cudaStreamSynchronize(streamForGraph)); - - checkCudaErrors(cudaGraphExecDestroy(graphExec)); - checkCudaErrors(cudaGraphExecDestroy(clonedGraphExec)); - checkCudaErrors(cudaGraphDestroy(graph)); - checkCudaErrors(cudaGraphDestroy(clonedGraph)); - checkCudaErrors(cudaStreamDestroy(stream1)); - checkCudaErrors(cudaStreamDestroy(stream2)); - checkCudaErrors(cudaStreamDestroy(streamForGraph)); -} - -int main(int argc, char **argv) -{ - size_t size = 1 << 24; // number of elements to reduce - size_t maxBlocks = 512; - - // This will pick the best possible CUDA capable device - int devID = findCudaDevice(argc, (const char **)argv); - - printf("%zu elements\n", size); - printf("threads per block = %d\n", THREADS_PER_BLOCK); - printf("Graph Launch iterations = %d\n", GRAPH_LAUNCH_ITERATIONS); - - float *inputVec_d = NULL, *inputVec_h = NULL; - double *outputVec_d = NULL, *result_d; - - checkCudaErrors(cudaMallocHost(&inputVec_h, sizeof(float) * size)); - checkCudaErrors(cudaMalloc(&inputVec_d, sizeof(float) * size)); - checkCudaErrors(cudaMalloc(&outputVec_d, sizeof(double) * maxBlocks)); - checkCudaErrors(cudaMalloc(&result_d, sizeof(double))); - - init_input(inputVec_h, size); - - cudaGraphsManual(inputVec_h, inputVec_d, outputVec_d, result_d, size, maxBlocks); - cudaGraphsUsingStreamCapture(inputVec_h, inputVec_d, outputVec_d, result_d, size, maxBlocks); - - checkCudaErrors(cudaFree(inputVec_d)); - checkCudaErrors(cudaFree(outputVec_d)); - checkCudaErrors(cudaFree(result_d)); - checkCudaErrors(cudaFreeHost(inputVec_h)); - return EXIT_SUCCESS; -} diff --git a/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs.cuh b/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs.cuh new file mode 100644 index 00000000..276ae2ac --- /dev/null +++ b/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs.cuh @@ -0,0 +1,106 @@ +/* Copyright (c) 2026, NVIDIA CORPORATION. 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. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. + */ + +/* + * Shared code for the simpleCudaGraphs sample. Both the explicit-graph and + * stream-capture demos build a graph around the same two-pass reduction, so the + * reduction kernels, the host callback and its data type, and the input-fill + * helper live here to avoid duplicating them across the two .cu files. + */ + +#pragma once + +#include +#include +#include +#include + +#define THREADS_PER_BLOCK 512 + +// Payload passed to the host-callback node: the demo name and the reduced result. +typedef struct callBackData +{ + const char *fn_name; + double *data; +} callBackData_t; + +// Host-callback node body: prints the reduced result, then resets it for the next launch. +inline void CUDART_CB myHostNodeCallback(void *data) +{ + callBackData_t *tmp = (callBackData_t *)(data); + double *result = (double *)(tmp->data); + printf("[%s] Host callback final reduced sum = %lf\n", tmp->fn_name, *result); + *result = 0.0; // reset the result +} + +// Fill the host input buffer with fresh pseudo-random values. Called before each +// graph launch so the same graph processes different data every iteration. +inline void init_input(float *inputVec, size_t size) +{ + for (size_t i = 0; i < size; i++) + inputVec[i] = (rand() & 0xFF) / (float)RAND_MAX; +} + +// Pass 1: reduce the input float vector to one partial sum per block. +__global__ void reduce(float *inputVec, double *outputVec, size_t inputSize, size_t outputSize) +{ + typedef cub::BlockReduce BlockReduceT; + __shared__ typename BlockReduceT::TempStorage temp_storage; + + size_t globaltid = blockIdx.x * blockDim.x + threadIdx.x; + + // Each thread adds its assigned elements into a local partial sum + double temp_sum = 0.0; + for (size_t i = globaltid; i < inputSize; i += (size_t)gridDim.x * blockDim.x) + temp_sum += (double)inputVec[i]; + + // CUB reduces all per-thread partial sums to a single block sum; result lands on thread 0 + double block_sum = BlockReduceT(temp_storage).Sum(temp_sum); + + if (threadIdx.x == 0 && blockIdx.x < outputSize) + outputVec[blockIdx.x] = block_sum; +} + +// Pass 2: reduce the per-block partial sums to a single scalar result. +__global__ void reduceFinal(double *inputVec, double *result, size_t inputSize) +{ + typedef cub::BlockReduce BlockReduceT; + __shared__ typename BlockReduceT::TempStorage temp_storage; + + size_t globaltid = blockIdx.x * blockDim.x + threadIdx.x; + + // Each thread adds its assigned elements into a local partial sum + double temp_sum = 0.0; + for (size_t i = globaltid; i < inputSize; i += (size_t)gridDim.x * blockDim.x) + temp_sum += (double)inputVec[i]; + + // CUB reduces all per-thread partial sums to a single block sum; result lands on thread 0 + double block_sum = BlockReduceT(temp_storage).Sum(temp_sum); + + if (threadIdx.x == 0) + result[0] = block_sum; +} diff --git a/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs_capture.cu b/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs_capture.cu new file mode 100644 index 00000000..0cb8a830 --- /dev/null +++ b/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs_capture.cu @@ -0,0 +1,156 @@ +/* Copyright (c) 2026, NVIDIA CORPORATION. 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. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. + */ + +/* + * Demonstrates CUDA Graph construction via stream capture. + * + * Operations are issued to a stream between cudaStreamBeginCapture and + * cudaStreamEndCapture. Instead of executing, they are recorded and the + * runtime automatically builds this graph: + * + * memcpy (H2D) -> reduce -> reduceFinal -> memcpy (D2H) -> host callback + * + * The workload is a two-pass reduction: an input float vector is reduced to + * per-block partial sums (reduce), then to a single double result (reduceFinal). + * The graph is instantiated once and launched GRAPH_LAUNCH_ITERATIONS times, + * then cloned and launched again. + */ + +#include "simpleCudaGraphs.cuh" + +#include +#include + +#define GRAPH_LAUNCH_ITERATIONS 3 + +void cudaGraphsUsingStreamCapture(float *inputVec_h, + float *inputVec_d, + double *outputVec_d, + double *result_d, + size_t inputSize, + size_t numOfBlocks) +{ + cudaStream_t stream1, streamForGraph; + cudaGraph_t graph; + double result_h = 0.0; + + cudaStreamCreate(&stream1); + cudaStreamCreate(&streamForGraph); + + // Begin capture: operations issued to stream1 are recorded, not executed. + cudaStreamBeginCapture(stream1, cudaStreamCaptureModeGlobal); + + cudaMemcpyAsync(inputVec_d, inputVec_h, sizeof(float) * inputSize, cudaMemcpyDefault, stream1); + + reduce<<>>(inputVec_d, outputVec_d, inputSize, numOfBlocks); + + reduceFinal<<<1, THREADS_PER_BLOCK, 0, stream1>>>(outputVec_d, result_d, numOfBlocks); + cudaMemcpyAsync(&result_h, result_d, sizeof(double), cudaMemcpyDefault, stream1); + + callBackData_t hostFnData = {0}; + hostFnData.data = &result_h; + hostFnData.fn_name = "cudaGraphsUsingStreamCapture"; + cudaLaunchHostFunc(stream1, myHostNodeCallback, &hostFnData); + + // End capture: the runtime builds a graph from everything recorded above. + // The resulting graph is structurally identical to the one built manually. + cudaStreamEndCapture(stream1, &graph); + + size_t numNodes = 0; + cudaGraphGetNodes(graph, NULL, &numNodes); + printf("Graph node count: %zu\n", numNodes); + + // Instantiate the captured graph into an executable form. + cudaGraphExec_t graphExec; + cudaGraphInstantiate(&graphExec, graph, NULL, NULL, 0); + + // Demonstrates cudaGraphClone — in practice, cloning is useful when multiple CPU + // threads need to launch the same graph concurrently, each with its own independent graphExec. + cudaGraph_t clonedGraph; + cudaGraphExec_t clonedGraphExec; + cudaGraphClone(&clonedGraph, graph); + cudaGraphInstantiate(&clonedGraphExec, clonedGraph, NULL, NULL, 0); + + // Refill the host input before each launch so the graph's H2D copy processes + // new data every time — one instantiated graph reused for different data. + // The per-iteration sync ensures that copy finishes before we overwrite the buffer. + for (int i = 0; i < GRAPH_LAUNCH_ITERATIONS; i++) { + init_input(inputVec_h, inputSize); + cudaGraphLaunch(graphExec, streamForGraph); + cudaStreamSynchronize(streamForGraph); + } + + printf("\nCloned graph:\n"); + for (int i = 0; i < GRAPH_LAUNCH_ITERATIONS; i++) { + init_input(inputVec_h, inputSize); + cudaGraphLaunch(clonedGraphExec, streamForGraph); + cudaStreamSynchronize(streamForGraph); + } + + cudaGraphExecDestroy(graphExec); + cudaGraphExecDestroy(clonedGraphExec); + cudaGraphDestroy(graph); + cudaGraphDestroy(clonedGraph); + cudaStreamDestroy(stream1); + cudaStreamDestroy(streamForGraph); +} + +int main() +{ + size_t size = 1 << 24; // number of elements to reduce, 16M elements + size_t maxBlocks = 512; + + int devID = 0; + cudaSetDevice(devID); + + int major, minor, smCount; + cudaDeviceGetAttribute(&major, cudaDevAttrComputeCapabilityMajor, devID); + cudaDeviceGetAttribute(&minor, cudaDevAttrComputeCapabilityMinor, devID); + cudaDeviceGetAttribute(&smCount, cudaDevAttrMultiProcessorCount, devID); + printf("GPU Device %d: compute capability %d.%d, %d SMs\n\n", devID, major, minor, smCount); + + printf("Reducing %zu elements\n", size); + printf("Threads per block : %d\n", THREADS_PER_BLOCK); + printf("Graph launch iterations: %d\n\n", GRAPH_LAUNCH_ITERATIONS); + + float *inputVec_h = NULL, *inputVec_d = NULL; + double *outputVec_d = NULL, *result_d = NULL; + + cudaMallocHost(&inputVec_h, sizeof(float) * size); + cudaMalloc(&inputVec_d, sizeof(float) * size); + cudaMalloc(&outputVec_d, sizeof(double) * maxBlocks); + cudaMalloc(&result_d, sizeof(double)); + + printf("=== Stream Capture ===\n"); + cudaGraphsUsingStreamCapture(inputVec_h, inputVec_d, outputVec_d, result_d, size, maxBlocks); + + cudaFree(inputVec_d); + cudaFree(outputVec_d); + cudaFree(result_d); + cudaFreeHost(inputVec_h); + return EXIT_SUCCESS; +} diff --git a/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs_explicit.cu b/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs_explicit.cu new file mode 100644 index 00000000..2ea36ae0 --- /dev/null +++ b/cpp/3_CUDA_Features/simpleCudaGraphs/simpleCudaGraphs_explicit.cu @@ -0,0 +1,236 @@ +/* Copyright (c) 2026, NVIDIA CORPORATION. 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. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. + */ + +/* + * Demonstrates explicit CUDA Graph construction using the unified cudaGraphAddNode API. + * + * Nodes and edges are added one at a time to build this graph: + * + * memcpy (H2D) -> reduce -> reduceFinal -> memcpy (D2H) -> host callback + * + * The workload is a two-pass reduction: an input float vector is reduced to + * per-block partial sums (reduce), then to a single double result (reduceFinal). + * The graph is instantiated once and launched GRAPH_LAUNCH_ITERATIONS times, + * then cloned and launched again. + */ + +#include "simpleCudaGraphs.cuh" + +#include +#include +#include + +#define GRAPH_LAUNCH_ITERATIONS 3 + +void cudaGraphsManual(float *inputVec_h, + float *inputVec_d, + double *outputVec_d, + double *result_d, + size_t inputSize, + size_t numOfBlocks) +{ + cudaStream_t streamForGraph; + cudaGraph_t graph; + std::vector nodeDependencies; + cudaGraphNode_t memcpyNode, kernelNode; + double result_h = 0.0; + + cudaStreamCreate(&streamForGraph); + + // cudaGraphAddNode is the unified node-creation API: one call for every node type, + // driven by a cudaGraphNodeParams struct (a .type tag + a union of per-type params). + // It replaces the previously used cudaGraphAddMemcpyNode/cudaGraphAddKernelNode calls. The struct + // has reserved fields that must be zero, so it is re-zeroed with "= {}" before each node below. + cudaGraphNodeParams nodeParams = {}; + cudaMemcpy3DParms memcpyParams = {0}; + + memcpyParams.srcArray = NULL; + memcpyParams.srcPos = make_cudaPos(0, 0, 0); + memcpyParams.srcPtr = make_cudaPitchedPtr(inputVec_h, sizeof(float) * inputSize, inputSize, 1); + memcpyParams.dstArray = NULL; + memcpyParams.dstPos = make_cudaPos(0, 0, 0); + memcpyParams.dstPtr = make_cudaPitchedPtr(inputVec_d, sizeof(float) * inputSize, inputSize, 1); + memcpyParams.extent = make_cudaExtent(sizeof(float) * inputSize, 1, 1); + memcpyParams.kind = cudaMemcpyHostToDevice; + + // Create an empty graph; nodes and edges will be added below. + cudaGraphCreate(&graph, 0); + + // Node 1: H2D memcpy — no dependencies (NULL, 0), so it can start immediately. + // For a memcpy node the cudaMemcpy3DParms goes into nodeParams.memcpy.copyParams + // (the .memcpy union member is a wrapper struct, so the copy descriptor nests one level deeper). + nodeParams = {}; + nodeParams.type = cudaGraphNodeTypeMemcpy; + nodeParams.memcpy.copyParams = memcpyParams; + cudaGraphAddNode(&memcpyNode, graph, NULL, /*dependencyData=*/NULL, 0, &nodeParams); + + // Make the next node wait for this memcpy to finish before starting. + nodeDependencies.push_back(memcpyNode); + + void *kernelArgs[4] = {(void *)&inputVec_d, (void *)&outputVec_d, &inputSize, &numOfBlocks}; + + // Node 2: first reduction kernel — depends on the H2D memcpy completing. + // Kernel params are set directly on the .kernel union member. + nodeParams = {}; + nodeParams.type = cudaGraphNodeTypeKernel; + nodeParams.kernel.func = (void *)reduce; + nodeParams.kernel.gridDim = dim3(numOfBlocks, 1, 1); + nodeParams.kernel.blockDim = dim3(THREADS_PER_BLOCK, 1, 1); + nodeParams.kernel.sharedMemBytes = 0; + nodeParams.kernel.kernelParams = (void **)kernelArgs; + nodeParams.kernel.extra = NULL; + cudaGraphAddNode( + &kernelNode, graph, nodeDependencies.data(), /*dependencyData=*/NULL, nodeDependencies.size(), &nodeParams); + + // Move dependency forward: the next node waits for this kernel. + nodeDependencies.clear(); + nodeDependencies.push_back(kernelNode); + + void *kernelArgs2[3] = {(void *)&outputVec_d, (void *)&result_d, &numOfBlocks}; + + // Node 3: final reduction kernel — depends on Node 2. + nodeParams = {}; + nodeParams.type = cudaGraphNodeTypeKernel; + nodeParams.kernel.func = (void *)reduceFinal; + nodeParams.kernel.gridDim = dim3(1, 1, 1); + nodeParams.kernel.blockDim = dim3(THREADS_PER_BLOCK, 1, 1); + nodeParams.kernel.sharedMemBytes = 0; + nodeParams.kernel.kernelParams = kernelArgs2; + nodeParams.kernel.extra = NULL; + cudaGraphAddNode( + &kernelNode, graph, nodeDependencies.data(), /*dependencyData=*/NULL, nodeDependencies.size(), &nodeParams); + nodeDependencies.clear(); + nodeDependencies.push_back(kernelNode); + + memset(&memcpyParams, 0, sizeof(memcpyParams)); + + memcpyParams.srcArray = NULL; + memcpyParams.srcPos = make_cudaPos(0, 0, 0); + memcpyParams.srcPtr = make_cudaPitchedPtr(result_d, sizeof(double), 1, 1); + memcpyParams.dstArray = NULL; + memcpyParams.dstPos = make_cudaPos(0, 0, 0); + memcpyParams.dstPtr = make_cudaPitchedPtr(&result_h, sizeof(double), 1, 1); + memcpyParams.extent = make_cudaExtent(sizeof(double), 1, 1); + memcpyParams.kind = cudaMemcpyDeviceToHost; + + // Node 4: D2H memcpy — copies the scalar result back to the host. + // Again the copy descriptor nests in nodeParams.memcpy.copyParams. + nodeParams = {}; + nodeParams.type = cudaGraphNodeTypeMemcpy; + nodeParams.memcpy.copyParams = memcpyParams; + cudaGraphAddNode(&memcpyNode, graph, nodeDependencies.data(), /*dependencyData=*/NULL, nodeDependencies.size(), &nodeParams); + nodeDependencies.clear(); + nodeDependencies.push_back(memcpyNode); + + cudaGraphNode_t hostNode; + callBackData_t hostFnData; + hostFnData.data = &result_h; + hostFnData.fn_name = "cudaGraphsManual"; + + // Node 5: host callback — runs on the CPU after the D2H copy completes. + // The .host member is cudaHostNodeParamsV2 (fn + userData, plus a syncMode field + // left at 0 by the zero-init above). + nodeParams = {}; + nodeParams.type = cudaGraphNodeTypeHost; + nodeParams.host.fn = myHostNodeCallback; + nodeParams.host.userData = &hostFnData; + cudaGraphAddNode(&hostNode, graph, nodeDependencies.data(), /*dependencyData=*/NULL, nodeDependencies.size(), &nodeParams); + + size_t numNodes = 0; + cudaGraphGetNodes(graph, NULL, &numNodes); + printf("Graph node count: %zu\n", numNodes); + + // Instantiate: compile the graph into an executable form (one-time cost). + // This is where CUDA optimizes the schedule; repeated launches reuse this. + cudaGraphExec_t graphExec; + cudaGraphInstantiate(&graphExec, graph, NULL, NULL, 0); + + // Demonstrates cudaGraphClone — in practice, cloning is useful when multiple CPU + // threads need to launch the same graph concurrently, each with its own independent graphExec. + cudaGraph_t clonedGraph; + cudaGraphExec_t clonedGraphExec; + cudaGraphClone(&clonedGraph, graph); + cudaGraphInstantiate(&clonedGraphExec, clonedGraph, NULL, NULL, 0); + + // Refill the host input before each launch so the graph's H2D copy processes + // new data every time — one instantiated graph reused for different data. + // The per-iteration sync ensures that copy finishes before we overwrite the buffer. + for (int i = 0; i < GRAPH_LAUNCH_ITERATIONS; i++) { + init_input(inputVec_h, inputSize); + cudaGraphLaunch(graphExec, streamForGraph); + cudaStreamSynchronize(streamForGraph); + } + + printf("\nCloned graph:\n"); + for (int i = 0; i < GRAPH_LAUNCH_ITERATIONS; i++) { + init_input(inputVec_h, inputSize); + cudaGraphLaunch(clonedGraphExec, streamForGraph); + cudaStreamSynchronize(streamForGraph); + } + + cudaGraphExecDestroy(graphExec); + cudaGraphExecDestroy(clonedGraphExec); + cudaGraphDestroy(graph); + cudaGraphDestroy(clonedGraph); + cudaStreamDestroy(streamForGraph); +} + +int main() +{ + size_t size = 1 << 24; // number of elements to reduce, 16M elements + size_t maxBlocks = 512; + + int devID = 0; + cudaSetDevice(devID); + + int major, minor, smCount; + cudaDeviceGetAttribute(&major, cudaDevAttrComputeCapabilityMajor, devID); + cudaDeviceGetAttribute(&minor, cudaDevAttrComputeCapabilityMinor, devID); + cudaDeviceGetAttribute(&smCount, cudaDevAttrMultiProcessorCount, devID); + printf("GPU Device %d: compute capability %d.%d, %d SMs\n\n", devID, major, minor, smCount); + + printf("Reducing %zu elements\n", size); + printf("Threads per block : %d\n", THREADS_PER_BLOCK); + printf("Graph launch iterations: %d\n\n", GRAPH_LAUNCH_ITERATIONS); + + float *inputVec_h = NULL, *inputVec_d = NULL; + double *outputVec_d = NULL, *result_d = NULL; + + cudaMallocHost(&inputVec_h, sizeof(float) * size); + cudaMalloc(&inputVec_d, sizeof(float) * size); + cudaMalloc(&outputVec_d, sizeof(double) * maxBlocks); + cudaMalloc(&result_d, sizeof(double)); + + printf("=== Explicit Graph Construction ===\n"); + cudaGraphsManual(inputVec_h, inputVec_d, outputVec_d, result_d, size, maxBlocks); + + cudaFree(inputVec_d); + cudaFree(outputVec_d); + cudaFree(result_d); + cudaFreeHost(inputVec_h); + return EXIT_SUCCESS; +} diff --git a/cpp/3_CUDA_Features/tf32TensorCoreGemm/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/tf32TensorCoreGemm/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/tf32TensorCoreGemm/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/tf32TensorCoreGemm/.vscode/extensions.json b/cpp/3_CUDA_Features/tf32TensorCoreGemm/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/tf32TensorCoreGemm/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/tf32TensorCoreGemm/CMakeLists.txt b/cpp/3_CUDA_Features/tf32TensorCoreGemm/CMakeLists.txt index 6599a6ff..8d8e13a9 100644 --- a/cpp/3_CUDA_Features/tf32TensorCoreGemm/CMakeLists.txt +++ b/cpp/3_CUDA_Features/tf32TensorCoreGemm/CMakeLists.txt @@ -1,23 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(tf32TensorCoreGemm LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) # This sample is not supported on QNX @@ -26,16 +21,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "QNX") return() endif() -# Source file -# Add target for tf32TensorCoreGemm add_executable(tf32TensorCoreGemm tf32TensorCoreGemm.cu) target_compile_options(tf32TensorCoreGemm PRIVATE $<$:--extended-lambda>) target_compile_features(tf32TensorCoreGemm PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(tf32TensorCoreGemm PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/3_CUDA_Features/warpAggregatedAtomicsCG/.vscode/c_cpp_properties.json b/cpp/3_CUDA_Features/warpAggregatedAtomicsCG/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/3_CUDA_Features/warpAggregatedAtomicsCG/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/3_CUDA_Features/warpAggregatedAtomicsCG/.vscode/extensions.json b/cpp/3_CUDA_Features/warpAggregatedAtomicsCG/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/3_CUDA_Features/warpAggregatedAtomicsCG/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/3_CUDA_Features/warpAggregatedAtomicsCG/CMakeLists.txt b/cpp/3_CUDA_Features/warpAggregatedAtomicsCG/CMakeLists.txt index e3046b34..3429ba30 100644 --- a/cpp/3_CUDA_Features/warpAggregatedAtomicsCG/CMakeLists.txt +++ b/cpp/3_CUDA_Features/warpAggregatedAtomicsCG/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(warpAggregatedAtomicsCG LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for warpAggregatedAtomicsCG add_executable(warpAggregatedAtomicsCG warpAggregatedAtomicsCG.cu) target_compile_options(warpAggregatedAtomicsCG PRIVATE $<$:--extended-lambda>) target_compile_features(warpAggregatedAtomicsCG PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(warpAggregatedAtomicsCG PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/CMakeLists.txt b/cpp/4_CUDA_Libraries/CMakeLists.txt index 0e5dfe9d..cec10106 100644 --- a/cpp/4_CUDA_Libraries/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/CMakeLists.txt @@ -1,39 +1,13 @@ -add_subdirectory(FilterBorderControlNPP) -add_subdirectory(MersenneTwisterGP11213) -add_subdirectory(batchCUBLAS) -add_subdirectory(boxFilterNPP) -add_subdirectory(cannyEdgeDetectorNPP) -add_subdirectory(conjugateGradient) add_subdirectory(conjugateGradientCudaGraphs) add_subdirectory(conjugateGradientMultiBlockCG) add_subdirectory(conjugateGradientMultiDeviceCG) -add_subdirectory(conjugateGradientPrecond) -add_subdirectory(conjugateGradientUM) add_subdirectory(cubDeviceFind) add_subdirectory(cubDeviceSegmentedScan) add_subdirectory(cubDeviceTransform) add_subdirectory(cudaNvSci) -add_subdirectory(cuSolverDn_LinearSolver) -add_subdirectory(cuSolverRf) -add_subdirectory(cuSolverSp_LinearSolver) -add_subdirectory(cuSolverSp_LowlevelCholesky) -add_subdirectory(cuSolverSp_LowlevelQR) -add_subdirectory(freeImageInteropNPP) -add_subdirectory(histEqualizationNPP) add_subdirectory(jitLto) add_subdirectory(libcuxxMdspan) add_subdirectory(libcuxxRandom) add_subdirectory(lineOfSight) -add_subdirectory(matrixMulCUBLAS) -add_subdirectory(nvJPEG) -add_subdirectory(nvJPEG_encoder) add_subdirectory(oceanFFT) add_subdirectory(randomFog) -add_subdirectory(simpleCUBLAS) -add_subdirectory(simpleCUBLASXT) -add_subdirectory(simpleCUBLAS_LU) -add_subdirectory(simpleCUFFT) -add_subdirectory(simpleCUFFT_2d_MGPU) -add_subdirectory(simpleCUFFT_MGPU) -add_subdirectory(simpleCUFFT_callback) -add_subdirectory(watershedSegmentationNPP) diff --git a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/FilterBorderControlNPP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/.vscode/extensions.json b/cpp/4_CUDA_Libraries/FilterBorderControlNPP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/CMakeLists.txt b/cpp/4_CUDA_Libraries/FilterBorderControlNPP/CMakeLists.txt deleted file mode 100644 index ee6a980f..00000000 --- a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/CMakeLists.txt +++ /dev/null @@ -1,74 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(FilterBorderControlNPP LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories( - ../../../Common - ../../../Common/UtilNPP -) - -# Source file -find_package(FreeImage) - -if(${FreeImage_FOUND}) - # Add target for FilterBorderControlNPP - add_executable(FilterBorderControlNPP FilterBorderControlNPP.cpp) - -target_compile_options(FilterBorderControlNPP PRIVATE $<$:--extended-lambda>) - -target_compile_features(FilterBorderControlNPP PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(FilterBorderControlNPP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - - target_include_directories(FilterBorderControlNPP PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} - ${FreeImage_INCLUDE_DIRS} - ) - - target_link_libraries(FilterBorderControlNPP PRIVATE - CUDA::nppc - CUDA::nppisu - CUDA::nppif - CUDA::nppitc - CUDA::nppidei - CUDA::nppial - CUDA::cudart - ${FreeImage_LIBRARIES} - ) - - # Copy data files to output directory - add_custom_command(TARGET FilterBorderControlNPP POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/data - ${CMAKE_CURRENT_BINARY_DIR}/data - ) - if(WIN32) - add_custom_command(TARGET FilterBorderControlNPP - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${FreeImage_LIBRARY}/../FreeImage.dll - ${CMAKE_CURRENT_BINARY_DIR}/$ - ) - endif() -else() - message(STATUS "FreeImage not found - will not build sample 'FilterBorderControlNPP'") -endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/FilterBorderControlNPP.cpp b/cpp/4_CUDA_Libraries/FilterBorderControlNPP/FilterBorderControlNPP.cpp deleted file mode 100644 index 3aa2d152..00000000 --- a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/FilterBorderControlNPP.cpp +++ /dev/null @@ -1,602 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -// USING NPP IMAGE FILTER SOURCE IMAGE BORDER CONTROL -// This sample demonstrates how any border version of an NPP filtering function -// can be used in the most common mode, with border control enabled. Mentioned -// functions can be used to duplicate the results of the equivalent non-border -// version of the NPP functions. They can be also used for enabling and -// disabling border control on various source image edges depending on what -// portion of the source image is being used as input. - -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) -#define WINDOWS_LEAN_AND_MEAN -#define NOMINMAX -#include -#pragma warning(disable : 4819) -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -inline int cudaDeviceInit(int argc, const char **argv) -{ - int deviceCount; - checkCudaErrors(cudaGetDeviceCount(&deviceCount)); - - if (deviceCount == 0) { - std::cerr << "CUDA error: no devices supporting CUDA." << std::endl; - exit(EXIT_FAILURE); - } - - int dev = findCudaDevice(argc, argv); - - cudaDeviceProp deviceProp; - cudaGetDeviceProperties(&deviceProp, dev); - std::cerr << "cudaSetDevice GPU" << dev << " = " << deviceProp.name << std::endl; - - checkCudaErrors(cudaSetDevice(dev)); - - return dev; -} - -int main(int argc, char *argv[]) -{ - printf("%s Starting...\n\n", argv[0]); - - try { - const char *inputFile = "teapot512.pgm"; - std::string sFilename = inputFile; - std::string sOutputDir = "./"; - - cudaDeviceInit(argc, (const char **)argv); - - NppStreamContext nppStreamCtx; - nppStreamCtx.hStream = - 0; // The NULL stream by default, set this to whatever your stream ID is if not the NULL stream. - - cudaError_t cudaError = cudaGetDevice(&nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) { - printf("CUDA error: no devices supporting CUDA.\n"); - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - } - - const NppLibraryVersion *libVer = nppGetLibVersion(); - - printf("NPP Library Version %d.%d.%d\n", libVer->major, libVer->minor, libVer->build); - - int driverVersion, runtimeVersion; - cudaDriverGetVersion(&driverVersion); - cudaRuntimeGetVersion(&runtimeVersion); - - printf("CUDA Driver Version: %d.%d\n", driverVersion / 1000, (driverVersion % 100) / 10); - printf("CUDA Runtime Version: %d.%d\n\n", runtimeVersion / 1000, (runtimeVersion % 100) / 10); - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMajor, - cudaDevAttrComputeCapabilityMajor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMinor, - cudaDevAttrComputeCapabilityMinor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaStreamGetFlags(nppStreamCtx.hStream, &nppStreamCtx.nStreamFlags); - - cudaDeviceProp oDeviceProperties; - - cudaError = cudaGetDeviceProperties(&oDeviceProperties, nppStreamCtx.nCudaDeviceId); - - nppStreamCtx.nMultiProcessorCount = oDeviceProperties.multiProcessorCount; - nppStreamCtx.nMaxThreadsPerMultiProcessor = oDeviceProperties.maxThreadsPerMultiProcessor; - nppStreamCtx.nMaxThreadsPerBlock = oDeviceProperties.maxThreadsPerBlock; - nppStreamCtx.nSharedMemPerBlock = oDeviceProperties.sharedMemPerBlock; - - char *filePath; - - if (checkCmdLineFlag(argc, (const char **)argv, "input")) { - getCmdLineArgumentString(argc, (const char **)argv, "input", &filePath); - } - else { - filePath = sdkFindFilePath(inputFile, argv[0]); - } - - if (!filePath) { - std::cerr << "Couldn't find input file " << sFilename << std::endl; - exit(1); - } - - sFilename = filePath; - - // if we specify the filename at the command line, then we only test - // sFilename[0]. - int file_errors = 0; - std::ifstream infile(sFilename.data(), std::ifstream::in); - - if (infile.good()) { - std::cout << "gradientFilterBorderNPP opened <" << sFilename.data() << "> successfully!" << std::endl; - file_errors = 0; - infile.close(); - } - else { - std::cout << "gradientFilterBorderNPP unable to open <" << sFilename.data() << ">" << std::endl; - file_errors++; - infile.close(); - } - - if (file_errors > 0) { - cudaDeviceReset(); - exit(EXIT_FAILURE); - } - - std::string sResultBaseFilename = sFilename; - - std::string::size_type dot = sResultBaseFilename.rfind('.'); - - if (dot != std::string::npos) { - sResultBaseFilename = sResultBaseFilename.substr(0, dot); - } - - std::string sResultXFilename = sOutputDir + sFilename + "_gradientVectorPrewittBorderX_Vertical.pgm"; - std::string sResultYFilename = sResultBaseFilename; - - // sResultXFilename += "_gradientVectorPrewittBorderX_Vertical.pgm"; - sResultYFilename += "_gradientVectorPrewittBorderY_Horizontal.pgm"; - - // if (checkCmdLineFlag(argc, (const char **)argv, "output")) - // { - // char *outputFilePath; - // getCmdLineArgumentString(argc, (const char **)argv, "output", - // &outputFilePath); sResultBaseFilename = outputFilePath; - // } - - // declare a host image object for an 8-bit grayscale image - npp::ImageCPU_8u_C1 oHostSrc; - // load gray-scale image from disk - npp::loadImage(sFilename, oHostSrc); - // declare a device image and copy construct from the host image, - // i.e. upload host to device - npp::ImageNPP_8u_C1 oDeviceSrc(oHostSrc); - - NppiSize oSrcSize = {(int)oDeviceSrc.width(), (int)oDeviceSrc.height()}; - NppiPoint oSrcOffset = {0, 0}; - - // create struct with ROI size - NppiSize oSizeROI = {(int)oDeviceSrc.width(), (int)oDeviceSrc.height()}; - // allocate device destination images of appropriatedly size - npp::ImageNPP_16s_C1 oDeviceDstX(oSizeROI.width, oSizeROI.height); - npp::ImageNPP_16s_C1 oDeviceDstY(oSizeROI.width, oSizeROI.height); - - // run Prewitt edge detection gradient vector filter - NPP_CHECK_NPP(nppiGradientVectorPrewittBorder_8u16s_C1R_Ctx(oDeviceSrc.data(), - oDeviceSrc.pitch(), - oSrcSize, - oSrcOffset, - oDeviceDstX.data(), - oDeviceDstX.pitch(), - oDeviceDstY.data(), - oDeviceDstY.pitch(), - 0, - 0, - 0, - 0, - oSizeROI, - NPP_MASK_SIZE_3_X_3, - nppiNormL1, - NPP_BORDER_REPLICATE, - nppStreamCtx)); - - // allocate device destination images of appropriatedly size - npp::ImageNPP_8u_C1 oDeviceDstOutX(oSizeROI.width, oSizeROI.height); - npp::ImageNPP_8u_C1 oDeviceDstOutY(oSizeROI.width, oSizeROI.height); - - // convert 16s_C1 result images to binary 8u_C1 output images using constant - // value to adjust amount of visible detail - NPP_CHECK_NPP(nppiCompareC_16s_C1R_Ctx(oDeviceDstX.data(), - oDeviceDstX.pitch(), - 32, - oDeviceDstOutX.data(), - oDeviceDstOutX.pitch(), - oSizeROI, - NPP_CMP_GREATER_EQ, - nppStreamCtx)); - - NPP_CHECK_NPP(nppiCompareC_16s_C1R_Ctx(oDeviceDstY.data(), - oDeviceDstY.pitch(), - 32, - oDeviceDstOutY.data(), - oDeviceDstOutY.pitch(), - oSizeROI, - NPP_CMP_GREATER_EQ, - nppStreamCtx)); - - // create host images for the results - npp::ImageCPU_8u_C1 oHostDstX(oDeviceDstOutX.size()); - npp::ImageCPU_8u_C1 oHostDstY(oDeviceDstOutY.size()); - // and copy the device result data into them - oDeviceDstOutX.copyTo(oHostDstX.data(), oHostDstX.pitch()); - oDeviceDstOutY.copyTo(oHostDstY.data(), oHostDstY.pitch()); - - saveImage(sResultXFilename, oHostDstX); - std::cout << "Saved image: " << sResultXFilename << std::endl; - saveImage(sResultYFilename, oHostDstY); - std::cout << "Saved image: " << sResultYFilename << std::endl; - - // now use the Prewitt gradient border filter function in such a way that no - // border replication operations will be applied - - // create a Prewitt filter mask size object, Prewitt uses a 3x3 filter - // kernel - NppiSize oMaskSize = {3, 3}; - // create a size object for the enlarged source image - NppiSize oEnlargedSrcSize = {oSrcSize.width + oMaskSize.width - 1, oSrcSize.height + oMaskSize.height - 1}; - - // create an enlarged device source image - npp::ImageNPP_8u_C1 oEnlargedDeviceSrc(oEnlargedSrcSize.width, oEnlargedSrcSize.height); - - // copy and enlarge the original device source image and surround it with a - // white edge (border) - NPP_CHECK_NPP(nppiCopyConstBorder_8u_C1R_Ctx(oDeviceSrc.data(), - oDeviceSrc.pitch(), - oSrcSize, - oEnlargedDeviceSrc.data(), - oEnlargedDeviceSrc.pitch(), - oEnlargedSrcSize, - oMaskSize.width / 2, - oMaskSize.height / 2, - 255, - nppStreamCtx)); - - // adjust oEnlargedDeviceSrc pixel pointer to point to the first pixel of - // the original source image in the enlarged source image - const Npp8u *pTemp = reinterpret_cast(oEnlargedDeviceSrc.data()); - pTemp += (oMaskSize.height / 2) * oEnlargedDeviceSrc.pitch(); - const Npp8u *pAdjustedSrc = reinterpret_cast((void *)(pTemp)); - pAdjustedSrc += oMaskSize.width / 2; - - // create device output images for the no source border results - npp::ImageNPP_8u_C1 oDeviceDstOutXNoBorders(oSizeROI.width, oSizeROI.height); - npp::ImageNPP_8u_C1 oDeviceDstOutYNoBorders(oSizeROI.width, oSizeROI.height); - - // tell the filter function what cartesian pixel position pAdjustedSrc is - // pointing to within the enlarged source image - oSrcOffset.x += oMaskSize.width / 2; - oSrcOffset.y += oMaskSize.height / 2; - - // run Prewitt edge detection gradient vector filter bypassing border - // control due to enlarged source image - NPP_CHECK_NPP(nppiGradientVectorPrewittBorder_8u16s_C1R_Ctx(pAdjustedSrc, - oEnlargedDeviceSrc.pitch(), - oEnlargedSrcSize, - oSrcOffset, - oDeviceDstX.data(), - oDeviceDstX.pitch(), - oDeviceDstY.data(), - oDeviceDstY.pitch(), - 0, - 0, - 0, - 0, - oSizeROI, - NPP_MASK_SIZE_3_X_3, - nppiNormL1, - NPP_BORDER_REPLICATE, - nppStreamCtx)); - - // convert 16s_C1 result images to binary 8u_C1 output images using constant - // value to adjust amount of visible detail - NPP_CHECK_NPP(nppiCompareC_16s_C1R_Ctx(oDeviceDstX.data(), - oDeviceDstX.pitch(), - 32, - oDeviceDstOutXNoBorders.data(), - oDeviceDstOutXNoBorders.pitch(), - oSizeROI, - NPP_CMP_GREATER_EQ, - nppStreamCtx)); - - NPP_CHECK_NPP(nppiCompareC_16s_C1R_Ctx(oDeviceDstY.data(), - oDeviceDstY.pitch(), - 32, - oDeviceDstOutYNoBorders.data(), - oDeviceDstOutYNoBorders.pitch(), - oSizeROI, - NPP_CMP_GREATER_EQ, - nppStreamCtx)); - // create additional output files - std::string sResultXNoBordersFilename = sResultBaseFilename; - std::string sResultYNoBordersFilename = sResultBaseFilename; - - sResultXNoBordersFilename += "_gradientVectorPrewittBorderX_Vertical_WithNoSourceBorders.pgm"; - sResultYNoBordersFilename += "_gradientVectorPrewittBorderY_Horizontal_WithNoSourceBorders.pgm"; - - // copy the device result data into the host output images - oDeviceDstOutXNoBorders.copyTo(oHostDstX.data(), oHostDstX.pitch()); - oDeviceDstOutYNoBorders.copyTo(oHostDstY.data(), oHostDstY.pitch()); - - saveImage(sResultXNoBordersFilename, oHostDstX); - std::cout << "Saved image: " << sResultXNoBordersFilename << std::endl; - saveImage(sResultYNoBordersFilename, oHostDstY); - std::cout << "Saved image: " << sResultYNoBordersFilename << std::endl; - - // now diff the two output images, one using border control and one - // bypassing border control - - // create device output images for the diff results - npp::ImageNPP_8u_C1 oDeviceDstOutXDiff(oSizeROI.width, oSizeROI.height); - npp::ImageNPP_8u_C1 oDeviceDstOutYDiff(oSizeROI.width, oSizeROI.height); - - // diff the two 8u_C1 result images one with and one without border control - - NPP_CHECK_NPP(nppiAbsDiff_8u_C1R_Ctx(oDeviceDstOutXNoBorders.data(), - oDeviceDstOutXNoBorders.pitch(), - oDeviceDstOutX.data(), - oDeviceDstOutX.pitch(), - oDeviceDstOutXDiff.data(), - oDeviceDstOutXDiff.pitch(), - oSizeROI, - nppStreamCtx)); - - NPP_CHECK_NPP(nppiAbsDiff_8u_C1R_Ctx(oDeviceDstOutYNoBorders.data(), - oDeviceDstOutYNoBorders.pitch(), - oDeviceDstOutY.data(), - oDeviceDstOutY.pitch(), - oDeviceDstOutYDiff.data(), - oDeviceDstOutYDiff.pitch(), - oSizeROI, - nppStreamCtx)); - - // create additional output files - std::string sResultXDiffFilename = sResultBaseFilename; - std::string sResultYDiffFilename = sResultBaseFilename; - - sResultXDiffFilename += "_gradientVectorPrewittBorderX_Vertical_BorderDiffs.pgm"; - sResultYDiffFilename += "_gradientVectorPrewittBorderY_Horizontal_BorderDiffs.pgm"; - - // copy the device result data into the host output images - oDeviceDstOutXDiff.copyTo(oHostDstX.data(), oHostDstX.pitch()); - oDeviceDstOutYDiff.copyTo(oHostDstY.data(), oHostDstY.pitch()); - - saveImage(sResultXDiffFilename, oHostDstX); - std::cout << "Saved image: " << sResultXDiffFilename << std::endl; - saveImage(sResultYDiffFilename, oHostDstY); - std::cout << "Saved image: " << sResultYDiffFilename << std::endl; - - // if you closely examine the above difference files (recommend using GIMP - // for viewing using scaling with no interpolation) you will see several - // single pixel differences (white pixels) along the right and bottom edges - // of the default vs. borderless images this happens because border pixels - // in the original source image are duplicated when the filter kernels - // overlap the edge of the source image when using the first version of the - // filter call but are actually sampled from the enlarged source image when - // using the second version of the filter call the technique used in the - // second filter call can be used with any filter border function in NPP to - // duplicate results that would be generated from a non-border filter - // function call by filling the border pixel outside the embedded source - // image with the appropriate border pixel values - - // here is how to use border control to process a source image in multiple - // calls and get correct output in the destination image - - // since the source image pointer already points to the beginning of the - // source image in the enlarged source image it doesn't need changed - - // tighten up the top and left source image borders - this will enable - // border replication on the left and top borders of the original source - // image - oSrcOffset.x = 0; - oSrcOffset.y = 0; - // tighten up the right and bottom side source image borders - this will - // enable border replication on the right and bottom borders of the original - // source image - oEnlargedSrcSize.width = oSrcSize.width; - oEnlargedSrcSize.height = oSrcSize.height; - - // create device output images for the mixed edge results - npp::ImageNPP_8u_C1 oDeviceDstOutXMixedBorders(oSizeROI.width, oSizeROI.height); - npp::ImageNPP_8u_C1 oDeviceDstOutYMixedBorders(oSizeROI.width, oSizeROI.height); - - // shrink output ROI width so that only the left half of the destination - // image will be generated however since oEnlargedSrcSize.width is still set - // to oSrcSize.width then border control will be disabled when the filter - // needs to access source pixels beyond the right side of the left half of - // the source image - int nLeftWidth = oSizeROI.width / 2; - int nRightWidth = oSizeROI.width - nLeftWidth; - oSizeROI.width = nLeftWidth; - - // run Prewitt edge detection gradient vector filter to generate the left - // side of the output image - NPP_CHECK_NPP(nppiGradientVectorPrewittBorder_8u16s_C1R_Ctx(pAdjustedSrc, - oEnlargedDeviceSrc.pitch(), - oEnlargedSrcSize, - oSrcOffset, - oDeviceDstX.data(), - oDeviceDstX.pitch(), - oDeviceDstY.data(), - oDeviceDstY.pitch(), - 0, - 0, - 0, - 0, - oSizeROI, - NPP_MASK_SIZE_3_X_3, - nppiNormL1, - NPP_BORDER_REPLICATE, - nppStreamCtx)); - - // now move the enlarged source pointer to the horizontal middle of the - // enlarged source image and tell the function where it was moved to - pAdjustedSrc += nLeftWidth; - // and adjust the source offset parameter accordingly - this will in effect - // turn off border control for the left border allowing the necessary source - // pixels to be used - oSrcOffset.x += nLeftWidth; - - // update oSizeROI.width so that only enough destination pixels will be - // produced to fill the right half of the destination image - oSizeROI.width = nRightWidth; - - // run Prewitt edge detection gradient vector filter to generate the right - // side of the output image adjusting the destination image pointers - // appropriately - NPP_CHECK_NPP(nppiGradientVectorPrewittBorder_8u16s_C1R_Ctx(pAdjustedSrc, - oEnlargedDeviceSrc.pitch(), - oEnlargedSrcSize, - oSrcOffset, - oDeviceDstX.data() + nLeftWidth, - oDeviceDstX.pitch(), - oDeviceDstY.data() + nLeftWidth, - oDeviceDstY.pitch(), - 0, - 0, - 0, - 0, - oSizeROI, - NPP_MASK_SIZE_3_X_3, - nppiNormL1, - NPP_BORDER_REPLICATE, - nppStreamCtx)); - - // convert 16s_C1 result images to binary 8u_C1 output images using constant - // value to adjust amount of visible detail - NPP_CHECK_NPP(nppiCompareC_16s_C1R_Ctx(oDeviceDstX.data(), - oDeviceDstX.pitch(), - 32, - oDeviceDstOutXMixedBorders.data(), - oDeviceDstOutXMixedBorders.pitch(), - oSizeROI, - NPP_CMP_GREATER_EQ, - nppStreamCtx)); - - NPP_CHECK_NPP(nppiCompareC_16s_C1R_Ctx(oDeviceDstY.data(), - oDeviceDstY.pitch(), - 32, - oDeviceDstOutYMixedBorders.data(), - oDeviceDstOutYMixedBorders.pitch(), - oSizeROI, - NPP_CMP_GREATER_EQ, - nppStreamCtx)); - // create additional output files - std::string sResultXMixedBordersFilename = sResultBaseFilename; - std::string sResultYMixedBordersFilename = sResultBaseFilename; - - sResultXMixedBordersFilename += "_gradientVectorPrewittBorderX_Vertical_WithMixedBorders.pgm"; - sResultYMixedBordersFilename += "_gradientVectorPrewittBorderY_Horizontal_WithMixedBorders.pgm"; - - // copy the device result data into the host output images - oDeviceDstOutXMixedBorders.copyTo(oHostDstX.data(), oHostDstX.pitch()); - oDeviceDstOutYMixedBorders.copyTo(oHostDstY.data(), oHostDstY.pitch()); - - saveImage(sResultXMixedBordersFilename, oHostDstX); - std::cout << "Saved image: " << sResultXMixedBordersFilename << std::endl; - saveImage(sResultYMixedBordersFilename, oHostDstY); - std::cout << "Saved image: " << sResultYMixedBordersFilename << std::endl; - - // diff the original 8u_C1 result images with border control and the mixed - // border control images, they should match (diff image will be all black) - - NPP_CHECK_NPP(nppiAbsDiff_8u_C1R_Ctx(oDeviceDstOutXMixedBorders.data(), - oDeviceDstOutXMixedBorders.pitch(), - oDeviceDstOutX.data(), - oDeviceDstOutX.pitch(), - oDeviceDstOutXDiff.data(), - oDeviceDstOutXDiff.pitch(), - oSizeROI, - nppStreamCtx)); - - NPP_CHECK_NPP(nppiAbsDiff_8u_C1R_Ctx(oDeviceDstOutYMixedBorders.data(), - oDeviceDstOutYMixedBorders.pitch(), - oDeviceDstOutY.data(), - oDeviceDstOutY.pitch(), - oDeviceDstOutYDiff.data(), - oDeviceDstOutYDiff.pitch(), - oSizeROI, - nppStreamCtx)); - - // create additional output files - std::string sResultXMixedDiffFilename = sResultBaseFilename; - std::string sResultYMixedDiffFilename = sResultBaseFilename; - - sResultXMixedDiffFilename += "_gradientVectorPrewittBorderX_Vertical_MixedBorderDiffs.pgm"; - sResultYMixedDiffFilename += "_gradientVectorPrewittBorderY_Horizontal_MixedBorderDiffs.pgm"; - - // copy the device result data into the host output images - oDeviceDstOutXDiff.copyTo(oHostDstX.data(), oHostDstX.pitch()); - oDeviceDstOutYDiff.copyTo(oHostDstY.data(), oHostDstY.pitch()); - - saveImage(sResultXMixedDiffFilename, oHostDstX); - std::cout << "Saved image: " << sResultXMixedDiffFilename << std::endl; - saveImage(sResultYMixedDiffFilename, oHostDstY); - std::cout << "Saved image: " << sResultYMixedDiffFilename << std::endl; - - nppiFree(oDeviceSrc.data()); - nppiFree(oDeviceDstX.data()); - nppiFree(oDeviceDstY.data()); - nppiFree(oDeviceDstOutX.data()); - nppiFree(oDeviceDstOutY.data()); - nppiFree(oDeviceDstOutXNoBorders.data()); - nppiFree(oDeviceDstOutYNoBorders.data()); - nppiFree(oDeviceDstOutXDiff.data()); - nppiFree(oDeviceDstOutYDiff.data()); - nppiFree(oDeviceDstOutXMixedBorders.data()); - nppiFree(oDeviceDstOutYMixedBorders.data()); - nppiFree(oEnlargedDeviceSrc.data()); - - cudaDeviceReset(); - exit(EXIT_SUCCESS); - } - catch (npp::Exception &rException) { - std::cerr << "Program error! The following exception occurred: \n"; - std::cerr << rException << std::endl; - std::cerr << "Aborting." << std::endl; - - cudaDeviceReset(); - exit(EXIT_FAILURE); - } - catch (...) { - std::cerr << "Program error! An unknow type of exception occurred. \n"; - std::cerr << "Aborting." << std::endl; - - cudaDeviceReset(); - exit(EXIT_FAILURE); - return -1; - } - - return 0; -} diff --git a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/README.md b/cpp/4_CUDA_Libraries/FilterBorderControlNPP/README.md deleted file mode 100644 index 36f197cc..00000000 --- a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# FilterBorderControlNPP - Filter Border Control NPP - -## Description - -This sample demonstrates how any border version of an NPP filtering function can be used in the most common mode, with border control enabled. Mentioned functions can be used to duplicate the results of the equivalent non-border version of the NPP functions. They can be also used for enabling and disabling border control on various source image edges depending on what portion of the source image is being used as input. - -## Key Concepts - -Performance Strategies, Image Processing, NPP Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaRuntimeGetVersion, cudaDeviceReset, cudaSetDevice, cudaGetDeviceCount, cudaDeviceInit, cudaDriverGetVersion, cudaGetDeviceProperties - -## Dependencies needed to build/run -[FreeImage](../../../README.md#freeimage), [NPP](../../../README.md#npp) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/data/teapot512.pgm b/cpp/4_CUDA_Libraries/FilterBorderControlNPP/data/teapot512.pgm deleted file mode 100644 index 23db9b9a..00000000 Binary files a/cpp/4_CUDA_Libraries/FilterBorderControlNPP/data/teapot512.pgm and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/.vscode/extensions.json b/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/CMakeLists.txt b/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/CMakeLists.txt deleted file mode 100644 index e750063e..00000000 --- a/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(MersenneTwisterGP11213 LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for MersenneTwisterGP11213 -add_executable(MersenneTwisterGP11213 MersenneTwister.cpp) - -target_compile_options(MersenneTwisterGP11213 PRIVATE $<$:--extended-lambda>) - -target_compile_features(MersenneTwisterGP11213 PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(MersenneTwisterGP11213 PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(MersenneTwisterGP11213 PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(MersenneTwisterGP11213 PRIVATE - CUDA::cudart - CUDA::curand -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/MersenneTwister.cpp b/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/MersenneTwister.cpp deleted file mode 100644 index 1d6af8a2..00000000 --- a/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/MersenneTwister.cpp +++ /dev/null @@ -1,179 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This sample demonstrates the use of CURAND to generate - * random numbers on GPU and CPU. - */ - -// Utilities and system includes -// includes, system -#include -#include -#include -#include - -// Utilities and system includes -#include -#include -#include -#include - -float compareResults(int rand_n, float *h_RandGPU, float *h_RandCPU); - -const int DEFAULT_RAND_N = 2400000; -const unsigned int DEFAULT_SEED = 777; - -/////////////////////////////////////////////////////////////////////////////// -// Main program -/////////////////////////////////////////////////////////////////////////////// -int main(int argc, char **argv) -{ - // Start logs - printf("%s Starting...\n\n", argv[0]); - - // initialize the GPU, either identified by --device - // or by picking the device with highest flop rate. - int devID = findCudaDevice(argc, (const char **)argv); - - // parsing the number of random numbers to generate - int rand_n = DEFAULT_RAND_N; - - if (checkCmdLineFlag(argc, (const char **)argv, "count")) { - rand_n = getCmdLineArgumentInt(argc, (const char **)argv, "count"); - } - - printf("Allocating data for %i samples...\n", rand_n); - - // parsing the seed - int seed = DEFAULT_SEED; - - if (checkCmdLineFlag(argc, (const char **)argv, "seed")) { - seed = getCmdLineArgumentInt(argc, (const char **)argv, "seed"); - } - - printf("Seeding with %i ...\n", seed); - - cudaStream_t stream; - checkCudaErrors(cudaStreamCreateWithFlags(&stream, cudaStreamNonBlocking)); - - float *d_Rand; - checkCudaErrors(cudaMalloc((void **)&d_Rand, rand_n * sizeof(float))); - - curandGenerator_t prngGPU; - checkCudaErrors(curandCreateGenerator(&prngGPU, CURAND_RNG_PSEUDO_MTGP32)); - checkCudaErrors(curandSetStream(prngGPU, stream)); - checkCudaErrors(curandSetPseudoRandomGeneratorSeed(prngGPU, seed)); - - curandGenerator_t prngCPU; - checkCudaErrors(curandCreateGeneratorHost(&prngCPU, CURAND_RNG_PSEUDO_MTGP32)); - checkCudaErrors(curandSetPseudoRandomGeneratorSeed(prngCPU, seed)); - - // - // Example 1: Compare random numbers generated on GPU and CPU - float *h_RandGPU; - checkCudaErrors(cudaMallocHost(&h_RandGPU, rand_n * sizeof(float))); - - printf("Generating random numbers on GPU...\n\n"); - checkCudaErrors(curandGenerateUniform(prngGPU, (float *)d_Rand, rand_n)); - - printf("\nReading back the results...\n"); - checkCudaErrors(cudaMemcpyAsync(h_RandGPU, d_Rand, rand_n * sizeof(float), cudaMemcpyDeviceToHost, stream)); - - float *h_RandCPU = (float *)malloc(rand_n * sizeof(float)); - - printf("Generating random numbers on CPU...\n\n"); - checkCudaErrors(curandGenerateUniform(prngCPU, (float *)h_RandCPU, rand_n)); - - checkCudaErrors(cudaStreamSynchronize(stream)); - printf("Comparing CPU/GPU random numbers...\n\n"); - float L1norm = compareResults(rand_n, h_RandGPU, h_RandCPU); - - // - // Example 2: Timing of random number generation on GPU - const int numIterations = 10; - int i; - StopWatchInterface *hTimer; - - sdkCreateTimer(&hTimer); - sdkResetTimer(&hTimer); - sdkStartTimer(&hTimer); - - for (i = 0; i < numIterations; i++) { - checkCudaErrors(curandGenerateUniform(prngGPU, (float *)d_Rand, rand_n)); - } - - checkCudaErrors(cudaStreamSynchronize(stream)); - sdkStopTimer(&hTimer); - - double gpuTime = 1.0e-3 * sdkGetTimerValue(&hTimer) / (double)numIterations; - - printf("MersenneTwisterGP11213, Throughput = %.4f GNumbers/s, Time = %.5f s, " - "Size = %u Numbers\n", - 1.0e-9 * rand_n / gpuTime, - gpuTime, - rand_n); - - printf("Shutting down...\n"); - - checkCudaErrors(curandDestroyGenerator(prngGPU)); - checkCudaErrors(curandDestroyGenerator(prngCPU)); - checkCudaErrors(cudaStreamDestroy(stream)); - checkCudaErrors(cudaFree(d_Rand)); - sdkDeleteTimer(&hTimer); - checkCudaErrors(cudaFreeHost(h_RandGPU)); - free(h_RandCPU); - - exit(L1norm < 1e-6 ? EXIT_SUCCESS : EXIT_FAILURE); -} - -float compareResults(int rand_n, float *h_RandGPU, float *h_RandCPU) -{ - int i; - float rCPU, rGPU, delta; - float max_delta = 0.; - float sum_delta = 0.; - float sum_ref = 0.; - - for (i = 0; i < rand_n; i++) { - rCPU = h_RandCPU[i]; - rGPU = h_RandGPU[i]; - delta = fabs(rCPU - rGPU); - sum_delta += delta; - sum_ref += fabs(rCPU); - - if (delta >= max_delta) { - max_delta = delta; - } - } - - float L1norm = (float)(sum_delta / sum_ref); - printf("Max absolute error: %E\n", max_delta); - printf("L1 norm: %E\n\n", L1norm); - - return L1norm; -} diff --git a/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/README.md b/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/README.md deleted file mode 100644 index 58e1d12a..00000000 --- a/cpp/4_CUDA_Libraries/MersenneTwisterGP11213/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# MersenneTwisterGP11213 - MersenneTwisterGP11213 - -## Description - -This sample demonstrates the Mersenne Twister random number generator GP11213 in cuRAND. - -## Key Concepts - -CURAND Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaStreamCreateWithFlags, cudaStreamDestroy, cudaFree, cudaMallocHost, cudaFreeHost, cudaStreamSynchronize, cudaMalloc, cudaMemcpyAsync - -## Dependencies needed to build/run -[CURAND](../../../README.md#curand) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/README.md b/cpp/4_CUDA_Libraries/README.md index e8e23e09..2fa04f17 100644 --- a/cpp/4_CUDA_Libraries/README.md +++ b/cpp/4_CUDA_Libraries/README.md @@ -1,101 +1,24 @@ # 4. CUDA Libraries -### [batchCUBLAS](./batchCUBLAS) -A CUDA Sample that demonstrates how using batched CUBLAS API calls to improve overall performance. - -### [boxFilterNPP](./boxFilterNPP) -A NPP CUDA Sample that demonstrates how to use NPP FilterBox function to perform a Box Filter. - -### [cannyEdgeDetectorNPP](./cannyEdgeDetectorNPP) -An NPP CUDA Sample that demonstrates the recommended parameters to use with the nppiFilterCannyBorder_8u_C1R Canny Edge Detection image filter function. This function expects a single channel 8-bit grayscale input image. You can generate a grayscale image from a color image by first calling nppiColorToGray() or nppiRGBToGray(). The Canny Edge Detection function combines and improves on the techniques required to produce an edge detection image using multiple steps. - -### [conjugateGradient](./conjugateGradient) -This sample implements a conjugate gradient solver on GPU using CUBLAS and CUSPARSE library. - -### [conjugateGradientCudaGraphs](./conjugateGradientCudaGraphs) +## [conjugateGradientCudaGraphs](./conjugateGradientCudaGraphs) This sample implements a conjugate gradient solver on GPU using CUBLAS and CUSPARSE library calls captured and called using CUDA Graph APIs. -### [conjugateGradientMultiBlockCG](./conjugateGradientMultiBlockCG) +## [conjugateGradientMultiBlockCG](./conjugateGradientMultiBlockCG) This sample implements a conjugate gradient solver on GPU using Multi Block Cooperative Groups, also uses Unified Memory. -### [conjugateGradientMultiDeviceCG](./conjugateGradientMultiDeviceCG) +## [conjugateGradientMultiDeviceCG](./conjugateGradientMultiDeviceCG) This sample implements a conjugate gradient solver on multiple GPUs using Multi Device Cooperative Groups, also uses Unified Memory optimized using prefetching and usage hints. -### [conjugateGradientPrecond](./conjugateGradientPrecond) -This sample implements a preconditioned conjugate gradient solver on GPU using CUBLAS and CUSPARSE library. - -### [conjugateGradientUM](./conjugateGradientUM) -This sample implements a conjugate gradient solver on GPU using CUBLAS and CUSPARSE library, using Unified Memory - -### [cudaNvSci](./cudaNvSci) +## [cudaNvSci](./cudaNvSci) This sample demonstrates CUDA-NvSciBuf/NvSciSync Interop. Two CPU threads import the NvSciBuf and NvSciSync into CUDA to perform two image processing algorithms on a ppm image - image rotation in 1st thread & rgba to grayscale conversion of rotated image in 2nd thread. Currently only supported on Ubuntu 18.04 -### [cuSolverDn_LinearSolver](./cuSolverDn_LinearSolver) -A CUDA Sample that demonstrates cuSolverDN's LU, QR and Cholesky factorization. - -### [cuSolverRf](./cuSolverRf) -A CUDA Sample that demonstrates cuSolver's refactorization library - CUSOLVERRF. - -### [cuSolverSp_LinearSolver](./cuSolverSp_LinearSolver) -A CUDA Sample that demonstrates cuSolverSP's LU, QR and Cholesky factorization. - -### [cuSolverSp_LowlevelCholesky](./cuSolverSp_LowlevelCholesky) -A CUDA Sample that demonstrates Cholesky factorization using cuSolverSP's low level APIs. - -### [cuSolverSp_LowlevelQR](./cuSolverSp_LowlevelQR) -A CUDA Sample that demonstrates QR factorization using cuSolverSP's low level APIs. - -### [FilterBorderControlNPP](./FilterBorderControlNPP) -This sample demonstrates how any border version of an NPP filtering function can be used in the most common mode, with border control enabled. Mentioned functions can be used to duplicate the results of the equivalent non-border version of the NPP functions. They can be also used for enabling and disabling border control on various source image edges depending on what portion of the source image is being used as input. - -### [freeImageInteropNPP](./freeImageInteropNPP) -A simple CUDA Sample demonstrate how to use FreeImage library with NPP. - -### [histEqualizationNPP](./histEqualizationNPP) -This CUDA Sample demonstrates how to use NPP for histogram equalization for image data. - -### [lineOfSight](./lineOfSight) +## [lineOfSight](./lineOfSight) This sample is an implementation of a simple line-of-sight algorithm: Given a height map and a ray originating at some observation point, it computes all the points along the ray that are visible from the observation point. The implementation is based on the Thrust library. -### [matrixMulCUBLAS](./matrixMulCUBLAS) -This sample implements matrix multiplication from Chapter 3 of the programming guide. To illustrate GPU performance for matrix multiply, this sample also shows how to use the new CUDA 4.0 interface for CUBLAS to demonstrate high-performance performance for matrix multiplication. - -### [MersenneTwisterGP11213](./MersenneTwisterGP11213) -This sample demonstrates the Mersenne Twister random number generator GP11213 in cuRAND. - -### [nvJPEG](./nvJPEG) -A CUDA Sample that demonstrates single and batched decoding of jpeg images using NVJPEG Library. - -### [nvJPEG_encoder](./nvJPEG_encoder) -A CUDA Sample that demonstrates single encoding of jpeg images using NVJPEG Library. - -### [oceanFFT](./oceanFFT) +## [oceanFFT](./oceanFFT) This sample simulates an Ocean height field using CUFFT Library and renders the result using OpenGL. -### [randomFog](./randomFog) +## [randomFog](./randomFog) This sample illustrates pseudo- and quasi- random numbers produced by CURAND. -### [simpleCUBLAS](./simpleCUBLAS) -Example of using CUBLAS API interface to perform GEMM operations. - -### [simpleCUBLAS_LU](./simpleCUBLAS_LU) -CUDA sample demonstrating cuBLAS API cublasDgetrfBatched() for lower-upper (LU) decomposition of a matrix. - -### [simpleCUBLASXT](./simpleCUBLASXT) -Example of using CUBLAS-XT library which performs GEMM operations over Multiple GPUs. - -### [simpleCUFFT](./simpleCUFFT) -Example of using CUFFT. In this example, CUFFT is used to compute the 1D-convolution of some signal with some filter by transforming both into frequency domain, multiplying them together, and transforming the signal back to time domain. cuFFT plans are created using simple and advanced API functions. - -### [simpleCUFFT_2d_MGPU](./simpleCUFFT_2d_MGPU) -Example of using CUFFT. In this example, CUFFT is used to compute the 2D-convolution of some signal with some filter by transforming both into frequency domain, multiplying them together, and transforming the signal back to time domain on Multiple GPU. - -### [simpleCUFFT_callback](./simpleCUFFT_callback) -Example of using CUFFT. In this example, CUFFT is used to compute the 1D-convolution of some signal with some filter by transforming both into frequency domain, multiplying them together, and transforming the signal back to time domain. The difference between this example and the Simple CUFFT example is that the multiplication step is done by the CUFFT kernel with a user-supplied CUFFT callback routine, rather than by a separate kernel call. - -### [simpleCUFFT_MGPU](./simpleCUFFT_MGPU) -Example of using CUFFT. In this example, CUFFT is used to compute the 1D-convolution of some signal with some filter by transforming both into frequency domain, multiplying them together, and transforming the signal back to time domain on Multiple GPU. - -### [watershedSegmentationNPP](./watershedSegmentationNPP) -An NPP CUDA Sample that demonstrates how to use the NPP watershed segmentation function. diff --git a/cpp/4_CUDA_Libraries/batchCUBLAS/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/batchCUBLAS/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/batchCUBLAS/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/batchCUBLAS/.vscode/extensions.json b/cpp/4_CUDA_Libraries/batchCUBLAS/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/batchCUBLAS/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/batchCUBLAS/CMakeLists.txt b/cpp/4_CUDA_Libraries/batchCUBLAS/CMakeLists.txt deleted file mode 100644 index 49b693e9..00000000 --- a/cpp/4_CUDA_Libraries/batchCUBLAS/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(batchCUBLAS LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for batchCUBLAS -add_executable(batchCUBLAS batchCUBLAS.cpp) - -target_compile_options(batchCUBLAS PRIVATE $<$:--extended-lambda>) - -target_compile_features(batchCUBLAS PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(batchCUBLAS PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(batchCUBLAS PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(batchCUBLAS PRIVATE - CUDA::cublas - CUDA::cudart -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/batchCUBLAS/README.md b/cpp/4_CUDA_Libraries/batchCUBLAS/README.md deleted file mode 100644 index 19dec59e..00000000 --- a/cpp/4_CUDA_Libraries/batchCUBLAS/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# batchCUBLAS - batchCUBLAS - -## Description - -A CUDA Sample that demonstrates how using batched CUBLAS API calls to improve overall performance. - -## Key Concepts - -Linear Algebra, CUBLAS Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuRand, cuEqual - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaGetErrorString, cudaFree, cudaGetLastError, cudaDeviceSynchronize, cudaGetDevice, cudaMalloc, cudaStreamCreate, cudaGetDeviceProperties - -## Dependencies needed to build/run -[CUBLAS](../../../README.md#cublas) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/batchCUBLAS/batchCUBLAS.cpp b/cpp/4_CUDA_Libraries/batchCUBLAS/batchCUBLAS.cpp deleted file mode 100644 index a8a2c1c2..00000000 --- a/cpp/4_CUDA_Libraries/batchCUBLAS/batchCUBLAS.cpp +++ /dev/null @@ -1,727 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This example demonstrates how to get better performance by - * batching CUBLAS calls with the use of using streams - */ - -#include -#include -#include -#include -#include -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) -#include -#endif - -/* Using updated (v2) interfaces to cublas and cusparse */ -#include -#include - -// Utilities and system includes -#include - -#include "batchCUBLAS.h" - -const char *sSDKname = "batchCUBLAS"; - -//============================================================================== -// Device information utilities -//============================================================================== - -#if defined(__cplusplus) -extern "C" -{ -#endif /* __cplusplus */ - - int getDeviceVersion(void) - { - int device; - struct cudaDeviceProp properties; - - if (cudaGetDevice(&device) != cudaSuccess) { - printf("failed to get device\n"); - return 0; - } - - if (cudaGetDeviceProperties(&properties, device) != cudaSuccess) { - printf("failed to get properties\n"); - return 0; - } - - return properties.major * 100 + properties.minor * 10; - } - - size_t getDeviceMemory(void) - { - struct cudaDeviceProp properties; - int device; - - if (cudaGetDevice(&device) != cudaSuccess) { - return 0; - } - - if (cudaGetDeviceProperties(&properties, device) != cudaSuccess) { - return 0; - } - - return properties.totalGlobalMem; - } -#if defined(__cplusplus) -} -#endif /* __cplusplus */ - -//============================================================================== -// random utilities -//============================================================================== - -template void fillupMatrix(T_ELEM *A, int lda, int rows, int cols, int seed = 0); - -template void fillupMatrix(T_ELEM *A, int lda, int rows, int cols, int seed) -{ - for (int j = 0; j < cols; j++) { - for (int i = 0; i < rows; i++) { - A[i + lda * j] = cuGet(((double)(((lda * i + j + seed) % 253) + 1)) / 256.0, - ((double)((((cols * i + j) + 123 + seed) % 253) + 1)) / 256.0); - } - } -} -/* Explicit instantiation */ -template void fillupMatrix(float *A, int lda, int rows, int cols, int seed); -template void fillupMatrix(double *A, int lda, int rows, int cols, int seed); - -/* For debugging */ -void printCuType(const char *str, float A) { fprintf(stdout, "%s (0x%08x, %g)", str, floatAsUInt(A), A); } - -void printCuType(const char *str, double A) { fprintf(stdout, "%s (0x%016llx, %g)", str, doubleAsULL(A), A); } - -//============================================================================== -// defines and structures -//============================================================================== - -#define CUBLAS_SGEMM_MAX_ULP_ERR (.3) -#define CUBLAS_DGEMM_MAX_ULP_ERR (1.e-3) -#define CUBLAS_SGEMM_MAX_RELATIVE_ERR (6.e-6) -#define CUBLAS_DGEMM_MAX_RELATIVE_ERR (0.0) -#define CUBLAS_GEMM_TEST_COUNT (30) -#define BENCH_MATRIX_M (128) -#define BENCH_MATRIX_K (128) -#define BENCH_MATRIX_N (128) - -#define CLEANUP() \ - do { \ - if (A) \ - free(A); \ - if (B) \ - free(B); \ - if (C) \ - free(C); \ - for (int i = 0; i < opts.N; ++i) { \ - if (devPtrA[i]) \ - cudaFree(devPtrA[i]); \ - if (devPtrB[i]) \ - cudaFree(devPtrB[i]); \ - if (devPtrC[i]) \ - cudaFree(devPtrC[i]); \ - } \ - if (devPtrA) \ - free(devPtrA); \ - if (devPtrB) \ - free(devPtrB); \ - if (devPtrC) \ - free(devPtrC); \ - if (devPtrA_dev) \ - cudaFree(devPtrA_dev); \ - if (devPtrB_dev) \ - cudaFree(devPtrB_dev); \ - if (devPtrC_dev) \ - cudaFree(devPtrC_dev); \ - fflush(stdout); \ - } while (0) - -enum testMethod { tmRegular, tmStream, tmBatched }; - -struct gemmOpts -{ - int m; - int n; - int k; - testMethod test_method; - char *elem_type; - int N; // number of multiplications -}; - -template struct gemmTestParams -{ - cublasOperation_t transa; - cublasOperation_t transb; - int m; - int n; - int k; - T_ELEM alpha; - T_ELEM beta; -}; - -//============================================================================== -// template wrappers for cuda functions -//============================================================================== - -static inline cublasStatus_t cublasXgemm(cublasHandle_t handle, - cublasOperation_t transa, - cublasOperation_t transb, - int m, - int n, - int k, - float *alpha, - const float *A, - int lda, - float *B, - int ldb, - float *beta, - float *C, - int ldc) -{ - return cublasSgemm(handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc); -} - -static inline cublasStatus_t cublasXgemm(cublasHandle_t handle, - cublasOperation_t transa, - cublasOperation_t transb, - int m, - int n, - int k, - double *alpha, - const double *A, - int lda, - double *B, - int ldb, - double *beta, - double *C, - int ldc) -{ - return cublasDgemm(handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc); -} - -static inline cublasStatus_t cublasXgemmBatched(cublasHandle_t handle, - cublasOperation_t transa, - cublasOperation_t transb, - int m, - int n, - int k, - float *alpha, - const float *Aarray[], - int lda, - const float *Barray[], - int ldb, - float *beta, - float *Carray[], - int ldc, - int batchCount) -{ -#if CUDART_VERSION >= 4010 - return cublasSgemmBatched( - handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, batchCount); -#else - return CUBLAS_STATUS_SUCCESS; -#endif -} - -static inline cublasStatus_t cublasXgemmBatched(cublasHandle_t handle, - cublasOperation_t transa, - cublasOperation_t transb, - int m, - int n, - int k, - double *alpha, - const double *Aarray[], - int lda, - const double *Barray[], - int ldb, - double *beta, - double *Carray[], - int ldc, - int batchCount) -{ -#if CUDART_VERSION >= 4010 - return cublasDgemmBatched( - handle, transa, transb, m, n, k, alpha, Aarray, lda, Barray, ldb, beta, Carray, ldc, batchCount); -#else - return CUBLAS_STATUS_SUCCESS; -#endif -} - -//============================================================================== -// Primary Application code -//============================================================================== - -static int processArgs(int argc, char *argv[], struct gemmOpts *opts) -{ - int error = 0; - int oldError; - memset(opts, 0, sizeof(*opts)); - static char default_type[] = "d"; // default double - opts->elem_type = default_type; - opts->N = 10; - - while (argc) { - oldError = error; - - if (*argv[0] == SWITCH_CHAR) { - switch (*(argv[0] + 1)) { - case 'm': - opts->m = (int)atol(argv[0] + 2); - break; - - case 'n': - opts->n = (int)atol(argv[0] + 2); - break; - - case 'k': - opts->k = (int)atol(argv[0] + 2); - break; - - case 'N': - opts->N = (int)atol(argv[0] + 2); - break; - - default: - break; - } - } - - if (error > oldError) { - fprintf(stderr, "Invalid switch '%c%s'\n", SWITCH_CHAR, argv[0] + 1); - } - - argc -= 1; - argv++; - } - - return error; -} - -template -static int TESTGEN(gemm)(const struct gemmOpts *opts, - int matrixM, - int matrixN, - int matrixK, - int &numTests, - struct gemmTestParams *params) -{ - static T_ELEM alpha[] = { - cuGet(0, 0), cuGet(-1, -1), cuGet(1, -2), cuGet(2, -1), cuGet(0, -3)}; - static T_ELEM beta[] = { - cuGet(0, 0), cuGet(-1, -1), cuGet(1, -2), cuGet(2, -1), cuGet(0, -3)}; - -#define NBR_ALPHAS (sizeof(alpha) / sizeof(alpha[0])) -#define NBR_BETAS (sizeof(beta) / sizeof(beta[0])) - static T_ELEM theAlpha; - static T_ELEM theBeta; - static int state; - static int m; - static int n; - static int k; - - if (numTests-- <= 0) { - return -1; - } - - theAlpha = alpha[cuRand() % NBR_ALPHAS]; - theBeta = beta[cuRand() % NBR_BETAS]; - params->transa = CUBLAS_OP_N; - params->transb = CUBLAS_OP_N; - m = matrixM; - n = matrixN; - k = matrixK; - params->m = m; - params->n = n; - params->k = k; - params->alpha = theAlpha; - params->beta = theBeta; - - printf("#### args: ta=%d tb=%d m=%d n=%d k=%d ", - (unsigned int)params->transa, - (unsigned int)params->transb, - params->m, - params->n, - params->k); - printCuType(" alpha =", params->alpha); - printCuType(" beta=", params->beta); - printf("\n"); - - m = cuRand() % matrixM; - n = cuRand() % matrixN; - k = cuRand() % matrixK; - - state = cuRand() % 9; - return 0; -} - -template void fillupMatrixDebug(T_ELEM *A, int lda, int rows, int cols) -{ - for (int j = 0; j < cols; j++) { - for (int i = 0; i < rows; i++) { - A[i + lda * j] = cuGet(i + j); - } - } -} - -template -int test_gemm_loop(struct gemmOpts &opts, float err, double max_relative_error, cublasHandle_t handle) -{ - struct gemmTestParams params; - cudaStream_t *streamArray = 0; - cublasStatus_t status1, status2, status3; - T_ELEM *A = NULL; - T_ELEM *B = NULL; - T_ELEM *C = NULL; - T_ELEM **devPtrA = 0; - T_ELEM **devPtrB = 0; - T_ELEM **devPtrC = 0; - T_ELEM **devPtrA_dev = NULL; - T_ELEM **devPtrB_dev = NULL; - T_ELEM **devPtrC_dev = NULL; - int matrixM, matrixN, matrixK; - int rowsA, rowsB, rowsC; - int colsA, colsB, colsC; - int matrixSizeA, matrixSizeB, matrixSizeC; - int errors; - double start, stop; - - printf("Testing %cgemm\n", *opts.elem_type); - - matrixM = (opts.m) ? opts.m : BENCH_MATRIX_M; - matrixN = (opts.n) ? opts.n : BENCH_MATRIX_N; - matrixK = (opts.k) ? opts.k : BENCH_MATRIX_K; - - rowsA = imax(1, matrixM); - colsA = imax(1, matrixK); - rowsB = imax(1, matrixK); - colsB = imax(1, matrixN); - rowsC = imax(1, matrixM); - colsC = imax(1, matrixN); - - matrixSizeA = rowsA * colsA; - matrixSizeB = rowsB * colsB; - matrixSizeC = rowsC * colsC; - - devPtrA = (T_ELEM **)malloc(opts.N * sizeof(*devPtrA)); - devPtrB = (T_ELEM **)malloc(opts.N * sizeof(*devPtrB)); - devPtrC = (T_ELEM **)malloc(opts.N * sizeof(*devPtrC)); - - for (int i = 0; i < opts.N; i++) { - cudaError_t err1 = cudaMalloc((void **)&devPtrA[i], matrixSizeA * sizeof(devPtrA[0][0])); - cudaError_t err2 = cudaMalloc((void **)&devPtrB[i], matrixSizeB * sizeof(devPtrB[0][0])); - cudaError_t err3 = cudaMalloc((void **)&devPtrC[i], matrixSizeC * sizeof(devPtrC[0][0])); - - if ((err1 != cudaSuccess) || (err2 != cudaSuccess) || (err3 != cudaSuccess)) { - CLEANUP(); - fprintf(stderr, "!!!! GPU memory allocation error\n"); - return CUBLASTEST_FAILED; - } - } - - // For batched processing we need those arrays on the device - if (opts.test_method == tmBatched) { - cudaError_t err1 = cudaMalloc((void **)&devPtrA_dev, opts.N * sizeof(*devPtrA)); - cudaError_t err2 = cudaMalloc((void **)&devPtrB_dev, opts.N * sizeof(*devPtrB)); - cudaError_t err3 = cudaMalloc((void **)&devPtrC_dev, opts.N * sizeof(*devPtrC)); - - if ((err1 != cudaSuccess) || (err2 != cudaSuccess) || (err3 != cudaSuccess)) { - CLEANUP(); - fprintf(stderr, "!!!! GPU memory allocation error\n"); - return CUBLASTEST_FAILED; - } - - err1 = cudaMemcpy(devPtrA_dev, devPtrA, opts.N * sizeof(*devPtrA), cudaMemcpyHostToDevice); - err2 = cudaMemcpy(devPtrB_dev, devPtrB, opts.N * sizeof(*devPtrB), cudaMemcpyHostToDevice); - err3 = cudaMemcpy(devPtrC_dev, devPtrC, opts.N * sizeof(*devPtrC), cudaMemcpyHostToDevice); - - if ((err1 != cudaSuccess) || (err2 != cudaSuccess) || (err3 != cudaSuccess)) { - CLEANUP(); - fprintf(stderr, "!!!! cannot copy pointer array to device\n"); - return CUBLASTEST_FAILED; - } - } - - A = (T_ELEM *)malloc(matrixSizeA * sizeof(A[0])); - B = (T_ELEM *)malloc(matrixSizeB * sizeof(B[0])); - C = (T_ELEM *)malloc(matrixSizeC * sizeof(C[0])); - - if ((!A) || (!B) || (!C)) { - CLEANUP(); - fprintf(stderr, "!!!! system memory allocation error\n"); - return CUBLASTEST_FAILED; - } - - streamArray = (cudaStream_t *)malloc(opts.N * sizeof(cudaStream_t *)); - - for (int i = 0; i < opts.N; i++) { - if (opts.test_method == tmStream) { - cudaError_t cudaErr = cudaStreamCreate(&streamArray[i]); - - if (cudaErr != cudaSuccess) { - CLEANUP(); - fprintf(stderr, "!!!! cannot create stream\n"); - return CUBLASTEST_FAILED; - } - } - else { - streamArray[i] = 0; - } - } - - errors = 0; - int numTests = 1; - - while (TESTGEN(gemm)(&opts, matrixM, matrixN, matrixK, numTests, ¶ms) == 0) { - printf("#### args: lda=%d ldb=%d ldc=%d\n", rowsA, rowsB, rowsC); - - // fillup with Nan first (so lda padding is full on Nan) - memset(A, 0xFF, matrixSizeA * sizeof(A[0])); - fillupMatrixDebug(A, rowsA, params.m, params.k); - memset(B, 0xFF, matrixSizeB * sizeof(B[0])); - fillupMatrix(B, rowsB, params.k, params.n, 121); - - if (!cuEqual(params.beta, cuGet(0))) { - fillupMatrix(C, rowsC, params.m, params.n); - } - else { - /* fill with SNaNs to make sure ZGEMM doesn't access C */ - memset(C, 0xFF, matrixSizeC * sizeof(C[0])); - } - - double flopsCoef = 2.0; - - for (int i = 0; i < opts.N; i++) { - status1 = cublasSetMatrix(rowsA, colsA, sizeof(A[0]), A, rowsA, devPtrA[i], rowsA); - status2 = cublasSetMatrix(rowsB, colsB, sizeof(B[0]), B, rowsB, devPtrB[i], rowsB); - status3 = cublasSetMatrix(rowsC, colsC, sizeof(C[0]), C, rowsC, devPtrC[i], rowsC); - - if ((status1 != CUBLAS_STATUS_SUCCESS) || (status2 != status1) || (status3 != status1)) { - CLEANUP(); - fprintf(stderr, "!!!! GPU access error (write)\n"); - return CUBLASTEST_FAILED; - } - } - - start = second(); - - if (opts.test_method == tmBatched) { - cublasSetStream(handle, streamArray[0]); - status1 = cublasXgemmBatched(handle, - params.transa, - params.transb, - params.m, - params.n, - params.k, - ¶ms.alpha, - (const T_ELEM **)devPtrA_dev, - rowsA, - (const T_ELEM **)devPtrB_dev, - rowsB, - ¶ms.beta, - devPtrC_dev, - rowsC, - opts.N); - - if (status1 != CUBLAS_STATUS_SUCCESS) { - cudaError_t cudaStatus = cudaGetLastError(); - CLEANUP(); - fprintf(stderr, - "!!!! GPU program execution error : cublas Error=%d, cuda " - "Error=%d,(%s)\n", - status1, - cudaStatus, - cudaGetErrorString(cudaStatus)); - return CUBLASTEST_FAILED; - } - } - else { - for (int i = 0; i < opts.N; i++) { - cublasSetStream(handle, streamArray[i]); - status1 = cublasXgemm(handle, - params.transa, - params.transb, - params.m, - params.n, - params.k, - ¶ms.alpha, - devPtrA[i], - rowsA, - devPtrB[i], - rowsB, - ¶ms.beta, - devPtrC[i], - rowsC); - - if (status1 != CUBLAS_STATUS_SUCCESS) { - cudaError_t cudaStatus = cudaGetLastError(); - CLEANUP(); - fprintf(stderr, - "!!!! GPU program execution error : cublas Error=%d, cuda " - "Error=%d,(%s)\n", - status1, - cudaStatus, - cudaGetErrorString(cudaStatus)); - return CUBLASTEST_FAILED; - } - } - } - - cudaError_t cudaStatus = cudaDeviceSynchronize(); - - if (cudaStatus != cudaSuccess) { - CLEANUP(); - fprintf(stderr, - "!!!! GPU program execution error on cudaDeviceSynchronize : " - "cudaError=%d,(%s)\n", - cudaStatus, - cudaGetErrorString(cudaStatus)); - return CUBLASTEST_FAILED; - } - - stop = second(); - - fprintf(stdout, - "^^^^ elapsed = %10.8f sec GFLOPS=%g\n", - (stop - start), - opts.N * (1e-9 * flopsCoef * params.m * params.n * params.k) / (stop - start)); - - } // end while (TESTGEN.. - - CLEANUP(); - fprintf(stdout, "@@@@ %cgemm test %s\n", *opts.elem_type, errors ? "FAIL" : "OK"); - return CUBLASTEST_PASSED; -} - -int main(int argc, char *argv[]) -{ - struct gemmOpts opts; - int errors, nTimes, nTotalErrors = 0; - int status = CUBLASTEST_PASSED; - - printf("%s Starting...\n\n", sSDKname); - - int dev = findCudaDevice(argc, (const char **)argv); - - if (dev == -1) { - return CUBLASTEST_FAILED; - } - - errors = processArgs(argc, argv, &opts); - - if (errors) { - fprintf(stdout, - "\n Usage: batchcublas [-mSIZE_M] [-nSIZE_N] [-kSIZE_N] " - "[-NSIZE_NUM_ITERATIONS] [-qatest] [-noprompt]\n"); - return CUBLASTEST_FAILED; - } - - cublasHandle_t handle; - - if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { - fprintf(stdout, "CUBLAS initialization failed!\n"); - exit(EXIT_FAILURE); - } - - // Run single kernels - fprintf(stdout, "\n ==== Running single kernels ==== \n\n"); - nTimes = opts.N; - opts.N = 1; - *(opts.elem_type) = 's'; - status = - test_gemm_loop(opts, (float)CUBLAS_SGEMM_MAX_ULP_ERR, (double)CUBLAS_SGEMM_MAX_RELATIVE_ERR, handle); - - // Run Double version - *(opts.elem_type) = 'd'; - - if (getDeviceVersion() < DEV_VER_DBL_SUPPORT) { - fprintf(stdout, "@@@@ dgemm test WAIVED due to lack of DP support\n"); - exit(EXIT_WAIVED); - } - - status = - test_gemm_loop(opts, (float)CUBLAS_DGEMM_MAX_ULP_ERR, (double)CUBLAS_DGEMM_MAX_RELATIVE_ERR, handle); - nTotalErrors += (status == CUBLASTEST_PASSED ? 0 : 1); - opts.N = nTimes; - - // Run with and without streams and then batched. The batched functions are a - // feature new feature in 4.1 -#if CUDART_VERSION >= 4010 - - for (int ii = 0; ii < 3; ii++) { -#else - - for (int ii = 0; ii < 2; ii++) { -#endif - - switch (ii) { - case 0: - opts.test_method = tmRegular; - fprintf(stdout, "\n ==== Running N=%d without streams ==== \n\n", opts.N); - break; - - case 1: - opts.test_method = tmStream; - fprintf(stdout, "\n ==== Running N=%d with streams ==== \n\n", opts.N); - break; - - case 2: - opts.test_method = tmBatched; - fprintf(stdout, "\n ==== Running N=%d batched ==== \n\n", opts.N); - break; - } - - // Run single version - *(opts.elem_type) = 's'; - status = - test_gemm_loop(opts, (float)CUBLAS_SGEMM_MAX_ULP_ERR, (double)CUBLAS_SGEMM_MAX_RELATIVE_ERR, handle); - nTotalErrors += (status == CUBLASTEST_PASSED ? 0 : 1); - - // Run Double version - *(opts.elem_type) = 'd'; - - // Test doesn't meet minSpec, will will wave the DP test - if (getDeviceVersion() < DEV_VER_DBL_SUPPORT) { - fprintf(stdout, "@@@@ dgemm test WAIVED due to lack of DP support\n"); - exit(EXIT_WAIVED); - } - else { - status = test_gemm_loop( - opts, (float)CUBLAS_DGEMM_MAX_ULP_ERR, (double)CUBLAS_DGEMM_MAX_RELATIVE_ERR, handle); - nTotalErrors += (status == CUBLASTEST_PASSED ? 0 : 1); - } - } - - cublasDestroy(handle); - - printf("\nTest Summary\n"); - printf("%d error(s)\n", nTotalErrors); - exit(nTotalErrors == 0 ? EXIT_SUCCESS : EXIT_FAILURE); -} diff --git a/cpp/4_CUDA_Libraries/batchCUBLAS/batchCUBLAS.h b/cpp/4_CUDA_Libraries/batchCUBLAS/batchCUBLAS.h deleted file mode 100644 index 5bc88780..00000000 --- a/cpp/4_CUDA_Libraries/batchCUBLAS/batchCUBLAS.h +++ /dev/null @@ -1,179 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This example demonstrates how to get better performance by - * batching CUBLAS calls with the use of using streams - */ - -#include -#include -#include -#include - -#define SWITCH_CHAR '-' - -#define REFFUNC(funcname) ref_##funcname -#define TESTGEN(funcname) get_##funcname##_params -#define TESTPARAMS(funcname) funcname##TestParams - -#define DEV_VER_DBL_SUPPORT (130) -#define DEV_VER_ALL_SUPPORT (999) - -/* Errors Tests to be returned by all the Cublas test */ -#define CUBLASTEST_PASSED 0 -#define CUBLASTEST_FAILED 1 -#define CUBLASTEST_WAIVED 2 - -//============================================================================== -// Device information utilities -//============================================================================== - -#if defined(__cplusplus) -extern "C" -{ -#endif /* __cplusplus */ - int getDeviceVersion(void); - size_t getDeviceMemory(void); -#if defined(__cplusplus) -} -#endif /* __cplusplus */ - -//============================================================================== -// Math utilities -//============================================================================== - -static __inline__ int imax(int x, int y) { return (x > y) ? x : y; } - -static __inline__ unsigned floatAsUInt(float x) -{ - volatile union - { - float f; - unsigned i; - } xx; - xx.f = x; - return xx.i; -} - -static __inline__ unsigned long long doubleAsULL(double x) -{ - volatile union - { - double f; - unsigned long long i; - } xx; - xx.f = x; - return xx.i; -} - -static __inline__ unsigned cuRand(void) -{ - /* George Marsaglia's fast inline random number generator */ -#define CUDA_ZNEW (cuda_z = 36969 * (cuda_z & 65535) + (cuda_z >> 16)) -#define CUDA_WNEW (cuda_w = 18000 * (cuda_w & 65535) + (cuda_w >> 16)) -#define CUDA_MWC ((CUDA_ZNEW << 16) + CUDA_WNEW) -#define CUDA_SHR3 \ - (cuda_jsr = cuda_jsr ^ (cuda_jsr << 17), \ - cuda_jsr = cuda_jsr ^ (cuda_jsr >> 13), \ - cuda_jsr = cuda_jsr ^ (cuda_jsr << 5)) -#define CUDA_CONG (cuda_jcong = 69069 * cuda_jcong + 1234567) -#define KISS ((CUDA_MWC ^ CUDA_CONG) + CUDA_SHR3) - static unsigned int cuda_z = 362436069, cuda_w = 521288629; - static unsigned int cuda_jsr = 123456789, cuda_jcong = 380116160; - return KISS; -} - -//============================================================================== -// cuGet and cuEqual versions -//============================================================================== - -template __inline__ __device__ __host__ T_ELEM cuGet(double); -template <> __inline__ __device__ __host__ float cuGet(double x) { return float(x); } -template <> __inline__ __device__ __host__ double cuGet(double x) { return double(x); } - -template __inline__ __device__ __host__ T_ELEM cuGet(double, double); -template <> __inline__ __device__ __host__ float cuGet(double x, double y) { return float(x); } -template <> __inline__ __device__ __host__ double cuGet(double x, double y) { return double(x); } -static __inline__ __device__ __host__ bool cuEqual(float x, float y) { return (x == y); } -static __inline__ __device__ __host__ bool cuEqual(double x, double y) { return (x == y); } - -//============================================================================== -// Platform dependent timing utility -//============================================================================== - -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) -#if !defined(WIN32_LEAN_AND_MEAN) -#define WIN32_LEAN_AND_MEAN -#endif -#include -static __inline__ double second(void) -{ - LARGE_INTEGER t; - static double oofreq; - static int checkedForHighResTimer; - static BOOL hasHighResTimer; - - if (!checkedForHighResTimer) { - hasHighResTimer = QueryPerformanceFrequency(&t); - oofreq = 1.0 / (double)t.QuadPart; - checkedForHighResTimer = 1; - } - - if (hasHighResTimer) { - QueryPerformanceCounter(&t); - return (double)t.QuadPart * oofreq; - } - else { - return (double)GetTickCount() / 1000.0; - } -} -#elif defined(__linux__) || defined(__QNX__) -#include -#include -#include -static double second(void) -{ - struct timeval tv; - gettimeofday(&tv, NULL); - return (double)tv.tv_sec + (double)tv.tv_usec / 1000000.0; -} -#elif defined(__APPLE__) -#include -#include -#include -#include -#include -static double second(void) -{ - struct timeval tv; - gettimeofday(&tv, NULL); - return (double)tv.tv_sec + (double)tv.tv_usec / 1000000.0; -} -#else -#error unsupported platform -#endif diff --git a/cpp/4_CUDA_Libraries/boxFilterNPP/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/boxFilterNPP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/boxFilterNPP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/boxFilterNPP/.vscode/extensions.json b/cpp/4_CUDA_Libraries/boxFilterNPP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/boxFilterNPP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/boxFilterNPP/CMakeLists.txt b/cpp/4_CUDA_Libraries/boxFilterNPP/CMakeLists.txt deleted file mode 100644 index 0ac3682c..00000000 --- a/cpp/4_CUDA_Libraries/boxFilterNPP/CMakeLists.txt +++ /dev/null @@ -1,71 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(boxFilterNPP LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories( - ../../../Common - ../../../Common/UtilNPP -) - -# Source file -find_package(FreeImage) - -if(${FreeImage_FOUND}) - # Add target for boxFilterNPP - add_executable(boxFilterNPP boxFilterNPP.cpp) - -target_compile_options(boxFilterNPP PRIVATE $<$:--extended-lambda>) - -target_compile_features(boxFilterNPP PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(boxFilterNPP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - - target_include_directories(boxFilterNPP PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} - ${FreeImage_INCLUDE_DIRS} - ) - - target_link_libraries(boxFilterNPP PRIVATE - CUDA::nppc - CUDA::nppisu - CUDA::nppif - CUDA::cudart - ${FreeImage_LIBRARIES} - ) - - # Copy data files to output directory - add_custom_command(TARGET boxFilterNPP POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/teapot512.pgm - ${CMAKE_CURRENT_BINARY_DIR} - ) - if(WIN32) - add_custom_command(TARGET boxFilterNPP - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${FreeImage_LIBRARY}/../FreeImage.dll - ${CMAKE_CURRENT_BINARY_DIR}/$ - ) - endif() -else() - message(STATUS "FreeImage not found - will not build sample 'boxFilterNPP'") -endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/boxFilterNPP/README.md b/cpp/4_CUDA_Libraries/boxFilterNPP/README.md deleted file mode 100644 index 23a99cee..00000000 --- a/cpp/4_CUDA_Libraries/boxFilterNPP/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# boxFilterNPP - Box Filter with NPP - -## Description - -A NPP CUDA Sample that demonstrates how to use NPP FilterBox function to perform a Box Filter. - -## Key Concepts - -Performance Strategies, Image Processing, NPP Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaRuntimeGetVersion, cudaDriverGetVersion - -## Dependencies needed to build/run -[FreeImage](../../../README.md#freeimage), [NPP](../../../README.md#npp) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/boxFilterNPP/boxFilterNPP.cpp b/cpp/4_CUDA_Libraries/boxFilterNPP/boxFilterNPP.cpp deleted file mode 100644 index 8ced11db..00000000 --- a/cpp/4_CUDA_Libraries/boxFilterNPP/boxFilterNPP.cpp +++ /dev/null @@ -1,213 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) -#define WINDOWS_LEAN_AND_MEAN -#define NOMINMAX -#include -#pragma warning(disable : 4819) -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -int main(int argc, char *argv[]) -{ - printf("%s Starting...\n\n", argv[0]); - - try { - std::string sFilename; - char *filePath; - NppStreamContext nppStreamCtx; - nppStreamCtx.hStream = - 0; // The NULL stream by default, set this to whatever your stream ID is if not the NULL stream. - - cudaError_t cudaError = cudaGetDevice(&nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) { - printf("CUDA error: no devices supporting CUDA.\n"); - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - } - - const NppLibraryVersion *libVer = nppGetLibVersion(); - - printf("NPP Library Version %d.%d.%d\n", libVer->major, libVer->minor, libVer->build); - - int driverVersion, runtimeVersion; - cudaDriverGetVersion(&driverVersion); - cudaRuntimeGetVersion(&runtimeVersion); - - printf("CUDA Driver Version: %d.%d\n", driverVersion / 1000, (driverVersion % 100) / 10); - printf("CUDA Runtime Version: %d.%d\n\n", runtimeVersion / 1000, (runtimeVersion % 100) / 10); - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMajor, - cudaDevAttrComputeCapabilityMajor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMinor, - cudaDevAttrComputeCapabilityMinor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaStreamGetFlags(nppStreamCtx.hStream, &nppStreamCtx.nStreamFlags); - - cudaDeviceProp oDeviceProperties; - - cudaError = cudaGetDeviceProperties(&oDeviceProperties, nppStreamCtx.nCudaDeviceId); - - nppStreamCtx.nMultiProcessorCount = oDeviceProperties.multiProcessorCount; - nppStreamCtx.nMaxThreadsPerMultiProcessor = oDeviceProperties.maxThreadsPerMultiProcessor; - nppStreamCtx.nMaxThreadsPerBlock = oDeviceProperties.maxThreadsPerBlock; - nppStreamCtx.nSharedMemPerBlock = oDeviceProperties.sharedMemPerBlock; - - if (checkCmdLineFlag(argc, (const char **)argv, "input")) { - getCmdLineArgumentString(argc, (const char **)argv, "input", &filePath); - } - else { - filePath = sdkFindFilePath("teapot512.pgm", argv[0]); - } - - if (filePath) { - sFilename = filePath; - } - else { - sFilename = "teapot512.pgm"; - } - - // if we specify the filename at the command line, then we only test - // sFilename[0]. - int file_errors = 0; - std::ifstream infile(sFilename.data(), std::ifstream::in); - - if (infile.good()) { - std::cout << "boxFilterNPP opened: <" << sFilename.data() << "> successfully!" << std::endl; - file_errors = 0; - infile.close(); - } - else { - std::cout << "boxFilterNPP unable to open: <" << sFilename.data() << ">" << std::endl; - file_errors++; - infile.close(); - } - - if (file_errors > 0) { - exit(EXIT_FAILURE); - } - - std::string sResultFilename = sFilename; - - std::string::size_type dot = sResultFilename.rfind('.'); - - if (dot != std::string::npos) { - sResultFilename = sResultFilename.substr(0, dot); - } - - sResultFilename += "_boxFilter.pgm"; - - if (checkCmdLineFlag(argc, (const char **)argv, "output")) { - char *outputFilePath; - getCmdLineArgumentString(argc, (const char **)argv, "output", &outputFilePath); - sResultFilename = outputFilePath; - } - - // declare a host image object for an 8-bit grayscale image - npp::ImageCPU_8u_C1 oHostSrc; - // load gray-scale image from disk - npp::loadImage(sFilename, oHostSrc); - // declare a device image and copy construct from the host image, - // i.e. upload host to device - npp::ImageNPP_8u_C1 oDeviceSrc(oHostSrc); - - // create struct with box-filter mask size - NppiSize oMaskSize = {5, 5}; - - NppiSize oSrcSize = {(int)oDeviceSrc.width(), (int)oDeviceSrc.height()}; - NppiPoint oSrcOffset = {0, 0}; - - // create struct with ROI size - NppiSize oSizeROI = {(int)oDeviceSrc.width(), (int)oDeviceSrc.height()}; - // allocate device image of appropriately reduced size - npp::ImageNPP_8u_C1 oDeviceDst(oSizeROI.width, oSizeROI.height); - // set anchor point inside the mask to (oMaskSize.width / 2, - // oMaskSize.height / 2) It should round down when odd - NppiPoint oAnchor = {oMaskSize.width / 2, oMaskSize.height / 2}; - - // run box filter - NPP_CHECK_NPP(nppiFilterBoxBorder_8u_C1R_Ctx(oDeviceSrc.data(), - oDeviceSrc.pitch(), - oSrcSize, - oSrcOffset, - oDeviceDst.data(), - oDeviceDst.pitch(), - oSizeROI, - oMaskSize, - oAnchor, - NPP_BORDER_REPLICATE, - nppStreamCtx)); - - // declare a host image for the result - npp::ImageCPU_8u_C1 oHostDst(oDeviceDst.size()); - // and copy the device result data into it - oDeviceDst.copyTo(oHostDst.data(), oHostDst.pitch()); - - saveImage(sResultFilename, oHostDst); - std::cout << "Saved image: " << sResultFilename << std::endl; - - nppiFree(oDeviceSrc.data()); - nppiFree(oDeviceDst.data()); - - exit(EXIT_SUCCESS); - } - catch (npp::Exception &rException) { - std::cerr << "Program error! The following exception occurred: \n"; - std::cerr << rException << std::endl; - std::cerr << "Aborting." << std::endl; - - exit(EXIT_FAILURE); - } - catch (...) { - std::cerr << "Program error! An unknow type of exception occurred. \n"; - std::cerr << "Aborting." << std::endl; - - exit(EXIT_FAILURE); - return -1; - } - - return 0; -} diff --git a/cpp/4_CUDA_Libraries/boxFilterNPP/teapot512.pgm b/cpp/4_CUDA_Libraries/boxFilterNPP/teapot512.pgm deleted file mode 100644 index 23db9b9a..00000000 Binary files a/cpp/4_CUDA_Libraries/boxFilterNPP/teapot512.pgm and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/.vscode/extensions.json b/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/CMakeLists.txt b/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/CMakeLists.txt deleted file mode 100644 index 5cfffd7b..00000000 --- a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/CMakeLists.txt +++ /dev/null @@ -1,71 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(cannyEdgeDetectorNPP LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories( - ../../../Common - ../../../Common/UtilNPP -) - -# Source file -find_package(FreeImage) - -if(${FreeImage_FOUND}) - # Add target for cannyEdgeDetectorNPP - add_executable(cannyEdgeDetectorNPP cannyEdgeDetectorNPP.cpp) - -target_compile_options(cannyEdgeDetectorNPP PRIVATE $<$:--extended-lambda>) - -target_compile_features(cannyEdgeDetectorNPP PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(cannyEdgeDetectorNPP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - - target_include_directories(cannyEdgeDetectorNPP PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} - ${FreeImage_INCLUDE_DIRS} - ) - - target_link_libraries(cannyEdgeDetectorNPP PRIVATE - CUDA::nppc - CUDA::nppisu - CUDA::nppif - CUDA::cudart - ${FreeImage_LIBRARIES} - ) - - # Copy data files to output directory - add_custom_command(TARGET cannyEdgeDetectorNPP POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/teapot512.pgm - ${CMAKE_CURRENT_BINARY_DIR} - ) - if(WIN32) - add_custom_command(TARGET cannyEdgeDetectorNPP - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${FreeImage_LIBRARY}/../FreeImage.dll - ${CMAKE_CURRENT_BINARY_DIR}/$ - ) - endif() -else() - message(STATUS "FreeImage not found - will not build sample 'cannyEdgeDetectorNPP'") -endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/README.md b/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/README.md deleted file mode 100644 index b78ed33a..00000000 --- a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# cannyEdgeDetectorNPP - Canny Edge Detector NPP - -## Description - -An NPP CUDA Sample that demonstrates the recommended parameters to use with the nppiFilterCannyBorder_8u_C1R Canny Edge Detection image filter function. This function expects a single channel 8-bit grayscale input image. You can generate a grayscale image from a color image by first calling nppiColorToGray() or nppiRGBToGray(). The Canny Edge Detection function combines and improves on the techniques required to produce an edge detection image using multiple steps. - -## Key Concepts - -Performance Strategies, Image Processing, NPP Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaRuntimeGetVersion, cudaFree, cudaSetDevice, cudaGetDeviceCount, cudaDeviceInit, cudaDriverGetVersion, cudaMalloc, cudaGetDeviceProperties - -## Dependencies needed to build/run -[FreeImage](../../../README.md#freeimage), [NPP](../../../README.md#npp) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/cannyEdgeDetectorNPP.cpp b/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/cannyEdgeDetectorNPP.cpp deleted file mode 100644 index 174f4176..00000000 --- a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/cannyEdgeDetectorNPP.cpp +++ /dev/null @@ -1,260 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) -#define WINDOWS_LEAN_AND_MEAN -#define NOMINMAX -#include -#pragma warning(disable : 4819) -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -inline int cudaDeviceInit(int argc, const char **argv) -{ - int deviceCount; - checkCudaErrors(cudaGetDeviceCount(&deviceCount)); - - if (deviceCount == 0) { - std::cerr << "CUDA error: no devices supporting CUDA." << std::endl; - exit(EXIT_FAILURE); - } - - int dev = findCudaDevice(argc, argv); - - cudaDeviceProp deviceProp; - cudaGetDeviceProperties(&deviceProp, dev); - std::cerr << "cudaSetDevice GPU" << dev << " = " << deviceProp.name << std::endl; - - checkCudaErrors(cudaSetDevice(dev)); - - return dev; -} - -int main(int argc, char *argv[]) -{ - printf("%s Starting...\n\n", argv[0]); - - try { - std::string sFilename; - char *filePath; - - cudaDeviceInit(argc, (const char **)argv); - - NppStreamContext nppStreamCtx; - nppStreamCtx.hStream = - 0; // The NULL stream by default, set this to whatever your stream ID is if not the NULL stream. - - cudaError_t cudaError = cudaGetDevice(&nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) { - printf("CUDA error: no devices supporting CUDA.\n"); - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - } - - const NppLibraryVersion *libVer = nppGetLibVersion(); - - printf("NPP Library Version %d.%d.%d\n", libVer->major, libVer->minor, libVer->build); - - int driverVersion, runtimeVersion; - cudaDriverGetVersion(&driverVersion); - cudaRuntimeGetVersion(&runtimeVersion); - - printf("CUDA Driver Version: %d.%d\n", driverVersion / 1000, (driverVersion % 100) / 10); - printf("CUDA Runtime Version: %d.%d\n\n", runtimeVersion / 1000, (runtimeVersion % 100) / 10); - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMajor, - cudaDevAttrComputeCapabilityMajor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMinor, - cudaDevAttrComputeCapabilityMinor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaStreamGetFlags(nppStreamCtx.hStream, &nppStreamCtx.nStreamFlags); - - cudaDeviceProp oDeviceProperties; - - cudaError = cudaGetDeviceProperties(&oDeviceProperties, nppStreamCtx.nCudaDeviceId); - - nppStreamCtx.nMultiProcessorCount = oDeviceProperties.multiProcessorCount; - nppStreamCtx.nMaxThreadsPerMultiProcessor = oDeviceProperties.maxThreadsPerMultiProcessor; - nppStreamCtx.nMaxThreadsPerBlock = oDeviceProperties.maxThreadsPerBlock; - nppStreamCtx.nSharedMemPerBlock = oDeviceProperties.sharedMemPerBlock; - - if (checkCmdLineFlag(argc, (const char **)argv, "input")) { - getCmdLineArgumentString(argc, (const char **)argv, "input", &filePath); - } - else { - filePath = sdkFindFilePath("teapot512.pgm", argv[0]); - } - - if (filePath) { - sFilename = filePath; - } - else { - sFilename = "teapot512.pgm"; - } - - // if we specify the filename at the command line, then we only test - // sFilename[0]. - int file_errors = 0; - std::ifstream infile(sFilename.data(), std::ifstream::in); - - if (infile.good()) { - std::cout << "cannyEdgeDetectionNPP opened: <" << sFilename.data() << "> successfully!" << std::endl; - file_errors = 0; - infile.close(); - } - else { - std::cout << "cannyEdgeDetectionNPP unable to open: <" << sFilename.data() << ">" << std::endl; - file_errors++; - infile.close(); - } - - if (file_errors > 0) { - exit(EXIT_FAILURE); - } - - std::string sResultFilename = sFilename; - - std::string::size_type dot = sResultFilename.rfind('.'); - - if (dot != std::string::npos) { - sResultFilename = sResultFilename.substr(0, dot); - } - - sResultFilename += "_cannyEdgeDetection.pgm"; - - if (checkCmdLineFlag(argc, (const char **)argv, "output")) { - char *outputFilePath; - getCmdLineArgumentString(argc, (const char **)argv, "output", &outputFilePath); - sResultFilename = outputFilePath; - } - - // declare a host image object for an 8-bit grayscale image - npp::ImageCPU_8u_C1 oHostSrc; - // load gray-scale image from disk - npp::loadImage(sFilename, oHostSrc); - // declare a device image and copy construct from the host image, - // i.e. upload host to device - npp::ImageNPP_8u_C1 oDeviceSrc(oHostSrc); - - NppiSize oSrcSize = {(int)oDeviceSrc.width(), (int)oDeviceSrc.height()}; - NppiPoint oSrcOffset = {0, 0}; - - // create struct with ROI size - NppiSize oSizeROI = {(int)oDeviceSrc.width(), (int)oDeviceSrc.height()}; - // allocate device image of appropriately reduced size - npp::ImageNPP_8u_C1 oDeviceDst(oSizeROI.width, oSizeROI.height); - - int nBufferSize = 0; - Npp8u *pScratchBufferNPP = 0; - - // get necessary scratch buffer size and allocate that much device memory - NPP_CHECK_NPP(nppiFilterCannyBorderGetBufferSize(oSizeROI, &nBufferSize)); - - cudaMalloc((void **)&pScratchBufferNPP, nBufferSize); - - // now run the canny edge detection filter - // Using nppiNormL2 will produce larger magnitude values allowing for finer - // control of threshold values while nppiNormL1 will be slightly faster. - // Also, selecting the sobel gradient filter allows up to a 5x5 kernel size - // which can produce more precise results but is a bit slower. Commonly - // nppiNormL2 and sobel gradient filter size of 3x3 are used. Canny - // recommends that the high threshold value should be about 3 times the low - // threshold value. The threshold range will depend on the range of - // magnitude values that the sobel gradient filter generates for a - // particular image. - - Npp16s nLowThreshold = 72; - Npp16s nHighThreshold = 256; - - if ((nBufferSize > 0) && (pScratchBufferNPP != 0)) { - NPP_CHECK_NPP(nppiFilterCannyBorder_8u_C1R_Ctx(oDeviceSrc.data(), - oDeviceSrc.pitch(), - oSrcSize, - oSrcOffset, - oDeviceDst.data(), - oDeviceDst.pitch(), - oSizeROI, - NPP_FILTER_SOBEL, - NPP_MASK_SIZE_3_X_3, - nLowThreshold, - nHighThreshold, - nppiNormL2, - NPP_BORDER_REPLICATE, - pScratchBufferNPP, - nppStreamCtx)); - } - - // free scratch buffer memory - cudaFree(pScratchBufferNPP); - - // declare a host image for the result - npp::ImageCPU_8u_C1 oHostDst(oDeviceDst.size()); - // and copy the device result data into it - oDeviceDst.copyTo(oHostDst.data(), oHostDst.pitch()); - - saveImage(sResultFilename, oHostDst); - std::cout << "Saved image: " << sResultFilename << std::endl; - - nppiFree(oDeviceSrc.data()); - nppiFree(oDeviceDst.data()); - - exit(EXIT_SUCCESS); - } - catch (npp::Exception &rException) { - std::cerr << "Program error! The following exception occurred: \n"; - std::cerr << rException << std::endl; - std::cerr << "Aborting." << std::endl; - - exit(EXIT_FAILURE); - } - catch (...) { - std::cerr << "Program error! An unknow type of exception occurred. \n"; - std::cerr << "Aborting." << std::endl; - - exit(EXIT_FAILURE); - return -1; - } - - return 0; -} diff --git a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/teapot512.pgm b/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/teapot512.pgm deleted file mode 100644 index 23db9b9a..00000000 Binary files a/cpp/4_CUDA_Libraries/cannyEdgeDetectorNPP/teapot512.pgm and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/conjugateGradient/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/conjugateGradient/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradient/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradient/.vscode/extensions.json b/cpp/4_CUDA_Libraries/conjugateGradient/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradient/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradient/CMakeLists.txt b/cpp/4_CUDA_Libraries/conjugateGradient/CMakeLists.txt deleted file mode 100644 index bc1a5c4a..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradient/CMakeLists.txt +++ /dev/null @@ -1,44 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(conjugateGradient LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for conjugateGradient -add_executable(conjugateGradient main.cpp) - -target_compile_options(conjugateGradient PRIVATE $<$:--extended-lambda>) - -target_compile_features(conjugateGradient PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(conjugateGradient PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(conjugateGradient PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(conjugateGradient PRIVATE - CUDA::cudart - CUDA::cublas - CUDA::cusparse -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/conjugateGradient/README.md b/cpp/4_CUDA_Libraries/conjugateGradient/README.md deleted file mode 100644 index 150cf63f..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradient/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# conjugateGradient - ConjugateGradient - -## Description - -This sample implements a conjugate gradient solver on GPU using CUBLAS and CUSPARSE library. - -## Key Concepts - -Linear Algebra, CUBLAS Library, CUSPARSE Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaFree, cudaDeviceSynchronize, cudaMalloc, cudaGetDeviceProperties - -## Dependencies needed to build/run -[CUBLAS](../../../README.md#cublas), [CUSPARSE](../../../README.md#cusparse) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/conjugateGradient/main.cpp b/cpp/4_CUDA_Libraries/conjugateGradient/main.cpp deleted file mode 100644 index d2391bc0..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradient/main.cpp +++ /dev/null @@ -1,302 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This sample implements a conjugate gradient solver on GPU - * using CUBLAS and CUSPARSE - * - */ - -// includes, system -#include -#include -#include - -/* Using updated (v2) interfaces to cublas */ -#include -#include -#include - -// Utilities and system includes -#include // helper function CUDA error checking and initialization -#include // helper for shared functions common to CUDA Samples - -const char *sSDKname = "conjugateGradient"; - -/* genTridiag: generate a random tridiagonal symmetric matrix */ -void genTridiag(int *I, int *J, float *val, int N, int nz) -{ - I[0] = 0, J[0] = 0, J[1] = 1; - val[0] = (float)rand() / RAND_MAX + 10.0f; - val[1] = (float)rand() / RAND_MAX; - int start; - - for (int i = 1; i < N; i++) { - if (i > 1) { - I[i] = I[i - 1] + 3; - } - else { - I[1] = 2; - } - - start = (i - 1) * 3 + 2; - J[start] = i - 1; - J[start + 1] = i; - - if (i < N - 1) { - J[start + 2] = i + 1; - } - - val[start] = val[start - 1]; - val[start + 1] = (float)rand() / RAND_MAX + 10.0f; - - if (i < N - 1) { - val[start + 2] = (float)rand() / RAND_MAX; - } - } - - I[N] = nz; -} - -int main(int argc, char **argv) -{ - int M = 0, N = 0, nz = 0, *I = NULL, *J = NULL; - float *val = NULL; - const float tol = 1e-5f; - const int max_iter = 10000; - float *x; - float *rhs; - float a, b, na, r0, r1; - int *d_col, *d_row; - float *d_val, *d_x, dot; - float *d_r, *d_p, *d_Ax; - int k; - float alpha, beta, alpham1; - - // This will pick the best possible CUDA capable device - cudaDeviceProp deviceProp; - int devID = findCudaDevice(argc, (const char **)argv); - - if (devID < 0) { - printf("exiting...\n"); - exit(EXIT_SUCCESS); - } - - checkCudaErrors(cudaGetDeviceProperties(&deviceProp, devID)); - - // Statistics about the GPU device - printf("> GPU device has %d Multi-Processors, SM %d.%d compute capabilities\n\n", - deviceProp.multiProcessorCount, - deviceProp.major, - deviceProp.minor); - - /* Generate a random tridiagonal symmetric matrix in CSR format */ - M = N = 1048576; - nz = (N - 2) * 3 + 4; - I = (int *)malloc(sizeof(int) * (N + 1)); - J = (int *)malloc(sizeof(int) * nz); - val = (float *)malloc(sizeof(float) * nz); - genTridiag(I, J, val, N, nz); - - x = (float *)malloc(sizeof(float) * N); - rhs = (float *)malloc(sizeof(float) * N); - - for (int i = 0; i < N; i++) { - rhs[i] = 1.0; - x[i] = 0.0; - } - - /* Get handle to the CUBLAS context */ - cublasHandle_t cublasHandle = 0; - cublasStatus_t cublasStatus; - cublasStatus = cublasCreate(&cublasHandle); - - checkCudaErrors(cublasStatus); - - /* Get handle to the CUSPARSE context */ - cusparseHandle_t cusparseHandle = 0; - checkCudaErrors(cusparseCreate(&cusparseHandle)); - - checkCudaErrors(cudaMalloc((void **)&d_col, nz * sizeof(int))); - checkCudaErrors(cudaMalloc((void **)&d_row, (N + 1) * sizeof(int))); - checkCudaErrors(cudaMalloc((void **)&d_val, nz * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_x, N * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_r, N * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_p, N * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_Ax, N * sizeof(float))); - - /* Wrap raw data into cuSPARSE generic API objects */ - cusparseSpMatDescr_t matA = NULL; - checkCudaErrors(cusparseCreateCsr(&matA, - N, - N, - nz, - d_row, - d_col, - d_val, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ZERO, - CUDA_R_32F)); - cusparseDnVecDescr_t vecx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecx, N, d_x, CUDA_R_32F)); - cusparseDnVecDescr_t vecp = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecp, N, d_p, CUDA_R_32F)); - cusparseDnVecDescr_t vecAx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecAx, N, d_Ax, CUDA_R_32F)); - - /* Initialize problem data */ - cudaMemcpy(d_col, J, nz * sizeof(int), cudaMemcpyHostToDevice); - cudaMemcpy(d_row, I, (N + 1) * sizeof(int), cudaMemcpyHostToDevice); - cudaMemcpy(d_val, val, nz * sizeof(float), cudaMemcpyHostToDevice); - cudaMemcpy(d_x, x, N * sizeof(float), cudaMemcpyHostToDevice); - cudaMemcpy(d_r, rhs, N * sizeof(float), cudaMemcpyHostToDevice); - - alpha = 1.0; - alpham1 = -1.0; - beta = 0.0; - r0 = 0.; - - /* Allocate workspace for cuSPARSE */ - size_t bufferSize = 0; - checkCudaErrors(cusparseSpMV_bufferSize(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &alpha, - matA, - vecx, - &beta, - vecAx, - CUDA_R_32F, - CUSPARSE_SPMV_ALG_DEFAULT, - &bufferSize)); - void *buffer = NULL; - checkCudaErrors(cudaMalloc(&buffer, bufferSize)); - - /* Begin CG */ - checkCudaErrors(cusparseSpMV(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &alpha, - matA, - vecx, - &beta, - vecAx, - CUDA_R_32F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - - cublasSaxpy(cublasHandle, N, &alpham1, d_Ax, 1, d_r, 1); - cublasStatus = cublasSdot(cublasHandle, N, d_r, 1, d_r, 1, &r1); - - k = 1; - - while (r1 > tol * tol && k <= max_iter) { - if (k > 1) { - b = r1 / r0; - cublasStatus = cublasSscal(cublasHandle, N, &b, d_p, 1); - cublasStatus = cublasSaxpy(cublasHandle, N, &alpha, d_r, 1, d_p, 1); - } - else { - cublasStatus = cublasScopy(cublasHandle, N, d_r, 1, d_p, 1); - } - - checkCudaErrors(cusparseSpMV(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &alpha, - matA, - vecp, - &beta, - vecAx, - CUDA_R_32F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - cublasStatus = cublasSdot(cublasHandle, N, d_p, 1, d_Ax, 1, &dot); - a = r1 / dot; - - cublasStatus = cublasSaxpy(cublasHandle, N, &a, d_p, 1, d_x, 1); - na = -a; - cublasStatus = cublasSaxpy(cublasHandle, N, &na, d_Ax, 1, d_r, 1); - - r0 = r1; - cublasStatus = cublasSdot(cublasHandle, N, d_r, 1, d_r, 1, &r1); - cudaDeviceSynchronize(); - printf("iteration = %3d, residual = %e\n", k, sqrt(r1)); - k++; - } - - cudaMemcpy(x, d_x, N * sizeof(float), cudaMemcpyDeviceToHost); - - float rsum, diff, err = 0.0; - - for (int i = 0; i < N; i++) { - rsum = 0.0; - - for (int j = I[i]; j < I[i + 1]; j++) { - rsum += val[j] * x[J[j]]; - } - - diff = fabs(rsum - rhs[i]); - - if (diff > err) { - err = diff; - } - } - - if (buffer) { - checkCudaErrors(cudaFree(buffer)); - } - - cusparseDestroy(cusparseHandle); - cublasDestroy(cublasHandle); - if (matA) { - checkCudaErrors(cusparseDestroySpMat(matA)); - } - if (vecx) { - checkCudaErrors(cusparseDestroyDnVec(vecx)); - } - if (vecAx) { - checkCudaErrors(cusparseDestroyDnVec(vecAx)); - } - if (vecp) { - checkCudaErrors(cusparseDestroyDnVec(vecp)); - } - - free(I); - free(J); - free(val); - free(x); - free(rhs); - cudaFree(d_col); - cudaFree(d_row); - cudaFree(d_val); - cudaFree(d_x); - cudaFree(d_r); - cudaFree(d_p); - cudaFree(d_Ax); - - printf("Test Summary: Error amount = %f\n", err); - exit((k <= max_iter) ? 0 : 1); -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientCudaGraphs/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/conjugateGradientCudaGraphs/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientCudaGraphs/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientCudaGraphs/.vscode/extensions.json b/cpp/4_CUDA_Libraries/conjugateGradientCudaGraphs/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientCudaGraphs/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientCudaGraphs/CMakeLists.txt b/cpp/4_CUDA_Libraries/conjugateGradientCudaGraphs/CMakeLists.txt index 2636bf60..6bad6cd1 100644 --- a/cpp/4_CUDA_Libraries/conjugateGradientCudaGraphs/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/conjugateGradientCudaGraphs/CMakeLists.txt @@ -1,9 +1,16 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(conjugateGradientCudaGraphs LANGUAGES CUDA CXX) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + # Disable response file for libraries on QNX as qcc does not support lib paths with double quotes if(CMAKE_SYSTEM_NAME STREQUAL "QNX") set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES OFF) @@ -13,19 +20,8 @@ find_package(CUDAToolkit REQUIRED) set(CMAKE_POSITION_INDEPENDENT_CODE ON) -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for conjugateGradientCudaGraphs add_executable(conjugateGradientCudaGraphs conjugateGradientCudaGraphs.cu) target_compile_options(conjugateGradientCudaGraphs PRIVATE $<$:--extended-lambda>) @@ -39,6 +35,5 @@ target_link_libraries(conjugateGradientCudaGraphs PRIVATE CUDA::cusparse ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/.vscode/extensions.json b/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/CMakeLists.txt b/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/CMakeLists.txt index df0b3535..1dd7355f 100644 --- a/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/CMakeLists.txt @@ -1,24 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(conjugateGradientMultiBlockCG LANGUAGES CUDA CXX) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -maxrregcount=128") # limit register usage to 128 per thread to comply with the maximum number of 32-bit registers per SM -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) # This sample is not supported on QNX @@ -27,21 +21,16 @@ if(CMAKE_SYSTEM_NAME STREQUAL "QNX") return() endif() -# Source file -# Add target for conjugateGradientMultiBlockCG add_executable(conjugateGradientMultiBlockCG conjugateGradientMultiBlockCG.cu) target_compile_options(conjugateGradientMultiBlockCG PRIVATE $<$:--extended-lambda>) target_compile_features(conjugateGradientMultiBlockCG PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(conjugateGradientMultiBlockCG PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_link_libraries(conjugateGradientMultiBlockCG PRIVATE CUDA::cublas CUDA::cusparse ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/conjugateGradientMultiBlockCG.cu b/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/conjugateGradientMultiBlockCG.cu index 879dfecf..9a5d84d7 100644 --- a/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/conjugateGradientMultiBlockCG.cu +++ b/cpp/4_CUDA_Libraries/conjugateGradientMultiBlockCG/conjugateGradientMultiBlockCG.cu @@ -257,7 +257,9 @@ gpuScaleVectorAndSaxpy(const float *x, float *y, float a, float scale, int size, } } -extern "C" __global__ void gpuConjugateGradient(int *I, +// __launch_bounds__ keeps one full block resident: under -G, register inflation can drop +// occupancy to 0 blocks/SM, zeroing the cooperative grid and failing the launch (Blackwell sm_110+). +extern "C" __global__ void __launch_bounds__(THREADS_PER_BLOCK) gpuConjugateGradient(int *I, int *J, float *val, float *x, diff --git a/cpp/4_CUDA_Libraries/conjugateGradientMultiDeviceCG/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/conjugateGradientMultiDeviceCG/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientMultiDeviceCG/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientMultiDeviceCG/.vscode/extensions.json b/cpp/4_CUDA_Libraries/conjugateGradientMultiDeviceCG/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientMultiDeviceCG/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientMultiDeviceCG/CMakeLists.txt b/cpp/4_CUDA_Libraries/conjugateGradientMultiDeviceCG/CMakeLists.txt index 613d4db8..2a1bac62 100644 --- a/cpp/4_CUDA_Libraries/conjugateGradientMultiDeviceCG/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/conjugateGradientMultiDeviceCG/CMakeLists.txt @@ -1,23 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(conjugateGradientMultiDeviceCG LANGUAGES CUDA CXX) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) # This sample is not supported on QNX @@ -26,21 +21,16 @@ if(CMAKE_SYSTEM_NAME STREQUAL "QNX") return() endif() -# Source file -# Add target for conjugateGradientMultiDeviceCG add_executable(conjugateGradientMultiDeviceCG conjugateGradientMultiDeviceCG.cu) target_compile_options(conjugateGradientMultiDeviceCG PRIVATE $<$:--extended-lambda>) target_compile_features(conjugateGradientMultiDeviceCG PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(conjugateGradientMultiDeviceCG PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_link_libraries(conjugateGradientMultiDeviceCG PRIVATE CUDA::cublas CUDA::cusparse ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/conjugateGradientPrecond/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/conjugateGradientPrecond/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientPrecond/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientPrecond/.vscode/extensions.json b/cpp/4_CUDA_Libraries/conjugateGradientPrecond/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientPrecond/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientPrecond/CMakeLists.txt b/cpp/4_CUDA_Libraries/conjugateGradientPrecond/CMakeLists.txt deleted file mode 100644 index b20f5aec..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientPrecond/CMakeLists.txt +++ /dev/null @@ -1,44 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(conjugateGradientPrecond LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for conjugateGradientPrecond -add_executable(conjugateGradientPrecond main.cpp) - -target_compile_options(conjugateGradientPrecond PRIVATE $<$:--extended-lambda>) - -target_compile_features(conjugateGradientPrecond PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(conjugateGradientPrecond PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(conjugateGradientPrecond PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(conjugateGradientPrecond PRIVATE - CUDA::cudart - CUDA::cublas - CUDA::cusparse -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/conjugateGradientPrecond/README.md b/cpp/4_CUDA_Libraries/conjugateGradientPrecond/README.md deleted file mode 100644 index 30a00455..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientPrecond/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# conjugateGradientPrecond - Preconditioned Conjugate Gradient - -## Description - -This sample implements a preconditioned conjugate gradient solver on GPU using CUBLAS and CUSPARSE library. - -## Key Concepts - -Linear Algebra, CUBLAS Library, CUSPARSE Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaFree, cudaMemset, cudaMalloc, cudaGetDeviceProperties - -## Dependencies needed to build/run -[CUBLAS](../../../README.md#cublas), [CUSPARSE](../../../README.md#cusparse) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/conjugateGradientPrecond/main.cpp b/cpp/4_CUDA_Libraries/conjugateGradientPrecond/main.cpp deleted file mode 100644 index 1d1ea9a9..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientPrecond/main.cpp +++ /dev/null @@ -1,626 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This sample implements a preconditioned conjugate gradient solver on - * the GPU using CUBLAS and CUSPARSE. Relative to the conjugateGradient - * SDK example, this demonstrates the use of cusparseScsrilu02() for - * computing the incompute-LU preconditioner and cusparseScsrsv2_solve() - * for solving triangular systems. Specifically, the preconditioned - * conjugate gradient method with an incomplete LU preconditioner is - * used to solve the Laplacian operator in 2D on a uniform mesh. - * - * Note that the code in this example and the specific matrices used here - * were chosen to demonstrate the use of the CUSPARSE library as simply - * and as clearly as possible. This is not optimized code and the input - * matrices have been chosen for simplicity rather than performance. - * These should not be used either as a performance guide or for - * benchmarking purposes. - */ - - -// includes, system -#include -#include -#include -#include - -// CUDA Runtime -#include - -// Using updated (v2) interfaces for CUBLAS and CUSPARSE -#include -#include - -// Utilities and system includes -#include // CUDA error checking -#include // shared functions common to CUDA Samples - -const char *sSDKname = "conjugateGradientPrecond"; - -/* - * Generate a matrix representing a second order regular Laplacian operator - * on a 2D domain in Compressed Sparse Row format. - */ -void genLaplace(int *row_ptr, int *col_ind, float *val, int M, int N, int nz, float *rhs) -{ - assert(M == N); - int n = (int)sqrt((double)N); - assert(n * n == N); - printf("laplace dimension = %d\n", n); - int idx = 0; - - // loop over degrees of freedom - for (int i = 0; i < N; i++) { - int ix = i % n; - int iy = i / n; - - row_ptr[i] = idx; - - // up - if (iy > 0) { - val[idx] = 1.0; - col_ind[idx] = i - n; - idx++; - } - else { - rhs[i] -= 1.0; - } - - // left - if (ix > 0) { - val[idx] = 1.0; - col_ind[idx] = i - 1; - idx++; - } - else { - rhs[i] -= 0.0; - } - - // center - val[idx] = -4.0; - col_ind[idx] = i; - idx++; - - // right - if (ix < n - 1) { - val[idx] = 1.0; - col_ind[idx] = i + 1; - idx++; - } - else { - rhs[i] -= 0.0; - } - - // down - if (iy < n - 1) { - val[idx] = 1.0; - col_ind[idx] = i + n; - idx++; - } - else { - rhs[i] -= 0.0; - } - } - - row_ptr[N] = idx; -} - -/* - * Solve Ax=b using the conjugate gradient method - * a) without any preconditioning, - * b) using an Incomplete Cholesky preconditioner, and - * c) using an ILU0 preconditioner. - */ -int main(int argc, char **argv) -{ - const int max_iter = 1000; - int k, M = 0, N = 0, nz = 0, *I = NULL, *J = NULL; - int *d_col, *d_row; - int qatest = 0; - const float tol = 1e-12f; - float *x, *rhs; - float r0, r1, alpha, beta; - float *d_val, *d_x; - float *d_zm1, *d_zm2, *d_rm2; - float *d_r, *d_p, *d_omega, *d_y; - float *val = NULL; - float *d_valsILU0; - float rsum, diff, err = 0.0; - float qaerr1, qaerr2 = 0.0; - float dot, numerator, denominator, nalpha; - const float floatone = 1.0; - const float floatzero = 0.0; - - int nErrors = 0; - - printf("conjugateGradientPrecond starting...\n"); - - /* QA testing mode */ - if (checkCmdLineFlag(argc, (const char **)argv, "qatest")) { - qatest = 1; - } - - /* This will pick the best possible CUDA capable device */ - cudaDeviceProp deviceProp; - int devID = findCudaDevice(argc, (const char **)argv); - printf("GPU selected Device ID = %d \n", devID); - - if (devID < 0) { - printf("Invalid GPU device %d selected, exiting...\n", devID); - exit(EXIT_SUCCESS); - } - - checkCudaErrors(cudaGetDeviceProperties(&deviceProp, devID)); - - /* Statistics about the GPU device */ - printf("> GPU device has %d Multi-Processors, SM %d.%d compute capabilities\n\n", - deviceProp.multiProcessorCount, - deviceProp.major, - deviceProp.minor); - - /* Generate a Laplace matrix in CSR (Compressed Sparse Row) format */ - M = N = 16384; - nz = 5 * N - 4 * (int)sqrt((double)N); - I = (int *)malloc(sizeof(int) * (N + 1)); // csr row pointers for matrix A - J = (int *)malloc(sizeof(int) * nz); // csr column indices for matrix A - val = (float *)malloc(sizeof(float) * nz); // csr values for matrix A - x = (float *)malloc(sizeof(float) * N); - rhs = (float *)malloc(sizeof(float) * N); - - for (int i = 0; i < N; i++) { - rhs[i] = 0.0; // Initialize RHS - x[i] = 0.0; // Initial solution approximation - } - - genLaplace(I, J, val, M, N, nz, rhs); - - /* Create CUBLAS context */ - cublasHandle_t cublasHandle = NULL; - checkCudaErrors(cublasCreate(&cublasHandle)); - - /* Create CUSPARSE context */ - cusparseHandle_t cusparseHandle = NULL; - checkCudaErrors(cusparseCreate(&cusparseHandle)); - - /* Description of the A matrix */ - cusparseMatDescr_t descr = 0; - checkCudaErrors(cusparseCreateMatDescr(&descr)); - checkCudaErrors(cusparseSetMatType(descr, CUSPARSE_MATRIX_TYPE_GENERAL)); - checkCudaErrors(cusparseSetMatIndexBase(descr, CUSPARSE_INDEX_BASE_ZERO)); - - /* Allocate required memory */ - checkCudaErrors(cudaMalloc((void **)&d_col, nz * sizeof(int))); - checkCudaErrors(cudaMalloc((void **)&d_row, (N + 1) * sizeof(int))); - checkCudaErrors(cudaMalloc((void **)&d_val, nz * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_x, N * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_y, N * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_r, N * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_p, N * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_omega, N * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_valsILU0, nz * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_zm1, (N) * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_zm2, (N) * sizeof(float))); - checkCudaErrors(cudaMalloc((void **)&d_rm2, (N) * sizeof(float))); - - /* Wrap raw data into cuSPARSE generic API objects */ - cusparseDnVecDescr_t vecp = NULL, vecX = NULL, vecY = NULL, vecR = NULL, vecZM1 = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecp, N, d_p, CUDA_R_32F)); - checkCudaErrors(cusparseCreateDnVec(&vecX, N, d_x, CUDA_R_32F)); - checkCudaErrors(cusparseCreateDnVec(&vecY, N, d_y, CUDA_R_32F)); - checkCudaErrors(cusparseCreateDnVec(&vecR, N, d_r, CUDA_R_32F)); - checkCudaErrors(cusparseCreateDnVec(&vecZM1, N, d_zm1, CUDA_R_32F)); - cusparseDnVecDescr_t vecomega = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecomega, N, d_omega, CUDA_R_32F)); - - /* Initialize problem data */ - checkCudaErrors(cudaMemcpy(d_col, J, nz * sizeof(int), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_row, I, (N + 1) * sizeof(int), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_val, val, nz * sizeof(float), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_val, val, nz * sizeof(float), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_x, x, N * sizeof(float), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_r, rhs, N * sizeof(float), cudaMemcpyHostToDevice)); - - cusparseSpMatDescr_t matA = NULL; - cusparseSpMatDescr_t matM_lower, matM_upper; - cusparseFillMode_t fill_lower = CUSPARSE_FILL_MODE_LOWER; - cusparseDiagType_t diag_unit = CUSPARSE_DIAG_TYPE_UNIT; - cusparseFillMode_t fill_upper = CUSPARSE_FILL_MODE_UPPER; - cusparseDiagType_t diag_non_unit = CUSPARSE_DIAG_TYPE_NON_UNIT; - - checkCudaErrors(cusparseCreateCsr(&matA, - N, - N, - nz, - d_row, - d_col, - d_val, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ZERO, - CUDA_R_32F)); - - /* Copy A data to ILU(0) vals as input*/ - checkCudaErrors(cudaMemcpy(d_valsILU0, d_val, nz * sizeof(float), cudaMemcpyDeviceToDevice)); - - // Lower Part - checkCudaErrors(cusparseCreateCsr(&matM_lower, - N, - N, - nz, - d_row, - d_col, - d_valsILU0, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ZERO, - CUDA_R_32F)); - - checkCudaErrors(cusparseSpMatSetAttribute(matM_lower, CUSPARSE_SPMAT_FILL_MODE, &fill_lower, sizeof(fill_lower))); - checkCudaErrors(cusparseSpMatSetAttribute(matM_lower, CUSPARSE_SPMAT_DIAG_TYPE, &diag_unit, sizeof(diag_unit))); - // M_upper - checkCudaErrors(cusparseCreateCsr(&matM_upper, - N, - N, - nz, - d_row, - d_col, - d_valsILU0, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ZERO, - CUDA_R_32F)); - checkCudaErrors(cusparseSpMatSetAttribute(matM_upper, CUSPARSE_SPMAT_FILL_MODE, &fill_upper, sizeof(fill_upper))); - checkCudaErrors( - cusparseSpMatSetAttribute(matM_upper, CUSPARSE_SPMAT_DIAG_TYPE, &diag_non_unit, sizeof(diag_non_unit))); - - - /* Create ILU(0) info object */ - int bufferSizeLU = 0; - size_t bufferSizeMV, bufferSizeL, bufferSizeU; - void *d_bufferLU, *d_bufferMV, *d_bufferL, *d_bufferU; - cusparseSpSVDescr_t spsvDescrL, spsvDescrU; - cusparseMatDescr_t matLU; - csrilu02Info_t infoILU = NULL; - - checkCudaErrors(cusparseCreateCsrilu02Info(&infoILU)); - checkCudaErrors(cusparseCreateMatDescr(&matLU)); - checkCudaErrors(cusparseSetMatType(matLU, CUSPARSE_MATRIX_TYPE_GENERAL)); - checkCudaErrors(cusparseSetMatIndexBase(matLU, CUSPARSE_INDEX_BASE_ZERO)); - - /* Allocate workspace for cuSPARSE */ - checkCudaErrors(cusparseSpMV_bufferSize(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &floatone, - matA, - vecp, - &floatzero, - vecomega, - CUDA_R_32F, - CUSPARSE_SPMV_ALG_DEFAULT, - &bufferSizeMV)); - checkCudaErrors(cudaMalloc(&d_bufferMV, bufferSizeMV)); - - checkCudaErrors( - cusparseScsrilu02_bufferSize(cusparseHandle, N, nz, matLU, d_val, d_row, d_col, infoILU, &bufferSizeLU)); - checkCudaErrors(cudaMalloc(&d_bufferLU, bufferSizeLU)); - - checkCudaErrors(cusparseSpSV_createDescr(&spsvDescrL)); - checkCudaErrors(cusparseSpSV_bufferSize(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &floatone, - matM_lower, - vecR, - vecX, - CUDA_R_32F, - CUSPARSE_SPSV_ALG_DEFAULT, - spsvDescrL, - &bufferSizeL)); - checkCudaErrors(cudaMalloc(&d_bufferL, bufferSizeL)); - - checkCudaErrors(cusparseSpSV_createDescr(&spsvDescrU)); - checkCudaErrors(cusparseSpSV_bufferSize(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &floatone, - matM_upper, - vecR, - vecX, - CUDA_R_32F, - CUSPARSE_SPSV_ALG_DEFAULT, - spsvDescrU, - &bufferSizeU)); - checkCudaErrors(cudaMalloc(&d_bufferU, bufferSizeU)); - - /* Conjugate gradient without preconditioning. - ------------------------------------------ - - Follows the description by Golub & Van Loan, - "Matrix Computations 3rd ed.", Section 10.2.6 */ - - printf("Convergence of CG without preconditioning: \n"); - k = 0; - r0 = 0; - checkCudaErrors(cublasSdot(cublasHandle, N, d_r, 1, d_r, 1, &r1)); - - while (r1 > tol * tol && k <= max_iter) { - k++; - - if (k == 1) { - checkCudaErrors(cublasScopy(cublasHandle, N, d_r, 1, d_p, 1)); - } - else { - beta = r1 / r0; - checkCudaErrors(cublasSscal(cublasHandle, N, &beta, d_p, 1)); - checkCudaErrors(cublasSaxpy(cublasHandle, N, &floatone, d_r, 1, d_p, 1)); - } - - checkCudaErrors(cusparseSpMV(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &floatone, - matA, - vecp, - &floatzero, - vecomega, - CUDA_R_32F, - CUSPARSE_SPMV_ALG_DEFAULT, - d_bufferMV)); - checkCudaErrors(cublasSdot(cublasHandle, N, d_p, 1, d_omega, 1, &dot)); - alpha = r1 / dot; - checkCudaErrors(cublasSaxpy(cublasHandle, N, &alpha, d_p, 1, d_x, 1)); - nalpha = -alpha; - checkCudaErrors(cublasSaxpy(cublasHandle, N, &nalpha, d_omega, 1, d_r, 1)); - r0 = r1; - checkCudaErrors(cublasSdot(cublasHandle, N, d_r, 1, d_r, 1, &r1)); - } - - printf(" iteration = %3d, residual = %e \n", k, sqrt(r1)); - - checkCudaErrors(cudaMemcpy(x, d_x, N * sizeof(float), cudaMemcpyDeviceToHost)); - - /* check result */ - err = 0.0; - - for (int i = 0; i < N; i++) { - rsum = 0.0; - - for (int j = I[i]; j < I[i + 1]; j++) { - rsum += val[j] * x[J[j]]; - } - - diff = fabs(rsum - rhs[i]); - - if (diff > err) { - err = diff; - } - } - - printf(" Convergence Test: %s \n", (k <= max_iter) ? "OK" : "FAIL"); - nErrors += (k > max_iter) ? 1 : 0; - qaerr1 = err; - - if (0) { - // output result in matlab-style array - int n = (int)sqrt((double)N); - printf("a = [ "); - - for (int iy = 0; iy < n; iy++) { - for (int ix = 0; ix < n; ix++) { - printf(" %f ", x[iy * n + ix]); - } - - if (iy == n - 1) { - printf(" ]"); - } - - printf("\n"); - } - } - - - /* Preconditioned Conjugate Gradient using ILU. - -------------------------------------------- - Follows the description by Golub & Van Loan, - "Matrix Computations 3rd ed.", Algorithm 10.3.1 */ - - printf("\nConvergence of CG using ILU(0) preconditioning: \n"); - - /* Perform analysis for ILU(0) */ - checkCudaErrors(cusparseScsrilu02_analysis( - cusparseHandle, N, nz, descr, d_valsILU0, d_row, d_col, infoILU, CUSPARSE_SOLVE_POLICY_USE_LEVEL, d_bufferLU)); - - /* generate the ILU(0) factors */ - checkCudaErrors(cusparseScsrilu02( - cusparseHandle, N, nz, matLU, d_valsILU0, d_row, d_col, infoILU, CUSPARSE_SOLVE_POLICY_USE_LEVEL, d_bufferLU)); - - /* perform triangular solve analysis */ - checkCudaErrors(cusparseSpSV_analysis(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &floatone, - matM_lower, - vecR, - vecX, - CUDA_R_32F, - CUSPARSE_SPSV_ALG_DEFAULT, - spsvDescrL, - d_bufferL)); - - checkCudaErrors(cusparseSpSV_analysis(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &floatone, - matM_upper, - vecR, - vecX, - CUDA_R_32F, - CUSPARSE_SPSV_ALG_DEFAULT, - spsvDescrU, - d_bufferU)); - - /* reset the initial guess of the solution to zero */ - for (int i = 0; i < N; i++) { - x[i] = 0.0; - } - checkCudaErrors(cudaMemcpy(d_r, rhs, N * sizeof(float), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_x, x, N * sizeof(float), cudaMemcpyHostToDevice)); - - k = 0; - checkCudaErrors(cublasSdot(cublasHandle, N, d_r, 1, d_r, 1, &r1)); - - while (r1 > tol * tol && k <= max_iter) { - // preconditioner application: d_zm1 = U^-1 L^-1 d_r - checkCudaErrors(cusparseSpSV_solve(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &floatone, - matM_lower, - vecR, - vecY, - CUDA_R_32F, - CUSPARSE_SPSV_ALG_DEFAULT, - spsvDescrL)); - - checkCudaErrors(cusparseSpSV_solve(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &floatone, - matM_upper, - vecY, - vecZM1, - CUDA_R_32F, - CUSPARSE_SPSV_ALG_DEFAULT, - spsvDescrU)); - k++; - - if (k == 1) { - checkCudaErrors(cublasScopy(cublasHandle, N, d_zm1, 1, d_p, 1)); - } - else { - checkCudaErrors(cublasSdot(cublasHandle, N, d_r, 1, d_zm1, 1, &numerator)); - checkCudaErrors(cublasSdot(cublasHandle, N, d_rm2, 1, d_zm2, 1, &denominator)); - beta = numerator / denominator; - checkCudaErrors(cublasSscal(cublasHandle, N, &beta, d_p, 1)); - checkCudaErrors(cublasSaxpy(cublasHandle, N, &floatone, d_zm1, 1, d_p, 1)); - } - - checkCudaErrors(cusparseSpMV(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &floatone, - matA, - vecp, - &floatzero, - vecomega, - CUDA_R_32F, - CUSPARSE_SPMV_ALG_DEFAULT, - d_bufferMV)); - checkCudaErrors(cublasSdot(cublasHandle, N, d_r, 1, d_zm1, 1, &numerator)); - checkCudaErrors(cublasSdot(cublasHandle, N, d_p, 1, d_omega, 1, &denominator)); - alpha = numerator / denominator; - checkCudaErrors(cublasSaxpy(cublasHandle, N, &alpha, d_p, 1, d_x, 1)); - checkCudaErrors(cublasScopy(cublasHandle, N, d_r, 1, d_rm2, 1)); - checkCudaErrors(cublasScopy(cublasHandle, N, d_zm1, 1, d_zm2, 1)); - nalpha = -alpha; - checkCudaErrors(cublasSaxpy(cublasHandle, N, &nalpha, d_omega, 1, d_r, 1)); - checkCudaErrors(cublasSdot(cublasHandle, N, d_r, 1, d_r, 1, &r1)); - } - - printf(" iteration = %3d, residual = %e \n", k, sqrt(r1)); - - checkCudaErrors(cudaMemcpy(x, d_x, N * sizeof(float), cudaMemcpyDeviceToHost)); - - /* check result */ - err = 0.0; - - for (int i = 0; i < N; i++) { - rsum = 0.0; - - for (int j = I[i]; j < I[i + 1]; j++) { - rsum += val[j] * x[J[j]]; - } - - diff = fabs(rsum - rhs[i]); - - if (diff > err) { - err = diff; - } - } - - printf(" Convergence Test: %s \n", (k <= max_iter) ? "OK" : "FAIL"); - nErrors += (k > max_iter) ? 1 : 0; - qaerr2 = err; - - /* Destroy descriptors */ - checkCudaErrors(cusparseDestroyCsrilu02Info(infoILU)); - checkCudaErrors(cusparseDestroyMatDescr(matLU)); - checkCudaErrors(cusparseSpSV_destroyDescr(spsvDescrL)); - checkCudaErrors(cusparseSpSV_destroyDescr(spsvDescrU)); - checkCudaErrors(cusparseDestroySpMat(matM_lower)); - checkCudaErrors(cusparseDestroySpMat(matM_upper)); - checkCudaErrors(cusparseDestroySpMat(matA)); - checkCudaErrors(cusparseDestroyDnVec(vecp)); - checkCudaErrors(cusparseDestroyDnVec(vecomega)); - checkCudaErrors(cusparseDestroyDnVec(vecR)); - checkCudaErrors(cusparseDestroyDnVec(vecX)); - checkCudaErrors(cusparseDestroyDnVec(vecY)); - checkCudaErrors(cusparseDestroyDnVec(vecZM1)); - - /* Destroy contexts */ - checkCudaErrors(cusparseDestroy(cusparseHandle)); - checkCudaErrors(cublasDestroy(cublasHandle)); - - /* Free device memory */ - free(I); - free(J); - free(val); - free(x); - free(rhs); - checkCudaErrors(cudaFree(d_bufferMV)); - checkCudaErrors(cudaFree(d_bufferLU)); - checkCudaErrors(cudaFree(d_bufferL)); - checkCudaErrors(cudaFree(d_bufferU)); - checkCudaErrors(cudaFree(d_col)); - checkCudaErrors(cudaFree(d_row)); - checkCudaErrors(cudaFree(d_val)); - checkCudaErrors(cudaFree(d_x)); - checkCudaErrors(cudaFree(d_y)); - checkCudaErrors(cudaFree(d_r)); - checkCudaErrors(cudaFree(d_p)); - checkCudaErrors(cudaFree(d_omega)); - checkCudaErrors(cudaFree(d_valsILU0)); - checkCudaErrors(cudaFree(d_zm1)); - checkCudaErrors(cudaFree(d_zm2)); - checkCudaErrors(cudaFree(d_rm2)); - - // cudaDeviceReset causes the driver to clean up all state. While - // not mandatory in normal operation, it is good practice. It is also - // needed to ensure correct operation when the application is being - // profiled. Calling cudaDeviceReset causes all profile data to be - // flushed before the application exits - cudaDeviceReset(); - - printf("\n"); - printf("Test Summary:\n"); - printf(" Counted total of %d errors\n", nErrors); - printf(" qaerr1 = %f qaerr2 = %f\n\n", fabs(qaerr1), fabs(qaerr2)); - exit((nErrors == 0 && fabs(qaerr1) < 1e-5 && fabs(qaerr2) < 1e-5 ? EXIT_SUCCESS : EXIT_FAILURE)); -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientUM/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/conjugateGradientUM/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientUM/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientUM/.vscode/extensions.json b/cpp/4_CUDA_Libraries/conjugateGradientUM/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientUM/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/conjugateGradientUM/CMakeLists.txt b/cpp/4_CUDA_Libraries/conjugateGradientUM/CMakeLists.txt deleted file mode 100644 index 4cbcc4da..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientUM/CMakeLists.txt +++ /dev/null @@ -1,44 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(conjugateGradientUM LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for conjugateGradientUM -add_executable(conjugateGradientUM main.cpp) - -target_compile_options(conjugateGradientUM PRIVATE $<$:--extended-lambda>) - -target_compile_features(conjugateGradientUM PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(conjugateGradientUM PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(conjugateGradientUM PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(conjugateGradientUM PRIVATE - CUDA::cudart - CUDA::cublas - CUDA::cusparse -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/conjugateGradientUM/README.md b/cpp/4_CUDA_Libraries/conjugateGradientUM/README.md deleted file mode 100644 index 36038190..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientUM/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# conjugateGradientUM - ConjugateGradientUM - -## Description - -This sample implements a conjugate gradient solver on GPU using CUBLAS and CUSPARSE library, using Unified Memory - -## Key Concepts - -Unified Memory, Linear Algebra, CUBLAS Library, CUSPARSE Library - -## Supported SM Architectures - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaFree, cudaMallocManaged, cudaDeviceSynchronize, cudaMalloc, cudaGetDeviceProperties - -## Dependencies needed to build/run -[UVM](../../../README.md#unified-virtual-memory), [CUBLAS](../../../README.md#cublas), [CUSPARSE](../../../README.md#cusparse) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/conjugateGradientUM/main.cpp b/cpp/4_CUDA_Libraries/conjugateGradientUM/main.cpp deleted file mode 100644 index baa74997..00000000 --- a/cpp/4_CUDA_Libraries/conjugateGradientUM/main.cpp +++ /dev/null @@ -1,296 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This sample implements a conjugate gradient solver on GPU - * using CUBLAS and CUSPARSE - * - */ - -// includes, system -#include -#include -#include - -/* Using updated (v2) interfaces to cublas and cusparse */ -#include -#include -#include - -// Utilities and system includes -#include // helper function CUDA error checking and initialization -#include // helper for shared functions common to CUDA Samples - -const char *sSDKname = "conjugateGradientUM"; - -/* genTridiag: generate a random tridiagonal symmetric matrix */ -void genTridiag(int *I, int *J, float *val, int N, int nz) -{ - I[0] = 0, J[0] = 0, J[1] = 1; - val[0] = (float)rand() / RAND_MAX + 10.0f; - val[1] = (float)rand() / RAND_MAX; - int start; - - for (int i = 1; i < N; i++) { - if (i > 1) { - I[i] = I[i - 1] + 3; - } - else { - I[1] = 2; - } - - start = (i - 1) * 3 + 2; - J[start] = i - 1; - J[start + 1] = i; - - if (i < N - 1) { - J[start + 2] = i + 1; - } - - val[start] = val[start - 1]; - val[start + 1] = (float)rand() / RAND_MAX + 10.0f; - - if (i < N - 1) { - val[start + 2] = (float)rand() / RAND_MAX; - } - } - - I[N] = nz; -} - -int main(int argc, char **argv) -{ - int N = 0, nz = 0, *I = NULL, *J = NULL; - float *val = NULL; - const float tol = 1e-5f; - const int max_iter = 10000; - float *x; - float *rhs; - float a, b, na, r0, r1; - float dot; - float *r, *p, *Ax; - int k; - float alpha, beta, alpham1; - - printf("Starting [%s]...\n", sSDKname); - - // This will pick the best possible CUDA capable device - cudaDeviceProp deviceProp; - int devID = findCudaDevice(argc, (const char **)argv); - checkCudaErrors(cudaGetDeviceProperties(&deviceProp, devID)); - - if (!deviceProp.managedMemory) { - // This samples requires being run on a device that supports Unified Memory - fprintf(stderr, "Unified Memory not supported on this device\n"); - exit(EXIT_WAIVED); - } - - // Statistics about the GPU device - printf("> GPU device has %d Multi-Processors, SM %d.%d compute capabilities\n\n", - deviceProp.multiProcessorCount, - deviceProp.major, - deviceProp.minor); - - /* Generate a random tridiagonal symmetric matrix in CSR format */ - N = 1048576; - nz = (N - 2) * 3 + 4; - - cudaMallocManaged((void **)&I, sizeof(int) * (N + 1)); - cudaMallocManaged((void **)&J, sizeof(int) * nz); - cudaMallocManaged((void **)&val, sizeof(float) * nz); - - genTridiag(I, J, val, N, nz); - - cudaMallocManaged((void **)&x, sizeof(float) * N); - cudaMallocManaged((void **)&rhs, sizeof(float) * N); - - for (int i = 0; i < N; i++) { - rhs[i] = 1.0; - x[i] = 0.0; - } - - /* Get handle to the CUBLAS context */ - cublasHandle_t cublasHandle = 0; - cublasStatus_t cublasStatus; - cublasStatus = cublasCreate(&cublasHandle); - - checkCudaErrors(cublasStatus); - - /* Get handle to the CUSPARSE context */ - cusparseHandle_t cusparseHandle = 0; - cusparseStatus_t cusparseStatus; - cusparseStatus = cusparseCreate(&cusparseHandle); - - checkCudaErrors(cusparseStatus); - - cusparseMatDescr_t descr = 0; - cusparseStatus = cusparseCreateMatDescr(&descr); - - checkCudaErrors(cusparseStatus); - - cusparseSetMatType(descr, CUSPARSE_MATRIX_TYPE_GENERAL); - cusparseSetMatIndexBase(descr, CUSPARSE_INDEX_BASE_ZERO); - - // temp memory for CG - checkCudaErrors(cudaMallocManaged((void **)&r, N * sizeof(float))); - checkCudaErrors(cudaMallocManaged((void **)&p, N * sizeof(float))); - checkCudaErrors(cudaMallocManaged((void **)&Ax, N * sizeof(float))); - - /* Wrap raw data into cuSPARSE generic API objects */ - cusparseSpMatDescr_t matA = NULL; - checkCudaErrors(cusparseCreateCsr( - &matA, N, N, nz, I, J, val, CUSPARSE_INDEX_32I, CUSPARSE_INDEX_32I, CUSPARSE_INDEX_BASE_ZERO, CUDA_R_32F)); - cusparseDnVecDescr_t vecx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecx, N, x, CUDA_R_32F)); - cusparseDnVecDescr_t vecp = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecp, N, p, CUDA_R_32F)); - cusparseDnVecDescr_t vecAx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecAx, N, Ax, CUDA_R_32F)); - - cudaDeviceSynchronize(); - - for (int i = 0; i < N; i++) { - r[i] = rhs[i]; - } - - alpha = 1.0; - alpham1 = -1.0; - beta = 0.0; - r0 = 0.; - - /* Allocate workspace for cuSPARSE */ - size_t bufferSize = 0; - checkCudaErrors(cusparseSpMV_bufferSize(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &alpha, - matA, - vecx, - &beta, - vecAx, - CUDA_R_32F, - CUSPARSE_SPMV_ALG_DEFAULT, - &bufferSize)); - void *buffer = NULL; - checkCudaErrors(cudaMalloc(&buffer, bufferSize)); - - checkCudaErrors(cusparseSpMV(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &alpha, - matA, - vecx, - &beta, - vecAx, - CUDA_R_32F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - - cublasSaxpy(cublasHandle, N, &alpham1, Ax, 1, r, 1); - cublasStatus = cublasSdot(cublasHandle, N, r, 1, r, 1, &r1); - - k = 1; - - while (r1 > tol * tol && k <= max_iter) { - if (k > 1) { - b = r1 / r0; - cublasStatus = cublasSscal(cublasHandle, N, &b, p, 1); - cublasStatus = cublasSaxpy(cublasHandle, N, &alpha, r, 1, p, 1); - } - else { - cublasStatus = cublasScopy(cublasHandle, N, r, 1, p, 1); - } - - checkCudaErrors(cusparseSpMV(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &alpha, - matA, - vecp, - &beta, - vecAx, - CUDA_R_32F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - cublasStatus = cublasSdot(cublasHandle, N, p, 1, Ax, 1, &dot); - a = r1 / dot; - - cublasStatus = cublasSaxpy(cublasHandle, N, &a, p, 1, x, 1); - na = -a; - cublasStatus = cublasSaxpy(cublasHandle, N, &na, Ax, 1, r, 1); - - r0 = r1; - cublasStatus = cublasSdot(cublasHandle, N, r, 1, r, 1, &r1); - cudaDeviceSynchronize(); - printf("iteration = %3d, residual = %e\n", k, sqrt(r1)); - k++; - } - - printf("Final residual: %e\n", sqrt(r1)); - - fprintf(stdout, "&&&& conjugateGradientUM %s\n", (sqrt(r1) < tol) ? "PASSED" : "FAILED"); - - float rsum, diff, err = 0.0; - - for (int i = 0; i < N; i++) { - rsum = 0.0; - - for (int j = I[i]; j < I[i + 1]; j++) { - rsum += val[j] * x[J[j]]; - } - - diff = fabs(rsum - rhs[i]); - - if (diff > err) { - err = diff; - } - } - - cusparseDestroy(cusparseHandle); - cublasDestroy(cublasHandle); - if (matA) { - checkCudaErrors(cusparseDestroySpMat(matA)); - } - if (vecx) { - checkCudaErrors(cusparseDestroyDnVec(vecx)); - } - if (vecAx) { - checkCudaErrors(cusparseDestroyDnVec(vecAx)); - } - if (vecp) { - checkCudaErrors(cusparseDestroyDnVec(vecp)); - } - - cudaFree(I); - cudaFree(J); - cudaFree(val); - cudaFree(x); - cudaFree(rhs); - cudaFree(r); - cudaFree(p); - cudaFree(Ax); - - printf("Test Summary: Error amount = %f, result = %s\n", err, (k <= max_iter) ? "SUCCESS" : "FAILURE"); - exit((k <= max_iter) ? EXIT_SUCCESS : EXIT_FAILURE); -} diff --git a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/.vscode/extensions.json b/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/CMakeLists.txt b/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/CMakeLists.txt deleted file mode 100644 index 4238fd5d..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/CMakeLists.txt +++ /dev/null @@ -1,56 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(cuSolverDn_LinearSolver LANGUAGES C CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for cuSolverDn_LinearSolver -add_executable(cuSolverDn_LinearSolver cuSolverDn_LinearSolver.cpp mmio.c mmio_wrapper.cpp) - -target_compile_options(cuSolverDn_LinearSolver PRIVATE $<$:--extended-lambda>) - -target_compile_features(cuSolverDn_LinearSolver PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(cuSolverDn_LinearSolver PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(cuSolverDn_LinearSolver PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(cuSolverDn_LinearSolver PRIVATE - CUDA::cudart - CUDA::cublas - CUDA::cusolver -) - -# Copy data files to output directory -add_custom_command(TARGET cuSolverDn_LinearSolver POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/gr_900_900_crg.mtx - ${CMAKE_CURRENT_BINARY_DIR} -) -add_custom_command(TARGET cuSolverDn_LinearSolver POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lap3D_7pt_n20.mtx - ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/README.md b/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/README.md deleted file mode 100644 index d955ee16..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# cuSolverDn_LinearSolver - cuSolverDn Linear Solver - -## Description - -A CUDA Sample that demonstrates cuSolverDN's LU, QR and Cholesky factorization. - -## Key Concepts - -Linear Algebra, CUSOLVER Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuDoubleComplex, cuComplex - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaStreamDestroy, cudaFree, cudaDeviceSynchronize, cudaMemset, cudaMalloc, cudaStreamCreate - -## Dependencies needed to build/run -[CUSOLVER](../../../README.md#cusolver), [CUBLAS](../../../README.md#cublas), [CUSPARSE](../../../README.md#cusparse) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/cuSolverDn_LinearSolver.cpp b/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/cuSolverDn_LinearSolver.cpp deleted file mode 100644 index cd33ceb0..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/cuSolverDn_LinearSolver.cpp +++ /dev/null @@ -1,587 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * Test three linear solvers, including Cholesky, LU and QR. - * The user has to prepare a sparse matrix of "matrix market format" (with - * extension .mtx). For example, the user can download matrices in Florida - * Sparse Matrix Collection. - * (http://www.cise.ufl.edu/research/sparse/matrices/) - * - * The user needs to choose a solver by switch -R and - * to provide the path of the matrix by switch -F, then - * the program solves - * A*x = b where b = ones(m,1) - * and reports relative error - * |b-A*x|/(|A|*|x|) - * - * The elapsed time is also reported so the user can compare efficiency of - * different solvers. - * - * How to use - * ./cuSolverDn_LinearSolver // Default: cholesky - * ./cuSolverDn_LinearSolver -R=chol -filefile> // cholesky factorization - * ./cuSolverDn_LinearSolver -R=lu -file // LU with partial - * pivoting - * ./cuSolverDn_LinearSolver -R=qr -file // QR factorization - * - * Remark: the absolute error on solution x is meaningless without knowing - * condition number of A. The relative error on residual should be close to - * machine zero, i.e. 1.e-15. - */ - -#include -#include -#include -#include -#include -#include - -#include "cublas_v2.h" -#include "cusolverDn.h" -#include "helper_cuda.h" -#include "helper_cusolver.h" - -template -int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - T_ELEM **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -void UsageDN(void) -{ - printf("\n"); - printf("-h : display this help\n"); - printf("-R= : choose a linear solver\n"); - printf(" chol (cholesky factorization), this is default\n"); - printf(" qr (QR factorization)\n"); - printf(" lu (LU factorization)\n"); - printf("-lda= : leading dimension of A , m by default\n"); - printf("-file=: filename containing a matrix in MM format\n"); - printf("-device= : if want to run on specific GPU\n"); - - exit(0); -} - -/* - * solve A*x = b by Cholesky factorization - * - */ -int linearSolverCHOL(cusolverDnHandle_t handle, int n, const double *Acopy, int lda, const double *b, double *x) -{ - int bufferSize = 0; - int *info = NULL; - double *buffer = NULL; - double *A = NULL; - int h_info = 0; - double start, stop; - double time_solve; - cublasFillMode_t uplo = CUBLAS_FILL_MODE_LOWER; - - checkCudaErrors(cusolverDnDpotrf_bufferSize(handle, uplo, n, (double *)Acopy, lda, &bufferSize)); - - checkCudaErrors(cudaMalloc(&info, sizeof(int))); - checkCudaErrors(cudaMalloc(&buffer, sizeof(double) * bufferSize)); - checkCudaErrors(cudaMalloc(&A, sizeof(double) * lda * n)); - - // prepare a copy of A because potrf will overwrite A with L - checkCudaErrors(cudaMemcpy(A, Acopy, sizeof(double) * lda * n, cudaMemcpyDeviceToDevice)); - checkCudaErrors(cudaMemset(info, 0, sizeof(int))); - - start = second(); - start = second(); - - checkCudaErrors(cusolverDnDpotrf(handle, uplo, n, A, lda, buffer, bufferSize, info)); - - checkCudaErrors(cudaMemcpy(&h_info, info, sizeof(int), cudaMemcpyDeviceToHost)); - - if (0 != h_info) { - fprintf(stderr, "Error: Cholesky factorization failed\n"); - } - - checkCudaErrors(cudaMemcpy(x, b, sizeof(double) * n, cudaMemcpyDeviceToDevice)); - - checkCudaErrors(cusolverDnDpotrs(handle, uplo, n, 1, A, lda, x, n, info)); - - checkCudaErrors(cudaDeviceSynchronize()); - stop = second(); - - time_solve = stop - start; - fprintf(stdout, "timing: cholesky = %10.6f sec\n", time_solve); - - if (info) { - checkCudaErrors(cudaFree(info)); - } - if (buffer) { - checkCudaErrors(cudaFree(buffer)); - } - if (A) { - checkCudaErrors(cudaFree(A)); - } - - return 0; -} - -/* - * solve A*x = b by LU with partial pivoting - * - */ -int linearSolverLU(cusolverDnHandle_t handle, int n, const double *Acopy, int lda, const double *b, double *x) -{ - int bufferSize = 0; - int *info = NULL; - double *buffer = NULL; - double *A = NULL; - int *ipiv = NULL; // pivoting sequence - int h_info = 0; - double start, stop; - double time_solve; - - checkCudaErrors(cusolverDnDgetrf_bufferSize(handle, n, n, (double *)Acopy, lda, &bufferSize)); - - checkCudaErrors(cudaMalloc(&info, sizeof(int))); - checkCudaErrors(cudaMalloc(&buffer, sizeof(double) * bufferSize)); - checkCudaErrors(cudaMalloc(&A, sizeof(double) * lda * n)); - checkCudaErrors(cudaMalloc(&ipiv, sizeof(int) * n)); - - // prepare a copy of A because getrf will overwrite A with L - checkCudaErrors(cudaMemcpy(A, Acopy, sizeof(double) * lda * n, cudaMemcpyDeviceToDevice)); - checkCudaErrors(cudaMemset(info, 0, sizeof(int))); - - start = second(); - start = second(); - - checkCudaErrors(cusolverDnDgetrf(handle, n, n, A, lda, buffer, ipiv, info)); - checkCudaErrors(cudaMemcpy(&h_info, info, sizeof(int), cudaMemcpyDeviceToHost)); - - if (0 != h_info) { - fprintf(stderr, "Error: LU factorization failed\n"); - } - - checkCudaErrors(cudaMemcpy(x, b, sizeof(double) * n, cudaMemcpyDeviceToDevice)); - checkCudaErrors(cusolverDnDgetrs(handle, CUBLAS_OP_N, n, 1, A, lda, ipiv, x, n, info)); - checkCudaErrors(cudaDeviceSynchronize()); - stop = second(); - - time_solve = stop - start; - fprintf(stdout, "timing: LU = %10.6f sec\n", time_solve); - - if (info) { - checkCudaErrors(cudaFree(info)); - } - if (buffer) { - checkCudaErrors(cudaFree(buffer)); - } - if (A) { - checkCudaErrors(cudaFree(A)); - } - if (ipiv) { - checkCudaErrors(cudaFree(ipiv)); - } - - return 0; -} - -/* - * solve A*x = b by QR - * - */ -int linearSolverQR(cusolverDnHandle_t handle, int n, const double *Acopy, int lda, const double *b, double *x) -{ - cublasHandle_t cublasHandle = NULL; // used in residual evaluation - int bufferSize = 0; - int bufferSize_geqrf = 0; - int bufferSize_ormqr = 0; - int *info = NULL; - double *buffer = NULL; - double *A = NULL; - double *tau = NULL; - int h_info = 0; - double start, stop; - double time_solve; - const double one = 1.0; - - checkCudaErrors(cublasCreate(&cublasHandle)); - - checkCudaErrors(cusolverDnDgeqrf_bufferSize(handle, n, n, (double *)Acopy, lda, &bufferSize_geqrf)); - checkCudaErrors(cusolverDnDormqr_bufferSize( - handle, CUBLAS_SIDE_LEFT, CUBLAS_OP_T, n, 1, n, A, lda, NULL, x, n, &bufferSize_ormqr)); - - printf("buffer_geqrf = %d, buffer_ormqr = %d \n", bufferSize_geqrf, bufferSize_ormqr); - - bufferSize = (bufferSize_geqrf > bufferSize_ormqr) ? bufferSize_geqrf : bufferSize_ormqr; - - checkCudaErrors(cudaMalloc(&info, sizeof(int))); - checkCudaErrors(cudaMalloc(&buffer, sizeof(double) * bufferSize)); - checkCudaErrors(cudaMalloc(&A, sizeof(double) * lda * n)); - checkCudaErrors(cudaMalloc((void **)&tau, sizeof(double) * n)); - - // prepare a copy of A because getrf will overwrite A with L - checkCudaErrors(cudaMemcpy(A, Acopy, sizeof(double) * lda * n, cudaMemcpyDeviceToDevice)); - - checkCudaErrors(cudaMemset(info, 0, sizeof(int))); - - start = second(); - start = second(); - - // compute QR factorization - checkCudaErrors(cusolverDnDgeqrf(handle, n, n, A, lda, tau, buffer, bufferSize, info)); - - checkCudaErrors(cudaMemcpy(&h_info, info, sizeof(int), cudaMemcpyDeviceToHost)); - - if (0 != h_info) { - fprintf(stderr, "Error: QR factorization failed\n"); - } - - checkCudaErrors(cudaMemcpy(x, b, sizeof(double) * n, cudaMemcpyDeviceToDevice)); - - // compute Q^T*b - checkCudaErrors( - cusolverDnDormqr(handle, CUBLAS_SIDE_LEFT, CUBLAS_OP_T, n, 1, n, A, lda, tau, x, n, buffer, bufferSize, info)); - - // x = R \ Q^T*b - checkCudaErrors(cublasDtrsm(cublasHandle, - CUBLAS_SIDE_LEFT, - CUBLAS_FILL_MODE_UPPER, - CUBLAS_OP_N, - CUBLAS_DIAG_NON_UNIT, - n, - 1, - &one, - A, - lda, - x, - n)); - checkCudaErrors(cudaDeviceSynchronize()); - stop = second(); - - time_solve = stop - start; - fprintf(stdout, "timing: QR = %10.6f sec\n", time_solve); - - if (cublasHandle) { - checkCudaErrors(cublasDestroy(cublasHandle)); - } - if (info) { - checkCudaErrors(cudaFree(info)); - } - if (buffer) { - checkCudaErrors(cudaFree(buffer)); - } - if (A) { - checkCudaErrors(cudaFree(A)); - } - if (tau) { - checkCudaErrors(cudaFree(tau)); - } - - return 0; -} - -void parseCommandLineArguments(int argc, char *argv[], struct testOpts &opts) -{ - memset(&opts, 0, sizeof(opts)); - - if (checkCmdLineFlag(argc, (const char **)argv, "-h")) { - UsageDN(); - } - - if (checkCmdLineFlag(argc, (const char **)argv, "R")) { - char *solverType = NULL; - getCmdLineArgumentString(argc, (const char **)argv, "R", &solverType); - - if (solverType) { - if ((STRCASECMP(solverType, "chol") != 0) && (STRCASECMP(solverType, "lu") != 0) - && (STRCASECMP(solverType, "qr") != 0)) { - printf("\nIncorrect argument passed to -R option\n"); - UsageDN(); - } - else { - opts.testFunc = solverType; - } - } - } - - if (checkCmdLineFlag(argc, (const char **)argv, "file")) { - char *fileName = 0; - getCmdLineArgumentString(argc, (const char **)argv, "file", &fileName); - - if (fileName) { - opts.sparse_mat_filename = fileName; - } - else { - printf("\nIncorrect filename passed to -file \n "); - UsageDN(); - } - } - - if (checkCmdLineFlag(argc, (const char **)argv, "lda")) { - opts.lda = getCmdLineArgumentInt(argc, (const char **)argv, "lda"); - } -} - -int main(int argc, char *argv[]) -{ - struct testOpts opts; - cusolverDnHandle_t handle = NULL; - cublasHandle_t cublasHandle = NULL; // used in residual evaluation - cudaStream_t stream = NULL; - - int rowsA = 0; // number of rows of A - int colsA = 0; // number of columns of A - int nnzA = 0; // number of nonzeros of A - int baseA = 0; // base index in CSR format - int lda = 0; // leading dimension in dense matrix - - // CSR(A) from I/O - int *h_csrRowPtrA = NULL; - int *h_csrColIndA = NULL; - double *h_csrValA = NULL; - - double *h_A = NULL; // dense matrix from CSR(A) - double *h_x = NULL; // a copy of d_x - double *h_b = NULL; // b = ones(m,1) - double *h_r = NULL; // r = b - A*x, a copy of d_r - - double *d_A = NULL; // a copy of h_A - double *d_x = NULL; // x = A \ b - double *d_b = NULL; // a copy of h_b - double *d_r = NULL; // r = b - A*x - - // the constants are used in residual evaluation, r = b - A*x - const double minus_one = -1.0; - const double one = 1.0; - - double x_inf = 0.0; - double r_inf = 0.0; - double A_inf = 0.0; - int errors = 0; - - parseCommandLineArguments(argc, argv, opts); - - if (NULL == opts.testFunc) { - opts.testFunc = "chol"; // By default running Cholesky as NO solver - // selected with -R option. - } - - findCudaDevice(argc, (const char **)argv); - - printf("step 1: read matrix market format\n"); - - if (opts.sparse_mat_filename == NULL) { - opts.sparse_mat_filename = sdkFindFilePath("gr_900_900_crg.mtx", argv[0]); - if (opts.sparse_mat_filename != NULL) - printf("Using default input file [%s]\n", opts.sparse_mat_filename); - else - printf("Could not find gr_900_900_crg.mtx\n"); - } - else { - printf("Using input file [%s]\n", opts.sparse_mat_filename); - } - - if (opts.sparse_mat_filename == NULL) { - fprintf(stderr, "Error: input matrix is not provided\n"); - return EXIT_FAILURE; - } - - if (loadMMSparseMatrix(opts.sparse_mat_filename, - 'd', - true, - &rowsA, - &colsA, - &nnzA, - &h_csrValA, - &h_csrRowPtrA, - &h_csrColIndA, - true)) { - exit(EXIT_FAILURE); - } - baseA = h_csrRowPtrA[0]; // baseA = {0,1} - - printf("sparse matrix A is %d x %d with %d nonzeros, base=%d\n", rowsA, colsA, nnzA, baseA); - - if (rowsA != colsA) { - fprintf(stderr, "Error: only support square matrix\n"); - exit(EXIT_FAILURE); - } - - printf("step 2: convert CSR(A) to dense matrix\n"); - - lda = opts.lda ? opts.lda : rowsA; - if (lda < rowsA) { - fprintf(stderr, "Error: lda must be greater or equal to dimension of A\n"); - exit(EXIT_FAILURE); - } - - h_A = (double *)malloc(sizeof(double) * lda * colsA); - h_x = (double *)malloc(sizeof(double) * colsA); - h_b = (double *)malloc(sizeof(double) * rowsA); - h_r = (double *)malloc(sizeof(double) * rowsA); - assert(NULL != h_A); - assert(NULL != h_x); - assert(NULL != h_b); - assert(NULL != h_r); - - memset(h_A, 0, sizeof(double) * lda * colsA); - - for (int row = 0; row < rowsA; row++) { - const int start = h_csrRowPtrA[row] - baseA; - const int end = h_csrRowPtrA[row + 1] - baseA; - for (int colidx = start; colidx < end; colidx++) { - const int col = h_csrColIndA[colidx] - baseA; - const double Areg = h_csrValA[colidx]; - h_A[row + col * lda] = Areg; - } - } - - printf("step 3: set right hand side vector (b) to 1\n"); - for (int row = 0; row < rowsA; row++) { - h_b[row] = 1.0; - } - - // verify if A is symmetric or not. - if (0 == strcmp(opts.testFunc, "chol")) { - int issym = 1; - for (int j = 0; j < colsA; j++) { - for (int i = j; i < rowsA; i++) { - double Aij = h_A[i + j * lda]; - double Aji = h_A[j + i * lda]; - if (Aij != Aji) { - issym = 0; - break; - } - } - } - if (!issym) { - printf("Error: A has no symmetric pattern, please use LU or QR \n"); - exit(EXIT_FAILURE); - } - } - - checkCudaErrors(cusolverDnCreate(&handle)); - checkCudaErrors(cublasCreate(&cublasHandle)); - checkCudaErrors(cudaStreamCreate(&stream)); - - checkCudaErrors(cusolverDnSetStream(handle, stream)); - checkCudaErrors(cublasSetStream(cublasHandle, stream)); - - checkCudaErrors(cudaMalloc((void **)&d_A, sizeof(double) * lda * colsA)); - checkCudaErrors(cudaMalloc((void **)&d_x, sizeof(double) * colsA)); - checkCudaErrors(cudaMalloc((void **)&d_b, sizeof(double) * rowsA)); - checkCudaErrors(cudaMalloc((void **)&d_r, sizeof(double) * rowsA)); - - printf("step 4: prepare data on device\n"); - checkCudaErrors(cudaMemcpy(d_A, h_A, sizeof(double) * lda * colsA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_b, h_b, sizeof(double) * rowsA, cudaMemcpyHostToDevice)); - - printf("step 5: solve A*x = b \n"); - // d_A and d_b are read-only - if (0 == strcmp(opts.testFunc, "chol")) { - linearSolverCHOL(handle, rowsA, d_A, lda, d_b, d_x); - } - else if (0 == strcmp(opts.testFunc, "lu")) { - linearSolverLU(handle, rowsA, d_A, lda, d_b, d_x); - } - else if (0 == strcmp(opts.testFunc, "qr")) { - linearSolverQR(handle, rowsA, d_A, lda, d_b, d_x); - } - else { - fprintf(stderr, "Error: %s is unknown function\n", opts.testFunc); - exit(EXIT_FAILURE); - } - printf("step 6: evaluate residual\n"); - checkCudaErrors(cudaMemcpy(d_r, d_b, sizeof(double) * rowsA, cudaMemcpyDeviceToDevice)); - - // r = b - A*x - checkCudaErrors(cublasDgemm_v2( - cublasHandle, CUBLAS_OP_N, CUBLAS_OP_N, rowsA, 1, colsA, &minus_one, d_A, lda, d_x, rowsA, &one, d_r, rowsA)); - - checkCudaErrors(cudaMemcpy(h_x, d_x, sizeof(double) * colsA, cudaMemcpyDeviceToHost)); - checkCudaErrors(cudaMemcpy(h_r, d_r, sizeof(double) * rowsA, cudaMemcpyDeviceToHost)); - - x_inf = vec_norminf(colsA, h_x); - r_inf = vec_norminf(rowsA, h_r); - A_inf = mat_norminf(rowsA, colsA, h_A, lda); - - printf("|b - A*x| = %E \n", r_inf); - printf("|A| = %E \n", A_inf); - printf("|x| = %E \n", x_inf); - printf("|b - A*x|/(|A|*|x|) = %E \n", r_inf / (A_inf * x_inf)); - - if (handle) { - checkCudaErrors(cusolverDnDestroy(handle)); - } - if (cublasHandle) { - checkCudaErrors(cublasDestroy(cublasHandle)); - } - if (stream) { - checkCudaErrors(cudaStreamDestroy(stream)); - } - - if (h_csrValA) { - free(h_csrValA); - } - if (h_csrRowPtrA) { - free(h_csrRowPtrA); - } - if (h_csrColIndA) { - free(h_csrColIndA); - } - - if (h_A) { - free(h_A); - } - if (h_x) { - free(h_x); - } - if (h_b) { - free(h_b); - } - if (h_r) { - free(h_r); - } - - if (d_A) { - checkCudaErrors(cudaFree(d_A)); - } - if (d_x) { - checkCudaErrors(cudaFree(d_x)); - } - if (d_b) { - checkCudaErrors(cudaFree(d_b)); - } - if (d_r) { - checkCudaErrors(cudaFree(d_r)); - } - - return 0; -} diff --git a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/gr_900_900_crg.mtx b/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/gr_900_900_crg.mtx deleted file mode 100644 index cabd2573..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/gr_900_900_crg.mtx +++ /dev/null @@ -1,4330 +0,0 @@ -%%MatrixMarket matrix coordinate real symmetric -% -% GR_30_30 -% Finite difference laplacian, from the -% LAPLACIANS group of the Harwell-Boeing Sparse Matrix Collection. -% -900 900 4322 -1 1 8.0000000000000e+00 -2 1 -1.0000000000000e+00 -31 1 -1.0000000000000e+00 -32 1 -1.0000000000000e+00 -2 2 8.0000000000000e+00 -3 2 -1.0000000000000e+00 -31 2 -1.0000000000000e+00 -32 2 -1.0000000000000e+00 -33 2 -1.0000000000000e+00 -3 3 8.0000000000000e+00 -4 3 -1.0000000000000e+00 -32 3 -1.0000000000000e+00 -33 3 -1.0000000000000e+00 -34 3 -1.0000000000000e+00 -4 4 8.0000000000000e+00 -5 4 -1.0000000000000e+00 -33 4 -1.0000000000000e+00 -34 4 -1.0000000000000e+00 -35 4 -1.0000000000000e+00 -5 5 8.0000000000000e+00 -6 5 -1.0000000000000e+00 -34 5 -1.0000000000000e+00 -35 5 -1.0000000000000e+00 -36 5 -1.0000000000000e+00 -6 6 8.0000000000000e+00 -7 6 -1.0000000000000e+00 -35 6 -1.0000000000000e+00 -36 6 -1.0000000000000e+00 -37 6 -1.0000000000000e+00 -7 7 8.0000000000000e+00 -8 7 -1.0000000000000e+00 -36 7 -1.0000000000000e+00 -37 7 -1.0000000000000e+00 -38 7 -1.0000000000000e+00 -8 8 8.0000000000000e+00 -9 8 -1.0000000000000e+00 -37 8 -1.0000000000000e+00 -38 8 -1.0000000000000e+00 -39 8 -1.0000000000000e+00 -9 9 8.0000000000000e+00 -10 9 -1.0000000000000e+00 -38 9 -1.0000000000000e+00 -39 9 -1.0000000000000e+00 -40 9 -1.0000000000000e+00 -10 10 8.0000000000000e+00 -11 10 -1.0000000000000e+00 -39 10 -1.0000000000000e+00 -40 10 -1.0000000000000e+00 -41 10 -1.0000000000000e+00 -11 11 8.0000000000000e+00 -12 11 -1.0000000000000e+00 -40 11 -1.0000000000000e+00 -41 11 -1.0000000000000e+00 -42 11 -1.0000000000000e+00 -12 12 8.0000000000000e+00 -13 12 -1.0000000000000e+00 -41 12 -1.0000000000000e+00 -42 12 -1.0000000000000e+00 -43 12 -1.0000000000000e+00 -13 13 8.0000000000000e+00 -14 13 -1.0000000000000e+00 -42 13 -1.0000000000000e+00 -43 13 -1.0000000000000e+00 -44 13 -1.0000000000000e+00 -14 14 8.0000000000000e+00 -15 14 -1.0000000000000e+00 -43 14 -1.0000000000000e+00 -44 14 -1.0000000000000e+00 -45 14 -1.0000000000000e+00 -15 15 8.0000000000000e+00 -16 15 -1.0000000000000e+00 -44 15 -1.0000000000000e+00 -45 15 -1.0000000000000e+00 -46 15 -1.0000000000000e+00 -16 16 8.0000000000000e+00 -17 16 -1.0000000000000e+00 -45 16 -1.0000000000000e+00 -46 16 -1.0000000000000e+00 -47 16 -1.0000000000000e+00 -17 17 8.0000000000000e+00 -18 17 -1.0000000000000e+00 -46 17 -1.0000000000000e+00 -47 17 -1.0000000000000e+00 -48 17 -1.0000000000000e+00 -18 18 8.0000000000000e+00 -19 18 -1.0000000000000e+00 -47 18 -1.0000000000000e+00 -48 18 -1.0000000000000e+00 -49 18 -1.0000000000000e+00 -19 19 8.0000000000000e+00 -20 19 -1.0000000000000e+00 -48 19 -1.0000000000000e+00 -49 19 -1.0000000000000e+00 -50 19 -1.0000000000000e+00 -20 20 8.0000000000000e+00 -21 20 -1.0000000000000e+00 -49 20 -1.0000000000000e+00 -50 20 -1.0000000000000e+00 -51 20 -1.0000000000000e+00 -21 21 8.0000000000000e+00 -22 21 -1.0000000000000e+00 -50 21 -1.0000000000000e+00 -51 21 -1.0000000000000e+00 -52 21 -1.0000000000000e+00 -22 22 8.0000000000000e+00 -23 22 -1.0000000000000e+00 -51 22 -1.0000000000000e+00 -52 22 -1.0000000000000e+00 -53 22 -1.0000000000000e+00 -23 23 8.0000000000000e+00 -24 23 -1.0000000000000e+00 -52 23 -1.0000000000000e+00 -53 23 -1.0000000000000e+00 -54 23 -1.0000000000000e+00 -24 24 8.0000000000000e+00 -25 24 -1.0000000000000e+00 -53 24 -1.0000000000000e+00 -54 24 -1.0000000000000e+00 -55 24 -1.0000000000000e+00 -25 25 8.0000000000000e+00 -26 25 -1.0000000000000e+00 -54 25 -1.0000000000000e+00 -55 25 -1.0000000000000e+00 -56 25 -1.0000000000000e+00 -26 26 8.0000000000000e+00 -27 26 -1.0000000000000e+00 -55 26 -1.0000000000000e+00 -56 26 -1.0000000000000e+00 -57 26 -1.0000000000000e+00 -27 27 8.0000000000000e+00 -28 27 -1.0000000000000e+00 -56 27 -1.0000000000000e+00 -57 27 -1.0000000000000e+00 -58 27 -1.0000000000000e+00 -28 28 8.0000000000000e+00 -29 28 -1.0000000000000e+00 -57 28 -1.0000000000000e+00 -58 28 -1.0000000000000e+00 -59 28 -1.0000000000000e+00 -29 29 8.0000000000000e+00 -30 29 -1.0000000000000e+00 -58 29 -1.0000000000000e+00 -59 29 -1.0000000000000e+00 -60 29 -1.0000000000000e+00 -30 30 8.0000000000000e+00 -59 30 -1.0000000000000e+00 -60 30 -1.0000000000000e+00 -31 31 8.0000000000000e+00 -32 31 -1.0000000000000e+00 -61 31 -1.0000000000000e+00 -62 31 -1.0000000000000e+00 -32 32 8.0000000000000e+00 -33 32 -1.0000000000000e+00 -61 32 -1.0000000000000e+00 -62 32 -1.0000000000000e+00 -63 32 -1.0000000000000e+00 -33 33 8.0000000000000e+00 -34 33 -1.0000000000000e+00 -62 33 -1.0000000000000e+00 -63 33 -1.0000000000000e+00 -64 33 -1.0000000000000e+00 -34 34 8.0000000000000e+00 -35 34 -1.0000000000000e+00 -63 34 -1.0000000000000e+00 -64 34 -1.0000000000000e+00 -65 34 -1.0000000000000e+00 -35 35 8.0000000000000e+00 -36 35 -1.0000000000000e+00 -64 35 -1.0000000000000e+00 -65 35 -1.0000000000000e+00 -66 35 -1.0000000000000e+00 -36 36 8.0000000000000e+00 -37 36 -1.0000000000000e+00 -65 36 -1.0000000000000e+00 -66 36 -1.0000000000000e+00 -67 36 -1.0000000000000e+00 -37 37 8.0000000000000e+00 -38 37 -1.0000000000000e+00 -66 37 -1.0000000000000e+00 -67 37 -1.0000000000000e+00 -68 37 -1.0000000000000e+00 -38 38 8.0000000000000e+00 -39 38 -1.0000000000000e+00 -67 38 -1.0000000000000e+00 -68 38 -1.0000000000000e+00 -69 38 -1.0000000000000e+00 -39 39 8.0000000000000e+00 -40 39 -1.0000000000000e+00 -68 39 -1.0000000000000e+00 -69 39 -1.0000000000000e+00 -70 39 -1.0000000000000e+00 -40 40 8.0000000000000e+00 -41 40 -1.0000000000000e+00 -69 40 -1.0000000000000e+00 -70 40 -1.0000000000000e+00 -71 40 -1.0000000000000e+00 -41 41 8.0000000000000e+00 -42 41 -1.0000000000000e+00 -70 41 -1.0000000000000e+00 -71 41 -1.0000000000000e+00 -72 41 -1.0000000000000e+00 -42 42 8.0000000000000e+00 -43 42 -1.0000000000000e+00 -71 42 -1.0000000000000e+00 -72 42 -1.0000000000000e+00 -73 42 -1.0000000000000e+00 -43 43 8.0000000000000e+00 -44 43 -1.0000000000000e+00 -72 43 -1.0000000000000e+00 -73 43 -1.0000000000000e+00 -74 43 -1.0000000000000e+00 -44 44 8.0000000000000e+00 -45 44 -1.0000000000000e+00 -73 44 -1.0000000000000e+00 -74 44 -1.0000000000000e+00 -75 44 -1.0000000000000e+00 -45 45 8.0000000000000e+00 -46 45 -1.0000000000000e+00 -74 45 -1.0000000000000e+00 -75 45 -1.0000000000000e+00 -76 45 -1.0000000000000e+00 -46 46 8.0000000000000e+00 -47 46 -1.0000000000000e+00 -75 46 -1.0000000000000e+00 -76 46 -1.0000000000000e+00 -77 46 -1.0000000000000e+00 -47 47 8.0000000000000e+00 -48 47 -1.0000000000000e+00 -76 47 -1.0000000000000e+00 -77 47 -1.0000000000000e+00 -78 47 -1.0000000000000e+00 -48 48 8.0000000000000e+00 -49 48 -1.0000000000000e+00 -77 48 -1.0000000000000e+00 -78 48 -1.0000000000000e+00 -79 48 -1.0000000000000e+00 -49 49 8.0000000000000e+00 -50 49 -1.0000000000000e+00 -78 49 -1.0000000000000e+00 -79 49 -1.0000000000000e+00 -80 49 -1.0000000000000e+00 -50 50 8.0000000000000e+00 -51 50 -1.0000000000000e+00 -79 50 -1.0000000000000e+00 -80 50 -1.0000000000000e+00 -81 50 -1.0000000000000e+00 -51 51 8.0000000000000e+00 -52 51 -1.0000000000000e+00 -80 51 -1.0000000000000e+00 -81 51 -1.0000000000000e+00 -82 51 -1.0000000000000e+00 -52 52 8.0000000000000e+00 -53 52 -1.0000000000000e+00 -81 52 -1.0000000000000e+00 -82 52 -1.0000000000000e+00 -83 52 -1.0000000000000e+00 -53 53 8.0000000000000e+00 -54 53 -1.0000000000000e+00 -82 53 -1.0000000000000e+00 -83 53 -1.0000000000000e+00 -84 53 -1.0000000000000e+00 -54 54 8.0000000000000e+00 -55 54 -1.0000000000000e+00 -83 54 -1.0000000000000e+00 -84 54 -1.0000000000000e+00 -85 54 -1.0000000000000e+00 -55 55 8.0000000000000e+00 -56 55 -1.0000000000000e+00 -84 55 -1.0000000000000e+00 -85 55 -1.0000000000000e+00 -86 55 -1.0000000000000e+00 -56 56 8.0000000000000e+00 -57 56 -1.0000000000000e+00 -85 56 -1.0000000000000e+00 -86 56 -1.0000000000000e+00 -87 56 -1.0000000000000e+00 -57 57 8.0000000000000e+00 -58 57 -1.0000000000000e+00 -86 57 -1.0000000000000e+00 -87 57 -1.0000000000000e+00 -88 57 -1.0000000000000e+00 -58 58 8.0000000000000e+00 -59 58 -1.0000000000000e+00 -87 58 -1.0000000000000e+00 -88 58 -1.0000000000000e+00 -89 58 -1.0000000000000e+00 -59 59 8.0000000000000e+00 -60 59 -1.0000000000000e+00 -88 59 -1.0000000000000e+00 -89 59 -1.0000000000000e+00 -90 59 -1.0000000000000e+00 -60 60 8.0000000000000e+00 -89 60 -1.0000000000000e+00 -90 60 -1.0000000000000e+00 -61 61 8.0000000000000e+00 -62 61 -1.0000000000000e+00 -91 61 -1.0000000000000e+00 -92 61 -1.0000000000000e+00 -62 62 8.0000000000000e+00 -63 62 -1.0000000000000e+00 -91 62 -1.0000000000000e+00 -92 62 -1.0000000000000e+00 -93 62 -1.0000000000000e+00 -63 63 8.0000000000000e+00 -64 63 -1.0000000000000e+00 -92 63 -1.0000000000000e+00 -93 63 -1.0000000000000e+00 -94 63 -1.0000000000000e+00 -64 64 8.0000000000000e+00 -65 64 -1.0000000000000e+00 -93 64 -1.0000000000000e+00 -94 64 -1.0000000000000e+00 -95 64 -1.0000000000000e+00 -65 65 8.0000000000000e+00 -66 65 -1.0000000000000e+00 -94 65 -1.0000000000000e+00 -95 65 -1.0000000000000e+00 -96 65 -1.0000000000000e+00 -66 66 8.0000000000000e+00 -67 66 -1.0000000000000e+00 -95 66 -1.0000000000000e+00 -96 66 -1.0000000000000e+00 -97 66 -1.0000000000000e+00 -67 67 8.0000000000000e+00 -68 67 -1.0000000000000e+00 -96 67 -1.0000000000000e+00 -97 67 -1.0000000000000e+00 -98 67 -1.0000000000000e+00 -68 68 8.0000000000000e+00 -69 68 -1.0000000000000e+00 -97 68 -1.0000000000000e+00 -98 68 -1.0000000000000e+00 -99 68 -1.0000000000000e+00 -69 69 8.0000000000000e+00 -70 69 -1.0000000000000e+00 -98 69 -1.0000000000000e+00 -99 69 -1.0000000000000e+00 -100 69 -1.0000000000000e+00 -70 70 8.0000000000000e+00 -71 70 -1.0000000000000e+00 -99 70 -1.0000000000000e+00 -100 70 -1.0000000000000e+00 -101 70 -1.0000000000000e+00 -71 71 8.0000000000000e+00 -72 71 -1.0000000000000e+00 -100 71 -1.0000000000000e+00 -101 71 -1.0000000000000e+00 -102 71 -1.0000000000000e+00 -72 72 8.0000000000000e+00 -73 72 -1.0000000000000e+00 -101 72 -1.0000000000000e+00 -102 72 -1.0000000000000e+00 -103 72 -1.0000000000000e+00 -73 73 8.0000000000000e+00 -74 73 -1.0000000000000e+00 -102 73 -1.0000000000000e+00 -103 73 -1.0000000000000e+00 -104 73 -1.0000000000000e+00 -74 74 8.0000000000000e+00 -75 74 -1.0000000000000e+00 -103 74 -1.0000000000000e+00 -104 74 -1.0000000000000e+00 -105 74 -1.0000000000000e+00 -75 75 8.0000000000000e+00 -76 75 -1.0000000000000e+00 -104 75 -1.0000000000000e+00 -105 75 -1.0000000000000e+00 -106 75 -1.0000000000000e+00 -76 76 8.0000000000000e+00 -77 76 -1.0000000000000e+00 -105 76 -1.0000000000000e+00 -106 76 -1.0000000000000e+00 -107 76 -1.0000000000000e+00 -77 77 8.0000000000000e+00 -78 77 -1.0000000000000e+00 -106 77 -1.0000000000000e+00 -107 77 -1.0000000000000e+00 -108 77 -1.0000000000000e+00 -78 78 8.0000000000000e+00 -79 78 -1.0000000000000e+00 -107 78 -1.0000000000000e+00 -108 78 -1.0000000000000e+00 -109 78 -1.0000000000000e+00 -79 79 8.0000000000000e+00 -80 79 -1.0000000000000e+00 -108 79 -1.0000000000000e+00 -109 79 -1.0000000000000e+00 -110 79 -1.0000000000000e+00 -80 80 8.0000000000000e+00 -81 80 -1.0000000000000e+00 -109 80 -1.0000000000000e+00 -110 80 -1.0000000000000e+00 -111 80 -1.0000000000000e+00 -81 81 8.0000000000000e+00 -82 81 -1.0000000000000e+00 -110 81 -1.0000000000000e+00 -111 81 -1.0000000000000e+00 -112 81 -1.0000000000000e+00 -82 82 8.0000000000000e+00 -83 82 -1.0000000000000e+00 -111 82 -1.0000000000000e+00 -112 82 -1.0000000000000e+00 -113 82 -1.0000000000000e+00 -83 83 8.0000000000000e+00 -84 83 -1.0000000000000e+00 -112 83 -1.0000000000000e+00 -113 83 -1.0000000000000e+00 -114 83 -1.0000000000000e+00 -84 84 8.0000000000000e+00 -85 84 -1.0000000000000e+00 -113 84 -1.0000000000000e+00 -114 84 -1.0000000000000e+00 -115 84 -1.0000000000000e+00 -85 85 8.0000000000000e+00 -86 85 -1.0000000000000e+00 -114 85 -1.0000000000000e+00 -115 85 -1.0000000000000e+00 -116 85 -1.0000000000000e+00 -86 86 8.0000000000000e+00 -87 86 -1.0000000000000e+00 -115 86 -1.0000000000000e+00 -116 86 -1.0000000000000e+00 -117 86 -1.0000000000000e+00 -87 87 8.0000000000000e+00 -88 87 -1.0000000000000e+00 -116 87 -1.0000000000000e+00 -117 87 -1.0000000000000e+00 -118 87 -1.0000000000000e+00 -88 88 8.0000000000000e+00 -89 88 -1.0000000000000e+00 -117 88 -1.0000000000000e+00 -118 88 -1.0000000000000e+00 -119 88 -1.0000000000000e+00 -89 89 8.0000000000000e+00 -90 89 -1.0000000000000e+00 -118 89 -1.0000000000000e+00 -119 89 -1.0000000000000e+00 -120 89 -1.0000000000000e+00 -90 90 8.0000000000000e+00 -119 90 -1.0000000000000e+00 -120 90 -1.0000000000000e+00 -91 91 8.0000000000000e+00 -92 91 -1.0000000000000e+00 -121 91 -1.0000000000000e+00 -122 91 -1.0000000000000e+00 -92 92 8.0000000000000e+00 -93 92 -1.0000000000000e+00 -121 92 -1.0000000000000e+00 -122 92 -1.0000000000000e+00 -123 92 -1.0000000000000e+00 -93 93 8.0000000000000e+00 -94 93 -1.0000000000000e+00 -122 93 -1.0000000000000e+00 -123 93 -1.0000000000000e+00 -124 93 -1.0000000000000e+00 -94 94 8.0000000000000e+00 -95 94 -1.0000000000000e+00 -123 94 -1.0000000000000e+00 -124 94 -1.0000000000000e+00 -125 94 -1.0000000000000e+00 -95 95 8.0000000000000e+00 -96 95 -1.0000000000000e+00 -124 95 -1.0000000000000e+00 -125 95 -1.0000000000000e+00 -126 95 -1.0000000000000e+00 -96 96 8.0000000000000e+00 -97 96 -1.0000000000000e+00 -125 96 -1.0000000000000e+00 -126 96 -1.0000000000000e+00 -127 96 -1.0000000000000e+00 -97 97 8.0000000000000e+00 -98 97 -1.0000000000000e+00 -126 97 -1.0000000000000e+00 -127 97 -1.0000000000000e+00 -128 97 -1.0000000000000e+00 -98 98 8.0000000000000e+00 -99 98 -1.0000000000000e+00 -127 98 -1.0000000000000e+00 -128 98 -1.0000000000000e+00 -129 98 -1.0000000000000e+00 -99 99 8.0000000000000e+00 -100 99 -1.0000000000000e+00 -128 99 -1.0000000000000e+00 -129 99 -1.0000000000000e+00 -130 99 -1.0000000000000e+00 -100 100 8.0000000000000e+00 -101 100 -1.0000000000000e+00 -129 100 -1.0000000000000e+00 -130 100 -1.0000000000000e+00 -131 100 -1.0000000000000e+00 -101 101 8.0000000000000e+00 -102 101 -1.0000000000000e+00 -130 101 -1.0000000000000e+00 -131 101 -1.0000000000000e+00 -132 101 -1.0000000000000e+00 -102 102 8.0000000000000e+00 -103 102 -1.0000000000000e+00 -131 102 -1.0000000000000e+00 -132 102 -1.0000000000000e+00 -133 102 -1.0000000000000e+00 -103 103 8.0000000000000e+00 -104 103 -1.0000000000000e+00 -132 103 -1.0000000000000e+00 -133 103 -1.0000000000000e+00 -134 103 -1.0000000000000e+00 -104 104 8.0000000000000e+00 -105 104 -1.0000000000000e+00 -133 104 -1.0000000000000e+00 -134 104 -1.0000000000000e+00 -135 104 -1.0000000000000e+00 -105 105 8.0000000000000e+00 -106 105 -1.0000000000000e+00 -134 105 -1.0000000000000e+00 -135 105 -1.0000000000000e+00 -136 105 -1.0000000000000e+00 -106 106 8.0000000000000e+00 -107 106 -1.0000000000000e+00 -135 106 -1.0000000000000e+00 -136 106 -1.0000000000000e+00 -137 106 -1.0000000000000e+00 -107 107 8.0000000000000e+00 -108 107 -1.0000000000000e+00 -136 107 -1.0000000000000e+00 -137 107 -1.0000000000000e+00 -138 107 -1.0000000000000e+00 -108 108 8.0000000000000e+00 -109 108 -1.0000000000000e+00 -137 108 -1.0000000000000e+00 -138 108 -1.0000000000000e+00 -139 108 -1.0000000000000e+00 -109 109 8.0000000000000e+00 -110 109 -1.0000000000000e+00 -138 109 -1.0000000000000e+00 -139 109 -1.0000000000000e+00 -140 109 -1.0000000000000e+00 -110 110 8.0000000000000e+00 -111 110 -1.0000000000000e+00 -139 110 -1.0000000000000e+00 -140 110 -1.0000000000000e+00 -141 110 -1.0000000000000e+00 -111 111 8.0000000000000e+00 -112 111 -1.0000000000000e+00 -140 111 -1.0000000000000e+00 -141 111 -1.0000000000000e+00 -142 111 -1.0000000000000e+00 -112 112 8.0000000000000e+00 -113 112 -1.0000000000000e+00 -141 112 -1.0000000000000e+00 -142 112 -1.0000000000000e+00 -143 112 -1.0000000000000e+00 -113 113 8.0000000000000e+00 -114 113 -1.0000000000000e+00 -142 113 -1.0000000000000e+00 -143 113 -1.0000000000000e+00 -144 113 -1.0000000000000e+00 -114 114 8.0000000000000e+00 -115 114 -1.0000000000000e+00 -143 114 -1.0000000000000e+00 -144 114 -1.0000000000000e+00 -145 114 -1.0000000000000e+00 -115 115 8.0000000000000e+00 -116 115 -1.0000000000000e+00 -144 115 -1.0000000000000e+00 -145 115 -1.0000000000000e+00 -146 115 -1.0000000000000e+00 -116 116 8.0000000000000e+00 -117 116 -1.0000000000000e+00 -145 116 -1.0000000000000e+00 -146 116 -1.0000000000000e+00 -147 116 -1.0000000000000e+00 -117 117 8.0000000000000e+00 -118 117 -1.0000000000000e+00 -146 117 -1.0000000000000e+00 -147 117 -1.0000000000000e+00 -148 117 -1.0000000000000e+00 -118 118 8.0000000000000e+00 -119 118 -1.0000000000000e+00 -147 118 -1.0000000000000e+00 -148 118 -1.0000000000000e+00 -149 118 -1.0000000000000e+00 -119 119 8.0000000000000e+00 -120 119 -1.0000000000000e+00 -148 119 -1.0000000000000e+00 -149 119 -1.0000000000000e+00 -150 119 -1.0000000000000e+00 -120 120 8.0000000000000e+00 -149 120 -1.0000000000000e+00 -150 120 -1.0000000000000e+00 -121 121 8.0000000000000e+00 -122 121 -1.0000000000000e+00 -151 121 -1.0000000000000e+00 -152 121 -1.0000000000000e+00 -122 122 8.0000000000000e+00 -123 122 -1.0000000000000e+00 -151 122 -1.0000000000000e+00 -152 122 -1.0000000000000e+00 -153 122 -1.0000000000000e+00 -123 123 8.0000000000000e+00 -124 123 -1.0000000000000e+00 -152 123 -1.0000000000000e+00 -153 123 -1.0000000000000e+00 -154 123 -1.0000000000000e+00 -124 124 8.0000000000000e+00 -125 124 -1.0000000000000e+00 -153 124 -1.0000000000000e+00 -154 124 -1.0000000000000e+00 -155 124 -1.0000000000000e+00 -125 125 8.0000000000000e+00 -126 125 -1.0000000000000e+00 -154 125 -1.0000000000000e+00 -155 125 -1.0000000000000e+00 -156 125 -1.0000000000000e+00 -126 126 8.0000000000000e+00 -127 126 -1.0000000000000e+00 -155 126 -1.0000000000000e+00 -156 126 -1.0000000000000e+00 -157 126 -1.0000000000000e+00 -127 127 8.0000000000000e+00 -128 127 -1.0000000000000e+00 -156 127 -1.0000000000000e+00 -157 127 -1.0000000000000e+00 -158 127 -1.0000000000000e+00 -128 128 8.0000000000000e+00 -129 128 -1.0000000000000e+00 -157 128 -1.0000000000000e+00 -158 128 -1.0000000000000e+00 -159 128 -1.0000000000000e+00 -129 129 8.0000000000000e+00 -130 129 -1.0000000000000e+00 -158 129 -1.0000000000000e+00 -159 129 -1.0000000000000e+00 -160 129 -1.0000000000000e+00 -130 130 8.0000000000000e+00 -131 130 -1.0000000000000e+00 -159 130 -1.0000000000000e+00 -160 130 -1.0000000000000e+00 -161 130 -1.0000000000000e+00 -131 131 8.0000000000000e+00 -132 131 -1.0000000000000e+00 -160 131 -1.0000000000000e+00 -161 131 -1.0000000000000e+00 -162 131 -1.0000000000000e+00 -132 132 8.0000000000000e+00 -133 132 -1.0000000000000e+00 -161 132 -1.0000000000000e+00 -162 132 -1.0000000000000e+00 -163 132 -1.0000000000000e+00 -133 133 8.0000000000000e+00 -134 133 -1.0000000000000e+00 -162 133 -1.0000000000000e+00 -163 133 -1.0000000000000e+00 -164 133 -1.0000000000000e+00 -134 134 8.0000000000000e+00 -135 134 -1.0000000000000e+00 -163 134 -1.0000000000000e+00 -164 134 -1.0000000000000e+00 -165 134 -1.0000000000000e+00 -135 135 8.0000000000000e+00 -136 135 -1.0000000000000e+00 -164 135 -1.0000000000000e+00 -165 135 -1.0000000000000e+00 -166 135 -1.0000000000000e+00 -136 136 8.0000000000000e+00 -137 136 -1.0000000000000e+00 -165 136 -1.0000000000000e+00 -166 136 -1.0000000000000e+00 -167 136 -1.0000000000000e+00 -137 137 8.0000000000000e+00 -138 137 -1.0000000000000e+00 -166 137 -1.0000000000000e+00 -167 137 -1.0000000000000e+00 -168 137 -1.0000000000000e+00 -138 138 8.0000000000000e+00 -139 138 -1.0000000000000e+00 -167 138 -1.0000000000000e+00 -168 138 -1.0000000000000e+00 -169 138 -1.0000000000000e+00 -139 139 8.0000000000000e+00 -140 139 -1.0000000000000e+00 -168 139 -1.0000000000000e+00 -169 139 -1.0000000000000e+00 -170 139 -1.0000000000000e+00 -140 140 8.0000000000000e+00 -141 140 -1.0000000000000e+00 -169 140 -1.0000000000000e+00 -170 140 -1.0000000000000e+00 -171 140 -1.0000000000000e+00 -141 141 8.0000000000000e+00 -142 141 -1.0000000000000e+00 -170 141 -1.0000000000000e+00 -171 141 -1.0000000000000e+00 -172 141 -1.0000000000000e+00 -142 142 8.0000000000000e+00 -143 142 -1.0000000000000e+00 -171 142 -1.0000000000000e+00 -172 142 -1.0000000000000e+00 -173 142 -1.0000000000000e+00 -143 143 8.0000000000000e+00 -144 143 -1.0000000000000e+00 -172 143 -1.0000000000000e+00 -173 143 -1.0000000000000e+00 -174 143 -1.0000000000000e+00 -144 144 8.0000000000000e+00 -145 144 -1.0000000000000e+00 -173 144 -1.0000000000000e+00 -174 144 -1.0000000000000e+00 -175 144 -1.0000000000000e+00 -145 145 8.0000000000000e+00 -146 145 -1.0000000000000e+00 -174 145 -1.0000000000000e+00 -175 145 -1.0000000000000e+00 -176 145 -1.0000000000000e+00 -146 146 8.0000000000000e+00 -147 146 -1.0000000000000e+00 -175 146 -1.0000000000000e+00 -176 146 -1.0000000000000e+00 -177 146 -1.0000000000000e+00 -147 147 8.0000000000000e+00 -148 147 -1.0000000000000e+00 -176 147 -1.0000000000000e+00 -177 147 -1.0000000000000e+00 -178 147 -1.0000000000000e+00 -148 148 8.0000000000000e+00 -149 148 -1.0000000000000e+00 -177 148 -1.0000000000000e+00 -178 148 -1.0000000000000e+00 -179 148 -1.0000000000000e+00 -149 149 8.0000000000000e+00 -150 149 -1.0000000000000e+00 -178 149 -1.0000000000000e+00 -179 149 -1.0000000000000e+00 -180 149 -1.0000000000000e+00 -150 150 8.0000000000000e+00 -179 150 -1.0000000000000e+00 -180 150 -1.0000000000000e+00 -151 151 8.0000000000000e+00 -152 151 -1.0000000000000e+00 -181 151 -1.0000000000000e+00 -182 151 -1.0000000000000e+00 -152 152 8.0000000000000e+00 -153 152 -1.0000000000000e+00 -181 152 -1.0000000000000e+00 -182 152 -1.0000000000000e+00 -183 152 -1.0000000000000e+00 -153 153 8.0000000000000e+00 -154 153 -1.0000000000000e+00 -182 153 -1.0000000000000e+00 -183 153 -1.0000000000000e+00 -184 153 -1.0000000000000e+00 -154 154 8.0000000000000e+00 -155 154 -1.0000000000000e+00 -183 154 -1.0000000000000e+00 -184 154 -1.0000000000000e+00 -185 154 -1.0000000000000e+00 -155 155 8.0000000000000e+00 -156 155 -1.0000000000000e+00 -184 155 -1.0000000000000e+00 -185 155 -1.0000000000000e+00 -186 155 -1.0000000000000e+00 -156 156 8.0000000000000e+00 -157 156 -1.0000000000000e+00 -185 156 -1.0000000000000e+00 -186 156 -1.0000000000000e+00 -187 156 -1.0000000000000e+00 -157 157 8.0000000000000e+00 -158 157 -1.0000000000000e+00 -186 157 -1.0000000000000e+00 -187 157 -1.0000000000000e+00 -188 157 -1.0000000000000e+00 -158 158 8.0000000000000e+00 -159 158 -1.0000000000000e+00 -187 158 -1.0000000000000e+00 -188 158 -1.0000000000000e+00 -189 158 -1.0000000000000e+00 -159 159 8.0000000000000e+00 -160 159 -1.0000000000000e+00 -188 159 -1.0000000000000e+00 -189 159 -1.0000000000000e+00 -190 159 -1.0000000000000e+00 -160 160 8.0000000000000e+00 -161 160 -1.0000000000000e+00 -189 160 -1.0000000000000e+00 -190 160 -1.0000000000000e+00 -191 160 -1.0000000000000e+00 -161 161 8.0000000000000e+00 -162 161 -1.0000000000000e+00 -190 161 -1.0000000000000e+00 -191 161 -1.0000000000000e+00 -192 161 -1.0000000000000e+00 -162 162 8.0000000000000e+00 -163 162 -1.0000000000000e+00 -191 162 -1.0000000000000e+00 -192 162 -1.0000000000000e+00 -193 162 -1.0000000000000e+00 -163 163 8.0000000000000e+00 -164 163 -1.0000000000000e+00 -192 163 -1.0000000000000e+00 -193 163 -1.0000000000000e+00 -194 163 -1.0000000000000e+00 -164 164 8.0000000000000e+00 -165 164 -1.0000000000000e+00 -193 164 -1.0000000000000e+00 -194 164 -1.0000000000000e+00 -195 164 -1.0000000000000e+00 -165 165 8.0000000000000e+00 -166 165 -1.0000000000000e+00 -194 165 -1.0000000000000e+00 -195 165 -1.0000000000000e+00 -196 165 -1.0000000000000e+00 -166 166 8.0000000000000e+00 -167 166 -1.0000000000000e+00 -195 166 -1.0000000000000e+00 -196 166 -1.0000000000000e+00 -197 166 -1.0000000000000e+00 -167 167 8.0000000000000e+00 -168 167 -1.0000000000000e+00 -196 167 -1.0000000000000e+00 -197 167 -1.0000000000000e+00 -198 167 -1.0000000000000e+00 -168 168 8.0000000000000e+00 -169 168 -1.0000000000000e+00 -197 168 -1.0000000000000e+00 -198 168 -1.0000000000000e+00 -199 168 -1.0000000000000e+00 -169 169 8.0000000000000e+00 -170 169 -1.0000000000000e+00 -198 169 -1.0000000000000e+00 -199 169 -1.0000000000000e+00 -200 169 -1.0000000000000e+00 -170 170 8.0000000000000e+00 -171 170 -1.0000000000000e+00 -199 170 -1.0000000000000e+00 -200 170 -1.0000000000000e+00 -201 170 -1.0000000000000e+00 -171 171 8.0000000000000e+00 -172 171 -1.0000000000000e+00 -200 171 -1.0000000000000e+00 -201 171 -1.0000000000000e+00 -202 171 -1.0000000000000e+00 -172 172 8.0000000000000e+00 -173 172 -1.0000000000000e+00 -201 172 -1.0000000000000e+00 -202 172 -1.0000000000000e+00 -203 172 -1.0000000000000e+00 -173 173 8.0000000000000e+00 -174 173 -1.0000000000000e+00 -202 173 -1.0000000000000e+00 -203 173 -1.0000000000000e+00 -204 173 -1.0000000000000e+00 -174 174 8.0000000000000e+00 -175 174 -1.0000000000000e+00 -203 174 -1.0000000000000e+00 -204 174 -1.0000000000000e+00 -205 174 -1.0000000000000e+00 -175 175 8.0000000000000e+00 -176 175 -1.0000000000000e+00 -204 175 -1.0000000000000e+00 -205 175 -1.0000000000000e+00 -206 175 -1.0000000000000e+00 -176 176 8.0000000000000e+00 -177 176 -1.0000000000000e+00 -205 176 -1.0000000000000e+00 -206 176 -1.0000000000000e+00 -207 176 -1.0000000000000e+00 -177 177 8.0000000000000e+00 -178 177 -1.0000000000000e+00 -206 177 -1.0000000000000e+00 -207 177 -1.0000000000000e+00 -208 177 -1.0000000000000e+00 -178 178 8.0000000000000e+00 -179 178 -1.0000000000000e+00 -207 178 -1.0000000000000e+00 -208 178 -1.0000000000000e+00 -209 178 -1.0000000000000e+00 -179 179 8.0000000000000e+00 -180 179 -1.0000000000000e+00 -208 179 -1.0000000000000e+00 -209 179 -1.0000000000000e+00 -210 179 -1.0000000000000e+00 -180 180 8.0000000000000e+00 -209 180 -1.0000000000000e+00 -210 180 -1.0000000000000e+00 -181 181 8.0000000000000e+00 -182 181 -1.0000000000000e+00 -211 181 -1.0000000000000e+00 -212 181 -1.0000000000000e+00 -182 182 8.0000000000000e+00 -183 182 -1.0000000000000e+00 -211 182 -1.0000000000000e+00 -212 182 -1.0000000000000e+00 -213 182 -1.0000000000000e+00 -183 183 8.0000000000000e+00 -184 183 -1.0000000000000e+00 -212 183 -1.0000000000000e+00 -213 183 -1.0000000000000e+00 -214 183 -1.0000000000000e+00 -184 184 8.0000000000000e+00 -185 184 -1.0000000000000e+00 -213 184 -1.0000000000000e+00 -214 184 -1.0000000000000e+00 -215 184 -1.0000000000000e+00 -185 185 8.0000000000000e+00 -186 185 -1.0000000000000e+00 -214 185 -1.0000000000000e+00 -215 185 -1.0000000000000e+00 -216 185 -1.0000000000000e+00 -186 186 8.0000000000000e+00 -187 186 -1.0000000000000e+00 -215 186 -1.0000000000000e+00 -216 186 -1.0000000000000e+00 -217 186 -1.0000000000000e+00 -187 187 8.0000000000000e+00 -188 187 -1.0000000000000e+00 -216 187 -1.0000000000000e+00 -217 187 -1.0000000000000e+00 -218 187 -1.0000000000000e+00 -188 188 8.0000000000000e+00 -189 188 -1.0000000000000e+00 -217 188 -1.0000000000000e+00 -218 188 -1.0000000000000e+00 -219 188 -1.0000000000000e+00 -189 189 8.0000000000000e+00 -190 189 -1.0000000000000e+00 -218 189 -1.0000000000000e+00 -219 189 -1.0000000000000e+00 -220 189 -1.0000000000000e+00 -190 190 8.0000000000000e+00 -191 190 -1.0000000000000e+00 -219 190 -1.0000000000000e+00 -220 190 -1.0000000000000e+00 -221 190 -1.0000000000000e+00 -191 191 8.0000000000000e+00 -192 191 -1.0000000000000e+00 -220 191 -1.0000000000000e+00 -221 191 -1.0000000000000e+00 -222 191 -1.0000000000000e+00 -192 192 8.0000000000000e+00 -193 192 -1.0000000000000e+00 -221 192 -1.0000000000000e+00 -222 192 -1.0000000000000e+00 -223 192 -1.0000000000000e+00 -193 193 8.0000000000000e+00 -194 193 -1.0000000000000e+00 -222 193 -1.0000000000000e+00 -223 193 -1.0000000000000e+00 -224 193 -1.0000000000000e+00 -194 194 8.0000000000000e+00 -195 194 -1.0000000000000e+00 -223 194 -1.0000000000000e+00 -224 194 -1.0000000000000e+00 -225 194 -1.0000000000000e+00 -195 195 8.0000000000000e+00 -196 195 -1.0000000000000e+00 -224 195 -1.0000000000000e+00 -225 195 -1.0000000000000e+00 -226 195 -1.0000000000000e+00 -196 196 8.0000000000000e+00 -197 196 -1.0000000000000e+00 -225 196 -1.0000000000000e+00 -226 196 -1.0000000000000e+00 -227 196 -1.0000000000000e+00 -197 197 8.0000000000000e+00 -198 197 -1.0000000000000e+00 -226 197 -1.0000000000000e+00 -227 197 -1.0000000000000e+00 -228 197 -1.0000000000000e+00 -198 198 8.0000000000000e+00 -199 198 -1.0000000000000e+00 -227 198 -1.0000000000000e+00 -228 198 -1.0000000000000e+00 -229 198 -1.0000000000000e+00 -199 199 8.0000000000000e+00 -200 199 -1.0000000000000e+00 -228 199 -1.0000000000000e+00 -229 199 -1.0000000000000e+00 -230 199 -1.0000000000000e+00 -200 200 8.0000000000000e+00 -201 200 -1.0000000000000e+00 -229 200 -1.0000000000000e+00 -230 200 -1.0000000000000e+00 -231 200 -1.0000000000000e+00 -201 201 8.0000000000000e+00 -202 201 -1.0000000000000e+00 -230 201 -1.0000000000000e+00 -231 201 -1.0000000000000e+00 -232 201 -1.0000000000000e+00 -202 202 8.0000000000000e+00 -203 202 -1.0000000000000e+00 -231 202 -1.0000000000000e+00 -232 202 -1.0000000000000e+00 -233 202 -1.0000000000000e+00 -203 203 8.0000000000000e+00 -204 203 -1.0000000000000e+00 -232 203 -1.0000000000000e+00 -233 203 -1.0000000000000e+00 -234 203 -1.0000000000000e+00 -204 204 8.0000000000000e+00 -205 204 -1.0000000000000e+00 -233 204 -1.0000000000000e+00 -234 204 -1.0000000000000e+00 -235 204 -1.0000000000000e+00 -205 205 8.0000000000000e+00 -206 205 -1.0000000000000e+00 -234 205 -1.0000000000000e+00 -235 205 -1.0000000000000e+00 -236 205 -1.0000000000000e+00 -206 206 8.0000000000000e+00 -207 206 -1.0000000000000e+00 -235 206 -1.0000000000000e+00 -236 206 -1.0000000000000e+00 -237 206 -1.0000000000000e+00 -207 207 8.0000000000000e+00 -208 207 -1.0000000000000e+00 -236 207 -1.0000000000000e+00 -237 207 -1.0000000000000e+00 -238 207 -1.0000000000000e+00 -208 208 8.0000000000000e+00 -209 208 -1.0000000000000e+00 -237 208 -1.0000000000000e+00 -238 208 -1.0000000000000e+00 -239 208 -1.0000000000000e+00 -209 209 8.0000000000000e+00 -210 209 -1.0000000000000e+00 -238 209 -1.0000000000000e+00 -239 209 -1.0000000000000e+00 -240 209 -1.0000000000000e+00 -210 210 8.0000000000000e+00 -239 210 -1.0000000000000e+00 -240 210 -1.0000000000000e+00 -211 211 8.0000000000000e+00 -212 211 -1.0000000000000e+00 -241 211 -1.0000000000000e+00 -242 211 -1.0000000000000e+00 -212 212 8.0000000000000e+00 -213 212 -1.0000000000000e+00 -241 212 -1.0000000000000e+00 -242 212 -1.0000000000000e+00 -243 212 -1.0000000000000e+00 -213 213 8.0000000000000e+00 -214 213 -1.0000000000000e+00 -242 213 -1.0000000000000e+00 -243 213 -1.0000000000000e+00 -244 213 -1.0000000000000e+00 -214 214 8.0000000000000e+00 -215 214 -1.0000000000000e+00 -243 214 -1.0000000000000e+00 -244 214 -1.0000000000000e+00 -245 214 -1.0000000000000e+00 -215 215 8.0000000000000e+00 -216 215 -1.0000000000000e+00 -244 215 -1.0000000000000e+00 -245 215 -1.0000000000000e+00 -246 215 -1.0000000000000e+00 -216 216 8.0000000000000e+00 -217 216 -1.0000000000000e+00 -245 216 -1.0000000000000e+00 -246 216 -1.0000000000000e+00 -247 216 -1.0000000000000e+00 -217 217 8.0000000000000e+00 -218 217 -1.0000000000000e+00 -246 217 -1.0000000000000e+00 -247 217 -1.0000000000000e+00 -248 217 -1.0000000000000e+00 -218 218 8.0000000000000e+00 -219 218 -1.0000000000000e+00 -247 218 -1.0000000000000e+00 -248 218 -1.0000000000000e+00 -249 218 -1.0000000000000e+00 -219 219 8.0000000000000e+00 -220 219 -1.0000000000000e+00 -248 219 -1.0000000000000e+00 -249 219 -1.0000000000000e+00 -250 219 -1.0000000000000e+00 -220 220 8.0000000000000e+00 -221 220 -1.0000000000000e+00 -249 220 -1.0000000000000e+00 -250 220 -1.0000000000000e+00 -251 220 -1.0000000000000e+00 -221 221 8.0000000000000e+00 -222 221 -1.0000000000000e+00 -250 221 -1.0000000000000e+00 -251 221 -1.0000000000000e+00 -252 221 -1.0000000000000e+00 -222 222 8.0000000000000e+00 -223 222 -1.0000000000000e+00 -251 222 -1.0000000000000e+00 -252 222 -1.0000000000000e+00 -253 222 -1.0000000000000e+00 -223 223 8.0000000000000e+00 -224 223 -1.0000000000000e+00 -252 223 -1.0000000000000e+00 -253 223 -1.0000000000000e+00 -254 223 -1.0000000000000e+00 -224 224 8.0000000000000e+00 -225 224 -1.0000000000000e+00 -253 224 -1.0000000000000e+00 -254 224 -1.0000000000000e+00 -255 224 -1.0000000000000e+00 -225 225 8.0000000000000e+00 -226 225 -1.0000000000000e+00 -254 225 -1.0000000000000e+00 -255 225 -1.0000000000000e+00 -256 225 -1.0000000000000e+00 -226 226 8.0000000000000e+00 -227 226 -1.0000000000000e+00 -255 226 -1.0000000000000e+00 -256 226 -1.0000000000000e+00 -257 226 -1.0000000000000e+00 -227 227 8.0000000000000e+00 -228 227 -1.0000000000000e+00 -256 227 -1.0000000000000e+00 -257 227 -1.0000000000000e+00 -258 227 -1.0000000000000e+00 -228 228 8.0000000000000e+00 -229 228 -1.0000000000000e+00 -257 228 -1.0000000000000e+00 -258 228 -1.0000000000000e+00 -259 228 -1.0000000000000e+00 -229 229 8.0000000000000e+00 -230 229 -1.0000000000000e+00 -258 229 -1.0000000000000e+00 -259 229 -1.0000000000000e+00 -260 229 -1.0000000000000e+00 -230 230 8.0000000000000e+00 -231 230 -1.0000000000000e+00 -259 230 -1.0000000000000e+00 -260 230 -1.0000000000000e+00 -261 230 -1.0000000000000e+00 -231 231 8.0000000000000e+00 -232 231 -1.0000000000000e+00 -260 231 -1.0000000000000e+00 -261 231 -1.0000000000000e+00 -262 231 -1.0000000000000e+00 -232 232 8.0000000000000e+00 -233 232 -1.0000000000000e+00 -261 232 -1.0000000000000e+00 -262 232 -1.0000000000000e+00 -263 232 -1.0000000000000e+00 -233 233 8.0000000000000e+00 -234 233 -1.0000000000000e+00 -262 233 -1.0000000000000e+00 -263 233 -1.0000000000000e+00 -264 233 -1.0000000000000e+00 -234 234 8.0000000000000e+00 -235 234 -1.0000000000000e+00 -263 234 -1.0000000000000e+00 -264 234 -1.0000000000000e+00 -265 234 -1.0000000000000e+00 -235 235 8.0000000000000e+00 -236 235 -1.0000000000000e+00 -264 235 -1.0000000000000e+00 -265 235 -1.0000000000000e+00 -266 235 -1.0000000000000e+00 -236 236 8.0000000000000e+00 -237 236 -1.0000000000000e+00 -265 236 -1.0000000000000e+00 -266 236 -1.0000000000000e+00 -267 236 -1.0000000000000e+00 -237 237 8.0000000000000e+00 -238 237 -1.0000000000000e+00 -266 237 -1.0000000000000e+00 -267 237 -1.0000000000000e+00 -268 237 -1.0000000000000e+00 -238 238 8.0000000000000e+00 -239 238 -1.0000000000000e+00 -267 238 -1.0000000000000e+00 -268 238 -1.0000000000000e+00 -269 238 -1.0000000000000e+00 -239 239 8.0000000000000e+00 -240 239 -1.0000000000000e+00 -268 239 -1.0000000000000e+00 -269 239 -1.0000000000000e+00 -270 239 -1.0000000000000e+00 -240 240 8.0000000000000e+00 -269 240 -1.0000000000000e+00 -270 240 -1.0000000000000e+00 -241 241 8.0000000000000e+00 -242 241 -1.0000000000000e+00 -271 241 -1.0000000000000e+00 -272 241 -1.0000000000000e+00 -242 242 8.0000000000000e+00 -243 242 -1.0000000000000e+00 -271 242 -1.0000000000000e+00 -272 242 -1.0000000000000e+00 -273 242 -1.0000000000000e+00 -243 243 8.0000000000000e+00 -244 243 -1.0000000000000e+00 -272 243 -1.0000000000000e+00 -273 243 -1.0000000000000e+00 -274 243 -1.0000000000000e+00 -244 244 8.0000000000000e+00 -245 244 -1.0000000000000e+00 -273 244 -1.0000000000000e+00 -274 244 -1.0000000000000e+00 -275 244 -1.0000000000000e+00 -245 245 8.0000000000000e+00 -246 245 -1.0000000000000e+00 -274 245 -1.0000000000000e+00 -275 245 -1.0000000000000e+00 -276 245 -1.0000000000000e+00 -246 246 8.0000000000000e+00 -247 246 -1.0000000000000e+00 -275 246 -1.0000000000000e+00 -276 246 -1.0000000000000e+00 -277 246 -1.0000000000000e+00 -247 247 8.0000000000000e+00 -248 247 -1.0000000000000e+00 -276 247 -1.0000000000000e+00 -277 247 -1.0000000000000e+00 -278 247 -1.0000000000000e+00 -248 248 8.0000000000000e+00 -249 248 -1.0000000000000e+00 -277 248 -1.0000000000000e+00 -278 248 -1.0000000000000e+00 -279 248 -1.0000000000000e+00 -249 249 8.0000000000000e+00 -250 249 -1.0000000000000e+00 -278 249 -1.0000000000000e+00 -279 249 -1.0000000000000e+00 -280 249 -1.0000000000000e+00 -250 250 8.0000000000000e+00 -251 250 -1.0000000000000e+00 -279 250 -1.0000000000000e+00 -280 250 -1.0000000000000e+00 -281 250 -1.0000000000000e+00 -251 251 8.0000000000000e+00 -252 251 -1.0000000000000e+00 -280 251 -1.0000000000000e+00 -281 251 -1.0000000000000e+00 -282 251 -1.0000000000000e+00 -252 252 8.0000000000000e+00 -253 252 -1.0000000000000e+00 -281 252 -1.0000000000000e+00 -282 252 -1.0000000000000e+00 -283 252 -1.0000000000000e+00 -253 253 8.0000000000000e+00 -254 253 -1.0000000000000e+00 -282 253 -1.0000000000000e+00 -283 253 -1.0000000000000e+00 -284 253 -1.0000000000000e+00 -254 254 8.0000000000000e+00 -255 254 -1.0000000000000e+00 -283 254 -1.0000000000000e+00 -284 254 -1.0000000000000e+00 -285 254 -1.0000000000000e+00 -255 255 8.0000000000000e+00 -256 255 -1.0000000000000e+00 -284 255 -1.0000000000000e+00 -285 255 -1.0000000000000e+00 -286 255 -1.0000000000000e+00 -256 256 8.0000000000000e+00 -257 256 -1.0000000000000e+00 -285 256 -1.0000000000000e+00 -286 256 -1.0000000000000e+00 -287 256 -1.0000000000000e+00 -257 257 8.0000000000000e+00 -258 257 -1.0000000000000e+00 -286 257 -1.0000000000000e+00 -287 257 -1.0000000000000e+00 -288 257 -1.0000000000000e+00 -258 258 8.0000000000000e+00 -259 258 -1.0000000000000e+00 -287 258 -1.0000000000000e+00 -288 258 -1.0000000000000e+00 -289 258 -1.0000000000000e+00 -259 259 8.0000000000000e+00 -260 259 -1.0000000000000e+00 -288 259 -1.0000000000000e+00 -289 259 -1.0000000000000e+00 -290 259 -1.0000000000000e+00 -260 260 8.0000000000000e+00 -261 260 -1.0000000000000e+00 -289 260 -1.0000000000000e+00 -290 260 -1.0000000000000e+00 -291 260 -1.0000000000000e+00 -261 261 8.0000000000000e+00 -262 261 -1.0000000000000e+00 -290 261 -1.0000000000000e+00 -291 261 -1.0000000000000e+00 -292 261 -1.0000000000000e+00 -262 262 8.0000000000000e+00 -263 262 -1.0000000000000e+00 -291 262 -1.0000000000000e+00 -292 262 -1.0000000000000e+00 -293 262 -1.0000000000000e+00 -263 263 8.0000000000000e+00 -264 263 -1.0000000000000e+00 -292 263 -1.0000000000000e+00 -293 263 -1.0000000000000e+00 -294 263 -1.0000000000000e+00 -264 264 8.0000000000000e+00 -265 264 -1.0000000000000e+00 -293 264 -1.0000000000000e+00 -294 264 -1.0000000000000e+00 -295 264 -1.0000000000000e+00 -265 265 8.0000000000000e+00 -266 265 -1.0000000000000e+00 -294 265 -1.0000000000000e+00 -295 265 -1.0000000000000e+00 -296 265 -1.0000000000000e+00 -266 266 8.0000000000000e+00 -267 266 -1.0000000000000e+00 -295 266 -1.0000000000000e+00 -296 266 -1.0000000000000e+00 -297 266 -1.0000000000000e+00 -267 267 8.0000000000000e+00 -268 267 -1.0000000000000e+00 -296 267 -1.0000000000000e+00 -297 267 -1.0000000000000e+00 -298 267 -1.0000000000000e+00 -268 268 8.0000000000000e+00 -269 268 -1.0000000000000e+00 -297 268 -1.0000000000000e+00 -298 268 -1.0000000000000e+00 -299 268 -1.0000000000000e+00 -269 269 8.0000000000000e+00 -270 269 -1.0000000000000e+00 -298 269 -1.0000000000000e+00 -299 269 -1.0000000000000e+00 -300 269 -1.0000000000000e+00 -270 270 8.0000000000000e+00 -299 270 -1.0000000000000e+00 -300 270 -1.0000000000000e+00 -271 271 8.0000000000000e+00 -272 271 -1.0000000000000e+00 -301 271 -1.0000000000000e+00 -302 271 -1.0000000000000e+00 -272 272 8.0000000000000e+00 -273 272 -1.0000000000000e+00 -301 272 -1.0000000000000e+00 -302 272 -1.0000000000000e+00 -303 272 -1.0000000000000e+00 -273 273 8.0000000000000e+00 -274 273 -1.0000000000000e+00 -302 273 -1.0000000000000e+00 -303 273 -1.0000000000000e+00 -304 273 -1.0000000000000e+00 -274 274 8.0000000000000e+00 -275 274 -1.0000000000000e+00 -303 274 -1.0000000000000e+00 -304 274 -1.0000000000000e+00 -305 274 -1.0000000000000e+00 -275 275 8.0000000000000e+00 -276 275 -1.0000000000000e+00 -304 275 -1.0000000000000e+00 -305 275 -1.0000000000000e+00 -306 275 -1.0000000000000e+00 -276 276 8.0000000000000e+00 -277 276 -1.0000000000000e+00 -305 276 -1.0000000000000e+00 -306 276 -1.0000000000000e+00 -307 276 -1.0000000000000e+00 -277 277 8.0000000000000e+00 -278 277 -1.0000000000000e+00 -306 277 -1.0000000000000e+00 -307 277 -1.0000000000000e+00 -308 277 -1.0000000000000e+00 -278 278 8.0000000000000e+00 -279 278 -1.0000000000000e+00 -307 278 -1.0000000000000e+00 -308 278 -1.0000000000000e+00 -309 278 -1.0000000000000e+00 -279 279 8.0000000000000e+00 -280 279 -1.0000000000000e+00 -308 279 -1.0000000000000e+00 -309 279 -1.0000000000000e+00 -310 279 -1.0000000000000e+00 -280 280 8.0000000000000e+00 -281 280 -1.0000000000000e+00 -309 280 -1.0000000000000e+00 -310 280 -1.0000000000000e+00 -311 280 -1.0000000000000e+00 -281 281 8.0000000000000e+00 -282 281 -1.0000000000000e+00 -310 281 -1.0000000000000e+00 -311 281 -1.0000000000000e+00 -312 281 -1.0000000000000e+00 -282 282 8.0000000000000e+00 -283 282 -1.0000000000000e+00 -311 282 -1.0000000000000e+00 -312 282 -1.0000000000000e+00 -313 282 -1.0000000000000e+00 -283 283 8.0000000000000e+00 -284 283 -1.0000000000000e+00 -312 283 -1.0000000000000e+00 -313 283 -1.0000000000000e+00 -314 283 -1.0000000000000e+00 -284 284 8.0000000000000e+00 -285 284 -1.0000000000000e+00 -313 284 -1.0000000000000e+00 -314 284 -1.0000000000000e+00 -315 284 -1.0000000000000e+00 -285 285 8.0000000000000e+00 -286 285 -1.0000000000000e+00 -314 285 -1.0000000000000e+00 -315 285 -1.0000000000000e+00 -316 285 -1.0000000000000e+00 -286 286 8.0000000000000e+00 -287 286 -1.0000000000000e+00 -315 286 -1.0000000000000e+00 -316 286 -1.0000000000000e+00 -317 286 -1.0000000000000e+00 -287 287 8.0000000000000e+00 -288 287 -1.0000000000000e+00 -316 287 -1.0000000000000e+00 -317 287 -1.0000000000000e+00 -318 287 -1.0000000000000e+00 -288 288 8.0000000000000e+00 -289 288 -1.0000000000000e+00 -317 288 -1.0000000000000e+00 -318 288 -1.0000000000000e+00 -319 288 -1.0000000000000e+00 -289 289 8.0000000000000e+00 -290 289 -1.0000000000000e+00 -318 289 -1.0000000000000e+00 -319 289 -1.0000000000000e+00 -320 289 -1.0000000000000e+00 -290 290 8.0000000000000e+00 -291 290 -1.0000000000000e+00 -319 290 -1.0000000000000e+00 -320 290 -1.0000000000000e+00 -321 290 -1.0000000000000e+00 -291 291 8.0000000000000e+00 -292 291 -1.0000000000000e+00 -320 291 -1.0000000000000e+00 -321 291 -1.0000000000000e+00 -322 291 -1.0000000000000e+00 -292 292 8.0000000000000e+00 -293 292 -1.0000000000000e+00 -321 292 -1.0000000000000e+00 -322 292 -1.0000000000000e+00 -323 292 -1.0000000000000e+00 -293 293 8.0000000000000e+00 -294 293 -1.0000000000000e+00 -322 293 -1.0000000000000e+00 -323 293 -1.0000000000000e+00 -324 293 -1.0000000000000e+00 -294 294 8.0000000000000e+00 -295 294 -1.0000000000000e+00 -323 294 -1.0000000000000e+00 -324 294 -1.0000000000000e+00 -325 294 -1.0000000000000e+00 -295 295 8.0000000000000e+00 -296 295 -1.0000000000000e+00 -324 295 -1.0000000000000e+00 -325 295 -1.0000000000000e+00 -326 295 -1.0000000000000e+00 -296 296 8.0000000000000e+00 -297 296 -1.0000000000000e+00 -325 296 -1.0000000000000e+00 -326 296 -1.0000000000000e+00 -327 296 -1.0000000000000e+00 -297 297 8.0000000000000e+00 -298 297 -1.0000000000000e+00 -326 297 -1.0000000000000e+00 -327 297 -1.0000000000000e+00 -328 297 -1.0000000000000e+00 -298 298 8.0000000000000e+00 -299 298 -1.0000000000000e+00 -327 298 -1.0000000000000e+00 -328 298 -1.0000000000000e+00 -329 298 -1.0000000000000e+00 -299 299 8.0000000000000e+00 -300 299 -1.0000000000000e+00 -328 299 -1.0000000000000e+00 -329 299 -1.0000000000000e+00 -330 299 -1.0000000000000e+00 -300 300 8.0000000000000e+00 -329 300 -1.0000000000000e+00 -330 300 -1.0000000000000e+00 -301 301 8.0000000000000e+00 -302 301 -1.0000000000000e+00 -331 301 -1.0000000000000e+00 -332 301 -1.0000000000000e+00 -302 302 8.0000000000000e+00 -303 302 -1.0000000000000e+00 -331 302 -1.0000000000000e+00 -332 302 -1.0000000000000e+00 -333 302 -1.0000000000000e+00 -303 303 8.0000000000000e+00 -304 303 -1.0000000000000e+00 -332 303 -1.0000000000000e+00 -333 303 -1.0000000000000e+00 -334 303 -1.0000000000000e+00 -304 304 8.0000000000000e+00 -305 304 -1.0000000000000e+00 -333 304 -1.0000000000000e+00 -334 304 -1.0000000000000e+00 -335 304 -1.0000000000000e+00 -305 305 8.0000000000000e+00 -306 305 -1.0000000000000e+00 -334 305 -1.0000000000000e+00 -335 305 -1.0000000000000e+00 -336 305 -1.0000000000000e+00 -306 306 8.0000000000000e+00 -307 306 -1.0000000000000e+00 -335 306 -1.0000000000000e+00 -336 306 -1.0000000000000e+00 -337 306 -1.0000000000000e+00 -307 307 8.0000000000000e+00 -308 307 -1.0000000000000e+00 -336 307 -1.0000000000000e+00 -337 307 -1.0000000000000e+00 -338 307 -1.0000000000000e+00 -308 308 8.0000000000000e+00 -309 308 -1.0000000000000e+00 -337 308 -1.0000000000000e+00 -338 308 -1.0000000000000e+00 -339 308 -1.0000000000000e+00 -309 309 8.0000000000000e+00 -310 309 -1.0000000000000e+00 -338 309 -1.0000000000000e+00 -339 309 -1.0000000000000e+00 -340 309 -1.0000000000000e+00 -310 310 8.0000000000000e+00 -311 310 -1.0000000000000e+00 -339 310 -1.0000000000000e+00 -340 310 -1.0000000000000e+00 -341 310 -1.0000000000000e+00 -311 311 8.0000000000000e+00 -312 311 -1.0000000000000e+00 -340 311 -1.0000000000000e+00 -341 311 -1.0000000000000e+00 -342 311 -1.0000000000000e+00 -312 312 8.0000000000000e+00 -313 312 -1.0000000000000e+00 -341 312 -1.0000000000000e+00 -342 312 -1.0000000000000e+00 -343 312 -1.0000000000000e+00 -313 313 8.0000000000000e+00 -314 313 -1.0000000000000e+00 -342 313 -1.0000000000000e+00 -343 313 -1.0000000000000e+00 -344 313 -1.0000000000000e+00 -314 314 8.0000000000000e+00 -315 314 -1.0000000000000e+00 -343 314 -1.0000000000000e+00 -344 314 -1.0000000000000e+00 -345 314 -1.0000000000000e+00 -315 315 8.0000000000000e+00 -316 315 -1.0000000000000e+00 -344 315 -1.0000000000000e+00 -345 315 -1.0000000000000e+00 -346 315 -1.0000000000000e+00 -316 316 8.0000000000000e+00 -317 316 -1.0000000000000e+00 -345 316 -1.0000000000000e+00 -346 316 -1.0000000000000e+00 -347 316 -1.0000000000000e+00 -317 317 8.0000000000000e+00 -318 317 -1.0000000000000e+00 -346 317 -1.0000000000000e+00 -347 317 -1.0000000000000e+00 -348 317 -1.0000000000000e+00 -318 318 8.0000000000000e+00 -319 318 -1.0000000000000e+00 -347 318 -1.0000000000000e+00 -348 318 -1.0000000000000e+00 -349 318 -1.0000000000000e+00 -319 319 8.0000000000000e+00 -320 319 -1.0000000000000e+00 -348 319 -1.0000000000000e+00 -349 319 -1.0000000000000e+00 -350 319 -1.0000000000000e+00 -320 320 8.0000000000000e+00 -321 320 -1.0000000000000e+00 -349 320 -1.0000000000000e+00 -350 320 -1.0000000000000e+00 -351 320 -1.0000000000000e+00 -321 321 8.0000000000000e+00 -322 321 -1.0000000000000e+00 -350 321 -1.0000000000000e+00 -351 321 -1.0000000000000e+00 -352 321 -1.0000000000000e+00 -322 322 8.0000000000000e+00 -323 322 -1.0000000000000e+00 -351 322 -1.0000000000000e+00 -352 322 -1.0000000000000e+00 -353 322 -1.0000000000000e+00 -323 323 8.0000000000000e+00 -324 323 -1.0000000000000e+00 -352 323 -1.0000000000000e+00 -353 323 -1.0000000000000e+00 -354 323 -1.0000000000000e+00 -324 324 8.0000000000000e+00 -325 324 -1.0000000000000e+00 -353 324 -1.0000000000000e+00 -354 324 -1.0000000000000e+00 -355 324 -1.0000000000000e+00 -325 325 8.0000000000000e+00 -326 325 -1.0000000000000e+00 -354 325 -1.0000000000000e+00 -355 325 -1.0000000000000e+00 -356 325 -1.0000000000000e+00 -326 326 8.0000000000000e+00 -327 326 -1.0000000000000e+00 -355 326 -1.0000000000000e+00 -356 326 -1.0000000000000e+00 -357 326 -1.0000000000000e+00 -327 327 8.0000000000000e+00 -328 327 -1.0000000000000e+00 -356 327 -1.0000000000000e+00 -357 327 -1.0000000000000e+00 -358 327 -1.0000000000000e+00 -328 328 8.0000000000000e+00 -329 328 -1.0000000000000e+00 -357 328 -1.0000000000000e+00 -358 328 -1.0000000000000e+00 -359 328 -1.0000000000000e+00 -329 329 8.0000000000000e+00 -330 329 -1.0000000000000e+00 -358 329 -1.0000000000000e+00 -359 329 -1.0000000000000e+00 -360 329 -1.0000000000000e+00 -330 330 8.0000000000000e+00 -359 330 -1.0000000000000e+00 -360 330 -1.0000000000000e+00 -331 331 8.0000000000000e+00 -332 331 -1.0000000000000e+00 -361 331 -1.0000000000000e+00 -362 331 -1.0000000000000e+00 -332 332 8.0000000000000e+00 -333 332 -1.0000000000000e+00 -361 332 -1.0000000000000e+00 -362 332 -1.0000000000000e+00 -363 332 -1.0000000000000e+00 -333 333 8.0000000000000e+00 -334 333 -1.0000000000000e+00 -362 333 -1.0000000000000e+00 -363 333 -1.0000000000000e+00 -364 333 -1.0000000000000e+00 -334 334 8.0000000000000e+00 -335 334 -1.0000000000000e+00 -363 334 -1.0000000000000e+00 -364 334 -1.0000000000000e+00 -365 334 -1.0000000000000e+00 -335 335 8.0000000000000e+00 -336 335 -1.0000000000000e+00 -364 335 -1.0000000000000e+00 -365 335 -1.0000000000000e+00 -366 335 -1.0000000000000e+00 -336 336 8.0000000000000e+00 -337 336 -1.0000000000000e+00 -365 336 -1.0000000000000e+00 -366 336 -1.0000000000000e+00 -367 336 -1.0000000000000e+00 -337 337 8.0000000000000e+00 -338 337 -1.0000000000000e+00 -366 337 -1.0000000000000e+00 -367 337 -1.0000000000000e+00 -368 337 -1.0000000000000e+00 -338 338 8.0000000000000e+00 -339 338 -1.0000000000000e+00 -367 338 -1.0000000000000e+00 -368 338 -1.0000000000000e+00 -369 338 -1.0000000000000e+00 -339 339 8.0000000000000e+00 -340 339 -1.0000000000000e+00 -368 339 -1.0000000000000e+00 -369 339 -1.0000000000000e+00 -370 339 -1.0000000000000e+00 -340 340 8.0000000000000e+00 -341 340 -1.0000000000000e+00 -369 340 -1.0000000000000e+00 -370 340 -1.0000000000000e+00 -371 340 -1.0000000000000e+00 -341 341 8.0000000000000e+00 -342 341 -1.0000000000000e+00 -370 341 -1.0000000000000e+00 -371 341 -1.0000000000000e+00 -372 341 -1.0000000000000e+00 -342 342 8.0000000000000e+00 -343 342 -1.0000000000000e+00 -371 342 -1.0000000000000e+00 -372 342 -1.0000000000000e+00 -373 342 -1.0000000000000e+00 -343 343 8.0000000000000e+00 -344 343 -1.0000000000000e+00 -372 343 -1.0000000000000e+00 -373 343 -1.0000000000000e+00 -374 343 -1.0000000000000e+00 -344 344 8.0000000000000e+00 -345 344 -1.0000000000000e+00 -373 344 -1.0000000000000e+00 -374 344 -1.0000000000000e+00 -375 344 -1.0000000000000e+00 -345 345 8.0000000000000e+00 -346 345 -1.0000000000000e+00 -374 345 -1.0000000000000e+00 -375 345 -1.0000000000000e+00 -376 345 -1.0000000000000e+00 -346 346 8.0000000000000e+00 -347 346 -1.0000000000000e+00 -375 346 -1.0000000000000e+00 -376 346 -1.0000000000000e+00 -377 346 -1.0000000000000e+00 -347 347 8.0000000000000e+00 -348 347 -1.0000000000000e+00 -376 347 -1.0000000000000e+00 -377 347 -1.0000000000000e+00 -378 347 -1.0000000000000e+00 -348 348 8.0000000000000e+00 -349 348 -1.0000000000000e+00 -377 348 -1.0000000000000e+00 -378 348 -1.0000000000000e+00 -379 348 -1.0000000000000e+00 -349 349 8.0000000000000e+00 -350 349 -1.0000000000000e+00 -378 349 -1.0000000000000e+00 -379 349 -1.0000000000000e+00 -380 349 -1.0000000000000e+00 -350 350 8.0000000000000e+00 -351 350 -1.0000000000000e+00 -379 350 -1.0000000000000e+00 -380 350 -1.0000000000000e+00 -381 350 -1.0000000000000e+00 -351 351 8.0000000000000e+00 -352 351 -1.0000000000000e+00 -380 351 -1.0000000000000e+00 -381 351 -1.0000000000000e+00 -382 351 -1.0000000000000e+00 -352 352 8.0000000000000e+00 -353 352 -1.0000000000000e+00 -381 352 -1.0000000000000e+00 -382 352 -1.0000000000000e+00 -383 352 -1.0000000000000e+00 -353 353 8.0000000000000e+00 -354 353 -1.0000000000000e+00 -382 353 -1.0000000000000e+00 -383 353 -1.0000000000000e+00 -384 353 -1.0000000000000e+00 -354 354 8.0000000000000e+00 -355 354 -1.0000000000000e+00 -383 354 -1.0000000000000e+00 -384 354 -1.0000000000000e+00 -385 354 -1.0000000000000e+00 -355 355 8.0000000000000e+00 -356 355 -1.0000000000000e+00 -384 355 -1.0000000000000e+00 -385 355 -1.0000000000000e+00 -386 355 -1.0000000000000e+00 -356 356 8.0000000000000e+00 -357 356 -1.0000000000000e+00 -385 356 -1.0000000000000e+00 -386 356 -1.0000000000000e+00 -387 356 -1.0000000000000e+00 -357 357 8.0000000000000e+00 -358 357 -1.0000000000000e+00 -386 357 -1.0000000000000e+00 -387 357 -1.0000000000000e+00 -388 357 -1.0000000000000e+00 -358 358 8.0000000000000e+00 -359 358 -1.0000000000000e+00 -387 358 -1.0000000000000e+00 -388 358 -1.0000000000000e+00 -389 358 -1.0000000000000e+00 -359 359 8.0000000000000e+00 -360 359 -1.0000000000000e+00 -388 359 -1.0000000000000e+00 -389 359 -1.0000000000000e+00 -390 359 -1.0000000000000e+00 -360 360 8.0000000000000e+00 -389 360 -1.0000000000000e+00 -390 360 -1.0000000000000e+00 -361 361 8.0000000000000e+00 -362 361 -1.0000000000000e+00 -391 361 -1.0000000000000e+00 -392 361 -1.0000000000000e+00 -362 362 8.0000000000000e+00 -363 362 -1.0000000000000e+00 -391 362 -1.0000000000000e+00 -392 362 -1.0000000000000e+00 -393 362 -1.0000000000000e+00 -363 363 8.0000000000000e+00 -364 363 -1.0000000000000e+00 -392 363 -1.0000000000000e+00 -393 363 -1.0000000000000e+00 -394 363 -1.0000000000000e+00 -364 364 8.0000000000000e+00 -365 364 -1.0000000000000e+00 -393 364 -1.0000000000000e+00 -394 364 -1.0000000000000e+00 -395 364 -1.0000000000000e+00 -365 365 8.0000000000000e+00 -366 365 -1.0000000000000e+00 -394 365 -1.0000000000000e+00 -395 365 -1.0000000000000e+00 -396 365 -1.0000000000000e+00 -366 366 8.0000000000000e+00 -367 366 -1.0000000000000e+00 -395 366 -1.0000000000000e+00 -396 366 -1.0000000000000e+00 -397 366 -1.0000000000000e+00 -367 367 8.0000000000000e+00 -368 367 -1.0000000000000e+00 -396 367 -1.0000000000000e+00 -397 367 -1.0000000000000e+00 -398 367 -1.0000000000000e+00 -368 368 8.0000000000000e+00 -369 368 -1.0000000000000e+00 -397 368 -1.0000000000000e+00 -398 368 -1.0000000000000e+00 -399 368 -1.0000000000000e+00 -369 369 8.0000000000000e+00 -370 369 -1.0000000000000e+00 -398 369 -1.0000000000000e+00 -399 369 -1.0000000000000e+00 -400 369 -1.0000000000000e+00 -370 370 8.0000000000000e+00 -371 370 -1.0000000000000e+00 -399 370 -1.0000000000000e+00 -400 370 -1.0000000000000e+00 -401 370 -1.0000000000000e+00 -371 371 8.0000000000000e+00 -372 371 -1.0000000000000e+00 -400 371 -1.0000000000000e+00 -401 371 -1.0000000000000e+00 -402 371 -1.0000000000000e+00 -372 372 8.0000000000000e+00 -373 372 -1.0000000000000e+00 -401 372 -1.0000000000000e+00 -402 372 -1.0000000000000e+00 -403 372 -1.0000000000000e+00 -373 373 8.0000000000000e+00 -374 373 -1.0000000000000e+00 -402 373 -1.0000000000000e+00 -403 373 -1.0000000000000e+00 -404 373 -1.0000000000000e+00 -374 374 8.0000000000000e+00 -375 374 -1.0000000000000e+00 -403 374 -1.0000000000000e+00 -404 374 -1.0000000000000e+00 -405 374 -1.0000000000000e+00 -375 375 8.0000000000000e+00 -376 375 -1.0000000000000e+00 -404 375 -1.0000000000000e+00 -405 375 -1.0000000000000e+00 -406 375 -1.0000000000000e+00 -376 376 8.0000000000000e+00 -377 376 -1.0000000000000e+00 -405 376 -1.0000000000000e+00 -406 376 -1.0000000000000e+00 -407 376 -1.0000000000000e+00 -377 377 8.0000000000000e+00 -378 377 -1.0000000000000e+00 -406 377 -1.0000000000000e+00 -407 377 -1.0000000000000e+00 -408 377 -1.0000000000000e+00 -378 378 8.0000000000000e+00 -379 378 -1.0000000000000e+00 -407 378 -1.0000000000000e+00 -408 378 -1.0000000000000e+00 -409 378 -1.0000000000000e+00 -379 379 8.0000000000000e+00 -380 379 -1.0000000000000e+00 -408 379 -1.0000000000000e+00 -409 379 -1.0000000000000e+00 -410 379 -1.0000000000000e+00 -380 380 8.0000000000000e+00 -381 380 -1.0000000000000e+00 -409 380 -1.0000000000000e+00 -410 380 -1.0000000000000e+00 -411 380 -1.0000000000000e+00 -381 381 8.0000000000000e+00 -382 381 -1.0000000000000e+00 -410 381 -1.0000000000000e+00 -411 381 -1.0000000000000e+00 -412 381 -1.0000000000000e+00 -382 382 8.0000000000000e+00 -383 382 -1.0000000000000e+00 -411 382 -1.0000000000000e+00 -412 382 -1.0000000000000e+00 -413 382 -1.0000000000000e+00 -383 383 8.0000000000000e+00 -384 383 -1.0000000000000e+00 -412 383 -1.0000000000000e+00 -413 383 -1.0000000000000e+00 -414 383 -1.0000000000000e+00 -384 384 8.0000000000000e+00 -385 384 -1.0000000000000e+00 -413 384 -1.0000000000000e+00 -414 384 -1.0000000000000e+00 -415 384 -1.0000000000000e+00 -385 385 8.0000000000000e+00 -386 385 -1.0000000000000e+00 -414 385 -1.0000000000000e+00 -415 385 -1.0000000000000e+00 -416 385 -1.0000000000000e+00 -386 386 8.0000000000000e+00 -387 386 -1.0000000000000e+00 -415 386 -1.0000000000000e+00 -416 386 -1.0000000000000e+00 -417 386 -1.0000000000000e+00 -387 387 8.0000000000000e+00 -388 387 -1.0000000000000e+00 -416 387 -1.0000000000000e+00 -417 387 -1.0000000000000e+00 -418 387 -1.0000000000000e+00 -388 388 8.0000000000000e+00 -389 388 -1.0000000000000e+00 -417 388 -1.0000000000000e+00 -418 388 -1.0000000000000e+00 -419 388 -1.0000000000000e+00 -389 389 8.0000000000000e+00 -390 389 -1.0000000000000e+00 -418 389 -1.0000000000000e+00 -419 389 -1.0000000000000e+00 -420 389 -1.0000000000000e+00 -390 390 8.0000000000000e+00 -419 390 -1.0000000000000e+00 -420 390 -1.0000000000000e+00 -391 391 8.0000000000000e+00 -392 391 -1.0000000000000e+00 -421 391 -1.0000000000000e+00 -422 391 -1.0000000000000e+00 -392 392 8.0000000000000e+00 -393 392 -1.0000000000000e+00 -421 392 -1.0000000000000e+00 -422 392 -1.0000000000000e+00 -423 392 -1.0000000000000e+00 -393 393 8.0000000000000e+00 -394 393 -1.0000000000000e+00 -422 393 -1.0000000000000e+00 -423 393 -1.0000000000000e+00 -424 393 -1.0000000000000e+00 -394 394 8.0000000000000e+00 -395 394 -1.0000000000000e+00 -423 394 -1.0000000000000e+00 -424 394 -1.0000000000000e+00 -425 394 -1.0000000000000e+00 -395 395 8.0000000000000e+00 -396 395 -1.0000000000000e+00 -424 395 -1.0000000000000e+00 -425 395 -1.0000000000000e+00 -426 395 -1.0000000000000e+00 -396 396 8.0000000000000e+00 -397 396 -1.0000000000000e+00 -425 396 -1.0000000000000e+00 -426 396 -1.0000000000000e+00 -427 396 -1.0000000000000e+00 -397 397 8.0000000000000e+00 -398 397 -1.0000000000000e+00 -426 397 -1.0000000000000e+00 -427 397 -1.0000000000000e+00 -428 397 -1.0000000000000e+00 -398 398 8.0000000000000e+00 -399 398 -1.0000000000000e+00 -427 398 -1.0000000000000e+00 -428 398 -1.0000000000000e+00 -429 398 -1.0000000000000e+00 -399 399 8.0000000000000e+00 -400 399 -1.0000000000000e+00 -428 399 -1.0000000000000e+00 -429 399 -1.0000000000000e+00 -430 399 -1.0000000000000e+00 -400 400 8.0000000000000e+00 -401 400 -1.0000000000000e+00 -429 400 -1.0000000000000e+00 -430 400 -1.0000000000000e+00 -431 400 -1.0000000000000e+00 -401 401 8.0000000000000e+00 -402 401 -1.0000000000000e+00 -430 401 -1.0000000000000e+00 -431 401 -1.0000000000000e+00 -432 401 -1.0000000000000e+00 -402 402 8.0000000000000e+00 -403 402 -1.0000000000000e+00 -431 402 -1.0000000000000e+00 -432 402 -1.0000000000000e+00 -433 402 -1.0000000000000e+00 -403 403 8.0000000000000e+00 -404 403 -1.0000000000000e+00 -432 403 -1.0000000000000e+00 -433 403 -1.0000000000000e+00 -434 403 -1.0000000000000e+00 -404 404 8.0000000000000e+00 -405 404 -1.0000000000000e+00 -433 404 -1.0000000000000e+00 -434 404 -1.0000000000000e+00 -435 404 -1.0000000000000e+00 -405 405 8.0000000000000e+00 -406 405 -1.0000000000000e+00 -434 405 -1.0000000000000e+00 -435 405 -1.0000000000000e+00 -436 405 -1.0000000000000e+00 -406 406 8.0000000000000e+00 -407 406 -1.0000000000000e+00 -435 406 -1.0000000000000e+00 -436 406 -1.0000000000000e+00 -437 406 -1.0000000000000e+00 -407 407 8.0000000000000e+00 -408 407 -1.0000000000000e+00 -436 407 -1.0000000000000e+00 -437 407 -1.0000000000000e+00 -438 407 -1.0000000000000e+00 -408 408 8.0000000000000e+00 -409 408 -1.0000000000000e+00 -437 408 -1.0000000000000e+00 -438 408 -1.0000000000000e+00 -439 408 -1.0000000000000e+00 -409 409 8.0000000000000e+00 -410 409 -1.0000000000000e+00 -438 409 -1.0000000000000e+00 -439 409 -1.0000000000000e+00 -440 409 -1.0000000000000e+00 -410 410 8.0000000000000e+00 -411 410 -1.0000000000000e+00 -439 410 -1.0000000000000e+00 -440 410 -1.0000000000000e+00 -441 410 -1.0000000000000e+00 -411 411 8.0000000000000e+00 -412 411 -1.0000000000000e+00 -440 411 -1.0000000000000e+00 -441 411 -1.0000000000000e+00 -442 411 -1.0000000000000e+00 -412 412 8.0000000000000e+00 -413 412 -1.0000000000000e+00 -441 412 -1.0000000000000e+00 -442 412 -1.0000000000000e+00 -443 412 -1.0000000000000e+00 -413 413 8.0000000000000e+00 -414 413 -1.0000000000000e+00 -442 413 -1.0000000000000e+00 -443 413 -1.0000000000000e+00 -444 413 -1.0000000000000e+00 -414 414 8.0000000000000e+00 -415 414 -1.0000000000000e+00 -443 414 -1.0000000000000e+00 -444 414 -1.0000000000000e+00 -445 414 -1.0000000000000e+00 -415 415 8.0000000000000e+00 -416 415 -1.0000000000000e+00 -444 415 -1.0000000000000e+00 -445 415 -1.0000000000000e+00 -446 415 -1.0000000000000e+00 -416 416 8.0000000000000e+00 -417 416 -1.0000000000000e+00 -445 416 -1.0000000000000e+00 -446 416 -1.0000000000000e+00 -447 416 -1.0000000000000e+00 -417 417 8.0000000000000e+00 -418 417 -1.0000000000000e+00 -446 417 -1.0000000000000e+00 -447 417 -1.0000000000000e+00 -448 417 -1.0000000000000e+00 -418 418 8.0000000000000e+00 -419 418 -1.0000000000000e+00 -447 418 -1.0000000000000e+00 -448 418 -1.0000000000000e+00 -449 418 -1.0000000000000e+00 -419 419 8.0000000000000e+00 -420 419 -1.0000000000000e+00 -448 419 -1.0000000000000e+00 -449 419 -1.0000000000000e+00 -450 419 -1.0000000000000e+00 -420 420 8.0000000000000e+00 -449 420 -1.0000000000000e+00 -450 420 -1.0000000000000e+00 -421 421 8.0000000000000e+00 -422 421 -1.0000000000000e+00 -451 421 -1.0000000000000e+00 -452 421 -1.0000000000000e+00 -422 422 8.0000000000000e+00 -423 422 -1.0000000000000e+00 -451 422 -1.0000000000000e+00 -452 422 -1.0000000000000e+00 -453 422 -1.0000000000000e+00 -423 423 8.0000000000000e+00 -424 423 -1.0000000000000e+00 -452 423 -1.0000000000000e+00 -453 423 -1.0000000000000e+00 -454 423 -1.0000000000000e+00 -424 424 8.0000000000000e+00 -425 424 -1.0000000000000e+00 -453 424 -1.0000000000000e+00 -454 424 -1.0000000000000e+00 -455 424 -1.0000000000000e+00 -425 425 8.0000000000000e+00 -426 425 -1.0000000000000e+00 -454 425 -1.0000000000000e+00 -455 425 -1.0000000000000e+00 -456 425 -1.0000000000000e+00 -426 426 8.0000000000000e+00 -427 426 -1.0000000000000e+00 -455 426 -1.0000000000000e+00 -456 426 -1.0000000000000e+00 -457 426 -1.0000000000000e+00 -427 427 8.0000000000000e+00 -428 427 -1.0000000000000e+00 -456 427 -1.0000000000000e+00 -457 427 -1.0000000000000e+00 -458 427 -1.0000000000000e+00 -428 428 8.0000000000000e+00 -429 428 -1.0000000000000e+00 -457 428 -1.0000000000000e+00 -458 428 -1.0000000000000e+00 -459 428 -1.0000000000000e+00 -429 429 8.0000000000000e+00 -430 429 -1.0000000000000e+00 -458 429 -1.0000000000000e+00 -459 429 -1.0000000000000e+00 -460 429 -1.0000000000000e+00 -430 430 8.0000000000000e+00 -431 430 -1.0000000000000e+00 -459 430 -1.0000000000000e+00 -460 430 -1.0000000000000e+00 -461 430 -1.0000000000000e+00 -431 431 8.0000000000000e+00 -432 431 -1.0000000000000e+00 -460 431 -1.0000000000000e+00 -461 431 -1.0000000000000e+00 -462 431 -1.0000000000000e+00 -432 432 8.0000000000000e+00 -433 432 -1.0000000000000e+00 -461 432 -1.0000000000000e+00 -462 432 -1.0000000000000e+00 -463 432 -1.0000000000000e+00 -433 433 8.0000000000000e+00 -434 433 -1.0000000000000e+00 -462 433 -1.0000000000000e+00 -463 433 -1.0000000000000e+00 -464 433 -1.0000000000000e+00 -434 434 8.0000000000000e+00 -435 434 -1.0000000000000e+00 -463 434 -1.0000000000000e+00 -464 434 -1.0000000000000e+00 -465 434 -1.0000000000000e+00 -435 435 8.0000000000000e+00 -436 435 -1.0000000000000e+00 -464 435 -1.0000000000000e+00 -465 435 -1.0000000000000e+00 -466 435 -1.0000000000000e+00 -436 436 8.0000000000000e+00 -437 436 -1.0000000000000e+00 -465 436 -1.0000000000000e+00 -466 436 -1.0000000000000e+00 -467 436 -1.0000000000000e+00 -437 437 8.0000000000000e+00 -438 437 -1.0000000000000e+00 -466 437 -1.0000000000000e+00 -467 437 -1.0000000000000e+00 -468 437 -1.0000000000000e+00 -438 438 8.0000000000000e+00 -439 438 -1.0000000000000e+00 -467 438 -1.0000000000000e+00 -468 438 -1.0000000000000e+00 -469 438 -1.0000000000000e+00 -439 439 8.0000000000000e+00 -440 439 -1.0000000000000e+00 -468 439 -1.0000000000000e+00 -469 439 -1.0000000000000e+00 -470 439 -1.0000000000000e+00 -440 440 8.0000000000000e+00 -441 440 -1.0000000000000e+00 -469 440 -1.0000000000000e+00 -470 440 -1.0000000000000e+00 -471 440 -1.0000000000000e+00 -441 441 8.0000000000000e+00 -442 441 -1.0000000000000e+00 -470 441 -1.0000000000000e+00 -471 441 -1.0000000000000e+00 -472 441 -1.0000000000000e+00 -442 442 8.0000000000000e+00 -443 442 -1.0000000000000e+00 -471 442 -1.0000000000000e+00 -472 442 -1.0000000000000e+00 -473 442 -1.0000000000000e+00 -443 443 8.0000000000000e+00 -444 443 -1.0000000000000e+00 -472 443 -1.0000000000000e+00 -473 443 -1.0000000000000e+00 -474 443 -1.0000000000000e+00 -444 444 8.0000000000000e+00 -445 444 -1.0000000000000e+00 -473 444 -1.0000000000000e+00 -474 444 -1.0000000000000e+00 -475 444 -1.0000000000000e+00 -445 445 8.0000000000000e+00 -446 445 -1.0000000000000e+00 -474 445 -1.0000000000000e+00 -475 445 -1.0000000000000e+00 -476 445 -1.0000000000000e+00 -446 446 8.0000000000000e+00 -447 446 -1.0000000000000e+00 -475 446 -1.0000000000000e+00 -476 446 -1.0000000000000e+00 -477 446 -1.0000000000000e+00 -447 447 8.0000000000000e+00 -448 447 -1.0000000000000e+00 -476 447 -1.0000000000000e+00 -477 447 -1.0000000000000e+00 -478 447 -1.0000000000000e+00 -448 448 8.0000000000000e+00 -449 448 -1.0000000000000e+00 -477 448 -1.0000000000000e+00 -478 448 -1.0000000000000e+00 -479 448 -1.0000000000000e+00 -449 449 8.0000000000000e+00 -450 449 -1.0000000000000e+00 -478 449 -1.0000000000000e+00 -479 449 -1.0000000000000e+00 -480 449 -1.0000000000000e+00 -450 450 8.0000000000000e+00 -479 450 -1.0000000000000e+00 -480 450 -1.0000000000000e+00 -451 451 8.0000000000000e+00 -452 451 -1.0000000000000e+00 -481 451 -1.0000000000000e+00 -482 451 -1.0000000000000e+00 -452 452 8.0000000000000e+00 -453 452 -1.0000000000000e+00 -481 452 -1.0000000000000e+00 -482 452 -1.0000000000000e+00 -483 452 -1.0000000000000e+00 -453 453 8.0000000000000e+00 -454 453 -1.0000000000000e+00 -482 453 -1.0000000000000e+00 -483 453 -1.0000000000000e+00 -484 453 -1.0000000000000e+00 -454 454 8.0000000000000e+00 -455 454 -1.0000000000000e+00 -483 454 -1.0000000000000e+00 -484 454 -1.0000000000000e+00 -485 454 -1.0000000000000e+00 -455 455 8.0000000000000e+00 -456 455 -1.0000000000000e+00 -484 455 -1.0000000000000e+00 -485 455 -1.0000000000000e+00 -486 455 -1.0000000000000e+00 -456 456 8.0000000000000e+00 -457 456 -1.0000000000000e+00 -485 456 -1.0000000000000e+00 -486 456 -1.0000000000000e+00 -487 456 -1.0000000000000e+00 -457 457 8.0000000000000e+00 -458 457 -1.0000000000000e+00 -486 457 -1.0000000000000e+00 -487 457 -1.0000000000000e+00 -488 457 -1.0000000000000e+00 -458 458 8.0000000000000e+00 -459 458 -1.0000000000000e+00 -487 458 -1.0000000000000e+00 -488 458 -1.0000000000000e+00 -489 458 -1.0000000000000e+00 -459 459 8.0000000000000e+00 -460 459 -1.0000000000000e+00 -488 459 -1.0000000000000e+00 -489 459 -1.0000000000000e+00 -490 459 -1.0000000000000e+00 -460 460 8.0000000000000e+00 -461 460 -1.0000000000000e+00 -489 460 -1.0000000000000e+00 -490 460 -1.0000000000000e+00 -491 460 -1.0000000000000e+00 -461 461 8.0000000000000e+00 -462 461 -1.0000000000000e+00 -490 461 -1.0000000000000e+00 -491 461 -1.0000000000000e+00 -492 461 -1.0000000000000e+00 -462 462 8.0000000000000e+00 -463 462 -1.0000000000000e+00 -491 462 -1.0000000000000e+00 -492 462 -1.0000000000000e+00 -493 462 -1.0000000000000e+00 -463 463 8.0000000000000e+00 -464 463 -1.0000000000000e+00 -492 463 -1.0000000000000e+00 -493 463 -1.0000000000000e+00 -494 463 -1.0000000000000e+00 -464 464 8.0000000000000e+00 -465 464 -1.0000000000000e+00 -493 464 -1.0000000000000e+00 -494 464 -1.0000000000000e+00 -495 464 -1.0000000000000e+00 -465 465 8.0000000000000e+00 -466 465 -1.0000000000000e+00 -494 465 -1.0000000000000e+00 -495 465 -1.0000000000000e+00 -496 465 -1.0000000000000e+00 -466 466 8.0000000000000e+00 -467 466 -1.0000000000000e+00 -495 466 -1.0000000000000e+00 -496 466 -1.0000000000000e+00 -497 466 -1.0000000000000e+00 -467 467 8.0000000000000e+00 -468 467 -1.0000000000000e+00 -496 467 -1.0000000000000e+00 -497 467 -1.0000000000000e+00 -498 467 -1.0000000000000e+00 -468 468 8.0000000000000e+00 -469 468 -1.0000000000000e+00 -497 468 -1.0000000000000e+00 -498 468 -1.0000000000000e+00 -499 468 -1.0000000000000e+00 -469 469 8.0000000000000e+00 -470 469 -1.0000000000000e+00 -498 469 -1.0000000000000e+00 -499 469 -1.0000000000000e+00 -500 469 -1.0000000000000e+00 -470 470 8.0000000000000e+00 -471 470 -1.0000000000000e+00 -499 470 -1.0000000000000e+00 -500 470 -1.0000000000000e+00 -501 470 -1.0000000000000e+00 -471 471 8.0000000000000e+00 -472 471 -1.0000000000000e+00 -500 471 -1.0000000000000e+00 -501 471 -1.0000000000000e+00 -502 471 -1.0000000000000e+00 -472 472 8.0000000000000e+00 -473 472 -1.0000000000000e+00 -501 472 -1.0000000000000e+00 -502 472 -1.0000000000000e+00 -503 472 -1.0000000000000e+00 -473 473 8.0000000000000e+00 -474 473 -1.0000000000000e+00 -502 473 -1.0000000000000e+00 -503 473 -1.0000000000000e+00 -504 473 -1.0000000000000e+00 -474 474 8.0000000000000e+00 -475 474 -1.0000000000000e+00 -503 474 -1.0000000000000e+00 -504 474 -1.0000000000000e+00 -505 474 -1.0000000000000e+00 -475 475 8.0000000000000e+00 -476 475 -1.0000000000000e+00 -504 475 -1.0000000000000e+00 -505 475 -1.0000000000000e+00 -506 475 -1.0000000000000e+00 -476 476 8.0000000000000e+00 -477 476 -1.0000000000000e+00 -505 476 -1.0000000000000e+00 -506 476 -1.0000000000000e+00 -507 476 -1.0000000000000e+00 -477 477 8.0000000000000e+00 -478 477 -1.0000000000000e+00 -506 477 -1.0000000000000e+00 -507 477 -1.0000000000000e+00 -508 477 -1.0000000000000e+00 -478 478 8.0000000000000e+00 -479 478 -1.0000000000000e+00 -507 478 -1.0000000000000e+00 -508 478 -1.0000000000000e+00 -509 478 -1.0000000000000e+00 -479 479 8.0000000000000e+00 -480 479 -1.0000000000000e+00 -508 479 -1.0000000000000e+00 -509 479 -1.0000000000000e+00 -510 479 -1.0000000000000e+00 -480 480 8.0000000000000e+00 -509 480 -1.0000000000000e+00 -510 480 -1.0000000000000e+00 -481 481 8.0000000000000e+00 -482 481 -1.0000000000000e+00 -511 481 -1.0000000000000e+00 -512 481 -1.0000000000000e+00 -482 482 8.0000000000000e+00 -483 482 -1.0000000000000e+00 -511 482 -1.0000000000000e+00 -512 482 -1.0000000000000e+00 -513 482 -1.0000000000000e+00 -483 483 8.0000000000000e+00 -484 483 -1.0000000000000e+00 -512 483 -1.0000000000000e+00 -513 483 -1.0000000000000e+00 -514 483 -1.0000000000000e+00 -484 484 8.0000000000000e+00 -485 484 -1.0000000000000e+00 -513 484 -1.0000000000000e+00 -514 484 -1.0000000000000e+00 -515 484 -1.0000000000000e+00 -485 485 8.0000000000000e+00 -486 485 -1.0000000000000e+00 -514 485 -1.0000000000000e+00 -515 485 -1.0000000000000e+00 -516 485 -1.0000000000000e+00 -486 486 8.0000000000000e+00 -487 486 -1.0000000000000e+00 -515 486 -1.0000000000000e+00 -516 486 -1.0000000000000e+00 -517 486 -1.0000000000000e+00 -487 487 8.0000000000000e+00 -488 487 -1.0000000000000e+00 -516 487 -1.0000000000000e+00 -517 487 -1.0000000000000e+00 -518 487 -1.0000000000000e+00 -488 488 8.0000000000000e+00 -489 488 -1.0000000000000e+00 -517 488 -1.0000000000000e+00 -518 488 -1.0000000000000e+00 -519 488 -1.0000000000000e+00 -489 489 8.0000000000000e+00 -490 489 -1.0000000000000e+00 -518 489 -1.0000000000000e+00 -519 489 -1.0000000000000e+00 -520 489 -1.0000000000000e+00 -490 490 8.0000000000000e+00 -491 490 -1.0000000000000e+00 -519 490 -1.0000000000000e+00 -520 490 -1.0000000000000e+00 -521 490 -1.0000000000000e+00 -491 491 8.0000000000000e+00 -492 491 -1.0000000000000e+00 -520 491 -1.0000000000000e+00 -521 491 -1.0000000000000e+00 -522 491 -1.0000000000000e+00 -492 492 8.0000000000000e+00 -493 492 -1.0000000000000e+00 -521 492 -1.0000000000000e+00 -522 492 -1.0000000000000e+00 -523 492 -1.0000000000000e+00 -493 493 8.0000000000000e+00 -494 493 -1.0000000000000e+00 -522 493 -1.0000000000000e+00 -523 493 -1.0000000000000e+00 -524 493 -1.0000000000000e+00 -494 494 8.0000000000000e+00 -495 494 -1.0000000000000e+00 -523 494 -1.0000000000000e+00 -524 494 -1.0000000000000e+00 -525 494 -1.0000000000000e+00 -495 495 8.0000000000000e+00 -496 495 -1.0000000000000e+00 -524 495 -1.0000000000000e+00 -525 495 -1.0000000000000e+00 -526 495 -1.0000000000000e+00 -496 496 8.0000000000000e+00 -497 496 -1.0000000000000e+00 -525 496 -1.0000000000000e+00 -526 496 -1.0000000000000e+00 -527 496 -1.0000000000000e+00 -497 497 8.0000000000000e+00 -498 497 -1.0000000000000e+00 -526 497 -1.0000000000000e+00 -527 497 -1.0000000000000e+00 -528 497 -1.0000000000000e+00 -498 498 8.0000000000000e+00 -499 498 -1.0000000000000e+00 -527 498 -1.0000000000000e+00 -528 498 -1.0000000000000e+00 -529 498 -1.0000000000000e+00 -499 499 8.0000000000000e+00 -500 499 -1.0000000000000e+00 -528 499 -1.0000000000000e+00 -529 499 -1.0000000000000e+00 -530 499 -1.0000000000000e+00 -500 500 8.0000000000000e+00 -501 500 -1.0000000000000e+00 -529 500 -1.0000000000000e+00 -530 500 -1.0000000000000e+00 -531 500 -1.0000000000000e+00 -501 501 8.0000000000000e+00 -502 501 -1.0000000000000e+00 -530 501 -1.0000000000000e+00 -531 501 -1.0000000000000e+00 -532 501 -1.0000000000000e+00 -502 502 8.0000000000000e+00 -503 502 -1.0000000000000e+00 -531 502 -1.0000000000000e+00 -532 502 -1.0000000000000e+00 -533 502 -1.0000000000000e+00 -503 503 8.0000000000000e+00 -504 503 -1.0000000000000e+00 -532 503 -1.0000000000000e+00 -533 503 -1.0000000000000e+00 -534 503 -1.0000000000000e+00 -504 504 8.0000000000000e+00 -505 504 -1.0000000000000e+00 -533 504 -1.0000000000000e+00 -534 504 -1.0000000000000e+00 -535 504 -1.0000000000000e+00 -505 505 8.0000000000000e+00 -506 505 -1.0000000000000e+00 -534 505 -1.0000000000000e+00 -535 505 -1.0000000000000e+00 -536 505 -1.0000000000000e+00 -506 506 8.0000000000000e+00 -507 506 -1.0000000000000e+00 -535 506 -1.0000000000000e+00 -536 506 -1.0000000000000e+00 -537 506 -1.0000000000000e+00 -507 507 8.0000000000000e+00 -508 507 -1.0000000000000e+00 -536 507 -1.0000000000000e+00 -537 507 -1.0000000000000e+00 -538 507 -1.0000000000000e+00 -508 508 8.0000000000000e+00 -509 508 -1.0000000000000e+00 -537 508 -1.0000000000000e+00 -538 508 -1.0000000000000e+00 -539 508 -1.0000000000000e+00 -509 509 8.0000000000000e+00 -510 509 -1.0000000000000e+00 -538 509 -1.0000000000000e+00 -539 509 -1.0000000000000e+00 -540 509 -1.0000000000000e+00 -510 510 8.0000000000000e+00 -539 510 -1.0000000000000e+00 -540 510 -1.0000000000000e+00 -511 511 8.0000000000000e+00 -512 511 -1.0000000000000e+00 -541 511 -1.0000000000000e+00 -542 511 -1.0000000000000e+00 -512 512 8.0000000000000e+00 -513 512 -1.0000000000000e+00 -541 512 -1.0000000000000e+00 -542 512 -1.0000000000000e+00 -543 512 -1.0000000000000e+00 -513 513 8.0000000000000e+00 -514 513 -1.0000000000000e+00 -542 513 -1.0000000000000e+00 -543 513 -1.0000000000000e+00 -544 513 -1.0000000000000e+00 -514 514 8.0000000000000e+00 -515 514 -1.0000000000000e+00 -543 514 -1.0000000000000e+00 -544 514 -1.0000000000000e+00 -545 514 -1.0000000000000e+00 -515 515 8.0000000000000e+00 -516 515 -1.0000000000000e+00 -544 515 -1.0000000000000e+00 -545 515 -1.0000000000000e+00 -546 515 -1.0000000000000e+00 -516 516 8.0000000000000e+00 -517 516 -1.0000000000000e+00 -545 516 -1.0000000000000e+00 -546 516 -1.0000000000000e+00 -547 516 -1.0000000000000e+00 -517 517 8.0000000000000e+00 -518 517 -1.0000000000000e+00 -546 517 -1.0000000000000e+00 -547 517 -1.0000000000000e+00 -548 517 -1.0000000000000e+00 -518 518 8.0000000000000e+00 -519 518 -1.0000000000000e+00 -547 518 -1.0000000000000e+00 -548 518 -1.0000000000000e+00 -549 518 -1.0000000000000e+00 -519 519 8.0000000000000e+00 -520 519 -1.0000000000000e+00 -548 519 -1.0000000000000e+00 -549 519 -1.0000000000000e+00 -550 519 -1.0000000000000e+00 -520 520 8.0000000000000e+00 -521 520 -1.0000000000000e+00 -549 520 -1.0000000000000e+00 -550 520 -1.0000000000000e+00 -551 520 -1.0000000000000e+00 -521 521 8.0000000000000e+00 -522 521 -1.0000000000000e+00 -550 521 -1.0000000000000e+00 -551 521 -1.0000000000000e+00 -552 521 -1.0000000000000e+00 -522 522 8.0000000000000e+00 -523 522 -1.0000000000000e+00 -551 522 -1.0000000000000e+00 -552 522 -1.0000000000000e+00 -553 522 -1.0000000000000e+00 -523 523 8.0000000000000e+00 -524 523 -1.0000000000000e+00 -552 523 -1.0000000000000e+00 -553 523 -1.0000000000000e+00 -554 523 -1.0000000000000e+00 -524 524 8.0000000000000e+00 -525 524 -1.0000000000000e+00 -553 524 -1.0000000000000e+00 -554 524 -1.0000000000000e+00 -555 524 -1.0000000000000e+00 -525 525 8.0000000000000e+00 -526 525 -1.0000000000000e+00 -554 525 -1.0000000000000e+00 -555 525 -1.0000000000000e+00 -556 525 -1.0000000000000e+00 -526 526 8.0000000000000e+00 -527 526 -1.0000000000000e+00 -555 526 -1.0000000000000e+00 -556 526 -1.0000000000000e+00 -557 526 -1.0000000000000e+00 -527 527 8.0000000000000e+00 -528 527 -1.0000000000000e+00 -556 527 -1.0000000000000e+00 -557 527 -1.0000000000000e+00 -558 527 -1.0000000000000e+00 -528 528 8.0000000000000e+00 -529 528 -1.0000000000000e+00 -557 528 -1.0000000000000e+00 -558 528 -1.0000000000000e+00 -559 528 -1.0000000000000e+00 -529 529 8.0000000000000e+00 -530 529 -1.0000000000000e+00 -558 529 -1.0000000000000e+00 -559 529 -1.0000000000000e+00 -560 529 -1.0000000000000e+00 -530 530 8.0000000000000e+00 -531 530 -1.0000000000000e+00 -559 530 -1.0000000000000e+00 -560 530 -1.0000000000000e+00 -561 530 -1.0000000000000e+00 -531 531 8.0000000000000e+00 -532 531 -1.0000000000000e+00 -560 531 -1.0000000000000e+00 -561 531 -1.0000000000000e+00 -562 531 -1.0000000000000e+00 -532 532 8.0000000000000e+00 -533 532 -1.0000000000000e+00 -561 532 -1.0000000000000e+00 -562 532 -1.0000000000000e+00 -563 532 -1.0000000000000e+00 -533 533 8.0000000000000e+00 -534 533 -1.0000000000000e+00 -562 533 -1.0000000000000e+00 -563 533 -1.0000000000000e+00 -564 533 -1.0000000000000e+00 -534 534 8.0000000000000e+00 -535 534 -1.0000000000000e+00 -563 534 -1.0000000000000e+00 -564 534 -1.0000000000000e+00 -565 534 -1.0000000000000e+00 -535 535 8.0000000000000e+00 -536 535 -1.0000000000000e+00 -564 535 -1.0000000000000e+00 -565 535 -1.0000000000000e+00 -566 535 -1.0000000000000e+00 -536 536 8.0000000000000e+00 -537 536 -1.0000000000000e+00 -565 536 -1.0000000000000e+00 -566 536 -1.0000000000000e+00 -567 536 -1.0000000000000e+00 -537 537 8.0000000000000e+00 -538 537 -1.0000000000000e+00 -566 537 -1.0000000000000e+00 -567 537 -1.0000000000000e+00 -568 537 -1.0000000000000e+00 -538 538 8.0000000000000e+00 -539 538 -1.0000000000000e+00 -567 538 -1.0000000000000e+00 -568 538 -1.0000000000000e+00 -569 538 -1.0000000000000e+00 -539 539 8.0000000000000e+00 -540 539 -1.0000000000000e+00 -568 539 -1.0000000000000e+00 -569 539 -1.0000000000000e+00 -570 539 -1.0000000000000e+00 -540 540 8.0000000000000e+00 -569 540 -1.0000000000000e+00 -570 540 -1.0000000000000e+00 -541 541 8.0000000000000e+00 -542 541 -1.0000000000000e+00 -571 541 -1.0000000000000e+00 -572 541 -1.0000000000000e+00 -542 542 8.0000000000000e+00 -543 542 -1.0000000000000e+00 -571 542 -1.0000000000000e+00 -572 542 -1.0000000000000e+00 -573 542 -1.0000000000000e+00 -543 543 8.0000000000000e+00 -544 543 -1.0000000000000e+00 -572 543 -1.0000000000000e+00 -573 543 -1.0000000000000e+00 -574 543 -1.0000000000000e+00 -544 544 8.0000000000000e+00 -545 544 -1.0000000000000e+00 -573 544 -1.0000000000000e+00 -574 544 -1.0000000000000e+00 -575 544 -1.0000000000000e+00 -545 545 8.0000000000000e+00 -546 545 -1.0000000000000e+00 -574 545 -1.0000000000000e+00 -575 545 -1.0000000000000e+00 -576 545 -1.0000000000000e+00 -546 546 8.0000000000000e+00 -547 546 -1.0000000000000e+00 -575 546 -1.0000000000000e+00 -576 546 -1.0000000000000e+00 -577 546 -1.0000000000000e+00 -547 547 8.0000000000000e+00 -548 547 -1.0000000000000e+00 -576 547 -1.0000000000000e+00 -577 547 -1.0000000000000e+00 -578 547 -1.0000000000000e+00 -548 548 8.0000000000000e+00 -549 548 -1.0000000000000e+00 -577 548 -1.0000000000000e+00 -578 548 -1.0000000000000e+00 -579 548 -1.0000000000000e+00 -549 549 8.0000000000000e+00 -550 549 -1.0000000000000e+00 -578 549 -1.0000000000000e+00 -579 549 -1.0000000000000e+00 -580 549 -1.0000000000000e+00 -550 550 8.0000000000000e+00 -551 550 -1.0000000000000e+00 -579 550 -1.0000000000000e+00 -580 550 -1.0000000000000e+00 -581 550 -1.0000000000000e+00 -551 551 8.0000000000000e+00 -552 551 -1.0000000000000e+00 -580 551 -1.0000000000000e+00 -581 551 -1.0000000000000e+00 -582 551 -1.0000000000000e+00 -552 552 8.0000000000000e+00 -553 552 -1.0000000000000e+00 -581 552 -1.0000000000000e+00 -582 552 -1.0000000000000e+00 -583 552 -1.0000000000000e+00 -553 553 8.0000000000000e+00 -554 553 -1.0000000000000e+00 -582 553 -1.0000000000000e+00 -583 553 -1.0000000000000e+00 -584 553 -1.0000000000000e+00 -554 554 8.0000000000000e+00 -555 554 -1.0000000000000e+00 -583 554 -1.0000000000000e+00 -584 554 -1.0000000000000e+00 -585 554 -1.0000000000000e+00 -555 555 8.0000000000000e+00 -556 555 -1.0000000000000e+00 -584 555 -1.0000000000000e+00 -585 555 -1.0000000000000e+00 -586 555 -1.0000000000000e+00 -556 556 8.0000000000000e+00 -557 556 -1.0000000000000e+00 -585 556 -1.0000000000000e+00 -586 556 -1.0000000000000e+00 -587 556 -1.0000000000000e+00 -557 557 8.0000000000000e+00 -558 557 -1.0000000000000e+00 -586 557 -1.0000000000000e+00 -587 557 -1.0000000000000e+00 -588 557 -1.0000000000000e+00 -558 558 8.0000000000000e+00 -559 558 -1.0000000000000e+00 -587 558 -1.0000000000000e+00 -588 558 -1.0000000000000e+00 -589 558 -1.0000000000000e+00 -559 559 8.0000000000000e+00 -560 559 -1.0000000000000e+00 -588 559 -1.0000000000000e+00 -589 559 -1.0000000000000e+00 -590 559 -1.0000000000000e+00 -560 560 8.0000000000000e+00 -561 560 -1.0000000000000e+00 -589 560 -1.0000000000000e+00 -590 560 -1.0000000000000e+00 -591 560 -1.0000000000000e+00 -561 561 8.0000000000000e+00 -562 561 -1.0000000000000e+00 -590 561 -1.0000000000000e+00 -591 561 -1.0000000000000e+00 -592 561 -1.0000000000000e+00 -562 562 8.0000000000000e+00 -563 562 -1.0000000000000e+00 -591 562 -1.0000000000000e+00 -592 562 -1.0000000000000e+00 -593 562 -1.0000000000000e+00 -563 563 8.0000000000000e+00 -564 563 -1.0000000000000e+00 -592 563 -1.0000000000000e+00 -593 563 -1.0000000000000e+00 -594 563 -1.0000000000000e+00 -564 564 8.0000000000000e+00 -565 564 -1.0000000000000e+00 -593 564 -1.0000000000000e+00 -594 564 -1.0000000000000e+00 -595 564 -1.0000000000000e+00 -565 565 8.0000000000000e+00 -566 565 -1.0000000000000e+00 -594 565 -1.0000000000000e+00 -595 565 -1.0000000000000e+00 -596 565 -1.0000000000000e+00 -566 566 8.0000000000000e+00 -567 566 -1.0000000000000e+00 -595 566 -1.0000000000000e+00 -596 566 -1.0000000000000e+00 -597 566 -1.0000000000000e+00 -567 567 8.0000000000000e+00 -568 567 -1.0000000000000e+00 -596 567 -1.0000000000000e+00 -597 567 -1.0000000000000e+00 -598 567 -1.0000000000000e+00 -568 568 8.0000000000000e+00 -569 568 -1.0000000000000e+00 -597 568 -1.0000000000000e+00 -598 568 -1.0000000000000e+00 -599 568 -1.0000000000000e+00 -569 569 8.0000000000000e+00 -570 569 -1.0000000000000e+00 -598 569 -1.0000000000000e+00 -599 569 -1.0000000000000e+00 -600 569 -1.0000000000000e+00 -570 570 8.0000000000000e+00 -599 570 -1.0000000000000e+00 -600 570 -1.0000000000000e+00 -571 571 8.0000000000000e+00 -572 571 -1.0000000000000e+00 -601 571 -1.0000000000000e+00 -602 571 -1.0000000000000e+00 -572 572 8.0000000000000e+00 -573 572 -1.0000000000000e+00 -601 572 -1.0000000000000e+00 -602 572 -1.0000000000000e+00 -603 572 -1.0000000000000e+00 -573 573 8.0000000000000e+00 -574 573 -1.0000000000000e+00 -602 573 -1.0000000000000e+00 -603 573 -1.0000000000000e+00 -604 573 -1.0000000000000e+00 -574 574 8.0000000000000e+00 -575 574 -1.0000000000000e+00 -603 574 -1.0000000000000e+00 -604 574 -1.0000000000000e+00 -605 574 -1.0000000000000e+00 -575 575 8.0000000000000e+00 -576 575 -1.0000000000000e+00 -604 575 -1.0000000000000e+00 -605 575 -1.0000000000000e+00 -606 575 -1.0000000000000e+00 -576 576 8.0000000000000e+00 -577 576 -1.0000000000000e+00 -605 576 -1.0000000000000e+00 -606 576 -1.0000000000000e+00 -607 576 -1.0000000000000e+00 -577 577 8.0000000000000e+00 -578 577 -1.0000000000000e+00 -606 577 -1.0000000000000e+00 -607 577 -1.0000000000000e+00 -608 577 -1.0000000000000e+00 -578 578 8.0000000000000e+00 -579 578 -1.0000000000000e+00 -607 578 -1.0000000000000e+00 -608 578 -1.0000000000000e+00 -609 578 -1.0000000000000e+00 -579 579 8.0000000000000e+00 -580 579 -1.0000000000000e+00 -608 579 -1.0000000000000e+00 -609 579 -1.0000000000000e+00 -610 579 -1.0000000000000e+00 -580 580 8.0000000000000e+00 -581 580 -1.0000000000000e+00 -609 580 -1.0000000000000e+00 -610 580 -1.0000000000000e+00 -611 580 -1.0000000000000e+00 -581 581 8.0000000000000e+00 -582 581 -1.0000000000000e+00 -610 581 -1.0000000000000e+00 -611 581 -1.0000000000000e+00 -612 581 -1.0000000000000e+00 -582 582 8.0000000000000e+00 -583 582 -1.0000000000000e+00 -611 582 -1.0000000000000e+00 -612 582 -1.0000000000000e+00 -613 582 -1.0000000000000e+00 -583 583 8.0000000000000e+00 -584 583 -1.0000000000000e+00 -612 583 -1.0000000000000e+00 -613 583 -1.0000000000000e+00 -614 583 -1.0000000000000e+00 -584 584 8.0000000000000e+00 -585 584 -1.0000000000000e+00 -613 584 -1.0000000000000e+00 -614 584 -1.0000000000000e+00 -615 584 -1.0000000000000e+00 -585 585 8.0000000000000e+00 -586 585 -1.0000000000000e+00 -614 585 -1.0000000000000e+00 -615 585 -1.0000000000000e+00 -616 585 -1.0000000000000e+00 -586 586 8.0000000000000e+00 -587 586 -1.0000000000000e+00 -615 586 -1.0000000000000e+00 -616 586 -1.0000000000000e+00 -617 586 -1.0000000000000e+00 -587 587 8.0000000000000e+00 -588 587 -1.0000000000000e+00 -616 587 -1.0000000000000e+00 -617 587 -1.0000000000000e+00 -618 587 -1.0000000000000e+00 -588 588 8.0000000000000e+00 -589 588 -1.0000000000000e+00 -617 588 -1.0000000000000e+00 -618 588 -1.0000000000000e+00 -619 588 -1.0000000000000e+00 -589 589 8.0000000000000e+00 -590 589 -1.0000000000000e+00 -618 589 -1.0000000000000e+00 -619 589 -1.0000000000000e+00 -620 589 -1.0000000000000e+00 -590 590 8.0000000000000e+00 -591 590 -1.0000000000000e+00 -619 590 -1.0000000000000e+00 -620 590 -1.0000000000000e+00 -621 590 -1.0000000000000e+00 -591 591 8.0000000000000e+00 -592 591 -1.0000000000000e+00 -620 591 -1.0000000000000e+00 -621 591 -1.0000000000000e+00 -622 591 -1.0000000000000e+00 -592 592 8.0000000000000e+00 -593 592 -1.0000000000000e+00 -621 592 -1.0000000000000e+00 -622 592 -1.0000000000000e+00 -623 592 -1.0000000000000e+00 -593 593 8.0000000000000e+00 -594 593 -1.0000000000000e+00 -622 593 -1.0000000000000e+00 -623 593 -1.0000000000000e+00 -624 593 -1.0000000000000e+00 -594 594 8.0000000000000e+00 -595 594 -1.0000000000000e+00 -623 594 -1.0000000000000e+00 -624 594 -1.0000000000000e+00 -625 594 -1.0000000000000e+00 -595 595 8.0000000000000e+00 -596 595 -1.0000000000000e+00 -624 595 -1.0000000000000e+00 -625 595 -1.0000000000000e+00 -626 595 -1.0000000000000e+00 -596 596 8.0000000000000e+00 -597 596 -1.0000000000000e+00 -625 596 -1.0000000000000e+00 -626 596 -1.0000000000000e+00 -627 596 -1.0000000000000e+00 -597 597 8.0000000000000e+00 -598 597 -1.0000000000000e+00 -626 597 -1.0000000000000e+00 -627 597 -1.0000000000000e+00 -628 597 -1.0000000000000e+00 -598 598 8.0000000000000e+00 -599 598 -1.0000000000000e+00 -627 598 -1.0000000000000e+00 -628 598 -1.0000000000000e+00 -629 598 -1.0000000000000e+00 -599 599 8.0000000000000e+00 -600 599 -1.0000000000000e+00 -628 599 -1.0000000000000e+00 -629 599 -1.0000000000000e+00 -630 599 -1.0000000000000e+00 -600 600 8.0000000000000e+00 -629 600 -1.0000000000000e+00 -630 600 -1.0000000000000e+00 -601 601 8.0000000000000e+00 -602 601 -1.0000000000000e+00 -631 601 -1.0000000000000e+00 -632 601 -1.0000000000000e+00 -602 602 8.0000000000000e+00 -603 602 -1.0000000000000e+00 -631 602 -1.0000000000000e+00 -632 602 -1.0000000000000e+00 -633 602 -1.0000000000000e+00 -603 603 8.0000000000000e+00 -604 603 -1.0000000000000e+00 -632 603 -1.0000000000000e+00 -633 603 -1.0000000000000e+00 -634 603 -1.0000000000000e+00 -604 604 8.0000000000000e+00 -605 604 -1.0000000000000e+00 -633 604 -1.0000000000000e+00 -634 604 -1.0000000000000e+00 -635 604 -1.0000000000000e+00 -605 605 8.0000000000000e+00 -606 605 -1.0000000000000e+00 -634 605 -1.0000000000000e+00 -635 605 -1.0000000000000e+00 -636 605 -1.0000000000000e+00 -606 606 8.0000000000000e+00 -607 606 -1.0000000000000e+00 -635 606 -1.0000000000000e+00 -636 606 -1.0000000000000e+00 -637 606 -1.0000000000000e+00 -607 607 8.0000000000000e+00 -608 607 -1.0000000000000e+00 -636 607 -1.0000000000000e+00 -637 607 -1.0000000000000e+00 -638 607 -1.0000000000000e+00 -608 608 8.0000000000000e+00 -609 608 -1.0000000000000e+00 -637 608 -1.0000000000000e+00 -638 608 -1.0000000000000e+00 -639 608 -1.0000000000000e+00 -609 609 8.0000000000000e+00 -610 609 -1.0000000000000e+00 -638 609 -1.0000000000000e+00 -639 609 -1.0000000000000e+00 -640 609 -1.0000000000000e+00 -610 610 8.0000000000000e+00 -611 610 -1.0000000000000e+00 -639 610 -1.0000000000000e+00 -640 610 -1.0000000000000e+00 -641 610 -1.0000000000000e+00 -611 611 8.0000000000000e+00 -612 611 -1.0000000000000e+00 -640 611 -1.0000000000000e+00 -641 611 -1.0000000000000e+00 -642 611 -1.0000000000000e+00 -612 612 8.0000000000000e+00 -613 612 -1.0000000000000e+00 -641 612 -1.0000000000000e+00 -642 612 -1.0000000000000e+00 -643 612 -1.0000000000000e+00 -613 613 8.0000000000000e+00 -614 613 -1.0000000000000e+00 -642 613 -1.0000000000000e+00 -643 613 -1.0000000000000e+00 -644 613 -1.0000000000000e+00 -614 614 8.0000000000000e+00 -615 614 -1.0000000000000e+00 -643 614 -1.0000000000000e+00 -644 614 -1.0000000000000e+00 -645 614 -1.0000000000000e+00 -615 615 8.0000000000000e+00 -616 615 -1.0000000000000e+00 -644 615 -1.0000000000000e+00 -645 615 -1.0000000000000e+00 -646 615 -1.0000000000000e+00 -616 616 8.0000000000000e+00 -617 616 -1.0000000000000e+00 -645 616 -1.0000000000000e+00 -646 616 -1.0000000000000e+00 -647 616 -1.0000000000000e+00 -617 617 8.0000000000000e+00 -618 617 -1.0000000000000e+00 -646 617 -1.0000000000000e+00 -647 617 -1.0000000000000e+00 -648 617 -1.0000000000000e+00 -618 618 8.0000000000000e+00 -619 618 -1.0000000000000e+00 -647 618 -1.0000000000000e+00 -648 618 -1.0000000000000e+00 -649 618 -1.0000000000000e+00 -619 619 8.0000000000000e+00 -620 619 -1.0000000000000e+00 -648 619 -1.0000000000000e+00 -649 619 -1.0000000000000e+00 -650 619 -1.0000000000000e+00 -620 620 8.0000000000000e+00 -621 620 -1.0000000000000e+00 -649 620 -1.0000000000000e+00 -650 620 -1.0000000000000e+00 -651 620 -1.0000000000000e+00 -621 621 8.0000000000000e+00 -622 621 -1.0000000000000e+00 -650 621 -1.0000000000000e+00 -651 621 -1.0000000000000e+00 -652 621 -1.0000000000000e+00 -622 622 8.0000000000000e+00 -623 622 -1.0000000000000e+00 -651 622 -1.0000000000000e+00 -652 622 -1.0000000000000e+00 -653 622 -1.0000000000000e+00 -623 623 8.0000000000000e+00 -624 623 -1.0000000000000e+00 -652 623 -1.0000000000000e+00 -653 623 -1.0000000000000e+00 -654 623 -1.0000000000000e+00 -624 624 8.0000000000000e+00 -625 624 -1.0000000000000e+00 -653 624 -1.0000000000000e+00 -654 624 -1.0000000000000e+00 -655 624 -1.0000000000000e+00 -625 625 8.0000000000000e+00 -626 625 -1.0000000000000e+00 -654 625 -1.0000000000000e+00 -655 625 -1.0000000000000e+00 -656 625 -1.0000000000000e+00 -626 626 8.0000000000000e+00 -627 626 -1.0000000000000e+00 -655 626 -1.0000000000000e+00 -656 626 -1.0000000000000e+00 -657 626 -1.0000000000000e+00 -627 627 8.0000000000000e+00 -628 627 -1.0000000000000e+00 -656 627 -1.0000000000000e+00 -657 627 -1.0000000000000e+00 -658 627 -1.0000000000000e+00 -628 628 8.0000000000000e+00 -629 628 -1.0000000000000e+00 -657 628 -1.0000000000000e+00 -658 628 -1.0000000000000e+00 -659 628 -1.0000000000000e+00 -629 629 8.0000000000000e+00 -630 629 -1.0000000000000e+00 -658 629 -1.0000000000000e+00 -659 629 -1.0000000000000e+00 -660 629 -1.0000000000000e+00 -630 630 8.0000000000000e+00 -659 630 -1.0000000000000e+00 -660 630 -1.0000000000000e+00 -631 631 8.0000000000000e+00 -632 631 -1.0000000000000e+00 -661 631 -1.0000000000000e+00 -662 631 -1.0000000000000e+00 -632 632 8.0000000000000e+00 -633 632 -1.0000000000000e+00 -661 632 -1.0000000000000e+00 -662 632 -1.0000000000000e+00 -663 632 -1.0000000000000e+00 -633 633 8.0000000000000e+00 -634 633 -1.0000000000000e+00 -662 633 -1.0000000000000e+00 -663 633 -1.0000000000000e+00 -664 633 -1.0000000000000e+00 -634 634 8.0000000000000e+00 -635 634 -1.0000000000000e+00 -663 634 -1.0000000000000e+00 -664 634 -1.0000000000000e+00 -665 634 -1.0000000000000e+00 -635 635 8.0000000000000e+00 -636 635 -1.0000000000000e+00 -664 635 -1.0000000000000e+00 -665 635 -1.0000000000000e+00 -666 635 -1.0000000000000e+00 -636 636 8.0000000000000e+00 -637 636 -1.0000000000000e+00 -665 636 -1.0000000000000e+00 -666 636 -1.0000000000000e+00 -667 636 -1.0000000000000e+00 -637 637 8.0000000000000e+00 -638 637 -1.0000000000000e+00 -666 637 -1.0000000000000e+00 -667 637 -1.0000000000000e+00 -668 637 -1.0000000000000e+00 -638 638 8.0000000000000e+00 -639 638 -1.0000000000000e+00 -667 638 -1.0000000000000e+00 -668 638 -1.0000000000000e+00 -669 638 -1.0000000000000e+00 -639 639 8.0000000000000e+00 -640 639 -1.0000000000000e+00 -668 639 -1.0000000000000e+00 -669 639 -1.0000000000000e+00 -670 639 -1.0000000000000e+00 -640 640 8.0000000000000e+00 -641 640 -1.0000000000000e+00 -669 640 -1.0000000000000e+00 -670 640 -1.0000000000000e+00 -671 640 -1.0000000000000e+00 -641 641 8.0000000000000e+00 -642 641 -1.0000000000000e+00 -670 641 -1.0000000000000e+00 -671 641 -1.0000000000000e+00 -672 641 -1.0000000000000e+00 -642 642 8.0000000000000e+00 -643 642 -1.0000000000000e+00 -671 642 -1.0000000000000e+00 -672 642 -1.0000000000000e+00 -673 642 -1.0000000000000e+00 -643 643 8.0000000000000e+00 -644 643 -1.0000000000000e+00 -672 643 -1.0000000000000e+00 -673 643 -1.0000000000000e+00 -674 643 -1.0000000000000e+00 -644 644 8.0000000000000e+00 -645 644 -1.0000000000000e+00 -673 644 -1.0000000000000e+00 -674 644 -1.0000000000000e+00 -675 644 -1.0000000000000e+00 -645 645 8.0000000000000e+00 -646 645 -1.0000000000000e+00 -674 645 -1.0000000000000e+00 -675 645 -1.0000000000000e+00 -676 645 -1.0000000000000e+00 -646 646 8.0000000000000e+00 -647 646 -1.0000000000000e+00 -675 646 -1.0000000000000e+00 -676 646 -1.0000000000000e+00 -677 646 -1.0000000000000e+00 -647 647 8.0000000000000e+00 -648 647 -1.0000000000000e+00 -676 647 -1.0000000000000e+00 -677 647 -1.0000000000000e+00 -678 647 -1.0000000000000e+00 -648 648 8.0000000000000e+00 -649 648 -1.0000000000000e+00 -677 648 -1.0000000000000e+00 -678 648 -1.0000000000000e+00 -679 648 -1.0000000000000e+00 -649 649 8.0000000000000e+00 -650 649 -1.0000000000000e+00 -678 649 -1.0000000000000e+00 -679 649 -1.0000000000000e+00 -680 649 -1.0000000000000e+00 -650 650 8.0000000000000e+00 -651 650 -1.0000000000000e+00 -679 650 -1.0000000000000e+00 -680 650 -1.0000000000000e+00 -681 650 -1.0000000000000e+00 -651 651 8.0000000000000e+00 -652 651 -1.0000000000000e+00 -680 651 -1.0000000000000e+00 -681 651 -1.0000000000000e+00 -682 651 -1.0000000000000e+00 -652 652 8.0000000000000e+00 -653 652 -1.0000000000000e+00 -681 652 -1.0000000000000e+00 -682 652 -1.0000000000000e+00 -683 652 -1.0000000000000e+00 -653 653 8.0000000000000e+00 -654 653 -1.0000000000000e+00 -682 653 -1.0000000000000e+00 -683 653 -1.0000000000000e+00 -684 653 -1.0000000000000e+00 -654 654 8.0000000000000e+00 -655 654 -1.0000000000000e+00 -683 654 -1.0000000000000e+00 -684 654 -1.0000000000000e+00 -685 654 -1.0000000000000e+00 -655 655 8.0000000000000e+00 -656 655 -1.0000000000000e+00 -684 655 -1.0000000000000e+00 -685 655 -1.0000000000000e+00 -686 655 -1.0000000000000e+00 -656 656 8.0000000000000e+00 -657 656 -1.0000000000000e+00 -685 656 -1.0000000000000e+00 -686 656 -1.0000000000000e+00 -687 656 -1.0000000000000e+00 -657 657 8.0000000000000e+00 -658 657 -1.0000000000000e+00 -686 657 -1.0000000000000e+00 -687 657 -1.0000000000000e+00 -688 657 -1.0000000000000e+00 -658 658 8.0000000000000e+00 -659 658 -1.0000000000000e+00 -687 658 -1.0000000000000e+00 -688 658 -1.0000000000000e+00 -689 658 -1.0000000000000e+00 -659 659 8.0000000000000e+00 -660 659 -1.0000000000000e+00 -688 659 -1.0000000000000e+00 -689 659 -1.0000000000000e+00 -690 659 -1.0000000000000e+00 -660 660 8.0000000000000e+00 -689 660 -1.0000000000000e+00 -690 660 -1.0000000000000e+00 -661 661 8.0000000000000e+00 -662 661 -1.0000000000000e+00 -691 661 -1.0000000000000e+00 -692 661 -1.0000000000000e+00 -662 662 8.0000000000000e+00 -663 662 -1.0000000000000e+00 -691 662 -1.0000000000000e+00 -692 662 -1.0000000000000e+00 -693 662 -1.0000000000000e+00 -663 663 8.0000000000000e+00 -664 663 -1.0000000000000e+00 -692 663 -1.0000000000000e+00 -693 663 -1.0000000000000e+00 -694 663 -1.0000000000000e+00 -664 664 8.0000000000000e+00 -665 664 -1.0000000000000e+00 -693 664 -1.0000000000000e+00 -694 664 -1.0000000000000e+00 -695 664 -1.0000000000000e+00 -665 665 8.0000000000000e+00 -666 665 -1.0000000000000e+00 -694 665 -1.0000000000000e+00 -695 665 -1.0000000000000e+00 -696 665 -1.0000000000000e+00 -666 666 8.0000000000000e+00 -667 666 -1.0000000000000e+00 -695 666 -1.0000000000000e+00 -696 666 -1.0000000000000e+00 -697 666 -1.0000000000000e+00 -667 667 8.0000000000000e+00 -668 667 -1.0000000000000e+00 -696 667 -1.0000000000000e+00 -697 667 -1.0000000000000e+00 -698 667 -1.0000000000000e+00 -668 668 8.0000000000000e+00 -669 668 -1.0000000000000e+00 -697 668 -1.0000000000000e+00 -698 668 -1.0000000000000e+00 -699 668 -1.0000000000000e+00 -669 669 8.0000000000000e+00 -670 669 -1.0000000000000e+00 -698 669 -1.0000000000000e+00 -699 669 -1.0000000000000e+00 -700 669 -1.0000000000000e+00 -670 670 8.0000000000000e+00 -671 670 -1.0000000000000e+00 -699 670 -1.0000000000000e+00 -700 670 -1.0000000000000e+00 -701 670 -1.0000000000000e+00 -671 671 8.0000000000000e+00 -672 671 -1.0000000000000e+00 -700 671 -1.0000000000000e+00 -701 671 -1.0000000000000e+00 -702 671 -1.0000000000000e+00 -672 672 8.0000000000000e+00 -673 672 -1.0000000000000e+00 -701 672 -1.0000000000000e+00 -702 672 -1.0000000000000e+00 -703 672 -1.0000000000000e+00 -673 673 8.0000000000000e+00 -674 673 -1.0000000000000e+00 -702 673 -1.0000000000000e+00 -703 673 -1.0000000000000e+00 -704 673 -1.0000000000000e+00 -674 674 8.0000000000000e+00 -675 674 -1.0000000000000e+00 -703 674 -1.0000000000000e+00 -704 674 -1.0000000000000e+00 -705 674 -1.0000000000000e+00 -675 675 8.0000000000000e+00 -676 675 -1.0000000000000e+00 -704 675 -1.0000000000000e+00 -705 675 -1.0000000000000e+00 -706 675 -1.0000000000000e+00 -676 676 8.0000000000000e+00 -677 676 -1.0000000000000e+00 -705 676 -1.0000000000000e+00 -706 676 -1.0000000000000e+00 -707 676 -1.0000000000000e+00 -677 677 8.0000000000000e+00 -678 677 -1.0000000000000e+00 -706 677 -1.0000000000000e+00 -707 677 -1.0000000000000e+00 -708 677 -1.0000000000000e+00 -678 678 8.0000000000000e+00 -679 678 -1.0000000000000e+00 -707 678 -1.0000000000000e+00 -708 678 -1.0000000000000e+00 -709 678 -1.0000000000000e+00 -679 679 8.0000000000000e+00 -680 679 -1.0000000000000e+00 -708 679 -1.0000000000000e+00 -709 679 -1.0000000000000e+00 -710 679 -1.0000000000000e+00 -680 680 8.0000000000000e+00 -681 680 -1.0000000000000e+00 -709 680 -1.0000000000000e+00 -710 680 -1.0000000000000e+00 -711 680 -1.0000000000000e+00 -681 681 8.0000000000000e+00 -682 681 -1.0000000000000e+00 -710 681 -1.0000000000000e+00 -711 681 -1.0000000000000e+00 -712 681 -1.0000000000000e+00 -682 682 8.0000000000000e+00 -683 682 -1.0000000000000e+00 -711 682 -1.0000000000000e+00 -712 682 -1.0000000000000e+00 -713 682 -1.0000000000000e+00 -683 683 8.0000000000000e+00 -684 683 -1.0000000000000e+00 -712 683 -1.0000000000000e+00 -713 683 -1.0000000000000e+00 -714 683 -1.0000000000000e+00 -684 684 8.0000000000000e+00 -685 684 -1.0000000000000e+00 -713 684 -1.0000000000000e+00 -714 684 -1.0000000000000e+00 -715 684 -1.0000000000000e+00 -685 685 8.0000000000000e+00 -686 685 -1.0000000000000e+00 -714 685 -1.0000000000000e+00 -715 685 -1.0000000000000e+00 -716 685 -1.0000000000000e+00 -686 686 8.0000000000000e+00 -687 686 -1.0000000000000e+00 -715 686 -1.0000000000000e+00 -716 686 -1.0000000000000e+00 -717 686 -1.0000000000000e+00 -687 687 8.0000000000000e+00 -688 687 -1.0000000000000e+00 -716 687 -1.0000000000000e+00 -717 687 -1.0000000000000e+00 -718 687 -1.0000000000000e+00 -688 688 8.0000000000000e+00 -689 688 -1.0000000000000e+00 -717 688 -1.0000000000000e+00 -718 688 -1.0000000000000e+00 -719 688 -1.0000000000000e+00 -689 689 8.0000000000000e+00 -690 689 -1.0000000000000e+00 -718 689 -1.0000000000000e+00 -719 689 -1.0000000000000e+00 -720 689 -1.0000000000000e+00 -690 690 8.0000000000000e+00 -719 690 -1.0000000000000e+00 -720 690 -1.0000000000000e+00 -691 691 8.0000000000000e+00 -692 691 -1.0000000000000e+00 -721 691 -1.0000000000000e+00 -722 691 -1.0000000000000e+00 -692 692 8.0000000000000e+00 -693 692 -1.0000000000000e+00 -721 692 -1.0000000000000e+00 -722 692 -1.0000000000000e+00 -723 692 -1.0000000000000e+00 -693 693 8.0000000000000e+00 -694 693 -1.0000000000000e+00 -722 693 -1.0000000000000e+00 -723 693 -1.0000000000000e+00 -724 693 -1.0000000000000e+00 -694 694 8.0000000000000e+00 -695 694 -1.0000000000000e+00 -723 694 -1.0000000000000e+00 -724 694 -1.0000000000000e+00 -725 694 -1.0000000000000e+00 -695 695 8.0000000000000e+00 -696 695 -1.0000000000000e+00 -724 695 -1.0000000000000e+00 -725 695 -1.0000000000000e+00 -726 695 -1.0000000000000e+00 -696 696 8.0000000000000e+00 -697 696 -1.0000000000000e+00 -725 696 -1.0000000000000e+00 -726 696 -1.0000000000000e+00 -727 696 -1.0000000000000e+00 -697 697 8.0000000000000e+00 -698 697 -1.0000000000000e+00 -726 697 -1.0000000000000e+00 -727 697 -1.0000000000000e+00 -728 697 -1.0000000000000e+00 -698 698 8.0000000000000e+00 -699 698 -1.0000000000000e+00 -727 698 -1.0000000000000e+00 -728 698 -1.0000000000000e+00 -729 698 -1.0000000000000e+00 -699 699 8.0000000000000e+00 -700 699 -1.0000000000000e+00 -728 699 -1.0000000000000e+00 -729 699 -1.0000000000000e+00 -730 699 -1.0000000000000e+00 -700 700 8.0000000000000e+00 -701 700 -1.0000000000000e+00 -729 700 -1.0000000000000e+00 -730 700 -1.0000000000000e+00 -731 700 -1.0000000000000e+00 -701 701 8.0000000000000e+00 -702 701 -1.0000000000000e+00 -730 701 -1.0000000000000e+00 -731 701 -1.0000000000000e+00 -732 701 -1.0000000000000e+00 -702 702 8.0000000000000e+00 -703 702 -1.0000000000000e+00 -731 702 -1.0000000000000e+00 -732 702 -1.0000000000000e+00 -733 702 -1.0000000000000e+00 -703 703 8.0000000000000e+00 -704 703 -1.0000000000000e+00 -732 703 -1.0000000000000e+00 -733 703 -1.0000000000000e+00 -734 703 -1.0000000000000e+00 -704 704 8.0000000000000e+00 -705 704 -1.0000000000000e+00 -733 704 -1.0000000000000e+00 -734 704 -1.0000000000000e+00 -735 704 -1.0000000000000e+00 -705 705 8.0000000000000e+00 -706 705 -1.0000000000000e+00 -734 705 -1.0000000000000e+00 -735 705 -1.0000000000000e+00 -736 705 -1.0000000000000e+00 -706 706 8.0000000000000e+00 -707 706 -1.0000000000000e+00 -735 706 -1.0000000000000e+00 -736 706 -1.0000000000000e+00 -737 706 -1.0000000000000e+00 -707 707 8.0000000000000e+00 -708 707 -1.0000000000000e+00 -736 707 -1.0000000000000e+00 -737 707 -1.0000000000000e+00 -738 707 -1.0000000000000e+00 -708 708 8.0000000000000e+00 -709 708 -1.0000000000000e+00 -737 708 -1.0000000000000e+00 -738 708 -1.0000000000000e+00 -739 708 -1.0000000000000e+00 -709 709 8.0000000000000e+00 -710 709 -1.0000000000000e+00 -738 709 -1.0000000000000e+00 -739 709 -1.0000000000000e+00 -740 709 -1.0000000000000e+00 -710 710 8.0000000000000e+00 -711 710 -1.0000000000000e+00 -739 710 -1.0000000000000e+00 -740 710 -1.0000000000000e+00 -741 710 -1.0000000000000e+00 -711 711 8.0000000000000e+00 -712 711 -1.0000000000000e+00 -740 711 -1.0000000000000e+00 -741 711 -1.0000000000000e+00 -742 711 -1.0000000000000e+00 -712 712 8.0000000000000e+00 -713 712 -1.0000000000000e+00 -741 712 -1.0000000000000e+00 -742 712 -1.0000000000000e+00 -743 712 -1.0000000000000e+00 -713 713 8.0000000000000e+00 -714 713 -1.0000000000000e+00 -742 713 -1.0000000000000e+00 -743 713 -1.0000000000000e+00 -744 713 -1.0000000000000e+00 -714 714 8.0000000000000e+00 -715 714 -1.0000000000000e+00 -743 714 -1.0000000000000e+00 -744 714 -1.0000000000000e+00 -745 714 -1.0000000000000e+00 -715 715 8.0000000000000e+00 -716 715 -1.0000000000000e+00 -744 715 -1.0000000000000e+00 -745 715 -1.0000000000000e+00 -746 715 -1.0000000000000e+00 -716 716 8.0000000000000e+00 -717 716 -1.0000000000000e+00 -745 716 -1.0000000000000e+00 -746 716 -1.0000000000000e+00 -747 716 -1.0000000000000e+00 -717 717 8.0000000000000e+00 -718 717 -1.0000000000000e+00 -746 717 -1.0000000000000e+00 -747 717 -1.0000000000000e+00 -748 717 -1.0000000000000e+00 -718 718 8.0000000000000e+00 -719 718 -1.0000000000000e+00 -747 718 -1.0000000000000e+00 -748 718 -1.0000000000000e+00 -749 718 -1.0000000000000e+00 -719 719 8.0000000000000e+00 -720 719 -1.0000000000000e+00 -748 719 -1.0000000000000e+00 -749 719 -1.0000000000000e+00 -750 719 -1.0000000000000e+00 -720 720 8.0000000000000e+00 -749 720 -1.0000000000000e+00 -750 720 -1.0000000000000e+00 -721 721 8.0000000000000e+00 -722 721 -1.0000000000000e+00 -751 721 -1.0000000000000e+00 -752 721 -1.0000000000000e+00 -722 722 8.0000000000000e+00 -723 722 -1.0000000000000e+00 -751 722 -1.0000000000000e+00 -752 722 -1.0000000000000e+00 -753 722 -1.0000000000000e+00 -723 723 8.0000000000000e+00 -724 723 -1.0000000000000e+00 -752 723 -1.0000000000000e+00 -753 723 -1.0000000000000e+00 -754 723 -1.0000000000000e+00 -724 724 8.0000000000000e+00 -725 724 -1.0000000000000e+00 -753 724 -1.0000000000000e+00 -754 724 -1.0000000000000e+00 -755 724 -1.0000000000000e+00 -725 725 8.0000000000000e+00 -726 725 -1.0000000000000e+00 -754 725 -1.0000000000000e+00 -755 725 -1.0000000000000e+00 -756 725 -1.0000000000000e+00 -726 726 8.0000000000000e+00 -727 726 -1.0000000000000e+00 -755 726 -1.0000000000000e+00 -756 726 -1.0000000000000e+00 -757 726 -1.0000000000000e+00 -727 727 8.0000000000000e+00 -728 727 -1.0000000000000e+00 -756 727 -1.0000000000000e+00 -757 727 -1.0000000000000e+00 -758 727 -1.0000000000000e+00 -728 728 8.0000000000000e+00 -729 728 -1.0000000000000e+00 -757 728 -1.0000000000000e+00 -758 728 -1.0000000000000e+00 -759 728 -1.0000000000000e+00 -729 729 8.0000000000000e+00 -730 729 -1.0000000000000e+00 -758 729 -1.0000000000000e+00 -759 729 -1.0000000000000e+00 -760 729 -1.0000000000000e+00 -730 730 8.0000000000000e+00 -731 730 -1.0000000000000e+00 -759 730 -1.0000000000000e+00 -760 730 -1.0000000000000e+00 -761 730 -1.0000000000000e+00 -731 731 8.0000000000000e+00 -732 731 -1.0000000000000e+00 -760 731 -1.0000000000000e+00 -761 731 -1.0000000000000e+00 -762 731 -1.0000000000000e+00 -732 732 8.0000000000000e+00 -733 732 -1.0000000000000e+00 -761 732 -1.0000000000000e+00 -762 732 -1.0000000000000e+00 -763 732 -1.0000000000000e+00 -733 733 8.0000000000000e+00 -734 733 -1.0000000000000e+00 -762 733 -1.0000000000000e+00 -763 733 -1.0000000000000e+00 -764 733 -1.0000000000000e+00 -734 734 8.0000000000000e+00 -735 734 -1.0000000000000e+00 -763 734 -1.0000000000000e+00 -764 734 -1.0000000000000e+00 -765 734 -1.0000000000000e+00 -735 735 8.0000000000000e+00 -736 735 -1.0000000000000e+00 -764 735 -1.0000000000000e+00 -765 735 -1.0000000000000e+00 -766 735 -1.0000000000000e+00 -736 736 8.0000000000000e+00 -737 736 -1.0000000000000e+00 -765 736 -1.0000000000000e+00 -766 736 -1.0000000000000e+00 -767 736 -1.0000000000000e+00 -737 737 8.0000000000000e+00 -738 737 -1.0000000000000e+00 -766 737 -1.0000000000000e+00 -767 737 -1.0000000000000e+00 -768 737 -1.0000000000000e+00 -738 738 8.0000000000000e+00 -739 738 -1.0000000000000e+00 -767 738 -1.0000000000000e+00 -768 738 -1.0000000000000e+00 -769 738 -1.0000000000000e+00 -739 739 8.0000000000000e+00 -740 739 -1.0000000000000e+00 -768 739 -1.0000000000000e+00 -769 739 -1.0000000000000e+00 -770 739 -1.0000000000000e+00 -740 740 8.0000000000000e+00 -741 740 -1.0000000000000e+00 -769 740 -1.0000000000000e+00 -770 740 -1.0000000000000e+00 -771 740 -1.0000000000000e+00 -741 741 8.0000000000000e+00 -742 741 -1.0000000000000e+00 -770 741 -1.0000000000000e+00 -771 741 -1.0000000000000e+00 -772 741 -1.0000000000000e+00 -742 742 8.0000000000000e+00 -743 742 -1.0000000000000e+00 -771 742 -1.0000000000000e+00 -772 742 -1.0000000000000e+00 -773 742 -1.0000000000000e+00 -743 743 8.0000000000000e+00 -744 743 -1.0000000000000e+00 -772 743 -1.0000000000000e+00 -773 743 -1.0000000000000e+00 -774 743 -1.0000000000000e+00 -744 744 8.0000000000000e+00 -745 744 -1.0000000000000e+00 -773 744 -1.0000000000000e+00 -774 744 -1.0000000000000e+00 -775 744 -1.0000000000000e+00 -745 745 8.0000000000000e+00 -746 745 -1.0000000000000e+00 -774 745 -1.0000000000000e+00 -775 745 -1.0000000000000e+00 -776 745 -1.0000000000000e+00 -746 746 8.0000000000000e+00 -747 746 -1.0000000000000e+00 -775 746 -1.0000000000000e+00 -776 746 -1.0000000000000e+00 -777 746 -1.0000000000000e+00 -747 747 8.0000000000000e+00 -748 747 -1.0000000000000e+00 -776 747 -1.0000000000000e+00 -777 747 -1.0000000000000e+00 -778 747 -1.0000000000000e+00 -748 748 8.0000000000000e+00 -749 748 -1.0000000000000e+00 -777 748 -1.0000000000000e+00 -778 748 -1.0000000000000e+00 -779 748 -1.0000000000000e+00 -749 749 8.0000000000000e+00 -750 749 -1.0000000000000e+00 -778 749 -1.0000000000000e+00 -779 749 -1.0000000000000e+00 -780 749 -1.0000000000000e+00 -750 750 8.0000000000000e+00 -779 750 -1.0000000000000e+00 -780 750 -1.0000000000000e+00 -751 751 8.0000000000000e+00 -752 751 -1.0000000000000e+00 -781 751 -1.0000000000000e+00 -782 751 -1.0000000000000e+00 -752 752 8.0000000000000e+00 -753 752 -1.0000000000000e+00 -781 752 -1.0000000000000e+00 -782 752 -1.0000000000000e+00 -783 752 -1.0000000000000e+00 -753 753 8.0000000000000e+00 -754 753 -1.0000000000000e+00 -782 753 -1.0000000000000e+00 -783 753 -1.0000000000000e+00 -784 753 -1.0000000000000e+00 -754 754 8.0000000000000e+00 -755 754 -1.0000000000000e+00 -783 754 -1.0000000000000e+00 -784 754 -1.0000000000000e+00 -785 754 -1.0000000000000e+00 -755 755 8.0000000000000e+00 -756 755 -1.0000000000000e+00 -784 755 -1.0000000000000e+00 -785 755 -1.0000000000000e+00 -786 755 -1.0000000000000e+00 -756 756 8.0000000000000e+00 -757 756 -1.0000000000000e+00 -785 756 -1.0000000000000e+00 -786 756 -1.0000000000000e+00 -787 756 -1.0000000000000e+00 -757 757 8.0000000000000e+00 -758 757 -1.0000000000000e+00 -786 757 -1.0000000000000e+00 -787 757 -1.0000000000000e+00 -788 757 -1.0000000000000e+00 -758 758 8.0000000000000e+00 -759 758 -1.0000000000000e+00 -787 758 -1.0000000000000e+00 -788 758 -1.0000000000000e+00 -789 758 -1.0000000000000e+00 -759 759 8.0000000000000e+00 -760 759 -1.0000000000000e+00 -788 759 -1.0000000000000e+00 -789 759 -1.0000000000000e+00 -790 759 -1.0000000000000e+00 -760 760 8.0000000000000e+00 -761 760 -1.0000000000000e+00 -789 760 -1.0000000000000e+00 -790 760 -1.0000000000000e+00 -791 760 -1.0000000000000e+00 -761 761 8.0000000000000e+00 -762 761 -1.0000000000000e+00 -790 761 -1.0000000000000e+00 -791 761 -1.0000000000000e+00 -792 761 -1.0000000000000e+00 -762 762 8.0000000000000e+00 -763 762 -1.0000000000000e+00 -791 762 -1.0000000000000e+00 -792 762 -1.0000000000000e+00 -793 762 -1.0000000000000e+00 -763 763 8.0000000000000e+00 -764 763 -1.0000000000000e+00 -792 763 -1.0000000000000e+00 -793 763 -1.0000000000000e+00 -794 763 -1.0000000000000e+00 -764 764 8.0000000000000e+00 -765 764 -1.0000000000000e+00 -793 764 -1.0000000000000e+00 -794 764 -1.0000000000000e+00 -795 764 -1.0000000000000e+00 -765 765 8.0000000000000e+00 -766 765 -1.0000000000000e+00 -794 765 -1.0000000000000e+00 -795 765 -1.0000000000000e+00 -796 765 -1.0000000000000e+00 -766 766 8.0000000000000e+00 -767 766 -1.0000000000000e+00 -795 766 -1.0000000000000e+00 -796 766 -1.0000000000000e+00 -797 766 -1.0000000000000e+00 -767 767 8.0000000000000e+00 -768 767 -1.0000000000000e+00 -796 767 -1.0000000000000e+00 -797 767 -1.0000000000000e+00 -798 767 -1.0000000000000e+00 -768 768 8.0000000000000e+00 -769 768 -1.0000000000000e+00 -797 768 -1.0000000000000e+00 -798 768 -1.0000000000000e+00 -799 768 -1.0000000000000e+00 -769 769 8.0000000000000e+00 -770 769 -1.0000000000000e+00 -798 769 -1.0000000000000e+00 -799 769 -1.0000000000000e+00 -800 769 -1.0000000000000e+00 -770 770 8.0000000000000e+00 -771 770 -1.0000000000000e+00 -799 770 -1.0000000000000e+00 -800 770 -1.0000000000000e+00 -801 770 -1.0000000000000e+00 -771 771 8.0000000000000e+00 -772 771 -1.0000000000000e+00 -800 771 -1.0000000000000e+00 -801 771 -1.0000000000000e+00 -802 771 -1.0000000000000e+00 -772 772 8.0000000000000e+00 -773 772 -1.0000000000000e+00 -801 772 -1.0000000000000e+00 -802 772 -1.0000000000000e+00 -803 772 -1.0000000000000e+00 -773 773 8.0000000000000e+00 -774 773 -1.0000000000000e+00 -802 773 -1.0000000000000e+00 -803 773 -1.0000000000000e+00 -804 773 -1.0000000000000e+00 -774 774 8.0000000000000e+00 -775 774 -1.0000000000000e+00 -803 774 -1.0000000000000e+00 -804 774 -1.0000000000000e+00 -805 774 -1.0000000000000e+00 -775 775 8.0000000000000e+00 -776 775 -1.0000000000000e+00 -804 775 -1.0000000000000e+00 -805 775 -1.0000000000000e+00 -806 775 -1.0000000000000e+00 -776 776 8.0000000000000e+00 -777 776 -1.0000000000000e+00 -805 776 -1.0000000000000e+00 -806 776 -1.0000000000000e+00 -807 776 -1.0000000000000e+00 -777 777 8.0000000000000e+00 -778 777 -1.0000000000000e+00 -806 777 -1.0000000000000e+00 -807 777 -1.0000000000000e+00 -808 777 -1.0000000000000e+00 -778 778 8.0000000000000e+00 -779 778 -1.0000000000000e+00 -807 778 -1.0000000000000e+00 -808 778 -1.0000000000000e+00 -809 778 -1.0000000000000e+00 -779 779 8.0000000000000e+00 -780 779 -1.0000000000000e+00 -808 779 -1.0000000000000e+00 -809 779 -1.0000000000000e+00 -810 779 -1.0000000000000e+00 -780 780 8.0000000000000e+00 -809 780 -1.0000000000000e+00 -810 780 -1.0000000000000e+00 -781 781 8.0000000000000e+00 -782 781 -1.0000000000000e+00 -811 781 -1.0000000000000e+00 -812 781 -1.0000000000000e+00 -782 782 8.0000000000000e+00 -783 782 -1.0000000000000e+00 -811 782 -1.0000000000000e+00 -812 782 -1.0000000000000e+00 -813 782 -1.0000000000000e+00 -783 783 8.0000000000000e+00 -784 783 -1.0000000000000e+00 -812 783 -1.0000000000000e+00 -813 783 -1.0000000000000e+00 -814 783 -1.0000000000000e+00 -784 784 8.0000000000000e+00 -785 784 -1.0000000000000e+00 -813 784 -1.0000000000000e+00 -814 784 -1.0000000000000e+00 -815 784 -1.0000000000000e+00 -785 785 8.0000000000000e+00 -786 785 -1.0000000000000e+00 -814 785 -1.0000000000000e+00 -815 785 -1.0000000000000e+00 -816 785 -1.0000000000000e+00 -786 786 8.0000000000000e+00 -787 786 -1.0000000000000e+00 -815 786 -1.0000000000000e+00 -816 786 -1.0000000000000e+00 -817 786 -1.0000000000000e+00 -787 787 8.0000000000000e+00 -788 787 -1.0000000000000e+00 -816 787 -1.0000000000000e+00 -817 787 -1.0000000000000e+00 -818 787 -1.0000000000000e+00 -788 788 8.0000000000000e+00 -789 788 -1.0000000000000e+00 -817 788 -1.0000000000000e+00 -818 788 -1.0000000000000e+00 -819 788 -1.0000000000000e+00 -789 789 8.0000000000000e+00 -790 789 -1.0000000000000e+00 -818 789 -1.0000000000000e+00 -819 789 -1.0000000000000e+00 -820 789 -1.0000000000000e+00 -790 790 8.0000000000000e+00 -791 790 -1.0000000000000e+00 -819 790 -1.0000000000000e+00 -820 790 -1.0000000000000e+00 -821 790 -1.0000000000000e+00 -791 791 8.0000000000000e+00 -792 791 -1.0000000000000e+00 -820 791 -1.0000000000000e+00 -821 791 -1.0000000000000e+00 -822 791 -1.0000000000000e+00 -792 792 8.0000000000000e+00 -793 792 -1.0000000000000e+00 -821 792 -1.0000000000000e+00 -822 792 -1.0000000000000e+00 -823 792 -1.0000000000000e+00 -793 793 8.0000000000000e+00 -794 793 -1.0000000000000e+00 -822 793 -1.0000000000000e+00 -823 793 -1.0000000000000e+00 -824 793 -1.0000000000000e+00 -794 794 8.0000000000000e+00 -795 794 -1.0000000000000e+00 -823 794 -1.0000000000000e+00 -824 794 -1.0000000000000e+00 -825 794 -1.0000000000000e+00 -795 795 8.0000000000000e+00 -796 795 -1.0000000000000e+00 -824 795 -1.0000000000000e+00 -825 795 -1.0000000000000e+00 -826 795 -1.0000000000000e+00 -796 796 8.0000000000000e+00 -797 796 -1.0000000000000e+00 -825 796 -1.0000000000000e+00 -826 796 -1.0000000000000e+00 -827 796 -1.0000000000000e+00 -797 797 8.0000000000000e+00 -798 797 -1.0000000000000e+00 -826 797 -1.0000000000000e+00 -827 797 -1.0000000000000e+00 -828 797 -1.0000000000000e+00 -798 798 8.0000000000000e+00 -799 798 -1.0000000000000e+00 -827 798 -1.0000000000000e+00 -828 798 -1.0000000000000e+00 -829 798 -1.0000000000000e+00 -799 799 8.0000000000000e+00 -800 799 -1.0000000000000e+00 -828 799 -1.0000000000000e+00 -829 799 -1.0000000000000e+00 -830 799 -1.0000000000000e+00 -800 800 8.0000000000000e+00 -801 800 -1.0000000000000e+00 -829 800 -1.0000000000000e+00 -830 800 -1.0000000000000e+00 -831 800 -1.0000000000000e+00 -801 801 8.0000000000000e+00 -802 801 -1.0000000000000e+00 -830 801 -1.0000000000000e+00 -831 801 -1.0000000000000e+00 -832 801 -1.0000000000000e+00 -802 802 8.0000000000000e+00 -803 802 -1.0000000000000e+00 -831 802 -1.0000000000000e+00 -832 802 -1.0000000000000e+00 -833 802 -1.0000000000000e+00 -803 803 8.0000000000000e+00 -804 803 -1.0000000000000e+00 -832 803 -1.0000000000000e+00 -833 803 -1.0000000000000e+00 -834 803 -1.0000000000000e+00 -804 804 8.0000000000000e+00 -805 804 -1.0000000000000e+00 -833 804 -1.0000000000000e+00 -834 804 -1.0000000000000e+00 -835 804 -1.0000000000000e+00 -805 805 8.0000000000000e+00 -806 805 -1.0000000000000e+00 -834 805 -1.0000000000000e+00 -835 805 -1.0000000000000e+00 -836 805 -1.0000000000000e+00 -806 806 8.0000000000000e+00 -807 806 -1.0000000000000e+00 -835 806 -1.0000000000000e+00 -836 806 -1.0000000000000e+00 -837 806 -1.0000000000000e+00 -807 807 8.0000000000000e+00 -808 807 -1.0000000000000e+00 -836 807 -1.0000000000000e+00 -837 807 -1.0000000000000e+00 -838 807 -1.0000000000000e+00 -808 808 8.0000000000000e+00 -809 808 -1.0000000000000e+00 -837 808 -1.0000000000000e+00 -838 808 -1.0000000000000e+00 -839 808 -1.0000000000000e+00 -809 809 8.0000000000000e+00 -810 809 -1.0000000000000e+00 -838 809 -1.0000000000000e+00 -839 809 -1.0000000000000e+00 -840 809 -1.0000000000000e+00 -810 810 8.0000000000000e+00 -839 810 -1.0000000000000e+00 -840 810 -1.0000000000000e+00 -811 811 8.0000000000000e+00 -812 811 -1.0000000000000e+00 -841 811 -1.0000000000000e+00 -842 811 -1.0000000000000e+00 -812 812 8.0000000000000e+00 -813 812 -1.0000000000000e+00 -841 812 -1.0000000000000e+00 -842 812 -1.0000000000000e+00 -843 812 -1.0000000000000e+00 -813 813 8.0000000000000e+00 -814 813 -1.0000000000000e+00 -842 813 -1.0000000000000e+00 -843 813 -1.0000000000000e+00 -844 813 -1.0000000000000e+00 -814 814 8.0000000000000e+00 -815 814 -1.0000000000000e+00 -843 814 -1.0000000000000e+00 -844 814 -1.0000000000000e+00 -845 814 -1.0000000000000e+00 -815 815 8.0000000000000e+00 -816 815 -1.0000000000000e+00 -844 815 -1.0000000000000e+00 -845 815 -1.0000000000000e+00 -846 815 -1.0000000000000e+00 -816 816 8.0000000000000e+00 -817 816 -1.0000000000000e+00 -845 816 -1.0000000000000e+00 -846 816 -1.0000000000000e+00 -847 816 -1.0000000000000e+00 -817 817 8.0000000000000e+00 -818 817 -1.0000000000000e+00 -846 817 -1.0000000000000e+00 -847 817 -1.0000000000000e+00 -848 817 -1.0000000000000e+00 -818 818 8.0000000000000e+00 -819 818 -1.0000000000000e+00 -847 818 -1.0000000000000e+00 -848 818 -1.0000000000000e+00 -849 818 -1.0000000000000e+00 -819 819 8.0000000000000e+00 -820 819 -1.0000000000000e+00 -848 819 -1.0000000000000e+00 -849 819 -1.0000000000000e+00 -850 819 -1.0000000000000e+00 -820 820 8.0000000000000e+00 -821 820 -1.0000000000000e+00 -849 820 -1.0000000000000e+00 -850 820 -1.0000000000000e+00 -851 820 -1.0000000000000e+00 -821 821 8.0000000000000e+00 -822 821 -1.0000000000000e+00 -850 821 -1.0000000000000e+00 -851 821 -1.0000000000000e+00 -852 821 -1.0000000000000e+00 -822 822 8.0000000000000e+00 -823 822 -1.0000000000000e+00 -851 822 -1.0000000000000e+00 -852 822 -1.0000000000000e+00 -853 822 -1.0000000000000e+00 -823 823 8.0000000000000e+00 -824 823 -1.0000000000000e+00 -852 823 -1.0000000000000e+00 -853 823 -1.0000000000000e+00 -854 823 -1.0000000000000e+00 -824 824 8.0000000000000e+00 -825 824 -1.0000000000000e+00 -853 824 -1.0000000000000e+00 -854 824 -1.0000000000000e+00 -855 824 -1.0000000000000e+00 -825 825 8.0000000000000e+00 -826 825 -1.0000000000000e+00 -854 825 -1.0000000000000e+00 -855 825 -1.0000000000000e+00 -856 825 -1.0000000000000e+00 -826 826 8.0000000000000e+00 -827 826 -1.0000000000000e+00 -855 826 -1.0000000000000e+00 -856 826 -1.0000000000000e+00 -857 826 -1.0000000000000e+00 -827 827 8.0000000000000e+00 -828 827 -1.0000000000000e+00 -856 827 -1.0000000000000e+00 -857 827 -1.0000000000000e+00 -858 827 -1.0000000000000e+00 -828 828 8.0000000000000e+00 -829 828 -1.0000000000000e+00 -857 828 -1.0000000000000e+00 -858 828 -1.0000000000000e+00 -859 828 -1.0000000000000e+00 -829 829 8.0000000000000e+00 -830 829 -1.0000000000000e+00 -858 829 -1.0000000000000e+00 -859 829 -1.0000000000000e+00 -860 829 -1.0000000000000e+00 -830 830 8.0000000000000e+00 -831 830 -1.0000000000000e+00 -859 830 -1.0000000000000e+00 -860 830 -1.0000000000000e+00 -861 830 -1.0000000000000e+00 -831 831 8.0000000000000e+00 -832 831 -1.0000000000000e+00 -860 831 -1.0000000000000e+00 -861 831 -1.0000000000000e+00 -862 831 -1.0000000000000e+00 -832 832 8.0000000000000e+00 -833 832 -1.0000000000000e+00 -861 832 -1.0000000000000e+00 -862 832 -1.0000000000000e+00 -863 832 -1.0000000000000e+00 -833 833 8.0000000000000e+00 -834 833 -1.0000000000000e+00 -862 833 -1.0000000000000e+00 -863 833 -1.0000000000000e+00 -864 833 -1.0000000000000e+00 -834 834 8.0000000000000e+00 -835 834 -1.0000000000000e+00 -863 834 -1.0000000000000e+00 -864 834 -1.0000000000000e+00 -865 834 -1.0000000000000e+00 -835 835 8.0000000000000e+00 -836 835 -1.0000000000000e+00 -864 835 -1.0000000000000e+00 -865 835 -1.0000000000000e+00 -866 835 -1.0000000000000e+00 -836 836 8.0000000000000e+00 -837 836 -1.0000000000000e+00 -865 836 -1.0000000000000e+00 -866 836 -1.0000000000000e+00 -867 836 -1.0000000000000e+00 -837 837 8.0000000000000e+00 -838 837 -1.0000000000000e+00 -866 837 -1.0000000000000e+00 -867 837 -1.0000000000000e+00 -868 837 -1.0000000000000e+00 -838 838 8.0000000000000e+00 -839 838 -1.0000000000000e+00 -867 838 -1.0000000000000e+00 -868 838 -1.0000000000000e+00 -869 838 -1.0000000000000e+00 -839 839 8.0000000000000e+00 -840 839 -1.0000000000000e+00 -868 839 -1.0000000000000e+00 -869 839 -1.0000000000000e+00 -870 839 -1.0000000000000e+00 -840 840 8.0000000000000e+00 -869 840 -1.0000000000000e+00 -870 840 -1.0000000000000e+00 -841 841 8.0000000000000e+00 -842 841 -1.0000000000000e+00 -871 841 -1.0000000000000e+00 -872 841 -1.0000000000000e+00 -842 842 8.0000000000000e+00 -843 842 -1.0000000000000e+00 -871 842 -1.0000000000000e+00 -872 842 -1.0000000000000e+00 -873 842 -1.0000000000000e+00 -843 843 8.0000000000000e+00 -844 843 -1.0000000000000e+00 -872 843 -1.0000000000000e+00 -873 843 -1.0000000000000e+00 -874 843 -1.0000000000000e+00 -844 844 8.0000000000000e+00 -845 844 -1.0000000000000e+00 -873 844 -1.0000000000000e+00 -874 844 -1.0000000000000e+00 -875 844 -1.0000000000000e+00 -845 845 8.0000000000000e+00 -846 845 -1.0000000000000e+00 -874 845 -1.0000000000000e+00 -875 845 -1.0000000000000e+00 -876 845 -1.0000000000000e+00 -846 846 8.0000000000000e+00 -847 846 -1.0000000000000e+00 -875 846 -1.0000000000000e+00 -876 846 -1.0000000000000e+00 -877 846 -1.0000000000000e+00 -847 847 8.0000000000000e+00 -848 847 -1.0000000000000e+00 -876 847 -1.0000000000000e+00 -877 847 -1.0000000000000e+00 -878 847 -1.0000000000000e+00 -848 848 8.0000000000000e+00 -849 848 -1.0000000000000e+00 -877 848 -1.0000000000000e+00 -878 848 -1.0000000000000e+00 -879 848 -1.0000000000000e+00 -849 849 8.0000000000000e+00 -850 849 -1.0000000000000e+00 -878 849 -1.0000000000000e+00 -879 849 -1.0000000000000e+00 -880 849 -1.0000000000000e+00 -850 850 8.0000000000000e+00 -851 850 -1.0000000000000e+00 -879 850 -1.0000000000000e+00 -880 850 -1.0000000000000e+00 -881 850 -1.0000000000000e+00 -851 851 8.0000000000000e+00 -852 851 -1.0000000000000e+00 -880 851 -1.0000000000000e+00 -881 851 -1.0000000000000e+00 -882 851 -1.0000000000000e+00 -852 852 8.0000000000000e+00 -853 852 -1.0000000000000e+00 -881 852 -1.0000000000000e+00 -882 852 -1.0000000000000e+00 -883 852 -1.0000000000000e+00 -853 853 8.0000000000000e+00 -854 853 -1.0000000000000e+00 -882 853 -1.0000000000000e+00 -883 853 -1.0000000000000e+00 -884 853 -1.0000000000000e+00 -854 854 8.0000000000000e+00 -855 854 -1.0000000000000e+00 -883 854 -1.0000000000000e+00 -884 854 -1.0000000000000e+00 -885 854 -1.0000000000000e+00 -855 855 8.0000000000000e+00 -856 855 -1.0000000000000e+00 -884 855 -1.0000000000000e+00 -885 855 -1.0000000000000e+00 -886 855 -1.0000000000000e+00 -856 856 8.0000000000000e+00 -857 856 -1.0000000000000e+00 -885 856 -1.0000000000000e+00 -886 856 -1.0000000000000e+00 -887 856 -1.0000000000000e+00 -857 857 8.0000000000000e+00 -858 857 -1.0000000000000e+00 -886 857 -1.0000000000000e+00 -887 857 -1.0000000000000e+00 -888 857 -1.0000000000000e+00 -858 858 8.0000000000000e+00 -859 858 -1.0000000000000e+00 -887 858 -1.0000000000000e+00 -888 858 -1.0000000000000e+00 -889 858 -1.0000000000000e+00 -859 859 8.0000000000000e+00 -860 859 -1.0000000000000e+00 -888 859 -1.0000000000000e+00 -889 859 -1.0000000000000e+00 -890 859 -1.0000000000000e+00 -860 860 8.0000000000000e+00 -861 860 -1.0000000000000e+00 -889 860 -1.0000000000000e+00 -890 860 -1.0000000000000e+00 -891 860 -1.0000000000000e+00 -861 861 8.0000000000000e+00 -862 861 -1.0000000000000e+00 -890 861 -1.0000000000000e+00 -891 861 -1.0000000000000e+00 -892 861 -1.0000000000000e+00 -862 862 8.0000000000000e+00 -863 862 -1.0000000000000e+00 -891 862 -1.0000000000000e+00 -892 862 -1.0000000000000e+00 -893 862 -1.0000000000000e+00 -863 863 8.0000000000000e+00 -864 863 -1.0000000000000e+00 -892 863 -1.0000000000000e+00 -893 863 -1.0000000000000e+00 -894 863 -1.0000000000000e+00 -864 864 8.0000000000000e+00 -865 864 -1.0000000000000e+00 -893 864 -1.0000000000000e+00 -894 864 -1.0000000000000e+00 -895 864 -1.0000000000000e+00 -865 865 8.0000000000000e+00 -866 865 -1.0000000000000e+00 -894 865 -1.0000000000000e+00 -895 865 -1.0000000000000e+00 -896 865 -1.0000000000000e+00 -866 866 8.0000000000000e+00 -867 866 -1.0000000000000e+00 -895 866 -1.0000000000000e+00 -896 866 -1.0000000000000e+00 -897 866 -1.0000000000000e+00 -867 867 8.0000000000000e+00 -868 867 -1.0000000000000e+00 -896 867 -1.0000000000000e+00 -897 867 -1.0000000000000e+00 -898 867 -1.0000000000000e+00 -868 868 8.0000000000000e+00 -869 868 -1.0000000000000e+00 -897 868 -1.0000000000000e+00 -898 868 -1.0000000000000e+00 -899 868 -1.0000000000000e+00 -869 869 8.0000000000000e+00 -870 869 -1.0000000000000e+00 -898 869 -1.0000000000000e+00 -899 869 -1.0000000000000e+00 -900 869 -1.0000000000000e+00 -870 870 8.0000000000000e+00 -899 870 -1.0000000000000e+00 -900 870 -1.0000000000000e+00 -871 871 8.0000000000000e+00 -872 871 -1.0000000000000e+00 -872 872 8.0000000000000e+00 -873 872 -1.0000000000000e+00 -873 873 8.0000000000000e+00 -874 873 -1.0000000000000e+00 -874 874 8.0000000000000e+00 -875 874 -1.0000000000000e+00 -875 875 8.0000000000000e+00 -876 875 -1.0000000000000e+00 -876 876 8.0000000000000e+00 -877 876 -1.0000000000000e+00 -877 877 8.0000000000000e+00 -878 877 -1.0000000000000e+00 -878 878 8.0000000000000e+00 -879 878 -1.0000000000000e+00 -879 879 8.0000000000000e+00 -880 879 -1.0000000000000e+00 -880 880 8.0000000000000e+00 -881 880 -1.0000000000000e+00 -881 881 8.0000000000000e+00 -882 881 -1.0000000000000e+00 -882 882 8.0000000000000e+00 -883 882 -1.0000000000000e+00 -883 883 8.0000000000000e+00 -884 883 -1.0000000000000e+00 -884 884 8.0000000000000e+00 -885 884 -1.0000000000000e+00 -885 885 8.0000000000000e+00 -886 885 -1.0000000000000e+00 -886 886 8.0000000000000e+00 -887 886 -1.0000000000000e+00 -887 887 8.0000000000000e+00 -888 887 -1.0000000000000e+00 -888 888 8.0000000000000e+00 -889 888 -1.0000000000000e+00 -889 889 8.0000000000000e+00 -890 889 -1.0000000000000e+00 -890 890 8.0000000000000e+00 -891 890 -1.0000000000000e+00 -891 891 8.0000000000000e+00 -892 891 -1.0000000000000e+00 -892 892 8.0000000000000e+00 -893 892 -1.0000000000000e+00 -893 893 8.0000000000000e+00 -894 893 -1.0000000000000e+00 -894 894 8.0000000000000e+00 -895 894 -1.0000000000000e+00 -895 895 8.0000000000000e+00 -896 895 -1.0000000000000e+00 -896 896 8.0000000000000e+00 -897 896 -1.0000000000000e+00 -897 897 8.0000000000000e+00 -898 897 -1.0000000000000e+00 -898 898 8.0000000000000e+00 -899 898 -1.0000000000000e+00 -899 899 8.0000000000000e+00 -900 899 -1.0000000000000e+00 -900 900 8.0000000000000e+00 - diff --git a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/lap3D_7pt_n20.mtx b/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/lap3D_7pt_n20.mtx deleted file mode 100644 index 29f4f69f..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/lap3D_7pt_n20.mtx +++ /dev/null @@ -1,30803 +0,0 @@ -%%MatrixMarket matrix coordinate real symmetric -% Generated 20-Nov-2014 -8000 8000 30800 -1 1 6 -2 1 -1 -21 1 -1 -401 1 -1 -2 2 6 -3 2 -1 -22 2 -1 -402 2 -1 -3 3 6 -4 3 -1 -23 3 -1 -403 3 -1 -4 4 6 -5 4 -1 -24 4 -1 -404 4 -1 -5 5 6 -6 5 -1 -25 5 -1 -405 5 -1 -6 6 6 -7 6 -1 -26 6 -1 -406 6 -1 -7 7 6 -8 7 -1 -27 7 -1 -407 7 -1 -8 8 6 -9 8 -1 -28 8 -1 -408 8 -1 -9 9 6 -10 9 -1 -29 9 -1 -409 9 -1 -10 10 6 -11 10 -1 -30 10 -1 -410 10 -1 -11 11 6 -12 11 -1 -31 11 -1 -411 11 -1 -12 12 6 -13 12 -1 -32 12 -1 -412 12 -1 -13 13 6 -14 13 -1 -33 13 -1 -413 13 -1 -14 14 6 -15 14 -1 -34 14 -1 -414 14 -1 -15 15 6 -16 15 -1 -35 15 -1 -415 15 -1 -16 16 6 -17 16 -1 -36 16 -1 -416 16 -1 -17 17 6 -18 17 -1 -37 17 -1 -417 17 -1 -18 18 6 -19 18 -1 -38 18 -1 -418 18 -1 -19 19 6 -20 19 -1 -39 19 -1 -419 19 -1 -20 20 6 -40 20 -1 -420 20 -1 -21 21 6 -22 21 -1 -41 21 -1 -421 21 -1 -22 22 6 -23 22 -1 -42 22 -1 -422 22 -1 -23 23 6 -24 23 -1 -43 23 -1 -423 23 -1 -24 24 6 -25 24 -1 -44 24 -1 -424 24 -1 -25 25 6 -26 25 -1 -45 25 -1 -425 25 -1 -26 26 6 -27 26 -1 -46 26 -1 -426 26 -1 -27 27 6 -28 27 -1 -47 27 -1 -427 27 -1 -28 28 6 -29 28 -1 -48 28 -1 -428 28 -1 -29 29 6 -30 29 -1 -49 29 -1 -429 29 -1 -30 30 6 -31 30 -1 -50 30 -1 -430 30 -1 -31 31 6 -32 31 -1 -51 31 -1 -431 31 -1 -32 32 6 -33 32 -1 -52 32 -1 -432 32 -1 -33 33 6 -34 33 -1 -53 33 -1 -433 33 -1 -34 34 6 -35 34 -1 -54 34 -1 -434 34 -1 -35 35 6 -36 35 -1 -55 35 -1 -435 35 -1 -36 36 6 -37 36 -1 -56 36 -1 -436 36 -1 -37 37 6 -38 37 -1 -57 37 -1 -437 37 -1 -38 38 6 -39 38 -1 -58 38 -1 -438 38 -1 -39 39 6 -40 39 -1 -59 39 -1 -439 39 -1 -40 40 6 -60 40 -1 -440 40 -1 -41 41 6 -42 41 -1 -61 41 -1 -441 41 -1 -42 42 6 -43 42 -1 -62 42 -1 -442 42 -1 -43 43 6 -44 43 -1 -63 43 -1 -443 43 -1 -44 44 6 -45 44 -1 -64 44 -1 -444 44 -1 -45 45 6 -46 45 -1 -65 45 -1 -445 45 -1 -46 46 6 -47 46 -1 -66 46 -1 -446 46 -1 -47 47 6 -48 47 -1 -67 47 -1 -447 47 -1 -48 48 6 -49 48 -1 -68 48 -1 -448 48 -1 -49 49 6 -50 49 -1 -69 49 -1 -449 49 -1 -50 50 6 -51 50 -1 -70 50 -1 -450 50 -1 -51 51 6 -52 51 -1 -71 51 -1 -451 51 -1 -52 52 6 -53 52 -1 -72 52 -1 -452 52 -1 -53 53 6 -54 53 -1 -73 53 -1 -453 53 -1 -54 54 6 -55 54 -1 -74 54 -1 -454 54 -1 -55 55 6 -56 55 -1 -75 55 -1 -455 55 -1 -56 56 6 -57 56 -1 -76 56 -1 -456 56 -1 -57 57 6 -58 57 -1 -77 57 -1 -457 57 -1 -58 58 6 -59 58 -1 -78 58 -1 -458 58 -1 -59 59 6 -60 59 -1 -79 59 -1 -459 59 -1 -60 60 6 -80 60 -1 -460 60 -1 -61 61 6 -62 61 -1 -81 61 -1 -461 61 -1 -62 62 6 -63 62 -1 -82 62 -1 -462 62 -1 -63 63 6 -64 63 -1 -83 63 -1 -463 63 -1 -64 64 6 -65 64 -1 -84 64 -1 -464 64 -1 -65 65 6 -66 65 -1 -85 65 -1 -465 65 -1 -66 66 6 -67 66 -1 -86 66 -1 -466 66 -1 -67 67 6 -68 67 -1 -87 67 -1 -467 67 -1 -68 68 6 -69 68 -1 -88 68 -1 -468 68 -1 -69 69 6 -70 69 -1 -89 69 -1 -469 69 -1 -70 70 6 -71 70 -1 -90 70 -1 -470 70 -1 -71 71 6 -72 71 -1 -91 71 -1 -471 71 -1 -72 72 6 -73 72 -1 -92 72 -1 -472 72 -1 -73 73 6 -74 73 -1 -93 73 -1 -473 73 -1 -74 74 6 -75 74 -1 -94 74 -1 -474 74 -1 -75 75 6 -76 75 -1 -95 75 -1 -475 75 -1 -76 76 6 -77 76 -1 -96 76 -1 -476 76 -1 -77 77 6 -78 77 -1 -97 77 -1 -477 77 -1 -78 78 6 -79 78 -1 -98 78 -1 -478 78 -1 -79 79 6 -80 79 -1 -99 79 -1 -479 79 -1 -80 80 6 -100 80 -1 -480 80 -1 -81 81 6 -82 81 -1 -101 81 -1 -481 81 -1 -82 82 6 -83 82 -1 -102 82 -1 -482 82 -1 -83 83 6 -84 83 -1 -103 83 -1 -483 83 -1 -84 84 6 -85 84 -1 -104 84 -1 -484 84 -1 -85 85 6 -86 85 -1 -105 85 -1 -485 85 -1 -86 86 6 -87 86 -1 -106 86 -1 -486 86 -1 -87 87 6 -88 87 -1 -107 87 -1 -487 87 -1 -88 88 6 -89 88 -1 -108 88 -1 -488 88 -1 -89 89 6 -90 89 -1 -109 89 -1 -489 89 -1 -90 90 6 -91 90 -1 -110 90 -1 -490 90 -1 -91 91 6 -92 91 -1 -111 91 -1 -491 91 -1 -92 92 6 -93 92 -1 -112 92 -1 -492 92 -1 -93 93 6 -94 93 -1 -113 93 -1 -493 93 -1 -94 94 6 -95 94 -1 -114 94 -1 -494 94 -1 -95 95 6 -96 95 -1 -115 95 -1 -495 95 -1 -96 96 6 -97 96 -1 -116 96 -1 -496 96 -1 -97 97 6 -98 97 -1 -117 97 -1 -497 97 -1 -98 98 6 -99 98 -1 -118 98 -1 -498 98 -1 -99 99 6 -100 99 -1 -119 99 -1 -499 99 -1 -100 100 6 -120 100 -1 -500 100 -1 -101 101 6 -102 101 -1 -121 101 -1 -501 101 -1 -102 102 6 -103 102 -1 -122 102 -1 -502 102 -1 -103 103 6 -104 103 -1 -123 103 -1 -503 103 -1 -104 104 6 -105 104 -1 -124 104 -1 -504 104 -1 -105 105 6 -106 105 -1 -125 105 -1 -505 105 -1 -106 106 6 -107 106 -1 -126 106 -1 -506 106 -1 -107 107 6 -108 107 -1 -127 107 -1 -507 107 -1 -108 108 6 -109 108 -1 -128 108 -1 -508 108 -1 -109 109 6 -110 109 -1 -129 109 -1 -509 109 -1 -110 110 6 -111 110 -1 -130 110 -1 -510 110 -1 -111 111 6 -112 111 -1 -131 111 -1 -511 111 -1 -112 112 6 -113 112 -1 -132 112 -1 -512 112 -1 -113 113 6 -114 113 -1 -133 113 -1 -513 113 -1 -114 114 6 -115 114 -1 -134 114 -1 -514 114 -1 -115 115 6 -116 115 -1 -135 115 -1 -515 115 -1 -116 116 6 -117 116 -1 -136 116 -1 -516 116 -1 -117 117 6 -118 117 -1 -137 117 -1 -517 117 -1 -118 118 6 -119 118 -1 -138 118 -1 -518 118 -1 -119 119 6 -120 119 -1 -139 119 -1 -519 119 -1 -120 120 6 -140 120 -1 -520 120 -1 -121 121 6 -122 121 -1 -141 121 -1 -521 121 -1 -122 122 6 -123 122 -1 -142 122 -1 -522 122 -1 -123 123 6 -124 123 -1 -143 123 -1 -523 123 -1 -124 124 6 -125 124 -1 -144 124 -1 -524 124 -1 -125 125 6 -126 125 -1 -145 125 -1 -525 125 -1 -126 126 6 -127 126 -1 -146 126 -1 -526 126 -1 -127 127 6 -128 127 -1 -147 127 -1 -527 127 -1 -128 128 6 -129 128 -1 -148 128 -1 -528 128 -1 -129 129 6 -130 129 -1 -149 129 -1 -529 129 -1 -130 130 6 -131 130 -1 -150 130 -1 -530 130 -1 -131 131 6 -132 131 -1 -151 131 -1 -531 131 -1 -132 132 6 -133 132 -1 -152 132 -1 -532 132 -1 -133 133 6 -134 133 -1 -153 133 -1 -533 133 -1 -134 134 6 -135 134 -1 -154 134 -1 -534 134 -1 -135 135 6 -136 135 -1 -155 135 -1 -535 135 -1 -136 136 6 -137 136 -1 -156 136 -1 -536 136 -1 -137 137 6 -138 137 -1 -157 137 -1 -537 137 -1 -138 138 6 -139 138 -1 -158 138 -1 -538 138 -1 -139 139 6 -140 139 -1 -159 139 -1 -539 139 -1 -140 140 6 -160 140 -1 -540 140 -1 -141 141 6 -142 141 -1 -161 141 -1 -541 141 -1 -142 142 6 -143 142 -1 -162 142 -1 -542 142 -1 -143 143 6 -144 143 -1 -163 143 -1 -543 143 -1 -144 144 6 -145 144 -1 -164 144 -1 -544 144 -1 -145 145 6 -146 145 -1 -165 145 -1 -545 145 -1 -146 146 6 -147 146 -1 -166 146 -1 -546 146 -1 -147 147 6 -148 147 -1 -167 147 -1 -547 147 -1 -148 148 6 -149 148 -1 -168 148 -1 -548 148 -1 -149 149 6 -150 149 -1 -169 149 -1 -549 149 -1 -150 150 6 -151 150 -1 -170 150 -1 -550 150 -1 -151 151 6 -152 151 -1 -171 151 -1 -551 151 -1 -152 152 6 -153 152 -1 -172 152 -1 -552 152 -1 -153 153 6 -154 153 -1 -173 153 -1 -553 153 -1 -154 154 6 -155 154 -1 -174 154 -1 -554 154 -1 -155 155 6 -156 155 -1 -175 155 -1 -555 155 -1 -156 156 6 -157 156 -1 -176 156 -1 -556 156 -1 -157 157 6 -158 157 -1 -177 157 -1 -557 157 -1 -158 158 6 -159 158 -1 -178 158 -1 -558 158 -1 -159 159 6 -160 159 -1 -179 159 -1 -559 159 -1 -160 160 6 -180 160 -1 -560 160 -1 -161 161 6 -162 161 -1 -181 161 -1 -561 161 -1 -162 162 6 -163 162 -1 -182 162 -1 -562 162 -1 -163 163 6 -164 163 -1 -183 163 -1 -563 163 -1 -164 164 6 -165 164 -1 -184 164 -1 -564 164 -1 -165 165 6 -166 165 -1 -185 165 -1 -565 165 -1 -166 166 6 -167 166 -1 -186 166 -1 -566 166 -1 -167 167 6 -168 167 -1 -187 167 -1 -567 167 -1 -168 168 6 -169 168 -1 -188 168 -1 -568 168 -1 -169 169 6 -170 169 -1 -189 169 -1 -569 169 -1 -170 170 6 -171 170 -1 -190 170 -1 -570 170 -1 -171 171 6 -172 171 -1 -191 171 -1 -571 171 -1 -172 172 6 -173 172 -1 -192 172 -1 -572 172 -1 -173 173 6 -174 173 -1 -193 173 -1 -573 173 -1 -174 174 6 -175 174 -1 -194 174 -1 -574 174 -1 -175 175 6 -176 175 -1 -195 175 -1 -575 175 -1 -176 176 6 -177 176 -1 -196 176 -1 -576 176 -1 -177 177 6 -178 177 -1 -197 177 -1 -577 177 -1 -178 178 6 -179 178 -1 -198 178 -1 -578 178 -1 -179 179 6 -180 179 -1 -199 179 -1 -579 179 -1 -180 180 6 -200 180 -1 -580 180 -1 -181 181 6 -182 181 -1 -201 181 -1 -581 181 -1 -182 182 6 -183 182 -1 -202 182 -1 -582 182 -1 -183 183 6 -184 183 -1 -203 183 -1 -583 183 -1 -184 184 6 -185 184 -1 -204 184 -1 -584 184 -1 -185 185 6 -186 185 -1 -205 185 -1 -585 185 -1 -186 186 6 -187 186 -1 -206 186 -1 -586 186 -1 -187 187 6 -188 187 -1 -207 187 -1 -587 187 -1 -188 188 6 -189 188 -1 -208 188 -1 -588 188 -1 -189 189 6 -190 189 -1 -209 189 -1 -589 189 -1 -190 190 6 -191 190 -1 -210 190 -1 -590 190 -1 -191 191 6 -192 191 -1 -211 191 -1 -591 191 -1 -192 192 6 -193 192 -1 -212 192 -1 -592 192 -1 -193 193 6 -194 193 -1 -213 193 -1 -593 193 -1 -194 194 6 -195 194 -1 -214 194 -1 -594 194 -1 -195 195 6 -196 195 -1 -215 195 -1 -595 195 -1 -196 196 6 -197 196 -1 -216 196 -1 -596 196 -1 -197 197 6 -198 197 -1 -217 197 -1 -597 197 -1 -198 198 6 -199 198 -1 -218 198 -1 -598 198 -1 -199 199 6 -200 199 -1 -219 199 -1 -599 199 -1 -200 200 6 -220 200 -1 -600 200 -1 -201 201 6 -202 201 -1 -221 201 -1 -601 201 -1 -202 202 6 -203 202 -1 -222 202 -1 -602 202 -1 -203 203 6 -204 203 -1 -223 203 -1 -603 203 -1 -204 204 6 -205 204 -1 -224 204 -1 -604 204 -1 -205 205 6 -206 205 -1 -225 205 -1 -605 205 -1 -206 206 6 -207 206 -1 -226 206 -1 -606 206 -1 -207 207 6 -208 207 -1 -227 207 -1 -607 207 -1 -208 208 6 -209 208 -1 -228 208 -1 -608 208 -1 -209 209 6 -210 209 -1 -229 209 -1 -609 209 -1 -210 210 6 -211 210 -1 -230 210 -1 -610 210 -1 -211 211 6 -212 211 -1 -231 211 -1 -611 211 -1 -212 212 6 -213 212 -1 -232 212 -1 -612 212 -1 -213 213 6 -214 213 -1 -233 213 -1 -613 213 -1 -214 214 6 -215 214 -1 -234 214 -1 -614 214 -1 -215 215 6 -216 215 -1 -235 215 -1 -615 215 -1 -216 216 6 -217 216 -1 -236 216 -1 -616 216 -1 -217 217 6 -218 217 -1 -237 217 -1 -617 217 -1 -218 218 6 -219 218 -1 -238 218 -1 -618 218 -1 -219 219 6 -220 219 -1 -239 219 -1 -619 219 -1 -220 220 6 -240 220 -1 -620 220 -1 -221 221 6 -222 221 -1 -241 221 -1 -621 221 -1 -222 222 6 -223 222 -1 -242 222 -1 -622 222 -1 -223 223 6 -224 223 -1 -243 223 -1 -623 223 -1 -224 224 6 -225 224 -1 -244 224 -1 -624 224 -1 -225 225 6 -226 225 -1 -245 225 -1 -625 225 -1 -226 226 6 -227 226 -1 -246 226 -1 -626 226 -1 -227 227 6 -228 227 -1 -247 227 -1 -627 227 -1 -228 228 6 -229 228 -1 -248 228 -1 -628 228 -1 -229 229 6 -230 229 -1 -249 229 -1 -629 229 -1 -230 230 6 -231 230 -1 -250 230 -1 -630 230 -1 -231 231 6 -232 231 -1 -251 231 -1 -631 231 -1 -232 232 6 -233 232 -1 -252 232 -1 -632 232 -1 -233 233 6 -234 233 -1 -253 233 -1 -633 233 -1 -234 234 6 -235 234 -1 -254 234 -1 -634 234 -1 -235 235 6 -236 235 -1 -255 235 -1 -635 235 -1 -236 236 6 -237 236 -1 -256 236 -1 -636 236 -1 -237 237 6 -238 237 -1 -257 237 -1 -637 237 -1 -238 238 6 -239 238 -1 -258 238 -1 -638 238 -1 -239 239 6 -240 239 -1 -259 239 -1 -639 239 -1 -240 240 6 -260 240 -1 -640 240 -1 -241 241 6 -242 241 -1 -261 241 -1 -641 241 -1 -242 242 6 -243 242 -1 -262 242 -1 -642 242 -1 -243 243 6 -244 243 -1 -263 243 -1 -643 243 -1 -244 244 6 -245 244 -1 -264 244 -1 -644 244 -1 -245 245 6 -246 245 -1 -265 245 -1 -645 245 -1 -246 246 6 -247 246 -1 -266 246 -1 -646 246 -1 -247 247 6 -248 247 -1 -267 247 -1 -647 247 -1 -248 248 6 -249 248 -1 -268 248 -1 -648 248 -1 -249 249 6 -250 249 -1 -269 249 -1 -649 249 -1 -250 250 6 -251 250 -1 -270 250 -1 -650 250 -1 -251 251 6 -252 251 -1 -271 251 -1 -651 251 -1 -252 252 6 -253 252 -1 -272 252 -1 -652 252 -1 -253 253 6 -254 253 -1 -273 253 -1 -653 253 -1 -254 254 6 -255 254 -1 -274 254 -1 -654 254 -1 -255 255 6 -256 255 -1 -275 255 -1 -655 255 -1 -256 256 6 -257 256 -1 -276 256 -1 -656 256 -1 -257 257 6 -258 257 -1 -277 257 -1 -657 257 -1 -258 258 6 -259 258 -1 -278 258 -1 -658 258 -1 -259 259 6 -260 259 -1 -279 259 -1 -659 259 -1 -260 260 6 -280 260 -1 -660 260 -1 -261 261 6 -262 261 -1 -281 261 -1 -661 261 -1 -262 262 6 -263 262 -1 -282 262 -1 -662 262 -1 -263 263 6 -264 263 -1 -283 263 -1 -663 263 -1 -264 264 6 -265 264 -1 -284 264 -1 -664 264 -1 -265 265 6 -266 265 -1 -285 265 -1 -665 265 -1 -266 266 6 -267 266 -1 -286 266 -1 -666 266 -1 -267 267 6 -268 267 -1 -287 267 -1 -667 267 -1 -268 268 6 -269 268 -1 -288 268 -1 -668 268 -1 -269 269 6 -270 269 -1 -289 269 -1 -669 269 -1 -270 270 6 -271 270 -1 -290 270 -1 -670 270 -1 -271 271 6 -272 271 -1 -291 271 -1 -671 271 -1 -272 272 6 -273 272 -1 -292 272 -1 -672 272 -1 -273 273 6 -274 273 -1 -293 273 -1 -673 273 -1 -274 274 6 -275 274 -1 -294 274 -1 -674 274 -1 -275 275 6 -276 275 -1 -295 275 -1 -675 275 -1 -276 276 6 -277 276 -1 -296 276 -1 -676 276 -1 -277 277 6 -278 277 -1 -297 277 -1 -677 277 -1 -278 278 6 -279 278 -1 -298 278 -1 -678 278 -1 -279 279 6 -280 279 -1 -299 279 -1 -679 279 -1 -280 280 6 -300 280 -1 -680 280 -1 -281 281 6 -282 281 -1 -301 281 -1 -681 281 -1 -282 282 6 -283 282 -1 -302 282 -1 -682 282 -1 -283 283 6 -284 283 -1 -303 283 -1 -683 283 -1 -284 284 6 -285 284 -1 -304 284 -1 -684 284 -1 -285 285 6 -286 285 -1 -305 285 -1 -685 285 -1 -286 286 6 -287 286 -1 -306 286 -1 -686 286 -1 -287 287 6 -288 287 -1 -307 287 -1 -687 287 -1 -288 288 6 -289 288 -1 -308 288 -1 -688 288 -1 -289 289 6 -290 289 -1 -309 289 -1 -689 289 -1 -290 290 6 -291 290 -1 -310 290 -1 -690 290 -1 -291 291 6 -292 291 -1 -311 291 -1 -691 291 -1 -292 292 6 -293 292 -1 -312 292 -1 -692 292 -1 -293 293 6 -294 293 -1 -313 293 -1 -693 293 -1 -294 294 6 -295 294 -1 -314 294 -1 -694 294 -1 -295 295 6 -296 295 -1 -315 295 -1 -695 295 -1 -296 296 6 -297 296 -1 -316 296 -1 -696 296 -1 -297 297 6 -298 297 -1 -317 297 -1 -697 297 -1 -298 298 6 -299 298 -1 -318 298 -1 -698 298 -1 -299 299 6 -300 299 -1 -319 299 -1 -699 299 -1 -300 300 6 -320 300 -1 -700 300 -1 -301 301 6 -302 301 -1 -321 301 -1 -701 301 -1 -302 302 6 -303 302 -1 -322 302 -1 -702 302 -1 -303 303 6 -304 303 -1 -323 303 -1 -703 303 -1 -304 304 6 -305 304 -1 -324 304 -1 -704 304 -1 -305 305 6 -306 305 -1 -325 305 -1 -705 305 -1 -306 306 6 -307 306 -1 -326 306 -1 -706 306 -1 -307 307 6 -308 307 -1 -327 307 -1 -707 307 -1 -308 308 6 -309 308 -1 -328 308 -1 -708 308 -1 -309 309 6 -310 309 -1 -329 309 -1 -709 309 -1 -310 310 6 -311 310 -1 -330 310 -1 -710 310 -1 -311 311 6 -312 311 -1 -331 311 -1 -711 311 -1 -312 312 6 -313 312 -1 -332 312 -1 -712 312 -1 -313 313 6 -314 313 -1 -333 313 -1 -713 313 -1 -314 314 6 -315 314 -1 -334 314 -1 -714 314 -1 -315 315 6 -316 315 -1 -335 315 -1 -715 315 -1 -316 316 6 -317 316 -1 -336 316 -1 -716 316 -1 -317 317 6 -318 317 -1 -337 317 -1 -717 317 -1 -318 318 6 -319 318 -1 -338 318 -1 -718 318 -1 -319 319 6 -320 319 -1 -339 319 -1 -719 319 -1 -320 320 6 -340 320 -1 -720 320 -1 -321 321 6 -322 321 -1 -341 321 -1 -721 321 -1 -322 322 6 -323 322 -1 -342 322 -1 -722 322 -1 -323 323 6 -324 323 -1 -343 323 -1 -723 323 -1 -324 324 6 -325 324 -1 -344 324 -1 -724 324 -1 -325 325 6 -326 325 -1 -345 325 -1 -725 325 -1 -326 326 6 -327 326 -1 -346 326 -1 -726 326 -1 -327 327 6 -328 327 -1 -347 327 -1 -727 327 -1 -328 328 6 -329 328 -1 -348 328 -1 -728 328 -1 -329 329 6 -330 329 -1 -349 329 -1 -729 329 -1 -330 330 6 -331 330 -1 -350 330 -1 -730 330 -1 -331 331 6 -332 331 -1 -351 331 -1 -731 331 -1 -332 332 6 -333 332 -1 -352 332 -1 -732 332 -1 -333 333 6 -334 333 -1 -353 333 -1 -733 333 -1 -334 334 6 -335 334 -1 -354 334 -1 -734 334 -1 -335 335 6 -336 335 -1 -355 335 -1 -735 335 -1 -336 336 6 -337 336 -1 -356 336 -1 -736 336 -1 -337 337 6 -338 337 -1 -357 337 -1 -737 337 -1 -338 338 6 -339 338 -1 -358 338 -1 -738 338 -1 -339 339 6 -340 339 -1 -359 339 -1 -739 339 -1 -340 340 6 -360 340 -1 -740 340 -1 -341 341 6 -342 341 -1 -361 341 -1 -741 341 -1 -342 342 6 -343 342 -1 -362 342 -1 -742 342 -1 -343 343 6 -344 343 -1 -363 343 -1 -743 343 -1 -344 344 6 -345 344 -1 -364 344 -1 -744 344 -1 -345 345 6 -346 345 -1 -365 345 -1 -745 345 -1 -346 346 6 -347 346 -1 -366 346 -1 -746 346 -1 -347 347 6 -348 347 -1 -367 347 -1 -747 347 -1 -348 348 6 -349 348 -1 -368 348 -1 -748 348 -1 -349 349 6 -350 349 -1 -369 349 -1 -749 349 -1 -350 350 6 -351 350 -1 -370 350 -1 -750 350 -1 -351 351 6 -352 351 -1 -371 351 -1 -751 351 -1 -352 352 6 -353 352 -1 -372 352 -1 -752 352 -1 -353 353 6 -354 353 -1 -373 353 -1 -753 353 -1 -354 354 6 -355 354 -1 -374 354 -1 -754 354 -1 -355 355 6 -356 355 -1 -375 355 -1 -755 355 -1 -356 356 6 -357 356 -1 -376 356 -1 -756 356 -1 -357 357 6 -358 357 -1 -377 357 -1 -757 357 -1 -358 358 6 -359 358 -1 -378 358 -1 -758 358 -1 -359 359 6 -360 359 -1 -379 359 -1 -759 359 -1 -360 360 6 -380 360 -1 -760 360 -1 -361 361 6 -362 361 -1 -381 361 -1 -761 361 -1 -362 362 6 -363 362 -1 -382 362 -1 -762 362 -1 -363 363 6 -364 363 -1 -383 363 -1 -763 363 -1 -364 364 6 -365 364 -1 -384 364 -1 -764 364 -1 -365 365 6 -366 365 -1 -385 365 -1 -765 365 -1 -366 366 6 -367 366 -1 -386 366 -1 -766 366 -1 -367 367 6 -368 367 -1 -387 367 -1 -767 367 -1 -368 368 6 -369 368 -1 -388 368 -1 -768 368 -1 -369 369 6 -370 369 -1 -389 369 -1 -769 369 -1 -370 370 6 -371 370 -1 -390 370 -1 -770 370 -1 -371 371 6 -372 371 -1 -391 371 -1 -771 371 -1 -372 372 6 -373 372 -1 -392 372 -1 -772 372 -1 -373 373 6 -374 373 -1 -393 373 -1 -773 373 -1 -374 374 6 -375 374 -1 -394 374 -1 -774 374 -1 -375 375 6 -376 375 -1 -395 375 -1 -775 375 -1 -376 376 6 -377 376 -1 -396 376 -1 -776 376 -1 -377 377 6 -378 377 -1 -397 377 -1 -777 377 -1 -378 378 6 -379 378 -1 -398 378 -1 -778 378 -1 -379 379 6 -380 379 -1 -399 379 -1 -779 379 -1 -380 380 6 -400 380 -1 -780 380 -1 -381 381 6 -382 381 -1 -781 381 -1 -382 382 6 -383 382 -1 -782 382 -1 -383 383 6 -384 383 -1 -783 383 -1 -384 384 6 -385 384 -1 -784 384 -1 -385 385 6 -386 385 -1 -785 385 -1 -386 386 6 -387 386 -1 -786 386 -1 -387 387 6 -388 387 -1 -787 387 -1 -388 388 6 -389 388 -1 -788 388 -1 -389 389 6 -390 389 -1 -789 389 -1 -390 390 6 -391 390 -1 -790 390 -1 -391 391 6 -392 391 -1 -791 391 -1 -392 392 6 -393 392 -1 -792 392 -1 -393 393 6 -394 393 -1 -793 393 -1 -394 394 6 -395 394 -1 -794 394 -1 -395 395 6 -396 395 -1 -795 395 -1 -396 396 6 -397 396 -1 -796 396 -1 -397 397 6 -398 397 -1 -797 397 -1 -398 398 6 -399 398 -1 -798 398 -1 -399 399 6 -400 399 -1 -799 399 -1 -400 400 6 -800 400 -1 -401 401 6 -402 401 -1 -421 401 -1 -801 401 -1 -402 402 6 -403 402 -1 -422 402 -1 -802 402 -1 -403 403 6 -404 403 -1 -423 403 -1 -803 403 -1 -404 404 6 -405 404 -1 -424 404 -1 -804 404 -1 -405 405 6 -406 405 -1 -425 405 -1 -805 405 -1 -406 406 6 -407 406 -1 -426 406 -1 -806 406 -1 -407 407 6 -408 407 -1 -427 407 -1 -807 407 -1 -408 408 6 -409 408 -1 -428 408 -1 -808 408 -1 -409 409 6 -410 409 -1 -429 409 -1 -809 409 -1 -410 410 6 -411 410 -1 -430 410 -1 -810 410 -1 -411 411 6 -412 411 -1 -431 411 -1 -811 411 -1 -412 412 6 -413 412 -1 -432 412 -1 -812 412 -1 -413 413 6 -414 413 -1 -433 413 -1 -813 413 -1 -414 414 6 -415 414 -1 -434 414 -1 -814 414 -1 -415 415 6 -416 415 -1 -435 415 -1 -815 415 -1 -416 416 6 -417 416 -1 -436 416 -1 -816 416 -1 -417 417 6 -418 417 -1 -437 417 -1 -817 417 -1 -418 418 6 -419 418 -1 -438 418 -1 -818 418 -1 -419 419 6 -420 419 -1 -439 419 -1 -819 419 -1 -420 420 6 -440 420 -1 -820 420 -1 -421 421 6 -422 421 -1 -441 421 -1 -821 421 -1 -422 422 6 -423 422 -1 -442 422 -1 -822 422 -1 -423 423 6 -424 423 -1 -443 423 -1 -823 423 -1 -424 424 6 -425 424 -1 -444 424 -1 -824 424 -1 -425 425 6 -426 425 -1 -445 425 -1 -825 425 -1 -426 426 6 -427 426 -1 -446 426 -1 -826 426 -1 -427 427 6 -428 427 -1 -447 427 -1 -827 427 -1 -428 428 6 -429 428 -1 -448 428 -1 -828 428 -1 -429 429 6 -430 429 -1 -449 429 -1 -829 429 -1 -430 430 6 -431 430 -1 -450 430 -1 -830 430 -1 -431 431 6 -432 431 -1 -451 431 -1 -831 431 -1 -432 432 6 -433 432 -1 -452 432 -1 -832 432 -1 -433 433 6 -434 433 -1 -453 433 -1 -833 433 -1 -434 434 6 -435 434 -1 -454 434 -1 -834 434 -1 -435 435 6 -436 435 -1 -455 435 -1 -835 435 -1 -436 436 6 -437 436 -1 -456 436 -1 -836 436 -1 -437 437 6 -438 437 -1 -457 437 -1 -837 437 -1 -438 438 6 -439 438 -1 -458 438 -1 -838 438 -1 -439 439 6 -440 439 -1 -459 439 -1 -839 439 -1 -440 440 6 -460 440 -1 -840 440 -1 -441 441 6 -442 441 -1 -461 441 -1 -841 441 -1 -442 442 6 -443 442 -1 -462 442 -1 -842 442 -1 -443 443 6 -444 443 -1 -463 443 -1 -843 443 -1 -444 444 6 -445 444 -1 -464 444 -1 -844 444 -1 -445 445 6 -446 445 -1 -465 445 -1 -845 445 -1 -446 446 6 -447 446 -1 -466 446 -1 -846 446 -1 -447 447 6 -448 447 -1 -467 447 -1 -847 447 -1 -448 448 6 -449 448 -1 -468 448 -1 -848 448 -1 -449 449 6 -450 449 -1 -469 449 -1 -849 449 -1 -450 450 6 -451 450 -1 -470 450 -1 -850 450 -1 -451 451 6 -452 451 -1 -471 451 -1 -851 451 -1 -452 452 6 -453 452 -1 -472 452 -1 -852 452 -1 -453 453 6 -454 453 -1 -473 453 -1 -853 453 -1 -454 454 6 -455 454 -1 -474 454 -1 -854 454 -1 -455 455 6 -456 455 -1 -475 455 -1 -855 455 -1 -456 456 6 -457 456 -1 -476 456 -1 -856 456 -1 -457 457 6 -458 457 -1 -477 457 -1 -857 457 -1 -458 458 6 -459 458 -1 -478 458 -1 -858 458 -1 -459 459 6 -460 459 -1 -479 459 -1 -859 459 -1 -460 460 6 -480 460 -1 -860 460 -1 -461 461 6 -462 461 -1 -481 461 -1 -861 461 -1 -462 462 6 -463 462 -1 -482 462 -1 -862 462 -1 -463 463 6 -464 463 -1 -483 463 -1 -863 463 -1 -464 464 6 -465 464 -1 -484 464 -1 -864 464 -1 -465 465 6 -466 465 -1 -485 465 -1 -865 465 -1 -466 466 6 -467 466 -1 -486 466 -1 -866 466 -1 -467 467 6 -468 467 -1 -487 467 -1 -867 467 -1 -468 468 6 -469 468 -1 -488 468 -1 -868 468 -1 -469 469 6 -470 469 -1 -489 469 -1 -869 469 -1 -470 470 6 -471 470 -1 -490 470 -1 -870 470 -1 -471 471 6 -472 471 -1 -491 471 -1 -871 471 -1 -472 472 6 -473 472 -1 -492 472 -1 -872 472 -1 -473 473 6 -474 473 -1 -493 473 -1 -873 473 -1 -474 474 6 -475 474 -1 -494 474 -1 -874 474 -1 -475 475 6 -476 475 -1 -495 475 -1 -875 475 -1 -476 476 6 -477 476 -1 -496 476 -1 -876 476 -1 -477 477 6 -478 477 -1 -497 477 -1 -877 477 -1 -478 478 6 -479 478 -1 -498 478 -1 -878 478 -1 -479 479 6 -480 479 -1 -499 479 -1 -879 479 -1 -480 480 6 -500 480 -1 -880 480 -1 -481 481 6 -482 481 -1 -501 481 -1 -881 481 -1 -482 482 6 -483 482 -1 -502 482 -1 -882 482 -1 -483 483 6 -484 483 -1 -503 483 -1 -883 483 -1 -484 484 6 -485 484 -1 -504 484 -1 -884 484 -1 -485 485 6 -486 485 -1 -505 485 -1 -885 485 -1 -486 486 6 -487 486 -1 -506 486 -1 -886 486 -1 -487 487 6 -488 487 -1 -507 487 -1 -887 487 -1 -488 488 6 -489 488 -1 -508 488 -1 -888 488 -1 -489 489 6 -490 489 -1 -509 489 -1 -889 489 -1 -490 490 6 -491 490 -1 -510 490 -1 -890 490 -1 -491 491 6 -492 491 -1 -511 491 -1 -891 491 -1 -492 492 6 -493 492 -1 -512 492 -1 -892 492 -1 -493 493 6 -494 493 -1 -513 493 -1 -893 493 -1 -494 494 6 -495 494 -1 -514 494 -1 -894 494 -1 -495 495 6 -496 495 -1 -515 495 -1 -895 495 -1 -496 496 6 -497 496 -1 -516 496 -1 -896 496 -1 -497 497 6 -498 497 -1 -517 497 -1 -897 497 -1 -498 498 6 -499 498 -1 -518 498 -1 -898 498 -1 -499 499 6 -500 499 -1 -519 499 -1 -899 499 -1 -500 500 6 -520 500 -1 -900 500 -1 -501 501 6 -502 501 -1 -521 501 -1 -901 501 -1 -502 502 6 -503 502 -1 -522 502 -1 -902 502 -1 -503 503 6 -504 503 -1 -523 503 -1 -903 503 -1 -504 504 6 -505 504 -1 -524 504 -1 -904 504 -1 -505 505 6 -506 505 -1 -525 505 -1 -905 505 -1 -506 506 6 -507 506 -1 -526 506 -1 -906 506 -1 -507 507 6 -508 507 -1 -527 507 -1 -907 507 -1 -508 508 6 -509 508 -1 -528 508 -1 -908 508 -1 -509 509 6 -510 509 -1 -529 509 -1 -909 509 -1 -510 510 6 -511 510 -1 -530 510 -1 -910 510 -1 -511 511 6 -512 511 -1 -531 511 -1 -911 511 -1 -512 512 6 -513 512 -1 -532 512 -1 -912 512 -1 -513 513 6 -514 513 -1 -533 513 -1 -913 513 -1 -514 514 6 -515 514 -1 -534 514 -1 -914 514 -1 -515 515 6 -516 515 -1 -535 515 -1 -915 515 -1 -516 516 6 -517 516 -1 -536 516 -1 -916 516 -1 -517 517 6 -518 517 -1 -537 517 -1 -917 517 -1 -518 518 6 -519 518 -1 -538 518 -1 -918 518 -1 -519 519 6 -520 519 -1 -539 519 -1 -919 519 -1 -520 520 6 -540 520 -1 -920 520 -1 -521 521 6 -522 521 -1 -541 521 -1 -921 521 -1 -522 522 6 -523 522 -1 -542 522 -1 -922 522 -1 -523 523 6 -524 523 -1 -543 523 -1 -923 523 -1 -524 524 6 -525 524 -1 -544 524 -1 -924 524 -1 -525 525 6 -526 525 -1 -545 525 -1 -925 525 -1 -526 526 6 -527 526 -1 -546 526 -1 -926 526 -1 -527 527 6 -528 527 -1 -547 527 -1 -927 527 -1 -528 528 6 -529 528 -1 -548 528 -1 -928 528 -1 -529 529 6 -530 529 -1 -549 529 -1 -929 529 -1 -530 530 6 -531 530 -1 -550 530 -1 -930 530 -1 -531 531 6 -532 531 -1 -551 531 -1 -931 531 -1 -532 532 6 -533 532 -1 -552 532 -1 -932 532 -1 -533 533 6 -534 533 -1 -553 533 -1 -933 533 -1 -534 534 6 -535 534 -1 -554 534 -1 -934 534 -1 -535 535 6 -536 535 -1 -555 535 -1 -935 535 -1 -536 536 6 -537 536 -1 -556 536 -1 -936 536 -1 -537 537 6 -538 537 -1 -557 537 -1 -937 537 -1 -538 538 6 -539 538 -1 -558 538 -1 -938 538 -1 -539 539 6 -540 539 -1 -559 539 -1 -939 539 -1 -540 540 6 -560 540 -1 -940 540 -1 -541 541 6 -542 541 -1 -561 541 -1 -941 541 -1 -542 542 6 -543 542 -1 -562 542 -1 -942 542 -1 -543 543 6 -544 543 -1 -563 543 -1 -943 543 -1 -544 544 6 -545 544 -1 -564 544 -1 -944 544 -1 -545 545 6 -546 545 -1 -565 545 -1 -945 545 -1 -546 546 6 -547 546 -1 -566 546 -1 -946 546 -1 -547 547 6 -548 547 -1 -567 547 -1 -947 547 -1 -548 548 6 -549 548 -1 -568 548 -1 -948 548 -1 -549 549 6 -550 549 -1 -569 549 -1 -949 549 -1 -550 550 6 -551 550 -1 -570 550 -1 -950 550 -1 -551 551 6 -552 551 -1 -571 551 -1 -951 551 -1 -552 552 6 -553 552 -1 -572 552 -1 -952 552 -1 -553 553 6 -554 553 -1 -573 553 -1 -953 553 -1 -554 554 6 -555 554 -1 -574 554 -1 -954 554 -1 -555 555 6 -556 555 -1 -575 555 -1 -955 555 -1 -556 556 6 -557 556 -1 -576 556 -1 -956 556 -1 -557 557 6 -558 557 -1 -577 557 -1 -957 557 -1 -558 558 6 -559 558 -1 -578 558 -1 -958 558 -1 -559 559 6 -560 559 -1 -579 559 -1 -959 559 -1 -560 560 6 -580 560 -1 -960 560 -1 -561 561 6 -562 561 -1 -581 561 -1 -961 561 -1 -562 562 6 -563 562 -1 -582 562 -1 -962 562 -1 -563 563 6 -564 563 -1 -583 563 -1 -963 563 -1 -564 564 6 -565 564 -1 -584 564 -1 -964 564 -1 -565 565 6 -566 565 -1 -585 565 -1 -965 565 -1 -566 566 6 -567 566 -1 -586 566 -1 -966 566 -1 -567 567 6 -568 567 -1 -587 567 -1 -967 567 -1 -568 568 6 -569 568 -1 -588 568 -1 -968 568 -1 -569 569 6 -570 569 -1 -589 569 -1 -969 569 -1 -570 570 6 -571 570 -1 -590 570 -1 -970 570 -1 -571 571 6 -572 571 -1 -591 571 -1 -971 571 -1 -572 572 6 -573 572 -1 -592 572 -1 -972 572 -1 -573 573 6 -574 573 -1 -593 573 -1 -973 573 -1 -574 574 6 -575 574 -1 -594 574 -1 -974 574 -1 -575 575 6 -576 575 -1 -595 575 -1 -975 575 -1 -576 576 6 -577 576 -1 -596 576 -1 -976 576 -1 -577 577 6 -578 577 -1 -597 577 -1 -977 577 -1 -578 578 6 -579 578 -1 -598 578 -1 -978 578 -1 -579 579 6 -580 579 -1 -599 579 -1 -979 579 -1 -580 580 6 -600 580 -1 -980 580 -1 -581 581 6 -582 581 -1 -601 581 -1 -981 581 -1 -582 582 6 -583 582 -1 -602 582 -1 -982 582 -1 -583 583 6 -584 583 -1 -603 583 -1 -983 583 -1 -584 584 6 -585 584 -1 -604 584 -1 -984 584 -1 -585 585 6 -586 585 -1 -605 585 -1 -985 585 -1 -586 586 6 -587 586 -1 -606 586 -1 -986 586 -1 -587 587 6 -588 587 -1 -607 587 -1 -987 587 -1 -588 588 6 -589 588 -1 -608 588 -1 -988 588 -1 -589 589 6 -590 589 -1 -609 589 -1 -989 589 -1 -590 590 6 -591 590 -1 -610 590 -1 -990 590 -1 -591 591 6 -592 591 -1 -611 591 -1 -991 591 -1 -592 592 6 -593 592 -1 -612 592 -1 -992 592 -1 -593 593 6 -594 593 -1 -613 593 -1 -993 593 -1 -594 594 6 -595 594 -1 -614 594 -1 -994 594 -1 -595 595 6 -596 595 -1 -615 595 -1 -995 595 -1 -596 596 6 -597 596 -1 -616 596 -1 -996 596 -1 -597 597 6 -598 597 -1 -617 597 -1 -997 597 -1 -598 598 6 -599 598 -1 -618 598 -1 -998 598 -1 -599 599 6 -600 599 -1 -619 599 -1 -999 599 -1 -600 600 6 -620 600 -1 -1000 600 -1 -601 601 6 -602 601 -1 -621 601 -1 -1001 601 -1 -602 602 6 -603 602 -1 -622 602 -1 -1002 602 -1 -603 603 6 -604 603 -1 -623 603 -1 -1003 603 -1 -604 604 6 -605 604 -1 -624 604 -1 -1004 604 -1 -605 605 6 -606 605 -1 -625 605 -1 -1005 605 -1 -606 606 6 -607 606 -1 -626 606 -1 -1006 606 -1 -607 607 6 -608 607 -1 -627 607 -1 -1007 607 -1 -608 608 6 -609 608 -1 -628 608 -1 -1008 608 -1 -609 609 6 -610 609 -1 -629 609 -1 -1009 609 -1 -610 610 6 -611 610 -1 -630 610 -1 -1010 610 -1 -611 611 6 -612 611 -1 -631 611 -1 -1011 611 -1 -612 612 6 -613 612 -1 -632 612 -1 -1012 612 -1 -613 613 6 -614 613 -1 -633 613 -1 -1013 613 -1 -614 614 6 -615 614 -1 -634 614 -1 -1014 614 -1 -615 615 6 -616 615 -1 -635 615 -1 -1015 615 -1 -616 616 6 -617 616 -1 -636 616 -1 -1016 616 -1 -617 617 6 -618 617 -1 -637 617 -1 -1017 617 -1 -618 618 6 -619 618 -1 -638 618 -1 -1018 618 -1 -619 619 6 -620 619 -1 -639 619 -1 -1019 619 -1 -620 620 6 -640 620 -1 -1020 620 -1 -621 621 6 -622 621 -1 -641 621 -1 -1021 621 -1 -622 622 6 -623 622 -1 -642 622 -1 -1022 622 -1 -623 623 6 -624 623 -1 -643 623 -1 -1023 623 -1 -624 624 6 -625 624 -1 -644 624 -1 -1024 624 -1 -625 625 6 -626 625 -1 -645 625 -1 -1025 625 -1 -626 626 6 -627 626 -1 -646 626 -1 -1026 626 -1 -627 627 6 -628 627 -1 -647 627 -1 -1027 627 -1 -628 628 6 -629 628 -1 -648 628 -1 -1028 628 -1 -629 629 6 -630 629 -1 -649 629 -1 -1029 629 -1 -630 630 6 -631 630 -1 -650 630 -1 -1030 630 -1 -631 631 6 -632 631 -1 -651 631 -1 -1031 631 -1 -632 632 6 -633 632 -1 -652 632 -1 -1032 632 -1 -633 633 6 -634 633 -1 -653 633 -1 -1033 633 -1 -634 634 6 -635 634 -1 -654 634 -1 -1034 634 -1 -635 635 6 -636 635 -1 -655 635 -1 -1035 635 -1 -636 636 6 -637 636 -1 -656 636 -1 -1036 636 -1 -637 637 6 -638 637 -1 -657 637 -1 -1037 637 -1 -638 638 6 -639 638 -1 -658 638 -1 -1038 638 -1 -639 639 6 -640 639 -1 -659 639 -1 -1039 639 -1 -640 640 6 -660 640 -1 -1040 640 -1 -641 641 6 -642 641 -1 -661 641 -1 -1041 641 -1 -642 642 6 -643 642 -1 -662 642 -1 -1042 642 -1 -643 643 6 -644 643 -1 -663 643 -1 -1043 643 -1 -644 644 6 -645 644 -1 -664 644 -1 -1044 644 -1 -645 645 6 -646 645 -1 -665 645 -1 -1045 645 -1 -646 646 6 -647 646 -1 -666 646 -1 -1046 646 -1 -647 647 6 -648 647 -1 -667 647 -1 -1047 647 -1 -648 648 6 -649 648 -1 -668 648 -1 -1048 648 -1 -649 649 6 -650 649 -1 -669 649 -1 -1049 649 -1 -650 650 6 -651 650 -1 -670 650 -1 -1050 650 -1 -651 651 6 -652 651 -1 -671 651 -1 -1051 651 -1 -652 652 6 -653 652 -1 -672 652 -1 -1052 652 -1 -653 653 6 -654 653 -1 -673 653 -1 -1053 653 -1 -654 654 6 -655 654 -1 -674 654 -1 -1054 654 -1 -655 655 6 -656 655 -1 -675 655 -1 -1055 655 -1 -656 656 6 -657 656 -1 -676 656 -1 -1056 656 -1 -657 657 6 -658 657 -1 -677 657 -1 -1057 657 -1 -658 658 6 -659 658 -1 -678 658 -1 -1058 658 -1 -659 659 6 -660 659 -1 -679 659 -1 -1059 659 -1 -660 660 6 -680 660 -1 -1060 660 -1 -661 661 6 -662 661 -1 -681 661 -1 -1061 661 -1 -662 662 6 -663 662 -1 -682 662 -1 -1062 662 -1 -663 663 6 -664 663 -1 -683 663 -1 -1063 663 -1 -664 664 6 -665 664 -1 -684 664 -1 -1064 664 -1 -665 665 6 -666 665 -1 -685 665 -1 -1065 665 -1 -666 666 6 -667 666 -1 -686 666 -1 -1066 666 -1 -667 667 6 -668 667 -1 -687 667 -1 -1067 667 -1 -668 668 6 -669 668 -1 -688 668 -1 -1068 668 -1 -669 669 6 -670 669 -1 -689 669 -1 -1069 669 -1 -670 670 6 -671 670 -1 -690 670 -1 -1070 670 -1 -671 671 6 -672 671 -1 -691 671 -1 -1071 671 -1 -672 672 6 -673 672 -1 -692 672 -1 -1072 672 -1 -673 673 6 -674 673 -1 -693 673 -1 -1073 673 -1 -674 674 6 -675 674 -1 -694 674 -1 -1074 674 -1 -675 675 6 -676 675 -1 -695 675 -1 -1075 675 -1 -676 676 6 -677 676 -1 -696 676 -1 -1076 676 -1 -677 677 6 -678 677 -1 -697 677 -1 -1077 677 -1 -678 678 6 -679 678 -1 -698 678 -1 -1078 678 -1 -679 679 6 -680 679 -1 -699 679 -1 -1079 679 -1 -680 680 6 -700 680 -1 -1080 680 -1 -681 681 6 -682 681 -1 -701 681 -1 -1081 681 -1 -682 682 6 -683 682 -1 -702 682 -1 -1082 682 -1 -683 683 6 -684 683 -1 -703 683 -1 -1083 683 -1 -684 684 6 -685 684 -1 -704 684 -1 -1084 684 -1 -685 685 6 -686 685 -1 -705 685 -1 -1085 685 -1 -686 686 6 -687 686 -1 -706 686 -1 -1086 686 -1 -687 687 6 -688 687 -1 -707 687 -1 -1087 687 -1 -688 688 6 -689 688 -1 -708 688 -1 -1088 688 -1 -689 689 6 -690 689 -1 -709 689 -1 -1089 689 -1 -690 690 6 -691 690 -1 -710 690 -1 -1090 690 -1 -691 691 6 -692 691 -1 -711 691 -1 -1091 691 -1 -692 692 6 -693 692 -1 -712 692 -1 -1092 692 -1 -693 693 6 -694 693 -1 -713 693 -1 -1093 693 -1 -694 694 6 -695 694 -1 -714 694 -1 -1094 694 -1 -695 695 6 -696 695 -1 -715 695 -1 -1095 695 -1 -696 696 6 -697 696 -1 -716 696 -1 -1096 696 -1 -697 697 6 -698 697 -1 -717 697 -1 -1097 697 -1 -698 698 6 -699 698 -1 -718 698 -1 -1098 698 -1 -699 699 6 -700 699 -1 -719 699 -1 -1099 699 -1 -700 700 6 -720 700 -1 -1100 700 -1 -701 701 6 -702 701 -1 -721 701 -1 -1101 701 -1 -702 702 6 -703 702 -1 -722 702 -1 -1102 702 -1 -703 703 6 -704 703 -1 -723 703 -1 -1103 703 -1 -704 704 6 -705 704 -1 -724 704 -1 -1104 704 -1 -705 705 6 -706 705 -1 -725 705 -1 -1105 705 -1 -706 706 6 -707 706 -1 -726 706 -1 -1106 706 -1 -707 707 6 -708 707 -1 -727 707 -1 -1107 707 -1 -708 708 6 -709 708 -1 -728 708 -1 -1108 708 -1 -709 709 6 -710 709 -1 -729 709 -1 -1109 709 -1 -710 710 6 -711 710 -1 -730 710 -1 -1110 710 -1 -711 711 6 -712 711 -1 -731 711 -1 -1111 711 -1 -712 712 6 -713 712 -1 -732 712 -1 -1112 712 -1 -713 713 6 -714 713 -1 -733 713 -1 -1113 713 -1 -714 714 6 -715 714 -1 -734 714 -1 -1114 714 -1 -715 715 6 -716 715 -1 -735 715 -1 -1115 715 -1 -716 716 6 -717 716 -1 -736 716 -1 -1116 716 -1 -717 717 6 -718 717 -1 -737 717 -1 -1117 717 -1 -718 718 6 -719 718 -1 -738 718 -1 -1118 718 -1 -719 719 6 -720 719 -1 -739 719 -1 -1119 719 -1 -720 720 6 -740 720 -1 -1120 720 -1 -721 721 6 -722 721 -1 -741 721 -1 -1121 721 -1 -722 722 6 -723 722 -1 -742 722 -1 -1122 722 -1 -723 723 6 -724 723 -1 -743 723 -1 -1123 723 -1 -724 724 6 -725 724 -1 -744 724 -1 -1124 724 -1 -725 725 6 -726 725 -1 -745 725 -1 -1125 725 -1 -726 726 6 -727 726 -1 -746 726 -1 -1126 726 -1 -727 727 6 -728 727 -1 -747 727 -1 -1127 727 -1 -728 728 6 -729 728 -1 -748 728 -1 -1128 728 -1 -729 729 6 -730 729 -1 -749 729 -1 -1129 729 -1 -730 730 6 -731 730 -1 -750 730 -1 -1130 730 -1 -731 731 6 -732 731 -1 -751 731 -1 -1131 731 -1 -732 732 6 -733 732 -1 -752 732 -1 -1132 732 -1 -733 733 6 -734 733 -1 -753 733 -1 -1133 733 -1 -734 734 6 -735 734 -1 -754 734 -1 -1134 734 -1 -735 735 6 -736 735 -1 -755 735 -1 -1135 735 -1 -736 736 6 -737 736 -1 -756 736 -1 -1136 736 -1 -737 737 6 -738 737 -1 -757 737 -1 -1137 737 -1 -738 738 6 -739 738 -1 -758 738 -1 -1138 738 -1 -739 739 6 -740 739 -1 -759 739 -1 -1139 739 -1 -740 740 6 -760 740 -1 -1140 740 -1 -741 741 6 -742 741 -1 -761 741 -1 -1141 741 -1 -742 742 6 -743 742 -1 -762 742 -1 -1142 742 -1 -743 743 6 -744 743 -1 -763 743 -1 -1143 743 -1 -744 744 6 -745 744 -1 -764 744 -1 -1144 744 -1 -745 745 6 -746 745 -1 -765 745 -1 -1145 745 -1 -746 746 6 -747 746 -1 -766 746 -1 -1146 746 -1 -747 747 6 -748 747 -1 -767 747 -1 -1147 747 -1 -748 748 6 -749 748 -1 -768 748 -1 -1148 748 -1 -749 749 6 -750 749 -1 -769 749 -1 -1149 749 -1 -750 750 6 -751 750 -1 -770 750 -1 -1150 750 -1 -751 751 6 -752 751 -1 -771 751 -1 -1151 751 -1 -752 752 6 -753 752 -1 -772 752 -1 -1152 752 -1 -753 753 6 -754 753 -1 -773 753 -1 -1153 753 -1 -754 754 6 -755 754 -1 -774 754 -1 -1154 754 -1 -755 755 6 -756 755 -1 -775 755 -1 -1155 755 -1 -756 756 6 -757 756 -1 -776 756 -1 -1156 756 -1 -757 757 6 -758 757 -1 -777 757 -1 -1157 757 -1 -758 758 6 -759 758 -1 -778 758 -1 -1158 758 -1 -759 759 6 -760 759 -1 -779 759 -1 -1159 759 -1 -760 760 6 -780 760 -1 -1160 760 -1 -761 761 6 -762 761 -1 -781 761 -1 -1161 761 -1 -762 762 6 -763 762 -1 -782 762 -1 -1162 762 -1 -763 763 6 -764 763 -1 -783 763 -1 -1163 763 -1 -764 764 6 -765 764 -1 -784 764 -1 -1164 764 -1 -765 765 6 -766 765 -1 -785 765 -1 -1165 765 -1 -766 766 6 -767 766 -1 -786 766 -1 -1166 766 -1 -767 767 6 -768 767 -1 -787 767 -1 -1167 767 -1 -768 768 6 -769 768 -1 -788 768 -1 -1168 768 -1 -769 769 6 -770 769 -1 -789 769 -1 -1169 769 -1 -770 770 6 -771 770 -1 -790 770 -1 -1170 770 -1 -771 771 6 -772 771 -1 -791 771 -1 -1171 771 -1 -772 772 6 -773 772 -1 -792 772 -1 -1172 772 -1 -773 773 6 -774 773 -1 -793 773 -1 -1173 773 -1 -774 774 6 -775 774 -1 -794 774 -1 -1174 774 -1 -775 775 6 -776 775 -1 -795 775 -1 -1175 775 -1 -776 776 6 -777 776 -1 -796 776 -1 -1176 776 -1 -777 777 6 -778 777 -1 -797 777 -1 -1177 777 -1 -778 778 6 -779 778 -1 -798 778 -1 -1178 778 -1 -779 779 6 -780 779 -1 -799 779 -1 -1179 779 -1 -780 780 6 -800 780 -1 -1180 780 -1 -781 781 6 -782 781 -1 -1181 781 -1 -782 782 6 -783 782 -1 -1182 782 -1 -783 783 6 -784 783 -1 -1183 783 -1 -784 784 6 -785 784 -1 -1184 784 -1 -785 785 6 -786 785 -1 -1185 785 -1 -786 786 6 -787 786 -1 -1186 786 -1 -787 787 6 -788 787 -1 -1187 787 -1 -788 788 6 -789 788 -1 -1188 788 -1 -789 789 6 -790 789 -1 -1189 789 -1 -790 790 6 -791 790 -1 -1190 790 -1 -791 791 6 -792 791 -1 -1191 791 -1 -792 792 6 -793 792 -1 -1192 792 -1 -793 793 6 -794 793 -1 -1193 793 -1 -794 794 6 -795 794 -1 -1194 794 -1 -795 795 6 -796 795 -1 -1195 795 -1 -796 796 6 -797 796 -1 -1196 796 -1 -797 797 6 -798 797 -1 -1197 797 -1 -798 798 6 -799 798 -1 -1198 798 -1 -799 799 6 -800 799 -1 -1199 799 -1 -800 800 6 -1200 800 -1 -801 801 6 -802 801 -1 -821 801 -1 -1201 801 -1 -802 802 6 -803 802 -1 -822 802 -1 -1202 802 -1 -803 803 6 -804 803 -1 -823 803 -1 -1203 803 -1 -804 804 6 -805 804 -1 -824 804 -1 -1204 804 -1 -805 805 6 -806 805 -1 -825 805 -1 -1205 805 -1 -806 806 6 -807 806 -1 -826 806 -1 -1206 806 -1 -807 807 6 -808 807 -1 -827 807 -1 -1207 807 -1 -808 808 6 -809 808 -1 -828 808 -1 -1208 808 -1 -809 809 6 -810 809 -1 -829 809 -1 -1209 809 -1 -810 810 6 -811 810 -1 -830 810 -1 -1210 810 -1 -811 811 6 -812 811 -1 -831 811 -1 -1211 811 -1 -812 812 6 -813 812 -1 -832 812 -1 -1212 812 -1 -813 813 6 -814 813 -1 -833 813 -1 -1213 813 -1 -814 814 6 -815 814 -1 -834 814 -1 -1214 814 -1 -815 815 6 -816 815 -1 -835 815 -1 -1215 815 -1 -816 816 6 -817 816 -1 -836 816 -1 -1216 816 -1 -817 817 6 -818 817 -1 -837 817 -1 -1217 817 -1 -818 818 6 -819 818 -1 -838 818 -1 -1218 818 -1 -819 819 6 -820 819 -1 -839 819 -1 -1219 819 -1 -820 820 6 -840 820 -1 -1220 820 -1 -821 821 6 -822 821 -1 -841 821 -1 -1221 821 -1 -822 822 6 -823 822 -1 -842 822 -1 -1222 822 -1 -823 823 6 -824 823 -1 -843 823 -1 -1223 823 -1 -824 824 6 -825 824 -1 -844 824 -1 -1224 824 -1 -825 825 6 -826 825 -1 -845 825 -1 -1225 825 -1 -826 826 6 -827 826 -1 -846 826 -1 -1226 826 -1 -827 827 6 -828 827 -1 -847 827 -1 -1227 827 -1 -828 828 6 -829 828 -1 -848 828 -1 -1228 828 -1 -829 829 6 -830 829 -1 -849 829 -1 -1229 829 -1 -830 830 6 -831 830 -1 -850 830 -1 -1230 830 -1 -831 831 6 -832 831 -1 -851 831 -1 -1231 831 -1 -832 832 6 -833 832 -1 -852 832 -1 -1232 832 -1 -833 833 6 -834 833 -1 -853 833 -1 -1233 833 -1 -834 834 6 -835 834 -1 -854 834 -1 -1234 834 -1 -835 835 6 -836 835 -1 -855 835 -1 -1235 835 -1 -836 836 6 -837 836 -1 -856 836 -1 -1236 836 -1 -837 837 6 -838 837 -1 -857 837 -1 -1237 837 -1 -838 838 6 -839 838 -1 -858 838 -1 -1238 838 -1 -839 839 6 -840 839 -1 -859 839 -1 -1239 839 -1 -840 840 6 -860 840 -1 -1240 840 -1 -841 841 6 -842 841 -1 -861 841 -1 -1241 841 -1 -842 842 6 -843 842 -1 -862 842 -1 -1242 842 -1 -843 843 6 -844 843 -1 -863 843 -1 -1243 843 -1 -844 844 6 -845 844 -1 -864 844 -1 -1244 844 -1 -845 845 6 -846 845 -1 -865 845 -1 -1245 845 -1 -846 846 6 -847 846 -1 -866 846 -1 -1246 846 -1 -847 847 6 -848 847 -1 -867 847 -1 -1247 847 -1 -848 848 6 -849 848 -1 -868 848 -1 -1248 848 -1 -849 849 6 -850 849 -1 -869 849 -1 -1249 849 -1 -850 850 6 -851 850 -1 -870 850 -1 -1250 850 -1 -851 851 6 -852 851 -1 -871 851 -1 -1251 851 -1 -852 852 6 -853 852 -1 -872 852 -1 -1252 852 -1 -853 853 6 -854 853 -1 -873 853 -1 -1253 853 -1 -854 854 6 -855 854 -1 -874 854 -1 -1254 854 -1 -855 855 6 -856 855 -1 -875 855 -1 -1255 855 -1 -856 856 6 -857 856 -1 -876 856 -1 -1256 856 -1 -857 857 6 -858 857 -1 -877 857 -1 -1257 857 -1 -858 858 6 -859 858 -1 -878 858 -1 -1258 858 -1 -859 859 6 -860 859 -1 -879 859 -1 -1259 859 -1 -860 860 6 -880 860 -1 -1260 860 -1 -861 861 6 -862 861 -1 -881 861 -1 -1261 861 -1 -862 862 6 -863 862 -1 -882 862 -1 -1262 862 -1 -863 863 6 -864 863 -1 -883 863 -1 -1263 863 -1 -864 864 6 -865 864 -1 -884 864 -1 -1264 864 -1 -865 865 6 -866 865 -1 -885 865 -1 -1265 865 -1 -866 866 6 -867 866 -1 -886 866 -1 -1266 866 -1 -867 867 6 -868 867 -1 -887 867 -1 -1267 867 -1 -868 868 6 -869 868 -1 -888 868 -1 -1268 868 -1 -869 869 6 -870 869 -1 -889 869 -1 -1269 869 -1 -870 870 6 -871 870 -1 -890 870 -1 -1270 870 -1 -871 871 6 -872 871 -1 -891 871 -1 -1271 871 -1 -872 872 6 -873 872 -1 -892 872 -1 -1272 872 -1 -873 873 6 -874 873 -1 -893 873 -1 -1273 873 -1 -874 874 6 -875 874 -1 -894 874 -1 -1274 874 -1 -875 875 6 -876 875 -1 -895 875 -1 -1275 875 -1 -876 876 6 -877 876 -1 -896 876 -1 -1276 876 -1 -877 877 6 -878 877 -1 -897 877 -1 -1277 877 -1 -878 878 6 -879 878 -1 -898 878 -1 -1278 878 -1 -879 879 6 -880 879 -1 -899 879 -1 -1279 879 -1 -880 880 6 -900 880 -1 -1280 880 -1 -881 881 6 -882 881 -1 -901 881 -1 -1281 881 -1 -882 882 6 -883 882 -1 -902 882 -1 -1282 882 -1 -883 883 6 -884 883 -1 -903 883 -1 -1283 883 -1 -884 884 6 -885 884 -1 -904 884 -1 -1284 884 -1 -885 885 6 -886 885 -1 -905 885 -1 -1285 885 -1 -886 886 6 -887 886 -1 -906 886 -1 -1286 886 -1 -887 887 6 -888 887 -1 -907 887 -1 -1287 887 -1 -888 888 6 -889 888 -1 -908 888 -1 -1288 888 -1 -889 889 6 -890 889 -1 -909 889 -1 -1289 889 -1 -890 890 6 -891 890 -1 -910 890 -1 -1290 890 -1 -891 891 6 -892 891 -1 -911 891 -1 -1291 891 -1 -892 892 6 -893 892 -1 -912 892 -1 -1292 892 -1 -893 893 6 -894 893 -1 -913 893 -1 -1293 893 -1 -894 894 6 -895 894 -1 -914 894 -1 -1294 894 -1 -895 895 6 -896 895 -1 -915 895 -1 -1295 895 -1 -896 896 6 -897 896 -1 -916 896 -1 -1296 896 -1 -897 897 6 -898 897 -1 -917 897 -1 -1297 897 -1 -898 898 6 -899 898 -1 -918 898 -1 -1298 898 -1 -899 899 6 -900 899 -1 -919 899 -1 -1299 899 -1 -900 900 6 -920 900 -1 -1300 900 -1 -901 901 6 -902 901 -1 -921 901 -1 -1301 901 -1 -902 902 6 -903 902 -1 -922 902 -1 -1302 902 -1 -903 903 6 -904 903 -1 -923 903 -1 -1303 903 -1 -904 904 6 -905 904 -1 -924 904 -1 -1304 904 -1 -905 905 6 -906 905 -1 -925 905 -1 -1305 905 -1 -906 906 6 -907 906 -1 -926 906 -1 -1306 906 -1 -907 907 6 -908 907 -1 -927 907 -1 -1307 907 -1 -908 908 6 -909 908 -1 -928 908 -1 -1308 908 -1 -909 909 6 -910 909 -1 -929 909 -1 -1309 909 -1 -910 910 6 -911 910 -1 -930 910 -1 -1310 910 -1 -911 911 6 -912 911 -1 -931 911 -1 -1311 911 -1 -912 912 6 -913 912 -1 -932 912 -1 -1312 912 -1 -913 913 6 -914 913 -1 -933 913 -1 -1313 913 -1 -914 914 6 -915 914 -1 -934 914 -1 -1314 914 -1 -915 915 6 -916 915 -1 -935 915 -1 -1315 915 -1 -916 916 6 -917 916 -1 -936 916 -1 -1316 916 -1 -917 917 6 -918 917 -1 -937 917 -1 -1317 917 -1 -918 918 6 -919 918 -1 -938 918 -1 -1318 918 -1 -919 919 6 -920 919 -1 -939 919 -1 -1319 919 -1 -920 920 6 -940 920 -1 -1320 920 -1 -921 921 6 -922 921 -1 -941 921 -1 -1321 921 -1 -922 922 6 -923 922 -1 -942 922 -1 -1322 922 -1 -923 923 6 -924 923 -1 -943 923 -1 -1323 923 -1 -924 924 6 -925 924 -1 -944 924 -1 -1324 924 -1 -925 925 6 -926 925 -1 -945 925 -1 -1325 925 -1 -926 926 6 -927 926 -1 -946 926 -1 -1326 926 -1 -927 927 6 -928 927 -1 -947 927 -1 -1327 927 -1 -928 928 6 -929 928 -1 -948 928 -1 -1328 928 -1 -929 929 6 -930 929 -1 -949 929 -1 -1329 929 -1 -930 930 6 -931 930 -1 -950 930 -1 -1330 930 -1 -931 931 6 -932 931 -1 -951 931 -1 -1331 931 -1 -932 932 6 -933 932 -1 -952 932 -1 -1332 932 -1 -933 933 6 -934 933 -1 -953 933 -1 -1333 933 -1 -934 934 6 -935 934 -1 -954 934 -1 -1334 934 -1 -935 935 6 -936 935 -1 -955 935 -1 -1335 935 -1 -936 936 6 -937 936 -1 -956 936 -1 -1336 936 -1 -937 937 6 -938 937 -1 -957 937 -1 -1337 937 -1 -938 938 6 -939 938 -1 -958 938 -1 -1338 938 -1 -939 939 6 -940 939 -1 -959 939 -1 -1339 939 -1 -940 940 6 -960 940 -1 -1340 940 -1 -941 941 6 -942 941 -1 -961 941 -1 -1341 941 -1 -942 942 6 -943 942 -1 -962 942 -1 -1342 942 -1 -943 943 6 -944 943 -1 -963 943 -1 -1343 943 -1 -944 944 6 -945 944 -1 -964 944 -1 -1344 944 -1 -945 945 6 -946 945 -1 -965 945 -1 -1345 945 -1 -946 946 6 -947 946 -1 -966 946 -1 -1346 946 -1 -947 947 6 -948 947 -1 -967 947 -1 -1347 947 -1 -948 948 6 -949 948 -1 -968 948 -1 -1348 948 -1 -949 949 6 -950 949 -1 -969 949 -1 -1349 949 -1 -950 950 6 -951 950 -1 -970 950 -1 -1350 950 -1 -951 951 6 -952 951 -1 -971 951 -1 -1351 951 -1 -952 952 6 -953 952 -1 -972 952 -1 -1352 952 -1 -953 953 6 -954 953 -1 -973 953 -1 -1353 953 -1 -954 954 6 -955 954 -1 -974 954 -1 -1354 954 -1 -955 955 6 -956 955 -1 -975 955 -1 -1355 955 -1 -956 956 6 -957 956 -1 -976 956 -1 -1356 956 -1 -957 957 6 -958 957 -1 -977 957 -1 -1357 957 -1 -958 958 6 -959 958 -1 -978 958 -1 -1358 958 -1 -959 959 6 -960 959 -1 -979 959 -1 -1359 959 -1 -960 960 6 -980 960 -1 -1360 960 -1 -961 961 6 -962 961 -1 -981 961 -1 -1361 961 -1 -962 962 6 -963 962 -1 -982 962 -1 -1362 962 -1 -963 963 6 -964 963 -1 -983 963 -1 -1363 963 -1 -964 964 6 -965 964 -1 -984 964 -1 -1364 964 -1 -965 965 6 -966 965 -1 -985 965 -1 -1365 965 -1 -966 966 6 -967 966 -1 -986 966 -1 -1366 966 -1 -967 967 6 -968 967 -1 -987 967 -1 -1367 967 -1 -968 968 6 -969 968 -1 -988 968 -1 -1368 968 -1 -969 969 6 -970 969 -1 -989 969 -1 -1369 969 -1 -970 970 6 -971 970 -1 -990 970 -1 -1370 970 -1 -971 971 6 -972 971 -1 -991 971 -1 -1371 971 -1 -972 972 6 -973 972 -1 -992 972 -1 -1372 972 -1 -973 973 6 -974 973 -1 -993 973 -1 -1373 973 -1 -974 974 6 -975 974 -1 -994 974 -1 -1374 974 -1 -975 975 6 -976 975 -1 -995 975 -1 -1375 975 -1 -976 976 6 -977 976 -1 -996 976 -1 -1376 976 -1 -977 977 6 -978 977 -1 -997 977 -1 -1377 977 -1 -978 978 6 -979 978 -1 -998 978 -1 -1378 978 -1 -979 979 6 -980 979 -1 -999 979 -1 -1379 979 -1 -980 980 6 -1000 980 -1 -1380 980 -1 -981 981 6 -982 981 -1 -1001 981 -1 -1381 981 -1 -982 982 6 -983 982 -1 -1002 982 -1 -1382 982 -1 -983 983 6 -984 983 -1 -1003 983 -1 -1383 983 -1 -984 984 6 -985 984 -1 -1004 984 -1 -1384 984 -1 -985 985 6 -986 985 -1 -1005 985 -1 -1385 985 -1 -986 986 6 -987 986 -1 -1006 986 -1 -1386 986 -1 -987 987 6 -988 987 -1 -1007 987 -1 -1387 987 -1 -988 988 6 -989 988 -1 -1008 988 -1 -1388 988 -1 -989 989 6 -990 989 -1 -1009 989 -1 -1389 989 -1 -990 990 6 -991 990 -1 -1010 990 -1 -1390 990 -1 -991 991 6 -992 991 -1 -1011 991 -1 -1391 991 -1 -992 992 6 -993 992 -1 -1012 992 -1 -1392 992 -1 -993 993 6 -994 993 -1 -1013 993 -1 -1393 993 -1 -994 994 6 -995 994 -1 -1014 994 -1 -1394 994 -1 -995 995 6 -996 995 -1 -1015 995 -1 -1395 995 -1 -996 996 6 -997 996 -1 -1016 996 -1 -1396 996 -1 -997 997 6 -998 997 -1 -1017 997 -1 -1397 997 -1 -998 998 6 -999 998 -1 -1018 998 -1 -1398 998 -1 -999 999 6 -1000 999 -1 -1019 999 -1 -1399 999 -1 -1000 1000 6 -1020 1000 -1 -1400 1000 -1 -1001 1001 6 -1002 1001 -1 -1021 1001 -1 -1401 1001 -1 -1002 1002 6 -1003 1002 -1 -1022 1002 -1 -1402 1002 -1 -1003 1003 6 -1004 1003 -1 -1023 1003 -1 -1403 1003 -1 -1004 1004 6 -1005 1004 -1 -1024 1004 -1 -1404 1004 -1 -1005 1005 6 -1006 1005 -1 -1025 1005 -1 -1405 1005 -1 -1006 1006 6 -1007 1006 -1 -1026 1006 -1 -1406 1006 -1 -1007 1007 6 -1008 1007 -1 -1027 1007 -1 -1407 1007 -1 -1008 1008 6 -1009 1008 -1 -1028 1008 -1 -1408 1008 -1 -1009 1009 6 -1010 1009 -1 -1029 1009 -1 -1409 1009 -1 -1010 1010 6 -1011 1010 -1 -1030 1010 -1 -1410 1010 -1 -1011 1011 6 -1012 1011 -1 -1031 1011 -1 -1411 1011 -1 -1012 1012 6 -1013 1012 -1 -1032 1012 -1 -1412 1012 -1 -1013 1013 6 -1014 1013 -1 -1033 1013 -1 -1413 1013 -1 -1014 1014 6 -1015 1014 -1 -1034 1014 -1 -1414 1014 -1 -1015 1015 6 -1016 1015 -1 -1035 1015 -1 -1415 1015 -1 -1016 1016 6 -1017 1016 -1 -1036 1016 -1 -1416 1016 -1 -1017 1017 6 -1018 1017 -1 -1037 1017 -1 -1417 1017 -1 -1018 1018 6 -1019 1018 -1 -1038 1018 -1 -1418 1018 -1 -1019 1019 6 -1020 1019 -1 -1039 1019 -1 -1419 1019 -1 -1020 1020 6 -1040 1020 -1 -1420 1020 -1 -1021 1021 6 -1022 1021 -1 -1041 1021 -1 -1421 1021 -1 -1022 1022 6 -1023 1022 -1 -1042 1022 -1 -1422 1022 -1 -1023 1023 6 -1024 1023 -1 -1043 1023 -1 -1423 1023 -1 -1024 1024 6 -1025 1024 -1 -1044 1024 -1 -1424 1024 -1 -1025 1025 6 -1026 1025 -1 -1045 1025 -1 -1425 1025 -1 -1026 1026 6 -1027 1026 -1 -1046 1026 -1 -1426 1026 -1 -1027 1027 6 -1028 1027 -1 -1047 1027 -1 -1427 1027 -1 -1028 1028 6 -1029 1028 -1 -1048 1028 -1 -1428 1028 -1 -1029 1029 6 -1030 1029 -1 -1049 1029 -1 -1429 1029 -1 -1030 1030 6 -1031 1030 -1 -1050 1030 -1 -1430 1030 -1 -1031 1031 6 -1032 1031 -1 -1051 1031 -1 -1431 1031 -1 -1032 1032 6 -1033 1032 -1 -1052 1032 -1 -1432 1032 -1 -1033 1033 6 -1034 1033 -1 -1053 1033 -1 -1433 1033 -1 -1034 1034 6 -1035 1034 -1 -1054 1034 -1 -1434 1034 -1 -1035 1035 6 -1036 1035 -1 -1055 1035 -1 -1435 1035 -1 -1036 1036 6 -1037 1036 -1 -1056 1036 -1 -1436 1036 -1 -1037 1037 6 -1038 1037 -1 -1057 1037 -1 -1437 1037 -1 -1038 1038 6 -1039 1038 -1 -1058 1038 -1 -1438 1038 -1 -1039 1039 6 -1040 1039 -1 -1059 1039 -1 -1439 1039 -1 -1040 1040 6 -1060 1040 -1 -1440 1040 -1 -1041 1041 6 -1042 1041 -1 -1061 1041 -1 -1441 1041 -1 -1042 1042 6 -1043 1042 -1 -1062 1042 -1 -1442 1042 -1 -1043 1043 6 -1044 1043 -1 -1063 1043 -1 -1443 1043 -1 -1044 1044 6 -1045 1044 -1 -1064 1044 -1 -1444 1044 -1 -1045 1045 6 -1046 1045 -1 -1065 1045 -1 -1445 1045 -1 -1046 1046 6 -1047 1046 -1 -1066 1046 -1 -1446 1046 -1 -1047 1047 6 -1048 1047 -1 -1067 1047 -1 -1447 1047 -1 -1048 1048 6 -1049 1048 -1 -1068 1048 -1 -1448 1048 -1 -1049 1049 6 -1050 1049 -1 -1069 1049 -1 -1449 1049 -1 -1050 1050 6 -1051 1050 -1 -1070 1050 -1 -1450 1050 -1 -1051 1051 6 -1052 1051 -1 -1071 1051 -1 -1451 1051 -1 -1052 1052 6 -1053 1052 -1 -1072 1052 -1 -1452 1052 -1 -1053 1053 6 -1054 1053 -1 -1073 1053 -1 -1453 1053 -1 -1054 1054 6 -1055 1054 -1 -1074 1054 -1 -1454 1054 -1 -1055 1055 6 -1056 1055 -1 -1075 1055 -1 -1455 1055 -1 -1056 1056 6 -1057 1056 -1 -1076 1056 -1 -1456 1056 -1 -1057 1057 6 -1058 1057 -1 -1077 1057 -1 -1457 1057 -1 -1058 1058 6 -1059 1058 -1 -1078 1058 -1 -1458 1058 -1 -1059 1059 6 -1060 1059 -1 -1079 1059 -1 -1459 1059 -1 -1060 1060 6 -1080 1060 -1 -1460 1060 -1 -1061 1061 6 -1062 1061 -1 -1081 1061 -1 -1461 1061 -1 -1062 1062 6 -1063 1062 -1 -1082 1062 -1 -1462 1062 -1 -1063 1063 6 -1064 1063 -1 -1083 1063 -1 -1463 1063 -1 -1064 1064 6 -1065 1064 -1 -1084 1064 -1 -1464 1064 -1 -1065 1065 6 -1066 1065 -1 -1085 1065 -1 -1465 1065 -1 -1066 1066 6 -1067 1066 -1 -1086 1066 -1 -1466 1066 -1 -1067 1067 6 -1068 1067 -1 -1087 1067 -1 -1467 1067 -1 -1068 1068 6 -1069 1068 -1 -1088 1068 -1 -1468 1068 -1 -1069 1069 6 -1070 1069 -1 -1089 1069 -1 -1469 1069 -1 -1070 1070 6 -1071 1070 -1 -1090 1070 -1 -1470 1070 -1 -1071 1071 6 -1072 1071 -1 -1091 1071 -1 -1471 1071 -1 -1072 1072 6 -1073 1072 -1 -1092 1072 -1 -1472 1072 -1 -1073 1073 6 -1074 1073 -1 -1093 1073 -1 -1473 1073 -1 -1074 1074 6 -1075 1074 -1 -1094 1074 -1 -1474 1074 -1 -1075 1075 6 -1076 1075 -1 -1095 1075 -1 -1475 1075 -1 -1076 1076 6 -1077 1076 -1 -1096 1076 -1 -1476 1076 -1 -1077 1077 6 -1078 1077 -1 -1097 1077 -1 -1477 1077 -1 -1078 1078 6 -1079 1078 -1 -1098 1078 -1 -1478 1078 -1 -1079 1079 6 -1080 1079 -1 -1099 1079 -1 -1479 1079 -1 -1080 1080 6 -1100 1080 -1 -1480 1080 -1 -1081 1081 6 -1082 1081 -1 -1101 1081 -1 -1481 1081 -1 -1082 1082 6 -1083 1082 -1 -1102 1082 -1 -1482 1082 -1 -1083 1083 6 -1084 1083 -1 -1103 1083 -1 -1483 1083 -1 -1084 1084 6 -1085 1084 -1 -1104 1084 -1 -1484 1084 -1 -1085 1085 6 -1086 1085 -1 -1105 1085 -1 -1485 1085 -1 -1086 1086 6 -1087 1086 -1 -1106 1086 -1 -1486 1086 -1 -1087 1087 6 -1088 1087 -1 -1107 1087 -1 -1487 1087 -1 -1088 1088 6 -1089 1088 -1 -1108 1088 -1 -1488 1088 -1 -1089 1089 6 -1090 1089 -1 -1109 1089 -1 -1489 1089 -1 -1090 1090 6 -1091 1090 -1 -1110 1090 -1 -1490 1090 -1 -1091 1091 6 -1092 1091 -1 -1111 1091 -1 -1491 1091 -1 -1092 1092 6 -1093 1092 -1 -1112 1092 -1 -1492 1092 -1 -1093 1093 6 -1094 1093 -1 -1113 1093 -1 -1493 1093 -1 -1094 1094 6 -1095 1094 -1 -1114 1094 -1 -1494 1094 -1 -1095 1095 6 -1096 1095 -1 -1115 1095 -1 -1495 1095 -1 -1096 1096 6 -1097 1096 -1 -1116 1096 -1 -1496 1096 -1 -1097 1097 6 -1098 1097 -1 -1117 1097 -1 -1497 1097 -1 -1098 1098 6 -1099 1098 -1 -1118 1098 -1 -1498 1098 -1 -1099 1099 6 -1100 1099 -1 -1119 1099 -1 -1499 1099 -1 -1100 1100 6 -1120 1100 -1 -1500 1100 -1 -1101 1101 6 -1102 1101 -1 -1121 1101 -1 -1501 1101 -1 -1102 1102 6 -1103 1102 -1 -1122 1102 -1 -1502 1102 -1 -1103 1103 6 -1104 1103 -1 -1123 1103 -1 -1503 1103 -1 -1104 1104 6 -1105 1104 -1 -1124 1104 -1 -1504 1104 -1 -1105 1105 6 -1106 1105 -1 -1125 1105 -1 -1505 1105 -1 -1106 1106 6 -1107 1106 -1 -1126 1106 -1 -1506 1106 -1 -1107 1107 6 -1108 1107 -1 -1127 1107 -1 -1507 1107 -1 -1108 1108 6 -1109 1108 -1 -1128 1108 -1 -1508 1108 -1 -1109 1109 6 -1110 1109 -1 -1129 1109 -1 -1509 1109 -1 -1110 1110 6 -1111 1110 -1 -1130 1110 -1 -1510 1110 -1 -1111 1111 6 -1112 1111 -1 -1131 1111 -1 -1511 1111 -1 -1112 1112 6 -1113 1112 -1 -1132 1112 -1 -1512 1112 -1 -1113 1113 6 -1114 1113 -1 -1133 1113 -1 -1513 1113 -1 -1114 1114 6 -1115 1114 -1 -1134 1114 -1 -1514 1114 -1 -1115 1115 6 -1116 1115 -1 -1135 1115 -1 -1515 1115 -1 -1116 1116 6 -1117 1116 -1 -1136 1116 -1 -1516 1116 -1 -1117 1117 6 -1118 1117 -1 -1137 1117 -1 -1517 1117 -1 -1118 1118 6 -1119 1118 -1 -1138 1118 -1 -1518 1118 -1 -1119 1119 6 -1120 1119 -1 -1139 1119 -1 -1519 1119 -1 -1120 1120 6 -1140 1120 -1 -1520 1120 -1 -1121 1121 6 -1122 1121 -1 -1141 1121 -1 -1521 1121 -1 -1122 1122 6 -1123 1122 -1 -1142 1122 -1 -1522 1122 -1 -1123 1123 6 -1124 1123 -1 -1143 1123 -1 -1523 1123 -1 -1124 1124 6 -1125 1124 -1 -1144 1124 -1 -1524 1124 -1 -1125 1125 6 -1126 1125 -1 -1145 1125 -1 -1525 1125 -1 -1126 1126 6 -1127 1126 -1 -1146 1126 -1 -1526 1126 -1 -1127 1127 6 -1128 1127 -1 -1147 1127 -1 -1527 1127 -1 -1128 1128 6 -1129 1128 -1 -1148 1128 -1 -1528 1128 -1 -1129 1129 6 -1130 1129 -1 -1149 1129 -1 -1529 1129 -1 -1130 1130 6 -1131 1130 -1 -1150 1130 -1 -1530 1130 -1 -1131 1131 6 -1132 1131 -1 -1151 1131 -1 -1531 1131 -1 -1132 1132 6 -1133 1132 -1 -1152 1132 -1 -1532 1132 -1 -1133 1133 6 -1134 1133 -1 -1153 1133 -1 -1533 1133 -1 -1134 1134 6 -1135 1134 -1 -1154 1134 -1 -1534 1134 -1 -1135 1135 6 -1136 1135 -1 -1155 1135 -1 -1535 1135 -1 -1136 1136 6 -1137 1136 -1 -1156 1136 -1 -1536 1136 -1 -1137 1137 6 -1138 1137 -1 -1157 1137 -1 -1537 1137 -1 -1138 1138 6 -1139 1138 -1 -1158 1138 -1 -1538 1138 -1 -1139 1139 6 -1140 1139 -1 -1159 1139 -1 -1539 1139 -1 -1140 1140 6 -1160 1140 -1 -1540 1140 -1 -1141 1141 6 -1142 1141 -1 -1161 1141 -1 -1541 1141 -1 -1142 1142 6 -1143 1142 -1 -1162 1142 -1 -1542 1142 -1 -1143 1143 6 -1144 1143 -1 -1163 1143 -1 -1543 1143 -1 -1144 1144 6 -1145 1144 -1 -1164 1144 -1 -1544 1144 -1 -1145 1145 6 -1146 1145 -1 -1165 1145 -1 -1545 1145 -1 -1146 1146 6 -1147 1146 -1 -1166 1146 -1 -1546 1146 -1 -1147 1147 6 -1148 1147 -1 -1167 1147 -1 -1547 1147 -1 -1148 1148 6 -1149 1148 -1 -1168 1148 -1 -1548 1148 -1 -1149 1149 6 -1150 1149 -1 -1169 1149 -1 -1549 1149 -1 -1150 1150 6 -1151 1150 -1 -1170 1150 -1 -1550 1150 -1 -1151 1151 6 -1152 1151 -1 -1171 1151 -1 -1551 1151 -1 -1152 1152 6 -1153 1152 -1 -1172 1152 -1 -1552 1152 -1 -1153 1153 6 -1154 1153 -1 -1173 1153 -1 -1553 1153 -1 -1154 1154 6 -1155 1154 -1 -1174 1154 -1 -1554 1154 -1 -1155 1155 6 -1156 1155 -1 -1175 1155 -1 -1555 1155 -1 -1156 1156 6 -1157 1156 -1 -1176 1156 -1 -1556 1156 -1 -1157 1157 6 -1158 1157 -1 -1177 1157 -1 -1557 1157 -1 -1158 1158 6 -1159 1158 -1 -1178 1158 -1 -1558 1158 -1 -1159 1159 6 -1160 1159 -1 -1179 1159 -1 -1559 1159 -1 -1160 1160 6 -1180 1160 -1 -1560 1160 -1 -1161 1161 6 -1162 1161 -1 -1181 1161 -1 -1561 1161 -1 -1162 1162 6 -1163 1162 -1 -1182 1162 -1 -1562 1162 -1 -1163 1163 6 -1164 1163 -1 -1183 1163 -1 -1563 1163 -1 -1164 1164 6 -1165 1164 -1 -1184 1164 -1 -1564 1164 -1 -1165 1165 6 -1166 1165 -1 -1185 1165 -1 -1565 1165 -1 -1166 1166 6 -1167 1166 -1 -1186 1166 -1 -1566 1166 -1 -1167 1167 6 -1168 1167 -1 -1187 1167 -1 -1567 1167 -1 -1168 1168 6 -1169 1168 -1 -1188 1168 -1 -1568 1168 -1 -1169 1169 6 -1170 1169 -1 -1189 1169 -1 -1569 1169 -1 -1170 1170 6 -1171 1170 -1 -1190 1170 -1 -1570 1170 -1 -1171 1171 6 -1172 1171 -1 -1191 1171 -1 -1571 1171 -1 -1172 1172 6 -1173 1172 -1 -1192 1172 -1 -1572 1172 -1 -1173 1173 6 -1174 1173 -1 -1193 1173 -1 -1573 1173 -1 -1174 1174 6 -1175 1174 -1 -1194 1174 -1 -1574 1174 -1 -1175 1175 6 -1176 1175 -1 -1195 1175 -1 -1575 1175 -1 -1176 1176 6 -1177 1176 -1 -1196 1176 -1 -1576 1176 -1 -1177 1177 6 -1178 1177 -1 -1197 1177 -1 -1577 1177 -1 -1178 1178 6 -1179 1178 -1 -1198 1178 -1 -1578 1178 -1 -1179 1179 6 -1180 1179 -1 -1199 1179 -1 -1579 1179 -1 -1180 1180 6 -1200 1180 -1 -1580 1180 -1 -1181 1181 6 -1182 1181 -1 -1581 1181 -1 -1182 1182 6 -1183 1182 -1 -1582 1182 -1 -1183 1183 6 -1184 1183 -1 -1583 1183 -1 -1184 1184 6 -1185 1184 -1 -1584 1184 -1 -1185 1185 6 -1186 1185 -1 -1585 1185 -1 -1186 1186 6 -1187 1186 -1 -1586 1186 -1 -1187 1187 6 -1188 1187 -1 -1587 1187 -1 -1188 1188 6 -1189 1188 -1 -1588 1188 -1 -1189 1189 6 -1190 1189 -1 -1589 1189 -1 -1190 1190 6 -1191 1190 -1 -1590 1190 -1 -1191 1191 6 -1192 1191 -1 -1591 1191 -1 -1192 1192 6 -1193 1192 -1 -1592 1192 -1 -1193 1193 6 -1194 1193 -1 -1593 1193 -1 -1194 1194 6 -1195 1194 -1 -1594 1194 -1 -1195 1195 6 -1196 1195 -1 -1595 1195 -1 -1196 1196 6 -1197 1196 -1 -1596 1196 -1 -1197 1197 6 -1198 1197 -1 -1597 1197 -1 -1198 1198 6 -1199 1198 -1 -1598 1198 -1 -1199 1199 6 -1200 1199 -1 -1599 1199 -1 -1200 1200 6 -1600 1200 -1 -1201 1201 6 -1202 1201 -1 -1221 1201 -1 -1601 1201 -1 -1202 1202 6 -1203 1202 -1 -1222 1202 -1 -1602 1202 -1 -1203 1203 6 -1204 1203 -1 -1223 1203 -1 -1603 1203 -1 -1204 1204 6 -1205 1204 -1 -1224 1204 -1 -1604 1204 -1 -1205 1205 6 -1206 1205 -1 -1225 1205 -1 -1605 1205 -1 -1206 1206 6 -1207 1206 -1 -1226 1206 -1 -1606 1206 -1 -1207 1207 6 -1208 1207 -1 -1227 1207 -1 -1607 1207 -1 -1208 1208 6 -1209 1208 -1 -1228 1208 -1 -1608 1208 -1 -1209 1209 6 -1210 1209 -1 -1229 1209 -1 -1609 1209 -1 -1210 1210 6 -1211 1210 -1 -1230 1210 -1 -1610 1210 -1 -1211 1211 6 -1212 1211 -1 -1231 1211 -1 -1611 1211 -1 -1212 1212 6 -1213 1212 -1 -1232 1212 -1 -1612 1212 -1 -1213 1213 6 -1214 1213 -1 -1233 1213 -1 -1613 1213 -1 -1214 1214 6 -1215 1214 -1 -1234 1214 -1 -1614 1214 -1 -1215 1215 6 -1216 1215 -1 -1235 1215 -1 -1615 1215 -1 -1216 1216 6 -1217 1216 -1 -1236 1216 -1 -1616 1216 -1 -1217 1217 6 -1218 1217 -1 -1237 1217 -1 -1617 1217 -1 -1218 1218 6 -1219 1218 -1 -1238 1218 -1 -1618 1218 -1 -1219 1219 6 -1220 1219 -1 -1239 1219 -1 -1619 1219 -1 -1220 1220 6 -1240 1220 -1 -1620 1220 -1 -1221 1221 6 -1222 1221 -1 -1241 1221 -1 -1621 1221 -1 -1222 1222 6 -1223 1222 -1 -1242 1222 -1 -1622 1222 -1 -1223 1223 6 -1224 1223 -1 -1243 1223 -1 -1623 1223 -1 -1224 1224 6 -1225 1224 -1 -1244 1224 -1 -1624 1224 -1 -1225 1225 6 -1226 1225 -1 -1245 1225 -1 -1625 1225 -1 -1226 1226 6 -1227 1226 -1 -1246 1226 -1 -1626 1226 -1 -1227 1227 6 -1228 1227 -1 -1247 1227 -1 -1627 1227 -1 -1228 1228 6 -1229 1228 -1 -1248 1228 -1 -1628 1228 -1 -1229 1229 6 -1230 1229 -1 -1249 1229 -1 -1629 1229 -1 -1230 1230 6 -1231 1230 -1 -1250 1230 -1 -1630 1230 -1 -1231 1231 6 -1232 1231 -1 -1251 1231 -1 -1631 1231 -1 -1232 1232 6 -1233 1232 -1 -1252 1232 -1 -1632 1232 -1 -1233 1233 6 -1234 1233 -1 -1253 1233 -1 -1633 1233 -1 -1234 1234 6 -1235 1234 -1 -1254 1234 -1 -1634 1234 -1 -1235 1235 6 -1236 1235 -1 -1255 1235 -1 -1635 1235 -1 -1236 1236 6 -1237 1236 -1 -1256 1236 -1 -1636 1236 -1 -1237 1237 6 -1238 1237 -1 -1257 1237 -1 -1637 1237 -1 -1238 1238 6 -1239 1238 -1 -1258 1238 -1 -1638 1238 -1 -1239 1239 6 -1240 1239 -1 -1259 1239 -1 -1639 1239 -1 -1240 1240 6 -1260 1240 -1 -1640 1240 -1 -1241 1241 6 -1242 1241 -1 -1261 1241 -1 -1641 1241 -1 -1242 1242 6 -1243 1242 -1 -1262 1242 -1 -1642 1242 -1 -1243 1243 6 -1244 1243 -1 -1263 1243 -1 -1643 1243 -1 -1244 1244 6 -1245 1244 -1 -1264 1244 -1 -1644 1244 -1 -1245 1245 6 -1246 1245 -1 -1265 1245 -1 -1645 1245 -1 -1246 1246 6 -1247 1246 -1 -1266 1246 -1 -1646 1246 -1 -1247 1247 6 -1248 1247 -1 -1267 1247 -1 -1647 1247 -1 -1248 1248 6 -1249 1248 -1 -1268 1248 -1 -1648 1248 -1 -1249 1249 6 -1250 1249 -1 -1269 1249 -1 -1649 1249 -1 -1250 1250 6 -1251 1250 -1 -1270 1250 -1 -1650 1250 -1 -1251 1251 6 -1252 1251 -1 -1271 1251 -1 -1651 1251 -1 -1252 1252 6 -1253 1252 -1 -1272 1252 -1 -1652 1252 -1 -1253 1253 6 -1254 1253 -1 -1273 1253 -1 -1653 1253 -1 -1254 1254 6 -1255 1254 -1 -1274 1254 -1 -1654 1254 -1 -1255 1255 6 -1256 1255 -1 -1275 1255 -1 -1655 1255 -1 -1256 1256 6 -1257 1256 -1 -1276 1256 -1 -1656 1256 -1 -1257 1257 6 -1258 1257 -1 -1277 1257 -1 -1657 1257 -1 -1258 1258 6 -1259 1258 -1 -1278 1258 -1 -1658 1258 -1 -1259 1259 6 -1260 1259 -1 -1279 1259 -1 -1659 1259 -1 -1260 1260 6 -1280 1260 -1 -1660 1260 -1 -1261 1261 6 -1262 1261 -1 -1281 1261 -1 -1661 1261 -1 -1262 1262 6 -1263 1262 -1 -1282 1262 -1 -1662 1262 -1 -1263 1263 6 -1264 1263 -1 -1283 1263 -1 -1663 1263 -1 -1264 1264 6 -1265 1264 -1 -1284 1264 -1 -1664 1264 -1 -1265 1265 6 -1266 1265 -1 -1285 1265 -1 -1665 1265 -1 -1266 1266 6 -1267 1266 -1 -1286 1266 -1 -1666 1266 -1 -1267 1267 6 -1268 1267 -1 -1287 1267 -1 -1667 1267 -1 -1268 1268 6 -1269 1268 -1 -1288 1268 -1 -1668 1268 -1 -1269 1269 6 -1270 1269 -1 -1289 1269 -1 -1669 1269 -1 -1270 1270 6 -1271 1270 -1 -1290 1270 -1 -1670 1270 -1 -1271 1271 6 -1272 1271 -1 -1291 1271 -1 -1671 1271 -1 -1272 1272 6 -1273 1272 -1 -1292 1272 -1 -1672 1272 -1 -1273 1273 6 -1274 1273 -1 -1293 1273 -1 -1673 1273 -1 -1274 1274 6 -1275 1274 -1 -1294 1274 -1 -1674 1274 -1 -1275 1275 6 -1276 1275 -1 -1295 1275 -1 -1675 1275 -1 -1276 1276 6 -1277 1276 -1 -1296 1276 -1 -1676 1276 -1 -1277 1277 6 -1278 1277 -1 -1297 1277 -1 -1677 1277 -1 -1278 1278 6 -1279 1278 -1 -1298 1278 -1 -1678 1278 -1 -1279 1279 6 -1280 1279 -1 -1299 1279 -1 -1679 1279 -1 -1280 1280 6 -1300 1280 -1 -1680 1280 -1 -1281 1281 6 -1282 1281 -1 -1301 1281 -1 -1681 1281 -1 -1282 1282 6 -1283 1282 -1 -1302 1282 -1 -1682 1282 -1 -1283 1283 6 -1284 1283 -1 -1303 1283 -1 -1683 1283 -1 -1284 1284 6 -1285 1284 -1 -1304 1284 -1 -1684 1284 -1 -1285 1285 6 -1286 1285 -1 -1305 1285 -1 -1685 1285 -1 -1286 1286 6 -1287 1286 -1 -1306 1286 -1 -1686 1286 -1 -1287 1287 6 -1288 1287 -1 -1307 1287 -1 -1687 1287 -1 -1288 1288 6 -1289 1288 -1 -1308 1288 -1 -1688 1288 -1 -1289 1289 6 -1290 1289 -1 -1309 1289 -1 -1689 1289 -1 -1290 1290 6 -1291 1290 -1 -1310 1290 -1 -1690 1290 -1 -1291 1291 6 -1292 1291 -1 -1311 1291 -1 -1691 1291 -1 -1292 1292 6 -1293 1292 -1 -1312 1292 -1 -1692 1292 -1 -1293 1293 6 -1294 1293 -1 -1313 1293 -1 -1693 1293 -1 -1294 1294 6 -1295 1294 -1 -1314 1294 -1 -1694 1294 -1 -1295 1295 6 -1296 1295 -1 -1315 1295 -1 -1695 1295 -1 -1296 1296 6 -1297 1296 -1 -1316 1296 -1 -1696 1296 -1 -1297 1297 6 -1298 1297 -1 -1317 1297 -1 -1697 1297 -1 -1298 1298 6 -1299 1298 -1 -1318 1298 -1 -1698 1298 -1 -1299 1299 6 -1300 1299 -1 -1319 1299 -1 -1699 1299 -1 -1300 1300 6 -1320 1300 -1 -1700 1300 -1 -1301 1301 6 -1302 1301 -1 -1321 1301 -1 -1701 1301 -1 -1302 1302 6 -1303 1302 -1 -1322 1302 -1 -1702 1302 -1 -1303 1303 6 -1304 1303 -1 -1323 1303 -1 -1703 1303 -1 -1304 1304 6 -1305 1304 -1 -1324 1304 -1 -1704 1304 -1 -1305 1305 6 -1306 1305 -1 -1325 1305 -1 -1705 1305 -1 -1306 1306 6 -1307 1306 -1 -1326 1306 -1 -1706 1306 -1 -1307 1307 6 -1308 1307 -1 -1327 1307 -1 -1707 1307 -1 -1308 1308 6 -1309 1308 -1 -1328 1308 -1 -1708 1308 -1 -1309 1309 6 -1310 1309 -1 -1329 1309 -1 -1709 1309 -1 -1310 1310 6 -1311 1310 -1 -1330 1310 -1 -1710 1310 -1 -1311 1311 6 -1312 1311 -1 -1331 1311 -1 -1711 1311 -1 -1312 1312 6 -1313 1312 -1 -1332 1312 -1 -1712 1312 -1 -1313 1313 6 -1314 1313 -1 -1333 1313 -1 -1713 1313 -1 -1314 1314 6 -1315 1314 -1 -1334 1314 -1 -1714 1314 -1 -1315 1315 6 -1316 1315 -1 -1335 1315 -1 -1715 1315 -1 -1316 1316 6 -1317 1316 -1 -1336 1316 -1 -1716 1316 -1 -1317 1317 6 -1318 1317 -1 -1337 1317 -1 -1717 1317 -1 -1318 1318 6 -1319 1318 -1 -1338 1318 -1 -1718 1318 -1 -1319 1319 6 -1320 1319 -1 -1339 1319 -1 -1719 1319 -1 -1320 1320 6 -1340 1320 -1 -1720 1320 -1 -1321 1321 6 -1322 1321 -1 -1341 1321 -1 -1721 1321 -1 -1322 1322 6 -1323 1322 -1 -1342 1322 -1 -1722 1322 -1 -1323 1323 6 -1324 1323 -1 -1343 1323 -1 -1723 1323 -1 -1324 1324 6 -1325 1324 -1 -1344 1324 -1 -1724 1324 -1 -1325 1325 6 -1326 1325 -1 -1345 1325 -1 -1725 1325 -1 -1326 1326 6 -1327 1326 -1 -1346 1326 -1 -1726 1326 -1 -1327 1327 6 -1328 1327 -1 -1347 1327 -1 -1727 1327 -1 -1328 1328 6 -1329 1328 -1 -1348 1328 -1 -1728 1328 -1 -1329 1329 6 -1330 1329 -1 -1349 1329 -1 -1729 1329 -1 -1330 1330 6 -1331 1330 -1 -1350 1330 -1 -1730 1330 -1 -1331 1331 6 -1332 1331 -1 -1351 1331 -1 -1731 1331 -1 -1332 1332 6 -1333 1332 -1 -1352 1332 -1 -1732 1332 -1 -1333 1333 6 -1334 1333 -1 -1353 1333 -1 -1733 1333 -1 -1334 1334 6 -1335 1334 -1 -1354 1334 -1 -1734 1334 -1 -1335 1335 6 -1336 1335 -1 -1355 1335 -1 -1735 1335 -1 -1336 1336 6 -1337 1336 -1 -1356 1336 -1 -1736 1336 -1 -1337 1337 6 -1338 1337 -1 -1357 1337 -1 -1737 1337 -1 -1338 1338 6 -1339 1338 -1 -1358 1338 -1 -1738 1338 -1 -1339 1339 6 -1340 1339 -1 -1359 1339 -1 -1739 1339 -1 -1340 1340 6 -1360 1340 -1 -1740 1340 -1 -1341 1341 6 -1342 1341 -1 -1361 1341 -1 -1741 1341 -1 -1342 1342 6 -1343 1342 -1 -1362 1342 -1 -1742 1342 -1 -1343 1343 6 -1344 1343 -1 -1363 1343 -1 -1743 1343 -1 -1344 1344 6 -1345 1344 -1 -1364 1344 -1 -1744 1344 -1 -1345 1345 6 -1346 1345 -1 -1365 1345 -1 -1745 1345 -1 -1346 1346 6 -1347 1346 -1 -1366 1346 -1 -1746 1346 -1 -1347 1347 6 -1348 1347 -1 -1367 1347 -1 -1747 1347 -1 -1348 1348 6 -1349 1348 -1 -1368 1348 -1 -1748 1348 -1 -1349 1349 6 -1350 1349 -1 -1369 1349 -1 -1749 1349 -1 -1350 1350 6 -1351 1350 -1 -1370 1350 -1 -1750 1350 -1 -1351 1351 6 -1352 1351 -1 -1371 1351 -1 -1751 1351 -1 -1352 1352 6 -1353 1352 -1 -1372 1352 -1 -1752 1352 -1 -1353 1353 6 -1354 1353 -1 -1373 1353 -1 -1753 1353 -1 -1354 1354 6 -1355 1354 -1 -1374 1354 -1 -1754 1354 -1 -1355 1355 6 -1356 1355 -1 -1375 1355 -1 -1755 1355 -1 -1356 1356 6 -1357 1356 -1 -1376 1356 -1 -1756 1356 -1 -1357 1357 6 -1358 1357 -1 -1377 1357 -1 -1757 1357 -1 -1358 1358 6 -1359 1358 -1 -1378 1358 -1 -1758 1358 -1 -1359 1359 6 -1360 1359 -1 -1379 1359 -1 -1759 1359 -1 -1360 1360 6 -1380 1360 -1 -1760 1360 -1 -1361 1361 6 -1362 1361 -1 -1381 1361 -1 -1761 1361 -1 -1362 1362 6 -1363 1362 -1 -1382 1362 -1 -1762 1362 -1 -1363 1363 6 -1364 1363 -1 -1383 1363 -1 -1763 1363 -1 -1364 1364 6 -1365 1364 -1 -1384 1364 -1 -1764 1364 -1 -1365 1365 6 -1366 1365 -1 -1385 1365 -1 -1765 1365 -1 -1366 1366 6 -1367 1366 -1 -1386 1366 -1 -1766 1366 -1 -1367 1367 6 -1368 1367 -1 -1387 1367 -1 -1767 1367 -1 -1368 1368 6 -1369 1368 -1 -1388 1368 -1 -1768 1368 -1 -1369 1369 6 -1370 1369 -1 -1389 1369 -1 -1769 1369 -1 -1370 1370 6 -1371 1370 -1 -1390 1370 -1 -1770 1370 -1 -1371 1371 6 -1372 1371 -1 -1391 1371 -1 -1771 1371 -1 -1372 1372 6 -1373 1372 -1 -1392 1372 -1 -1772 1372 -1 -1373 1373 6 -1374 1373 -1 -1393 1373 -1 -1773 1373 -1 -1374 1374 6 -1375 1374 -1 -1394 1374 -1 -1774 1374 -1 -1375 1375 6 -1376 1375 -1 -1395 1375 -1 -1775 1375 -1 -1376 1376 6 -1377 1376 -1 -1396 1376 -1 -1776 1376 -1 -1377 1377 6 -1378 1377 -1 -1397 1377 -1 -1777 1377 -1 -1378 1378 6 -1379 1378 -1 -1398 1378 -1 -1778 1378 -1 -1379 1379 6 -1380 1379 -1 -1399 1379 -1 -1779 1379 -1 -1380 1380 6 -1400 1380 -1 -1780 1380 -1 -1381 1381 6 -1382 1381 -1 -1401 1381 -1 -1781 1381 -1 -1382 1382 6 -1383 1382 -1 -1402 1382 -1 -1782 1382 -1 -1383 1383 6 -1384 1383 -1 -1403 1383 -1 -1783 1383 -1 -1384 1384 6 -1385 1384 -1 -1404 1384 -1 -1784 1384 -1 -1385 1385 6 -1386 1385 -1 -1405 1385 -1 -1785 1385 -1 -1386 1386 6 -1387 1386 -1 -1406 1386 -1 -1786 1386 -1 -1387 1387 6 -1388 1387 -1 -1407 1387 -1 -1787 1387 -1 -1388 1388 6 -1389 1388 -1 -1408 1388 -1 -1788 1388 -1 -1389 1389 6 -1390 1389 -1 -1409 1389 -1 -1789 1389 -1 -1390 1390 6 -1391 1390 -1 -1410 1390 -1 -1790 1390 -1 -1391 1391 6 -1392 1391 -1 -1411 1391 -1 -1791 1391 -1 -1392 1392 6 -1393 1392 -1 -1412 1392 -1 -1792 1392 -1 -1393 1393 6 -1394 1393 -1 -1413 1393 -1 -1793 1393 -1 -1394 1394 6 -1395 1394 -1 -1414 1394 -1 -1794 1394 -1 -1395 1395 6 -1396 1395 -1 -1415 1395 -1 -1795 1395 -1 -1396 1396 6 -1397 1396 -1 -1416 1396 -1 -1796 1396 -1 -1397 1397 6 -1398 1397 -1 -1417 1397 -1 -1797 1397 -1 -1398 1398 6 -1399 1398 -1 -1418 1398 -1 -1798 1398 -1 -1399 1399 6 -1400 1399 -1 -1419 1399 -1 -1799 1399 -1 -1400 1400 6 -1420 1400 -1 -1800 1400 -1 -1401 1401 6 -1402 1401 -1 -1421 1401 -1 -1801 1401 -1 -1402 1402 6 -1403 1402 -1 -1422 1402 -1 -1802 1402 -1 -1403 1403 6 -1404 1403 -1 -1423 1403 -1 -1803 1403 -1 -1404 1404 6 -1405 1404 -1 -1424 1404 -1 -1804 1404 -1 -1405 1405 6 -1406 1405 -1 -1425 1405 -1 -1805 1405 -1 -1406 1406 6 -1407 1406 -1 -1426 1406 -1 -1806 1406 -1 -1407 1407 6 -1408 1407 -1 -1427 1407 -1 -1807 1407 -1 -1408 1408 6 -1409 1408 -1 -1428 1408 -1 -1808 1408 -1 -1409 1409 6 -1410 1409 -1 -1429 1409 -1 -1809 1409 -1 -1410 1410 6 -1411 1410 -1 -1430 1410 -1 -1810 1410 -1 -1411 1411 6 -1412 1411 -1 -1431 1411 -1 -1811 1411 -1 -1412 1412 6 -1413 1412 -1 -1432 1412 -1 -1812 1412 -1 -1413 1413 6 -1414 1413 -1 -1433 1413 -1 -1813 1413 -1 -1414 1414 6 -1415 1414 -1 -1434 1414 -1 -1814 1414 -1 -1415 1415 6 -1416 1415 -1 -1435 1415 -1 -1815 1415 -1 -1416 1416 6 -1417 1416 -1 -1436 1416 -1 -1816 1416 -1 -1417 1417 6 -1418 1417 -1 -1437 1417 -1 -1817 1417 -1 -1418 1418 6 -1419 1418 -1 -1438 1418 -1 -1818 1418 -1 -1419 1419 6 -1420 1419 -1 -1439 1419 -1 -1819 1419 -1 -1420 1420 6 -1440 1420 -1 -1820 1420 -1 -1421 1421 6 -1422 1421 -1 -1441 1421 -1 -1821 1421 -1 -1422 1422 6 -1423 1422 -1 -1442 1422 -1 -1822 1422 -1 -1423 1423 6 -1424 1423 -1 -1443 1423 -1 -1823 1423 -1 -1424 1424 6 -1425 1424 -1 -1444 1424 -1 -1824 1424 -1 -1425 1425 6 -1426 1425 -1 -1445 1425 -1 -1825 1425 -1 -1426 1426 6 -1427 1426 -1 -1446 1426 -1 -1826 1426 -1 -1427 1427 6 -1428 1427 -1 -1447 1427 -1 -1827 1427 -1 -1428 1428 6 -1429 1428 -1 -1448 1428 -1 -1828 1428 -1 -1429 1429 6 -1430 1429 -1 -1449 1429 -1 -1829 1429 -1 -1430 1430 6 -1431 1430 -1 -1450 1430 -1 -1830 1430 -1 -1431 1431 6 -1432 1431 -1 -1451 1431 -1 -1831 1431 -1 -1432 1432 6 -1433 1432 -1 -1452 1432 -1 -1832 1432 -1 -1433 1433 6 -1434 1433 -1 -1453 1433 -1 -1833 1433 -1 -1434 1434 6 -1435 1434 -1 -1454 1434 -1 -1834 1434 -1 -1435 1435 6 -1436 1435 -1 -1455 1435 -1 -1835 1435 -1 -1436 1436 6 -1437 1436 -1 -1456 1436 -1 -1836 1436 -1 -1437 1437 6 -1438 1437 -1 -1457 1437 -1 -1837 1437 -1 -1438 1438 6 -1439 1438 -1 -1458 1438 -1 -1838 1438 -1 -1439 1439 6 -1440 1439 -1 -1459 1439 -1 -1839 1439 -1 -1440 1440 6 -1460 1440 -1 -1840 1440 -1 -1441 1441 6 -1442 1441 -1 -1461 1441 -1 -1841 1441 -1 -1442 1442 6 -1443 1442 -1 -1462 1442 -1 -1842 1442 -1 -1443 1443 6 -1444 1443 -1 -1463 1443 -1 -1843 1443 -1 -1444 1444 6 -1445 1444 -1 -1464 1444 -1 -1844 1444 -1 -1445 1445 6 -1446 1445 -1 -1465 1445 -1 -1845 1445 -1 -1446 1446 6 -1447 1446 -1 -1466 1446 -1 -1846 1446 -1 -1447 1447 6 -1448 1447 -1 -1467 1447 -1 -1847 1447 -1 -1448 1448 6 -1449 1448 -1 -1468 1448 -1 -1848 1448 -1 -1449 1449 6 -1450 1449 -1 -1469 1449 -1 -1849 1449 -1 -1450 1450 6 -1451 1450 -1 -1470 1450 -1 -1850 1450 -1 -1451 1451 6 -1452 1451 -1 -1471 1451 -1 -1851 1451 -1 -1452 1452 6 -1453 1452 -1 -1472 1452 -1 -1852 1452 -1 -1453 1453 6 -1454 1453 -1 -1473 1453 -1 -1853 1453 -1 -1454 1454 6 -1455 1454 -1 -1474 1454 -1 -1854 1454 -1 -1455 1455 6 -1456 1455 -1 -1475 1455 -1 -1855 1455 -1 -1456 1456 6 -1457 1456 -1 -1476 1456 -1 -1856 1456 -1 -1457 1457 6 -1458 1457 -1 -1477 1457 -1 -1857 1457 -1 -1458 1458 6 -1459 1458 -1 -1478 1458 -1 -1858 1458 -1 -1459 1459 6 -1460 1459 -1 -1479 1459 -1 -1859 1459 -1 -1460 1460 6 -1480 1460 -1 -1860 1460 -1 -1461 1461 6 -1462 1461 -1 -1481 1461 -1 -1861 1461 -1 -1462 1462 6 -1463 1462 -1 -1482 1462 -1 -1862 1462 -1 -1463 1463 6 -1464 1463 -1 -1483 1463 -1 -1863 1463 -1 -1464 1464 6 -1465 1464 -1 -1484 1464 -1 -1864 1464 -1 -1465 1465 6 -1466 1465 -1 -1485 1465 -1 -1865 1465 -1 -1466 1466 6 -1467 1466 -1 -1486 1466 -1 -1866 1466 -1 -1467 1467 6 -1468 1467 -1 -1487 1467 -1 -1867 1467 -1 -1468 1468 6 -1469 1468 -1 -1488 1468 -1 -1868 1468 -1 -1469 1469 6 -1470 1469 -1 -1489 1469 -1 -1869 1469 -1 -1470 1470 6 -1471 1470 -1 -1490 1470 -1 -1870 1470 -1 -1471 1471 6 -1472 1471 -1 -1491 1471 -1 -1871 1471 -1 -1472 1472 6 -1473 1472 -1 -1492 1472 -1 -1872 1472 -1 -1473 1473 6 -1474 1473 -1 -1493 1473 -1 -1873 1473 -1 -1474 1474 6 -1475 1474 -1 -1494 1474 -1 -1874 1474 -1 -1475 1475 6 -1476 1475 -1 -1495 1475 -1 -1875 1475 -1 -1476 1476 6 -1477 1476 -1 -1496 1476 -1 -1876 1476 -1 -1477 1477 6 -1478 1477 -1 -1497 1477 -1 -1877 1477 -1 -1478 1478 6 -1479 1478 -1 -1498 1478 -1 -1878 1478 -1 -1479 1479 6 -1480 1479 -1 -1499 1479 -1 -1879 1479 -1 -1480 1480 6 -1500 1480 -1 -1880 1480 -1 -1481 1481 6 -1482 1481 -1 -1501 1481 -1 -1881 1481 -1 -1482 1482 6 -1483 1482 -1 -1502 1482 -1 -1882 1482 -1 -1483 1483 6 -1484 1483 -1 -1503 1483 -1 -1883 1483 -1 -1484 1484 6 -1485 1484 -1 -1504 1484 -1 -1884 1484 -1 -1485 1485 6 -1486 1485 -1 -1505 1485 -1 -1885 1485 -1 -1486 1486 6 -1487 1486 -1 -1506 1486 -1 -1886 1486 -1 -1487 1487 6 -1488 1487 -1 -1507 1487 -1 -1887 1487 -1 -1488 1488 6 -1489 1488 -1 -1508 1488 -1 -1888 1488 -1 -1489 1489 6 -1490 1489 -1 -1509 1489 -1 -1889 1489 -1 -1490 1490 6 -1491 1490 -1 -1510 1490 -1 -1890 1490 -1 -1491 1491 6 -1492 1491 -1 -1511 1491 -1 -1891 1491 -1 -1492 1492 6 -1493 1492 -1 -1512 1492 -1 -1892 1492 -1 -1493 1493 6 -1494 1493 -1 -1513 1493 -1 -1893 1493 -1 -1494 1494 6 -1495 1494 -1 -1514 1494 -1 -1894 1494 -1 -1495 1495 6 -1496 1495 -1 -1515 1495 -1 -1895 1495 -1 -1496 1496 6 -1497 1496 -1 -1516 1496 -1 -1896 1496 -1 -1497 1497 6 -1498 1497 -1 -1517 1497 -1 -1897 1497 -1 -1498 1498 6 -1499 1498 -1 -1518 1498 -1 -1898 1498 -1 -1499 1499 6 -1500 1499 -1 -1519 1499 -1 -1899 1499 -1 -1500 1500 6 -1520 1500 -1 -1900 1500 -1 -1501 1501 6 -1502 1501 -1 -1521 1501 -1 -1901 1501 -1 -1502 1502 6 -1503 1502 -1 -1522 1502 -1 -1902 1502 -1 -1503 1503 6 -1504 1503 -1 -1523 1503 -1 -1903 1503 -1 -1504 1504 6 -1505 1504 -1 -1524 1504 -1 -1904 1504 -1 -1505 1505 6 -1506 1505 -1 -1525 1505 -1 -1905 1505 -1 -1506 1506 6 -1507 1506 -1 -1526 1506 -1 -1906 1506 -1 -1507 1507 6 -1508 1507 -1 -1527 1507 -1 -1907 1507 -1 -1508 1508 6 -1509 1508 -1 -1528 1508 -1 -1908 1508 -1 -1509 1509 6 -1510 1509 -1 -1529 1509 -1 -1909 1509 -1 -1510 1510 6 -1511 1510 -1 -1530 1510 -1 -1910 1510 -1 -1511 1511 6 -1512 1511 -1 -1531 1511 -1 -1911 1511 -1 -1512 1512 6 -1513 1512 -1 -1532 1512 -1 -1912 1512 -1 -1513 1513 6 -1514 1513 -1 -1533 1513 -1 -1913 1513 -1 -1514 1514 6 -1515 1514 -1 -1534 1514 -1 -1914 1514 -1 -1515 1515 6 -1516 1515 -1 -1535 1515 -1 -1915 1515 -1 -1516 1516 6 -1517 1516 -1 -1536 1516 -1 -1916 1516 -1 -1517 1517 6 -1518 1517 -1 -1537 1517 -1 -1917 1517 -1 -1518 1518 6 -1519 1518 -1 -1538 1518 -1 -1918 1518 -1 -1519 1519 6 -1520 1519 -1 -1539 1519 -1 -1919 1519 -1 -1520 1520 6 -1540 1520 -1 -1920 1520 -1 -1521 1521 6 -1522 1521 -1 -1541 1521 -1 -1921 1521 -1 -1522 1522 6 -1523 1522 -1 -1542 1522 -1 -1922 1522 -1 -1523 1523 6 -1524 1523 -1 -1543 1523 -1 -1923 1523 -1 -1524 1524 6 -1525 1524 -1 -1544 1524 -1 -1924 1524 -1 -1525 1525 6 -1526 1525 -1 -1545 1525 -1 -1925 1525 -1 -1526 1526 6 -1527 1526 -1 -1546 1526 -1 -1926 1526 -1 -1527 1527 6 -1528 1527 -1 -1547 1527 -1 -1927 1527 -1 -1528 1528 6 -1529 1528 -1 -1548 1528 -1 -1928 1528 -1 -1529 1529 6 -1530 1529 -1 -1549 1529 -1 -1929 1529 -1 -1530 1530 6 -1531 1530 -1 -1550 1530 -1 -1930 1530 -1 -1531 1531 6 -1532 1531 -1 -1551 1531 -1 -1931 1531 -1 -1532 1532 6 -1533 1532 -1 -1552 1532 -1 -1932 1532 -1 -1533 1533 6 -1534 1533 -1 -1553 1533 -1 -1933 1533 -1 -1534 1534 6 -1535 1534 -1 -1554 1534 -1 -1934 1534 -1 -1535 1535 6 -1536 1535 -1 -1555 1535 -1 -1935 1535 -1 -1536 1536 6 -1537 1536 -1 -1556 1536 -1 -1936 1536 -1 -1537 1537 6 -1538 1537 -1 -1557 1537 -1 -1937 1537 -1 -1538 1538 6 -1539 1538 -1 -1558 1538 -1 -1938 1538 -1 -1539 1539 6 -1540 1539 -1 -1559 1539 -1 -1939 1539 -1 -1540 1540 6 -1560 1540 -1 -1940 1540 -1 -1541 1541 6 -1542 1541 -1 -1561 1541 -1 -1941 1541 -1 -1542 1542 6 -1543 1542 -1 -1562 1542 -1 -1942 1542 -1 -1543 1543 6 -1544 1543 -1 -1563 1543 -1 -1943 1543 -1 -1544 1544 6 -1545 1544 -1 -1564 1544 -1 -1944 1544 -1 -1545 1545 6 -1546 1545 -1 -1565 1545 -1 -1945 1545 -1 -1546 1546 6 -1547 1546 -1 -1566 1546 -1 -1946 1546 -1 -1547 1547 6 -1548 1547 -1 -1567 1547 -1 -1947 1547 -1 -1548 1548 6 -1549 1548 -1 -1568 1548 -1 -1948 1548 -1 -1549 1549 6 -1550 1549 -1 -1569 1549 -1 -1949 1549 -1 -1550 1550 6 -1551 1550 -1 -1570 1550 -1 -1950 1550 -1 -1551 1551 6 -1552 1551 -1 -1571 1551 -1 -1951 1551 -1 -1552 1552 6 -1553 1552 -1 -1572 1552 -1 -1952 1552 -1 -1553 1553 6 -1554 1553 -1 -1573 1553 -1 -1953 1553 -1 -1554 1554 6 -1555 1554 -1 -1574 1554 -1 -1954 1554 -1 -1555 1555 6 -1556 1555 -1 -1575 1555 -1 -1955 1555 -1 -1556 1556 6 -1557 1556 -1 -1576 1556 -1 -1956 1556 -1 -1557 1557 6 -1558 1557 -1 -1577 1557 -1 -1957 1557 -1 -1558 1558 6 -1559 1558 -1 -1578 1558 -1 -1958 1558 -1 -1559 1559 6 -1560 1559 -1 -1579 1559 -1 -1959 1559 -1 -1560 1560 6 -1580 1560 -1 -1960 1560 -1 -1561 1561 6 -1562 1561 -1 -1581 1561 -1 -1961 1561 -1 -1562 1562 6 -1563 1562 -1 -1582 1562 -1 -1962 1562 -1 -1563 1563 6 -1564 1563 -1 -1583 1563 -1 -1963 1563 -1 -1564 1564 6 -1565 1564 -1 -1584 1564 -1 -1964 1564 -1 -1565 1565 6 -1566 1565 -1 -1585 1565 -1 -1965 1565 -1 -1566 1566 6 -1567 1566 -1 -1586 1566 -1 -1966 1566 -1 -1567 1567 6 -1568 1567 -1 -1587 1567 -1 -1967 1567 -1 -1568 1568 6 -1569 1568 -1 -1588 1568 -1 -1968 1568 -1 -1569 1569 6 -1570 1569 -1 -1589 1569 -1 -1969 1569 -1 -1570 1570 6 -1571 1570 -1 -1590 1570 -1 -1970 1570 -1 -1571 1571 6 -1572 1571 -1 -1591 1571 -1 -1971 1571 -1 -1572 1572 6 -1573 1572 -1 -1592 1572 -1 -1972 1572 -1 -1573 1573 6 -1574 1573 -1 -1593 1573 -1 -1973 1573 -1 -1574 1574 6 -1575 1574 -1 -1594 1574 -1 -1974 1574 -1 -1575 1575 6 -1576 1575 -1 -1595 1575 -1 -1975 1575 -1 -1576 1576 6 -1577 1576 -1 -1596 1576 -1 -1976 1576 -1 -1577 1577 6 -1578 1577 -1 -1597 1577 -1 -1977 1577 -1 -1578 1578 6 -1579 1578 -1 -1598 1578 -1 -1978 1578 -1 -1579 1579 6 -1580 1579 -1 -1599 1579 -1 -1979 1579 -1 -1580 1580 6 -1600 1580 -1 -1980 1580 -1 -1581 1581 6 -1582 1581 -1 -1981 1581 -1 -1582 1582 6 -1583 1582 -1 -1982 1582 -1 -1583 1583 6 -1584 1583 -1 -1983 1583 -1 -1584 1584 6 -1585 1584 -1 -1984 1584 -1 -1585 1585 6 -1586 1585 -1 -1985 1585 -1 -1586 1586 6 -1587 1586 -1 -1986 1586 -1 -1587 1587 6 -1588 1587 -1 -1987 1587 -1 -1588 1588 6 -1589 1588 -1 -1988 1588 -1 -1589 1589 6 -1590 1589 -1 -1989 1589 -1 -1590 1590 6 -1591 1590 -1 -1990 1590 -1 -1591 1591 6 -1592 1591 -1 -1991 1591 -1 -1592 1592 6 -1593 1592 -1 -1992 1592 -1 -1593 1593 6 -1594 1593 -1 -1993 1593 -1 -1594 1594 6 -1595 1594 -1 -1994 1594 -1 -1595 1595 6 -1596 1595 -1 -1995 1595 -1 -1596 1596 6 -1597 1596 -1 -1996 1596 -1 -1597 1597 6 -1598 1597 -1 -1997 1597 -1 -1598 1598 6 -1599 1598 -1 -1998 1598 -1 -1599 1599 6 -1600 1599 -1 -1999 1599 -1 -1600 1600 6 -2000 1600 -1 -1601 1601 6 -1602 1601 -1 -1621 1601 -1 -2001 1601 -1 -1602 1602 6 -1603 1602 -1 -1622 1602 -1 -2002 1602 -1 -1603 1603 6 -1604 1603 -1 -1623 1603 -1 -2003 1603 -1 -1604 1604 6 -1605 1604 -1 -1624 1604 -1 -2004 1604 -1 -1605 1605 6 -1606 1605 -1 -1625 1605 -1 -2005 1605 -1 -1606 1606 6 -1607 1606 -1 -1626 1606 -1 -2006 1606 -1 -1607 1607 6 -1608 1607 -1 -1627 1607 -1 -2007 1607 -1 -1608 1608 6 -1609 1608 -1 -1628 1608 -1 -2008 1608 -1 -1609 1609 6 -1610 1609 -1 -1629 1609 -1 -2009 1609 -1 -1610 1610 6 -1611 1610 -1 -1630 1610 -1 -2010 1610 -1 -1611 1611 6 -1612 1611 -1 -1631 1611 -1 -2011 1611 -1 -1612 1612 6 -1613 1612 -1 -1632 1612 -1 -2012 1612 -1 -1613 1613 6 -1614 1613 -1 -1633 1613 -1 -2013 1613 -1 -1614 1614 6 -1615 1614 -1 -1634 1614 -1 -2014 1614 -1 -1615 1615 6 -1616 1615 -1 -1635 1615 -1 -2015 1615 -1 -1616 1616 6 -1617 1616 -1 -1636 1616 -1 -2016 1616 -1 -1617 1617 6 -1618 1617 -1 -1637 1617 -1 -2017 1617 -1 -1618 1618 6 -1619 1618 -1 -1638 1618 -1 -2018 1618 -1 -1619 1619 6 -1620 1619 -1 -1639 1619 -1 -2019 1619 -1 -1620 1620 6 -1640 1620 -1 -2020 1620 -1 -1621 1621 6 -1622 1621 -1 -1641 1621 -1 -2021 1621 -1 -1622 1622 6 -1623 1622 -1 -1642 1622 -1 -2022 1622 -1 -1623 1623 6 -1624 1623 -1 -1643 1623 -1 -2023 1623 -1 -1624 1624 6 -1625 1624 -1 -1644 1624 -1 -2024 1624 -1 -1625 1625 6 -1626 1625 -1 -1645 1625 -1 -2025 1625 -1 -1626 1626 6 -1627 1626 -1 -1646 1626 -1 -2026 1626 -1 -1627 1627 6 -1628 1627 -1 -1647 1627 -1 -2027 1627 -1 -1628 1628 6 -1629 1628 -1 -1648 1628 -1 -2028 1628 -1 -1629 1629 6 -1630 1629 -1 -1649 1629 -1 -2029 1629 -1 -1630 1630 6 -1631 1630 -1 -1650 1630 -1 -2030 1630 -1 -1631 1631 6 -1632 1631 -1 -1651 1631 -1 -2031 1631 -1 -1632 1632 6 -1633 1632 -1 -1652 1632 -1 -2032 1632 -1 -1633 1633 6 -1634 1633 -1 -1653 1633 -1 -2033 1633 -1 -1634 1634 6 -1635 1634 -1 -1654 1634 -1 -2034 1634 -1 -1635 1635 6 -1636 1635 -1 -1655 1635 -1 -2035 1635 -1 -1636 1636 6 -1637 1636 -1 -1656 1636 -1 -2036 1636 -1 -1637 1637 6 -1638 1637 -1 -1657 1637 -1 -2037 1637 -1 -1638 1638 6 -1639 1638 -1 -1658 1638 -1 -2038 1638 -1 -1639 1639 6 -1640 1639 -1 -1659 1639 -1 -2039 1639 -1 -1640 1640 6 -1660 1640 -1 -2040 1640 -1 -1641 1641 6 -1642 1641 -1 -1661 1641 -1 -2041 1641 -1 -1642 1642 6 -1643 1642 -1 -1662 1642 -1 -2042 1642 -1 -1643 1643 6 -1644 1643 -1 -1663 1643 -1 -2043 1643 -1 -1644 1644 6 -1645 1644 -1 -1664 1644 -1 -2044 1644 -1 -1645 1645 6 -1646 1645 -1 -1665 1645 -1 -2045 1645 -1 -1646 1646 6 -1647 1646 -1 -1666 1646 -1 -2046 1646 -1 -1647 1647 6 -1648 1647 -1 -1667 1647 -1 -2047 1647 -1 -1648 1648 6 -1649 1648 -1 -1668 1648 -1 -2048 1648 -1 -1649 1649 6 -1650 1649 -1 -1669 1649 -1 -2049 1649 -1 -1650 1650 6 -1651 1650 -1 -1670 1650 -1 -2050 1650 -1 -1651 1651 6 -1652 1651 -1 -1671 1651 -1 -2051 1651 -1 -1652 1652 6 -1653 1652 -1 -1672 1652 -1 -2052 1652 -1 -1653 1653 6 -1654 1653 -1 -1673 1653 -1 -2053 1653 -1 -1654 1654 6 -1655 1654 -1 -1674 1654 -1 -2054 1654 -1 -1655 1655 6 -1656 1655 -1 -1675 1655 -1 -2055 1655 -1 -1656 1656 6 -1657 1656 -1 -1676 1656 -1 -2056 1656 -1 -1657 1657 6 -1658 1657 -1 -1677 1657 -1 -2057 1657 -1 -1658 1658 6 -1659 1658 -1 -1678 1658 -1 -2058 1658 -1 -1659 1659 6 -1660 1659 -1 -1679 1659 -1 -2059 1659 -1 -1660 1660 6 -1680 1660 -1 -2060 1660 -1 -1661 1661 6 -1662 1661 -1 -1681 1661 -1 -2061 1661 -1 -1662 1662 6 -1663 1662 -1 -1682 1662 -1 -2062 1662 -1 -1663 1663 6 -1664 1663 -1 -1683 1663 -1 -2063 1663 -1 -1664 1664 6 -1665 1664 -1 -1684 1664 -1 -2064 1664 -1 -1665 1665 6 -1666 1665 -1 -1685 1665 -1 -2065 1665 -1 -1666 1666 6 -1667 1666 -1 -1686 1666 -1 -2066 1666 -1 -1667 1667 6 -1668 1667 -1 -1687 1667 -1 -2067 1667 -1 -1668 1668 6 -1669 1668 -1 -1688 1668 -1 -2068 1668 -1 -1669 1669 6 -1670 1669 -1 -1689 1669 -1 -2069 1669 -1 -1670 1670 6 -1671 1670 -1 -1690 1670 -1 -2070 1670 -1 -1671 1671 6 -1672 1671 -1 -1691 1671 -1 -2071 1671 -1 -1672 1672 6 -1673 1672 -1 -1692 1672 -1 -2072 1672 -1 -1673 1673 6 -1674 1673 -1 -1693 1673 -1 -2073 1673 -1 -1674 1674 6 -1675 1674 -1 -1694 1674 -1 -2074 1674 -1 -1675 1675 6 -1676 1675 -1 -1695 1675 -1 -2075 1675 -1 -1676 1676 6 -1677 1676 -1 -1696 1676 -1 -2076 1676 -1 -1677 1677 6 -1678 1677 -1 -1697 1677 -1 -2077 1677 -1 -1678 1678 6 -1679 1678 -1 -1698 1678 -1 -2078 1678 -1 -1679 1679 6 -1680 1679 -1 -1699 1679 -1 -2079 1679 -1 -1680 1680 6 -1700 1680 -1 -2080 1680 -1 -1681 1681 6 -1682 1681 -1 -1701 1681 -1 -2081 1681 -1 -1682 1682 6 -1683 1682 -1 -1702 1682 -1 -2082 1682 -1 -1683 1683 6 -1684 1683 -1 -1703 1683 -1 -2083 1683 -1 -1684 1684 6 -1685 1684 -1 -1704 1684 -1 -2084 1684 -1 -1685 1685 6 -1686 1685 -1 -1705 1685 -1 -2085 1685 -1 -1686 1686 6 -1687 1686 -1 -1706 1686 -1 -2086 1686 -1 -1687 1687 6 -1688 1687 -1 -1707 1687 -1 -2087 1687 -1 -1688 1688 6 -1689 1688 -1 -1708 1688 -1 -2088 1688 -1 -1689 1689 6 -1690 1689 -1 -1709 1689 -1 -2089 1689 -1 -1690 1690 6 -1691 1690 -1 -1710 1690 -1 -2090 1690 -1 -1691 1691 6 -1692 1691 -1 -1711 1691 -1 -2091 1691 -1 -1692 1692 6 -1693 1692 -1 -1712 1692 -1 -2092 1692 -1 -1693 1693 6 -1694 1693 -1 -1713 1693 -1 -2093 1693 -1 -1694 1694 6 -1695 1694 -1 -1714 1694 -1 -2094 1694 -1 -1695 1695 6 -1696 1695 -1 -1715 1695 -1 -2095 1695 -1 -1696 1696 6 -1697 1696 -1 -1716 1696 -1 -2096 1696 -1 -1697 1697 6 -1698 1697 -1 -1717 1697 -1 -2097 1697 -1 -1698 1698 6 -1699 1698 -1 -1718 1698 -1 -2098 1698 -1 -1699 1699 6 -1700 1699 -1 -1719 1699 -1 -2099 1699 -1 -1700 1700 6 -1720 1700 -1 -2100 1700 -1 -1701 1701 6 -1702 1701 -1 -1721 1701 -1 -2101 1701 -1 -1702 1702 6 -1703 1702 -1 -1722 1702 -1 -2102 1702 -1 -1703 1703 6 -1704 1703 -1 -1723 1703 -1 -2103 1703 -1 -1704 1704 6 -1705 1704 -1 -1724 1704 -1 -2104 1704 -1 -1705 1705 6 -1706 1705 -1 -1725 1705 -1 -2105 1705 -1 -1706 1706 6 -1707 1706 -1 -1726 1706 -1 -2106 1706 -1 -1707 1707 6 -1708 1707 -1 -1727 1707 -1 -2107 1707 -1 -1708 1708 6 -1709 1708 -1 -1728 1708 -1 -2108 1708 -1 -1709 1709 6 -1710 1709 -1 -1729 1709 -1 -2109 1709 -1 -1710 1710 6 -1711 1710 -1 -1730 1710 -1 -2110 1710 -1 -1711 1711 6 -1712 1711 -1 -1731 1711 -1 -2111 1711 -1 -1712 1712 6 -1713 1712 -1 -1732 1712 -1 -2112 1712 -1 -1713 1713 6 -1714 1713 -1 -1733 1713 -1 -2113 1713 -1 -1714 1714 6 -1715 1714 -1 -1734 1714 -1 -2114 1714 -1 -1715 1715 6 -1716 1715 -1 -1735 1715 -1 -2115 1715 -1 -1716 1716 6 -1717 1716 -1 -1736 1716 -1 -2116 1716 -1 -1717 1717 6 -1718 1717 -1 -1737 1717 -1 -2117 1717 -1 -1718 1718 6 -1719 1718 -1 -1738 1718 -1 -2118 1718 -1 -1719 1719 6 -1720 1719 -1 -1739 1719 -1 -2119 1719 -1 -1720 1720 6 -1740 1720 -1 -2120 1720 -1 -1721 1721 6 -1722 1721 -1 -1741 1721 -1 -2121 1721 -1 -1722 1722 6 -1723 1722 -1 -1742 1722 -1 -2122 1722 -1 -1723 1723 6 -1724 1723 -1 -1743 1723 -1 -2123 1723 -1 -1724 1724 6 -1725 1724 -1 -1744 1724 -1 -2124 1724 -1 -1725 1725 6 -1726 1725 -1 -1745 1725 -1 -2125 1725 -1 -1726 1726 6 -1727 1726 -1 -1746 1726 -1 -2126 1726 -1 -1727 1727 6 -1728 1727 -1 -1747 1727 -1 -2127 1727 -1 -1728 1728 6 -1729 1728 -1 -1748 1728 -1 -2128 1728 -1 -1729 1729 6 -1730 1729 -1 -1749 1729 -1 -2129 1729 -1 -1730 1730 6 -1731 1730 -1 -1750 1730 -1 -2130 1730 -1 -1731 1731 6 -1732 1731 -1 -1751 1731 -1 -2131 1731 -1 -1732 1732 6 -1733 1732 -1 -1752 1732 -1 -2132 1732 -1 -1733 1733 6 -1734 1733 -1 -1753 1733 -1 -2133 1733 -1 -1734 1734 6 -1735 1734 -1 -1754 1734 -1 -2134 1734 -1 -1735 1735 6 -1736 1735 -1 -1755 1735 -1 -2135 1735 -1 -1736 1736 6 -1737 1736 -1 -1756 1736 -1 -2136 1736 -1 -1737 1737 6 -1738 1737 -1 -1757 1737 -1 -2137 1737 -1 -1738 1738 6 -1739 1738 -1 -1758 1738 -1 -2138 1738 -1 -1739 1739 6 -1740 1739 -1 -1759 1739 -1 -2139 1739 -1 -1740 1740 6 -1760 1740 -1 -2140 1740 -1 -1741 1741 6 -1742 1741 -1 -1761 1741 -1 -2141 1741 -1 -1742 1742 6 -1743 1742 -1 -1762 1742 -1 -2142 1742 -1 -1743 1743 6 -1744 1743 -1 -1763 1743 -1 -2143 1743 -1 -1744 1744 6 -1745 1744 -1 -1764 1744 -1 -2144 1744 -1 -1745 1745 6 -1746 1745 -1 -1765 1745 -1 -2145 1745 -1 -1746 1746 6 -1747 1746 -1 -1766 1746 -1 -2146 1746 -1 -1747 1747 6 -1748 1747 -1 -1767 1747 -1 -2147 1747 -1 -1748 1748 6 -1749 1748 -1 -1768 1748 -1 -2148 1748 -1 -1749 1749 6 -1750 1749 -1 -1769 1749 -1 -2149 1749 -1 -1750 1750 6 -1751 1750 -1 -1770 1750 -1 -2150 1750 -1 -1751 1751 6 -1752 1751 -1 -1771 1751 -1 -2151 1751 -1 -1752 1752 6 -1753 1752 -1 -1772 1752 -1 -2152 1752 -1 -1753 1753 6 -1754 1753 -1 -1773 1753 -1 -2153 1753 -1 -1754 1754 6 -1755 1754 -1 -1774 1754 -1 -2154 1754 -1 -1755 1755 6 -1756 1755 -1 -1775 1755 -1 -2155 1755 -1 -1756 1756 6 -1757 1756 -1 -1776 1756 -1 -2156 1756 -1 -1757 1757 6 -1758 1757 -1 -1777 1757 -1 -2157 1757 -1 -1758 1758 6 -1759 1758 -1 -1778 1758 -1 -2158 1758 -1 -1759 1759 6 -1760 1759 -1 -1779 1759 -1 -2159 1759 -1 -1760 1760 6 -1780 1760 -1 -2160 1760 -1 -1761 1761 6 -1762 1761 -1 -1781 1761 -1 -2161 1761 -1 -1762 1762 6 -1763 1762 -1 -1782 1762 -1 -2162 1762 -1 -1763 1763 6 -1764 1763 -1 -1783 1763 -1 -2163 1763 -1 -1764 1764 6 -1765 1764 -1 -1784 1764 -1 -2164 1764 -1 -1765 1765 6 -1766 1765 -1 -1785 1765 -1 -2165 1765 -1 -1766 1766 6 -1767 1766 -1 -1786 1766 -1 -2166 1766 -1 -1767 1767 6 -1768 1767 -1 -1787 1767 -1 -2167 1767 -1 -1768 1768 6 -1769 1768 -1 -1788 1768 -1 -2168 1768 -1 -1769 1769 6 -1770 1769 -1 -1789 1769 -1 -2169 1769 -1 -1770 1770 6 -1771 1770 -1 -1790 1770 -1 -2170 1770 -1 -1771 1771 6 -1772 1771 -1 -1791 1771 -1 -2171 1771 -1 -1772 1772 6 -1773 1772 -1 -1792 1772 -1 -2172 1772 -1 -1773 1773 6 -1774 1773 -1 -1793 1773 -1 -2173 1773 -1 -1774 1774 6 -1775 1774 -1 -1794 1774 -1 -2174 1774 -1 -1775 1775 6 -1776 1775 -1 -1795 1775 -1 -2175 1775 -1 -1776 1776 6 -1777 1776 -1 -1796 1776 -1 -2176 1776 -1 -1777 1777 6 -1778 1777 -1 -1797 1777 -1 -2177 1777 -1 -1778 1778 6 -1779 1778 -1 -1798 1778 -1 -2178 1778 -1 -1779 1779 6 -1780 1779 -1 -1799 1779 -1 -2179 1779 -1 -1780 1780 6 -1800 1780 -1 -2180 1780 -1 -1781 1781 6 -1782 1781 -1 -1801 1781 -1 -2181 1781 -1 -1782 1782 6 -1783 1782 -1 -1802 1782 -1 -2182 1782 -1 -1783 1783 6 -1784 1783 -1 -1803 1783 -1 -2183 1783 -1 -1784 1784 6 -1785 1784 -1 -1804 1784 -1 -2184 1784 -1 -1785 1785 6 -1786 1785 -1 -1805 1785 -1 -2185 1785 -1 -1786 1786 6 -1787 1786 -1 -1806 1786 -1 -2186 1786 -1 -1787 1787 6 -1788 1787 -1 -1807 1787 -1 -2187 1787 -1 -1788 1788 6 -1789 1788 -1 -1808 1788 -1 -2188 1788 -1 -1789 1789 6 -1790 1789 -1 -1809 1789 -1 -2189 1789 -1 -1790 1790 6 -1791 1790 -1 -1810 1790 -1 -2190 1790 -1 -1791 1791 6 -1792 1791 -1 -1811 1791 -1 -2191 1791 -1 -1792 1792 6 -1793 1792 -1 -1812 1792 -1 -2192 1792 -1 -1793 1793 6 -1794 1793 -1 -1813 1793 -1 -2193 1793 -1 -1794 1794 6 -1795 1794 -1 -1814 1794 -1 -2194 1794 -1 -1795 1795 6 -1796 1795 -1 -1815 1795 -1 -2195 1795 -1 -1796 1796 6 -1797 1796 -1 -1816 1796 -1 -2196 1796 -1 -1797 1797 6 -1798 1797 -1 -1817 1797 -1 -2197 1797 -1 -1798 1798 6 -1799 1798 -1 -1818 1798 -1 -2198 1798 -1 -1799 1799 6 -1800 1799 -1 -1819 1799 -1 -2199 1799 -1 -1800 1800 6 -1820 1800 -1 -2200 1800 -1 -1801 1801 6 -1802 1801 -1 -1821 1801 -1 -2201 1801 -1 -1802 1802 6 -1803 1802 -1 -1822 1802 -1 -2202 1802 -1 -1803 1803 6 -1804 1803 -1 -1823 1803 -1 -2203 1803 -1 -1804 1804 6 -1805 1804 -1 -1824 1804 -1 -2204 1804 -1 -1805 1805 6 -1806 1805 -1 -1825 1805 -1 -2205 1805 -1 -1806 1806 6 -1807 1806 -1 -1826 1806 -1 -2206 1806 -1 -1807 1807 6 -1808 1807 -1 -1827 1807 -1 -2207 1807 -1 -1808 1808 6 -1809 1808 -1 -1828 1808 -1 -2208 1808 -1 -1809 1809 6 -1810 1809 -1 -1829 1809 -1 -2209 1809 -1 -1810 1810 6 -1811 1810 -1 -1830 1810 -1 -2210 1810 -1 -1811 1811 6 -1812 1811 -1 -1831 1811 -1 -2211 1811 -1 -1812 1812 6 -1813 1812 -1 -1832 1812 -1 -2212 1812 -1 -1813 1813 6 -1814 1813 -1 -1833 1813 -1 -2213 1813 -1 -1814 1814 6 -1815 1814 -1 -1834 1814 -1 -2214 1814 -1 -1815 1815 6 -1816 1815 -1 -1835 1815 -1 -2215 1815 -1 -1816 1816 6 -1817 1816 -1 -1836 1816 -1 -2216 1816 -1 -1817 1817 6 -1818 1817 -1 -1837 1817 -1 -2217 1817 -1 -1818 1818 6 -1819 1818 -1 -1838 1818 -1 -2218 1818 -1 -1819 1819 6 -1820 1819 -1 -1839 1819 -1 -2219 1819 -1 -1820 1820 6 -1840 1820 -1 -2220 1820 -1 -1821 1821 6 -1822 1821 -1 -1841 1821 -1 -2221 1821 -1 -1822 1822 6 -1823 1822 -1 -1842 1822 -1 -2222 1822 -1 -1823 1823 6 -1824 1823 -1 -1843 1823 -1 -2223 1823 -1 -1824 1824 6 -1825 1824 -1 -1844 1824 -1 -2224 1824 -1 -1825 1825 6 -1826 1825 -1 -1845 1825 -1 -2225 1825 -1 -1826 1826 6 -1827 1826 -1 -1846 1826 -1 -2226 1826 -1 -1827 1827 6 -1828 1827 -1 -1847 1827 -1 -2227 1827 -1 -1828 1828 6 -1829 1828 -1 -1848 1828 -1 -2228 1828 -1 -1829 1829 6 -1830 1829 -1 -1849 1829 -1 -2229 1829 -1 -1830 1830 6 -1831 1830 -1 -1850 1830 -1 -2230 1830 -1 -1831 1831 6 -1832 1831 -1 -1851 1831 -1 -2231 1831 -1 -1832 1832 6 -1833 1832 -1 -1852 1832 -1 -2232 1832 -1 -1833 1833 6 -1834 1833 -1 -1853 1833 -1 -2233 1833 -1 -1834 1834 6 -1835 1834 -1 -1854 1834 -1 -2234 1834 -1 -1835 1835 6 -1836 1835 -1 -1855 1835 -1 -2235 1835 -1 -1836 1836 6 -1837 1836 -1 -1856 1836 -1 -2236 1836 -1 -1837 1837 6 -1838 1837 -1 -1857 1837 -1 -2237 1837 -1 -1838 1838 6 -1839 1838 -1 -1858 1838 -1 -2238 1838 -1 -1839 1839 6 -1840 1839 -1 -1859 1839 -1 -2239 1839 -1 -1840 1840 6 -1860 1840 -1 -2240 1840 -1 -1841 1841 6 -1842 1841 -1 -1861 1841 -1 -2241 1841 -1 -1842 1842 6 -1843 1842 -1 -1862 1842 -1 -2242 1842 -1 -1843 1843 6 -1844 1843 -1 -1863 1843 -1 -2243 1843 -1 -1844 1844 6 -1845 1844 -1 -1864 1844 -1 -2244 1844 -1 -1845 1845 6 -1846 1845 -1 -1865 1845 -1 -2245 1845 -1 -1846 1846 6 -1847 1846 -1 -1866 1846 -1 -2246 1846 -1 -1847 1847 6 -1848 1847 -1 -1867 1847 -1 -2247 1847 -1 -1848 1848 6 -1849 1848 -1 -1868 1848 -1 -2248 1848 -1 -1849 1849 6 -1850 1849 -1 -1869 1849 -1 -2249 1849 -1 -1850 1850 6 -1851 1850 -1 -1870 1850 -1 -2250 1850 -1 -1851 1851 6 -1852 1851 -1 -1871 1851 -1 -2251 1851 -1 -1852 1852 6 -1853 1852 -1 -1872 1852 -1 -2252 1852 -1 -1853 1853 6 -1854 1853 -1 -1873 1853 -1 -2253 1853 -1 -1854 1854 6 -1855 1854 -1 -1874 1854 -1 -2254 1854 -1 -1855 1855 6 -1856 1855 -1 -1875 1855 -1 -2255 1855 -1 -1856 1856 6 -1857 1856 -1 -1876 1856 -1 -2256 1856 -1 -1857 1857 6 -1858 1857 -1 -1877 1857 -1 -2257 1857 -1 -1858 1858 6 -1859 1858 -1 -1878 1858 -1 -2258 1858 -1 -1859 1859 6 -1860 1859 -1 -1879 1859 -1 -2259 1859 -1 -1860 1860 6 -1880 1860 -1 -2260 1860 -1 -1861 1861 6 -1862 1861 -1 -1881 1861 -1 -2261 1861 -1 -1862 1862 6 -1863 1862 -1 -1882 1862 -1 -2262 1862 -1 -1863 1863 6 -1864 1863 -1 -1883 1863 -1 -2263 1863 -1 -1864 1864 6 -1865 1864 -1 -1884 1864 -1 -2264 1864 -1 -1865 1865 6 -1866 1865 -1 -1885 1865 -1 -2265 1865 -1 -1866 1866 6 -1867 1866 -1 -1886 1866 -1 -2266 1866 -1 -1867 1867 6 -1868 1867 -1 -1887 1867 -1 -2267 1867 -1 -1868 1868 6 -1869 1868 -1 -1888 1868 -1 -2268 1868 -1 -1869 1869 6 -1870 1869 -1 -1889 1869 -1 -2269 1869 -1 -1870 1870 6 -1871 1870 -1 -1890 1870 -1 -2270 1870 -1 -1871 1871 6 -1872 1871 -1 -1891 1871 -1 -2271 1871 -1 -1872 1872 6 -1873 1872 -1 -1892 1872 -1 -2272 1872 -1 -1873 1873 6 -1874 1873 -1 -1893 1873 -1 -2273 1873 -1 -1874 1874 6 -1875 1874 -1 -1894 1874 -1 -2274 1874 -1 -1875 1875 6 -1876 1875 -1 -1895 1875 -1 -2275 1875 -1 -1876 1876 6 -1877 1876 -1 -1896 1876 -1 -2276 1876 -1 -1877 1877 6 -1878 1877 -1 -1897 1877 -1 -2277 1877 -1 -1878 1878 6 -1879 1878 -1 -1898 1878 -1 -2278 1878 -1 -1879 1879 6 -1880 1879 -1 -1899 1879 -1 -2279 1879 -1 -1880 1880 6 -1900 1880 -1 -2280 1880 -1 -1881 1881 6 -1882 1881 -1 -1901 1881 -1 -2281 1881 -1 -1882 1882 6 -1883 1882 -1 -1902 1882 -1 -2282 1882 -1 -1883 1883 6 -1884 1883 -1 -1903 1883 -1 -2283 1883 -1 -1884 1884 6 -1885 1884 -1 -1904 1884 -1 -2284 1884 -1 -1885 1885 6 -1886 1885 -1 -1905 1885 -1 -2285 1885 -1 -1886 1886 6 -1887 1886 -1 -1906 1886 -1 -2286 1886 -1 -1887 1887 6 -1888 1887 -1 -1907 1887 -1 -2287 1887 -1 -1888 1888 6 -1889 1888 -1 -1908 1888 -1 -2288 1888 -1 -1889 1889 6 -1890 1889 -1 -1909 1889 -1 -2289 1889 -1 -1890 1890 6 -1891 1890 -1 -1910 1890 -1 -2290 1890 -1 -1891 1891 6 -1892 1891 -1 -1911 1891 -1 -2291 1891 -1 -1892 1892 6 -1893 1892 -1 -1912 1892 -1 -2292 1892 -1 -1893 1893 6 -1894 1893 -1 -1913 1893 -1 -2293 1893 -1 -1894 1894 6 -1895 1894 -1 -1914 1894 -1 -2294 1894 -1 -1895 1895 6 -1896 1895 -1 -1915 1895 -1 -2295 1895 -1 -1896 1896 6 -1897 1896 -1 -1916 1896 -1 -2296 1896 -1 -1897 1897 6 -1898 1897 -1 -1917 1897 -1 -2297 1897 -1 -1898 1898 6 -1899 1898 -1 -1918 1898 -1 -2298 1898 -1 -1899 1899 6 -1900 1899 -1 -1919 1899 -1 -2299 1899 -1 -1900 1900 6 -1920 1900 -1 -2300 1900 -1 -1901 1901 6 -1902 1901 -1 -1921 1901 -1 -2301 1901 -1 -1902 1902 6 -1903 1902 -1 -1922 1902 -1 -2302 1902 -1 -1903 1903 6 -1904 1903 -1 -1923 1903 -1 -2303 1903 -1 -1904 1904 6 -1905 1904 -1 -1924 1904 -1 -2304 1904 -1 -1905 1905 6 -1906 1905 -1 -1925 1905 -1 -2305 1905 -1 -1906 1906 6 -1907 1906 -1 -1926 1906 -1 -2306 1906 -1 -1907 1907 6 -1908 1907 -1 -1927 1907 -1 -2307 1907 -1 -1908 1908 6 -1909 1908 -1 -1928 1908 -1 -2308 1908 -1 -1909 1909 6 -1910 1909 -1 -1929 1909 -1 -2309 1909 -1 -1910 1910 6 -1911 1910 -1 -1930 1910 -1 -2310 1910 -1 -1911 1911 6 -1912 1911 -1 -1931 1911 -1 -2311 1911 -1 -1912 1912 6 -1913 1912 -1 -1932 1912 -1 -2312 1912 -1 -1913 1913 6 -1914 1913 -1 -1933 1913 -1 -2313 1913 -1 -1914 1914 6 -1915 1914 -1 -1934 1914 -1 -2314 1914 -1 -1915 1915 6 -1916 1915 -1 -1935 1915 -1 -2315 1915 -1 -1916 1916 6 -1917 1916 -1 -1936 1916 -1 -2316 1916 -1 -1917 1917 6 -1918 1917 -1 -1937 1917 -1 -2317 1917 -1 -1918 1918 6 -1919 1918 -1 -1938 1918 -1 -2318 1918 -1 -1919 1919 6 -1920 1919 -1 -1939 1919 -1 -2319 1919 -1 -1920 1920 6 -1940 1920 -1 -2320 1920 -1 -1921 1921 6 -1922 1921 -1 -1941 1921 -1 -2321 1921 -1 -1922 1922 6 -1923 1922 -1 -1942 1922 -1 -2322 1922 -1 -1923 1923 6 -1924 1923 -1 -1943 1923 -1 -2323 1923 -1 -1924 1924 6 -1925 1924 -1 -1944 1924 -1 -2324 1924 -1 -1925 1925 6 -1926 1925 -1 -1945 1925 -1 -2325 1925 -1 -1926 1926 6 -1927 1926 -1 -1946 1926 -1 -2326 1926 -1 -1927 1927 6 -1928 1927 -1 -1947 1927 -1 -2327 1927 -1 -1928 1928 6 -1929 1928 -1 -1948 1928 -1 -2328 1928 -1 -1929 1929 6 -1930 1929 -1 -1949 1929 -1 -2329 1929 -1 -1930 1930 6 -1931 1930 -1 -1950 1930 -1 -2330 1930 -1 -1931 1931 6 -1932 1931 -1 -1951 1931 -1 -2331 1931 -1 -1932 1932 6 -1933 1932 -1 -1952 1932 -1 -2332 1932 -1 -1933 1933 6 -1934 1933 -1 -1953 1933 -1 -2333 1933 -1 -1934 1934 6 -1935 1934 -1 -1954 1934 -1 -2334 1934 -1 -1935 1935 6 -1936 1935 -1 -1955 1935 -1 -2335 1935 -1 -1936 1936 6 -1937 1936 -1 -1956 1936 -1 -2336 1936 -1 -1937 1937 6 -1938 1937 -1 -1957 1937 -1 -2337 1937 -1 -1938 1938 6 -1939 1938 -1 -1958 1938 -1 -2338 1938 -1 -1939 1939 6 -1940 1939 -1 -1959 1939 -1 -2339 1939 -1 -1940 1940 6 -1960 1940 -1 -2340 1940 -1 -1941 1941 6 -1942 1941 -1 -1961 1941 -1 -2341 1941 -1 -1942 1942 6 -1943 1942 -1 -1962 1942 -1 -2342 1942 -1 -1943 1943 6 -1944 1943 -1 -1963 1943 -1 -2343 1943 -1 -1944 1944 6 -1945 1944 -1 -1964 1944 -1 -2344 1944 -1 -1945 1945 6 -1946 1945 -1 -1965 1945 -1 -2345 1945 -1 -1946 1946 6 -1947 1946 -1 -1966 1946 -1 -2346 1946 -1 -1947 1947 6 -1948 1947 -1 -1967 1947 -1 -2347 1947 -1 -1948 1948 6 -1949 1948 -1 -1968 1948 -1 -2348 1948 -1 -1949 1949 6 -1950 1949 -1 -1969 1949 -1 -2349 1949 -1 -1950 1950 6 -1951 1950 -1 -1970 1950 -1 -2350 1950 -1 -1951 1951 6 -1952 1951 -1 -1971 1951 -1 -2351 1951 -1 -1952 1952 6 -1953 1952 -1 -1972 1952 -1 -2352 1952 -1 -1953 1953 6 -1954 1953 -1 -1973 1953 -1 -2353 1953 -1 -1954 1954 6 -1955 1954 -1 -1974 1954 -1 -2354 1954 -1 -1955 1955 6 -1956 1955 -1 -1975 1955 -1 -2355 1955 -1 -1956 1956 6 -1957 1956 -1 -1976 1956 -1 -2356 1956 -1 -1957 1957 6 -1958 1957 -1 -1977 1957 -1 -2357 1957 -1 -1958 1958 6 -1959 1958 -1 -1978 1958 -1 -2358 1958 -1 -1959 1959 6 -1960 1959 -1 -1979 1959 -1 -2359 1959 -1 -1960 1960 6 -1980 1960 -1 -2360 1960 -1 -1961 1961 6 -1962 1961 -1 -1981 1961 -1 -2361 1961 -1 -1962 1962 6 -1963 1962 -1 -1982 1962 -1 -2362 1962 -1 -1963 1963 6 -1964 1963 -1 -1983 1963 -1 -2363 1963 -1 -1964 1964 6 -1965 1964 -1 -1984 1964 -1 -2364 1964 -1 -1965 1965 6 -1966 1965 -1 -1985 1965 -1 -2365 1965 -1 -1966 1966 6 -1967 1966 -1 -1986 1966 -1 -2366 1966 -1 -1967 1967 6 -1968 1967 -1 -1987 1967 -1 -2367 1967 -1 -1968 1968 6 -1969 1968 -1 -1988 1968 -1 -2368 1968 -1 -1969 1969 6 -1970 1969 -1 -1989 1969 -1 -2369 1969 -1 -1970 1970 6 -1971 1970 -1 -1990 1970 -1 -2370 1970 -1 -1971 1971 6 -1972 1971 -1 -1991 1971 -1 -2371 1971 -1 -1972 1972 6 -1973 1972 -1 -1992 1972 -1 -2372 1972 -1 -1973 1973 6 -1974 1973 -1 -1993 1973 -1 -2373 1973 -1 -1974 1974 6 -1975 1974 -1 -1994 1974 -1 -2374 1974 -1 -1975 1975 6 -1976 1975 -1 -1995 1975 -1 -2375 1975 -1 -1976 1976 6 -1977 1976 -1 -1996 1976 -1 -2376 1976 -1 -1977 1977 6 -1978 1977 -1 -1997 1977 -1 -2377 1977 -1 -1978 1978 6 -1979 1978 -1 -1998 1978 -1 -2378 1978 -1 -1979 1979 6 -1980 1979 -1 -1999 1979 -1 -2379 1979 -1 -1980 1980 6 -2000 1980 -1 -2380 1980 -1 -1981 1981 6 -1982 1981 -1 -2381 1981 -1 -1982 1982 6 -1983 1982 -1 -2382 1982 -1 -1983 1983 6 -1984 1983 -1 -2383 1983 -1 -1984 1984 6 -1985 1984 -1 -2384 1984 -1 -1985 1985 6 -1986 1985 -1 -2385 1985 -1 -1986 1986 6 -1987 1986 -1 -2386 1986 -1 -1987 1987 6 -1988 1987 -1 -2387 1987 -1 -1988 1988 6 -1989 1988 -1 -2388 1988 -1 -1989 1989 6 -1990 1989 -1 -2389 1989 -1 -1990 1990 6 -1991 1990 -1 -2390 1990 -1 -1991 1991 6 -1992 1991 -1 -2391 1991 -1 -1992 1992 6 -1993 1992 -1 -2392 1992 -1 -1993 1993 6 -1994 1993 -1 -2393 1993 -1 -1994 1994 6 -1995 1994 -1 -2394 1994 -1 -1995 1995 6 -1996 1995 -1 -2395 1995 -1 -1996 1996 6 -1997 1996 -1 -2396 1996 -1 -1997 1997 6 -1998 1997 -1 -2397 1997 -1 -1998 1998 6 -1999 1998 -1 -2398 1998 -1 -1999 1999 6 -2000 1999 -1 -2399 1999 -1 -2000 2000 6 -2400 2000 -1 -2001 2001 6 -2002 2001 -1 -2021 2001 -1 -2401 2001 -1 -2002 2002 6 -2003 2002 -1 -2022 2002 -1 -2402 2002 -1 -2003 2003 6 -2004 2003 -1 -2023 2003 -1 -2403 2003 -1 -2004 2004 6 -2005 2004 -1 -2024 2004 -1 -2404 2004 -1 -2005 2005 6 -2006 2005 -1 -2025 2005 -1 -2405 2005 -1 -2006 2006 6 -2007 2006 -1 -2026 2006 -1 -2406 2006 -1 -2007 2007 6 -2008 2007 -1 -2027 2007 -1 -2407 2007 -1 -2008 2008 6 -2009 2008 -1 -2028 2008 -1 -2408 2008 -1 -2009 2009 6 -2010 2009 -1 -2029 2009 -1 -2409 2009 -1 -2010 2010 6 -2011 2010 -1 -2030 2010 -1 -2410 2010 -1 -2011 2011 6 -2012 2011 -1 -2031 2011 -1 -2411 2011 -1 -2012 2012 6 -2013 2012 -1 -2032 2012 -1 -2412 2012 -1 -2013 2013 6 -2014 2013 -1 -2033 2013 -1 -2413 2013 -1 -2014 2014 6 -2015 2014 -1 -2034 2014 -1 -2414 2014 -1 -2015 2015 6 -2016 2015 -1 -2035 2015 -1 -2415 2015 -1 -2016 2016 6 -2017 2016 -1 -2036 2016 -1 -2416 2016 -1 -2017 2017 6 -2018 2017 -1 -2037 2017 -1 -2417 2017 -1 -2018 2018 6 -2019 2018 -1 -2038 2018 -1 -2418 2018 -1 -2019 2019 6 -2020 2019 -1 -2039 2019 -1 -2419 2019 -1 -2020 2020 6 -2040 2020 -1 -2420 2020 -1 -2021 2021 6 -2022 2021 -1 -2041 2021 -1 -2421 2021 -1 -2022 2022 6 -2023 2022 -1 -2042 2022 -1 -2422 2022 -1 -2023 2023 6 -2024 2023 -1 -2043 2023 -1 -2423 2023 -1 -2024 2024 6 -2025 2024 -1 -2044 2024 -1 -2424 2024 -1 -2025 2025 6 -2026 2025 -1 -2045 2025 -1 -2425 2025 -1 -2026 2026 6 -2027 2026 -1 -2046 2026 -1 -2426 2026 -1 -2027 2027 6 -2028 2027 -1 -2047 2027 -1 -2427 2027 -1 -2028 2028 6 -2029 2028 -1 -2048 2028 -1 -2428 2028 -1 -2029 2029 6 -2030 2029 -1 -2049 2029 -1 -2429 2029 -1 -2030 2030 6 -2031 2030 -1 -2050 2030 -1 -2430 2030 -1 -2031 2031 6 -2032 2031 -1 -2051 2031 -1 -2431 2031 -1 -2032 2032 6 -2033 2032 -1 -2052 2032 -1 -2432 2032 -1 -2033 2033 6 -2034 2033 -1 -2053 2033 -1 -2433 2033 -1 -2034 2034 6 -2035 2034 -1 -2054 2034 -1 -2434 2034 -1 -2035 2035 6 -2036 2035 -1 -2055 2035 -1 -2435 2035 -1 -2036 2036 6 -2037 2036 -1 -2056 2036 -1 -2436 2036 -1 -2037 2037 6 -2038 2037 -1 -2057 2037 -1 -2437 2037 -1 -2038 2038 6 -2039 2038 -1 -2058 2038 -1 -2438 2038 -1 -2039 2039 6 -2040 2039 -1 -2059 2039 -1 -2439 2039 -1 -2040 2040 6 -2060 2040 -1 -2440 2040 -1 -2041 2041 6 -2042 2041 -1 -2061 2041 -1 -2441 2041 -1 -2042 2042 6 -2043 2042 -1 -2062 2042 -1 -2442 2042 -1 -2043 2043 6 -2044 2043 -1 -2063 2043 -1 -2443 2043 -1 -2044 2044 6 -2045 2044 -1 -2064 2044 -1 -2444 2044 -1 -2045 2045 6 -2046 2045 -1 -2065 2045 -1 -2445 2045 -1 -2046 2046 6 -2047 2046 -1 -2066 2046 -1 -2446 2046 -1 -2047 2047 6 -2048 2047 -1 -2067 2047 -1 -2447 2047 -1 -2048 2048 6 -2049 2048 -1 -2068 2048 -1 -2448 2048 -1 -2049 2049 6 -2050 2049 -1 -2069 2049 -1 -2449 2049 -1 -2050 2050 6 -2051 2050 -1 -2070 2050 -1 -2450 2050 -1 -2051 2051 6 -2052 2051 -1 -2071 2051 -1 -2451 2051 -1 -2052 2052 6 -2053 2052 -1 -2072 2052 -1 -2452 2052 -1 -2053 2053 6 -2054 2053 -1 -2073 2053 -1 -2453 2053 -1 -2054 2054 6 -2055 2054 -1 -2074 2054 -1 -2454 2054 -1 -2055 2055 6 -2056 2055 -1 -2075 2055 -1 -2455 2055 -1 -2056 2056 6 -2057 2056 -1 -2076 2056 -1 -2456 2056 -1 -2057 2057 6 -2058 2057 -1 -2077 2057 -1 -2457 2057 -1 -2058 2058 6 -2059 2058 -1 -2078 2058 -1 -2458 2058 -1 -2059 2059 6 -2060 2059 -1 -2079 2059 -1 -2459 2059 -1 -2060 2060 6 -2080 2060 -1 -2460 2060 -1 -2061 2061 6 -2062 2061 -1 -2081 2061 -1 -2461 2061 -1 -2062 2062 6 -2063 2062 -1 -2082 2062 -1 -2462 2062 -1 -2063 2063 6 -2064 2063 -1 -2083 2063 -1 -2463 2063 -1 -2064 2064 6 -2065 2064 -1 -2084 2064 -1 -2464 2064 -1 -2065 2065 6 -2066 2065 -1 -2085 2065 -1 -2465 2065 -1 -2066 2066 6 -2067 2066 -1 -2086 2066 -1 -2466 2066 -1 -2067 2067 6 -2068 2067 -1 -2087 2067 -1 -2467 2067 -1 -2068 2068 6 -2069 2068 -1 -2088 2068 -1 -2468 2068 -1 -2069 2069 6 -2070 2069 -1 -2089 2069 -1 -2469 2069 -1 -2070 2070 6 -2071 2070 -1 -2090 2070 -1 -2470 2070 -1 -2071 2071 6 -2072 2071 -1 -2091 2071 -1 -2471 2071 -1 -2072 2072 6 -2073 2072 -1 -2092 2072 -1 -2472 2072 -1 -2073 2073 6 -2074 2073 -1 -2093 2073 -1 -2473 2073 -1 -2074 2074 6 -2075 2074 -1 -2094 2074 -1 -2474 2074 -1 -2075 2075 6 -2076 2075 -1 -2095 2075 -1 -2475 2075 -1 -2076 2076 6 -2077 2076 -1 -2096 2076 -1 -2476 2076 -1 -2077 2077 6 -2078 2077 -1 -2097 2077 -1 -2477 2077 -1 -2078 2078 6 -2079 2078 -1 -2098 2078 -1 -2478 2078 -1 -2079 2079 6 -2080 2079 -1 -2099 2079 -1 -2479 2079 -1 -2080 2080 6 -2100 2080 -1 -2480 2080 -1 -2081 2081 6 -2082 2081 -1 -2101 2081 -1 -2481 2081 -1 -2082 2082 6 -2083 2082 -1 -2102 2082 -1 -2482 2082 -1 -2083 2083 6 -2084 2083 -1 -2103 2083 -1 -2483 2083 -1 -2084 2084 6 -2085 2084 -1 -2104 2084 -1 -2484 2084 -1 -2085 2085 6 -2086 2085 -1 -2105 2085 -1 -2485 2085 -1 -2086 2086 6 -2087 2086 -1 -2106 2086 -1 -2486 2086 -1 -2087 2087 6 -2088 2087 -1 -2107 2087 -1 -2487 2087 -1 -2088 2088 6 -2089 2088 -1 -2108 2088 -1 -2488 2088 -1 -2089 2089 6 -2090 2089 -1 -2109 2089 -1 -2489 2089 -1 -2090 2090 6 -2091 2090 -1 -2110 2090 -1 -2490 2090 -1 -2091 2091 6 -2092 2091 -1 -2111 2091 -1 -2491 2091 -1 -2092 2092 6 -2093 2092 -1 -2112 2092 -1 -2492 2092 -1 -2093 2093 6 -2094 2093 -1 -2113 2093 -1 -2493 2093 -1 -2094 2094 6 -2095 2094 -1 -2114 2094 -1 -2494 2094 -1 -2095 2095 6 -2096 2095 -1 -2115 2095 -1 -2495 2095 -1 -2096 2096 6 -2097 2096 -1 -2116 2096 -1 -2496 2096 -1 -2097 2097 6 -2098 2097 -1 -2117 2097 -1 -2497 2097 -1 -2098 2098 6 -2099 2098 -1 -2118 2098 -1 -2498 2098 -1 -2099 2099 6 -2100 2099 -1 -2119 2099 -1 -2499 2099 -1 -2100 2100 6 -2120 2100 -1 -2500 2100 -1 -2101 2101 6 -2102 2101 -1 -2121 2101 -1 -2501 2101 -1 -2102 2102 6 -2103 2102 -1 -2122 2102 -1 -2502 2102 -1 -2103 2103 6 -2104 2103 -1 -2123 2103 -1 -2503 2103 -1 -2104 2104 6 -2105 2104 -1 -2124 2104 -1 -2504 2104 -1 -2105 2105 6 -2106 2105 -1 -2125 2105 -1 -2505 2105 -1 -2106 2106 6 -2107 2106 -1 -2126 2106 -1 -2506 2106 -1 -2107 2107 6 -2108 2107 -1 -2127 2107 -1 -2507 2107 -1 -2108 2108 6 -2109 2108 -1 -2128 2108 -1 -2508 2108 -1 -2109 2109 6 -2110 2109 -1 -2129 2109 -1 -2509 2109 -1 -2110 2110 6 -2111 2110 -1 -2130 2110 -1 -2510 2110 -1 -2111 2111 6 -2112 2111 -1 -2131 2111 -1 -2511 2111 -1 -2112 2112 6 -2113 2112 -1 -2132 2112 -1 -2512 2112 -1 -2113 2113 6 -2114 2113 -1 -2133 2113 -1 -2513 2113 -1 -2114 2114 6 -2115 2114 -1 -2134 2114 -1 -2514 2114 -1 -2115 2115 6 -2116 2115 -1 -2135 2115 -1 -2515 2115 -1 -2116 2116 6 -2117 2116 -1 -2136 2116 -1 -2516 2116 -1 -2117 2117 6 -2118 2117 -1 -2137 2117 -1 -2517 2117 -1 -2118 2118 6 -2119 2118 -1 -2138 2118 -1 -2518 2118 -1 -2119 2119 6 -2120 2119 -1 -2139 2119 -1 -2519 2119 -1 -2120 2120 6 -2140 2120 -1 -2520 2120 -1 -2121 2121 6 -2122 2121 -1 -2141 2121 -1 -2521 2121 -1 -2122 2122 6 -2123 2122 -1 -2142 2122 -1 -2522 2122 -1 -2123 2123 6 -2124 2123 -1 -2143 2123 -1 -2523 2123 -1 -2124 2124 6 -2125 2124 -1 -2144 2124 -1 -2524 2124 -1 -2125 2125 6 -2126 2125 -1 -2145 2125 -1 -2525 2125 -1 -2126 2126 6 -2127 2126 -1 -2146 2126 -1 -2526 2126 -1 -2127 2127 6 -2128 2127 -1 -2147 2127 -1 -2527 2127 -1 -2128 2128 6 -2129 2128 -1 -2148 2128 -1 -2528 2128 -1 -2129 2129 6 -2130 2129 -1 -2149 2129 -1 -2529 2129 -1 -2130 2130 6 -2131 2130 -1 -2150 2130 -1 -2530 2130 -1 -2131 2131 6 -2132 2131 -1 -2151 2131 -1 -2531 2131 -1 -2132 2132 6 -2133 2132 -1 -2152 2132 -1 -2532 2132 -1 -2133 2133 6 -2134 2133 -1 -2153 2133 -1 -2533 2133 -1 -2134 2134 6 -2135 2134 -1 -2154 2134 -1 -2534 2134 -1 -2135 2135 6 -2136 2135 -1 -2155 2135 -1 -2535 2135 -1 -2136 2136 6 -2137 2136 -1 -2156 2136 -1 -2536 2136 -1 -2137 2137 6 -2138 2137 -1 -2157 2137 -1 -2537 2137 -1 -2138 2138 6 -2139 2138 -1 -2158 2138 -1 -2538 2138 -1 -2139 2139 6 -2140 2139 -1 -2159 2139 -1 -2539 2139 -1 -2140 2140 6 -2160 2140 -1 -2540 2140 -1 -2141 2141 6 -2142 2141 -1 -2161 2141 -1 -2541 2141 -1 -2142 2142 6 -2143 2142 -1 -2162 2142 -1 -2542 2142 -1 -2143 2143 6 -2144 2143 -1 -2163 2143 -1 -2543 2143 -1 -2144 2144 6 -2145 2144 -1 -2164 2144 -1 -2544 2144 -1 -2145 2145 6 -2146 2145 -1 -2165 2145 -1 -2545 2145 -1 -2146 2146 6 -2147 2146 -1 -2166 2146 -1 -2546 2146 -1 -2147 2147 6 -2148 2147 -1 -2167 2147 -1 -2547 2147 -1 -2148 2148 6 -2149 2148 -1 -2168 2148 -1 -2548 2148 -1 -2149 2149 6 -2150 2149 -1 -2169 2149 -1 -2549 2149 -1 -2150 2150 6 -2151 2150 -1 -2170 2150 -1 -2550 2150 -1 -2151 2151 6 -2152 2151 -1 -2171 2151 -1 -2551 2151 -1 -2152 2152 6 -2153 2152 -1 -2172 2152 -1 -2552 2152 -1 -2153 2153 6 -2154 2153 -1 -2173 2153 -1 -2553 2153 -1 -2154 2154 6 -2155 2154 -1 -2174 2154 -1 -2554 2154 -1 -2155 2155 6 -2156 2155 -1 -2175 2155 -1 -2555 2155 -1 -2156 2156 6 -2157 2156 -1 -2176 2156 -1 -2556 2156 -1 -2157 2157 6 -2158 2157 -1 -2177 2157 -1 -2557 2157 -1 -2158 2158 6 -2159 2158 -1 -2178 2158 -1 -2558 2158 -1 -2159 2159 6 -2160 2159 -1 -2179 2159 -1 -2559 2159 -1 -2160 2160 6 -2180 2160 -1 -2560 2160 -1 -2161 2161 6 -2162 2161 -1 -2181 2161 -1 -2561 2161 -1 -2162 2162 6 -2163 2162 -1 -2182 2162 -1 -2562 2162 -1 -2163 2163 6 -2164 2163 -1 -2183 2163 -1 -2563 2163 -1 -2164 2164 6 -2165 2164 -1 -2184 2164 -1 -2564 2164 -1 -2165 2165 6 -2166 2165 -1 -2185 2165 -1 -2565 2165 -1 -2166 2166 6 -2167 2166 -1 -2186 2166 -1 -2566 2166 -1 -2167 2167 6 -2168 2167 -1 -2187 2167 -1 -2567 2167 -1 -2168 2168 6 -2169 2168 -1 -2188 2168 -1 -2568 2168 -1 -2169 2169 6 -2170 2169 -1 -2189 2169 -1 -2569 2169 -1 -2170 2170 6 -2171 2170 -1 -2190 2170 -1 -2570 2170 -1 -2171 2171 6 -2172 2171 -1 -2191 2171 -1 -2571 2171 -1 -2172 2172 6 -2173 2172 -1 -2192 2172 -1 -2572 2172 -1 -2173 2173 6 -2174 2173 -1 -2193 2173 -1 -2573 2173 -1 -2174 2174 6 -2175 2174 -1 -2194 2174 -1 -2574 2174 -1 -2175 2175 6 -2176 2175 -1 -2195 2175 -1 -2575 2175 -1 -2176 2176 6 -2177 2176 -1 -2196 2176 -1 -2576 2176 -1 -2177 2177 6 -2178 2177 -1 -2197 2177 -1 -2577 2177 -1 -2178 2178 6 -2179 2178 -1 -2198 2178 -1 -2578 2178 -1 -2179 2179 6 -2180 2179 -1 -2199 2179 -1 -2579 2179 -1 -2180 2180 6 -2200 2180 -1 -2580 2180 -1 -2181 2181 6 -2182 2181 -1 -2201 2181 -1 -2581 2181 -1 -2182 2182 6 -2183 2182 -1 -2202 2182 -1 -2582 2182 -1 -2183 2183 6 -2184 2183 -1 -2203 2183 -1 -2583 2183 -1 -2184 2184 6 -2185 2184 -1 -2204 2184 -1 -2584 2184 -1 -2185 2185 6 -2186 2185 -1 -2205 2185 -1 -2585 2185 -1 -2186 2186 6 -2187 2186 -1 -2206 2186 -1 -2586 2186 -1 -2187 2187 6 -2188 2187 -1 -2207 2187 -1 -2587 2187 -1 -2188 2188 6 -2189 2188 -1 -2208 2188 -1 -2588 2188 -1 -2189 2189 6 -2190 2189 -1 -2209 2189 -1 -2589 2189 -1 -2190 2190 6 -2191 2190 -1 -2210 2190 -1 -2590 2190 -1 -2191 2191 6 -2192 2191 -1 -2211 2191 -1 -2591 2191 -1 -2192 2192 6 -2193 2192 -1 -2212 2192 -1 -2592 2192 -1 -2193 2193 6 -2194 2193 -1 -2213 2193 -1 -2593 2193 -1 -2194 2194 6 -2195 2194 -1 -2214 2194 -1 -2594 2194 -1 -2195 2195 6 -2196 2195 -1 -2215 2195 -1 -2595 2195 -1 -2196 2196 6 -2197 2196 -1 -2216 2196 -1 -2596 2196 -1 -2197 2197 6 -2198 2197 -1 -2217 2197 -1 -2597 2197 -1 -2198 2198 6 -2199 2198 -1 -2218 2198 -1 -2598 2198 -1 -2199 2199 6 -2200 2199 -1 -2219 2199 -1 -2599 2199 -1 -2200 2200 6 -2220 2200 -1 -2600 2200 -1 -2201 2201 6 -2202 2201 -1 -2221 2201 -1 -2601 2201 -1 -2202 2202 6 -2203 2202 -1 -2222 2202 -1 -2602 2202 -1 -2203 2203 6 -2204 2203 -1 -2223 2203 -1 -2603 2203 -1 -2204 2204 6 -2205 2204 -1 -2224 2204 -1 -2604 2204 -1 -2205 2205 6 -2206 2205 -1 -2225 2205 -1 -2605 2205 -1 -2206 2206 6 -2207 2206 -1 -2226 2206 -1 -2606 2206 -1 -2207 2207 6 -2208 2207 -1 -2227 2207 -1 -2607 2207 -1 -2208 2208 6 -2209 2208 -1 -2228 2208 -1 -2608 2208 -1 -2209 2209 6 -2210 2209 -1 -2229 2209 -1 -2609 2209 -1 -2210 2210 6 -2211 2210 -1 -2230 2210 -1 -2610 2210 -1 -2211 2211 6 -2212 2211 -1 -2231 2211 -1 -2611 2211 -1 -2212 2212 6 -2213 2212 -1 -2232 2212 -1 -2612 2212 -1 -2213 2213 6 -2214 2213 -1 -2233 2213 -1 -2613 2213 -1 -2214 2214 6 -2215 2214 -1 -2234 2214 -1 -2614 2214 -1 -2215 2215 6 -2216 2215 -1 -2235 2215 -1 -2615 2215 -1 -2216 2216 6 -2217 2216 -1 -2236 2216 -1 -2616 2216 -1 -2217 2217 6 -2218 2217 -1 -2237 2217 -1 -2617 2217 -1 -2218 2218 6 -2219 2218 -1 -2238 2218 -1 -2618 2218 -1 -2219 2219 6 -2220 2219 -1 -2239 2219 -1 -2619 2219 -1 -2220 2220 6 -2240 2220 -1 -2620 2220 -1 -2221 2221 6 -2222 2221 -1 -2241 2221 -1 -2621 2221 -1 -2222 2222 6 -2223 2222 -1 -2242 2222 -1 -2622 2222 -1 -2223 2223 6 -2224 2223 -1 -2243 2223 -1 -2623 2223 -1 -2224 2224 6 -2225 2224 -1 -2244 2224 -1 -2624 2224 -1 -2225 2225 6 -2226 2225 -1 -2245 2225 -1 -2625 2225 -1 -2226 2226 6 -2227 2226 -1 -2246 2226 -1 -2626 2226 -1 -2227 2227 6 -2228 2227 -1 -2247 2227 -1 -2627 2227 -1 -2228 2228 6 -2229 2228 -1 -2248 2228 -1 -2628 2228 -1 -2229 2229 6 -2230 2229 -1 -2249 2229 -1 -2629 2229 -1 -2230 2230 6 -2231 2230 -1 -2250 2230 -1 -2630 2230 -1 -2231 2231 6 -2232 2231 -1 -2251 2231 -1 -2631 2231 -1 -2232 2232 6 -2233 2232 -1 -2252 2232 -1 -2632 2232 -1 -2233 2233 6 -2234 2233 -1 -2253 2233 -1 -2633 2233 -1 -2234 2234 6 -2235 2234 -1 -2254 2234 -1 -2634 2234 -1 -2235 2235 6 -2236 2235 -1 -2255 2235 -1 -2635 2235 -1 -2236 2236 6 -2237 2236 -1 -2256 2236 -1 -2636 2236 -1 -2237 2237 6 -2238 2237 -1 -2257 2237 -1 -2637 2237 -1 -2238 2238 6 -2239 2238 -1 -2258 2238 -1 -2638 2238 -1 -2239 2239 6 -2240 2239 -1 -2259 2239 -1 -2639 2239 -1 -2240 2240 6 -2260 2240 -1 -2640 2240 -1 -2241 2241 6 -2242 2241 -1 -2261 2241 -1 -2641 2241 -1 -2242 2242 6 -2243 2242 -1 -2262 2242 -1 -2642 2242 -1 -2243 2243 6 -2244 2243 -1 -2263 2243 -1 -2643 2243 -1 -2244 2244 6 -2245 2244 -1 -2264 2244 -1 -2644 2244 -1 -2245 2245 6 -2246 2245 -1 -2265 2245 -1 -2645 2245 -1 -2246 2246 6 -2247 2246 -1 -2266 2246 -1 -2646 2246 -1 -2247 2247 6 -2248 2247 -1 -2267 2247 -1 -2647 2247 -1 -2248 2248 6 -2249 2248 -1 -2268 2248 -1 -2648 2248 -1 -2249 2249 6 -2250 2249 -1 -2269 2249 -1 -2649 2249 -1 -2250 2250 6 -2251 2250 -1 -2270 2250 -1 -2650 2250 -1 -2251 2251 6 -2252 2251 -1 -2271 2251 -1 -2651 2251 -1 -2252 2252 6 -2253 2252 -1 -2272 2252 -1 -2652 2252 -1 -2253 2253 6 -2254 2253 -1 -2273 2253 -1 -2653 2253 -1 -2254 2254 6 -2255 2254 -1 -2274 2254 -1 -2654 2254 -1 -2255 2255 6 -2256 2255 -1 -2275 2255 -1 -2655 2255 -1 -2256 2256 6 -2257 2256 -1 -2276 2256 -1 -2656 2256 -1 -2257 2257 6 -2258 2257 -1 -2277 2257 -1 -2657 2257 -1 -2258 2258 6 -2259 2258 -1 -2278 2258 -1 -2658 2258 -1 -2259 2259 6 -2260 2259 -1 -2279 2259 -1 -2659 2259 -1 -2260 2260 6 -2280 2260 -1 -2660 2260 -1 -2261 2261 6 -2262 2261 -1 -2281 2261 -1 -2661 2261 -1 -2262 2262 6 -2263 2262 -1 -2282 2262 -1 -2662 2262 -1 -2263 2263 6 -2264 2263 -1 -2283 2263 -1 -2663 2263 -1 -2264 2264 6 -2265 2264 -1 -2284 2264 -1 -2664 2264 -1 -2265 2265 6 -2266 2265 -1 -2285 2265 -1 -2665 2265 -1 -2266 2266 6 -2267 2266 -1 -2286 2266 -1 -2666 2266 -1 -2267 2267 6 -2268 2267 -1 -2287 2267 -1 -2667 2267 -1 -2268 2268 6 -2269 2268 -1 -2288 2268 -1 -2668 2268 -1 -2269 2269 6 -2270 2269 -1 -2289 2269 -1 -2669 2269 -1 -2270 2270 6 -2271 2270 -1 -2290 2270 -1 -2670 2270 -1 -2271 2271 6 -2272 2271 -1 -2291 2271 -1 -2671 2271 -1 -2272 2272 6 -2273 2272 -1 -2292 2272 -1 -2672 2272 -1 -2273 2273 6 -2274 2273 -1 -2293 2273 -1 -2673 2273 -1 -2274 2274 6 -2275 2274 -1 -2294 2274 -1 -2674 2274 -1 -2275 2275 6 -2276 2275 -1 -2295 2275 -1 -2675 2275 -1 -2276 2276 6 -2277 2276 -1 -2296 2276 -1 -2676 2276 -1 -2277 2277 6 -2278 2277 -1 -2297 2277 -1 -2677 2277 -1 -2278 2278 6 -2279 2278 -1 -2298 2278 -1 -2678 2278 -1 -2279 2279 6 -2280 2279 -1 -2299 2279 -1 -2679 2279 -1 -2280 2280 6 -2300 2280 -1 -2680 2280 -1 -2281 2281 6 -2282 2281 -1 -2301 2281 -1 -2681 2281 -1 -2282 2282 6 -2283 2282 -1 -2302 2282 -1 -2682 2282 -1 -2283 2283 6 -2284 2283 -1 -2303 2283 -1 -2683 2283 -1 -2284 2284 6 -2285 2284 -1 -2304 2284 -1 -2684 2284 -1 -2285 2285 6 -2286 2285 -1 -2305 2285 -1 -2685 2285 -1 -2286 2286 6 -2287 2286 -1 -2306 2286 -1 -2686 2286 -1 -2287 2287 6 -2288 2287 -1 -2307 2287 -1 -2687 2287 -1 -2288 2288 6 -2289 2288 -1 -2308 2288 -1 -2688 2288 -1 -2289 2289 6 -2290 2289 -1 -2309 2289 -1 -2689 2289 -1 -2290 2290 6 -2291 2290 -1 -2310 2290 -1 -2690 2290 -1 -2291 2291 6 -2292 2291 -1 -2311 2291 -1 -2691 2291 -1 -2292 2292 6 -2293 2292 -1 -2312 2292 -1 -2692 2292 -1 -2293 2293 6 -2294 2293 -1 -2313 2293 -1 -2693 2293 -1 -2294 2294 6 -2295 2294 -1 -2314 2294 -1 -2694 2294 -1 -2295 2295 6 -2296 2295 -1 -2315 2295 -1 -2695 2295 -1 -2296 2296 6 -2297 2296 -1 -2316 2296 -1 -2696 2296 -1 -2297 2297 6 -2298 2297 -1 -2317 2297 -1 -2697 2297 -1 -2298 2298 6 -2299 2298 -1 -2318 2298 -1 -2698 2298 -1 -2299 2299 6 -2300 2299 -1 -2319 2299 -1 -2699 2299 -1 -2300 2300 6 -2320 2300 -1 -2700 2300 -1 -2301 2301 6 -2302 2301 -1 -2321 2301 -1 -2701 2301 -1 -2302 2302 6 -2303 2302 -1 -2322 2302 -1 -2702 2302 -1 -2303 2303 6 -2304 2303 -1 -2323 2303 -1 -2703 2303 -1 -2304 2304 6 -2305 2304 -1 -2324 2304 -1 -2704 2304 -1 -2305 2305 6 -2306 2305 -1 -2325 2305 -1 -2705 2305 -1 -2306 2306 6 -2307 2306 -1 -2326 2306 -1 -2706 2306 -1 -2307 2307 6 -2308 2307 -1 -2327 2307 -1 -2707 2307 -1 -2308 2308 6 -2309 2308 -1 -2328 2308 -1 -2708 2308 -1 -2309 2309 6 -2310 2309 -1 -2329 2309 -1 -2709 2309 -1 -2310 2310 6 -2311 2310 -1 -2330 2310 -1 -2710 2310 -1 -2311 2311 6 -2312 2311 -1 -2331 2311 -1 -2711 2311 -1 -2312 2312 6 -2313 2312 -1 -2332 2312 -1 -2712 2312 -1 -2313 2313 6 -2314 2313 -1 -2333 2313 -1 -2713 2313 -1 -2314 2314 6 -2315 2314 -1 -2334 2314 -1 -2714 2314 -1 -2315 2315 6 -2316 2315 -1 -2335 2315 -1 -2715 2315 -1 -2316 2316 6 -2317 2316 -1 -2336 2316 -1 -2716 2316 -1 -2317 2317 6 -2318 2317 -1 -2337 2317 -1 -2717 2317 -1 -2318 2318 6 -2319 2318 -1 -2338 2318 -1 -2718 2318 -1 -2319 2319 6 -2320 2319 -1 -2339 2319 -1 -2719 2319 -1 -2320 2320 6 -2340 2320 -1 -2720 2320 -1 -2321 2321 6 -2322 2321 -1 -2341 2321 -1 -2721 2321 -1 -2322 2322 6 -2323 2322 -1 -2342 2322 -1 -2722 2322 -1 -2323 2323 6 -2324 2323 -1 -2343 2323 -1 -2723 2323 -1 -2324 2324 6 -2325 2324 -1 -2344 2324 -1 -2724 2324 -1 -2325 2325 6 -2326 2325 -1 -2345 2325 -1 -2725 2325 -1 -2326 2326 6 -2327 2326 -1 -2346 2326 -1 -2726 2326 -1 -2327 2327 6 -2328 2327 -1 -2347 2327 -1 -2727 2327 -1 -2328 2328 6 -2329 2328 -1 -2348 2328 -1 -2728 2328 -1 -2329 2329 6 -2330 2329 -1 -2349 2329 -1 -2729 2329 -1 -2330 2330 6 -2331 2330 -1 -2350 2330 -1 -2730 2330 -1 -2331 2331 6 -2332 2331 -1 -2351 2331 -1 -2731 2331 -1 -2332 2332 6 -2333 2332 -1 -2352 2332 -1 -2732 2332 -1 -2333 2333 6 -2334 2333 -1 -2353 2333 -1 -2733 2333 -1 -2334 2334 6 -2335 2334 -1 -2354 2334 -1 -2734 2334 -1 -2335 2335 6 -2336 2335 -1 -2355 2335 -1 -2735 2335 -1 -2336 2336 6 -2337 2336 -1 -2356 2336 -1 -2736 2336 -1 -2337 2337 6 -2338 2337 -1 -2357 2337 -1 -2737 2337 -1 -2338 2338 6 -2339 2338 -1 -2358 2338 -1 -2738 2338 -1 -2339 2339 6 -2340 2339 -1 -2359 2339 -1 -2739 2339 -1 -2340 2340 6 -2360 2340 -1 -2740 2340 -1 -2341 2341 6 -2342 2341 -1 -2361 2341 -1 -2741 2341 -1 -2342 2342 6 -2343 2342 -1 -2362 2342 -1 -2742 2342 -1 -2343 2343 6 -2344 2343 -1 -2363 2343 -1 -2743 2343 -1 -2344 2344 6 -2345 2344 -1 -2364 2344 -1 -2744 2344 -1 -2345 2345 6 -2346 2345 -1 -2365 2345 -1 -2745 2345 -1 -2346 2346 6 -2347 2346 -1 -2366 2346 -1 -2746 2346 -1 -2347 2347 6 -2348 2347 -1 -2367 2347 -1 -2747 2347 -1 -2348 2348 6 -2349 2348 -1 -2368 2348 -1 -2748 2348 -1 -2349 2349 6 -2350 2349 -1 -2369 2349 -1 -2749 2349 -1 -2350 2350 6 -2351 2350 -1 -2370 2350 -1 -2750 2350 -1 -2351 2351 6 -2352 2351 -1 -2371 2351 -1 -2751 2351 -1 -2352 2352 6 -2353 2352 -1 -2372 2352 -1 -2752 2352 -1 -2353 2353 6 -2354 2353 -1 -2373 2353 -1 -2753 2353 -1 -2354 2354 6 -2355 2354 -1 -2374 2354 -1 -2754 2354 -1 -2355 2355 6 -2356 2355 -1 -2375 2355 -1 -2755 2355 -1 -2356 2356 6 -2357 2356 -1 -2376 2356 -1 -2756 2356 -1 -2357 2357 6 -2358 2357 -1 -2377 2357 -1 -2757 2357 -1 -2358 2358 6 -2359 2358 -1 -2378 2358 -1 -2758 2358 -1 -2359 2359 6 -2360 2359 -1 -2379 2359 -1 -2759 2359 -1 -2360 2360 6 -2380 2360 -1 -2760 2360 -1 -2361 2361 6 -2362 2361 -1 -2381 2361 -1 -2761 2361 -1 -2362 2362 6 -2363 2362 -1 -2382 2362 -1 -2762 2362 -1 -2363 2363 6 -2364 2363 -1 -2383 2363 -1 -2763 2363 -1 -2364 2364 6 -2365 2364 -1 -2384 2364 -1 -2764 2364 -1 -2365 2365 6 -2366 2365 -1 -2385 2365 -1 -2765 2365 -1 -2366 2366 6 -2367 2366 -1 -2386 2366 -1 -2766 2366 -1 -2367 2367 6 -2368 2367 -1 -2387 2367 -1 -2767 2367 -1 -2368 2368 6 -2369 2368 -1 -2388 2368 -1 -2768 2368 -1 -2369 2369 6 -2370 2369 -1 -2389 2369 -1 -2769 2369 -1 -2370 2370 6 -2371 2370 -1 -2390 2370 -1 -2770 2370 -1 -2371 2371 6 -2372 2371 -1 -2391 2371 -1 -2771 2371 -1 -2372 2372 6 -2373 2372 -1 -2392 2372 -1 -2772 2372 -1 -2373 2373 6 -2374 2373 -1 -2393 2373 -1 -2773 2373 -1 -2374 2374 6 -2375 2374 -1 -2394 2374 -1 -2774 2374 -1 -2375 2375 6 -2376 2375 -1 -2395 2375 -1 -2775 2375 -1 -2376 2376 6 -2377 2376 -1 -2396 2376 -1 -2776 2376 -1 -2377 2377 6 -2378 2377 -1 -2397 2377 -1 -2777 2377 -1 -2378 2378 6 -2379 2378 -1 -2398 2378 -1 -2778 2378 -1 -2379 2379 6 -2380 2379 -1 -2399 2379 -1 -2779 2379 -1 -2380 2380 6 -2400 2380 -1 -2780 2380 -1 -2381 2381 6 -2382 2381 -1 -2781 2381 -1 -2382 2382 6 -2383 2382 -1 -2782 2382 -1 -2383 2383 6 -2384 2383 -1 -2783 2383 -1 -2384 2384 6 -2385 2384 -1 -2784 2384 -1 -2385 2385 6 -2386 2385 -1 -2785 2385 -1 -2386 2386 6 -2387 2386 -1 -2786 2386 -1 -2387 2387 6 -2388 2387 -1 -2787 2387 -1 -2388 2388 6 -2389 2388 -1 -2788 2388 -1 -2389 2389 6 -2390 2389 -1 -2789 2389 -1 -2390 2390 6 -2391 2390 -1 -2790 2390 -1 -2391 2391 6 -2392 2391 -1 -2791 2391 -1 -2392 2392 6 -2393 2392 -1 -2792 2392 -1 -2393 2393 6 -2394 2393 -1 -2793 2393 -1 -2394 2394 6 -2395 2394 -1 -2794 2394 -1 -2395 2395 6 -2396 2395 -1 -2795 2395 -1 -2396 2396 6 -2397 2396 -1 -2796 2396 -1 -2397 2397 6 -2398 2397 -1 -2797 2397 -1 -2398 2398 6 -2399 2398 -1 -2798 2398 -1 -2399 2399 6 -2400 2399 -1 -2799 2399 -1 -2400 2400 6 -2800 2400 -1 -2401 2401 6 -2402 2401 -1 -2421 2401 -1 -2801 2401 -1 -2402 2402 6 -2403 2402 -1 -2422 2402 -1 -2802 2402 -1 -2403 2403 6 -2404 2403 -1 -2423 2403 -1 -2803 2403 -1 -2404 2404 6 -2405 2404 -1 -2424 2404 -1 -2804 2404 -1 -2405 2405 6 -2406 2405 -1 -2425 2405 -1 -2805 2405 -1 -2406 2406 6 -2407 2406 -1 -2426 2406 -1 -2806 2406 -1 -2407 2407 6 -2408 2407 -1 -2427 2407 -1 -2807 2407 -1 -2408 2408 6 -2409 2408 -1 -2428 2408 -1 -2808 2408 -1 -2409 2409 6 -2410 2409 -1 -2429 2409 -1 -2809 2409 -1 -2410 2410 6 -2411 2410 -1 -2430 2410 -1 -2810 2410 -1 -2411 2411 6 -2412 2411 -1 -2431 2411 -1 -2811 2411 -1 -2412 2412 6 -2413 2412 -1 -2432 2412 -1 -2812 2412 -1 -2413 2413 6 -2414 2413 -1 -2433 2413 -1 -2813 2413 -1 -2414 2414 6 -2415 2414 -1 -2434 2414 -1 -2814 2414 -1 -2415 2415 6 -2416 2415 -1 -2435 2415 -1 -2815 2415 -1 -2416 2416 6 -2417 2416 -1 -2436 2416 -1 -2816 2416 -1 -2417 2417 6 -2418 2417 -1 -2437 2417 -1 -2817 2417 -1 -2418 2418 6 -2419 2418 -1 -2438 2418 -1 -2818 2418 -1 -2419 2419 6 -2420 2419 -1 -2439 2419 -1 -2819 2419 -1 -2420 2420 6 -2440 2420 -1 -2820 2420 -1 -2421 2421 6 -2422 2421 -1 -2441 2421 -1 -2821 2421 -1 -2422 2422 6 -2423 2422 -1 -2442 2422 -1 -2822 2422 -1 -2423 2423 6 -2424 2423 -1 -2443 2423 -1 -2823 2423 -1 -2424 2424 6 -2425 2424 -1 -2444 2424 -1 -2824 2424 -1 -2425 2425 6 -2426 2425 -1 -2445 2425 -1 -2825 2425 -1 -2426 2426 6 -2427 2426 -1 -2446 2426 -1 -2826 2426 -1 -2427 2427 6 -2428 2427 -1 -2447 2427 -1 -2827 2427 -1 -2428 2428 6 -2429 2428 -1 -2448 2428 -1 -2828 2428 -1 -2429 2429 6 -2430 2429 -1 -2449 2429 -1 -2829 2429 -1 -2430 2430 6 -2431 2430 -1 -2450 2430 -1 -2830 2430 -1 -2431 2431 6 -2432 2431 -1 -2451 2431 -1 -2831 2431 -1 -2432 2432 6 -2433 2432 -1 -2452 2432 -1 -2832 2432 -1 -2433 2433 6 -2434 2433 -1 -2453 2433 -1 -2833 2433 -1 -2434 2434 6 -2435 2434 -1 -2454 2434 -1 -2834 2434 -1 -2435 2435 6 -2436 2435 -1 -2455 2435 -1 -2835 2435 -1 -2436 2436 6 -2437 2436 -1 -2456 2436 -1 -2836 2436 -1 -2437 2437 6 -2438 2437 -1 -2457 2437 -1 -2837 2437 -1 -2438 2438 6 -2439 2438 -1 -2458 2438 -1 -2838 2438 -1 -2439 2439 6 -2440 2439 -1 -2459 2439 -1 -2839 2439 -1 -2440 2440 6 -2460 2440 -1 -2840 2440 -1 -2441 2441 6 -2442 2441 -1 -2461 2441 -1 -2841 2441 -1 -2442 2442 6 -2443 2442 -1 -2462 2442 -1 -2842 2442 -1 -2443 2443 6 -2444 2443 -1 -2463 2443 -1 -2843 2443 -1 -2444 2444 6 -2445 2444 -1 -2464 2444 -1 -2844 2444 -1 -2445 2445 6 -2446 2445 -1 -2465 2445 -1 -2845 2445 -1 -2446 2446 6 -2447 2446 -1 -2466 2446 -1 -2846 2446 -1 -2447 2447 6 -2448 2447 -1 -2467 2447 -1 -2847 2447 -1 -2448 2448 6 -2449 2448 -1 -2468 2448 -1 -2848 2448 -1 -2449 2449 6 -2450 2449 -1 -2469 2449 -1 -2849 2449 -1 -2450 2450 6 -2451 2450 -1 -2470 2450 -1 -2850 2450 -1 -2451 2451 6 -2452 2451 -1 -2471 2451 -1 -2851 2451 -1 -2452 2452 6 -2453 2452 -1 -2472 2452 -1 -2852 2452 -1 -2453 2453 6 -2454 2453 -1 -2473 2453 -1 -2853 2453 -1 -2454 2454 6 -2455 2454 -1 -2474 2454 -1 -2854 2454 -1 -2455 2455 6 -2456 2455 -1 -2475 2455 -1 -2855 2455 -1 -2456 2456 6 -2457 2456 -1 -2476 2456 -1 -2856 2456 -1 -2457 2457 6 -2458 2457 -1 -2477 2457 -1 -2857 2457 -1 -2458 2458 6 -2459 2458 -1 -2478 2458 -1 -2858 2458 -1 -2459 2459 6 -2460 2459 -1 -2479 2459 -1 -2859 2459 -1 -2460 2460 6 -2480 2460 -1 -2860 2460 -1 -2461 2461 6 -2462 2461 -1 -2481 2461 -1 -2861 2461 -1 -2462 2462 6 -2463 2462 -1 -2482 2462 -1 -2862 2462 -1 -2463 2463 6 -2464 2463 -1 -2483 2463 -1 -2863 2463 -1 -2464 2464 6 -2465 2464 -1 -2484 2464 -1 -2864 2464 -1 -2465 2465 6 -2466 2465 -1 -2485 2465 -1 -2865 2465 -1 -2466 2466 6 -2467 2466 -1 -2486 2466 -1 -2866 2466 -1 -2467 2467 6 -2468 2467 -1 -2487 2467 -1 -2867 2467 -1 -2468 2468 6 -2469 2468 -1 -2488 2468 -1 -2868 2468 -1 -2469 2469 6 -2470 2469 -1 -2489 2469 -1 -2869 2469 -1 -2470 2470 6 -2471 2470 -1 -2490 2470 -1 -2870 2470 -1 -2471 2471 6 -2472 2471 -1 -2491 2471 -1 -2871 2471 -1 -2472 2472 6 -2473 2472 -1 -2492 2472 -1 -2872 2472 -1 -2473 2473 6 -2474 2473 -1 -2493 2473 -1 -2873 2473 -1 -2474 2474 6 -2475 2474 -1 -2494 2474 -1 -2874 2474 -1 -2475 2475 6 -2476 2475 -1 -2495 2475 -1 -2875 2475 -1 -2476 2476 6 -2477 2476 -1 -2496 2476 -1 -2876 2476 -1 -2477 2477 6 -2478 2477 -1 -2497 2477 -1 -2877 2477 -1 -2478 2478 6 -2479 2478 -1 -2498 2478 -1 -2878 2478 -1 -2479 2479 6 -2480 2479 -1 -2499 2479 -1 -2879 2479 -1 -2480 2480 6 -2500 2480 -1 -2880 2480 -1 -2481 2481 6 -2482 2481 -1 -2501 2481 -1 -2881 2481 -1 -2482 2482 6 -2483 2482 -1 -2502 2482 -1 -2882 2482 -1 -2483 2483 6 -2484 2483 -1 -2503 2483 -1 -2883 2483 -1 -2484 2484 6 -2485 2484 -1 -2504 2484 -1 -2884 2484 -1 -2485 2485 6 -2486 2485 -1 -2505 2485 -1 -2885 2485 -1 -2486 2486 6 -2487 2486 -1 -2506 2486 -1 -2886 2486 -1 -2487 2487 6 -2488 2487 -1 -2507 2487 -1 -2887 2487 -1 -2488 2488 6 -2489 2488 -1 -2508 2488 -1 -2888 2488 -1 -2489 2489 6 -2490 2489 -1 -2509 2489 -1 -2889 2489 -1 -2490 2490 6 -2491 2490 -1 -2510 2490 -1 -2890 2490 -1 -2491 2491 6 -2492 2491 -1 -2511 2491 -1 -2891 2491 -1 -2492 2492 6 -2493 2492 -1 -2512 2492 -1 -2892 2492 -1 -2493 2493 6 -2494 2493 -1 -2513 2493 -1 -2893 2493 -1 -2494 2494 6 -2495 2494 -1 -2514 2494 -1 -2894 2494 -1 -2495 2495 6 -2496 2495 -1 -2515 2495 -1 -2895 2495 -1 -2496 2496 6 -2497 2496 -1 -2516 2496 -1 -2896 2496 -1 -2497 2497 6 -2498 2497 -1 -2517 2497 -1 -2897 2497 -1 -2498 2498 6 -2499 2498 -1 -2518 2498 -1 -2898 2498 -1 -2499 2499 6 -2500 2499 -1 -2519 2499 -1 -2899 2499 -1 -2500 2500 6 -2520 2500 -1 -2900 2500 -1 -2501 2501 6 -2502 2501 -1 -2521 2501 -1 -2901 2501 -1 -2502 2502 6 -2503 2502 -1 -2522 2502 -1 -2902 2502 -1 -2503 2503 6 -2504 2503 -1 -2523 2503 -1 -2903 2503 -1 -2504 2504 6 -2505 2504 -1 -2524 2504 -1 -2904 2504 -1 -2505 2505 6 -2506 2505 -1 -2525 2505 -1 -2905 2505 -1 -2506 2506 6 -2507 2506 -1 -2526 2506 -1 -2906 2506 -1 -2507 2507 6 -2508 2507 -1 -2527 2507 -1 -2907 2507 -1 -2508 2508 6 -2509 2508 -1 -2528 2508 -1 -2908 2508 -1 -2509 2509 6 -2510 2509 -1 -2529 2509 -1 -2909 2509 -1 -2510 2510 6 -2511 2510 -1 -2530 2510 -1 -2910 2510 -1 -2511 2511 6 -2512 2511 -1 -2531 2511 -1 -2911 2511 -1 -2512 2512 6 -2513 2512 -1 -2532 2512 -1 -2912 2512 -1 -2513 2513 6 -2514 2513 -1 -2533 2513 -1 -2913 2513 -1 -2514 2514 6 -2515 2514 -1 -2534 2514 -1 -2914 2514 -1 -2515 2515 6 -2516 2515 -1 -2535 2515 -1 -2915 2515 -1 -2516 2516 6 -2517 2516 -1 -2536 2516 -1 -2916 2516 -1 -2517 2517 6 -2518 2517 -1 -2537 2517 -1 -2917 2517 -1 -2518 2518 6 -2519 2518 -1 -2538 2518 -1 -2918 2518 -1 -2519 2519 6 -2520 2519 -1 -2539 2519 -1 -2919 2519 -1 -2520 2520 6 -2540 2520 -1 -2920 2520 -1 -2521 2521 6 -2522 2521 -1 -2541 2521 -1 -2921 2521 -1 -2522 2522 6 -2523 2522 -1 -2542 2522 -1 -2922 2522 -1 -2523 2523 6 -2524 2523 -1 -2543 2523 -1 -2923 2523 -1 -2524 2524 6 -2525 2524 -1 -2544 2524 -1 -2924 2524 -1 -2525 2525 6 -2526 2525 -1 -2545 2525 -1 -2925 2525 -1 -2526 2526 6 -2527 2526 -1 -2546 2526 -1 -2926 2526 -1 -2527 2527 6 -2528 2527 -1 -2547 2527 -1 -2927 2527 -1 -2528 2528 6 -2529 2528 -1 -2548 2528 -1 -2928 2528 -1 -2529 2529 6 -2530 2529 -1 -2549 2529 -1 -2929 2529 -1 -2530 2530 6 -2531 2530 -1 -2550 2530 -1 -2930 2530 -1 -2531 2531 6 -2532 2531 -1 -2551 2531 -1 -2931 2531 -1 -2532 2532 6 -2533 2532 -1 -2552 2532 -1 -2932 2532 -1 -2533 2533 6 -2534 2533 -1 -2553 2533 -1 -2933 2533 -1 -2534 2534 6 -2535 2534 -1 -2554 2534 -1 -2934 2534 -1 -2535 2535 6 -2536 2535 -1 -2555 2535 -1 -2935 2535 -1 -2536 2536 6 -2537 2536 -1 -2556 2536 -1 -2936 2536 -1 -2537 2537 6 -2538 2537 -1 -2557 2537 -1 -2937 2537 -1 -2538 2538 6 -2539 2538 -1 -2558 2538 -1 -2938 2538 -1 -2539 2539 6 -2540 2539 -1 -2559 2539 -1 -2939 2539 -1 -2540 2540 6 -2560 2540 -1 -2940 2540 -1 -2541 2541 6 -2542 2541 -1 -2561 2541 -1 -2941 2541 -1 -2542 2542 6 -2543 2542 -1 -2562 2542 -1 -2942 2542 -1 -2543 2543 6 -2544 2543 -1 -2563 2543 -1 -2943 2543 -1 -2544 2544 6 -2545 2544 -1 -2564 2544 -1 -2944 2544 -1 -2545 2545 6 -2546 2545 -1 -2565 2545 -1 -2945 2545 -1 -2546 2546 6 -2547 2546 -1 -2566 2546 -1 -2946 2546 -1 -2547 2547 6 -2548 2547 -1 -2567 2547 -1 -2947 2547 -1 -2548 2548 6 -2549 2548 -1 -2568 2548 -1 -2948 2548 -1 -2549 2549 6 -2550 2549 -1 -2569 2549 -1 -2949 2549 -1 -2550 2550 6 -2551 2550 -1 -2570 2550 -1 -2950 2550 -1 -2551 2551 6 -2552 2551 -1 -2571 2551 -1 -2951 2551 -1 -2552 2552 6 -2553 2552 -1 -2572 2552 -1 -2952 2552 -1 -2553 2553 6 -2554 2553 -1 -2573 2553 -1 -2953 2553 -1 -2554 2554 6 -2555 2554 -1 -2574 2554 -1 -2954 2554 -1 -2555 2555 6 -2556 2555 -1 -2575 2555 -1 -2955 2555 -1 -2556 2556 6 -2557 2556 -1 -2576 2556 -1 -2956 2556 -1 -2557 2557 6 -2558 2557 -1 -2577 2557 -1 -2957 2557 -1 -2558 2558 6 -2559 2558 -1 -2578 2558 -1 -2958 2558 -1 -2559 2559 6 -2560 2559 -1 -2579 2559 -1 -2959 2559 -1 -2560 2560 6 -2580 2560 -1 -2960 2560 -1 -2561 2561 6 -2562 2561 -1 -2581 2561 -1 -2961 2561 -1 -2562 2562 6 -2563 2562 -1 -2582 2562 -1 -2962 2562 -1 -2563 2563 6 -2564 2563 -1 -2583 2563 -1 -2963 2563 -1 -2564 2564 6 -2565 2564 -1 -2584 2564 -1 -2964 2564 -1 -2565 2565 6 -2566 2565 -1 -2585 2565 -1 -2965 2565 -1 -2566 2566 6 -2567 2566 -1 -2586 2566 -1 -2966 2566 -1 -2567 2567 6 -2568 2567 -1 -2587 2567 -1 -2967 2567 -1 -2568 2568 6 -2569 2568 -1 -2588 2568 -1 -2968 2568 -1 -2569 2569 6 -2570 2569 -1 -2589 2569 -1 -2969 2569 -1 -2570 2570 6 -2571 2570 -1 -2590 2570 -1 -2970 2570 -1 -2571 2571 6 -2572 2571 -1 -2591 2571 -1 -2971 2571 -1 -2572 2572 6 -2573 2572 -1 -2592 2572 -1 -2972 2572 -1 -2573 2573 6 -2574 2573 -1 -2593 2573 -1 -2973 2573 -1 -2574 2574 6 -2575 2574 -1 -2594 2574 -1 -2974 2574 -1 -2575 2575 6 -2576 2575 -1 -2595 2575 -1 -2975 2575 -1 -2576 2576 6 -2577 2576 -1 -2596 2576 -1 -2976 2576 -1 -2577 2577 6 -2578 2577 -1 -2597 2577 -1 -2977 2577 -1 -2578 2578 6 -2579 2578 -1 -2598 2578 -1 -2978 2578 -1 -2579 2579 6 -2580 2579 -1 -2599 2579 -1 -2979 2579 -1 -2580 2580 6 -2600 2580 -1 -2980 2580 -1 -2581 2581 6 -2582 2581 -1 -2601 2581 -1 -2981 2581 -1 -2582 2582 6 -2583 2582 -1 -2602 2582 -1 -2982 2582 -1 -2583 2583 6 -2584 2583 -1 -2603 2583 -1 -2983 2583 -1 -2584 2584 6 -2585 2584 -1 -2604 2584 -1 -2984 2584 -1 -2585 2585 6 -2586 2585 -1 -2605 2585 -1 -2985 2585 -1 -2586 2586 6 -2587 2586 -1 -2606 2586 -1 -2986 2586 -1 -2587 2587 6 -2588 2587 -1 -2607 2587 -1 -2987 2587 -1 -2588 2588 6 -2589 2588 -1 -2608 2588 -1 -2988 2588 -1 -2589 2589 6 -2590 2589 -1 -2609 2589 -1 -2989 2589 -1 -2590 2590 6 -2591 2590 -1 -2610 2590 -1 -2990 2590 -1 -2591 2591 6 -2592 2591 -1 -2611 2591 -1 -2991 2591 -1 -2592 2592 6 -2593 2592 -1 -2612 2592 -1 -2992 2592 -1 -2593 2593 6 -2594 2593 -1 -2613 2593 -1 -2993 2593 -1 -2594 2594 6 -2595 2594 -1 -2614 2594 -1 -2994 2594 -1 -2595 2595 6 -2596 2595 -1 -2615 2595 -1 -2995 2595 -1 -2596 2596 6 -2597 2596 -1 -2616 2596 -1 -2996 2596 -1 -2597 2597 6 -2598 2597 -1 -2617 2597 -1 -2997 2597 -1 -2598 2598 6 -2599 2598 -1 -2618 2598 -1 -2998 2598 -1 -2599 2599 6 -2600 2599 -1 -2619 2599 -1 -2999 2599 -1 -2600 2600 6 -2620 2600 -1 -3000 2600 -1 -2601 2601 6 -2602 2601 -1 -2621 2601 -1 -3001 2601 -1 -2602 2602 6 -2603 2602 -1 -2622 2602 -1 -3002 2602 -1 -2603 2603 6 -2604 2603 -1 -2623 2603 -1 -3003 2603 -1 -2604 2604 6 -2605 2604 -1 -2624 2604 -1 -3004 2604 -1 -2605 2605 6 -2606 2605 -1 -2625 2605 -1 -3005 2605 -1 -2606 2606 6 -2607 2606 -1 -2626 2606 -1 -3006 2606 -1 -2607 2607 6 -2608 2607 -1 -2627 2607 -1 -3007 2607 -1 -2608 2608 6 -2609 2608 -1 -2628 2608 -1 -3008 2608 -1 -2609 2609 6 -2610 2609 -1 -2629 2609 -1 -3009 2609 -1 -2610 2610 6 -2611 2610 -1 -2630 2610 -1 -3010 2610 -1 -2611 2611 6 -2612 2611 -1 -2631 2611 -1 -3011 2611 -1 -2612 2612 6 -2613 2612 -1 -2632 2612 -1 -3012 2612 -1 -2613 2613 6 -2614 2613 -1 -2633 2613 -1 -3013 2613 -1 -2614 2614 6 -2615 2614 -1 -2634 2614 -1 -3014 2614 -1 -2615 2615 6 -2616 2615 -1 -2635 2615 -1 -3015 2615 -1 -2616 2616 6 -2617 2616 -1 -2636 2616 -1 -3016 2616 -1 -2617 2617 6 -2618 2617 -1 -2637 2617 -1 -3017 2617 -1 -2618 2618 6 -2619 2618 -1 -2638 2618 -1 -3018 2618 -1 -2619 2619 6 -2620 2619 -1 -2639 2619 -1 -3019 2619 -1 -2620 2620 6 -2640 2620 -1 -3020 2620 -1 -2621 2621 6 -2622 2621 -1 -2641 2621 -1 -3021 2621 -1 -2622 2622 6 -2623 2622 -1 -2642 2622 -1 -3022 2622 -1 -2623 2623 6 -2624 2623 -1 -2643 2623 -1 -3023 2623 -1 -2624 2624 6 -2625 2624 -1 -2644 2624 -1 -3024 2624 -1 -2625 2625 6 -2626 2625 -1 -2645 2625 -1 -3025 2625 -1 -2626 2626 6 -2627 2626 -1 -2646 2626 -1 -3026 2626 -1 -2627 2627 6 -2628 2627 -1 -2647 2627 -1 -3027 2627 -1 -2628 2628 6 -2629 2628 -1 -2648 2628 -1 -3028 2628 -1 -2629 2629 6 -2630 2629 -1 -2649 2629 -1 -3029 2629 -1 -2630 2630 6 -2631 2630 -1 -2650 2630 -1 -3030 2630 -1 -2631 2631 6 -2632 2631 -1 -2651 2631 -1 -3031 2631 -1 -2632 2632 6 -2633 2632 -1 -2652 2632 -1 -3032 2632 -1 -2633 2633 6 -2634 2633 -1 -2653 2633 -1 -3033 2633 -1 -2634 2634 6 -2635 2634 -1 -2654 2634 -1 -3034 2634 -1 -2635 2635 6 -2636 2635 -1 -2655 2635 -1 -3035 2635 -1 -2636 2636 6 -2637 2636 -1 -2656 2636 -1 -3036 2636 -1 -2637 2637 6 -2638 2637 -1 -2657 2637 -1 -3037 2637 -1 -2638 2638 6 -2639 2638 -1 -2658 2638 -1 -3038 2638 -1 -2639 2639 6 -2640 2639 -1 -2659 2639 -1 -3039 2639 -1 -2640 2640 6 -2660 2640 -1 -3040 2640 -1 -2641 2641 6 -2642 2641 -1 -2661 2641 -1 -3041 2641 -1 -2642 2642 6 -2643 2642 -1 -2662 2642 -1 -3042 2642 -1 -2643 2643 6 -2644 2643 -1 -2663 2643 -1 -3043 2643 -1 -2644 2644 6 -2645 2644 -1 -2664 2644 -1 -3044 2644 -1 -2645 2645 6 -2646 2645 -1 -2665 2645 -1 -3045 2645 -1 -2646 2646 6 -2647 2646 -1 -2666 2646 -1 -3046 2646 -1 -2647 2647 6 -2648 2647 -1 -2667 2647 -1 -3047 2647 -1 -2648 2648 6 -2649 2648 -1 -2668 2648 -1 -3048 2648 -1 -2649 2649 6 -2650 2649 -1 -2669 2649 -1 -3049 2649 -1 -2650 2650 6 -2651 2650 -1 -2670 2650 -1 -3050 2650 -1 -2651 2651 6 -2652 2651 -1 -2671 2651 -1 -3051 2651 -1 -2652 2652 6 -2653 2652 -1 -2672 2652 -1 -3052 2652 -1 -2653 2653 6 -2654 2653 -1 -2673 2653 -1 -3053 2653 -1 -2654 2654 6 -2655 2654 -1 -2674 2654 -1 -3054 2654 -1 -2655 2655 6 -2656 2655 -1 -2675 2655 -1 -3055 2655 -1 -2656 2656 6 -2657 2656 -1 -2676 2656 -1 -3056 2656 -1 -2657 2657 6 -2658 2657 -1 -2677 2657 -1 -3057 2657 -1 -2658 2658 6 -2659 2658 -1 -2678 2658 -1 -3058 2658 -1 -2659 2659 6 -2660 2659 -1 -2679 2659 -1 -3059 2659 -1 -2660 2660 6 -2680 2660 -1 -3060 2660 -1 -2661 2661 6 -2662 2661 -1 -2681 2661 -1 -3061 2661 -1 -2662 2662 6 -2663 2662 -1 -2682 2662 -1 -3062 2662 -1 -2663 2663 6 -2664 2663 -1 -2683 2663 -1 -3063 2663 -1 -2664 2664 6 -2665 2664 -1 -2684 2664 -1 -3064 2664 -1 -2665 2665 6 -2666 2665 -1 -2685 2665 -1 -3065 2665 -1 -2666 2666 6 -2667 2666 -1 -2686 2666 -1 -3066 2666 -1 -2667 2667 6 -2668 2667 -1 -2687 2667 -1 -3067 2667 -1 -2668 2668 6 -2669 2668 -1 -2688 2668 -1 -3068 2668 -1 -2669 2669 6 -2670 2669 -1 -2689 2669 -1 -3069 2669 -1 -2670 2670 6 -2671 2670 -1 -2690 2670 -1 -3070 2670 -1 -2671 2671 6 -2672 2671 -1 -2691 2671 -1 -3071 2671 -1 -2672 2672 6 -2673 2672 -1 -2692 2672 -1 -3072 2672 -1 -2673 2673 6 -2674 2673 -1 -2693 2673 -1 -3073 2673 -1 -2674 2674 6 -2675 2674 -1 -2694 2674 -1 -3074 2674 -1 -2675 2675 6 -2676 2675 -1 -2695 2675 -1 -3075 2675 -1 -2676 2676 6 -2677 2676 -1 -2696 2676 -1 -3076 2676 -1 -2677 2677 6 -2678 2677 -1 -2697 2677 -1 -3077 2677 -1 -2678 2678 6 -2679 2678 -1 -2698 2678 -1 -3078 2678 -1 -2679 2679 6 -2680 2679 -1 -2699 2679 -1 -3079 2679 -1 -2680 2680 6 -2700 2680 -1 -3080 2680 -1 -2681 2681 6 -2682 2681 -1 -2701 2681 -1 -3081 2681 -1 -2682 2682 6 -2683 2682 -1 -2702 2682 -1 -3082 2682 -1 -2683 2683 6 -2684 2683 -1 -2703 2683 -1 -3083 2683 -1 -2684 2684 6 -2685 2684 -1 -2704 2684 -1 -3084 2684 -1 -2685 2685 6 -2686 2685 -1 -2705 2685 -1 -3085 2685 -1 -2686 2686 6 -2687 2686 -1 -2706 2686 -1 -3086 2686 -1 -2687 2687 6 -2688 2687 -1 -2707 2687 -1 -3087 2687 -1 -2688 2688 6 -2689 2688 -1 -2708 2688 -1 -3088 2688 -1 -2689 2689 6 -2690 2689 -1 -2709 2689 -1 -3089 2689 -1 -2690 2690 6 -2691 2690 -1 -2710 2690 -1 -3090 2690 -1 -2691 2691 6 -2692 2691 -1 -2711 2691 -1 -3091 2691 -1 -2692 2692 6 -2693 2692 -1 -2712 2692 -1 -3092 2692 -1 -2693 2693 6 -2694 2693 -1 -2713 2693 -1 -3093 2693 -1 -2694 2694 6 -2695 2694 -1 -2714 2694 -1 -3094 2694 -1 -2695 2695 6 -2696 2695 -1 -2715 2695 -1 -3095 2695 -1 -2696 2696 6 -2697 2696 -1 -2716 2696 -1 -3096 2696 -1 -2697 2697 6 -2698 2697 -1 -2717 2697 -1 -3097 2697 -1 -2698 2698 6 -2699 2698 -1 -2718 2698 -1 -3098 2698 -1 -2699 2699 6 -2700 2699 -1 -2719 2699 -1 -3099 2699 -1 -2700 2700 6 -2720 2700 -1 -3100 2700 -1 -2701 2701 6 -2702 2701 -1 -2721 2701 -1 -3101 2701 -1 -2702 2702 6 -2703 2702 -1 -2722 2702 -1 -3102 2702 -1 -2703 2703 6 -2704 2703 -1 -2723 2703 -1 -3103 2703 -1 -2704 2704 6 -2705 2704 -1 -2724 2704 -1 -3104 2704 -1 -2705 2705 6 -2706 2705 -1 -2725 2705 -1 -3105 2705 -1 -2706 2706 6 -2707 2706 -1 -2726 2706 -1 -3106 2706 -1 -2707 2707 6 -2708 2707 -1 -2727 2707 -1 -3107 2707 -1 -2708 2708 6 -2709 2708 -1 -2728 2708 -1 -3108 2708 -1 -2709 2709 6 -2710 2709 -1 -2729 2709 -1 -3109 2709 -1 -2710 2710 6 -2711 2710 -1 -2730 2710 -1 -3110 2710 -1 -2711 2711 6 -2712 2711 -1 -2731 2711 -1 -3111 2711 -1 -2712 2712 6 -2713 2712 -1 -2732 2712 -1 -3112 2712 -1 -2713 2713 6 -2714 2713 -1 -2733 2713 -1 -3113 2713 -1 -2714 2714 6 -2715 2714 -1 -2734 2714 -1 -3114 2714 -1 -2715 2715 6 -2716 2715 -1 -2735 2715 -1 -3115 2715 -1 -2716 2716 6 -2717 2716 -1 -2736 2716 -1 -3116 2716 -1 -2717 2717 6 -2718 2717 -1 -2737 2717 -1 -3117 2717 -1 -2718 2718 6 -2719 2718 -1 -2738 2718 -1 -3118 2718 -1 -2719 2719 6 -2720 2719 -1 -2739 2719 -1 -3119 2719 -1 -2720 2720 6 -2740 2720 -1 -3120 2720 -1 -2721 2721 6 -2722 2721 -1 -2741 2721 -1 -3121 2721 -1 -2722 2722 6 -2723 2722 -1 -2742 2722 -1 -3122 2722 -1 -2723 2723 6 -2724 2723 -1 -2743 2723 -1 -3123 2723 -1 -2724 2724 6 -2725 2724 -1 -2744 2724 -1 -3124 2724 -1 -2725 2725 6 -2726 2725 -1 -2745 2725 -1 -3125 2725 -1 -2726 2726 6 -2727 2726 -1 -2746 2726 -1 -3126 2726 -1 -2727 2727 6 -2728 2727 -1 -2747 2727 -1 -3127 2727 -1 -2728 2728 6 -2729 2728 -1 -2748 2728 -1 -3128 2728 -1 -2729 2729 6 -2730 2729 -1 -2749 2729 -1 -3129 2729 -1 -2730 2730 6 -2731 2730 -1 -2750 2730 -1 -3130 2730 -1 -2731 2731 6 -2732 2731 -1 -2751 2731 -1 -3131 2731 -1 -2732 2732 6 -2733 2732 -1 -2752 2732 -1 -3132 2732 -1 -2733 2733 6 -2734 2733 -1 -2753 2733 -1 -3133 2733 -1 -2734 2734 6 -2735 2734 -1 -2754 2734 -1 -3134 2734 -1 -2735 2735 6 -2736 2735 -1 -2755 2735 -1 -3135 2735 -1 -2736 2736 6 -2737 2736 -1 -2756 2736 -1 -3136 2736 -1 -2737 2737 6 -2738 2737 -1 -2757 2737 -1 -3137 2737 -1 -2738 2738 6 -2739 2738 -1 -2758 2738 -1 -3138 2738 -1 -2739 2739 6 -2740 2739 -1 -2759 2739 -1 -3139 2739 -1 -2740 2740 6 -2760 2740 -1 -3140 2740 -1 -2741 2741 6 -2742 2741 -1 -2761 2741 -1 -3141 2741 -1 -2742 2742 6 -2743 2742 -1 -2762 2742 -1 -3142 2742 -1 -2743 2743 6 -2744 2743 -1 -2763 2743 -1 -3143 2743 -1 -2744 2744 6 -2745 2744 -1 -2764 2744 -1 -3144 2744 -1 -2745 2745 6 -2746 2745 -1 -2765 2745 -1 -3145 2745 -1 -2746 2746 6 -2747 2746 -1 -2766 2746 -1 -3146 2746 -1 -2747 2747 6 -2748 2747 -1 -2767 2747 -1 -3147 2747 -1 -2748 2748 6 -2749 2748 -1 -2768 2748 -1 -3148 2748 -1 -2749 2749 6 -2750 2749 -1 -2769 2749 -1 -3149 2749 -1 -2750 2750 6 -2751 2750 -1 -2770 2750 -1 -3150 2750 -1 -2751 2751 6 -2752 2751 -1 -2771 2751 -1 -3151 2751 -1 -2752 2752 6 -2753 2752 -1 -2772 2752 -1 -3152 2752 -1 -2753 2753 6 -2754 2753 -1 -2773 2753 -1 -3153 2753 -1 -2754 2754 6 -2755 2754 -1 -2774 2754 -1 -3154 2754 -1 -2755 2755 6 -2756 2755 -1 -2775 2755 -1 -3155 2755 -1 -2756 2756 6 -2757 2756 -1 -2776 2756 -1 -3156 2756 -1 -2757 2757 6 -2758 2757 -1 -2777 2757 -1 -3157 2757 -1 -2758 2758 6 -2759 2758 -1 -2778 2758 -1 -3158 2758 -1 -2759 2759 6 -2760 2759 -1 -2779 2759 -1 -3159 2759 -1 -2760 2760 6 -2780 2760 -1 -3160 2760 -1 -2761 2761 6 -2762 2761 -1 -2781 2761 -1 -3161 2761 -1 -2762 2762 6 -2763 2762 -1 -2782 2762 -1 -3162 2762 -1 -2763 2763 6 -2764 2763 -1 -2783 2763 -1 -3163 2763 -1 -2764 2764 6 -2765 2764 -1 -2784 2764 -1 -3164 2764 -1 -2765 2765 6 -2766 2765 -1 -2785 2765 -1 -3165 2765 -1 -2766 2766 6 -2767 2766 -1 -2786 2766 -1 -3166 2766 -1 -2767 2767 6 -2768 2767 -1 -2787 2767 -1 -3167 2767 -1 -2768 2768 6 -2769 2768 -1 -2788 2768 -1 -3168 2768 -1 -2769 2769 6 -2770 2769 -1 -2789 2769 -1 -3169 2769 -1 -2770 2770 6 -2771 2770 -1 -2790 2770 -1 -3170 2770 -1 -2771 2771 6 -2772 2771 -1 -2791 2771 -1 -3171 2771 -1 -2772 2772 6 -2773 2772 -1 -2792 2772 -1 -3172 2772 -1 -2773 2773 6 -2774 2773 -1 -2793 2773 -1 -3173 2773 -1 -2774 2774 6 -2775 2774 -1 -2794 2774 -1 -3174 2774 -1 -2775 2775 6 -2776 2775 -1 -2795 2775 -1 -3175 2775 -1 -2776 2776 6 -2777 2776 -1 -2796 2776 -1 -3176 2776 -1 -2777 2777 6 -2778 2777 -1 -2797 2777 -1 -3177 2777 -1 -2778 2778 6 -2779 2778 -1 -2798 2778 -1 -3178 2778 -1 -2779 2779 6 -2780 2779 -1 -2799 2779 -1 -3179 2779 -1 -2780 2780 6 -2800 2780 -1 -3180 2780 -1 -2781 2781 6 -2782 2781 -1 -3181 2781 -1 -2782 2782 6 -2783 2782 -1 -3182 2782 -1 -2783 2783 6 -2784 2783 -1 -3183 2783 -1 -2784 2784 6 -2785 2784 -1 -3184 2784 -1 -2785 2785 6 -2786 2785 -1 -3185 2785 -1 -2786 2786 6 -2787 2786 -1 -3186 2786 -1 -2787 2787 6 -2788 2787 -1 -3187 2787 -1 -2788 2788 6 -2789 2788 -1 -3188 2788 -1 -2789 2789 6 -2790 2789 -1 -3189 2789 -1 -2790 2790 6 -2791 2790 -1 -3190 2790 -1 -2791 2791 6 -2792 2791 -1 -3191 2791 -1 -2792 2792 6 -2793 2792 -1 -3192 2792 -1 -2793 2793 6 -2794 2793 -1 -3193 2793 -1 -2794 2794 6 -2795 2794 -1 -3194 2794 -1 -2795 2795 6 -2796 2795 -1 -3195 2795 -1 -2796 2796 6 -2797 2796 -1 -3196 2796 -1 -2797 2797 6 -2798 2797 -1 -3197 2797 -1 -2798 2798 6 -2799 2798 -1 -3198 2798 -1 -2799 2799 6 -2800 2799 -1 -3199 2799 -1 -2800 2800 6 -3200 2800 -1 -2801 2801 6 -2802 2801 -1 -2821 2801 -1 -3201 2801 -1 -2802 2802 6 -2803 2802 -1 -2822 2802 -1 -3202 2802 -1 -2803 2803 6 -2804 2803 -1 -2823 2803 -1 -3203 2803 -1 -2804 2804 6 -2805 2804 -1 -2824 2804 -1 -3204 2804 -1 -2805 2805 6 -2806 2805 -1 -2825 2805 -1 -3205 2805 -1 -2806 2806 6 -2807 2806 -1 -2826 2806 -1 -3206 2806 -1 -2807 2807 6 -2808 2807 -1 -2827 2807 -1 -3207 2807 -1 -2808 2808 6 -2809 2808 -1 -2828 2808 -1 -3208 2808 -1 -2809 2809 6 -2810 2809 -1 -2829 2809 -1 -3209 2809 -1 -2810 2810 6 -2811 2810 -1 -2830 2810 -1 -3210 2810 -1 -2811 2811 6 -2812 2811 -1 -2831 2811 -1 -3211 2811 -1 -2812 2812 6 -2813 2812 -1 -2832 2812 -1 -3212 2812 -1 -2813 2813 6 -2814 2813 -1 -2833 2813 -1 -3213 2813 -1 -2814 2814 6 -2815 2814 -1 -2834 2814 -1 -3214 2814 -1 -2815 2815 6 -2816 2815 -1 -2835 2815 -1 -3215 2815 -1 -2816 2816 6 -2817 2816 -1 -2836 2816 -1 -3216 2816 -1 -2817 2817 6 -2818 2817 -1 -2837 2817 -1 -3217 2817 -1 -2818 2818 6 -2819 2818 -1 -2838 2818 -1 -3218 2818 -1 -2819 2819 6 -2820 2819 -1 -2839 2819 -1 -3219 2819 -1 -2820 2820 6 -2840 2820 -1 -3220 2820 -1 -2821 2821 6 -2822 2821 -1 -2841 2821 -1 -3221 2821 -1 -2822 2822 6 -2823 2822 -1 -2842 2822 -1 -3222 2822 -1 -2823 2823 6 -2824 2823 -1 -2843 2823 -1 -3223 2823 -1 -2824 2824 6 -2825 2824 -1 -2844 2824 -1 -3224 2824 -1 -2825 2825 6 -2826 2825 -1 -2845 2825 -1 -3225 2825 -1 -2826 2826 6 -2827 2826 -1 -2846 2826 -1 -3226 2826 -1 -2827 2827 6 -2828 2827 -1 -2847 2827 -1 -3227 2827 -1 -2828 2828 6 -2829 2828 -1 -2848 2828 -1 -3228 2828 -1 -2829 2829 6 -2830 2829 -1 -2849 2829 -1 -3229 2829 -1 -2830 2830 6 -2831 2830 -1 -2850 2830 -1 -3230 2830 -1 -2831 2831 6 -2832 2831 -1 -2851 2831 -1 -3231 2831 -1 -2832 2832 6 -2833 2832 -1 -2852 2832 -1 -3232 2832 -1 -2833 2833 6 -2834 2833 -1 -2853 2833 -1 -3233 2833 -1 -2834 2834 6 -2835 2834 -1 -2854 2834 -1 -3234 2834 -1 -2835 2835 6 -2836 2835 -1 -2855 2835 -1 -3235 2835 -1 -2836 2836 6 -2837 2836 -1 -2856 2836 -1 -3236 2836 -1 -2837 2837 6 -2838 2837 -1 -2857 2837 -1 -3237 2837 -1 -2838 2838 6 -2839 2838 -1 -2858 2838 -1 -3238 2838 -1 -2839 2839 6 -2840 2839 -1 -2859 2839 -1 -3239 2839 -1 -2840 2840 6 -2860 2840 -1 -3240 2840 -1 -2841 2841 6 -2842 2841 -1 -2861 2841 -1 -3241 2841 -1 -2842 2842 6 -2843 2842 -1 -2862 2842 -1 -3242 2842 -1 -2843 2843 6 -2844 2843 -1 -2863 2843 -1 -3243 2843 -1 -2844 2844 6 -2845 2844 -1 -2864 2844 -1 -3244 2844 -1 -2845 2845 6 -2846 2845 -1 -2865 2845 -1 -3245 2845 -1 -2846 2846 6 -2847 2846 -1 -2866 2846 -1 -3246 2846 -1 -2847 2847 6 -2848 2847 -1 -2867 2847 -1 -3247 2847 -1 -2848 2848 6 -2849 2848 -1 -2868 2848 -1 -3248 2848 -1 -2849 2849 6 -2850 2849 -1 -2869 2849 -1 -3249 2849 -1 -2850 2850 6 -2851 2850 -1 -2870 2850 -1 -3250 2850 -1 -2851 2851 6 -2852 2851 -1 -2871 2851 -1 -3251 2851 -1 -2852 2852 6 -2853 2852 -1 -2872 2852 -1 -3252 2852 -1 -2853 2853 6 -2854 2853 -1 -2873 2853 -1 -3253 2853 -1 -2854 2854 6 -2855 2854 -1 -2874 2854 -1 -3254 2854 -1 -2855 2855 6 -2856 2855 -1 -2875 2855 -1 -3255 2855 -1 -2856 2856 6 -2857 2856 -1 -2876 2856 -1 -3256 2856 -1 -2857 2857 6 -2858 2857 -1 -2877 2857 -1 -3257 2857 -1 -2858 2858 6 -2859 2858 -1 -2878 2858 -1 -3258 2858 -1 -2859 2859 6 -2860 2859 -1 -2879 2859 -1 -3259 2859 -1 -2860 2860 6 -2880 2860 -1 -3260 2860 -1 -2861 2861 6 -2862 2861 -1 -2881 2861 -1 -3261 2861 -1 -2862 2862 6 -2863 2862 -1 -2882 2862 -1 -3262 2862 -1 -2863 2863 6 -2864 2863 -1 -2883 2863 -1 -3263 2863 -1 -2864 2864 6 -2865 2864 -1 -2884 2864 -1 -3264 2864 -1 -2865 2865 6 -2866 2865 -1 -2885 2865 -1 -3265 2865 -1 -2866 2866 6 -2867 2866 -1 -2886 2866 -1 -3266 2866 -1 -2867 2867 6 -2868 2867 -1 -2887 2867 -1 -3267 2867 -1 -2868 2868 6 -2869 2868 -1 -2888 2868 -1 -3268 2868 -1 -2869 2869 6 -2870 2869 -1 -2889 2869 -1 -3269 2869 -1 -2870 2870 6 -2871 2870 -1 -2890 2870 -1 -3270 2870 -1 -2871 2871 6 -2872 2871 -1 -2891 2871 -1 -3271 2871 -1 -2872 2872 6 -2873 2872 -1 -2892 2872 -1 -3272 2872 -1 -2873 2873 6 -2874 2873 -1 -2893 2873 -1 -3273 2873 -1 -2874 2874 6 -2875 2874 -1 -2894 2874 -1 -3274 2874 -1 -2875 2875 6 -2876 2875 -1 -2895 2875 -1 -3275 2875 -1 -2876 2876 6 -2877 2876 -1 -2896 2876 -1 -3276 2876 -1 -2877 2877 6 -2878 2877 -1 -2897 2877 -1 -3277 2877 -1 -2878 2878 6 -2879 2878 -1 -2898 2878 -1 -3278 2878 -1 -2879 2879 6 -2880 2879 -1 -2899 2879 -1 -3279 2879 -1 -2880 2880 6 -2900 2880 -1 -3280 2880 -1 -2881 2881 6 -2882 2881 -1 -2901 2881 -1 -3281 2881 -1 -2882 2882 6 -2883 2882 -1 -2902 2882 -1 -3282 2882 -1 -2883 2883 6 -2884 2883 -1 -2903 2883 -1 -3283 2883 -1 -2884 2884 6 -2885 2884 -1 -2904 2884 -1 -3284 2884 -1 -2885 2885 6 -2886 2885 -1 -2905 2885 -1 -3285 2885 -1 -2886 2886 6 -2887 2886 -1 -2906 2886 -1 -3286 2886 -1 -2887 2887 6 -2888 2887 -1 -2907 2887 -1 -3287 2887 -1 -2888 2888 6 -2889 2888 -1 -2908 2888 -1 -3288 2888 -1 -2889 2889 6 -2890 2889 -1 -2909 2889 -1 -3289 2889 -1 -2890 2890 6 -2891 2890 -1 -2910 2890 -1 -3290 2890 -1 -2891 2891 6 -2892 2891 -1 -2911 2891 -1 -3291 2891 -1 -2892 2892 6 -2893 2892 -1 -2912 2892 -1 -3292 2892 -1 -2893 2893 6 -2894 2893 -1 -2913 2893 -1 -3293 2893 -1 -2894 2894 6 -2895 2894 -1 -2914 2894 -1 -3294 2894 -1 -2895 2895 6 -2896 2895 -1 -2915 2895 -1 -3295 2895 -1 -2896 2896 6 -2897 2896 -1 -2916 2896 -1 -3296 2896 -1 -2897 2897 6 -2898 2897 -1 -2917 2897 -1 -3297 2897 -1 -2898 2898 6 -2899 2898 -1 -2918 2898 -1 -3298 2898 -1 -2899 2899 6 -2900 2899 -1 -2919 2899 -1 -3299 2899 -1 -2900 2900 6 -2920 2900 -1 -3300 2900 -1 -2901 2901 6 -2902 2901 -1 -2921 2901 -1 -3301 2901 -1 -2902 2902 6 -2903 2902 -1 -2922 2902 -1 -3302 2902 -1 -2903 2903 6 -2904 2903 -1 -2923 2903 -1 -3303 2903 -1 -2904 2904 6 -2905 2904 -1 -2924 2904 -1 -3304 2904 -1 -2905 2905 6 -2906 2905 -1 -2925 2905 -1 -3305 2905 -1 -2906 2906 6 -2907 2906 -1 -2926 2906 -1 -3306 2906 -1 -2907 2907 6 -2908 2907 -1 -2927 2907 -1 -3307 2907 -1 -2908 2908 6 -2909 2908 -1 -2928 2908 -1 -3308 2908 -1 -2909 2909 6 -2910 2909 -1 -2929 2909 -1 -3309 2909 -1 -2910 2910 6 -2911 2910 -1 -2930 2910 -1 -3310 2910 -1 -2911 2911 6 -2912 2911 -1 -2931 2911 -1 -3311 2911 -1 -2912 2912 6 -2913 2912 -1 -2932 2912 -1 -3312 2912 -1 -2913 2913 6 -2914 2913 -1 -2933 2913 -1 -3313 2913 -1 -2914 2914 6 -2915 2914 -1 -2934 2914 -1 -3314 2914 -1 -2915 2915 6 -2916 2915 -1 -2935 2915 -1 -3315 2915 -1 -2916 2916 6 -2917 2916 -1 -2936 2916 -1 -3316 2916 -1 -2917 2917 6 -2918 2917 -1 -2937 2917 -1 -3317 2917 -1 -2918 2918 6 -2919 2918 -1 -2938 2918 -1 -3318 2918 -1 -2919 2919 6 -2920 2919 -1 -2939 2919 -1 -3319 2919 -1 -2920 2920 6 -2940 2920 -1 -3320 2920 -1 -2921 2921 6 -2922 2921 -1 -2941 2921 -1 -3321 2921 -1 -2922 2922 6 -2923 2922 -1 -2942 2922 -1 -3322 2922 -1 -2923 2923 6 -2924 2923 -1 -2943 2923 -1 -3323 2923 -1 -2924 2924 6 -2925 2924 -1 -2944 2924 -1 -3324 2924 -1 -2925 2925 6 -2926 2925 -1 -2945 2925 -1 -3325 2925 -1 -2926 2926 6 -2927 2926 -1 -2946 2926 -1 -3326 2926 -1 -2927 2927 6 -2928 2927 -1 -2947 2927 -1 -3327 2927 -1 -2928 2928 6 -2929 2928 -1 -2948 2928 -1 -3328 2928 -1 -2929 2929 6 -2930 2929 -1 -2949 2929 -1 -3329 2929 -1 -2930 2930 6 -2931 2930 -1 -2950 2930 -1 -3330 2930 -1 -2931 2931 6 -2932 2931 -1 -2951 2931 -1 -3331 2931 -1 -2932 2932 6 -2933 2932 -1 -2952 2932 -1 -3332 2932 -1 -2933 2933 6 -2934 2933 -1 -2953 2933 -1 -3333 2933 -1 -2934 2934 6 -2935 2934 -1 -2954 2934 -1 -3334 2934 -1 -2935 2935 6 -2936 2935 -1 -2955 2935 -1 -3335 2935 -1 -2936 2936 6 -2937 2936 -1 -2956 2936 -1 -3336 2936 -1 -2937 2937 6 -2938 2937 -1 -2957 2937 -1 -3337 2937 -1 -2938 2938 6 -2939 2938 -1 -2958 2938 -1 -3338 2938 -1 -2939 2939 6 -2940 2939 -1 -2959 2939 -1 -3339 2939 -1 -2940 2940 6 -2960 2940 -1 -3340 2940 -1 -2941 2941 6 -2942 2941 -1 -2961 2941 -1 -3341 2941 -1 -2942 2942 6 -2943 2942 -1 -2962 2942 -1 -3342 2942 -1 -2943 2943 6 -2944 2943 -1 -2963 2943 -1 -3343 2943 -1 -2944 2944 6 -2945 2944 -1 -2964 2944 -1 -3344 2944 -1 -2945 2945 6 -2946 2945 -1 -2965 2945 -1 -3345 2945 -1 -2946 2946 6 -2947 2946 -1 -2966 2946 -1 -3346 2946 -1 -2947 2947 6 -2948 2947 -1 -2967 2947 -1 -3347 2947 -1 -2948 2948 6 -2949 2948 -1 -2968 2948 -1 -3348 2948 -1 -2949 2949 6 -2950 2949 -1 -2969 2949 -1 -3349 2949 -1 -2950 2950 6 -2951 2950 -1 -2970 2950 -1 -3350 2950 -1 -2951 2951 6 -2952 2951 -1 -2971 2951 -1 -3351 2951 -1 -2952 2952 6 -2953 2952 -1 -2972 2952 -1 -3352 2952 -1 -2953 2953 6 -2954 2953 -1 -2973 2953 -1 -3353 2953 -1 -2954 2954 6 -2955 2954 -1 -2974 2954 -1 -3354 2954 -1 -2955 2955 6 -2956 2955 -1 -2975 2955 -1 -3355 2955 -1 -2956 2956 6 -2957 2956 -1 -2976 2956 -1 -3356 2956 -1 -2957 2957 6 -2958 2957 -1 -2977 2957 -1 -3357 2957 -1 -2958 2958 6 -2959 2958 -1 -2978 2958 -1 -3358 2958 -1 -2959 2959 6 -2960 2959 -1 -2979 2959 -1 -3359 2959 -1 -2960 2960 6 -2980 2960 -1 -3360 2960 -1 -2961 2961 6 -2962 2961 -1 -2981 2961 -1 -3361 2961 -1 -2962 2962 6 -2963 2962 -1 -2982 2962 -1 -3362 2962 -1 -2963 2963 6 -2964 2963 -1 -2983 2963 -1 -3363 2963 -1 -2964 2964 6 -2965 2964 -1 -2984 2964 -1 -3364 2964 -1 -2965 2965 6 -2966 2965 -1 -2985 2965 -1 -3365 2965 -1 -2966 2966 6 -2967 2966 -1 -2986 2966 -1 -3366 2966 -1 -2967 2967 6 -2968 2967 -1 -2987 2967 -1 -3367 2967 -1 -2968 2968 6 -2969 2968 -1 -2988 2968 -1 -3368 2968 -1 -2969 2969 6 -2970 2969 -1 -2989 2969 -1 -3369 2969 -1 -2970 2970 6 -2971 2970 -1 -2990 2970 -1 -3370 2970 -1 -2971 2971 6 -2972 2971 -1 -2991 2971 -1 -3371 2971 -1 -2972 2972 6 -2973 2972 -1 -2992 2972 -1 -3372 2972 -1 -2973 2973 6 -2974 2973 -1 -2993 2973 -1 -3373 2973 -1 -2974 2974 6 -2975 2974 -1 -2994 2974 -1 -3374 2974 -1 -2975 2975 6 -2976 2975 -1 -2995 2975 -1 -3375 2975 -1 -2976 2976 6 -2977 2976 -1 -2996 2976 -1 -3376 2976 -1 -2977 2977 6 -2978 2977 -1 -2997 2977 -1 -3377 2977 -1 -2978 2978 6 -2979 2978 -1 -2998 2978 -1 -3378 2978 -1 -2979 2979 6 -2980 2979 -1 -2999 2979 -1 -3379 2979 -1 -2980 2980 6 -3000 2980 -1 -3380 2980 -1 -2981 2981 6 -2982 2981 -1 -3001 2981 -1 -3381 2981 -1 -2982 2982 6 -2983 2982 -1 -3002 2982 -1 -3382 2982 -1 -2983 2983 6 -2984 2983 -1 -3003 2983 -1 -3383 2983 -1 -2984 2984 6 -2985 2984 -1 -3004 2984 -1 -3384 2984 -1 -2985 2985 6 -2986 2985 -1 -3005 2985 -1 -3385 2985 -1 -2986 2986 6 -2987 2986 -1 -3006 2986 -1 -3386 2986 -1 -2987 2987 6 -2988 2987 -1 -3007 2987 -1 -3387 2987 -1 -2988 2988 6 -2989 2988 -1 -3008 2988 -1 -3388 2988 -1 -2989 2989 6 -2990 2989 -1 -3009 2989 -1 -3389 2989 -1 -2990 2990 6 -2991 2990 -1 -3010 2990 -1 -3390 2990 -1 -2991 2991 6 -2992 2991 -1 -3011 2991 -1 -3391 2991 -1 -2992 2992 6 -2993 2992 -1 -3012 2992 -1 -3392 2992 -1 -2993 2993 6 -2994 2993 -1 -3013 2993 -1 -3393 2993 -1 -2994 2994 6 -2995 2994 -1 -3014 2994 -1 -3394 2994 -1 -2995 2995 6 -2996 2995 -1 -3015 2995 -1 -3395 2995 -1 -2996 2996 6 -2997 2996 -1 -3016 2996 -1 -3396 2996 -1 -2997 2997 6 -2998 2997 -1 -3017 2997 -1 -3397 2997 -1 -2998 2998 6 -2999 2998 -1 -3018 2998 -1 -3398 2998 -1 -2999 2999 6 -3000 2999 -1 -3019 2999 -1 -3399 2999 -1 -3000 3000 6 -3020 3000 -1 -3400 3000 -1 -3001 3001 6 -3002 3001 -1 -3021 3001 -1 -3401 3001 -1 -3002 3002 6 -3003 3002 -1 -3022 3002 -1 -3402 3002 -1 -3003 3003 6 -3004 3003 -1 -3023 3003 -1 -3403 3003 -1 -3004 3004 6 -3005 3004 -1 -3024 3004 -1 -3404 3004 -1 -3005 3005 6 -3006 3005 -1 -3025 3005 -1 -3405 3005 -1 -3006 3006 6 -3007 3006 -1 -3026 3006 -1 -3406 3006 -1 -3007 3007 6 -3008 3007 -1 -3027 3007 -1 -3407 3007 -1 -3008 3008 6 -3009 3008 -1 -3028 3008 -1 -3408 3008 -1 -3009 3009 6 -3010 3009 -1 -3029 3009 -1 -3409 3009 -1 -3010 3010 6 -3011 3010 -1 -3030 3010 -1 -3410 3010 -1 -3011 3011 6 -3012 3011 -1 -3031 3011 -1 -3411 3011 -1 -3012 3012 6 -3013 3012 -1 -3032 3012 -1 -3412 3012 -1 -3013 3013 6 -3014 3013 -1 -3033 3013 -1 -3413 3013 -1 -3014 3014 6 -3015 3014 -1 -3034 3014 -1 -3414 3014 -1 -3015 3015 6 -3016 3015 -1 -3035 3015 -1 -3415 3015 -1 -3016 3016 6 -3017 3016 -1 -3036 3016 -1 -3416 3016 -1 -3017 3017 6 -3018 3017 -1 -3037 3017 -1 -3417 3017 -1 -3018 3018 6 -3019 3018 -1 -3038 3018 -1 -3418 3018 -1 -3019 3019 6 -3020 3019 -1 -3039 3019 -1 -3419 3019 -1 -3020 3020 6 -3040 3020 -1 -3420 3020 -1 -3021 3021 6 -3022 3021 -1 -3041 3021 -1 -3421 3021 -1 -3022 3022 6 -3023 3022 -1 -3042 3022 -1 -3422 3022 -1 -3023 3023 6 -3024 3023 -1 -3043 3023 -1 -3423 3023 -1 -3024 3024 6 -3025 3024 -1 -3044 3024 -1 -3424 3024 -1 -3025 3025 6 -3026 3025 -1 -3045 3025 -1 -3425 3025 -1 -3026 3026 6 -3027 3026 -1 -3046 3026 -1 -3426 3026 -1 -3027 3027 6 -3028 3027 -1 -3047 3027 -1 -3427 3027 -1 -3028 3028 6 -3029 3028 -1 -3048 3028 -1 -3428 3028 -1 -3029 3029 6 -3030 3029 -1 -3049 3029 -1 -3429 3029 -1 -3030 3030 6 -3031 3030 -1 -3050 3030 -1 -3430 3030 -1 -3031 3031 6 -3032 3031 -1 -3051 3031 -1 -3431 3031 -1 -3032 3032 6 -3033 3032 -1 -3052 3032 -1 -3432 3032 -1 -3033 3033 6 -3034 3033 -1 -3053 3033 -1 -3433 3033 -1 -3034 3034 6 -3035 3034 -1 -3054 3034 -1 -3434 3034 -1 -3035 3035 6 -3036 3035 -1 -3055 3035 -1 -3435 3035 -1 -3036 3036 6 -3037 3036 -1 -3056 3036 -1 -3436 3036 -1 -3037 3037 6 -3038 3037 -1 -3057 3037 -1 -3437 3037 -1 -3038 3038 6 -3039 3038 -1 -3058 3038 -1 -3438 3038 -1 -3039 3039 6 -3040 3039 -1 -3059 3039 -1 -3439 3039 -1 -3040 3040 6 -3060 3040 -1 -3440 3040 -1 -3041 3041 6 -3042 3041 -1 -3061 3041 -1 -3441 3041 -1 -3042 3042 6 -3043 3042 -1 -3062 3042 -1 -3442 3042 -1 -3043 3043 6 -3044 3043 -1 -3063 3043 -1 -3443 3043 -1 -3044 3044 6 -3045 3044 -1 -3064 3044 -1 -3444 3044 -1 -3045 3045 6 -3046 3045 -1 -3065 3045 -1 -3445 3045 -1 -3046 3046 6 -3047 3046 -1 -3066 3046 -1 -3446 3046 -1 -3047 3047 6 -3048 3047 -1 -3067 3047 -1 -3447 3047 -1 -3048 3048 6 -3049 3048 -1 -3068 3048 -1 -3448 3048 -1 -3049 3049 6 -3050 3049 -1 -3069 3049 -1 -3449 3049 -1 -3050 3050 6 -3051 3050 -1 -3070 3050 -1 -3450 3050 -1 -3051 3051 6 -3052 3051 -1 -3071 3051 -1 -3451 3051 -1 -3052 3052 6 -3053 3052 -1 -3072 3052 -1 -3452 3052 -1 -3053 3053 6 -3054 3053 -1 -3073 3053 -1 -3453 3053 -1 -3054 3054 6 -3055 3054 -1 -3074 3054 -1 -3454 3054 -1 -3055 3055 6 -3056 3055 -1 -3075 3055 -1 -3455 3055 -1 -3056 3056 6 -3057 3056 -1 -3076 3056 -1 -3456 3056 -1 -3057 3057 6 -3058 3057 -1 -3077 3057 -1 -3457 3057 -1 -3058 3058 6 -3059 3058 -1 -3078 3058 -1 -3458 3058 -1 -3059 3059 6 -3060 3059 -1 -3079 3059 -1 -3459 3059 -1 -3060 3060 6 -3080 3060 -1 -3460 3060 -1 -3061 3061 6 -3062 3061 -1 -3081 3061 -1 -3461 3061 -1 -3062 3062 6 -3063 3062 -1 -3082 3062 -1 -3462 3062 -1 -3063 3063 6 -3064 3063 -1 -3083 3063 -1 -3463 3063 -1 -3064 3064 6 -3065 3064 -1 -3084 3064 -1 -3464 3064 -1 -3065 3065 6 -3066 3065 -1 -3085 3065 -1 -3465 3065 -1 -3066 3066 6 -3067 3066 -1 -3086 3066 -1 -3466 3066 -1 -3067 3067 6 -3068 3067 -1 -3087 3067 -1 -3467 3067 -1 -3068 3068 6 -3069 3068 -1 -3088 3068 -1 -3468 3068 -1 -3069 3069 6 -3070 3069 -1 -3089 3069 -1 -3469 3069 -1 -3070 3070 6 -3071 3070 -1 -3090 3070 -1 -3470 3070 -1 -3071 3071 6 -3072 3071 -1 -3091 3071 -1 -3471 3071 -1 -3072 3072 6 -3073 3072 -1 -3092 3072 -1 -3472 3072 -1 -3073 3073 6 -3074 3073 -1 -3093 3073 -1 -3473 3073 -1 -3074 3074 6 -3075 3074 -1 -3094 3074 -1 -3474 3074 -1 -3075 3075 6 -3076 3075 -1 -3095 3075 -1 -3475 3075 -1 -3076 3076 6 -3077 3076 -1 -3096 3076 -1 -3476 3076 -1 -3077 3077 6 -3078 3077 -1 -3097 3077 -1 -3477 3077 -1 -3078 3078 6 -3079 3078 -1 -3098 3078 -1 -3478 3078 -1 -3079 3079 6 -3080 3079 -1 -3099 3079 -1 -3479 3079 -1 -3080 3080 6 -3100 3080 -1 -3480 3080 -1 -3081 3081 6 -3082 3081 -1 -3101 3081 -1 -3481 3081 -1 -3082 3082 6 -3083 3082 -1 -3102 3082 -1 -3482 3082 -1 -3083 3083 6 -3084 3083 -1 -3103 3083 -1 -3483 3083 -1 -3084 3084 6 -3085 3084 -1 -3104 3084 -1 -3484 3084 -1 -3085 3085 6 -3086 3085 -1 -3105 3085 -1 -3485 3085 -1 -3086 3086 6 -3087 3086 -1 -3106 3086 -1 -3486 3086 -1 -3087 3087 6 -3088 3087 -1 -3107 3087 -1 -3487 3087 -1 -3088 3088 6 -3089 3088 -1 -3108 3088 -1 -3488 3088 -1 -3089 3089 6 -3090 3089 -1 -3109 3089 -1 -3489 3089 -1 -3090 3090 6 -3091 3090 -1 -3110 3090 -1 -3490 3090 -1 -3091 3091 6 -3092 3091 -1 -3111 3091 -1 -3491 3091 -1 -3092 3092 6 -3093 3092 -1 -3112 3092 -1 -3492 3092 -1 -3093 3093 6 -3094 3093 -1 -3113 3093 -1 -3493 3093 -1 -3094 3094 6 -3095 3094 -1 -3114 3094 -1 -3494 3094 -1 -3095 3095 6 -3096 3095 -1 -3115 3095 -1 -3495 3095 -1 -3096 3096 6 -3097 3096 -1 -3116 3096 -1 -3496 3096 -1 -3097 3097 6 -3098 3097 -1 -3117 3097 -1 -3497 3097 -1 -3098 3098 6 -3099 3098 -1 -3118 3098 -1 -3498 3098 -1 -3099 3099 6 -3100 3099 -1 -3119 3099 -1 -3499 3099 -1 -3100 3100 6 -3120 3100 -1 -3500 3100 -1 -3101 3101 6 -3102 3101 -1 -3121 3101 -1 -3501 3101 -1 -3102 3102 6 -3103 3102 -1 -3122 3102 -1 -3502 3102 -1 -3103 3103 6 -3104 3103 -1 -3123 3103 -1 -3503 3103 -1 -3104 3104 6 -3105 3104 -1 -3124 3104 -1 -3504 3104 -1 -3105 3105 6 -3106 3105 -1 -3125 3105 -1 -3505 3105 -1 -3106 3106 6 -3107 3106 -1 -3126 3106 -1 -3506 3106 -1 -3107 3107 6 -3108 3107 -1 -3127 3107 -1 -3507 3107 -1 -3108 3108 6 -3109 3108 -1 -3128 3108 -1 -3508 3108 -1 -3109 3109 6 -3110 3109 -1 -3129 3109 -1 -3509 3109 -1 -3110 3110 6 -3111 3110 -1 -3130 3110 -1 -3510 3110 -1 -3111 3111 6 -3112 3111 -1 -3131 3111 -1 -3511 3111 -1 -3112 3112 6 -3113 3112 -1 -3132 3112 -1 -3512 3112 -1 -3113 3113 6 -3114 3113 -1 -3133 3113 -1 -3513 3113 -1 -3114 3114 6 -3115 3114 -1 -3134 3114 -1 -3514 3114 -1 -3115 3115 6 -3116 3115 -1 -3135 3115 -1 -3515 3115 -1 -3116 3116 6 -3117 3116 -1 -3136 3116 -1 -3516 3116 -1 -3117 3117 6 -3118 3117 -1 -3137 3117 -1 -3517 3117 -1 -3118 3118 6 -3119 3118 -1 -3138 3118 -1 -3518 3118 -1 -3119 3119 6 -3120 3119 -1 -3139 3119 -1 -3519 3119 -1 -3120 3120 6 -3140 3120 -1 -3520 3120 -1 -3121 3121 6 -3122 3121 -1 -3141 3121 -1 -3521 3121 -1 -3122 3122 6 -3123 3122 -1 -3142 3122 -1 -3522 3122 -1 -3123 3123 6 -3124 3123 -1 -3143 3123 -1 -3523 3123 -1 -3124 3124 6 -3125 3124 -1 -3144 3124 -1 -3524 3124 -1 -3125 3125 6 -3126 3125 -1 -3145 3125 -1 -3525 3125 -1 -3126 3126 6 -3127 3126 -1 -3146 3126 -1 -3526 3126 -1 -3127 3127 6 -3128 3127 -1 -3147 3127 -1 -3527 3127 -1 -3128 3128 6 -3129 3128 -1 -3148 3128 -1 -3528 3128 -1 -3129 3129 6 -3130 3129 -1 -3149 3129 -1 -3529 3129 -1 -3130 3130 6 -3131 3130 -1 -3150 3130 -1 -3530 3130 -1 -3131 3131 6 -3132 3131 -1 -3151 3131 -1 -3531 3131 -1 -3132 3132 6 -3133 3132 -1 -3152 3132 -1 -3532 3132 -1 -3133 3133 6 -3134 3133 -1 -3153 3133 -1 -3533 3133 -1 -3134 3134 6 -3135 3134 -1 -3154 3134 -1 -3534 3134 -1 -3135 3135 6 -3136 3135 -1 -3155 3135 -1 -3535 3135 -1 -3136 3136 6 -3137 3136 -1 -3156 3136 -1 -3536 3136 -1 -3137 3137 6 -3138 3137 -1 -3157 3137 -1 -3537 3137 -1 -3138 3138 6 -3139 3138 -1 -3158 3138 -1 -3538 3138 -1 -3139 3139 6 -3140 3139 -1 -3159 3139 -1 -3539 3139 -1 -3140 3140 6 -3160 3140 -1 -3540 3140 -1 -3141 3141 6 -3142 3141 -1 -3161 3141 -1 -3541 3141 -1 -3142 3142 6 -3143 3142 -1 -3162 3142 -1 -3542 3142 -1 -3143 3143 6 -3144 3143 -1 -3163 3143 -1 -3543 3143 -1 -3144 3144 6 -3145 3144 -1 -3164 3144 -1 -3544 3144 -1 -3145 3145 6 -3146 3145 -1 -3165 3145 -1 -3545 3145 -1 -3146 3146 6 -3147 3146 -1 -3166 3146 -1 -3546 3146 -1 -3147 3147 6 -3148 3147 -1 -3167 3147 -1 -3547 3147 -1 -3148 3148 6 -3149 3148 -1 -3168 3148 -1 -3548 3148 -1 -3149 3149 6 -3150 3149 -1 -3169 3149 -1 -3549 3149 -1 -3150 3150 6 -3151 3150 -1 -3170 3150 -1 -3550 3150 -1 -3151 3151 6 -3152 3151 -1 -3171 3151 -1 -3551 3151 -1 -3152 3152 6 -3153 3152 -1 -3172 3152 -1 -3552 3152 -1 -3153 3153 6 -3154 3153 -1 -3173 3153 -1 -3553 3153 -1 -3154 3154 6 -3155 3154 -1 -3174 3154 -1 -3554 3154 -1 -3155 3155 6 -3156 3155 -1 -3175 3155 -1 -3555 3155 -1 -3156 3156 6 -3157 3156 -1 -3176 3156 -1 -3556 3156 -1 -3157 3157 6 -3158 3157 -1 -3177 3157 -1 -3557 3157 -1 -3158 3158 6 -3159 3158 -1 -3178 3158 -1 -3558 3158 -1 -3159 3159 6 -3160 3159 -1 -3179 3159 -1 -3559 3159 -1 -3160 3160 6 -3180 3160 -1 -3560 3160 -1 -3161 3161 6 -3162 3161 -1 -3181 3161 -1 -3561 3161 -1 -3162 3162 6 -3163 3162 -1 -3182 3162 -1 -3562 3162 -1 -3163 3163 6 -3164 3163 -1 -3183 3163 -1 -3563 3163 -1 -3164 3164 6 -3165 3164 -1 -3184 3164 -1 -3564 3164 -1 -3165 3165 6 -3166 3165 -1 -3185 3165 -1 -3565 3165 -1 -3166 3166 6 -3167 3166 -1 -3186 3166 -1 -3566 3166 -1 -3167 3167 6 -3168 3167 -1 -3187 3167 -1 -3567 3167 -1 -3168 3168 6 -3169 3168 -1 -3188 3168 -1 -3568 3168 -1 -3169 3169 6 -3170 3169 -1 -3189 3169 -1 -3569 3169 -1 -3170 3170 6 -3171 3170 -1 -3190 3170 -1 -3570 3170 -1 -3171 3171 6 -3172 3171 -1 -3191 3171 -1 -3571 3171 -1 -3172 3172 6 -3173 3172 -1 -3192 3172 -1 -3572 3172 -1 -3173 3173 6 -3174 3173 -1 -3193 3173 -1 -3573 3173 -1 -3174 3174 6 -3175 3174 -1 -3194 3174 -1 -3574 3174 -1 -3175 3175 6 -3176 3175 -1 -3195 3175 -1 -3575 3175 -1 -3176 3176 6 -3177 3176 -1 -3196 3176 -1 -3576 3176 -1 -3177 3177 6 -3178 3177 -1 -3197 3177 -1 -3577 3177 -1 -3178 3178 6 -3179 3178 -1 -3198 3178 -1 -3578 3178 -1 -3179 3179 6 -3180 3179 -1 -3199 3179 -1 -3579 3179 -1 -3180 3180 6 -3200 3180 -1 -3580 3180 -1 -3181 3181 6 -3182 3181 -1 -3581 3181 -1 -3182 3182 6 -3183 3182 -1 -3582 3182 -1 -3183 3183 6 -3184 3183 -1 -3583 3183 -1 -3184 3184 6 -3185 3184 -1 -3584 3184 -1 -3185 3185 6 -3186 3185 -1 -3585 3185 -1 -3186 3186 6 -3187 3186 -1 -3586 3186 -1 -3187 3187 6 -3188 3187 -1 -3587 3187 -1 -3188 3188 6 -3189 3188 -1 -3588 3188 -1 -3189 3189 6 -3190 3189 -1 -3589 3189 -1 -3190 3190 6 -3191 3190 -1 -3590 3190 -1 -3191 3191 6 -3192 3191 -1 -3591 3191 -1 -3192 3192 6 -3193 3192 -1 -3592 3192 -1 -3193 3193 6 -3194 3193 -1 -3593 3193 -1 -3194 3194 6 -3195 3194 -1 -3594 3194 -1 -3195 3195 6 -3196 3195 -1 -3595 3195 -1 -3196 3196 6 -3197 3196 -1 -3596 3196 -1 -3197 3197 6 -3198 3197 -1 -3597 3197 -1 -3198 3198 6 -3199 3198 -1 -3598 3198 -1 -3199 3199 6 -3200 3199 -1 -3599 3199 -1 -3200 3200 6 -3600 3200 -1 -3201 3201 6 -3202 3201 -1 -3221 3201 -1 -3601 3201 -1 -3202 3202 6 -3203 3202 -1 -3222 3202 -1 -3602 3202 -1 -3203 3203 6 -3204 3203 -1 -3223 3203 -1 -3603 3203 -1 -3204 3204 6 -3205 3204 -1 -3224 3204 -1 -3604 3204 -1 -3205 3205 6 -3206 3205 -1 -3225 3205 -1 -3605 3205 -1 -3206 3206 6 -3207 3206 -1 -3226 3206 -1 -3606 3206 -1 -3207 3207 6 -3208 3207 -1 -3227 3207 -1 -3607 3207 -1 -3208 3208 6 -3209 3208 -1 -3228 3208 -1 -3608 3208 -1 -3209 3209 6 -3210 3209 -1 -3229 3209 -1 -3609 3209 -1 -3210 3210 6 -3211 3210 -1 -3230 3210 -1 -3610 3210 -1 -3211 3211 6 -3212 3211 -1 -3231 3211 -1 -3611 3211 -1 -3212 3212 6 -3213 3212 -1 -3232 3212 -1 -3612 3212 -1 -3213 3213 6 -3214 3213 -1 -3233 3213 -1 -3613 3213 -1 -3214 3214 6 -3215 3214 -1 -3234 3214 -1 -3614 3214 -1 -3215 3215 6 -3216 3215 -1 -3235 3215 -1 -3615 3215 -1 -3216 3216 6 -3217 3216 -1 -3236 3216 -1 -3616 3216 -1 -3217 3217 6 -3218 3217 -1 -3237 3217 -1 -3617 3217 -1 -3218 3218 6 -3219 3218 -1 -3238 3218 -1 -3618 3218 -1 -3219 3219 6 -3220 3219 -1 -3239 3219 -1 -3619 3219 -1 -3220 3220 6 -3240 3220 -1 -3620 3220 -1 -3221 3221 6 -3222 3221 -1 -3241 3221 -1 -3621 3221 -1 -3222 3222 6 -3223 3222 -1 -3242 3222 -1 -3622 3222 -1 -3223 3223 6 -3224 3223 -1 -3243 3223 -1 -3623 3223 -1 -3224 3224 6 -3225 3224 -1 -3244 3224 -1 -3624 3224 -1 -3225 3225 6 -3226 3225 -1 -3245 3225 -1 -3625 3225 -1 -3226 3226 6 -3227 3226 -1 -3246 3226 -1 -3626 3226 -1 -3227 3227 6 -3228 3227 -1 -3247 3227 -1 -3627 3227 -1 -3228 3228 6 -3229 3228 -1 -3248 3228 -1 -3628 3228 -1 -3229 3229 6 -3230 3229 -1 -3249 3229 -1 -3629 3229 -1 -3230 3230 6 -3231 3230 -1 -3250 3230 -1 -3630 3230 -1 -3231 3231 6 -3232 3231 -1 -3251 3231 -1 -3631 3231 -1 -3232 3232 6 -3233 3232 -1 -3252 3232 -1 -3632 3232 -1 -3233 3233 6 -3234 3233 -1 -3253 3233 -1 -3633 3233 -1 -3234 3234 6 -3235 3234 -1 -3254 3234 -1 -3634 3234 -1 -3235 3235 6 -3236 3235 -1 -3255 3235 -1 -3635 3235 -1 -3236 3236 6 -3237 3236 -1 -3256 3236 -1 -3636 3236 -1 -3237 3237 6 -3238 3237 -1 -3257 3237 -1 -3637 3237 -1 -3238 3238 6 -3239 3238 -1 -3258 3238 -1 -3638 3238 -1 -3239 3239 6 -3240 3239 -1 -3259 3239 -1 -3639 3239 -1 -3240 3240 6 -3260 3240 -1 -3640 3240 -1 -3241 3241 6 -3242 3241 -1 -3261 3241 -1 -3641 3241 -1 -3242 3242 6 -3243 3242 -1 -3262 3242 -1 -3642 3242 -1 -3243 3243 6 -3244 3243 -1 -3263 3243 -1 -3643 3243 -1 -3244 3244 6 -3245 3244 -1 -3264 3244 -1 -3644 3244 -1 -3245 3245 6 -3246 3245 -1 -3265 3245 -1 -3645 3245 -1 -3246 3246 6 -3247 3246 -1 -3266 3246 -1 -3646 3246 -1 -3247 3247 6 -3248 3247 -1 -3267 3247 -1 -3647 3247 -1 -3248 3248 6 -3249 3248 -1 -3268 3248 -1 -3648 3248 -1 -3249 3249 6 -3250 3249 -1 -3269 3249 -1 -3649 3249 -1 -3250 3250 6 -3251 3250 -1 -3270 3250 -1 -3650 3250 -1 -3251 3251 6 -3252 3251 -1 -3271 3251 -1 -3651 3251 -1 -3252 3252 6 -3253 3252 -1 -3272 3252 -1 -3652 3252 -1 -3253 3253 6 -3254 3253 -1 -3273 3253 -1 -3653 3253 -1 -3254 3254 6 -3255 3254 -1 -3274 3254 -1 -3654 3254 -1 -3255 3255 6 -3256 3255 -1 -3275 3255 -1 -3655 3255 -1 -3256 3256 6 -3257 3256 -1 -3276 3256 -1 -3656 3256 -1 -3257 3257 6 -3258 3257 -1 -3277 3257 -1 -3657 3257 -1 -3258 3258 6 -3259 3258 -1 -3278 3258 -1 -3658 3258 -1 -3259 3259 6 -3260 3259 -1 -3279 3259 -1 -3659 3259 -1 -3260 3260 6 -3280 3260 -1 -3660 3260 -1 -3261 3261 6 -3262 3261 -1 -3281 3261 -1 -3661 3261 -1 -3262 3262 6 -3263 3262 -1 -3282 3262 -1 -3662 3262 -1 -3263 3263 6 -3264 3263 -1 -3283 3263 -1 -3663 3263 -1 -3264 3264 6 -3265 3264 -1 -3284 3264 -1 -3664 3264 -1 -3265 3265 6 -3266 3265 -1 -3285 3265 -1 -3665 3265 -1 -3266 3266 6 -3267 3266 -1 -3286 3266 -1 -3666 3266 -1 -3267 3267 6 -3268 3267 -1 -3287 3267 -1 -3667 3267 -1 -3268 3268 6 -3269 3268 -1 -3288 3268 -1 -3668 3268 -1 -3269 3269 6 -3270 3269 -1 -3289 3269 -1 -3669 3269 -1 -3270 3270 6 -3271 3270 -1 -3290 3270 -1 -3670 3270 -1 -3271 3271 6 -3272 3271 -1 -3291 3271 -1 -3671 3271 -1 -3272 3272 6 -3273 3272 -1 -3292 3272 -1 -3672 3272 -1 -3273 3273 6 -3274 3273 -1 -3293 3273 -1 -3673 3273 -1 -3274 3274 6 -3275 3274 -1 -3294 3274 -1 -3674 3274 -1 -3275 3275 6 -3276 3275 -1 -3295 3275 -1 -3675 3275 -1 -3276 3276 6 -3277 3276 -1 -3296 3276 -1 -3676 3276 -1 -3277 3277 6 -3278 3277 -1 -3297 3277 -1 -3677 3277 -1 -3278 3278 6 -3279 3278 -1 -3298 3278 -1 -3678 3278 -1 -3279 3279 6 -3280 3279 -1 -3299 3279 -1 -3679 3279 -1 -3280 3280 6 -3300 3280 -1 -3680 3280 -1 -3281 3281 6 -3282 3281 -1 -3301 3281 -1 -3681 3281 -1 -3282 3282 6 -3283 3282 -1 -3302 3282 -1 -3682 3282 -1 -3283 3283 6 -3284 3283 -1 -3303 3283 -1 -3683 3283 -1 -3284 3284 6 -3285 3284 -1 -3304 3284 -1 -3684 3284 -1 -3285 3285 6 -3286 3285 -1 -3305 3285 -1 -3685 3285 -1 -3286 3286 6 -3287 3286 -1 -3306 3286 -1 -3686 3286 -1 -3287 3287 6 -3288 3287 -1 -3307 3287 -1 -3687 3287 -1 -3288 3288 6 -3289 3288 -1 -3308 3288 -1 -3688 3288 -1 -3289 3289 6 -3290 3289 -1 -3309 3289 -1 -3689 3289 -1 -3290 3290 6 -3291 3290 -1 -3310 3290 -1 -3690 3290 -1 -3291 3291 6 -3292 3291 -1 -3311 3291 -1 -3691 3291 -1 -3292 3292 6 -3293 3292 -1 -3312 3292 -1 -3692 3292 -1 -3293 3293 6 -3294 3293 -1 -3313 3293 -1 -3693 3293 -1 -3294 3294 6 -3295 3294 -1 -3314 3294 -1 -3694 3294 -1 -3295 3295 6 -3296 3295 -1 -3315 3295 -1 -3695 3295 -1 -3296 3296 6 -3297 3296 -1 -3316 3296 -1 -3696 3296 -1 -3297 3297 6 -3298 3297 -1 -3317 3297 -1 -3697 3297 -1 -3298 3298 6 -3299 3298 -1 -3318 3298 -1 -3698 3298 -1 -3299 3299 6 -3300 3299 -1 -3319 3299 -1 -3699 3299 -1 -3300 3300 6 -3320 3300 -1 -3700 3300 -1 -3301 3301 6 -3302 3301 -1 -3321 3301 -1 -3701 3301 -1 -3302 3302 6 -3303 3302 -1 -3322 3302 -1 -3702 3302 -1 -3303 3303 6 -3304 3303 -1 -3323 3303 -1 -3703 3303 -1 -3304 3304 6 -3305 3304 -1 -3324 3304 -1 -3704 3304 -1 -3305 3305 6 -3306 3305 -1 -3325 3305 -1 -3705 3305 -1 -3306 3306 6 -3307 3306 -1 -3326 3306 -1 -3706 3306 -1 -3307 3307 6 -3308 3307 -1 -3327 3307 -1 -3707 3307 -1 -3308 3308 6 -3309 3308 -1 -3328 3308 -1 -3708 3308 -1 -3309 3309 6 -3310 3309 -1 -3329 3309 -1 -3709 3309 -1 -3310 3310 6 -3311 3310 -1 -3330 3310 -1 -3710 3310 -1 -3311 3311 6 -3312 3311 -1 -3331 3311 -1 -3711 3311 -1 -3312 3312 6 -3313 3312 -1 -3332 3312 -1 -3712 3312 -1 -3313 3313 6 -3314 3313 -1 -3333 3313 -1 -3713 3313 -1 -3314 3314 6 -3315 3314 -1 -3334 3314 -1 -3714 3314 -1 -3315 3315 6 -3316 3315 -1 -3335 3315 -1 -3715 3315 -1 -3316 3316 6 -3317 3316 -1 -3336 3316 -1 -3716 3316 -1 -3317 3317 6 -3318 3317 -1 -3337 3317 -1 -3717 3317 -1 -3318 3318 6 -3319 3318 -1 -3338 3318 -1 -3718 3318 -1 -3319 3319 6 -3320 3319 -1 -3339 3319 -1 -3719 3319 -1 -3320 3320 6 -3340 3320 -1 -3720 3320 -1 -3321 3321 6 -3322 3321 -1 -3341 3321 -1 -3721 3321 -1 -3322 3322 6 -3323 3322 -1 -3342 3322 -1 -3722 3322 -1 -3323 3323 6 -3324 3323 -1 -3343 3323 -1 -3723 3323 -1 -3324 3324 6 -3325 3324 -1 -3344 3324 -1 -3724 3324 -1 -3325 3325 6 -3326 3325 -1 -3345 3325 -1 -3725 3325 -1 -3326 3326 6 -3327 3326 -1 -3346 3326 -1 -3726 3326 -1 -3327 3327 6 -3328 3327 -1 -3347 3327 -1 -3727 3327 -1 -3328 3328 6 -3329 3328 -1 -3348 3328 -1 -3728 3328 -1 -3329 3329 6 -3330 3329 -1 -3349 3329 -1 -3729 3329 -1 -3330 3330 6 -3331 3330 -1 -3350 3330 -1 -3730 3330 -1 -3331 3331 6 -3332 3331 -1 -3351 3331 -1 -3731 3331 -1 -3332 3332 6 -3333 3332 -1 -3352 3332 -1 -3732 3332 -1 -3333 3333 6 -3334 3333 -1 -3353 3333 -1 -3733 3333 -1 -3334 3334 6 -3335 3334 -1 -3354 3334 -1 -3734 3334 -1 -3335 3335 6 -3336 3335 -1 -3355 3335 -1 -3735 3335 -1 -3336 3336 6 -3337 3336 -1 -3356 3336 -1 -3736 3336 -1 -3337 3337 6 -3338 3337 -1 -3357 3337 -1 -3737 3337 -1 -3338 3338 6 -3339 3338 -1 -3358 3338 -1 -3738 3338 -1 -3339 3339 6 -3340 3339 -1 -3359 3339 -1 -3739 3339 -1 -3340 3340 6 -3360 3340 -1 -3740 3340 -1 -3341 3341 6 -3342 3341 -1 -3361 3341 -1 -3741 3341 -1 -3342 3342 6 -3343 3342 -1 -3362 3342 -1 -3742 3342 -1 -3343 3343 6 -3344 3343 -1 -3363 3343 -1 -3743 3343 -1 -3344 3344 6 -3345 3344 -1 -3364 3344 -1 -3744 3344 -1 -3345 3345 6 -3346 3345 -1 -3365 3345 -1 -3745 3345 -1 -3346 3346 6 -3347 3346 -1 -3366 3346 -1 -3746 3346 -1 -3347 3347 6 -3348 3347 -1 -3367 3347 -1 -3747 3347 -1 -3348 3348 6 -3349 3348 -1 -3368 3348 -1 -3748 3348 -1 -3349 3349 6 -3350 3349 -1 -3369 3349 -1 -3749 3349 -1 -3350 3350 6 -3351 3350 -1 -3370 3350 -1 -3750 3350 -1 -3351 3351 6 -3352 3351 -1 -3371 3351 -1 -3751 3351 -1 -3352 3352 6 -3353 3352 -1 -3372 3352 -1 -3752 3352 -1 -3353 3353 6 -3354 3353 -1 -3373 3353 -1 -3753 3353 -1 -3354 3354 6 -3355 3354 -1 -3374 3354 -1 -3754 3354 -1 -3355 3355 6 -3356 3355 -1 -3375 3355 -1 -3755 3355 -1 -3356 3356 6 -3357 3356 -1 -3376 3356 -1 -3756 3356 -1 -3357 3357 6 -3358 3357 -1 -3377 3357 -1 -3757 3357 -1 -3358 3358 6 -3359 3358 -1 -3378 3358 -1 -3758 3358 -1 -3359 3359 6 -3360 3359 -1 -3379 3359 -1 -3759 3359 -1 -3360 3360 6 -3380 3360 -1 -3760 3360 -1 -3361 3361 6 -3362 3361 -1 -3381 3361 -1 -3761 3361 -1 -3362 3362 6 -3363 3362 -1 -3382 3362 -1 -3762 3362 -1 -3363 3363 6 -3364 3363 -1 -3383 3363 -1 -3763 3363 -1 -3364 3364 6 -3365 3364 -1 -3384 3364 -1 -3764 3364 -1 -3365 3365 6 -3366 3365 -1 -3385 3365 -1 -3765 3365 -1 -3366 3366 6 -3367 3366 -1 -3386 3366 -1 -3766 3366 -1 -3367 3367 6 -3368 3367 -1 -3387 3367 -1 -3767 3367 -1 -3368 3368 6 -3369 3368 -1 -3388 3368 -1 -3768 3368 -1 -3369 3369 6 -3370 3369 -1 -3389 3369 -1 -3769 3369 -1 -3370 3370 6 -3371 3370 -1 -3390 3370 -1 -3770 3370 -1 -3371 3371 6 -3372 3371 -1 -3391 3371 -1 -3771 3371 -1 -3372 3372 6 -3373 3372 -1 -3392 3372 -1 -3772 3372 -1 -3373 3373 6 -3374 3373 -1 -3393 3373 -1 -3773 3373 -1 -3374 3374 6 -3375 3374 -1 -3394 3374 -1 -3774 3374 -1 -3375 3375 6 -3376 3375 -1 -3395 3375 -1 -3775 3375 -1 -3376 3376 6 -3377 3376 -1 -3396 3376 -1 -3776 3376 -1 -3377 3377 6 -3378 3377 -1 -3397 3377 -1 -3777 3377 -1 -3378 3378 6 -3379 3378 -1 -3398 3378 -1 -3778 3378 -1 -3379 3379 6 -3380 3379 -1 -3399 3379 -1 -3779 3379 -1 -3380 3380 6 -3400 3380 -1 -3780 3380 -1 -3381 3381 6 -3382 3381 -1 -3401 3381 -1 -3781 3381 -1 -3382 3382 6 -3383 3382 -1 -3402 3382 -1 -3782 3382 -1 -3383 3383 6 -3384 3383 -1 -3403 3383 -1 -3783 3383 -1 -3384 3384 6 -3385 3384 -1 -3404 3384 -1 -3784 3384 -1 -3385 3385 6 -3386 3385 -1 -3405 3385 -1 -3785 3385 -1 -3386 3386 6 -3387 3386 -1 -3406 3386 -1 -3786 3386 -1 -3387 3387 6 -3388 3387 -1 -3407 3387 -1 -3787 3387 -1 -3388 3388 6 -3389 3388 -1 -3408 3388 -1 -3788 3388 -1 -3389 3389 6 -3390 3389 -1 -3409 3389 -1 -3789 3389 -1 -3390 3390 6 -3391 3390 -1 -3410 3390 -1 -3790 3390 -1 -3391 3391 6 -3392 3391 -1 -3411 3391 -1 -3791 3391 -1 -3392 3392 6 -3393 3392 -1 -3412 3392 -1 -3792 3392 -1 -3393 3393 6 -3394 3393 -1 -3413 3393 -1 -3793 3393 -1 -3394 3394 6 -3395 3394 -1 -3414 3394 -1 -3794 3394 -1 -3395 3395 6 -3396 3395 -1 -3415 3395 -1 -3795 3395 -1 -3396 3396 6 -3397 3396 -1 -3416 3396 -1 -3796 3396 -1 -3397 3397 6 -3398 3397 -1 -3417 3397 -1 -3797 3397 -1 -3398 3398 6 -3399 3398 -1 -3418 3398 -1 -3798 3398 -1 -3399 3399 6 -3400 3399 -1 -3419 3399 -1 -3799 3399 -1 -3400 3400 6 -3420 3400 -1 -3800 3400 -1 -3401 3401 6 -3402 3401 -1 -3421 3401 -1 -3801 3401 -1 -3402 3402 6 -3403 3402 -1 -3422 3402 -1 -3802 3402 -1 -3403 3403 6 -3404 3403 -1 -3423 3403 -1 -3803 3403 -1 -3404 3404 6 -3405 3404 -1 -3424 3404 -1 -3804 3404 -1 -3405 3405 6 -3406 3405 -1 -3425 3405 -1 -3805 3405 -1 -3406 3406 6 -3407 3406 -1 -3426 3406 -1 -3806 3406 -1 -3407 3407 6 -3408 3407 -1 -3427 3407 -1 -3807 3407 -1 -3408 3408 6 -3409 3408 -1 -3428 3408 -1 -3808 3408 -1 -3409 3409 6 -3410 3409 -1 -3429 3409 -1 -3809 3409 -1 -3410 3410 6 -3411 3410 -1 -3430 3410 -1 -3810 3410 -1 -3411 3411 6 -3412 3411 -1 -3431 3411 -1 -3811 3411 -1 -3412 3412 6 -3413 3412 -1 -3432 3412 -1 -3812 3412 -1 -3413 3413 6 -3414 3413 -1 -3433 3413 -1 -3813 3413 -1 -3414 3414 6 -3415 3414 -1 -3434 3414 -1 -3814 3414 -1 -3415 3415 6 -3416 3415 -1 -3435 3415 -1 -3815 3415 -1 -3416 3416 6 -3417 3416 -1 -3436 3416 -1 -3816 3416 -1 -3417 3417 6 -3418 3417 -1 -3437 3417 -1 -3817 3417 -1 -3418 3418 6 -3419 3418 -1 -3438 3418 -1 -3818 3418 -1 -3419 3419 6 -3420 3419 -1 -3439 3419 -1 -3819 3419 -1 -3420 3420 6 -3440 3420 -1 -3820 3420 -1 -3421 3421 6 -3422 3421 -1 -3441 3421 -1 -3821 3421 -1 -3422 3422 6 -3423 3422 -1 -3442 3422 -1 -3822 3422 -1 -3423 3423 6 -3424 3423 -1 -3443 3423 -1 -3823 3423 -1 -3424 3424 6 -3425 3424 -1 -3444 3424 -1 -3824 3424 -1 -3425 3425 6 -3426 3425 -1 -3445 3425 -1 -3825 3425 -1 -3426 3426 6 -3427 3426 -1 -3446 3426 -1 -3826 3426 -1 -3427 3427 6 -3428 3427 -1 -3447 3427 -1 -3827 3427 -1 -3428 3428 6 -3429 3428 -1 -3448 3428 -1 -3828 3428 -1 -3429 3429 6 -3430 3429 -1 -3449 3429 -1 -3829 3429 -1 -3430 3430 6 -3431 3430 -1 -3450 3430 -1 -3830 3430 -1 -3431 3431 6 -3432 3431 -1 -3451 3431 -1 -3831 3431 -1 -3432 3432 6 -3433 3432 -1 -3452 3432 -1 -3832 3432 -1 -3433 3433 6 -3434 3433 -1 -3453 3433 -1 -3833 3433 -1 -3434 3434 6 -3435 3434 -1 -3454 3434 -1 -3834 3434 -1 -3435 3435 6 -3436 3435 -1 -3455 3435 -1 -3835 3435 -1 -3436 3436 6 -3437 3436 -1 -3456 3436 -1 -3836 3436 -1 -3437 3437 6 -3438 3437 -1 -3457 3437 -1 -3837 3437 -1 -3438 3438 6 -3439 3438 -1 -3458 3438 -1 -3838 3438 -1 -3439 3439 6 -3440 3439 -1 -3459 3439 -1 -3839 3439 -1 -3440 3440 6 -3460 3440 -1 -3840 3440 -1 -3441 3441 6 -3442 3441 -1 -3461 3441 -1 -3841 3441 -1 -3442 3442 6 -3443 3442 -1 -3462 3442 -1 -3842 3442 -1 -3443 3443 6 -3444 3443 -1 -3463 3443 -1 -3843 3443 -1 -3444 3444 6 -3445 3444 -1 -3464 3444 -1 -3844 3444 -1 -3445 3445 6 -3446 3445 -1 -3465 3445 -1 -3845 3445 -1 -3446 3446 6 -3447 3446 -1 -3466 3446 -1 -3846 3446 -1 -3447 3447 6 -3448 3447 -1 -3467 3447 -1 -3847 3447 -1 -3448 3448 6 -3449 3448 -1 -3468 3448 -1 -3848 3448 -1 -3449 3449 6 -3450 3449 -1 -3469 3449 -1 -3849 3449 -1 -3450 3450 6 -3451 3450 -1 -3470 3450 -1 -3850 3450 -1 -3451 3451 6 -3452 3451 -1 -3471 3451 -1 -3851 3451 -1 -3452 3452 6 -3453 3452 -1 -3472 3452 -1 -3852 3452 -1 -3453 3453 6 -3454 3453 -1 -3473 3453 -1 -3853 3453 -1 -3454 3454 6 -3455 3454 -1 -3474 3454 -1 -3854 3454 -1 -3455 3455 6 -3456 3455 -1 -3475 3455 -1 -3855 3455 -1 -3456 3456 6 -3457 3456 -1 -3476 3456 -1 -3856 3456 -1 -3457 3457 6 -3458 3457 -1 -3477 3457 -1 -3857 3457 -1 -3458 3458 6 -3459 3458 -1 -3478 3458 -1 -3858 3458 -1 -3459 3459 6 -3460 3459 -1 -3479 3459 -1 -3859 3459 -1 -3460 3460 6 -3480 3460 -1 -3860 3460 -1 -3461 3461 6 -3462 3461 -1 -3481 3461 -1 -3861 3461 -1 -3462 3462 6 -3463 3462 -1 -3482 3462 -1 -3862 3462 -1 -3463 3463 6 -3464 3463 -1 -3483 3463 -1 -3863 3463 -1 -3464 3464 6 -3465 3464 -1 -3484 3464 -1 -3864 3464 -1 -3465 3465 6 -3466 3465 -1 -3485 3465 -1 -3865 3465 -1 -3466 3466 6 -3467 3466 -1 -3486 3466 -1 -3866 3466 -1 -3467 3467 6 -3468 3467 -1 -3487 3467 -1 -3867 3467 -1 -3468 3468 6 -3469 3468 -1 -3488 3468 -1 -3868 3468 -1 -3469 3469 6 -3470 3469 -1 -3489 3469 -1 -3869 3469 -1 -3470 3470 6 -3471 3470 -1 -3490 3470 -1 -3870 3470 -1 -3471 3471 6 -3472 3471 -1 -3491 3471 -1 -3871 3471 -1 -3472 3472 6 -3473 3472 -1 -3492 3472 -1 -3872 3472 -1 -3473 3473 6 -3474 3473 -1 -3493 3473 -1 -3873 3473 -1 -3474 3474 6 -3475 3474 -1 -3494 3474 -1 -3874 3474 -1 -3475 3475 6 -3476 3475 -1 -3495 3475 -1 -3875 3475 -1 -3476 3476 6 -3477 3476 -1 -3496 3476 -1 -3876 3476 -1 -3477 3477 6 -3478 3477 -1 -3497 3477 -1 -3877 3477 -1 -3478 3478 6 -3479 3478 -1 -3498 3478 -1 -3878 3478 -1 -3479 3479 6 -3480 3479 -1 -3499 3479 -1 -3879 3479 -1 -3480 3480 6 -3500 3480 -1 -3880 3480 -1 -3481 3481 6 -3482 3481 -1 -3501 3481 -1 -3881 3481 -1 -3482 3482 6 -3483 3482 -1 -3502 3482 -1 -3882 3482 -1 -3483 3483 6 -3484 3483 -1 -3503 3483 -1 -3883 3483 -1 -3484 3484 6 -3485 3484 -1 -3504 3484 -1 -3884 3484 -1 -3485 3485 6 -3486 3485 -1 -3505 3485 -1 -3885 3485 -1 -3486 3486 6 -3487 3486 -1 -3506 3486 -1 -3886 3486 -1 -3487 3487 6 -3488 3487 -1 -3507 3487 -1 -3887 3487 -1 -3488 3488 6 -3489 3488 -1 -3508 3488 -1 -3888 3488 -1 -3489 3489 6 -3490 3489 -1 -3509 3489 -1 -3889 3489 -1 -3490 3490 6 -3491 3490 -1 -3510 3490 -1 -3890 3490 -1 -3491 3491 6 -3492 3491 -1 -3511 3491 -1 -3891 3491 -1 -3492 3492 6 -3493 3492 -1 -3512 3492 -1 -3892 3492 -1 -3493 3493 6 -3494 3493 -1 -3513 3493 -1 -3893 3493 -1 -3494 3494 6 -3495 3494 -1 -3514 3494 -1 -3894 3494 -1 -3495 3495 6 -3496 3495 -1 -3515 3495 -1 -3895 3495 -1 -3496 3496 6 -3497 3496 -1 -3516 3496 -1 -3896 3496 -1 -3497 3497 6 -3498 3497 -1 -3517 3497 -1 -3897 3497 -1 -3498 3498 6 -3499 3498 -1 -3518 3498 -1 -3898 3498 -1 -3499 3499 6 -3500 3499 -1 -3519 3499 -1 -3899 3499 -1 -3500 3500 6 -3520 3500 -1 -3900 3500 -1 -3501 3501 6 -3502 3501 -1 -3521 3501 -1 -3901 3501 -1 -3502 3502 6 -3503 3502 -1 -3522 3502 -1 -3902 3502 -1 -3503 3503 6 -3504 3503 -1 -3523 3503 -1 -3903 3503 -1 -3504 3504 6 -3505 3504 -1 -3524 3504 -1 -3904 3504 -1 -3505 3505 6 -3506 3505 -1 -3525 3505 -1 -3905 3505 -1 -3506 3506 6 -3507 3506 -1 -3526 3506 -1 -3906 3506 -1 -3507 3507 6 -3508 3507 -1 -3527 3507 -1 -3907 3507 -1 -3508 3508 6 -3509 3508 -1 -3528 3508 -1 -3908 3508 -1 -3509 3509 6 -3510 3509 -1 -3529 3509 -1 -3909 3509 -1 -3510 3510 6 -3511 3510 -1 -3530 3510 -1 -3910 3510 -1 -3511 3511 6 -3512 3511 -1 -3531 3511 -1 -3911 3511 -1 -3512 3512 6 -3513 3512 -1 -3532 3512 -1 -3912 3512 -1 -3513 3513 6 -3514 3513 -1 -3533 3513 -1 -3913 3513 -1 -3514 3514 6 -3515 3514 -1 -3534 3514 -1 -3914 3514 -1 -3515 3515 6 -3516 3515 -1 -3535 3515 -1 -3915 3515 -1 -3516 3516 6 -3517 3516 -1 -3536 3516 -1 -3916 3516 -1 -3517 3517 6 -3518 3517 -1 -3537 3517 -1 -3917 3517 -1 -3518 3518 6 -3519 3518 -1 -3538 3518 -1 -3918 3518 -1 -3519 3519 6 -3520 3519 -1 -3539 3519 -1 -3919 3519 -1 -3520 3520 6 -3540 3520 -1 -3920 3520 -1 -3521 3521 6 -3522 3521 -1 -3541 3521 -1 -3921 3521 -1 -3522 3522 6 -3523 3522 -1 -3542 3522 -1 -3922 3522 -1 -3523 3523 6 -3524 3523 -1 -3543 3523 -1 -3923 3523 -1 -3524 3524 6 -3525 3524 -1 -3544 3524 -1 -3924 3524 -1 -3525 3525 6 -3526 3525 -1 -3545 3525 -1 -3925 3525 -1 -3526 3526 6 -3527 3526 -1 -3546 3526 -1 -3926 3526 -1 -3527 3527 6 -3528 3527 -1 -3547 3527 -1 -3927 3527 -1 -3528 3528 6 -3529 3528 -1 -3548 3528 -1 -3928 3528 -1 -3529 3529 6 -3530 3529 -1 -3549 3529 -1 -3929 3529 -1 -3530 3530 6 -3531 3530 -1 -3550 3530 -1 -3930 3530 -1 -3531 3531 6 -3532 3531 -1 -3551 3531 -1 -3931 3531 -1 -3532 3532 6 -3533 3532 -1 -3552 3532 -1 -3932 3532 -1 -3533 3533 6 -3534 3533 -1 -3553 3533 -1 -3933 3533 -1 -3534 3534 6 -3535 3534 -1 -3554 3534 -1 -3934 3534 -1 -3535 3535 6 -3536 3535 -1 -3555 3535 -1 -3935 3535 -1 -3536 3536 6 -3537 3536 -1 -3556 3536 -1 -3936 3536 -1 -3537 3537 6 -3538 3537 -1 -3557 3537 -1 -3937 3537 -1 -3538 3538 6 -3539 3538 -1 -3558 3538 -1 -3938 3538 -1 -3539 3539 6 -3540 3539 -1 -3559 3539 -1 -3939 3539 -1 -3540 3540 6 -3560 3540 -1 -3940 3540 -1 -3541 3541 6 -3542 3541 -1 -3561 3541 -1 -3941 3541 -1 -3542 3542 6 -3543 3542 -1 -3562 3542 -1 -3942 3542 -1 -3543 3543 6 -3544 3543 -1 -3563 3543 -1 -3943 3543 -1 -3544 3544 6 -3545 3544 -1 -3564 3544 -1 -3944 3544 -1 -3545 3545 6 -3546 3545 -1 -3565 3545 -1 -3945 3545 -1 -3546 3546 6 -3547 3546 -1 -3566 3546 -1 -3946 3546 -1 -3547 3547 6 -3548 3547 -1 -3567 3547 -1 -3947 3547 -1 -3548 3548 6 -3549 3548 -1 -3568 3548 -1 -3948 3548 -1 -3549 3549 6 -3550 3549 -1 -3569 3549 -1 -3949 3549 -1 -3550 3550 6 -3551 3550 -1 -3570 3550 -1 -3950 3550 -1 -3551 3551 6 -3552 3551 -1 -3571 3551 -1 -3951 3551 -1 -3552 3552 6 -3553 3552 -1 -3572 3552 -1 -3952 3552 -1 -3553 3553 6 -3554 3553 -1 -3573 3553 -1 -3953 3553 -1 -3554 3554 6 -3555 3554 -1 -3574 3554 -1 -3954 3554 -1 -3555 3555 6 -3556 3555 -1 -3575 3555 -1 -3955 3555 -1 -3556 3556 6 -3557 3556 -1 -3576 3556 -1 -3956 3556 -1 -3557 3557 6 -3558 3557 -1 -3577 3557 -1 -3957 3557 -1 -3558 3558 6 -3559 3558 -1 -3578 3558 -1 -3958 3558 -1 -3559 3559 6 -3560 3559 -1 -3579 3559 -1 -3959 3559 -1 -3560 3560 6 -3580 3560 -1 -3960 3560 -1 -3561 3561 6 -3562 3561 -1 -3581 3561 -1 -3961 3561 -1 -3562 3562 6 -3563 3562 -1 -3582 3562 -1 -3962 3562 -1 -3563 3563 6 -3564 3563 -1 -3583 3563 -1 -3963 3563 -1 -3564 3564 6 -3565 3564 -1 -3584 3564 -1 -3964 3564 -1 -3565 3565 6 -3566 3565 -1 -3585 3565 -1 -3965 3565 -1 -3566 3566 6 -3567 3566 -1 -3586 3566 -1 -3966 3566 -1 -3567 3567 6 -3568 3567 -1 -3587 3567 -1 -3967 3567 -1 -3568 3568 6 -3569 3568 -1 -3588 3568 -1 -3968 3568 -1 -3569 3569 6 -3570 3569 -1 -3589 3569 -1 -3969 3569 -1 -3570 3570 6 -3571 3570 -1 -3590 3570 -1 -3970 3570 -1 -3571 3571 6 -3572 3571 -1 -3591 3571 -1 -3971 3571 -1 -3572 3572 6 -3573 3572 -1 -3592 3572 -1 -3972 3572 -1 -3573 3573 6 -3574 3573 -1 -3593 3573 -1 -3973 3573 -1 -3574 3574 6 -3575 3574 -1 -3594 3574 -1 -3974 3574 -1 -3575 3575 6 -3576 3575 -1 -3595 3575 -1 -3975 3575 -1 -3576 3576 6 -3577 3576 -1 -3596 3576 -1 -3976 3576 -1 -3577 3577 6 -3578 3577 -1 -3597 3577 -1 -3977 3577 -1 -3578 3578 6 -3579 3578 -1 -3598 3578 -1 -3978 3578 -1 -3579 3579 6 -3580 3579 -1 -3599 3579 -1 -3979 3579 -1 -3580 3580 6 -3600 3580 -1 -3980 3580 -1 -3581 3581 6 -3582 3581 -1 -3981 3581 -1 -3582 3582 6 -3583 3582 -1 -3982 3582 -1 -3583 3583 6 -3584 3583 -1 -3983 3583 -1 -3584 3584 6 -3585 3584 -1 -3984 3584 -1 -3585 3585 6 -3586 3585 -1 -3985 3585 -1 -3586 3586 6 -3587 3586 -1 -3986 3586 -1 -3587 3587 6 -3588 3587 -1 -3987 3587 -1 -3588 3588 6 -3589 3588 -1 -3988 3588 -1 -3589 3589 6 -3590 3589 -1 -3989 3589 -1 -3590 3590 6 -3591 3590 -1 -3990 3590 -1 -3591 3591 6 -3592 3591 -1 -3991 3591 -1 -3592 3592 6 -3593 3592 -1 -3992 3592 -1 -3593 3593 6 -3594 3593 -1 -3993 3593 -1 -3594 3594 6 -3595 3594 -1 -3994 3594 -1 -3595 3595 6 -3596 3595 -1 -3995 3595 -1 -3596 3596 6 -3597 3596 -1 -3996 3596 -1 -3597 3597 6 -3598 3597 -1 -3997 3597 -1 -3598 3598 6 -3599 3598 -1 -3998 3598 -1 -3599 3599 6 -3600 3599 -1 -3999 3599 -1 -3600 3600 6 -4000 3600 -1 -3601 3601 6 -3602 3601 -1 -3621 3601 -1 -4001 3601 -1 -3602 3602 6 -3603 3602 -1 -3622 3602 -1 -4002 3602 -1 -3603 3603 6 -3604 3603 -1 -3623 3603 -1 -4003 3603 -1 -3604 3604 6 -3605 3604 -1 -3624 3604 -1 -4004 3604 -1 -3605 3605 6 -3606 3605 -1 -3625 3605 -1 -4005 3605 -1 -3606 3606 6 -3607 3606 -1 -3626 3606 -1 -4006 3606 -1 -3607 3607 6 -3608 3607 -1 -3627 3607 -1 -4007 3607 -1 -3608 3608 6 -3609 3608 -1 -3628 3608 -1 -4008 3608 -1 -3609 3609 6 -3610 3609 -1 -3629 3609 -1 -4009 3609 -1 -3610 3610 6 -3611 3610 -1 -3630 3610 -1 -4010 3610 -1 -3611 3611 6 -3612 3611 -1 -3631 3611 -1 -4011 3611 -1 -3612 3612 6 -3613 3612 -1 -3632 3612 -1 -4012 3612 -1 -3613 3613 6 -3614 3613 -1 -3633 3613 -1 -4013 3613 -1 -3614 3614 6 -3615 3614 -1 -3634 3614 -1 -4014 3614 -1 -3615 3615 6 -3616 3615 -1 -3635 3615 -1 -4015 3615 -1 -3616 3616 6 -3617 3616 -1 -3636 3616 -1 -4016 3616 -1 -3617 3617 6 -3618 3617 -1 -3637 3617 -1 -4017 3617 -1 -3618 3618 6 -3619 3618 -1 -3638 3618 -1 -4018 3618 -1 -3619 3619 6 -3620 3619 -1 -3639 3619 -1 -4019 3619 -1 -3620 3620 6 -3640 3620 -1 -4020 3620 -1 -3621 3621 6 -3622 3621 -1 -3641 3621 -1 -4021 3621 -1 -3622 3622 6 -3623 3622 -1 -3642 3622 -1 -4022 3622 -1 -3623 3623 6 -3624 3623 -1 -3643 3623 -1 -4023 3623 -1 -3624 3624 6 -3625 3624 -1 -3644 3624 -1 -4024 3624 -1 -3625 3625 6 -3626 3625 -1 -3645 3625 -1 -4025 3625 -1 -3626 3626 6 -3627 3626 -1 -3646 3626 -1 -4026 3626 -1 -3627 3627 6 -3628 3627 -1 -3647 3627 -1 -4027 3627 -1 -3628 3628 6 -3629 3628 -1 -3648 3628 -1 -4028 3628 -1 -3629 3629 6 -3630 3629 -1 -3649 3629 -1 -4029 3629 -1 -3630 3630 6 -3631 3630 -1 -3650 3630 -1 -4030 3630 -1 -3631 3631 6 -3632 3631 -1 -3651 3631 -1 -4031 3631 -1 -3632 3632 6 -3633 3632 -1 -3652 3632 -1 -4032 3632 -1 -3633 3633 6 -3634 3633 -1 -3653 3633 -1 -4033 3633 -1 -3634 3634 6 -3635 3634 -1 -3654 3634 -1 -4034 3634 -1 -3635 3635 6 -3636 3635 -1 -3655 3635 -1 -4035 3635 -1 -3636 3636 6 -3637 3636 -1 -3656 3636 -1 -4036 3636 -1 -3637 3637 6 -3638 3637 -1 -3657 3637 -1 -4037 3637 -1 -3638 3638 6 -3639 3638 -1 -3658 3638 -1 -4038 3638 -1 -3639 3639 6 -3640 3639 -1 -3659 3639 -1 -4039 3639 -1 -3640 3640 6 -3660 3640 -1 -4040 3640 -1 -3641 3641 6 -3642 3641 -1 -3661 3641 -1 -4041 3641 -1 -3642 3642 6 -3643 3642 -1 -3662 3642 -1 -4042 3642 -1 -3643 3643 6 -3644 3643 -1 -3663 3643 -1 -4043 3643 -1 -3644 3644 6 -3645 3644 -1 -3664 3644 -1 -4044 3644 -1 -3645 3645 6 -3646 3645 -1 -3665 3645 -1 -4045 3645 -1 -3646 3646 6 -3647 3646 -1 -3666 3646 -1 -4046 3646 -1 -3647 3647 6 -3648 3647 -1 -3667 3647 -1 -4047 3647 -1 -3648 3648 6 -3649 3648 -1 -3668 3648 -1 -4048 3648 -1 -3649 3649 6 -3650 3649 -1 -3669 3649 -1 -4049 3649 -1 -3650 3650 6 -3651 3650 -1 -3670 3650 -1 -4050 3650 -1 -3651 3651 6 -3652 3651 -1 -3671 3651 -1 -4051 3651 -1 -3652 3652 6 -3653 3652 -1 -3672 3652 -1 -4052 3652 -1 -3653 3653 6 -3654 3653 -1 -3673 3653 -1 -4053 3653 -1 -3654 3654 6 -3655 3654 -1 -3674 3654 -1 -4054 3654 -1 -3655 3655 6 -3656 3655 -1 -3675 3655 -1 -4055 3655 -1 -3656 3656 6 -3657 3656 -1 -3676 3656 -1 -4056 3656 -1 -3657 3657 6 -3658 3657 -1 -3677 3657 -1 -4057 3657 -1 -3658 3658 6 -3659 3658 -1 -3678 3658 -1 -4058 3658 -1 -3659 3659 6 -3660 3659 -1 -3679 3659 -1 -4059 3659 -1 -3660 3660 6 -3680 3660 -1 -4060 3660 -1 -3661 3661 6 -3662 3661 -1 -3681 3661 -1 -4061 3661 -1 -3662 3662 6 -3663 3662 -1 -3682 3662 -1 -4062 3662 -1 -3663 3663 6 -3664 3663 -1 -3683 3663 -1 -4063 3663 -1 -3664 3664 6 -3665 3664 -1 -3684 3664 -1 -4064 3664 -1 -3665 3665 6 -3666 3665 -1 -3685 3665 -1 -4065 3665 -1 -3666 3666 6 -3667 3666 -1 -3686 3666 -1 -4066 3666 -1 -3667 3667 6 -3668 3667 -1 -3687 3667 -1 -4067 3667 -1 -3668 3668 6 -3669 3668 -1 -3688 3668 -1 -4068 3668 -1 -3669 3669 6 -3670 3669 -1 -3689 3669 -1 -4069 3669 -1 -3670 3670 6 -3671 3670 -1 -3690 3670 -1 -4070 3670 -1 -3671 3671 6 -3672 3671 -1 -3691 3671 -1 -4071 3671 -1 -3672 3672 6 -3673 3672 -1 -3692 3672 -1 -4072 3672 -1 -3673 3673 6 -3674 3673 -1 -3693 3673 -1 -4073 3673 -1 -3674 3674 6 -3675 3674 -1 -3694 3674 -1 -4074 3674 -1 -3675 3675 6 -3676 3675 -1 -3695 3675 -1 -4075 3675 -1 -3676 3676 6 -3677 3676 -1 -3696 3676 -1 -4076 3676 -1 -3677 3677 6 -3678 3677 -1 -3697 3677 -1 -4077 3677 -1 -3678 3678 6 -3679 3678 -1 -3698 3678 -1 -4078 3678 -1 -3679 3679 6 -3680 3679 -1 -3699 3679 -1 -4079 3679 -1 -3680 3680 6 -3700 3680 -1 -4080 3680 -1 -3681 3681 6 -3682 3681 -1 -3701 3681 -1 -4081 3681 -1 -3682 3682 6 -3683 3682 -1 -3702 3682 -1 -4082 3682 -1 -3683 3683 6 -3684 3683 -1 -3703 3683 -1 -4083 3683 -1 -3684 3684 6 -3685 3684 -1 -3704 3684 -1 -4084 3684 -1 -3685 3685 6 -3686 3685 -1 -3705 3685 -1 -4085 3685 -1 -3686 3686 6 -3687 3686 -1 -3706 3686 -1 -4086 3686 -1 -3687 3687 6 -3688 3687 -1 -3707 3687 -1 -4087 3687 -1 -3688 3688 6 -3689 3688 -1 -3708 3688 -1 -4088 3688 -1 -3689 3689 6 -3690 3689 -1 -3709 3689 -1 -4089 3689 -1 -3690 3690 6 -3691 3690 -1 -3710 3690 -1 -4090 3690 -1 -3691 3691 6 -3692 3691 -1 -3711 3691 -1 -4091 3691 -1 -3692 3692 6 -3693 3692 -1 -3712 3692 -1 -4092 3692 -1 -3693 3693 6 -3694 3693 -1 -3713 3693 -1 -4093 3693 -1 -3694 3694 6 -3695 3694 -1 -3714 3694 -1 -4094 3694 -1 -3695 3695 6 -3696 3695 -1 -3715 3695 -1 -4095 3695 -1 -3696 3696 6 -3697 3696 -1 -3716 3696 -1 -4096 3696 -1 -3697 3697 6 -3698 3697 -1 -3717 3697 -1 -4097 3697 -1 -3698 3698 6 -3699 3698 -1 -3718 3698 -1 -4098 3698 -1 -3699 3699 6 -3700 3699 -1 -3719 3699 -1 -4099 3699 -1 -3700 3700 6 -3720 3700 -1 -4100 3700 -1 -3701 3701 6 -3702 3701 -1 -3721 3701 -1 -4101 3701 -1 -3702 3702 6 -3703 3702 -1 -3722 3702 -1 -4102 3702 -1 -3703 3703 6 -3704 3703 -1 -3723 3703 -1 -4103 3703 -1 -3704 3704 6 -3705 3704 -1 -3724 3704 -1 -4104 3704 -1 -3705 3705 6 -3706 3705 -1 -3725 3705 -1 -4105 3705 -1 -3706 3706 6 -3707 3706 -1 -3726 3706 -1 -4106 3706 -1 -3707 3707 6 -3708 3707 -1 -3727 3707 -1 -4107 3707 -1 -3708 3708 6 -3709 3708 -1 -3728 3708 -1 -4108 3708 -1 -3709 3709 6 -3710 3709 -1 -3729 3709 -1 -4109 3709 -1 -3710 3710 6 -3711 3710 -1 -3730 3710 -1 -4110 3710 -1 -3711 3711 6 -3712 3711 -1 -3731 3711 -1 -4111 3711 -1 -3712 3712 6 -3713 3712 -1 -3732 3712 -1 -4112 3712 -1 -3713 3713 6 -3714 3713 -1 -3733 3713 -1 -4113 3713 -1 -3714 3714 6 -3715 3714 -1 -3734 3714 -1 -4114 3714 -1 -3715 3715 6 -3716 3715 -1 -3735 3715 -1 -4115 3715 -1 -3716 3716 6 -3717 3716 -1 -3736 3716 -1 -4116 3716 -1 -3717 3717 6 -3718 3717 -1 -3737 3717 -1 -4117 3717 -1 -3718 3718 6 -3719 3718 -1 -3738 3718 -1 -4118 3718 -1 -3719 3719 6 -3720 3719 -1 -3739 3719 -1 -4119 3719 -1 -3720 3720 6 -3740 3720 -1 -4120 3720 -1 -3721 3721 6 -3722 3721 -1 -3741 3721 -1 -4121 3721 -1 -3722 3722 6 -3723 3722 -1 -3742 3722 -1 -4122 3722 -1 -3723 3723 6 -3724 3723 -1 -3743 3723 -1 -4123 3723 -1 -3724 3724 6 -3725 3724 -1 -3744 3724 -1 -4124 3724 -1 -3725 3725 6 -3726 3725 -1 -3745 3725 -1 -4125 3725 -1 -3726 3726 6 -3727 3726 -1 -3746 3726 -1 -4126 3726 -1 -3727 3727 6 -3728 3727 -1 -3747 3727 -1 -4127 3727 -1 -3728 3728 6 -3729 3728 -1 -3748 3728 -1 -4128 3728 -1 -3729 3729 6 -3730 3729 -1 -3749 3729 -1 -4129 3729 -1 -3730 3730 6 -3731 3730 -1 -3750 3730 -1 -4130 3730 -1 -3731 3731 6 -3732 3731 -1 -3751 3731 -1 -4131 3731 -1 -3732 3732 6 -3733 3732 -1 -3752 3732 -1 -4132 3732 -1 -3733 3733 6 -3734 3733 -1 -3753 3733 -1 -4133 3733 -1 -3734 3734 6 -3735 3734 -1 -3754 3734 -1 -4134 3734 -1 -3735 3735 6 -3736 3735 -1 -3755 3735 -1 -4135 3735 -1 -3736 3736 6 -3737 3736 -1 -3756 3736 -1 -4136 3736 -1 -3737 3737 6 -3738 3737 -1 -3757 3737 -1 -4137 3737 -1 -3738 3738 6 -3739 3738 -1 -3758 3738 -1 -4138 3738 -1 -3739 3739 6 -3740 3739 -1 -3759 3739 -1 -4139 3739 -1 -3740 3740 6 -3760 3740 -1 -4140 3740 -1 -3741 3741 6 -3742 3741 -1 -3761 3741 -1 -4141 3741 -1 -3742 3742 6 -3743 3742 -1 -3762 3742 -1 -4142 3742 -1 -3743 3743 6 -3744 3743 -1 -3763 3743 -1 -4143 3743 -1 -3744 3744 6 -3745 3744 -1 -3764 3744 -1 -4144 3744 -1 -3745 3745 6 -3746 3745 -1 -3765 3745 -1 -4145 3745 -1 -3746 3746 6 -3747 3746 -1 -3766 3746 -1 -4146 3746 -1 -3747 3747 6 -3748 3747 -1 -3767 3747 -1 -4147 3747 -1 -3748 3748 6 -3749 3748 -1 -3768 3748 -1 -4148 3748 -1 -3749 3749 6 -3750 3749 -1 -3769 3749 -1 -4149 3749 -1 -3750 3750 6 -3751 3750 -1 -3770 3750 -1 -4150 3750 -1 -3751 3751 6 -3752 3751 -1 -3771 3751 -1 -4151 3751 -1 -3752 3752 6 -3753 3752 -1 -3772 3752 -1 -4152 3752 -1 -3753 3753 6 -3754 3753 -1 -3773 3753 -1 -4153 3753 -1 -3754 3754 6 -3755 3754 -1 -3774 3754 -1 -4154 3754 -1 -3755 3755 6 -3756 3755 -1 -3775 3755 -1 -4155 3755 -1 -3756 3756 6 -3757 3756 -1 -3776 3756 -1 -4156 3756 -1 -3757 3757 6 -3758 3757 -1 -3777 3757 -1 -4157 3757 -1 -3758 3758 6 -3759 3758 -1 -3778 3758 -1 -4158 3758 -1 -3759 3759 6 -3760 3759 -1 -3779 3759 -1 -4159 3759 -1 -3760 3760 6 -3780 3760 -1 -4160 3760 -1 -3761 3761 6 -3762 3761 -1 -3781 3761 -1 -4161 3761 -1 -3762 3762 6 -3763 3762 -1 -3782 3762 -1 -4162 3762 -1 -3763 3763 6 -3764 3763 -1 -3783 3763 -1 -4163 3763 -1 -3764 3764 6 -3765 3764 -1 -3784 3764 -1 -4164 3764 -1 -3765 3765 6 -3766 3765 -1 -3785 3765 -1 -4165 3765 -1 -3766 3766 6 -3767 3766 -1 -3786 3766 -1 -4166 3766 -1 -3767 3767 6 -3768 3767 -1 -3787 3767 -1 -4167 3767 -1 -3768 3768 6 -3769 3768 -1 -3788 3768 -1 -4168 3768 -1 -3769 3769 6 -3770 3769 -1 -3789 3769 -1 -4169 3769 -1 -3770 3770 6 -3771 3770 -1 -3790 3770 -1 -4170 3770 -1 -3771 3771 6 -3772 3771 -1 -3791 3771 -1 -4171 3771 -1 -3772 3772 6 -3773 3772 -1 -3792 3772 -1 -4172 3772 -1 -3773 3773 6 -3774 3773 -1 -3793 3773 -1 -4173 3773 -1 -3774 3774 6 -3775 3774 -1 -3794 3774 -1 -4174 3774 -1 -3775 3775 6 -3776 3775 -1 -3795 3775 -1 -4175 3775 -1 -3776 3776 6 -3777 3776 -1 -3796 3776 -1 -4176 3776 -1 -3777 3777 6 -3778 3777 -1 -3797 3777 -1 -4177 3777 -1 -3778 3778 6 -3779 3778 -1 -3798 3778 -1 -4178 3778 -1 -3779 3779 6 -3780 3779 -1 -3799 3779 -1 -4179 3779 -1 -3780 3780 6 -3800 3780 -1 -4180 3780 -1 -3781 3781 6 -3782 3781 -1 -3801 3781 -1 -4181 3781 -1 -3782 3782 6 -3783 3782 -1 -3802 3782 -1 -4182 3782 -1 -3783 3783 6 -3784 3783 -1 -3803 3783 -1 -4183 3783 -1 -3784 3784 6 -3785 3784 -1 -3804 3784 -1 -4184 3784 -1 -3785 3785 6 -3786 3785 -1 -3805 3785 -1 -4185 3785 -1 -3786 3786 6 -3787 3786 -1 -3806 3786 -1 -4186 3786 -1 -3787 3787 6 -3788 3787 -1 -3807 3787 -1 -4187 3787 -1 -3788 3788 6 -3789 3788 -1 -3808 3788 -1 -4188 3788 -1 -3789 3789 6 -3790 3789 -1 -3809 3789 -1 -4189 3789 -1 -3790 3790 6 -3791 3790 -1 -3810 3790 -1 -4190 3790 -1 -3791 3791 6 -3792 3791 -1 -3811 3791 -1 -4191 3791 -1 -3792 3792 6 -3793 3792 -1 -3812 3792 -1 -4192 3792 -1 -3793 3793 6 -3794 3793 -1 -3813 3793 -1 -4193 3793 -1 -3794 3794 6 -3795 3794 -1 -3814 3794 -1 -4194 3794 -1 -3795 3795 6 -3796 3795 -1 -3815 3795 -1 -4195 3795 -1 -3796 3796 6 -3797 3796 -1 -3816 3796 -1 -4196 3796 -1 -3797 3797 6 -3798 3797 -1 -3817 3797 -1 -4197 3797 -1 -3798 3798 6 -3799 3798 -1 -3818 3798 -1 -4198 3798 -1 -3799 3799 6 -3800 3799 -1 -3819 3799 -1 -4199 3799 -1 -3800 3800 6 -3820 3800 -1 -4200 3800 -1 -3801 3801 6 -3802 3801 -1 -3821 3801 -1 -4201 3801 -1 -3802 3802 6 -3803 3802 -1 -3822 3802 -1 -4202 3802 -1 -3803 3803 6 -3804 3803 -1 -3823 3803 -1 -4203 3803 -1 -3804 3804 6 -3805 3804 -1 -3824 3804 -1 -4204 3804 -1 -3805 3805 6 -3806 3805 -1 -3825 3805 -1 -4205 3805 -1 -3806 3806 6 -3807 3806 -1 -3826 3806 -1 -4206 3806 -1 -3807 3807 6 -3808 3807 -1 -3827 3807 -1 -4207 3807 -1 -3808 3808 6 -3809 3808 -1 -3828 3808 -1 -4208 3808 -1 -3809 3809 6 -3810 3809 -1 -3829 3809 -1 -4209 3809 -1 -3810 3810 6 -3811 3810 -1 -3830 3810 -1 -4210 3810 -1 -3811 3811 6 -3812 3811 -1 -3831 3811 -1 -4211 3811 -1 -3812 3812 6 -3813 3812 -1 -3832 3812 -1 -4212 3812 -1 -3813 3813 6 -3814 3813 -1 -3833 3813 -1 -4213 3813 -1 -3814 3814 6 -3815 3814 -1 -3834 3814 -1 -4214 3814 -1 -3815 3815 6 -3816 3815 -1 -3835 3815 -1 -4215 3815 -1 -3816 3816 6 -3817 3816 -1 -3836 3816 -1 -4216 3816 -1 -3817 3817 6 -3818 3817 -1 -3837 3817 -1 -4217 3817 -1 -3818 3818 6 -3819 3818 -1 -3838 3818 -1 -4218 3818 -1 -3819 3819 6 -3820 3819 -1 -3839 3819 -1 -4219 3819 -1 -3820 3820 6 -3840 3820 -1 -4220 3820 -1 -3821 3821 6 -3822 3821 -1 -3841 3821 -1 -4221 3821 -1 -3822 3822 6 -3823 3822 -1 -3842 3822 -1 -4222 3822 -1 -3823 3823 6 -3824 3823 -1 -3843 3823 -1 -4223 3823 -1 -3824 3824 6 -3825 3824 -1 -3844 3824 -1 -4224 3824 -1 -3825 3825 6 -3826 3825 -1 -3845 3825 -1 -4225 3825 -1 -3826 3826 6 -3827 3826 -1 -3846 3826 -1 -4226 3826 -1 -3827 3827 6 -3828 3827 -1 -3847 3827 -1 -4227 3827 -1 -3828 3828 6 -3829 3828 -1 -3848 3828 -1 -4228 3828 -1 -3829 3829 6 -3830 3829 -1 -3849 3829 -1 -4229 3829 -1 -3830 3830 6 -3831 3830 -1 -3850 3830 -1 -4230 3830 -1 -3831 3831 6 -3832 3831 -1 -3851 3831 -1 -4231 3831 -1 -3832 3832 6 -3833 3832 -1 -3852 3832 -1 -4232 3832 -1 -3833 3833 6 -3834 3833 -1 -3853 3833 -1 -4233 3833 -1 -3834 3834 6 -3835 3834 -1 -3854 3834 -1 -4234 3834 -1 -3835 3835 6 -3836 3835 -1 -3855 3835 -1 -4235 3835 -1 -3836 3836 6 -3837 3836 -1 -3856 3836 -1 -4236 3836 -1 -3837 3837 6 -3838 3837 -1 -3857 3837 -1 -4237 3837 -1 -3838 3838 6 -3839 3838 -1 -3858 3838 -1 -4238 3838 -1 -3839 3839 6 -3840 3839 -1 -3859 3839 -1 -4239 3839 -1 -3840 3840 6 -3860 3840 -1 -4240 3840 -1 -3841 3841 6 -3842 3841 -1 -3861 3841 -1 -4241 3841 -1 -3842 3842 6 -3843 3842 -1 -3862 3842 -1 -4242 3842 -1 -3843 3843 6 -3844 3843 -1 -3863 3843 -1 -4243 3843 -1 -3844 3844 6 -3845 3844 -1 -3864 3844 -1 -4244 3844 -1 -3845 3845 6 -3846 3845 -1 -3865 3845 -1 -4245 3845 -1 -3846 3846 6 -3847 3846 -1 -3866 3846 -1 -4246 3846 -1 -3847 3847 6 -3848 3847 -1 -3867 3847 -1 -4247 3847 -1 -3848 3848 6 -3849 3848 -1 -3868 3848 -1 -4248 3848 -1 -3849 3849 6 -3850 3849 -1 -3869 3849 -1 -4249 3849 -1 -3850 3850 6 -3851 3850 -1 -3870 3850 -1 -4250 3850 -1 -3851 3851 6 -3852 3851 -1 -3871 3851 -1 -4251 3851 -1 -3852 3852 6 -3853 3852 -1 -3872 3852 -1 -4252 3852 -1 -3853 3853 6 -3854 3853 -1 -3873 3853 -1 -4253 3853 -1 -3854 3854 6 -3855 3854 -1 -3874 3854 -1 -4254 3854 -1 -3855 3855 6 -3856 3855 -1 -3875 3855 -1 -4255 3855 -1 -3856 3856 6 -3857 3856 -1 -3876 3856 -1 -4256 3856 -1 -3857 3857 6 -3858 3857 -1 -3877 3857 -1 -4257 3857 -1 -3858 3858 6 -3859 3858 -1 -3878 3858 -1 -4258 3858 -1 -3859 3859 6 -3860 3859 -1 -3879 3859 -1 -4259 3859 -1 -3860 3860 6 -3880 3860 -1 -4260 3860 -1 -3861 3861 6 -3862 3861 -1 -3881 3861 -1 -4261 3861 -1 -3862 3862 6 -3863 3862 -1 -3882 3862 -1 -4262 3862 -1 -3863 3863 6 -3864 3863 -1 -3883 3863 -1 -4263 3863 -1 -3864 3864 6 -3865 3864 -1 -3884 3864 -1 -4264 3864 -1 -3865 3865 6 -3866 3865 -1 -3885 3865 -1 -4265 3865 -1 -3866 3866 6 -3867 3866 -1 -3886 3866 -1 -4266 3866 -1 -3867 3867 6 -3868 3867 -1 -3887 3867 -1 -4267 3867 -1 -3868 3868 6 -3869 3868 -1 -3888 3868 -1 -4268 3868 -1 -3869 3869 6 -3870 3869 -1 -3889 3869 -1 -4269 3869 -1 -3870 3870 6 -3871 3870 -1 -3890 3870 -1 -4270 3870 -1 -3871 3871 6 -3872 3871 -1 -3891 3871 -1 -4271 3871 -1 -3872 3872 6 -3873 3872 -1 -3892 3872 -1 -4272 3872 -1 -3873 3873 6 -3874 3873 -1 -3893 3873 -1 -4273 3873 -1 -3874 3874 6 -3875 3874 -1 -3894 3874 -1 -4274 3874 -1 -3875 3875 6 -3876 3875 -1 -3895 3875 -1 -4275 3875 -1 -3876 3876 6 -3877 3876 -1 -3896 3876 -1 -4276 3876 -1 -3877 3877 6 -3878 3877 -1 -3897 3877 -1 -4277 3877 -1 -3878 3878 6 -3879 3878 -1 -3898 3878 -1 -4278 3878 -1 -3879 3879 6 -3880 3879 -1 -3899 3879 -1 -4279 3879 -1 -3880 3880 6 -3900 3880 -1 -4280 3880 -1 -3881 3881 6 -3882 3881 -1 -3901 3881 -1 -4281 3881 -1 -3882 3882 6 -3883 3882 -1 -3902 3882 -1 -4282 3882 -1 -3883 3883 6 -3884 3883 -1 -3903 3883 -1 -4283 3883 -1 -3884 3884 6 -3885 3884 -1 -3904 3884 -1 -4284 3884 -1 -3885 3885 6 -3886 3885 -1 -3905 3885 -1 -4285 3885 -1 -3886 3886 6 -3887 3886 -1 -3906 3886 -1 -4286 3886 -1 -3887 3887 6 -3888 3887 -1 -3907 3887 -1 -4287 3887 -1 -3888 3888 6 -3889 3888 -1 -3908 3888 -1 -4288 3888 -1 -3889 3889 6 -3890 3889 -1 -3909 3889 -1 -4289 3889 -1 -3890 3890 6 -3891 3890 -1 -3910 3890 -1 -4290 3890 -1 -3891 3891 6 -3892 3891 -1 -3911 3891 -1 -4291 3891 -1 -3892 3892 6 -3893 3892 -1 -3912 3892 -1 -4292 3892 -1 -3893 3893 6 -3894 3893 -1 -3913 3893 -1 -4293 3893 -1 -3894 3894 6 -3895 3894 -1 -3914 3894 -1 -4294 3894 -1 -3895 3895 6 -3896 3895 -1 -3915 3895 -1 -4295 3895 -1 -3896 3896 6 -3897 3896 -1 -3916 3896 -1 -4296 3896 -1 -3897 3897 6 -3898 3897 -1 -3917 3897 -1 -4297 3897 -1 -3898 3898 6 -3899 3898 -1 -3918 3898 -1 -4298 3898 -1 -3899 3899 6 -3900 3899 -1 -3919 3899 -1 -4299 3899 -1 -3900 3900 6 -3920 3900 -1 -4300 3900 -1 -3901 3901 6 -3902 3901 -1 -3921 3901 -1 -4301 3901 -1 -3902 3902 6 -3903 3902 -1 -3922 3902 -1 -4302 3902 -1 -3903 3903 6 -3904 3903 -1 -3923 3903 -1 -4303 3903 -1 -3904 3904 6 -3905 3904 -1 -3924 3904 -1 -4304 3904 -1 -3905 3905 6 -3906 3905 -1 -3925 3905 -1 -4305 3905 -1 -3906 3906 6 -3907 3906 -1 -3926 3906 -1 -4306 3906 -1 -3907 3907 6 -3908 3907 -1 -3927 3907 -1 -4307 3907 -1 -3908 3908 6 -3909 3908 -1 -3928 3908 -1 -4308 3908 -1 -3909 3909 6 -3910 3909 -1 -3929 3909 -1 -4309 3909 -1 -3910 3910 6 -3911 3910 -1 -3930 3910 -1 -4310 3910 -1 -3911 3911 6 -3912 3911 -1 -3931 3911 -1 -4311 3911 -1 -3912 3912 6 -3913 3912 -1 -3932 3912 -1 -4312 3912 -1 -3913 3913 6 -3914 3913 -1 -3933 3913 -1 -4313 3913 -1 -3914 3914 6 -3915 3914 -1 -3934 3914 -1 -4314 3914 -1 -3915 3915 6 -3916 3915 -1 -3935 3915 -1 -4315 3915 -1 -3916 3916 6 -3917 3916 -1 -3936 3916 -1 -4316 3916 -1 -3917 3917 6 -3918 3917 -1 -3937 3917 -1 -4317 3917 -1 -3918 3918 6 -3919 3918 -1 -3938 3918 -1 -4318 3918 -1 -3919 3919 6 -3920 3919 -1 -3939 3919 -1 -4319 3919 -1 -3920 3920 6 -3940 3920 -1 -4320 3920 -1 -3921 3921 6 -3922 3921 -1 -3941 3921 -1 -4321 3921 -1 -3922 3922 6 -3923 3922 -1 -3942 3922 -1 -4322 3922 -1 -3923 3923 6 -3924 3923 -1 -3943 3923 -1 -4323 3923 -1 -3924 3924 6 -3925 3924 -1 -3944 3924 -1 -4324 3924 -1 -3925 3925 6 -3926 3925 -1 -3945 3925 -1 -4325 3925 -1 -3926 3926 6 -3927 3926 -1 -3946 3926 -1 -4326 3926 -1 -3927 3927 6 -3928 3927 -1 -3947 3927 -1 -4327 3927 -1 -3928 3928 6 -3929 3928 -1 -3948 3928 -1 -4328 3928 -1 -3929 3929 6 -3930 3929 -1 -3949 3929 -1 -4329 3929 -1 -3930 3930 6 -3931 3930 -1 -3950 3930 -1 -4330 3930 -1 -3931 3931 6 -3932 3931 -1 -3951 3931 -1 -4331 3931 -1 -3932 3932 6 -3933 3932 -1 -3952 3932 -1 -4332 3932 -1 -3933 3933 6 -3934 3933 -1 -3953 3933 -1 -4333 3933 -1 -3934 3934 6 -3935 3934 -1 -3954 3934 -1 -4334 3934 -1 -3935 3935 6 -3936 3935 -1 -3955 3935 -1 -4335 3935 -1 -3936 3936 6 -3937 3936 -1 -3956 3936 -1 -4336 3936 -1 -3937 3937 6 -3938 3937 -1 -3957 3937 -1 -4337 3937 -1 -3938 3938 6 -3939 3938 -1 -3958 3938 -1 -4338 3938 -1 -3939 3939 6 -3940 3939 -1 -3959 3939 -1 -4339 3939 -1 -3940 3940 6 -3960 3940 -1 -4340 3940 -1 -3941 3941 6 -3942 3941 -1 -3961 3941 -1 -4341 3941 -1 -3942 3942 6 -3943 3942 -1 -3962 3942 -1 -4342 3942 -1 -3943 3943 6 -3944 3943 -1 -3963 3943 -1 -4343 3943 -1 -3944 3944 6 -3945 3944 -1 -3964 3944 -1 -4344 3944 -1 -3945 3945 6 -3946 3945 -1 -3965 3945 -1 -4345 3945 -1 -3946 3946 6 -3947 3946 -1 -3966 3946 -1 -4346 3946 -1 -3947 3947 6 -3948 3947 -1 -3967 3947 -1 -4347 3947 -1 -3948 3948 6 -3949 3948 -1 -3968 3948 -1 -4348 3948 -1 -3949 3949 6 -3950 3949 -1 -3969 3949 -1 -4349 3949 -1 -3950 3950 6 -3951 3950 -1 -3970 3950 -1 -4350 3950 -1 -3951 3951 6 -3952 3951 -1 -3971 3951 -1 -4351 3951 -1 -3952 3952 6 -3953 3952 -1 -3972 3952 -1 -4352 3952 -1 -3953 3953 6 -3954 3953 -1 -3973 3953 -1 -4353 3953 -1 -3954 3954 6 -3955 3954 -1 -3974 3954 -1 -4354 3954 -1 -3955 3955 6 -3956 3955 -1 -3975 3955 -1 -4355 3955 -1 -3956 3956 6 -3957 3956 -1 -3976 3956 -1 -4356 3956 -1 -3957 3957 6 -3958 3957 -1 -3977 3957 -1 -4357 3957 -1 -3958 3958 6 -3959 3958 -1 -3978 3958 -1 -4358 3958 -1 -3959 3959 6 -3960 3959 -1 -3979 3959 -1 -4359 3959 -1 -3960 3960 6 -3980 3960 -1 -4360 3960 -1 -3961 3961 6 -3962 3961 -1 -3981 3961 -1 -4361 3961 -1 -3962 3962 6 -3963 3962 -1 -3982 3962 -1 -4362 3962 -1 -3963 3963 6 -3964 3963 -1 -3983 3963 -1 -4363 3963 -1 -3964 3964 6 -3965 3964 -1 -3984 3964 -1 -4364 3964 -1 -3965 3965 6 -3966 3965 -1 -3985 3965 -1 -4365 3965 -1 -3966 3966 6 -3967 3966 -1 -3986 3966 -1 -4366 3966 -1 -3967 3967 6 -3968 3967 -1 -3987 3967 -1 -4367 3967 -1 -3968 3968 6 -3969 3968 -1 -3988 3968 -1 -4368 3968 -1 -3969 3969 6 -3970 3969 -1 -3989 3969 -1 -4369 3969 -1 -3970 3970 6 -3971 3970 -1 -3990 3970 -1 -4370 3970 -1 -3971 3971 6 -3972 3971 -1 -3991 3971 -1 -4371 3971 -1 -3972 3972 6 -3973 3972 -1 -3992 3972 -1 -4372 3972 -1 -3973 3973 6 -3974 3973 -1 -3993 3973 -1 -4373 3973 -1 -3974 3974 6 -3975 3974 -1 -3994 3974 -1 -4374 3974 -1 -3975 3975 6 -3976 3975 -1 -3995 3975 -1 -4375 3975 -1 -3976 3976 6 -3977 3976 -1 -3996 3976 -1 -4376 3976 -1 -3977 3977 6 -3978 3977 -1 -3997 3977 -1 -4377 3977 -1 -3978 3978 6 -3979 3978 -1 -3998 3978 -1 -4378 3978 -1 -3979 3979 6 -3980 3979 -1 -3999 3979 -1 -4379 3979 -1 -3980 3980 6 -4000 3980 -1 -4380 3980 -1 -3981 3981 6 -3982 3981 -1 -4381 3981 -1 -3982 3982 6 -3983 3982 -1 -4382 3982 -1 -3983 3983 6 -3984 3983 -1 -4383 3983 -1 -3984 3984 6 -3985 3984 -1 -4384 3984 -1 -3985 3985 6 -3986 3985 -1 -4385 3985 -1 -3986 3986 6 -3987 3986 -1 -4386 3986 -1 -3987 3987 6 -3988 3987 -1 -4387 3987 -1 -3988 3988 6 -3989 3988 -1 -4388 3988 -1 -3989 3989 6 -3990 3989 -1 -4389 3989 -1 -3990 3990 6 -3991 3990 -1 -4390 3990 -1 -3991 3991 6 -3992 3991 -1 -4391 3991 -1 -3992 3992 6 -3993 3992 -1 -4392 3992 -1 -3993 3993 6 -3994 3993 -1 -4393 3993 -1 -3994 3994 6 -3995 3994 -1 -4394 3994 -1 -3995 3995 6 -3996 3995 -1 -4395 3995 -1 -3996 3996 6 -3997 3996 -1 -4396 3996 -1 -3997 3997 6 -3998 3997 -1 -4397 3997 -1 -3998 3998 6 -3999 3998 -1 -4398 3998 -1 -3999 3999 6 -4000 3999 -1 -4399 3999 -1 -4000 4000 6 -4400 4000 -1 -4001 4001 6 -4002 4001 -1 -4021 4001 -1 -4401 4001 -1 -4002 4002 6 -4003 4002 -1 -4022 4002 -1 -4402 4002 -1 -4003 4003 6 -4004 4003 -1 -4023 4003 -1 -4403 4003 -1 -4004 4004 6 -4005 4004 -1 -4024 4004 -1 -4404 4004 -1 -4005 4005 6 -4006 4005 -1 -4025 4005 -1 -4405 4005 -1 -4006 4006 6 -4007 4006 -1 -4026 4006 -1 -4406 4006 -1 -4007 4007 6 -4008 4007 -1 -4027 4007 -1 -4407 4007 -1 -4008 4008 6 -4009 4008 -1 -4028 4008 -1 -4408 4008 -1 -4009 4009 6 -4010 4009 -1 -4029 4009 -1 -4409 4009 -1 -4010 4010 6 -4011 4010 -1 -4030 4010 -1 -4410 4010 -1 -4011 4011 6 -4012 4011 -1 -4031 4011 -1 -4411 4011 -1 -4012 4012 6 -4013 4012 -1 -4032 4012 -1 -4412 4012 -1 -4013 4013 6 -4014 4013 -1 -4033 4013 -1 -4413 4013 -1 -4014 4014 6 -4015 4014 -1 -4034 4014 -1 -4414 4014 -1 -4015 4015 6 -4016 4015 -1 -4035 4015 -1 -4415 4015 -1 -4016 4016 6 -4017 4016 -1 -4036 4016 -1 -4416 4016 -1 -4017 4017 6 -4018 4017 -1 -4037 4017 -1 -4417 4017 -1 -4018 4018 6 -4019 4018 -1 -4038 4018 -1 -4418 4018 -1 -4019 4019 6 -4020 4019 -1 -4039 4019 -1 -4419 4019 -1 -4020 4020 6 -4040 4020 -1 -4420 4020 -1 -4021 4021 6 -4022 4021 -1 -4041 4021 -1 -4421 4021 -1 -4022 4022 6 -4023 4022 -1 -4042 4022 -1 -4422 4022 -1 -4023 4023 6 -4024 4023 -1 -4043 4023 -1 -4423 4023 -1 -4024 4024 6 -4025 4024 -1 -4044 4024 -1 -4424 4024 -1 -4025 4025 6 -4026 4025 -1 -4045 4025 -1 -4425 4025 -1 -4026 4026 6 -4027 4026 -1 -4046 4026 -1 -4426 4026 -1 -4027 4027 6 -4028 4027 -1 -4047 4027 -1 -4427 4027 -1 -4028 4028 6 -4029 4028 -1 -4048 4028 -1 -4428 4028 -1 -4029 4029 6 -4030 4029 -1 -4049 4029 -1 -4429 4029 -1 -4030 4030 6 -4031 4030 -1 -4050 4030 -1 -4430 4030 -1 -4031 4031 6 -4032 4031 -1 -4051 4031 -1 -4431 4031 -1 -4032 4032 6 -4033 4032 -1 -4052 4032 -1 -4432 4032 -1 -4033 4033 6 -4034 4033 -1 -4053 4033 -1 -4433 4033 -1 -4034 4034 6 -4035 4034 -1 -4054 4034 -1 -4434 4034 -1 -4035 4035 6 -4036 4035 -1 -4055 4035 -1 -4435 4035 -1 -4036 4036 6 -4037 4036 -1 -4056 4036 -1 -4436 4036 -1 -4037 4037 6 -4038 4037 -1 -4057 4037 -1 -4437 4037 -1 -4038 4038 6 -4039 4038 -1 -4058 4038 -1 -4438 4038 -1 -4039 4039 6 -4040 4039 -1 -4059 4039 -1 -4439 4039 -1 -4040 4040 6 -4060 4040 -1 -4440 4040 -1 -4041 4041 6 -4042 4041 -1 -4061 4041 -1 -4441 4041 -1 -4042 4042 6 -4043 4042 -1 -4062 4042 -1 -4442 4042 -1 -4043 4043 6 -4044 4043 -1 -4063 4043 -1 -4443 4043 -1 -4044 4044 6 -4045 4044 -1 -4064 4044 -1 -4444 4044 -1 -4045 4045 6 -4046 4045 -1 -4065 4045 -1 -4445 4045 -1 -4046 4046 6 -4047 4046 -1 -4066 4046 -1 -4446 4046 -1 -4047 4047 6 -4048 4047 -1 -4067 4047 -1 -4447 4047 -1 -4048 4048 6 -4049 4048 -1 -4068 4048 -1 -4448 4048 -1 -4049 4049 6 -4050 4049 -1 -4069 4049 -1 -4449 4049 -1 -4050 4050 6 -4051 4050 -1 -4070 4050 -1 -4450 4050 -1 -4051 4051 6 -4052 4051 -1 -4071 4051 -1 -4451 4051 -1 -4052 4052 6 -4053 4052 -1 -4072 4052 -1 -4452 4052 -1 -4053 4053 6 -4054 4053 -1 -4073 4053 -1 -4453 4053 -1 -4054 4054 6 -4055 4054 -1 -4074 4054 -1 -4454 4054 -1 -4055 4055 6 -4056 4055 -1 -4075 4055 -1 -4455 4055 -1 -4056 4056 6 -4057 4056 -1 -4076 4056 -1 -4456 4056 -1 -4057 4057 6 -4058 4057 -1 -4077 4057 -1 -4457 4057 -1 -4058 4058 6 -4059 4058 -1 -4078 4058 -1 -4458 4058 -1 -4059 4059 6 -4060 4059 -1 -4079 4059 -1 -4459 4059 -1 -4060 4060 6 -4080 4060 -1 -4460 4060 -1 -4061 4061 6 -4062 4061 -1 -4081 4061 -1 -4461 4061 -1 -4062 4062 6 -4063 4062 -1 -4082 4062 -1 -4462 4062 -1 -4063 4063 6 -4064 4063 -1 -4083 4063 -1 -4463 4063 -1 -4064 4064 6 -4065 4064 -1 -4084 4064 -1 -4464 4064 -1 -4065 4065 6 -4066 4065 -1 -4085 4065 -1 -4465 4065 -1 -4066 4066 6 -4067 4066 -1 -4086 4066 -1 -4466 4066 -1 -4067 4067 6 -4068 4067 -1 -4087 4067 -1 -4467 4067 -1 -4068 4068 6 -4069 4068 -1 -4088 4068 -1 -4468 4068 -1 -4069 4069 6 -4070 4069 -1 -4089 4069 -1 -4469 4069 -1 -4070 4070 6 -4071 4070 -1 -4090 4070 -1 -4470 4070 -1 -4071 4071 6 -4072 4071 -1 -4091 4071 -1 -4471 4071 -1 -4072 4072 6 -4073 4072 -1 -4092 4072 -1 -4472 4072 -1 -4073 4073 6 -4074 4073 -1 -4093 4073 -1 -4473 4073 -1 -4074 4074 6 -4075 4074 -1 -4094 4074 -1 -4474 4074 -1 -4075 4075 6 -4076 4075 -1 -4095 4075 -1 -4475 4075 -1 -4076 4076 6 -4077 4076 -1 -4096 4076 -1 -4476 4076 -1 -4077 4077 6 -4078 4077 -1 -4097 4077 -1 -4477 4077 -1 -4078 4078 6 -4079 4078 -1 -4098 4078 -1 -4478 4078 -1 -4079 4079 6 -4080 4079 -1 -4099 4079 -1 -4479 4079 -1 -4080 4080 6 -4100 4080 -1 -4480 4080 -1 -4081 4081 6 -4082 4081 -1 -4101 4081 -1 -4481 4081 -1 -4082 4082 6 -4083 4082 -1 -4102 4082 -1 -4482 4082 -1 -4083 4083 6 -4084 4083 -1 -4103 4083 -1 -4483 4083 -1 -4084 4084 6 -4085 4084 -1 -4104 4084 -1 -4484 4084 -1 -4085 4085 6 -4086 4085 -1 -4105 4085 -1 -4485 4085 -1 -4086 4086 6 -4087 4086 -1 -4106 4086 -1 -4486 4086 -1 -4087 4087 6 -4088 4087 -1 -4107 4087 -1 -4487 4087 -1 -4088 4088 6 -4089 4088 -1 -4108 4088 -1 -4488 4088 -1 -4089 4089 6 -4090 4089 -1 -4109 4089 -1 -4489 4089 -1 -4090 4090 6 -4091 4090 -1 -4110 4090 -1 -4490 4090 -1 -4091 4091 6 -4092 4091 -1 -4111 4091 -1 -4491 4091 -1 -4092 4092 6 -4093 4092 -1 -4112 4092 -1 -4492 4092 -1 -4093 4093 6 -4094 4093 -1 -4113 4093 -1 -4493 4093 -1 -4094 4094 6 -4095 4094 -1 -4114 4094 -1 -4494 4094 -1 -4095 4095 6 -4096 4095 -1 -4115 4095 -1 -4495 4095 -1 -4096 4096 6 -4097 4096 -1 -4116 4096 -1 -4496 4096 -1 -4097 4097 6 -4098 4097 -1 -4117 4097 -1 -4497 4097 -1 -4098 4098 6 -4099 4098 -1 -4118 4098 -1 -4498 4098 -1 -4099 4099 6 -4100 4099 -1 -4119 4099 -1 -4499 4099 -1 -4100 4100 6 -4120 4100 -1 -4500 4100 -1 -4101 4101 6 -4102 4101 -1 -4121 4101 -1 -4501 4101 -1 -4102 4102 6 -4103 4102 -1 -4122 4102 -1 -4502 4102 -1 -4103 4103 6 -4104 4103 -1 -4123 4103 -1 -4503 4103 -1 -4104 4104 6 -4105 4104 -1 -4124 4104 -1 -4504 4104 -1 -4105 4105 6 -4106 4105 -1 -4125 4105 -1 -4505 4105 -1 -4106 4106 6 -4107 4106 -1 -4126 4106 -1 -4506 4106 -1 -4107 4107 6 -4108 4107 -1 -4127 4107 -1 -4507 4107 -1 -4108 4108 6 -4109 4108 -1 -4128 4108 -1 -4508 4108 -1 -4109 4109 6 -4110 4109 -1 -4129 4109 -1 -4509 4109 -1 -4110 4110 6 -4111 4110 -1 -4130 4110 -1 -4510 4110 -1 -4111 4111 6 -4112 4111 -1 -4131 4111 -1 -4511 4111 -1 -4112 4112 6 -4113 4112 -1 -4132 4112 -1 -4512 4112 -1 -4113 4113 6 -4114 4113 -1 -4133 4113 -1 -4513 4113 -1 -4114 4114 6 -4115 4114 -1 -4134 4114 -1 -4514 4114 -1 -4115 4115 6 -4116 4115 -1 -4135 4115 -1 -4515 4115 -1 -4116 4116 6 -4117 4116 -1 -4136 4116 -1 -4516 4116 -1 -4117 4117 6 -4118 4117 -1 -4137 4117 -1 -4517 4117 -1 -4118 4118 6 -4119 4118 -1 -4138 4118 -1 -4518 4118 -1 -4119 4119 6 -4120 4119 -1 -4139 4119 -1 -4519 4119 -1 -4120 4120 6 -4140 4120 -1 -4520 4120 -1 -4121 4121 6 -4122 4121 -1 -4141 4121 -1 -4521 4121 -1 -4122 4122 6 -4123 4122 -1 -4142 4122 -1 -4522 4122 -1 -4123 4123 6 -4124 4123 -1 -4143 4123 -1 -4523 4123 -1 -4124 4124 6 -4125 4124 -1 -4144 4124 -1 -4524 4124 -1 -4125 4125 6 -4126 4125 -1 -4145 4125 -1 -4525 4125 -1 -4126 4126 6 -4127 4126 -1 -4146 4126 -1 -4526 4126 -1 -4127 4127 6 -4128 4127 -1 -4147 4127 -1 -4527 4127 -1 -4128 4128 6 -4129 4128 -1 -4148 4128 -1 -4528 4128 -1 -4129 4129 6 -4130 4129 -1 -4149 4129 -1 -4529 4129 -1 -4130 4130 6 -4131 4130 -1 -4150 4130 -1 -4530 4130 -1 -4131 4131 6 -4132 4131 -1 -4151 4131 -1 -4531 4131 -1 -4132 4132 6 -4133 4132 -1 -4152 4132 -1 -4532 4132 -1 -4133 4133 6 -4134 4133 -1 -4153 4133 -1 -4533 4133 -1 -4134 4134 6 -4135 4134 -1 -4154 4134 -1 -4534 4134 -1 -4135 4135 6 -4136 4135 -1 -4155 4135 -1 -4535 4135 -1 -4136 4136 6 -4137 4136 -1 -4156 4136 -1 -4536 4136 -1 -4137 4137 6 -4138 4137 -1 -4157 4137 -1 -4537 4137 -1 -4138 4138 6 -4139 4138 -1 -4158 4138 -1 -4538 4138 -1 -4139 4139 6 -4140 4139 -1 -4159 4139 -1 -4539 4139 -1 -4140 4140 6 -4160 4140 -1 -4540 4140 -1 -4141 4141 6 -4142 4141 -1 -4161 4141 -1 -4541 4141 -1 -4142 4142 6 -4143 4142 -1 -4162 4142 -1 -4542 4142 -1 -4143 4143 6 -4144 4143 -1 -4163 4143 -1 -4543 4143 -1 -4144 4144 6 -4145 4144 -1 -4164 4144 -1 -4544 4144 -1 -4145 4145 6 -4146 4145 -1 -4165 4145 -1 -4545 4145 -1 -4146 4146 6 -4147 4146 -1 -4166 4146 -1 -4546 4146 -1 -4147 4147 6 -4148 4147 -1 -4167 4147 -1 -4547 4147 -1 -4148 4148 6 -4149 4148 -1 -4168 4148 -1 -4548 4148 -1 -4149 4149 6 -4150 4149 -1 -4169 4149 -1 -4549 4149 -1 -4150 4150 6 -4151 4150 -1 -4170 4150 -1 -4550 4150 -1 -4151 4151 6 -4152 4151 -1 -4171 4151 -1 -4551 4151 -1 -4152 4152 6 -4153 4152 -1 -4172 4152 -1 -4552 4152 -1 -4153 4153 6 -4154 4153 -1 -4173 4153 -1 -4553 4153 -1 -4154 4154 6 -4155 4154 -1 -4174 4154 -1 -4554 4154 -1 -4155 4155 6 -4156 4155 -1 -4175 4155 -1 -4555 4155 -1 -4156 4156 6 -4157 4156 -1 -4176 4156 -1 -4556 4156 -1 -4157 4157 6 -4158 4157 -1 -4177 4157 -1 -4557 4157 -1 -4158 4158 6 -4159 4158 -1 -4178 4158 -1 -4558 4158 -1 -4159 4159 6 -4160 4159 -1 -4179 4159 -1 -4559 4159 -1 -4160 4160 6 -4180 4160 -1 -4560 4160 -1 -4161 4161 6 -4162 4161 -1 -4181 4161 -1 -4561 4161 -1 -4162 4162 6 -4163 4162 -1 -4182 4162 -1 -4562 4162 -1 -4163 4163 6 -4164 4163 -1 -4183 4163 -1 -4563 4163 -1 -4164 4164 6 -4165 4164 -1 -4184 4164 -1 -4564 4164 -1 -4165 4165 6 -4166 4165 -1 -4185 4165 -1 -4565 4165 -1 -4166 4166 6 -4167 4166 -1 -4186 4166 -1 -4566 4166 -1 -4167 4167 6 -4168 4167 -1 -4187 4167 -1 -4567 4167 -1 -4168 4168 6 -4169 4168 -1 -4188 4168 -1 -4568 4168 -1 -4169 4169 6 -4170 4169 -1 -4189 4169 -1 -4569 4169 -1 -4170 4170 6 -4171 4170 -1 -4190 4170 -1 -4570 4170 -1 -4171 4171 6 -4172 4171 -1 -4191 4171 -1 -4571 4171 -1 -4172 4172 6 -4173 4172 -1 -4192 4172 -1 -4572 4172 -1 -4173 4173 6 -4174 4173 -1 -4193 4173 -1 -4573 4173 -1 -4174 4174 6 -4175 4174 -1 -4194 4174 -1 -4574 4174 -1 -4175 4175 6 -4176 4175 -1 -4195 4175 -1 -4575 4175 -1 -4176 4176 6 -4177 4176 -1 -4196 4176 -1 -4576 4176 -1 -4177 4177 6 -4178 4177 -1 -4197 4177 -1 -4577 4177 -1 -4178 4178 6 -4179 4178 -1 -4198 4178 -1 -4578 4178 -1 -4179 4179 6 -4180 4179 -1 -4199 4179 -1 -4579 4179 -1 -4180 4180 6 -4200 4180 -1 -4580 4180 -1 -4181 4181 6 -4182 4181 -1 -4201 4181 -1 -4581 4181 -1 -4182 4182 6 -4183 4182 -1 -4202 4182 -1 -4582 4182 -1 -4183 4183 6 -4184 4183 -1 -4203 4183 -1 -4583 4183 -1 -4184 4184 6 -4185 4184 -1 -4204 4184 -1 -4584 4184 -1 -4185 4185 6 -4186 4185 -1 -4205 4185 -1 -4585 4185 -1 -4186 4186 6 -4187 4186 -1 -4206 4186 -1 -4586 4186 -1 -4187 4187 6 -4188 4187 -1 -4207 4187 -1 -4587 4187 -1 -4188 4188 6 -4189 4188 -1 -4208 4188 -1 -4588 4188 -1 -4189 4189 6 -4190 4189 -1 -4209 4189 -1 -4589 4189 -1 -4190 4190 6 -4191 4190 -1 -4210 4190 -1 -4590 4190 -1 -4191 4191 6 -4192 4191 -1 -4211 4191 -1 -4591 4191 -1 -4192 4192 6 -4193 4192 -1 -4212 4192 -1 -4592 4192 -1 -4193 4193 6 -4194 4193 -1 -4213 4193 -1 -4593 4193 -1 -4194 4194 6 -4195 4194 -1 -4214 4194 -1 -4594 4194 -1 -4195 4195 6 -4196 4195 -1 -4215 4195 -1 -4595 4195 -1 -4196 4196 6 -4197 4196 -1 -4216 4196 -1 -4596 4196 -1 -4197 4197 6 -4198 4197 -1 -4217 4197 -1 -4597 4197 -1 -4198 4198 6 -4199 4198 -1 -4218 4198 -1 -4598 4198 -1 -4199 4199 6 -4200 4199 -1 -4219 4199 -1 -4599 4199 -1 -4200 4200 6 -4220 4200 -1 -4600 4200 -1 -4201 4201 6 -4202 4201 -1 -4221 4201 -1 -4601 4201 -1 -4202 4202 6 -4203 4202 -1 -4222 4202 -1 -4602 4202 -1 -4203 4203 6 -4204 4203 -1 -4223 4203 -1 -4603 4203 -1 -4204 4204 6 -4205 4204 -1 -4224 4204 -1 -4604 4204 -1 -4205 4205 6 -4206 4205 -1 -4225 4205 -1 -4605 4205 -1 -4206 4206 6 -4207 4206 -1 -4226 4206 -1 -4606 4206 -1 -4207 4207 6 -4208 4207 -1 -4227 4207 -1 -4607 4207 -1 -4208 4208 6 -4209 4208 -1 -4228 4208 -1 -4608 4208 -1 -4209 4209 6 -4210 4209 -1 -4229 4209 -1 -4609 4209 -1 -4210 4210 6 -4211 4210 -1 -4230 4210 -1 -4610 4210 -1 -4211 4211 6 -4212 4211 -1 -4231 4211 -1 -4611 4211 -1 -4212 4212 6 -4213 4212 -1 -4232 4212 -1 -4612 4212 -1 -4213 4213 6 -4214 4213 -1 -4233 4213 -1 -4613 4213 -1 -4214 4214 6 -4215 4214 -1 -4234 4214 -1 -4614 4214 -1 -4215 4215 6 -4216 4215 -1 -4235 4215 -1 -4615 4215 -1 -4216 4216 6 -4217 4216 -1 -4236 4216 -1 -4616 4216 -1 -4217 4217 6 -4218 4217 -1 -4237 4217 -1 -4617 4217 -1 -4218 4218 6 -4219 4218 -1 -4238 4218 -1 -4618 4218 -1 -4219 4219 6 -4220 4219 -1 -4239 4219 -1 -4619 4219 -1 -4220 4220 6 -4240 4220 -1 -4620 4220 -1 -4221 4221 6 -4222 4221 -1 -4241 4221 -1 -4621 4221 -1 -4222 4222 6 -4223 4222 -1 -4242 4222 -1 -4622 4222 -1 -4223 4223 6 -4224 4223 -1 -4243 4223 -1 -4623 4223 -1 -4224 4224 6 -4225 4224 -1 -4244 4224 -1 -4624 4224 -1 -4225 4225 6 -4226 4225 -1 -4245 4225 -1 -4625 4225 -1 -4226 4226 6 -4227 4226 -1 -4246 4226 -1 -4626 4226 -1 -4227 4227 6 -4228 4227 -1 -4247 4227 -1 -4627 4227 -1 -4228 4228 6 -4229 4228 -1 -4248 4228 -1 -4628 4228 -1 -4229 4229 6 -4230 4229 -1 -4249 4229 -1 -4629 4229 -1 -4230 4230 6 -4231 4230 -1 -4250 4230 -1 -4630 4230 -1 -4231 4231 6 -4232 4231 -1 -4251 4231 -1 -4631 4231 -1 -4232 4232 6 -4233 4232 -1 -4252 4232 -1 -4632 4232 -1 -4233 4233 6 -4234 4233 -1 -4253 4233 -1 -4633 4233 -1 -4234 4234 6 -4235 4234 -1 -4254 4234 -1 -4634 4234 -1 -4235 4235 6 -4236 4235 -1 -4255 4235 -1 -4635 4235 -1 -4236 4236 6 -4237 4236 -1 -4256 4236 -1 -4636 4236 -1 -4237 4237 6 -4238 4237 -1 -4257 4237 -1 -4637 4237 -1 -4238 4238 6 -4239 4238 -1 -4258 4238 -1 -4638 4238 -1 -4239 4239 6 -4240 4239 -1 -4259 4239 -1 -4639 4239 -1 -4240 4240 6 -4260 4240 -1 -4640 4240 -1 -4241 4241 6 -4242 4241 -1 -4261 4241 -1 -4641 4241 -1 -4242 4242 6 -4243 4242 -1 -4262 4242 -1 -4642 4242 -1 -4243 4243 6 -4244 4243 -1 -4263 4243 -1 -4643 4243 -1 -4244 4244 6 -4245 4244 -1 -4264 4244 -1 -4644 4244 -1 -4245 4245 6 -4246 4245 -1 -4265 4245 -1 -4645 4245 -1 -4246 4246 6 -4247 4246 -1 -4266 4246 -1 -4646 4246 -1 -4247 4247 6 -4248 4247 -1 -4267 4247 -1 -4647 4247 -1 -4248 4248 6 -4249 4248 -1 -4268 4248 -1 -4648 4248 -1 -4249 4249 6 -4250 4249 -1 -4269 4249 -1 -4649 4249 -1 -4250 4250 6 -4251 4250 -1 -4270 4250 -1 -4650 4250 -1 -4251 4251 6 -4252 4251 -1 -4271 4251 -1 -4651 4251 -1 -4252 4252 6 -4253 4252 -1 -4272 4252 -1 -4652 4252 -1 -4253 4253 6 -4254 4253 -1 -4273 4253 -1 -4653 4253 -1 -4254 4254 6 -4255 4254 -1 -4274 4254 -1 -4654 4254 -1 -4255 4255 6 -4256 4255 -1 -4275 4255 -1 -4655 4255 -1 -4256 4256 6 -4257 4256 -1 -4276 4256 -1 -4656 4256 -1 -4257 4257 6 -4258 4257 -1 -4277 4257 -1 -4657 4257 -1 -4258 4258 6 -4259 4258 -1 -4278 4258 -1 -4658 4258 -1 -4259 4259 6 -4260 4259 -1 -4279 4259 -1 -4659 4259 -1 -4260 4260 6 -4280 4260 -1 -4660 4260 -1 -4261 4261 6 -4262 4261 -1 -4281 4261 -1 -4661 4261 -1 -4262 4262 6 -4263 4262 -1 -4282 4262 -1 -4662 4262 -1 -4263 4263 6 -4264 4263 -1 -4283 4263 -1 -4663 4263 -1 -4264 4264 6 -4265 4264 -1 -4284 4264 -1 -4664 4264 -1 -4265 4265 6 -4266 4265 -1 -4285 4265 -1 -4665 4265 -1 -4266 4266 6 -4267 4266 -1 -4286 4266 -1 -4666 4266 -1 -4267 4267 6 -4268 4267 -1 -4287 4267 -1 -4667 4267 -1 -4268 4268 6 -4269 4268 -1 -4288 4268 -1 -4668 4268 -1 -4269 4269 6 -4270 4269 -1 -4289 4269 -1 -4669 4269 -1 -4270 4270 6 -4271 4270 -1 -4290 4270 -1 -4670 4270 -1 -4271 4271 6 -4272 4271 -1 -4291 4271 -1 -4671 4271 -1 -4272 4272 6 -4273 4272 -1 -4292 4272 -1 -4672 4272 -1 -4273 4273 6 -4274 4273 -1 -4293 4273 -1 -4673 4273 -1 -4274 4274 6 -4275 4274 -1 -4294 4274 -1 -4674 4274 -1 -4275 4275 6 -4276 4275 -1 -4295 4275 -1 -4675 4275 -1 -4276 4276 6 -4277 4276 -1 -4296 4276 -1 -4676 4276 -1 -4277 4277 6 -4278 4277 -1 -4297 4277 -1 -4677 4277 -1 -4278 4278 6 -4279 4278 -1 -4298 4278 -1 -4678 4278 -1 -4279 4279 6 -4280 4279 -1 -4299 4279 -1 -4679 4279 -1 -4280 4280 6 -4300 4280 -1 -4680 4280 -1 -4281 4281 6 -4282 4281 -1 -4301 4281 -1 -4681 4281 -1 -4282 4282 6 -4283 4282 -1 -4302 4282 -1 -4682 4282 -1 -4283 4283 6 -4284 4283 -1 -4303 4283 -1 -4683 4283 -1 -4284 4284 6 -4285 4284 -1 -4304 4284 -1 -4684 4284 -1 -4285 4285 6 -4286 4285 -1 -4305 4285 -1 -4685 4285 -1 -4286 4286 6 -4287 4286 -1 -4306 4286 -1 -4686 4286 -1 -4287 4287 6 -4288 4287 -1 -4307 4287 -1 -4687 4287 -1 -4288 4288 6 -4289 4288 -1 -4308 4288 -1 -4688 4288 -1 -4289 4289 6 -4290 4289 -1 -4309 4289 -1 -4689 4289 -1 -4290 4290 6 -4291 4290 -1 -4310 4290 -1 -4690 4290 -1 -4291 4291 6 -4292 4291 -1 -4311 4291 -1 -4691 4291 -1 -4292 4292 6 -4293 4292 -1 -4312 4292 -1 -4692 4292 -1 -4293 4293 6 -4294 4293 -1 -4313 4293 -1 -4693 4293 -1 -4294 4294 6 -4295 4294 -1 -4314 4294 -1 -4694 4294 -1 -4295 4295 6 -4296 4295 -1 -4315 4295 -1 -4695 4295 -1 -4296 4296 6 -4297 4296 -1 -4316 4296 -1 -4696 4296 -1 -4297 4297 6 -4298 4297 -1 -4317 4297 -1 -4697 4297 -1 -4298 4298 6 -4299 4298 -1 -4318 4298 -1 -4698 4298 -1 -4299 4299 6 -4300 4299 -1 -4319 4299 -1 -4699 4299 -1 -4300 4300 6 -4320 4300 -1 -4700 4300 -1 -4301 4301 6 -4302 4301 -1 -4321 4301 -1 -4701 4301 -1 -4302 4302 6 -4303 4302 -1 -4322 4302 -1 -4702 4302 -1 -4303 4303 6 -4304 4303 -1 -4323 4303 -1 -4703 4303 -1 -4304 4304 6 -4305 4304 -1 -4324 4304 -1 -4704 4304 -1 -4305 4305 6 -4306 4305 -1 -4325 4305 -1 -4705 4305 -1 -4306 4306 6 -4307 4306 -1 -4326 4306 -1 -4706 4306 -1 -4307 4307 6 -4308 4307 -1 -4327 4307 -1 -4707 4307 -1 -4308 4308 6 -4309 4308 -1 -4328 4308 -1 -4708 4308 -1 -4309 4309 6 -4310 4309 -1 -4329 4309 -1 -4709 4309 -1 -4310 4310 6 -4311 4310 -1 -4330 4310 -1 -4710 4310 -1 -4311 4311 6 -4312 4311 -1 -4331 4311 -1 -4711 4311 -1 -4312 4312 6 -4313 4312 -1 -4332 4312 -1 -4712 4312 -1 -4313 4313 6 -4314 4313 -1 -4333 4313 -1 -4713 4313 -1 -4314 4314 6 -4315 4314 -1 -4334 4314 -1 -4714 4314 -1 -4315 4315 6 -4316 4315 -1 -4335 4315 -1 -4715 4315 -1 -4316 4316 6 -4317 4316 -1 -4336 4316 -1 -4716 4316 -1 -4317 4317 6 -4318 4317 -1 -4337 4317 -1 -4717 4317 -1 -4318 4318 6 -4319 4318 -1 -4338 4318 -1 -4718 4318 -1 -4319 4319 6 -4320 4319 -1 -4339 4319 -1 -4719 4319 -1 -4320 4320 6 -4340 4320 -1 -4720 4320 -1 -4321 4321 6 -4322 4321 -1 -4341 4321 -1 -4721 4321 -1 -4322 4322 6 -4323 4322 -1 -4342 4322 -1 -4722 4322 -1 -4323 4323 6 -4324 4323 -1 -4343 4323 -1 -4723 4323 -1 -4324 4324 6 -4325 4324 -1 -4344 4324 -1 -4724 4324 -1 -4325 4325 6 -4326 4325 -1 -4345 4325 -1 -4725 4325 -1 -4326 4326 6 -4327 4326 -1 -4346 4326 -1 -4726 4326 -1 -4327 4327 6 -4328 4327 -1 -4347 4327 -1 -4727 4327 -1 -4328 4328 6 -4329 4328 -1 -4348 4328 -1 -4728 4328 -1 -4329 4329 6 -4330 4329 -1 -4349 4329 -1 -4729 4329 -1 -4330 4330 6 -4331 4330 -1 -4350 4330 -1 -4730 4330 -1 -4331 4331 6 -4332 4331 -1 -4351 4331 -1 -4731 4331 -1 -4332 4332 6 -4333 4332 -1 -4352 4332 -1 -4732 4332 -1 -4333 4333 6 -4334 4333 -1 -4353 4333 -1 -4733 4333 -1 -4334 4334 6 -4335 4334 -1 -4354 4334 -1 -4734 4334 -1 -4335 4335 6 -4336 4335 -1 -4355 4335 -1 -4735 4335 -1 -4336 4336 6 -4337 4336 -1 -4356 4336 -1 -4736 4336 -1 -4337 4337 6 -4338 4337 -1 -4357 4337 -1 -4737 4337 -1 -4338 4338 6 -4339 4338 -1 -4358 4338 -1 -4738 4338 -1 -4339 4339 6 -4340 4339 -1 -4359 4339 -1 -4739 4339 -1 -4340 4340 6 -4360 4340 -1 -4740 4340 -1 -4341 4341 6 -4342 4341 -1 -4361 4341 -1 -4741 4341 -1 -4342 4342 6 -4343 4342 -1 -4362 4342 -1 -4742 4342 -1 -4343 4343 6 -4344 4343 -1 -4363 4343 -1 -4743 4343 -1 -4344 4344 6 -4345 4344 -1 -4364 4344 -1 -4744 4344 -1 -4345 4345 6 -4346 4345 -1 -4365 4345 -1 -4745 4345 -1 -4346 4346 6 -4347 4346 -1 -4366 4346 -1 -4746 4346 -1 -4347 4347 6 -4348 4347 -1 -4367 4347 -1 -4747 4347 -1 -4348 4348 6 -4349 4348 -1 -4368 4348 -1 -4748 4348 -1 -4349 4349 6 -4350 4349 -1 -4369 4349 -1 -4749 4349 -1 -4350 4350 6 -4351 4350 -1 -4370 4350 -1 -4750 4350 -1 -4351 4351 6 -4352 4351 -1 -4371 4351 -1 -4751 4351 -1 -4352 4352 6 -4353 4352 -1 -4372 4352 -1 -4752 4352 -1 -4353 4353 6 -4354 4353 -1 -4373 4353 -1 -4753 4353 -1 -4354 4354 6 -4355 4354 -1 -4374 4354 -1 -4754 4354 -1 -4355 4355 6 -4356 4355 -1 -4375 4355 -1 -4755 4355 -1 -4356 4356 6 -4357 4356 -1 -4376 4356 -1 -4756 4356 -1 -4357 4357 6 -4358 4357 -1 -4377 4357 -1 -4757 4357 -1 -4358 4358 6 -4359 4358 -1 -4378 4358 -1 -4758 4358 -1 -4359 4359 6 -4360 4359 -1 -4379 4359 -1 -4759 4359 -1 -4360 4360 6 -4380 4360 -1 -4760 4360 -1 -4361 4361 6 -4362 4361 -1 -4381 4361 -1 -4761 4361 -1 -4362 4362 6 -4363 4362 -1 -4382 4362 -1 -4762 4362 -1 -4363 4363 6 -4364 4363 -1 -4383 4363 -1 -4763 4363 -1 -4364 4364 6 -4365 4364 -1 -4384 4364 -1 -4764 4364 -1 -4365 4365 6 -4366 4365 -1 -4385 4365 -1 -4765 4365 -1 -4366 4366 6 -4367 4366 -1 -4386 4366 -1 -4766 4366 -1 -4367 4367 6 -4368 4367 -1 -4387 4367 -1 -4767 4367 -1 -4368 4368 6 -4369 4368 -1 -4388 4368 -1 -4768 4368 -1 -4369 4369 6 -4370 4369 -1 -4389 4369 -1 -4769 4369 -1 -4370 4370 6 -4371 4370 -1 -4390 4370 -1 -4770 4370 -1 -4371 4371 6 -4372 4371 -1 -4391 4371 -1 -4771 4371 -1 -4372 4372 6 -4373 4372 -1 -4392 4372 -1 -4772 4372 -1 -4373 4373 6 -4374 4373 -1 -4393 4373 -1 -4773 4373 -1 -4374 4374 6 -4375 4374 -1 -4394 4374 -1 -4774 4374 -1 -4375 4375 6 -4376 4375 -1 -4395 4375 -1 -4775 4375 -1 -4376 4376 6 -4377 4376 -1 -4396 4376 -1 -4776 4376 -1 -4377 4377 6 -4378 4377 -1 -4397 4377 -1 -4777 4377 -1 -4378 4378 6 -4379 4378 -1 -4398 4378 -1 -4778 4378 -1 -4379 4379 6 -4380 4379 -1 -4399 4379 -1 -4779 4379 -1 -4380 4380 6 -4400 4380 -1 -4780 4380 -1 -4381 4381 6 -4382 4381 -1 -4781 4381 -1 -4382 4382 6 -4383 4382 -1 -4782 4382 -1 -4383 4383 6 -4384 4383 -1 -4783 4383 -1 -4384 4384 6 -4385 4384 -1 -4784 4384 -1 -4385 4385 6 -4386 4385 -1 -4785 4385 -1 -4386 4386 6 -4387 4386 -1 -4786 4386 -1 -4387 4387 6 -4388 4387 -1 -4787 4387 -1 -4388 4388 6 -4389 4388 -1 -4788 4388 -1 -4389 4389 6 -4390 4389 -1 -4789 4389 -1 -4390 4390 6 -4391 4390 -1 -4790 4390 -1 -4391 4391 6 -4392 4391 -1 -4791 4391 -1 -4392 4392 6 -4393 4392 -1 -4792 4392 -1 -4393 4393 6 -4394 4393 -1 -4793 4393 -1 -4394 4394 6 -4395 4394 -1 -4794 4394 -1 -4395 4395 6 -4396 4395 -1 -4795 4395 -1 -4396 4396 6 -4397 4396 -1 -4796 4396 -1 -4397 4397 6 -4398 4397 -1 -4797 4397 -1 -4398 4398 6 -4399 4398 -1 -4798 4398 -1 -4399 4399 6 -4400 4399 -1 -4799 4399 -1 -4400 4400 6 -4800 4400 -1 -4401 4401 6 -4402 4401 -1 -4421 4401 -1 -4801 4401 -1 -4402 4402 6 -4403 4402 -1 -4422 4402 -1 -4802 4402 -1 -4403 4403 6 -4404 4403 -1 -4423 4403 -1 -4803 4403 -1 -4404 4404 6 -4405 4404 -1 -4424 4404 -1 -4804 4404 -1 -4405 4405 6 -4406 4405 -1 -4425 4405 -1 -4805 4405 -1 -4406 4406 6 -4407 4406 -1 -4426 4406 -1 -4806 4406 -1 -4407 4407 6 -4408 4407 -1 -4427 4407 -1 -4807 4407 -1 -4408 4408 6 -4409 4408 -1 -4428 4408 -1 -4808 4408 -1 -4409 4409 6 -4410 4409 -1 -4429 4409 -1 -4809 4409 -1 -4410 4410 6 -4411 4410 -1 -4430 4410 -1 -4810 4410 -1 -4411 4411 6 -4412 4411 -1 -4431 4411 -1 -4811 4411 -1 -4412 4412 6 -4413 4412 -1 -4432 4412 -1 -4812 4412 -1 -4413 4413 6 -4414 4413 -1 -4433 4413 -1 -4813 4413 -1 -4414 4414 6 -4415 4414 -1 -4434 4414 -1 -4814 4414 -1 -4415 4415 6 -4416 4415 -1 -4435 4415 -1 -4815 4415 -1 -4416 4416 6 -4417 4416 -1 -4436 4416 -1 -4816 4416 -1 -4417 4417 6 -4418 4417 -1 -4437 4417 -1 -4817 4417 -1 -4418 4418 6 -4419 4418 -1 -4438 4418 -1 -4818 4418 -1 -4419 4419 6 -4420 4419 -1 -4439 4419 -1 -4819 4419 -1 -4420 4420 6 -4440 4420 -1 -4820 4420 -1 -4421 4421 6 -4422 4421 -1 -4441 4421 -1 -4821 4421 -1 -4422 4422 6 -4423 4422 -1 -4442 4422 -1 -4822 4422 -1 -4423 4423 6 -4424 4423 -1 -4443 4423 -1 -4823 4423 -1 -4424 4424 6 -4425 4424 -1 -4444 4424 -1 -4824 4424 -1 -4425 4425 6 -4426 4425 -1 -4445 4425 -1 -4825 4425 -1 -4426 4426 6 -4427 4426 -1 -4446 4426 -1 -4826 4426 -1 -4427 4427 6 -4428 4427 -1 -4447 4427 -1 -4827 4427 -1 -4428 4428 6 -4429 4428 -1 -4448 4428 -1 -4828 4428 -1 -4429 4429 6 -4430 4429 -1 -4449 4429 -1 -4829 4429 -1 -4430 4430 6 -4431 4430 -1 -4450 4430 -1 -4830 4430 -1 -4431 4431 6 -4432 4431 -1 -4451 4431 -1 -4831 4431 -1 -4432 4432 6 -4433 4432 -1 -4452 4432 -1 -4832 4432 -1 -4433 4433 6 -4434 4433 -1 -4453 4433 -1 -4833 4433 -1 -4434 4434 6 -4435 4434 -1 -4454 4434 -1 -4834 4434 -1 -4435 4435 6 -4436 4435 -1 -4455 4435 -1 -4835 4435 -1 -4436 4436 6 -4437 4436 -1 -4456 4436 -1 -4836 4436 -1 -4437 4437 6 -4438 4437 -1 -4457 4437 -1 -4837 4437 -1 -4438 4438 6 -4439 4438 -1 -4458 4438 -1 -4838 4438 -1 -4439 4439 6 -4440 4439 -1 -4459 4439 -1 -4839 4439 -1 -4440 4440 6 -4460 4440 -1 -4840 4440 -1 -4441 4441 6 -4442 4441 -1 -4461 4441 -1 -4841 4441 -1 -4442 4442 6 -4443 4442 -1 -4462 4442 -1 -4842 4442 -1 -4443 4443 6 -4444 4443 -1 -4463 4443 -1 -4843 4443 -1 -4444 4444 6 -4445 4444 -1 -4464 4444 -1 -4844 4444 -1 -4445 4445 6 -4446 4445 -1 -4465 4445 -1 -4845 4445 -1 -4446 4446 6 -4447 4446 -1 -4466 4446 -1 -4846 4446 -1 -4447 4447 6 -4448 4447 -1 -4467 4447 -1 -4847 4447 -1 -4448 4448 6 -4449 4448 -1 -4468 4448 -1 -4848 4448 -1 -4449 4449 6 -4450 4449 -1 -4469 4449 -1 -4849 4449 -1 -4450 4450 6 -4451 4450 -1 -4470 4450 -1 -4850 4450 -1 -4451 4451 6 -4452 4451 -1 -4471 4451 -1 -4851 4451 -1 -4452 4452 6 -4453 4452 -1 -4472 4452 -1 -4852 4452 -1 -4453 4453 6 -4454 4453 -1 -4473 4453 -1 -4853 4453 -1 -4454 4454 6 -4455 4454 -1 -4474 4454 -1 -4854 4454 -1 -4455 4455 6 -4456 4455 -1 -4475 4455 -1 -4855 4455 -1 -4456 4456 6 -4457 4456 -1 -4476 4456 -1 -4856 4456 -1 -4457 4457 6 -4458 4457 -1 -4477 4457 -1 -4857 4457 -1 -4458 4458 6 -4459 4458 -1 -4478 4458 -1 -4858 4458 -1 -4459 4459 6 -4460 4459 -1 -4479 4459 -1 -4859 4459 -1 -4460 4460 6 -4480 4460 -1 -4860 4460 -1 -4461 4461 6 -4462 4461 -1 -4481 4461 -1 -4861 4461 -1 -4462 4462 6 -4463 4462 -1 -4482 4462 -1 -4862 4462 -1 -4463 4463 6 -4464 4463 -1 -4483 4463 -1 -4863 4463 -1 -4464 4464 6 -4465 4464 -1 -4484 4464 -1 -4864 4464 -1 -4465 4465 6 -4466 4465 -1 -4485 4465 -1 -4865 4465 -1 -4466 4466 6 -4467 4466 -1 -4486 4466 -1 -4866 4466 -1 -4467 4467 6 -4468 4467 -1 -4487 4467 -1 -4867 4467 -1 -4468 4468 6 -4469 4468 -1 -4488 4468 -1 -4868 4468 -1 -4469 4469 6 -4470 4469 -1 -4489 4469 -1 -4869 4469 -1 -4470 4470 6 -4471 4470 -1 -4490 4470 -1 -4870 4470 -1 -4471 4471 6 -4472 4471 -1 -4491 4471 -1 -4871 4471 -1 -4472 4472 6 -4473 4472 -1 -4492 4472 -1 -4872 4472 -1 -4473 4473 6 -4474 4473 -1 -4493 4473 -1 -4873 4473 -1 -4474 4474 6 -4475 4474 -1 -4494 4474 -1 -4874 4474 -1 -4475 4475 6 -4476 4475 -1 -4495 4475 -1 -4875 4475 -1 -4476 4476 6 -4477 4476 -1 -4496 4476 -1 -4876 4476 -1 -4477 4477 6 -4478 4477 -1 -4497 4477 -1 -4877 4477 -1 -4478 4478 6 -4479 4478 -1 -4498 4478 -1 -4878 4478 -1 -4479 4479 6 -4480 4479 -1 -4499 4479 -1 -4879 4479 -1 -4480 4480 6 -4500 4480 -1 -4880 4480 -1 -4481 4481 6 -4482 4481 -1 -4501 4481 -1 -4881 4481 -1 -4482 4482 6 -4483 4482 -1 -4502 4482 -1 -4882 4482 -1 -4483 4483 6 -4484 4483 -1 -4503 4483 -1 -4883 4483 -1 -4484 4484 6 -4485 4484 -1 -4504 4484 -1 -4884 4484 -1 -4485 4485 6 -4486 4485 -1 -4505 4485 -1 -4885 4485 -1 -4486 4486 6 -4487 4486 -1 -4506 4486 -1 -4886 4486 -1 -4487 4487 6 -4488 4487 -1 -4507 4487 -1 -4887 4487 -1 -4488 4488 6 -4489 4488 -1 -4508 4488 -1 -4888 4488 -1 -4489 4489 6 -4490 4489 -1 -4509 4489 -1 -4889 4489 -1 -4490 4490 6 -4491 4490 -1 -4510 4490 -1 -4890 4490 -1 -4491 4491 6 -4492 4491 -1 -4511 4491 -1 -4891 4491 -1 -4492 4492 6 -4493 4492 -1 -4512 4492 -1 -4892 4492 -1 -4493 4493 6 -4494 4493 -1 -4513 4493 -1 -4893 4493 -1 -4494 4494 6 -4495 4494 -1 -4514 4494 -1 -4894 4494 -1 -4495 4495 6 -4496 4495 -1 -4515 4495 -1 -4895 4495 -1 -4496 4496 6 -4497 4496 -1 -4516 4496 -1 -4896 4496 -1 -4497 4497 6 -4498 4497 -1 -4517 4497 -1 -4897 4497 -1 -4498 4498 6 -4499 4498 -1 -4518 4498 -1 -4898 4498 -1 -4499 4499 6 -4500 4499 -1 -4519 4499 -1 -4899 4499 -1 -4500 4500 6 -4520 4500 -1 -4900 4500 -1 -4501 4501 6 -4502 4501 -1 -4521 4501 -1 -4901 4501 -1 -4502 4502 6 -4503 4502 -1 -4522 4502 -1 -4902 4502 -1 -4503 4503 6 -4504 4503 -1 -4523 4503 -1 -4903 4503 -1 -4504 4504 6 -4505 4504 -1 -4524 4504 -1 -4904 4504 -1 -4505 4505 6 -4506 4505 -1 -4525 4505 -1 -4905 4505 -1 -4506 4506 6 -4507 4506 -1 -4526 4506 -1 -4906 4506 -1 -4507 4507 6 -4508 4507 -1 -4527 4507 -1 -4907 4507 -1 -4508 4508 6 -4509 4508 -1 -4528 4508 -1 -4908 4508 -1 -4509 4509 6 -4510 4509 -1 -4529 4509 -1 -4909 4509 -1 -4510 4510 6 -4511 4510 -1 -4530 4510 -1 -4910 4510 -1 -4511 4511 6 -4512 4511 -1 -4531 4511 -1 -4911 4511 -1 -4512 4512 6 -4513 4512 -1 -4532 4512 -1 -4912 4512 -1 -4513 4513 6 -4514 4513 -1 -4533 4513 -1 -4913 4513 -1 -4514 4514 6 -4515 4514 -1 -4534 4514 -1 -4914 4514 -1 -4515 4515 6 -4516 4515 -1 -4535 4515 -1 -4915 4515 -1 -4516 4516 6 -4517 4516 -1 -4536 4516 -1 -4916 4516 -1 -4517 4517 6 -4518 4517 -1 -4537 4517 -1 -4917 4517 -1 -4518 4518 6 -4519 4518 -1 -4538 4518 -1 -4918 4518 -1 -4519 4519 6 -4520 4519 -1 -4539 4519 -1 -4919 4519 -1 -4520 4520 6 -4540 4520 -1 -4920 4520 -1 -4521 4521 6 -4522 4521 -1 -4541 4521 -1 -4921 4521 -1 -4522 4522 6 -4523 4522 -1 -4542 4522 -1 -4922 4522 -1 -4523 4523 6 -4524 4523 -1 -4543 4523 -1 -4923 4523 -1 -4524 4524 6 -4525 4524 -1 -4544 4524 -1 -4924 4524 -1 -4525 4525 6 -4526 4525 -1 -4545 4525 -1 -4925 4525 -1 -4526 4526 6 -4527 4526 -1 -4546 4526 -1 -4926 4526 -1 -4527 4527 6 -4528 4527 -1 -4547 4527 -1 -4927 4527 -1 -4528 4528 6 -4529 4528 -1 -4548 4528 -1 -4928 4528 -1 -4529 4529 6 -4530 4529 -1 -4549 4529 -1 -4929 4529 -1 -4530 4530 6 -4531 4530 -1 -4550 4530 -1 -4930 4530 -1 -4531 4531 6 -4532 4531 -1 -4551 4531 -1 -4931 4531 -1 -4532 4532 6 -4533 4532 -1 -4552 4532 -1 -4932 4532 -1 -4533 4533 6 -4534 4533 -1 -4553 4533 -1 -4933 4533 -1 -4534 4534 6 -4535 4534 -1 -4554 4534 -1 -4934 4534 -1 -4535 4535 6 -4536 4535 -1 -4555 4535 -1 -4935 4535 -1 -4536 4536 6 -4537 4536 -1 -4556 4536 -1 -4936 4536 -1 -4537 4537 6 -4538 4537 -1 -4557 4537 -1 -4937 4537 -1 -4538 4538 6 -4539 4538 -1 -4558 4538 -1 -4938 4538 -1 -4539 4539 6 -4540 4539 -1 -4559 4539 -1 -4939 4539 -1 -4540 4540 6 -4560 4540 -1 -4940 4540 -1 -4541 4541 6 -4542 4541 -1 -4561 4541 -1 -4941 4541 -1 -4542 4542 6 -4543 4542 -1 -4562 4542 -1 -4942 4542 -1 -4543 4543 6 -4544 4543 -1 -4563 4543 -1 -4943 4543 -1 -4544 4544 6 -4545 4544 -1 -4564 4544 -1 -4944 4544 -1 -4545 4545 6 -4546 4545 -1 -4565 4545 -1 -4945 4545 -1 -4546 4546 6 -4547 4546 -1 -4566 4546 -1 -4946 4546 -1 -4547 4547 6 -4548 4547 -1 -4567 4547 -1 -4947 4547 -1 -4548 4548 6 -4549 4548 -1 -4568 4548 -1 -4948 4548 -1 -4549 4549 6 -4550 4549 -1 -4569 4549 -1 -4949 4549 -1 -4550 4550 6 -4551 4550 -1 -4570 4550 -1 -4950 4550 -1 -4551 4551 6 -4552 4551 -1 -4571 4551 -1 -4951 4551 -1 -4552 4552 6 -4553 4552 -1 -4572 4552 -1 -4952 4552 -1 -4553 4553 6 -4554 4553 -1 -4573 4553 -1 -4953 4553 -1 -4554 4554 6 -4555 4554 -1 -4574 4554 -1 -4954 4554 -1 -4555 4555 6 -4556 4555 -1 -4575 4555 -1 -4955 4555 -1 -4556 4556 6 -4557 4556 -1 -4576 4556 -1 -4956 4556 -1 -4557 4557 6 -4558 4557 -1 -4577 4557 -1 -4957 4557 -1 -4558 4558 6 -4559 4558 -1 -4578 4558 -1 -4958 4558 -1 -4559 4559 6 -4560 4559 -1 -4579 4559 -1 -4959 4559 -1 -4560 4560 6 -4580 4560 -1 -4960 4560 -1 -4561 4561 6 -4562 4561 -1 -4581 4561 -1 -4961 4561 -1 -4562 4562 6 -4563 4562 -1 -4582 4562 -1 -4962 4562 -1 -4563 4563 6 -4564 4563 -1 -4583 4563 -1 -4963 4563 -1 -4564 4564 6 -4565 4564 -1 -4584 4564 -1 -4964 4564 -1 -4565 4565 6 -4566 4565 -1 -4585 4565 -1 -4965 4565 -1 -4566 4566 6 -4567 4566 -1 -4586 4566 -1 -4966 4566 -1 -4567 4567 6 -4568 4567 -1 -4587 4567 -1 -4967 4567 -1 -4568 4568 6 -4569 4568 -1 -4588 4568 -1 -4968 4568 -1 -4569 4569 6 -4570 4569 -1 -4589 4569 -1 -4969 4569 -1 -4570 4570 6 -4571 4570 -1 -4590 4570 -1 -4970 4570 -1 -4571 4571 6 -4572 4571 -1 -4591 4571 -1 -4971 4571 -1 -4572 4572 6 -4573 4572 -1 -4592 4572 -1 -4972 4572 -1 -4573 4573 6 -4574 4573 -1 -4593 4573 -1 -4973 4573 -1 -4574 4574 6 -4575 4574 -1 -4594 4574 -1 -4974 4574 -1 -4575 4575 6 -4576 4575 -1 -4595 4575 -1 -4975 4575 -1 -4576 4576 6 -4577 4576 -1 -4596 4576 -1 -4976 4576 -1 -4577 4577 6 -4578 4577 -1 -4597 4577 -1 -4977 4577 -1 -4578 4578 6 -4579 4578 -1 -4598 4578 -1 -4978 4578 -1 -4579 4579 6 -4580 4579 -1 -4599 4579 -1 -4979 4579 -1 -4580 4580 6 -4600 4580 -1 -4980 4580 -1 -4581 4581 6 -4582 4581 -1 -4601 4581 -1 -4981 4581 -1 -4582 4582 6 -4583 4582 -1 -4602 4582 -1 -4982 4582 -1 -4583 4583 6 -4584 4583 -1 -4603 4583 -1 -4983 4583 -1 -4584 4584 6 -4585 4584 -1 -4604 4584 -1 -4984 4584 -1 -4585 4585 6 -4586 4585 -1 -4605 4585 -1 -4985 4585 -1 -4586 4586 6 -4587 4586 -1 -4606 4586 -1 -4986 4586 -1 -4587 4587 6 -4588 4587 -1 -4607 4587 -1 -4987 4587 -1 -4588 4588 6 -4589 4588 -1 -4608 4588 -1 -4988 4588 -1 -4589 4589 6 -4590 4589 -1 -4609 4589 -1 -4989 4589 -1 -4590 4590 6 -4591 4590 -1 -4610 4590 -1 -4990 4590 -1 -4591 4591 6 -4592 4591 -1 -4611 4591 -1 -4991 4591 -1 -4592 4592 6 -4593 4592 -1 -4612 4592 -1 -4992 4592 -1 -4593 4593 6 -4594 4593 -1 -4613 4593 -1 -4993 4593 -1 -4594 4594 6 -4595 4594 -1 -4614 4594 -1 -4994 4594 -1 -4595 4595 6 -4596 4595 -1 -4615 4595 -1 -4995 4595 -1 -4596 4596 6 -4597 4596 -1 -4616 4596 -1 -4996 4596 -1 -4597 4597 6 -4598 4597 -1 -4617 4597 -1 -4997 4597 -1 -4598 4598 6 -4599 4598 -1 -4618 4598 -1 -4998 4598 -1 -4599 4599 6 -4600 4599 -1 -4619 4599 -1 -4999 4599 -1 -4600 4600 6 -4620 4600 -1 -5000 4600 -1 -4601 4601 6 -4602 4601 -1 -4621 4601 -1 -5001 4601 -1 -4602 4602 6 -4603 4602 -1 -4622 4602 -1 -5002 4602 -1 -4603 4603 6 -4604 4603 -1 -4623 4603 -1 -5003 4603 -1 -4604 4604 6 -4605 4604 -1 -4624 4604 -1 -5004 4604 -1 -4605 4605 6 -4606 4605 -1 -4625 4605 -1 -5005 4605 -1 -4606 4606 6 -4607 4606 -1 -4626 4606 -1 -5006 4606 -1 -4607 4607 6 -4608 4607 -1 -4627 4607 -1 -5007 4607 -1 -4608 4608 6 -4609 4608 -1 -4628 4608 -1 -5008 4608 -1 -4609 4609 6 -4610 4609 -1 -4629 4609 -1 -5009 4609 -1 -4610 4610 6 -4611 4610 -1 -4630 4610 -1 -5010 4610 -1 -4611 4611 6 -4612 4611 -1 -4631 4611 -1 -5011 4611 -1 -4612 4612 6 -4613 4612 -1 -4632 4612 -1 -5012 4612 -1 -4613 4613 6 -4614 4613 -1 -4633 4613 -1 -5013 4613 -1 -4614 4614 6 -4615 4614 -1 -4634 4614 -1 -5014 4614 -1 -4615 4615 6 -4616 4615 -1 -4635 4615 -1 -5015 4615 -1 -4616 4616 6 -4617 4616 -1 -4636 4616 -1 -5016 4616 -1 -4617 4617 6 -4618 4617 -1 -4637 4617 -1 -5017 4617 -1 -4618 4618 6 -4619 4618 -1 -4638 4618 -1 -5018 4618 -1 -4619 4619 6 -4620 4619 -1 -4639 4619 -1 -5019 4619 -1 -4620 4620 6 -4640 4620 -1 -5020 4620 -1 -4621 4621 6 -4622 4621 -1 -4641 4621 -1 -5021 4621 -1 -4622 4622 6 -4623 4622 -1 -4642 4622 -1 -5022 4622 -1 -4623 4623 6 -4624 4623 -1 -4643 4623 -1 -5023 4623 -1 -4624 4624 6 -4625 4624 -1 -4644 4624 -1 -5024 4624 -1 -4625 4625 6 -4626 4625 -1 -4645 4625 -1 -5025 4625 -1 -4626 4626 6 -4627 4626 -1 -4646 4626 -1 -5026 4626 -1 -4627 4627 6 -4628 4627 -1 -4647 4627 -1 -5027 4627 -1 -4628 4628 6 -4629 4628 -1 -4648 4628 -1 -5028 4628 -1 -4629 4629 6 -4630 4629 -1 -4649 4629 -1 -5029 4629 -1 -4630 4630 6 -4631 4630 -1 -4650 4630 -1 -5030 4630 -1 -4631 4631 6 -4632 4631 -1 -4651 4631 -1 -5031 4631 -1 -4632 4632 6 -4633 4632 -1 -4652 4632 -1 -5032 4632 -1 -4633 4633 6 -4634 4633 -1 -4653 4633 -1 -5033 4633 -1 -4634 4634 6 -4635 4634 -1 -4654 4634 -1 -5034 4634 -1 -4635 4635 6 -4636 4635 -1 -4655 4635 -1 -5035 4635 -1 -4636 4636 6 -4637 4636 -1 -4656 4636 -1 -5036 4636 -1 -4637 4637 6 -4638 4637 -1 -4657 4637 -1 -5037 4637 -1 -4638 4638 6 -4639 4638 -1 -4658 4638 -1 -5038 4638 -1 -4639 4639 6 -4640 4639 -1 -4659 4639 -1 -5039 4639 -1 -4640 4640 6 -4660 4640 -1 -5040 4640 -1 -4641 4641 6 -4642 4641 -1 -4661 4641 -1 -5041 4641 -1 -4642 4642 6 -4643 4642 -1 -4662 4642 -1 -5042 4642 -1 -4643 4643 6 -4644 4643 -1 -4663 4643 -1 -5043 4643 -1 -4644 4644 6 -4645 4644 -1 -4664 4644 -1 -5044 4644 -1 -4645 4645 6 -4646 4645 -1 -4665 4645 -1 -5045 4645 -1 -4646 4646 6 -4647 4646 -1 -4666 4646 -1 -5046 4646 -1 -4647 4647 6 -4648 4647 -1 -4667 4647 -1 -5047 4647 -1 -4648 4648 6 -4649 4648 -1 -4668 4648 -1 -5048 4648 -1 -4649 4649 6 -4650 4649 -1 -4669 4649 -1 -5049 4649 -1 -4650 4650 6 -4651 4650 -1 -4670 4650 -1 -5050 4650 -1 -4651 4651 6 -4652 4651 -1 -4671 4651 -1 -5051 4651 -1 -4652 4652 6 -4653 4652 -1 -4672 4652 -1 -5052 4652 -1 -4653 4653 6 -4654 4653 -1 -4673 4653 -1 -5053 4653 -1 -4654 4654 6 -4655 4654 -1 -4674 4654 -1 -5054 4654 -1 -4655 4655 6 -4656 4655 -1 -4675 4655 -1 -5055 4655 -1 -4656 4656 6 -4657 4656 -1 -4676 4656 -1 -5056 4656 -1 -4657 4657 6 -4658 4657 -1 -4677 4657 -1 -5057 4657 -1 -4658 4658 6 -4659 4658 -1 -4678 4658 -1 -5058 4658 -1 -4659 4659 6 -4660 4659 -1 -4679 4659 -1 -5059 4659 -1 -4660 4660 6 -4680 4660 -1 -5060 4660 -1 -4661 4661 6 -4662 4661 -1 -4681 4661 -1 -5061 4661 -1 -4662 4662 6 -4663 4662 -1 -4682 4662 -1 -5062 4662 -1 -4663 4663 6 -4664 4663 -1 -4683 4663 -1 -5063 4663 -1 -4664 4664 6 -4665 4664 -1 -4684 4664 -1 -5064 4664 -1 -4665 4665 6 -4666 4665 -1 -4685 4665 -1 -5065 4665 -1 -4666 4666 6 -4667 4666 -1 -4686 4666 -1 -5066 4666 -1 -4667 4667 6 -4668 4667 -1 -4687 4667 -1 -5067 4667 -1 -4668 4668 6 -4669 4668 -1 -4688 4668 -1 -5068 4668 -1 -4669 4669 6 -4670 4669 -1 -4689 4669 -1 -5069 4669 -1 -4670 4670 6 -4671 4670 -1 -4690 4670 -1 -5070 4670 -1 -4671 4671 6 -4672 4671 -1 -4691 4671 -1 -5071 4671 -1 -4672 4672 6 -4673 4672 -1 -4692 4672 -1 -5072 4672 -1 -4673 4673 6 -4674 4673 -1 -4693 4673 -1 -5073 4673 -1 -4674 4674 6 -4675 4674 -1 -4694 4674 -1 -5074 4674 -1 -4675 4675 6 -4676 4675 -1 -4695 4675 -1 -5075 4675 -1 -4676 4676 6 -4677 4676 -1 -4696 4676 -1 -5076 4676 -1 -4677 4677 6 -4678 4677 -1 -4697 4677 -1 -5077 4677 -1 -4678 4678 6 -4679 4678 -1 -4698 4678 -1 -5078 4678 -1 -4679 4679 6 -4680 4679 -1 -4699 4679 -1 -5079 4679 -1 -4680 4680 6 -4700 4680 -1 -5080 4680 -1 -4681 4681 6 -4682 4681 -1 -4701 4681 -1 -5081 4681 -1 -4682 4682 6 -4683 4682 -1 -4702 4682 -1 -5082 4682 -1 -4683 4683 6 -4684 4683 -1 -4703 4683 -1 -5083 4683 -1 -4684 4684 6 -4685 4684 -1 -4704 4684 -1 -5084 4684 -1 -4685 4685 6 -4686 4685 -1 -4705 4685 -1 -5085 4685 -1 -4686 4686 6 -4687 4686 -1 -4706 4686 -1 -5086 4686 -1 -4687 4687 6 -4688 4687 -1 -4707 4687 -1 -5087 4687 -1 -4688 4688 6 -4689 4688 -1 -4708 4688 -1 -5088 4688 -1 -4689 4689 6 -4690 4689 -1 -4709 4689 -1 -5089 4689 -1 -4690 4690 6 -4691 4690 -1 -4710 4690 -1 -5090 4690 -1 -4691 4691 6 -4692 4691 -1 -4711 4691 -1 -5091 4691 -1 -4692 4692 6 -4693 4692 -1 -4712 4692 -1 -5092 4692 -1 -4693 4693 6 -4694 4693 -1 -4713 4693 -1 -5093 4693 -1 -4694 4694 6 -4695 4694 -1 -4714 4694 -1 -5094 4694 -1 -4695 4695 6 -4696 4695 -1 -4715 4695 -1 -5095 4695 -1 -4696 4696 6 -4697 4696 -1 -4716 4696 -1 -5096 4696 -1 -4697 4697 6 -4698 4697 -1 -4717 4697 -1 -5097 4697 -1 -4698 4698 6 -4699 4698 -1 -4718 4698 -1 -5098 4698 -1 -4699 4699 6 -4700 4699 -1 -4719 4699 -1 -5099 4699 -1 -4700 4700 6 -4720 4700 -1 -5100 4700 -1 -4701 4701 6 -4702 4701 -1 -4721 4701 -1 -5101 4701 -1 -4702 4702 6 -4703 4702 -1 -4722 4702 -1 -5102 4702 -1 -4703 4703 6 -4704 4703 -1 -4723 4703 -1 -5103 4703 -1 -4704 4704 6 -4705 4704 -1 -4724 4704 -1 -5104 4704 -1 -4705 4705 6 -4706 4705 -1 -4725 4705 -1 -5105 4705 -1 -4706 4706 6 -4707 4706 -1 -4726 4706 -1 -5106 4706 -1 -4707 4707 6 -4708 4707 -1 -4727 4707 -1 -5107 4707 -1 -4708 4708 6 -4709 4708 -1 -4728 4708 -1 -5108 4708 -1 -4709 4709 6 -4710 4709 -1 -4729 4709 -1 -5109 4709 -1 -4710 4710 6 -4711 4710 -1 -4730 4710 -1 -5110 4710 -1 -4711 4711 6 -4712 4711 -1 -4731 4711 -1 -5111 4711 -1 -4712 4712 6 -4713 4712 -1 -4732 4712 -1 -5112 4712 -1 -4713 4713 6 -4714 4713 -1 -4733 4713 -1 -5113 4713 -1 -4714 4714 6 -4715 4714 -1 -4734 4714 -1 -5114 4714 -1 -4715 4715 6 -4716 4715 -1 -4735 4715 -1 -5115 4715 -1 -4716 4716 6 -4717 4716 -1 -4736 4716 -1 -5116 4716 -1 -4717 4717 6 -4718 4717 -1 -4737 4717 -1 -5117 4717 -1 -4718 4718 6 -4719 4718 -1 -4738 4718 -1 -5118 4718 -1 -4719 4719 6 -4720 4719 -1 -4739 4719 -1 -5119 4719 -1 -4720 4720 6 -4740 4720 -1 -5120 4720 -1 -4721 4721 6 -4722 4721 -1 -4741 4721 -1 -5121 4721 -1 -4722 4722 6 -4723 4722 -1 -4742 4722 -1 -5122 4722 -1 -4723 4723 6 -4724 4723 -1 -4743 4723 -1 -5123 4723 -1 -4724 4724 6 -4725 4724 -1 -4744 4724 -1 -5124 4724 -1 -4725 4725 6 -4726 4725 -1 -4745 4725 -1 -5125 4725 -1 -4726 4726 6 -4727 4726 -1 -4746 4726 -1 -5126 4726 -1 -4727 4727 6 -4728 4727 -1 -4747 4727 -1 -5127 4727 -1 -4728 4728 6 -4729 4728 -1 -4748 4728 -1 -5128 4728 -1 -4729 4729 6 -4730 4729 -1 -4749 4729 -1 -5129 4729 -1 -4730 4730 6 -4731 4730 -1 -4750 4730 -1 -5130 4730 -1 -4731 4731 6 -4732 4731 -1 -4751 4731 -1 -5131 4731 -1 -4732 4732 6 -4733 4732 -1 -4752 4732 -1 -5132 4732 -1 -4733 4733 6 -4734 4733 -1 -4753 4733 -1 -5133 4733 -1 -4734 4734 6 -4735 4734 -1 -4754 4734 -1 -5134 4734 -1 -4735 4735 6 -4736 4735 -1 -4755 4735 -1 -5135 4735 -1 -4736 4736 6 -4737 4736 -1 -4756 4736 -1 -5136 4736 -1 -4737 4737 6 -4738 4737 -1 -4757 4737 -1 -5137 4737 -1 -4738 4738 6 -4739 4738 -1 -4758 4738 -1 -5138 4738 -1 -4739 4739 6 -4740 4739 -1 -4759 4739 -1 -5139 4739 -1 -4740 4740 6 -4760 4740 -1 -5140 4740 -1 -4741 4741 6 -4742 4741 -1 -4761 4741 -1 -5141 4741 -1 -4742 4742 6 -4743 4742 -1 -4762 4742 -1 -5142 4742 -1 -4743 4743 6 -4744 4743 -1 -4763 4743 -1 -5143 4743 -1 -4744 4744 6 -4745 4744 -1 -4764 4744 -1 -5144 4744 -1 -4745 4745 6 -4746 4745 -1 -4765 4745 -1 -5145 4745 -1 -4746 4746 6 -4747 4746 -1 -4766 4746 -1 -5146 4746 -1 -4747 4747 6 -4748 4747 -1 -4767 4747 -1 -5147 4747 -1 -4748 4748 6 -4749 4748 -1 -4768 4748 -1 -5148 4748 -1 -4749 4749 6 -4750 4749 -1 -4769 4749 -1 -5149 4749 -1 -4750 4750 6 -4751 4750 -1 -4770 4750 -1 -5150 4750 -1 -4751 4751 6 -4752 4751 -1 -4771 4751 -1 -5151 4751 -1 -4752 4752 6 -4753 4752 -1 -4772 4752 -1 -5152 4752 -1 -4753 4753 6 -4754 4753 -1 -4773 4753 -1 -5153 4753 -1 -4754 4754 6 -4755 4754 -1 -4774 4754 -1 -5154 4754 -1 -4755 4755 6 -4756 4755 -1 -4775 4755 -1 -5155 4755 -1 -4756 4756 6 -4757 4756 -1 -4776 4756 -1 -5156 4756 -1 -4757 4757 6 -4758 4757 -1 -4777 4757 -1 -5157 4757 -1 -4758 4758 6 -4759 4758 -1 -4778 4758 -1 -5158 4758 -1 -4759 4759 6 -4760 4759 -1 -4779 4759 -1 -5159 4759 -1 -4760 4760 6 -4780 4760 -1 -5160 4760 -1 -4761 4761 6 -4762 4761 -1 -4781 4761 -1 -5161 4761 -1 -4762 4762 6 -4763 4762 -1 -4782 4762 -1 -5162 4762 -1 -4763 4763 6 -4764 4763 -1 -4783 4763 -1 -5163 4763 -1 -4764 4764 6 -4765 4764 -1 -4784 4764 -1 -5164 4764 -1 -4765 4765 6 -4766 4765 -1 -4785 4765 -1 -5165 4765 -1 -4766 4766 6 -4767 4766 -1 -4786 4766 -1 -5166 4766 -1 -4767 4767 6 -4768 4767 -1 -4787 4767 -1 -5167 4767 -1 -4768 4768 6 -4769 4768 -1 -4788 4768 -1 -5168 4768 -1 -4769 4769 6 -4770 4769 -1 -4789 4769 -1 -5169 4769 -1 -4770 4770 6 -4771 4770 -1 -4790 4770 -1 -5170 4770 -1 -4771 4771 6 -4772 4771 -1 -4791 4771 -1 -5171 4771 -1 -4772 4772 6 -4773 4772 -1 -4792 4772 -1 -5172 4772 -1 -4773 4773 6 -4774 4773 -1 -4793 4773 -1 -5173 4773 -1 -4774 4774 6 -4775 4774 -1 -4794 4774 -1 -5174 4774 -1 -4775 4775 6 -4776 4775 -1 -4795 4775 -1 -5175 4775 -1 -4776 4776 6 -4777 4776 -1 -4796 4776 -1 -5176 4776 -1 -4777 4777 6 -4778 4777 -1 -4797 4777 -1 -5177 4777 -1 -4778 4778 6 -4779 4778 -1 -4798 4778 -1 -5178 4778 -1 -4779 4779 6 -4780 4779 -1 -4799 4779 -1 -5179 4779 -1 -4780 4780 6 -4800 4780 -1 -5180 4780 -1 -4781 4781 6 -4782 4781 -1 -5181 4781 -1 -4782 4782 6 -4783 4782 -1 -5182 4782 -1 -4783 4783 6 -4784 4783 -1 -5183 4783 -1 -4784 4784 6 -4785 4784 -1 -5184 4784 -1 -4785 4785 6 -4786 4785 -1 -5185 4785 -1 -4786 4786 6 -4787 4786 -1 -5186 4786 -1 -4787 4787 6 -4788 4787 -1 -5187 4787 -1 -4788 4788 6 -4789 4788 -1 -5188 4788 -1 -4789 4789 6 -4790 4789 -1 -5189 4789 -1 -4790 4790 6 -4791 4790 -1 -5190 4790 -1 -4791 4791 6 -4792 4791 -1 -5191 4791 -1 -4792 4792 6 -4793 4792 -1 -5192 4792 -1 -4793 4793 6 -4794 4793 -1 -5193 4793 -1 -4794 4794 6 -4795 4794 -1 -5194 4794 -1 -4795 4795 6 -4796 4795 -1 -5195 4795 -1 -4796 4796 6 -4797 4796 -1 -5196 4796 -1 -4797 4797 6 -4798 4797 -1 -5197 4797 -1 -4798 4798 6 -4799 4798 -1 -5198 4798 -1 -4799 4799 6 -4800 4799 -1 -5199 4799 -1 -4800 4800 6 -5200 4800 -1 -4801 4801 6 -4802 4801 -1 -4821 4801 -1 -5201 4801 -1 -4802 4802 6 -4803 4802 -1 -4822 4802 -1 -5202 4802 -1 -4803 4803 6 -4804 4803 -1 -4823 4803 -1 -5203 4803 -1 -4804 4804 6 -4805 4804 -1 -4824 4804 -1 -5204 4804 -1 -4805 4805 6 -4806 4805 -1 -4825 4805 -1 -5205 4805 -1 -4806 4806 6 -4807 4806 -1 -4826 4806 -1 -5206 4806 -1 -4807 4807 6 -4808 4807 -1 -4827 4807 -1 -5207 4807 -1 -4808 4808 6 -4809 4808 -1 -4828 4808 -1 -5208 4808 -1 -4809 4809 6 -4810 4809 -1 -4829 4809 -1 -5209 4809 -1 -4810 4810 6 -4811 4810 -1 -4830 4810 -1 -5210 4810 -1 -4811 4811 6 -4812 4811 -1 -4831 4811 -1 -5211 4811 -1 -4812 4812 6 -4813 4812 -1 -4832 4812 -1 -5212 4812 -1 -4813 4813 6 -4814 4813 -1 -4833 4813 -1 -5213 4813 -1 -4814 4814 6 -4815 4814 -1 -4834 4814 -1 -5214 4814 -1 -4815 4815 6 -4816 4815 -1 -4835 4815 -1 -5215 4815 -1 -4816 4816 6 -4817 4816 -1 -4836 4816 -1 -5216 4816 -1 -4817 4817 6 -4818 4817 -1 -4837 4817 -1 -5217 4817 -1 -4818 4818 6 -4819 4818 -1 -4838 4818 -1 -5218 4818 -1 -4819 4819 6 -4820 4819 -1 -4839 4819 -1 -5219 4819 -1 -4820 4820 6 -4840 4820 -1 -5220 4820 -1 -4821 4821 6 -4822 4821 -1 -4841 4821 -1 -5221 4821 -1 -4822 4822 6 -4823 4822 -1 -4842 4822 -1 -5222 4822 -1 -4823 4823 6 -4824 4823 -1 -4843 4823 -1 -5223 4823 -1 -4824 4824 6 -4825 4824 -1 -4844 4824 -1 -5224 4824 -1 -4825 4825 6 -4826 4825 -1 -4845 4825 -1 -5225 4825 -1 -4826 4826 6 -4827 4826 -1 -4846 4826 -1 -5226 4826 -1 -4827 4827 6 -4828 4827 -1 -4847 4827 -1 -5227 4827 -1 -4828 4828 6 -4829 4828 -1 -4848 4828 -1 -5228 4828 -1 -4829 4829 6 -4830 4829 -1 -4849 4829 -1 -5229 4829 -1 -4830 4830 6 -4831 4830 -1 -4850 4830 -1 -5230 4830 -1 -4831 4831 6 -4832 4831 -1 -4851 4831 -1 -5231 4831 -1 -4832 4832 6 -4833 4832 -1 -4852 4832 -1 -5232 4832 -1 -4833 4833 6 -4834 4833 -1 -4853 4833 -1 -5233 4833 -1 -4834 4834 6 -4835 4834 -1 -4854 4834 -1 -5234 4834 -1 -4835 4835 6 -4836 4835 -1 -4855 4835 -1 -5235 4835 -1 -4836 4836 6 -4837 4836 -1 -4856 4836 -1 -5236 4836 -1 -4837 4837 6 -4838 4837 -1 -4857 4837 -1 -5237 4837 -1 -4838 4838 6 -4839 4838 -1 -4858 4838 -1 -5238 4838 -1 -4839 4839 6 -4840 4839 -1 -4859 4839 -1 -5239 4839 -1 -4840 4840 6 -4860 4840 -1 -5240 4840 -1 -4841 4841 6 -4842 4841 -1 -4861 4841 -1 -5241 4841 -1 -4842 4842 6 -4843 4842 -1 -4862 4842 -1 -5242 4842 -1 -4843 4843 6 -4844 4843 -1 -4863 4843 -1 -5243 4843 -1 -4844 4844 6 -4845 4844 -1 -4864 4844 -1 -5244 4844 -1 -4845 4845 6 -4846 4845 -1 -4865 4845 -1 -5245 4845 -1 -4846 4846 6 -4847 4846 -1 -4866 4846 -1 -5246 4846 -1 -4847 4847 6 -4848 4847 -1 -4867 4847 -1 -5247 4847 -1 -4848 4848 6 -4849 4848 -1 -4868 4848 -1 -5248 4848 -1 -4849 4849 6 -4850 4849 -1 -4869 4849 -1 -5249 4849 -1 -4850 4850 6 -4851 4850 -1 -4870 4850 -1 -5250 4850 -1 -4851 4851 6 -4852 4851 -1 -4871 4851 -1 -5251 4851 -1 -4852 4852 6 -4853 4852 -1 -4872 4852 -1 -5252 4852 -1 -4853 4853 6 -4854 4853 -1 -4873 4853 -1 -5253 4853 -1 -4854 4854 6 -4855 4854 -1 -4874 4854 -1 -5254 4854 -1 -4855 4855 6 -4856 4855 -1 -4875 4855 -1 -5255 4855 -1 -4856 4856 6 -4857 4856 -1 -4876 4856 -1 -5256 4856 -1 -4857 4857 6 -4858 4857 -1 -4877 4857 -1 -5257 4857 -1 -4858 4858 6 -4859 4858 -1 -4878 4858 -1 -5258 4858 -1 -4859 4859 6 -4860 4859 -1 -4879 4859 -1 -5259 4859 -1 -4860 4860 6 -4880 4860 -1 -5260 4860 -1 -4861 4861 6 -4862 4861 -1 -4881 4861 -1 -5261 4861 -1 -4862 4862 6 -4863 4862 -1 -4882 4862 -1 -5262 4862 -1 -4863 4863 6 -4864 4863 -1 -4883 4863 -1 -5263 4863 -1 -4864 4864 6 -4865 4864 -1 -4884 4864 -1 -5264 4864 -1 -4865 4865 6 -4866 4865 -1 -4885 4865 -1 -5265 4865 -1 -4866 4866 6 -4867 4866 -1 -4886 4866 -1 -5266 4866 -1 -4867 4867 6 -4868 4867 -1 -4887 4867 -1 -5267 4867 -1 -4868 4868 6 -4869 4868 -1 -4888 4868 -1 -5268 4868 -1 -4869 4869 6 -4870 4869 -1 -4889 4869 -1 -5269 4869 -1 -4870 4870 6 -4871 4870 -1 -4890 4870 -1 -5270 4870 -1 -4871 4871 6 -4872 4871 -1 -4891 4871 -1 -5271 4871 -1 -4872 4872 6 -4873 4872 -1 -4892 4872 -1 -5272 4872 -1 -4873 4873 6 -4874 4873 -1 -4893 4873 -1 -5273 4873 -1 -4874 4874 6 -4875 4874 -1 -4894 4874 -1 -5274 4874 -1 -4875 4875 6 -4876 4875 -1 -4895 4875 -1 -5275 4875 -1 -4876 4876 6 -4877 4876 -1 -4896 4876 -1 -5276 4876 -1 -4877 4877 6 -4878 4877 -1 -4897 4877 -1 -5277 4877 -1 -4878 4878 6 -4879 4878 -1 -4898 4878 -1 -5278 4878 -1 -4879 4879 6 -4880 4879 -1 -4899 4879 -1 -5279 4879 -1 -4880 4880 6 -4900 4880 -1 -5280 4880 -1 -4881 4881 6 -4882 4881 -1 -4901 4881 -1 -5281 4881 -1 -4882 4882 6 -4883 4882 -1 -4902 4882 -1 -5282 4882 -1 -4883 4883 6 -4884 4883 -1 -4903 4883 -1 -5283 4883 -1 -4884 4884 6 -4885 4884 -1 -4904 4884 -1 -5284 4884 -1 -4885 4885 6 -4886 4885 -1 -4905 4885 -1 -5285 4885 -1 -4886 4886 6 -4887 4886 -1 -4906 4886 -1 -5286 4886 -1 -4887 4887 6 -4888 4887 -1 -4907 4887 -1 -5287 4887 -1 -4888 4888 6 -4889 4888 -1 -4908 4888 -1 -5288 4888 -1 -4889 4889 6 -4890 4889 -1 -4909 4889 -1 -5289 4889 -1 -4890 4890 6 -4891 4890 -1 -4910 4890 -1 -5290 4890 -1 -4891 4891 6 -4892 4891 -1 -4911 4891 -1 -5291 4891 -1 -4892 4892 6 -4893 4892 -1 -4912 4892 -1 -5292 4892 -1 -4893 4893 6 -4894 4893 -1 -4913 4893 -1 -5293 4893 -1 -4894 4894 6 -4895 4894 -1 -4914 4894 -1 -5294 4894 -1 -4895 4895 6 -4896 4895 -1 -4915 4895 -1 -5295 4895 -1 -4896 4896 6 -4897 4896 -1 -4916 4896 -1 -5296 4896 -1 -4897 4897 6 -4898 4897 -1 -4917 4897 -1 -5297 4897 -1 -4898 4898 6 -4899 4898 -1 -4918 4898 -1 -5298 4898 -1 -4899 4899 6 -4900 4899 -1 -4919 4899 -1 -5299 4899 -1 -4900 4900 6 -4920 4900 -1 -5300 4900 -1 -4901 4901 6 -4902 4901 -1 -4921 4901 -1 -5301 4901 -1 -4902 4902 6 -4903 4902 -1 -4922 4902 -1 -5302 4902 -1 -4903 4903 6 -4904 4903 -1 -4923 4903 -1 -5303 4903 -1 -4904 4904 6 -4905 4904 -1 -4924 4904 -1 -5304 4904 -1 -4905 4905 6 -4906 4905 -1 -4925 4905 -1 -5305 4905 -1 -4906 4906 6 -4907 4906 -1 -4926 4906 -1 -5306 4906 -1 -4907 4907 6 -4908 4907 -1 -4927 4907 -1 -5307 4907 -1 -4908 4908 6 -4909 4908 -1 -4928 4908 -1 -5308 4908 -1 -4909 4909 6 -4910 4909 -1 -4929 4909 -1 -5309 4909 -1 -4910 4910 6 -4911 4910 -1 -4930 4910 -1 -5310 4910 -1 -4911 4911 6 -4912 4911 -1 -4931 4911 -1 -5311 4911 -1 -4912 4912 6 -4913 4912 -1 -4932 4912 -1 -5312 4912 -1 -4913 4913 6 -4914 4913 -1 -4933 4913 -1 -5313 4913 -1 -4914 4914 6 -4915 4914 -1 -4934 4914 -1 -5314 4914 -1 -4915 4915 6 -4916 4915 -1 -4935 4915 -1 -5315 4915 -1 -4916 4916 6 -4917 4916 -1 -4936 4916 -1 -5316 4916 -1 -4917 4917 6 -4918 4917 -1 -4937 4917 -1 -5317 4917 -1 -4918 4918 6 -4919 4918 -1 -4938 4918 -1 -5318 4918 -1 -4919 4919 6 -4920 4919 -1 -4939 4919 -1 -5319 4919 -1 -4920 4920 6 -4940 4920 -1 -5320 4920 -1 -4921 4921 6 -4922 4921 -1 -4941 4921 -1 -5321 4921 -1 -4922 4922 6 -4923 4922 -1 -4942 4922 -1 -5322 4922 -1 -4923 4923 6 -4924 4923 -1 -4943 4923 -1 -5323 4923 -1 -4924 4924 6 -4925 4924 -1 -4944 4924 -1 -5324 4924 -1 -4925 4925 6 -4926 4925 -1 -4945 4925 -1 -5325 4925 -1 -4926 4926 6 -4927 4926 -1 -4946 4926 -1 -5326 4926 -1 -4927 4927 6 -4928 4927 -1 -4947 4927 -1 -5327 4927 -1 -4928 4928 6 -4929 4928 -1 -4948 4928 -1 -5328 4928 -1 -4929 4929 6 -4930 4929 -1 -4949 4929 -1 -5329 4929 -1 -4930 4930 6 -4931 4930 -1 -4950 4930 -1 -5330 4930 -1 -4931 4931 6 -4932 4931 -1 -4951 4931 -1 -5331 4931 -1 -4932 4932 6 -4933 4932 -1 -4952 4932 -1 -5332 4932 -1 -4933 4933 6 -4934 4933 -1 -4953 4933 -1 -5333 4933 -1 -4934 4934 6 -4935 4934 -1 -4954 4934 -1 -5334 4934 -1 -4935 4935 6 -4936 4935 -1 -4955 4935 -1 -5335 4935 -1 -4936 4936 6 -4937 4936 -1 -4956 4936 -1 -5336 4936 -1 -4937 4937 6 -4938 4937 -1 -4957 4937 -1 -5337 4937 -1 -4938 4938 6 -4939 4938 -1 -4958 4938 -1 -5338 4938 -1 -4939 4939 6 -4940 4939 -1 -4959 4939 -1 -5339 4939 -1 -4940 4940 6 -4960 4940 -1 -5340 4940 -1 -4941 4941 6 -4942 4941 -1 -4961 4941 -1 -5341 4941 -1 -4942 4942 6 -4943 4942 -1 -4962 4942 -1 -5342 4942 -1 -4943 4943 6 -4944 4943 -1 -4963 4943 -1 -5343 4943 -1 -4944 4944 6 -4945 4944 -1 -4964 4944 -1 -5344 4944 -1 -4945 4945 6 -4946 4945 -1 -4965 4945 -1 -5345 4945 -1 -4946 4946 6 -4947 4946 -1 -4966 4946 -1 -5346 4946 -1 -4947 4947 6 -4948 4947 -1 -4967 4947 -1 -5347 4947 -1 -4948 4948 6 -4949 4948 -1 -4968 4948 -1 -5348 4948 -1 -4949 4949 6 -4950 4949 -1 -4969 4949 -1 -5349 4949 -1 -4950 4950 6 -4951 4950 -1 -4970 4950 -1 -5350 4950 -1 -4951 4951 6 -4952 4951 -1 -4971 4951 -1 -5351 4951 -1 -4952 4952 6 -4953 4952 -1 -4972 4952 -1 -5352 4952 -1 -4953 4953 6 -4954 4953 -1 -4973 4953 -1 -5353 4953 -1 -4954 4954 6 -4955 4954 -1 -4974 4954 -1 -5354 4954 -1 -4955 4955 6 -4956 4955 -1 -4975 4955 -1 -5355 4955 -1 -4956 4956 6 -4957 4956 -1 -4976 4956 -1 -5356 4956 -1 -4957 4957 6 -4958 4957 -1 -4977 4957 -1 -5357 4957 -1 -4958 4958 6 -4959 4958 -1 -4978 4958 -1 -5358 4958 -1 -4959 4959 6 -4960 4959 -1 -4979 4959 -1 -5359 4959 -1 -4960 4960 6 -4980 4960 -1 -5360 4960 -1 -4961 4961 6 -4962 4961 -1 -4981 4961 -1 -5361 4961 -1 -4962 4962 6 -4963 4962 -1 -4982 4962 -1 -5362 4962 -1 -4963 4963 6 -4964 4963 -1 -4983 4963 -1 -5363 4963 -1 -4964 4964 6 -4965 4964 -1 -4984 4964 -1 -5364 4964 -1 -4965 4965 6 -4966 4965 -1 -4985 4965 -1 -5365 4965 -1 -4966 4966 6 -4967 4966 -1 -4986 4966 -1 -5366 4966 -1 -4967 4967 6 -4968 4967 -1 -4987 4967 -1 -5367 4967 -1 -4968 4968 6 -4969 4968 -1 -4988 4968 -1 -5368 4968 -1 -4969 4969 6 -4970 4969 -1 -4989 4969 -1 -5369 4969 -1 -4970 4970 6 -4971 4970 -1 -4990 4970 -1 -5370 4970 -1 -4971 4971 6 -4972 4971 -1 -4991 4971 -1 -5371 4971 -1 -4972 4972 6 -4973 4972 -1 -4992 4972 -1 -5372 4972 -1 -4973 4973 6 -4974 4973 -1 -4993 4973 -1 -5373 4973 -1 -4974 4974 6 -4975 4974 -1 -4994 4974 -1 -5374 4974 -1 -4975 4975 6 -4976 4975 -1 -4995 4975 -1 -5375 4975 -1 -4976 4976 6 -4977 4976 -1 -4996 4976 -1 -5376 4976 -1 -4977 4977 6 -4978 4977 -1 -4997 4977 -1 -5377 4977 -1 -4978 4978 6 -4979 4978 -1 -4998 4978 -1 -5378 4978 -1 -4979 4979 6 -4980 4979 -1 -4999 4979 -1 -5379 4979 -1 -4980 4980 6 -5000 4980 -1 -5380 4980 -1 -4981 4981 6 -4982 4981 -1 -5001 4981 -1 -5381 4981 -1 -4982 4982 6 -4983 4982 -1 -5002 4982 -1 -5382 4982 -1 -4983 4983 6 -4984 4983 -1 -5003 4983 -1 -5383 4983 -1 -4984 4984 6 -4985 4984 -1 -5004 4984 -1 -5384 4984 -1 -4985 4985 6 -4986 4985 -1 -5005 4985 -1 -5385 4985 -1 -4986 4986 6 -4987 4986 -1 -5006 4986 -1 -5386 4986 -1 -4987 4987 6 -4988 4987 -1 -5007 4987 -1 -5387 4987 -1 -4988 4988 6 -4989 4988 -1 -5008 4988 -1 -5388 4988 -1 -4989 4989 6 -4990 4989 -1 -5009 4989 -1 -5389 4989 -1 -4990 4990 6 -4991 4990 -1 -5010 4990 -1 -5390 4990 -1 -4991 4991 6 -4992 4991 -1 -5011 4991 -1 -5391 4991 -1 -4992 4992 6 -4993 4992 -1 -5012 4992 -1 -5392 4992 -1 -4993 4993 6 -4994 4993 -1 -5013 4993 -1 -5393 4993 -1 -4994 4994 6 -4995 4994 -1 -5014 4994 -1 -5394 4994 -1 -4995 4995 6 -4996 4995 -1 -5015 4995 -1 -5395 4995 -1 -4996 4996 6 -4997 4996 -1 -5016 4996 -1 -5396 4996 -1 -4997 4997 6 -4998 4997 -1 -5017 4997 -1 -5397 4997 -1 -4998 4998 6 -4999 4998 -1 -5018 4998 -1 -5398 4998 -1 -4999 4999 6 -5000 4999 -1 -5019 4999 -1 -5399 4999 -1 -5000 5000 6 -5020 5000 -1 -5400 5000 -1 -5001 5001 6 -5002 5001 -1 -5021 5001 -1 -5401 5001 -1 -5002 5002 6 -5003 5002 -1 -5022 5002 -1 -5402 5002 -1 -5003 5003 6 -5004 5003 -1 -5023 5003 -1 -5403 5003 -1 -5004 5004 6 -5005 5004 -1 -5024 5004 -1 -5404 5004 -1 -5005 5005 6 -5006 5005 -1 -5025 5005 -1 -5405 5005 -1 -5006 5006 6 -5007 5006 -1 -5026 5006 -1 -5406 5006 -1 -5007 5007 6 -5008 5007 -1 -5027 5007 -1 -5407 5007 -1 -5008 5008 6 -5009 5008 -1 -5028 5008 -1 -5408 5008 -1 -5009 5009 6 -5010 5009 -1 -5029 5009 -1 -5409 5009 -1 -5010 5010 6 -5011 5010 -1 -5030 5010 -1 -5410 5010 -1 -5011 5011 6 -5012 5011 -1 -5031 5011 -1 -5411 5011 -1 -5012 5012 6 -5013 5012 -1 -5032 5012 -1 -5412 5012 -1 -5013 5013 6 -5014 5013 -1 -5033 5013 -1 -5413 5013 -1 -5014 5014 6 -5015 5014 -1 -5034 5014 -1 -5414 5014 -1 -5015 5015 6 -5016 5015 -1 -5035 5015 -1 -5415 5015 -1 -5016 5016 6 -5017 5016 -1 -5036 5016 -1 -5416 5016 -1 -5017 5017 6 -5018 5017 -1 -5037 5017 -1 -5417 5017 -1 -5018 5018 6 -5019 5018 -1 -5038 5018 -1 -5418 5018 -1 -5019 5019 6 -5020 5019 -1 -5039 5019 -1 -5419 5019 -1 -5020 5020 6 -5040 5020 -1 -5420 5020 -1 -5021 5021 6 -5022 5021 -1 -5041 5021 -1 -5421 5021 -1 -5022 5022 6 -5023 5022 -1 -5042 5022 -1 -5422 5022 -1 -5023 5023 6 -5024 5023 -1 -5043 5023 -1 -5423 5023 -1 -5024 5024 6 -5025 5024 -1 -5044 5024 -1 -5424 5024 -1 -5025 5025 6 -5026 5025 -1 -5045 5025 -1 -5425 5025 -1 -5026 5026 6 -5027 5026 -1 -5046 5026 -1 -5426 5026 -1 -5027 5027 6 -5028 5027 -1 -5047 5027 -1 -5427 5027 -1 -5028 5028 6 -5029 5028 -1 -5048 5028 -1 -5428 5028 -1 -5029 5029 6 -5030 5029 -1 -5049 5029 -1 -5429 5029 -1 -5030 5030 6 -5031 5030 -1 -5050 5030 -1 -5430 5030 -1 -5031 5031 6 -5032 5031 -1 -5051 5031 -1 -5431 5031 -1 -5032 5032 6 -5033 5032 -1 -5052 5032 -1 -5432 5032 -1 -5033 5033 6 -5034 5033 -1 -5053 5033 -1 -5433 5033 -1 -5034 5034 6 -5035 5034 -1 -5054 5034 -1 -5434 5034 -1 -5035 5035 6 -5036 5035 -1 -5055 5035 -1 -5435 5035 -1 -5036 5036 6 -5037 5036 -1 -5056 5036 -1 -5436 5036 -1 -5037 5037 6 -5038 5037 -1 -5057 5037 -1 -5437 5037 -1 -5038 5038 6 -5039 5038 -1 -5058 5038 -1 -5438 5038 -1 -5039 5039 6 -5040 5039 -1 -5059 5039 -1 -5439 5039 -1 -5040 5040 6 -5060 5040 -1 -5440 5040 -1 -5041 5041 6 -5042 5041 -1 -5061 5041 -1 -5441 5041 -1 -5042 5042 6 -5043 5042 -1 -5062 5042 -1 -5442 5042 -1 -5043 5043 6 -5044 5043 -1 -5063 5043 -1 -5443 5043 -1 -5044 5044 6 -5045 5044 -1 -5064 5044 -1 -5444 5044 -1 -5045 5045 6 -5046 5045 -1 -5065 5045 -1 -5445 5045 -1 -5046 5046 6 -5047 5046 -1 -5066 5046 -1 -5446 5046 -1 -5047 5047 6 -5048 5047 -1 -5067 5047 -1 -5447 5047 -1 -5048 5048 6 -5049 5048 -1 -5068 5048 -1 -5448 5048 -1 -5049 5049 6 -5050 5049 -1 -5069 5049 -1 -5449 5049 -1 -5050 5050 6 -5051 5050 -1 -5070 5050 -1 -5450 5050 -1 -5051 5051 6 -5052 5051 -1 -5071 5051 -1 -5451 5051 -1 -5052 5052 6 -5053 5052 -1 -5072 5052 -1 -5452 5052 -1 -5053 5053 6 -5054 5053 -1 -5073 5053 -1 -5453 5053 -1 -5054 5054 6 -5055 5054 -1 -5074 5054 -1 -5454 5054 -1 -5055 5055 6 -5056 5055 -1 -5075 5055 -1 -5455 5055 -1 -5056 5056 6 -5057 5056 -1 -5076 5056 -1 -5456 5056 -1 -5057 5057 6 -5058 5057 -1 -5077 5057 -1 -5457 5057 -1 -5058 5058 6 -5059 5058 -1 -5078 5058 -1 -5458 5058 -1 -5059 5059 6 -5060 5059 -1 -5079 5059 -1 -5459 5059 -1 -5060 5060 6 -5080 5060 -1 -5460 5060 -1 -5061 5061 6 -5062 5061 -1 -5081 5061 -1 -5461 5061 -1 -5062 5062 6 -5063 5062 -1 -5082 5062 -1 -5462 5062 -1 -5063 5063 6 -5064 5063 -1 -5083 5063 -1 -5463 5063 -1 -5064 5064 6 -5065 5064 -1 -5084 5064 -1 -5464 5064 -1 -5065 5065 6 -5066 5065 -1 -5085 5065 -1 -5465 5065 -1 -5066 5066 6 -5067 5066 -1 -5086 5066 -1 -5466 5066 -1 -5067 5067 6 -5068 5067 -1 -5087 5067 -1 -5467 5067 -1 -5068 5068 6 -5069 5068 -1 -5088 5068 -1 -5468 5068 -1 -5069 5069 6 -5070 5069 -1 -5089 5069 -1 -5469 5069 -1 -5070 5070 6 -5071 5070 -1 -5090 5070 -1 -5470 5070 -1 -5071 5071 6 -5072 5071 -1 -5091 5071 -1 -5471 5071 -1 -5072 5072 6 -5073 5072 -1 -5092 5072 -1 -5472 5072 -1 -5073 5073 6 -5074 5073 -1 -5093 5073 -1 -5473 5073 -1 -5074 5074 6 -5075 5074 -1 -5094 5074 -1 -5474 5074 -1 -5075 5075 6 -5076 5075 -1 -5095 5075 -1 -5475 5075 -1 -5076 5076 6 -5077 5076 -1 -5096 5076 -1 -5476 5076 -1 -5077 5077 6 -5078 5077 -1 -5097 5077 -1 -5477 5077 -1 -5078 5078 6 -5079 5078 -1 -5098 5078 -1 -5478 5078 -1 -5079 5079 6 -5080 5079 -1 -5099 5079 -1 -5479 5079 -1 -5080 5080 6 -5100 5080 -1 -5480 5080 -1 -5081 5081 6 -5082 5081 -1 -5101 5081 -1 -5481 5081 -1 -5082 5082 6 -5083 5082 -1 -5102 5082 -1 -5482 5082 -1 -5083 5083 6 -5084 5083 -1 -5103 5083 -1 -5483 5083 -1 -5084 5084 6 -5085 5084 -1 -5104 5084 -1 -5484 5084 -1 -5085 5085 6 -5086 5085 -1 -5105 5085 -1 -5485 5085 -1 -5086 5086 6 -5087 5086 -1 -5106 5086 -1 -5486 5086 -1 -5087 5087 6 -5088 5087 -1 -5107 5087 -1 -5487 5087 -1 -5088 5088 6 -5089 5088 -1 -5108 5088 -1 -5488 5088 -1 -5089 5089 6 -5090 5089 -1 -5109 5089 -1 -5489 5089 -1 -5090 5090 6 -5091 5090 -1 -5110 5090 -1 -5490 5090 -1 -5091 5091 6 -5092 5091 -1 -5111 5091 -1 -5491 5091 -1 -5092 5092 6 -5093 5092 -1 -5112 5092 -1 -5492 5092 -1 -5093 5093 6 -5094 5093 -1 -5113 5093 -1 -5493 5093 -1 -5094 5094 6 -5095 5094 -1 -5114 5094 -1 -5494 5094 -1 -5095 5095 6 -5096 5095 -1 -5115 5095 -1 -5495 5095 -1 -5096 5096 6 -5097 5096 -1 -5116 5096 -1 -5496 5096 -1 -5097 5097 6 -5098 5097 -1 -5117 5097 -1 -5497 5097 -1 -5098 5098 6 -5099 5098 -1 -5118 5098 -1 -5498 5098 -1 -5099 5099 6 -5100 5099 -1 -5119 5099 -1 -5499 5099 -1 -5100 5100 6 -5120 5100 -1 -5500 5100 -1 -5101 5101 6 -5102 5101 -1 -5121 5101 -1 -5501 5101 -1 -5102 5102 6 -5103 5102 -1 -5122 5102 -1 -5502 5102 -1 -5103 5103 6 -5104 5103 -1 -5123 5103 -1 -5503 5103 -1 -5104 5104 6 -5105 5104 -1 -5124 5104 -1 -5504 5104 -1 -5105 5105 6 -5106 5105 -1 -5125 5105 -1 -5505 5105 -1 -5106 5106 6 -5107 5106 -1 -5126 5106 -1 -5506 5106 -1 -5107 5107 6 -5108 5107 -1 -5127 5107 -1 -5507 5107 -1 -5108 5108 6 -5109 5108 -1 -5128 5108 -1 -5508 5108 -1 -5109 5109 6 -5110 5109 -1 -5129 5109 -1 -5509 5109 -1 -5110 5110 6 -5111 5110 -1 -5130 5110 -1 -5510 5110 -1 -5111 5111 6 -5112 5111 -1 -5131 5111 -1 -5511 5111 -1 -5112 5112 6 -5113 5112 -1 -5132 5112 -1 -5512 5112 -1 -5113 5113 6 -5114 5113 -1 -5133 5113 -1 -5513 5113 -1 -5114 5114 6 -5115 5114 -1 -5134 5114 -1 -5514 5114 -1 -5115 5115 6 -5116 5115 -1 -5135 5115 -1 -5515 5115 -1 -5116 5116 6 -5117 5116 -1 -5136 5116 -1 -5516 5116 -1 -5117 5117 6 -5118 5117 -1 -5137 5117 -1 -5517 5117 -1 -5118 5118 6 -5119 5118 -1 -5138 5118 -1 -5518 5118 -1 -5119 5119 6 -5120 5119 -1 -5139 5119 -1 -5519 5119 -1 -5120 5120 6 -5140 5120 -1 -5520 5120 -1 -5121 5121 6 -5122 5121 -1 -5141 5121 -1 -5521 5121 -1 -5122 5122 6 -5123 5122 -1 -5142 5122 -1 -5522 5122 -1 -5123 5123 6 -5124 5123 -1 -5143 5123 -1 -5523 5123 -1 -5124 5124 6 -5125 5124 -1 -5144 5124 -1 -5524 5124 -1 -5125 5125 6 -5126 5125 -1 -5145 5125 -1 -5525 5125 -1 -5126 5126 6 -5127 5126 -1 -5146 5126 -1 -5526 5126 -1 -5127 5127 6 -5128 5127 -1 -5147 5127 -1 -5527 5127 -1 -5128 5128 6 -5129 5128 -1 -5148 5128 -1 -5528 5128 -1 -5129 5129 6 -5130 5129 -1 -5149 5129 -1 -5529 5129 -1 -5130 5130 6 -5131 5130 -1 -5150 5130 -1 -5530 5130 -1 -5131 5131 6 -5132 5131 -1 -5151 5131 -1 -5531 5131 -1 -5132 5132 6 -5133 5132 -1 -5152 5132 -1 -5532 5132 -1 -5133 5133 6 -5134 5133 -1 -5153 5133 -1 -5533 5133 -1 -5134 5134 6 -5135 5134 -1 -5154 5134 -1 -5534 5134 -1 -5135 5135 6 -5136 5135 -1 -5155 5135 -1 -5535 5135 -1 -5136 5136 6 -5137 5136 -1 -5156 5136 -1 -5536 5136 -1 -5137 5137 6 -5138 5137 -1 -5157 5137 -1 -5537 5137 -1 -5138 5138 6 -5139 5138 -1 -5158 5138 -1 -5538 5138 -1 -5139 5139 6 -5140 5139 -1 -5159 5139 -1 -5539 5139 -1 -5140 5140 6 -5160 5140 -1 -5540 5140 -1 -5141 5141 6 -5142 5141 -1 -5161 5141 -1 -5541 5141 -1 -5142 5142 6 -5143 5142 -1 -5162 5142 -1 -5542 5142 -1 -5143 5143 6 -5144 5143 -1 -5163 5143 -1 -5543 5143 -1 -5144 5144 6 -5145 5144 -1 -5164 5144 -1 -5544 5144 -1 -5145 5145 6 -5146 5145 -1 -5165 5145 -1 -5545 5145 -1 -5146 5146 6 -5147 5146 -1 -5166 5146 -1 -5546 5146 -1 -5147 5147 6 -5148 5147 -1 -5167 5147 -1 -5547 5147 -1 -5148 5148 6 -5149 5148 -1 -5168 5148 -1 -5548 5148 -1 -5149 5149 6 -5150 5149 -1 -5169 5149 -1 -5549 5149 -1 -5150 5150 6 -5151 5150 -1 -5170 5150 -1 -5550 5150 -1 -5151 5151 6 -5152 5151 -1 -5171 5151 -1 -5551 5151 -1 -5152 5152 6 -5153 5152 -1 -5172 5152 -1 -5552 5152 -1 -5153 5153 6 -5154 5153 -1 -5173 5153 -1 -5553 5153 -1 -5154 5154 6 -5155 5154 -1 -5174 5154 -1 -5554 5154 -1 -5155 5155 6 -5156 5155 -1 -5175 5155 -1 -5555 5155 -1 -5156 5156 6 -5157 5156 -1 -5176 5156 -1 -5556 5156 -1 -5157 5157 6 -5158 5157 -1 -5177 5157 -1 -5557 5157 -1 -5158 5158 6 -5159 5158 -1 -5178 5158 -1 -5558 5158 -1 -5159 5159 6 -5160 5159 -1 -5179 5159 -1 -5559 5159 -1 -5160 5160 6 -5180 5160 -1 -5560 5160 -1 -5161 5161 6 -5162 5161 -1 -5181 5161 -1 -5561 5161 -1 -5162 5162 6 -5163 5162 -1 -5182 5162 -1 -5562 5162 -1 -5163 5163 6 -5164 5163 -1 -5183 5163 -1 -5563 5163 -1 -5164 5164 6 -5165 5164 -1 -5184 5164 -1 -5564 5164 -1 -5165 5165 6 -5166 5165 -1 -5185 5165 -1 -5565 5165 -1 -5166 5166 6 -5167 5166 -1 -5186 5166 -1 -5566 5166 -1 -5167 5167 6 -5168 5167 -1 -5187 5167 -1 -5567 5167 -1 -5168 5168 6 -5169 5168 -1 -5188 5168 -1 -5568 5168 -1 -5169 5169 6 -5170 5169 -1 -5189 5169 -1 -5569 5169 -1 -5170 5170 6 -5171 5170 -1 -5190 5170 -1 -5570 5170 -1 -5171 5171 6 -5172 5171 -1 -5191 5171 -1 -5571 5171 -1 -5172 5172 6 -5173 5172 -1 -5192 5172 -1 -5572 5172 -1 -5173 5173 6 -5174 5173 -1 -5193 5173 -1 -5573 5173 -1 -5174 5174 6 -5175 5174 -1 -5194 5174 -1 -5574 5174 -1 -5175 5175 6 -5176 5175 -1 -5195 5175 -1 -5575 5175 -1 -5176 5176 6 -5177 5176 -1 -5196 5176 -1 -5576 5176 -1 -5177 5177 6 -5178 5177 -1 -5197 5177 -1 -5577 5177 -1 -5178 5178 6 -5179 5178 -1 -5198 5178 -1 -5578 5178 -1 -5179 5179 6 -5180 5179 -1 -5199 5179 -1 -5579 5179 -1 -5180 5180 6 -5200 5180 -1 -5580 5180 -1 -5181 5181 6 -5182 5181 -1 -5581 5181 -1 -5182 5182 6 -5183 5182 -1 -5582 5182 -1 -5183 5183 6 -5184 5183 -1 -5583 5183 -1 -5184 5184 6 -5185 5184 -1 -5584 5184 -1 -5185 5185 6 -5186 5185 -1 -5585 5185 -1 -5186 5186 6 -5187 5186 -1 -5586 5186 -1 -5187 5187 6 -5188 5187 -1 -5587 5187 -1 -5188 5188 6 -5189 5188 -1 -5588 5188 -1 -5189 5189 6 -5190 5189 -1 -5589 5189 -1 -5190 5190 6 -5191 5190 -1 -5590 5190 -1 -5191 5191 6 -5192 5191 -1 -5591 5191 -1 -5192 5192 6 -5193 5192 -1 -5592 5192 -1 -5193 5193 6 -5194 5193 -1 -5593 5193 -1 -5194 5194 6 -5195 5194 -1 -5594 5194 -1 -5195 5195 6 -5196 5195 -1 -5595 5195 -1 -5196 5196 6 -5197 5196 -1 -5596 5196 -1 -5197 5197 6 -5198 5197 -1 -5597 5197 -1 -5198 5198 6 -5199 5198 -1 -5598 5198 -1 -5199 5199 6 -5200 5199 -1 -5599 5199 -1 -5200 5200 6 -5600 5200 -1 -5201 5201 6 -5202 5201 -1 -5221 5201 -1 -5601 5201 -1 -5202 5202 6 -5203 5202 -1 -5222 5202 -1 -5602 5202 -1 -5203 5203 6 -5204 5203 -1 -5223 5203 -1 -5603 5203 -1 -5204 5204 6 -5205 5204 -1 -5224 5204 -1 -5604 5204 -1 -5205 5205 6 -5206 5205 -1 -5225 5205 -1 -5605 5205 -1 -5206 5206 6 -5207 5206 -1 -5226 5206 -1 -5606 5206 -1 -5207 5207 6 -5208 5207 -1 -5227 5207 -1 -5607 5207 -1 -5208 5208 6 -5209 5208 -1 -5228 5208 -1 -5608 5208 -1 -5209 5209 6 -5210 5209 -1 -5229 5209 -1 -5609 5209 -1 -5210 5210 6 -5211 5210 -1 -5230 5210 -1 -5610 5210 -1 -5211 5211 6 -5212 5211 -1 -5231 5211 -1 -5611 5211 -1 -5212 5212 6 -5213 5212 -1 -5232 5212 -1 -5612 5212 -1 -5213 5213 6 -5214 5213 -1 -5233 5213 -1 -5613 5213 -1 -5214 5214 6 -5215 5214 -1 -5234 5214 -1 -5614 5214 -1 -5215 5215 6 -5216 5215 -1 -5235 5215 -1 -5615 5215 -1 -5216 5216 6 -5217 5216 -1 -5236 5216 -1 -5616 5216 -1 -5217 5217 6 -5218 5217 -1 -5237 5217 -1 -5617 5217 -1 -5218 5218 6 -5219 5218 -1 -5238 5218 -1 -5618 5218 -1 -5219 5219 6 -5220 5219 -1 -5239 5219 -1 -5619 5219 -1 -5220 5220 6 -5240 5220 -1 -5620 5220 -1 -5221 5221 6 -5222 5221 -1 -5241 5221 -1 -5621 5221 -1 -5222 5222 6 -5223 5222 -1 -5242 5222 -1 -5622 5222 -1 -5223 5223 6 -5224 5223 -1 -5243 5223 -1 -5623 5223 -1 -5224 5224 6 -5225 5224 -1 -5244 5224 -1 -5624 5224 -1 -5225 5225 6 -5226 5225 -1 -5245 5225 -1 -5625 5225 -1 -5226 5226 6 -5227 5226 -1 -5246 5226 -1 -5626 5226 -1 -5227 5227 6 -5228 5227 -1 -5247 5227 -1 -5627 5227 -1 -5228 5228 6 -5229 5228 -1 -5248 5228 -1 -5628 5228 -1 -5229 5229 6 -5230 5229 -1 -5249 5229 -1 -5629 5229 -1 -5230 5230 6 -5231 5230 -1 -5250 5230 -1 -5630 5230 -1 -5231 5231 6 -5232 5231 -1 -5251 5231 -1 -5631 5231 -1 -5232 5232 6 -5233 5232 -1 -5252 5232 -1 -5632 5232 -1 -5233 5233 6 -5234 5233 -1 -5253 5233 -1 -5633 5233 -1 -5234 5234 6 -5235 5234 -1 -5254 5234 -1 -5634 5234 -1 -5235 5235 6 -5236 5235 -1 -5255 5235 -1 -5635 5235 -1 -5236 5236 6 -5237 5236 -1 -5256 5236 -1 -5636 5236 -1 -5237 5237 6 -5238 5237 -1 -5257 5237 -1 -5637 5237 -1 -5238 5238 6 -5239 5238 -1 -5258 5238 -1 -5638 5238 -1 -5239 5239 6 -5240 5239 -1 -5259 5239 -1 -5639 5239 -1 -5240 5240 6 -5260 5240 -1 -5640 5240 -1 -5241 5241 6 -5242 5241 -1 -5261 5241 -1 -5641 5241 -1 -5242 5242 6 -5243 5242 -1 -5262 5242 -1 -5642 5242 -1 -5243 5243 6 -5244 5243 -1 -5263 5243 -1 -5643 5243 -1 -5244 5244 6 -5245 5244 -1 -5264 5244 -1 -5644 5244 -1 -5245 5245 6 -5246 5245 -1 -5265 5245 -1 -5645 5245 -1 -5246 5246 6 -5247 5246 -1 -5266 5246 -1 -5646 5246 -1 -5247 5247 6 -5248 5247 -1 -5267 5247 -1 -5647 5247 -1 -5248 5248 6 -5249 5248 -1 -5268 5248 -1 -5648 5248 -1 -5249 5249 6 -5250 5249 -1 -5269 5249 -1 -5649 5249 -1 -5250 5250 6 -5251 5250 -1 -5270 5250 -1 -5650 5250 -1 -5251 5251 6 -5252 5251 -1 -5271 5251 -1 -5651 5251 -1 -5252 5252 6 -5253 5252 -1 -5272 5252 -1 -5652 5252 -1 -5253 5253 6 -5254 5253 -1 -5273 5253 -1 -5653 5253 -1 -5254 5254 6 -5255 5254 -1 -5274 5254 -1 -5654 5254 -1 -5255 5255 6 -5256 5255 -1 -5275 5255 -1 -5655 5255 -1 -5256 5256 6 -5257 5256 -1 -5276 5256 -1 -5656 5256 -1 -5257 5257 6 -5258 5257 -1 -5277 5257 -1 -5657 5257 -1 -5258 5258 6 -5259 5258 -1 -5278 5258 -1 -5658 5258 -1 -5259 5259 6 -5260 5259 -1 -5279 5259 -1 -5659 5259 -1 -5260 5260 6 -5280 5260 -1 -5660 5260 -1 -5261 5261 6 -5262 5261 -1 -5281 5261 -1 -5661 5261 -1 -5262 5262 6 -5263 5262 -1 -5282 5262 -1 -5662 5262 -1 -5263 5263 6 -5264 5263 -1 -5283 5263 -1 -5663 5263 -1 -5264 5264 6 -5265 5264 -1 -5284 5264 -1 -5664 5264 -1 -5265 5265 6 -5266 5265 -1 -5285 5265 -1 -5665 5265 -1 -5266 5266 6 -5267 5266 -1 -5286 5266 -1 -5666 5266 -1 -5267 5267 6 -5268 5267 -1 -5287 5267 -1 -5667 5267 -1 -5268 5268 6 -5269 5268 -1 -5288 5268 -1 -5668 5268 -1 -5269 5269 6 -5270 5269 -1 -5289 5269 -1 -5669 5269 -1 -5270 5270 6 -5271 5270 -1 -5290 5270 -1 -5670 5270 -1 -5271 5271 6 -5272 5271 -1 -5291 5271 -1 -5671 5271 -1 -5272 5272 6 -5273 5272 -1 -5292 5272 -1 -5672 5272 -1 -5273 5273 6 -5274 5273 -1 -5293 5273 -1 -5673 5273 -1 -5274 5274 6 -5275 5274 -1 -5294 5274 -1 -5674 5274 -1 -5275 5275 6 -5276 5275 -1 -5295 5275 -1 -5675 5275 -1 -5276 5276 6 -5277 5276 -1 -5296 5276 -1 -5676 5276 -1 -5277 5277 6 -5278 5277 -1 -5297 5277 -1 -5677 5277 -1 -5278 5278 6 -5279 5278 -1 -5298 5278 -1 -5678 5278 -1 -5279 5279 6 -5280 5279 -1 -5299 5279 -1 -5679 5279 -1 -5280 5280 6 -5300 5280 -1 -5680 5280 -1 -5281 5281 6 -5282 5281 -1 -5301 5281 -1 -5681 5281 -1 -5282 5282 6 -5283 5282 -1 -5302 5282 -1 -5682 5282 -1 -5283 5283 6 -5284 5283 -1 -5303 5283 -1 -5683 5283 -1 -5284 5284 6 -5285 5284 -1 -5304 5284 -1 -5684 5284 -1 -5285 5285 6 -5286 5285 -1 -5305 5285 -1 -5685 5285 -1 -5286 5286 6 -5287 5286 -1 -5306 5286 -1 -5686 5286 -1 -5287 5287 6 -5288 5287 -1 -5307 5287 -1 -5687 5287 -1 -5288 5288 6 -5289 5288 -1 -5308 5288 -1 -5688 5288 -1 -5289 5289 6 -5290 5289 -1 -5309 5289 -1 -5689 5289 -1 -5290 5290 6 -5291 5290 -1 -5310 5290 -1 -5690 5290 -1 -5291 5291 6 -5292 5291 -1 -5311 5291 -1 -5691 5291 -1 -5292 5292 6 -5293 5292 -1 -5312 5292 -1 -5692 5292 -1 -5293 5293 6 -5294 5293 -1 -5313 5293 -1 -5693 5293 -1 -5294 5294 6 -5295 5294 -1 -5314 5294 -1 -5694 5294 -1 -5295 5295 6 -5296 5295 -1 -5315 5295 -1 -5695 5295 -1 -5296 5296 6 -5297 5296 -1 -5316 5296 -1 -5696 5296 -1 -5297 5297 6 -5298 5297 -1 -5317 5297 -1 -5697 5297 -1 -5298 5298 6 -5299 5298 -1 -5318 5298 -1 -5698 5298 -1 -5299 5299 6 -5300 5299 -1 -5319 5299 -1 -5699 5299 -1 -5300 5300 6 -5320 5300 -1 -5700 5300 -1 -5301 5301 6 -5302 5301 -1 -5321 5301 -1 -5701 5301 -1 -5302 5302 6 -5303 5302 -1 -5322 5302 -1 -5702 5302 -1 -5303 5303 6 -5304 5303 -1 -5323 5303 -1 -5703 5303 -1 -5304 5304 6 -5305 5304 -1 -5324 5304 -1 -5704 5304 -1 -5305 5305 6 -5306 5305 -1 -5325 5305 -1 -5705 5305 -1 -5306 5306 6 -5307 5306 -1 -5326 5306 -1 -5706 5306 -1 -5307 5307 6 -5308 5307 -1 -5327 5307 -1 -5707 5307 -1 -5308 5308 6 -5309 5308 -1 -5328 5308 -1 -5708 5308 -1 -5309 5309 6 -5310 5309 -1 -5329 5309 -1 -5709 5309 -1 -5310 5310 6 -5311 5310 -1 -5330 5310 -1 -5710 5310 -1 -5311 5311 6 -5312 5311 -1 -5331 5311 -1 -5711 5311 -1 -5312 5312 6 -5313 5312 -1 -5332 5312 -1 -5712 5312 -1 -5313 5313 6 -5314 5313 -1 -5333 5313 -1 -5713 5313 -1 -5314 5314 6 -5315 5314 -1 -5334 5314 -1 -5714 5314 -1 -5315 5315 6 -5316 5315 -1 -5335 5315 -1 -5715 5315 -1 -5316 5316 6 -5317 5316 -1 -5336 5316 -1 -5716 5316 -1 -5317 5317 6 -5318 5317 -1 -5337 5317 -1 -5717 5317 -1 -5318 5318 6 -5319 5318 -1 -5338 5318 -1 -5718 5318 -1 -5319 5319 6 -5320 5319 -1 -5339 5319 -1 -5719 5319 -1 -5320 5320 6 -5340 5320 -1 -5720 5320 -1 -5321 5321 6 -5322 5321 -1 -5341 5321 -1 -5721 5321 -1 -5322 5322 6 -5323 5322 -1 -5342 5322 -1 -5722 5322 -1 -5323 5323 6 -5324 5323 -1 -5343 5323 -1 -5723 5323 -1 -5324 5324 6 -5325 5324 -1 -5344 5324 -1 -5724 5324 -1 -5325 5325 6 -5326 5325 -1 -5345 5325 -1 -5725 5325 -1 -5326 5326 6 -5327 5326 -1 -5346 5326 -1 -5726 5326 -1 -5327 5327 6 -5328 5327 -1 -5347 5327 -1 -5727 5327 -1 -5328 5328 6 -5329 5328 -1 -5348 5328 -1 -5728 5328 -1 -5329 5329 6 -5330 5329 -1 -5349 5329 -1 -5729 5329 -1 -5330 5330 6 -5331 5330 -1 -5350 5330 -1 -5730 5330 -1 -5331 5331 6 -5332 5331 -1 -5351 5331 -1 -5731 5331 -1 -5332 5332 6 -5333 5332 -1 -5352 5332 -1 -5732 5332 -1 -5333 5333 6 -5334 5333 -1 -5353 5333 -1 -5733 5333 -1 -5334 5334 6 -5335 5334 -1 -5354 5334 -1 -5734 5334 -1 -5335 5335 6 -5336 5335 -1 -5355 5335 -1 -5735 5335 -1 -5336 5336 6 -5337 5336 -1 -5356 5336 -1 -5736 5336 -1 -5337 5337 6 -5338 5337 -1 -5357 5337 -1 -5737 5337 -1 -5338 5338 6 -5339 5338 -1 -5358 5338 -1 -5738 5338 -1 -5339 5339 6 -5340 5339 -1 -5359 5339 -1 -5739 5339 -1 -5340 5340 6 -5360 5340 -1 -5740 5340 -1 -5341 5341 6 -5342 5341 -1 -5361 5341 -1 -5741 5341 -1 -5342 5342 6 -5343 5342 -1 -5362 5342 -1 -5742 5342 -1 -5343 5343 6 -5344 5343 -1 -5363 5343 -1 -5743 5343 -1 -5344 5344 6 -5345 5344 -1 -5364 5344 -1 -5744 5344 -1 -5345 5345 6 -5346 5345 -1 -5365 5345 -1 -5745 5345 -1 -5346 5346 6 -5347 5346 -1 -5366 5346 -1 -5746 5346 -1 -5347 5347 6 -5348 5347 -1 -5367 5347 -1 -5747 5347 -1 -5348 5348 6 -5349 5348 -1 -5368 5348 -1 -5748 5348 -1 -5349 5349 6 -5350 5349 -1 -5369 5349 -1 -5749 5349 -1 -5350 5350 6 -5351 5350 -1 -5370 5350 -1 -5750 5350 -1 -5351 5351 6 -5352 5351 -1 -5371 5351 -1 -5751 5351 -1 -5352 5352 6 -5353 5352 -1 -5372 5352 -1 -5752 5352 -1 -5353 5353 6 -5354 5353 -1 -5373 5353 -1 -5753 5353 -1 -5354 5354 6 -5355 5354 -1 -5374 5354 -1 -5754 5354 -1 -5355 5355 6 -5356 5355 -1 -5375 5355 -1 -5755 5355 -1 -5356 5356 6 -5357 5356 -1 -5376 5356 -1 -5756 5356 -1 -5357 5357 6 -5358 5357 -1 -5377 5357 -1 -5757 5357 -1 -5358 5358 6 -5359 5358 -1 -5378 5358 -1 -5758 5358 -1 -5359 5359 6 -5360 5359 -1 -5379 5359 -1 -5759 5359 -1 -5360 5360 6 -5380 5360 -1 -5760 5360 -1 -5361 5361 6 -5362 5361 -1 -5381 5361 -1 -5761 5361 -1 -5362 5362 6 -5363 5362 -1 -5382 5362 -1 -5762 5362 -1 -5363 5363 6 -5364 5363 -1 -5383 5363 -1 -5763 5363 -1 -5364 5364 6 -5365 5364 -1 -5384 5364 -1 -5764 5364 -1 -5365 5365 6 -5366 5365 -1 -5385 5365 -1 -5765 5365 -1 -5366 5366 6 -5367 5366 -1 -5386 5366 -1 -5766 5366 -1 -5367 5367 6 -5368 5367 -1 -5387 5367 -1 -5767 5367 -1 -5368 5368 6 -5369 5368 -1 -5388 5368 -1 -5768 5368 -1 -5369 5369 6 -5370 5369 -1 -5389 5369 -1 -5769 5369 -1 -5370 5370 6 -5371 5370 -1 -5390 5370 -1 -5770 5370 -1 -5371 5371 6 -5372 5371 -1 -5391 5371 -1 -5771 5371 -1 -5372 5372 6 -5373 5372 -1 -5392 5372 -1 -5772 5372 -1 -5373 5373 6 -5374 5373 -1 -5393 5373 -1 -5773 5373 -1 -5374 5374 6 -5375 5374 -1 -5394 5374 -1 -5774 5374 -1 -5375 5375 6 -5376 5375 -1 -5395 5375 -1 -5775 5375 -1 -5376 5376 6 -5377 5376 -1 -5396 5376 -1 -5776 5376 -1 -5377 5377 6 -5378 5377 -1 -5397 5377 -1 -5777 5377 -1 -5378 5378 6 -5379 5378 -1 -5398 5378 -1 -5778 5378 -1 -5379 5379 6 -5380 5379 -1 -5399 5379 -1 -5779 5379 -1 -5380 5380 6 -5400 5380 -1 -5780 5380 -1 -5381 5381 6 -5382 5381 -1 -5401 5381 -1 -5781 5381 -1 -5382 5382 6 -5383 5382 -1 -5402 5382 -1 -5782 5382 -1 -5383 5383 6 -5384 5383 -1 -5403 5383 -1 -5783 5383 -1 -5384 5384 6 -5385 5384 -1 -5404 5384 -1 -5784 5384 -1 -5385 5385 6 -5386 5385 -1 -5405 5385 -1 -5785 5385 -1 -5386 5386 6 -5387 5386 -1 -5406 5386 -1 -5786 5386 -1 -5387 5387 6 -5388 5387 -1 -5407 5387 -1 -5787 5387 -1 -5388 5388 6 -5389 5388 -1 -5408 5388 -1 -5788 5388 -1 -5389 5389 6 -5390 5389 -1 -5409 5389 -1 -5789 5389 -1 -5390 5390 6 -5391 5390 -1 -5410 5390 -1 -5790 5390 -1 -5391 5391 6 -5392 5391 -1 -5411 5391 -1 -5791 5391 -1 -5392 5392 6 -5393 5392 -1 -5412 5392 -1 -5792 5392 -1 -5393 5393 6 -5394 5393 -1 -5413 5393 -1 -5793 5393 -1 -5394 5394 6 -5395 5394 -1 -5414 5394 -1 -5794 5394 -1 -5395 5395 6 -5396 5395 -1 -5415 5395 -1 -5795 5395 -1 -5396 5396 6 -5397 5396 -1 -5416 5396 -1 -5796 5396 -1 -5397 5397 6 -5398 5397 -1 -5417 5397 -1 -5797 5397 -1 -5398 5398 6 -5399 5398 -1 -5418 5398 -1 -5798 5398 -1 -5399 5399 6 -5400 5399 -1 -5419 5399 -1 -5799 5399 -1 -5400 5400 6 -5420 5400 -1 -5800 5400 -1 -5401 5401 6 -5402 5401 -1 -5421 5401 -1 -5801 5401 -1 -5402 5402 6 -5403 5402 -1 -5422 5402 -1 -5802 5402 -1 -5403 5403 6 -5404 5403 -1 -5423 5403 -1 -5803 5403 -1 -5404 5404 6 -5405 5404 -1 -5424 5404 -1 -5804 5404 -1 -5405 5405 6 -5406 5405 -1 -5425 5405 -1 -5805 5405 -1 -5406 5406 6 -5407 5406 -1 -5426 5406 -1 -5806 5406 -1 -5407 5407 6 -5408 5407 -1 -5427 5407 -1 -5807 5407 -1 -5408 5408 6 -5409 5408 -1 -5428 5408 -1 -5808 5408 -1 -5409 5409 6 -5410 5409 -1 -5429 5409 -1 -5809 5409 -1 -5410 5410 6 -5411 5410 -1 -5430 5410 -1 -5810 5410 -1 -5411 5411 6 -5412 5411 -1 -5431 5411 -1 -5811 5411 -1 -5412 5412 6 -5413 5412 -1 -5432 5412 -1 -5812 5412 -1 -5413 5413 6 -5414 5413 -1 -5433 5413 -1 -5813 5413 -1 -5414 5414 6 -5415 5414 -1 -5434 5414 -1 -5814 5414 -1 -5415 5415 6 -5416 5415 -1 -5435 5415 -1 -5815 5415 -1 -5416 5416 6 -5417 5416 -1 -5436 5416 -1 -5816 5416 -1 -5417 5417 6 -5418 5417 -1 -5437 5417 -1 -5817 5417 -1 -5418 5418 6 -5419 5418 -1 -5438 5418 -1 -5818 5418 -1 -5419 5419 6 -5420 5419 -1 -5439 5419 -1 -5819 5419 -1 -5420 5420 6 -5440 5420 -1 -5820 5420 -1 -5421 5421 6 -5422 5421 -1 -5441 5421 -1 -5821 5421 -1 -5422 5422 6 -5423 5422 -1 -5442 5422 -1 -5822 5422 -1 -5423 5423 6 -5424 5423 -1 -5443 5423 -1 -5823 5423 -1 -5424 5424 6 -5425 5424 -1 -5444 5424 -1 -5824 5424 -1 -5425 5425 6 -5426 5425 -1 -5445 5425 -1 -5825 5425 -1 -5426 5426 6 -5427 5426 -1 -5446 5426 -1 -5826 5426 -1 -5427 5427 6 -5428 5427 -1 -5447 5427 -1 -5827 5427 -1 -5428 5428 6 -5429 5428 -1 -5448 5428 -1 -5828 5428 -1 -5429 5429 6 -5430 5429 -1 -5449 5429 -1 -5829 5429 -1 -5430 5430 6 -5431 5430 -1 -5450 5430 -1 -5830 5430 -1 -5431 5431 6 -5432 5431 -1 -5451 5431 -1 -5831 5431 -1 -5432 5432 6 -5433 5432 -1 -5452 5432 -1 -5832 5432 -1 -5433 5433 6 -5434 5433 -1 -5453 5433 -1 -5833 5433 -1 -5434 5434 6 -5435 5434 -1 -5454 5434 -1 -5834 5434 -1 -5435 5435 6 -5436 5435 -1 -5455 5435 -1 -5835 5435 -1 -5436 5436 6 -5437 5436 -1 -5456 5436 -1 -5836 5436 -1 -5437 5437 6 -5438 5437 -1 -5457 5437 -1 -5837 5437 -1 -5438 5438 6 -5439 5438 -1 -5458 5438 -1 -5838 5438 -1 -5439 5439 6 -5440 5439 -1 -5459 5439 -1 -5839 5439 -1 -5440 5440 6 -5460 5440 -1 -5840 5440 -1 -5441 5441 6 -5442 5441 -1 -5461 5441 -1 -5841 5441 -1 -5442 5442 6 -5443 5442 -1 -5462 5442 -1 -5842 5442 -1 -5443 5443 6 -5444 5443 -1 -5463 5443 -1 -5843 5443 -1 -5444 5444 6 -5445 5444 -1 -5464 5444 -1 -5844 5444 -1 -5445 5445 6 -5446 5445 -1 -5465 5445 -1 -5845 5445 -1 -5446 5446 6 -5447 5446 -1 -5466 5446 -1 -5846 5446 -1 -5447 5447 6 -5448 5447 -1 -5467 5447 -1 -5847 5447 -1 -5448 5448 6 -5449 5448 -1 -5468 5448 -1 -5848 5448 -1 -5449 5449 6 -5450 5449 -1 -5469 5449 -1 -5849 5449 -1 -5450 5450 6 -5451 5450 -1 -5470 5450 -1 -5850 5450 -1 -5451 5451 6 -5452 5451 -1 -5471 5451 -1 -5851 5451 -1 -5452 5452 6 -5453 5452 -1 -5472 5452 -1 -5852 5452 -1 -5453 5453 6 -5454 5453 -1 -5473 5453 -1 -5853 5453 -1 -5454 5454 6 -5455 5454 -1 -5474 5454 -1 -5854 5454 -1 -5455 5455 6 -5456 5455 -1 -5475 5455 -1 -5855 5455 -1 -5456 5456 6 -5457 5456 -1 -5476 5456 -1 -5856 5456 -1 -5457 5457 6 -5458 5457 -1 -5477 5457 -1 -5857 5457 -1 -5458 5458 6 -5459 5458 -1 -5478 5458 -1 -5858 5458 -1 -5459 5459 6 -5460 5459 -1 -5479 5459 -1 -5859 5459 -1 -5460 5460 6 -5480 5460 -1 -5860 5460 -1 -5461 5461 6 -5462 5461 -1 -5481 5461 -1 -5861 5461 -1 -5462 5462 6 -5463 5462 -1 -5482 5462 -1 -5862 5462 -1 -5463 5463 6 -5464 5463 -1 -5483 5463 -1 -5863 5463 -1 -5464 5464 6 -5465 5464 -1 -5484 5464 -1 -5864 5464 -1 -5465 5465 6 -5466 5465 -1 -5485 5465 -1 -5865 5465 -1 -5466 5466 6 -5467 5466 -1 -5486 5466 -1 -5866 5466 -1 -5467 5467 6 -5468 5467 -1 -5487 5467 -1 -5867 5467 -1 -5468 5468 6 -5469 5468 -1 -5488 5468 -1 -5868 5468 -1 -5469 5469 6 -5470 5469 -1 -5489 5469 -1 -5869 5469 -1 -5470 5470 6 -5471 5470 -1 -5490 5470 -1 -5870 5470 -1 -5471 5471 6 -5472 5471 -1 -5491 5471 -1 -5871 5471 -1 -5472 5472 6 -5473 5472 -1 -5492 5472 -1 -5872 5472 -1 -5473 5473 6 -5474 5473 -1 -5493 5473 -1 -5873 5473 -1 -5474 5474 6 -5475 5474 -1 -5494 5474 -1 -5874 5474 -1 -5475 5475 6 -5476 5475 -1 -5495 5475 -1 -5875 5475 -1 -5476 5476 6 -5477 5476 -1 -5496 5476 -1 -5876 5476 -1 -5477 5477 6 -5478 5477 -1 -5497 5477 -1 -5877 5477 -1 -5478 5478 6 -5479 5478 -1 -5498 5478 -1 -5878 5478 -1 -5479 5479 6 -5480 5479 -1 -5499 5479 -1 -5879 5479 -1 -5480 5480 6 -5500 5480 -1 -5880 5480 -1 -5481 5481 6 -5482 5481 -1 -5501 5481 -1 -5881 5481 -1 -5482 5482 6 -5483 5482 -1 -5502 5482 -1 -5882 5482 -1 -5483 5483 6 -5484 5483 -1 -5503 5483 -1 -5883 5483 -1 -5484 5484 6 -5485 5484 -1 -5504 5484 -1 -5884 5484 -1 -5485 5485 6 -5486 5485 -1 -5505 5485 -1 -5885 5485 -1 -5486 5486 6 -5487 5486 -1 -5506 5486 -1 -5886 5486 -1 -5487 5487 6 -5488 5487 -1 -5507 5487 -1 -5887 5487 -1 -5488 5488 6 -5489 5488 -1 -5508 5488 -1 -5888 5488 -1 -5489 5489 6 -5490 5489 -1 -5509 5489 -1 -5889 5489 -1 -5490 5490 6 -5491 5490 -1 -5510 5490 -1 -5890 5490 -1 -5491 5491 6 -5492 5491 -1 -5511 5491 -1 -5891 5491 -1 -5492 5492 6 -5493 5492 -1 -5512 5492 -1 -5892 5492 -1 -5493 5493 6 -5494 5493 -1 -5513 5493 -1 -5893 5493 -1 -5494 5494 6 -5495 5494 -1 -5514 5494 -1 -5894 5494 -1 -5495 5495 6 -5496 5495 -1 -5515 5495 -1 -5895 5495 -1 -5496 5496 6 -5497 5496 -1 -5516 5496 -1 -5896 5496 -1 -5497 5497 6 -5498 5497 -1 -5517 5497 -1 -5897 5497 -1 -5498 5498 6 -5499 5498 -1 -5518 5498 -1 -5898 5498 -1 -5499 5499 6 -5500 5499 -1 -5519 5499 -1 -5899 5499 -1 -5500 5500 6 -5520 5500 -1 -5900 5500 -1 -5501 5501 6 -5502 5501 -1 -5521 5501 -1 -5901 5501 -1 -5502 5502 6 -5503 5502 -1 -5522 5502 -1 -5902 5502 -1 -5503 5503 6 -5504 5503 -1 -5523 5503 -1 -5903 5503 -1 -5504 5504 6 -5505 5504 -1 -5524 5504 -1 -5904 5504 -1 -5505 5505 6 -5506 5505 -1 -5525 5505 -1 -5905 5505 -1 -5506 5506 6 -5507 5506 -1 -5526 5506 -1 -5906 5506 -1 -5507 5507 6 -5508 5507 -1 -5527 5507 -1 -5907 5507 -1 -5508 5508 6 -5509 5508 -1 -5528 5508 -1 -5908 5508 -1 -5509 5509 6 -5510 5509 -1 -5529 5509 -1 -5909 5509 -1 -5510 5510 6 -5511 5510 -1 -5530 5510 -1 -5910 5510 -1 -5511 5511 6 -5512 5511 -1 -5531 5511 -1 -5911 5511 -1 -5512 5512 6 -5513 5512 -1 -5532 5512 -1 -5912 5512 -1 -5513 5513 6 -5514 5513 -1 -5533 5513 -1 -5913 5513 -1 -5514 5514 6 -5515 5514 -1 -5534 5514 -1 -5914 5514 -1 -5515 5515 6 -5516 5515 -1 -5535 5515 -1 -5915 5515 -1 -5516 5516 6 -5517 5516 -1 -5536 5516 -1 -5916 5516 -1 -5517 5517 6 -5518 5517 -1 -5537 5517 -1 -5917 5517 -1 -5518 5518 6 -5519 5518 -1 -5538 5518 -1 -5918 5518 -1 -5519 5519 6 -5520 5519 -1 -5539 5519 -1 -5919 5519 -1 -5520 5520 6 -5540 5520 -1 -5920 5520 -1 -5521 5521 6 -5522 5521 -1 -5541 5521 -1 -5921 5521 -1 -5522 5522 6 -5523 5522 -1 -5542 5522 -1 -5922 5522 -1 -5523 5523 6 -5524 5523 -1 -5543 5523 -1 -5923 5523 -1 -5524 5524 6 -5525 5524 -1 -5544 5524 -1 -5924 5524 -1 -5525 5525 6 -5526 5525 -1 -5545 5525 -1 -5925 5525 -1 -5526 5526 6 -5527 5526 -1 -5546 5526 -1 -5926 5526 -1 -5527 5527 6 -5528 5527 -1 -5547 5527 -1 -5927 5527 -1 -5528 5528 6 -5529 5528 -1 -5548 5528 -1 -5928 5528 -1 -5529 5529 6 -5530 5529 -1 -5549 5529 -1 -5929 5529 -1 -5530 5530 6 -5531 5530 -1 -5550 5530 -1 -5930 5530 -1 -5531 5531 6 -5532 5531 -1 -5551 5531 -1 -5931 5531 -1 -5532 5532 6 -5533 5532 -1 -5552 5532 -1 -5932 5532 -1 -5533 5533 6 -5534 5533 -1 -5553 5533 -1 -5933 5533 -1 -5534 5534 6 -5535 5534 -1 -5554 5534 -1 -5934 5534 -1 -5535 5535 6 -5536 5535 -1 -5555 5535 -1 -5935 5535 -1 -5536 5536 6 -5537 5536 -1 -5556 5536 -1 -5936 5536 -1 -5537 5537 6 -5538 5537 -1 -5557 5537 -1 -5937 5537 -1 -5538 5538 6 -5539 5538 -1 -5558 5538 -1 -5938 5538 -1 -5539 5539 6 -5540 5539 -1 -5559 5539 -1 -5939 5539 -1 -5540 5540 6 -5560 5540 -1 -5940 5540 -1 -5541 5541 6 -5542 5541 -1 -5561 5541 -1 -5941 5541 -1 -5542 5542 6 -5543 5542 -1 -5562 5542 -1 -5942 5542 -1 -5543 5543 6 -5544 5543 -1 -5563 5543 -1 -5943 5543 -1 -5544 5544 6 -5545 5544 -1 -5564 5544 -1 -5944 5544 -1 -5545 5545 6 -5546 5545 -1 -5565 5545 -1 -5945 5545 -1 -5546 5546 6 -5547 5546 -1 -5566 5546 -1 -5946 5546 -1 -5547 5547 6 -5548 5547 -1 -5567 5547 -1 -5947 5547 -1 -5548 5548 6 -5549 5548 -1 -5568 5548 -1 -5948 5548 -1 -5549 5549 6 -5550 5549 -1 -5569 5549 -1 -5949 5549 -1 -5550 5550 6 -5551 5550 -1 -5570 5550 -1 -5950 5550 -1 -5551 5551 6 -5552 5551 -1 -5571 5551 -1 -5951 5551 -1 -5552 5552 6 -5553 5552 -1 -5572 5552 -1 -5952 5552 -1 -5553 5553 6 -5554 5553 -1 -5573 5553 -1 -5953 5553 -1 -5554 5554 6 -5555 5554 -1 -5574 5554 -1 -5954 5554 -1 -5555 5555 6 -5556 5555 -1 -5575 5555 -1 -5955 5555 -1 -5556 5556 6 -5557 5556 -1 -5576 5556 -1 -5956 5556 -1 -5557 5557 6 -5558 5557 -1 -5577 5557 -1 -5957 5557 -1 -5558 5558 6 -5559 5558 -1 -5578 5558 -1 -5958 5558 -1 -5559 5559 6 -5560 5559 -1 -5579 5559 -1 -5959 5559 -1 -5560 5560 6 -5580 5560 -1 -5960 5560 -1 -5561 5561 6 -5562 5561 -1 -5581 5561 -1 -5961 5561 -1 -5562 5562 6 -5563 5562 -1 -5582 5562 -1 -5962 5562 -1 -5563 5563 6 -5564 5563 -1 -5583 5563 -1 -5963 5563 -1 -5564 5564 6 -5565 5564 -1 -5584 5564 -1 -5964 5564 -1 -5565 5565 6 -5566 5565 -1 -5585 5565 -1 -5965 5565 -1 -5566 5566 6 -5567 5566 -1 -5586 5566 -1 -5966 5566 -1 -5567 5567 6 -5568 5567 -1 -5587 5567 -1 -5967 5567 -1 -5568 5568 6 -5569 5568 -1 -5588 5568 -1 -5968 5568 -1 -5569 5569 6 -5570 5569 -1 -5589 5569 -1 -5969 5569 -1 -5570 5570 6 -5571 5570 -1 -5590 5570 -1 -5970 5570 -1 -5571 5571 6 -5572 5571 -1 -5591 5571 -1 -5971 5571 -1 -5572 5572 6 -5573 5572 -1 -5592 5572 -1 -5972 5572 -1 -5573 5573 6 -5574 5573 -1 -5593 5573 -1 -5973 5573 -1 -5574 5574 6 -5575 5574 -1 -5594 5574 -1 -5974 5574 -1 -5575 5575 6 -5576 5575 -1 -5595 5575 -1 -5975 5575 -1 -5576 5576 6 -5577 5576 -1 -5596 5576 -1 -5976 5576 -1 -5577 5577 6 -5578 5577 -1 -5597 5577 -1 -5977 5577 -1 -5578 5578 6 -5579 5578 -1 -5598 5578 -1 -5978 5578 -1 -5579 5579 6 -5580 5579 -1 -5599 5579 -1 -5979 5579 -1 -5580 5580 6 -5600 5580 -1 -5980 5580 -1 -5581 5581 6 -5582 5581 -1 -5981 5581 -1 -5582 5582 6 -5583 5582 -1 -5982 5582 -1 -5583 5583 6 -5584 5583 -1 -5983 5583 -1 -5584 5584 6 -5585 5584 -1 -5984 5584 -1 -5585 5585 6 -5586 5585 -1 -5985 5585 -1 -5586 5586 6 -5587 5586 -1 -5986 5586 -1 -5587 5587 6 -5588 5587 -1 -5987 5587 -1 -5588 5588 6 -5589 5588 -1 -5988 5588 -1 -5589 5589 6 -5590 5589 -1 -5989 5589 -1 -5590 5590 6 -5591 5590 -1 -5990 5590 -1 -5591 5591 6 -5592 5591 -1 -5991 5591 -1 -5592 5592 6 -5593 5592 -1 -5992 5592 -1 -5593 5593 6 -5594 5593 -1 -5993 5593 -1 -5594 5594 6 -5595 5594 -1 -5994 5594 -1 -5595 5595 6 -5596 5595 -1 -5995 5595 -1 -5596 5596 6 -5597 5596 -1 -5996 5596 -1 -5597 5597 6 -5598 5597 -1 -5997 5597 -1 -5598 5598 6 -5599 5598 -1 -5998 5598 -1 -5599 5599 6 -5600 5599 -1 -5999 5599 -1 -5600 5600 6 -6000 5600 -1 -5601 5601 6 -5602 5601 -1 -5621 5601 -1 -6001 5601 -1 -5602 5602 6 -5603 5602 -1 -5622 5602 -1 -6002 5602 -1 -5603 5603 6 -5604 5603 -1 -5623 5603 -1 -6003 5603 -1 -5604 5604 6 -5605 5604 -1 -5624 5604 -1 -6004 5604 -1 -5605 5605 6 -5606 5605 -1 -5625 5605 -1 -6005 5605 -1 -5606 5606 6 -5607 5606 -1 -5626 5606 -1 -6006 5606 -1 -5607 5607 6 -5608 5607 -1 -5627 5607 -1 -6007 5607 -1 -5608 5608 6 -5609 5608 -1 -5628 5608 -1 -6008 5608 -1 -5609 5609 6 -5610 5609 -1 -5629 5609 -1 -6009 5609 -1 -5610 5610 6 -5611 5610 -1 -5630 5610 -1 -6010 5610 -1 -5611 5611 6 -5612 5611 -1 -5631 5611 -1 -6011 5611 -1 -5612 5612 6 -5613 5612 -1 -5632 5612 -1 -6012 5612 -1 -5613 5613 6 -5614 5613 -1 -5633 5613 -1 -6013 5613 -1 -5614 5614 6 -5615 5614 -1 -5634 5614 -1 -6014 5614 -1 -5615 5615 6 -5616 5615 -1 -5635 5615 -1 -6015 5615 -1 -5616 5616 6 -5617 5616 -1 -5636 5616 -1 -6016 5616 -1 -5617 5617 6 -5618 5617 -1 -5637 5617 -1 -6017 5617 -1 -5618 5618 6 -5619 5618 -1 -5638 5618 -1 -6018 5618 -1 -5619 5619 6 -5620 5619 -1 -5639 5619 -1 -6019 5619 -1 -5620 5620 6 -5640 5620 -1 -6020 5620 -1 -5621 5621 6 -5622 5621 -1 -5641 5621 -1 -6021 5621 -1 -5622 5622 6 -5623 5622 -1 -5642 5622 -1 -6022 5622 -1 -5623 5623 6 -5624 5623 -1 -5643 5623 -1 -6023 5623 -1 -5624 5624 6 -5625 5624 -1 -5644 5624 -1 -6024 5624 -1 -5625 5625 6 -5626 5625 -1 -5645 5625 -1 -6025 5625 -1 -5626 5626 6 -5627 5626 -1 -5646 5626 -1 -6026 5626 -1 -5627 5627 6 -5628 5627 -1 -5647 5627 -1 -6027 5627 -1 -5628 5628 6 -5629 5628 -1 -5648 5628 -1 -6028 5628 -1 -5629 5629 6 -5630 5629 -1 -5649 5629 -1 -6029 5629 -1 -5630 5630 6 -5631 5630 -1 -5650 5630 -1 -6030 5630 -1 -5631 5631 6 -5632 5631 -1 -5651 5631 -1 -6031 5631 -1 -5632 5632 6 -5633 5632 -1 -5652 5632 -1 -6032 5632 -1 -5633 5633 6 -5634 5633 -1 -5653 5633 -1 -6033 5633 -1 -5634 5634 6 -5635 5634 -1 -5654 5634 -1 -6034 5634 -1 -5635 5635 6 -5636 5635 -1 -5655 5635 -1 -6035 5635 -1 -5636 5636 6 -5637 5636 -1 -5656 5636 -1 -6036 5636 -1 -5637 5637 6 -5638 5637 -1 -5657 5637 -1 -6037 5637 -1 -5638 5638 6 -5639 5638 -1 -5658 5638 -1 -6038 5638 -1 -5639 5639 6 -5640 5639 -1 -5659 5639 -1 -6039 5639 -1 -5640 5640 6 -5660 5640 -1 -6040 5640 -1 -5641 5641 6 -5642 5641 -1 -5661 5641 -1 -6041 5641 -1 -5642 5642 6 -5643 5642 -1 -5662 5642 -1 -6042 5642 -1 -5643 5643 6 -5644 5643 -1 -5663 5643 -1 -6043 5643 -1 -5644 5644 6 -5645 5644 -1 -5664 5644 -1 -6044 5644 -1 -5645 5645 6 -5646 5645 -1 -5665 5645 -1 -6045 5645 -1 -5646 5646 6 -5647 5646 -1 -5666 5646 -1 -6046 5646 -1 -5647 5647 6 -5648 5647 -1 -5667 5647 -1 -6047 5647 -1 -5648 5648 6 -5649 5648 -1 -5668 5648 -1 -6048 5648 -1 -5649 5649 6 -5650 5649 -1 -5669 5649 -1 -6049 5649 -1 -5650 5650 6 -5651 5650 -1 -5670 5650 -1 -6050 5650 -1 -5651 5651 6 -5652 5651 -1 -5671 5651 -1 -6051 5651 -1 -5652 5652 6 -5653 5652 -1 -5672 5652 -1 -6052 5652 -1 -5653 5653 6 -5654 5653 -1 -5673 5653 -1 -6053 5653 -1 -5654 5654 6 -5655 5654 -1 -5674 5654 -1 -6054 5654 -1 -5655 5655 6 -5656 5655 -1 -5675 5655 -1 -6055 5655 -1 -5656 5656 6 -5657 5656 -1 -5676 5656 -1 -6056 5656 -1 -5657 5657 6 -5658 5657 -1 -5677 5657 -1 -6057 5657 -1 -5658 5658 6 -5659 5658 -1 -5678 5658 -1 -6058 5658 -1 -5659 5659 6 -5660 5659 -1 -5679 5659 -1 -6059 5659 -1 -5660 5660 6 -5680 5660 -1 -6060 5660 -1 -5661 5661 6 -5662 5661 -1 -5681 5661 -1 -6061 5661 -1 -5662 5662 6 -5663 5662 -1 -5682 5662 -1 -6062 5662 -1 -5663 5663 6 -5664 5663 -1 -5683 5663 -1 -6063 5663 -1 -5664 5664 6 -5665 5664 -1 -5684 5664 -1 -6064 5664 -1 -5665 5665 6 -5666 5665 -1 -5685 5665 -1 -6065 5665 -1 -5666 5666 6 -5667 5666 -1 -5686 5666 -1 -6066 5666 -1 -5667 5667 6 -5668 5667 -1 -5687 5667 -1 -6067 5667 -1 -5668 5668 6 -5669 5668 -1 -5688 5668 -1 -6068 5668 -1 -5669 5669 6 -5670 5669 -1 -5689 5669 -1 -6069 5669 -1 -5670 5670 6 -5671 5670 -1 -5690 5670 -1 -6070 5670 -1 -5671 5671 6 -5672 5671 -1 -5691 5671 -1 -6071 5671 -1 -5672 5672 6 -5673 5672 -1 -5692 5672 -1 -6072 5672 -1 -5673 5673 6 -5674 5673 -1 -5693 5673 -1 -6073 5673 -1 -5674 5674 6 -5675 5674 -1 -5694 5674 -1 -6074 5674 -1 -5675 5675 6 -5676 5675 -1 -5695 5675 -1 -6075 5675 -1 -5676 5676 6 -5677 5676 -1 -5696 5676 -1 -6076 5676 -1 -5677 5677 6 -5678 5677 -1 -5697 5677 -1 -6077 5677 -1 -5678 5678 6 -5679 5678 -1 -5698 5678 -1 -6078 5678 -1 -5679 5679 6 -5680 5679 -1 -5699 5679 -1 -6079 5679 -1 -5680 5680 6 -5700 5680 -1 -6080 5680 -1 -5681 5681 6 -5682 5681 -1 -5701 5681 -1 -6081 5681 -1 -5682 5682 6 -5683 5682 -1 -5702 5682 -1 -6082 5682 -1 -5683 5683 6 -5684 5683 -1 -5703 5683 -1 -6083 5683 -1 -5684 5684 6 -5685 5684 -1 -5704 5684 -1 -6084 5684 -1 -5685 5685 6 -5686 5685 -1 -5705 5685 -1 -6085 5685 -1 -5686 5686 6 -5687 5686 -1 -5706 5686 -1 -6086 5686 -1 -5687 5687 6 -5688 5687 -1 -5707 5687 -1 -6087 5687 -1 -5688 5688 6 -5689 5688 -1 -5708 5688 -1 -6088 5688 -1 -5689 5689 6 -5690 5689 -1 -5709 5689 -1 -6089 5689 -1 -5690 5690 6 -5691 5690 -1 -5710 5690 -1 -6090 5690 -1 -5691 5691 6 -5692 5691 -1 -5711 5691 -1 -6091 5691 -1 -5692 5692 6 -5693 5692 -1 -5712 5692 -1 -6092 5692 -1 -5693 5693 6 -5694 5693 -1 -5713 5693 -1 -6093 5693 -1 -5694 5694 6 -5695 5694 -1 -5714 5694 -1 -6094 5694 -1 -5695 5695 6 -5696 5695 -1 -5715 5695 -1 -6095 5695 -1 -5696 5696 6 -5697 5696 -1 -5716 5696 -1 -6096 5696 -1 -5697 5697 6 -5698 5697 -1 -5717 5697 -1 -6097 5697 -1 -5698 5698 6 -5699 5698 -1 -5718 5698 -1 -6098 5698 -1 -5699 5699 6 -5700 5699 -1 -5719 5699 -1 -6099 5699 -1 -5700 5700 6 -5720 5700 -1 -6100 5700 -1 -5701 5701 6 -5702 5701 -1 -5721 5701 -1 -6101 5701 -1 -5702 5702 6 -5703 5702 -1 -5722 5702 -1 -6102 5702 -1 -5703 5703 6 -5704 5703 -1 -5723 5703 -1 -6103 5703 -1 -5704 5704 6 -5705 5704 -1 -5724 5704 -1 -6104 5704 -1 -5705 5705 6 -5706 5705 -1 -5725 5705 -1 -6105 5705 -1 -5706 5706 6 -5707 5706 -1 -5726 5706 -1 -6106 5706 -1 -5707 5707 6 -5708 5707 -1 -5727 5707 -1 -6107 5707 -1 -5708 5708 6 -5709 5708 -1 -5728 5708 -1 -6108 5708 -1 -5709 5709 6 -5710 5709 -1 -5729 5709 -1 -6109 5709 -1 -5710 5710 6 -5711 5710 -1 -5730 5710 -1 -6110 5710 -1 -5711 5711 6 -5712 5711 -1 -5731 5711 -1 -6111 5711 -1 -5712 5712 6 -5713 5712 -1 -5732 5712 -1 -6112 5712 -1 -5713 5713 6 -5714 5713 -1 -5733 5713 -1 -6113 5713 -1 -5714 5714 6 -5715 5714 -1 -5734 5714 -1 -6114 5714 -1 -5715 5715 6 -5716 5715 -1 -5735 5715 -1 -6115 5715 -1 -5716 5716 6 -5717 5716 -1 -5736 5716 -1 -6116 5716 -1 -5717 5717 6 -5718 5717 -1 -5737 5717 -1 -6117 5717 -1 -5718 5718 6 -5719 5718 -1 -5738 5718 -1 -6118 5718 -1 -5719 5719 6 -5720 5719 -1 -5739 5719 -1 -6119 5719 -1 -5720 5720 6 -5740 5720 -1 -6120 5720 -1 -5721 5721 6 -5722 5721 -1 -5741 5721 -1 -6121 5721 -1 -5722 5722 6 -5723 5722 -1 -5742 5722 -1 -6122 5722 -1 -5723 5723 6 -5724 5723 -1 -5743 5723 -1 -6123 5723 -1 -5724 5724 6 -5725 5724 -1 -5744 5724 -1 -6124 5724 -1 -5725 5725 6 -5726 5725 -1 -5745 5725 -1 -6125 5725 -1 -5726 5726 6 -5727 5726 -1 -5746 5726 -1 -6126 5726 -1 -5727 5727 6 -5728 5727 -1 -5747 5727 -1 -6127 5727 -1 -5728 5728 6 -5729 5728 -1 -5748 5728 -1 -6128 5728 -1 -5729 5729 6 -5730 5729 -1 -5749 5729 -1 -6129 5729 -1 -5730 5730 6 -5731 5730 -1 -5750 5730 -1 -6130 5730 -1 -5731 5731 6 -5732 5731 -1 -5751 5731 -1 -6131 5731 -1 -5732 5732 6 -5733 5732 -1 -5752 5732 -1 -6132 5732 -1 -5733 5733 6 -5734 5733 -1 -5753 5733 -1 -6133 5733 -1 -5734 5734 6 -5735 5734 -1 -5754 5734 -1 -6134 5734 -1 -5735 5735 6 -5736 5735 -1 -5755 5735 -1 -6135 5735 -1 -5736 5736 6 -5737 5736 -1 -5756 5736 -1 -6136 5736 -1 -5737 5737 6 -5738 5737 -1 -5757 5737 -1 -6137 5737 -1 -5738 5738 6 -5739 5738 -1 -5758 5738 -1 -6138 5738 -1 -5739 5739 6 -5740 5739 -1 -5759 5739 -1 -6139 5739 -1 -5740 5740 6 -5760 5740 -1 -6140 5740 -1 -5741 5741 6 -5742 5741 -1 -5761 5741 -1 -6141 5741 -1 -5742 5742 6 -5743 5742 -1 -5762 5742 -1 -6142 5742 -1 -5743 5743 6 -5744 5743 -1 -5763 5743 -1 -6143 5743 -1 -5744 5744 6 -5745 5744 -1 -5764 5744 -1 -6144 5744 -1 -5745 5745 6 -5746 5745 -1 -5765 5745 -1 -6145 5745 -1 -5746 5746 6 -5747 5746 -1 -5766 5746 -1 -6146 5746 -1 -5747 5747 6 -5748 5747 -1 -5767 5747 -1 -6147 5747 -1 -5748 5748 6 -5749 5748 -1 -5768 5748 -1 -6148 5748 -1 -5749 5749 6 -5750 5749 -1 -5769 5749 -1 -6149 5749 -1 -5750 5750 6 -5751 5750 -1 -5770 5750 -1 -6150 5750 -1 -5751 5751 6 -5752 5751 -1 -5771 5751 -1 -6151 5751 -1 -5752 5752 6 -5753 5752 -1 -5772 5752 -1 -6152 5752 -1 -5753 5753 6 -5754 5753 -1 -5773 5753 -1 -6153 5753 -1 -5754 5754 6 -5755 5754 -1 -5774 5754 -1 -6154 5754 -1 -5755 5755 6 -5756 5755 -1 -5775 5755 -1 -6155 5755 -1 -5756 5756 6 -5757 5756 -1 -5776 5756 -1 -6156 5756 -1 -5757 5757 6 -5758 5757 -1 -5777 5757 -1 -6157 5757 -1 -5758 5758 6 -5759 5758 -1 -5778 5758 -1 -6158 5758 -1 -5759 5759 6 -5760 5759 -1 -5779 5759 -1 -6159 5759 -1 -5760 5760 6 -5780 5760 -1 -6160 5760 -1 -5761 5761 6 -5762 5761 -1 -5781 5761 -1 -6161 5761 -1 -5762 5762 6 -5763 5762 -1 -5782 5762 -1 -6162 5762 -1 -5763 5763 6 -5764 5763 -1 -5783 5763 -1 -6163 5763 -1 -5764 5764 6 -5765 5764 -1 -5784 5764 -1 -6164 5764 -1 -5765 5765 6 -5766 5765 -1 -5785 5765 -1 -6165 5765 -1 -5766 5766 6 -5767 5766 -1 -5786 5766 -1 -6166 5766 -1 -5767 5767 6 -5768 5767 -1 -5787 5767 -1 -6167 5767 -1 -5768 5768 6 -5769 5768 -1 -5788 5768 -1 -6168 5768 -1 -5769 5769 6 -5770 5769 -1 -5789 5769 -1 -6169 5769 -1 -5770 5770 6 -5771 5770 -1 -5790 5770 -1 -6170 5770 -1 -5771 5771 6 -5772 5771 -1 -5791 5771 -1 -6171 5771 -1 -5772 5772 6 -5773 5772 -1 -5792 5772 -1 -6172 5772 -1 -5773 5773 6 -5774 5773 -1 -5793 5773 -1 -6173 5773 -1 -5774 5774 6 -5775 5774 -1 -5794 5774 -1 -6174 5774 -1 -5775 5775 6 -5776 5775 -1 -5795 5775 -1 -6175 5775 -1 -5776 5776 6 -5777 5776 -1 -5796 5776 -1 -6176 5776 -1 -5777 5777 6 -5778 5777 -1 -5797 5777 -1 -6177 5777 -1 -5778 5778 6 -5779 5778 -1 -5798 5778 -1 -6178 5778 -1 -5779 5779 6 -5780 5779 -1 -5799 5779 -1 -6179 5779 -1 -5780 5780 6 -5800 5780 -1 -6180 5780 -1 -5781 5781 6 -5782 5781 -1 -5801 5781 -1 -6181 5781 -1 -5782 5782 6 -5783 5782 -1 -5802 5782 -1 -6182 5782 -1 -5783 5783 6 -5784 5783 -1 -5803 5783 -1 -6183 5783 -1 -5784 5784 6 -5785 5784 -1 -5804 5784 -1 -6184 5784 -1 -5785 5785 6 -5786 5785 -1 -5805 5785 -1 -6185 5785 -1 -5786 5786 6 -5787 5786 -1 -5806 5786 -1 -6186 5786 -1 -5787 5787 6 -5788 5787 -1 -5807 5787 -1 -6187 5787 -1 -5788 5788 6 -5789 5788 -1 -5808 5788 -1 -6188 5788 -1 -5789 5789 6 -5790 5789 -1 -5809 5789 -1 -6189 5789 -1 -5790 5790 6 -5791 5790 -1 -5810 5790 -1 -6190 5790 -1 -5791 5791 6 -5792 5791 -1 -5811 5791 -1 -6191 5791 -1 -5792 5792 6 -5793 5792 -1 -5812 5792 -1 -6192 5792 -1 -5793 5793 6 -5794 5793 -1 -5813 5793 -1 -6193 5793 -1 -5794 5794 6 -5795 5794 -1 -5814 5794 -1 -6194 5794 -1 -5795 5795 6 -5796 5795 -1 -5815 5795 -1 -6195 5795 -1 -5796 5796 6 -5797 5796 -1 -5816 5796 -1 -6196 5796 -1 -5797 5797 6 -5798 5797 -1 -5817 5797 -1 -6197 5797 -1 -5798 5798 6 -5799 5798 -1 -5818 5798 -1 -6198 5798 -1 -5799 5799 6 -5800 5799 -1 -5819 5799 -1 -6199 5799 -1 -5800 5800 6 -5820 5800 -1 -6200 5800 -1 -5801 5801 6 -5802 5801 -1 -5821 5801 -1 -6201 5801 -1 -5802 5802 6 -5803 5802 -1 -5822 5802 -1 -6202 5802 -1 -5803 5803 6 -5804 5803 -1 -5823 5803 -1 -6203 5803 -1 -5804 5804 6 -5805 5804 -1 -5824 5804 -1 -6204 5804 -1 -5805 5805 6 -5806 5805 -1 -5825 5805 -1 -6205 5805 -1 -5806 5806 6 -5807 5806 -1 -5826 5806 -1 -6206 5806 -1 -5807 5807 6 -5808 5807 -1 -5827 5807 -1 -6207 5807 -1 -5808 5808 6 -5809 5808 -1 -5828 5808 -1 -6208 5808 -1 -5809 5809 6 -5810 5809 -1 -5829 5809 -1 -6209 5809 -1 -5810 5810 6 -5811 5810 -1 -5830 5810 -1 -6210 5810 -1 -5811 5811 6 -5812 5811 -1 -5831 5811 -1 -6211 5811 -1 -5812 5812 6 -5813 5812 -1 -5832 5812 -1 -6212 5812 -1 -5813 5813 6 -5814 5813 -1 -5833 5813 -1 -6213 5813 -1 -5814 5814 6 -5815 5814 -1 -5834 5814 -1 -6214 5814 -1 -5815 5815 6 -5816 5815 -1 -5835 5815 -1 -6215 5815 -1 -5816 5816 6 -5817 5816 -1 -5836 5816 -1 -6216 5816 -1 -5817 5817 6 -5818 5817 -1 -5837 5817 -1 -6217 5817 -1 -5818 5818 6 -5819 5818 -1 -5838 5818 -1 -6218 5818 -1 -5819 5819 6 -5820 5819 -1 -5839 5819 -1 -6219 5819 -1 -5820 5820 6 -5840 5820 -1 -6220 5820 -1 -5821 5821 6 -5822 5821 -1 -5841 5821 -1 -6221 5821 -1 -5822 5822 6 -5823 5822 -1 -5842 5822 -1 -6222 5822 -1 -5823 5823 6 -5824 5823 -1 -5843 5823 -1 -6223 5823 -1 -5824 5824 6 -5825 5824 -1 -5844 5824 -1 -6224 5824 -1 -5825 5825 6 -5826 5825 -1 -5845 5825 -1 -6225 5825 -1 -5826 5826 6 -5827 5826 -1 -5846 5826 -1 -6226 5826 -1 -5827 5827 6 -5828 5827 -1 -5847 5827 -1 -6227 5827 -1 -5828 5828 6 -5829 5828 -1 -5848 5828 -1 -6228 5828 -1 -5829 5829 6 -5830 5829 -1 -5849 5829 -1 -6229 5829 -1 -5830 5830 6 -5831 5830 -1 -5850 5830 -1 -6230 5830 -1 -5831 5831 6 -5832 5831 -1 -5851 5831 -1 -6231 5831 -1 -5832 5832 6 -5833 5832 -1 -5852 5832 -1 -6232 5832 -1 -5833 5833 6 -5834 5833 -1 -5853 5833 -1 -6233 5833 -1 -5834 5834 6 -5835 5834 -1 -5854 5834 -1 -6234 5834 -1 -5835 5835 6 -5836 5835 -1 -5855 5835 -1 -6235 5835 -1 -5836 5836 6 -5837 5836 -1 -5856 5836 -1 -6236 5836 -1 -5837 5837 6 -5838 5837 -1 -5857 5837 -1 -6237 5837 -1 -5838 5838 6 -5839 5838 -1 -5858 5838 -1 -6238 5838 -1 -5839 5839 6 -5840 5839 -1 -5859 5839 -1 -6239 5839 -1 -5840 5840 6 -5860 5840 -1 -6240 5840 -1 -5841 5841 6 -5842 5841 -1 -5861 5841 -1 -6241 5841 -1 -5842 5842 6 -5843 5842 -1 -5862 5842 -1 -6242 5842 -1 -5843 5843 6 -5844 5843 -1 -5863 5843 -1 -6243 5843 -1 -5844 5844 6 -5845 5844 -1 -5864 5844 -1 -6244 5844 -1 -5845 5845 6 -5846 5845 -1 -5865 5845 -1 -6245 5845 -1 -5846 5846 6 -5847 5846 -1 -5866 5846 -1 -6246 5846 -1 -5847 5847 6 -5848 5847 -1 -5867 5847 -1 -6247 5847 -1 -5848 5848 6 -5849 5848 -1 -5868 5848 -1 -6248 5848 -1 -5849 5849 6 -5850 5849 -1 -5869 5849 -1 -6249 5849 -1 -5850 5850 6 -5851 5850 -1 -5870 5850 -1 -6250 5850 -1 -5851 5851 6 -5852 5851 -1 -5871 5851 -1 -6251 5851 -1 -5852 5852 6 -5853 5852 -1 -5872 5852 -1 -6252 5852 -1 -5853 5853 6 -5854 5853 -1 -5873 5853 -1 -6253 5853 -1 -5854 5854 6 -5855 5854 -1 -5874 5854 -1 -6254 5854 -1 -5855 5855 6 -5856 5855 -1 -5875 5855 -1 -6255 5855 -1 -5856 5856 6 -5857 5856 -1 -5876 5856 -1 -6256 5856 -1 -5857 5857 6 -5858 5857 -1 -5877 5857 -1 -6257 5857 -1 -5858 5858 6 -5859 5858 -1 -5878 5858 -1 -6258 5858 -1 -5859 5859 6 -5860 5859 -1 -5879 5859 -1 -6259 5859 -1 -5860 5860 6 -5880 5860 -1 -6260 5860 -1 -5861 5861 6 -5862 5861 -1 -5881 5861 -1 -6261 5861 -1 -5862 5862 6 -5863 5862 -1 -5882 5862 -1 -6262 5862 -1 -5863 5863 6 -5864 5863 -1 -5883 5863 -1 -6263 5863 -1 -5864 5864 6 -5865 5864 -1 -5884 5864 -1 -6264 5864 -1 -5865 5865 6 -5866 5865 -1 -5885 5865 -1 -6265 5865 -1 -5866 5866 6 -5867 5866 -1 -5886 5866 -1 -6266 5866 -1 -5867 5867 6 -5868 5867 -1 -5887 5867 -1 -6267 5867 -1 -5868 5868 6 -5869 5868 -1 -5888 5868 -1 -6268 5868 -1 -5869 5869 6 -5870 5869 -1 -5889 5869 -1 -6269 5869 -1 -5870 5870 6 -5871 5870 -1 -5890 5870 -1 -6270 5870 -1 -5871 5871 6 -5872 5871 -1 -5891 5871 -1 -6271 5871 -1 -5872 5872 6 -5873 5872 -1 -5892 5872 -1 -6272 5872 -1 -5873 5873 6 -5874 5873 -1 -5893 5873 -1 -6273 5873 -1 -5874 5874 6 -5875 5874 -1 -5894 5874 -1 -6274 5874 -1 -5875 5875 6 -5876 5875 -1 -5895 5875 -1 -6275 5875 -1 -5876 5876 6 -5877 5876 -1 -5896 5876 -1 -6276 5876 -1 -5877 5877 6 -5878 5877 -1 -5897 5877 -1 -6277 5877 -1 -5878 5878 6 -5879 5878 -1 -5898 5878 -1 -6278 5878 -1 -5879 5879 6 -5880 5879 -1 -5899 5879 -1 -6279 5879 -1 -5880 5880 6 -5900 5880 -1 -6280 5880 -1 -5881 5881 6 -5882 5881 -1 -5901 5881 -1 -6281 5881 -1 -5882 5882 6 -5883 5882 -1 -5902 5882 -1 -6282 5882 -1 -5883 5883 6 -5884 5883 -1 -5903 5883 -1 -6283 5883 -1 -5884 5884 6 -5885 5884 -1 -5904 5884 -1 -6284 5884 -1 -5885 5885 6 -5886 5885 -1 -5905 5885 -1 -6285 5885 -1 -5886 5886 6 -5887 5886 -1 -5906 5886 -1 -6286 5886 -1 -5887 5887 6 -5888 5887 -1 -5907 5887 -1 -6287 5887 -1 -5888 5888 6 -5889 5888 -1 -5908 5888 -1 -6288 5888 -1 -5889 5889 6 -5890 5889 -1 -5909 5889 -1 -6289 5889 -1 -5890 5890 6 -5891 5890 -1 -5910 5890 -1 -6290 5890 -1 -5891 5891 6 -5892 5891 -1 -5911 5891 -1 -6291 5891 -1 -5892 5892 6 -5893 5892 -1 -5912 5892 -1 -6292 5892 -1 -5893 5893 6 -5894 5893 -1 -5913 5893 -1 -6293 5893 -1 -5894 5894 6 -5895 5894 -1 -5914 5894 -1 -6294 5894 -1 -5895 5895 6 -5896 5895 -1 -5915 5895 -1 -6295 5895 -1 -5896 5896 6 -5897 5896 -1 -5916 5896 -1 -6296 5896 -1 -5897 5897 6 -5898 5897 -1 -5917 5897 -1 -6297 5897 -1 -5898 5898 6 -5899 5898 -1 -5918 5898 -1 -6298 5898 -1 -5899 5899 6 -5900 5899 -1 -5919 5899 -1 -6299 5899 -1 -5900 5900 6 -5920 5900 -1 -6300 5900 -1 -5901 5901 6 -5902 5901 -1 -5921 5901 -1 -6301 5901 -1 -5902 5902 6 -5903 5902 -1 -5922 5902 -1 -6302 5902 -1 -5903 5903 6 -5904 5903 -1 -5923 5903 -1 -6303 5903 -1 -5904 5904 6 -5905 5904 -1 -5924 5904 -1 -6304 5904 -1 -5905 5905 6 -5906 5905 -1 -5925 5905 -1 -6305 5905 -1 -5906 5906 6 -5907 5906 -1 -5926 5906 -1 -6306 5906 -1 -5907 5907 6 -5908 5907 -1 -5927 5907 -1 -6307 5907 -1 -5908 5908 6 -5909 5908 -1 -5928 5908 -1 -6308 5908 -1 -5909 5909 6 -5910 5909 -1 -5929 5909 -1 -6309 5909 -1 -5910 5910 6 -5911 5910 -1 -5930 5910 -1 -6310 5910 -1 -5911 5911 6 -5912 5911 -1 -5931 5911 -1 -6311 5911 -1 -5912 5912 6 -5913 5912 -1 -5932 5912 -1 -6312 5912 -1 -5913 5913 6 -5914 5913 -1 -5933 5913 -1 -6313 5913 -1 -5914 5914 6 -5915 5914 -1 -5934 5914 -1 -6314 5914 -1 -5915 5915 6 -5916 5915 -1 -5935 5915 -1 -6315 5915 -1 -5916 5916 6 -5917 5916 -1 -5936 5916 -1 -6316 5916 -1 -5917 5917 6 -5918 5917 -1 -5937 5917 -1 -6317 5917 -1 -5918 5918 6 -5919 5918 -1 -5938 5918 -1 -6318 5918 -1 -5919 5919 6 -5920 5919 -1 -5939 5919 -1 -6319 5919 -1 -5920 5920 6 -5940 5920 -1 -6320 5920 -1 -5921 5921 6 -5922 5921 -1 -5941 5921 -1 -6321 5921 -1 -5922 5922 6 -5923 5922 -1 -5942 5922 -1 -6322 5922 -1 -5923 5923 6 -5924 5923 -1 -5943 5923 -1 -6323 5923 -1 -5924 5924 6 -5925 5924 -1 -5944 5924 -1 -6324 5924 -1 -5925 5925 6 -5926 5925 -1 -5945 5925 -1 -6325 5925 -1 -5926 5926 6 -5927 5926 -1 -5946 5926 -1 -6326 5926 -1 -5927 5927 6 -5928 5927 -1 -5947 5927 -1 -6327 5927 -1 -5928 5928 6 -5929 5928 -1 -5948 5928 -1 -6328 5928 -1 -5929 5929 6 -5930 5929 -1 -5949 5929 -1 -6329 5929 -1 -5930 5930 6 -5931 5930 -1 -5950 5930 -1 -6330 5930 -1 -5931 5931 6 -5932 5931 -1 -5951 5931 -1 -6331 5931 -1 -5932 5932 6 -5933 5932 -1 -5952 5932 -1 -6332 5932 -1 -5933 5933 6 -5934 5933 -1 -5953 5933 -1 -6333 5933 -1 -5934 5934 6 -5935 5934 -1 -5954 5934 -1 -6334 5934 -1 -5935 5935 6 -5936 5935 -1 -5955 5935 -1 -6335 5935 -1 -5936 5936 6 -5937 5936 -1 -5956 5936 -1 -6336 5936 -1 -5937 5937 6 -5938 5937 -1 -5957 5937 -1 -6337 5937 -1 -5938 5938 6 -5939 5938 -1 -5958 5938 -1 -6338 5938 -1 -5939 5939 6 -5940 5939 -1 -5959 5939 -1 -6339 5939 -1 -5940 5940 6 -5960 5940 -1 -6340 5940 -1 -5941 5941 6 -5942 5941 -1 -5961 5941 -1 -6341 5941 -1 -5942 5942 6 -5943 5942 -1 -5962 5942 -1 -6342 5942 -1 -5943 5943 6 -5944 5943 -1 -5963 5943 -1 -6343 5943 -1 -5944 5944 6 -5945 5944 -1 -5964 5944 -1 -6344 5944 -1 -5945 5945 6 -5946 5945 -1 -5965 5945 -1 -6345 5945 -1 -5946 5946 6 -5947 5946 -1 -5966 5946 -1 -6346 5946 -1 -5947 5947 6 -5948 5947 -1 -5967 5947 -1 -6347 5947 -1 -5948 5948 6 -5949 5948 -1 -5968 5948 -1 -6348 5948 -1 -5949 5949 6 -5950 5949 -1 -5969 5949 -1 -6349 5949 -1 -5950 5950 6 -5951 5950 -1 -5970 5950 -1 -6350 5950 -1 -5951 5951 6 -5952 5951 -1 -5971 5951 -1 -6351 5951 -1 -5952 5952 6 -5953 5952 -1 -5972 5952 -1 -6352 5952 -1 -5953 5953 6 -5954 5953 -1 -5973 5953 -1 -6353 5953 -1 -5954 5954 6 -5955 5954 -1 -5974 5954 -1 -6354 5954 -1 -5955 5955 6 -5956 5955 -1 -5975 5955 -1 -6355 5955 -1 -5956 5956 6 -5957 5956 -1 -5976 5956 -1 -6356 5956 -1 -5957 5957 6 -5958 5957 -1 -5977 5957 -1 -6357 5957 -1 -5958 5958 6 -5959 5958 -1 -5978 5958 -1 -6358 5958 -1 -5959 5959 6 -5960 5959 -1 -5979 5959 -1 -6359 5959 -1 -5960 5960 6 -5980 5960 -1 -6360 5960 -1 -5961 5961 6 -5962 5961 -1 -5981 5961 -1 -6361 5961 -1 -5962 5962 6 -5963 5962 -1 -5982 5962 -1 -6362 5962 -1 -5963 5963 6 -5964 5963 -1 -5983 5963 -1 -6363 5963 -1 -5964 5964 6 -5965 5964 -1 -5984 5964 -1 -6364 5964 -1 -5965 5965 6 -5966 5965 -1 -5985 5965 -1 -6365 5965 -1 -5966 5966 6 -5967 5966 -1 -5986 5966 -1 -6366 5966 -1 -5967 5967 6 -5968 5967 -1 -5987 5967 -1 -6367 5967 -1 -5968 5968 6 -5969 5968 -1 -5988 5968 -1 -6368 5968 -1 -5969 5969 6 -5970 5969 -1 -5989 5969 -1 -6369 5969 -1 -5970 5970 6 -5971 5970 -1 -5990 5970 -1 -6370 5970 -1 -5971 5971 6 -5972 5971 -1 -5991 5971 -1 -6371 5971 -1 -5972 5972 6 -5973 5972 -1 -5992 5972 -1 -6372 5972 -1 -5973 5973 6 -5974 5973 -1 -5993 5973 -1 -6373 5973 -1 -5974 5974 6 -5975 5974 -1 -5994 5974 -1 -6374 5974 -1 -5975 5975 6 -5976 5975 -1 -5995 5975 -1 -6375 5975 -1 -5976 5976 6 -5977 5976 -1 -5996 5976 -1 -6376 5976 -1 -5977 5977 6 -5978 5977 -1 -5997 5977 -1 -6377 5977 -1 -5978 5978 6 -5979 5978 -1 -5998 5978 -1 -6378 5978 -1 -5979 5979 6 -5980 5979 -1 -5999 5979 -1 -6379 5979 -1 -5980 5980 6 -6000 5980 -1 -6380 5980 -1 -5981 5981 6 -5982 5981 -1 -6381 5981 -1 -5982 5982 6 -5983 5982 -1 -6382 5982 -1 -5983 5983 6 -5984 5983 -1 -6383 5983 -1 -5984 5984 6 -5985 5984 -1 -6384 5984 -1 -5985 5985 6 -5986 5985 -1 -6385 5985 -1 -5986 5986 6 -5987 5986 -1 -6386 5986 -1 -5987 5987 6 -5988 5987 -1 -6387 5987 -1 -5988 5988 6 -5989 5988 -1 -6388 5988 -1 -5989 5989 6 -5990 5989 -1 -6389 5989 -1 -5990 5990 6 -5991 5990 -1 -6390 5990 -1 -5991 5991 6 -5992 5991 -1 -6391 5991 -1 -5992 5992 6 -5993 5992 -1 -6392 5992 -1 -5993 5993 6 -5994 5993 -1 -6393 5993 -1 -5994 5994 6 -5995 5994 -1 -6394 5994 -1 -5995 5995 6 -5996 5995 -1 -6395 5995 -1 -5996 5996 6 -5997 5996 -1 -6396 5996 -1 -5997 5997 6 -5998 5997 -1 -6397 5997 -1 -5998 5998 6 -5999 5998 -1 -6398 5998 -1 -5999 5999 6 -6000 5999 -1 -6399 5999 -1 -6000 6000 6 -6400 6000 -1 -6001 6001 6 -6002 6001 -1 -6021 6001 -1 -6401 6001 -1 -6002 6002 6 -6003 6002 -1 -6022 6002 -1 -6402 6002 -1 -6003 6003 6 -6004 6003 -1 -6023 6003 -1 -6403 6003 -1 -6004 6004 6 -6005 6004 -1 -6024 6004 -1 -6404 6004 -1 -6005 6005 6 -6006 6005 -1 -6025 6005 -1 -6405 6005 -1 -6006 6006 6 -6007 6006 -1 -6026 6006 -1 -6406 6006 -1 -6007 6007 6 -6008 6007 -1 -6027 6007 -1 -6407 6007 -1 -6008 6008 6 -6009 6008 -1 -6028 6008 -1 -6408 6008 -1 -6009 6009 6 -6010 6009 -1 -6029 6009 -1 -6409 6009 -1 -6010 6010 6 -6011 6010 -1 -6030 6010 -1 -6410 6010 -1 -6011 6011 6 -6012 6011 -1 -6031 6011 -1 -6411 6011 -1 -6012 6012 6 -6013 6012 -1 -6032 6012 -1 -6412 6012 -1 -6013 6013 6 -6014 6013 -1 -6033 6013 -1 -6413 6013 -1 -6014 6014 6 -6015 6014 -1 -6034 6014 -1 -6414 6014 -1 -6015 6015 6 -6016 6015 -1 -6035 6015 -1 -6415 6015 -1 -6016 6016 6 -6017 6016 -1 -6036 6016 -1 -6416 6016 -1 -6017 6017 6 -6018 6017 -1 -6037 6017 -1 -6417 6017 -1 -6018 6018 6 -6019 6018 -1 -6038 6018 -1 -6418 6018 -1 -6019 6019 6 -6020 6019 -1 -6039 6019 -1 -6419 6019 -1 -6020 6020 6 -6040 6020 -1 -6420 6020 -1 -6021 6021 6 -6022 6021 -1 -6041 6021 -1 -6421 6021 -1 -6022 6022 6 -6023 6022 -1 -6042 6022 -1 -6422 6022 -1 -6023 6023 6 -6024 6023 -1 -6043 6023 -1 -6423 6023 -1 -6024 6024 6 -6025 6024 -1 -6044 6024 -1 -6424 6024 -1 -6025 6025 6 -6026 6025 -1 -6045 6025 -1 -6425 6025 -1 -6026 6026 6 -6027 6026 -1 -6046 6026 -1 -6426 6026 -1 -6027 6027 6 -6028 6027 -1 -6047 6027 -1 -6427 6027 -1 -6028 6028 6 -6029 6028 -1 -6048 6028 -1 -6428 6028 -1 -6029 6029 6 -6030 6029 -1 -6049 6029 -1 -6429 6029 -1 -6030 6030 6 -6031 6030 -1 -6050 6030 -1 -6430 6030 -1 -6031 6031 6 -6032 6031 -1 -6051 6031 -1 -6431 6031 -1 -6032 6032 6 -6033 6032 -1 -6052 6032 -1 -6432 6032 -1 -6033 6033 6 -6034 6033 -1 -6053 6033 -1 -6433 6033 -1 -6034 6034 6 -6035 6034 -1 -6054 6034 -1 -6434 6034 -1 -6035 6035 6 -6036 6035 -1 -6055 6035 -1 -6435 6035 -1 -6036 6036 6 -6037 6036 -1 -6056 6036 -1 -6436 6036 -1 -6037 6037 6 -6038 6037 -1 -6057 6037 -1 -6437 6037 -1 -6038 6038 6 -6039 6038 -1 -6058 6038 -1 -6438 6038 -1 -6039 6039 6 -6040 6039 -1 -6059 6039 -1 -6439 6039 -1 -6040 6040 6 -6060 6040 -1 -6440 6040 -1 -6041 6041 6 -6042 6041 -1 -6061 6041 -1 -6441 6041 -1 -6042 6042 6 -6043 6042 -1 -6062 6042 -1 -6442 6042 -1 -6043 6043 6 -6044 6043 -1 -6063 6043 -1 -6443 6043 -1 -6044 6044 6 -6045 6044 -1 -6064 6044 -1 -6444 6044 -1 -6045 6045 6 -6046 6045 -1 -6065 6045 -1 -6445 6045 -1 -6046 6046 6 -6047 6046 -1 -6066 6046 -1 -6446 6046 -1 -6047 6047 6 -6048 6047 -1 -6067 6047 -1 -6447 6047 -1 -6048 6048 6 -6049 6048 -1 -6068 6048 -1 -6448 6048 -1 -6049 6049 6 -6050 6049 -1 -6069 6049 -1 -6449 6049 -1 -6050 6050 6 -6051 6050 -1 -6070 6050 -1 -6450 6050 -1 -6051 6051 6 -6052 6051 -1 -6071 6051 -1 -6451 6051 -1 -6052 6052 6 -6053 6052 -1 -6072 6052 -1 -6452 6052 -1 -6053 6053 6 -6054 6053 -1 -6073 6053 -1 -6453 6053 -1 -6054 6054 6 -6055 6054 -1 -6074 6054 -1 -6454 6054 -1 -6055 6055 6 -6056 6055 -1 -6075 6055 -1 -6455 6055 -1 -6056 6056 6 -6057 6056 -1 -6076 6056 -1 -6456 6056 -1 -6057 6057 6 -6058 6057 -1 -6077 6057 -1 -6457 6057 -1 -6058 6058 6 -6059 6058 -1 -6078 6058 -1 -6458 6058 -1 -6059 6059 6 -6060 6059 -1 -6079 6059 -1 -6459 6059 -1 -6060 6060 6 -6080 6060 -1 -6460 6060 -1 -6061 6061 6 -6062 6061 -1 -6081 6061 -1 -6461 6061 -1 -6062 6062 6 -6063 6062 -1 -6082 6062 -1 -6462 6062 -1 -6063 6063 6 -6064 6063 -1 -6083 6063 -1 -6463 6063 -1 -6064 6064 6 -6065 6064 -1 -6084 6064 -1 -6464 6064 -1 -6065 6065 6 -6066 6065 -1 -6085 6065 -1 -6465 6065 -1 -6066 6066 6 -6067 6066 -1 -6086 6066 -1 -6466 6066 -1 -6067 6067 6 -6068 6067 -1 -6087 6067 -1 -6467 6067 -1 -6068 6068 6 -6069 6068 -1 -6088 6068 -1 -6468 6068 -1 -6069 6069 6 -6070 6069 -1 -6089 6069 -1 -6469 6069 -1 -6070 6070 6 -6071 6070 -1 -6090 6070 -1 -6470 6070 -1 -6071 6071 6 -6072 6071 -1 -6091 6071 -1 -6471 6071 -1 -6072 6072 6 -6073 6072 -1 -6092 6072 -1 -6472 6072 -1 -6073 6073 6 -6074 6073 -1 -6093 6073 -1 -6473 6073 -1 -6074 6074 6 -6075 6074 -1 -6094 6074 -1 -6474 6074 -1 -6075 6075 6 -6076 6075 -1 -6095 6075 -1 -6475 6075 -1 -6076 6076 6 -6077 6076 -1 -6096 6076 -1 -6476 6076 -1 -6077 6077 6 -6078 6077 -1 -6097 6077 -1 -6477 6077 -1 -6078 6078 6 -6079 6078 -1 -6098 6078 -1 -6478 6078 -1 -6079 6079 6 -6080 6079 -1 -6099 6079 -1 -6479 6079 -1 -6080 6080 6 -6100 6080 -1 -6480 6080 -1 -6081 6081 6 -6082 6081 -1 -6101 6081 -1 -6481 6081 -1 -6082 6082 6 -6083 6082 -1 -6102 6082 -1 -6482 6082 -1 -6083 6083 6 -6084 6083 -1 -6103 6083 -1 -6483 6083 -1 -6084 6084 6 -6085 6084 -1 -6104 6084 -1 -6484 6084 -1 -6085 6085 6 -6086 6085 -1 -6105 6085 -1 -6485 6085 -1 -6086 6086 6 -6087 6086 -1 -6106 6086 -1 -6486 6086 -1 -6087 6087 6 -6088 6087 -1 -6107 6087 -1 -6487 6087 -1 -6088 6088 6 -6089 6088 -1 -6108 6088 -1 -6488 6088 -1 -6089 6089 6 -6090 6089 -1 -6109 6089 -1 -6489 6089 -1 -6090 6090 6 -6091 6090 -1 -6110 6090 -1 -6490 6090 -1 -6091 6091 6 -6092 6091 -1 -6111 6091 -1 -6491 6091 -1 -6092 6092 6 -6093 6092 -1 -6112 6092 -1 -6492 6092 -1 -6093 6093 6 -6094 6093 -1 -6113 6093 -1 -6493 6093 -1 -6094 6094 6 -6095 6094 -1 -6114 6094 -1 -6494 6094 -1 -6095 6095 6 -6096 6095 -1 -6115 6095 -1 -6495 6095 -1 -6096 6096 6 -6097 6096 -1 -6116 6096 -1 -6496 6096 -1 -6097 6097 6 -6098 6097 -1 -6117 6097 -1 -6497 6097 -1 -6098 6098 6 -6099 6098 -1 -6118 6098 -1 -6498 6098 -1 -6099 6099 6 -6100 6099 -1 -6119 6099 -1 -6499 6099 -1 -6100 6100 6 -6120 6100 -1 -6500 6100 -1 -6101 6101 6 -6102 6101 -1 -6121 6101 -1 -6501 6101 -1 -6102 6102 6 -6103 6102 -1 -6122 6102 -1 -6502 6102 -1 -6103 6103 6 -6104 6103 -1 -6123 6103 -1 -6503 6103 -1 -6104 6104 6 -6105 6104 -1 -6124 6104 -1 -6504 6104 -1 -6105 6105 6 -6106 6105 -1 -6125 6105 -1 -6505 6105 -1 -6106 6106 6 -6107 6106 -1 -6126 6106 -1 -6506 6106 -1 -6107 6107 6 -6108 6107 -1 -6127 6107 -1 -6507 6107 -1 -6108 6108 6 -6109 6108 -1 -6128 6108 -1 -6508 6108 -1 -6109 6109 6 -6110 6109 -1 -6129 6109 -1 -6509 6109 -1 -6110 6110 6 -6111 6110 -1 -6130 6110 -1 -6510 6110 -1 -6111 6111 6 -6112 6111 -1 -6131 6111 -1 -6511 6111 -1 -6112 6112 6 -6113 6112 -1 -6132 6112 -1 -6512 6112 -1 -6113 6113 6 -6114 6113 -1 -6133 6113 -1 -6513 6113 -1 -6114 6114 6 -6115 6114 -1 -6134 6114 -1 -6514 6114 -1 -6115 6115 6 -6116 6115 -1 -6135 6115 -1 -6515 6115 -1 -6116 6116 6 -6117 6116 -1 -6136 6116 -1 -6516 6116 -1 -6117 6117 6 -6118 6117 -1 -6137 6117 -1 -6517 6117 -1 -6118 6118 6 -6119 6118 -1 -6138 6118 -1 -6518 6118 -1 -6119 6119 6 -6120 6119 -1 -6139 6119 -1 -6519 6119 -1 -6120 6120 6 -6140 6120 -1 -6520 6120 -1 -6121 6121 6 -6122 6121 -1 -6141 6121 -1 -6521 6121 -1 -6122 6122 6 -6123 6122 -1 -6142 6122 -1 -6522 6122 -1 -6123 6123 6 -6124 6123 -1 -6143 6123 -1 -6523 6123 -1 -6124 6124 6 -6125 6124 -1 -6144 6124 -1 -6524 6124 -1 -6125 6125 6 -6126 6125 -1 -6145 6125 -1 -6525 6125 -1 -6126 6126 6 -6127 6126 -1 -6146 6126 -1 -6526 6126 -1 -6127 6127 6 -6128 6127 -1 -6147 6127 -1 -6527 6127 -1 -6128 6128 6 -6129 6128 -1 -6148 6128 -1 -6528 6128 -1 -6129 6129 6 -6130 6129 -1 -6149 6129 -1 -6529 6129 -1 -6130 6130 6 -6131 6130 -1 -6150 6130 -1 -6530 6130 -1 -6131 6131 6 -6132 6131 -1 -6151 6131 -1 -6531 6131 -1 -6132 6132 6 -6133 6132 -1 -6152 6132 -1 -6532 6132 -1 -6133 6133 6 -6134 6133 -1 -6153 6133 -1 -6533 6133 -1 -6134 6134 6 -6135 6134 -1 -6154 6134 -1 -6534 6134 -1 -6135 6135 6 -6136 6135 -1 -6155 6135 -1 -6535 6135 -1 -6136 6136 6 -6137 6136 -1 -6156 6136 -1 -6536 6136 -1 -6137 6137 6 -6138 6137 -1 -6157 6137 -1 -6537 6137 -1 -6138 6138 6 -6139 6138 -1 -6158 6138 -1 -6538 6138 -1 -6139 6139 6 -6140 6139 -1 -6159 6139 -1 -6539 6139 -1 -6140 6140 6 -6160 6140 -1 -6540 6140 -1 -6141 6141 6 -6142 6141 -1 -6161 6141 -1 -6541 6141 -1 -6142 6142 6 -6143 6142 -1 -6162 6142 -1 -6542 6142 -1 -6143 6143 6 -6144 6143 -1 -6163 6143 -1 -6543 6143 -1 -6144 6144 6 -6145 6144 -1 -6164 6144 -1 -6544 6144 -1 -6145 6145 6 -6146 6145 -1 -6165 6145 -1 -6545 6145 -1 -6146 6146 6 -6147 6146 -1 -6166 6146 -1 -6546 6146 -1 -6147 6147 6 -6148 6147 -1 -6167 6147 -1 -6547 6147 -1 -6148 6148 6 -6149 6148 -1 -6168 6148 -1 -6548 6148 -1 -6149 6149 6 -6150 6149 -1 -6169 6149 -1 -6549 6149 -1 -6150 6150 6 -6151 6150 -1 -6170 6150 -1 -6550 6150 -1 -6151 6151 6 -6152 6151 -1 -6171 6151 -1 -6551 6151 -1 -6152 6152 6 -6153 6152 -1 -6172 6152 -1 -6552 6152 -1 -6153 6153 6 -6154 6153 -1 -6173 6153 -1 -6553 6153 -1 -6154 6154 6 -6155 6154 -1 -6174 6154 -1 -6554 6154 -1 -6155 6155 6 -6156 6155 -1 -6175 6155 -1 -6555 6155 -1 -6156 6156 6 -6157 6156 -1 -6176 6156 -1 -6556 6156 -1 -6157 6157 6 -6158 6157 -1 -6177 6157 -1 -6557 6157 -1 -6158 6158 6 -6159 6158 -1 -6178 6158 -1 -6558 6158 -1 -6159 6159 6 -6160 6159 -1 -6179 6159 -1 -6559 6159 -1 -6160 6160 6 -6180 6160 -1 -6560 6160 -1 -6161 6161 6 -6162 6161 -1 -6181 6161 -1 -6561 6161 -1 -6162 6162 6 -6163 6162 -1 -6182 6162 -1 -6562 6162 -1 -6163 6163 6 -6164 6163 -1 -6183 6163 -1 -6563 6163 -1 -6164 6164 6 -6165 6164 -1 -6184 6164 -1 -6564 6164 -1 -6165 6165 6 -6166 6165 -1 -6185 6165 -1 -6565 6165 -1 -6166 6166 6 -6167 6166 -1 -6186 6166 -1 -6566 6166 -1 -6167 6167 6 -6168 6167 -1 -6187 6167 -1 -6567 6167 -1 -6168 6168 6 -6169 6168 -1 -6188 6168 -1 -6568 6168 -1 -6169 6169 6 -6170 6169 -1 -6189 6169 -1 -6569 6169 -1 -6170 6170 6 -6171 6170 -1 -6190 6170 -1 -6570 6170 -1 -6171 6171 6 -6172 6171 -1 -6191 6171 -1 -6571 6171 -1 -6172 6172 6 -6173 6172 -1 -6192 6172 -1 -6572 6172 -1 -6173 6173 6 -6174 6173 -1 -6193 6173 -1 -6573 6173 -1 -6174 6174 6 -6175 6174 -1 -6194 6174 -1 -6574 6174 -1 -6175 6175 6 -6176 6175 -1 -6195 6175 -1 -6575 6175 -1 -6176 6176 6 -6177 6176 -1 -6196 6176 -1 -6576 6176 -1 -6177 6177 6 -6178 6177 -1 -6197 6177 -1 -6577 6177 -1 -6178 6178 6 -6179 6178 -1 -6198 6178 -1 -6578 6178 -1 -6179 6179 6 -6180 6179 -1 -6199 6179 -1 -6579 6179 -1 -6180 6180 6 -6200 6180 -1 -6580 6180 -1 -6181 6181 6 -6182 6181 -1 -6201 6181 -1 -6581 6181 -1 -6182 6182 6 -6183 6182 -1 -6202 6182 -1 -6582 6182 -1 -6183 6183 6 -6184 6183 -1 -6203 6183 -1 -6583 6183 -1 -6184 6184 6 -6185 6184 -1 -6204 6184 -1 -6584 6184 -1 -6185 6185 6 -6186 6185 -1 -6205 6185 -1 -6585 6185 -1 -6186 6186 6 -6187 6186 -1 -6206 6186 -1 -6586 6186 -1 -6187 6187 6 -6188 6187 -1 -6207 6187 -1 -6587 6187 -1 -6188 6188 6 -6189 6188 -1 -6208 6188 -1 -6588 6188 -1 -6189 6189 6 -6190 6189 -1 -6209 6189 -1 -6589 6189 -1 -6190 6190 6 -6191 6190 -1 -6210 6190 -1 -6590 6190 -1 -6191 6191 6 -6192 6191 -1 -6211 6191 -1 -6591 6191 -1 -6192 6192 6 -6193 6192 -1 -6212 6192 -1 -6592 6192 -1 -6193 6193 6 -6194 6193 -1 -6213 6193 -1 -6593 6193 -1 -6194 6194 6 -6195 6194 -1 -6214 6194 -1 -6594 6194 -1 -6195 6195 6 -6196 6195 -1 -6215 6195 -1 -6595 6195 -1 -6196 6196 6 -6197 6196 -1 -6216 6196 -1 -6596 6196 -1 -6197 6197 6 -6198 6197 -1 -6217 6197 -1 -6597 6197 -1 -6198 6198 6 -6199 6198 -1 -6218 6198 -1 -6598 6198 -1 -6199 6199 6 -6200 6199 -1 -6219 6199 -1 -6599 6199 -1 -6200 6200 6 -6220 6200 -1 -6600 6200 -1 -6201 6201 6 -6202 6201 -1 -6221 6201 -1 -6601 6201 -1 -6202 6202 6 -6203 6202 -1 -6222 6202 -1 -6602 6202 -1 -6203 6203 6 -6204 6203 -1 -6223 6203 -1 -6603 6203 -1 -6204 6204 6 -6205 6204 -1 -6224 6204 -1 -6604 6204 -1 -6205 6205 6 -6206 6205 -1 -6225 6205 -1 -6605 6205 -1 -6206 6206 6 -6207 6206 -1 -6226 6206 -1 -6606 6206 -1 -6207 6207 6 -6208 6207 -1 -6227 6207 -1 -6607 6207 -1 -6208 6208 6 -6209 6208 -1 -6228 6208 -1 -6608 6208 -1 -6209 6209 6 -6210 6209 -1 -6229 6209 -1 -6609 6209 -1 -6210 6210 6 -6211 6210 -1 -6230 6210 -1 -6610 6210 -1 -6211 6211 6 -6212 6211 -1 -6231 6211 -1 -6611 6211 -1 -6212 6212 6 -6213 6212 -1 -6232 6212 -1 -6612 6212 -1 -6213 6213 6 -6214 6213 -1 -6233 6213 -1 -6613 6213 -1 -6214 6214 6 -6215 6214 -1 -6234 6214 -1 -6614 6214 -1 -6215 6215 6 -6216 6215 -1 -6235 6215 -1 -6615 6215 -1 -6216 6216 6 -6217 6216 -1 -6236 6216 -1 -6616 6216 -1 -6217 6217 6 -6218 6217 -1 -6237 6217 -1 -6617 6217 -1 -6218 6218 6 -6219 6218 -1 -6238 6218 -1 -6618 6218 -1 -6219 6219 6 -6220 6219 -1 -6239 6219 -1 -6619 6219 -1 -6220 6220 6 -6240 6220 -1 -6620 6220 -1 -6221 6221 6 -6222 6221 -1 -6241 6221 -1 -6621 6221 -1 -6222 6222 6 -6223 6222 -1 -6242 6222 -1 -6622 6222 -1 -6223 6223 6 -6224 6223 -1 -6243 6223 -1 -6623 6223 -1 -6224 6224 6 -6225 6224 -1 -6244 6224 -1 -6624 6224 -1 -6225 6225 6 -6226 6225 -1 -6245 6225 -1 -6625 6225 -1 -6226 6226 6 -6227 6226 -1 -6246 6226 -1 -6626 6226 -1 -6227 6227 6 -6228 6227 -1 -6247 6227 -1 -6627 6227 -1 -6228 6228 6 -6229 6228 -1 -6248 6228 -1 -6628 6228 -1 -6229 6229 6 -6230 6229 -1 -6249 6229 -1 -6629 6229 -1 -6230 6230 6 -6231 6230 -1 -6250 6230 -1 -6630 6230 -1 -6231 6231 6 -6232 6231 -1 -6251 6231 -1 -6631 6231 -1 -6232 6232 6 -6233 6232 -1 -6252 6232 -1 -6632 6232 -1 -6233 6233 6 -6234 6233 -1 -6253 6233 -1 -6633 6233 -1 -6234 6234 6 -6235 6234 -1 -6254 6234 -1 -6634 6234 -1 -6235 6235 6 -6236 6235 -1 -6255 6235 -1 -6635 6235 -1 -6236 6236 6 -6237 6236 -1 -6256 6236 -1 -6636 6236 -1 -6237 6237 6 -6238 6237 -1 -6257 6237 -1 -6637 6237 -1 -6238 6238 6 -6239 6238 -1 -6258 6238 -1 -6638 6238 -1 -6239 6239 6 -6240 6239 -1 -6259 6239 -1 -6639 6239 -1 -6240 6240 6 -6260 6240 -1 -6640 6240 -1 -6241 6241 6 -6242 6241 -1 -6261 6241 -1 -6641 6241 -1 -6242 6242 6 -6243 6242 -1 -6262 6242 -1 -6642 6242 -1 -6243 6243 6 -6244 6243 -1 -6263 6243 -1 -6643 6243 -1 -6244 6244 6 -6245 6244 -1 -6264 6244 -1 -6644 6244 -1 -6245 6245 6 -6246 6245 -1 -6265 6245 -1 -6645 6245 -1 -6246 6246 6 -6247 6246 -1 -6266 6246 -1 -6646 6246 -1 -6247 6247 6 -6248 6247 -1 -6267 6247 -1 -6647 6247 -1 -6248 6248 6 -6249 6248 -1 -6268 6248 -1 -6648 6248 -1 -6249 6249 6 -6250 6249 -1 -6269 6249 -1 -6649 6249 -1 -6250 6250 6 -6251 6250 -1 -6270 6250 -1 -6650 6250 -1 -6251 6251 6 -6252 6251 -1 -6271 6251 -1 -6651 6251 -1 -6252 6252 6 -6253 6252 -1 -6272 6252 -1 -6652 6252 -1 -6253 6253 6 -6254 6253 -1 -6273 6253 -1 -6653 6253 -1 -6254 6254 6 -6255 6254 -1 -6274 6254 -1 -6654 6254 -1 -6255 6255 6 -6256 6255 -1 -6275 6255 -1 -6655 6255 -1 -6256 6256 6 -6257 6256 -1 -6276 6256 -1 -6656 6256 -1 -6257 6257 6 -6258 6257 -1 -6277 6257 -1 -6657 6257 -1 -6258 6258 6 -6259 6258 -1 -6278 6258 -1 -6658 6258 -1 -6259 6259 6 -6260 6259 -1 -6279 6259 -1 -6659 6259 -1 -6260 6260 6 -6280 6260 -1 -6660 6260 -1 -6261 6261 6 -6262 6261 -1 -6281 6261 -1 -6661 6261 -1 -6262 6262 6 -6263 6262 -1 -6282 6262 -1 -6662 6262 -1 -6263 6263 6 -6264 6263 -1 -6283 6263 -1 -6663 6263 -1 -6264 6264 6 -6265 6264 -1 -6284 6264 -1 -6664 6264 -1 -6265 6265 6 -6266 6265 -1 -6285 6265 -1 -6665 6265 -1 -6266 6266 6 -6267 6266 -1 -6286 6266 -1 -6666 6266 -1 -6267 6267 6 -6268 6267 -1 -6287 6267 -1 -6667 6267 -1 -6268 6268 6 -6269 6268 -1 -6288 6268 -1 -6668 6268 -1 -6269 6269 6 -6270 6269 -1 -6289 6269 -1 -6669 6269 -1 -6270 6270 6 -6271 6270 -1 -6290 6270 -1 -6670 6270 -1 -6271 6271 6 -6272 6271 -1 -6291 6271 -1 -6671 6271 -1 -6272 6272 6 -6273 6272 -1 -6292 6272 -1 -6672 6272 -1 -6273 6273 6 -6274 6273 -1 -6293 6273 -1 -6673 6273 -1 -6274 6274 6 -6275 6274 -1 -6294 6274 -1 -6674 6274 -1 -6275 6275 6 -6276 6275 -1 -6295 6275 -1 -6675 6275 -1 -6276 6276 6 -6277 6276 -1 -6296 6276 -1 -6676 6276 -1 -6277 6277 6 -6278 6277 -1 -6297 6277 -1 -6677 6277 -1 -6278 6278 6 -6279 6278 -1 -6298 6278 -1 -6678 6278 -1 -6279 6279 6 -6280 6279 -1 -6299 6279 -1 -6679 6279 -1 -6280 6280 6 -6300 6280 -1 -6680 6280 -1 -6281 6281 6 -6282 6281 -1 -6301 6281 -1 -6681 6281 -1 -6282 6282 6 -6283 6282 -1 -6302 6282 -1 -6682 6282 -1 -6283 6283 6 -6284 6283 -1 -6303 6283 -1 -6683 6283 -1 -6284 6284 6 -6285 6284 -1 -6304 6284 -1 -6684 6284 -1 -6285 6285 6 -6286 6285 -1 -6305 6285 -1 -6685 6285 -1 -6286 6286 6 -6287 6286 -1 -6306 6286 -1 -6686 6286 -1 -6287 6287 6 -6288 6287 -1 -6307 6287 -1 -6687 6287 -1 -6288 6288 6 -6289 6288 -1 -6308 6288 -1 -6688 6288 -1 -6289 6289 6 -6290 6289 -1 -6309 6289 -1 -6689 6289 -1 -6290 6290 6 -6291 6290 -1 -6310 6290 -1 -6690 6290 -1 -6291 6291 6 -6292 6291 -1 -6311 6291 -1 -6691 6291 -1 -6292 6292 6 -6293 6292 -1 -6312 6292 -1 -6692 6292 -1 -6293 6293 6 -6294 6293 -1 -6313 6293 -1 -6693 6293 -1 -6294 6294 6 -6295 6294 -1 -6314 6294 -1 -6694 6294 -1 -6295 6295 6 -6296 6295 -1 -6315 6295 -1 -6695 6295 -1 -6296 6296 6 -6297 6296 -1 -6316 6296 -1 -6696 6296 -1 -6297 6297 6 -6298 6297 -1 -6317 6297 -1 -6697 6297 -1 -6298 6298 6 -6299 6298 -1 -6318 6298 -1 -6698 6298 -1 -6299 6299 6 -6300 6299 -1 -6319 6299 -1 -6699 6299 -1 -6300 6300 6 -6320 6300 -1 -6700 6300 -1 -6301 6301 6 -6302 6301 -1 -6321 6301 -1 -6701 6301 -1 -6302 6302 6 -6303 6302 -1 -6322 6302 -1 -6702 6302 -1 -6303 6303 6 -6304 6303 -1 -6323 6303 -1 -6703 6303 -1 -6304 6304 6 -6305 6304 -1 -6324 6304 -1 -6704 6304 -1 -6305 6305 6 -6306 6305 -1 -6325 6305 -1 -6705 6305 -1 -6306 6306 6 -6307 6306 -1 -6326 6306 -1 -6706 6306 -1 -6307 6307 6 -6308 6307 -1 -6327 6307 -1 -6707 6307 -1 -6308 6308 6 -6309 6308 -1 -6328 6308 -1 -6708 6308 -1 -6309 6309 6 -6310 6309 -1 -6329 6309 -1 -6709 6309 -1 -6310 6310 6 -6311 6310 -1 -6330 6310 -1 -6710 6310 -1 -6311 6311 6 -6312 6311 -1 -6331 6311 -1 -6711 6311 -1 -6312 6312 6 -6313 6312 -1 -6332 6312 -1 -6712 6312 -1 -6313 6313 6 -6314 6313 -1 -6333 6313 -1 -6713 6313 -1 -6314 6314 6 -6315 6314 -1 -6334 6314 -1 -6714 6314 -1 -6315 6315 6 -6316 6315 -1 -6335 6315 -1 -6715 6315 -1 -6316 6316 6 -6317 6316 -1 -6336 6316 -1 -6716 6316 -1 -6317 6317 6 -6318 6317 -1 -6337 6317 -1 -6717 6317 -1 -6318 6318 6 -6319 6318 -1 -6338 6318 -1 -6718 6318 -1 -6319 6319 6 -6320 6319 -1 -6339 6319 -1 -6719 6319 -1 -6320 6320 6 -6340 6320 -1 -6720 6320 -1 -6321 6321 6 -6322 6321 -1 -6341 6321 -1 -6721 6321 -1 -6322 6322 6 -6323 6322 -1 -6342 6322 -1 -6722 6322 -1 -6323 6323 6 -6324 6323 -1 -6343 6323 -1 -6723 6323 -1 -6324 6324 6 -6325 6324 -1 -6344 6324 -1 -6724 6324 -1 -6325 6325 6 -6326 6325 -1 -6345 6325 -1 -6725 6325 -1 -6326 6326 6 -6327 6326 -1 -6346 6326 -1 -6726 6326 -1 -6327 6327 6 -6328 6327 -1 -6347 6327 -1 -6727 6327 -1 -6328 6328 6 -6329 6328 -1 -6348 6328 -1 -6728 6328 -1 -6329 6329 6 -6330 6329 -1 -6349 6329 -1 -6729 6329 -1 -6330 6330 6 -6331 6330 -1 -6350 6330 -1 -6730 6330 -1 -6331 6331 6 -6332 6331 -1 -6351 6331 -1 -6731 6331 -1 -6332 6332 6 -6333 6332 -1 -6352 6332 -1 -6732 6332 -1 -6333 6333 6 -6334 6333 -1 -6353 6333 -1 -6733 6333 -1 -6334 6334 6 -6335 6334 -1 -6354 6334 -1 -6734 6334 -1 -6335 6335 6 -6336 6335 -1 -6355 6335 -1 -6735 6335 -1 -6336 6336 6 -6337 6336 -1 -6356 6336 -1 -6736 6336 -1 -6337 6337 6 -6338 6337 -1 -6357 6337 -1 -6737 6337 -1 -6338 6338 6 -6339 6338 -1 -6358 6338 -1 -6738 6338 -1 -6339 6339 6 -6340 6339 -1 -6359 6339 -1 -6739 6339 -1 -6340 6340 6 -6360 6340 -1 -6740 6340 -1 -6341 6341 6 -6342 6341 -1 -6361 6341 -1 -6741 6341 -1 -6342 6342 6 -6343 6342 -1 -6362 6342 -1 -6742 6342 -1 -6343 6343 6 -6344 6343 -1 -6363 6343 -1 -6743 6343 -1 -6344 6344 6 -6345 6344 -1 -6364 6344 -1 -6744 6344 -1 -6345 6345 6 -6346 6345 -1 -6365 6345 -1 -6745 6345 -1 -6346 6346 6 -6347 6346 -1 -6366 6346 -1 -6746 6346 -1 -6347 6347 6 -6348 6347 -1 -6367 6347 -1 -6747 6347 -1 -6348 6348 6 -6349 6348 -1 -6368 6348 -1 -6748 6348 -1 -6349 6349 6 -6350 6349 -1 -6369 6349 -1 -6749 6349 -1 -6350 6350 6 -6351 6350 -1 -6370 6350 -1 -6750 6350 -1 -6351 6351 6 -6352 6351 -1 -6371 6351 -1 -6751 6351 -1 -6352 6352 6 -6353 6352 -1 -6372 6352 -1 -6752 6352 -1 -6353 6353 6 -6354 6353 -1 -6373 6353 -1 -6753 6353 -1 -6354 6354 6 -6355 6354 -1 -6374 6354 -1 -6754 6354 -1 -6355 6355 6 -6356 6355 -1 -6375 6355 -1 -6755 6355 -1 -6356 6356 6 -6357 6356 -1 -6376 6356 -1 -6756 6356 -1 -6357 6357 6 -6358 6357 -1 -6377 6357 -1 -6757 6357 -1 -6358 6358 6 -6359 6358 -1 -6378 6358 -1 -6758 6358 -1 -6359 6359 6 -6360 6359 -1 -6379 6359 -1 -6759 6359 -1 -6360 6360 6 -6380 6360 -1 -6760 6360 -1 -6361 6361 6 -6362 6361 -1 -6381 6361 -1 -6761 6361 -1 -6362 6362 6 -6363 6362 -1 -6382 6362 -1 -6762 6362 -1 -6363 6363 6 -6364 6363 -1 -6383 6363 -1 -6763 6363 -1 -6364 6364 6 -6365 6364 -1 -6384 6364 -1 -6764 6364 -1 -6365 6365 6 -6366 6365 -1 -6385 6365 -1 -6765 6365 -1 -6366 6366 6 -6367 6366 -1 -6386 6366 -1 -6766 6366 -1 -6367 6367 6 -6368 6367 -1 -6387 6367 -1 -6767 6367 -1 -6368 6368 6 -6369 6368 -1 -6388 6368 -1 -6768 6368 -1 -6369 6369 6 -6370 6369 -1 -6389 6369 -1 -6769 6369 -1 -6370 6370 6 -6371 6370 -1 -6390 6370 -1 -6770 6370 -1 -6371 6371 6 -6372 6371 -1 -6391 6371 -1 -6771 6371 -1 -6372 6372 6 -6373 6372 -1 -6392 6372 -1 -6772 6372 -1 -6373 6373 6 -6374 6373 -1 -6393 6373 -1 -6773 6373 -1 -6374 6374 6 -6375 6374 -1 -6394 6374 -1 -6774 6374 -1 -6375 6375 6 -6376 6375 -1 -6395 6375 -1 -6775 6375 -1 -6376 6376 6 -6377 6376 -1 -6396 6376 -1 -6776 6376 -1 -6377 6377 6 -6378 6377 -1 -6397 6377 -1 -6777 6377 -1 -6378 6378 6 -6379 6378 -1 -6398 6378 -1 -6778 6378 -1 -6379 6379 6 -6380 6379 -1 -6399 6379 -1 -6779 6379 -1 -6380 6380 6 -6400 6380 -1 -6780 6380 -1 -6381 6381 6 -6382 6381 -1 -6781 6381 -1 -6382 6382 6 -6383 6382 -1 -6782 6382 -1 -6383 6383 6 -6384 6383 -1 -6783 6383 -1 -6384 6384 6 -6385 6384 -1 -6784 6384 -1 -6385 6385 6 -6386 6385 -1 -6785 6385 -1 -6386 6386 6 -6387 6386 -1 -6786 6386 -1 -6387 6387 6 -6388 6387 -1 -6787 6387 -1 -6388 6388 6 -6389 6388 -1 -6788 6388 -1 -6389 6389 6 -6390 6389 -1 -6789 6389 -1 -6390 6390 6 -6391 6390 -1 -6790 6390 -1 -6391 6391 6 -6392 6391 -1 -6791 6391 -1 -6392 6392 6 -6393 6392 -1 -6792 6392 -1 -6393 6393 6 -6394 6393 -1 -6793 6393 -1 -6394 6394 6 -6395 6394 -1 -6794 6394 -1 -6395 6395 6 -6396 6395 -1 -6795 6395 -1 -6396 6396 6 -6397 6396 -1 -6796 6396 -1 -6397 6397 6 -6398 6397 -1 -6797 6397 -1 -6398 6398 6 -6399 6398 -1 -6798 6398 -1 -6399 6399 6 -6400 6399 -1 -6799 6399 -1 -6400 6400 6 -6800 6400 -1 -6401 6401 6 -6402 6401 -1 -6421 6401 -1 -6801 6401 -1 -6402 6402 6 -6403 6402 -1 -6422 6402 -1 -6802 6402 -1 -6403 6403 6 -6404 6403 -1 -6423 6403 -1 -6803 6403 -1 -6404 6404 6 -6405 6404 -1 -6424 6404 -1 -6804 6404 -1 -6405 6405 6 -6406 6405 -1 -6425 6405 -1 -6805 6405 -1 -6406 6406 6 -6407 6406 -1 -6426 6406 -1 -6806 6406 -1 -6407 6407 6 -6408 6407 -1 -6427 6407 -1 -6807 6407 -1 -6408 6408 6 -6409 6408 -1 -6428 6408 -1 -6808 6408 -1 -6409 6409 6 -6410 6409 -1 -6429 6409 -1 -6809 6409 -1 -6410 6410 6 -6411 6410 -1 -6430 6410 -1 -6810 6410 -1 -6411 6411 6 -6412 6411 -1 -6431 6411 -1 -6811 6411 -1 -6412 6412 6 -6413 6412 -1 -6432 6412 -1 -6812 6412 -1 -6413 6413 6 -6414 6413 -1 -6433 6413 -1 -6813 6413 -1 -6414 6414 6 -6415 6414 -1 -6434 6414 -1 -6814 6414 -1 -6415 6415 6 -6416 6415 -1 -6435 6415 -1 -6815 6415 -1 -6416 6416 6 -6417 6416 -1 -6436 6416 -1 -6816 6416 -1 -6417 6417 6 -6418 6417 -1 -6437 6417 -1 -6817 6417 -1 -6418 6418 6 -6419 6418 -1 -6438 6418 -1 -6818 6418 -1 -6419 6419 6 -6420 6419 -1 -6439 6419 -1 -6819 6419 -1 -6420 6420 6 -6440 6420 -1 -6820 6420 -1 -6421 6421 6 -6422 6421 -1 -6441 6421 -1 -6821 6421 -1 -6422 6422 6 -6423 6422 -1 -6442 6422 -1 -6822 6422 -1 -6423 6423 6 -6424 6423 -1 -6443 6423 -1 -6823 6423 -1 -6424 6424 6 -6425 6424 -1 -6444 6424 -1 -6824 6424 -1 -6425 6425 6 -6426 6425 -1 -6445 6425 -1 -6825 6425 -1 -6426 6426 6 -6427 6426 -1 -6446 6426 -1 -6826 6426 -1 -6427 6427 6 -6428 6427 -1 -6447 6427 -1 -6827 6427 -1 -6428 6428 6 -6429 6428 -1 -6448 6428 -1 -6828 6428 -1 -6429 6429 6 -6430 6429 -1 -6449 6429 -1 -6829 6429 -1 -6430 6430 6 -6431 6430 -1 -6450 6430 -1 -6830 6430 -1 -6431 6431 6 -6432 6431 -1 -6451 6431 -1 -6831 6431 -1 -6432 6432 6 -6433 6432 -1 -6452 6432 -1 -6832 6432 -1 -6433 6433 6 -6434 6433 -1 -6453 6433 -1 -6833 6433 -1 -6434 6434 6 -6435 6434 -1 -6454 6434 -1 -6834 6434 -1 -6435 6435 6 -6436 6435 -1 -6455 6435 -1 -6835 6435 -1 -6436 6436 6 -6437 6436 -1 -6456 6436 -1 -6836 6436 -1 -6437 6437 6 -6438 6437 -1 -6457 6437 -1 -6837 6437 -1 -6438 6438 6 -6439 6438 -1 -6458 6438 -1 -6838 6438 -1 -6439 6439 6 -6440 6439 -1 -6459 6439 -1 -6839 6439 -1 -6440 6440 6 -6460 6440 -1 -6840 6440 -1 -6441 6441 6 -6442 6441 -1 -6461 6441 -1 -6841 6441 -1 -6442 6442 6 -6443 6442 -1 -6462 6442 -1 -6842 6442 -1 -6443 6443 6 -6444 6443 -1 -6463 6443 -1 -6843 6443 -1 -6444 6444 6 -6445 6444 -1 -6464 6444 -1 -6844 6444 -1 -6445 6445 6 -6446 6445 -1 -6465 6445 -1 -6845 6445 -1 -6446 6446 6 -6447 6446 -1 -6466 6446 -1 -6846 6446 -1 -6447 6447 6 -6448 6447 -1 -6467 6447 -1 -6847 6447 -1 -6448 6448 6 -6449 6448 -1 -6468 6448 -1 -6848 6448 -1 -6449 6449 6 -6450 6449 -1 -6469 6449 -1 -6849 6449 -1 -6450 6450 6 -6451 6450 -1 -6470 6450 -1 -6850 6450 -1 -6451 6451 6 -6452 6451 -1 -6471 6451 -1 -6851 6451 -1 -6452 6452 6 -6453 6452 -1 -6472 6452 -1 -6852 6452 -1 -6453 6453 6 -6454 6453 -1 -6473 6453 -1 -6853 6453 -1 -6454 6454 6 -6455 6454 -1 -6474 6454 -1 -6854 6454 -1 -6455 6455 6 -6456 6455 -1 -6475 6455 -1 -6855 6455 -1 -6456 6456 6 -6457 6456 -1 -6476 6456 -1 -6856 6456 -1 -6457 6457 6 -6458 6457 -1 -6477 6457 -1 -6857 6457 -1 -6458 6458 6 -6459 6458 -1 -6478 6458 -1 -6858 6458 -1 -6459 6459 6 -6460 6459 -1 -6479 6459 -1 -6859 6459 -1 -6460 6460 6 -6480 6460 -1 -6860 6460 -1 -6461 6461 6 -6462 6461 -1 -6481 6461 -1 -6861 6461 -1 -6462 6462 6 -6463 6462 -1 -6482 6462 -1 -6862 6462 -1 -6463 6463 6 -6464 6463 -1 -6483 6463 -1 -6863 6463 -1 -6464 6464 6 -6465 6464 -1 -6484 6464 -1 -6864 6464 -1 -6465 6465 6 -6466 6465 -1 -6485 6465 -1 -6865 6465 -1 -6466 6466 6 -6467 6466 -1 -6486 6466 -1 -6866 6466 -1 -6467 6467 6 -6468 6467 -1 -6487 6467 -1 -6867 6467 -1 -6468 6468 6 -6469 6468 -1 -6488 6468 -1 -6868 6468 -1 -6469 6469 6 -6470 6469 -1 -6489 6469 -1 -6869 6469 -1 -6470 6470 6 -6471 6470 -1 -6490 6470 -1 -6870 6470 -1 -6471 6471 6 -6472 6471 -1 -6491 6471 -1 -6871 6471 -1 -6472 6472 6 -6473 6472 -1 -6492 6472 -1 -6872 6472 -1 -6473 6473 6 -6474 6473 -1 -6493 6473 -1 -6873 6473 -1 -6474 6474 6 -6475 6474 -1 -6494 6474 -1 -6874 6474 -1 -6475 6475 6 -6476 6475 -1 -6495 6475 -1 -6875 6475 -1 -6476 6476 6 -6477 6476 -1 -6496 6476 -1 -6876 6476 -1 -6477 6477 6 -6478 6477 -1 -6497 6477 -1 -6877 6477 -1 -6478 6478 6 -6479 6478 -1 -6498 6478 -1 -6878 6478 -1 -6479 6479 6 -6480 6479 -1 -6499 6479 -1 -6879 6479 -1 -6480 6480 6 -6500 6480 -1 -6880 6480 -1 -6481 6481 6 -6482 6481 -1 -6501 6481 -1 -6881 6481 -1 -6482 6482 6 -6483 6482 -1 -6502 6482 -1 -6882 6482 -1 -6483 6483 6 -6484 6483 -1 -6503 6483 -1 -6883 6483 -1 -6484 6484 6 -6485 6484 -1 -6504 6484 -1 -6884 6484 -1 -6485 6485 6 -6486 6485 -1 -6505 6485 -1 -6885 6485 -1 -6486 6486 6 -6487 6486 -1 -6506 6486 -1 -6886 6486 -1 -6487 6487 6 -6488 6487 -1 -6507 6487 -1 -6887 6487 -1 -6488 6488 6 -6489 6488 -1 -6508 6488 -1 -6888 6488 -1 -6489 6489 6 -6490 6489 -1 -6509 6489 -1 -6889 6489 -1 -6490 6490 6 -6491 6490 -1 -6510 6490 -1 -6890 6490 -1 -6491 6491 6 -6492 6491 -1 -6511 6491 -1 -6891 6491 -1 -6492 6492 6 -6493 6492 -1 -6512 6492 -1 -6892 6492 -1 -6493 6493 6 -6494 6493 -1 -6513 6493 -1 -6893 6493 -1 -6494 6494 6 -6495 6494 -1 -6514 6494 -1 -6894 6494 -1 -6495 6495 6 -6496 6495 -1 -6515 6495 -1 -6895 6495 -1 -6496 6496 6 -6497 6496 -1 -6516 6496 -1 -6896 6496 -1 -6497 6497 6 -6498 6497 -1 -6517 6497 -1 -6897 6497 -1 -6498 6498 6 -6499 6498 -1 -6518 6498 -1 -6898 6498 -1 -6499 6499 6 -6500 6499 -1 -6519 6499 -1 -6899 6499 -1 -6500 6500 6 -6520 6500 -1 -6900 6500 -1 -6501 6501 6 -6502 6501 -1 -6521 6501 -1 -6901 6501 -1 -6502 6502 6 -6503 6502 -1 -6522 6502 -1 -6902 6502 -1 -6503 6503 6 -6504 6503 -1 -6523 6503 -1 -6903 6503 -1 -6504 6504 6 -6505 6504 -1 -6524 6504 -1 -6904 6504 -1 -6505 6505 6 -6506 6505 -1 -6525 6505 -1 -6905 6505 -1 -6506 6506 6 -6507 6506 -1 -6526 6506 -1 -6906 6506 -1 -6507 6507 6 -6508 6507 -1 -6527 6507 -1 -6907 6507 -1 -6508 6508 6 -6509 6508 -1 -6528 6508 -1 -6908 6508 -1 -6509 6509 6 -6510 6509 -1 -6529 6509 -1 -6909 6509 -1 -6510 6510 6 -6511 6510 -1 -6530 6510 -1 -6910 6510 -1 -6511 6511 6 -6512 6511 -1 -6531 6511 -1 -6911 6511 -1 -6512 6512 6 -6513 6512 -1 -6532 6512 -1 -6912 6512 -1 -6513 6513 6 -6514 6513 -1 -6533 6513 -1 -6913 6513 -1 -6514 6514 6 -6515 6514 -1 -6534 6514 -1 -6914 6514 -1 -6515 6515 6 -6516 6515 -1 -6535 6515 -1 -6915 6515 -1 -6516 6516 6 -6517 6516 -1 -6536 6516 -1 -6916 6516 -1 -6517 6517 6 -6518 6517 -1 -6537 6517 -1 -6917 6517 -1 -6518 6518 6 -6519 6518 -1 -6538 6518 -1 -6918 6518 -1 -6519 6519 6 -6520 6519 -1 -6539 6519 -1 -6919 6519 -1 -6520 6520 6 -6540 6520 -1 -6920 6520 -1 -6521 6521 6 -6522 6521 -1 -6541 6521 -1 -6921 6521 -1 -6522 6522 6 -6523 6522 -1 -6542 6522 -1 -6922 6522 -1 -6523 6523 6 -6524 6523 -1 -6543 6523 -1 -6923 6523 -1 -6524 6524 6 -6525 6524 -1 -6544 6524 -1 -6924 6524 -1 -6525 6525 6 -6526 6525 -1 -6545 6525 -1 -6925 6525 -1 -6526 6526 6 -6527 6526 -1 -6546 6526 -1 -6926 6526 -1 -6527 6527 6 -6528 6527 -1 -6547 6527 -1 -6927 6527 -1 -6528 6528 6 -6529 6528 -1 -6548 6528 -1 -6928 6528 -1 -6529 6529 6 -6530 6529 -1 -6549 6529 -1 -6929 6529 -1 -6530 6530 6 -6531 6530 -1 -6550 6530 -1 -6930 6530 -1 -6531 6531 6 -6532 6531 -1 -6551 6531 -1 -6931 6531 -1 -6532 6532 6 -6533 6532 -1 -6552 6532 -1 -6932 6532 -1 -6533 6533 6 -6534 6533 -1 -6553 6533 -1 -6933 6533 -1 -6534 6534 6 -6535 6534 -1 -6554 6534 -1 -6934 6534 -1 -6535 6535 6 -6536 6535 -1 -6555 6535 -1 -6935 6535 -1 -6536 6536 6 -6537 6536 -1 -6556 6536 -1 -6936 6536 -1 -6537 6537 6 -6538 6537 -1 -6557 6537 -1 -6937 6537 -1 -6538 6538 6 -6539 6538 -1 -6558 6538 -1 -6938 6538 -1 -6539 6539 6 -6540 6539 -1 -6559 6539 -1 -6939 6539 -1 -6540 6540 6 -6560 6540 -1 -6940 6540 -1 -6541 6541 6 -6542 6541 -1 -6561 6541 -1 -6941 6541 -1 -6542 6542 6 -6543 6542 -1 -6562 6542 -1 -6942 6542 -1 -6543 6543 6 -6544 6543 -1 -6563 6543 -1 -6943 6543 -1 -6544 6544 6 -6545 6544 -1 -6564 6544 -1 -6944 6544 -1 -6545 6545 6 -6546 6545 -1 -6565 6545 -1 -6945 6545 -1 -6546 6546 6 -6547 6546 -1 -6566 6546 -1 -6946 6546 -1 -6547 6547 6 -6548 6547 -1 -6567 6547 -1 -6947 6547 -1 -6548 6548 6 -6549 6548 -1 -6568 6548 -1 -6948 6548 -1 -6549 6549 6 -6550 6549 -1 -6569 6549 -1 -6949 6549 -1 -6550 6550 6 -6551 6550 -1 -6570 6550 -1 -6950 6550 -1 -6551 6551 6 -6552 6551 -1 -6571 6551 -1 -6951 6551 -1 -6552 6552 6 -6553 6552 -1 -6572 6552 -1 -6952 6552 -1 -6553 6553 6 -6554 6553 -1 -6573 6553 -1 -6953 6553 -1 -6554 6554 6 -6555 6554 -1 -6574 6554 -1 -6954 6554 -1 -6555 6555 6 -6556 6555 -1 -6575 6555 -1 -6955 6555 -1 -6556 6556 6 -6557 6556 -1 -6576 6556 -1 -6956 6556 -1 -6557 6557 6 -6558 6557 -1 -6577 6557 -1 -6957 6557 -1 -6558 6558 6 -6559 6558 -1 -6578 6558 -1 -6958 6558 -1 -6559 6559 6 -6560 6559 -1 -6579 6559 -1 -6959 6559 -1 -6560 6560 6 -6580 6560 -1 -6960 6560 -1 -6561 6561 6 -6562 6561 -1 -6581 6561 -1 -6961 6561 -1 -6562 6562 6 -6563 6562 -1 -6582 6562 -1 -6962 6562 -1 -6563 6563 6 -6564 6563 -1 -6583 6563 -1 -6963 6563 -1 -6564 6564 6 -6565 6564 -1 -6584 6564 -1 -6964 6564 -1 -6565 6565 6 -6566 6565 -1 -6585 6565 -1 -6965 6565 -1 -6566 6566 6 -6567 6566 -1 -6586 6566 -1 -6966 6566 -1 -6567 6567 6 -6568 6567 -1 -6587 6567 -1 -6967 6567 -1 -6568 6568 6 -6569 6568 -1 -6588 6568 -1 -6968 6568 -1 -6569 6569 6 -6570 6569 -1 -6589 6569 -1 -6969 6569 -1 -6570 6570 6 -6571 6570 -1 -6590 6570 -1 -6970 6570 -1 -6571 6571 6 -6572 6571 -1 -6591 6571 -1 -6971 6571 -1 -6572 6572 6 -6573 6572 -1 -6592 6572 -1 -6972 6572 -1 -6573 6573 6 -6574 6573 -1 -6593 6573 -1 -6973 6573 -1 -6574 6574 6 -6575 6574 -1 -6594 6574 -1 -6974 6574 -1 -6575 6575 6 -6576 6575 -1 -6595 6575 -1 -6975 6575 -1 -6576 6576 6 -6577 6576 -1 -6596 6576 -1 -6976 6576 -1 -6577 6577 6 -6578 6577 -1 -6597 6577 -1 -6977 6577 -1 -6578 6578 6 -6579 6578 -1 -6598 6578 -1 -6978 6578 -1 -6579 6579 6 -6580 6579 -1 -6599 6579 -1 -6979 6579 -1 -6580 6580 6 -6600 6580 -1 -6980 6580 -1 -6581 6581 6 -6582 6581 -1 -6601 6581 -1 -6981 6581 -1 -6582 6582 6 -6583 6582 -1 -6602 6582 -1 -6982 6582 -1 -6583 6583 6 -6584 6583 -1 -6603 6583 -1 -6983 6583 -1 -6584 6584 6 -6585 6584 -1 -6604 6584 -1 -6984 6584 -1 -6585 6585 6 -6586 6585 -1 -6605 6585 -1 -6985 6585 -1 -6586 6586 6 -6587 6586 -1 -6606 6586 -1 -6986 6586 -1 -6587 6587 6 -6588 6587 -1 -6607 6587 -1 -6987 6587 -1 -6588 6588 6 -6589 6588 -1 -6608 6588 -1 -6988 6588 -1 -6589 6589 6 -6590 6589 -1 -6609 6589 -1 -6989 6589 -1 -6590 6590 6 -6591 6590 -1 -6610 6590 -1 -6990 6590 -1 -6591 6591 6 -6592 6591 -1 -6611 6591 -1 -6991 6591 -1 -6592 6592 6 -6593 6592 -1 -6612 6592 -1 -6992 6592 -1 -6593 6593 6 -6594 6593 -1 -6613 6593 -1 -6993 6593 -1 -6594 6594 6 -6595 6594 -1 -6614 6594 -1 -6994 6594 -1 -6595 6595 6 -6596 6595 -1 -6615 6595 -1 -6995 6595 -1 -6596 6596 6 -6597 6596 -1 -6616 6596 -1 -6996 6596 -1 -6597 6597 6 -6598 6597 -1 -6617 6597 -1 -6997 6597 -1 -6598 6598 6 -6599 6598 -1 -6618 6598 -1 -6998 6598 -1 -6599 6599 6 -6600 6599 -1 -6619 6599 -1 -6999 6599 -1 -6600 6600 6 -6620 6600 -1 -7000 6600 -1 -6601 6601 6 -6602 6601 -1 -6621 6601 -1 -7001 6601 -1 -6602 6602 6 -6603 6602 -1 -6622 6602 -1 -7002 6602 -1 -6603 6603 6 -6604 6603 -1 -6623 6603 -1 -7003 6603 -1 -6604 6604 6 -6605 6604 -1 -6624 6604 -1 -7004 6604 -1 -6605 6605 6 -6606 6605 -1 -6625 6605 -1 -7005 6605 -1 -6606 6606 6 -6607 6606 -1 -6626 6606 -1 -7006 6606 -1 -6607 6607 6 -6608 6607 -1 -6627 6607 -1 -7007 6607 -1 -6608 6608 6 -6609 6608 -1 -6628 6608 -1 -7008 6608 -1 -6609 6609 6 -6610 6609 -1 -6629 6609 -1 -7009 6609 -1 -6610 6610 6 -6611 6610 -1 -6630 6610 -1 -7010 6610 -1 -6611 6611 6 -6612 6611 -1 -6631 6611 -1 -7011 6611 -1 -6612 6612 6 -6613 6612 -1 -6632 6612 -1 -7012 6612 -1 -6613 6613 6 -6614 6613 -1 -6633 6613 -1 -7013 6613 -1 -6614 6614 6 -6615 6614 -1 -6634 6614 -1 -7014 6614 -1 -6615 6615 6 -6616 6615 -1 -6635 6615 -1 -7015 6615 -1 -6616 6616 6 -6617 6616 -1 -6636 6616 -1 -7016 6616 -1 -6617 6617 6 -6618 6617 -1 -6637 6617 -1 -7017 6617 -1 -6618 6618 6 -6619 6618 -1 -6638 6618 -1 -7018 6618 -1 -6619 6619 6 -6620 6619 -1 -6639 6619 -1 -7019 6619 -1 -6620 6620 6 -6640 6620 -1 -7020 6620 -1 -6621 6621 6 -6622 6621 -1 -6641 6621 -1 -7021 6621 -1 -6622 6622 6 -6623 6622 -1 -6642 6622 -1 -7022 6622 -1 -6623 6623 6 -6624 6623 -1 -6643 6623 -1 -7023 6623 -1 -6624 6624 6 -6625 6624 -1 -6644 6624 -1 -7024 6624 -1 -6625 6625 6 -6626 6625 -1 -6645 6625 -1 -7025 6625 -1 -6626 6626 6 -6627 6626 -1 -6646 6626 -1 -7026 6626 -1 -6627 6627 6 -6628 6627 -1 -6647 6627 -1 -7027 6627 -1 -6628 6628 6 -6629 6628 -1 -6648 6628 -1 -7028 6628 -1 -6629 6629 6 -6630 6629 -1 -6649 6629 -1 -7029 6629 -1 -6630 6630 6 -6631 6630 -1 -6650 6630 -1 -7030 6630 -1 -6631 6631 6 -6632 6631 -1 -6651 6631 -1 -7031 6631 -1 -6632 6632 6 -6633 6632 -1 -6652 6632 -1 -7032 6632 -1 -6633 6633 6 -6634 6633 -1 -6653 6633 -1 -7033 6633 -1 -6634 6634 6 -6635 6634 -1 -6654 6634 -1 -7034 6634 -1 -6635 6635 6 -6636 6635 -1 -6655 6635 -1 -7035 6635 -1 -6636 6636 6 -6637 6636 -1 -6656 6636 -1 -7036 6636 -1 -6637 6637 6 -6638 6637 -1 -6657 6637 -1 -7037 6637 -1 -6638 6638 6 -6639 6638 -1 -6658 6638 -1 -7038 6638 -1 -6639 6639 6 -6640 6639 -1 -6659 6639 -1 -7039 6639 -1 -6640 6640 6 -6660 6640 -1 -7040 6640 -1 -6641 6641 6 -6642 6641 -1 -6661 6641 -1 -7041 6641 -1 -6642 6642 6 -6643 6642 -1 -6662 6642 -1 -7042 6642 -1 -6643 6643 6 -6644 6643 -1 -6663 6643 -1 -7043 6643 -1 -6644 6644 6 -6645 6644 -1 -6664 6644 -1 -7044 6644 -1 -6645 6645 6 -6646 6645 -1 -6665 6645 -1 -7045 6645 -1 -6646 6646 6 -6647 6646 -1 -6666 6646 -1 -7046 6646 -1 -6647 6647 6 -6648 6647 -1 -6667 6647 -1 -7047 6647 -1 -6648 6648 6 -6649 6648 -1 -6668 6648 -1 -7048 6648 -1 -6649 6649 6 -6650 6649 -1 -6669 6649 -1 -7049 6649 -1 -6650 6650 6 -6651 6650 -1 -6670 6650 -1 -7050 6650 -1 -6651 6651 6 -6652 6651 -1 -6671 6651 -1 -7051 6651 -1 -6652 6652 6 -6653 6652 -1 -6672 6652 -1 -7052 6652 -1 -6653 6653 6 -6654 6653 -1 -6673 6653 -1 -7053 6653 -1 -6654 6654 6 -6655 6654 -1 -6674 6654 -1 -7054 6654 -1 -6655 6655 6 -6656 6655 -1 -6675 6655 -1 -7055 6655 -1 -6656 6656 6 -6657 6656 -1 -6676 6656 -1 -7056 6656 -1 -6657 6657 6 -6658 6657 -1 -6677 6657 -1 -7057 6657 -1 -6658 6658 6 -6659 6658 -1 -6678 6658 -1 -7058 6658 -1 -6659 6659 6 -6660 6659 -1 -6679 6659 -1 -7059 6659 -1 -6660 6660 6 -6680 6660 -1 -7060 6660 -1 -6661 6661 6 -6662 6661 -1 -6681 6661 -1 -7061 6661 -1 -6662 6662 6 -6663 6662 -1 -6682 6662 -1 -7062 6662 -1 -6663 6663 6 -6664 6663 -1 -6683 6663 -1 -7063 6663 -1 -6664 6664 6 -6665 6664 -1 -6684 6664 -1 -7064 6664 -1 -6665 6665 6 -6666 6665 -1 -6685 6665 -1 -7065 6665 -1 -6666 6666 6 -6667 6666 -1 -6686 6666 -1 -7066 6666 -1 -6667 6667 6 -6668 6667 -1 -6687 6667 -1 -7067 6667 -1 -6668 6668 6 -6669 6668 -1 -6688 6668 -1 -7068 6668 -1 -6669 6669 6 -6670 6669 -1 -6689 6669 -1 -7069 6669 -1 -6670 6670 6 -6671 6670 -1 -6690 6670 -1 -7070 6670 -1 -6671 6671 6 -6672 6671 -1 -6691 6671 -1 -7071 6671 -1 -6672 6672 6 -6673 6672 -1 -6692 6672 -1 -7072 6672 -1 -6673 6673 6 -6674 6673 -1 -6693 6673 -1 -7073 6673 -1 -6674 6674 6 -6675 6674 -1 -6694 6674 -1 -7074 6674 -1 -6675 6675 6 -6676 6675 -1 -6695 6675 -1 -7075 6675 -1 -6676 6676 6 -6677 6676 -1 -6696 6676 -1 -7076 6676 -1 -6677 6677 6 -6678 6677 -1 -6697 6677 -1 -7077 6677 -1 -6678 6678 6 -6679 6678 -1 -6698 6678 -1 -7078 6678 -1 -6679 6679 6 -6680 6679 -1 -6699 6679 -1 -7079 6679 -1 -6680 6680 6 -6700 6680 -1 -7080 6680 -1 -6681 6681 6 -6682 6681 -1 -6701 6681 -1 -7081 6681 -1 -6682 6682 6 -6683 6682 -1 -6702 6682 -1 -7082 6682 -1 -6683 6683 6 -6684 6683 -1 -6703 6683 -1 -7083 6683 -1 -6684 6684 6 -6685 6684 -1 -6704 6684 -1 -7084 6684 -1 -6685 6685 6 -6686 6685 -1 -6705 6685 -1 -7085 6685 -1 -6686 6686 6 -6687 6686 -1 -6706 6686 -1 -7086 6686 -1 -6687 6687 6 -6688 6687 -1 -6707 6687 -1 -7087 6687 -1 -6688 6688 6 -6689 6688 -1 -6708 6688 -1 -7088 6688 -1 -6689 6689 6 -6690 6689 -1 -6709 6689 -1 -7089 6689 -1 -6690 6690 6 -6691 6690 -1 -6710 6690 -1 -7090 6690 -1 -6691 6691 6 -6692 6691 -1 -6711 6691 -1 -7091 6691 -1 -6692 6692 6 -6693 6692 -1 -6712 6692 -1 -7092 6692 -1 -6693 6693 6 -6694 6693 -1 -6713 6693 -1 -7093 6693 -1 -6694 6694 6 -6695 6694 -1 -6714 6694 -1 -7094 6694 -1 -6695 6695 6 -6696 6695 -1 -6715 6695 -1 -7095 6695 -1 -6696 6696 6 -6697 6696 -1 -6716 6696 -1 -7096 6696 -1 -6697 6697 6 -6698 6697 -1 -6717 6697 -1 -7097 6697 -1 -6698 6698 6 -6699 6698 -1 -6718 6698 -1 -7098 6698 -1 -6699 6699 6 -6700 6699 -1 -6719 6699 -1 -7099 6699 -1 -6700 6700 6 -6720 6700 -1 -7100 6700 -1 -6701 6701 6 -6702 6701 -1 -6721 6701 -1 -7101 6701 -1 -6702 6702 6 -6703 6702 -1 -6722 6702 -1 -7102 6702 -1 -6703 6703 6 -6704 6703 -1 -6723 6703 -1 -7103 6703 -1 -6704 6704 6 -6705 6704 -1 -6724 6704 -1 -7104 6704 -1 -6705 6705 6 -6706 6705 -1 -6725 6705 -1 -7105 6705 -1 -6706 6706 6 -6707 6706 -1 -6726 6706 -1 -7106 6706 -1 -6707 6707 6 -6708 6707 -1 -6727 6707 -1 -7107 6707 -1 -6708 6708 6 -6709 6708 -1 -6728 6708 -1 -7108 6708 -1 -6709 6709 6 -6710 6709 -1 -6729 6709 -1 -7109 6709 -1 -6710 6710 6 -6711 6710 -1 -6730 6710 -1 -7110 6710 -1 -6711 6711 6 -6712 6711 -1 -6731 6711 -1 -7111 6711 -1 -6712 6712 6 -6713 6712 -1 -6732 6712 -1 -7112 6712 -1 -6713 6713 6 -6714 6713 -1 -6733 6713 -1 -7113 6713 -1 -6714 6714 6 -6715 6714 -1 -6734 6714 -1 -7114 6714 -1 -6715 6715 6 -6716 6715 -1 -6735 6715 -1 -7115 6715 -1 -6716 6716 6 -6717 6716 -1 -6736 6716 -1 -7116 6716 -1 -6717 6717 6 -6718 6717 -1 -6737 6717 -1 -7117 6717 -1 -6718 6718 6 -6719 6718 -1 -6738 6718 -1 -7118 6718 -1 -6719 6719 6 -6720 6719 -1 -6739 6719 -1 -7119 6719 -1 -6720 6720 6 -6740 6720 -1 -7120 6720 -1 -6721 6721 6 -6722 6721 -1 -6741 6721 -1 -7121 6721 -1 -6722 6722 6 -6723 6722 -1 -6742 6722 -1 -7122 6722 -1 -6723 6723 6 -6724 6723 -1 -6743 6723 -1 -7123 6723 -1 -6724 6724 6 -6725 6724 -1 -6744 6724 -1 -7124 6724 -1 -6725 6725 6 -6726 6725 -1 -6745 6725 -1 -7125 6725 -1 -6726 6726 6 -6727 6726 -1 -6746 6726 -1 -7126 6726 -1 -6727 6727 6 -6728 6727 -1 -6747 6727 -1 -7127 6727 -1 -6728 6728 6 -6729 6728 -1 -6748 6728 -1 -7128 6728 -1 -6729 6729 6 -6730 6729 -1 -6749 6729 -1 -7129 6729 -1 -6730 6730 6 -6731 6730 -1 -6750 6730 -1 -7130 6730 -1 -6731 6731 6 -6732 6731 -1 -6751 6731 -1 -7131 6731 -1 -6732 6732 6 -6733 6732 -1 -6752 6732 -1 -7132 6732 -1 -6733 6733 6 -6734 6733 -1 -6753 6733 -1 -7133 6733 -1 -6734 6734 6 -6735 6734 -1 -6754 6734 -1 -7134 6734 -1 -6735 6735 6 -6736 6735 -1 -6755 6735 -1 -7135 6735 -1 -6736 6736 6 -6737 6736 -1 -6756 6736 -1 -7136 6736 -1 -6737 6737 6 -6738 6737 -1 -6757 6737 -1 -7137 6737 -1 -6738 6738 6 -6739 6738 -1 -6758 6738 -1 -7138 6738 -1 -6739 6739 6 -6740 6739 -1 -6759 6739 -1 -7139 6739 -1 -6740 6740 6 -6760 6740 -1 -7140 6740 -1 -6741 6741 6 -6742 6741 -1 -6761 6741 -1 -7141 6741 -1 -6742 6742 6 -6743 6742 -1 -6762 6742 -1 -7142 6742 -1 -6743 6743 6 -6744 6743 -1 -6763 6743 -1 -7143 6743 -1 -6744 6744 6 -6745 6744 -1 -6764 6744 -1 -7144 6744 -1 -6745 6745 6 -6746 6745 -1 -6765 6745 -1 -7145 6745 -1 -6746 6746 6 -6747 6746 -1 -6766 6746 -1 -7146 6746 -1 -6747 6747 6 -6748 6747 -1 -6767 6747 -1 -7147 6747 -1 -6748 6748 6 -6749 6748 -1 -6768 6748 -1 -7148 6748 -1 -6749 6749 6 -6750 6749 -1 -6769 6749 -1 -7149 6749 -1 -6750 6750 6 -6751 6750 -1 -6770 6750 -1 -7150 6750 -1 -6751 6751 6 -6752 6751 -1 -6771 6751 -1 -7151 6751 -1 -6752 6752 6 -6753 6752 -1 -6772 6752 -1 -7152 6752 -1 -6753 6753 6 -6754 6753 -1 -6773 6753 -1 -7153 6753 -1 -6754 6754 6 -6755 6754 -1 -6774 6754 -1 -7154 6754 -1 -6755 6755 6 -6756 6755 -1 -6775 6755 -1 -7155 6755 -1 -6756 6756 6 -6757 6756 -1 -6776 6756 -1 -7156 6756 -1 -6757 6757 6 -6758 6757 -1 -6777 6757 -1 -7157 6757 -1 -6758 6758 6 -6759 6758 -1 -6778 6758 -1 -7158 6758 -1 -6759 6759 6 -6760 6759 -1 -6779 6759 -1 -7159 6759 -1 -6760 6760 6 -6780 6760 -1 -7160 6760 -1 -6761 6761 6 -6762 6761 -1 -6781 6761 -1 -7161 6761 -1 -6762 6762 6 -6763 6762 -1 -6782 6762 -1 -7162 6762 -1 -6763 6763 6 -6764 6763 -1 -6783 6763 -1 -7163 6763 -1 -6764 6764 6 -6765 6764 -1 -6784 6764 -1 -7164 6764 -1 -6765 6765 6 -6766 6765 -1 -6785 6765 -1 -7165 6765 -1 -6766 6766 6 -6767 6766 -1 -6786 6766 -1 -7166 6766 -1 -6767 6767 6 -6768 6767 -1 -6787 6767 -1 -7167 6767 -1 -6768 6768 6 -6769 6768 -1 -6788 6768 -1 -7168 6768 -1 -6769 6769 6 -6770 6769 -1 -6789 6769 -1 -7169 6769 -1 -6770 6770 6 -6771 6770 -1 -6790 6770 -1 -7170 6770 -1 -6771 6771 6 -6772 6771 -1 -6791 6771 -1 -7171 6771 -1 -6772 6772 6 -6773 6772 -1 -6792 6772 -1 -7172 6772 -1 -6773 6773 6 -6774 6773 -1 -6793 6773 -1 -7173 6773 -1 -6774 6774 6 -6775 6774 -1 -6794 6774 -1 -7174 6774 -1 -6775 6775 6 -6776 6775 -1 -6795 6775 -1 -7175 6775 -1 -6776 6776 6 -6777 6776 -1 -6796 6776 -1 -7176 6776 -1 -6777 6777 6 -6778 6777 -1 -6797 6777 -1 -7177 6777 -1 -6778 6778 6 -6779 6778 -1 -6798 6778 -1 -7178 6778 -1 -6779 6779 6 -6780 6779 -1 -6799 6779 -1 -7179 6779 -1 -6780 6780 6 -6800 6780 -1 -7180 6780 -1 -6781 6781 6 -6782 6781 -1 -7181 6781 -1 -6782 6782 6 -6783 6782 -1 -7182 6782 -1 -6783 6783 6 -6784 6783 -1 -7183 6783 -1 -6784 6784 6 -6785 6784 -1 -7184 6784 -1 -6785 6785 6 -6786 6785 -1 -7185 6785 -1 -6786 6786 6 -6787 6786 -1 -7186 6786 -1 -6787 6787 6 -6788 6787 -1 -7187 6787 -1 -6788 6788 6 -6789 6788 -1 -7188 6788 -1 -6789 6789 6 -6790 6789 -1 -7189 6789 -1 -6790 6790 6 -6791 6790 -1 -7190 6790 -1 -6791 6791 6 -6792 6791 -1 -7191 6791 -1 -6792 6792 6 -6793 6792 -1 -7192 6792 -1 -6793 6793 6 -6794 6793 -1 -7193 6793 -1 -6794 6794 6 -6795 6794 -1 -7194 6794 -1 -6795 6795 6 -6796 6795 -1 -7195 6795 -1 -6796 6796 6 -6797 6796 -1 -7196 6796 -1 -6797 6797 6 -6798 6797 -1 -7197 6797 -1 -6798 6798 6 -6799 6798 -1 -7198 6798 -1 -6799 6799 6 -6800 6799 -1 -7199 6799 -1 -6800 6800 6 -7200 6800 -1 -6801 6801 6 -6802 6801 -1 -6821 6801 -1 -7201 6801 -1 -6802 6802 6 -6803 6802 -1 -6822 6802 -1 -7202 6802 -1 -6803 6803 6 -6804 6803 -1 -6823 6803 -1 -7203 6803 -1 -6804 6804 6 -6805 6804 -1 -6824 6804 -1 -7204 6804 -1 -6805 6805 6 -6806 6805 -1 -6825 6805 -1 -7205 6805 -1 -6806 6806 6 -6807 6806 -1 -6826 6806 -1 -7206 6806 -1 -6807 6807 6 -6808 6807 -1 -6827 6807 -1 -7207 6807 -1 -6808 6808 6 -6809 6808 -1 -6828 6808 -1 -7208 6808 -1 -6809 6809 6 -6810 6809 -1 -6829 6809 -1 -7209 6809 -1 -6810 6810 6 -6811 6810 -1 -6830 6810 -1 -7210 6810 -1 -6811 6811 6 -6812 6811 -1 -6831 6811 -1 -7211 6811 -1 -6812 6812 6 -6813 6812 -1 -6832 6812 -1 -7212 6812 -1 -6813 6813 6 -6814 6813 -1 -6833 6813 -1 -7213 6813 -1 -6814 6814 6 -6815 6814 -1 -6834 6814 -1 -7214 6814 -1 -6815 6815 6 -6816 6815 -1 -6835 6815 -1 -7215 6815 -1 -6816 6816 6 -6817 6816 -1 -6836 6816 -1 -7216 6816 -1 -6817 6817 6 -6818 6817 -1 -6837 6817 -1 -7217 6817 -1 -6818 6818 6 -6819 6818 -1 -6838 6818 -1 -7218 6818 -1 -6819 6819 6 -6820 6819 -1 -6839 6819 -1 -7219 6819 -1 -6820 6820 6 -6840 6820 -1 -7220 6820 -1 -6821 6821 6 -6822 6821 -1 -6841 6821 -1 -7221 6821 -1 -6822 6822 6 -6823 6822 -1 -6842 6822 -1 -7222 6822 -1 -6823 6823 6 -6824 6823 -1 -6843 6823 -1 -7223 6823 -1 -6824 6824 6 -6825 6824 -1 -6844 6824 -1 -7224 6824 -1 -6825 6825 6 -6826 6825 -1 -6845 6825 -1 -7225 6825 -1 -6826 6826 6 -6827 6826 -1 -6846 6826 -1 -7226 6826 -1 -6827 6827 6 -6828 6827 -1 -6847 6827 -1 -7227 6827 -1 -6828 6828 6 -6829 6828 -1 -6848 6828 -1 -7228 6828 -1 -6829 6829 6 -6830 6829 -1 -6849 6829 -1 -7229 6829 -1 -6830 6830 6 -6831 6830 -1 -6850 6830 -1 -7230 6830 -1 -6831 6831 6 -6832 6831 -1 -6851 6831 -1 -7231 6831 -1 -6832 6832 6 -6833 6832 -1 -6852 6832 -1 -7232 6832 -1 -6833 6833 6 -6834 6833 -1 -6853 6833 -1 -7233 6833 -1 -6834 6834 6 -6835 6834 -1 -6854 6834 -1 -7234 6834 -1 -6835 6835 6 -6836 6835 -1 -6855 6835 -1 -7235 6835 -1 -6836 6836 6 -6837 6836 -1 -6856 6836 -1 -7236 6836 -1 -6837 6837 6 -6838 6837 -1 -6857 6837 -1 -7237 6837 -1 -6838 6838 6 -6839 6838 -1 -6858 6838 -1 -7238 6838 -1 -6839 6839 6 -6840 6839 -1 -6859 6839 -1 -7239 6839 -1 -6840 6840 6 -6860 6840 -1 -7240 6840 -1 -6841 6841 6 -6842 6841 -1 -6861 6841 -1 -7241 6841 -1 -6842 6842 6 -6843 6842 -1 -6862 6842 -1 -7242 6842 -1 -6843 6843 6 -6844 6843 -1 -6863 6843 -1 -7243 6843 -1 -6844 6844 6 -6845 6844 -1 -6864 6844 -1 -7244 6844 -1 -6845 6845 6 -6846 6845 -1 -6865 6845 -1 -7245 6845 -1 -6846 6846 6 -6847 6846 -1 -6866 6846 -1 -7246 6846 -1 -6847 6847 6 -6848 6847 -1 -6867 6847 -1 -7247 6847 -1 -6848 6848 6 -6849 6848 -1 -6868 6848 -1 -7248 6848 -1 -6849 6849 6 -6850 6849 -1 -6869 6849 -1 -7249 6849 -1 -6850 6850 6 -6851 6850 -1 -6870 6850 -1 -7250 6850 -1 -6851 6851 6 -6852 6851 -1 -6871 6851 -1 -7251 6851 -1 -6852 6852 6 -6853 6852 -1 -6872 6852 -1 -7252 6852 -1 -6853 6853 6 -6854 6853 -1 -6873 6853 -1 -7253 6853 -1 -6854 6854 6 -6855 6854 -1 -6874 6854 -1 -7254 6854 -1 -6855 6855 6 -6856 6855 -1 -6875 6855 -1 -7255 6855 -1 -6856 6856 6 -6857 6856 -1 -6876 6856 -1 -7256 6856 -1 -6857 6857 6 -6858 6857 -1 -6877 6857 -1 -7257 6857 -1 -6858 6858 6 -6859 6858 -1 -6878 6858 -1 -7258 6858 -1 -6859 6859 6 -6860 6859 -1 -6879 6859 -1 -7259 6859 -1 -6860 6860 6 -6880 6860 -1 -7260 6860 -1 -6861 6861 6 -6862 6861 -1 -6881 6861 -1 -7261 6861 -1 -6862 6862 6 -6863 6862 -1 -6882 6862 -1 -7262 6862 -1 -6863 6863 6 -6864 6863 -1 -6883 6863 -1 -7263 6863 -1 -6864 6864 6 -6865 6864 -1 -6884 6864 -1 -7264 6864 -1 -6865 6865 6 -6866 6865 -1 -6885 6865 -1 -7265 6865 -1 -6866 6866 6 -6867 6866 -1 -6886 6866 -1 -7266 6866 -1 -6867 6867 6 -6868 6867 -1 -6887 6867 -1 -7267 6867 -1 -6868 6868 6 -6869 6868 -1 -6888 6868 -1 -7268 6868 -1 -6869 6869 6 -6870 6869 -1 -6889 6869 -1 -7269 6869 -1 -6870 6870 6 -6871 6870 -1 -6890 6870 -1 -7270 6870 -1 -6871 6871 6 -6872 6871 -1 -6891 6871 -1 -7271 6871 -1 -6872 6872 6 -6873 6872 -1 -6892 6872 -1 -7272 6872 -1 -6873 6873 6 -6874 6873 -1 -6893 6873 -1 -7273 6873 -1 -6874 6874 6 -6875 6874 -1 -6894 6874 -1 -7274 6874 -1 -6875 6875 6 -6876 6875 -1 -6895 6875 -1 -7275 6875 -1 -6876 6876 6 -6877 6876 -1 -6896 6876 -1 -7276 6876 -1 -6877 6877 6 -6878 6877 -1 -6897 6877 -1 -7277 6877 -1 -6878 6878 6 -6879 6878 -1 -6898 6878 -1 -7278 6878 -1 -6879 6879 6 -6880 6879 -1 -6899 6879 -1 -7279 6879 -1 -6880 6880 6 -6900 6880 -1 -7280 6880 -1 -6881 6881 6 -6882 6881 -1 -6901 6881 -1 -7281 6881 -1 -6882 6882 6 -6883 6882 -1 -6902 6882 -1 -7282 6882 -1 -6883 6883 6 -6884 6883 -1 -6903 6883 -1 -7283 6883 -1 -6884 6884 6 -6885 6884 -1 -6904 6884 -1 -7284 6884 -1 -6885 6885 6 -6886 6885 -1 -6905 6885 -1 -7285 6885 -1 -6886 6886 6 -6887 6886 -1 -6906 6886 -1 -7286 6886 -1 -6887 6887 6 -6888 6887 -1 -6907 6887 -1 -7287 6887 -1 -6888 6888 6 -6889 6888 -1 -6908 6888 -1 -7288 6888 -1 -6889 6889 6 -6890 6889 -1 -6909 6889 -1 -7289 6889 -1 -6890 6890 6 -6891 6890 -1 -6910 6890 -1 -7290 6890 -1 -6891 6891 6 -6892 6891 -1 -6911 6891 -1 -7291 6891 -1 -6892 6892 6 -6893 6892 -1 -6912 6892 -1 -7292 6892 -1 -6893 6893 6 -6894 6893 -1 -6913 6893 -1 -7293 6893 -1 -6894 6894 6 -6895 6894 -1 -6914 6894 -1 -7294 6894 -1 -6895 6895 6 -6896 6895 -1 -6915 6895 -1 -7295 6895 -1 -6896 6896 6 -6897 6896 -1 -6916 6896 -1 -7296 6896 -1 -6897 6897 6 -6898 6897 -1 -6917 6897 -1 -7297 6897 -1 -6898 6898 6 -6899 6898 -1 -6918 6898 -1 -7298 6898 -1 -6899 6899 6 -6900 6899 -1 -6919 6899 -1 -7299 6899 -1 -6900 6900 6 -6920 6900 -1 -7300 6900 -1 -6901 6901 6 -6902 6901 -1 -6921 6901 -1 -7301 6901 -1 -6902 6902 6 -6903 6902 -1 -6922 6902 -1 -7302 6902 -1 -6903 6903 6 -6904 6903 -1 -6923 6903 -1 -7303 6903 -1 -6904 6904 6 -6905 6904 -1 -6924 6904 -1 -7304 6904 -1 -6905 6905 6 -6906 6905 -1 -6925 6905 -1 -7305 6905 -1 -6906 6906 6 -6907 6906 -1 -6926 6906 -1 -7306 6906 -1 -6907 6907 6 -6908 6907 -1 -6927 6907 -1 -7307 6907 -1 -6908 6908 6 -6909 6908 -1 -6928 6908 -1 -7308 6908 -1 -6909 6909 6 -6910 6909 -1 -6929 6909 -1 -7309 6909 -1 -6910 6910 6 -6911 6910 -1 -6930 6910 -1 -7310 6910 -1 -6911 6911 6 -6912 6911 -1 -6931 6911 -1 -7311 6911 -1 -6912 6912 6 -6913 6912 -1 -6932 6912 -1 -7312 6912 -1 -6913 6913 6 -6914 6913 -1 -6933 6913 -1 -7313 6913 -1 -6914 6914 6 -6915 6914 -1 -6934 6914 -1 -7314 6914 -1 -6915 6915 6 -6916 6915 -1 -6935 6915 -1 -7315 6915 -1 -6916 6916 6 -6917 6916 -1 -6936 6916 -1 -7316 6916 -1 -6917 6917 6 -6918 6917 -1 -6937 6917 -1 -7317 6917 -1 -6918 6918 6 -6919 6918 -1 -6938 6918 -1 -7318 6918 -1 -6919 6919 6 -6920 6919 -1 -6939 6919 -1 -7319 6919 -1 -6920 6920 6 -6940 6920 -1 -7320 6920 -1 -6921 6921 6 -6922 6921 -1 -6941 6921 -1 -7321 6921 -1 -6922 6922 6 -6923 6922 -1 -6942 6922 -1 -7322 6922 -1 -6923 6923 6 -6924 6923 -1 -6943 6923 -1 -7323 6923 -1 -6924 6924 6 -6925 6924 -1 -6944 6924 -1 -7324 6924 -1 -6925 6925 6 -6926 6925 -1 -6945 6925 -1 -7325 6925 -1 -6926 6926 6 -6927 6926 -1 -6946 6926 -1 -7326 6926 -1 -6927 6927 6 -6928 6927 -1 -6947 6927 -1 -7327 6927 -1 -6928 6928 6 -6929 6928 -1 -6948 6928 -1 -7328 6928 -1 -6929 6929 6 -6930 6929 -1 -6949 6929 -1 -7329 6929 -1 -6930 6930 6 -6931 6930 -1 -6950 6930 -1 -7330 6930 -1 -6931 6931 6 -6932 6931 -1 -6951 6931 -1 -7331 6931 -1 -6932 6932 6 -6933 6932 -1 -6952 6932 -1 -7332 6932 -1 -6933 6933 6 -6934 6933 -1 -6953 6933 -1 -7333 6933 -1 -6934 6934 6 -6935 6934 -1 -6954 6934 -1 -7334 6934 -1 -6935 6935 6 -6936 6935 -1 -6955 6935 -1 -7335 6935 -1 -6936 6936 6 -6937 6936 -1 -6956 6936 -1 -7336 6936 -1 -6937 6937 6 -6938 6937 -1 -6957 6937 -1 -7337 6937 -1 -6938 6938 6 -6939 6938 -1 -6958 6938 -1 -7338 6938 -1 -6939 6939 6 -6940 6939 -1 -6959 6939 -1 -7339 6939 -1 -6940 6940 6 -6960 6940 -1 -7340 6940 -1 -6941 6941 6 -6942 6941 -1 -6961 6941 -1 -7341 6941 -1 -6942 6942 6 -6943 6942 -1 -6962 6942 -1 -7342 6942 -1 -6943 6943 6 -6944 6943 -1 -6963 6943 -1 -7343 6943 -1 -6944 6944 6 -6945 6944 -1 -6964 6944 -1 -7344 6944 -1 -6945 6945 6 -6946 6945 -1 -6965 6945 -1 -7345 6945 -1 -6946 6946 6 -6947 6946 -1 -6966 6946 -1 -7346 6946 -1 -6947 6947 6 -6948 6947 -1 -6967 6947 -1 -7347 6947 -1 -6948 6948 6 -6949 6948 -1 -6968 6948 -1 -7348 6948 -1 -6949 6949 6 -6950 6949 -1 -6969 6949 -1 -7349 6949 -1 -6950 6950 6 -6951 6950 -1 -6970 6950 -1 -7350 6950 -1 -6951 6951 6 -6952 6951 -1 -6971 6951 -1 -7351 6951 -1 -6952 6952 6 -6953 6952 -1 -6972 6952 -1 -7352 6952 -1 -6953 6953 6 -6954 6953 -1 -6973 6953 -1 -7353 6953 -1 -6954 6954 6 -6955 6954 -1 -6974 6954 -1 -7354 6954 -1 -6955 6955 6 -6956 6955 -1 -6975 6955 -1 -7355 6955 -1 -6956 6956 6 -6957 6956 -1 -6976 6956 -1 -7356 6956 -1 -6957 6957 6 -6958 6957 -1 -6977 6957 -1 -7357 6957 -1 -6958 6958 6 -6959 6958 -1 -6978 6958 -1 -7358 6958 -1 -6959 6959 6 -6960 6959 -1 -6979 6959 -1 -7359 6959 -1 -6960 6960 6 -6980 6960 -1 -7360 6960 -1 -6961 6961 6 -6962 6961 -1 -6981 6961 -1 -7361 6961 -1 -6962 6962 6 -6963 6962 -1 -6982 6962 -1 -7362 6962 -1 -6963 6963 6 -6964 6963 -1 -6983 6963 -1 -7363 6963 -1 -6964 6964 6 -6965 6964 -1 -6984 6964 -1 -7364 6964 -1 -6965 6965 6 -6966 6965 -1 -6985 6965 -1 -7365 6965 -1 -6966 6966 6 -6967 6966 -1 -6986 6966 -1 -7366 6966 -1 -6967 6967 6 -6968 6967 -1 -6987 6967 -1 -7367 6967 -1 -6968 6968 6 -6969 6968 -1 -6988 6968 -1 -7368 6968 -1 -6969 6969 6 -6970 6969 -1 -6989 6969 -1 -7369 6969 -1 -6970 6970 6 -6971 6970 -1 -6990 6970 -1 -7370 6970 -1 -6971 6971 6 -6972 6971 -1 -6991 6971 -1 -7371 6971 -1 -6972 6972 6 -6973 6972 -1 -6992 6972 -1 -7372 6972 -1 -6973 6973 6 -6974 6973 -1 -6993 6973 -1 -7373 6973 -1 -6974 6974 6 -6975 6974 -1 -6994 6974 -1 -7374 6974 -1 -6975 6975 6 -6976 6975 -1 -6995 6975 -1 -7375 6975 -1 -6976 6976 6 -6977 6976 -1 -6996 6976 -1 -7376 6976 -1 -6977 6977 6 -6978 6977 -1 -6997 6977 -1 -7377 6977 -1 -6978 6978 6 -6979 6978 -1 -6998 6978 -1 -7378 6978 -1 -6979 6979 6 -6980 6979 -1 -6999 6979 -1 -7379 6979 -1 -6980 6980 6 -7000 6980 -1 -7380 6980 -1 -6981 6981 6 -6982 6981 -1 -7001 6981 -1 -7381 6981 -1 -6982 6982 6 -6983 6982 -1 -7002 6982 -1 -7382 6982 -1 -6983 6983 6 -6984 6983 -1 -7003 6983 -1 -7383 6983 -1 -6984 6984 6 -6985 6984 -1 -7004 6984 -1 -7384 6984 -1 -6985 6985 6 -6986 6985 -1 -7005 6985 -1 -7385 6985 -1 -6986 6986 6 -6987 6986 -1 -7006 6986 -1 -7386 6986 -1 -6987 6987 6 -6988 6987 -1 -7007 6987 -1 -7387 6987 -1 -6988 6988 6 -6989 6988 -1 -7008 6988 -1 -7388 6988 -1 -6989 6989 6 -6990 6989 -1 -7009 6989 -1 -7389 6989 -1 -6990 6990 6 -6991 6990 -1 -7010 6990 -1 -7390 6990 -1 -6991 6991 6 -6992 6991 -1 -7011 6991 -1 -7391 6991 -1 -6992 6992 6 -6993 6992 -1 -7012 6992 -1 -7392 6992 -1 -6993 6993 6 -6994 6993 -1 -7013 6993 -1 -7393 6993 -1 -6994 6994 6 -6995 6994 -1 -7014 6994 -1 -7394 6994 -1 -6995 6995 6 -6996 6995 -1 -7015 6995 -1 -7395 6995 -1 -6996 6996 6 -6997 6996 -1 -7016 6996 -1 -7396 6996 -1 -6997 6997 6 -6998 6997 -1 -7017 6997 -1 -7397 6997 -1 -6998 6998 6 -6999 6998 -1 -7018 6998 -1 -7398 6998 -1 -6999 6999 6 -7000 6999 -1 -7019 6999 -1 -7399 6999 -1 -7000 7000 6 -7020 7000 -1 -7400 7000 -1 -7001 7001 6 -7002 7001 -1 -7021 7001 -1 -7401 7001 -1 -7002 7002 6 -7003 7002 -1 -7022 7002 -1 -7402 7002 -1 -7003 7003 6 -7004 7003 -1 -7023 7003 -1 -7403 7003 -1 -7004 7004 6 -7005 7004 -1 -7024 7004 -1 -7404 7004 -1 -7005 7005 6 -7006 7005 -1 -7025 7005 -1 -7405 7005 -1 -7006 7006 6 -7007 7006 -1 -7026 7006 -1 -7406 7006 -1 -7007 7007 6 -7008 7007 -1 -7027 7007 -1 -7407 7007 -1 -7008 7008 6 -7009 7008 -1 -7028 7008 -1 -7408 7008 -1 -7009 7009 6 -7010 7009 -1 -7029 7009 -1 -7409 7009 -1 -7010 7010 6 -7011 7010 -1 -7030 7010 -1 -7410 7010 -1 -7011 7011 6 -7012 7011 -1 -7031 7011 -1 -7411 7011 -1 -7012 7012 6 -7013 7012 -1 -7032 7012 -1 -7412 7012 -1 -7013 7013 6 -7014 7013 -1 -7033 7013 -1 -7413 7013 -1 -7014 7014 6 -7015 7014 -1 -7034 7014 -1 -7414 7014 -1 -7015 7015 6 -7016 7015 -1 -7035 7015 -1 -7415 7015 -1 -7016 7016 6 -7017 7016 -1 -7036 7016 -1 -7416 7016 -1 -7017 7017 6 -7018 7017 -1 -7037 7017 -1 -7417 7017 -1 -7018 7018 6 -7019 7018 -1 -7038 7018 -1 -7418 7018 -1 -7019 7019 6 -7020 7019 -1 -7039 7019 -1 -7419 7019 -1 -7020 7020 6 -7040 7020 -1 -7420 7020 -1 -7021 7021 6 -7022 7021 -1 -7041 7021 -1 -7421 7021 -1 -7022 7022 6 -7023 7022 -1 -7042 7022 -1 -7422 7022 -1 -7023 7023 6 -7024 7023 -1 -7043 7023 -1 -7423 7023 -1 -7024 7024 6 -7025 7024 -1 -7044 7024 -1 -7424 7024 -1 -7025 7025 6 -7026 7025 -1 -7045 7025 -1 -7425 7025 -1 -7026 7026 6 -7027 7026 -1 -7046 7026 -1 -7426 7026 -1 -7027 7027 6 -7028 7027 -1 -7047 7027 -1 -7427 7027 -1 -7028 7028 6 -7029 7028 -1 -7048 7028 -1 -7428 7028 -1 -7029 7029 6 -7030 7029 -1 -7049 7029 -1 -7429 7029 -1 -7030 7030 6 -7031 7030 -1 -7050 7030 -1 -7430 7030 -1 -7031 7031 6 -7032 7031 -1 -7051 7031 -1 -7431 7031 -1 -7032 7032 6 -7033 7032 -1 -7052 7032 -1 -7432 7032 -1 -7033 7033 6 -7034 7033 -1 -7053 7033 -1 -7433 7033 -1 -7034 7034 6 -7035 7034 -1 -7054 7034 -1 -7434 7034 -1 -7035 7035 6 -7036 7035 -1 -7055 7035 -1 -7435 7035 -1 -7036 7036 6 -7037 7036 -1 -7056 7036 -1 -7436 7036 -1 -7037 7037 6 -7038 7037 -1 -7057 7037 -1 -7437 7037 -1 -7038 7038 6 -7039 7038 -1 -7058 7038 -1 -7438 7038 -1 -7039 7039 6 -7040 7039 -1 -7059 7039 -1 -7439 7039 -1 -7040 7040 6 -7060 7040 -1 -7440 7040 -1 -7041 7041 6 -7042 7041 -1 -7061 7041 -1 -7441 7041 -1 -7042 7042 6 -7043 7042 -1 -7062 7042 -1 -7442 7042 -1 -7043 7043 6 -7044 7043 -1 -7063 7043 -1 -7443 7043 -1 -7044 7044 6 -7045 7044 -1 -7064 7044 -1 -7444 7044 -1 -7045 7045 6 -7046 7045 -1 -7065 7045 -1 -7445 7045 -1 -7046 7046 6 -7047 7046 -1 -7066 7046 -1 -7446 7046 -1 -7047 7047 6 -7048 7047 -1 -7067 7047 -1 -7447 7047 -1 -7048 7048 6 -7049 7048 -1 -7068 7048 -1 -7448 7048 -1 -7049 7049 6 -7050 7049 -1 -7069 7049 -1 -7449 7049 -1 -7050 7050 6 -7051 7050 -1 -7070 7050 -1 -7450 7050 -1 -7051 7051 6 -7052 7051 -1 -7071 7051 -1 -7451 7051 -1 -7052 7052 6 -7053 7052 -1 -7072 7052 -1 -7452 7052 -1 -7053 7053 6 -7054 7053 -1 -7073 7053 -1 -7453 7053 -1 -7054 7054 6 -7055 7054 -1 -7074 7054 -1 -7454 7054 -1 -7055 7055 6 -7056 7055 -1 -7075 7055 -1 -7455 7055 -1 -7056 7056 6 -7057 7056 -1 -7076 7056 -1 -7456 7056 -1 -7057 7057 6 -7058 7057 -1 -7077 7057 -1 -7457 7057 -1 -7058 7058 6 -7059 7058 -1 -7078 7058 -1 -7458 7058 -1 -7059 7059 6 -7060 7059 -1 -7079 7059 -1 -7459 7059 -1 -7060 7060 6 -7080 7060 -1 -7460 7060 -1 -7061 7061 6 -7062 7061 -1 -7081 7061 -1 -7461 7061 -1 -7062 7062 6 -7063 7062 -1 -7082 7062 -1 -7462 7062 -1 -7063 7063 6 -7064 7063 -1 -7083 7063 -1 -7463 7063 -1 -7064 7064 6 -7065 7064 -1 -7084 7064 -1 -7464 7064 -1 -7065 7065 6 -7066 7065 -1 -7085 7065 -1 -7465 7065 -1 -7066 7066 6 -7067 7066 -1 -7086 7066 -1 -7466 7066 -1 -7067 7067 6 -7068 7067 -1 -7087 7067 -1 -7467 7067 -1 -7068 7068 6 -7069 7068 -1 -7088 7068 -1 -7468 7068 -1 -7069 7069 6 -7070 7069 -1 -7089 7069 -1 -7469 7069 -1 -7070 7070 6 -7071 7070 -1 -7090 7070 -1 -7470 7070 -1 -7071 7071 6 -7072 7071 -1 -7091 7071 -1 -7471 7071 -1 -7072 7072 6 -7073 7072 -1 -7092 7072 -1 -7472 7072 -1 -7073 7073 6 -7074 7073 -1 -7093 7073 -1 -7473 7073 -1 -7074 7074 6 -7075 7074 -1 -7094 7074 -1 -7474 7074 -1 -7075 7075 6 -7076 7075 -1 -7095 7075 -1 -7475 7075 -1 -7076 7076 6 -7077 7076 -1 -7096 7076 -1 -7476 7076 -1 -7077 7077 6 -7078 7077 -1 -7097 7077 -1 -7477 7077 -1 -7078 7078 6 -7079 7078 -1 -7098 7078 -1 -7478 7078 -1 -7079 7079 6 -7080 7079 -1 -7099 7079 -1 -7479 7079 -1 -7080 7080 6 -7100 7080 -1 -7480 7080 -1 -7081 7081 6 -7082 7081 -1 -7101 7081 -1 -7481 7081 -1 -7082 7082 6 -7083 7082 -1 -7102 7082 -1 -7482 7082 -1 -7083 7083 6 -7084 7083 -1 -7103 7083 -1 -7483 7083 -1 -7084 7084 6 -7085 7084 -1 -7104 7084 -1 -7484 7084 -1 -7085 7085 6 -7086 7085 -1 -7105 7085 -1 -7485 7085 -1 -7086 7086 6 -7087 7086 -1 -7106 7086 -1 -7486 7086 -1 -7087 7087 6 -7088 7087 -1 -7107 7087 -1 -7487 7087 -1 -7088 7088 6 -7089 7088 -1 -7108 7088 -1 -7488 7088 -1 -7089 7089 6 -7090 7089 -1 -7109 7089 -1 -7489 7089 -1 -7090 7090 6 -7091 7090 -1 -7110 7090 -1 -7490 7090 -1 -7091 7091 6 -7092 7091 -1 -7111 7091 -1 -7491 7091 -1 -7092 7092 6 -7093 7092 -1 -7112 7092 -1 -7492 7092 -1 -7093 7093 6 -7094 7093 -1 -7113 7093 -1 -7493 7093 -1 -7094 7094 6 -7095 7094 -1 -7114 7094 -1 -7494 7094 -1 -7095 7095 6 -7096 7095 -1 -7115 7095 -1 -7495 7095 -1 -7096 7096 6 -7097 7096 -1 -7116 7096 -1 -7496 7096 -1 -7097 7097 6 -7098 7097 -1 -7117 7097 -1 -7497 7097 -1 -7098 7098 6 -7099 7098 -1 -7118 7098 -1 -7498 7098 -1 -7099 7099 6 -7100 7099 -1 -7119 7099 -1 -7499 7099 -1 -7100 7100 6 -7120 7100 -1 -7500 7100 -1 -7101 7101 6 -7102 7101 -1 -7121 7101 -1 -7501 7101 -1 -7102 7102 6 -7103 7102 -1 -7122 7102 -1 -7502 7102 -1 -7103 7103 6 -7104 7103 -1 -7123 7103 -1 -7503 7103 -1 -7104 7104 6 -7105 7104 -1 -7124 7104 -1 -7504 7104 -1 -7105 7105 6 -7106 7105 -1 -7125 7105 -1 -7505 7105 -1 -7106 7106 6 -7107 7106 -1 -7126 7106 -1 -7506 7106 -1 -7107 7107 6 -7108 7107 -1 -7127 7107 -1 -7507 7107 -1 -7108 7108 6 -7109 7108 -1 -7128 7108 -1 -7508 7108 -1 -7109 7109 6 -7110 7109 -1 -7129 7109 -1 -7509 7109 -1 -7110 7110 6 -7111 7110 -1 -7130 7110 -1 -7510 7110 -1 -7111 7111 6 -7112 7111 -1 -7131 7111 -1 -7511 7111 -1 -7112 7112 6 -7113 7112 -1 -7132 7112 -1 -7512 7112 -1 -7113 7113 6 -7114 7113 -1 -7133 7113 -1 -7513 7113 -1 -7114 7114 6 -7115 7114 -1 -7134 7114 -1 -7514 7114 -1 -7115 7115 6 -7116 7115 -1 -7135 7115 -1 -7515 7115 -1 -7116 7116 6 -7117 7116 -1 -7136 7116 -1 -7516 7116 -1 -7117 7117 6 -7118 7117 -1 -7137 7117 -1 -7517 7117 -1 -7118 7118 6 -7119 7118 -1 -7138 7118 -1 -7518 7118 -1 -7119 7119 6 -7120 7119 -1 -7139 7119 -1 -7519 7119 -1 -7120 7120 6 -7140 7120 -1 -7520 7120 -1 -7121 7121 6 -7122 7121 -1 -7141 7121 -1 -7521 7121 -1 -7122 7122 6 -7123 7122 -1 -7142 7122 -1 -7522 7122 -1 -7123 7123 6 -7124 7123 -1 -7143 7123 -1 -7523 7123 -1 -7124 7124 6 -7125 7124 -1 -7144 7124 -1 -7524 7124 -1 -7125 7125 6 -7126 7125 -1 -7145 7125 -1 -7525 7125 -1 -7126 7126 6 -7127 7126 -1 -7146 7126 -1 -7526 7126 -1 -7127 7127 6 -7128 7127 -1 -7147 7127 -1 -7527 7127 -1 -7128 7128 6 -7129 7128 -1 -7148 7128 -1 -7528 7128 -1 -7129 7129 6 -7130 7129 -1 -7149 7129 -1 -7529 7129 -1 -7130 7130 6 -7131 7130 -1 -7150 7130 -1 -7530 7130 -1 -7131 7131 6 -7132 7131 -1 -7151 7131 -1 -7531 7131 -1 -7132 7132 6 -7133 7132 -1 -7152 7132 -1 -7532 7132 -1 -7133 7133 6 -7134 7133 -1 -7153 7133 -1 -7533 7133 -1 -7134 7134 6 -7135 7134 -1 -7154 7134 -1 -7534 7134 -1 -7135 7135 6 -7136 7135 -1 -7155 7135 -1 -7535 7135 -1 -7136 7136 6 -7137 7136 -1 -7156 7136 -1 -7536 7136 -1 -7137 7137 6 -7138 7137 -1 -7157 7137 -1 -7537 7137 -1 -7138 7138 6 -7139 7138 -1 -7158 7138 -1 -7538 7138 -1 -7139 7139 6 -7140 7139 -1 -7159 7139 -1 -7539 7139 -1 -7140 7140 6 -7160 7140 -1 -7540 7140 -1 -7141 7141 6 -7142 7141 -1 -7161 7141 -1 -7541 7141 -1 -7142 7142 6 -7143 7142 -1 -7162 7142 -1 -7542 7142 -1 -7143 7143 6 -7144 7143 -1 -7163 7143 -1 -7543 7143 -1 -7144 7144 6 -7145 7144 -1 -7164 7144 -1 -7544 7144 -1 -7145 7145 6 -7146 7145 -1 -7165 7145 -1 -7545 7145 -1 -7146 7146 6 -7147 7146 -1 -7166 7146 -1 -7546 7146 -1 -7147 7147 6 -7148 7147 -1 -7167 7147 -1 -7547 7147 -1 -7148 7148 6 -7149 7148 -1 -7168 7148 -1 -7548 7148 -1 -7149 7149 6 -7150 7149 -1 -7169 7149 -1 -7549 7149 -1 -7150 7150 6 -7151 7150 -1 -7170 7150 -1 -7550 7150 -1 -7151 7151 6 -7152 7151 -1 -7171 7151 -1 -7551 7151 -1 -7152 7152 6 -7153 7152 -1 -7172 7152 -1 -7552 7152 -1 -7153 7153 6 -7154 7153 -1 -7173 7153 -1 -7553 7153 -1 -7154 7154 6 -7155 7154 -1 -7174 7154 -1 -7554 7154 -1 -7155 7155 6 -7156 7155 -1 -7175 7155 -1 -7555 7155 -1 -7156 7156 6 -7157 7156 -1 -7176 7156 -1 -7556 7156 -1 -7157 7157 6 -7158 7157 -1 -7177 7157 -1 -7557 7157 -1 -7158 7158 6 -7159 7158 -1 -7178 7158 -1 -7558 7158 -1 -7159 7159 6 -7160 7159 -1 -7179 7159 -1 -7559 7159 -1 -7160 7160 6 -7180 7160 -1 -7560 7160 -1 -7161 7161 6 -7162 7161 -1 -7181 7161 -1 -7561 7161 -1 -7162 7162 6 -7163 7162 -1 -7182 7162 -1 -7562 7162 -1 -7163 7163 6 -7164 7163 -1 -7183 7163 -1 -7563 7163 -1 -7164 7164 6 -7165 7164 -1 -7184 7164 -1 -7564 7164 -1 -7165 7165 6 -7166 7165 -1 -7185 7165 -1 -7565 7165 -1 -7166 7166 6 -7167 7166 -1 -7186 7166 -1 -7566 7166 -1 -7167 7167 6 -7168 7167 -1 -7187 7167 -1 -7567 7167 -1 -7168 7168 6 -7169 7168 -1 -7188 7168 -1 -7568 7168 -1 -7169 7169 6 -7170 7169 -1 -7189 7169 -1 -7569 7169 -1 -7170 7170 6 -7171 7170 -1 -7190 7170 -1 -7570 7170 -1 -7171 7171 6 -7172 7171 -1 -7191 7171 -1 -7571 7171 -1 -7172 7172 6 -7173 7172 -1 -7192 7172 -1 -7572 7172 -1 -7173 7173 6 -7174 7173 -1 -7193 7173 -1 -7573 7173 -1 -7174 7174 6 -7175 7174 -1 -7194 7174 -1 -7574 7174 -1 -7175 7175 6 -7176 7175 -1 -7195 7175 -1 -7575 7175 -1 -7176 7176 6 -7177 7176 -1 -7196 7176 -1 -7576 7176 -1 -7177 7177 6 -7178 7177 -1 -7197 7177 -1 -7577 7177 -1 -7178 7178 6 -7179 7178 -1 -7198 7178 -1 -7578 7178 -1 -7179 7179 6 -7180 7179 -1 -7199 7179 -1 -7579 7179 -1 -7180 7180 6 -7200 7180 -1 -7580 7180 -1 -7181 7181 6 -7182 7181 -1 -7581 7181 -1 -7182 7182 6 -7183 7182 -1 -7582 7182 -1 -7183 7183 6 -7184 7183 -1 -7583 7183 -1 -7184 7184 6 -7185 7184 -1 -7584 7184 -1 -7185 7185 6 -7186 7185 -1 -7585 7185 -1 -7186 7186 6 -7187 7186 -1 -7586 7186 -1 -7187 7187 6 -7188 7187 -1 -7587 7187 -1 -7188 7188 6 -7189 7188 -1 -7588 7188 -1 -7189 7189 6 -7190 7189 -1 -7589 7189 -1 -7190 7190 6 -7191 7190 -1 -7590 7190 -1 -7191 7191 6 -7192 7191 -1 -7591 7191 -1 -7192 7192 6 -7193 7192 -1 -7592 7192 -1 -7193 7193 6 -7194 7193 -1 -7593 7193 -1 -7194 7194 6 -7195 7194 -1 -7594 7194 -1 -7195 7195 6 -7196 7195 -1 -7595 7195 -1 -7196 7196 6 -7197 7196 -1 -7596 7196 -1 -7197 7197 6 -7198 7197 -1 -7597 7197 -1 -7198 7198 6 -7199 7198 -1 -7598 7198 -1 -7199 7199 6 -7200 7199 -1 -7599 7199 -1 -7200 7200 6 -7600 7200 -1 -7201 7201 6 -7202 7201 -1 -7221 7201 -1 -7601 7201 -1 -7202 7202 6 -7203 7202 -1 -7222 7202 -1 -7602 7202 -1 -7203 7203 6 -7204 7203 -1 -7223 7203 -1 -7603 7203 -1 -7204 7204 6 -7205 7204 -1 -7224 7204 -1 -7604 7204 -1 -7205 7205 6 -7206 7205 -1 -7225 7205 -1 -7605 7205 -1 -7206 7206 6 -7207 7206 -1 -7226 7206 -1 -7606 7206 -1 -7207 7207 6 -7208 7207 -1 -7227 7207 -1 -7607 7207 -1 -7208 7208 6 -7209 7208 -1 -7228 7208 -1 -7608 7208 -1 -7209 7209 6 -7210 7209 -1 -7229 7209 -1 -7609 7209 -1 -7210 7210 6 -7211 7210 -1 -7230 7210 -1 -7610 7210 -1 -7211 7211 6 -7212 7211 -1 -7231 7211 -1 -7611 7211 -1 -7212 7212 6 -7213 7212 -1 -7232 7212 -1 -7612 7212 -1 -7213 7213 6 -7214 7213 -1 -7233 7213 -1 -7613 7213 -1 -7214 7214 6 -7215 7214 -1 -7234 7214 -1 -7614 7214 -1 -7215 7215 6 -7216 7215 -1 -7235 7215 -1 -7615 7215 -1 -7216 7216 6 -7217 7216 -1 -7236 7216 -1 -7616 7216 -1 -7217 7217 6 -7218 7217 -1 -7237 7217 -1 -7617 7217 -1 -7218 7218 6 -7219 7218 -1 -7238 7218 -1 -7618 7218 -1 -7219 7219 6 -7220 7219 -1 -7239 7219 -1 -7619 7219 -1 -7220 7220 6 -7240 7220 -1 -7620 7220 -1 -7221 7221 6 -7222 7221 -1 -7241 7221 -1 -7621 7221 -1 -7222 7222 6 -7223 7222 -1 -7242 7222 -1 -7622 7222 -1 -7223 7223 6 -7224 7223 -1 -7243 7223 -1 -7623 7223 -1 -7224 7224 6 -7225 7224 -1 -7244 7224 -1 -7624 7224 -1 -7225 7225 6 -7226 7225 -1 -7245 7225 -1 -7625 7225 -1 -7226 7226 6 -7227 7226 -1 -7246 7226 -1 -7626 7226 -1 -7227 7227 6 -7228 7227 -1 -7247 7227 -1 -7627 7227 -1 -7228 7228 6 -7229 7228 -1 -7248 7228 -1 -7628 7228 -1 -7229 7229 6 -7230 7229 -1 -7249 7229 -1 -7629 7229 -1 -7230 7230 6 -7231 7230 -1 -7250 7230 -1 -7630 7230 -1 -7231 7231 6 -7232 7231 -1 -7251 7231 -1 -7631 7231 -1 -7232 7232 6 -7233 7232 -1 -7252 7232 -1 -7632 7232 -1 -7233 7233 6 -7234 7233 -1 -7253 7233 -1 -7633 7233 -1 -7234 7234 6 -7235 7234 -1 -7254 7234 -1 -7634 7234 -1 -7235 7235 6 -7236 7235 -1 -7255 7235 -1 -7635 7235 -1 -7236 7236 6 -7237 7236 -1 -7256 7236 -1 -7636 7236 -1 -7237 7237 6 -7238 7237 -1 -7257 7237 -1 -7637 7237 -1 -7238 7238 6 -7239 7238 -1 -7258 7238 -1 -7638 7238 -1 -7239 7239 6 -7240 7239 -1 -7259 7239 -1 -7639 7239 -1 -7240 7240 6 -7260 7240 -1 -7640 7240 -1 -7241 7241 6 -7242 7241 -1 -7261 7241 -1 -7641 7241 -1 -7242 7242 6 -7243 7242 -1 -7262 7242 -1 -7642 7242 -1 -7243 7243 6 -7244 7243 -1 -7263 7243 -1 -7643 7243 -1 -7244 7244 6 -7245 7244 -1 -7264 7244 -1 -7644 7244 -1 -7245 7245 6 -7246 7245 -1 -7265 7245 -1 -7645 7245 -1 -7246 7246 6 -7247 7246 -1 -7266 7246 -1 -7646 7246 -1 -7247 7247 6 -7248 7247 -1 -7267 7247 -1 -7647 7247 -1 -7248 7248 6 -7249 7248 -1 -7268 7248 -1 -7648 7248 -1 -7249 7249 6 -7250 7249 -1 -7269 7249 -1 -7649 7249 -1 -7250 7250 6 -7251 7250 -1 -7270 7250 -1 -7650 7250 -1 -7251 7251 6 -7252 7251 -1 -7271 7251 -1 -7651 7251 -1 -7252 7252 6 -7253 7252 -1 -7272 7252 -1 -7652 7252 -1 -7253 7253 6 -7254 7253 -1 -7273 7253 -1 -7653 7253 -1 -7254 7254 6 -7255 7254 -1 -7274 7254 -1 -7654 7254 -1 -7255 7255 6 -7256 7255 -1 -7275 7255 -1 -7655 7255 -1 -7256 7256 6 -7257 7256 -1 -7276 7256 -1 -7656 7256 -1 -7257 7257 6 -7258 7257 -1 -7277 7257 -1 -7657 7257 -1 -7258 7258 6 -7259 7258 -1 -7278 7258 -1 -7658 7258 -1 -7259 7259 6 -7260 7259 -1 -7279 7259 -1 -7659 7259 -1 -7260 7260 6 -7280 7260 -1 -7660 7260 -1 -7261 7261 6 -7262 7261 -1 -7281 7261 -1 -7661 7261 -1 -7262 7262 6 -7263 7262 -1 -7282 7262 -1 -7662 7262 -1 -7263 7263 6 -7264 7263 -1 -7283 7263 -1 -7663 7263 -1 -7264 7264 6 -7265 7264 -1 -7284 7264 -1 -7664 7264 -1 -7265 7265 6 -7266 7265 -1 -7285 7265 -1 -7665 7265 -1 -7266 7266 6 -7267 7266 -1 -7286 7266 -1 -7666 7266 -1 -7267 7267 6 -7268 7267 -1 -7287 7267 -1 -7667 7267 -1 -7268 7268 6 -7269 7268 -1 -7288 7268 -1 -7668 7268 -1 -7269 7269 6 -7270 7269 -1 -7289 7269 -1 -7669 7269 -1 -7270 7270 6 -7271 7270 -1 -7290 7270 -1 -7670 7270 -1 -7271 7271 6 -7272 7271 -1 -7291 7271 -1 -7671 7271 -1 -7272 7272 6 -7273 7272 -1 -7292 7272 -1 -7672 7272 -1 -7273 7273 6 -7274 7273 -1 -7293 7273 -1 -7673 7273 -1 -7274 7274 6 -7275 7274 -1 -7294 7274 -1 -7674 7274 -1 -7275 7275 6 -7276 7275 -1 -7295 7275 -1 -7675 7275 -1 -7276 7276 6 -7277 7276 -1 -7296 7276 -1 -7676 7276 -1 -7277 7277 6 -7278 7277 -1 -7297 7277 -1 -7677 7277 -1 -7278 7278 6 -7279 7278 -1 -7298 7278 -1 -7678 7278 -1 -7279 7279 6 -7280 7279 -1 -7299 7279 -1 -7679 7279 -1 -7280 7280 6 -7300 7280 -1 -7680 7280 -1 -7281 7281 6 -7282 7281 -1 -7301 7281 -1 -7681 7281 -1 -7282 7282 6 -7283 7282 -1 -7302 7282 -1 -7682 7282 -1 -7283 7283 6 -7284 7283 -1 -7303 7283 -1 -7683 7283 -1 -7284 7284 6 -7285 7284 -1 -7304 7284 -1 -7684 7284 -1 -7285 7285 6 -7286 7285 -1 -7305 7285 -1 -7685 7285 -1 -7286 7286 6 -7287 7286 -1 -7306 7286 -1 -7686 7286 -1 -7287 7287 6 -7288 7287 -1 -7307 7287 -1 -7687 7287 -1 -7288 7288 6 -7289 7288 -1 -7308 7288 -1 -7688 7288 -1 -7289 7289 6 -7290 7289 -1 -7309 7289 -1 -7689 7289 -1 -7290 7290 6 -7291 7290 -1 -7310 7290 -1 -7690 7290 -1 -7291 7291 6 -7292 7291 -1 -7311 7291 -1 -7691 7291 -1 -7292 7292 6 -7293 7292 -1 -7312 7292 -1 -7692 7292 -1 -7293 7293 6 -7294 7293 -1 -7313 7293 -1 -7693 7293 -1 -7294 7294 6 -7295 7294 -1 -7314 7294 -1 -7694 7294 -1 -7295 7295 6 -7296 7295 -1 -7315 7295 -1 -7695 7295 -1 -7296 7296 6 -7297 7296 -1 -7316 7296 -1 -7696 7296 -1 -7297 7297 6 -7298 7297 -1 -7317 7297 -1 -7697 7297 -1 -7298 7298 6 -7299 7298 -1 -7318 7298 -1 -7698 7298 -1 -7299 7299 6 -7300 7299 -1 -7319 7299 -1 -7699 7299 -1 -7300 7300 6 -7320 7300 -1 -7700 7300 -1 -7301 7301 6 -7302 7301 -1 -7321 7301 -1 -7701 7301 -1 -7302 7302 6 -7303 7302 -1 -7322 7302 -1 -7702 7302 -1 -7303 7303 6 -7304 7303 -1 -7323 7303 -1 -7703 7303 -1 -7304 7304 6 -7305 7304 -1 -7324 7304 -1 -7704 7304 -1 -7305 7305 6 -7306 7305 -1 -7325 7305 -1 -7705 7305 -1 -7306 7306 6 -7307 7306 -1 -7326 7306 -1 -7706 7306 -1 -7307 7307 6 -7308 7307 -1 -7327 7307 -1 -7707 7307 -1 -7308 7308 6 -7309 7308 -1 -7328 7308 -1 -7708 7308 -1 -7309 7309 6 -7310 7309 -1 -7329 7309 -1 -7709 7309 -1 -7310 7310 6 -7311 7310 -1 -7330 7310 -1 -7710 7310 -1 -7311 7311 6 -7312 7311 -1 -7331 7311 -1 -7711 7311 -1 -7312 7312 6 -7313 7312 -1 -7332 7312 -1 -7712 7312 -1 -7313 7313 6 -7314 7313 -1 -7333 7313 -1 -7713 7313 -1 -7314 7314 6 -7315 7314 -1 -7334 7314 -1 -7714 7314 -1 -7315 7315 6 -7316 7315 -1 -7335 7315 -1 -7715 7315 -1 -7316 7316 6 -7317 7316 -1 -7336 7316 -1 -7716 7316 -1 -7317 7317 6 -7318 7317 -1 -7337 7317 -1 -7717 7317 -1 -7318 7318 6 -7319 7318 -1 -7338 7318 -1 -7718 7318 -1 -7319 7319 6 -7320 7319 -1 -7339 7319 -1 -7719 7319 -1 -7320 7320 6 -7340 7320 -1 -7720 7320 -1 -7321 7321 6 -7322 7321 -1 -7341 7321 -1 -7721 7321 -1 -7322 7322 6 -7323 7322 -1 -7342 7322 -1 -7722 7322 -1 -7323 7323 6 -7324 7323 -1 -7343 7323 -1 -7723 7323 -1 -7324 7324 6 -7325 7324 -1 -7344 7324 -1 -7724 7324 -1 -7325 7325 6 -7326 7325 -1 -7345 7325 -1 -7725 7325 -1 -7326 7326 6 -7327 7326 -1 -7346 7326 -1 -7726 7326 -1 -7327 7327 6 -7328 7327 -1 -7347 7327 -1 -7727 7327 -1 -7328 7328 6 -7329 7328 -1 -7348 7328 -1 -7728 7328 -1 -7329 7329 6 -7330 7329 -1 -7349 7329 -1 -7729 7329 -1 -7330 7330 6 -7331 7330 -1 -7350 7330 -1 -7730 7330 -1 -7331 7331 6 -7332 7331 -1 -7351 7331 -1 -7731 7331 -1 -7332 7332 6 -7333 7332 -1 -7352 7332 -1 -7732 7332 -1 -7333 7333 6 -7334 7333 -1 -7353 7333 -1 -7733 7333 -1 -7334 7334 6 -7335 7334 -1 -7354 7334 -1 -7734 7334 -1 -7335 7335 6 -7336 7335 -1 -7355 7335 -1 -7735 7335 -1 -7336 7336 6 -7337 7336 -1 -7356 7336 -1 -7736 7336 -1 -7337 7337 6 -7338 7337 -1 -7357 7337 -1 -7737 7337 -1 -7338 7338 6 -7339 7338 -1 -7358 7338 -1 -7738 7338 -1 -7339 7339 6 -7340 7339 -1 -7359 7339 -1 -7739 7339 -1 -7340 7340 6 -7360 7340 -1 -7740 7340 -1 -7341 7341 6 -7342 7341 -1 -7361 7341 -1 -7741 7341 -1 -7342 7342 6 -7343 7342 -1 -7362 7342 -1 -7742 7342 -1 -7343 7343 6 -7344 7343 -1 -7363 7343 -1 -7743 7343 -1 -7344 7344 6 -7345 7344 -1 -7364 7344 -1 -7744 7344 -1 -7345 7345 6 -7346 7345 -1 -7365 7345 -1 -7745 7345 -1 -7346 7346 6 -7347 7346 -1 -7366 7346 -1 -7746 7346 -1 -7347 7347 6 -7348 7347 -1 -7367 7347 -1 -7747 7347 -1 -7348 7348 6 -7349 7348 -1 -7368 7348 -1 -7748 7348 -1 -7349 7349 6 -7350 7349 -1 -7369 7349 -1 -7749 7349 -1 -7350 7350 6 -7351 7350 -1 -7370 7350 -1 -7750 7350 -1 -7351 7351 6 -7352 7351 -1 -7371 7351 -1 -7751 7351 -1 -7352 7352 6 -7353 7352 -1 -7372 7352 -1 -7752 7352 -1 -7353 7353 6 -7354 7353 -1 -7373 7353 -1 -7753 7353 -1 -7354 7354 6 -7355 7354 -1 -7374 7354 -1 -7754 7354 -1 -7355 7355 6 -7356 7355 -1 -7375 7355 -1 -7755 7355 -1 -7356 7356 6 -7357 7356 -1 -7376 7356 -1 -7756 7356 -1 -7357 7357 6 -7358 7357 -1 -7377 7357 -1 -7757 7357 -1 -7358 7358 6 -7359 7358 -1 -7378 7358 -1 -7758 7358 -1 -7359 7359 6 -7360 7359 -1 -7379 7359 -1 -7759 7359 -1 -7360 7360 6 -7380 7360 -1 -7760 7360 -1 -7361 7361 6 -7362 7361 -1 -7381 7361 -1 -7761 7361 -1 -7362 7362 6 -7363 7362 -1 -7382 7362 -1 -7762 7362 -1 -7363 7363 6 -7364 7363 -1 -7383 7363 -1 -7763 7363 -1 -7364 7364 6 -7365 7364 -1 -7384 7364 -1 -7764 7364 -1 -7365 7365 6 -7366 7365 -1 -7385 7365 -1 -7765 7365 -1 -7366 7366 6 -7367 7366 -1 -7386 7366 -1 -7766 7366 -1 -7367 7367 6 -7368 7367 -1 -7387 7367 -1 -7767 7367 -1 -7368 7368 6 -7369 7368 -1 -7388 7368 -1 -7768 7368 -1 -7369 7369 6 -7370 7369 -1 -7389 7369 -1 -7769 7369 -1 -7370 7370 6 -7371 7370 -1 -7390 7370 -1 -7770 7370 -1 -7371 7371 6 -7372 7371 -1 -7391 7371 -1 -7771 7371 -1 -7372 7372 6 -7373 7372 -1 -7392 7372 -1 -7772 7372 -1 -7373 7373 6 -7374 7373 -1 -7393 7373 -1 -7773 7373 -1 -7374 7374 6 -7375 7374 -1 -7394 7374 -1 -7774 7374 -1 -7375 7375 6 -7376 7375 -1 -7395 7375 -1 -7775 7375 -1 -7376 7376 6 -7377 7376 -1 -7396 7376 -1 -7776 7376 -1 -7377 7377 6 -7378 7377 -1 -7397 7377 -1 -7777 7377 -1 -7378 7378 6 -7379 7378 -1 -7398 7378 -1 -7778 7378 -1 -7379 7379 6 -7380 7379 -1 -7399 7379 -1 -7779 7379 -1 -7380 7380 6 -7400 7380 -1 -7780 7380 -1 -7381 7381 6 -7382 7381 -1 -7401 7381 -1 -7781 7381 -1 -7382 7382 6 -7383 7382 -1 -7402 7382 -1 -7782 7382 -1 -7383 7383 6 -7384 7383 -1 -7403 7383 -1 -7783 7383 -1 -7384 7384 6 -7385 7384 -1 -7404 7384 -1 -7784 7384 -1 -7385 7385 6 -7386 7385 -1 -7405 7385 -1 -7785 7385 -1 -7386 7386 6 -7387 7386 -1 -7406 7386 -1 -7786 7386 -1 -7387 7387 6 -7388 7387 -1 -7407 7387 -1 -7787 7387 -1 -7388 7388 6 -7389 7388 -1 -7408 7388 -1 -7788 7388 -1 -7389 7389 6 -7390 7389 -1 -7409 7389 -1 -7789 7389 -1 -7390 7390 6 -7391 7390 -1 -7410 7390 -1 -7790 7390 -1 -7391 7391 6 -7392 7391 -1 -7411 7391 -1 -7791 7391 -1 -7392 7392 6 -7393 7392 -1 -7412 7392 -1 -7792 7392 -1 -7393 7393 6 -7394 7393 -1 -7413 7393 -1 -7793 7393 -1 -7394 7394 6 -7395 7394 -1 -7414 7394 -1 -7794 7394 -1 -7395 7395 6 -7396 7395 -1 -7415 7395 -1 -7795 7395 -1 -7396 7396 6 -7397 7396 -1 -7416 7396 -1 -7796 7396 -1 -7397 7397 6 -7398 7397 -1 -7417 7397 -1 -7797 7397 -1 -7398 7398 6 -7399 7398 -1 -7418 7398 -1 -7798 7398 -1 -7399 7399 6 -7400 7399 -1 -7419 7399 -1 -7799 7399 -1 -7400 7400 6 -7420 7400 -1 -7800 7400 -1 -7401 7401 6 -7402 7401 -1 -7421 7401 -1 -7801 7401 -1 -7402 7402 6 -7403 7402 -1 -7422 7402 -1 -7802 7402 -1 -7403 7403 6 -7404 7403 -1 -7423 7403 -1 -7803 7403 -1 -7404 7404 6 -7405 7404 -1 -7424 7404 -1 -7804 7404 -1 -7405 7405 6 -7406 7405 -1 -7425 7405 -1 -7805 7405 -1 -7406 7406 6 -7407 7406 -1 -7426 7406 -1 -7806 7406 -1 -7407 7407 6 -7408 7407 -1 -7427 7407 -1 -7807 7407 -1 -7408 7408 6 -7409 7408 -1 -7428 7408 -1 -7808 7408 -1 -7409 7409 6 -7410 7409 -1 -7429 7409 -1 -7809 7409 -1 -7410 7410 6 -7411 7410 -1 -7430 7410 -1 -7810 7410 -1 -7411 7411 6 -7412 7411 -1 -7431 7411 -1 -7811 7411 -1 -7412 7412 6 -7413 7412 -1 -7432 7412 -1 -7812 7412 -1 -7413 7413 6 -7414 7413 -1 -7433 7413 -1 -7813 7413 -1 -7414 7414 6 -7415 7414 -1 -7434 7414 -1 -7814 7414 -1 -7415 7415 6 -7416 7415 -1 -7435 7415 -1 -7815 7415 -1 -7416 7416 6 -7417 7416 -1 -7436 7416 -1 -7816 7416 -1 -7417 7417 6 -7418 7417 -1 -7437 7417 -1 -7817 7417 -1 -7418 7418 6 -7419 7418 -1 -7438 7418 -1 -7818 7418 -1 -7419 7419 6 -7420 7419 -1 -7439 7419 -1 -7819 7419 -1 -7420 7420 6 -7440 7420 -1 -7820 7420 -1 -7421 7421 6 -7422 7421 -1 -7441 7421 -1 -7821 7421 -1 -7422 7422 6 -7423 7422 -1 -7442 7422 -1 -7822 7422 -1 -7423 7423 6 -7424 7423 -1 -7443 7423 -1 -7823 7423 -1 -7424 7424 6 -7425 7424 -1 -7444 7424 -1 -7824 7424 -1 -7425 7425 6 -7426 7425 -1 -7445 7425 -1 -7825 7425 -1 -7426 7426 6 -7427 7426 -1 -7446 7426 -1 -7826 7426 -1 -7427 7427 6 -7428 7427 -1 -7447 7427 -1 -7827 7427 -1 -7428 7428 6 -7429 7428 -1 -7448 7428 -1 -7828 7428 -1 -7429 7429 6 -7430 7429 -1 -7449 7429 -1 -7829 7429 -1 -7430 7430 6 -7431 7430 -1 -7450 7430 -1 -7830 7430 -1 -7431 7431 6 -7432 7431 -1 -7451 7431 -1 -7831 7431 -1 -7432 7432 6 -7433 7432 -1 -7452 7432 -1 -7832 7432 -1 -7433 7433 6 -7434 7433 -1 -7453 7433 -1 -7833 7433 -1 -7434 7434 6 -7435 7434 -1 -7454 7434 -1 -7834 7434 -1 -7435 7435 6 -7436 7435 -1 -7455 7435 -1 -7835 7435 -1 -7436 7436 6 -7437 7436 -1 -7456 7436 -1 -7836 7436 -1 -7437 7437 6 -7438 7437 -1 -7457 7437 -1 -7837 7437 -1 -7438 7438 6 -7439 7438 -1 -7458 7438 -1 -7838 7438 -1 -7439 7439 6 -7440 7439 -1 -7459 7439 -1 -7839 7439 -1 -7440 7440 6 -7460 7440 -1 -7840 7440 -1 -7441 7441 6 -7442 7441 -1 -7461 7441 -1 -7841 7441 -1 -7442 7442 6 -7443 7442 -1 -7462 7442 -1 -7842 7442 -1 -7443 7443 6 -7444 7443 -1 -7463 7443 -1 -7843 7443 -1 -7444 7444 6 -7445 7444 -1 -7464 7444 -1 -7844 7444 -1 -7445 7445 6 -7446 7445 -1 -7465 7445 -1 -7845 7445 -1 -7446 7446 6 -7447 7446 -1 -7466 7446 -1 -7846 7446 -1 -7447 7447 6 -7448 7447 -1 -7467 7447 -1 -7847 7447 -1 -7448 7448 6 -7449 7448 -1 -7468 7448 -1 -7848 7448 -1 -7449 7449 6 -7450 7449 -1 -7469 7449 -1 -7849 7449 -1 -7450 7450 6 -7451 7450 -1 -7470 7450 -1 -7850 7450 -1 -7451 7451 6 -7452 7451 -1 -7471 7451 -1 -7851 7451 -1 -7452 7452 6 -7453 7452 -1 -7472 7452 -1 -7852 7452 -1 -7453 7453 6 -7454 7453 -1 -7473 7453 -1 -7853 7453 -1 -7454 7454 6 -7455 7454 -1 -7474 7454 -1 -7854 7454 -1 -7455 7455 6 -7456 7455 -1 -7475 7455 -1 -7855 7455 -1 -7456 7456 6 -7457 7456 -1 -7476 7456 -1 -7856 7456 -1 -7457 7457 6 -7458 7457 -1 -7477 7457 -1 -7857 7457 -1 -7458 7458 6 -7459 7458 -1 -7478 7458 -1 -7858 7458 -1 -7459 7459 6 -7460 7459 -1 -7479 7459 -1 -7859 7459 -1 -7460 7460 6 -7480 7460 -1 -7860 7460 -1 -7461 7461 6 -7462 7461 -1 -7481 7461 -1 -7861 7461 -1 -7462 7462 6 -7463 7462 -1 -7482 7462 -1 -7862 7462 -1 -7463 7463 6 -7464 7463 -1 -7483 7463 -1 -7863 7463 -1 -7464 7464 6 -7465 7464 -1 -7484 7464 -1 -7864 7464 -1 -7465 7465 6 -7466 7465 -1 -7485 7465 -1 -7865 7465 -1 -7466 7466 6 -7467 7466 -1 -7486 7466 -1 -7866 7466 -1 -7467 7467 6 -7468 7467 -1 -7487 7467 -1 -7867 7467 -1 -7468 7468 6 -7469 7468 -1 -7488 7468 -1 -7868 7468 -1 -7469 7469 6 -7470 7469 -1 -7489 7469 -1 -7869 7469 -1 -7470 7470 6 -7471 7470 -1 -7490 7470 -1 -7870 7470 -1 -7471 7471 6 -7472 7471 -1 -7491 7471 -1 -7871 7471 -1 -7472 7472 6 -7473 7472 -1 -7492 7472 -1 -7872 7472 -1 -7473 7473 6 -7474 7473 -1 -7493 7473 -1 -7873 7473 -1 -7474 7474 6 -7475 7474 -1 -7494 7474 -1 -7874 7474 -1 -7475 7475 6 -7476 7475 -1 -7495 7475 -1 -7875 7475 -1 -7476 7476 6 -7477 7476 -1 -7496 7476 -1 -7876 7476 -1 -7477 7477 6 -7478 7477 -1 -7497 7477 -1 -7877 7477 -1 -7478 7478 6 -7479 7478 -1 -7498 7478 -1 -7878 7478 -1 -7479 7479 6 -7480 7479 -1 -7499 7479 -1 -7879 7479 -1 -7480 7480 6 -7500 7480 -1 -7880 7480 -1 -7481 7481 6 -7482 7481 -1 -7501 7481 -1 -7881 7481 -1 -7482 7482 6 -7483 7482 -1 -7502 7482 -1 -7882 7482 -1 -7483 7483 6 -7484 7483 -1 -7503 7483 -1 -7883 7483 -1 -7484 7484 6 -7485 7484 -1 -7504 7484 -1 -7884 7484 -1 -7485 7485 6 -7486 7485 -1 -7505 7485 -1 -7885 7485 -1 -7486 7486 6 -7487 7486 -1 -7506 7486 -1 -7886 7486 -1 -7487 7487 6 -7488 7487 -1 -7507 7487 -1 -7887 7487 -1 -7488 7488 6 -7489 7488 -1 -7508 7488 -1 -7888 7488 -1 -7489 7489 6 -7490 7489 -1 -7509 7489 -1 -7889 7489 -1 -7490 7490 6 -7491 7490 -1 -7510 7490 -1 -7890 7490 -1 -7491 7491 6 -7492 7491 -1 -7511 7491 -1 -7891 7491 -1 -7492 7492 6 -7493 7492 -1 -7512 7492 -1 -7892 7492 -1 -7493 7493 6 -7494 7493 -1 -7513 7493 -1 -7893 7493 -1 -7494 7494 6 -7495 7494 -1 -7514 7494 -1 -7894 7494 -1 -7495 7495 6 -7496 7495 -1 -7515 7495 -1 -7895 7495 -1 -7496 7496 6 -7497 7496 -1 -7516 7496 -1 -7896 7496 -1 -7497 7497 6 -7498 7497 -1 -7517 7497 -1 -7897 7497 -1 -7498 7498 6 -7499 7498 -1 -7518 7498 -1 -7898 7498 -1 -7499 7499 6 -7500 7499 -1 -7519 7499 -1 -7899 7499 -1 -7500 7500 6 -7520 7500 -1 -7900 7500 -1 -7501 7501 6 -7502 7501 -1 -7521 7501 -1 -7901 7501 -1 -7502 7502 6 -7503 7502 -1 -7522 7502 -1 -7902 7502 -1 -7503 7503 6 -7504 7503 -1 -7523 7503 -1 -7903 7503 -1 -7504 7504 6 -7505 7504 -1 -7524 7504 -1 -7904 7504 -1 -7505 7505 6 -7506 7505 -1 -7525 7505 -1 -7905 7505 -1 -7506 7506 6 -7507 7506 -1 -7526 7506 -1 -7906 7506 -1 -7507 7507 6 -7508 7507 -1 -7527 7507 -1 -7907 7507 -1 -7508 7508 6 -7509 7508 -1 -7528 7508 -1 -7908 7508 -1 -7509 7509 6 -7510 7509 -1 -7529 7509 -1 -7909 7509 -1 -7510 7510 6 -7511 7510 -1 -7530 7510 -1 -7910 7510 -1 -7511 7511 6 -7512 7511 -1 -7531 7511 -1 -7911 7511 -1 -7512 7512 6 -7513 7512 -1 -7532 7512 -1 -7912 7512 -1 -7513 7513 6 -7514 7513 -1 -7533 7513 -1 -7913 7513 -1 -7514 7514 6 -7515 7514 -1 -7534 7514 -1 -7914 7514 -1 -7515 7515 6 -7516 7515 -1 -7535 7515 -1 -7915 7515 -1 -7516 7516 6 -7517 7516 -1 -7536 7516 -1 -7916 7516 -1 -7517 7517 6 -7518 7517 -1 -7537 7517 -1 -7917 7517 -1 -7518 7518 6 -7519 7518 -1 -7538 7518 -1 -7918 7518 -1 -7519 7519 6 -7520 7519 -1 -7539 7519 -1 -7919 7519 -1 -7520 7520 6 -7540 7520 -1 -7920 7520 -1 -7521 7521 6 -7522 7521 -1 -7541 7521 -1 -7921 7521 -1 -7522 7522 6 -7523 7522 -1 -7542 7522 -1 -7922 7522 -1 -7523 7523 6 -7524 7523 -1 -7543 7523 -1 -7923 7523 -1 -7524 7524 6 -7525 7524 -1 -7544 7524 -1 -7924 7524 -1 -7525 7525 6 -7526 7525 -1 -7545 7525 -1 -7925 7525 -1 -7526 7526 6 -7527 7526 -1 -7546 7526 -1 -7926 7526 -1 -7527 7527 6 -7528 7527 -1 -7547 7527 -1 -7927 7527 -1 -7528 7528 6 -7529 7528 -1 -7548 7528 -1 -7928 7528 -1 -7529 7529 6 -7530 7529 -1 -7549 7529 -1 -7929 7529 -1 -7530 7530 6 -7531 7530 -1 -7550 7530 -1 -7930 7530 -1 -7531 7531 6 -7532 7531 -1 -7551 7531 -1 -7931 7531 -1 -7532 7532 6 -7533 7532 -1 -7552 7532 -1 -7932 7532 -1 -7533 7533 6 -7534 7533 -1 -7553 7533 -1 -7933 7533 -1 -7534 7534 6 -7535 7534 -1 -7554 7534 -1 -7934 7534 -1 -7535 7535 6 -7536 7535 -1 -7555 7535 -1 -7935 7535 -1 -7536 7536 6 -7537 7536 -1 -7556 7536 -1 -7936 7536 -1 -7537 7537 6 -7538 7537 -1 -7557 7537 -1 -7937 7537 -1 -7538 7538 6 -7539 7538 -1 -7558 7538 -1 -7938 7538 -1 -7539 7539 6 -7540 7539 -1 -7559 7539 -1 -7939 7539 -1 -7540 7540 6 -7560 7540 -1 -7940 7540 -1 -7541 7541 6 -7542 7541 -1 -7561 7541 -1 -7941 7541 -1 -7542 7542 6 -7543 7542 -1 -7562 7542 -1 -7942 7542 -1 -7543 7543 6 -7544 7543 -1 -7563 7543 -1 -7943 7543 -1 -7544 7544 6 -7545 7544 -1 -7564 7544 -1 -7944 7544 -1 -7545 7545 6 -7546 7545 -1 -7565 7545 -1 -7945 7545 -1 -7546 7546 6 -7547 7546 -1 -7566 7546 -1 -7946 7546 -1 -7547 7547 6 -7548 7547 -1 -7567 7547 -1 -7947 7547 -1 -7548 7548 6 -7549 7548 -1 -7568 7548 -1 -7948 7548 -1 -7549 7549 6 -7550 7549 -1 -7569 7549 -1 -7949 7549 -1 -7550 7550 6 -7551 7550 -1 -7570 7550 -1 -7950 7550 -1 -7551 7551 6 -7552 7551 -1 -7571 7551 -1 -7951 7551 -1 -7552 7552 6 -7553 7552 -1 -7572 7552 -1 -7952 7552 -1 -7553 7553 6 -7554 7553 -1 -7573 7553 -1 -7953 7553 -1 -7554 7554 6 -7555 7554 -1 -7574 7554 -1 -7954 7554 -1 -7555 7555 6 -7556 7555 -1 -7575 7555 -1 -7955 7555 -1 -7556 7556 6 -7557 7556 -1 -7576 7556 -1 -7956 7556 -1 -7557 7557 6 -7558 7557 -1 -7577 7557 -1 -7957 7557 -1 -7558 7558 6 -7559 7558 -1 -7578 7558 -1 -7958 7558 -1 -7559 7559 6 -7560 7559 -1 -7579 7559 -1 -7959 7559 -1 -7560 7560 6 -7580 7560 -1 -7960 7560 -1 -7561 7561 6 -7562 7561 -1 -7581 7561 -1 -7961 7561 -1 -7562 7562 6 -7563 7562 -1 -7582 7562 -1 -7962 7562 -1 -7563 7563 6 -7564 7563 -1 -7583 7563 -1 -7963 7563 -1 -7564 7564 6 -7565 7564 -1 -7584 7564 -1 -7964 7564 -1 -7565 7565 6 -7566 7565 -1 -7585 7565 -1 -7965 7565 -1 -7566 7566 6 -7567 7566 -1 -7586 7566 -1 -7966 7566 -1 -7567 7567 6 -7568 7567 -1 -7587 7567 -1 -7967 7567 -1 -7568 7568 6 -7569 7568 -1 -7588 7568 -1 -7968 7568 -1 -7569 7569 6 -7570 7569 -1 -7589 7569 -1 -7969 7569 -1 -7570 7570 6 -7571 7570 -1 -7590 7570 -1 -7970 7570 -1 -7571 7571 6 -7572 7571 -1 -7591 7571 -1 -7971 7571 -1 -7572 7572 6 -7573 7572 -1 -7592 7572 -1 -7972 7572 -1 -7573 7573 6 -7574 7573 -1 -7593 7573 -1 -7973 7573 -1 -7574 7574 6 -7575 7574 -1 -7594 7574 -1 -7974 7574 -1 -7575 7575 6 -7576 7575 -1 -7595 7575 -1 -7975 7575 -1 -7576 7576 6 -7577 7576 -1 -7596 7576 -1 -7976 7576 -1 -7577 7577 6 -7578 7577 -1 -7597 7577 -1 -7977 7577 -1 -7578 7578 6 -7579 7578 -1 -7598 7578 -1 -7978 7578 -1 -7579 7579 6 -7580 7579 -1 -7599 7579 -1 -7979 7579 -1 -7580 7580 6 -7600 7580 -1 -7980 7580 -1 -7581 7581 6 -7582 7581 -1 -7981 7581 -1 -7582 7582 6 -7583 7582 -1 -7982 7582 -1 -7583 7583 6 -7584 7583 -1 -7983 7583 -1 -7584 7584 6 -7585 7584 -1 -7984 7584 -1 -7585 7585 6 -7586 7585 -1 -7985 7585 -1 -7586 7586 6 -7587 7586 -1 -7986 7586 -1 -7587 7587 6 -7588 7587 -1 -7987 7587 -1 -7588 7588 6 -7589 7588 -1 -7988 7588 -1 -7589 7589 6 -7590 7589 -1 -7989 7589 -1 -7590 7590 6 -7591 7590 -1 -7990 7590 -1 -7591 7591 6 -7592 7591 -1 -7991 7591 -1 -7592 7592 6 -7593 7592 -1 -7992 7592 -1 -7593 7593 6 -7594 7593 -1 -7993 7593 -1 -7594 7594 6 -7595 7594 -1 -7994 7594 -1 -7595 7595 6 -7596 7595 -1 -7995 7595 -1 -7596 7596 6 -7597 7596 -1 -7996 7596 -1 -7597 7597 6 -7598 7597 -1 -7997 7597 -1 -7598 7598 6 -7599 7598 -1 -7998 7598 -1 -7599 7599 6 -7600 7599 -1 -7999 7599 -1 -7600 7600 6 -8000 7600 -1 -7601 7601 6 -7602 7601 -1 -7621 7601 -1 -7602 7602 6 -7603 7602 -1 -7622 7602 -1 -7603 7603 6 -7604 7603 -1 -7623 7603 -1 -7604 7604 6 -7605 7604 -1 -7624 7604 -1 -7605 7605 6 -7606 7605 -1 -7625 7605 -1 -7606 7606 6 -7607 7606 -1 -7626 7606 -1 -7607 7607 6 -7608 7607 -1 -7627 7607 -1 -7608 7608 6 -7609 7608 -1 -7628 7608 -1 -7609 7609 6 -7610 7609 -1 -7629 7609 -1 -7610 7610 6 -7611 7610 -1 -7630 7610 -1 -7611 7611 6 -7612 7611 -1 -7631 7611 -1 -7612 7612 6 -7613 7612 -1 -7632 7612 -1 -7613 7613 6 -7614 7613 -1 -7633 7613 -1 -7614 7614 6 -7615 7614 -1 -7634 7614 -1 -7615 7615 6 -7616 7615 -1 -7635 7615 -1 -7616 7616 6 -7617 7616 -1 -7636 7616 -1 -7617 7617 6 -7618 7617 -1 -7637 7617 -1 -7618 7618 6 -7619 7618 -1 -7638 7618 -1 -7619 7619 6 -7620 7619 -1 -7639 7619 -1 -7620 7620 6 -7640 7620 -1 -7621 7621 6 -7622 7621 -1 -7641 7621 -1 -7622 7622 6 -7623 7622 -1 -7642 7622 -1 -7623 7623 6 -7624 7623 -1 -7643 7623 -1 -7624 7624 6 -7625 7624 -1 -7644 7624 -1 -7625 7625 6 -7626 7625 -1 -7645 7625 -1 -7626 7626 6 -7627 7626 -1 -7646 7626 -1 -7627 7627 6 -7628 7627 -1 -7647 7627 -1 -7628 7628 6 -7629 7628 -1 -7648 7628 -1 -7629 7629 6 -7630 7629 -1 -7649 7629 -1 -7630 7630 6 -7631 7630 -1 -7650 7630 -1 -7631 7631 6 -7632 7631 -1 -7651 7631 -1 -7632 7632 6 -7633 7632 -1 -7652 7632 -1 -7633 7633 6 -7634 7633 -1 -7653 7633 -1 -7634 7634 6 -7635 7634 -1 -7654 7634 -1 -7635 7635 6 -7636 7635 -1 -7655 7635 -1 -7636 7636 6 -7637 7636 -1 -7656 7636 -1 -7637 7637 6 -7638 7637 -1 -7657 7637 -1 -7638 7638 6 -7639 7638 -1 -7658 7638 -1 -7639 7639 6 -7640 7639 -1 -7659 7639 -1 -7640 7640 6 -7660 7640 -1 -7641 7641 6 -7642 7641 -1 -7661 7641 -1 -7642 7642 6 -7643 7642 -1 -7662 7642 -1 -7643 7643 6 -7644 7643 -1 -7663 7643 -1 -7644 7644 6 -7645 7644 -1 -7664 7644 -1 -7645 7645 6 -7646 7645 -1 -7665 7645 -1 -7646 7646 6 -7647 7646 -1 -7666 7646 -1 -7647 7647 6 -7648 7647 -1 -7667 7647 -1 -7648 7648 6 -7649 7648 -1 -7668 7648 -1 -7649 7649 6 -7650 7649 -1 -7669 7649 -1 -7650 7650 6 -7651 7650 -1 -7670 7650 -1 -7651 7651 6 -7652 7651 -1 -7671 7651 -1 -7652 7652 6 -7653 7652 -1 -7672 7652 -1 -7653 7653 6 -7654 7653 -1 -7673 7653 -1 -7654 7654 6 -7655 7654 -1 -7674 7654 -1 -7655 7655 6 -7656 7655 -1 -7675 7655 -1 -7656 7656 6 -7657 7656 -1 -7676 7656 -1 -7657 7657 6 -7658 7657 -1 -7677 7657 -1 -7658 7658 6 -7659 7658 -1 -7678 7658 -1 -7659 7659 6 -7660 7659 -1 -7679 7659 -1 -7660 7660 6 -7680 7660 -1 -7661 7661 6 -7662 7661 -1 -7681 7661 -1 -7662 7662 6 -7663 7662 -1 -7682 7662 -1 -7663 7663 6 -7664 7663 -1 -7683 7663 -1 -7664 7664 6 -7665 7664 -1 -7684 7664 -1 -7665 7665 6 -7666 7665 -1 -7685 7665 -1 -7666 7666 6 -7667 7666 -1 -7686 7666 -1 -7667 7667 6 -7668 7667 -1 -7687 7667 -1 -7668 7668 6 -7669 7668 -1 -7688 7668 -1 -7669 7669 6 -7670 7669 -1 -7689 7669 -1 -7670 7670 6 -7671 7670 -1 -7690 7670 -1 -7671 7671 6 -7672 7671 -1 -7691 7671 -1 -7672 7672 6 -7673 7672 -1 -7692 7672 -1 -7673 7673 6 -7674 7673 -1 -7693 7673 -1 -7674 7674 6 -7675 7674 -1 -7694 7674 -1 -7675 7675 6 -7676 7675 -1 -7695 7675 -1 -7676 7676 6 -7677 7676 -1 -7696 7676 -1 -7677 7677 6 -7678 7677 -1 -7697 7677 -1 -7678 7678 6 -7679 7678 -1 -7698 7678 -1 -7679 7679 6 -7680 7679 -1 -7699 7679 -1 -7680 7680 6 -7700 7680 -1 -7681 7681 6 -7682 7681 -1 -7701 7681 -1 -7682 7682 6 -7683 7682 -1 -7702 7682 -1 -7683 7683 6 -7684 7683 -1 -7703 7683 -1 -7684 7684 6 -7685 7684 -1 -7704 7684 -1 -7685 7685 6 -7686 7685 -1 -7705 7685 -1 -7686 7686 6 -7687 7686 -1 -7706 7686 -1 -7687 7687 6 -7688 7687 -1 -7707 7687 -1 -7688 7688 6 -7689 7688 -1 -7708 7688 -1 -7689 7689 6 -7690 7689 -1 -7709 7689 -1 -7690 7690 6 -7691 7690 -1 -7710 7690 -1 -7691 7691 6 -7692 7691 -1 -7711 7691 -1 -7692 7692 6 -7693 7692 -1 -7712 7692 -1 -7693 7693 6 -7694 7693 -1 -7713 7693 -1 -7694 7694 6 -7695 7694 -1 -7714 7694 -1 -7695 7695 6 -7696 7695 -1 -7715 7695 -1 -7696 7696 6 -7697 7696 -1 -7716 7696 -1 -7697 7697 6 -7698 7697 -1 -7717 7697 -1 -7698 7698 6 -7699 7698 -1 -7718 7698 -1 -7699 7699 6 -7700 7699 -1 -7719 7699 -1 -7700 7700 6 -7720 7700 -1 -7701 7701 6 -7702 7701 -1 -7721 7701 -1 -7702 7702 6 -7703 7702 -1 -7722 7702 -1 -7703 7703 6 -7704 7703 -1 -7723 7703 -1 -7704 7704 6 -7705 7704 -1 -7724 7704 -1 -7705 7705 6 -7706 7705 -1 -7725 7705 -1 -7706 7706 6 -7707 7706 -1 -7726 7706 -1 -7707 7707 6 -7708 7707 -1 -7727 7707 -1 -7708 7708 6 -7709 7708 -1 -7728 7708 -1 -7709 7709 6 -7710 7709 -1 -7729 7709 -1 -7710 7710 6 -7711 7710 -1 -7730 7710 -1 -7711 7711 6 -7712 7711 -1 -7731 7711 -1 -7712 7712 6 -7713 7712 -1 -7732 7712 -1 -7713 7713 6 -7714 7713 -1 -7733 7713 -1 -7714 7714 6 -7715 7714 -1 -7734 7714 -1 -7715 7715 6 -7716 7715 -1 -7735 7715 -1 -7716 7716 6 -7717 7716 -1 -7736 7716 -1 -7717 7717 6 -7718 7717 -1 -7737 7717 -1 -7718 7718 6 -7719 7718 -1 -7738 7718 -1 -7719 7719 6 -7720 7719 -1 -7739 7719 -1 -7720 7720 6 -7740 7720 -1 -7721 7721 6 -7722 7721 -1 -7741 7721 -1 -7722 7722 6 -7723 7722 -1 -7742 7722 -1 -7723 7723 6 -7724 7723 -1 -7743 7723 -1 -7724 7724 6 -7725 7724 -1 -7744 7724 -1 -7725 7725 6 -7726 7725 -1 -7745 7725 -1 -7726 7726 6 -7727 7726 -1 -7746 7726 -1 -7727 7727 6 -7728 7727 -1 -7747 7727 -1 -7728 7728 6 -7729 7728 -1 -7748 7728 -1 -7729 7729 6 -7730 7729 -1 -7749 7729 -1 -7730 7730 6 -7731 7730 -1 -7750 7730 -1 -7731 7731 6 -7732 7731 -1 -7751 7731 -1 -7732 7732 6 -7733 7732 -1 -7752 7732 -1 -7733 7733 6 -7734 7733 -1 -7753 7733 -1 -7734 7734 6 -7735 7734 -1 -7754 7734 -1 -7735 7735 6 -7736 7735 -1 -7755 7735 -1 -7736 7736 6 -7737 7736 -1 -7756 7736 -1 -7737 7737 6 -7738 7737 -1 -7757 7737 -1 -7738 7738 6 -7739 7738 -1 -7758 7738 -1 -7739 7739 6 -7740 7739 -1 -7759 7739 -1 -7740 7740 6 -7760 7740 -1 -7741 7741 6 -7742 7741 -1 -7761 7741 -1 -7742 7742 6 -7743 7742 -1 -7762 7742 -1 -7743 7743 6 -7744 7743 -1 -7763 7743 -1 -7744 7744 6 -7745 7744 -1 -7764 7744 -1 -7745 7745 6 -7746 7745 -1 -7765 7745 -1 -7746 7746 6 -7747 7746 -1 -7766 7746 -1 -7747 7747 6 -7748 7747 -1 -7767 7747 -1 -7748 7748 6 -7749 7748 -1 -7768 7748 -1 -7749 7749 6 -7750 7749 -1 -7769 7749 -1 -7750 7750 6 -7751 7750 -1 -7770 7750 -1 -7751 7751 6 -7752 7751 -1 -7771 7751 -1 -7752 7752 6 -7753 7752 -1 -7772 7752 -1 -7753 7753 6 -7754 7753 -1 -7773 7753 -1 -7754 7754 6 -7755 7754 -1 -7774 7754 -1 -7755 7755 6 -7756 7755 -1 -7775 7755 -1 -7756 7756 6 -7757 7756 -1 -7776 7756 -1 -7757 7757 6 -7758 7757 -1 -7777 7757 -1 -7758 7758 6 -7759 7758 -1 -7778 7758 -1 -7759 7759 6 -7760 7759 -1 -7779 7759 -1 -7760 7760 6 -7780 7760 -1 -7761 7761 6 -7762 7761 -1 -7781 7761 -1 -7762 7762 6 -7763 7762 -1 -7782 7762 -1 -7763 7763 6 -7764 7763 -1 -7783 7763 -1 -7764 7764 6 -7765 7764 -1 -7784 7764 -1 -7765 7765 6 -7766 7765 -1 -7785 7765 -1 -7766 7766 6 -7767 7766 -1 -7786 7766 -1 -7767 7767 6 -7768 7767 -1 -7787 7767 -1 -7768 7768 6 -7769 7768 -1 -7788 7768 -1 -7769 7769 6 -7770 7769 -1 -7789 7769 -1 -7770 7770 6 -7771 7770 -1 -7790 7770 -1 -7771 7771 6 -7772 7771 -1 -7791 7771 -1 -7772 7772 6 -7773 7772 -1 -7792 7772 -1 -7773 7773 6 -7774 7773 -1 -7793 7773 -1 -7774 7774 6 -7775 7774 -1 -7794 7774 -1 -7775 7775 6 -7776 7775 -1 -7795 7775 -1 -7776 7776 6 -7777 7776 -1 -7796 7776 -1 -7777 7777 6 -7778 7777 -1 -7797 7777 -1 -7778 7778 6 -7779 7778 -1 -7798 7778 -1 -7779 7779 6 -7780 7779 -1 -7799 7779 -1 -7780 7780 6 -7800 7780 -1 -7781 7781 6 -7782 7781 -1 -7801 7781 -1 -7782 7782 6 -7783 7782 -1 -7802 7782 -1 -7783 7783 6 -7784 7783 -1 -7803 7783 -1 -7784 7784 6 -7785 7784 -1 -7804 7784 -1 -7785 7785 6 -7786 7785 -1 -7805 7785 -1 -7786 7786 6 -7787 7786 -1 -7806 7786 -1 -7787 7787 6 -7788 7787 -1 -7807 7787 -1 -7788 7788 6 -7789 7788 -1 -7808 7788 -1 -7789 7789 6 -7790 7789 -1 -7809 7789 -1 -7790 7790 6 -7791 7790 -1 -7810 7790 -1 -7791 7791 6 -7792 7791 -1 -7811 7791 -1 -7792 7792 6 -7793 7792 -1 -7812 7792 -1 -7793 7793 6 -7794 7793 -1 -7813 7793 -1 -7794 7794 6 -7795 7794 -1 -7814 7794 -1 -7795 7795 6 -7796 7795 -1 -7815 7795 -1 -7796 7796 6 -7797 7796 -1 -7816 7796 -1 -7797 7797 6 -7798 7797 -1 -7817 7797 -1 -7798 7798 6 -7799 7798 -1 -7818 7798 -1 -7799 7799 6 -7800 7799 -1 -7819 7799 -1 -7800 7800 6 -7820 7800 -1 -7801 7801 6 -7802 7801 -1 -7821 7801 -1 -7802 7802 6 -7803 7802 -1 -7822 7802 -1 -7803 7803 6 -7804 7803 -1 -7823 7803 -1 -7804 7804 6 -7805 7804 -1 -7824 7804 -1 -7805 7805 6 -7806 7805 -1 -7825 7805 -1 -7806 7806 6 -7807 7806 -1 -7826 7806 -1 -7807 7807 6 -7808 7807 -1 -7827 7807 -1 -7808 7808 6 -7809 7808 -1 -7828 7808 -1 -7809 7809 6 -7810 7809 -1 -7829 7809 -1 -7810 7810 6 -7811 7810 -1 -7830 7810 -1 -7811 7811 6 -7812 7811 -1 -7831 7811 -1 -7812 7812 6 -7813 7812 -1 -7832 7812 -1 -7813 7813 6 -7814 7813 -1 -7833 7813 -1 -7814 7814 6 -7815 7814 -1 -7834 7814 -1 -7815 7815 6 -7816 7815 -1 -7835 7815 -1 -7816 7816 6 -7817 7816 -1 -7836 7816 -1 -7817 7817 6 -7818 7817 -1 -7837 7817 -1 -7818 7818 6 -7819 7818 -1 -7838 7818 -1 -7819 7819 6 -7820 7819 -1 -7839 7819 -1 -7820 7820 6 -7840 7820 -1 -7821 7821 6 -7822 7821 -1 -7841 7821 -1 -7822 7822 6 -7823 7822 -1 -7842 7822 -1 -7823 7823 6 -7824 7823 -1 -7843 7823 -1 -7824 7824 6 -7825 7824 -1 -7844 7824 -1 -7825 7825 6 -7826 7825 -1 -7845 7825 -1 -7826 7826 6 -7827 7826 -1 -7846 7826 -1 -7827 7827 6 -7828 7827 -1 -7847 7827 -1 -7828 7828 6 -7829 7828 -1 -7848 7828 -1 -7829 7829 6 -7830 7829 -1 -7849 7829 -1 -7830 7830 6 -7831 7830 -1 -7850 7830 -1 -7831 7831 6 -7832 7831 -1 -7851 7831 -1 -7832 7832 6 -7833 7832 -1 -7852 7832 -1 -7833 7833 6 -7834 7833 -1 -7853 7833 -1 -7834 7834 6 -7835 7834 -1 -7854 7834 -1 -7835 7835 6 -7836 7835 -1 -7855 7835 -1 -7836 7836 6 -7837 7836 -1 -7856 7836 -1 -7837 7837 6 -7838 7837 -1 -7857 7837 -1 -7838 7838 6 -7839 7838 -1 -7858 7838 -1 -7839 7839 6 -7840 7839 -1 -7859 7839 -1 -7840 7840 6 -7860 7840 -1 -7841 7841 6 -7842 7841 -1 -7861 7841 -1 -7842 7842 6 -7843 7842 -1 -7862 7842 -1 -7843 7843 6 -7844 7843 -1 -7863 7843 -1 -7844 7844 6 -7845 7844 -1 -7864 7844 -1 -7845 7845 6 -7846 7845 -1 -7865 7845 -1 -7846 7846 6 -7847 7846 -1 -7866 7846 -1 -7847 7847 6 -7848 7847 -1 -7867 7847 -1 -7848 7848 6 -7849 7848 -1 -7868 7848 -1 -7849 7849 6 -7850 7849 -1 -7869 7849 -1 -7850 7850 6 -7851 7850 -1 -7870 7850 -1 -7851 7851 6 -7852 7851 -1 -7871 7851 -1 -7852 7852 6 -7853 7852 -1 -7872 7852 -1 -7853 7853 6 -7854 7853 -1 -7873 7853 -1 -7854 7854 6 -7855 7854 -1 -7874 7854 -1 -7855 7855 6 -7856 7855 -1 -7875 7855 -1 -7856 7856 6 -7857 7856 -1 -7876 7856 -1 -7857 7857 6 -7858 7857 -1 -7877 7857 -1 -7858 7858 6 -7859 7858 -1 -7878 7858 -1 -7859 7859 6 -7860 7859 -1 -7879 7859 -1 -7860 7860 6 -7880 7860 -1 -7861 7861 6 -7862 7861 -1 -7881 7861 -1 -7862 7862 6 -7863 7862 -1 -7882 7862 -1 -7863 7863 6 -7864 7863 -1 -7883 7863 -1 -7864 7864 6 -7865 7864 -1 -7884 7864 -1 -7865 7865 6 -7866 7865 -1 -7885 7865 -1 -7866 7866 6 -7867 7866 -1 -7886 7866 -1 -7867 7867 6 -7868 7867 -1 -7887 7867 -1 -7868 7868 6 -7869 7868 -1 -7888 7868 -1 -7869 7869 6 -7870 7869 -1 -7889 7869 -1 -7870 7870 6 -7871 7870 -1 -7890 7870 -1 -7871 7871 6 -7872 7871 -1 -7891 7871 -1 -7872 7872 6 -7873 7872 -1 -7892 7872 -1 -7873 7873 6 -7874 7873 -1 -7893 7873 -1 -7874 7874 6 -7875 7874 -1 -7894 7874 -1 -7875 7875 6 -7876 7875 -1 -7895 7875 -1 -7876 7876 6 -7877 7876 -1 -7896 7876 -1 -7877 7877 6 -7878 7877 -1 -7897 7877 -1 -7878 7878 6 -7879 7878 -1 -7898 7878 -1 -7879 7879 6 -7880 7879 -1 -7899 7879 -1 -7880 7880 6 -7900 7880 -1 -7881 7881 6 -7882 7881 -1 -7901 7881 -1 -7882 7882 6 -7883 7882 -1 -7902 7882 -1 -7883 7883 6 -7884 7883 -1 -7903 7883 -1 -7884 7884 6 -7885 7884 -1 -7904 7884 -1 -7885 7885 6 -7886 7885 -1 -7905 7885 -1 -7886 7886 6 -7887 7886 -1 -7906 7886 -1 -7887 7887 6 -7888 7887 -1 -7907 7887 -1 -7888 7888 6 -7889 7888 -1 -7908 7888 -1 -7889 7889 6 -7890 7889 -1 -7909 7889 -1 -7890 7890 6 -7891 7890 -1 -7910 7890 -1 -7891 7891 6 -7892 7891 -1 -7911 7891 -1 -7892 7892 6 -7893 7892 -1 -7912 7892 -1 -7893 7893 6 -7894 7893 -1 -7913 7893 -1 -7894 7894 6 -7895 7894 -1 -7914 7894 -1 -7895 7895 6 -7896 7895 -1 -7915 7895 -1 -7896 7896 6 -7897 7896 -1 -7916 7896 -1 -7897 7897 6 -7898 7897 -1 -7917 7897 -1 -7898 7898 6 -7899 7898 -1 -7918 7898 -1 -7899 7899 6 -7900 7899 -1 -7919 7899 -1 -7900 7900 6 -7920 7900 -1 -7901 7901 6 -7902 7901 -1 -7921 7901 -1 -7902 7902 6 -7903 7902 -1 -7922 7902 -1 -7903 7903 6 -7904 7903 -1 -7923 7903 -1 -7904 7904 6 -7905 7904 -1 -7924 7904 -1 -7905 7905 6 -7906 7905 -1 -7925 7905 -1 -7906 7906 6 -7907 7906 -1 -7926 7906 -1 -7907 7907 6 -7908 7907 -1 -7927 7907 -1 -7908 7908 6 -7909 7908 -1 -7928 7908 -1 -7909 7909 6 -7910 7909 -1 -7929 7909 -1 -7910 7910 6 -7911 7910 -1 -7930 7910 -1 -7911 7911 6 -7912 7911 -1 -7931 7911 -1 -7912 7912 6 -7913 7912 -1 -7932 7912 -1 -7913 7913 6 -7914 7913 -1 -7933 7913 -1 -7914 7914 6 -7915 7914 -1 -7934 7914 -1 -7915 7915 6 -7916 7915 -1 -7935 7915 -1 -7916 7916 6 -7917 7916 -1 -7936 7916 -1 -7917 7917 6 -7918 7917 -1 -7937 7917 -1 -7918 7918 6 -7919 7918 -1 -7938 7918 -1 -7919 7919 6 -7920 7919 -1 -7939 7919 -1 -7920 7920 6 -7940 7920 -1 -7921 7921 6 -7922 7921 -1 -7941 7921 -1 -7922 7922 6 -7923 7922 -1 -7942 7922 -1 -7923 7923 6 -7924 7923 -1 -7943 7923 -1 -7924 7924 6 -7925 7924 -1 -7944 7924 -1 -7925 7925 6 -7926 7925 -1 -7945 7925 -1 -7926 7926 6 -7927 7926 -1 -7946 7926 -1 -7927 7927 6 -7928 7927 -1 -7947 7927 -1 -7928 7928 6 -7929 7928 -1 -7948 7928 -1 -7929 7929 6 -7930 7929 -1 -7949 7929 -1 -7930 7930 6 -7931 7930 -1 -7950 7930 -1 -7931 7931 6 -7932 7931 -1 -7951 7931 -1 -7932 7932 6 -7933 7932 -1 -7952 7932 -1 -7933 7933 6 -7934 7933 -1 -7953 7933 -1 -7934 7934 6 -7935 7934 -1 -7954 7934 -1 -7935 7935 6 -7936 7935 -1 -7955 7935 -1 -7936 7936 6 -7937 7936 -1 -7956 7936 -1 -7937 7937 6 -7938 7937 -1 -7957 7937 -1 -7938 7938 6 -7939 7938 -1 -7958 7938 -1 -7939 7939 6 -7940 7939 -1 -7959 7939 -1 -7940 7940 6 -7960 7940 -1 -7941 7941 6 -7942 7941 -1 -7961 7941 -1 -7942 7942 6 -7943 7942 -1 -7962 7942 -1 -7943 7943 6 -7944 7943 -1 -7963 7943 -1 -7944 7944 6 -7945 7944 -1 -7964 7944 -1 -7945 7945 6 -7946 7945 -1 -7965 7945 -1 -7946 7946 6 -7947 7946 -1 -7966 7946 -1 -7947 7947 6 -7948 7947 -1 -7967 7947 -1 -7948 7948 6 -7949 7948 -1 -7968 7948 -1 -7949 7949 6 -7950 7949 -1 -7969 7949 -1 -7950 7950 6 -7951 7950 -1 -7970 7950 -1 -7951 7951 6 -7952 7951 -1 -7971 7951 -1 -7952 7952 6 -7953 7952 -1 -7972 7952 -1 -7953 7953 6 -7954 7953 -1 -7973 7953 -1 -7954 7954 6 -7955 7954 -1 -7974 7954 -1 -7955 7955 6 -7956 7955 -1 -7975 7955 -1 -7956 7956 6 -7957 7956 -1 -7976 7956 -1 -7957 7957 6 -7958 7957 -1 -7977 7957 -1 -7958 7958 6 -7959 7958 -1 -7978 7958 -1 -7959 7959 6 -7960 7959 -1 -7979 7959 -1 -7960 7960 6 -7980 7960 -1 -7961 7961 6 -7962 7961 -1 -7981 7961 -1 -7962 7962 6 -7963 7962 -1 -7982 7962 -1 -7963 7963 6 -7964 7963 -1 -7983 7963 -1 -7964 7964 6 -7965 7964 -1 -7984 7964 -1 -7965 7965 6 -7966 7965 -1 -7985 7965 -1 -7966 7966 6 -7967 7966 -1 -7986 7966 -1 -7967 7967 6 -7968 7967 -1 -7987 7967 -1 -7968 7968 6 -7969 7968 -1 -7988 7968 -1 -7969 7969 6 -7970 7969 -1 -7989 7969 -1 -7970 7970 6 -7971 7970 -1 -7990 7970 -1 -7971 7971 6 -7972 7971 -1 -7991 7971 -1 -7972 7972 6 -7973 7972 -1 -7992 7972 -1 -7973 7973 6 -7974 7973 -1 -7993 7973 -1 -7974 7974 6 -7975 7974 -1 -7994 7974 -1 -7975 7975 6 -7976 7975 -1 -7995 7975 -1 -7976 7976 6 -7977 7976 -1 -7996 7976 -1 -7977 7977 6 -7978 7977 -1 -7997 7977 -1 -7978 7978 6 -7979 7978 -1 -7998 7978 -1 -7979 7979 6 -7980 7979 -1 -7999 7979 -1 -7980 7980 6 -8000 7980 -1 -7981 7981 6 -7982 7981 -1 -7982 7982 6 -7983 7982 -1 -7983 7983 6 -7984 7983 -1 -7984 7984 6 -7985 7984 -1 -7985 7985 6 -7986 7985 -1 -7986 7986 6 -7987 7986 -1 -7987 7987 6 -7988 7987 -1 -7988 7988 6 -7989 7988 -1 -7989 7989 6 -7990 7989 -1 -7990 7990 6 -7991 7990 -1 -7991 7991 6 -7992 7991 -1 -7992 7992 6 -7993 7992 -1 -7993 7993 6 -7994 7993 -1 -7994 7994 6 -7995 7994 -1 -7995 7995 6 -7996 7995 -1 -7996 7996 6 -7997 7996 -1 -7997 7997 6 -7998 7997 -1 -7998 7998 6 -7999 7998 -1 -7999 7999 6 -8000 7999 -1 -8000 8000 6 diff --git a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/mmio.c b/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/mmio.c deleted file mode 100644 index 10852428..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/mmio.c +++ /dev/null @@ -1,481 +0,0 @@ -/* - * Matrix Market I/O library for ANSI C - * - * See http://math.nist.gov/MatrixMarket for details. - * - * - */ - -/* avoid Windows warnings (for example: strcpy, fscanf, etc.) */ -#if defined(_WIN32) -#define _CRT_SECURE_NO_WARNINGS -#endif - -// System includes -#include -#include -#include -#include - -// Project includes -#include "mmio.h" - - -int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_) -{ - FILE *f; - MM_typecode matcode; - int M, N, nz; - int i; - double *val; - int *I, *J; - - if ((f = fopen(fname, "r")) == NULL) - return -1; - - - if (mm_read_banner(f, &matcode) != 0) { - printf("mm_read_unsymetric: Could not process Matrix Market banner "); - printf(" in file [%s]\n", fname); - return -1; - } - - - if (!(mm_is_real(matcode) && mm_is_matrix(matcode) && mm_is_sparse(matcode))) { - fprintf(stderr, "Sorry, this application does not support "); - fprintf(stderr, "Market Market type: [%s]\n", mm_typecode_to_str(matcode)); - return -1; - } - - /* find out size of sparse matrix: M, N, nz .... */ - - if (mm_read_mtx_crd_size(f, &M, &N, &nz) != 0) { - fprintf(stderr, "read_unsymmetric_sparse(): could not parse matrix size.\n"); - return -1; - } - - *M_ = M; - *N_ = N; - *nz_ = nz; - - /* reseve memory for matrices */ - - I = (int *)malloc(nz * sizeof(int)); - J = (int *)malloc(nz * sizeof(int)); - val = (double *)malloc(nz * sizeof(double)); - - *val_ = val; - *I_ = I; - *J_ = J; - - /* NOTE: when reading in doubles, ANSI C requires the use of the "l" */ - /* specifier as in "%lg", "%lf", "%le", otherwise errors will occur */ - /* (ANSI C X3.159-1989, Sec. 4.9.6.2, p. 136 lines 13-15) */ - - for (i = 0; i < nz; i++) { - if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3) { - return -1; - } - I[i]--; /* adjust from 1-based to 0-based */ - J[i]--; - } - fclose(f); - - return 0; -} - -int mm_is_valid(MM_typecode matcode) -{ - if (!mm_is_matrix(matcode)) - return 0; - if (mm_is_dense(matcode) && mm_is_pattern(matcode)) - return 0; - if (mm_is_real(matcode) && mm_is_hermitian(matcode)) - return 0; - if (mm_is_pattern(matcode) && (mm_is_hermitian(matcode) || mm_is_skew(matcode))) - return 0; - return 1; -} - -int mm_read_banner(FILE *f, MM_typecode *matcode) -{ - char line[MM_MAX_LINE_LENGTH]; - char banner[MM_MAX_TOKEN_LENGTH]; - char mtx[MM_MAX_TOKEN_LENGTH]; - char crd[MM_MAX_TOKEN_LENGTH]; - char data_type[MM_MAX_TOKEN_LENGTH]; - char storage_scheme[MM_MAX_TOKEN_LENGTH]; - char *p; - - - mm_clear_typecode(matcode); - - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - - if (sscanf(line, "%s %s %s %s %s", banner, mtx, crd, data_type, storage_scheme) != 5) - return MM_PREMATURE_EOF; - - for (p = mtx; *p != '\0'; *p = tolower(*p), p++) - ; /* convert to lower case */ - for (p = crd; *p != '\0'; *p = tolower(*p), p++) - ; - for (p = data_type; *p != '\0'; *p = tolower(*p), p++) - ; - for (p = storage_scheme; *p != '\0'; *p = tolower(*p), p++) - ; - - /* check for banner */ - if (strncmp(banner, MatrixMarketBanner, strlen(MatrixMarketBanner)) != 0) - return MM_NO_HEADER; - - /* first field should be "mtx" */ - if (strcmp(mtx, MM_MTX_STR) != 0) - return MM_UNSUPPORTED_TYPE; - mm_set_matrix(matcode); - - - /* second field describes whether this is a sparse matrix (in coordinate - storgae) or a dense array */ - - - if (strcmp(crd, MM_SPARSE_STR) == 0) - mm_set_sparse(matcode); - else if (strcmp(crd, MM_DENSE_STR) == 0) - mm_set_dense(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - /* third field */ - - if (strcmp(data_type, MM_REAL_STR) == 0) - mm_set_real(matcode); - else if (strcmp(data_type, MM_COMPLEX_STR) == 0) - mm_set_complex(matcode); - else if (strcmp(data_type, MM_PATTERN_STR) == 0) - mm_set_pattern(matcode); - else if (strcmp(data_type, MM_INT_STR) == 0) - mm_set_integer(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - /* fourth field */ - - if (strcmp(storage_scheme, MM_GENERAL_STR) == 0) - mm_set_general(matcode); - else if (strcmp(storage_scheme, MM_SYMM_STR) == 0) - mm_set_symmetric(matcode); - else if (strcmp(storage_scheme, MM_HERM_STR) == 0) - mm_set_hermitian(matcode); - else if (strcmp(storage_scheme, MM_SKEW_STR) == 0) - mm_set_skew(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - return 0; -} - -int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz) -{ - if (fprintf(f, "%d %d %d\n", M, N, nz) != 3) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - -int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz) -{ - char line[MM_MAX_LINE_LENGTH]; - int num_items_read; - - /* set return null parameter values, in case we exit with errors */ - *M = *N = *nz = 0; - - /* now continue scanning until you reach the end-of-comments */ - do { - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - } while (line[0] == '%'); - - /* line[] is either blank or has M,N, nz */ - if (sscanf(line, "%d %d %d", M, N, nz) == 3) - return 0; - - else - do { - num_items_read = fscanf(f, "%d %d %d", M, N, nz); - if (num_items_read == EOF) - return MM_PREMATURE_EOF; - } while (num_items_read != 3); - - return 0; -} - - -int mm_read_mtx_array_size(FILE *f, int *M, int *N) -{ - char line[MM_MAX_LINE_LENGTH]; - int num_items_read; - /* set return null parameter values, in case we exit with errors */ - *M = *N = 0; - - /* now continue scanning until you reach the end-of-comments */ - do { - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - } while (line[0] == '%'); - - /* line[] is either blank or has M,N, nz */ - if (sscanf(line, "%d %d", M, N) == 2) - return 0; - - else /* we have a blank line */ - do { - num_items_read = fscanf(f, "%d %d", M, N); - if (num_items_read == EOF) - return MM_PREMATURE_EOF; - } while (num_items_read != 2); - - return 0; -} - -int mm_write_mtx_array_size(FILE *f, int M, int N) -{ - if (fprintf(f, "%d %d\n", M, N) != 2) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - - -/*-------------------------------------------------------------------------*/ - -/******************************************************************/ -/* use when I[], J[], and val[]J, and val[] are already allocated */ -/******************************************************************/ - -int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode) -{ - int i; - if (mm_is_complex(matcode)) { - for (i = 0; i < nz; i++) - if (fscanf(f, "%d %d %lg %lg", &I[i], &J[i], &val[2 * i], &val[2 * i + 1]) != 4) - return MM_PREMATURE_EOF; - } - else if (mm_is_real(matcode) || mm_is_integer(matcode)) { - for (i = 0; i < nz; i++) { - if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3) - return MM_PREMATURE_EOF; - } - } - - else if (mm_is_pattern(matcode)) { - for (i = 0; i < nz; i++) - if (fscanf(f, "%d %d", &I[i], &J[i]) != 2) - return MM_PREMATURE_EOF; - } - else - return MM_UNSUPPORTED_TYPE; - - return 0; -} - -int mm_read_mtx_crd_entry(FILE *f, int *I, int *J, double *real, double *imag, MM_typecode matcode) -{ - if (mm_is_complex(matcode)) { - if (fscanf(f, "%d %d %lg %lg", I, J, real, imag) != 4) - return MM_PREMATURE_EOF; - } - else if (mm_is_real(matcode) || mm_is_integer(matcode)) { - if (fscanf(f, "%d %d %lg\n", I, J, real) != 3) - return MM_PREMATURE_EOF; - } - - else if (mm_is_pattern(matcode)) { - if (fscanf(f, "%d %d", I, J) != 2) - return MM_PREMATURE_EOF; - } - else - return MM_UNSUPPORTED_TYPE; - - return 0; -} - - -/************************************************************************ - mm_read_mtx_crd() fills M, N, nz, array of values, and return - type code, e.g. 'MCRS' - - if matrix is complex, values[] is of size 2*nz, - (nz pairs of real/imaginary values) -************************************************************************/ - -int mm_read_mtx_crd(char *fname, int *M, int *N, int *nz, int **I, int **J, double **val, MM_typecode *matcode) -{ - int ret_code; - FILE *f; - - if (strcmp(fname, "stdin") == 0) - f = stdin; - else if ((f = fopen(fname, "r")) == NULL) - return MM_COULD_NOT_READ_FILE; - - - if ((ret_code = mm_read_banner(f, matcode)) != 0) - return ret_code; - - if (!(mm_is_valid(*matcode) && mm_is_sparse(*matcode) && mm_is_matrix(*matcode))) - return MM_UNSUPPORTED_TYPE; - - if ((ret_code = mm_read_mtx_crd_size(f, M, N, nz)) != 0) - return ret_code; - - - *I = (int *)malloc(*nz * sizeof(int)); - *J = (int *)malloc(*nz * sizeof(int)); - *val = NULL; - - if (mm_is_complex(*matcode)) { - *val = (double *)malloc(*nz * 2 * sizeof(double)); - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - else if (mm_is_real(*matcode) || mm_is_integer(*matcode)) { - *val = (double *)malloc(*nz * sizeof(double)); - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - - else if (mm_is_pattern(*matcode)) { - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - - if (f != stdin) - fclose(f); - return 0; -} - -int mm_write_banner(FILE *f, MM_typecode matcode) -{ - char *str = mm_typecode_to_str(matcode); - int ret_code; - - ret_code = fprintf(f, "%s %s\n", MatrixMarketBanner, str); - free(str); - if (ret_code != 2) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - -int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode) -{ - FILE *f; - int i; - - if (strcmp(fname, "stdout") == 0) - f = stdout; - else if ((f = fopen(fname, "w")) == NULL) - return MM_COULD_NOT_WRITE_FILE; - - /* print banner followed by typecode */ - fprintf(f, "%s ", MatrixMarketBanner); - fprintf(f, "%s\n", mm_typecode_to_str(matcode)); - - /* print matrix sizes and nonzeros */ - fprintf(f, "%d %d %d\n", M, N, nz); - - /* print values */ - if (mm_is_pattern(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d\n", I[i], J[i]); - else if (mm_is_integer(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %d\n", I[i], J[i], (int)val[i]); - else if (mm_is_real(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %20.16g\n", I[i], J[i], val[i]); - else if (mm_is_complex(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %20.16g %20.16g\n", I[i], J[i], val[2 * i], val[2 * i + 1]); - else { - if (f != stdout) - fclose(f); - return MM_UNSUPPORTED_TYPE; - } - - if (f != stdout) - fclose(f); - - return 0; -} - - -/** - * Create a new copy of a string s. mm_strdup() is a common routine, but - * not part of ANSI C, so it is included here. Used by mm_typecode_to_str(). - * - */ -static char *mm_strdup(const char *s) -{ - size_t len = strlen(s); - char *s2 = (char *)malloc((len + 1) * sizeof(char)); - return strcpy(s2, s); -} - -char *mm_typecode_to_str(MM_typecode matcode) -{ - char buffer[MM_MAX_LINE_LENGTH]; - char *types[4]; - // char *mm_strdup(const char *); - // int error =0; - - /* check for MTX type */ - if (mm_is_matrix(matcode)) - types[0] = MM_MTX_STR; - else - return NULL; // error=1; - - /* check for CRD or ARR matrix */ - if (mm_is_sparse(matcode)) - types[1] = MM_SPARSE_STR; - else if (mm_is_dense(matcode)) - types[1] = MM_DENSE_STR; - else - return NULL; - - /* check for element data type */ - if (mm_is_real(matcode)) - types[2] = MM_REAL_STR; - else if (mm_is_complex(matcode)) - types[2] = MM_COMPLEX_STR; - else if (mm_is_pattern(matcode)) - types[2] = MM_PATTERN_STR; - else if (mm_is_integer(matcode)) - types[2] = MM_INT_STR; - else - return NULL; - - - /* check for symmetry type */ - if (mm_is_general(matcode)) - types[3] = MM_GENERAL_STR; - else if (mm_is_symmetric(matcode)) - types[3] = MM_SYMM_STR; - else if (mm_is_hermitian(matcode)) - types[3] = MM_HERM_STR; - else if (mm_is_skew(matcode)) - types[3] = MM_SKEW_STR; - else - return NULL; - - sprintf(buffer, "%s %s %s %s", types[0], types[1], types[2], types[3]); - return mm_strdup(buffer); -} diff --git a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/mmio.h b/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/mmio.h deleted file mode 100644 index a05f6063..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/mmio.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Matrix Market I/O library for ANSI C - * - * See http://math.nist.gov/MatrixMarket for details. - * - * - */ - -#ifndef MM_IO_H -#define MM_IO_H - -#include - -#if defined(__cplusplus) -extern "C" -{ -#endif /* __cplusplus */ - -#define MM_MAX_LINE_LENGTH 1025 -#define MatrixMarketBanner "%%MatrixMarket" -#define MM_MAX_TOKEN_LENGTH 64 - - typedef char MM_typecode[4]; - - char *mm_typecode_to_str(MM_typecode matcode); - - int mm_read_banner(FILE *f, MM_typecode *matcode); - int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz); - int mm_read_mtx_array_size(FILE *f, int *M, int *N); - - int mm_write_banner(FILE *f, MM_typecode matcode); - int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz); - int mm_write_mtx_array_size(FILE *f, int M, int N); - - - /********************* MM_typecode query fucntions ***************************/ - -#define mm_is_matrix(typecode) ((typecode)[0] == 'M') - -#define mm_is_sparse(typecode) ((typecode)[1] == 'C') -#define mm_is_coordinate(typecode) ((typecode)[1] == 'C') -#define mm_is_dense(typecode) ((typecode)[1] == 'A') -#define mm_is_array(typecode) ((typecode)[1] == 'A') - -#define mm_is_complex(typecode) ((typecode)[2] == 'C') -#define mm_is_real(typecode) ((typecode)[2] == 'R') -#define mm_is_pattern(typecode) ((typecode)[2] == 'P') -#define mm_is_integer(typecode) ((typecode)[2] == 'I') - -#define mm_is_symmetric(typecode) ((typecode)[3] == 'S') -#define mm_is_general(typecode) ((typecode)[3] == 'G') -#define mm_is_skew(typecode) ((typecode)[3] == 'K') -#define mm_is_hermitian(typecode) ((typecode)[3] == 'H') - - int mm_is_valid(MM_typecode matcode); /* too complex for a macro */ - - - /********************* MM_typecode modify fucntions ***************************/ - -#define mm_set_matrix(typecode) ((*typecode)[0] = 'M') -#define mm_set_coordinate(typecode) ((*typecode)[1] = 'C') -#define mm_set_array(typecode) ((*typecode)[1] = 'A') -#define mm_set_dense(typecode) mm_set_array(typecode) -#define mm_set_sparse(typecode) mm_set_coordinate(typecode) - -#define mm_set_complex(typecode) ((*typecode)[2] = 'C') -#define mm_set_real(typecode) ((*typecode)[2] = 'R') -#define mm_set_pattern(typecode) ((*typecode)[2] = 'P') -#define mm_set_integer(typecode) ((*typecode)[2] = 'I') - - -#define mm_set_symmetric(typecode) ((*typecode)[3] = 'S') -#define mm_set_general(typecode) ((*typecode)[3] = 'G') -#define mm_set_skew(typecode) ((*typecode)[3] = 'K') -#define mm_set_hermitian(typecode) ((*typecode)[3] = 'H') - -#define mm_clear_typecode(typecode) ((*typecode)[0] = (*typecode)[1] = (*typecode)[2] = ' ', (*typecode)[3] = 'G') - -#define mm_initialize_typecode(typecode) mm_clear_typecode(typecode) - - - /********************* Matrix Market error codes ***************************/ - - -#define MM_COULD_NOT_READ_FILE 11 -#define MM_PREMATURE_EOF 12 -#define MM_NOT_MTX 13 -#define MM_NO_HEADER 14 -#define MM_UNSUPPORTED_TYPE 15 -#define MM_LINE_TOO_LONG 16 -#define MM_COULD_NOT_WRITE_FILE 17 - - - /******************** Matrix Market internal definitions ******************** - - MM_matrix_typecode: 4-character sequence - - ojbect sparse/ data storage - dense type scheme - - string position: [0] [1] [2] [3] - - Matrix typecode: M(atrix) C(oord) R(eal) G(eneral) - A(array) C(omplex) H(ermitian) - P(attern) S(ymmetric) - I(nteger) K(kew) - - ***********************************************************************/ - -#define MM_MTX_STR "matrix" -#define MM_ARRAY_STR "array" -#define MM_DENSE_STR "array" -#define MM_COORDINATE_STR "coordinate" -#define MM_SPARSE_STR "coordinate" -#define MM_COMPLEX_STR "complex" -#define MM_REAL_STR "real" -#define MM_INT_STR "integer" -#define MM_GENERAL_STR "general" -#define MM_SYMM_STR "symmetric" -#define MM_HERM_STR "hermitian" -#define MM_SKEW_STR "skew-symmetric" -#define MM_PATTERN_STR "pattern" - - - /* high level routines */ - int mm_read_mtx_crd(char *fname, int *M, int *N, int *nz, int **I, int **J, double **val, MM_typecode *matcode); - - int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode); - int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode); - int mm_read_mtx_crd_entry(FILE *f, int *I, int *J, double *real, double *img, MM_typecode matcode); - - int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_); - -#if defined(__cplusplus) -} -#endif /* __cplusplus */ - -#endif diff --git a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/mmio_wrapper.cpp b/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/mmio_wrapper.cpp deleted file mode 100644 index f6f6c8e4..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverDn_LinearSolver/mmio_wrapper.cpp +++ /dev/null @@ -1,473 +0,0 @@ - -#include -#include -#include -#include - -#include "mmio.h" - -/* avoid Windows warnings (for example: strcpy, fscanf, etc.) */ -#if defined(_WIN32) -#define _CRT_SECURE_NO_WARNINGS -#endif - -/* various __inline__ __device__ function to initialize a T_ELEM */ -template __inline__ T_ELEM cuGet(int); -template <> __inline__ float cuGet(int x) { return float(x); } - -template <> __inline__ double cuGet(int x) { return double(x); } - -template <> __inline__ cuComplex cuGet(int x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(int x) { return (make_cuDoubleComplex(double(x), 0.0)); } - - -template __inline__ T_ELEM cuGet(int, int); -template <> __inline__ float cuGet(int x, int y) { return float(x); } - -template <> __inline__ double cuGet(int x, int y) { return double(x); } - -template <> __inline__ cuComplex cuGet(int x, int y) { return make_cuComplex(float(x), float(y)); } - -template <> __inline__ cuDoubleComplex cuGet(int x, int y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - - -template __inline__ T_ELEM cuGet(float); -template <> __inline__ float cuGet(float x) { return float(x); } - -template <> __inline__ double cuGet(float x) { return double(x); } - -template <> __inline__ cuComplex cuGet(float x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(float x) -{ - return (make_cuDoubleComplex(double(x), 0.0)); -} - - -template __inline__ T_ELEM cuGet(float, float); -template <> __inline__ float cuGet(float x, float y) { return float(x); } - -template <> __inline__ double cuGet(float x, float y) { return double(x); } - -template <> __inline__ cuComplex cuGet(float x, float y) { return (make_cuComplex(float(x), float(y))); } - -template <> __inline__ cuDoubleComplex cuGet(float x, float y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - - -template __inline__ T_ELEM cuGet(double); -template <> __inline__ float cuGet(double x) { return float(x); } - -template <> __inline__ double cuGet(double x) { return double(x); } - -template <> __inline__ cuComplex cuGet(double x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(double x) -{ - return (make_cuDoubleComplex(double(x), 0.0)); -} - - -template __inline__ T_ELEM cuGet(double, double); -template <> __inline__ float cuGet(double x, double y) { return float(x); } - -template <> __inline__ double cuGet(double x, double y) { return double(x); } - -template <> __inline__ cuComplex cuGet(double x, double y) { return (make_cuComplex(float(x), float(y))); } - -template <> __inline__ cuDoubleComplex cuGet(double x, double y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - - -static void compress_index(const int *Ind, int nnz, int m, int *Ptr, int base) -{ - int i; - - /* initialize everything to zero */ - for (i = 0; i < m + 1; i++) { - Ptr[i] = 0; - } - /* count elements in every row */ - Ptr[0] = base; - for (i = 0; i < nnz; i++) { - Ptr[Ind[i] + (1 - base)]++; - } - /* add all the values */ - for (i = 0; i < m; i++) { - Ptr[i + 1] += Ptr[i]; - } -} - - -struct cooFormat -{ - int i; - int j; - int p; // permutation -}; - - -int cmp_cooFormat_csr(struct cooFormat *s, struct cooFormat *t) -{ - if (s->i < t->i) { - return -1; - } - else if (s->i > t->i) { - return 1; - } - else { - return s->j - t->j; - } -} - -int cmp_cooFormat_csc(struct cooFormat *s, struct cooFormat *t) -{ - if (s->j < t->j) { - return -1; - } - else if (s->j > t->j) { - return 1; - } - else { - return s->i - t->i; - } -} - -typedef int (*FUNPTR)(const void *, const void *); -typedef int (*FUNPTR2)(struct cooFormat *s, struct cooFormat *t); - -static FUNPTR2 fptr_array[2] = { - cmp_cooFormat_csr, - cmp_cooFormat_csc, -}; - - -static int verify_pattern(int m, int nnz, int *csrRowPtr, int *csrColInd) -{ - int i, col, start, end, base_index; - int error_found = 0; - - if (nnz != (csrRowPtr[m] - csrRowPtr[0])) { - fprintf(stderr, - "Error (nnz check failed): (csrRowPtr[%d]=%d - csrRowPtr[%d]=%d) != (nnz=%d)\n", - 0, - csrRowPtr[0], - m, - csrRowPtr[m], - nnz); - error_found = 1; - } - - base_index = csrRowPtr[0]; - if ((0 != base_index) && (1 != base_index)) { - fprintf(stderr, "Error (base index check failed): base index = %d\n", base_index); - error_found = 1; - } - - for (i = 0; (!error_found) && (i < m); i++) { - start = csrRowPtr[i] - base_index; - end = csrRowPtr[i + 1] - base_index; - if (start > end) { - fprintf(stderr, - "Error (corrupted row): csrRowPtr[%d] (=%d) > csrRowPtr[%d] (=%d)\n", - i, - start + base_index, - i + 1, - end + base_index); - error_found = 1; - } - for (col = start; col < end; col++) { - if (csrColInd[col] < base_index) { - fprintf(stderr, "Error (column vs. base index check failed): csrColInd[%d] < %d\n", col, base_index); - error_found = 1; - } - if ((col < (end - 1)) && (csrColInd[col] >= csrColInd[col + 1])) { - fprintf( - stderr, - "Error (sorting of the column indecis check failed): (csrColInd[%d]=%d) >= (csrColInd[%d]=%d)\n", - col, - csrColInd[col], - col + 1, - csrColInd[col + 1]); - error_found = 1; - } - } - } - return error_found; -} - - -template -int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - T_ELEM **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix) -{ - MM_typecode matcode; - double *tempVal; - int *tempRowInd, *tempColInd; - double *tval; - int *trow, *tcol; - int *csrRowPtr, *cscColPtr; - int i, j, error, base, count; - struct cooFormat *work; - - /* read the matrix */ - error = mm_read_mtx_crd(filename, m, n, nnz, &trow, &tcol, &tval, &matcode); - if (error) { - fprintf(stderr, "!!!! can not open file: '%s'\n", filename); - return 1; - } - - /* start error checking */ - if (mm_is_complex(matcode) && ((elem_type != 'z') && (elem_type != 'c'))) { - fprintf(stderr, "!!!! complex matrix requires type 'z' or 'c'\n"); - return 1; - } - - if (mm_is_dense(matcode) || mm_is_array(matcode) || mm_is_pattern(matcode) /*|| mm_is_integer(matcode)*/) { - fprintf(stderr, "!!!! dense, array, pattern and integer matrices are not supported\n"); - return 1; - } - - /* if necessary symmetrize the pattern (transform from triangular to full) */ - if ((extendSymMatrix) && (mm_is_symmetric(matcode) || mm_is_hermitian(matcode) || mm_is_skew(matcode))) { - // count number of non-diagonal elements - count = 0; - for (i = 0; i < (*nnz); i++) { - if (trow[i] != tcol[i]) { - count++; - } - } - // allocate space for the symmetrized matrix - tempRowInd = (int *)malloc((*nnz + count) * sizeof(int)); - tempColInd = (int *)malloc((*nnz + count) * sizeof(int)); - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - tempVal = (double *)malloc((*nnz + count) * sizeof(double)); - } - else { - tempVal = (double *)malloc(2 * (*nnz + count) * sizeof(double)); - } - // copy the elements regular and transposed locations - for (j = 0, i = 0; i < (*nnz); i++) { - tempRowInd[j] = trow[i]; - tempColInd[j] = tcol[i]; - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - tempVal[j] = tval[i]; - } - else { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = tval[2 * i + 1]; - } - j++; - if (trow[i] != tcol[i]) { - tempRowInd[j] = tcol[i]; - tempColInd[j] = trow[i]; - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - if (mm_is_skew(matcode)) { - tempVal[j] = -tval[i]; - } - else { - tempVal[j] = tval[i]; - } - } - else { - if (mm_is_hermitian(matcode)) { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = -tval[2 * i + 1]; - } - else { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = tval[2 * i + 1]; - } - } - j++; - } - } - (*nnz) += count; - // free temporary storage - free(trow); - free(tcol); - free(tval); - } - else { - tempRowInd = trow; - tempColInd = tcol; - tempVal = tval; - } - // life time of (trow, tcol, tval) is over. - // please use COO format (tempRowInd, tempColInd, tempVal) - - // use qsort to sort COO format - work = (struct cooFormat *)malloc(sizeof(struct cooFormat) * (*nnz)); - if (NULL == work) { - fprintf(stderr, "!!!! allocation error, malloc failed\n"); - return 1; - } - for (i = 0; i < (*nnz); i++) { - work[i].i = tempRowInd[i]; - work[i].j = tempColInd[i]; - work[i].p = i; // permutation is identity - } - - if (csrFormat) { - /* create row-major ordering of indices (sorted by row and within each row by column) */ - qsort(work, *nnz, sizeof(struct cooFormat), (FUNPTR)fptr_array[0]); - } - else { - /* create column-major ordering of indices (sorted by column and within each column by row) */ - qsort(work, *nnz, sizeof(struct cooFormat), (FUNPTR)fptr_array[1]); - } - - // (tempRowInd, tempColInd) is sorted either by row-major or by col-major - for (i = 0; i < (*nnz); i++) { - tempRowInd[i] = work[i].i; - tempColInd[i] = work[i].j; - } - - // setup base - // check if there is any row/col 0, if so base-0 - // check if there is any row/col equal to matrix dimension m/n, if so base-1 - int base0 = 0; - int base1 = 0; - for (i = 0; i < (*nnz); i++) { - const int row = tempRowInd[i]; - const int col = tempColInd[i]; - if ((0 == row) || (0 == col)) { - base0 = 1; - } - if ((*m == row) || (*n == col)) { - base1 = 1; - } - } - if (base0 && base1) { - printf("Error: input matrix is base-0 and base-1 \n"); - return 1; - } - - base = 0; - if (base1) { - base = 1; - } - - /* compress the appropriate indices */ - if (csrFormat) { - /* CSR format (assuming row-major format) */ - csrRowPtr = (int *)malloc(((*m) + 1) * sizeof(csrRowPtr[0])); - if (!csrRowPtr) - return 1; - compress_index(tempRowInd, *nnz, *m, csrRowPtr, base); - - *aRowInd = csrRowPtr; - *aColInd = (int *)malloc((*nnz) * sizeof(int)); - } - else { - /* CSC format (assuming column-major format) */ - cscColPtr = (int *)malloc(((*n) + 1) * sizeof(cscColPtr[0])); - if (!cscColPtr) - return 1; - compress_index(tempColInd, *nnz, *n, cscColPtr, base); - - *aColInd = cscColPtr; - *aRowInd = (int *)malloc((*nnz) * sizeof(int)); - } - - /* transfrom the matrix values of type double into one of the cusparse library types */ - *aVal = (T_ELEM *)malloc((*nnz) * sizeof(T_ELEM)); - - for (i = 0; i < (*nnz); i++) { - if (csrFormat) { - (*aColInd)[i] = tempColInd[i]; - } - else { - (*aRowInd)[i] = tempRowInd[i]; - } - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - (*aVal)[i] = cuGet(tempVal[work[i].p]); - } - else { - (*aVal)[i] = cuGet(tempVal[2 * work[i].p], tempVal[2 * work[i].p + 1]); - } - } - - /* check for corruption */ - int error_found; - if (csrFormat) { - error_found = verify_pattern(*m, *nnz, *aRowInd, *aColInd); - } - else { - error_found = verify_pattern(*n, *nnz, *aColInd, *aRowInd); - } - if (error_found) { - fprintf(stderr, "!!!! verify_pattern failed\n"); - return 1; - } - - /* cleanup and exit */ - free(work); - free(tempVal); - free(tempColInd); - free(tempRowInd); - - return 0; -} - - -/* specific instantiation */ -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - float **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - double **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - cuComplex **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - cuDoubleComplex **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); diff --git a/cpp/4_CUDA_Libraries/cuSolverRf/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/cuSolverRf/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverRf/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/cuSolverRf/.vscode/extensions.json b/cpp/4_CUDA_Libraries/cuSolverRf/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverRf/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/cuSolverRf/CMakeLists.txt b/cpp/4_CUDA_Libraries/cuSolverRf/CMakeLists.txt deleted file mode 100644 index eed7f8bf..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverRf/CMakeLists.txt +++ /dev/null @@ -1,58 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(cuSolverRf LANGUAGES C CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for cuSolverRf -add_executable(cuSolverRf cuSolverRf.cpp mmio.c mmio_wrapper.cpp) - -target_compile_options(cuSolverRf PRIVATE $<$:--extended-lambda>) - -target_compile_features(cuSolverRf PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(cuSolverRf PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(cuSolverRf PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(cuSolverRf PRIVATE - CUDA::cudart - CUDA::cublas - CUDA::cusolver -) - -# Copy data files to output directory -add_custom_command(TARGET cuSolverRf POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lap2D_5pt_n100.mtx - ${CMAKE_CURRENT_BINARY_DIR} -) - -# Copy data files to output directory -add_custom_command(TARGET cuSolverRf POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lap3D_7pt_n20.mtx - ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/cuSolverRf/README.md b/cpp/4_CUDA_Libraries/cuSolverRf/README.md deleted file mode 100644 index aaa2cbe2..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverRf/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# cuSolverRf - cuSolverRf Refactorization - -## Description - -A CUDA Sample that demonstrates cuSolver's refactorization library - CUSOLVERRF. - -## Key Concepts - -Linear Algebra, CUSOLVER Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuGet, cuDoubleComplex, cuComplex - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaStreamDestroy, cudaFree, cudaDeviceSynchronize, cudaMalloc, cudaStreamCreate - -## Dependencies needed to build/run -[CUSOLVER](../../../README.md#cusolver), [CUBLAS](../../../README.md#cublas), [CUSPARSE](../../../README.md#cusparse) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/cuSolverRf/cuSolverRf.cpp b/cpp/4_CUDA_Libraries/cuSolverRf/cuSolverRf.cpp deleted file mode 100644 index 8794d231..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverRf/cuSolverRf.cpp +++ /dev/null @@ -1,899 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * A framework of refactorization process. - * - * step 1: compute P*A*Q = L*U by - * - reordering and - * - LU with partial pivoting in cusolverSp - * - * step 2: set up cusolverRf by (P, Q, L, U) - * - * step 3: analyze and refactor A - * - * How to use - * ./cuSolverRf -P=symrcm -file - * ./cuSolverRf -P=symamd -file - * - */ - -#include "cusolverRf.h" - -#include -#include -#include -#include -#include -#include - -#include "cusolverSp.h" -#include "cusolverSp_LOWLEVEL_PREVIEW.h" -#include "helper_cuda.h" -#include "helper_cusolver.h" -#include "helper_string.h" - -template -int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - T_ELEM **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -void UsageRF(void) -{ - printf("\n"); - printf("-h : display this help\n"); - printf("-P= : choose a reordering\n"); - printf(" symrcm (Reverse Cuthill-McKee)\n"); - printf(" symamd (Approximate Minimum Degree)\n"); - printf("-file= : filename containing a matrix in MM format\n"); - printf("-device= : if want to run on specific GPU\n"); - - exit(0); -} - -void parseCommandLineArguments(int argc, char *argv[], struct testOpts &opts) -{ - memset(&opts, 0, sizeof(opts)); - - if (checkCmdLineFlag(argc, (const char **)argv, "-h")) { - UsageRF(); - } - - if (checkCmdLineFlag(argc, (const char **)argv, "P")) { - char *reorderType = NULL; - getCmdLineArgumentString(argc, (const char **)argv, "P", &reorderType); - - if (reorderType) { - if ((STRCASECMP(reorderType, "symrcm") != 0) && (STRCASECMP(reorderType, "symamd") != 0)) { - printf("\nIncorrect argument passed to -P option\n"); - UsageRF(); - } - else { - opts.reorder = reorderType; - } - } - } - - if (!opts.reorder) { - opts.reorder = "symrcm"; // Setting default reordering to be symrcm. - } - - if (checkCmdLineFlag(argc, (const char **)argv, "file")) { - char *fileName = 0; - getCmdLineArgumentString(argc, (const char **)argv, "file", &fileName); - - if (fileName) { - opts.sparse_mat_filename = fileName; - } - else { - printf("\nIncorrect filename passed to -file \n "); - UsageRF(); - } - } -} - -int main(int argc, char *argv[]) -{ - struct testOpts opts; - cusolverRfHandle_t cusolverRfH = NULL; // refactorization - cusolverSpHandle_t cusolverSpH = NULL; // reordering, permutation and 1st LU factorization - cusparseHandle_t cusparseH = NULL; // residual evaluation - cudaStream_t stream = NULL; - cusparseMatDescr_t descrA = NULL; // A is a base-0 general matrix - - csrluInfoHost_t info = NULL; // opaque info structure for LU with parital pivoting - - int rowsA = 0; // number of rows of A - int colsA = 0; // number of columns of A - int nnzA = 0; // number of nonzeros of A - int baseA = 0; // base index in CSR format - // cusolverRf only works for base-0 - - // cusolverRf only works for square matrix, - // assume n = rowsA = colsA - - // CSR(A) from I/O - int *h_csrRowPtrA = NULL; // n+1 - int *h_csrColIndA = NULL; // nnzA - double *h_csrValA = NULL; // nnzA - - int *h_Qreorder = NULL; // n - // reorder to reduce zero fill-in - // Qreorder = symrcm(A) or Qreroder = symamd(A) - // B = Q*A*Q^T - int *h_csrRowPtrB = NULL; // n+1 - int *h_csrColIndB = NULL; // nnzA - double *h_csrValB = NULL; // nnzA - int *h_mapBfromA = NULL; // nnzA - - double *h_x = NULL; // n, x = A \ b - double *h_b = NULL; // n, b = ones(m,1) - double *h_r = NULL; // n, r = b - A*x - - // solve B*(Qx) = Q*b - double *h_xhat = NULL; // n, Q*x_hat = x - double *h_bhat = NULL; // n, b_hat = Q*b - - size_t size_perm = 0; - size_t size_internal = 0; - size_t size_lu = 0; // size of working space for csrlu - void *buffer_cpu = NULL; // working space for - // - permutation: B = Q*A*Q^T - // - LU with partial pivoting in cusolverSp - - // cusolverSp computes LU with partial pivoting - // Plu*B*Qlu^T = L*U - // where B = Q*A*Q^T - // - // nnzL and nnzU are not known until factorization is done. - // However upper bound of L+U is known after symbolic analysis of LU. - int *h_Plu = NULL; // n - int *h_Qlu = NULL; // n - - int nnzL = 0; - int *h_csrRowPtrL = NULL; // n+1 - int *h_csrColIndL = NULL; // nnzL - double *h_csrValL = NULL; // nnzL - - int nnzU = 0; - int *h_csrRowPtrU = NULL; // n+1 - int *h_csrColIndU = NULL; // nnzU - double *h_csrValU = NULL; // nnzU - - int *h_P = NULL; // n, P = Plu * Qreorder - int *h_Q = NULL; // n, Q = Qlu * Qreorder - - int *d_csrRowPtrA = NULL; // n+1 - int *d_csrColIndA = NULL; // nnzA - double *d_csrValA = NULL; // nnzA - double *d_x = NULL; // n, x = A \ b - double *d_b = NULL; // n, a copy of h_b - double *d_r = NULL; // n, r = b - A*x - - int *d_P = NULL; // n, P*A*Q^T = L*U - int *d_Q = NULL; // n - - double *d_T = NULL; // working space in cusolverRfSolve - // |d_T| = n * nrhs - - // the constants used in residual evaluation, r = b - A*x - const double minus_one = -1.0; - const double one = 1.0; - // the constants used in cusolverRf - // nzero is the value below which zero pivot is flagged. - // nboost is the value which is substitured for zero pivot. - double nzero = 0.0; - double nboost = 0.0; - // the constant used in cusolverSp - // singularity is -1 if A is invertible under tol - // tol determines the condition of singularity - // pivot_threshold decides pivoting strategy - int singularity = 0; - const double tol = 1.e-14; - const double pivot_threshold = 1.0; - // the constants used in cusolverRf - const cusolverRfFactorization_t fact_alg = CUSOLVERRF_FACTORIZATION_ALG0; // default - const cusolverRfTriangularSolve_t solve_alg = CUSOLVERRF_TRIANGULAR_SOLVE_ALG1; // default - - double x_inf = 0.0; // |x| - double r_inf = 0.0; // |r| - double A_inf = 0.0; // |A| - int errors = 0; - - double start, stop; - double time_reorder; - double time_perm; - double time_sp_analysis; - double time_sp_factor; - double time_sp_solve; - double time_sp_extract; - double time_rf_assemble; - double time_rf_reset; - double time_rf_refactor; - double time_rf_solve; - - parseCommandLineArguments(argc, argv, opts); - - printf("step 1.1: preparation\n"); - printf("step 1.1: read matrix market format\n"); - - findCudaDevice(argc, (const char **)argv); - - if (opts.sparse_mat_filename == NULL) { - opts.sparse_mat_filename = sdkFindFilePath("lap2D_5pt_n100.mtx", argv[0]); - printf("Using default input file [%s]\n", opts.sparse_mat_filename); - } - else { - printf("Using input file [%s]\n", opts.sparse_mat_filename); - } - - if (opts.sparse_mat_filename) { - if (loadMMSparseMatrix(opts.sparse_mat_filename, - 'd', - true, - &rowsA, - &colsA, - &nnzA, - &h_csrValA, - &h_csrRowPtrA, - &h_csrColIndA, - true)) { - return 1; - } - baseA = h_csrRowPtrA[0]; // baseA = {0,1} - } - - if (rowsA != colsA) { - fprintf(stderr, "Error: only support square matrix\n"); - return 1; - } - - printf("WARNING: cusolverRf only works for base-0 \n"); - if (baseA) { - for (int i = 0; i <= rowsA; i++) { - h_csrRowPtrA[i]--; - } - for (int i = 0; i < nnzA; i++) { - h_csrColIndA[i]--; - } - baseA = 0; - } - - printf("sparse matrix A is %d x %d with %d nonzeros, base=%d\n", rowsA, colsA, nnzA, baseA); - - checkCudaErrors(cusolverSpCreate(&cusolverSpH)); - checkCudaErrors(cusparseCreate(&cusparseH)); - checkCudaErrors(cudaStreamCreate(&stream)); - - checkCudaErrors(cusolverSpSetStream(cusolverSpH, stream)); - checkCudaErrors(cusparseSetStream(cusparseH, stream)); - - checkCudaErrors(cusparseCreateMatDescr(&descrA)); - checkCudaErrors(cusparseSetMatType(descrA, CUSPARSE_MATRIX_TYPE_GENERAL)); - - if (baseA) { - checkCudaErrors(cusparseSetMatIndexBase(descrA, CUSPARSE_INDEX_BASE_ONE)); - } - else { - checkCudaErrors(cusparseSetMatIndexBase(descrA, CUSPARSE_INDEX_BASE_ZERO)); - } - - h_Qreorder = (int *)malloc(sizeof(int) * colsA); - - h_csrRowPtrB = (int *)malloc(sizeof(int) * (rowsA + 1)); - h_csrColIndB = (int *)malloc(sizeof(int) * nnzA); - h_csrValB = (double *)malloc(sizeof(double) * nnzA); - h_mapBfromA = (int *)malloc(sizeof(int) * nnzA); - - h_x = (double *)malloc(sizeof(double) * colsA); - h_b = (double *)malloc(sizeof(double) * rowsA); - h_r = (double *)malloc(sizeof(double) * rowsA); - h_xhat = (double *)malloc(sizeof(double) * colsA); - h_bhat = (double *)malloc(sizeof(double) * rowsA); - - assert(NULL != h_Qreorder); - - assert(NULL != h_csrRowPtrB); - assert(NULL != h_csrColIndB); - assert(NULL != h_csrValB); - assert(NULL != h_mapBfromA); - - assert(NULL != h_x); - assert(NULL != h_b); - assert(NULL != h_r); - assert(NULL != h_xhat); - assert(NULL != h_bhat); - - checkCudaErrors(cudaMalloc((void **)&d_csrRowPtrA, sizeof(int) * (rowsA + 1))); - checkCudaErrors(cudaMalloc((void **)&d_csrColIndA, sizeof(int) * nnzA)); - checkCudaErrors(cudaMalloc((void **)&d_csrValA, sizeof(double) * nnzA)); - checkCudaErrors(cudaMalloc((void **)&d_x, sizeof(double) * colsA)); - checkCudaErrors(cudaMalloc((void **)&d_b, sizeof(double) * rowsA)); - checkCudaErrors(cudaMalloc((void **)&d_r, sizeof(double) * rowsA)); - checkCudaErrors(cudaMalloc((void **)&d_P, sizeof(int) * rowsA)); - checkCudaErrors(cudaMalloc((void **)&d_Q, sizeof(int) * colsA)); - checkCudaErrors(cudaMalloc((void **)&d_T, sizeof(double) * rowsA * 1)); - - printf("step 1.2: set right hand side vector (b) to 1\n"); - for (int row = 0; row < rowsA; row++) { - h_b[row] = 1.0; - } - - printf("step 2: reorder the matrix to reduce zero fill-in\n"); - printf(" Q = symrcm(A) or Q = symamd(A) \n"); - start = second(); - start = second(); - - if (0 == strcmp(opts.reorder, "symrcm")) { - checkCudaErrors( - cusolverSpXcsrsymrcmHost(cusolverSpH, rowsA, nnzA, descrA, h_csrRowPtrA, h_csrColIndA, h_Qreorder)); - } - else if (0 == strcmp(opts.reorder, "symamd")) { - checkCudaErrors( - cusolverSpXcsrsymamdHost(cusolverSpH, rowsA, nnzA, descrA, h_csrRowPtrA, h_csrColIndA, h_Qreorder)); - } - else { - fprintf(stderr, "Error: %s is unknow reordering\n", opts.reorder); - return 1; - } - - stop = second(); - time_reorder = stop - start; - - printf("step 3: B = Q*A*Q^T\n"); - memcpy(h_csrRowPtrB, h_csrRowPtrA, sizeof(int) * (rowsA + 1)); - memcpy(h_csrColIndB, h_csrColIndA, sizeof(int) * nnzA); - - start = second(); - start = second(); - - checkCudaErrors(cusolverSpXcsrperm_bufferSizeHost( - cusolverSpH, rowsA, colsA, nnzA, descrA, h_csrRowPtrB, h_csrColIndB, h_Qreorder, h_Qreorder, &size_perm)); - - if (buffer_cpu) { - free(buffer_cpu); - } - buffer_cpu = (void *)malloc(sizeof(char) * size_perm); - assert(NULL != buffer_cpu); - - // h_mapBfromA = Identity - for (int j = 0; j < nnzA; j++) { - h_mapBfromA[j] = j; - } - checkCudaErrors(cusolverSpXcsrpermHost(cusolverSpH, - rowsA, - colsA, - nnzA, - descrA, - h_csrRowPtrB, - h_csrColIndB, - h_Qreorder, - h_Qreorder, - h_mapBfromA, - buffer_cpu)); - - // B = A( mapBfromA ) - for (int j = 0; j < nnzA; j++) { - h_csrValB[j] = h_csrValA[h_mapBfromA[j]]; - } - - stop = second(); - time_perm = stop - start; - - printf("step 4: solve A*x = b by LU(B) in cusolverSp\n"); - - printf("step 4.1: create opaque info structure\n"); - checkCudaErrors(cusolverSpCreateCsrluInfoHost(&info)); - - printf("step 4.2: analyze LU(B) to know structure of Q and R, and upper bound " - "for nnz(L+U)\n"); - start = second(); - start = second(); - - checkCudaErrors(cusolverSpXcsrluAnalysisHost(cusolverSpH, rowsA, nnzA, descrA, h_csrRowPtrB, h_csrColIndB, info)); - - stop = second(); - time_sp_analysis = stop - start; - - printf("step 4.3: workspace for LU(B)\n"); - checkCudaErrors(cusolverSpDcsrluBufferInfoHost( - cusolverSpH, rowsA, nnzA, descrA, h_csrValB, h_csrRowPtrB, h_csrColIndB, info, &size_internal, &size_lu)); - - if (buffer_cpu) { - free(buffer_cpu); - } - buffer_cpu = (void *)malloc(sizeof(char) * size_lu); - assert(NULL != buffer_cpu); - - printf("step 4.4: compute Ppivot*B = L*U \n"); - start = second(); - start = second(); - - checkCudaErrors(cusolverSpDcsrluFactorHost( - cusolverSpH, rowsA, nnzA, descrA, h_csrValB, h_csrRowPtrB, h_csrColIndB, info, pivot_threshold, buffer_cpu)); - - stop = second(); - time_sp_factor = stop - start; - - // TODO: check singularity by tol - printf("step 4.5: check if the matrix is singular \n"); - checkCudaErrors(cusolverSpDcsrluZeroPivotHost(cusolverSpH, info, tol, &singularity)); - - if (0 <= singularity) { - fprintf(stderr, "Error: A is not invertible, singularity=%d\n", singularity); - return 1; - } - - printf("step 4.6: solve A*x = b \n"); - printf(" i.e. solve B*(Qx) = Q*b \n"); - start = second(); - start = second(); - - // b_hat = Q*b - for (int j = 0; j < rowsA; j++) { - h_bhat[j] = h_b[h_Qreorder[j]]; - } - // B*x_hat = b_hat - checkCudaErrors(cusolverSpDcsrluSolveHost(cusolverSpH, rowsA, h_bhat, h_xhat, info, buffer_cpu)); - - // x = Q^T * x_hat - for (int j = 0; j < rowsA; j++) { - h_x[h_Qreorder[j]] = h_xhat[j]; - } - - stop = second(); - time_sp_solve = stop - start; - - printf("step 4.7: evaluate residual r = b - A*x (result on CPU)\n"); - // use GPU gemv to compute r = b - A*x - checkCudaErrors(cudaMemcpy(d_csrRowPtrA, h_csrRowPtrA, sizeof(int) * (rowsA + 1), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrColIndA, h_csrColIndA, sizeof(int) * nnzA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrValA, h_csrValA, sizeof(double) * nnzA, cudaMemcpyHostToDevice)); - - checkCudaErrors(cudaMemcpy(d_r, h_b, sizeof(double) * rowsA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_x, h_x, sizeof(double) * colsA, cudaMemcpyHostToDevice)); - - /* Wrap raw data into cuSPARSE generic API objects */ - cusparseSpMatDescr_t matA = NULL; - if (baseA) { - checkCudaErrors(cusparseCreateCsr(&matA, - rowsA, - colsA, - nnzA, - d_csrRowPtrA, - d_csrColIndA, - d_csrValA, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ONE, - CUDA_R_64F)); - } - else { - checkCudaErrors(cusparseCreateCsr(&matA, - rowsA, - colsA, - nnzA, - d_csrRowPtrA, - d_csrColIndA, - d_csrValA, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ZERO, - CUDA_R_64F)); - } - - cusparseDnVecDescr_t vecx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecx, colsA, d_x, CUDA_R_64F)); - cusparseDnVecDescr_t vecAx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecAx, rowsA, d_r, CUDA_R_64F)); - - /* Allocate workspace for cuSPARSE */ - size_t bufferSize = 0; - checkCudaErrors(cusparseSpMV_bufferSize(cusparseH, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - &bufferSize)); - void *buffer = NULL; - checkCudaErrors(cudaMalloc(&buffer, bufferSize)); - - checkCudaErrors(cusparseSpMV(cusparseH, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - - checkCudaErrors(cudaMemcpy(h_r, d_r, sizeof(double) * rowsA, cudaMemcpyDeviceToHost)); - - x_inf = vec_norminf(colsA, h_x); - r_inf = vec_norminf(rowsA, h_r); - A_inf = csr_mat_norminf(rowsA, colsA, nnzA, descrA, h_csrValA, h_csrRowPtrA, h_csrColIndA); - - printf("(CPU) |b - A*x| = %E \n", r_inf); - printf("(CPU) |A| = %E \n", A_inf); - printf("(CPU) |x| = %E \n", x_inf); - printf("(CPU) |b - A*x|/(|A|*|x|) = %E \n", r_inf / (A_inf * x_inf)); - - printf("step 5: extract P, Q, L and U from P*B*Q^T = L*U \n"); - printf(" L has implicit unit diagonal\n"); - start = second(); - start = second(); - - checkCudaErrors(cusolverSpXcsrluNnzHost(cusolverSpH, &nnzL, &nnzU, info)); - - h_Plu = (int *)malloc(sizeof(int) * rowsA); - h_Qlu = (int *)malloc(sizeof(int) * colsA); - - h_csrValL = (double *)malloc(sizeof(double) * nnzL); - h_csrRowPtrL = (int *)malloc(sizeof(int) * (rowsA + 1)); - h_csrColIndL = (int *)malloc(sizeof(int) * nnzL); - - h_csrValU = (double *)malloc(sizeof(double) * nnzU); - h_csrRowPtrU = (int *)malloc(sizeof(int) * (rowsA + 1)); - h_csrColIndU = (int *)malloc(sizeof(int) * nnzU); - - assert(NULL != h_Plu); - assert(NULL != h_Qlu); - - assert(NULL != h_csrValL); - assert(NULL != h_csrRowPtrL); - assert(NULL != h_csrColIndL); - - assert(NULL != h_csrValU); - assert(NULL != h_csrRowPtrU); - assert(NULL != h_csrColIndU); - - checkCudaErrors(cusolverSpDcsrluExtractHost(cusolverSpH, - h_Plu, - h_Qlu, - descrA, - h_csrValL, - h_csrRowPtrL, - h_csrColIndL, - descrA, - h_csrValU, - h_csrRowPtrU, - h_csrColIndU, - info, - buffer_cpu)); - - stop = second(); - time_sp_extract = stop - start; - - printf("nnzL = %d, nnzU = %d\n", nnzL, nnzU); - - /* B = Qreorder*A*Qreorder^T - * Plu*B*Qlu^T = L*U - * - * (Plu*Qreorder)*A*(Qlu*Qreorder)^T = L*U - * - * Let P = Plu*Qreroder, Q = Qlu*Qreorder, - * then we have - * P*A*Q^T = L*U - * which is the fundamental relation in cusolverRf. - */ - printf("step 6: form P*A*Q^T = L*U\n"); - - h_P = (int *)malloc(sizeof(int) * rowsA); - h_Q = (int *)malloc(sizeof(int) * colsA); - assert(NULL != h_P); - assert(NULL != h_Q); - - printf("step 6.1: P = Plu*Qreroder\n"); - // gather operation, P = Qreorder(Plu) - for (int j = 0; j < rowsA; j++) { - h_P[j] = h_Qreorder[h_Plu[j]]; - } - - printf("step 6.2: Q = Qlu*Qreorder \n"); - // gather operation, Q = Qreorder(Qlu) - for (int j = 0; j < colsA; j++) { - h_Q[j] = h_Qreorder[h_Qlu[j]]; - } - - printf("step 7: create cusolverRf handle\n"); - checkCudaErrors(cusolverRfCreate(&cusolverRfH)); - - printf("step 8: set parameters for cusolverRf \n"); - // numerical values for checking "zeros" and for boosting. - checkCudaErrors(cusolverRfSetNumericProperties(cusolverRfH, nzero, nboost)); - - // choose algorithm for refactorization and solve - checkCudaErrors(cusolverRfSetAlgs(cusolverRfH, fact_alg, solve_alg)); - - // matrix mode: L and U are CSR format, and L has implicit unit diagonal - checkCudaErrors( - cusolverRfSetMatrixFormat(cusolverRfH, CUSOLVERRF_MATRIX_FORMAT_CSR, CUSOLVERRF_UNIT_DIAGONAL_ASSUMED_L)); - - // fast mode for matrix assembling - checkCudaErrors(cusolverRfSetResetValuesFastMode(cusolverRfH, CUSOLVERRF_RESET_VALUES_FAST_MODE_ON)); - - printf("step 9: assemble P*A*Q = L*U \n"); - start = second(); - start = second(); - - checkCudaErrors(cusolverRfSetupHost(rowsA, - nnzA, - h_csrRowPtrA, - h_csrColIndA, - h_csrValA, - nnzL, - h_csrRowPtrL, - h_csrColIndL, - h_csrValL, - nnzU, - h_csrRowPtrU, - h_csrColIndU, - h_csrValU, - h_P, - h_Q, - cusolverRfH)); - - checkCudaErrors(cudaDeviceSynchronize()); - stop = second(); - time_rf_assemble = stop - start; - - printf("step 10: analyze to extract parallelism \n"); - checkCudaErrors(cusolverRfAnalyze(cusolverRfH)); - - printf("step 11: import A to cusolverRf \n"); - checkCudaErrors(cudaMemcpy(d_csrRowPtrA, h_csrRowPtrA, sizeof(int) * (rowsA + 1), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrColIndA, h_csrColIndA, sizeof(int) * nnzA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrValA, h_csrValA, sizeof(double) * nnzA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_P, h_P, sizeof(int) * rowsA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_Q, h_Q, sizeof(int) * colsA, cudaMemcpyHostToDevice)); - - start = second(); - start = second(); - - checkCudaErrors(cusolverRfResetValues(rowsA, nnzA, d_csrRowPtrA, d_csrColIndA, d_csrValA, d_P, d_Q, cusolverRfH)); - - checkCudaErrors(cudaDeviceSynchronize()); - stop = second(); - time_rf_reset = stop - start; - - printf("step 12: refactorization \n"); - start = second(); - start = second(); - - checkCudaErrors(cusolverRfRefactor(cusolverRfH)); - - checkCudaErrors(cudaDeviceSynchronize()); - stop = second(); - time_rf_refactor = stop - start; - - printf("step 13: solve A*x = b \n"); - checkCudaErrors(cudaMemcpy(d_x, h_b, sizeof(double) * rowsA, cudaMemcpyHostToDevice)); - - start = second(); - start = second(); - - checkCudaErrors(cusolverRfSolve(cusolverRfH, d_P, d_Q, 1, d_T, rowsA, d_x, rowsA)); - - checkCudaErrors(cudaDeviceSynchronize()); - stop = second(); - time_rf_solve = stop - start; - - printf("step 14: evaluate residual r = b - A*x (result on GPU)\n"); - checkCudaErrors(cudaMemcpy(d_r, h_b, sizeof(double) * rowsA, cudaMemcpyHostToDevice)); - - checkCudaErrors(cusparseSpMV(cusparseH, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - - checkCudaErrors(cudaMemcpy(h_x, d_x, sizeof(double) * colsA, cudaMemcpyDeviceToHost)); - checkCudaErrors(cudaMemcpy(h_r, d_r, sizeof(double) * rowsA, cudaMemcpyDeviceToHost)); - - x_inf = vec_norminf(colsA, h_x); - r_inf = vec_norminf(rowsA, h_r); - printf("(GPU) |b - A*x| = %E \n", r_inf); - printf("(GPU) |A| = %E \n", A_inf); - printf("(GPU) |x| = %E \n", x_inf); - printf("(GPU) |b - A*x|/(|A|*|x|) = %E \n", r_inf / (A_inf * x_inf)); - - printf("===== statistics \n"); - printf(" nnz(A) = %d, nnz(L+U) = %d, zero fill-in ratio = %f\n", - nnzA, - nnzL + nnzU, - ((double)(nnzL + nnzU)) / (double)nnzA); - printf("\n"); - printf("===== timing profile \n"); - printf(" reorder A : %f sec\n", time_reorder); - printf(" B = Q*A*Q^T : %f sec\n", time_perm); - printf("\n"); - printf(" cusolverSp LU analysis: %f sec\n", time_sp_analysis); - printf(" cusolverSp LU factor : %f sec\n", time_sp_factor); - printf(" cusolverSp LU solve : %f sec\n", time_sp_solve); - printf(" cusolverSp LU extract : %f sec\n", time_sp_extract); - printf("\n"); - printf(" cusolverRf assemble : %f sec\n", time_rf_assemble); - printf(" cusolverRf reset : %f sec\n", time_rf_reset); - printf(" cusolverRf refactor : %f sec\n", time_rf_refactor); - printf(" cusolverRf solve : %f sec\n", time_rf_solve); - - if (cusolverRfH) { - checkCudaErrors(cusolverRfDestroy(cusolverRfH)); - } - if (cusolverSpH) { - checkCudaErrors(cusolverSpDestroy(cusolverSpH)); - } - if (cusparseH) { - checkCudaErrors(cusparseDestroy(cusparseH)); - } - if (stream) { - checkCudaErrors(cudaStreamDestroy(stream)); - } - if (descrA) { - checkCudaErrors(cusparseDestroyMatDescr(descrA)); - } - if (info) { - checkCudaErrors(cusolverSpDestroyCsrluInfoHost(info)); - } - - if (matA) { - checkCudaErrors(cusparseDestroySpMat(matA)); - } - if (vecx) { - checkCudaErrors(cusparseDestroyDnVec(vecx)); - } - if (vecAx) { - checkCudaErrors(cusparseDestroyDnVec(vecAx)); - } - - if (h_csrValA) { - free(h_csrValA); - } - if (h_csrRowPtrA) { - free(h_csrRowPtrA); - } - if (h_csrColIndA) { - free(h_csrColIndA); - } - - if (h_Qreorder) { - free(h_Qreorder); - } - - if (h_csrRowPtrB) { - free(h_csrRowPtrB); - } - if (h_csrColIndB) { - free(h_csrColIndB); - } - if (h_csrValB) { - free(h_csrValB); - } - if (h_mapBfromA) { - free(h_mapBfromA); - } - - if (h_x) { - free(h_x); - } - if (h_b) { - free(h_b); - } - if (h_r) { - free(h_r); - } - if (h_xhat) { - free(h_xhat); - } - if (h_bhat) { - free(h_bhat); - } - - if (buffer_cpu) { - free(buffer_cpu); - } - - if (h_Plu) { - free(h_Plu); - } - if (h_Qlu) { - free(h_Qlu); - } - if (h_csrRowPtrL) { - free(h_csrRowPtrL); - } - if (h_csrColIndL) { - free(h_csrColIndL); - } - if (h_csrValL) { - free(h_csrValL); - } - if (h_csrRowPtrU) { - free(h_csrRowPtrU); - } - if (h_csrColIndU) { - free(h_csrColIndU); - } - if (h_csrValU) { - free(h_csrValU); - } - - if (h_P) { - free(h_P); - } - if (h_Q) { - free(h_Q); - } - - if (d_csrValA) { - checkCudaErrors(cudaFree(d_csrValA)); - } - if (d_csrRowPtrA) { - checkCudaErrors(cudaFree(d_csrRowPtrA)); - } - if (d_csrColIndA) { - checkCudaErrors(cudaFree(d_csrColIndA)); - } - if (d_x) { - checkCudaErrors(cudaFree(d_x)); - } - if (d_b) { - checkCudaErrors(cudaFree(d_b)); - } - if (d_r) { - checkCudaErrors(cudaFree(d_r)); - } - if (d_P) { - checkCudaErrors(cudaFree(d_P)); - } - if (d_Q) { - checkCudaErrors(cudaFree(d_Q)); - } - if (d_T) { - checkCudaErrors(cudaFree(d_T)); - } - - return 0; -} diff --git a/cpp/4_CUDA_Libraries/cuSolverRf/lap2D_5pt_n100.mtx b/cpp/4_CUDA_Libraries/cuSolverRf/lap2D_5pt_n100.mtx deleted file mode 100644 index dae3c1eb..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverRf/lap2D_5pt_n100.mtx +++ /dev/null @@ -1,29803 +0,0 @@ -%%MatrixMarket matrix coordinate real symmetric -% Generated 20-Nov-2014 -10000 10000 29800 -1 1 4 -2 1 -1 -101 1 -1 -2 2 4 -3 2 -1 -102 2 -1 -3 3 4 -4 3 -1 -103 3 -1 -4 4 4 -5 4 -1 -104 4 -1 -5 5 4 -6 5 -1 -105 5 -1 -6 6 4 -7 6 -1 -106 6 -1 -7 7 4 -8 7 -1 -107 7 -1 -8 8 4 -9 8 -1 -108 8 -1 -9 9 4 -10 9 -1 -109 9 -1 -10 10 4 -11 10 -1 -110 10 -1 -11 11 4 -12 11 -1 -111 11 -1 -12 12 4 -13 12 -1 -112 12 -1 -13 13 4 -14 13 -1 -113 13 -1 -14 14 4 -15 14 -1 -114 14 -1 -15 15 4 -16 15 -1 -115 15 -1 -16 16 4 -17 16 -1 -116 16 -1 -17 17 4 -18 17 -1 -117 17 -1 -18 18 4 -19 18 -1 -118 18 -1 -19 19 4 -20 19 -1 -119 19 -1 -20 20 4 -21 20 -1 -120 20 -1 -21 21 4 -22 21 -1 -121 21 -1 -22 22 4 -23 22 -1 -122 22 -1 -23 23 4 -24 23 -1 -123 23 -1 -24 24 4 -25 24 -1 -124 24 -1 -25 25 4 -26 25 -1 -125 25 -1 -26 26 4 -27 26 -1 -126 26 -1 -27 27 4 -28 27 -1 -127 27 -1 -28 28 4 -29 28 -1 -128 28 -1 -29 29 4 -30 29 -1 -129 29 -1 -30 30 4 -31 30 -1 -130 30 -1 -31 31 4 -32 31 -1 -131 31 -1 -32 32 4 -33 32 -1 -132 32 -1 -33 33 4 -34 33 -1 -133 33 -1 -34 34 4 -35 34 -1 -134 34 -1 -35 35 4 -36 35 -1 -135 35 -1 -36 36 4 -37 36 -1 -136 36 -1 -37 37 4 -38 37 -1 -137 37 -1 -38 38 4 -39 38 -1 -138 38 -1 -39 39 4 -40 39 -1 -139 39 -1 -40 40 4 -41 40 -1 -140 40 -1 -41 41 4 -42 41 -1 -141 41 -1 -42 42 4 -43 42 -1 -142 42 -1 -43 43 4 -44 43 -1 -143 43 -1 -44 44 4 -45 44 -1 -144 44 -1 -45 45 4 -46 45 -1 -145 45 -1 -46 46 4 -47 46 -1 -146 46 -1 -47 47 4 -48 47 -1 -147 47 -1 -48 48 4 -49 48 -1 -148 48 -1 -49 49 4 -50 49 -1 -149 49 -1 -50 50 4 -51 50 -1 -150 50 -1 -51 51 4 -52 51 -1 -151 51 -1 -52 52 4 -53 52 -1 -152 52 -1 -53 53 4 -54 53 -1 -153 53 -1 -54 54 4 -55 54 -1 -154 54 -1 -55 55 4 -56 55 -1 -155 55 -1 -56 56 4 -57 56 -1 -156 56 -1 -57 57 4 -58 57 -1 -157 57 -1 -58 58 4 -59 58 -1 -158 58 -1 -59 59 4 -60 59 -1 -159 59 -1 -60 60 4 -61 60 -1 -160 60 -1 -61 61 4 -62 61 -1 -161 61 -1 -62 62 4 -63 62 -1 -162 62 -1 -63 63 4 -64 63 -1 -163 63 -1 -64 64 4 -65 64 -1 -164 64 -1 -65 65 4 -66 65 -1 -165 65 -1 -66 66 4 -67 66 -1 -166 66 -1 -67 67 4 -68 67 -1 -167 67 -1 -68 68 4 -69 68 -1 -168 68 -1 -69 69 4 -70 69 -1 -169 69 -1 -70 70 4 -71 70 -1 -170 70 -1 -71 71 4 -72 71 -1 -171 71 -1 -72 72 4 -73 72 -1 -172 72 -1 -73 73 4 -74 73 -1 -173 73 -1 -74 74 4 -75 74 -1 -174 74 -1 -75 75 4 -76 75 -1 -175 75 -1 -76 76 4 -77 76 -1 -176 76 -1 -77 77 4 -78 77 -1 -177 77 -1 -78 78 4 -79 78 -1 -178 78 -1 -79 79 4 -80 79 -1 -179 79 -1 -80 80 4 -81 80 -1 -180 80 -1 -81 81 4 -82 81 -1 -181 81 -1 -82 82 4 -83 82 -1 -182 82 -1 -83 83 4 -84 83 -1 -183 83 -1 -84 84 4 -85 84 -1 -184 84 -1 -85 85 4 -86 85 -1 -185 85 -1 -86 86 4 -87 86 -1 -186 86 -1 -87 87 4 -88 87 -1 -187 87 -1 -88 88 4 -89 88 -1 -188 88 -1 -89 89 4 -90 89 -1 -189 89 -1 -90 90 4 -91 90 -1 -190 90 -1 -91 91 4 -92 91 -1 -191 91 -1 -92 92 4 -93 92 -1 -192 92 -1 -93 93 4 -94 93 -1 -193 93 -1 -94 94 4 -95 94 -1 -194 94 -1 -95 95 4 -96 95 -1 -195 95 -1 -96 96 4 -97 96 -1 -196 96 -1 -97 97 4 -98 97 -1 -197 97 -1 -98 98 4 -99 98 -1 -198 98 -1 -99 99 4 -100 99 -1 -199 99 -1 -100 100 4 -200 100 -1 -101 101 4 -102 101 -1 -201 101 -1 -102 102 4 -103 102 -1 -202 102 -1 -103 103 4 -104 103 -1 -203 103 -1 -104 104 4 -105 104 -1 -204 104 -1 -105 105 4 -106 105 -1 -205 105 -1 -106 106 4 -107 106 -1 -206 106 -1 -107 107 4 -108 107 -1 -207 107 -1 -108 108 4 -109 108 -1 -208 108 -1 -109 109 4 -110 109 -1 -209 109 -1 -110 110 4 -111 110 -1 -210 110 -1 -111 111 4 -112 111 -1 -211 111 -1 -112 112 4 -113 112 -1 -212 112 -1 -113 113 4 -114 113 -1 -213 113 -1 -114 114 4 -115 114 -1 -214 114 -1 -115 115 4 -116 115 -1 -215 115 -1 -116 116 4 -117 116 -1 -216 116 -1 -117 117 4 -118 117 -1 -217 117 -1 -118 118 4 -119 118 -1 -218 118 -1 -119 119 4 -120 119 -1 -219 119 -1 -120 120 4 -121 120 -1 -220 120 -1 -121 121 4 -122 121 -1 -221 121 -1 -122 122 4 -123 122 -1 -222 122 -1 -123 123 4 -124 123 -1 -223 123 -1 -124 124 4 -125 124 -1 -224 124 -1 -125 125 4 -126 125 -1 -225 125 -1 -126 126 4 -127 126 -1 -226 126 -1 -127 127 4 -128 127 -1 -227 127 -1 -128 128 4 -129 128 -1 -228 128 -1 -129 129 4 -130 129 -1 -229 129 -1 -130 130 4 -131 130 -1 -230 130 -1 -131 131 4 -132 131 -1 -231 131 -1 -132 132 4 -133 132 -1 -232 132 -1 -133 133 4 -134 133 -1 -233 133 -1 -134 134 4 -135 134 -1 -234 134 -1 -135 135 4 -136 135 -1 -235 135 -1 -136 136 4 -137 136 -1 -236 136 -1 -137 137 4 -138 137 -1 -237 137 -1 -138 138 4 -139 138 -1 -238 138 -1 -139 139 4 -140 139 -1 -239 139 -1 -140 140 4 -141 140 -1 -240 140 -1 -141 141 4 -142 141 -1 -241 141 -1 -142 142 4 -143 142 -1 -242 142 -1 -143 143 4 -144 143 -1 -243 143 -1 -144 144 4 -145 144 -1 -244 144 -1 -145 145 4 -146 145 -1 -245 145 -1 -146 146 4 -147 146 -1 -246 146 -1 -147 147 4 -148 147 -1 -247 147 -1 -148 148 4 -149 148 -1 -248 148 -1 -149 149 4 -150 149 -1 -249 149 -1 -150 150 4 -151 150 -1 -250 150 -1 -151 151 4 -152 151 -1 -251 151 -1 -152 152 4 -153 152 -1 -252 152 -1 -153 153 4 -154 153 -1 -253 153 -1 -154 154 4 -155 154 -1 -254 154 -1 -155 155 4 -156 155 -1 -255 155 -1 -156 156 4 -157 156 -1 -256 156 -1 -157 157 4 -158 157 -1 -257 157 -1 -158 158 4 -159 158 -1 -258 158 -1 -159 159 4 -160 159 -1 -259 159 -1 -160 160 4 -161 160 -1 -260 160 -1 -161 161 4 -162 161 -1 -261 161 -1 -162 162 4 -163 162 -1 -262 162 -1 -163 163 4 -164 163 -1 -263 163 -1 -164 164 4 -165 164 -1 -264 164 -1 -165 165 4 -166 165 -1 -265 165 -1 -166 166 4 -167 166 -1 -266 166 -1 -167 167 4 -168 167 -1 -267 167 -1 -168 168 4 -169 168 -1 -268 168 -1 -169 169 4 -170 169 -1 -269 169 -1 -170 170 4 -171 170 -1 -270 170 -1 -171 171 4 -172 171 -1 -271 171 -1 -172 172 4 -173 172 -1 -272 172 -1 -173 173 4 -174 173 -1 -273 173 -1 -174 174 4 -175 174 -1 -274 174 -1 -175 175 4 -176 175 -1 -275 175 -1 -176 176 4 -177 176 -1 -276 176 -1 -177 177 4 -178 177 -1 -277 177 -1 -178 178 4 -179 178 -1 -278 178 -1 -179 179 4 -180 179 -1 -279 179 -1 -180 180 4 -181 180 -1 -280 180 -1 -181 181 4 -182 181 -1 -281 181 -1 -182 182 4 -183 182 -1 -282 182 -1 -183 183 4 -184 183 -1 -283 183 -1 -184 184 4 -185 184 -1 -284 184 -1 -185 185 4 -186 185 -1 -285 185 -1 -186 186 4 -187 186 -1 -286 186 -1 -187 187 4 -188 187 -1 -287 187 -1 -188 188 4 -189 188 -1 -288 188 -1 -189 189 4 -190 189 -1 -289 189 -1 -190 190 4 -191 190 -1 -290 190 -1 -191 191 4 -192 191 -1 -291 191 -1 -192 192 4 -193 192 -1 -292 192 -1 -193 193 4 -194 193 -1 -293 193 -1 -194 194 4 -195 194 -1 -294 194 -1 -195 195 4 -196 195 -1 -295 195 -1 -196 196 4 -197 196 -1 -296 196 -1 -197 197 4 -198 197 -1 -297 197 -1 -198 198 4 -199 198 -1 -298 198 -1 -199 199 4 -200 199 -1 -299 199 -1 -200 200 4 -300 200 -1 -201 201 4 -202 201 -1 -301 201 -1 -202 202 4 -203 202 -1 -302 202 -1 -203 203 4 -204 203 -1 -303 203 -1 -204 204 4 -205 204 -1 -304 204 -1 -205 205 4 -206 205 -1 -305 205 -1 -206 206 4 -207 206 -1 -306 206 -1 -207 207 4 -208 207 -1 -307 207 -1 -208 208 4 -209 208 -1 -308 208 -1 -209 209 4 -210 209 -1 -309 209 -1 -210 210 4 -211 210 -1 -310 210 -1 -211 211 4 -212 211 -1 -311 211 -1 -212 212 4 -213 212 -1 -312 212 -1 -213 213 4 -214 213 -1 -313 213 -1 -214 214 4 -215 214 -1 -314 214 -1 -215 215 4 -216 215 -1 -315 215 -1 -216 216 4 -217 216 -1 -316 216 -1 -217 217 4 -218 217 -1 -317 217 -1 -218 218 4 -219 218 -1 -318 218 -1 -219 219 4 -220 219 -1 -319 219 -1 -220 220 4 -221 220 -1 -320 220 -1 -221 221 4 -222 221 -1 -321 221 -1 -222 222 4 -223 222 -1 -322 222 -1 -223 223 4 -224 223 -1 -323 223 -1 -224 224 4 -225 224 -1 -324 224 -1 -225 225 4 -226 225 -1 -325 225 -1 -226 226 4 -227 226 -1 -326 226 -1 -227 227 4 -228 227 -1 -327 227 -1 -228 228 4 -229 228 -1 -328 228 -1 -229 229 4 -230 229 -1 -329 229 -1 -230 230 4 -231 230 -1 -330 230 -1 -231 231 4 -232 231 -1 -331 231 -1 -232 232 4 -233 232 -1 -332 232 -1 -233 233 4 -234 233 -1 -333 233 -1 -234 234 4 -235 234 -1 -334 234 -1 -235 235 4 -236 235 -1 -335 235 -1 -236 236 4 -237 236 -1 -336 236 -1 -237 237 4 -238 237 -1 -337 237 -1 -238 238 4 -239 238 -1 -338 238 -1 -239 239 4 -240 239 -1 -339 239 -1 -240 240 4 -241 240 -1 -340 240 -1 -241 241 4 -242 241 -1 -341 241 -1 -242 242 4 -243 242 -1 -342 242 -1 -243 243 4 -244 243 -1 -343 243 -1 -244 244 4 -245 244 -1 -344 244 -1 -245 245 4 -246 245 -1 -345 245 -1 -246 246 4 -247 246 -1 -346 246 -1 -247 247 4 -248 247 -1 -347 247 -1 -248 248 4 -249 248 -1 -348 248 -1 -249 249 4 -250 249 -1 -349 249 -1 -250 250 4 -251 250 -1 -350 250 -1 -251 251 4 -252 251 -1 -351 251 -1 -252 252 4 -253 252 -1 -352 252 -1 -253 253 4 -254 253 -1 -353 253 -1 -254 254 4 -255 254 -1 -354 254 -1 -255 255 4 -256 255 -1 -355 255 -1 -256 256 4 -257 256 -1 -356 256 -1 -257 257 4 -258 257 -1 -357 257 -1 -258 258 4 -259 258 -1 -358 258 -1 -259 259 4 -260 259 -1 -359 259 -1 -260 260 4 -261 260 -1 -360 260 -1 -261 261 4 -262 261 -1 -361 261 -1 -262 262 4 -263 262 -1 -362 262 -1 -263 263 4 -264 263 -1 -363 263 -1 -264 264 4 -265 264 -1 -364 264 -1 -265 265 4 -266 265 -1 -365 265 -1 -266 266 4 -267 266 -1 -366 266 -1 -267 267 4 -268 267 -1 -367 267 -1 -268 268 4 -269 268 -1 -368 268 -1 -269 269 4 -270 269 -1 -369 269 -1 -270 270 4 -271 270 -1 -370 270 -1 -271 271 4 -272 271 -1 -371 271 -1 -272 272 4 -273 272 -1 -372 272 -1 -273 273 4 -274 273 -1 -373 273 -1 -274 274 4 -275 274 -1 -374 274 -1 -275 275 4 -276 275 -1 -375 275 -1 -276 276 4 -277 276 -1 -376 276 -1 -277 277 4 -278 277 -1 -377 277 -1 -278 278 4 -279 278 -1 -378 278 -1 -279 279 4 -280 279 -1 -379 279 -1 -280 280 4 -281 280 -1 -380 280 -1 -281 281 4 -282 281 -1 -381 281 -1 -282 282 4 -283 282 -1 -382 282 -1 -283 283 4 -284 283 -1 -383 283 -1 -284 284 4 -285 284 -1 -384 284 -1 -285 285 4 -286 285 -1 -385 285 -1 -286 286 4 -287 286 -1 -386 286 -1 -287 287 4 -288 287 -1 -387 287 -1 -288 288 4 -289 288 -1 -388 288 -1 -289 289 4 -290 289 -1 -389 289 -1 -290 290 4 -291 290 -1 -390 290 -1 -291 291 4 -292 291 -1 -391 291 -1 -292 292 4 -293 292 -1 -392 292 -1 -293 293 4 -294 293 -1 -393 293 -1 -294 294 4 -295 294 -1 -394 294 -1 -295 295 4 -296 295 -1 -395 295 -1 -296 296 4 -297 296 -1 -396 296 -1 -297 297 4 -298 297 -1 -397 297 -1 -298 298 4 -299 298 -1 -398 298 -1 -299 299 4 -300 299 -1 -399 299 -1 -300 300 4 -400 300 -1 -301 301 4 -302 301 -1 -401 301 -1 -302 302 4 -303 302 -1 -402 302 -1 -303 303 4 -304 303 -1 -403 303 -1 -304 304 4 -305 304 -1 -404 304 -1 -305 305 4 -306 305 -1 -405 305 -1 -306 306 4 -307 306 -1 -406 306 -1 -307 307 4 -308 307 -1 -407 307 -1 -308 308 4 -309 308 -1 -408 308 -1 -309 309 4 -310 309 -1 -409 309 -1 -310 310 4 -311 310 -1 -410 310 -1 -311 311 4 -312 311 -1 -411 311 -1 -312 312 4 -313 312 -1 -412 312 -1 -313 313 4 -314 313 -1 -413 313 -1 -314 314 4 -315 314 -1 -414 314 -1 -315 315 4 -316 315 -1 -415 315 -1 -316 316 4 -317 316 -1 -416 316 -1 -317 317 4 -318 317 -1 -417 317 -1 -318 318 4 -319 318 -1 -418 318 -1 -319 319 4 -320 319 -1 -419 319 -1 -320 320 4 -321 320 -1 -420 320 -1 -321 321 4 -322 321 -1 -421 321 -1 -322 322 4 -323 322 -1 -422 322 -1 -323 323 4 -324 323 -1 -423 323 -1 -324 324 4 -325 324 -1 -424 324 -1 -325 325 4 -326 325 -1 -425 325 -1 -326 326 4 -327 326 -1 -426 326 -1 -327 327 4 -328 327 -1 -427 327 -1 -328 328 4 -329 328 -1 -428 328 -1 -329 329 4 -330 329 -1 -429 329 -1 -330 330 4 -331 330 -1 -430 330 -1 -331 331 4 -332 331 -1 -431 331 -1 -332 332 4 -333 332 -1 -432 332 -1 -333 333 4 -334 333 -1 -433 333 -1 -334 334 4 -335 334 -1 -434 334 -1 -335 335 4 -336 335 -1 -435 335 -1 -336 336 4 -337 336 -1 -436 336 -1 -337 337 4 -338 337 -1 -437 337 -1 -338 338 4 -339 338 -1 -438 338 -1 -339 339 4 -340 339 -1 -439 339 -1 -340 340 4 -341 340 -1 -440 340 -1 -341 341 4 -342 341 -1 -441 341 -1 -342 342 4 -343 342 -1 -442 342 -1 -343 343 4 -344 343 -1 -443 343 -1 -344 344 4 -345 344 -1 -444 344 -1 -345 345 4 -346 345 -1 -445 345 -1 -346 346 4 -347 346 -1 -446 346 -1 -347 347 4 -348 347 -1 -447 347 -1 -348 348 4 -349 348 -1 -448 348 -1 -349 349 4 -350 349 -1 -449 349 -1 -350 350 4 -351 350 -1 -450 350 -1 -351 351 4 -352 351 -1 -451 351 -1 -352 352 4 -353 352 -1 -452 352 -1 -353 353 4 -354 353 -1 -453 353 -1 -354 354 4 -355 354 -1 -454 354 -1 -355 355 4 -356 355 -1 -455 355 -1 -356 356 4 -357 356 -1 -456 356 -1 -357 357 4 -358 357 -1 -457 357 -1 -358 358 4 -359 358 -1 -458 358 -1 -359 359 4 -360 359 -1 -459 359 -1 -360 360 4 -361 360 -1 -460 360 -1 -361 361 4 -362 361 -1 -461 361 -1 -362 362 4 -363 362 -1 -462 362 -1 -363 363 4 -364 363 -1 -463 363 -1 -364 364 4 -365 364 -1 -464 364 -1 -365 365 4 -366 365 -1 -465 365 -1 -366 366 4 -367 366 -1 -466 366 -1 -367 367 4 -368 367 -1 -467 367 -1 -368 368 4 -369 368 -1 -468 368 -1 -369 369 4 -370 369 -1 -469 369 -1 -370 370 4 -371 370 -1 -470 370 -1 -371 371 4 -372 371 -1 -471 371 -1 -372 372 4 -373 372 -1 -472 372 -1 -373 373 4 -374 373 -1 -473 373 -1 -374 374 4 -375 374 -1 -474 374 -1 -375 375 4 -376 375 -1 -475 375 -1 -376 376 4 -377 376 -1 -476 376 -1 -377 377 4 -378 377 -1 -477 377 -1 -378 378 4 -379 378 -1 -478 378 -1 -379 379 4 -380 379 -1 -479 379 -1 -380 380 4 -381 380 -1 -480 380 -1 -381 381 4 -382 381 -1 -481 381 -1 -382 382 4 -383 382 -1 -482 382 -1 -383 383 4 -384 383 -1 -483 383 -1 -384 384 4 -385 384 -1 -484 384 -1 -385 385 4 -386 385 -1 -485 385 -1 -386 386 4 -387 386 -1 -486 386 -1 -387 387 4 -388 387 -1 -487 387 -1 -388 388 4 -389 388 -1 -488 388 -1 -389 389 4 -390 389 -1 -489 389 -1 -390 390 4 -391 390 -1 -490 390 -1 -391 391 4 -392 391 -1 -491 391 -1 -392 392 4 -393 392 -1 -492 392 -1 -393 393 4 -394 393 -1 -493 393 -1 -394 394 4 -395 394 -1 -494 394 -1 -395 395 4 -396 395 -1 -495 395 -1 -396 396 4 -397 396 -1 -496 396 -1 -397 397 4 -398 397 -1 -497 397 -1 -398 398 4 -399 398 -1 -498 398 -1 -399 399 4 -400 399 -1 -499 399 -1 -400 400 4 -500 400 -1 -401 401 4 -402 401 -1 -501 401 -1 -402 402 4 -403 402 -1 -502 402 -1 -403 403 4 -404 403 -1 -503 403 -1 -404 404 4 -405 404 -1 -504 404 -1 -405 405 4 -406 405 -1 -505 405 -1 -406 406 4 -407 406 -1 -506 406 -1 -407 407 4 -408 407 -1 -507 407 -1 -408 408 4 -409 408 -1 -508 408 -1 -409 409 4 -410 409 -1 -509 409 -1 -410 410 4 -411 410 -1 -510 410 -1 -411 411 4 -412 411 -1 -511 411 -1 -412 412 4 -413 412 -1 -512 412 -1 -413 413 4 -414 413 -1 -513 413 -1 -414 414 4 -415 414 -1 -514 414 -1 -415 415 4 -416 415 -1 -515 415 -1 -416 416 4 -417 416 -1 -516 416 -1 -417 417 4 -418 417 -1 -517 417 -1 -418 418 4 -419 418 -1 -518 418 -1 -419 419 4 -420 419 -1 -519 419 -1 -420 420 4 -421 420 -1 -520 420 -1 -421 421 4 -422 421 -1 -521 421 -1 -422 422 4 -423 422 -1 -522 422 -1 -423 423 4 -424 423 -1 -523 423 -1 -424 424 4 -425 424 -1 -524 424 -1 -425 425 4 -426 425 -1 -525 425 -1 -426 426 4 -427 426 -1 -526 426 -1 -427 427 4 -428 427 -1 -527 427 -1 -428 428 4 -429 428 -1 -528 428 -1 -429 429 4 -430 429 -1 -529 429 -1 -430 430 4 -431 430 -1 -530 430 -1 -431 431 4 -432 431 -1 -531 431 -1 -432 432 4 -433 432 -1 -532 432 -1 -433 433 4 -434 433 -1 -533 433 -1 -434 434 4 -435 434 -1 -534 434 -1 -435 435 4 -436 435 -1 -535 435 -1 -436 436 4 -437 436 -1 -536 436 -1 -437 437 4 -438 437 -1 -537 437 -1 -438 438 4 -439 438 -1 -538 438 -1 -439 439 4 -440 439 -1 -539 439 -1 -440 440 4 -441 440 -1 -540 440 -1 -441 441 4 -442 441 -1 -541 441 -1 -442 442 4 -443 442 -1 -542 442 -1 -443 443 4 -444 443 -1 -543 443 -1 -444 444 4 -445 444 -1 -544 444 -1 -445 445 4 -446 445 -1 -545 445 -1 -446 446 4 -447 446 -1 -546 446 -1 -447 447 4 -448 447 -1 -547 447 -1 -448 448 4 -449 448 -1 -548 448 -1 -449 449 4 -450 449 -1 -549 449 -1 -450 450 4 -451 450 -1 -550 450 -1 -451 451 4 -452 451 -1 -551 451 -1 -452 452 4 -453 452 -1 -552 452 -1 -453 453 4 -454 453 -1 -553 453 -1 -454 454 4 -455 454 -1 -554 454 -1 -455 455 4 -456 455 -1 -555 455 -1 -456 456 4 -457 456 -1 -556 456 -1 -457 457 4 -458 457 -1 -557 457 -1 -458 458 4 -459 458 -1 -558 458 -1 -459 459 4 -460 459 -1 -559 459 -1 -460 460 4 -461 460 -1 -560 460 -1 -461 461 4 -462 461 -1 -561 461 -1 -462 462 4 -463 462 -1 -562 462 -1 -463 463 4 -464 463 -1 -563 463 -1 -464 464 4 -465 464 -1 -564 464 -1 -465 465 4 -466 465 -1 -565 465 -1 -466 466 4 -467 466 -1 -566 466 -1 -467 467 4 -468 467 -1 -567 467 -1 -468 468 4 -469 468 -1 -568 468 -1 -469 469 4 -470 469 -1 -569 469 -1 -470 470 4 -471 470 -1 -570 470 -1 -471 471 4 -472 471 -1 -571 471 -1 -472 472 4 -473 472 -1 -572 472 -1 -473 473 4 -474 473 -1 -573 473 -1 -474 474 4 -475 474 -1 -574 474 -1 -475 475 4 -476 475 -1 -575 475 -1 -476 476 4 -477 476 -1 -576 476 -1 -477 477 4 -478 477 -1 -577 477 -1 -478 478 4 -479 478 -1 -578 478 -1 -479 479 4 -480 479 -1 -579 479 -1 -480 480 4 -481 480 -1 -580 480 -1 -481 481 4 -482 481 -1 -581 481 -1 -482 482 4 -483 482 -1 -582 482 -1 -483 483 4 -484 483 -1 -583 483 -1 -484 484 4 -485 484 -1 -584 484 -1 -485 485 4 -486 485 -1 -585 485 -1 -486 486 4 -487 486 -1 -586 486 -1 -487 487 4 -488 487 -1 -587 487 -1 -488 488 4 -489 488 -1 -588 488 -1 -489 489 4 -490 489 -1 -589 489 -1 -490 490 4 -491 490 -1 -590 490 -1 -491 491 4 -492 491 -1 -591 491 -1 -492 492 4 -493 492 -1 -592 492 -1 -493 493 4 -494 493 -1 -593 493 -1 -494 494 4 -495 494 -1 -594 494 -1 -495 495 4 -496 495 -1 -595 495 -1 -496 496 4 -497 496 -1 -596 496 -1 -497 497 4 -498 497 -1 -597 497 -1 -498 498 4 -499 498 -1 -598 498 -1 -499 499 4 -500 499 -1 -599 499 -1 -500 500 4 -600 500 -1 -501 501 4 -502 501 -1 -601 501 -1 -502 502 4 -503 502 -1 -602 502 -1 -503 503 4 -504 503 -1 -603 503 -1 -504 504 4 -505 504 -1 -604 504 -1 -505 505 4 -506 505 -1 -605 505 -1 -506 506 4 -507 506 -1 -606 506 -1 -507 507 4 -508 507 -1 -607 507 -1 -508 508 4 -509 508 -1 -608 508 -1 -509 509 4 -510 509 -1 -609 509 -1 -510 510 4 -511 510 -1 -610 510 -1 -511 511 4 -512 511 -1 -611 511 -1 -512 512 4 -513 512 -1 -612 512 -1 -513 513 4 -514 513 -1 -613 513 -1 -514 514 4 -515 514 -1 -614 514 -1 -515 515 4 -516 515 -1 -615 515 -1 -516 516 4 -517 516 -1 -616 516 -1 -517 517 4 -518 517 -1 -617 517 -1 -518 518 4 -519 518 -1 -618 518 -1 -519 519 4 -520 519 -1 -619 519 -1 -520 520 4 -521 520 -1 -620 520 -1 -521 521 4 -522 521 -1 -621 521 -1 -522 522 4 -523 522 -1 -622 522 -1 -523 523 4 -524 523 -1 -623 523 -1 -524 524 4 -525 524 -1 -624 524 -1 -525 525 4 -526 525 -1 -625 525 -1 -526 526 4 -527 526 -1 -626 526 -1 -527 527 4 -528 527 -1 -627 527 -1 -528 528 4 -529 528 -1 -628 528 -1 -529 529 4 -530 529 -1 -629 529 -1 -530 530 4 -531 530 -1 -630 530 -1 -531 531 4 -532 531 -1 -631 531 -1 -532 532 4 -533 532 -1 -632 532 -1 -533 533 4 -534 533 -1 -633 533 -1 -534 534 4 -535 534 -1 -634 534 -1 -535 535 4 -536 535 -1 -635 535 -1 -536 536 4 -537 536 -1 -636 536 -1 -537 537 4 -538 537 -1 -637 537 -1 -538 538 4 -539 538 -1 -638 538 -1 -539 539 4 -540 539 -1 -639 539 -1 -540 540 4 -541 540 -1 -640 540 -1 -541 541 4 -542 541 -1 -641 541 -1 -542 542 4 -543 542 -1 -642 542 -1 -543 543 4 -544 543 -1 -643 543 -1 -544 544 4 -545 544 -1 -644 544 -1 -545 545 4 -546 545 -1 -645 545 -1 -546 546 4 -547 546 -1 -646 546 -1 -547 547 4 -548 547 -1 -647 547 -1 -548 548 4 -549 548 -1 -648 548 -1 -549 549 4 -550 549 -1 -649 549 -1 -550 550 4 -551 550 -1 -650 550 -1 -551 551 4 -552 551 -1 -651 551 -1 -552 552 4 -553 552 -1 -652 552 -1 -553 553 4 -554 553 -1 -653 553 -1 -554 554 4 -555 554 -1 -654 554 -1 -555 555 4 -556 555 -1 -655 555 -1 -556 556 4 -557 556 -1 -656 556 -1 -557 557 4 -558 557 -1 -657 557 -1 -558 558 4 -559 558 -1 -658 558 -1 -559 559 4 -560 559 -1 -659 559 -1 -560 560 4 -561 560 -1 -660 560 -1 -561 561 4 -562 561 -1 -661 561 -1 -562 562 4 -563 562 -1 -662 562 -1 -563 563 4 -564 563 -1 -663 563 -1 -564 564 4 -565 564 -1 -664 564 -1 -565 565 4 -566 565 -1 -665 565 -1 -566 566 4 -567 566 -1 -666 566 -1 -567 567 4 -568 567 -1 -667 567 -1 -568 568 4 -569 568 -1 -668 568 -1 -569 569 4 -570 569 -1 -669 569 -1 -570 570 4 -571 570 -1 -670 570 -1 -571 571 4 -572 571 -1 -671 571 -1 -572 572 4 -573 572 -1 -672 572 -1 -573 573 4 -574 573 -1 -673 573 -1 -574 574 4 -575 574 -1 -674 574 -1 -575 575 4 -576 575 -1 -675 575 -1 -576 576 4 -577 576 -1 -676 576 -1 -577 577 4 -578 577 -1 -677 577 -1 -578 578 4 -579 578 -1 -678 578 -1 -579 579 4 -580 579 -1 -679 579 -1 -580 580 4 -581 580 -1 -680 580 -1 -581 581 4 -582 581 -1 -681 581 -1 -582 582 4 -583 582 -1 -682 582 -1 -583 583 4 -584 583 -1 -683 583 -1 -584 584 4 -585 584 -1 -684 584 -1 -585 585 4 -586 585 -1 -685 585 -1 -586 586 4 -587 586 -1 -686 586 -1 -587 587 4 -588 587 -1 -687 587 -1 -588 588 4 -589 588 -1 -688 588 -1 -589 589 4 -590 589 -1 -689 589 -1 -590 590 4 -591 590 -1 -690 590 -1 -591 591 4 -592 591 -1 -691 591 -1 -592 592 4 -593 592 -1 -692 592 -1 -593 593 4 -594 593 -1 -693 593 -1 -594 594 4 -595 594 -1 -694 594 -1 -595 595 4 -596 595 -1 -695 595 -1 -596 596 4 -597 596 -1 -696 596 -1 -597 597 4 -598 597 -1 -697 597 -1 -598 598 4 -599 598 -1 -698 598 -1 -599 599 4 -600 599 -1 -699 599 -1 -600 600 4 -700 600 -1 -601 601 4 -602 601 -1 -701 601 -1 -602 602 4 -603 602 -1 -702 602 -1 -603 603 4 -604 603 -1 -703 603 -1 -604 604 4 -605 604 -1 -704 604 -1 -605 605 4 -606 605 -1 -705 605 -1 -606 606 4 -607 606 -1 -706 606 -1 -607 607 4 -608 607 -1 -707 607 -1 -608 608 4 -609 608 -1 -708 608 -1 -609 609 4 -610 609 -1 -709 609 -1 -610 610 4 -611 610 -1 -710 610 -1 -611 611 4 -612 611 -1 -711 611 -1 -612 612 4 -613 612 -1 -712 612 -1 -613 613 4 -614 613 -1 -713 613 -1 -614 614 4 -615 614 -1 -714 614 -1 -615 615 4 -616 615 -1 -715 615 -1 -616 616 4 -617 616 -1 -716 616 -1 -617 617 4 -618 617 -1 -717 617 -1 -618 618 4 -619 618 -1 -718 618 -1 -619 619 4 -620 619 -1 -719 619 -1 -620 620 4 -621 620 -1 -720 620 -1 -621 621 4 -622 621 -1 -721 621 -1 -622 622 4 -623 622 -1 -722 622 -1 -623 623 4 -624 623 -1 -723 623 -1 -624 624 4 -625 624 -1 -724 624 -1 -625 625 4 -626 625 -1 -725 625 -1 -626 626 4 -627 626 -1 -726 626 -1 -627 627 4 -628 627 -1 -727 627 -1 -628 628 4 -629 628 -1 -728 628 -1 -629 629 4 -630 629 -1 -729 629 -1 -630 630 4 -631 630 -1 -730 630 -1 -631 631 4 -632 631 -1 -731 631 -1 -632 632 4 -633 632 -1 -732 632 -1 -633 633 4 -634 633 -1 -733 633 -1 -634 634 4 -635 634 -1 -734 634 -1 -635 635 4 -636 635 -1 -735 635 -1 -636 636 4 -637 636 -1 -736 636 -1 -637 637 4 -638 637 -1 -737 637 -1 -638 638 4 -639 638 -1 -738 638 -1 -639 639 4 -640 639 -1 -739 639 -1 -640 640 4 -641 640 -1 -740 640 -1 -641 641 4 -642 641 -1 -741 641 -1 -642 642 4 -643 642 -1 -742 642 -1 -643 643 4 -644 643 -1 -743 643 -1 -644 644 4 -645 644 -1 -744 644 -1 -645 645 4 -646 645 -1 -745 645 -1 -646 646 4 -647 646 -1 -746 646 -1 -647 647 4 -648 647 -1 -747 647 -1 -648 648 4 -649 648 -1 -748 648 -1 -649 649 4 -650 649 -1 -749 649 -1 -650 650 4 -651 650 -1 -750 650 -1 -651 651 4 -652 651 -1 -751 651 -1 -652 652 4 -653 652 -1 -752 652 -1 -653 653 4 -654 653 -1 -753 653 -1 -654 654 4 -655 654 -1 -754 654 -1 -655 655 4 -656 655 -1 -755 655 -1 -656 656 4 -657 656 -1 -756 656 -1 -657 657 4 -658 657 -1 -757 657 -1 -658 658 4 -659 658 -1 -758 658 -1 -659 659 4 -660 659 -1 -759 659 -1 -660 660 4 -661 660 -1 -760 660 -1 -661 661 4 -662 661 -1 -761 661 -1 -662 662 4 -663 662 -1 -762 662 -1 -663 663 4 -664 663 -1 -763 663 -1 -664 664 4 -665 664 -1 -764 664 -1 -665 665 4 -666 665 -1 -765 665 -1 -666 666 4 -667 666 -1 -766 666 -1 -667 667 4 -668 667 -1 -767 667 -1 -668 668 4 -669 668 -1 -768 668 -1 -669 669 4 -670 669 -1 -769 669 -1 -670 670 4 -671 670 -1 -770 670 -1 -671 671 4 -672 671 -1 -771 671 -1 -672 672 4 -673 672 -1 -772 672 -1 -673 673 4 -674 673 -1 -773 673 -1 -674 674 4 -675 674 -1 -774 674 -1 -675 675 4 -676 675 -1 -775 675 -1 -676 676 4 -677 676 -1 -776 676 -1 -677 677 4 -678 677 -1 -777 677 -1 -678 678 4 -679 678 -1 -778 678 -1 -679 679 4 -680 679 -1 -779 679 -1 -680 680 4 -681 680 -1 -780 680 -1 -681 681 4 -682 681 -1 -781 681 -1 -682 682 4 -683 682 -1 -782 682 -1 -683 683 4 -684 683 -1 -783 683 -1 -684 684 4 -685 684 -1 -784 684 -1 -685 685 4 -686 685 -1 -785 685 -1 -686 686 4 -687 686 -1 -786 686 -1 -687 687 4 -688 687 -1 -787 687 -1 -688 688 4 -689 688 -1 -788 688 -1 -689 689 4 -690 689 -1 -789 689 -1 -690 690 4 -691 690 -1 -790 690 -1 -691 691 4 -692 691 -1 -791 691 -1 -692 692 4 -693 692 -1 -792 692 -1 -693 693 4 -694 693 -1 -793 693 -1 -694 694 4 -695 694 -1 -794 694 -1 -695 695 4 -696 695 -1 -795 695 -1 -696 696 4 -697 696 -1 -796 696 -1 -697 697 4 -698 697 -1 -797 697 -1 -698 698 4 -699 698 -1 -798 698 -1 -699 699 4 -700 699 -1 -799 699 -1 -700 700 4 -800 700 -1 -701 701 4 -702 701 -1 -801 701 -1 -702 702 4 -703 702 -1 -802 702 -1 -703 703 4 -704 703 -1 -803 703 -1 -704 704 4 -705 704 -1 -804 704 -1 -705 705 4 -706 705 -1 -805 705 -1 -706 706 4 -707 706 -1 -806 706 -1 -707 707 4 -708 707 -1 -807 707 -1 -708 708 4 -709 708 -1 -808 708 -1 -709 709 4 -710 709 -1 -809 709 -1 -710 710 4 -711 710 -1 -810 710 -1 -711 711 4 -712 711 -1 -811 711 -1 -712 712 4 -713 712 -1 -812 712 -1 -713 713 4 -714 713 -1 -813 713 -1 -714 714 4 -715 714 -1 -814 714 -1 -715 715 4 -716 715 -1 -815 715 -1 -716 716 4 -717 716 -1 -816 716 -1 -717 717 4 -718 717 -1 -817 717 -1 -718 718 4 -719 718 -1 -818 718 -1 -719 719 4 -720 719 -1 -819 719 -1 -720 720 4 -721 720 -1 -820 720 -1 -721 721 4 -722 721 -1 -821 721 -1 -722 722 4 -723 722 -1 -822 722 -1 -723 723 4 -724 723 -1 -823 723 -1 -724 724 4 -725 724 -1 -824 724 -1 -725 725 4 -726 725 -1 -825 725 -1 -726 726 4 -727 726 -1 -826 726 -1 -727 727 4 -728 727 -1 -827 727 -1 -728 728 4 -729 728 -1 -828 728 -1 -729 729 4 -730 729 -1 -829 729 -1 -730 730 4 -731 730 -1 -830 730 -1 -731 731 4 -732 731 -1 -831 731 -1 -732 732 4 -733 732 -1 -832 732 -1 -733 733 4 -734 733 -1 -833 733 -1 -734 734 4 -735 734 -1 -834 734 -1 -735 735 4 -736 735 -1 -835 735 -1 -736 736 4 -737 736 -1 -836 736 -1 -737 737 4 -738 737 -1 -837 737 -1 -738 738 4 -739 738 -1 -838 738 -1 -739 739 4 -740 739 -1 -839 739 -1 -740 740 4 -741 740 -1 -840 740 -1 -741 741 4 -742 741 -1 -841 741 -1 -742 742 4 -743 742 -1 -842 742 -1 -743 743 4 -744 743 -1 -843 743 -1 -744 744 4 -745 744 -1 -844 744 -1 -745 745 4 -746 745 -1 -845 745 -1 -746 746 4 -747 746 -1 -846 746 -1 -747 747 4 -748 747 -1 -847 747 -1 -748 748 4 -749 748 -1 -848 748 -1 -749 749 4 -750 749 -1 -849 749 -1 -750 750 4 -751 750 -1 -850 750 -1 -751 751 4 -752 751 -1 -851 751 -1 -752 752 4 -753 752 -1 -852 752 -1 -753 753 4 -754 753 -1 -853 753 -1 -754 754 4 -755 754 -1 -854 754 -1 -755 755 4 -756 755 -1 -855 755 -1 -756 756 4 -757 756 -1 -856 756 -1 -757 757 4 -758 757 -1 -857 757 -1 -758 758 4 -759 758 -1 -858 758 -1 -759 759 4 -760 759 -1 -859 759 -1 -760 760 4 -761 760 -1 -860 760 -1 -761 761 4 -762 761 -1 -861 761 -1 -762 762 4 -763 762 -1 -862 762 -1 -763 763 4 -764 763 -1 -863 763 -1 -764 764 4 -765 764 -1 -864 764 -1 -765 765 4 -766 765 -1 -865 765 -1 -766 766 4 -767 766 -1 -866 766 -1 -767 767 4 -768 767 -1 -867 767 -1 -768 768 4 -769 768 -1 -868 768 -1 -769 769 4 -770 769 -1 -869 769 -1 -770 770 4 -771 770 -1 -870 770 -1 -771 771 4 -772 771 -1 -871 771 -1 -772 772 4 -773 772 -1 -872 772 -1 -773 773 4 -774 773 -1 -873 773 -1 -774 774 4 -775 774 -1 -874 774 -1 -775 775 4 -776 775 -1 -875 775 -1 -776 776 4 -777 776 -1 -876 776 -1 -777 777 4 -778 777 -1 -877 777 -1 -778 778 4 -779 778 -1 -878 778 -1 -779 779 4 -780 779 -1 -879 779 -1 -780 780 4 -781 780 -1 -880 780 -1 -781 781 4 -782 781 -1 -881 781 -1 -782 782 4 -783 782 -1 -882 782 -1 -783 783 4 -784 783 -1 -883 783 -1 -784 784 4 -785 784 -1 -884 784 -1 -785 785 4 -786 785 -1 -885 785 -1 -786 786 4 -787 786 -1 -886 786 -1 -787 787 4 -788 787 -1 -887 787 -1 -788 788 4 -789 788 -1 -888 788 -1 -789 789 4 -790 789 -1 -889 789 -1 -790 790 4 -791 790 -1 -890 790 -1 -791 791 4 -792 791 -1 -891 791 -1 -792 792 4 -793 792 -1 -892 792 -1 -793 793 4 -794 793 -1 -893 793 -1 -794 794 4 -795 794 -1 -894 794 -1 -795 795 4 -796 795 -1 -895 795 -1 -796 796 4 -797 796 -1 -896 796 -1 -797 797 4 -798 797 -1 -897 797 -1 -798 798 4 -799 798 -1 -898 798 -1 -799 799 4 -800 799 -1 -899 799 -1 -800 800 4 -900 800 -1 -801 801 4 -802 801 -1 -901 801 -1 -802 802 4 -803 802 -1 -902 802 -1 -803 803 4 -804 803 -1 -903 803 -1 -804 804 4 -805 804 -1 -904 804 -1 -805 805 4 -806 805 -1 -905 805 -1 -806 806 4 -807 806 -1 -906 806 -1 -807 807 4 -808 807 -1 -907 807 -1 -808 808 4 -809 808 -1 -908 808 -1 -809 809 4 -810 809 -1 -909 809 -1 -810 810 4 -811 810 -1 -910 810 -1 -811 811 4 -812 811 -1 -911 811 -1 -812 812 4 -813 812 -1 -912 812 -1 -813 813 4 -814 813 -1 -913 813 -1 -814 814 4 -815 814 -1 -914 814 -1 -815 815 4 -816 815 -1 -915 815 -1 -816 816 4 -817 816 -1 -916 816 -1 -817 817 4 -818 817 -1 -917 817 -1 -818 818 4 -819 818 -1 -918 818 -1 -819 819 4 -820 819 -1 -919 819 -1 -820 820 4 -821 820 -1 -920 820 -1 -821 821 4 -822 821 -1 -921 821 -1 -822 822 4 -823 822 -1 -922 822 -1 -823 823 4 -824 823 -1 -923 823 -1 -824 824 4 -825 824 -1 -924 824 -1 -825 825 4 -826 825 -1 -925 825 -1 -826 826 4 -827 826 -1 -926 826 -1 -827 827 4 -828 827 -1 -927 827 -1 -828 828 4 -829 828 -1 -928 828 -1 -829 829 4 -830 829 -1 -929 829 -1 -830 830 4 -831 830 -1 -930 830 -1 -831 831 4 -832 831 -1 -931 831 -1 -832 832 4 -833 832 -1 -932 832 -1 -833 833 4 -834 833 -1 -933 833 -1 -834 834 4 -835 834 -1 -934 834 -1 -835 835 4 -836 835 -1 -935 835 -1 -836 836 4 -837 836 -1 -936 836 -1 -837 837 4 -838 837 -1 -937 837 -1 -838 838 4 -839 838 -1 -938 838 -1 -839 839 4 -840 839 -1 -939 839 -1 -840 840 4 -841 840 -1 -940 840 -1 -841 841 4 -842 841 -1 -941 841 -1 -842 842 4 -843 842 -1 -942 842 -1 -843 843 4 -844 843 -1 -943 843 -1 -844 844 4 -845 844 -1 -944 844 -1 -845 845 4 -846 845 -1 -945 845 -1 -846 846 4 -847 846 -1 -946 846 -1 -847 847 4 -848 847 -1 -947 847 -1 -848 848 4 -849 848 -1 -948 848 -1 -849 849 4 -850 849 -1 -949 849 -1 -850 850 4 -851 850 -1 -950 850 -1 -851 851 4 -852 851 -1 -951 851 -1 -852 852 4 -853 852 -1 -952 852 -1 -853 853 4 -854 853 -1 -953 853 -1 -854 854 4 -855 854 -1 -954 854 -1 -855 855 4 -856 855 -1 -955 855 -1 -856 856 4 -857 856 -1 -956 856 -1 -857 857 4 -858 857 -1 -957 857 -1 -858 858 4 -859 858 -1 -958 858 -1 -859 859 4 -860 859 -1 -959 859 -1 -860 860 4 -861 860 -1 -960 860 -1 -861 861 4 -862 861 -1 -961 861 -1 -862 862 4 -863 862 -1 -962 862 -1 -863 863 4 -864 863 -1 -963 863 -1 -864 864 4 -865 864 -1 -964 864 -1 -865 865 4 -866 865 -1 -965 865 -1 -866 866 4 -867 866 -1 -966 866 -1 -867 867 4 -868 867 -1 -967 867 -1 -868 868 4 -869 868 -1 -968 868 -1 -869 869 4 -870 869 -1 -969 869 -1 -870 870 4 -871 870 -1 -970 870 -1 -871 871 4 -872 871 -1 -971 871 -1 -872 872 4 -873 872 -1 -972 872 -1 -873 873 4 -874 873 -1 -973 873 -1 -874 874 4 -875 874 -1 -974 874 -1 -875 875 4 -876 875 -1 -975 875 -1 -876 876 4 -877 876 -1 -976 876 -1 -877 877 4 -878 877 -1 -977 877 -1 -878 878 4 -879 878 -1 -978 878 -1 -879 879 4 -880 879 -1 -979 879 -1 -880 880 4 -881 880 -1 -980 880 -1 -881 881 4 -882 881 -1 -981 881 -1 -882 882 4 -883 882 -1 -982 882 -1 -883 883 4 -884 883 -1 -983 883 -1 -884 884 4 -885 884 -1 -984 884 -1 -885 885 4 -886 885 -1 -985 885 -1 -886 886 4 -887 886 -1 -986 886 -1 -887 887 4 -888 887 -1 -987 887 -1 -888 888 4 -889 888 -1 -988 888 -1 -889 889 4 -890 889 -1 -989 889 -1 -890 890 4 -891 890 -1 -990 890 -1 -891 891 4 -892 891 -1 -991 891 -1 -892 892 4 -893 892 -1 -992 892 -1 -893 893 4 -894 893 -1 -993 893 -1 -894 894 4 -895 894 -1 -994 894 -1 -895 895 4 -896 895 -1 -995 895 -1 -896 896 4 -897 896 -1 -996 896 -1 -897 897 4 -898 897 -1 -997 897 -1 -898 898 4 -899 898 -1 -998 898 -1 -899 899 4 -900 899 -1 -999 899 -1 -900 900 4 -1000 900 -1 -901 901 4 -902 901 -1 -1001 901 -1 -902 902 4 -903 902 -1 -1002 902 -1 -903 903 4 -904 903 -1 -1003 903 -1 -904 904 4 -905 904 -1 -1004 904 -1 -905 905 4 -906 905 -1 -1005 905 -1 -906 906 4 -907 906 -1 -1006 906 -1 -907 907 4 -908 907 -1 -1007 907 -1 -908 908 4 -909 908 -1 -1008 908 -1 -909 909 4 -910 909 -1 -1009 909 -1 -910 910 4 -911 910 -1 -1010 910 -1 -911 911 4 -912 911 -1 -1011 911 -1 -912 912 4 -913 912 -1 -1012 912 -1 -913 913 4 -914 913 -1 -1013 913 -1 -914 914 4 -915 914 -1 -1014 914 -1 -915 915 4 -916 915 -1 -1015 915 -1 -916 916 4 -917 916 -1 -1016 916 -1 -917 917 4 -918 917 -1 -1017 917 -1 -918 918 4 -919 918 -1 -1018 918 -1 -919 919 4 -920 919 -1 -1019 919 -1 -920 920 4 -921 920 -1 -1020 920 -1 -921 921 4 -922 921 -1 -1021 921 -1 -922 922 4 -923 922 -1 -1022 922 -1 -923 923 4 -924 923 -1 -1023 923 -1 -924 924 4 -925 924 -1 -1024 924 -1 -925 925 4 -926 925 -1 -1025 925 -1 -926 926 4 -927 926 -1 -1026 926 -1 -927 927 4 -928 927 -1 -1027 927 -1 -928 928 4 -929 928 -1 -1028 928 -1 -929 929 4 -930 929 -1 -1029 929 -1 -930 930 4 -931 930 -1 -1030 930 -1 -931 931 4 -932 931 -1 -1031 931 -1 -932 932 4 -933 932 -1 -1032 932 -1 -933 933 4 -934 933 -1 -1033 933 -1 -934 934 4 -935 934 -1 -1034 934 -1 -935 935 4 -936 935 -1 -1035 935 -1 -936 936 4 -937 936 -1 -1036 936 -1 -937 937 4 -938 937 -1 -1037 937 -1 -938 938 4 -939 938 -1 -1038 938 -1 -939 939 4 -940 939 -1 -1039 939 -1 -940 940 4 -941 940 -1 -1040 940 -1 -941 941 4 -942 941 -1 -1041 941 -1 -942 942 4 -943 942 -1 -1042 942 -1 -943 943 4 -944 943 -1 -1043 943 -1 -944 944 4 -945 944 -1 -1044 944 -1 -945 945 4 -946 945 -1 -1045 945 -1 -946 946 4 -947 946 -1 -1046 946 -1 -947 947 4 -948 947 -1 -1047 947 -1 -948 948 4 -949 948 -1 -1048 948 -1 -949 949 4 -950 949 -1 -1049 949 -1 -950 950 4 -951 950 -1 -1050 950 -1 -951 951 4 -952 951 -1 -1051 951 -1 -952 952 4 -953 952 -1 -1052 952 -1 -953 953 4 -954 953 -1 -1053 953 -1 -954 954 4 -955 954 -1 -1054 954 -1 -955 955 4 -956 955 -1 -1055 955 -1 -956 956 4 -957 956 -1 -1056 956 -1 -957 957 4 -958 957 -1 -1057 957 -1 -958 958 4 -959 958 -1 -1058 958 -1 -959 959 4 -960 959 -1 -1059 959 -1 -960 960 4 -961 960 -1 -1060 960 -1 -961 961 4 -962 961 -1 -1061 961 -1 -962 962 4 -963 962 -1 -1062 962 -1 -963 963 4 -964 963 -1 -1063 963 -1 -964 964 4 -965 964 -1 -1064 964 -1 -965 965 4 -966 965 -1 -1065 965 -1 -966 966 4 -967 966 -1 -1066 966 -1 -967 967 4 -968 967 -1 -1067 967 -1 -968 968 4 -969 968 -1 -1068 968 -1 -969 969 4 -970 969 -1 -1069 969 -1 -970 970 4 -971 970 -1 -1070 970 -1 -971 971 4 -972 971 -1 -1071 971 -1 -972 972 4 -973 972 -1 -1072 972 -1 -973 973 4 -974 973 -1 -1073 973 -1 -974 974 4 -975 974 -1 -1074 974 -1 -975 975 4 -976 975 -1 -1075 975 -1 -976 976 4 -977 976 -1 -1076 976 -1 -977 977 4 -978 977 -1 -1077 977 -1 -978 978 4 -979 978 -1 -1078 978 -1 -979 979 4 -980 979 -1 -1079 979 -1 -980 980 4 -981 980 -1 -1080 980 -1 -981 981 4 -982 981 -1 -1081 981 -1 -982 982 4 -983 982 -1 -1082 982 -1 -983 983 4 -984 983 -1 -1083 983 -1 -984 984 4 -985 984 -1 -1084 984 -1 -985 985 4 -986 985 -1 -1085 985 -1 -986 986 4 -987 986 -1 -1086 986 -1 -987 987 4 -988 987 -1 -1087 987 -1 -988 988 4 -989 988 -1 -1088 988 -1 -989 989 4 -990 989 -1 -1089 989 -1 -990 990 4 -991 990 -1 -1090 990 -1 -991 991 4 -992 991 -1 -1091 991 -1 -992 992 4 -993 992 -1 -1092 992 -1 -993 993 4 -994 993 -1 -1093 993 -1 -994 994 4 -995 994 -1 -1094 994 -1 -995 995 4 -996 995 -1 -1095 995 -1 -996 996 4 -997 996 -1 -1096 996 -1 -997 997 4 -998 997 -1 -1097 997 -1 -998 998 4 -999 998 -1 -1098 998 -1 -999 999 4 -1000 999 -1 -1099 999 -1 -1000 1000 4 -1100 1000 -1 -1001 1001 4 -1002 1001 -1 -1101 1001 -1 -1002 1002 4 -1003 1002 -1 -1102 1002 -1 -1003 1003 4 -1004 1003 -1 -1103 1003 -1 -1004 1004 4 -1005 1004 -1 -1104 1004 -1 -1005 1005 4 -1006 1005 -1 -1105 1005 -1 -1006 1006 4 -1007 1006 -1 -1106 1006 -1 -1007 1007 4 -1008 1007 -1 -1107 1007 -1 -1008 1008 4 -1009 1008 -1 -1108 1008 -1 -1009 1009 4 -1010 1009 -1 -1109 1009 -1 -1010 1010 4 -1011 1010 -1 -1110 1010 -1 -1011 1011 4 -1012 1011 -1 -1111 1011 -1 -1012 1012 4 -1013 1012 -1 -1112 1012 -1 -1013 1013 4 -1014 1013 -1 -1113 1013 -1 -1014 1014 4 -1015 1014 -1 -1114 1014 -1 -1015 1015 4 -1016 1015 -1 -1115 1015 -1 -1016 1016 4 -1017 1016 -1 -1116 1016 -1 -1017 1017 4 -1018 1017 -1 -1117 1017 -1 -1018 1018 4 -1019 1018 -1 -1118 1018 -1 -1019 1019 4 -1020 1019 -1 -1119 1019 -1 -1020 1020 4 -1021 1020 -1 -1120 1020 -1 -1021 1021 4 -1022 1021 -1 -1121 1021 -1 -1022 1022 4 -1023 1022 -1 -1122 1022 -1 -1023 1023 4 -1024 1023 -1 -1123 1023 -1 -1024 1024 4 -1025 1024 -1 -1124 1024 -1 -1025 1025 4 -1026 1025 -1 -1125 1025 -1 -1026 1026 4 -1027 1026 -1 -1126 1026 -1 -1027 1027 4 -1028 1027 -1 -1127 1027 -1 -1028 1028 4 -1029 1028 -1 -1128 1028 -1 -1029 1029 4 -1030 1029 -1 -1129 1029 -1 -1030 1030 4 -1031 1030 -1 -1130 1030 -1 -1031 1031 4 -1032 1031 -1 -1131 1031 -1 -1032 1032 4 -1033 1032 -1 -1132 1032 -1 -1033 1033 4 -1034 1033 -1 -1133 1033 -1 -1034 1034 4 -1035 1034 -1 -1134 1034 -1 -1035 1035 4 -1036 1035 -1 -1135 1035 -1 -1036 1036 4 -1037 1036 -1 -1136 1036 -1 -1037 1037 4 -1038 1037 -1 -1137 1037 -1 -1038 1038 4 -1039 1038 -1 -1138 1038 -1 -1039 1039 4 -1040 1039 -1 -1139 1039 -1 -1040 1040 4 -1041 1040 -1 -1140 1040 -1 -1041 1041 4 -1042 1041 -1 -1141 1041 -1 -1042 1042 4 -1043 1042 -1 -1142 1042 -1 -1043 1043 4 -1044 1043 -1 -1143 1043 -1 -1044 1044 4 -1045 1044 -1 -1144 1044 -1 -1045 1045 4 -1046 1045 -1 -1145 1045 -1 -1046 1046 4 -1047 1046 -1 -1146 1046 -1 -1047 1047 4 -1048 1047 -1 -1147 1047 -1 -1048 1048 4 -1049 1048 -1 -1148 1048 -1 -1049 1049 4 -1050 1049 -1 -1149 1049 -1 -1050 1050 4 -1051 1050 -1 -1150 1050 -1 -1051 1051 4 -1052 1051 -1 -1151 1051 -1 -1052 1052 4 -1053 1052 -1 -1152 1052 -1 -1053 1053 4 -1054 1053 -1 -1153 1053 -1 -1054 1054 4 -1055 1054 -1 -1154 1054 -1 -1055 1055 4 -1056 1055 -1 -1155 1055 -1 -1056 1056 4 -1057 1056 -1 -1156 1056 -1 -1057 1057 4 -1058 1057 -1 -1157 1057 -1 -1058 1058 4 -1059 1058 -1 -1158 1058 -1 -1059 1059 4 -1060 1059 -1 -1159 1059 -1 -1060 1060 4 -1061 1060 -1 -1160 1060 -1 -1061 1061 4 -1062 1061 -1 -1161 1061 -1 -1062 1062 4 -1063 1062 -1 -1162 1062 -1 -1063 1063 4 -1064 1063 -1 -1163 1063 -1 -1064 1064 4 -1065 1064 -1 -1164 1064 -1 -1065 1065 4 -1066 1065 -1 -1165 1065 -1 -1066 1066 4 -1067 1066 -1 -1166 1066 -1 -1067 1067 4 -1068 1067 -1 -1167 1067 -1 -1068 1068 4 -1069 1068 -1 -1168 1068 -1 -1069 1069 4 -1070 1069 -1 -1169 1069 -1 -1070 1070 4 -1071 1070 -1 -1170 1070 -1 -1071 1071 4 -1072 1071 -1 -1171 1071 -1 -1072 1072 4 -1073 1072 -1 -1172 1072 -1 -1073 1073 4 -1074 1073 -1 -1173 1073 -1 -1074 1074 4 -1075 1074 -1 -1174 1074 -1 -1075 1075 4 -1076 1075 -1 -1175 1075 -1 -1076 1076 4 -1077 1076 -1 -1176 1076 -1 -1077 1077 4 -1078 1077 -1 -1177 1077 -1 -1078 1078 4 -1079 1078 -1 -1178 1078 -1 -1079 1079 4 -1080 1079 -1 -1179 1079 -1 -1080 1080 4 -1081 1080 -1 -1180 1080 -1 -1081 1081 4 -1082 1081 -1 -1181 1081 -1 -1082 1082 4 -1083 1082 -1 -1182 1082 -1 -1083 1083 4 -1084 1083 -1 -1183 1083 -1 -1084 1084 4 -1085 1084 -1 -1184 1084 -1 -1085 1085 4 -1086 1085 -1 -1185 1085 -1 -1086 1086 4 -1087 1086 -1 -1186 1086 -1 -1087 1087 4 -1088 1087 -1 -1187 1087 -1 -1088 1088 4 -1089 1088 -1 -1188 1088 -1 -1089 1089 4 -1090 1089 -1 -1189 1089 -1 -1090 1090 4 -1091 1090 -1 -1190 1090 -1 -1091 1091 4 -1092 1091 -1 -1191 1091 -1 -1092 1092 4 -1093 1092 -1 -1192 1092 -1 -1093 1093 4 -1094 1093 -1 -1193 1093 -1 -1094 1094 4 -1095 1094 -1 -1194 1094 -1 -1095 1095 4 -1096 1095 -1 -1195 1095 -1 -1096 1096 4 -1097 1096 -1 -1196 1096 -1 -1097 1097 4 -1098 1097 -1 -1197 1097 -1 -1098 1098 4 -1099 1098 -1 -1198 1098 -1 -1099 1099 4 -1100 1099 -1 -1199 1099 -1 -1100 1100 4 -1200 1100 -1 -1101 1101 4 -1102 1101 -1 -1201 1101 -1 -1102 1102 4 -1103 1102 -1 -1202 1102 -1 -1103 1103 4 -1104 1103 -1 -1203 1103 -1 -1104 1104 4 -1105 1104 -1 -1204 1104 -1 -1105 1105 4 -1106 1105 -1 -1205 1105 -1 -1106 1106 4 -1107 1106 -1 -1206 1106 -1 -1107 1107 4 -1108 1107 -1 -1207 1107 -1 -1108 1108 4 -1109 1108 -1 -1208 1108 -1 -1109 1109 4 -1110 1109 -1 -1209 1109 -1 -1110 1110 4 -1111 1110 -1 -1210 1110 -1 -1111 1111 4 -1112 1111 -1 -1211 1111 -1 -1112 1112 4 -1113 1112 -1 -1212 1112 -1 -1113 1113 4 -1114 1113 -1 -1213 1113 -1 -1114 1114 4 -1115 1114 -1 -1214 1114 -1 -1115 1115 4 -1116 1115 -1 -1215 1115 -1 -1116 1116 4 -1117 1116 -1 -1216 1116 -1 -1117 1117 4 -1118 1117 -1 -1217 1117 -1 -1118 1118 4 -1119 1118 -1 -1218 1118 -1 -1119 1119 4 -1120 1119 -1 -1219 1119 -1 -1120 1120 4 -1121 1120 -1 -1220 1120 -1 -1121 1121 4 -1122 1121 -1 -1221 1121 -1 -1122 1122 4 -1123 1122 -1 -1222 1122 -1 -1123 1123 4 -1124 1123 -1 -1223 1123 -1 -1124 1124 4 -1125 1124 -1 -1224 1124 -1 -1125 1125 4 -1126 1125 -1 -1225 1125 -1 -1126 1126 4 -1127 1126 -1 -1226 1126 -1 -1127 1127 4 -1128 1127 -1 -1227 1127 -1 -1128 1128 4 -1129 1128 -1 -1228 1128 -1 -1129 1129 4 -1130 1129 -1 -1229 1129 -1 -1130 1130 4 -1131 1130 -1 -1230 1130 -1 -1131 1131 4 -1132 1131 -1 -1231 1131 -1 -1132 1132 4 -1133 1132 -1 -1232 1132 -1 -1133 1133 4 -1134 1133 -1 -1233 1133 -1 -1134 1134 4 -1135 1134 -1 -1234 1134 -1 -1135 1135 4 -1136 1135 -1 -1235 1135 -1 -1136 1136 4 -1137 1136 -1 -1236 1136 -1 -1137 1137 4 -1138 1137 -1 -1237 1137 -1 -1138 1138 4 -1139 1138 -1 -1238 1138 -1 -1139 1139 4 -1140 1139 -1 -1239 1139 -1 -1140 1140 4 -1141 1140 -1 -1240 1140 -1 -1141 1141 4 -1142 1141 -1 -1241 1141 -1 -1142 1142 4 -1143 1142 -1 -1242 1142 -1 -1143 1143 4 -1144 1143 -1 -1243 1143 -1 -1144 1144 4 -1145 1144 -1 -1244 1144 -1 -1145 1145 4 -1146 1145 -1 -1245 1145 -1 -1146 1146 4 -1147 1146 -1 -1246 1146 -1 -1147 1147 4 -1148 1147 -1 -1247 1147 -1 -1148 1148 4 -1149 1148 -1 -1248 1148 -1 -1149 1149 4 -1150 1149 -1 -1249 1149 -1 -1150 1150 4 -1151 1150 -1 -1250 1150 -1 -1151 1151 4 -1152 1151 -1 -1251 1151 -1 -1152 1152 4 -1153 1152 -1 -1252 1152 -1 -1153 1153 4 -1154 1153 -1 -1253 1153 -1 -1154 1154 4 -1155 1154 -1 -1254 1154 -1 -1155 1155 4 -1156 1155 -1 -1255 1155 -1 -1156 1156 4 -1157 1156 -1 -1256 1156 -1 -1157 1157 4 -1158 1157 -1 -1257 1157 -1 -1158 1158 4 -1159 1158 -1 -1258 1158 -1 -1159 1159 4 -1160 1159 -1 -1259 1159 -1 -1160 1160 4 -1161 1160 -1 -1260 1160 -1 -1161 1161 4 -1162 1161 -1 -1261 1161 -1 -1162 1162 4 -1163 1162 -1 -1262 1162 -1 -1163 1163 4 -1164 1163 -1 -1263 1163 -1 -1164 1164 4 -1165 1164 -1 -1264 1164 -1 -1165 1165 4 -1166 1165 -1 -1265 1165 -1 -1166 1166 4 -1167 1166 -1 -1266 1166 -1 -1167 1167 4 -1168 1167 -1 -1267 1167 -1 -1168 1168 4 -1169 1168 -1 -1268 1168 -1 -1169 1169 4 -1170 1169 -1 -1269 1169 -1 -1170 1170 4 -1171 1170 -1 -1270 1170 -1 -1171 1171 4 -1172 1171 -1 -1271 1171 -1 -1172 1172 4 -1173 1172 -1 -1272 1172 -1 -1173 1173 4 -1174 1173 -1 -1273 1173 -1 -1174 1174 4 -1175 1174 -1 -1274 1174 -1 -1175 1175 4 -1176 1175 -1 -1275 1175 -1 -1176 1176 4 -1177 1176 -1 -1276 1176 -1 -1177 1177 4 -1178 1177 -1 -1277 1177 -1 -1178 1178 4 -1179 1178 -1 -1278 1178 -1 -1179 1179 4 -1180 1179 -1 -1279 1179 -1 -1180 1180 4 -1181 1180 -1 -1280 1180 -1 -1181 1181 4 -1182 1181 -1 -1281 1181 -1 -1182 1182 4 -1183 1182 -1 -1282 1182 -1 -1183 1183 4 -1184 1183 -1 -1283 1183 -1 -1184 1184 4 -1185 1184 -1 -1284 1184 -1 -1185 1185 4 -1186 1185 -1 -1285 1185 -1 -1186 1186 4 -1187 1186 -1 -1286 1186 -1 -1187 1187 4 -1188 1187 -1 -1287 1187 -1 -1188 1188 4 -1189 1188 -1 -1288 1188 -1 -1189 1189 4 -1190 1189 -1 -1289 1189 -1 -1190 1190 4 -1191 1190 -1 -1290 1190 -1 -1191 1191 4 -1192 1191 -1 -1291 1191 -1 -1192 1192 4 -1193 1192 -1 -1292 1192 -1 -1193 1193 4 -1194 1193 -1 -1293 1193 -1 -1194 1194 4 -1195 1194 -1 -1294 1194 -1 -1195 1195 4 -1196 1195 -1 -1295 1195 -1 -1196 1196 4 -1197 1196 -1 -1296 1196 -1 -1197 1197 4 -1198 1197 -1 -1297 1197 -1 -1198 1198 4 -1199 1198 -1 -1298 1198 -1 -1199 1199 4 -1200 1199 -1 -1299 1199 -1 -1200 1200 4 -1300 1200 -1 -1201 1201 4 -1202 1201 -1 -1301 1201 -1 -1202 1202 4 -1203 1202 -1 -1302 1202 -1 -1203 1203 4 -1204 1203 -1 -1303 1203 -1 -1204 1204 4 -1205 1204 -1 -1304 1204 -1 -1205 1205 4 -1206 1205 -1 -1305 1205 -1 -1206 1206 4 -1207 1206 -1 -1306 1206 -1 -1207 1207 4 -1208 1207 -1 -1307 1207 -1 -1208 1208 4 -1209 1208 -1 -1308 1208 -1 -1209 1209 4 -1210 1209 -1 -1309 1209 -1 -1210 1210 4 -1211 1210 -1 -1310 1210 -1 -1211 1211 4 -1212 1211 -1 -1311 1211 -1 -1212 1212 4 -1213 1212 -1 -1312 1212 -1 -1213 1213 4 -1214 1213 -1 -1313 1213 -1 -1214 1214 4 -1215 1214 -1 -1314 1214 -1 -1215 1215 4 -1216 1215 -1 -1315 1215 -1 -1216 1216 4 -1217 1216 -1 -1316 1216 -1 -1217 1217 4 -1218 1217 -1 -1317 1217 -1 -1218 1218 4 -1219 1218 -1 -1318 1218 -1 -1219 1219 4 -1220 1219 -1 -1319 1219 -1 -1220 1220 4 -1221 1220 -1 -1320 1220 -1 -1221 1221 4 -1222 1221 -1 -1321 1221 -1 -1222 1222 4 -1223 1222 -1 -1322 1222 -1 -1223 1223 4 -1224 1223 -1 -1323 1223 -1 -1224 1224 4 -1225 1224 -1 -1324 1224 -1 -1225 1225 4 -1226 1225 -1 -1325 1225 -1 -1226 1226 4 -1227 1226 -1 -1326 1226 -1 -1227 1227 4 -1228 1227 -1 -1327 1227 -1 -1228 1228 4 -1229 1228 -1 -1328 1228 -1 -1229 1229 4 -1230 1229 -1 -1329 1229 -1 -1230 1230 4 -1231 1230 -1 -1330 1230 -1 -1231 1231 4 -1232 1231 -1 -1331 1231 -1 -1232 1232 4 -1233 1232 -1 -1332 1232 -1 -1233 1233 4 -1234 1233 -1 -1333 1233 -1 -1234 1234 4 -1235 1234 -1 -1334 1234 -1 -1235 1235 4 -1236 1235 -1 -1335 1235 -1 -1236 1236 4 -1237 1236 -1 -1336 1236 -1 -1237 1237 4 -1238 1237 -1 -1337 1237 -1 -1238 1238 4 -1239 1238 -1 -1338 1238 -1 -1239 1239 4 -1240 1239 -1 -1339 1239 -1 -1240 1240 4 -1241 1240 -1 -1340 1240 -1 -1241 1241 4 -1242 1241 -1 -1341 1241 -1 -1242 1242 4 -1243 1242 -1 -1342 1242 -1 -1243 1243 4 -1244 1243 -1 -1343 1243 -1 -1244 1244 4 -1245 1244 -1 -1344 1244 -1 -1245 1245 4 -1246 1245 -1 -1345 1245 -1 -1246 1246 4 -1247 1246 -1 -1346 1246 -1 -1247 1247 4 -1248 1247 -1 -1347 1247 -1 -1248 1248 4 -1249 1248 -1 -1348 1248 -1 -1249 1249 4 -1250 1249 -1 -1349 1249 -1 -1250 1250 4 -1251 1250 -1 -1350 1250 -1 -1251 1251 4 -1252 1251 -1 -1351 1251 -1 -1252 1252 4 -1253 1252 -1 -1352 1252 -1 -1253 1253 4 -1254 1253 -1 -1353 1253 -1 -1254 1254 4 -1255 1254 -1 -1354 1254 -1 -1255 1255 4 -1256 1255 -1 -1355 1255 -1 -1256 1256 4 -1257 1256 -1 -1356 1256 -1 -1257 1257 4 -1258 1257 -1 -1357 1257 -1 -1258 1258 4 -1259 1258 -1 -1358 1258 -1 -1259 1259 4 -1260 1259 -1 -1359 1259 -1 -1260 1260 4 -1261 1260 -1 -1360 1260 -1 -1261 1261 4 -1262 1261 -1 -1361 1261 -1 -1262 1262 4 -1263 1262 -1 -1362 1262 -1 -1263 1263 4 -1264 1263 -1 -1363 1263 -1 -1264 1264 4 -1265 1264 -1 -1364 1264 -1 -1265 1265 4 -1266 1265 -1 -1365 1265 -1 -1266 1266 4 -1267 1266 -1 -1366 1266 -1 -1267 1267 4 -1268 1267 -1 -1367 1267 -1 -1268 1268 4 -1269 1268 -1 -1368 1268 -1 -1269 1269 4 -1270 1269 -1 -1369 1269 -1 -1270 1270 4 -1271 1270 -1 -1370 1270 -1 -1271 1271 4 -1272 1271 -1 -1371 1271 -1 -1272 1272 4 -1273 1272 -1 -1372 1272 -1 -1273 1273 4 -1274 1273 -1 -1373 1273 -1 -1274 1274 4 -1275 1274 -1 -1374 1274 -1 -1275 1275 4 -1276 1275 -1 -1375 1275 -1 -1276 1276 4 -1277 1276 -1 -1376 1276 -1 -1277 1277 4 -1278 1277 -1 -1377 1277 -1 -1278 1278 4 -1279 1278 -1 -1378 1278 -1 -1279 1279 4 -1280 1279 -1 -1379 1279 -1 -1280 1280 4 -1281 1280 -1 -1380 1280 -1 -1281 1281 4 -1282 1281 -1 -1381 1281 -1 -1282 1282 4 -1283 1282 -1 -1382 1282 -1 -1283 1283 4 -1284 1283 -1 -1383 1283 -1 -1284 1284 4 -1285 1284 -1 -1384 1284 -1 -1285 1285 4 -1286 1285 -1 -1385 1285 -1 -1286 1286 4 -1287 1286 -1 -1386 1286 -1 -1287 1287 4 -1288 1287 -1 -1387 1287 -1 -1288 1288 4 -1289 1288 -1 -1388 1288 -1 -1289 1289 4 -1290 1289 -1 -1389 1289 -1 -1290 1290 4 -1291 1290 -1 -1390 1290 -1 -1291 1291 4 -1292 1291 -1 -1391 1291 -1 -1292 1292 4 -1293 1292 -1 -1392 1292 -1 -1293 1293 4 -1294 1293 -1 -1393 1293 -1 -1294 1294 4 -1295 1294 -1 -1394 1294 -1 -1295 1295 4 -1296 1295 -1 -1395 1295 -1 -1296 1296 4 -1297 1296 -1 -1396 1296 -1 -1297 1297 4 -1298 1297 -1 -1397 1297 -1 -1298 1298 4 -1299 1298 -1 -1398 1298 -1 -1299 1299 4 -1300 1299 -1 -1399 1299 -1 -1300 1300 4 -1400 1300 -1 -1301 1301 4 -1302 1301 -1 -1401 1301 -1 -1302 1302 4 -1303 1302 -1 -1402 1302 -1 -1303 1303 4 -1304 1303 -1 -1403 1303 -1 -1304 1304 4 -1305 1304 -1 -1404 1304 -1 -1305 1305 4 -1306 1305 -1 -1405 1305 -1 -1306 1306 4 -1307 1306 -1 -1406 1306 -1 -1307 1307 4 -1308 1307 -1 -1407 1307 -1 -1308 1308 4 -1309 1308 -1 -1408 1308 -1 -1309 1309 4 -1310 1309 -1 -1409 1309 -1 -1310 1310 4 -1311 1310 -1 -1410 1310 -1 -1311 1311 4 -1312 1311 -1 -1411 1311 -1 -1312 1312 4 -1313 1312 -1 -1412 1312 -1 -1313 1313 4 -1314 1313 -1 -1413 1313 -1 -1314 1314 4 -1315 1314 -1 -1414 1314 -1 -1315 1315 4 -1316 1315 -1 -1415 1315 -1 -1316 1316 4 -1317 1316 -1 -1416 1316 -1 -1317 1317 4 -1318 1317 -1 -1417 1317 -1 -1318 1318 4 -1319 1318 -1 -1418 1318 -1 -1319 1319 4 -1320 1319 -1 -1419 1319 -1 -1320 1320 4 -1321 1320 -1 -1420 1320 -1 -1321 1321 4 -1322 1321 -1 -1421 1321 -1 -1322 1322 4 -1323 1322 -1 -1422 1322 -1 -1323 1323 4 -1324 1323 -1 -1423 1323 -1 -1324 1324 4 -1325 1324 -1 -1424 1324 -1 -1325 1325 4 -1326 1325 -1 -1425 1325 -1 -1326 1326 4 -1327 1326 -1 -1426 1326 -1 -1327 1327 4 -1328 1327 -1 -1427 1327 -1 -1328 1328 4 -1329 1328 -1 -1428 1328 -1 -1329 1329 4 -1330 1329 -1 -1429 1329 -1 -1330 1330 4 -1331 1330 -1 -1430 1330 -1 -1331 1331 4 -1332 1331 -1 -1431 1331 -1 -1332 1332 4 -1333 1332 -1 -1432 1332 -1 -1333 1333 4 -1334 1333 -1 -1433 1333 -1 -1334 1334 4 -1335 1334 -1 -1434 1334 -1 -1335 1335 4 -1336 1335 -1 -1435 1335 -1 -1336 1336 4 -1337 1336 -1 -1436 1336 -1 -1337 1337 4 -1338 1337 -1 -1437 1337 -1 -1338 1338 4 -1339 1338 -1 -1438 1338 -1 -1339 1339 4 -1340 1339 -1 -1439 1339 -1 -1340 1340 4 -1341 1340 -1 -1440 1340 -1 -1341 1341 4 -1342 1341 -1 -1441 1341 -1 -1342 1342 4 -1343 1342 -1 -1442 1342 -1 -1343 1343 4 -1344 1343 -1 -1443 1343 -1 -1344 1344 4 -1345 1344 -1 -1444 1344 -1 -1345 1345 4 -1346 1345 -1 -1445 1345 -1 -1346 1346 4 -1347 1346 -1 -1446 1346 -1 -1347 1347 4 -1348 1347 -1 -1447 1347 -1 -1348 1348 4 -1349 1348 -1 -1448 1348 -1 -1349 1349 4 -1350 1349 -1 -1449 1349 -1 -1350 1350 4 -1351 1350 -1 -1450 1350 -1 -1351 1351 4 -1352 1351 -1 -1451 1351 -1 -1352 1352 4 -1353 1352 -1 -1452 1352 -1 -1353 1353 4 -1354 1353 -1 -1453 1353 -1 -1354 1354 4 -1355 1354 -1 -1454 1354 -1 -1355 1355 4 -1356 1355 -1 -1455 1355 -1 -1356 1356 4 -1357 1356 -1 -1456 1356 -1 -1357 1357 4 -1358 1357 -1 -1457 1357 -1 -1358 1358 4 -1359 1358 -1 -1458 1358 -1 -1359 1359 4 -1360 1359 -1 -1459 1359 -1 -1360 1360 4 -1361 1360 -1 -1460 1360 -1 -1361 1361 4 -1362 1361 -1 -1461 1361 -1 -1362 1362 4 -1363 1362 -1 -1462 1362 -1 -1363 1363 4 -1364 1363 -1 -1463 1363 -1 -1364 1364 4 -1365 1364 -1 -1464 1364 -1 -1365 1365 4 -1366 1365 -1 -1465 1365 -1 -1366 1366 4 -1367 1366 -1 -1466 1366 -1 -1367 1367 4 -1368 1367 -1 -1467 1367 -1 -1368 1368 4 -1369 1368 -1 -1468 1368 -1 -1369 1369 4 -1370 1369 -1 -1469 1369 -1 -1370 1370 4 -1371 1370 -1 -1470 1370 -1 -1371 1371 4 -1372 1371 -1 -1471 1371 -1 -1372 1372 4 -1373 1372 -1 -1472 1372 -1 -1373 1373 4 -1374 1373 -1 -1473 1373 -1 -1374 1374 4 -1375 1374 -1 -1474 1374 -1 -1375 1375 4 -1376 1375 -1 -1475 1375 -1 -1376 1376 4 -1377 1376 -1 -1476 1376 -1 -1377 1377 4 -1378 1377 -1 -1477 1377 -1 -1378 1378 4 -1379 1378 -1 -1478 1378 -1 -1379 1379 4 -1380 1379 -1 -1479 1379 -1 -1380 1380 4 -1381 1380 -1 -1480 1380 -1 -1381 1381 4 -1382 1381 -1 -1481 1381 -1 -1382 1382 4 -1383 1382 -1 -1482 1382 -1 -1383 1383 4 -1384 1383 -1 -1483 1383 -1 -1384 1384 4 -1385 1384 -1 -1484 1384 -1 -1385 1385 4 -1386 1385 -1 -1485 1385 -1 -1386 1386 4 -1387 1386 -1 -1486 1386 -1 -1387 1387 4 -1388 1387 -1 -1487 1387 -1 -1388 1388 4 -1389 1388 -1 -1488 1388 -1 -1389 1389 4 -1390 1389 -1 -1489 1389 -1 -1390 1390 4 -1391 1390 -1 -1490 1390 -1 -1391 1391 4 -1392 1391 -1 -1491 1391 -1 -1392 1392 4 -1393 1392 -1 -1492 1392 -1 -1393 1393 4 -1394 1393 -1 -1493 1393 -1 -1394 1394 4 -1395 1394 -1 -1494 1394 -1 -1395 1395 4 -1396 1395 -1 -1495 1395 -1 -1396 1396 4 -1397 1396 -1 -1496 1396 -1 -1397 1397 4 -1398 1397 -1 -1497 1397 -1 -1398 1398 4 -1399 1398 -1 -1498 1398 -1 -1399 1399 4 -1400 1399 -1 -1499 1399 -1 -1400 1400 4 -1500 1400 -1 -1401 1401 4 -1402 1401 -1 -1501 1401 -1 -1402 1402 4 -1403 1402 -1 -1502 1402 -1 -1403 1403 4 -1404 1403 -1 -1503 1403 -1 -1404 1404 4 -1405 1404 -1 -1504 1404 -1 -1405 1405 4 -1406 1405 -1 -1505 1405 -1 -1406 1406 4 -1407 1406 -1 -1506 1406 -1 -1407 1407 4 -1408 1407 -1 -1507 1407 -1 -1408 1408 4 -1409 1408 -1 -1508 1408 -1 -1409 1409 4 -1410 1409 -1 -1509 1409 -1 -1410 1410 4 -1411 1410 -1 -1510 1410 -1 -1411 1411 4 -1412 1411 -1 -1511 1411 -1 -1412 1412 4 -1413 1412 -1 -1512 1412 -1 -1413 1413 4 -1414 1413 -1 -1513 1413 -1 -1414 1414 4 -1415 1414 -1 -1514 1414 -1 -1415 1415 4 -1416 1415 -1 -1515 1415 -1 -1416 1416 4 -1417 1416 -1 -1516 1416 -1 -1417 1417 4 -1418 1417 -1 -1517 1417 -1 -1418 1418 4 -1419 1418 -1 -1518 1418 -1 -1419 1419 4 -1420 1419 -1 -1519 1419 -1 -1420 1420 4 -1421 1420 -1 -1520 1420 -1 -1421 1421 4 -1422 1421 -1 -1521 1421 -1 -1422 1422 4 -1423 1422 -1 -1522 1422 -1 -1423 1423 4 -1424 1423 -1 -1523 1423 -1 -1424 1424 4 -1425 1424 -1 -1524 1424 -1 -1425 1425 4 -1426 1425 -1 -1525 1425 -1 -1426 1426 4 -1427 1426 -1 -1526 1426 -1 -1427 1427 4 -1428 1427 -1 -1527 1427 -1 -1428 1428 4 -1429 1428 -1 -1528 1428 -1 -1429 1429 4 -1430 1429 -1 -1529 1429 -1 -1430 1430 4 -1431 1430 -1 -1530 1430 -1 -1431 1431 4 -1432 1431 -1 -1531 1431 -1 -1432 1432 4 -1433 1432 -1 -1532 1432 -1 -1433 1433 4 -1434 1433 -1 -1533 1433 -1 -1434 1434 4 -1435 1434 -1 -1534 1434 -1 -1435 1435 4 -1436 1435 -1 -1535 1435 -1 -1436 1436 4 -1437 1436 -1 -1536 1436 -1 -1437 1437 4 -1438 1437 -1 -1537 1437 -1 -1438 1438 4 -1439 1438 -1 -1538 1438 -1 -1439 1439 4 -1440 1439 -1 -1539 1439 -1 -1440 1440 4 -1441 1440 -1 -1540 1440 -1 -1441 1441 4 -1442 1441 -1 -1541 1441 -1 -1442 1442 4 -1443 1442 -1 -1542 1442 -1 -1443 1443 4 -1444 1443 -1 -1543 1443 -1 -1444 1444 4 -1445 1444 -1 -1544 1444 -1 -1445 1445 4 -1446 1445 -1 -1545 1445 -1 -1446 1446 4 -1447 1446 -1 -1546 1446 -1 -1447 1447 4 -1448 1447 -1 -1547 1447 -1 -1448 1448 4 -1449 1448 -1 -1548 1448 -1 -1449 1449 4 -1450 1449 -1 -1549 1449 -1 -1450 1450 4 -1451 1450 -1 -1550 1450 -1 -1451 1451 4 -1452 1451 -1 -1551 1451 -1 -1452 1452 4 -1453 1452 -1 -1552 1452 -1 -1453 1453 4 -1454 1453 -1 -1553 1453 -1 -1454 1454 4 -1455 1454 -1 -1554 1454 -1 -1455 1455 4 -1456 1455 -1 -1555 1455 -1 -1456 1456 4 -1457 1456 -1 -1556 1456 -1 -1457 1457 4 -1458 1457 -1 -1557 1457 -1 -1458 1458 4 -1459 1458 -1 -1558 1458 -1 -1459 1459 4 -1460 1459 -1 -1559 1459 -1 -1460 1460 4 -1461 1460 -1 -1560 1460 -1 -1461 1461 4 -1462 1461 -1 -1561 1461 -1 -1462 1462 4 -1463 1462 -1 -1562 1462 -1 -1463 1463 4 -1464 1463 -1 -1563 1463 -1 -1464 1464 4 -1465 1464 -1 -1564 1464 -1 -1465 1465 4 -1466 1465 -1 -1565 1465 -1 -1466 1466 4 -1467 1466 -1 -1566 1466 -1 -1467 1467 4 -1468 1467 -1 -1567 1467 -1 -1468 1468 4 -1469 1468 -1 -1568 1468 -1 -1469 1469 4 -1470 1469 -1 -1569 1469 -1 -1470 1470 4 -1471 1470 -1 -1570 1470 -1 -1471 1471 4 -1472 1471 -1 -1571 1471 -1 -1472 1472 4 -1473 1472 -1 -1572 1472 -1 -1473 1473 4 -1474 1473 -1 -1573 1473 -1 -1474 1474 4 -1475 1474 -1 -1574 1474 -1 -1475 1475 4 -1476 1475 -1 -1575 1475 -1 -1476 1476 4 -1477 1476 -1 -1576 1476 -1 -1477 1477 4 -1478 1477 -1 -1577 1477 -1 -1478 1478 4 -1479 1478 -1 -1578 1478 -1 -1479 1479 4 -1480 1479 -1 -1579 1479 -1 -1480 1480 4 -1481 1480 -1 -1580 1480 -1 -1481 1481 4 -1482 1481 -1 -1581 1481 -1 -1482 1482 4 -1483 1482 -1 -1582 1482 -1 -1483 1483 4 -1484 1483 -1 -1583 1483 -1 -1484 1484 4 -1485 1484 -1 -1584 1484 -1 -1485 1485 4 -1486 1485 -1 -1585 1485 -1 -1486 1486 4 -1487 1486 -1 -1586 1486 -1 -1487 1487 4 -1488 1487 -1 -1587 1487 -1 -1488 1488 4 -1489 1488 -1 -1588 1488 -1 -1489 1489 4 -1490 1489 -1 -1589 1489 -1 -1490 1490 4 -1491 1490 -1 -1590 1490 -1 -1491 1491 4 -1492 1491 -1 -1591 1491 -1 -1492 1492 4 -1493 1492 -1 -1592 1492 -1 -1493 1493 4 -1494 1493 -1 -1593 1493 -1 -1494 1494 4 -1495 1494 -1 -1594 1494 -1 -1495 1495 4 -1496 1495 -1 -1595 1495 -1 -1496 1496 4 -1497 1496 -1 -1596 1496 -1 -1497 1497 4 -1498 1497 -1 -1597 1497 -1 -1498 1498 4 -1499 1498 -1 -1598 1498 -1 -1499 1499 4 -1500 1499 -1 -1599 1499 -1 -1500 1500 4 -1600 1500 -1 -1501 1501 4 -1502 1501 -1 -1601 1501 -1 -1502 1502 4 -1503 1502 -1 -1602 1502 -1 -1503 1503 4 -1504 1503 -1 -1603 1503 -1 -1504 1504 4 -1505 1504 -1 -1604 1504 -1 -1505 1505 4 -1506 1505 -1 -1605 1505 -1 -1506 1506 4 -1507 1506 -1 -1606 1506 -1 -1507 1507 4 -1508 1507 -1 -1607 1507 -1 -1508 1508 4 -1509 1508 -1 -1608 1508 -1 -1509 1509 4 -1510 1509 -1 -1609 1509 -1 -1510 1510 4 -1511 1510 -1 -1610 1510 -1 -1511 1511 4 -1512 1511 -1 -1611 1511 -1 -1512 1512 4 -1513 1512 -1 -1612 1512 -1 -1513 1513 4 -1514 1513 -1 -1613 1513 -1 -1514 1514 4 -1515 1514 -1 -1614 1514 -1 -1515 1515 4 -1516 1515 -1 -1615 1515 -1 -1516 1516 4 -1517 1516 -1 -1616 1516 -1 -1517 1517 4 -1518 1517 -1 -1617 1517 -1 -1518 1518 4 -1519 1518 -1 -1618 1518 -1 -1519 1519 4 -1520 1519 -1 -1619 1519 -1 -1520 1520 4 -1521 1520 -1 -1620 1520 -1 -1521 1521 4 -1522 1521 -1 -1621 1521 -1 -1522 1522 4 -1523 1522 -1 -1622 1522 -1 -1523 1523 4 -1524 1523 -1 -1623 1523 -1 -1524 1524 4 -1525 1524 -1 -1624 1524 -1 -1525 1525 4 -1526 1525 -1 -1625 1525 -1 -1526 1526 4 -1527 1526 -1 -1626 1526 -1 -1527 1527 4 -1528 1527 -1 -1627 1527 -1 -1528 1528 4 -1529 1528 -1 -1628 1528 -1 -1529 1529 4 -1530 1529 -1 -1629 1529 -1 -1530 1530 4 -1531 1530 -1 -1630 1530 -1 -1531 1531 4 -1532 1531 -1 -1631 1531 -1 -1532 1532 4 -1533 1532 -1 -1632 1532 -1 -1533 1533 4 -1534 1533 -1 -1633 1533 -1 -1534 1534 4 -1535 1534 -1 -1634 1534 -1 -1535 1535 4 -1536 1535 -1 -1635 1535 -1 -1536 1536 4 -1537 1536 -1 -1636 1536 -1 -1537 1537 4 -1538 1537 -1 -1637 1537 -1 -1538 1538 4 -1539 1538 -1 -1638 1538 -1 -1539 1539 4 -1540 1539 -1 -1639 1539 -1 -1540 1540 4 -1541 1540 -1 -1640 1540 -1 -1541 1541 4 -1542 1541 -1 -1641 1541 -1 -1542 1542 4 -1543 1542 -1 -1642 1542 -1 -1543 1543 4 -1544 1543 -1 -1643 1543 -1 -1544 1544 4 -1545 1544 -1 -1644 1544 -1 -1545 1545 4 -1546 1545 -1 -1645 1545 -1 -1546 1546 4 -1547 1546 -1 -1646 1546 -1 -1547 1547 4 -1548 1547 -1 -1647 1547 -1 -1548 1548 4 -1549 1548 -1 -1648 1548 -1 -1549 1549 4 -1550 1549 -1 -1649 1549 -1 -1550 1550 4 -1551 1550 -1 -1650 1550 -1 -1551 1551 4 -1552 1551 -1 -1651 1551 -1 -1552 1552 4 -1553 1552 -1 -1652 1552 -1 -1553 1553 4 -1554 1553 -1 -1653 1553 -1 -1554 1554 4 -1555 1554 -1 -1654 1554 -1 -1555 1555 4 -1556 1555 -1 -1655 1555 -1 -1556 1556 4 -1557 1556 -1 -1656 1556 -1 -1557 1557 4 -1558 1557 -1 -1657 1557 -1 -1558 1558 4 -1559 1558 -1 -1658 1558 -1 -1559 1559 4 -1560 1559 -1 -1659 1559 -1 -1560 1560 4 -1561 1560 -1 -1660 1560 -1 -1561 1561 4 -1562 1561 -1 -1661 1561 -1 -1562 1562 4 -1563 1562 -1 -1662 1562 -1 -1563 1563 4 -1564 1563 -1 -1663 1563 -1 -1564 1564 4 -1565 1564 -1 -1664 1564 -1 -1565 1565 4 -1566 1565 -1 -1665 1565 -1 -1566 1566 4 -1567 1566 -1 -1666 1566 -1 -1567 1567 4 -1568 1567 -1 -1667 1567 -1 -1568 1568 4 -1569 1568 -1 -1668 1568 -1 -1569 1569 4 -1570 1569 -1 -1669 1569 -1 -1570 1570 4 -1571 1570 -1 -1670 1570 -1 -1571 1571 4 -1572 1571 -1 -1671 1571 -1 -1572 1572 4 -1573 1572 -1 -1672 1572 -1 -1573 1573 4 -1574 1573 -1 -1673 1573 -1 -1574 1574 4 -1575 1574 -1 -1674 1574 -1 -1575 1575 4 -1576 1575 -1 -1675 1575 -1 -1576 1576 4 -1577 1576 -1 -1676 1576 -1 -1577 1577 4 -1578 1577 -1 -1677 1577 -1 -1578 1578 4 -1579 1578 -1 -1678 1578 -1 -1579 1579 4 -1580 1579 -1 -1679 1579 -1 -1580 1580 4 -1581 1580 -1 -1680 1580 -1 -1581 1581 4 -1582 1581 -1 -1681 1581 -1 -1582 1582 4 -1583 1582 -1 -1682 1582 -1 -1583 1583 4 -1584 1583 -1 -1683 1583 -1 -1584 1584 4 -1585 1584 -1 -1684 1584 -1 -1585 1585 4 -1586 1585 -1 -1685 1585 -1 -1586 1586 4 -1587 1586 -1 -1686 1586 -1 -1587 1587 4 -1588 1587 -1 -1687 1587 -1 -1588 1588 4 -1589 1588 -1 -1688 1588 -1 -1589 1589 4 -1590 1589 -1 -1689 1589 -1 -1590 1590 4 -1591 1590 -1 -1690 1590 -1 -1591 1591 4 -1592 1591 -1 -1691 1591 -1 -1592 1592 4 -1593 1592 -1 -1692 1592 -1 -1593 1593 4 -1594 1593 -1 -1693 1593 -1 -1594 1594 4 -1595 1594 -1 -1694 1594 -1 -1595 1595 4 -1596 1595 -1 -1695 1595 -1 -1596 1596 4 -1597 1596 -1 -1696 1596 -1 -1597 1597 4 -1598 1597 -1 -1697 1597 -1 -1598 1598 4 -1599 1598 -1 -1698 1598 -1 -1599 1599 4 -1600 1599 -1 -1699 1599 -1 -1600 1600 4 -1700 1600 -1 -1601 1601 4 -1602 1601 -1 -1701 1601 -1 -1602 1602 4 -1603 1602 -1 -1702 1602 -1 -1603 1603 4 -1604 1603 -1 -1703 1603 -1 -1604 1604 4 -1605 1604 -1 -1704 1604 -1 -1605 1605 4 -1606 1605 -1 -1705 1605 -1 -1606 1606 4 -1607 1606 -1 -1706 1606 -1 -1607 1607 4 -1608 1607 -1 -1707 1607 -1 -1608 1608 4 -1609 1608 -1 -1708 1608 -1 -1609 1609 4 -1610 1609 -1 -1709 1609 -1 -1610 1610 4 -1611 1610 -1 -1710 1610 -1 -1611 1611 4 -1612 1611 -1 -1711 1611 -1 -1612 1612 4 -1613 1612 -1 -1712 1612 -1 -1613 1613 4 -1614 1613 -1 -1713 1613 -1 -1614 1614 4 -1615 1614 -1 -1714 1614 -1 -1615 1615 4 -1616 1615 -1 -1715 1615 -1 -1616 1616 4 -1617 1616 -1 -1716 1616 -1 -1617 1617 4 -1618 1617 -1 -1717 1617 -1 -1618 1618 4 -1619 1618 -1 -1718 1618 -1 -1619 1619 4 -1620 1619 -1 -1719 1619 -1 -1620 1620 4 -1621 1620 -1 -1720 1620 -1 -1621 1621 4 -1622 1621 -1 -1721 1621 -1 -1622 1622 4 -1623 1622 -1 -1722 1622 -1 -1623 1623 4 -1624 1623 -1 -1723 1623 -1 -1624 1624 4 -1625 1624 -1 -1724 1624 -1 -1625 1625 4 -1626 1625 -1 -1725 1625 -1 -1626 1626 4 -1627 1626 -1 -1726 1626 -1 -1627 1627 4 -1628 1627 -1 -1727 1627 -1 -1628 1628 4 -1629 1628 -1 -1728 1628 -1 -1629 1629 4 -1630 1629 -1 -1729 1629 -1 -1630 1630 4 -1631 1630 -1 -1730 1630 -1 -1631 1631 4 -1632 1631 -1 -1731 1631 -1 -1632 1632 4 -1633 1632 -1 -1732 1632 -1 -1633 1633 4 -1634 1633 -1 -1733 1633 -1 -1634 1634 4 -1635 1634 -1 -1734 1634 -1 -1635 1635 4 -1636 1635 -1 -1735 1635 -1 -1636 1636 4 -1637 1636 -1 -1736 1636 -1 -1637 1637 4 -1638 1637 -1 -1737 1637 -1 -1638 1638 4 -1639 1638 -1 -1738 1638 -1 -1639 1639 4 -1640 1639 -1 -1739 1639 -1 -1640 1640 4 -1641 1640 -1 -1740 1640 -1 -1641 1641 4 -1642 1641 -1 -1741 1641 -1 -1642 1642 4 -1643 1642 -1 -1742 1642 -1 -1643 1643 4 -1644 1643 -1 -1743 1643 -1 -1644 1644 4 -1645 1644 -1 -1744 1644 -1 -1645 1645 4 -1646 1645 -1 -1745 1645 -1 -1646 1646 4 -1647 1646 -1 -1746 1646 -1 -1647 1647 4 -1648 1647 -1 -1747 1647 -1 -1648 1648 4 -1649 1648 -1 -1748 1648 -1 -1649 1649 4 -1650 1649 -1 -1749 1649 -1 -1650 1650 4 -1651 1650 -1 -1750 1650 -1 -1651 1651 4 -1652 1651 -1 -1751 1651 -1 -1652 1652 4 -1653 1652 -1 -1752 1652 -1 -1653 1653 4 -1654 1653 -1 -1753 1653 -1 -1654 1654 4 -1655 1654 -1 -1754 1654 -1 -1655 1655 4 -1656 1655 -1 -1755 1655 -1 -1656 1656 4 -1657 1656 -1 -1756 1656 -1 -1657 1657 4 -1658 1657 -1 -1757 1657 -1 -1658 1658 4 -1659 1658 -1 -1758 1658 -1 -1659 1659 4 -1660 1659 -1 -1759 1659 -1 -1660 1660 4 -1661 1660 -1 -1760 1660 -1 -1661 1661 4 -1662 1661 -1 -1761 1661 -1 -1662 1662 4 -1663 1662 -1 -1762 1662 -1 -1663 1663 4 -1664 1663 -1 -1763 1663 -1 -1664 1664 4 -1665 1664 -1 -1764 1664 -1 -1665 1665 4 -1666 1665 -1 -1765 1665 -1 -1666 1666 4 -1667 1666 -1 -1766 1666 -1 -1667 1667 4 -1668 1667 -1 -1767 1667 -1 -1668 1668 4 -1669 1668 -1 -1768 1668 -1 -1669 1669 4 -1670 1669 -1 -1769 1669 -1 -1670 1670 4 -1671 1670 -1 -1770 1670 -1 -1671 1671 4 -1672 1671 -1 -1771 1671 -1 -1672 1672 4 -1673 1672 -1 -1772 1672 -1 -1673 1673 4 -1674 1673 -1 -1773 1673 -1 -1674 1674 4 -1675 1674 -1 -1774 1674 -1 -1675 1675 4 -1676 1675 -1 -1775 1675 -1 -1676 1676 4 -1677 1676 -1 -1776 1676 -1 -1677 1677 4 -1678 1677 -1 -1777 1677 -1 -1678 1678 4 -1679 1678 -1 -1778 1678 -1 -1679 1679 4 -1680 1679 -1 -1779 1679 -1 -1680 1680 4 -1681 1680 -1 -1780 1680 -1 -1681 1681 4 -1682 1681 -1 -1781 1681 -1 -1682 1682 4 -1683 1682 -1 -1782 1682 -1 -1683 1683 4 -1684 1683 -1 -1783 1683 -1 -1684 1684 4 -1685 1684 -1 -1784 1684 -1 -1685 1685 4 -1686 1685 -1 -1785 1685 -1 -1686 1686 4 -1687 1686 -1 -1786 1686 -1 -1687 1687 4 -1688 1687 -1 -1787 1687 -1 -1688 1688 4 -1689 1688 -1 -1788 1688 -1 -1689 1689 4 -1690 1689 -1 -1789 1689 -1 -1690 1690 4 -1691 1690 -1 -1790 1690 -1 -1691 1691 4 -1692 1691 -1 -1791 1691 -1 -1692 1692 4 -1693 1692 -1 -1792 1692 -1 -1693 1693 4 -1694 1693 -1 -1793 1693 -1 -1694 1694 4 -1695 1694 -1 -1794 1694 -1 -1695 1695 4 -1696 1695 -1 -1795 1695 -1 -1696 1696 4 -1697 1696 -1 -1796 1696 -1 -1697 1697 4 -1698 1697 -1 -1797 1697 -1 -1698 1698 4 -1699 1698 -1 -1798 1698 -1 -1699 1699 4 -1700 1699 -1 -1799 1699 -1 -1700 1700 4 -1800 1700 -1 -1701 1701 4 -1702 1701 -1 -1801 1701 -1 -1702 1702 4 -1703 1702 -1 -1802 1702 -1 -1703 1703 4 -1704 1703 -1 -1803 1703 -1 -1704 1704 4 -1705 1704 -1 -1804 1704 -1 -1705 1705 4 -1706 1705 -1 -1805 1705 -1 -1706 1706 4 -1707 1706 -1 -1806 1706 -1 -1707 1707 4 -1708 1707 -1 -1807 1707 -1 -1708 1708 4 -1709 1708 -1 -1808 1708 -1 -1709 1709 4 -1710 1709 -1 -1809 1709 -1 -1710 1710 4 -1711 1710 -1 -1810 1710 -1 -1711 1711 4 -1712 1711 -1 -1811 1711 -1 -1712 1712 4 -1713 1712 -1 -1812 1712 -1 -1713 1713 4 -1714 1713 -1 -1813 1713 -1 -1714 1714 4 -1715 1714 -1 -1814 1714 -1 -1715 1715 4 -1716 1715 -1 -1815 1715 -1 -1716 1716 4 -1717 1716 -1 -1816 1716 -1 -1717 1717 4 -1718 1717 -1 -1817 1717 -1 -1718 1718 4 -1719 1718 -1 -1818 1718 -1 -1719 1719 4 -1720 1719 -1 -1819 1719 -1 -1720 1720 4 -1721 1720 -1 -1820 1720 -1 -1721 1721 4 -1722 1721 -1 -1821 1721 -1 -1722 1722 4 -1723 1722 -1 -1822 1722 -1 -1723 1723 4 -1724 1723 -1 -1823 1723 -1 -1724 1724 4 -1725 1724 -1 -1824 1724 -1 -1725 1725 4 -1726 1725 -1 -1825 1725 -1 -1726 1726 4 -1727 1726 -1 -1826 1726 -1 -1727 1727 4 -1728 1727 -1 -1827 1727 -1 -1728 1728 4 -1729 1728 -1 -1828 1728 -1 -1729 1729 4 -1730 1729 -1 -1829 1729 -1 -1730 1730 4 -1731 1730 -1 -1830 1730 -1 -1731 1731 4 -1732 1731 -1 -1831 1731 -1 -1732 1732 4 -1733 1732 -1 -1832 1732 -1 -1733 1733 4 -1734 1733 -1 -1833 1733 -1 -1734 1734 4 -1735 1734 -1 -1834 1734 -1 -1735 1735 4 -1736 1735 -1 -1835 1735 -1 -1736 1736 4 -1737 1736 -1 -1836 1736 -1 -1737 1737 4 -1738 1737 -1 -1837 1737 -1 -1738 1738 4 -1739 1738 -1 -1838 1738 -1 -1739 1739 4 -1740 1739 -1 -1839 1739 -1 -1740 1740 4 -1741 1740 -1 -1840 1740 -1 -1741 1741 4 -1742 1741 -1 -1841 1741 -1 -1742 1742 4 -1743 1742 -1 -1842 1742 -1 -1743 1743 4 -1744 1743 -1 -1843 1743 -1 -1744 1744 4 -1745 1744 -1 -1844 1744 -1 -1745 1745 4 -1746 1745 -1 -1845 1745 -1 -1746 1746 4 -1747 1746 -1 -1846 1746 -1 -1747 1747 4 -1748 1747 -1 -1847 1747 -1 -1748 1748 4 -1749 1748 -1 -1848 1748 -1 -1749 1749 4 -1750 1749 -1 -1849 1749 -1 -1750 1750 4 -1751 1750 -1 -1850 1750 -1 -1751 1751 4 -1752 1751 -1 -1851 1751 -1 -1752 1752 4 -1753 1752 -1 -1852 1752 -1 -1753 1753 4 -1754 1753 -1 -1853 1753 -1 -1754 1754 4 -1755 1754 -1 -1854 1754 -1 -1755 1755 4 -1756 1755 -1 -1855 1755 -1 -1756 1756 4 -1757 1756 -1 -1856 1756 -1 -1757 1757 4 -1758 1757 -1 -1857 1757 -1 -1758 1758 4 -1759 1758 -1 -1858 1758 -1 -1759 1759 4 -1760 1759 -1 -1859 1759 -1 -1760 1760 4 -1761 1760 -1 -1860 1760 -1 -1761 1761 4 -1762 1761 -1 -1861 1761 -1 -1762 1762 4 -1763 1762 -1 -1862 1762 -1 -1763 1763 4 -1764 1763 -1 -1863 1763 -1 -1764 1764 4 -1765 1764 -1 -1864 1764 -1 -1765 1765 4 -1766 1765 -1 -1865 1765 -1 -1766 1766 4 -1767 1766 -1 -1866 1766 -1 -1767 1767 4 -1768 1767 -1 -1867 1767 -1 -1768 1768 4 -1769 1768 -1 -1868 1768 -1 -1769 1769 4 -1770 1769 -1 -1869 1769 -1 -1770 1770 4 -1771 1770 -1 -1870 1770 -1 -1771 1771 4 -1772 1771 -1 -1871 1771 -1 -1772 1772 4 -1773 1772 -1 -1872 1772 -1 -1773 1773 4 -1774 1773 -1 -1873 1773 -1 -1774 1774 4 -1775 1774 -1 -1874 1774 -1 -1775 1775 4 -1776 1775 -1 -1875 1775 -1 -1776 1776 4 -1777 1776 -1 -1876 1776 -1 -1777 1777 4 -1778 1777 -1 -1877 1777 -1 -1778 1778 4 -1779 1778 -1 -1878 1778 -1 -1779 1779 4 -1780 1779 -1 -1879 1779 -1 -1780 1780 4 -1781 1780 -1 -1880 1780 -1 -1781 1781 4 -1782 1781 -1 -1881 1781 -1 -1782 1782 4 -1783 1782 -1 -1882 1782 -1 -1783 1783 4 -1784 1783 -1 -1883 1783 -1 -1784 1784 4 -1785 1784 -1 -1884 1784 -1 -1785 1785 4 -1786 1785 -1 -1885 1785 -1 -1786 1786 4 -1787 1786 -1 -1886 1786 -1 -1787 1787 4 -1788 1787 -1 -1887 1787 -1 -1788 1788 4 -1789 1788 -1 -1888 1788 -1 -1789 1789 4 -1790 1789 -1 -1889 1789 -1 -1790 1790 4 -1791 1790 -1 -1890 1790 -1 -1791 1791 4 -1792 1791 -1 -1891 1791 -1 -1792 1792 4 -1793 1792 -1 -1892 1792 -1 -1793 1793 4 -1794 1793 -1 -1893 1793 -1 -1794 1794 4 -1795 1794 -1 -1894 1794 -1 -1795 1795 4 -1796 1795 -1 -1895 1795 -1 -1796 1796 4 -1797 1796 -1 -1896 1796 -1 -1797 1797 4 -1798 1797 -1 -1897 1797 -1 -1798 1798 4 -1799 1798 -1 -1898 1798 -1 -1799 1799 4 -1800 1799 -1 -1899 1799 -1 -1800 1800 4 -1900 1800 -1 -1801 1801 4 -1802 1801 -1 -1901 1801 -1 -1802 1802 4 -1803 1802 -1 -1902 1802 -1 -1803 1803 4 -1804 1803 -1 -1903 1803 -1 -1804 1804 4 -1805 1804 -1 -1904 1804 -1 -1805 1805 4 -1806 1805 -1 -1905 1805 -1 -1806 1806 4 -1807 1806 -1 -1906 1806 -1 -1807 1807 4 -1808 1807 -1 -1907 1807 -1 -1808 1808 4 -1809 1808 -1 -1908 1808 -1 -1809 1809 4 -1810 1809 -1 -1909 1809 -1 -1810 1810 4 -1811 1810 -1 -1910 1810 -1 -1811 1811 4 -1812 1811 -1 -1911 1811 -1 -1812 1812 4 -1813 1812 -1 -1912 1812 -1 -1813 1813 4 -1814 1813 -1 -1913 1813 -1 -1814 1814 4 -1815 1814 -1 -1914 1814 -1 -1815 1815 4 -1816 1815 -1 -1915 1815 -1 -1816 1816 4 -1817 1816 -1 -1916 1816 -1 -1817 1817 4 -1818 1817 -1 -1917 1817 -1 -1818 1818 4 -1819 1818 -1 -1918 1818 -1 -1819 1819 4 -1820 1819 -1 -1919 1819 -1 -1820 1820 4 -1821 1820 -1 -1920 1820 -1 -1821 1821 4 -1822 1821 -1 -1921 1821 -1 -1822 1822 4 -1823 1822 -1 -1922 1822 -1 -1823 1823 4 -1824 1823 -1 -1923 1823 -1 -1824 1824 4 -1825 1824 -1 -1924 1824 -1 -1825 1825 4 -1826 1825 -1 -1925 1825 -1 -1826 1826 4 -1827 1826 -1 -1926 1826 -1 -1827 1827 4 -1828 1827 -1 -1927 1827 -1 -1828 1828 4 -1829 1828 -1 -1928 1828 -1 -1829 1829 4 -1830 1829 -1 -1929 1829 -1 -1830 1830 4 -1831 1830 -1 -1930 1830 -1 -1831 1831 4 -1832 1831 -1 -1931 1831 -1 -1832 1832 4 -1833 1832 -1 -1932 1832 -1 -1833 1833 4 -1834 1833 -1 -1933 1833 -1 -1834 1834 4 -1835 1834 -1 -1934 1834 -1 -1835 1835 4 -1836 1835 -1 -1935 1835 -1 -1836 1836 4 -1837 1836 -1 -1936 1836 -1 -1837 1837 4 -1838 1837 -1 -1937 1837 -1 -1838 1838 4 -1839 1838 -1 -1938 1838 -1 -1839 1839 4 -1840 1839 -1 -1939 1839 -1 -1840 1840 4 -1841 1840 -1 -1940 1840 -1 -1841 1841 4 -1842 1841 -1 -1941 1841 -1 -1842 1842 4 -1843 1842 -1 -1942 1842 -1 -1843 1843 4 -1844 1843 -1 -1943 1843 -1 -1844 1844 4 -1845 1844 -1 -1944 1844 -1 -1845 1845 4 -1846 1845 -1 -1945 1845 -1 -1846 1846 4 -1847 1846 -1 -1946 1846 -1 -1847 1847 4 -1848 1847 -1 -1947 1847 -1 -1848 1848 4 -1849 1848 -1 -1948 1848 -1 -1849 1849 4 -1850 1849 -1 -1949 1849 -1 -1850 1850 4 -1851 1850 -1 -1950 1850 -1 -1851 1851 4 -1852 1851 -1 -1951 1851 -1 -1852 1852 4 -1853 1852 -1 -1952 1852 -1 -1853 1853 4 -1854 1853 -1 -1953 1853 -1 -1854 1854 4 -1855 1854 -1 -1954 1854 -1 -1855 1855 4 -1856 1855 -1 -1955 1855 -1 -1856 1856 4 -1857 1856 -1 -1956 1856 -1 -1857 1857 4 -1858 1857 -1 -1957 1857 -1 -1858 1858 4 -1859 1858 -1 -1958 1858 -1 -1859 1859 4 -1860 1859 -1 -1959 1859 -1 -1860 1860 4 -1861 1860 -1 -1960 1860 -1 -1861 1861 4 -1862 1861 -1 -1961 1861 -1 -1862 1862 4 -1863 1862 -1 -1962 1862 -1 -1863 1863 4 -1864 1863 -1 -1963 1863 -1 -1864 1864 4 -1865 1864 -1 -1964 1864 -1 -1865 1865 4 -1866 1865 -1 -1965 1865 -1 -1866 1866 4 -1867 1866 -1 -1966 1866 -1 -1867 1867 4 -1868 1867 -1 -1967 1867 -1 -1868 1868 4 -1869 1868 -1 -1968 1868 -1 -1869 1869 4 -1870 1869 -1 -1969 1869 -1 -1870 1870 4 -1871 1870 -1 -1970 1870 -1 -1871 1871 4 -1872 1871 -1 -1971 1871 -1 -1872 1872 4 -1873 1872 -1 -1972 1872 -1 -1873 1873 4 -1874 1873 -1 -1973 1873 -1 -1874 1874 4 -1875 1874 -1 -1974 1874 -1 -1875 1875 4 -1876 1875 -1 -1975 1875 -1 -1876 1876 4 -1877 1876 -1 -1976 1876 -1 -1877 1877 4 -1878 1877 -1 -1977 1877 -1 -1878 1878 4 -1879 1878 -1 -1978 1878 -1 -1879 1879 4 -1880 1879 -1 -1979 1879 -1 -1880 1880 4 -1881 1880 -1 -1980 1880 -1 -1881 1881 4 -1882 1881 -1 -1981 1881 -1 -1882 1882 4 -1883 1882 -1 -1982 1882 -1 -1883 1883 4 -1884 1883 -1 -1983 1883 -1 -1884 1884 4 -1885 1884 -1 -1984 1884 -1 -1885 1885 4 -1886 1885 -1 -1985 1885 -1 -1886 1886 4 -1887 1886 -1 -1986 1886 -1 -1887 1887 4 -1888 1887 -1 -1987 1887 -1 -1888 1888 4 -1889 1888 -1 -1988 1888 -1 -1889 1889 4 -1890 1889 -1 -1989 1889 -1 -1890 1890 4 -1891 1890 -1 -1990 1890 -1 -1891 1891 4 -1892 1891 -1 -1991 1891 -1 -1892 1892 4 -1893 1892 -1 -1992 1892 -1 -1893 1893 4 -1894 1893 -1 -1993 1893 -1 -1894 1894 4 -1895 1894 -1 -1994 1894 -1 -1895 1895 4 -1896 1895 -1 -1995 1895 -1 -1896 1896 4 -1897 1896 -1 -1996 1896 -1 -1897 1897 4 -1898 1897 -1 -1997 1897 -1 -1898 1898 4 -1899 1898 -1 -1998 1898 -1 -1899 1899 4 -1900 1899 -1 -1999 1899 -1 -1900 1900 4 -2000 1900 -1 -1901 1901 4 -1902 1901 -1 -2001 1901 -1 -1902 1902 4 -1903 1902 -1 -2002 1902 -1 -1903 1903 4 -1904 1903 -1 -2003 1903 -1 -1904 1904 4 -1905 1904 -1 -2004 1904 -1 -1905 1905 4 -1906 1905 -1 -2005 1905 -1 -1906 1906 4 -1907 1906 -1 -2006 1906 -1 -1907 1907 4 -1908 1907 -1 -2007 1907 -1 -1908 1908 4 -1909 1908 -1 -2008 1908 -1 -1909 1909 4 -1910 1909 -1 -2009 1909 -1 -1910 1910 4 -1911 1910 -1 -2010 1910 -1 -1911 1911 4 -1912 1911 -1 -2011 1911 -1 -1912 1912 4 -1913 1912 -1 -2012 1912 -1 -1913 1913 4 -1914 1913 -1 -2013 1913 -1 -1914 1914 4 -1915 1914 -1 -2014 1914 -1 -1915 1915 4 -1916 1915 -1 -2015 1915 -1 -1916 1916 4 -1917 1916 -1 -2016 1916 -1 -1917 1917 4 -1918 1917 -1 -2017 1917 -1 -1918 1918 4 -1919 1918 -1 -2018 1918 -1 -1919 1919 4 -1920 1919 -1 -2019 1919 -1 -1920 1920 4 -1921 1920 -1 -2020 1920 -1 -1921 1921 4 -1922 1921 -1 -2021 1921 -1 -1922 1922 4 -1923 1922 -1 -2022 1922 -1 -1923 1923 4 -1924 1923 -1 -2023 1923 -1 -1924 1924 4 -1925 1924 -1 -2024 1924 -1 -1925 1925 4 -1926 1925 -1 -2025 1925 -1 -1926 1926 4 -1927 1926 -1 -2026 1926 -1 -1927 1927 4 -1928 1927 -1 -2027 1927 -1 -1928 1928 4 -1929 1928 -1 -2028 1928 -1 -1929 1929 4 -1930 1929 -1 -2029 1929 -1 -1930 1930 4 -1931 1930 -1 -2030 1930 -1 -1931 1931 4 -1932 1931 -1 -2031 1931 -1 -1932 1932 4 -1933 1932 -1 -2032 1932 -1 -1933 1933 4 -1934 1933 -1 -2033 1933 -1 -1934 1934 4 -1935 1934 -1 -2034 1934 -1 -1935 1935 4 -1936 1935 -1 -2035 1935 -1 -1936 1936 4 -1937 1936 -1 -2036 1936 -1 -1937 1937 4 -1938 1937 -1 -2037 1937 -1 -1938 1938 4 -1939 1938 -1 -2038 1938 -1 -1939 1939 4 -1940 1939 -1 -2039 1939 -1 -1940 1940 4 -1941 1940 -1 -2040 1940 -1 -1941 1941 4 -1942 1941 -1 -2041 1941 -1 -1942 1942 4 -1943 1942 -1 -2042 1942 -1 -1943 1943 4 -1944 1943 -1 -2043 1943 -1 -1944 1944 4 -1945 1944 -1 -2044 1944 -1 -1945 1945 4 -1946 1945 -1 -2045 1945 -1 -1946 1946 4 -1947 1946 -1 -2046 1946 -1 -1947 1947 4 -1948 1947 -1 -2047 1947 -1 -1948 1948 4 -1949 1948 -1 -2048 1948 -1 -1949 1949 4 -1950 1949 -1 -2049 1949 -1 -1950 1950 4 -1951 1950 -1 -2050 1950 -1 -1951 1951 4 -1952 1951 -1 -2051 1951 -1 -1952 1952 4 -1953 1952 -1 -2052 1952 -1 -1953 1953 4 -1954 1953 -1 -2053 1953 -1 -1954 1954 4 -1955 1954 -1 -2054 1954 -1 -1955 1955 4 -1956 1955 -1 -2055 1955 -1 -1956 1956 4 -1957 1956 -1 -2056 1956 -1 -1957 1957 4 -1958 1957 -1 -2057 1957 -1 -1958 1958 4 -1959 1958 -1 -2058 1958 -1 -1959 1959 4 -1960 1959 -1 -2059 1959 -1 -1960 1960 4 -1961 1960 -1 -2060 1960 -1 -1961 1961 4 -1962 1961 -1 -2061 1961 -1 -1962 1962 4 -1963 1962 -1 -2062 1962 -1 -1963 1963 4 -1964 1963 -1 -2063 1963 -1 -1964 1964 4 -1965 1964 -1 -2064 1964 -1 -1965 1965 4 -1966 1965 -1 -2065 1965 -1 -1966 1966 4 -1967 1966 -1 -2066 1966 -1 -1967 1967 4 -1968 1967 -1 -2067 1967 -1 -1968 1968 4 -1969 1968 -1 -2068 1968 -1 -1969 1969 4 -1970 1969 -1 -2069 1969 -1 -1970 1970 4 -1971 1970 -1 -2070 1970 -1 -1971 1971 4 -1972 1971 -1 -2071 1971 -1 -1972 1972 4 -1973 1972 -1 -2072 1972 -1 -1973 1973 4 -1974 1973 -1 -2073 1973 -1 -1974 1974 4 -1975 1974 -1 -2074 1974 -1 -1975 1975 4 -1976 1975 -1 -2075 1975 -1 -1976 1976 4 -1977 1976 -1 -2076 1976 -1 -1977 1977 4 -1978 1977 -1 -2077 1977 -1 -1978 1978 4 -1979 1978 -1 -2078 1978 -1 -1979 1979 4 -1980 1979 -1 -2079 1979 -1 -1980 1980 4 -1981 1980 -1 -2080 1980 -1 -1981 1981 4 -1982 1981 -1 -2081 1981 -1 -1982 1982 4 -1983 1982 -1 -2082 1982 -1 -1983 1983 4 -1984 1983 -1 -2083 1983 -1 -1984 1984 4 -1985 1984 -1 -2084 1984 -1 -1985 1985 4 -1986 1985 -1 -2085 1985 -1 -1986 1986 4 -1987 1986 -1 -2086 1986 -1 -1987 1987 4 -1988 1987 -1 -2087 1987 -1 -1988 1988 4 -1989 1988 -1 -2088 1988 -1 -1989 1989 4 -1990 1989 -1 -2089 1989 -1 -1990 1990 4 -1991 1990 -1 -2090 1990 -1 -1991 1991 4 -1992 1991 -1 -2091 1991 -1 -1992 1992 4 -1993 1992 -1 -2092 1992 -1 -1993 1993 4 -1994 1993 -1 -2093 1993 -1 -1994 1994 4 -1995 1994 -1 -2094 1994 -1 -1995 1995 4 -1996 1995 -1 -2095 1995 -1 -1996 1996 4 -1997 1996 -1 -2096 1996 -1 -1997 1997 4 -1998 1997 -1 -2097 1997 -1 -1998 1998 4 -1999 1998 -1 -2098 1998 -1 -1999 1999 4 -2000 1999 -1 -2099 1999 -1 -2000 2000 4 -2100 2000 -1 -2001 2001 4 -2002 2001 -1 -2101 2001 -1 -2002 2002 4 -2003 2002 -1 -2102 2002 -1 -2003 2003 4 -2004 2003 -1 -2103 2003 -1 -2004 2004 4 -2005 2004 -1 -2104 2004 -1 -2005 2005 4 -2006 2005 -1 -2105 2005 -1 -2006 2006 4 -2007 2006 -1 -2106 2006 -1 -2007 2007 4 -2008 2007 -1 -2107 2007 -1 -2008 2008 4 -2009 2008 -1 -2108 2008 -1 -2009 2009 4 -2010 2009 -1 -2109 2009 -1 -2010 2010 4 -2011 2010 -1 -2110 2010 -1 -2011 2011 4 -2012 2011 -1 -2111 2011 -1 -2012 2012 4 -2013 2012 -1 -2112 2012 -1 -2013 2013 4 -2014 2013 -1 -2113 2013 -1 -2014 2014 4 -2015 2014 -1 -2114 2014 -1 -2015 2015 4 -2016 2015 -1 -2115 2015 -1 -2016 2016 4 -2017 2016 -1 -2116 2016 -1 -2017 2017 4 -2018 2017 -1 -2117 2017 -1 -2018 2018 4 -2019 2018 -1 -2118 2018 -1 -2019 2019 4 -2020 2019 -1 -2119 2019 -1 -2020 2020 4 -2021 2020 -1 -2120 2020 -1 -2021 2021 4 -2022 2021 -1 -2121 2021 -1 -2022 2022 4 -2023 2022 -1 -2122 2022 -1 -2023 2023 4 -2024 2023 -1 -2123 2023 -1 -2024 2024 4 -2025 2024 -1 -2124 2024 -1 -2025 2025 4 -2026 2025 -1 -2125 2025 -1 -2026 2026 4 -2027 2026 -1 -2126 2026 -1 -2027 2027 4 -2028 2027 -1 -2127 2027 -1 -2028 2028 4 -2029 2028 -1 -2128 2028 -1 -2029 2029 4 -2030 2029 -1 -2129 2029 -1 -2030 2030 4 -2031 2030 -1 -2130 2030 -1 -2031 2031 4 -2032 2031 -1 -2131 2031 -1 -2032 2032 4 -2033 2032 -1 -2132 2032 -1 -2033 2033 4 -2034 2033 -1 -2133 2033 -1 -2034 2034 4 -2035 2034 -1 -2134 2034 -1 -2035 2035 4 -2036 2035 -1 -2135 2035 -1 -2036 2036 4 -2037 2036 -1 -2136 2036 -1 -2037 2037 4 -2038 2037 -1 -2137 2037 -1 -2038 2038 4 -2039 2038 -1 -2138 2038 -1 -2039 2039 4 -2040 2039 -1 -2139 2039 -1 -2040 2040 4 -2041 2040 -1 -2140 2040 -1 -2041 2041 4 -2042 2041 -1 -2141 2041 -1 -2042 2042 4 -2043 2042 -1 -2142 2042 -1 -2043 2043 4 -2044 2043 -1 -2143 2043 -1 -2044 2044 4 -2045 2044 -1 -2144 2044 -1 -2045 2045 4 -2046 2045 -1 -2145 2045 -1 -2046 2046 4 -2047 2046 -1 -2146 2046 -1 -2047 2047 4 -2048 2047 -1 -2147 2047 -1 -2048 2048 4 -2049 2048 -1 -2148 2048 -1 -2049 2049 4 -2050 2049 -1 -2149 2049 -1 -2050 2050 4 -2051 2050 -1 -2150 2050 -1 -2051 2051 4 -2052 2051 -1 -2151 2051 -1 -2052 2052 4 -2053 2052 -1 -2152 2052 -1 -2053 2053 4 -2054 2053 -1 -2153 2053 -1 -2054 2054 4 -2055 2054 -1 -2154 2054 -1 -2055 2055 4 -2056 2055 -1 -2155 2055 -1 -2056 2056 4 -2057 2056 -1 -2156 2056 -1 -2057 2057 4 -2058 2057 -1 -2157 2057 -1 -2058 2058 4 -2059 2058 -1 -2158 2058 -1 -2059 2059 4 -2060 2059 -1 -2159 2059 -1 -2060 2060 4 -2061 2060 -1 -2160 2060 -1 -2061 2061 4 -2062 2061 -1 -2161 2061 -1 -2062 2062 4 -2063 2062 -1 -2162 2062 -1 -2063 2063 4 -2064 2063 -1 -2163 2063 -1 -2064 2064 4 -2065 2064 -1 -2164 2064 -1 -2065 2065 4 -2066 2065 -1 -2165 2065 -1 -2066 2066 4 -2067 2066 -1 -2166 2066 -1 -2067 2067 4 -2068 2067 -1 -2167 2067 -1 -2068 2068 4 -2069 2068 -1 -2168 2068 -1 -2069 2069 4 -2070 2069 -1 -2169 2069 -1 -2070 2070 4 -2071 2070 -1 -2170 2070 -1 -2071 2071 4 -2072 2071 -1 -2171 2071 -1 -2072 2072 4 -2073 2072 -1 -2172 2072 -1 -2073 2073 4 -2074 2073 -1 -2173 2073 -1 -2074 2074 4 -2075 2074 -1 -2174 2074 -1 -2075 2075 4 -2076 2075 -1 -2175 2075 -1 -2076 2076 4 -2077 2076 -1 -2176 2076 -1 -2077 2077 4 -2078 2077 -1 -2177 2077 -1 -2078 2078 4 -2079 2078 -1 -2178 2078 -1 -2079 2079 4 -2080 2079 -1 -2179 2079 -1 -2080 2080 4 -2081 2080 -1 -2180 2080 -1 -2081 2081 4 -2082 2081 -1 -2181 2081 -1 -2082 2082 4 -2083 2082 -1 -2182 2082 -1 -2083 2083 4 -2084 2083 -1 -2183 2083 -1 -2084 2084 4 -2085 2084 -1 -2184 2084 -1 -2085 2085 4 -2086 2085 -1 -2185 2085 -1 -2086 2086 4 -2087 2086 -1 -2186 2086 -1 -2087 2087 4 -2088 2087 -1 -2187 2087 -1 -2088 2088 4 -2089 2088 -1 -2188 2088 -1 -2089 2089 4 -2090 2089 -1 -2189 2089 -1 -2090 2090 4 -2091 2090 -1 -2190 2090 -1 -2091 2091 4 -2092 2091 -1 -2191 2091 -1 -2092 2092 4 -2093 2092 -1 -2192 2092 -1 -2093 2093 4 -2094 2093 -1 -2193 2093 -1 -2094 2094 4 -2095 2094 -1 -2194 2094 -1 -2095 2095 4 -2096 2095 -1 -2195 2095 -1 -2096 2096 4 -2097 2096 -1 -2196 2096 -1 -2097 2097 4 -2098 2097 -1 -2197 2097 -1 -2098 2098 4 -2099 2098 -1 -2198 2098 -1 -2099 2099 4 -2100 2099 -1 -2199 2099 -1 -2100 2100 4 -2200 2100 -1 -2101 2101 4 -2102 2101 -1 -2201 2101 -1 -2102 2102 4 -2103 2102 -1 -2202 2102 -1 -2103 2103 4 -2104 2103 -1 -2203 2103 -1 -2104 2104 4 -2105 2104 -1 -2204 2104 -1 -2105 2105 4 -2106 2105 -1 -2205 2105 -1 -2106 2106 4 -2107 2106 -1 -2206 2106 -1 -2107 2107 4 -2108 2107 -1 -2207 2107 -1 -2108 2108 4 -2109 2108 -1 -2208 2108 -1 -2109 2109 4 -2110 2109 -1 -2209 2109 -1 -2110 2110 4 -2111 2110 -1 -2210 2110 -1 -2111 2111 4 -2112 2111 -1 -2211 2111 -1 -2112 2112 4 -2113 2112 -1 -2212 2112 -1 -2113 2113 4 -2114 2113 -1 -2213 2113 -1 -2114 2114 4 -2115 2114 -1 -2214 2114 -1 -2115 2115 4 -2116 2115 -1 -2215 2115 -1 -2116 2116 4 -2117 2116 -1 -2216 2116 -1 -2117 2117 4 -2118 2117 -1 -2217 2117 -1 -2118 2118 4 -2119 2118 -1 -2218 2118 -1 -2119 2119 4 -2120 2119 -1 -2219 2119 -1 -2120 2120 4 -2121 2120 -1 -2220 2120 -1 -2121 2121 4 -2122 2121 -1 -2221 2121 -1 -2122 2122 4 -2123 2122 -1 -2222 2122 -1 -2123 2123 4 -2124 2123 -1 -2223 2123 -1 -2124 2124 4 -2125 2124 -1 -2224 2124 -1 -2125 2125 4 -2126 2125 -1 -2225 2125 -1 -2126 2126 4 -2127 2126 -1 -2226 2126 -1 -2127 2127 4 -2128 2127 -1 -2227 2127 -1 -2128 2128 4 -2129 2128 -1 -2228 2128 -1 -2129 2129 4 -2130 2129 -1 -2229 2129 -1 -2130 2130 4 -2131 2130 -1 -2230 2130 -1 -2131 2131 4 -2132 2131 -1 -2231 2131 -1 -2132 2132 4 -2133 2132 -1 -2232 2132 -1 -2133 2133 4 -2134 2133 -1 -2233 2133 -1 -2134 2134 4 -2135 2134 -1 -2234 2134 -1 -2135 2135 4 -2136 2135 -1 -2235 2135 -1 -2136 2136 4 -2137 2136 -1 -2236 2136 -1 -2137 2137 4 -2138 2137 -1 -2237 2137 -1 -2138 2138 4 -2139 2138 -1 -2238 2138 -1 -2139 2139 4 -2140 2139 -1 -2239 2139 -1 -2140 2140 4 -2141 2140 -1 -2240 2140 -1 -2141 2141 4 -2142 2141 -1 -2241 2141 -1 -2142 2142 4 -2143 2142 -1 -2242 2142 -1 -2143 2143 4 -2144 2143 -1 -2243 2143 -1 -2144 2144 4 -2145 2144 -1 -2244 2144 -1 -2145 2145 4 -2146 2145 -1 -2245 2145 -1 -2146 2146 4 -2147 2146 -1 -2246 2146 -1 -2147 2147 4 -2148 2147 -1 -2247 2147 -1 -2148 2148 4 -2149 2148 -1 -2248 2148 -1 -2149 2149 4 -2150 2149 -1 -2249 2149 -1 -2150 2150 4 -2151 2150 -1 -2250 2150 -1 -2151 2151 4 -2152 2151 -1 -2251 2151 -1 -2152 2152 4 -2153 2152 -1 -2252 2152 -1 -2153 2153 4 -2154 2153 -1 -2253 2153 -1 -2154 2154 4 -2155 2154 -1 -2254 2154 -1 -2155 2155 4 -2156 2155 -1 -2255 2155 -1 -2156 2156 4 -2157 2156 -1 -2256 2156 -1 -2157 2157 4 -2158 2157 -1 -2257 2157 -1 -2158 2158 4 -2159 2158 -1 -2258 2158 -1 -2159 2159 4 -2160 2159 -1 -2259 2159 -1 -2160 2160 4 -2161 2160 -1 -2260 2160 -1 -2161 2161 4 -2162 2161 -1 -2261 2161 -1 -2162 2162 4 -2163 2162 -1 -2262 2162 -1 -2163 2163 4 -2164 2163 -1 -2263 2163 -1 -2164 2164 4 -2165 2164 -1 -2264 2164 -1 -2165 2165 4 -2166 2165 -1 -2265 2165 -1 -2166 2166 4 -2167 2166 -1 -2266 2166 -1 -2167 2167 4 -2168 2167 -1 -2267 2167 -1 -2168 2168 4 -2169 2168 -1 -2268 2168 -1 -2169 2169 4 -2170 2169 -1 -2269 2169 -1 -2170 2170 4 -2171 2170 -1 -2270 2170 -1 -2171 2171 4 -2172 2171 -1 -2271 2171 -1 -2172 2172 4 -2173 2172 -1 -2272 2172 -1 -2173 2173 4 -2174 2173 -1 -2273 2173 -1 -2174 2174 4 -2175 2174 -1 -2274 2174 -1 -2175 2175 4 -2176 2175 -1 -2275 2175 -1 -2176 2176 4 -2177 2176 -1 -2276 2176 -1 -2177 2177 4 -2178 2177 -1 -2277 2177 -1 -2178 2178 4 -2179 2178 -1 -2278 2178 -1 -2179 2179 4 -2180 2179 -1 -2279 2179 -1 -2180 2180 4 -2181 2180 -1 -2280 2180 -1 -2181 2181 4 -2182 2181 -1 -2281 2181 -1 -2182 2182 4 -2183 2182 -1 -2282 2182 -1 -2183 2183 4 -2184 2183 -1 -2283 2183 -1 -2184 2184 4 -2185 2184 -1 -2284 2184 -1 -2185 2185 4 -2186 2185 -1 -2285 2185 -1 -2186 2186 4 -2187 2186 -1 -2286 2186 -1 -2187 2187 4 -2188 2187 -1 -2287 2187 -1 -2188 2188 4 -2189 2188 -1 -2288 2188 -1 -2189 2189 4 -2190 2189 -1 -2289 2189 -1 -2190 2190 4 -2191 2190 -1 -2290 2190 -1 -2191 2191 4 -2192 2191 -1 -2291 2191 -1 -2192 2192 4 -2193 2192 -1 -2292 2192 -1 -2193 2193 4 -2194 2193 -1 -2293 2193 -1 -2194 2194 4 -2195 2194 -1 -2294 2194 -1 -2195 2195 4 -2196 2195 -1 -2295 2195 -1 -2196 2196 4 -2197 2196 -1 -2296 2196 -1 -2197 2197 4 -2198 2197 -1 -2297 2197 -1 -2198 2198 4 -2199 2198 -1 -2298 2198 -1 -2199 2199 4 -2200 2199 -1 -2299 2199 -1 -2200 2200 4 -2300 2200 -1 -2201 2201 4 -2202 2201 -1 -2301 2201 -1 -2202 2202 4 -2203 2202 -1 -2302 2202 -1 -2203 2203 4 -2204 2203 -1 -2303 2203 -1 -2204 2204 4 -2205 2204 -1 -2304 2204 -1 -2205 2205 4 -2206 2205 -1 -2305 2205 -1 -2206 2206 4 -2207 2206 -1 -2306 2206 -1 -2207 2207 4 -2208 2207 -1 -2307 2207 -1 -2208 2208 4 -2209 2208 -1 -2308 2208 -1 -2209 2209 4 -2210 2209 -1 -2309 2209 -1 -2210 2210 4 -2211 2210 -1 -2310 2210 -1 -2211 2211 4 -2212 2211 -1 -2311 2211 -1 -2212 2212 4 -2213 2212 -1 -2312 2212 -1 -2213 2213 4 -2214 2213 -1 -2313 2213 -1 -2214 2214 4 -2215 2214 -1 -2314 2214 -1 -2215 2215 4 -2216 2215 -1 -2315 2215 -1 -2216 2216 4 -2217 2216 -1 -2316 2216 -1 -2217 2217 4 -2218 2217 -1 -2317 2217 -1 -2218 2218 4 -2219 2218 -1 -2318 2218 -1 -2219 2219 4 -2220 2219 -1 -2319 2219 -1 -2220 2220 4 -2221 2220 -1 -2320 2220 -1 -2221 2221 4 -2222 2221 -1 -2321 2221 -1 -2222 2222 4 -2223 2222 -1 -2322 2222 -1 -2223 2223 4 -2224 2223 -1 -2323 2223 -1 -2224 2224 4 -2225 2224 -1 -2324 2224 -1 -2225 2225 4 -2226 2225 -1 -2325 2225 -1 -2226 2226 4 -2227 2226 -1 -2326 2226 -1 -2227 2227 4 -2228 2227 -1 -2327 2227 -1 -2228 2228 4 -2229 2228 -1 -2328 2228 -1 -2229 2229 4 -2230 2229 -1 -2329 2229 -1 -2230 2230 4 -2231 2230 -1 -2330 2230 -1 -2231 2231 4 -2232 2231 -1 -2331 2231 -1 -2232 2232 4 -2233 2232 -1 -2332 2232 -1 -2233 2233 4 -2234 2233 -1 -2333 2233 -1 -2234 2234 4 -2235 2234 -1 -2334 2234 -1 -2235 2235 4 -2236 2235 -1 -2335 2235 -1 -2236 2236 4 -2237 2236 -1 -2336 2236 -1 -2237 2237 4 -2238 2237 -1 -2337 2237 -1 -2238 2238 4 -2239 2238 -1 -2338 2238 -1 -2239 2239 4 -2240 2239 -1 -2339 2239 -1 -2240 2240 4 -2241 2240 -1 -2340 2240 -1 -2241 2241 4 -2242 2241 -1 -2341 2241 -1 -2242 2242 4 -2243 2242 -1 -2342 2242 -1 -2243 2243 4 -2244 2243 -1 -2343 2243 -1 -2244 2244 4 -2245 2244 -1 -2344 2244 -1 -2245 2245 4 -2246 2245 -1 -2345 2245 -1 -2246 2246 4 -2247 2246 -1 -2346 2246 -1 -2247 2247 4 -2248 2247 -1 -2347 2247 -1 -2248 2248 4 -2249 2248 -1 -2348 2248 -1 -2249 2249 4 -2250 2249 -1 -2349 2249 -1 -2250 2250 4 -2251 2250 -1 -2350 2250 -1 -2251 2251 4 -2252 2251 -1 -2351 2251 -1 -2252 2252 4 -2253 2252 -1 -2352 2252 -1 -2253 2253 4 -2254 2253 -1 -2353 2253 -1 -2254 2254 4 -2255 2254 -1 -2354 2254 -1 -2255 2255 4 -2256 2255 -1 -2355 2255 -1 -2256 2256 4 -2257 2256 -1 -2356 2256 -1 -2257 2257 4 -2258 2257 -1 -2357 2257 -1 -2258 2258 4 -2259 2258 -1 -2358 2258 -1 -2259 2259 4 -2260 2259 -1 -2359 2259 -1 -2260 2260 4 -2261 2260 -1 -2360 2260 -1 -2261 2261 4 -2262 2261 -1 -2361 2261 -1 -2262 2262 4 -2263 2262 -1 -2362 2262 -1 -2263 2263 4 -2264 2263 -1 -2363 2263 -1 -2264 2264 4 -2265 2264 -1 -2364 2264 -1 -2265 2265 4 -2266 2265 -1 -2365 2265 -1 -2266 2266 4 -2267 2266 -1 -2366 2266 -1 -2267 2267 4 -2268 2267 -1 -2367 2267 -1 -2268 2268 4 -2269 2268 -1 -2368 2268 -1 -2269 2269 4 -2270 2269 -1 -2369 2269 -1 -2270 2270 4 -2271 2270 -1 -2370 2270 -1 -2271 2271 4 -2272 2271 -1 -2371 2271 -1 -2272 2272 4 -2273 2272 -1 -2372 2272 -1 -2273 2273 4 -2274 2273 -1 -2373 2273 -1 -2274 2274 4 -2275 2274 -1 -2374 2274 -1 -2275 2275 4 -2276 2275 -1 -2375 2275 -1 -2276 2276 4 -2277 2276 -1 -2376 2276 -1 -2277 2277 4 -2278 2277 -1 -2377 2277 -1 -2278 2278 4 -2279 2278 -1 -2378 2278 -1 -2279 2279 4 -2280 2279 -1 -2379 2279 -1 -2280 2280 4 -2281 2280 -1 -2380 2280 -1 -2281 2281 4 -2282 2281 -1 -2381 2281 -1 -2282 2282 4 -2283 2282 -1 -2382 2282 -1 -2283 2283 4 -2284 2283 -1 -2383 2283 -1 -2284 2284 4 -2285 2284 -1 -2384 2284 -1 -2285 2285 4 -2286 2285 -1 -2385 2285 -1 -2286 2286 4 -2287 2286 -1 -2386 2286 -1 -2287 2287 4 -2288 2287 -1 -2387 2287 -1 -2288 2288 4 -2289 2288 -1 -2388 2288 -1 -2289 2289 4 -2290 2289 -1 -2389 2289 -1 -2290 2290 4 -2291 2290 -1 -2390 2290 -1 -2291 2291 4 -2292 2291 -1 -2391 2291 -1 -2292 2292 4 -2293 2292 -1 -2392 2292 -1 -2293 2293 4 -2294 2293 -1 -2393 2293 -1 -2294 2294 4 -2295 2294 -1 -2394 2294 -1 -2295 2295 4 -2296 2295 -1 -2395 2295 -1 -2296 2296 4 -2297 2296 -1 -2396 2296 -1 -2297 2297 4 -2298 2297 -1 -2397 2297 -1 -2298 2298 4 -2299 2298 -1 -2398 2298 -1 -2299 2299 4 -2300 2299 -1 -2399 2299 -1 -2300 2300 4 -2400 2300 -1 -2301 2301 4 -2302 2301 -1 -2401 2301 -1 -2302 2302 4 -2303 2302 -1 -2402 2302 -1 -2303 2303 4 -2304 2303 -1 -2403 2303 -1 -2304 2304 4 -2305 2304 -1 -2404 2304 -1 -2305 2305 4 -2306 2305 -1 -2405 2305 -1 -2306 2306 4 -2307 2306 -1 -2406 2306 -1 -2307 2307 4 -2308 2307 -1 -2407 2307 -1 -2308 2308 4 -2309 2308 -1 -2408 2308 -1 -2309 2309 4 -2310 2309 -1 -2409 2309 -1 -2310 2310 4 -2311 2310 -1 -2410 2310 -1 -2311 2311 4 -2312 2311 -1 -2411 2311 -1 -2312 2312 4 -2313 2312 -1 -2412 2312 -1 -2313 2313 4 -2314 2313 -1 -2413 2313 -1 -2314 2314 4 -2315 2314 -1 -2414 2314 -1 -2315 2315 4 -2316 2315 -1 -2415 2315 -1 -2316 2316 4 -2317 2316 -1 -2416 2316 -1 -2317 2317 4 -2318 2317 -1 -2417 2317 -1 -2318 2318 4 -2319 2318 -1 -2418 2318 -1 -2319 2319 4 -2320 2319 -1 -2419 2319 -1 -2320 2320 4 -2321 2320 -1 -2420 2320 -1 -2321 2321 4 -2322 2321 -1 -2421 2321 -1 -2322 2322 4 -2323 2322 -1 -2422 2322 -1 -2323 2323 4 -2324 2323 -1 -2423 2323 -1 -2324 2324 4 -2325 2324 -1 -2424 2324 -1 -2325 2325 4 -2326 2325 -1 -2425 2325 -1 -2326 2326 4 -2327 2326 -1 -2426 2326 -1 -2327 2327 4 -2328 2327 -1 -2427 2327 -1 -2328 2328 4 -2329 2328 -1 -2428 2328 -1 -2329 2329 4 -2330 2329 -1 -2429 2329 -1 -2330 2330 4 -2331 2330 -1 -2430 2330 -1 -2331 2331 4 -2332 2331 -1 -2431 2331 -1 -2332 2332 4 -2333 2332 -1 -2432 2332 -1 -2333 2333 4 -2334 2333 -1 -2433 2333 -1 -2334 2334 4 -2335 2334 -1 -2434 2334 -1 -2335 2335 4 -2336 2335 -1 -2435 2335 -1 -2336 2336 4 -2337 2336 -1 -2436 2336 -1 -2337 2337 4 -2338 2337 -1 -2437 2337 -1 -2338 2338 4 -2339 2338 -1 -2438 2338 -1 -2339 2339 4 -2340 2339 -1 -2439 2339 -1 -2340 2340 4 -2341 2340 -1 -2440 2340 -1 -2341 2341 4 -2342 2341 -1 -2441 2341 -1 -2342 2342 4 -2343 2342 -1 -2442 2342 -1 -2343 2343 4 -2344 2343 -1 -2443 2343 -1 -2344 2344 4 -2345 2344 -1 -2444 2344 -1 -2345 2345 4 -2346 2345 -1 -2445 2345 -1 -2346 2346 4 -2347 2346 -1 -2446 2346 -1 -2347 2347 4 -2348 2347 -1 -2447 2347 -1 -2348 2348 4 -2349 2348 -1 -2448 2348 -1 -2349 2349 4 -2350 2349 -1 -2449 2349 -1 -2350 2350 4 -2351 2350 -1 -2450 2350 -1 -2351 2351 4 -2352 2351 -1 -2451 2351 -1 -2352 2352 4 -2353 2352 -1 -2452 2352 -1 -2353 2353 4 -2354 2353 -1 -2453 2353 -1 -2354 2354 4 -2355 2354 -1 -2454 2354 -1 -2355 2355 4 -2356 2355 -1 -2455 2355 -1 -2356 2356 4 -2357 2356 -1 -2456 2356 -1 -2357 2357 4 -2358 2357 -1 -2457 2357 -1 -2358 2358 4 -2359 2358 -1 -2458 2358 -1 -2359 2359 4 -2360 2359 -1 -2459 2359 -1 -2360 2360 4 -2361 2360 -1 -2460 2360 -1 -2361 2361 4 -2362 2361 -1 -2461 2361 -1 -2362 2362 4 -2363 2362 -1 -2462 2362 -1 -2363 2363 4 -2364 2363 -1 -2463 2363 -1 -2364 2364 4 -2365 2364 -1 -2464 2364 -1 -2365 2365 4 -2366 2365 -1 -2465 2365 -1 -2366 2366 4 -2367 2366 -1 -2466 2366 -1 -2367 2367 4 -2368 2367 -1 -2467 2367 -1 -2368 2368 4 -2369 2368 -1 -2468 2368 -1 -2369 2369 4 -2370 2369 -1 -2469 2369 -1 -2370 2370 4 -2371 2370 -1 -2470 2370 -1 -2371 2371 4 -2372 2371 -1 -2471 2371 -1 -2372 2372 4 -2373 2372 -1 -2472 2372 -1 -2373 2373 4 -2374 2373 -1 -2473 2373 -1 -2374 2374 4 -2375 2374 -1 -2474 2374 -1 -2375 2375 4 -2376 2375 -1 -2475 2375 -1 -2376 2376 4 -2377 2376 -1 -2476 2376 -1 -2377 2377 4 -2378 2377 -1 -2477 2377 -1 -2378 2378 4 -2379 2378 -1 -2478 2378 -1 -2379 2379 4 -2380 2379 -1 -2479 2379 -1 -2380 2380 4 -2381 2380 -1 -2480 2380 -1 -2381 2381 4 -2382 2381 -1 -2481 2381 -1 -2382 2382 4 -2383 2382 -1 -2482 2382 -1 -2383 2383 4 -2384 2383 -1 -2483 2383 -1 -2384 2384 4 -2385 2384 -1 -2484 2384 -1 -2385 2385 4 -2386 2385 -1 -2485 2385 -1 -2386 2386 4 -2387 2386 -1 -2486 2386 -1 -2387 2387 4 -2388 2387 -1 -2487 2387 -1 -2388 2388 4 -2389 2388 -1 -2488 2388 -1 -2389 2389 4 -2390 2389 -1 -2489 2389 -1 -2390 2390 4 -2391 2390 -1 -2490 2390 -1 -2391 2391 4 -2392 2391 -1 -2491 2391 -1 -2392 2392 4 -2393 2392 -1 -2492 2392 -1 -2393 2393 4 -2394 2393 -1 -2493 2393 -1 -2394 2394 4 -2395 2394 -1 -2494 2394 -1 -2395 2395 4 -2396 2395 -1 -2495 2395 -1 -2396 2396 4 -2397 2396 -1 -2496 2396 -1 -2397 2397 4 -2398 2397 -1 -2497 2397 -1 -2398 2398 4 -2399 2398 -1 -2498 2398 -1 -2399 2399 4 -2400 2399 -1 -2499 2399 -1 -2400 2400 4 -2500 2400 -1 -2401 2401 4 -2402 2401 -1 -2501 2401 -1 -2402 2402 4 -2403 2402 -1 -2502 2402 -1 -2403 2403 4 -2404 2403 -1 -2503 2403 -1 -2404 2404 4 -2405 2404 -1 -2504 2404 -1 -2405 2405 4 -2406 2405 -1 -2505 2405 -1 -2406 2406 4 -2407 2406 -1 -2506 2406 -1 -2407 2407 4 -2408 2407 -1 -2507 2407 -1 -2408 2408 4 -2409 2408 -1 -2508 2408 -1 -2409 2409 4 -2410 2409 -1 -2509 2409 -1 -2410 2410 4 -2411 2410 -1 -2510 2410 -1 -2411 2411 4 -2412 2411 -1 -2511 2411 -1 -2412 2412 4 -2413 2412 -1 -2512 2412 -1 -2413 2413 4 -2414 2413 -1 -2513 2413 -1 -2414 2414 4 -2415 2414 -1 -2514 2414 -1 -2415 2415 4 -2416 2415 -1 -2515 2415 -1 -2416 2416 4 -2417 2416 -1 -2516 2416 -1 -2417 2417 4 -2418 2417 -1 -2517 2417 -1 -2418 2418 4 -2419 2418 -1 -2518 2418 -1 -2419 2419 4 -2420 2419 -1 -2519 2419 -1 -2420 2420 4 -2421 2420 -1 -2520 2420 -1 -2421 2421 4 -2422 2421 -1 -2521 2421 -1 -2422 2422 4 -2423 2422 -1 -2522 2422 -1 -2423 2423 4 -2424 2423 -1 -2523 2423 -1 -2424 2424 4 -2425 2424 -1 -2524 2424 -1 -2425 2425 4 -2426 2425 -1 -2525 2425 -1 -2426 2426 4 -2427 2426 -1 -2526 2426 -1 -2427 2427 4 -2428 2427 -1 -2527 2427 -1 -2428 2428 4 -2429 2428 -1 -2528 2428 -1 -2429 2429 4 -2430 2429 -1 -2529 2429 -1 -2430 2430 4 -2431 2430 -1 -2530 2430 -1 -2431 2431 4 -2432 2431 -1 -2531 2431 -1 -2432 2432 4 -2433 2432 -1 -2532 2432 -1 -2433 2433 4 -2434 2433 -1 -2533 2433 -1 -2434 2434 4 -2435 2434 -1 -2534 2434 -1 -2435 2435 4 -2436 2435 -1 -2535 2435 -1 -2436 2436 4 -2437 2436 -1 -2536 2436 -1 -2437 2437 4 -2438 2437 -1 -2537 2437 -1 -2438 2438 4 -2439 2438 -1 -2538 2438 -1 -2439 2439 4 -2440 2439 -1 -2539 2439 -1 -2440 2440 4 -2441 2440 -1 -2540 2440 -1 -2441 2441 4 -2442 2441 -1 -2541 2441 -1 -2442 2442 4 -2443 2442 -1 -2542 2442 -1 -2443 2443 4 -2444 2443 -1 -2543 2443 -1 -2444 2444 4 -2445 2444 -1 -2544 2444 -1 -2445 2445 4 -2446 2445 -1 -2545 2445 -1 -2446 2446 4 -2447 2446 -1 -2546 2446 -1 -2447 2447 4 -2448 2447 -1 -2547 2447 -1 -2448 2448 4 -2449 2448 -1 -2548 2448 -1 -2449 2449 4 -2450 2449 -1 -2549 2449 -1 -2450 2450 4 -2451 2450 -1 -2550 2450 -1 -2451 2451 4 -2452 2451 -1 -2551 2451 -1 -2452 2452 4 -2453 2452 -1 -2552 2452 -1 -2453 2453 4 -2454 2453 -1 -2553 2453 -1 -2454 2454 4 -2455 2454 -1 -2554 2454 -1 -2455 2455 4 -2456 2455 -1 -2555 2455 -1 -2456 2456 4 -2457 2456 -1 -2556 2456 -1 -2457 2457 4 -2458 2457 -1 -2557 2457 -1 -2458 2458 4 -2459 2458 -1 -2558 2458 -1 -2459 2459 4 -2460 2459 -1 -2559 2459 -1 -2460 2460 4 -2461 2460 -1 -2560 2460 -1 -2461 2461 4 -2462 2461 -1 -2561 2461 -1 -2462 2462 4 -2463 2462 -1 -2562 2462 -1 -2463 2463 4 -2464 2463 -1 -2563 2463 -1 -2464 2464 4 -2465 2464 -1 -2564 2464 -1 -2465 2465 4 -2466 2465 -1 -2565 2465 -1 -2466 2466 4 -2467 2466 -1 -2566 2466 -1 -2467 2467 4 -2468 2467 -1 -2567 2467 -1 -2468 2468 4 -2469 2468 -1 -2568 2468 -1 -2469 2469 4 -2470 2469 -1 -2569 2469 -1 -2470 2470 4 -2471 2470 -1 -2570 2470 -1 -2471 2471 4 -2472 2471 -1 -2571 2471 -1 -2472 2472 4 -2473 2472 -1 -2572 2472 -1 -2473 2473 4 -2474 2473 -1 -2573 2473 -1 -2474 2474 4 -2475 2474 -1 -2574 2474 -1 -2475 2475 4 -2476 2475 -1 -2575 2475 -1 -2476 2476 4 -2477 2476 -1 -2576 2476 -1 -2477 2477 4 -2478 2477 -1 -2577 2477 -1 -2478 2478 4 -2479 2478 -1 -2578 2478 -1 -2479 2479 4 -2480 2479 -1 -2579 2479 -1 -2480 2480 4 -2481 2480 -1 -2580 2480 -1 -2481 2481 4 -2482 2481 -1 -2581 2481 -1 -2482 2482 4 -2483 2482 -1 -2582 2482 -1 -2483 2483 4 -2484 2483 -1 -2583 2483 -1 -2484 2484 4 -2485 2484 -1 -2584 2484 -1 -2485 2485 4 -2486 2485 -1 -2585 2485 -1 -2486 2486 4 -2487 2486 -1 -2586 2486 -1 -2487 2487 4 -2488 2487 -1 -2587 2487 -1 -2488 2488 4 -2489 2488 -1 -2588 2488 -1 -2489 2489 4 -2490 2489 -1 -2589 2489 -1 -2490 2490 4 -2491 2490 -1 -2590 2490 -1 -2491 2491 4 -2492 2491 -1 -2591 2491 -1 -2492 2492 4 -2493 2492 -1 -2592 2492 -1 -2493 2493 4 -2494 2493 -1 -2593 2493 -1 -2494 2494 4 -2495 2494 -1 -2594 2494 -1 -2495 2495 4 -2496 2495 -1 -2595 2495 -1 -2496 2496 4 -2497 2496 -1 -2596 2496 -1 -2497 2497 4 -2498 2497 -1 -2597 2497 -1 -2498 2498 4 -2499 2498 -1 -2598 2498 -1 -2499 2499 4 -2500 2499 -1 -2599 2499 -1 -2500 2500 4 -2600 2500 -1 -2501 2501 4 -2502 2501 -1 -2601 2501 -1 -2502 2502 4 -2503 2502 -1 -2602 2502 -1 -2503 2503 4 -2504 2503 -1 -2603 2503 -1 -2504 2504 4 -2505 2504 -1 -2604 2504 -1 -2505 2505 4 -2506 2505 -1 -2605 2505 -1 -2506 2506 4 -2507 2506 -1 -2606 2506 -1 -2507 2507 4 -2508 2507 -1 -2607 2507 -1 -2508 2508 4 -2509 2508 -1 -2608 2508 -1 -2509 2509 4 -2510 2509 -1 -2609 2509 -1 -2510 2510 4 -2511 2510 -1 -2610 2510 -1 -2511 2511 4 -2512 2511 -1 -2611 2511 -1 -2512 2512 4 -2513 2512 -1 -2612 2512 -1 -2513 2513 4 -2514 2513 -1 -2613 2513 -1 -2514 2514 4 -2515 2514 -1 -2614 2514 -1 -2515 2515 4 -2516 2515 -1 -2615 2515 -1 -2516 2516 4 -2517 2516 -1 -2616 2516 -1 -2517 2517 4 -2518 2517 -1 -2617 2517 -1 -2518 2518 4 -2519 2518 -1 -2618 2518 -1 -2519 2519 4 -2520 2519 -1 -2619 2519 -1 -2520 2520 4 -2521 2520 -1 -2620 2520 -1 -2521 2521 4 -2522 2521 -1 -2621 2521 -1 -2522 2522 4 -2523 2522 -1 -2622 2522 -1 -2523 2523 4 -2524 2523 -1 -2623 2523 -1 -2524 2524 4 -2525 2524 -1 -2624 2524 -1 -2525 2525 4 -2526 2525 -1 -2625 2525 -1 -2526 2526 4 -2527 2526 -1 -2626 2526 -1 -2527 2527 4 -2528 2527 -1 -2627 2527 -1 -2528 2528 4 -2529 2528 -1 -2628 2528 -1 -2529 2529 4 -2530 2529 -1 -2629 2529 -1 -2530 2530 4 -2531 2530 -1 -2630 2530 -1 -2531 2531 4 -2532 2531 -1 -2631 2531 -1 -2532 2532 4 -2533 2532 -1 -2632 2532 -1 -2533 2533 4 -2534 2533 -1 -2633 2533 -1 -2534 2534 4 -2535 2534 -1 -2634 2534 -1 -2535 2535 4 -2536 2535 -1 -2635 2535 -1 -2536 2536 4 -2537 2536 -1 -2636 2536 -1 -2537 2537 4 -2538 2537 -1 -2637 2537 -1 -2538 2538 4 -2539 2538 -1 -2638 2538 -1 -2539 2539 4 -2540 2539 -1 -2639 2539 -1 -2540 2540 4 -2541 2540 -1 -2640 2540 -1 -2541 2541 4 -2542 2541 -1 -2641 2541 -1 -2542 2542 4 -2543 2542 -1 -2642 2542 -1 -2543 2543 4 -2544 2543 -1 -2643 2543 -1 -2544 2544 4 -2545 2544 -1 -2644 2544 -1 -2545 2545 4 -2546 2545 -1 -2645 2545 -1 -2546 2546 4 -2547 2546 -1 -2646 2546 -1 -2547 2547 4 -2548 2547 -1 -2647 2547 -1 -2548 2548 4 -2549 2548 -1 -2648 2548 -1 -2549 2549 4 -2550 2549 -1 -2649 2549 -1 -2550 2550 4 -2551 2550 -1 -2650 2550 -1 -2551 2551 4 -2552 2551 -1 -2651 2551 -1 -2552 2552 4 -2553 2552 -1 -2652 2552 -1 -2553 2553 4 -2554 2553 -1 -2653 2553 -1 -2554 2554 4 -2555 2554 -1 -2654 2554 -1 -2555 2555 4 -2556 2555 -1 -2655 2555 -1 -2556 2556 4 -2557 2556 -1 -2656 2556 -1 -2557 2557 4 -2558 2557 -1 -2657 2557 -1 -2558 2558 4 -2559 2558 -1 -2658 2558 -1 -2559 2559 4 -2560 2559 -1 -2659 2559 -1 -2560 2560 4 -2561 2560 -1 -2660 2560 -1 -2561 2561 4 -2562 2561 -1 -2661 2561 -1 -2562 2562 4 -2563 2562 -1 -2662 2562 -1 -2563 2563 4 -2564 2563 -1 -2663 2563 -1 -2564 2564 4 -2565 2564 -1 -2664 2564 -1 -2565 2565 4 -2566 2565 -1 -2665 2565 -1 -2566 2566 4 -2567 2566 -1 -2666 2566 -1 -2567 2567 4 -2568 2567 -1 -2667 2567 -1 -2568 2568 4 -2569 2568 -1 -2668 2568 -1 -2569 2569 4 -2570 2569 -1 -2669 2569 -1 -2570 2570 4 -2571 2570 -1 -2670 2570 -1 -2571 2571 4 -2572 2571 -1 -2671 2571 -1 -2572 2572 4 -2573 2572 -1 -2672 2572 -1 -2573 2573 4 -2574 2573 -1 -2673 2573 -1 -2574 2574 4 -2575 2574 -1 -2674 2574 -1 -2575 2575 4 -2576 2575 -1 -2675 2575 -1 -2576 2576 4 -2577 2576 -1 -2676 2576 -1 -2577 2577 4 -2578 2577 -1 -2677 2577 -1 -2578 2578 4 -2579 2578 -1 -2678 2578 -1 -2579 2579 4 -2580 2579 -1 -2679 2579 -1 -2580 2580 4 -2581 2580 -1 -2680 2580 -1 -2581 2581 4 -2582 2581 -1 -2681 2581 -1 -2582 2582 4 -2583 2582 -1 -2682 2582 -1 -2583 2583 4 -2584 2583 -1 -2683 2583 -1 -2584 2584 4 -2585 2584 -1 -2684 2584 -1 -2585 2585 4 -2586 2585 -1 -2685 2585 -1 -2586 2586 4 -2587 2586 -1 -2686 2586 -1 -2587 2587 4 -2588 2587 -1 -2687 2587 -1 -2588 2588 4 -2589 2588 -1 -2688 2588 -1 -2589 2589 4 -2590 2589 -1 -2689 2589 -1 -2590 2590 4 -2591 2590 -1 -2690 2590 -1 -2591 2591 4 -2592 2591 -1 -2691 2591 -1 -2592 2592 4 -2593 2592 -1 -2692 2592 -1 -2593 2593 4 -2594 2593 -1 -2693 2593 -1 -2594 2594 4 -2595 2594 -1 -2694 2594 -1 -2595 2595 4 -2596 2595 -1 -2695 2595 -1 -2596 2596 4 -2597 2596 -1 -2696 2596 -1 -2597 2597 4 -2598 2597 -1 -2697 2597 -1 -2598 2598 4 -2599 2598 -1 -2698 2598 -1 -2599 2599 4 -2600 2599 -1 -2699 2599 -1 -2600 2600 4 -2700 2600 -1 -2601 2601 4 -2602 2601 -1 -2701 2601 -1 -2602 2602 4 -2603 2602 -1 -2702 2602 -1 -2603 2603 4 -2604 2603 -1 -2703 2603 -1 -2604 2604 4 -2605 2604 -1 -2704 2604 -1 -2605 2605 4 -2606 2605 -1 -2705 2605 -1 -2606 2606 4 -2607 2606 -1 -2706 2606 -1 -2607 2607 4 -2608 2607 -1 -2707 2607 -1 -2608 2608 4 -2609 2608 -1 -2708 2608 -1 -2609 2609 4 -2610 2609 -1 -2709 2609 -1 -2610 2610 4 -2611 2610 -1 -2710 2610 -1 -2611 2611 4 -2612 2611 -1 -2711 2611 -1 -2612 2612 4 -2613 2612 -1 -2712 2612 -1 -2613 2613 4 -2614 2613 -1 -2713 2613 -1 -2614 2614 4 -2615 2614 -1 -2714 2614 -1 -2615 2615 4 -2616 2615 -1 -2715 2615 -1 -2616 2616 4 -2617 2616 -1 -2716 2616 -1 -2617 2617 4 -2618 2617 -1 -2717 2617 -1 -2618 2618 4 -2619 2618 -1 -2718 2618 -1 -2619 2619 4 -2620 2619 -1 -2719 2619 -1 -2620 2620 4 -2621 2620 -1 -2720 2620 -1 -2621 2621 4 -2622 2621 -1 -2721 2621 -1 -2622 2622 4 -2623 2622 -1 -2722 2622 -1 -2623 2623 4 -2624 2623 -1 -2723 2623 -1 -2624 2624 4 -2625 2624 -1 -2724 2624 -1 -2625 2625 4 -2626 2625 -1 -2725 2625 -1 -2626 2626 4 -2627 2626 -1 -2726 2626 -1 -2627 2627 4 -2628 2627 -1 -2727 2627 -1 -2628 2628 4 -2629 2628 -1 -2728 2628 -1 -2629 2629 4 -2630 2629 -1 -2729 2629 -1 -2630 2630 4 -2631 2630 -1 -2730 2630 -1 -2631 2631 4 -2632 2631 -1 -2731 2631 -1 -2632 2632 4 -2633 2632 -1 -2732 2632 -1 -2633 2633 4 -2634 2633 -1 -2733 2633 -1 -2634 2634 4 -2635 2634 -1 -2734 2634 -1 -2635 2635 4 -2636 2635 -1 -2735 2635 -1 -2636 2636 4 -2637 2636 -1 -2736 2636 -1 -2637 2637 4 -2638 2637 -1 -2737 2637 -1 -2638 2638 4 -2639 2638 -1 -2738 2638 -1 -2639 2639 4 -2640 2639 -1 -2739 2639 -1 -2640 2640 4 -2641 2640 -1 -2740 2640 -1 -2641 2641 4 -2642 2641 -1 -2741 2641 -1 -2642 2642 4 -2643 2642 -1 -2742 2642 -1 -2643 2643 4 -2644 2643 -1 -2743 2643 -1 -2644 2644 4 -2645 2644 -1 -2744 2644 -1 -2645 2645 4 -2646 2645 -1 -2745 2645 -1 -2646 2646 4 -2647 2646 -1 -2746 2646 -1 -2647 2647 4 -2648 2647 -1 -2747 2647 -1 -2648 2648 4 -2649 2648 -1 -2748 2648 -1 -2649 2649 4 -2650 2649 -1 -2749 2649 -1 -2650 2650 4 -2651 2650 -1 -2750 2650 -1 -2651 2651 4 -2652 2651 -1 -2751 2651 -1 -2652 2652 4 -2653 2652 -1 -2752 2652 -1 -2653 2653 4 -2654 2653 -1 -2753 2653 -1 -2654 2654 4 -2655 2654 -1 -2754 2654 -1 -2655 2655 4 -2656 2655 -1 -2755 2655 -1 -2656 2656 4 -2657 2656 -1 -2756 2656 -1 -2657 2657 4 -2658 2657 -1 -2757 2657 -1 -2658 2658 4 -2659 2658 -1 -2758 2658 -1 -2659 2659 4 -2660 2659 -1 -2759 2659 -1 -2660 2660 4 -2661 2660 -1 -2760 2660 -1 -2661 2661 4 -2662 2661 -1 -2761 2661 -1 -2662 2662 4 -2663 2662 -1 -2762 2662 -1 -2663 2663 4 -2664 2663 -1 -2763 2663 -1 -2664 2664 4 -2665 2664 -1 -2764 2664 -1 -2665 2665 4 -2666 2665 -1 -2765 2665 -1 -2666 2666 4 -2667 2666 -1 -2766 2666 -1 -2667 2667 4 -2668 2667 -1 -2767 2667 -1 -2668 2668 4 -2669 2668 -1 -2768 2668 -1 -2669 2669 4 -2670 2669 -1 -2769 2669 -1 -2670 2670 4 -2671 2670 -1 -2770 2670 -1 -2671 2671 4 -2672 2671 -1 -2771 2671 -1 -2672 2672 4 -2673 2672 -1 -2772 2672 -1 -2673 2673 4 -2674 2673 -1 -2773 2673 -1 -2674 2674 4 -2675 2674 -1 -2774 2674 -1 -2675 2675 4 -2676 2675 -1 -2775 2675 -1 -2676 2676 4 -2677 2676 -1 -2776 2676 -1 -2677 2677 4 -2678 2677 -1 -2777 2677 -1 -2678 2678 4 -2679 2678 -1 -2778 2678 -1 -2679 2679 4 -2680 2679 -1 -2779 2679 -1 -2680 2680 4 -2681 2680 -1 -2780 2680 -1 -2681 2681 4 -2682 2681 -1 -2781 2681 -1 -2682 2682 4 -2683 2682 -1 -2782 2682 -1 -2683 2683 4 -2684 2683 -1 -2783 2683 -1 -2684 2684 4 -2685 2684 -1 -2784 2684 -1 -2685 2685 4 -2686 2685 -1 -2785 2685 -1 -2686 2686 4 -2687 2686 -1 -2786 2686 -1 -2687 2687 4 -2688 2687 -1 -2787 2687 -1 -2688 2688 4 -2689 2688 -1 -2788 2688 -1 -2689 2689 4 -2690 2689 -1 -2789 2689 -1 -2690 2690 4 -2691 2690 -1 -2790 2690 -1 -2691 2691 4 -2692 2691 -1 -2791 2691 -1 -2692 2692 4 -2693 2692 -1 -2792 2692 -1 -2693 2693 4 -2694 2693 -1 -2793 2693 -1 -2694 2694 4 -2695 2694 -1 -2794 2694 -1 -2695 2695 4 -2696 2695 -1 -2795 2695 -1 -2696 2696 4 -2697 2696 -1 -2796 2696 -1 -2697 2697 4 -2698 2697 -1 -2797 2697 -1 -2698 2698 4 -2699 2698 -1 -2798 2698 -1 -2699 2699 4 -2700 2699 -1 -2799 2699 -1 -2700 2700 4 -2800 2700 -1 -2701 2701 4 -2702 2701 -1 -2801 2701 -1 -2702 2702 4 -2703 2702 -1 -2802 2702 -1 -2703 2703 4 -2704 2703 -1 -2803 2703 -1 -2704 2704 4 -2705 2704 -1 -2804 2704 -1 -2705 2705 4 -2706 2705 -1 -2805 2705 -1 -2706 2706 4 -2707 2706 -1 -2806 2706 -1 -2707 2707 4 -2708 2707 -1 -2807 2707 -1 -2708 2708 4 -2709 2708 -1 -2808 2708 -1 -2709 2709 4 -2710 2709 -1 -2809 2709 -1 -2710 2710 4 -2711 2710 -1 -2810 2710 -1 -2711 2711 4 -2712 2711 -1 -2811 2711 -1 -2712 2712 4 -2713 2712 -1 -2812 2712 -1 -2713 2713 4 -2714 2713 -1 -2813 2713 -1 -2714 2714 4 -2715 2714 -1 -2814 2714 -1 -2715 2715 4 -2716 2715 -1 -2815 2715 -1 -2716 2716 4 -2717 2716 -1 -2816 2716 -1 -2717 2717 4 -2718 2717 -1 -2817 2717 -1 -2718 2718 4 -2719 2718 -1 -2818 2718 -1 -2719 2719 4 -2720 2719 -1 -2819 2719 -1 -2720 2720 4 -2721 2720 -1 -2820 2720 -1 -2721 2721 4 -2722 2721 -1 -2821 2721 -1 -2722 2722 4 -2723 2722 -1 -2822 2722 -1 -2723 2723 4 -2724 2723 -1 -2823 2723 -1 -2724 2724 4 -2725 2724 -1 -2824 2724 -1 -2725 2725 4 -2726 2725 -1 -2825 2725 -1 -2726 2726 4 -2727 2726 -1 -2826 2726 -1 -2727 2727 4 -2728 2727 -1 -2827 2727 -1 -2728 2728 4 -2729 2728 -1 -2828 2728 -1 -2729 2729 4 -2730 2729 -1 -2829 2729 -1 -2730 2730 4 -2731 2730 -1 -2830 2730 -1 -2731 2731 4 -2732 2731 -1 -2831 2731 -1 -2732 2732 4 -2733 2732 -1 -2832 2732 -1 -2733 2733 4 -2734 2733 -1 -2833 2733 -1 -2734 2734 4 -2735 2734 -1 -2834 2734 -1 -2735 2735 4 -2736 2735 -1 -2835 2735 -1 -2736 2736 4 -2737 2736 -1 -2836 2736 -1 -2737 2737 4 -2738 2737 -1 -2837 2737 -1 -2738 2738 4 -2739 2738 -1 -2838 2738 -1 -2739 2739 4 -2740 2739 -1 -2839 2739 -1 -2740 2740 4 -2741 2740 -1 -2840 2740 -1 -2741 2741 4 -2742 2741 -1 -2841 2741 -1 -2742 2742 4 -2743 2742 -1 -2842 2742 -1 -2743 2743 4 -2744 2743 -1 -2843 2743 -1 -2744 2744 4 -2745 2744 -1 -2844 2744 -1 -2745 2745 4 -2746 2745 -1 -2845 2745 -1 -2746 2746 4 -2747 2746 -1 -2846 2746 -1 -2747 2747 4 -2748 2747 -1 -2847 2747 -1 -2748 2748 4 -2749 2748 -1 -2848 2748 -1 -2749 2749 4 -2750 2749 -1 -2849 2749 -1 -2750 2750 4 -2751 2750 -1 -2850 2750 -1 -2751 2751 4 -2752 2751 -1 -2851 2751 -1 -2752 2752 4 -2753 2752 -1 -2852 2752 -1 -2753 2753 4 -2754 2753 -1 -2853 2753 -1 -2754 2754 4 -2755 2754 -1 -2854 2754 -1 -2755 2755 4 -2756 2755 -1 -2855 2755 -1 -2756 2756 4 -2757 2756 -1 -2856 2756 -1 -2757 2757 4 -2758 2757 -1 -2857 2757 -1 -2758 2758 4 -2759 2758 -1 -2858 2758 -1 -2759 2759 4 -2760 2759 -1 -2859 2759 -1 -2760 2760 4 -2761 2760 -1 -2860 2760 -1 -2761 2761 4 -2762 2761 -1 -2861 2761 -1 -2762 2762 4 -2763 2762 -1 -2862 2762 -1 -2763 2763 4 -2764 2763 -1 -2863 2763 -1 -2764 2764 4 -2765 2764 -1 -2864 2764 -1 -2765 2765 4 -2766 2765 -1 -2865 2765 -1 -2766 2766 4 -2767 2766 -1 -2866 2766 -1 -2767 2767 4 -2768 2767 -1 -2867 2767 -1 -2768 2768 4 -2769 2768 -1 -2868 2768 -1 -2769 2769 4 -2770 2769 -1 -2869 2769 -1 -2770 2770 4 -2771 2770 -1 -2870 2770 -1 -2771 2771 4 -2772 2771 -1 -2871 2771 -1 -2772 2772 4 -2773 2772 -1 -2872 2772 -1 -2773 2773 4 -2774 2773 -1 -2873 2773 -1 -2774 2774 4 -2775 2774 -1 -2874 2774 -1 -2775 2775 4 -2776 2775 -1 -2875 2775 -1 -2776 2776 4 -2777 2776 -1 -2876 2776 -1 -2777 2777 4 -2778 2777 -1 -2877 2777 -1 -2778 2778 4 -2779 2778 -1 -2878 2778 -1 -2779 2779 4 -2780 2779 -1 -2879 2779 -1 -2780 2780 4 -2781 2780 -1 -2880 2780 -1 -2781 2781 4 -2782 2781 -1 -2881 2781 -1 -2782 2782 4 -2783 2782 -1 -2882 2782 -1 -2783 2783 4 -2784 2783 -1 -2883 2783 -1 -2784 2784 4 -2785 2784 -1 -2884 2784 -1 -2785 2785 4 -2786 2785 -1 -2885 2785 -1 -2786 2786 4 -2787 2786 -1 -2886 2786 -1 -2787 2787 4 -2788 2787 -1 -2887 2787 -1 -2788 2788 4 -2789 2788 -1 -2888 2788 -1 -2789 2789 4 -2790 2789 -1 -2889 2789 -1 -2790 2790 4 -2791 2790 -1 -2890 2790 -1 -2791 2791 4 -2792 2791 -1 -2891 2791 -1 -2792 2792 4 -2793 2792 -1 -2892 2792 -1 -2793 2793 4 -2794 2793 -1 -2893 2793 -1 -2794 2794 4 -2795 2794 -1 -2894 2794 -1 -2795 2795 4 -2796 2795 -1 -2895 2795 -1 -2796 2796 4 -2797 2796 -1 -2896 2796 -1 -2797 2797 4 -2798 2797 -1 -2897 2797 -1 -2798 2798 4 -2799 2798 -1 -2898 2798 -1 -2799 2799 4 -2800 2799 -1 -2899 2799 -1 -2800 2800 4 -2900 2800 -1 -2801 2801 4 -2802 2801 -1 -2901 2801 -1 -2802 2802 4 -2803 2802 -1 -2902 2802 -1 -2803 2803 4 -2804 2803 -1 -2903 2803 -1 -2804 2804 4 -2805 2804 -1 -2904 2804 -1 -2805 2805 4 -2806 2805 -1 -2905 2805 -1 -2806 2806 4 -2807 2806 -1 -2906 2806 -1 -2807 2807 4 -2808 2807 -1 -2907 2807 -1 -2808 2808 4 -2809 2808 -1 -2908 2808 -1 -2809 2809 4 -2810 2809 -1 -2909 2809 -1 -2810 2810 4 -2811 2810 -1 -2910 2810 -1 -2811 2811 4 -2812 2811 -1 -2911 2811 -1 -2812 2812 4 -2813 2812 -1 -2912 2812 -1 -2813 2813 4 -2814 2813 -1 -2913 2813 -1 -2814 2814 4 -2815 2814 -1 -2914 2814 -1 -2815 2815 4 -2816 2815 -1 -2915 2815 -1 -2816 2816 4 -2817 2816 -1 -2916 2816 -1 -2817 2817 4 -2818 2817 -1 -2917 2817 -1 -2818 2818 4 -2819 2818 -1 -2918 2818 -1 -2819 2819 4 -2820 2819 -1 -2919 2819 -1 -2820 2820 4 -2821 2820 -1 -2920 2820 -1 -2821 2821 4 -2822 2821 -1 -2921 2821 -1 -2822 2822 4 -2823 2822 -1 -2922 2822 -1 -2823 2823 4 -2824 2823 -1 -2923 2823 -1 -2824 2824 4 -2825 2824 -1 -2924 2824 -1 -2825 2825 4 -2826 2825 -1 -2925 2825 -1 -2826 2826 4 -2827 2826 -1 -2926 2826 -1 -2827 2827 4 -2828 2827 -1 -2927 2827 -1 -2828 2828 4 -2829 2828 -1 -2928 2828 -1 -2829 2829 4 -2830 2829 -1 -2929 2829 -1 -2830 2830 4 -2831 2830 -1 -2930 2830 -1 -2831 2831 4 -2832 2831 -1 -2931 2831 -1 -2832 2832 4 -2833 2832 -1 -2932 2832 -1 -2833 2833 4 -2834 2833 -1 -2933 2833 -1 -2834 2834 4 -2835 2834 -1 -2934 2834 -1 -2835 2835 4 -2836 2835 -1 -2935 2835 -1 -2836 2836 4 -2837 2836 -1 -2936 2836 -1 -2837 2837 4 -2838 2837 -1 -2937 2837 -1 -2838 2838 4 -2839 2838 -1 -2938 2838 -1 -2839 2839 4 -2840 2839 -1 -2939 2839 -1 -2840 2840 4 -2841 2840 -1 -2940 2840 -1 -2841 2841 4 -2842 2841 -1 -2941 2841 -1 -2842 2842 4 -2843 2842 -1 -2942 2842 -1 -2843 2843 4 -2844 2843 -1 -2943 2843 -1 -2844 2844 4 -2845 2844 -1 -2944 2844 -1 -2845 2845 4 -2846 2845 -1 -2945 2845 -1 -2846 2846 4 -2847 2846 -1 -2946 2846 -1 -2847 2847 4 -2848 2847 -1 -2947 2847 -1 -2848 2848 4 -2849 2848 -1 -2948 2848 -1 -2849 2849 4 -2850 2849 -1 -2949 2849 -1 -2850 2850 4 -2851 2850 -1 -2950 2850 -1 -2851 2851 4 -2852 2851 -1 -2951 2851 -1 -2852 2852 4 -2853 2852 -1 -2952 2852 -1 -2853 2853 4 -2854 2853 -1 -2953 2853 -1 -2854 2854 4 -2855 2854 -1 -2954 2854 -1 -2855 2855 4 -2856 2855 -1 -2955 2855 -1 -2856 2856 4 -2857 2856 -1 -2956 2856 -1 -2857 2857 4 -2858 2857 -1 -2957 2857 -1 -2858 2858 4 -2859 2858 -1 -2958 2858 -1 -2859 2859 4 -2860 2859 -1 -2959 2859 -1 -2860 2860 4 -2861 2860 -1 -2960 2860 -1 -2861 2861 4 -2862 2861 -1 -2961 2861 -1 -2862 2862 4 -2863 2862 -1 -2962 2862 -1 -2863 2863 4 -2864 2863 -1 -2963 2863 -1 -2864 2864 4 -2865 2864 -1 -2964 2864 -1 -2865 2865 4 -2866 2865 -1 -2965 2865 -1 -2866 2866 4 -2867 2866 -1 -2966 2866 -1 -2867 2867 4 -2868 2867 -1 -2967 2867 -1 -2868 2868 4 -2869 2868 -1 -2968 2868 -1 -2869 2869 4 -2870 2869 -1 -2969 2869 -1 -2870 2870 4 -2871 2870 -1 -2970 2870 -1 -2871 2871 4 -2872 2871 -1 -2971 2871 -1 -2872 2872 4 -2873 2872 -1 -2972 2872 -1 -2873 2873 4 -2874 2873 -1 -2973 2873 -1 -2874 2874 4 -2875 2874 -1 -2974 2874 -1 -2875 2875 4 -2876 2875 -1 -2975 2875 -1 -2876 2876 4 -2877 2876 -1 -2976 2876 -1 -2877 2877 4 -2878 2877 -1 -2977 2877 -1 -2878 2878 4 -2879 2878 -1 -2978 2878 -1 -2879 2879 4 -2880 2879 -1 -2979 2879 -1 -2880 2880 4 -2881 2880 -1 -2980 2880 -1 -2881 2881 4 -2882 2881 -1 -2981 2881 -1 -2882 2882 4 -2883 2882 -1 -2982 2882 -1 -2883 2883 4 -2884 2883 -1 -2983 2883 -1 -2884 2884 4 -2885 2884 -1 -2984 2884 -1 -2885 2885 4 -2886 2885 -1 -2985 2885 -1 -2886 2886 4 -2887 2886 -1 -2986 2886 -1 -2887 2887 4 -2888 2887 -1 -2987 2887 -1 -2888 2888 4 -2889 2888 -1 -2988 2888 -1 -2889 2889 4 -2890 2889 -1 -2989 2889 -1 -2890 2890 4 -2891 2890 -1 -2990 2890 -1 -2891 2891 4 -2892 2891 -1 -2991 2891 -1 -2892 2892 4 -2893 2892 -1 -2992 2892 -1 -2893 2893 4 -2894 2893 -1 -2993 2893 -1 -2894 2894 4 -2895 2894 -1 -2994 2894 -1 -2895 2895 4 -2896 2895 -1 -2995 2895 -1 -2896 2896 4 -2897 2896 -1 -2996 2896 -1 -2897 2897 4 -2898 2897 -1 -2997 2897 -1 -2898 2898 4 -2899 2898 -1 -2998 2898 -1 -2899 2899 4 -2900 2899 -1 -2999 2899 -1 -2900 2900 4 -3000 2900 -1 -2901 2901 4 -2902 2901 -1 -3001 2901 -1 -2902 2902 4 -2903 2902 -1 -3002 2902 -1 -2903 2903 4 -2904 2903 -1 -3003 2903 -1 -2904 2904 4 -2905 2904 -1 -3004 2904 -1 -2905 2905 4 -2906 2905 -1 -3005 2905 -1 -2906 2906 4 -2907 2906 -1 -3006 2906 -1 -2907 2907 4 -2908 2907 -1 -3007 2907 -1 -2908 2908 4 -2909 2908 -1 -3008 2908 -1 -2909 2909 4 -2910 2909 -1 -3009 2909 -1 -2910 2910 4 -2911 2910 -1 -3010 2910 -1 -2911 2911 4 -2912 2911 -1 -3011 2911 -1 -2912 2912 4 -2913 2912 -1 -3012 2912 -1 -2913 2913 4 -2914 2913 -1 -3013 2913 -1 -2914 2914 4 -2915 2914 -1 -3014 2914 -1 -2915 2915 4 -2916 2915 -1 -3015 2915 -1 -2916 2916 4 -2917 2916 -1 -3016 2916 -1 -2917 2917 4 -2918 2917 -1 -3017 2917 -1 -2918 2918 4 -2919 2918 -1 -3018 2918 -1 -2919 2919 4 -2920 2919 -1 -3019 2919 -1 -2920 2920 4 -2921 2920 -1 -3020 2920 -1 -2921 2921 4 -2922 2921 -1 -3021 2921 -1 -2922 2922 4 -2923 2922 -1 -3022 2922 -1 -2923 2923 4 -2924 2923 -1 -3023 2923 -1 -2924 2924 4 -2925 2924 -1 -3024 2924 -1 -2925 2925 4 -2926 2925 -1 -3025 2925 -1 -2926 2926 4 -2927 2926 -1 -3026 2926 -1 -2927 2927 4 -2928 2927 -1 -3027 2927 -1 -2928 2928 4 -2929 2928 -1 -3028 2928 -1 -2929 2929 4 -2930 2929 -1 -3029 2929 -1 -2930 2930 4 -2931 2930 -1 -3030 2930 -1 -2931 2931 4 -2932 2931 -1 -3031 2931 -1 -2932 2932 4 -2933 2932 -1 -3032 2932 -1 -2933 2933 4 -2934 2933 -1 -3033 2933 -1 -2934 2934 4 -2935 2934 -1 -3034 2934 -1 -2935 2935 4 -2936 2935 -1 -3035 2935 -1 -2936 2936 4 -2937 2936 -1 -3036 2936 -1 -2937 2937 4 -2938 2937 -1 -3037 2937 -1 -2938 2938 4 -2939 2938 -1 -3038 2938 -1 -2939 2939 4 -2940 2939 -1 -3039 2939 -1 -2940 2940 4 -2941 2940 -1 -3040 2940 -1 -2941 2941 4 -2942 2941 -1 -3041 2941 -1 -2942 2942 4 -2943 2942 -1 -3042 2942 -1 -2943 2943 4 -2944 2943 -1 -3043 2943 -1 -2944 2944 4 -2945 2944 -1 -3044 2944 -1 -2945 2945 4 -2946 2945 -1 -3045 2945 -1 -2946 2946 4 -2947 2946 -1 -3046 2946 -1 -2947 2947 4 -2948 2947 -1 -3047 2947 -1 -2948 2948 4 -2949 2948 -1 -3048 2948 -1 -2949 2949 4 -2950 2949 -1 -3049 2949 -1 -2950 2950 4 -2951 2950 -1 -3050 2950 -1 -2951 2951 4 -2952 2951 -1 -3051 2951 -1 -2952 2952 4 -2953 2952 -1 -3052 2952 -1 -2953 2953 4 -2954 2953 -1 -3053 2953 -1 -2954 2954 4 -2955 2954 -1 -3054 2954 -1 -2955 2955 4 -2956 2955 -1 -3055 2955 -1 -2956 2956 4 -2957 2956 -1 -3056 2956 -1 -2957 2957 4 -2958 2957 -1 -3057 2957 -1 -2958 2958 4 -2959 2958 -1 -3058 2958 -1 -2959 2959 4 -2960 2959 -1 -3059 2959 -1 -2960 2960 4 -2961 2960 -1 -3060 2960 -1 -2961 2961 4 -2962 2961 -1 -3061 2961 -1 -2962 2962 4 -2963 2962 -1 -3062 2962 -1 -2963 2963 4 -2964 2963 -1 -3063 2963 -1 -2964 2964 4 -2965 2964 -1 -3064 2964 -1 -2965 2965 4 -2966 2965 -1 -3065 2965 -1 -2966 2966 4 -2967 2966 -1 -3066 2966 -1 -2967 2967 4 -2968 2967 -1 -3067 2967 -1 -2968 2968 4 -2969 2968 -1 -3068 2968 -1 -2969 2969 4 -2970 2969 -1 -3069 2969 -1 -2970 2970 4 -2971 2970 -1 -3070 2970 -1 -2971 2971 4 -2972 2971 -1 -3071 2971 -1 -2972 2972 4 -2973 2972 -1 -3072 2972 -1 -2973 2973 4 -2974 2973 -1 -3073 2973 -1 -2974 2974 4 -2975 2974 -1 -3074 2974 -1 -2975 2975 4 -2976 2975 -1 -3075 2975 -1 -2976 2976 4 -2977 2976 -1 -3076 2976 -1 -2977 2977 4 -2978 2977 -1 -3077 2977 -1 -2978 2978 4 -2979 2978 -1 -3078 2978 -1 -2979 2979 4 -2980 2979 -1 -3079 2979 -1 -2980 2980 4 -2981 2980 -1 -3080 2980 -1 -2981 2981 4 -2982 2981 -1 -3081 2981 -1 -2982 2982 4 -2983 2982 -1 -3082 2982 -1 -2983 2983 4 -2984 2983 -1 -3083 2983 -1 -2984 2984 4 -2985 2984 -1 -3084 2984 -1 -2985 2985 4 -2986 2985 -1 -3085 2985 -1 -2986 2986 4 -2987 2986 -1 -3086 2986 -1 -2987 2987 4 -2988 2987 -1 -3087 2987 -1 -2988 2988 4 -2989 2988 -1 -3088 2988 -1 -2989 2989 4 -2990 2989 -1 -3089 2989 -1 -2990 2990 4 -2991 2990 -1 -3090 2990 -1 -2991 2991 4 -2992 2991 -1 -3091 2991 -1 -2992 2992 4 -2993 2992 -1 -3092 2992 -1 -2993 2993 4 -2994 2993 -1 -3093 2993 -1 -2994 2994 4 -2995 2994 -1 -3094 2994 -1 -2995 2995 4 -2996 2995 -1 -3095 2995 -1 -2996 2996 4 -2997 2996 -1 -3096 2996 -1 -2997 2997 4 -2998 2997 -1 -3097 2997 -1 -2998 2998 4 -2999 2998 -1 -3098 2998 -1 -2999 2999 4 -3000 2999 -1 -3099 2999 -1 -3000 3000 4 -3100 3000 -1 -3001 3001 4 -3002 3001 -1 -3101 3001 -1 -3002 3002 4 -3003 3002 -1 -3102 3002 -1 -3003 3003 4 -3004 3003 -1 -3103 3003 -1 -3004 3004 4 -3005 3004 -1 -3104 3004 -1 -3005 3005 4 -3006 3005 -1 -3105 3005 -1 -3006 3006 4 -3007 3006 -1 -3106 3006 -1 -3007 3007 4 -3008 3007 -1 -3107 3007 -1 -3008 3008 4 -3009 3008 -1 -3108 3008 -1 -3009 3009 4 -3010 3009 -1 -3109 3009 -1 -3010 3010 4 -3011 3010 -1 -3110 3010 -1 -3011 3011 4 -3012 3011 -1 -3111 3011 -1 -3012 3012 4 -3013 3012 -1 -3112 3012 -1 -3013 3013 4 -3014 3013 -1 -3113 3013 -1 -3014 3014 4 -3015 3014 -1 -3114 3014 -1 -3015 3015 4 -3016 3015 -1 -3115 3015 -1 -3016 3016 4 -3017 3016 -1 -3116 3016 -1 -3017 3017 4 -3018 3017 -1 -3117 3017 -1 -3018 3018 4 -3019 3018 -1 -3118 3018 -1 -3019 3019 4 -3020 3019 -1 -3119 3019 -1 -3020 3020 4 -3021 3020 -1 -3120 3020 -1 -3021 3021 4 -3022 3021 -1 -3121 3021 -1 -3022 3022 4 -3023 3022 -1 -3122 3022 -1 -3023 3023 4 -3024 3023 -1 -3123 3023 -1 -3024 3024 4 -3025 3024 -1 -3124 3024 -1 -3025 3025 4 -3026 3025 -1 -3125 3025 -1 -3026 3026 4 -3027 3026 -1 -3126 3026 -1 -3027 3027 4 -3028 3027 -1 -3127 3027 -1 -3028 3028 4 -3029 3028 -1 -3128 3028 -1 -3029 3029 4 -3030 3029 -1 -3129 3029 -1 -3030 3030 4 -3031 3030 -1 -3130 3030 -1 -3031 3031 4 -3032 3031 -1 -3131 3031 -1 -3032 3032 4 -3033 3032 -1 -3132 3032 -1 -3033 3033 4 -3034 3033 -1 -3133 3033 -1 -3034 3034 4 -3035 3034 -1 -3134 3034 -1 -3035 3035 4 -3036 3035 -1 -3135 3035 -1 -3036 3036 4 -3037 3036 -1 -3136 3036 -1 -3037 3037 4 -3038 3037 -1 -3137 3037 -1 -3038 3038 4 -3039 3038 -1 -3138 3038 -1 -3039 3039 4 -3040 3039 -1 -3139 3039 -1 -3040 3040 4 -3041 3040 -1 -3140 3040 -1 -3041 3041 4 -3042 3041 -1 -3141 3041 -1 -3042 3042 4 -3043 3042 -1 -3142 3042 -1 -3043 3043 4 -3044 3043 -1 -3143 3043 -1 -3044 3044 4 -3045 3044 -1 -3144 3044 -1 -3045 3045 4 -3046 3045 -1 -3145 3045 -1 -3046 3046 4 -3047 3046 -1 -3146 3046 -1 -3047 3047 4 -3048 3047 -1 -3147 3047 -1 -3048 3048 4 -3049 3048 -1 -3148 3048 -1 -3049 3049 4 -3050 3049 -1 -3149 3049 -1 -3050 3050 4 -3051 3050 -1 -3150 3050 -1 -3051 3051 4 -3052 3051 -1 -3151 3051 -1 -3052 3052 4 -3053 3052 -1 -3152 3052 -1 -3053 3053 4 -3054 3053 -1 -3153 3053 -1 -3054 3054 4 -3055 3054 -1 -3154 3054 -1 -3055 3055 4 -3056 3055 -1 -3155 3055 -1 -3056 3056 4 -3057 3056 -1 -3156 3056 -1 -3057 3057 4 -3058 3057 -1 -3157 3057 -1 -3058 3058 4 -3059 3058 -1 -3158 3058 -1 -3059 3059 4 -3060 3059 -1 -3159 3059 -1 -3060 3060 4 -3061 3060 -1 -3160 3060 -1 -3061 3061 4 -3062 3061 -1 -3161 3061 -1 -3062 3062 4 -3063 3062 -1 -3162 3062 -1 -3063 3063 4 -3064 3063 -1 -3163 3063 -1 -3064 3064 4 -3065 3064 -1 -3164 3064 -1 -3065 3065 4 -3066 3065 -1 -3165 3065 -1 -3066 3066 4 -3067 3066 -1 -3166 3066 -1 -3067 3067 4 -3068 3067 -1 -3167 3067 -1 -3068 3068 4 -3069 3068 -1 -3168 3068 -1 -3069 3069 4 -3070 3069 -1 -3169 3069 -1 -3070 3070 4 -3071 3070 -1 -3170 3070 -1 -3071 3071 4 -3072 3071 -1 -3171 3071 -1 -3072 3072 4 -3073 3072 -1 -3172 3072 -1 -3073 3073 4 -3074 3073 -1 -3173 3073 -1 -3074 3074 4 -3075 3074 -1 -3174 3074 -1 -3075 3075 4 -3076 3075 -1 -3175 3075 -1 -3076 3076 4 -3077 3076 -1 -3176 3076 -1 -3077 3077 4 -3078 3077 -1 -3177 3077 -1 -3078 3078 4 -3079 3078 -1 -3178 3078 -1 -3079 3079 4 -3080 3079 -1 -3179 3079 -1 -3080 3080 4 -3081 3080 -1 -3180 3080 -1 -3081 3081 4 -3082 3081 -1 -3181 3081 -1 -3082 3082 4 -3083 3082 -1 -3182 3082 -1 -3083 3083 4 -3084 3083 -1 -3183 3083 -1 -3084 3084 4 -3085 3084 -1 -3184 3084 -1 -3085 3085 4 -3086 3085 -1 -3185 3085 -1 -3086 3086 4 -3087 3086 -1 -3186 3086 -1 -3087 3087 4 -3088 3087 -1 -3187 3087 -1 -3088 3088 4 -3089 3088 -1 -3188 3088 -1 -3089 3089 4 -3090 3089 -1 -3189 3089 -1 -3090 3090 4 -3091 3090 -1 -3190 3090 -1 -3091 3091 4 -3092 3091 -1 -3191 3091 -1 -3092 3092 4 -3093 3092 -1 -3192 3092 -1 -3093 3093 4 -3094 3093 -1 -3193 3093 -1 -3094 3094 4 -3095 3094 -1 -3194 3094 -1 -3095 3095 4 -3096 3095 -1 -3195 3095 -1 -3096 3096 4 -3097 3096 -1 -3196 3096 -1 -3097 3097 4 -3098 3097 -1 -3197 3097 -1 -3098 3098 4 -3099 3098 -1 -3198 3098 -1 -3099 3099 4 -3100 3099 -1 -3199 3099 -1 -3100 3100 4 -3200 3100 -1 -3101 3101 4 -3102 3101 -1 -3201 3101 -1 -3102 3102 4 -3103 3102 -1 -3202 3102 -1 -3103 3103 4 -3104 3103 -1 -3203 3103 -1 -3104 3104 4 -3105 3104 -1 -3204 3104 -1 -3105 3105 4 -3106 3105 -1 -3205 3105 -1 -3106 3106 4 -3107 3106 -1 -3206 3106 -1 -3107 3107 4 -3108 3107 -1 -3207 3107 -1 -3108 3108 4 -3109 3108 -1 -3208 3108 -1 -3109 3109 4 -3110 3109 -1 -3209 3109 -1 -3110 3110 4 -3111 3110 -1 -3210 3110 -1 -3111 3111 4 -3112 3111 -1 -3211 3111 -1 -3112 3112 4 -3113 3112 -1 -3212 3112 -1 -3113 3113 4 -3114 3113 -1 -3213 3113 -1 -3114 3114 4 -3115 3114 -1 -3214 3114 -1 -3115 3115 4 -3116 3115 -1 -3215 3115 -1 -3116 3116 4 -3117 3116 -1 -3216 3116 -1 -3117 3117 4 -3118 3117 -1 -3217 3117 -1 -3118 3118 4 -3119 3118 -1 -3218 3118 -1 -3119 3119 4 -3120 3119 -1 -3219 3119 -1 -3120 3120 4 -3121 3120 -1 -3220 3120 -1 -3121 3121 4 -3122 3121 -1 -3221 3121 -1 -3122 3122 4 -3123 3122 -1 -3222 3122 -1 -3123 3123 4 -3124 3123 -1 -3223 3123 -1 -3124 3124 4 -3125 3124 -1 -3224 3124 -1 -3125 3125 4 -3126 3125 -1 -3225 3125 -1 -3126 3126 4 -3127 3126 -1 -3226 3126 -1 -3127 3127 4 -3128 3127 -1 -3227 3127 -1 -3128 3128 4 -3129 3128 -1 -3228 3128 -1 -3129 3129 4 -3130 3129 -1 -3229 3129 -1 -3130 3130 4 -3131 3130 -1 -3230 3130 -1 -3131 3131 4 -3132 3131 -1 -3231 3131 -1 -3132 3132 4 -3133 3132 -1 -3232 3132 -1 -3133 3133 4 -3134 3133 -1 -3233 3133 -1 -3134 3134 4 -3135 3134 -1 -3234 3134 -1 -3135 3135 4 -3136 3135 -1 -3235 3135 -1 -3136 3136 4 -3137 3136 -1 -3236 3136 -1 -3137 3137 4 -3138 3137 -1 -3237 3137 -1 -3138 3138 4 -3139 3138 -1 -3238 3138 -1 -3139 3139 4 -3140 3139 -1 -3239 3139 -1 -3140 3140 4 -3141 3140 -1 -3240 3140 -1 -3141 3141 4 -3142 3141 -1 -3241 3141 -1 -3142 3142 4 -3143 3142 -1 -3242 3142 -1 -3143 3143 4 -3144 3143 -1 -3243 3143 -1 -3144 3144 4 -3145 3144 -1 -3244 3144 -1 -3145 3145 4 -3146 3145 -1 -3245 3145 -1 -3146 3146 4 -3147 3146 -1 -3246 3146 -1 -3147 3147 4 -3148 3147 -1 -3247 3147 -1 -3148 3148 4 -3149 3148 -1 -3248 3148 -1 -3149 3149 4 -3150 3149 -1 -3249 3149 -1 -3150 3150 4 -3151 3150 -1 -3250 3150 -1 -3151 3151 4 -3152 3151 -1 -3251 3151 -1 -3152 3152 4 -3153 3152 -1 -3252 3152 -1 -3153 3153 4 -3154 3153 -1 -3253 3153 -1 -3154 3154 4 -3155 3154 -1 -3254 3154 -1 -3155 3155 4 -3156 3155 -1 -3255 3155 -1 -3156 3156 4 -3157 3156 -1 -3256 3156 -1 -3157 3157 4 -3158 3157 -1 -3257 3157 -1 -3158 3158 4 -3159 3158 -1 -3258 3158 -1 -3159 3159 4 -3160 3159 -1 -3259 3159 -1 -3160 3160 4 -3161 3160 -1 -3260 3160 -1 -3161 3161 4 -3162 3161 -1 -3261 3161 -1 -3162 3162 4 -3163 3162 -1 -3262 3162 -1 -3163 3163 4 -3164 3163 -1 -3263 3163 -1 -3164 3164 4 -3165 3164 -1 -3264 3164 -1 -3165 3165 4 -3166 3165 -1 -3265 3165 -1 -3166 3166 4 -3167 3166 -1 -3266 3166 -1 -3167 3167 4 -3168 3167 -1 -3267 3167 -1 -3168 3168 4 -3169 3168 -1 -3268 3168 -1 -3169 3169 4 -3170 3169 -1 -3269 3169 -1 -3170 3170 4 -3171 3170 -1 -3270 3170 -1 -3171 3171 4 -3172 3171 -1 -3271 3171 -1 -3172 3172 4 -3173 3172 -1 -3272 3172 -1 -3173 3173 4 -3174 3173 -1 -3273 3173 -1 -3174 3174 4 -3175 3174 -1 -3274 3174 -1 -3175 3175 4 -3176 3175 -1 -3275 3175 -1 -3176 3176 4 -3177 3176 -1 -3276 3176 -1 -3177 3177 4 -3178 3177 -1 -3277 3177 -1 -3178 3178 4 -3179 3178 -1 -3278 3178 -1 -3179 3179 4 -3180 3179 -1 -3279 3179 -1 -3180 3180 4 -3181 3180 -1 -3280 3180 -1 -3181 3181 4 -3182 3181 -1 -3281 3181 -1 -3182 3182 4 -3183 3182 -1 -3282 3182 -1 -3183 3183 4 -3184 3183 -1 -3283 3183 -1 -3184 3184 4 -3185 3184 -1 -3284 3184 -1 -3185 3185 4 -3186 3185 -1 -3285 3185 -1 -3186 3186 4 -3187 3186 -1 -3286 3186 -1 -3187 3187 4 -3188 3187 -1 -3287 3187 -1 -3188 3188 4 -3189 3188 -1 -3288 3188 -1 -3189 3189 4 -3190 3189 -1 -3289 3189 -1 -3190 3190 4 -3191 3190 -1 -3290 3190 -1 -3191 3191 4 -3192 3191 -1 -3291 3191 -1 -3192 3192 4 -3193 3192 -1 -3292 3192 -1 -3193 3193 4 -3194 3193 -1 -3293 3193 -1 -3194 3194 4 -3195 3194 -1 -3294 3194 -1 -3195 3195 4 -3196 3195 -1 -3295 3195 -1 -3196 3196 4 -3197 3196 -1 -3296 3196 -1 -3197 3197 4 -3198 3197 -1 -3297 3197 -1 -3198 3198 4 -3199 3198 -1 -3298 3198 -1 -3199 3199 4 -3200 3199 -1 -3299 3199 -1 -3200 3200 4 -3300 3200 -1 -3201 3201 4 -3202 3201 -1 -3301 3201 -1 -3202 3202 4 -3203 3202 -1 -3302 3202 -1 -3203 3203 4 -3204 3203 -1 -3303 3203 -1 -3204 3204 4 -3205 3204 -1 -3304 3204 -1 -3205 3205 4 -3206 3205 -1 -3305 3205 -1 -3206 3206 4 -3207 3206 -1 -3306 3206 -1 -3207 3207 4 -3208 3207 -1 -3307 3207 -1 -3208 3208 4 -3209 3208 -1 -3308 3208 -1 -3209 3209 4 -3210 3209 -1 -3309 3209 -1 -3210 3210 4 -3211 3210 -1 -3310 3210 -1 -3211 3211 4 -3212 3211 -1 -3311 3211 -1 -3212 3212 4 -3213 3212 -1 -3312 3212 -1 -3213 3213 4 -3214 3213 -1 -3313 3213 -1 -3214 3214 4 -3215 3214 -1 -3314 3214 -1 -3215 3215 4 -3216 3215 -1 -3315 3215 -1 -3216 3216 4 -3217 3216 -1 -3316 3216 -1 -3217 3217 4 -3218 3217 -1 -3317 3217 -1 -3218 3218 4 -3219 3218 -1 -3318 3218 -1 -3219 3219 4 -3220 3219 -1 -3319 3219 -1 -3220 3220 4 -3221 3220 -1 -3320 3220 -1 -3221 3221 4 -3222 3221 -1 -3321 3221 -1 -3222 3222 4 -3223 3222 -1 -3322 3222 -1 -3223 3223 4 -3224 3223 -1 -3323 3223 -1 -3224 3224 4 -3225 3224 -1 -3324 3224 -1 -3225 3225 4 -3226 3225 -1 -3325 3225 -1 -3226 3226 4 -3227 3226 -1 -3326 3226 -1 -3227 3227 4 -3228 3227 -1 -3327 3227 -1 -3228 3228 4 -3229 3228 -1 -3328 3228 -1 -3229 3229 4 -3230 3229 -1 -3329 3229 -1 -3230 3230 4 -3231 3230 -1 -3330 3230 -1 -3231 3231 4 -3232 3231 -1 -3331 3231 -1 -3232 3232 4 -3233 3232 -1 -3332 3232 -1 -3233 3233 4 -3234 3233 -1 -3333 3233 -1 -3234 3234 4 -3235 3234 -1 -3334 3234 -1 -3235 3235 4 -3236 3235 -1 -3335 3235 -1 -3236 3236 4 -3237 3236 -1 -3336 3236 -1 -3237 3237 4 -3238 3237 -1 -3337 3237 -1 -3238 3238 4 -3239 3238 -1 -3338 3238 -1 -3239 3239 4 -3240 3239 -1 -3339 3239 -1 -3240 3240 4 -3241 3240 -1 -3340 3240 -1 -3241 3241 4 -3242 3241 -1 -3341 3241 -1 -3242 3242 4 -3243 3242 -1 -3342 3242 -1 -3243 3243 4 -3244 3243 -1 -3343 3243 -1 -3244 3244 4 -3245 3244 -1 -3344 3244 -1 -3245 3245 4 -3246 3245 -1 -3345 3245 -1 -3246 3246 4 -3247 3246 -1 -3346 3246 -1 -3247 3247 4 -3248 3247 -1 -3347 3247 -1 -3248 3248 4 -3249 3248 -1 -3348 3248 -1 -3249 3249 4 -3250 3249 -1 -3349 3249 -1 -3250 3250 4 -3251 3250 -1 -3350 3250 -1 -3251 3251 4 -3252 3251 -1 -3351 3251 -1 -3252 3252 4 -3253 3252 -1 -3352 3252 -1 -3253 3253 4 -3254 3253 -1 -3353 3253 -1 -3254 3254 4 -3255 3254 -1 -3354 3254 -1 -3255 3255 4 -3256 3255 -1 -3355 3255 -1 -3256 3256 4 -3257 3256 -1 -3356 3256 -1 -3257 3257 4 -3258 3257 -1 -3357 3257 -1 -3258 3258 4 -3259 3258 -1 -3358 3258 -1 -3259 3259 4 -3260 3259 -1 -3359 3259 -1 -3260 3260 4 -3261 3260 -1 -3360 3260 -1 -3261 3261 4 -3262 3261 -1 -3361 3261 -1 -3262 3262 4 -3263 3262 -1 -3362 3262 -1 -3263 3263 4 -3264 3263 -1 -3363 3263 -1 -3264 3264 4 -3265 3264 -1 -3364 3264 -1 -3265 3265 4 -3266 3265 -1 -3365 3265 -1 -3266 3266 4 -3267 3266 -1 -3366 3266 -1 -3267 3267 4 -3268 3267 -1 -3367 3267 -1 -3268 3268 4 -3269 3268 -1 -3368 3268 -1 -3269 3269 4 -3270 3269 -1 -3369 3269 -1 -3270 3270 4 -3271 3270 -1 -3370 3270 -1 -3271 3271 4 -3272 3271 -1 -3371 3271 -1 -3272 3272 4 -3273 3272 -1 -3372 3272 -1 -3273 3273 4 -3274 3273 -1 -3373 3273 -1 -3274 3274 4 -3275 3274 -1 -3374 3274 -1 -3275 3275 4 -3276 3275 -1 -3375 3275 -1 -3276 3276 4 -3277 3276 -1 -3376 3276 -1 -3277 3277 4 -3278 3277 -1 -3377 3277 -1 -3278 3278 4 -3279 3278 -1 -3378 3278 -1 -3279 3279 4 -3280 3279 -1 -3379 3279 -1 -3280 3280 4 -3281 3280 -1 -3380 3280 -1 -3281 3281 4 -3282 3281 -1 -3381 3281 -1 -3282 3282 4 -3283 3282 -1 -3382 3282 -1 -3283 3283 4 -3284 3283 -1 -3383 3283 -1 -3284 3284 4 -3285 3284 -1 -3384 3284 -1 -3285 3285 4 -3286 3285 -1 -3385 3285 -1 -3286 3286 4 -3287 3286 -1 -3386 3286 -1 -3287 3287 4 -3288 3287 -1 -3387 3287 -1 -3288 3288 4 -3289 3288 -1 -3388 3288 -1 -3289 3289 4 -3290 3289 -1 -3389 3289 -1 -3290 3290 4 -3291 3290 -1 -3390 3290 -1 -3291 3291 4 -3292 3291 -1 -3391 3291 -1 -3292 3292 4 -3293 3292 -1 -3392 3292 -1 -3293 3293 4 -3294 3293 -1 -3393 3293 -1 -3294 3294 4 -3295 3294 -1 -3394 3294 -1 -3295 3295 4 -3296 3295 -1 -3395 3295 -1 -3296 3296 4 -3297 3296 -1 -3396 3296 -1 -3297 3297 4 -3298 3297 -1 -3397 3297 -1 -3298 3298 4 -3299 3298 -1 -3398 3298 -1 -3299 3299 4 -3300 3299 -1 -3399 3299 -1 -3300 3300 4 -3400 3300 -1 -3301 3301 4 -3302 3301 -1 -3401 3301 -1 -3302 3302 4 -3303 3302 -1 -3402 3302 -1 -3303 3303 4 -3304 3303 -1 -3403 3303 -1 -3304 3304 4 -3305 3304 -1 -3404 3304 -1 -3305 3305 4 -3306 3305 -1 -3405 3305 -1 -3306 3306 4 -3307 3306 -1 -3406 3306 -1 -3307 3307 4 -3308 3307 -1 -3407 3307 -1 -3308 3308 4 -3309 3308 -1 -3408 3308 -1 -3309 3309 4 -3310 3309 -1 -3409 3309 -1 -3310 3310 4 -3311 3310 -1 -3410 3310 -1 -3311 3311 4 -3312 3311 -1 -3411 3311 -1 -3312 3312 4 -3313 3312 -1 -3412 3312 -1 -3313 3313 4 -3314 3313 -1 -3413 3313 -1 -3314 3314 4 -3315 3314 -1 -3414 3314 -1 -3315 3315 4 -3316 3315 -1 -3415 3315 -1 -3316 3316 4 -3317 3316 -1 -3416 3316 -1 -3317 3317 4 -3318 3317 -1 -3417 3317 -1 -3318 3318 4 -3319 3318 -1 -3418 3318 -1 -3319 3319 4 -3320 3319 -1 -3419 3319 -1 -3320 3320 4 -3321 3320 -1 -3420 3320 -1 -3321 3321 4 -3322 3321 -1 -3421 3321 -1 -3322 3322 4 -3323 3322 -1 -3422 3322 -1 -3323 3323 4 -3324 3323 -1 -3423 3323 -1 -3324 3324 4 -3325 3324 -1 -3424 3324 -1 -3325 3325 4 -3326 3325 -1 -3425 3325 -1 -3326 3326 4 -3327 3326 -1 -3426 3326 -1 -3327 3327 4 -3328 3327 -1 -3427 3327 -1 -3328 3328 4 -3329 3328 -1 -3428 3328 -1 -3329 3329 4 -3330 3329 -1 -3429 3329 -1 -3330 3330 4 -3331 3330 -1 -3430 3330 -1 -3331 3331 4 -3332 3331 -1 -3431 3331 -1 -3332 3332 4 -3333 3332 -1 -3432 3332 -1 -3333 3333 4 -3334 3333 -1 -3433 3333 -1 -3334 3334 4 -3335 3334 -1 -3434 3334 -1 -3335 3335 4 -3336 3335 -1 -3435 3335 -1 -3336 3336 4 -3337 3336 -1 -3436 3336 -1 -3337 3337 4 -3338 3337 -1 -3437 3337 -1 -3338 3338 4 -3339 3338 -1 -3438 3338 -1 -3339 3339 4 -3340 3339 -1 -3439 3339 -1 -3340 3340 4 -3341 3340 -1 -3440 3340 -1 -3341 3341 4 -3342 3341 -1 -3441 3341 -1 -3342 3342 4 -3343 3342 -1 -3442 3342 -1 -3343 3343 4 -3344 3343 -1 -3443 3343 -1 -3344 3344 4 -3345 3344 -1 -3444 3344 -1 -3345 3345 4 -3346 3345 -1 -3445 3345 -1 -3346 3346 4 -3347 3346 -1 -3446 3346 -1 -3347 3347 4 -3348 3347 -1 -3447 3347 -1 -3348 3348 4 -3349 3348 -1 -3448 3348 -1 -3349 3349 4 -3350 3349 -1 -3449 3349 -1 -3350 3350 4 -3351 3350 -1 -3450 3350 -1 -3351 3351 4 -3352 3351 -1 -3451 3351 -1 -3352 3352 4 -3353 3352 -1 -3452 3352 -1 -3353 3353 4 -3354 3353 -1 -3453 3353 -1 -3354 3354 4 -3355 3354 -1 -3454 3354 -1 -3355 3355 4 -3356 3355 -1 -3455 3355 -1 -3356 3356 4 -3357 3356 -1 -3456 3356 -1 -3357 3357 4 -3358 3357 -1 -3457 3357 -1 -3358 3358 4 -3359 3358 -1 -3458 3358 -1 -3359 3359 4 -3360 3359 -1 -3459 3359 -1 -3360 3360 4 -3361 3360 -1 -3460 3360 -1 -3361 3361 4 -3362 3361 -1 -3461 3361 -1 -3362 3362 4 -3363 3362 -1 -3462 3362 -1 -3363 3363 4 -3364 3363 -1 -3463 3363 -1 -3364 3364 4 -3365 3364 -1 -3464 3364 -1 -3365 3365 4 -3366 3365 -1 -3465 3365 -1 -3366 3366 4 -3367 3366 -1 -3466 3366 -1 -3367 3367 4 -3368 3367 -1 -3467 3367 -1 -3368 3368 4 -3369 3368 -1 -3468 3368 -1 -3369 3369 4 -3370 3369 -1 -3469 3369 -1 -3370 3370 4 -3371 3370 -1 -3470 3370 -1 -3371 3371 4 -3372 3371 -1 -3471 3371 -1 -3372 3372 4 -3373 3372 -1 -3472 3372 -1 -3373 3373 4 -3374 3373 -1 -3473 3373 -1 -3374 3374 4 -3375 3374 -1 -3474 3374 -1 -3375 3375 4 -3376 3375 -1 -3475 3375 -1 -3376 3376 4 -3377 3376 -1 -3476 3376 -1 -3377 3377 4 -3378 3377 -1 -3477 3377 -1 -3378 3378 4 -3379 3378 -1 -3478 3378 -1 -3379 3379 4 -3380 3379 -1 -3479 3379 -1 -3380 3380 4 -3381 3380 -1 -3480 3380 -1 -3381 3381 4 -3382 3381 -1 -3481 3381 -1 -3382 3382 4 -3383 3382 -1 -3482 3382 -1 -3383 3383 4 -3384 3383 -1 -3483 3383 -1 -3384 3384 4 -3385 3384 -1 -3484 3384 -1 -3385 3385 4 -3386 3385 -1 -3485 3385 -1 -3386 3386 4 -3387 3386 -1 -3486 3386 -1 -3387 3387 4 -3388 3387 -1 -3487 3387 -1 -3388 3388 4 -3389 3388 -1 -3488 3388 -1 -3389 3389 4 -3390 3389 -1 -3489 3389 -1 -3390 3390 4 -3391 3390 -1 -3490 3390 -1 -3391 3391 4 -3392 3391 -1 -3491 3391 -1 -3392 3392 4 -3393 3392 -1 -3492 3392 -1 -3393 3393 4 -3394 3393 -1 -3493 3393 -1 -3394 3394 4 -3395 3394 -1 -3494 3394 -1 -3395 3395 4 -3396 3395 -1 -3495 3395 -1 -3396 3396 4 -3397 3396 -1 -3496 3396 -1 -3397 3397 4 -3398 3397 -1 -3497 3397 -1 -3398 3398 4 -3399 3398 -1 -3498 3398 -1 -3399 3399 4 -3400 3399 -1 -3499 3399 -1 -3400 3400 4 -3500 3400 -1 -3401 3401 4 -3402 3401 -1 -3501 3401 -1 -3402 3402 4 -3403 3402 -1 -3502 3402 -1 -3403 3403 4 -3404 3403 -1 -3503 3403 -1 -3404 3404 4 -3405 3404 -1 -3504 3404 -1 -3405 3405 4 -3406 3405 -1 -3505 3405 -1 -3406 3406 4 -3407 3406 -1 -3506 3406 -1 -3407 3407 4 -3408 3407 -1 -3507 3407 -1 -3408 3408 4 -3409 3408 -1 -3508 3408 -1 -3409 3409 4 -3410 3409 -1 -3509 3409 -1 -3410 3410 4 -3411 3410 -1 -3510 3410 -1 -3411 3411 4 -3412 3411 -1 -3511 3411 -1 -3412 3412 4 -3413 3412 -1 -3512 3412 -1 -3413 3413 4 -3414 3413 -1 -3513 3413 -1 -3414 3414 4 -3415 3414 -1 -3514 3414 -1 -3415 3415 4 -3416 3415 -1 -3515 3415 -1 -3416 3416 4 -3417 3416 -1 -3516 3416 -1 -3417 3417 4 -3418 3417 -1 -3517 3417 -1 -3418 3418 4 -3419 3418 -1 -3518 3418 -1 -3419 3419 4 -3420 3419 -1 -3519 3419 -1 -3420 3420 4 -3421 3420 -1 -3520 3420 -1 -3421 3421 4 -3422 3421 -1 -3521 3421 -1 -3422 3422 4 -3423 3422 -1 -3522 3422 -1 -3423 3423 4 -3424 3423 -1 -3523 3423 -1 -3424 3424 4 -3425 3424 -1 -3524 3424 -1 -3425 3425 4 -3426 3425 -1 -3525 3425 -1 -3426 3426 4 -3427 3426 -1 -3526 3426 -1 -3427 3427 4 -3428 3427 -1 -3527 3427 -1 -3428 3428 4 -3429 3428 -1 -3528 3428 -1 -3429 3429 4 -3430 3429 -1 -3529 3429 -1 -3430 3430 4 -3431 3430 -1 -3530 3430 -1 -3431 3431 4 -3432 3431 -1 -3531 3431 -1 -3432 3432 4 -3433 3432 -1 -3532 3432 -1 -3433 3433 4 -3434 3433 -1 -3533 3433 -1 -3434 3434 4 -3435 3434 -1 -3534 3434 -1 -3435 3435 4 -3436 3435 -1 -3535 3435 -1 -3436 3436 4 -3437 3436 -1 -3536 3436 -1 -3437 3437 4 -3438 3437 -1 -3537 3437 -1 -3438 3438 4 -3439 3438 -1 -3538 3438 -1 -3439 3439 4 -3440 3439 -1 -3539 3439 -1 -3440 3440 4 -3441 3440 -1 -3540 3440 -1 -3441 3441 4 -3442 3441 -1 -3541 3441 -1 -3442 3442 4 -3443 3442 -1 -3542 3442 -1 -3443 3443 4 -3444 3443 -1 -3543 3443 -1 -3444 3444 4 -3445 3444 -1 -3544 3444 -1 -3445 3445 4 -3446 3445 -1 -3545 3445 -1 -3446 3446 4 -3447 3446 -1 -3546 3446 -1 -3447 3447 4 -3448 3447 -1 -3547 3447 -1 -3448 3448 4 -3449 3448 -1 -3548 3448 -1 -3449 3449 4 -3450 3449 -1 -3549 3449 -1 -3450 3450 4 -3451 3450 -1 -3550 3450 -1 -3451 3451 4 -3452 3451 -1 -3551 3451 -1 -3452 3452 4 -3453 3452 -1 -3552 3452 -1 -3453 3453 4 -3454 3453 -1 -3553 3453 -1 -3454 3454 4 -3455 3454 -1 -3554 3454 -1 -3455 3455 4 -3456 3455 -1 -3555 3455 -1 -3456 3456 4 -3457 3456 -1 -3556 3456 -1 -3457 3457 4 -3458 3457 -1 -3557 3457 -1 -3458 3458 4 -3459 3458 -1 -3558 3458 -1 -3459 3459 4 -3460 3459 -1 -3559 3459 -1 -3460 3460 4 -3461 3460 -1 -3560 3460 -1 -3461 3461 4 -3462 3461 -1 -3561 3461 -1 -3462 3462 4 -3463 3462 -1 -3562 3462 -1 -3463 3463 4 -3464 3463 -1 -3563 3463 -1 -3464 3464 4 -3465 3464 -1 -3564 3464 -1 -3465 3465 4 -3466 3465 -1 -3565 3465 -1 -3466 3466 4 -3467 3466 -1 -3566 3466 -1 -3467 3467 4 -3468 3467 -1 -3567 3467 -1 -3468 3468 4 -3469 3468 -1 -3568 3468 -1 -3469 3469 4 -3470 3469 -1 -3569 3469 -1 -3470 3470 4 -3471 3470 -1 -3570 3470 -1 -3471 3471 4 -3472 3471 -1 -3571 3471 -1 -3472 3472 4 -3473 3472 -1 -3572 3472 -1 -3473 3473 4 -3474 3473 -1 -3573 3473 -1 -3474 3474 4 -3475 3474 -1 -3574 3474 -1 -3475 3475 4 -3476 3475 -1 -3575 3475 -1 -3476 3476 4 -3477 3476 -1 -3576 3476 -1 -3477 3477 4 -3478 3477 -1 -3577 3477 -1 -3478 3478 4 -3479 3478 -1 -3578 3478 -1 -3479 3479 4 -3480 3479 -1 -3579 3479 -1 -3480 3480 4 -3481 3480 -1 -3580 3480 -1 -3481 3481 4 -3482 3481 -1 -3581 3481 -1 -3482 3482 4 -3483 3482 -1 -3582 3482 -1 -3483 3483 4 -3484 3483 -1 -3583 3483 -1 -3484 3484 4 -3485 3484 -1 -3584 3484 -1 -3485 3485 4 -3486 3485 -1 -3585 3485 -1 -3486 3486 4 -3487 3486 -1 -3586 3486 -1 -3487 3487 4 -3488 3487 -1 -3587 3487 -1 -3488 3488 4 -3489 3488 -1 -3588 3488 -1 -3489 3489 4 -3490 3489 -1 -3589 3489 -1 -3490 3490 4 -3491 3490 -1 -3590 3490 -1 -3491 3491 4 -3492 3491 -1 -3591 3491 -1 -3492 3492 4 -3493 3492 -1 -3592 3492 -1 -3493 3493 4 -3494 3493 -1 -3593 3493 -1 -3494 3494 4 -3495 3494 -1 -3594 3494 -1 -3495 3495 4 -3496 3495 -1 -3595 3495 -1 -3496 3496 4 -3497 3496 -1 -3596 3496 -1 -3497 3497 4 -3498 3497 -1 -3597 3497 -1 -3498 3498 4 -3499 3498 -1 -3598 3498 -1 -3499 3499 4 -3500 3499 -1 -3599 3499 -1 -3500 3500 4 -3600 3500 -1 -3501 3501 4 -3502 3501 -1 -3601 3501 -1 -3502 3502 4 -3503 3502 -1 -3602 3502 -1 -3503 3503 4 -3504 3503 -1 -3603 3503 -1 -3504 3504 4 -3505 3504 -1 -3604 3504 -1 -3505 3505 4 -3506 3505 -1 -3605 3505 -1 -3506 3506 4 -3507 3506 -1 -3606 3506 -1 -3507 3507 4 -3508 3507 -1 -3607 3507 -1 -3508 3508 4 -3509 3508 -1 -3608 3508 -1 -3509 3509 4 -3510 3509 -1 -3609 3509 -1 -3510 3510 4 -3511 3510 -1 -3610 3510 -1 -3511 3511 4 -3512 3511 -1 -3611 3511 -1 -3512 3512 4 -3513 3512 -1 -3612 3512 -1 -3513 3513 4 -3514 3513 -1 -3613 3513 -1 -3514 3514 4 -3515 3514 -1 -3614 3514 -1 -3515 3515 4 -3516 3515 -1 -3615 3515 -1 -3516 3516 4 -3517 3516 -1 -3616 3516 -1 -3517 3517 4 -3518 3517 -1 -3617 3517 -1 -3518 3518 4 -3519 3518 -1 -3618 3518 -1 -3519 3519 4 -3520 3519 -1 -3619 3519 -1 -3520 3520 4 -3521 3520 -1 -3620 3520 -1 -3521 3521 4 -3522 3521 -1 -3621 3521 -1 -3522 3522 4 -3523 3522 -1 -3622 3522 -1 -3523 3523 4 -3524 3523 -1 -3623 3523 -1 -3524 3524 4 -3525 3524 -1 -3624 3524 -1 -3525 3525 4 -3526 3525 -1 -3625 3525 -1 -3526 3526 4 -3527 3526 -1 -3626 3526 -1 -3527 3527 4 -3528 3527 -1 -3627 3527 -1 -3528 3528 4 -3529 3528 -1 -3628 3528 -1 -3529 3529 4 -3530 3529 -1 -3629 3529 -1 -3530 3530 4 -3531 3530 -1 -3630 3530 -1 -3531 3531 4 -3532 3531 -1 -3631 3531 -1 -3532 3532 4 -3533 3532 -1 -3632 3532 -1 -3533 3533 4 -3534 3533 -1 -3633 3533 -1 -3534 3534 4 -3535 3534 -1 -3634 3534 -1 -3535 3535 4 -3536 3535 -1 -3635 3535 -1 -3536 3536 4 -3537 3536 -1 -3636 3536 -1 -3537 3537 4 -3538 3537 -1 -3637 3537 -1 -3538 3538 4 -3539 3538 -1 -3638 3538 -1 -3539 3539 4 -3540 3539 -1 -3639 3539 -1 -3540 3540 4 -3541 3540 -1 -3640 3540 -1 -3541 3541 4 -3542 3541 -1 -3641 3541 -1 -3542 3542 4 -3543 3542 -1 -3642 3542 -1 -3543 3543 4 -3544 3543 -1 -3643 3543 -1 -3544 3544 4 -3545 3544 -1 -3644 3544 -1 -3545 3545 4 -3546 3545 -1 -3645 3545 -1 -3546 3546 4 -3547 3546 -1 -3646 3546 -1 -3547 3547 4 -3548 3547 -1 -3647 3547 -1 -3548 3548 4 -3549 3548 -1 -3648 3548 -1 -3549 3549 4 -3550 3549 -1 -3649 3549 -1 -3550 3550 4 -3551 3550 -1 -3650 3550 -1 -3551 3551 4 -3552 3551 -1 -3651 3551 -1 -3552 3552 4 -3553 3552 -1 -3652 3552 -1 -3553 3553 4 -3554 3553 -1 -3653 3553 -1 -3554 3554 4 -3555 3554 -1 -3654 3554 -1 -3555 3555 4 -3556 3555 -1 -3655 3555 -1 -3556 3556 4 -3557 3556 -1 -3656 3556 -1 -3557 3557 4 -3558 3557 -1 -3657 3557 -1 -3558 3558 4 -3559 3558 -1 -3658 3558 -1 -3559 3559 4 -3560 3559 -1 -3659 3559 -1 -3560 3560 4 -3561 3560 -1 -3660 3560 -1 -3561 3561 4 -3562 3561 -1 -3661 3561 -1 -3562 3562 4 -3563 3562 -1 -3662 3562 -1 -3563 3563 4 -3564 3563 -1 -3663 3563 -1 -3564 3564 4 -3565 3564 -1 -3664 3564 -1 -3565 3565 4 -3566 3565 -1 -3665 3565 -1 -3566 3566 4 -3567 3566 -1 -3666 3566 -1 -3567 3567 4 -3568 3567 -1 -3667 3567 -1 -3568 3568 4 -3569 3568 -1 -3668 3568 -1 -3569 3569 4 -3570 3569 -1 -3669 3569 -1 -3570 3570 4 -3571 3570 -1 -3670 3570 -1 -3571 3571 4 -3572 3571 -1 -3671 3571 -1 -3572 3572 4 -3573 3572 -1 -3672 3572 -1 -3573 3573 4 -3574 3573 -1 -3673 3573 -1 -3574 3574 4 -3575 3574 -1 -3674 3574 -1 -3575 3575 4 -3576 3575 -1 -3675 3575 -1 -3576 3576 4 -3577 3576 -1 -3676 3576 -1 -3577 3577 4 -3578 3577 -1 -3677 3577 -1 -3578 3578 4 -3579 3578 -1 -3678 3578 -1 -3579 3579 4 -3580 3579 -1 -3679 3579 -1 -3580 3580 4 -3581 3580 -1 -3680 3580 -1 -3581 3581 4 -3582 3581 -1 -3681 3581 -1 -3582 3582 4 -3583 3582 -1 -3682 3582 -1 -3583 3583 4 -3584 3583 -1 -3683 3583 -1 -3584 3584 4 -3585 3584 -1 -3684 3584 -1 -3585 3585 4 -3586 3585 -1 -3685 3585 -1 -3586 3586 4 -3587 3586 -1 -3686 3586 -1 -3587 3587 4 -3588 3587 -1 -3687 3587 -1 -3588 3588 4 -3589 3588 -1 -3688 3588 -1 -3589 3589 4 -3590 3589 -1 -3689 3589 -1 -3590 3590 4 -3591 3590 -1 -3690 3590 -1 -3591 3591 4 -3592 3591 -1 -3691 3591 -1 -3592 3592 4 -3593 3592 -1 -3692 3592 -1 -3593 3593 4 -3594 3593 -1 -3693 3593 -1 -3594 3594 4 -3595 3594 -1 -3694 3594 -1 -3595 3595 4 -3596 3595 -1 -3695 3595 -1 -3596 3596 4 -3597 3596 -1 -3696 3596 -1 -3597 3597 4 -3598 3597 -1 -3697 3597 -1 -3598 3598 4 -3599 3598 -1 -3698 3598 -1 -3599 3599 4 -3600 3599 -1 -3699 3599 -1 -3600 3600 4 -3700 3600 -1 -3601 3601 4 -3602 3601 -1 -3701 3601 -1 -3602 3602 4 -3603 3602 -1 -3702 3602 -1 -3603 3603 4 -3604 3603 -1 -3703 3603 -1 -3604 3604 4 -3605 3604 -1 -3704 3604 -1 -3605 3605 4 -3606 3605 -1 -3705 3605 -1 -3606 3606 4 -3607 3606 -1 -3706 3606 -1 -3607 3607 4 -3608 3607 -1 -3707 3607 -1 -3608 3608 4 -3609 3608 -1 -3708 3608 -1 -3609 3609 4 -3610 3609 -1 -3709 3609 -1 -3610 3610 4 -3611 3610 -1 -3710 3610 -1 -3611 3611 4 -3612 3611 -1 -3711 3611 -1 -3612 3612 4 -3613 3612 -1 -3712 3612 -1 -3613 3613 4 -3614 3613 -1 -3713 3613 -1 -3614 3614 4 -3615 3614 -1 -3714 3614 -1 -3615 3615 4 -3616 3615 -1 -3715 3615 -1 -3616 3616 4 -3617 3616 -1 -3716 3616 -1 -3617 3617 4 -3618 3617 -1 -3717 3617 -1 -3618 3618 4 -3619 3618 -1 -3718 3618 -1 -3619 3619 4 -3620 3619 -1 -3719 3619 -1 -3620 3620 4 -3621 3620 -1 -3720 3620 -1 -3621 3621 4 -3622 3621 -1 -3721 3621 -1 -3622 3622 4 -3623 3622 -1 -3722 3622 -1 -3623 3623 4 -3624 3623 -1 -3723 3623 -1 -3624 3624 4 -3625 3624 -1 -3724 3624 -1 -3625 3625 4 -3626 3625 -1 -3725 3625 -1 -3626 3626 4 -3627 3626 -1 -3726 3626 -1 -3627 3627 4 -3628 3627 -1 -3727 3627 -1 -3628 3628 4 -3629 3628 -1 -3728 3628 -1 -3629 3629 4 -3630 3629 -1 -3729 3629 -1 -3630 3630 4 -3631 3630 -1 -3730 3630 -1 -3631 3631 4 -3632 3631 -1 -3731 3631 -1 -3632 3632 4 -3633 3632 -1 -3732 3632 -1 -3633 3633 4 -3634 3633 -1 -3733 3633 -1 -3634 3634 4 -3635 3634 -1 -3734 3634 -1 -3635 3635 4 -3636 3635 -1 -3735 3635 -1 -3636 3636 4 -3637 3636 -1 -3736 3636 -1 -3637 3637 4 -3638 3637 -1 -3737 3637 -1 -3638 3638 4 -3639 3638 -1 -3738 3638 -1 -3639 3639 4 -3640 3639 -1 -3739 3639 -1 -3640 3640 4 -3641 3640 -1 -3740 3640 -1 -3641 3641 4 -3642 3641 -1 -3741 3641 -1 -3642 3642 4 -3643 3642 -1 -3742 3642 -1 -3643 3643 4 -3644 3643 -1 -3743 3643 -1 -3644 3644 4 -3645 3644 -1 -3744 3644 -1 -3645 3645 4 -3646 3645 -1 -3745 3645 -1 -3646 3646 4 -3647 3646 -1 -3746 3646 -1 -3647 3647 4 -3648 3647 -1 -3747 3647 -1 -3648 3648 4 -3649 3648 -1 -3748 3648 -1 -3649 3649 4 -3650 3649 -1 -3749 3649 -1 -3650 3650 4 -3651 3650 -1 -3750 3650 -1 -3651 3651 4 -3652 3651 -1 -3751 3651 -1 -3652 3652 4 -3653 3652 -1 -3752 3652 -1 -3653 3653 4 -3654 3653 -1 -3753 3653 -1 -3654 3654 4 -3655 3654 -1 -3754 3654 -1 -3655 3655 4 -3656 3655 -1 -3755 3655 -1 -3656 3656 4 -3657 3656 -1 -3756 3656 -1 -3657 3657 4 -3658 3657 -1 -3757 3657 -1 -3658 3658 4 -3659 3658 -1 -3758 3658 -1 -3659 3659 4 -3660 3659 -1 -3759 3659 -1 -3660 3660 4 -3661 3660 -1 -3760 3660 -1 -3661 3661 4 -3662 3661 -1 -3761 3661 -1 -3662 3662 4 -3663 3662 -1 -3762 3662 -1 -3663 3663 4 -3664 3663 -1 -3763 3663 -1 -3664 3664 4 -3665 3664 -1 -3764 3664 -1 -3665 3665 4 -3666 3665 -1 -3765 3665 -1 -3666 3666 4 -3667 3666 -1 -3766 3666 -1 -3667 3667 4 -3668 3667 -1 -3767 3667 -1 -3668 3668 4 -3669 3668 -1 -3768 3668 -1 -3669 3669 4 -3670 3669 -1 -3769 3669 -1 -3670 3670 4 -3671 3670 -1 -3770 3670 -1 -3671 3671 4 -3672 3671 -1 -3771 3671 -1 -3672 3672 4 -3673 3672 -1 -3772 3672 -1 -3673 3673 4 -3674 3673 -1 -3773 3673 -1 -3674 3674 4 -3675 3674 -1 -3774 3674 -1 -3675 3675 4 -3676 3675 -1 -3775 3675 -1 -3676 3676 4 -3677 3676 -1 -3776 3676 -1 -3677 3677 4 -3678 3677 -1 -3777 3677 -1 -3678 3678 4 -3679 3678 -1 -3778 3678 -1 -3679 3679 4 -3680 3679 -1 -3779 3679 -1 -3680 3680 4 -3681 3680 -1 -3780 3680 -1 -3681 3681 4 -3682 3681 -1 -3781 3681 -1 -3682 3682 4 -3683 3682 -1 -3782 3682 -1 -3683 3683 4 -3684 3683 -1 -3783 3683 -1 -3684 3684 4 -3685 3684 -1 -3784 3684 -1 -3685 3685 4 -3686 3685 -1 -3785 3685 -1 -3686 3686 4 -3687 3686 -1 -3786 3686 -1 -3687 3687 4 -3688 3687 -1 -3787 3687 -1 -3688 3688 4 -3689 3688 -1 -3788 3688 -1 -3689 3689 4 -3690 3689 -1 -3789 3689 -1 -3690 3690 4 -3691 3690 -1 -3790 3690 -1 -3691 3691 4 -3692 3691 -1 -3791 3691 -1 -3692 3692 4 -3693 3692 -1 -3792 3692 -1 -3693 3693 4 -3694 3693 -1 -3793 3693 -1 -3694 3694 4 -3695 3694 -1 -3794 3694 -1 -3695 3695 4 -3696 3695 -1 -3795 3695 -1 -3696 3696 4 -3697 3696 -1 -3796 3696 -1 -3697 3697 4 -3698 3697 -1 -3797 3697 -1 -3698 3698 4 -3699 3698 -1 -3798 3698 -1 -3699 3699 4 -3700 3699 -1 -3799 3699 -1 -3700 3700 4 -3800 3700 -1 -3701 3701 4 -3702 3701 -1 -3801 3701 -1 -3702 3702 4 -3703 3702 -1 -3802 3702 -1 -3703 3703 4 -3704 3703 -1 -3803 3703 -1 -3704 3704 4 -3705 3704 -1 -3804 3704 -1 -3705 3705 4 -3706 3705 -1 -3805 3705 -1 -3706 3706 4 -3707 3706 -1 -3806 3706 -1 -3707 3707 4 -3708 3707 -1 -3807 3707 -1 -3708 3708 4 -3709 3708 -1 -3808 3708 -1 -3709 3709 4 -3710 3709 -1 -3809 3709 -1 -3710 3710 4 -3711 3710 -1 -3810 3710 -1 -3711 3711 4 -3712 3711 -1 -3811 3711 -1 -3712 3712 4 -3713 3712 -1 -3812 3712 -1 -3713 3713 4 -3714 3713 -1 -3813 3713 -1 -3714 3714 4 -3715 3714 -1 -3814 3714 -1 -3715 3715 4 -3716 3715 -1 -3815 3715 -1 -3716 3716 4 -3717 3716 -1 -3816 3716 -1 -3717 3717 4 -3718 3717 -1 -3817 3717 -1 -3718 3718 4 -3719 3718 -1 -3818 3718 -1 -3719 3719 4 -3720 3719 -1 -3819 3719 -1 -3720 3720 4 -3721 3720 -1 -3820 3720 -1 -3721 3721 4 -3722 3721 -1 -3821 3721 -1 -3722 3722 4 -3723 3722 -1 -3822 3722 -1 -3723 3723 4 -3724 3723 -1 -3823 3723 -1 -3724 3724 4 -3725 3724 -1 -3824 3724 -1 -3725 3725 4 -3726 3725 -1 -3825 3725 -1 -3726 3726 4 -3727 3726 -1 -3826 3726 -1 -3727 3727 4 -3728 3727 -1 -3827 3727 -1 -3728 3728 4 -3729 3728 -1 -3828 3728 -1 -3729 3729 4 -3730 3729 -1 -3829 3729 -1 -3730 3730 4 -3731 3730 -1 -3830 3730 -1 -3731 3731 4 -3732 3731 -1 -3831 3731 -1 -3732 3732 4 -3733 3732 -1 -3832 3732 -1 -3733 3733 4 -3734 3733 -1 -3833 3733 -1 -3734 3734 4 -3735 3734 -1 -3834 3734 -1 -3735 3735 4 -3736 3735 -1 -3835 3735 -1 -3736 3736 4 -3737 3736 -1 -3836 3736 -1 -3737 3737 4 -3738 3737 -1 -3837 3737 -1 -3738 3738 4 -3739 3738 -1 -3838 3738 -1 -3739 3739 4 -3740 3739 -1 -3839 3739 -1 -3740 3740 4 -3741 3740 -1 -3840 3740 -1 -3741 3741 4 -3742 3741 -1 -3841 3741 -1 -3742 3742 4 -3743 3742 -1 -3842 3742 -1 -3743 3743 4 -3744 3743 -1 -3843 3743 -1 -3744 3744 4 -3745 3744 -1 -3844 3744 -1 -3745 3745 4 -3746 3745 -1 -3845 3745 -1 -3746 3746 4 -3747 3746 -1 -3846 3746 -1 -3747 3747 4 -3748 3747 -1 -3847 3747 -1 -3748 3748 4 -3749 3748 -1 -3848 3748 -1 -3749 3749 4 -3750 3749 -1 -3849 3749 -1 -3750 3750 4 -3751 3750 -1 -3850 3750 -1 -3751 3751 4 -3752 3751 -1 -3851 3751 -1 -3752 3752 4 -3753 3752 -1 -3852 3752 -1 -3753 3753 4 -3754 3753 -1 -3853 3753 -1 -3754 3754 4 -3755 3754 -1 -3854 3754 -1 -3755 3755 4 -3756 3755 -1 -3855 3755 -1 -3756 3756 4 -3757 3756 -1 -3856 3756 -1 -3757 3757 4 -3758 3757 -1 -3857 3757 -1 -3758 3758 4 -3759 3758 -1 -3858 3758 -1 -3759 3759 4 -3760 3759 -1 -3859 3759 -1 -3760 3760 4 -3761 3760 -1 -3860 3760 -1 -3761 3761 4 -3762 3761 -1 -3861 3761 -1 -3762 3762 4 -3763 3762 -1 -3862 3762 -1 -3763 3763 4 -3764 3763 -1 -3863 3763 -1 -3764 3764 4 -3765 3764 -1 -3864 3764 -1 -3765 3765 4 -3766 3765 -1 -3865 3765 -1 -3766 3766 4 -3767 3766 -1 -3866 3766 -1 -3767 3767 4 -3768 3767 -1 -3867 3767 -1 -3768 3768 4 -3769 3768 -1 -3868 3768 -1 -3769 3769 4 -3770 3769 -1 -3869 3769 -1 -3770 3770 4 -3771 3770 -1 -3870 3770 -1 -3771 3771 4 -3772 3771 -1 -3871 3771 -1 -3772 3772 4 -3773 3772 -1 -3872 3772 -1 -3773 3773 4 -3774 3773 -1 -3873 3773 -1 -3774 3774 4 -3775 3774 -1 -3874 3774 -1 -3775 3775 4 -3776 3775 -1 -3875 3775 -1 -3776 3776 4 -3777 3776 -1 -3876 3776 -1 -3777 3777 4 -3778 3777 -1 -3877 3777 -1 -3778 3778 4 -3779 3778 -1 -3878 3778 -1 -3779 3779 4 -3780 3779 -1 -3879 3779 -1 -3780 3780 4 -3781 3780 -1 -3880 3780 -1 -3781 3781 4 -3782 3781 -1 -3881 3781 -1 -3782 3782 4 -3783 3782 -1 -3882 3782 -1 -3783 3783 4 -3784 3783 -1 -3883 3783 -1 -3784 3784 4 -3785 3784 -1 -3884 3784 -1 -3785 3785 4 -3786 3785 -1 -3885 3785 -1 -3786 3786 4 -3787 3786 -1 -3886 3786 -1 -3787 3787 4 -3788 3787 -1 -3887 3787 -1 -3788 3788 4 -3789 3788 -1 -3888 3788 -1 -3789 3789 4 -3790 3789 -1 -3889 3789 -1 -3790 3790 4 -3791 3790 -1 -3890 3790 -1 -3791 3791 4 -3792 3791 -1 -3891 3791 -1 -3792 3792 4 -3793 3792 -1 -3892 3792 -1 -3793 3793 4 -3794 3793 -1 -3893 3793 -1 -3794 3794 4 -3795 3794 -1 -3894 3794 -1 -3795 3795 4 -3796 3795 -1 -3895 3795 -1 -3796 3796 4 -3797 3796 -1 -3896 3796 -1 -3797 3797 4 -3798 3797 -1 -3897 3797 -1 -3798 3798 4 -3799 3798 -1 -3898 3798 -1 -3799 3799 4 -3800 3799 -1 -3899 3799 -1 -3800 3800 4 -3900 3800 -1 -3801 3801 4 -3802 3801 -1 -3901 3801 -1 -3802 3802 4 -3803 3802 -1 -3902 3802 -1 -3803 3803 4 -3804 3803 -1 -3903 3803 -1 -3804 3804 4 -3805 3804 -1 -3904 3804 -1 -3805 3805 4 -3806 3805 -1 -3905 3805 -1 -3806 3806 4 -3807 3806 -1 -3906 3806 -1 -3807 3807 4 -3808 3807 -1 -3907 3807 -1 -3808 3808 4 -3809 3808 -1 -3908 3808 -1 -3809 3809 4 -3810 3809 -1 -3909 3809 -1 -3810 3810 4 -3811 3810 -1 -3910 3810 -1 -3811 3811 4 -3812 3811 -1 -3911 3811 -1 -3812 3812 4 -3813 3812 -1 -3912 3812 -1 -3813 3813 4 -3814 3813 -1 -3913 3813 -1 -3814 3814 4 -3815 3814 -1 -3914 3814 -1 -3815 3815 4 -3816 3815 -1 -3915 3815 -1 -3816 3816 4 -3817 3816 -1 -3916 3816 -1 -3817 3817 4 -3818 3817 -1 -3917 3817 -1 -3818 3818 4 -3819 3818 -1 -3918 3818 -1 -3819 3819 4 -3820 3819 -1 -3919 3819 -1 -3820 3820 4 -3821 3820 -1 -3920 3820 -1 -3821 3821 4 -3822 3821 -1 -3921 3821 -1 -3822 3822 4 -3823 3822 -1 -3922 3822 -1 -3823 3823 4 -3824 3823 -1 -3923 3823 -1 -3824 3824 4 -3825 3824 -1 -3924 3824 -1 -3825 3825 4 -3826 3825 -1 -3925 3825 -1 -3826 3826 4 -3827 3826 -1 -3926 3826 -1 -3827 3827 4 -3828 3827 -1 -3927 3827 -1 -3828 3828 4 -3829 3828 -1 -3928 3828 -1 -3829 3829 4 -3830 3829 -1 -3929 3829 -1 -3830 3830 4 -3831 3830 -1 -3930 3830 -1 -3831 3831 4 -3832 3831 -1 -3931 3831 -1 -3832 3832 4 -3833 3832 -1 -3932 3832 -1 -3833 3833 4 -3834 3833 -1 -3933 3833 -1 -3834 3834 4 -3835 3834 -1 -3934 3834 -1 -3835 3835 4 -3836 3835 -1 -3935 3835 -1 -3836 3836 4 -3837 3836 -1 -3936 3836 -1 -3837 3837 4 -3838 3837 -1 -3937 3837 -1 -3838 3838 4 -3839 3838 -1 -3938 3838 -1 -3839 3839 4 -3840 3839 -1 -3939 3839 -1 -3840 3840 4 -3841 3840 -1 -3940 3840 -1 -3841 3841 4 -3842 3841 -1 -3941 3841 -1 -3842 3842 4 -3843 3842 -1 -3942 3842 -1 -3843 3843 4 -3844 3843 -1 -3943 3843 -1 -3844 3844 4 -3845 3844 -1 -3944 3844 -1 -3845 3845 4 -3846 3845 -1 -3945 3845 -1 -3846 3846 4 -3847 3846 -1 -3946 3846 -1 -3847 3847 4 -3848 3847 -1 -3947 3847 -1 -3848 3848 4 -3849 3848 -1 -3948 3848 -1 -3849 3849 4 -3850 3849 -1 -3949 3849 -1 -3850 3850 4 -3851 3850 -1 -3950 3850 -1 -3851 3851 4 -3852 3851 -1 -3951 3851 -1 -3852 3852 4 -3853 3852 -1 -3952 3852 -1 -3853 3853 4 -3854 3853 -1 -3953 3853 -1 -3854 3854 4 -3855 3854 -1 -3954 3854 -1 -3855 3855 4 -3856 3855 -1 -3955 3855 -1 -3856 3856 4 -3857 3856 -1 -3956 3856 -1 -3857 3857 4 -3858 3857 -1 -3957 3857 -1 -3858 3858 4 -3859 3858 -1 -3958 3858 -1 -3859 3859 4 -3860 3859 -1 -3959 3859 -1 -3860 3860 4 -3861 3860 -1 -3960 3860 -1 -3861 3861 4 -3862 3861 -1 -3961 3861 -1 -3862 3862 4 -3863 3862 -1 -3962 3862 -1 -3863 3863 4 -3864 3863 -1 -3963 3863 -1 -3864 3864 4 -3865 3864 -1 -3964 3864 -1 -3865 3865 4 -3866 3865 -1 -3965 3865 -1 -3866 3866 4 -3867 3866 -1 -3966 3866 -1 -3867 3867 4 -3868 3867 -1 -3967 3867 -1 -3868 3868 4 -3869 3868 -1 -3968 3868 -1 -3869 3869 4 -3870 3869 -1 -3969 3869 -1 -3870 3870 4 -3871 3870 -1 -3970 3870 -1 -3871 3871 4 -3872 3871 -1 -3971 3871 -1 -3872 3872 4 -3873 3872 -1 -3972 3872 -1 -3873 3873 4 -3874 3873 -1 -3973 3873 -1 -3874 3874 4 -3875 3874 -1 -3974 3874 -1 -3875 3875 4 -3876 3875 -1 -3975 3875 -1 -3876 3876 4 -3877 3876 -1 -3976 3876 -1 -3877 3877 4 -3878 3877 -1 -3977 3877 -1 -3878 3878 4 -3879 3878 -1 -3978 3878 -1 -3879 3879 4 -3880 3879 -1 -3979 3879 -1 -3880 3880 4 -3881 3880 -1 -3980 3880 -1 -3881 3881 4 -3882 3881 -1 -3981 3881 -1 -3882 3882 4 -3883 3882 -1 -3982 3882 -1 -3883 3883 4 -3884 3883 -1 -3983 3883 -1 -3884 3884 4 -3885 3884 -1 -3984 3884 -1 -3885 3885 4 -3886 3885 -1 -3985 3885 -1 -3886 3886 4 -3887 3886 -1 -3986 3886 -1 -3887 3887 4 -3888 3887 -1 -3987 3887 -1 -3888 3888 4 -3889 3888 -1 -3988 3888 -1 -3889 3889 4 -3890 3889 -1 -3989 3889 -1 -3890 3890 4 -3891 3890 -1 -3990 3890 -1 -3891 3891 4 -3892 3891 -1 -3991 3891 -1 -3892 3892 4 -3893 3892 -1 -3992 3892 -1 -3893 3893 4 -3894 3893 -1 -3993 3893 -1 -3894 3894 4 -3895 3894 -1 -3994 3894 -1 -3895 3895 4 -3896 3895 -1 -3995 3895 -1 -3896 3896 4 -3897 3896 -1 -3996 3896 -1 -3897 3897 4 -3898 3897 -1 -3997 3897 -1 -3898 3898 4 -3899 3898 -1 -3998 3898 -1 -3899 3899 4 -3900 3899 -1 -3999 3899 -1 -3900 3900 4 -4000 3900 -1 -3901 3901 4 -3902 3901 -1 -4001 3901 -1 -3902 3902 4 -3903 3902 -1 -4002 3902 -1 -3903 3903 4 -3904 3903 -1 -4003 3903 -1 -3904 3904 4 -3905 3904 -1 -4004 3904 -1 -3905 3905 4 -3906 3905 -1 -4005 3905 -1 -3906 3906 4 -3907 3906 -1 -4006 3906 -1 -3907 3907 4 -3908 3907 -1 -4007 3907 -1 -3908 3908 4 -3909 3908 -1 -4008 3908 -1 -3909 3909 4 -3910 3909 -1 -4009 3909 -1 -3910 3910 4 -3911 3910 -1 -4010 3910 -1 -3911 3911 4 -3912 3911 -1 -4011 3911 -1 -3912 3912 4 -3913 3912 -1 -4012 3912 -1 -3913 3913 4 -3914 3913 -1 -4013 3913 -1 -3914 3914 4 -3915 3914 -1 -4014 3914 -1 -3915 3915 4 -3916 3915 -1 -4015 3915 -1 -3916 3916 4 -3917 3916 -1 -4016 3916 -1 -3917 3917 4 -3918 3917 -1 -4017 3917 -1 -3918 3918 4 -3919 3918 -1 -4018 3918 -1 -3919 3919 4 -3920 3919 -1 -4019 3919 -1 -3920 3920 4 -3921 3920 -1 -4020 3920 -1 -3921 3921 4 -3922 3921 -1 -4021 3921 -1 -3922 3922 4 -3923 3922 -1 -4022 3922 -1 -3923 3923 4 -3924 3923 -1 -4023 3923 -1 -3924 3924 4 -3925 3924 -1 -4024 3924 -1 -3925 3925 4 -3926 3925 -1 -4025 3925 -1 -3926 3926 4 -3927 3926 -1 -4026 3926 -1 -3927 3927 4 -3928 3927 -1 -4027 3927 -1 -3928 3928 4 -3929 3928 -1 -4028 3928 -1 -3929 3929 4 -3930 3929 -1 -4029 3929 -1 -3930 3930 4 -3931 3930 -1 -4030 3930 -1 -3931 3931 4 -3932 3931 -1 -4031 3931 -1 -3932 3932 4 -3933 3932 -1 -4032 3932 -1 -3933 3933 4 -3934 3933 -1 -4033 3933 -1 -3934 3934 4 -3935 3934 -1 -4034 3934 -1 -3935 3935 4 -3936 3935 -1 -4035 3935 -1 -3936 3936 4 -3937 3936 -1 -4036 3936 -1 -3937 3937 4 -3938 3937 -1 -4037 3937 -1 -3938 3938 4 -3939 3938 -1 -4038 3938 -1 -3939 3939 4 -3940 3939 -1 -4039 3939 -1 -3940 3940 4 -3941 3940 -1 -4040 3940 -1 -3941 3941 4 -3942 3941 -1 -4041 3941 -1 -3942 3942 4 -3943 3942 -1 -4042 3942 -1 -3943 3943 4 -3944 3943 -1 -4043 3943 -1 -3944 3944 4 -3945 3944 -1 -4044 3944 -1 -3945 3945 4 -3946 3945 -1 -4045 3945 -1 -3946 3946 4 -3947 3946 -1 -4046 3946 -1 -3947 3947 4 -3948 3947 -1 -4047 3947 -1 -3948 3948 4 -3949 3948 -1 -4048 3948 -1 -3949 3949 4 -3950 3949 -1 -4049 3949 -1 -3950 3950 4 -3951 3950 -1 -4050 3950 -1 -3951 3951 4 -3952 3951 -1 -4051 3951 -1 -3952 3952 4 -3953 3952 -1 -4052 3952 -1 -3953 3953 4 -3954 3953 -1 -4053 3953 -1 -3954 3954 4 -3955 3954 -1 -4054 3954 -1 -3955 3955 4 -3956 3955 -1 -4055 3955 -1 -3956 3956 4 -3957 3956 -1 -4056 3956 -1 -3957 3957 4 -3958 3957 -1 -4057 3957 -1 -3958 3958 4 -3959 3958 -1 -4058 3958 -1 -3959 3959 4 -3960 3959 -1 -4059 3959 -1 -3960 3960 4 -3961 3960 -1 -4060 3960 -1 -3961 3961 4 -3962 3961 -1 -4061 3961 -1 -3962 3962 4 -3963 3962 -1 -4062 3962 -1 -3963 3963 4 -3964 3963 -1 -4063 3963 -1 -3964 3964 4 -3965 3964 -1 -4064 3964 -1 -3965 3965 4 -3966 3965 -1 -4065 3965 -1 -3966 3966 4 -3967 3966 -1 -4066 3966 -1 -3967 3967 4 -3968 3967 -1 -4067 3967 -1 -3968 3968 4 -3969 3968 -1 -4068 3968 -1 -3969 3969 4 -3970 3969 -1 -4069 3969 -1 -3970 3970 4 -3971 3970 -1 -4070 3970 -1 -3971 3971 4 -3972 3971 -1 -4071 3971 -1 -3972 3972 4 -3973 3972 -1 -4072 3972 -1 -3973 3973 4 -3974 3973 -1 -4073 3973 -1 -3974 3974 4 -3975 3974 -1 -4074 3974 -1 -3975 3975 4 -3976 3975 -1 -4075 3975 -1 -3976 3976 4 -3977 3976 -1 -4076 3976 -1 -3977 3977 4 -3978 3977 -1 -4077 3977 -1 -3978 3978 4 -3979 3978 -1 -4078 3978 -1 -3979 3979 4 -3980 3979 -1 -4079 3979 -1 -3980 3980 4 -3981 3980 -1 -4080 3980 -1 -3981 3981 4 -3982 3981 -1 -4081 3981 -1 -3982 3982 4 -3983 3982 -1 -4082 3982 -1 -3983 3983 4 -3984 3983 -1 -4083 3983 -1 -3984 3984 4 -3985 3984 -1 -4084 3984 -1 -3985 3985 4 -3986 3985 -1 -4085 3985 -1 -3986 3986 4 -3987 3986 -1 -4086 3986 -1 -3987 3987 4 -3988 3987 -1 -4087 3987 -1 -3988 3988 4 -3989 3988 -1 -4088 3988 -1 -3989 3989 4 -3990 3989 -1 -4089 3989 -1 -3990 3990 4 -3991 3990 -1 -4090 3990 -1 -3991 3991 4 -3992 3991 -1 -4091 3991 -1 -3992 3992 4 -3993 3992 -1 -4092 3992 -1 -3993 3993 4 -3994 3993 -1 -4093 3993 -1 -3994 3994 4 -3995 3994 -1 -4094 3994 -1 -3995 3995 4 -3996 3995 -1 -4095 3995 -1 -3996 3996 4 -3997 3996 -1 -4096 3996 -1 -3997 3997 4 -3998 3997 -1 -4097 3997 -1 -3998 3998 4 -3999 3998 -1 -4098 3998 -1 -3999 3999 4 -4000 3999 -1 -4099 3999 -1 -4000 4000 4 -4100 4000 -1 -4001 4001 4 -4002 4001 -1 -4101 4001 -1 -4002 4002 4 -4003 4002 -1 -4102 4002 -1 -4003 4003 4 -4004 4003 -1 -4103 4003 -1 -4004 4004 4 -4005 4004 -1 -4104 4004 -1 -4005 4005 4 -4006 4005 -1 -4105 4005 -1 -4006 4006 4 -4007 4006 -1 -4106 4006 -1 -4007 4007 4 -4008 4007 -1 -4107 4007 -1 -4008 4008 4 -4009 4008 -1 -4108 4008 -1 -4009 4009 4 -4010 4009 -1 -4109 4009 -1 -4010 4010 4 -4011 4010 -1 -4110 4010 -1 -4011 4011 4 -4012 4011 -1 -4111 4011 -1 -4012 4012 4 -4013 4012 -1 -4112 4012 -1 -4013 4013 4 -4014 4013 -1 -4113 4013 -1 -4014 4014 4 -4015 4014 -1 -4114 4014 -1 -4015 4015 4 -4016 4015 -1 -4115 4015 -1 -4016 4016 4 -4017 4016 -1 -4116 4016 -1 -4017 4017 4 -4018 4017 -1 -4117 4017 -1 -4018 4018 4 -4019 4018 -1 -4118 4018 -1 -4019 4019 4 -4020 4019 -1 -4119 4019 -1 -4020 4020 4 -4021 4020 -1 -4120 4020 -1 -4021 4021 4 -4022 4021 -1 -4121 4021 -1 -4022 4022 4 -4023 4022 -1 -4122 4022 -1 -4023 4023 4 -4024 4023 -1 -4123 4023 -1 -4024 4024 4 -4025 4024 -1 -4124 4024 -1 -4025 4025 4 -4026 4025 -1 -4125 4025 -1 -4026 4026 4 -4027 4026 -1 -4126 4026 -1 -4027 4027 4 -4028 4027 -1 -4127 4027 -1 -4028 4028 4 -4029 4028 -1 -4128 4028 -1 -4029 4029 4 -4030 4029 -1 -4129 4029 -1 -4030 4030 4 -4031 4030 -1 -4130 4030 -1 -4031 4031 4 -4032 4031 -1 -4131 4031 -1 -4032 4032 4 -4033 4032 -1 -4132 4032 -1 -4033 4033 4 -4034 4033 -1 -4133 4033 -1 -4034 4034 4 -4035 4034 -1 -4134 4034 -1 -4035 4035 4 -4036 4035 -1 -4135 4035 -1 -4036 4036 4 -4037 4036 -1 -4136 4036 -1 -4037 4037 4 -4038 4037 -1 -4137 4037 -1 -4038 4038 4 -4039 4038 -1 -4138 4038 -1 -4039 4039 4 -4040 4039 -1 -4139 4039 -1 -4040 4040 4 -4041 4040 -1 -4140 4040 -1 -4041 4041 4 -4042 4041 -1 -4141 4041 -1 -4042 4042 4 -4043 4042 -1 -4142 4042 -1 -4043 4043 4 -4044 4043 -1 -4143 4043 -1 -4044 4044 4 -4045 4044 -1 -4144 4044 -1 -4045 4045 4 -4046 4045 -1 -4145 4045 -1 -4046 4046 4 -4047 4046 -1 -4146 4046 -1 -4047 4047 4 -4048 4047 -1 -4147 4047 -1 -4048 4048 4 -4049 4048 -1 -4148 4048 -1 -4049 4049 4 -4050 4049 -1 -4149 4049 -1 -4050 4050 4 -4051 4050 -1 -4150 4050 -1 -4051 4051 4 -4052 4051 -1 -4151 4051 -1 -4052 4052 4 -4053 4052 -1 -4152 4052 -1 -4053 4053 4 -4054 4053 -1 -4153 4053 -1 -4054 4054 4 -4055 4054 -1 -4154 4054 -1 -4055 4055 4 -4056 4055 -1 -4155 4055 -1 -4056 4056 4 -4057 4056 -1 -4156 4056 -1 -4057 4057 4 -4058 4057 -1 -4157 4057 -1 -4058 4058 4 -4059 4058 -1 -4158 4058 -1 -4059 4059 4 -4060 4059 -1 -4159 4059 -1 -4060 4060 4 -4061 4060 -1 -4160 4060 -1 -4061 4061 4 -4062 4061 -1 -4161 4061 -1 -4062 4062 4 -4063 4062 -1 -4162 4062 -1 -4063 4063 4 -4064 4063 -1 -4163 4063 -1 -4064 4064 4 -4065 4064 -1 -4164 4064 -1 -4065 4065 4 -4066 4065 -1 -4165 4065 -1 -4066 4066 4 -4067 4066 -1 -4166 4066 -1 -4067 4067 4 -4068 4067 -1 -4167 4067 -1 -4068 4068 4 -4069 4068 -1 -4168 4068 -1 -4069 4069 4 -4070 4069 -1 -4169 4069 -1 -4070 4070 4 -4071 4070 -1 -4170 4070 -1 -4071 4071 4 -4072 4071 -1 -4171 4071 -1 -4072 4072 4 -4073 4072 -1 -4172 4072 -1 -4073 4073 4 -4074 4073 -1 -4173 4073 -1 -4074 4074 4 -4075 4074 -1 -4174 4074 -1 -4075 4075 4 -4076 4075 -1 -4175 4075 -1 -4076 4076 4 -4077 4076 -1 -4176 4076 -1 -4077 4077 4 -4078 4077 -1 -4177 4077 -1 -4078 4078 4 -4079 4078 -1 -4178 4078 -1 -4079 4079 4 -4080 4079 -1 -4179 4079 -1 -4080 4080 4 -4081 4080 -1 -4180 4080 -1 -4081 4081 4 -4082 4081 -1 -4181 4081 -1 -4082 4082 4 -4083 4082 -1 -4182 4082 -1 -4083 4083 4 -4084 4083 -1 -4183 4083 -1 -4084 4084 4 -4085 4084 -1 -4184 4084 -1 -4085 4085 4 -4086 4085 -1 -4185 4085 -1 -4086 4086 4 -4087 4086 -1 -4186 4086 -1 -4087 4087 4 -4088 4087 -1 -4187 4087 -1 -4088 4088 4 -4089 4088 -1 -4188 4088 -1 -4089 4089 4 -4090 4089 -1 -4189 4089 -1 -4090 4090 4 -4091 4090 -1 -4190 4090 -1 -4091 4091 4 -4092 4091 -1 -4191 4091 -1 -4092 4092 4 -4093 4092 -1 -4192 4092 -1 -4093 4093 4 -4094 4093 -1 -4193 4093 -1 -4094 4094 4 -4095 4094 -1 -4194 4094 -1 -4095 4095 4 -4096 4095 -1 -4195 4095 -1 -4096 4096 4 -4097 4096 -1 -4196 4096 -1 -4097 4097 4 -4098 4097 -1 -4197 4097 -1 -4098 4098 4 -4099 4098 -1 -4198 4098 -1 -4099 4099 4 -4100 4099 -1 -4199 4099 -1 -4100 4100 4 -4200 4100 -1 -4101 4101 4 -4102 4101 -1 -4201 4101 -1 -4102 4102 4 -4103 4102 -1 -4202 4102 -1 -4103 4103 4 -4104 4103 -1 -4203 4103 -1 -4104 4104 4 -4105 4104 -1 -4204 4104 -1 -4105 4105 4 -4106 4105 -1 -4205 4105 -1 -4106 4106 4 -4107 4106 -1 -4206 4106 -1 -4107 4107 4 -4108 4107 -1 -4207 4107 -1 -4108 4108 4 -4109 4108 -1 -4208 4108 -1 -4109 4109 4 -4110 4109 -1 -4209 4109 -1 -4110 4110 4 -4111 4110 -1 -4210 4110 -1 -4111 4111 4 -4112 4111 -1 -4211 4111 -1 -4112 4112 4 -4113 4112 -1 -4212 4112 -1 -4113 4113 4 -4114 4113 -1 -4213 4113 -1 -4114 4114 4 -4115 4114 -1 -4214 4114 -1 -4115 4115 4 -4116 4115 -1 -4215 4115 -1 -4116 4116 4 -4117 4116 -1 -4216 4116 -1 -4117 4117 4 -4118 4117 -1 -4217 4117 -1 -4118 4118 4 -4119 4118 -1 -4218 4118 -1 -4119 4119 4 -4120 4119 -1 -4219 4119 -1 -4120 4120 4 -4121 4120 -1 -4220 4120 -1 -4121 4121 4 -4122 4121 -1 -4221 4121 -1 -4122 4122 4 -4123 4122 -1 -4222 4122 -1 -4123 4123 4 -4124 4123 -1 -4223 4123 -1 -4124 4124 4 -4125 4124 -1 -4224 4124 -1 -4125 4125 4 -4126 4125 -1 -4225 4125 -1 -4126 4126 4 -4127 4126 -1 -4226 4126 -1 -4127 4127 4 -4128 4127 -1 -4227 4127 -1 -4128 4128 4 -4129 4128 -1 -4228 4128 -1 -4129 4129 4 -4130 4129 -1 -4229 4129 -1 -4130 4130 4 -4131 4130 -1 -4230 4130 -1 -4131 4131 4 -4132 4131 -1 -4231 4131 -1 -4132 4132 4 -4133 4132 -1 -4232 4132 -1 -4133 4133 4 -4134 4133 -1 -4233 4133 -1 -4134 4134 4 -4135 4134 -1 -4234 4134 -1 -4135 4135 4 -4136 4135 -1 -4235 4135 -1 -4136 4136 4 -4137 4136 -1 -4236 4136 -1 -4137 4137 4 -4138 4137 -1 -4237 4137 -1 -4138 4138 4 -4139 4138 -1 -4238 4138 -1 -4139 4139 4 -4140 4139 -1 -4239 4139 -1 -4140 4140 4 -4141 4140 -1 -4240 4140 -1 -4141 4141 4 -4142 4141 -1 -4241 4141 -1 -4142 4142 4 -4143 4142 -1 -4242 4142 -1 -4143 4143 4 -4144 4143 -1 -4243 4143 -1 -4144 4144 4 -4145 4144 -1 -4244 4144 -1 -4145 4145 4 -4146 4145 -1 -4245 4145 -1 -4146 4146 4 -4147 4146 -1 -4246 4146 -1 -4147 4147 4 -4148 4147 -1 -4247 4147 -1 -4148 4148 4 -4149 4148 -1 -4248 4148 -1 -4149 4149 4 -4150 4149 -1 -4249 4149 -1 -4150 4150 4 -4151 4150 -1 -4250 4150 -1 -4151 4151 4 -4152 4151 -1 -4251 4151 -1 -4152 4152 4 -4153 4152 -1 -4252 4152 -1 -4153 4153 4 -4154 4153 -1 -4253 4153 -1 -4154 4154 4 -4155 4154 -1 -4254 4154 -1 -4155 4155 4 -4156 4155 -1 -4255 4155 -1 -4156 4156 4 -4157 4156 -1 -4256 4156 -1 -4157 4157 4 -4158 4157 -1 -4257 4157 -1 -4158 4158 4 -4159 4158 -1 -4258 4158 -1 -4159 4159 4 -4160 4159 -1 -4259 4159 -1 -4160 4160 4 -4161 4160 -1 -4260 4160 -1 -4161 4161 4 -4162 4161 -1 -4261 4161 -1 -4162 4162 4 -4163 4162 -1 -4262 4162 -1 -4163 4163 4 -4164 4163 -1 -4263 4163 -1 -4164 4164 4 -4165 4164 -1 -4264 4164 -1 -4165 4165 4 -4166 4165 -1 -4265 4165 -1 -4166 4166 4 -4167 4166 -1 -4266 4166 -1 -4167 4167 4 -4168 4167 -1 -4267 4167 -1 -4168 4168 4 -4169 4168 -1 -4268 4168 -1 -4169 4169 4 -4170 4169 -1 -4269 4169 -1 -4170 4170 4 -4171 4170 -1 -4270 4170 -1 -4171 4171 4 -4172 4171 -1 -4271 4171 -1 -4172 4172 4 -4173 4172 -1 -4272 4172 -1 -4173 4173 4 -4174 4173 -1 -4273 4173 -1 -4174 4174 4 -4175 4174 -1 -4274 4174 -1 -4175 4175 4 -4176 4175 -1 -4275 4175 -1 -4176 4176 4 -4177 4176 -1 -4276 4176 -1 -4177 4177 4 -4178 4177 -1 -4277 4177 -1 -4178 4178 4 -4179 4178 -1 -4278 4178 -1 -4179 4179 4 -4180 4179 -1 -4279 4179 -1 -4180 4180 4 -4181 4180 -1 -4280 4180 -1 -4181 4181 4 -4182 4181 -1 -4281 4181 -1 -4182 4182 4 -4183 4182 -1 -4282 4182 -1 -4183 4183 4 -4184 4183 -1 -4283 4183 -1 -4184 4184 4 -4185 4184 -1 -4284 4184 -1 -4185 4185 4 -4186 4185 -1 -4285 4185 -1 -4186 4186 4 -4187 4186 -1 -4286 4186 -1 -4187 4187 4 -4188 4187 -1 -4287 4187 -1 -4188 4188 4 -4189 4188 -1 -4288 4188 -1 -4189 4189 4 -4190 4189 -1 -4289 4189 -1 -4190 4190 4 -4191 4190 -1 -4290 4190 -1 -4191 4191 4 -4192 4191 -1 -4291 4191 -1 -4192 4192 4 -4193 4192 -1 -4292 4192 -1 -4193 4193 4 -4194 4193 -1 -4293 4193 -1 -4194 4194 4 -4195 4194 -1 -4294 4194 -1 -4195 4195 4 -4196 4195 -1 -4295 4195 -1 -4196 4196 4 -4197 4196 -1 -4296 4196 -1 -4197 4197 4 -4198 4197 -1 -4297 4197 -1 -4198 4198 4 -4199 4198 -1 -4298 4198 -1 -4199 4199 4 -4200 4199 -1 -4299 4199 -1 -4200 4200 4 -4300 4200 -1 -4201 4201 4 -4202 4201 -1 -4301 4201 -1 -4202 4202 4 -4203 4202 -1 -4302 4202 -1 -4203 4203 4 -4204 4203 -1 -4303 4203 -1 -4204 4204 4 -4205 4204 -1 -4304 4204 -1 -4205 4205 4 -4206 4205 -1 -4305 4205 -1 -4206 4206 4 -4207 4206 -1 -4306 4206 -1 -4207 4207 4 -4208 4207 -1 -4307 4207 -1 -4208 4208 4 -4209 4208 -1 -4308 4208 -1 -4209 4209 4 -4210 4209 -1 -4309 4209 -1 -4210 4210 4 -4211 4210 -1 -4310 4210 -1 -4211 4211 4 -4212 4211 -1 -4311 4211 -1 -4212 4212 4 -4213 4212 -1 -4312 4212 -1 -4213 4213 4 -4214 4213 -1 -4313 4213 -1 -4214 4214 4 -4215 4214 -1 -4314 4214 -1 -4215 4215 4 -4216 4215 -1 -4315 4215 -1 -4216 4216 4 -4217 4216 -1 -4316 4216 -1 -4217 4217 4 -4218 4217 -1 -4317 4217 -1 -4218 4218 4 -4219 4218 -1 -4318 4218 -1 -4219 4219 4 -4220 4219 -1 -4319 4219 -1 -4220 4220 4 -4221 4220 -1 -4320 4220 -1 -4221 4221 4 -4222 4221 -1 -4321 4221 -1 -4222 4222 4 -4223 4222 -1 -4322 4222 -1 -4223 4223 4 -4224 4223 -1 -4323 4223 -1 -4224 4224 4 -4225 4224 -1 -4324 4224 -1 -4225 4225 4 -4226 4225 -1 -4325 4225 -1 -4226 4226 4 -4227 4226 -1 -4326 4226 -1 -4227 4227 4 -4228 4227 -1 -4327 4227 -1 -4228 4228 4 -4229 4228 -1 -4328 4228 -1 -4229 4229 4 -4230 4229 -1 -4329 4229 -1 -4230 4230 4 -4231 4230 -1 -4330 4230 -1 -4231 4231 4 -4232 4231 -1 -4331 4231 -1 -4232 4232 4 -4233 4232 -1 -4332 4232 -1 -4233 4233 4 -4234 4233 -1 -4333 4233 -1 -4234 4234 4 -4235 4234 -1 -4334 4234 -1 -4235 4235 4 -4236 4235 -1 -4335 4235 -1 -4236 4236 4 -4237 4236 -1 -4336 4236 -1 -4237 4237 4 -4238 4237 -1 -4337 4237 -1 -4238 4238 4 -4239 4238 -1 -4338 4238 -1 -4239 4239 4 -4240 4239 -1 -4339 4239 -1 -4240 4240 4 -4241 4240 -1 -4340 4240 -1 -4241 4241 4 -4242 4241 -1 -4341 4241 -1 -4242 4242 4 -4243 4242 -1 -4342 4242 -1 -4243 4243 4 -4244 4243 -1 -4343 4243 -1 -4244 4244 4 -4245 4244 -1 -4344 4244 -1 -4245 4245 4 -4246 4245 -1 -4345 4245 -1 -4246 4246 4 -4247 4246 -1 -4346 4246 -1 -4247 4247 4 -4248 4247 -1 -4347 4247 -1 -4248 4248 4 -4249 4248 -1 -4348 4248 -1 -4249 4249 4 -4250 4249 -1 -4349 4249 -1 -4250 4250 4 -4251 4250 -1 -4350 4250 -1 -4251 4251 4 -4252 4251 -1 -4351 4251 -1 -4252 4252 4 -4253 4252 -1 -4352 4252 -1 -4253 4253 4 -4254 4253 -1 -4353 4253 -1 -4254 4254 4 -4255 4254 -1 -4354 4254 -1 -4255 4255 4 -4256 4255 -1 -4355 4255 -1 -4256 4256 4 -4257 4256 -1 -4356 4256 -1 -4257 4257 4 -4258 4257 -1 -4357 4257 -1 -4258 4258 4 -4259 4258 -1 -4358 4258 -1 -4259 4259 4 -4260 4259 -1 -4359 4259 -1 -4260 4260 4 -4261 4260 -1 -4360 4260 -1 -4261 4261 4 -4262 4261 -1 -4361 4261 -1 -4262 4262 4 -4263 4262 -1 -4362 4262 -1 -4263 4263 4 -4264 4263 -1 -4363 4263 -1 -4264 4264 4 -4265 4264 -1 -4364 4264 -1 -4265 4265 4 -4266 4265 -1 -4365 4265 -1 -4266 4266 4 -4267 4266 -1 -4366 4266 -1 -4267 4267 4 -4268 4267 -1 -4367 4267 -1 -4268 4268 4 -4269 4268 -1 -4368 4268 -1 -4269 4269 4 -4270 4269 -1 -4369 4269 -1 -4270 4270 4 -4271 4270 -1 -4370 4270 -1 -4271 4271 4 -4272 4271 -1 -4371 4271 -1 -4272 4272 4 -4273 4272 -1 -4372 4272 -1 -4273 4273 4 -4274 4273 -1 -4373 4273 -1 -4274 4274 4 -4275 4274 -1 -4374 4274 -1 -4275 4275 4 -4276 4275 -1 -4375 4275 -1 -4276 4276 4 -4277 4276 -1 -4376 4276 -1 -4277 4277 4 -4278 4277 -1 -4377 4277 -1 -4278 4278 4 -4279 4278 -1 -4378 4278 -1 -4279 4279 4 -4280 4279 -1 -4379 4279 -1 -4280 4280 4 -4281 4280 -1 -4380 4280 -1 -4281 4281 4 -4282 4281 -1 -4381 4281 -1 -4282 4282 4 -4283 4282 -1 -4382 4282 -1 -4283 4283 4 -4284 4283 -1 -4383 4283 -1 -4284 4284 4 -4285 4284 -1 -4384 4284 -1 -4285 4285 4 -4286 4285 -1 -4385 4285 -1 -4286 4286 4 -4287 4286 -1 -4386 4286 -1 -4287 4287 4 -4288 4287 -1 -4387 4287 -1 -4288 4288 4 -4289 4288 -1 -4388 4288 -1 -4289 4289 4 -4290 4289 -1 -4389 4289 -1 -4290 4290 4 -4291 4290 -1 -4390 4290 -1 -4291 4291 4 -4292 4291 -1 -4391 4291 -1 -4292 4292 4 -4293 4292 -1 -4392 4292 -1 -4293 4293 4 -4294 4293 -1 -4393 4293 -1 -4294 4294 4 -4295 4294 -1 -4394 4294 -1 -4295 4295 4 -4296 4295 -1 -4395 4295 -1 -4296 4296 4 -4297 4296 -1 -4396 4296 -1 -4297 4297 4 -4298 4297 -1 -4397 4297 -1 -4298 4298 4 -4299 4298 -1 -4398 4298 -1 -4299 4299 4 -4300 4299 -1 -4399 4299 -1 -4300 4300 4 -4400 4300 -1 -4301 4301 4 -4302 4301 -1 -4401 4301 -1 -4302 4302 4 -4303 4302 -1 -4402 4302 -1 -4303 4303 4 -4304 4303 -1 -4403 4303 -1 -4304 4304 4 -4305 4304 -1 -4404 4304 -1 -4305 4305 4 -4306 4305 -1 -4405 4305 -1 -4306 4306 4 -4307 4306 -1 -4406 4306 -1 -4307 4307 4 -4308 4307 -1 -4407 4307 -1 -4308 4308 4 -4309 4308 -1 -4408 4308 -1 -4309 4309 4 -4310 4309 -1 -4409 4309 -1 -4310 4310 4 -4311 4310 -1 -4410 4310 -1 -4311 4311 4 -4312 4311 -1 -4411 4311 -1 -4312 4312 4 -4313 4312 -1 -4412 4312 -1 -4313 4313 4 -4314 4313 -1 -4413 4313 -1 -4314 4314 4 -4315 4314 -1 -4414 4314 -1 -4315 4315 4 -4316 4315 -1 -4415 4315 -1 -4316 4316 4 -4317 4316 -1 -4416 4316 -1 -4317 4317 4 -4318 4317 -1 -4417 4317 -1 -4318 4318 4 -4319 4318 -1 -4418 4318 -1 -4319 4319 4 -4320 4319 -1 -4419 4319 -1 -4320 4320 4 -4321 4320 -1 -4420 4320 -1 -4321 4321 4 -4322 4321 -1 -4421 4321 -1 -4322 4322 4 -4323 4322 -1 -4422 4322 -1 -4323 4323 4 -4324 4323 -1 -4423 4323 -1 -4324 4324 4 -4325 4324 -1 -4424 4324 -1 -4325 4325 4 -4326 4325 -1 -4425 4325 -1 -4326 4326 4 -4327 4326 -1 -4426 4326 -1 -4327 4327 4 -4328 4327 -1 -4427 4327 -1 -4328 4328 4 -4329 4328 -1 -4428 4328 -1 -4329 4329 4 -4330 4329 -1 -4429 4329 -1 -4330 4330 4 -4331 4330 -1 -4430 4330 -1 -4331 4331 4 -4332 4331 -1 -4431 4331 -1 -4332 4332 4 -4333 4332 -1 -4432 4332 -1 -4333 4333 4 -4334 4333 -1 -4433 4333 -1 -4334 4334 4 -4335 4334 -1 -4434 4334 -1 -4335 4335 4 -4336 4335 -1 -4435 4335 -1 -4336 4336 4 -4337 4336 -1 -4436 4336 -1 -4337 4337 4 -4338 4337 -1 -4437 4337 -1 -4338 4338 4 -4339 4338 -1 -4438 4338 -1 -4339 4339 4 -4340 4339 -1 -4439 4339 -1 -4340 4340 4 -4341 4340 -1 -4440 4340 -1 -4341 4341 4 -4342 4341 -1 -4441 4341 -1 -4342 4342 4 -4343 4342 -1 -4442 4342 -1 -4343 4343 4 -4344 4343 -1 -4443 4343 -1 -4344 4344 4 -4345 4344 -1 -4444 4344 -1 -4345 4345 4 -4346 4345 -1 -4445 4345 -1 -4346 4346 4 -4347 4346 -1 -4446 4346 -1 -4347 4347 4 -4348 4347 -1 -4447 4347 -1 -4348 4348 4 -4349 4348 -1 -4448 4348 -1 -4349 4349 4 -4350 4349 -1 -4449 4349 -1 -4350 4350 4 -4351 4350 -1 -4450 4350 -1 -4351 4351 4 -4352 4351 -1 -4451 4351 -1 -4352 4352 4 -4353 4352 -1 -4452 4352 -1 -4353 4353 4 -4354 4353 -1 -4453 4353 -1 -4354 4354 4 -4355 4354 -1 -4454 4354 -1 -4355 4355 4 -4356 4355 -1 -4455 4355 -1 -4356 4356 4 -4357 4356 -1 -4456 4356 -1 -4357 4357 4 -4358 4357 -1 -4457 4357 -1 -4358 4358 4 -4359 4358 -1 -4458 4358 -1 -4359 4359 4 -4360 4359 -1 -4459 4359 -1 -4360 4360 4 -4361 4360 -1 -4460 4360 -1 -4361 4361 4 -4362 4361 -1 -4461 4361 -1 -4362 4362 4 -4363 4362 -1 -4462 4362 -1 -4363 4363 4 -4364 4363 -1 -4463 4363 -1 -4364 4364 4 -4365 4364 -1 -4464 4364 -1 -4365 4365 4 -4366 4365 -1 -4465 4365 -1 -4366 4366 4 -4367 4366 -1 -4466 4366 -1 -4367 4367 4 -4368 4367 -1 -4467 4367 -1 -4368 4368 4 -4369 4368 -1 -4468 4368 -1 -4369 4369 4 -4370 4369 -1 -4469 4369 -1 -4370 4370 4 -4371 4370 -1 -4470 4370 -1 -4371 4371 4 -4372 4371 -1 -4471 4371 -1 -4372 4372 4 -4373 4372 -1 -4472 4372 -1 -4373 4373 4 -4374 4373 -1 -4473 4373 -1 -4374 4374 4 -4375 4374 -1 -4474 4374 -1 -4375 4375 4 -4376 4375 -1 -4475 4375 -1 -4376 4376 4 -4377 4376 -1 -4476 4376 -1 -4377 4377 4 -4378 4377 -1 -4477 4377 -1 -4378 4378 4 -4379 4378 -1 -4478 4378 -1 -4379 4379 4 -4380 4379 -1 -4479 4379 -1 -4380 4380 4 -4381 4380 -1 -4480 4380 -1 -4381 4381 4 -4382 4381 -1 -4481 4381 -1 -4382 4382 4 -4383 4382 -1 -4482 4382 -1 -4383 4383 4 -4384 4383 -1 -4483 4383 -1 -4384 4384 4 -4385 4384 -1 -4484 4384 -1 -4385 4385 4 -4386 4385 -1 -4485 4385 -1 -4386 4386 4 -4387 4386 -1 -4486 4386 -1 -4387 4387 4 -4388 4387 -1 -4487 4387 -1 -4388 4388 4 -4389 4388 -1 -4488 4388 -1 -4389 4389 4 -4390 4389 -1 -4489 4389 -1 -4390 4390 4 -4391 4390 -1 -4490 4390 -1 -4391 4391 4 -4392 4391 -1 -4491 4391 -1 -4392 4392 4 -4393 4392 -1 -4492 4392 -1 -4393 4393 4 -4394 4393 -1 -4493 4393 -1 -4394 4394 4 -4395 4394 -1 -4494 4394 -1 -4395 4395 4 -4396 4395 -1 -4495 4395 -1 -4396 4396 4 -4397 4396 -1 -4496 4396 -1 -4397 4397 4 -4398 4397 -1 -4497 4397 -1 -4398 4398 4 -4399 4398 -1 -4498 4398 -1 -4399 4399 4 -4400 4399 -1 -4499 4399 -1 -4400 4400 4 -4500 4400 -1 -4401 4401 4 -4402 4401 -1 -4501 4401 -1 -4402 4402 4 -4403 4402 -1 -4502 4402 -1 -4403 4403 4 -4404 4403 -1 -4503 4403 -1 -4404 4404 4 -4405 4404 -1 -4504 4404 -1 -4405 4405 4 -4406 4405 -1 -4505 4405 -1 -4406 4406 4 -4407 4406 -1 -4506 4406 -1 -4407 4407 4 -4408 4407 -1 -4507 4407 -1 -4408 4408 4 -4409 4408 -1 -4508 4408 -1 -4409 4409 4 -4410 4409 -1 -4509 4409 -1 -4410 4410 4 -4411 4410 -1 -4510 4410 -1 -4411 4411 4 -4412 4411 -1 -4511 4411 -1 -4412 4412 4 -4413 4412 -1 -4512 4412 -1 -4413 4413 4 -4414 4413 -1 -4513 4413 -1 -4414 4414 4 -4415 4414 -1 -4514 4414 -1 -4415 4415 4 -4416 4415 -1 -4515 4415 -1 -4416 4416 4 -4417 4416 -1 -4516 4416 -1 -4417 4417 4 -4418 4417 -1 -4517 4417 -1 -4418 4418 4 -4419 4418 -1 -4518 4418 -1 -4419 4419 4 -4420 4419 -1 -4519 4419 -1 -4420 4420 4 -4421 4420 -1 -4520 4420 -1 -4421 4421 4 -4422 4421 -1 -4521 4421 -1 -4422 4422 4 -4423 4422 -1 -4522 4422 -1 -4423 4423 4 -4424 4423 -1 -4523 4423 -1 -4424 4424 4 -4425 4424 -1 -4524 4424 -1 -4425 4425 4 -4426 4425 -1 -4525 4425 -1 -4426 4426 4 -4427 4426 -1 -4526 4426 -1 -4427 4427 4 -4428 4427 -1 -4527 4427 -1 -4428 4428 4 -4429 4428 -1 -4528 4428 -1 -4429 4429 4 -4430 4429 -1 -4529 4429 -1 -4430 4430 4 -4431 4430 -1 -4530 4430 -1 -4431 4431 4 -4432 4431 -1 -4531 4431 -1 -4432 4432 4 -4433 4432 -1 -4532 4432 -1 -4433 4433 4 -4434 4433 -1 -4533 4433 -1 -4434 4434 4 -4435 4434 -1 -4534 4434 -1 -4435 4435 4 -4436 4435 -1 -4535 4435 -1 -4436 4436 4 -4437 4436 -1 -4536 4436 -1 -4437 4437 4 -4438 4437 -1 -4537 4437 -1 -4438 4438 4 -4439 4438 -1 -4538 4438 -1 -4439 4439 4 -4440 4439 -1 -4539 4439 -1 -4440 4440 4 -4441 4440 -1 -4540 4440 -1 -4441 4441 4 -4442 4441 -1 -4541 4441 -1 -4442 4442 4 -4443 4442 -1 -4542 4442 -1 -4443 4443 4 -4444 4443 -1 -4543 4443 -1 -4444 4444 4 -4445 4444 -1 -4544 4444 -1 -4445 4445 4 -4446 4445 -1 -4545 4445 -1 -4446 4446 4 -4447 4446 -1 -4546 4446 -1 -4447 4447 4 -4448 4447 -1 -4547 4447 -1 -4448 4448 4 -4449 4448 -1 -4548 4448 -1 -4449 4449 4 -4450 4449 -1 -4549 4449 -1 -4450 4450 4 -4451 4450 -1 -4550 4450 -1 -4451 4451 4 -4452 4451 -1 -4551 4451 -1 -4452 4452 4 -4453 4452 -1 -4552 4452 -1 -4453 4453 4 -4454 4453 -1 -4553 4453 -1 -4454 4454 4 -4455 4454 -1 -4554 4454 -1 -4455 4455 4 -4456 4455 -1 -4555 4455 -1 -4456 4456 4 -4457 4456 -1 -4556 4456 -1 -4457 4457 4 -4458 4457 -1 -4557 4457 -1 -4458 4458 4 -4459 4458 -1 -4558 4458 -1 -4459 4459 4 -4460 4459 -1 -4559 4459 -1 -4460 4460 4 -4461 4460 -1 -4560 4460 -1 -4461 4461 4 -4462 4461 -1 -4561 4461 -1 -4462 4462 4 -4463 4462 -1 -4562 4462 -1 -4463 4463 4 -4464 4463 -1 -4563 4463 -1 -4464 4464 4 -4465 4464 -1 -4564 4464 -1 -4465 4465 4 -4466 4465 -1 -4565 4465 -1 -4466 4466 4 -4467 4466 -1 -4566 4466 -1 -4467 4467 4 -4468 4467 -1 -4567 4467 -1 -4468 4468 4 -4469 4468 -1 -4568 4468 -1 -4469 4469 4 -4470 4469 -1 -4569 4469 -1 -4470 4470 4 -4471 4470 -1 -4570 4470 -1 -4471 4471 4 -4472 4471 -1 -4571 4471 -1 -4472 4472 4 -4473 4472 -1 -4572 4472 -1 -4473 4473 4 -4474 4473 -1 -4573 4473 -1 -4474 4474 4 -4475 4474 -1 -4574 4474 -1 -4475 4475 4 -4476 4475 -1 -4575 4475 -1 -4476 4476 4 -4477 4476 -1 -4576 4476 -1 -4477 4477 4 -4478 4477 -1 -4577 4477 -1 -4478 4478 4 -4479 4478 -1 -4578 4478 -1 -4479 4479 4 -4480 4479 -1 -4579 4479 -1 -4480 4480 4 -4481 4480 -1 -4580 4480 -1 -4481 4481 4 -4482 4481 -1 -4581 4481 -1 -4482 4482 4 -4483 4482 -1 -4582 4482 -1 -4483 4483 4 -4484 4483 -1 -4583 4483 -1 -4484 4484 4 -4485 4484 -1 -4584 4484 -1 -4485 4485 4 -4486 4485 -1 -4585 4485 -1 -4486 4486 4 -4487 4486 -1 -4586 4486 -1 -4487 4487 4 -4488 4487 -1 -4587 4487 -1 -4488 4488 4 -4489 4488 -1 -4588 4488 -1 -4489 4489 4 -4490 4489 -1 -4589 4489 -1 -4490 4490 4 -4491 4490 -1 -4590 4490 -1 -4491 4491 4 -4492 4491 -1 -4591 4491 -1 -4492 4492 4 -4493 4492 -1 -4592 4492 -1 -4493 4493 4 -4494 4493 -1 -4593 4493 -1 -4494 4494 4 -4495 4494 -1 -4594 4494 -1 -4495 4495 4 -4496 4495 -1 -4595 4495 -1 -4496 4496 4 -4497 4496 -1 -4596 4496 -1 -4497 4497 4 -4498 4497 -1 -4597 4497 -1 -4498 4498 4 -4499 4498 -1 -4598 4498 -1 -4499 4499 4 -4500 4499 -1 -4599 4499 -1 -4500 4500 4 -4600 4500 -1 -4501 4501 4 -4502 4501 -1 -4601 4501 -1 -4502 4502 4 -4503 4502 -1 -4602 4502 -1 -4503 4503 4 -4504 4503 -1 -4603 4503 -1 -4504 4504 4 -4505 4504 -1 -4604 4504 -1 -4505 4505 4 -4506 4505 -1 -4605 4505 -1 -4506 4506 4 -4507 4506 -1 -4606 4506 -1 -4507 4507 4 -4508 4507 -1 -4607 4507 -1 -4508 4508 4 -4509 4508 -1 -4608 4508 -1 -4509 4509 4 -4510 4509 -1 -4609 4509 -1 -4510 4510 4 -4511 4510 -1 -4610 4510 -1 -4511 4511 4 -4512 4511 -1 -4611 4511 -1 -4512 4512 4 -4513 4512 -1 -4612 4512 -1 -4513 4513 4 -4514 4513 -1 -4613 4513 -1 -4514 4514 4 -4515 4514 -1 -4614 4514 -1 -4515 4515 4 -4516 4515 -1 -4615 4515 -1 -4516 4516 4 -4517 4516 -1 -4616 4516 -1 -4517 4517 4 -4518 4517 -1 -4617 4517 -1 -4518 4518 4 -4519 4518 -1 -4618 4518 -1 -4519 4519 4 -4520 4519 -1 -4619 4519 -1 -4520 4520 4 -4521 4520 -1 -4620 4520 -1 -4521 4521 4 -4522 4521 -1 -4621 4521 -1 -4522 4522 4 -4523 4522 -1 -4622 4522 -1 -4523 4523 4 -4524 4523 -1 -4623 4523 -1 -4524 4524 4 -4525 4524 -1 -4624 4524 -1 -4525 4525 4 -4526 4525 -1 -4625 4525 -1 -4526 4526 4 -4527 4526 -1 -4626 4526 -1 -4527 4527 4 -4528 4527 -1 -4627 4527 -1 -4528 4528 4 -4529 4528 -1 -4628 4528 -1 -4529 4529 4 -4530 4529 -1 -4629 4529 -1 -4530 4530 4 -4531 4530 -1 -4630 4530 -1 -4531 4531 4 -4532 4531 -1 -4631 4531 -1 -4532 4532 4 -4533 4532 -1 -4632 4532 -1 -4533 4533 4 -4534 4533 -1 -4633 4533 -1 -4534 4534 4 -4535 4534 -1 -4634 4534 -1 -4535 4535 4 -4536 4535 -1 -4635 4535 -1 -4536 4536 4 -4537 4536 -1 -4636 4536 -1 -4537 4537 4 -4538 4537 -1 -4637 4537 -1 -4538 4538 4 -4539 4538 -1 -4638 4538 -1 -4539 4539 4 -4540 4539 -1 -4639 4539 -1 -4540 4540 4 -4541 4540 -1 -4640 4540 -1 -4541 4541 4 -4542 4541 -1 -4641 4541 -1 -4542 4542 4 -4543 4542 -1 -4642 4542 -1 -4543 4543 4 -4544 4543 -1 -4643 4543 -1 -4544 4544 4 -4545 4544 -1 -4644 4544 -1 -4545 4545 4 -4546 4545 -1 -4645 4545 -1 -4546 4546 4 -4547 4546 -1 -4646 4546 -1 -4547 4547 4 -4548 4547 -1 -4647 4547 -1 -4548 4548 4 -4549 4548 -1 -4648 4548 -1 -4549 4549 4 -4550 4549 -1 -4649 4549 -1 -4550 4550 4 -4551 4550 -1 -4650 4550 -1 -4551 4551 4 -4552 4551 -1 -4651 4551 -1 -4552 4552 4 -4553 4552 -1 -4652 4552 -1 -4553 4553 4 -4554 4553 -1 -4653 4553 -1 -4554 4554 4 -4555 4554 -1 -4654 4554 -1 -4555 4555 4 -4556 4555 -1 -4655 4555 -1 -4556 4556 4 -4557 4556 -1 -4656 4556 -1 -4557 4557 4 -4558 4557 -1 -4657 4557 -1 -4558 4558 4 -4559 4558 -1 -4658 4558 -1 -4559 4559 4 -4560 4559 -1 -4659 4559 -1 -4560 4560 4 -4561 4560 -1 -4660 4560 -1 -4561 4561 4 -4562 4561 -1 -4661 4561 -1 -4562 4562 4 -4563 4562 -1 -4662 4562 -1 -4563 4563 4 -4564 4563 -1 -4663 4563 -1 -4564 4564 4 -4565 4564 -1 -4664 4564 -1 -4565 4565 4 -4566 4565 -1 -4665 4565 -1 -4566 4566 4 -4567 4566 -1 -4666 4566 -1 -4567 4567 4 -4568 4567 -1 -4667 4567 -1 -4568 4568 4 -4569 4568 -1 -4668 4568 -1 -4569 4569 4 -4570 4569 -1 -4669 4569 -1 -4570 4570 4 -4571 4570 -1 -4670 4570 -1 -4571 4571 4 -4572 4571 -1 -4671 4571 -1 -4572 4572 4 -4573 4572 -1 -4672 4572 -1 -4573 4573 4 -4574 4573 -1 -4673 4573 -1 -4574 4574 4 -4575 4574 -1 -4674 4574 -1 -4575 4575 4 -4576 4575 -1 -4675 4575 -1 -4576 4576 4 -4577 4576 -1 -4676 4576 -1 -4577 4577 4 -4578 4577 -1 -4677 4577 -1 -4578 4578 4 -4579 4578 -1 -4678 4578 -1 -4579 4579 4 -4580 4579 -1 -4679 4579 -1 -4580 4580 4 -4581 4580 -1 -4680 4580 -1 -4581 4581 4 -4582 4581 -1 -4681 4581 -1 -4582 4582 4 -4583 4582 -1 -4682 4582 -1 -4583 4583 4 -4584 4583 -1 -4683 4583 -1 -4584 4584 4 -4585 4584 -1 -4684 4584 -1 -4585 4585 4 -4586 4585 -1 -4685 4585 -1 -4586 4586 4 -4587 4586 -1 -4686 4586 -1 -4587 4587 4 -4588 4587 -1 -4687 4587 -1 -4588 4588 4 -4589 4588 -1 -4688 4588 -1 -4589 4589 4 -4590 4589 -1 -4689 4589 -1 -4590 4590 4 -4591 4590 -1 -4690 4590 -1 -4591 4591 4 -4592 4591 -1 -4691 4591 -1 -4592 4592 4 -4593 4592 -1 -4692 4592 -1 -4593 4593 4 -4594 4593 -1 -4693 4593 -1 -4594 4594 4 -4595 4594 -1 -4694 4594 -1 -4595 4595 4 -4596 4595 -1 -4695 4595 -1 -4596 4596 4 -4597 4596 -1 -4696 4596 -1 -4597 4597 4 -4598 4597 -1 -4697 4597 -1 -4598 4598 4 -4599 4598 -1 -4698 4598 -1 -4599 4599 4 -4600 4599 -1 -4699 4599 -1 -4600 4600 4 -4700 4600 -1 -4601 4601 4 -4602 4601 -1 -4701 4601 -1 -4602 4602 4 -4603 4602 -1 -4702 4602 -1 -4603 4603 4 -4604 4603 -1 -4703 4603 -1 -4604 4604 4 -4605 4604 -1 -4704 4604 -1 -4605 4605 4 -4606 4605 -1 -4705 4605 -1 -4606 4606 4 -4607 4606 -1 -4706 4606 -1 -4607 4607 4 -4608 4607 -1 -4707 4607 -1 -4608 4608 4 -4609 4608 -1 -4708 4608 -1 -4609 4609 4 -4610 4609 -1 -4709 4609 -1 -4610 4610 4 -4611 4610 -1 -4710 4610 -1 -4611 4611 4 -4612 4611 -1 -4711 4611 -1 -4612 4612 4 -4613 4612 -1 -4712 4612 -1 -4613 4613 4 -4614 4613 -1 -4713 4613 -1 -4614 4614 4 -4615 4614 -1 -4714 4614 -1 -4615 4615 4 -4616 4615 -1 -4715 4615 -1 -4616 4616 4 -4617 4616 -1 -4716 4616 -1 -4617 4617 4 -4618 4617 -1 -4717 4617 -1 -4618 4618 4 -4619 4618 -1 -4718 4618 -1 -4619 4619 4 -4620 4619 -1 -4719 4619 -1 -4620 4620 4 -4621 4620 -1 -4720 4620 -1 -4621 4621 4 -4622 4621 -1 -4721 4621 -1 -4622 4622 4 -4623 4622 -1 -4722 4622 -1 -4623 4623 4 -4624 4623 -1 -4723 4623 -1 -4624 4624 4 -4625 4624 -1 -4724 4624 -1 -4625 4625 4 -4626 4625 -1 -4725 4625 -1 -4626 4626 4 -4627 4626 -1 -4726 4626 -1 -4627 4627 4 -4628 4627 -1 -4727 4627 -1 -4628 4628 4 -4629 4628 -1 -4728 4628 -1 -4629 4629 4 -4630 4629 -1 -4729 4629 -1 -4630 4630 4 -4631 4630 -1 -4730 4630 -1 -4631 4631 4 -4632 4631 -1 -4731 4631 -1 -4632 4632 4 -4633 4632 -1 -4732 4632 -1 -4633 4633 4 -4634 4633 -1 -4733 4633 -1 -4634 4634 4 -4635 4634 -1 -4734 4634 -1 -4635 4635 4 -4636 4635 -1 -4735 4635 -1 -4636 4636 4 -4637 4636 -1 -4736 4636 -1 -4637 4637 4 -4638 4637 -1 -4737 4637 -1 -4638 4638 4 -4639 4638 -1 -4738 4638 -1 -4639 4639 4 -4640 4639 -1 -4739 4639 -1 -4640 4640 4 -4641 4640 -1 -4740 4640 -1 -4641 4641 4 -4642 4641 -1 -4741 4641 -1 -4642 4642 4 -4643 4642 -1 -4742 4642 -1 -4643 4643 4 -4644 4643 -1 -4743 4643 -1 -4644 4644 4 -4645 4644 -1 -4744 4644 -1 -4645 4645 4 -4646 4645 -1 -4745 4645 -1 -4646 4646 4 -4647 4646 -1 -4746 4646 -1 -4647 4647 4 -4648 4647 -1 -4747 4647 -1 -4648 4648 4 -4649 4648 -1 -4748 4648 -1 -4649 4649 4 -4650 4649 -1 -4749 4649 -1 -4650 4650 4 -4651 4650 -1 -4750 4650 -1 -4651 4651 4 -4652 4651 -1 -4751 4651 -1 -4652 4652 4 -4653 4652 -1 -4752 4652 -1 -4653 4653 4 -4654 4653 -1 -4753 4653 -1 -4654 4654 4 -4655 4654 -1 -4754 4654 -1 -4655 4655 4 -4656 4655 -1 -4755 4655 -1 -4656 4656 4 -4657 4656 -1 -4756 4656 -1 -4657 4657 4 -4658 4657 -1 -4757 4657 -1 -4658 4658 4 -4659 4658 -1 -4758 4658 -1 -4659 4659 4 -4660 4659 -1 -4759 4659 -1 -4660 4660 4 -4661 4660 -1 -4760 4660 -1 -4661 4661 4 -4662 4661 -1 -4761 4661 -1 -4662 4662 4 -4663 4662 -1 -4762 4662 -1 -4663 4663 4 -4664 4663 -1 -4763 4663 -1 -4664 4664 4 -4665 4664 -1 -4764 4664 -1 -4665 4665 4 -4666 4665 -1 -4765 4665 -1 -4666 4666 4 -4667 4666 -1 -4766 4666 -1 -4667 4667 4 -4668 4667 -1 -4767 4667 -1 -4668 4668 4 -4669 4668 -1 -4768 4668 -1 -4669 4669 4 -4670 4669 -1 -4769 4669 -1 -4670 4670 4 -4671 4670 -1 -4770 4670 -1 -4671 4671 4 -4672 4671 -1 -4771 4671 -1 -4672 4672 4 -4673 4672 -1 -4772 4672 -1 -4673 4673 4 -4674 4673 -1 -4773 4673 -1 -4674 4674 4 -4675 4674 -1 -4774 4674 -1 -4675 4675 4 -4676 4675 -1 -4775 4675 -1 -4676 4676 4 -4677 4676 -1 -4776 4676 -1 -4677 4677 4 -4678 4677 -1 -4777 4677 -1 -4678 4678 4 -4679 4678 -1 -4778 4678 -1 -4679 4679 4 -4680 4679 -1 -4779 4679 -1 -4680 4680 4 -4681 4680 -1 -4780 4680 -1 -4681 4681 4 -4682 4681 -1 -4781 4681 -1 -4682 4682 4 -4683 4682 -1 -4782 4682 -1 -4683 4683 4 -4684 4683 -1 -4783 4683 -1 -4684 4684 4 -4685 4684 -1 -4784 4684 -1 -4685 4685 4 -4686 4685 -1 -4785 4685 -1 -4686 4686 4 -4687 4686 -1 -4786 4686 -1 -4687 4687 4 -4688 4687 -1 -4787 4687 -1 -4688 4688 4 -4689 4688 -1 -4788 4688 -1 -4689 4689 4 -4690 4689 -1 -4789 4689 -1 -4690 4690 4 -4691 4690 -1 -4790 4690 -1 -4691 4691 4 -4692 4691 -1 -4791 4691 -1 -4692 4692 4 -4693 4692 -1 -4792 4692 -1 -4693 4693 4 -4694 4693 -1 -4793 4693 -1 -4694 4694 4 -4695 4694 -1 -4794 4694 -1 -4695 4695 4 -4696 4695 -1 -4795 4695 -1 -4696 4696 4 -4697 4696 -1 -4796 4696 -1 -4697 4697 4 -4698 4697 -1 -4797 4697 -1 -4698 4698 4 -4699 4698 -1 -4798 4698 -1 -4699 4699 4 -4700 4699 -1 -4799 4699 -1 -4700 4700 4 -4800 4700 -1 -4701 4701 4 -4702 4701 -1 -4801 4701 -1 -4702 4702 4 -4703 4702 -1 -4802 4702 -1 -4703 4703 4 -4704 4703 -1 -4803 4703 -1 -4704 4704 4 -4705 4704 -1 -4804 4704 -1 -4705 4705 4 -4706 4705 -1 -4805 4705 -1 -4706 4706 4 -4707 4706 -1 -4806 4706 -1 -4707 4707 4 -4708 4707 -1 -4807 4707 -1 -4708 4708 4 -4709 4708 -1 -4808 4708 -1 -4709 4709 4 -4710 4709 -1 -4809 4709 -1 -4710 4710 4 -4711 4710 -1 -4810 4710 -1 -4711 4711 4 -4712 4711 -1 -4811 4711 -1 -4712 4712 4 -4713 4712 -1 -4812 4712 -1 -4713 4713 4 -4714 4713 -1 -4813 4713 -1 -4714 4714 4 -4715 4714 -1 -4814 4714 -1 -4715 4715 4 -4716 4715 -1 -4815 4715 -1 -4716 4716 4 -4717 4716 -1 -4816 4716 -1 -4717 4717 4 -4718 4717 -1 -4817 4717 -1 -4718 4718 4 -4719 4718 -1 -4818 4718 -1 -4719 4719 4 -4720 4719 -1 -4819 4719 -1 -4720 4720 4 -4721 4720 -1 -4820 4720 -1 -4721 4721 4 -4722 4721 -1 -4821 4721 -1 -4722 4722 4 -4723 4722 -1 -4822 4722 -1 -4723 4723 4 -4724 4723 -1 -4823 4723 -1 -4724 4724 4 -4725 4724 -1 -4824 4724 -1 -4725 4725 4 -4726 4725 -1 -4825 4725 -1 -4726 4726 4 -4727 4726 -1 -4826 4726 -1 -4727 4727 4 -4728 4727 -1 -4827 4727 -1 -4728 4728 4 -4729 4728 -1 -4828 4728 -1 -4729 4729 4 -4730 4729 -1 -4829 4729 -1 -4730 4730 4 -4731 4730 -1 -4830 4730 -1 -4731 4731 4 -4732 4731 -1 -4831 4731 -1 -4732 4732 4 -4733 4732 -1 -4832 4732 -1 -4733 4733 4 -4734 4733 -1 -4833 4733 -1 -4734 4734 4 -4735 4734 -1 -4834 4734 -1 -4735 4735 4 -4736 4735 -1 -4835 4735 -1 -4736 4736 4 -4737 4736 -1 -4836 4736 -1 -4737 4737 4 -4738 4737 -1 -4837 4737 -1 -4738 4738 4 -4739 4738 -1 -4838 4738 -1 -4739 4739 4 -4740 4739 -1 -4839 4739 -1 -4740 4740 4 -4741 4740 -1 -4840 4740 -1 -4741 4741 4 -4742 4741 -1 -4841 4741 -1 -4742 4742 4 -4743 4742 -1 -4842 4742 -1 -4743 4743 4 -4744 4743 -1 -4843 4743 -1 -4744 4744 4 -4745 4744 -1 -4844 4744 -1 -4745 4745 4 -4746 4745 -1 -4845 4745 -1 -4746 4746 4 -4747 4746 -1 -4846 4746 -1 -4747 4747 4 -4748 4747 -1 -4847 4747 -1 -4748 4748 4 -4749 4748 -1 -4848 4748 -1 -4749 4749 4 -4750 4749 -1 -4849 4749 -1 -4750 4750 4 -4751 4750 -1 -4850 4750 -1 -4751 4751 4 -4752 4751 -1 -4851 4751 -1 -4752 4752 4 -4753 4752 -1 -4852 4752 -1 -4753 4753 4 -4754 4753 -1 -4853 4753 -1 -4754 4754 4 -4755 4754 -1 -4854 4754 -1 -4755 4755 4 -4756 4755 -1 -4855 4755 -1 -4756 4756 4 -4757 4756 -1 -4856 4756 -1 -4757 4757 4 -4758 4757 -1 -4857 4757 -1 -4758 4758 4 -4759 4758 -1 -4858 4758 -1 -4759 4759 4 -4760 4759 -1 -4859 4759 -1 -4760 4760 4 -4761 4760 -1 -4860 4760 -1 -4761 4761 4 -4762 4761 -1 -4861 4761 -1 -4762 4762 4 -4763 4762 -1 -4862 4762 -1 -4763 4763 4 -4764 4763 -1 -4863 4763 -1 -4764 4764 4 -4765 4764 -1 -4864 4764 -1 -4765 4765 4 -4766 4765 -1 -4865 4765 -1 -4766 4766 4 -4767 4766 -1 -4866 4766 -1 -4767 4767 4 -4768 4767 -1 -4867 4767 -1 -4768 4768 4 -4769 4768 -1 -4868 4768 -1 -4769 4769 4 -4770 4769 -1 -4869 4769 -1 -4770 4770 4 -4771 4770 -1 -4870 4770 -1 -4771 4771 4 -4772 4771 -1 -4871 4771 -1 -4772 4772 4 -4773 4772 -1 -4872 4772 -1 -4773 4773 4 -4774 4773 -1 -4873 4773 -1 -4774 4774 4 -4775 4774 -1 -4874 4774 -1 -4775 4775 4 -4776 4775 -1 -4875 4775 -1 -4776 4776 4 -4777 4776 -1 -4876 4776 -1 -4777 4777 4 -4778 4777 -1 -4877 4777 -1 -4778 4778 4 -4779 4778 -1 -4878 4778 -1 -4779 4779 4 -4780 4779 -1 -4879 4779 -1 -4780 4780 4 -4781 4780 -1 -4880 4780 -1 -4781 4781 4 -4782 4781 -1 -4881 4781 -1 -4782 4782 4 -4783 4782 -1 -4882 4782 -1 -4783 4783 4 -4784 4783 -1 -4883 4783 -1 -4784 4784 4 -4785 4784 -1 -4884 4784 -1 -4785 4785 4 -4786 4785 -1 -4885 4785 -1 -4786 4786 4 -4787 4786 -1 -4886 4786 -1 -4787 4787 4 -4788 4787 -1 -4887 4787 -1 -4788 4788 4 -4789 4788 -1 -4888 4788 -1 -4789 4789 4 -4790 4789 -1 -4889 4789 -1 -4790 4790 4 -4791 4790 -1 -4890 4790 -1 -4791 4791 4 -4792 4791 -1 -4891 4791 -1 -4792 4792 4 -4793 4792 -1 -4892 4792 -1 -4793 4793 4 -4794 4793 -1 -4893 4793 -1 -4794 4794 4 -4795 4794 -1 -4894 4794 -1 -4795 4795 4 -4796 4795 -1 -4895 4795 -1 -4796 4796 4 -4797 4796 -1 -4896 4796 -1 -4797 4797 4 -4798 4797 -1 -4897 4797 -1 -4798 4798 4 -4799 4798 -1 -4898 4798 -1 -4799 4799 4 -4800 4799 -1 -4899 4799 -1 -4800 4800 4 -4900 4800 -1 -4801 4801 4 -4802 4801 -1 -4901 4801 -1 -4802 4802 4 -4803 4802 -1 -4902 4802 -1 -4803 4803 4 -4804 4803 -1 -4903 4803 -1 -4804 4804 4 -4805 4804 -1 -4904 4804 -1 -4805 4805 4 -4806 4805 -1 -4905 4805 -1 -4806 4806 4 -4807 4806 -1 -4906 4806 -1 -4807 4807 4 -4808 4807 -1 -4907 4807 -1 -4808 4808 4 -4809 4808 -1 -4908 4808 -1 -4809 4809 4 -4810 4809 -1 -4909 4809 -1 -4810 4810 4 -4811 4810 -1 -4910 4810 -1 -4811 4811 4 -4812 4811 -1 -4911 4811 -1 -4812 4812 4 -4813 4812 -1 -4912 4812 -1 -4813 4813 4 -4814 4813 -1 -4913 4813 -1 -4814 4814 4 -4815 4814 -1 -4914 4814 -1 -4815 4815 4 -4816 4815 -1 -4915 4815 -1 -4816 4816 4 -4817 4816 -1 -4916 4816 -1 -4817 4817 4 -4818 4817 -1 -4917 4817 -1 -4818 4818 4 -4819 4818 -1 -4918 4818 -1 -4819 4819 4 -4820 4819 -1 -4919 4819 -1 -4820 4820 4 -4821 4820 -1 -4920 4820 -1 -4821 4821 4 -4822 4821 -1 -4921 4821 -1 -4822 4822 4 -4823 4822 -1 -4922 4822 -1 -4823 4823 4 -4824 4823 -1 -4923 4823 -1 -4824 4824 4 -4825 4824 -1 -4924 4824 -1 -4825 4825 4 -4826 4825 -1 -4925 4825 -1 -4826 4826 4 -4827 4826 -1 -4926 4826 -1 -4827 4827 4 -4828 4827 -1 -4927 4827 -1 -4828 4828 4 -4829 4828 -1 -4928 4828 -1 -4829 4829 4 -4830 4829 -1 -4929 4829 -1 -4830 4830 4 -4831 4830 -1 -4930 4830 -1 -4831 4831 4 -4832 4831 -1 -4931 4831 -1 -4832 4832 4 -4833 4832 -1 -4932 4832 -1 -4833 4833 4 -4834 4833 -1 -4933 4833 -1 -4834 4834 4 -4835 4834 -1 -4934 4834 -1 -4835 4835 4 -4836 4835 -1 -4935 4835 -1 -4836 4836 4 -4837 4836 -1 -4936 4836 -1 -4837 4837 4 -4838 4837 -1 -4937 4837 -1 -4838 4838 4 -4839 4838 -1 -4938 4838 -1 -4839 4839 4 -4840 4839 -1 -4939 4839 -1 -4840 4840 4 -4841 4840 -1 -4940 4840 -1 -4841 4841 4 -4842 4841 -1 -4941 4841 -1 -4842 4842 4 -4843 4842 -1 -4942 4842 -1 -4843 4843 4 -4844 4843 -1 -4943 4843 -1 -4844 4844 4 -4845 4844 -1 -4944 4844 -1 -4845 4845 4 -4846 4845 -1 -4945 4845 -1 -4846 4846 4 -4847 4846 -1 -4946 4846 -1 -4847 4847 4 -4848 4847 -1 -4947 4847 -1 -4848 4848 4 -4849 4848 -1 -4948 4848 -1 -4849 4849 4 -4850 4849 -1 -4949 4849 -1 -4850 4850 4 -4851 4850 -1 -4950 4850 -1 -4851 4851 4 -4852 4851 -1 -4951 4851 -1 -4852 4852 4 -4853 4852 -1 -4952 4852 -1 -4853 4853 4 -4854 4853 -1 -4953 4853 -1 -4854 4854 4 -4855 4854 -1 -4954 4854 -1 -4855 4855 4 -4856 4855 -1 -4955 4855 -1 -4856 4856 4 -4857 4856 -1 -4956 4856 -1 -4857 4857 4 -4858 4857 -1 -4957 4857 -1 -4858 4858 4 -4859 4858 -1 -4958 4858 -1 -4859 4859 4 -4860 4859 -1 -4959 4859 -1 -4860 4860 4 -4861 4860 -1 -4960 4860 -1 -4861 4861 4 -4862 4861 -1 -4961 4861 -1 -4862 4862 4 -4863 4862 -1 -4962 4862 -1 -4863 4863 4 -4864 4863 -1 -4963 4863 -1 -4864 4864 4 -4865 4864 -1 -4964 4864 -1 -4865 4865 4 -4866 4865 -1 -4965 4865 -1 -4866 4866 4 -4867 4866 -1 -4966 4866 -1 -4867 4867 4 -4868 4867 -1 -4967 4867 -1 -4868 4868 4 -4869 4868 -1 -4968 4868 -1 -4869 4869 4 -4870 4869 -1 -4969 4869 -1 -4870 4870 4 -4871 4870 -1 -4970 4870 -1 -4871 4871 4 -4872 4871 -1 -4971 4871 -1 -4872 4872 4 -4873 4872 -1 -4972 4872 -1 -4873 4873 4 -4874 4873 -1 -4973 4873 -1 -4874 4874 4 -4875 4874 -1 -4974 4874 -1 -4875 4875 4 -4876 4875 -1 -4975 4875 -1 -4876 4876 4 -4877 4876 -1 -4976 4876 -1 -4877 4877 4 -4878 4877 -1 -4977 4877 -1 -4878 4878 4 -4879 4878 -1 -4978 4878 -1 -4879 4879 4 -4880 4879 -1 -4979 4879 -1 -4880 4880 4 -4881 4880 -1 -4980 4880 -1 -4881 4881 4 -4882 4881 -1 -4981 4881 -1 -4882 4882 4 -4883 4882 -1 -4982 4882 -1 -4883 4883 4 -4884 4883 -1 -4983 4883 -1 -4884 4884 4 -4885 4884 -1 -4984 4884 -1 -4885 4885 4 -4886 4885 -1 -4985 4885 -1 -4886 4886 4 -4887 4886 -1 -4986 4886 -1 -4887 4887 4 -4888 4887 -1 -4987 4887 -1 -4888 4888 4 -4889 4888 -1 -4988 4888 -1 -4889 4889 4 -4890 4889 -1 -4989 4889 -1 -4890 4890 4 -4891 4890 -1 -4990 4890 -1 -4891 4891 4 -4892 4891 -1 -4991 4891 -1 -4892 4892 4 -4893 4892 -1 -4992 4892 -1 -4893 4893 4 -4894 4893 -1 -4993 4893 -1 -4894 4894 4 -4895 4894 -1 -4994 4894 -1 -4895 4895 4 -4896 4895 -1 -4995 4895 -1 -4896 4896 4 -4897 4896 -1 -4996 4896 -1 -4897 4897 4 -4898 4897 -1 -4997 4897 -1 -4898 4898 4 -4899 4898 -1 -4998 4898 -1 -4899 4899 4 -4900 4899 -1 -4999 4899 -1 -4900 4900 4 -5000 4900 -1 -4901 4901 4 -4902 4901 -1 -5001 4901 -1 -4902 4902 4 -4903 4902 -1 -5002 4902 -1 -4903 4903 4 -4904 4903 -1 -5003 4903 -1 -4904 4904 4 -4905 4904 -1 -5004 4904 -1 -4905 4905 4 -4906 4905 -1 -5005 4905 -1 -4906 4906 4 -4907 4906 -1 -5006 4906 -1 -4907 4907 4 -4908 4907 -1 -5007 4907 -1 -4908 4908 4 -4909 4908 -1 -5008 4908 -1 -4909 4909 4 -4910 4909 -1 -5009 4909 -1 -4910 4910 4 -4911 4910 -1 -5010 4910 -1 -4911 4911 4 -4912 4911 -1 -5011 4911 -1 -4912 4912 4 -4913 4912 -1 -5012 4912 -1 -4913 4913 4 -4914 4913 -1 -5013 4913 -1 -4914 4914 4 -4915 4914 -1 -5014 4914 -1 -4915 4915 4 -4916 4915 -1 -5015 4915 -1 -4916 4916 4 -4917 4916 -1 -5016 4916 -1 -4917 4917 4 -4918 4917 -1 -5017 4917 -1 -4918 4918 4 -4919 4918 -1 -5018 4918 -1 -4919 4919 4 -4920 4919 -1 -5019 4919 -1 -4920 4920 4 -4921 4920 -1 -5020 4920 -1 -4921 4921 4 -4922 4921 -1 -5021 4921 -1 -4922 4922 4 -4923 4922 -1 -5022 4922 -1 -4923 4923 4 -4924 4923 -1 -5023 4923 -1 -4924 4924 4 -4925 4924 -1 -5024 4924 -1 -4925 4925 4 -4926 4925 -1 -5025 4925 -1 -4926 4926 4 -4927 4926 -1 -5026 4926 -1 -4927 4927 4 -4928 4927 -1 -5027 4927 -1 -4928 4928 4 -4929 4928 -1 -5028 4928 -1 -4929 4929 4 -4930 4929 -1 -5029 4929 -1 -4930 4930 4 -4931 4930 -1 -5030 4930 -1 -4931 4931 4 -4932 4931 -1 -5031 4931 -1 -4932 4932 4 -4933 4932 -1 -5032 4932 -1 -4933 4933 4 -4934 4933 -1 -5033 4933 -1 -4934 4934 4 -4935 4934 -1 -5034 4934 -1 -4935 4935 4 -4936 4935 -1 -5035 4935 -1 -4936 4936 4 -4937 4936 -1 -5036 4936 -1 -4937 4937 4 -4938 4937 -1 -5037 4937 -1 -4938 4938 4 -4939 4938 -1 -5038 4938 -1 -4939 4939 4 -4940 4939 -1 -5039 4939 -1 -4940 4940 4 -4941 4940 -1 -5040 4940 -1 -4941 4941 4 -4942 4941 -1 -5041 4941 -1 -4942 4942 4 -4943 4942 -1 -5042 4942 -1 -4943 4943 4 -4944 4943 -1 -5043 4943 -1 -4944 4944 4 -4945 4944 -1 -5044 4944 -1 -4945 4945 4 -4946 4945 -1 -5045 4945 -1 -4946 4946 4 -4947 4946 -1 -5046 4946 -1 -4947 4947 4 -4948 4947 -1 -5047 4947 -1 -4948 4948 4 -4949 4948 -1 -5048 4948 -1 -4949 4949 4 -4950 4949 -1 -5049 4949 -1 -4950 4950 4 -4951 4950 -1 -5050 4950 -1 -4951 4951 4 -4952 4951 -1 -5051 4951 -1 -4952 4952 4 -4953 4952 -1 -5052 4952 -1 -4953 4953 4 -4954 4953 -1 -5053 4953 -1 -4954 4954 4 -4955 4954 -1 -5054 4954 -1 -4955 4955 4 -4956 4955 -1 -5055 4955 -1 -4956 4956 4 -4957 4956 -1 -5056 4956 -1 -4957 4957 4 -4958 4957 -1 -5057 4957 -1 -4958 4958 4 -4959 4958 -1 -5058 4958 -1 -4959 4959 4 -4960 4959 -1 -5059 4959 -1 -4960 4960 4 -4961 4960 -1 -5060 4960 -1 -4961 4961 4 -4962 4961 -1 -5061 4961 -1 -4962 4962 4 -4963 4962 -1 -5062 4962 -1 -4963 4963 4 -4964 4963 -1 -5063 4963 -1 -4964 4964 4 -4965 4964 -1 -5064 4964 -1 -4965 4965 4 -4966 4965 -1 -5065 4965 -1 -4966 4966 4 -4967 4966 -1 -5066 4966 -1 -4967 4967 4 -4968 4967 -1 -5067 4967 -1 -4968 4968 4 -4969 4968 -1 -5068 4968 -1 -4969 4969 4 -4970 4969 -1 -5069 4969 -1 -4970 4970 4 -4971 4970 -1 -5070 4970 -1 -4971 4971 4 -4972 4971 -1 -5071 4971 -1 -4972 4972 4 -4973 4972 -1 -5072 4972 -1 -4973 4973 4 -4974 4973 -1 -5073 4973 -1 -4974 4974 4 -4975 4974 -1 -5074 4974 -1 -4975 4975 4 -4976 4975 -1 -5075 4975 -1 -4976 4976 4 -4977 4976 -1 -5076 4976 -1 -4977 4977 4 -4978 4977 -1 -5077 4977 -1 -4978 4978 4 -4979 4978 -1 -5078 4978 -1 -4979 4979 4 -4980 4979 -1 -5079 4979 -1 -4980 4980 4 -4981 4980 -1 -5080 4980 -1 -4981 4981 4 -4982 4981 -1 -5081 4981 -1 -4982 4982 4 -4983 4982 -1 -5082 4982 -1 -4983 4983 4 -4984 4983 -1 -5083 4983 -1 -4984 4984 4 -4985 4984 -1 -5084 4984 -1 -4985 4985 4 -4986 4985 -1 -5085 4985 -1 -4986 4986 4 -4987 4986 -1 -5086 4986 -1 -4987 4987 4 -4988 4987 -1 -5087 4987 -1 -4988 4988 4 -4989 4988 -1 -5088 4988 -1 -4989 4989 4 -4990 4989 -1 -5089 4989 -1 -4990 4990 4 -4991 4990 -1 -5090 4990 -1 -4991 4991 4 -4992 4991 -1 -5091 4991 -1 -4992 4992 4 -4993 4992 -1 -5092 4992 -1 -4993 4993 4 -4994 4993 -1 -5093 4993 -1 -4994 4994 4 -4995 4994 -1 -5094 4994 -1 -4995 4995 4 -4996 4995 -1 -5095 4995 -1 -4996 4996 4 -4997 4996 -1 -5096 4996 -1 -4997 4997 4 -4998 4997 -1 -5097 4997 -1 -4998 4998 4 -4999 4998 -1 -5098 4998 -1 -4999 4999 4 -5000 4999 -1 -5099 4999 -1 -5000 5000 4 -5100 5000 -1 -5001 5001 4 -5002 5001 -1 -5101 5001 -1 -5002 5002 4 -5003 5002 -1 -5102 5002 -1 -5003 5003 4 -5004 5003 -1 -5103 5003 -1 -5004 5004 4 -5005 5004 -1 -5104 5004 -1 -5005 5005 4 -5006 5005 -1 -5105 5005 -1 -5006 5006 4 -5007 5006 -1 -5106 5006 -1 -5007 5007 4 -5008 5007 -1 -5107 5007 -1 -5008 5008 4 -5009 5008 -1 -5108 5008 -1 -5009 5009 4 -5010 5009 -1 -5109 5009 -1 -5010 5010 4 -5011 5010 -1 -5110 5010 -1 -5011 5011 4 -5012 5011 -1 -5111 5011 -1 -5012 5012 4 -5013 5012 -1 -5112 5012 -1 -5013 5013 4 -5014 5013 -1 -5113 5013 -1 -5014 5014 4 -5015 5014 -1 -5114 5014 -1 -5015 5015 4 -5016 5015 -1 -5115 5015 -1 -5016 5016 4 -5017 5016 -1 -5116 5016 -1 -5017 5017 4 -5018 5017 -1 -5117 5017 -1 -5018 5018 4 -5019 5018 -1 -5118 5018 -1 -5019 5019 4 -5020 5019 -1 -5119 5019 -1 -5020 5020 4 -5021 5020 -1 -5120 5020 -1 -5021 5021 4 -5022 5021 -1 -5121 5021 -1 -5022 5022 4 -5023 5022 -1 -5122 5022 -1 -5023 5023 4 -5024 5023 -1 -5123 5023 -1 -5024 5024 4 -5025 5024 -1 -5124 5024 -1 -5025 5025 4 -5026 5025 -1 -5125 5025 -1 -5026 5026 4 -5027 5026 -1 -5126 5026 -1 -5027 5027 4 -5028 5027 -1 -5127 5027 -1 -5028 5028 4 -5029 5028 -1 -5128 5028 -1 -5029 5029 4 -5030 5029 -1 -5129 5029 -1 -5030 5030 4 -5031 5030 -1 -5130 5030 -1 -5031 5031 4 -5032 5031 -1 -5131 5031 -1 -5032 5032 4 -5033 5032 -1 -5132 5032 -1 -5033 5033 4 -5034 5033 -1 -5133 5033 -1 -5034 5034 4 -5035 5034 -1 -5134 5034 -1 -5035 5035 4 -5036 5035 -1 -5135 5035 -1 -5036 5036 4 -5037 5036 -1 -5136 5036 -1 -5037 5037 4 -5038 5037 -1 -5137 5037 -1 -5038 5038 4 -5039 5038 -1 -5138 5038 -1 -5039 5039 4 -5040 5039 -1 -5139 5039 -1 -5040 5040 4 -5041 5040 -1 -5140 5040 -1 -5041 5041 4 -5042 5041 -1 -5141 5041 -1 -5042 5042 4 -5043 5042 -1 -5142 5042 -1 -5043 5043 4 -5044 5043 -1 -5143 5043 -1 -5044 5044 4 -5045 5044 -1 -5144 5044 -1 -5045 5045 4 -5046 5045 -1 -5145 5045 -1 -5046 5046 4 -5047 5046 -1 -5146 5046 -1 -5047 5047 4 -5048 5047 -1 -5147 5047 -1 -5048 5048 4 -5049 5048 -1 -5148 5048 -1 -5049 5049 4 -5050 5049 -1 -5149 5049 -1 -5050 5050 4 -5051 5050 -1 -5150 5050 -1 -5051 5051 4 -5052 5051 -1 -5151 5051 -1 -5052 5052 4 -5053 5052 -1 -5152 5052 -1 -5053 5053 4 -5054 5053 -1 -5153 5053 -1 -5054 5054 4 -5055 5054 -1 -5154 5054 -1 -5055 5055 4 -5056 5055 -1 -5155 5055 -1 -5056 5056 4 -5057 5056 -1 -5156 5056 -1 -5057 5057 4 -5058 5057 -1 -5157 5057 -1 -5058 5058 4 -5059 5058 -1 -5158 5058 -1 -5059 5059 4 -5060 5059 -1 -5159 5059 -1 -5060 5060 4 -5061 5060 -1 -5160 5060 -1 -5061 5061 4 -5062 5061 -1 -5161 5061 -1 -5062 5062 4 -5063 5062 -1 -5162 5062 -1 -5063 5063 4 -5064 5063 -1 -5163 5063 -1 -5064 5064 4 -5065 5064 -1 -5164 5064 -1 -5065 5065 4 -5066 5065 -1 -5165 5065 -1 -5066 5066 4 -5067 5066 -1 -5166 5066 -1 -5067 5067 4 -5068 5067 -1 -5167 5067 -1 -5068 5068 4 -5069 5068 -1 -5168 5068 -1 -5069 5069 4 -5070 5069 -1 -5169 5069 -1 -5070 5070 4 -5071 5070 -1 -5170 5070 -1 -5071 5071 4 -5072 5071 -1 -5171 5071 -1 -5072 5072 4 -5073 5072 -1 -5172 5072 -1 -5073 5073 4 -5074 5073 -1 -5173 5073 -1 -5074 5074 4 -5075 5074 -1 -5174 5074 -1 -5075 5075 4 -5076 5075 -1 -5175 5075 -1 -5076 5076 4 -5077 5076 -1 -5176 5076 -1 -5077 5077 4 -5078 5077 -1 -5177 5077 -1 -5078 5078 4 -5079 5078 -1 -5178 5078 -1 -5079 5079 4 -5080 5079 -1 -5179 5079 -1 -5080 5080 4 -5081 5080 -1 -5180 5080 -1 -5081 5081 4 -5082 5081 -1 -5181 5081 -1 -5082 5082 4 -5083 5082 -1 -5182 5082 -1 -5083 5083 4 -5084 5083 -1 -5183 5083 -1 -5084 5084 4 -5085 5084 -1 -5184 5084 -1 -5085 5085 4 -5086 5085 -1 -5185 5085 -1 -5086 5086 4 -5087 5086 -1 -5186 5086 -1 -5087 5087 4 -5088 5087 -1 -5187 5087 -1 -5088 5088 4 -5089 5088 -1 -5188 5088 -1 -5089 5089 4 -5090 5089 -1 -5189 5089 -1 -5090 5090 4 -5091 5090 -1 -5190 5090 -1 -5091 5091 4 -5092 5091 -1 -5191 5091 -1 -5092 5092 4 -5093 5092 -1 -5192 5092 -1 -5093 5093 4 -5094 5093 -1 -5193 5093 -1 -5094 5094 4 -5095 5094 -1 -5194 5094 -1 -5095 5095 4 -5096 5095 -1 -5195 5095 -1 -5096 5096 4 -5097 5096 -1 -5196 5096 -1 -5097 5097 4 -5098 5097 -1 -5197 5097 -1 -5098 5098 4 -5099 5098 -1 -5198 5098 -1 -5099 5099 4 -5100 5099 -1 -5199 5099 -1 -5100 5100 4 -5200 5100 -1 -5101 5101 4 -5102 5101 -1 -5201 5101 -1 -5102 5102 4 -5103 5102 -1 -5202 5102 -1 -5103 5103 4 -5104 5103 -1 -5203 5103 -1 -5104 5104 4 -5105 5104 -1 -5204 5104 -1 -5105 5105 4 -5106 5105 -1 -5205 5105 -1 -5106 5106 4 -5107 5106 -1 -5206 5106 -1 -5107 5107 4 -5108 5107 -1 -5207 5107 -1 -5108 5108 4 -5109 5108 -1 -5208 5108 -1 -5109 5109 4 -5110 5109 -1 -5209 5109 -1 -5110 5110 4 -5111 5110 -1 -5210 5110 -1 -5111 5111 4 -5112 5111 -1 -5211 5111 -1 -5112 5112 4 -5113 5112 -1 -5212 5112 -1 -5113 5113 4 -5114 5113 -1 -5213 5113 -1 -5114 5114 4 -5115 5114 -1 -5214 5114 -1 -5115 5115 4 -5116 5115 -1 -5215 5115 -1 -5116 5116 4 -5117 5116 -1 -5216 5116 -1 -5117 5117 4 -5118 5117 -1 -5217 5117 -1 -5118 5118 4 -5119 5118 -1 -5218 5118 -1 -5119 5119 4 -5120 5119 -1 -5219 5119 -1 -5120 5120 4 -5121 5120 -1 -5220 5120 -1 -5121 5121 4 -5122 5121 -1 -5221 5121 -1 -5122 5122 4 -5123 5122 -1 -5222 5122 -1 -5123 5123 4 -5124 5123 -1 -5223 5123 -1 -5124 5124 4 -5125 5124 -1 -5224 5124 -1 -5125 5125 4 -5126 5125 -1 -5225 5125 -1 -5126 5126 4 -5127 5126 -1 -5226 5126 -1 -5127 5127 4 -5128 5127 -1 -5227 5127 -1 -5128 5128 4 -5129 5128 -1 -5228 5128 -1 -5129 5129 4 -5130 5129 -1 -5229 5129 -1 -5130 5130 4 -5131 5130 -1 -5230 5130 -1 -5131 5131 4 -5132 5131 -1 -5231 5131 -1 -5132 5132 4 -5133 5132 -1 -5232 5132 -1 -5133 5133 4 -5134 5133 -1 -5233 5133 -1 -5134 5134 4 -5135 5134 -1 -5234 5134 -1 -5135 5135 4 -5136 5135 -1 -5235 5135 -1 -5136 5136 4 -5137 5136 -1 -5236 5136 -1 -5137 5137 4 -5138 5137 -1 -5237 5137 -1 -5138 5138 4 -5139 5138 -1 -5238 5138 -1 -5139 5139 4 -5140 5139 -1 -5239 5139 -1 -5140 5140 4 -5141 5140 -1 -5240 5140 -1 -5141 5141 4 -5142 5141 -1 -5241 5141 -1 -5142 5142 4 -5143 5142 -1 -5242 5142 -1 -5143 5143 4 -5144 5143 -1 -5243 5143 -1 -5144 5144 4 -5145 5144 -1 -5244 5144 -1 -5145 5145 4 -5146 5145 -1 -5245 5145 -1 -5146 5146 4 -5147 5146 -1 -5246 5146 -1 -5147 5147 4 -5148 5147 -1 -5247 5147 -1 -5148 5148 4 -5149 5148 -1 -5248 5148 -1 -5149 5149 4 -5150 5149 -1 -5249 5149 -1 -5150 5150 4 -5151 5150 -1 -5250 5150 -1 -5151 5151 4 -5152 5151 -1 -5251 5151 -1 -5152 5152 4 -5153 5152 -1 -5252 5152 -1 -5153 5153 4 -5154 5153 -1 -5253 5153 -1 -5154 5154 4 -5155 5154 -1 -5254 5154 -1 -5155 5155 4 -5156 5155 -1 -5255 5155 -1 -5156 5156 4 -5157 5156 -1 -5256 5156 -1 -5157 5157 4 -5158 5157 -1 -5257 5157 -1 -5158 5158 4 -5159 5158 -1 -5258 5158 -1 -5159 5159 4 -5160 5159 -1 -5259 5159 -1 -5160 5160 4 -5161 5160 -1 -5260 5160 -1 -5161 5161 4 -5162 5161 -1 -5261 5161 -1 -5162 5162 4 -5163 5162 -1 -5262 5162 -1 -5163 5163 4 -5164 5163 -1 -5263 5163 -1 -5164 5164 4 -5165 5164 -1 -5264 5164 -1 -5165 5165 4 -5166 5165 -1 -5265 5165 -1 -5166 5166 4 -5167 5166 -1 -5266 5166 -1 -5167 5167 4 -5168 5167 -1 -5267 5167 -1 -5168 5168 4 -5169 5168 -1 -5268 5168 -1 -5169 5169 4 -5170 5169 -1 -5269 5169 -1 -5170 5170 4 -5171 5170 -1 -5270 5170 -1 -5171 5171 4 -5172 5171 -1 -5271 5171 -1 -5172 5172 4 -5173 5172 -1 -5272 5172 -1 -5173 5173 4 -5174 5173 -1 -5273 5173 -1 -5174 5174 4 -5175 5174 -1 -5274 5174 -1 -5175 5175 4 -5176 5175 -1 -5275 5175 -1 -5176 5176 4 -5177 5176 -1 -5276 5176 -1 -5177 5177 4 -5178 5177 -1 -5277 5177 -1 -5178 5178 4 -5179 5178 -1 -5278 5178 -1 -5179 5179 4 -5180 5179 -1 -5279 5179 -1 -5180 5180 4 -5181 5180 -1 -5280 5180 -1 -5181 5181 4 -5182 5181 -1 -5281 5181 -1 -5182 5182 4 -5183 5182 -1 -5282 5182 -1 -5183 5183 4 -5184 5183 -1 -5283 5183 -1 -5184 5184 4 -5185 5184 -1 -5284 5184 -1 -5185 5185 4 -5186 5185 -1 -5285 5185 -1 -5186 5186 4 -5187 5186 -1 -5286 5186 -1 -5187 5187 4 -5188 5187 -1 -5287 5187 -1 -5188 5188 4 -5189 5188 -1 -5288 5188 -1 -5189 5189 4 -5190 5189 -1 -5289 5189 -1 -5190 5190 4 -5191 5190 -1 -5290 5190 -1 -5191 5191 4 -5192 5191 -1 -5291 5191 -1 -5192 5192 4 -5193 5192 -1 -5292 5192 -1 -5193 5193 4 -5194 5193 -1 -5293 5193 -1 -5194 5194 4 -5195 5194 -1 -5294 5194 -1 -5195 5195 4 -5196 5195 -1 -5295 5195 -1 -5196 5196 4 -5197 5196 -1 -5296 5196 -1 -5197 5197 4 -5198 5197 -1 -5297 5197 -1 -5198 5198 4 -5199 5198 -1 -5298 5198 -1 -5199 5199 4 -5200 5199 -1 -5299 5199 -1 -5200 5200 4 -5300 5200 -1 -5201 5201 4 -5202 5201 -1 -5301 5201 -1 -5202 5202 4 -5203 5202 -1 -5302 5202 -1 -5203 5203 4 -5204 5203 -1 -5303 5203 -1 -5204 5204 4 -5205 5204 -1 -5304 5204 -1 -5205 5205 4 -5206 5205 -1 -5305 5205 -1 -5206 5206 4 -5207 5206 -1 -5306 5206 -1 -5207 5207 4 -5208 5207 -1 -5307 5207 -1 -5208 5208 4 -5209 5208 -1 -5308 5208 -1 -5209 5209 4 -5210 5209 -1 -5309 5209 -1 -5210 5210 4 -5211 5210 -1 -5310 5210 -1 -5211 5211 4 -5212 5211 -1 -5311 5211 -1 -5212 5212 4 -5213 5212 -1 -5312 5212 -1 -5213 5213 4 -5214 5213 -1 -5313 5213 -1 -5214 5214 4 -5215 5214 -1 -5314 5214 -1 -5215 5215 4 -5216 5215 -1 -5315 5215 -1 -5216 5216 4 -5217 5216 -1 -5316 5216 -1 -5217 5217 4 -5218 5217 -1 -5317 5217 -1 -5218 5218 4 -5219 5218 -1 -5318 5218 -1 -5219 5219 4 -5220 5219 -1 -5319 5219 -1 -5220 5220 4 -5221 5220 -1 -5320 5220 -1 -5221 5221 4 -5222 5221 -1 -5321 5221 -1 -5222 5222 4 -5223 5222 -1 -5322 5222 -1 -5223 5223 4 -5224 5223 -1 -5323 5223 -1 -5224 5224 4 -5225 5224 -1 -5324 5224 -1 -5225 5225 4 -5226 5225 -1 -5325 5225 -1 -5226 5226 4 -5227 5226 -1 -5326 5226 -1 -5227 5227 4 -5228 5227 -1 -5327 5227 -1 -5228 5228 4 -5229 5228 -1 -5328 5228 -1 -5229 5229 4 -5230 5229 -1 -5329 5229 -1 -5230 5230 4 -5231 5230 -1 -5330 5230 -1 -5231 5231 4 -5232 5231 -1 -5331 5231 -1 -5232 5232 4 -5233 5232 -1 -5332 5232 -1 -5233 5233 4 -5234 5233 -1 -5333 5233 -1 -5234 5234 4 -5235 5234 -1 -5334 5234 -1 -5235 5235 4 -5236 5235 -1 -5335 5235 -1 -5236 5236 4 -5237 5236 -1 -5336 5236 -1 -5237 5237 4 -5238 5237 -1 -5337 5237 -1 -5238 5238 4 -5239 5238 -1 -5338 5238 -1 -5239 5239 4 -5240 5239 -1 -5339 5239 -1 -5240 5240 4 -5241 5240 -1 -5340 5240 -1 -5241 5241 4 -5242 5241 -1 -5341 5241 -1 -5242 5242 4 -5243 5242 -1 -5342 5242 -1 -5243 5243 4 -5244 5243 -1 -5343 5243 -1 -5244 5244 4 -5245 5244 -1 -5344 5244 -1 -5245 5245 4 -5246 5245 -1 -5345 5245 -1 -5246 5246 4 -5247 5246 -1 -5346 5246 -1 -5247 5247 4 -5248 5247 -1 -5347 5247 -1 -5248 5248 4 -5249 5248 -1 -5348 5248 -1 -5249 5249 4 -5250 5249 -1 -5349 5249 -1 -5250 5250 4 -5251 5250 -1 -5350 5250 -1 -5251 5251 4 -5252 5251 -1 -5351 5251 -1 -5252 5252 4 -5253 5252 -1 -5352 5252 -1 -5253 5253 4 -5254 5253 -1 -5353 5253 -1 -5254 5254 4 -5255 5254 -1 -5354 5254 -1 -5255 5255 4 -5256 5255 -1 -5355 5255 -1 -5256 5256 4 -5257 5256 -1 -5356 5256 -1 -5257 5257 4 -5258 5257 -1 -5357 5257 -1 -5258 5258 4 -5259 5258 -1 -5358 5258 -1 -5259 5259 4 -5260 5259 -1 -5359 5259 -1 -5260 5260 4 -5261 5260 -1 -5360 5260 -1 -5261 5261 4 -5262 5261 -1 -5361 5261 -1 -5262 5262 4 -5263 5262 -1 -5362 5262 -1 -5263 5263 4 -5264 5263 -1 -5363 5263 -1 -5264 5264 4 -5265 5264 -1 -5364 5264 -1 -5265 5265 4 -5266 5265 -1 -5365 5265 -1 -5266 5266 4 -5267 5266 -1 -5366 5266 -1 -5267 5267 4 -5268 5267 -1 -5367 5267 -1 -5268 5268 4 -5269 5268 -1 -5368 5268 -1 -5269 5269 4 -5270 5269 -1 -5369 5269 -1 -5270 5270 4 -5271 5270 -1 -5370 5270 -1 -5271 5271 4 -5272 5271 -1 -5371 5271 -1 -5272 5272 4 -5273 5272 -1 -5372 5272 -1 -5273 5273 4 -5274 5273 -1 -5373 5273 -1 -5274 5274 4 -5275 5274 -1 -5374 5274 -1 -5275 5275 4 -5276 5275 -1 -5375 5275 -1 -5276 5276 4 -5277 5276 -1 -5376 5276 -1 -5277 5277 4 -5278 5277 -1 -5377 5277 -1 -5278 5278 4 -5279 5278 -1 -5378 5278 -1 -5279 5279 4 -5280 5279 -1 -5379 5279 -1 -5280 5280 4 -5281 5280 -1 -5380 5280 -1 -5281 5281 4 -5282 5281 -1 -5381 5281 -1 -5282 5282 4 -5283 5282 -1 -5382 5282 -1 -5283 5283 4 -5284 5283 -1 -5383 5283 -1 -5284 5284 4 -5285 5284 -1 -5384 5284 -1 -5285 5285 4 -5286 5285 -1 -5385 5285 -1 -5286 5286 4 -5287 5286 -1 -5386 5286 -1 -5287 5287 4 -5288 5287 -1 -5387 5287 -1 -5288 5288 4 -5289 5288 -1 -5388 5288 -1 -5289 5289 4 -5290 5289 -1 -5389 5289 -1 -5290 5290 4 -5291 5290 -1 -5390 5290 -1 -5291 5291 4 -5292 5291 -1 -5391 5291 -1 -5292 5292 4 -5293 5292 -1 -5392 5292 -1 -5293 5293 4 -5294 5293 -1 -5393 5293 -1 -5294 5294 4 -5295 5294 -1 -5394 5294 -1 -5295 5295 4 -5296 5295 -1 -5395 5295 -1 -5296 5296 4 -5297 5296 -1 -5396 5296 -1 -5297 5297 4 -5298 5297 -1 -5397 5297 -1 -5298 5298 4 -5299 5298 -1 -5398 5298 -1 -5299 5299 4 -5300 5299 -1 -5399 5299 -1 -5300 5300 4 -5400 5300 -1 -5301 5301 4 -5302 5301 -1 -5401 5301 -1 -5302 5302 4 -5303 5302 -1 -5402 5302 -1 -5303 5303 4 -5304 5303 -1 -5403 5303 -1 -5304 5304 4 -5305 5304 -1 -5404 5304 -1 -5305 5305 4 -5306 5305 -1 -5405 5305 -1 -5306 5306 4 -5307 5306 -1 -5406 5306 -1 -5307 5307 4 -5308 5307 -1 -5407 5307 -1 -5308 5308 4 -5309 5308 -1 -5408 5308 -1 -5309 5309 4 -5310 5309 -1 -5409 5309 -1 -5310 5310 4 -5311 5310 -1 -5410 5310 -1 -5311 5311 4 -5312 5311 -1 -5411 5311 -1 -5312 5312 4 -5313 5312 -1 -5412 5312 -1 -5313 5313 4 -5314 5313 -1 -5413 5313 -1 -5314 5314 4 -5315 5314 -1 -5414 5314 -1 -5315 5315 4 -5316 5315 -1 -5415 5315 -1 -5316 5316 4 -5317 5316 -1 -5416 5316 -1 -5317 5317 4 -5318 5317 -1 -5417 5317 -1 -5318 5318 4 -5319 5318 -1 -5418 5318 -1 -5319 5319 4 -5320 5319 -1 -5419 5319 -1 -5320 5320 4 -5321 5320 -1 -5420 5320 -1 -5321 5321 4 -5322 5321 -1 -5421 5321 -1 -5322 5322 4 -5323 5322 -1 -5422 5322 -1 -5323 5323 4 -5324 5323 -1 -5423 5323 -1 -5324 5324 4 -5325 5324 -1 -5424 5324 -1 -5325 5325 4 -5326 5325 -1 -5425 5325 -1 -5326 5326 4 -5327 5326 -1 -5426 5326 -1 -5327 5327 4 -5328 5327 -1 -5427 5327 -1 -5328 5328 4 -5329 5328 -1 -5428 5328 -1 -5329 5329 4 -5330 5329 -1 -5429 5329 -1 -5330 5330 4 -5331 5330 -1 -5430 5330 -1 -5331 5331 4 -5332 5331 -1 -5431 5331 -1 -5332 5332 4 -5333 5332 -1 -5432 5332 -1 -5333 5333 4 -5334 5333 -1 -5433 5333 -1 -5334 5334 4 -5335 5334 -1 -5434 5334 -1 -5335 5335 4 -5336 5335 -1 -5435 5335 -1 -5336 5336 4 -5337 5336 -1 -5436 5336 -1 -5337 5337 4 -5338 5337 -1 -5437 5337 -1 -5338 5338 4 -5339 5338 -1 -5438 5338 -1 -5339 5339 4 -5340 5339 -1 -5439 5339 -1 -5340 5340 4 -5341 5340 -1 -5440 5340 -1 -5341 5341 4 -5342 5341 -1 -5441 5341 -1 -5342 5342 4 -5343 5342 -1 -5442 5342 -1 -5343 5343 4 -5344 5343 -1 -5443 5343 -1 -5344 5344 4 -5345 5344 -1 -5444 5344 -1 -5345 5345 4 -5346 5345 -1 -5445 5345 -1 -5346 5346 4 -5347 5346 -1 -5446 5346 -1 -5347 5347 4 -5348 5347 -1 -5447 5347 -1 -5348 5348 4 -5349 5348 -1 -5448 5348 -1 -5349 5349 4 -5350 5349 -1 -5449 5349 -1 -5350 5350 4 -5351 5350 -1 -5450 5350 -1 -5351 5351 4 -5352 5351 -1 -5451 5351 -1 -5352 5352 4 -5353 5352 -1 -5452 5352 -1 -5353 5353 4 -5354 5353 -1 -5453 5353 -1 -5354 5354 4 -5355 5354 -1 -5454 5354 -1 -5355 5355 4 -5356 5355 -1 -5455 5355 -1 -5356 5356 4 -5357 5356 -1 -5456 5356 -1 -5357 5357 4 -5358 5357 -1 -5457 5357 -1 -5358 5358 4 -5359 5358 -1 -5458 5358 -1 -5359 5359 4 -5360 5359 -1 -5459 5359 -1 -5360 5360 4 -5361 5360 -1 -5460 5360 -1 -5361 5361 4 -5362 5361 -1 -5461 5361 -1 -5362 5362 4 -5363 5362 -1 -5462 5362 -1 -5363 5363 4 -5364 5363 -1 -5463 5363 -1 -5364 5364 4 -5365 5364 -1 -5464 5364 -1 -5365 5365 4 -5366 5365 -1 -5465 5365 -1 -5366 5366 4 -5367 5366 -1 -5466 5366 -1 -5367 5367 4 -5368 5367 -1 -5467 5367 -1 -5368 5368 4 -5369 5368 -1 -5468 5368 -1 -5369 5369 4 -5370 5369 -1 -5469 5369 -1 -5370 5370 4 -5371 5370 -1 -5470 5370 -1 -5371 5371 4 -5372 5371 -1 -5471 5371 -1 -5372 5372 4 -5373 5372 -1 -5472 5372 -1 -5373 5373 4 -5374 5373 -1 -5473 5373 -1 -5374 5374 4 -5375 5374 -1 -5474 5374 -1 -5375 5375 4 -5376 5375 -1 -5475 5375 -1 -5376 5376 4 -5377 5376 -1 -5476 5376 -1 -5377 5377 4 -5378 5377 -1 -5477 5377 -1 -5378 5378 4 -5379 5378 -1 -5478 5378 -1 -5379 5379 4 -5380 5379 -1 -5479 5379 -1 -5380 5380 4 -5381 5380 -1 -5480 5380 -1 -5381 5381 4 -5382 5381 -1 -5481 5381 -1 -5382 5382 4 -5383 5382 -1 -5482 5382 -1 -5383 5383 4 -5384 5383 -1 -5483 5383 -1 -5384 5384 4 -5385 5384 -1 -5484 5384 -1 -5385 5385 4 -5386 5385 -1 -5485 5385 -1 -5386 5386 4 -5387 5386 -1 -5486 5386 -1 -5387 5387 4 -5388 5387 -1 -5487 5387 -1 -5388 5388 4 -5389 5388 -1 -5488 5388 -1 -5389 5389 4 -5390 5389 -1 -5489 5389 -1 -5390 5390 4 -5391 5390 -1 -5490 5390 -1 -5391 5391 4 -5392 5391 -1 -5491 5391 -1 -5392 5392 4 -5393 5392 -1 -5492 5392 -1 -5393 5393 4 -5394 5393 -1 -5493 5393 -1 -5394 5394 4 -5395 5394 -1 -5494 5394 -1 -5395 5395 4 -5396 5395 -1 -5495 5395 -1 -5396 5396 4 -5397 5396 -1 -5496 5396 -1 -5397 5397 4 -5398 5397 -1 -5497 5397 -1 -5398 5398 4 -5399 5398 -1 -5498 5398 -1 -5399 5399 4 -5400 5399 -1 -5499 5399 -1 -5400 5400 4 -5500 5400 -1 -5401 5401 4 -5402 5401 -1 -5501 5401 -1 -5402 5402 4 -5403 5402 -1 -5502 5402 -1 -5403 5403 4 -5404 5403 -1 -5503 5403 -1 -5404 5404 4 -5405 5404 -1 -5504 5404 -1 -5405 5405 4 -5406 5405 -1 -5505 5405 -1 -5406 5406 4 -5407 5406 -1 -5506 5406 -1 -5407 5407 4 -5408 5407 -1 -5507 5407 -1 -5408 5408 4 -5409 5408 -1 -5508 5408 -1 -5409 5409 4 -5410 5409 -1 -5509 5409 -1 -5410 5410 4 -5411 5410 -1 -5510 5410 -1 -5411 5411 4 -5412 5411 -1 -5511 5411 -1 -5412 5412 4 -5413 5412 -1 -5512 5412 -1 -5413 5413 4 -5414 5413 -1 -5513 5413 -1 -5414 5414 4 -5415 5414 -1 -5514 5414 -1 -5415 5415 4 -5416 5415 -1 -5515 5415 -1 -5416 5416 4 -5417 5416 -1 -5516 5416 -1 -5417 5417 4 -5418 5417 -1 -5517 5417 -1 -5418 5418 4 -5419 5418 -1 -5518 5418 -1 -5419 5419 4 -5420 5419 -1 -5519 5419 -1 -5420 5420 4 -5421 5420 -1 -5520 5420 -1 -5421 5421 4 -5422 5421 -1 -5521 5421 -1 -5422 5422 4 -5423 5422 -1 -5522 5422 -1 -5423 5423 4 -5424 5423 -1 -5523 5423 -1 -5424 5424 4 -5425 5424 -1 -5524 5424 -1 -5425 5425 4 -5426 5425 -1 -5525 5425 -1 -5426 5426 4 -5427 5426 -1 -5526 5426 -1 -5427 5427 4 -5428 5427 -1 -5527 5427 -1 -5428 5428 4 -5429 5428 -1 -5528 5428 -1 -5429 5429 4 -5430 5429 -1 -5529 5429 -1 -5430 5430 4 -5431 5430 -1 -5530 5430 -1 -5431 5431 4 -5432 5431 -1 -5531 5431 -1 -5432 5432 4 -5433 5432 -1 -5532 5432 -1 -5433 5433 4 -5434 5433 -1 -5533 5433 -1 -5434 5434 4 -5435 5434 -1 -5534 5434 -1 -5435 5435 4 -5436 5435 -1 -5535 5435 -1 -5436 5436 4 -5437 5436 -1 -5536 5436 -1 -5437 5437 4 -5438 5437 -1 -5537 5437 -1 -5438 5438 4 -5439 5438 -1 -5538 5438 -1 -5439 5439 4 -5440 5439 -1 -5539 5439 -1 -5440 5440 4 -5441 5440 -1 -5540 5440 -1 -5441 5441 4 -5442 5441 -1 -5541 5441 -1 -5442 5442 4 -5443 5442 -1 -5542 5442 -1 -5443 5443 4 -5444 5443 -1 -5543 5443 -1 -5444 5444 4 -5445 5444 -1 -5544 5444 -1 -5445 5445 4 -5446 5445 -1 -5545 5445 -1 -5446 5446 4 -5447 5446 -1 -5546 5446 -1 -5447 5447 4 -5448 5447 -1 -5547 5447 -1 -5448 5448 4 -5449 5448 -1 -5548 5448 -1 -5449 5449 4 -5450 5449 -1 -5549 5449 -1 -5450 5450 4 -5451 5450 -1 -5550 5450 -1 -5451 5451 4 -5452 5451 -1 -5551 5451 -1 -5452 5452 4 -5453 5452 -1 -5552 5452 -1 -5453 5453 4 -5454 5453 -1 -5553 5453 -1 -5454 5454 4 -5455 5454 -1 -5554 5454 -1 -5455 5455 4 -5456 5455 -1 -5555 5455 -1 -5456 5456 4 -5457 5456 -1 -5556 5456 -1 -5457 5457 4 -5458 5457 -1 -5557 5457 -1 -5458 5458 4 -5459 5458 -1 -5558 5458 -1 -5459 5459 4 -5460 5459 -1 -5559 5459 -1 -5460 5460 4 -5461 5460 -1 -5560 5460 -1 -5461 5461 4 -5462 5461 -1 -5561 5461 -1 -5462 5462 4 -5463 5462 -1 -5562 5462 -1 -5463 5463 4 -5464 5463 -1 -5563 5463 -1 -5464 5464 4 -5465 5464 -1 -5564 5464 -1 -5465 5465 4 -5466 5465 -1 -5565 5465 -1 -5466 5466 4 -5467 5466 -1 -5566 5466 -1 -5467 5467 4 -5468 5467 -1 -5567 5467 -1 -5468 5468 4 -5469 5468 -1 -5568 5468 -1 -5469 5469 4 -5470 5469 -1 -5569 5469 -1 -5470 5470 4 -5471 5470 -1 -5570 5470 -1 -5471 5471 4 -5472 5471 -1 -5571 5471 -1 -5472 5472 4 -5473 5472 -1 -5572 5472 -1 -5473 5473 4 -5474 5473 -1 -5573 5473 -1 -5474 5474 4 -5475 5474 -1 -5574 5474 -1 -5475 5475 4 -5476 5475 -1 -5575 5475 -1 -5476 5476 4 -5477 5476 -1 -5576 5476 -1 -5477 5477 4 -5478 5477 -1 -5577 5477 -1 -5478 5478 4 -5479 5478 -1 -5578 5478 -1 -5479 5479 4 -5480 5479 -1 -5579 5479 -1 -5480 5480 4 -5481 5480 -1 -5580 5480 -1 -5481 5481 4 -5482 5481 -1 -5581 5481 -1 -5482 5482 4 -5483 5482 -1 -5582 5482 -1 -5483 5483 4 -5484 5483 -1 -5583 5483 -1 -5484 5484 4 -5485 5484 -1 -5584 5484 -1 -5485 5485 4 -5486 5485 -1 -5585 5485 -1 -5486 5486 4 -5487 5486 -1 -5586 5486 -1 -5487 5487 4 -5488 5487 -1 -5587 5487 -1 -5488 5488 4 -5489 5488 -1 -5588 5488 -1 -5489 5489 4 -5490 5489 -1 -5589 5489 -1 -5490 5490 4 -5491 5490 -1 -5590 5490 -1 -5491 5491 4 -5492 5491 -1 -5591 5491 -1 -5492 5492 4 -5493 5492 -1 -5592 5492 -1 -5493 5493 4 -5494 5493 -1 -5593 5493 -1 -5494 5494 4 -5495 5494 -1 -5594 5494 -1 -5495 5495 4 -5496 5495 -1 -5595 5495 -1 -5496 5496 4 -5497 5496 -1 -5596 5496 -1 -5497 5497 4 -5498 5497 -1 -5597 5497 -1 -5498 5498 4 -5499 5498 -1 -5598 5498 -1 -5499 5499 4 -5500 5499 -1 -5599 5499 -1 -5500 5500 4 -5600 5500 -1 -5501 5501 4 -5502 5501 -1 -5601 5501 -1 -5502 5502 4 -5503 5502 -1 -5602 5502 -1 -5503 5503 4 -5504 5503 -1 -5603 5503 -1 -5504 5504 4 -5505 5504 -1 -5604 5504 -1 -5505 5505 4 -5506 5505 -1 -5605 5505 -1 -5506 5506 4 -5507 5506 -1 -5606 5506 -1 -5507 5507 4 -5508 5507 -1 -5607 5507 -1 -5508 5508 4 -5509 5508 -1 -5608 5508 -1 -5509 5509 4 -5510 5509 -1 -5609 5509 -1 -5510 5510 4 -5511 5510 -1 -5610 5510 -1 -5511 5511 4 -5512 5511 -1 -5611 5511 -1 -5512 5512 4 -5513 5512 -1 -5612 5512 -1 -5513 5513 4 -5514 5513 -1 -5613 5513 -1 -5514 5514 4 -5515 5514 -1 -5614 5514 -1 -5515 5515 4 -5516 5515 -1 -5615 5515 -1 -5516 5516 4 -5517 5516 -1 -5616 5516 -1 -5517 5517 4 -5518 5517 -1 -5617 5517 -1 -5518 5518 4 -5519 5518 -1 -5618 5518 -1 -5519 5519 4 -5520 5519 -1 -5619 5519 -1 -5520 5520 4 -5521 5520 -1 -5620 5520 -1 -5521 5521 4 -5522 5521 -1 -5621 5521 -1 -5522 5522 4 -5523 5522 -1 -5622 5522 -1 -5523 5523 4 -5524 5523 -1 -5623 5523 -1 -5524 5524 4 -5525 5524 -1 -5624 5524 -1 -5525 5525 4 -5526 5525 -1 -5625 5525 -1 -5526 5526 4 -5527 5526 -1 -5626 5526 -1 -5527 5527 4 -5528 5527 -1 -5627 5527 -1 -5528 5528 4 -5529 5528 -1 -5628 5528 -1 -5529 5529 4 -5530 5529 -1 -5629 5529 -1 -5530 5530 4 -5531 5530 -1 -5630 5530 -1 -5531 5531 4 -5532 5531 -1 -5631 5531 -1 -5532 5532 4 -5533 5532 -1 -5632 5532 -1 -5533 5533 4 -5534 5533 -1 -5633 5533 -1 -5534 5534 4 -5535 5534 -1 -5634 5534 -1 -5535 5535 4 -5536 5535 -1 -5635 5535 -1 -5536 5536 4 -5537 5536 -1 -5636 5536 -1 -5537 5537 4 -5538 5537 -1 -5637 5537 -1 -5538 5538 4 -5539 5538 -1 -5638 5538 -1 -5539 5539 4 -5540 5539 -1 -5639 5539 -1 -5540 5540 4 -5541 5540 -1 -5640 5540 -1 -5541 5541 4 -5542 5541 -1 -5641 5541 -1 -5542 5542 4 -5543 5542 -1 -5642 5542 -1 -5543 5543 4 -5544 5543 -1 -5643 5543 -1 -5544 5544 4 -5545 5544 -1 -5644 5544 -1 -5545 5545 4 -5546 5545 -1 -5645 5545 -1 -5546 5546 4 -5547 5546 -1 -5646 5546 -1 -5547 5547 4 -5548 5547 -1 -5647 5547 -1 -5548 5548 4 -5549 5548 -1 -5648 5548 -1 -5549 5549 4 -5550 5549 -1 -5649 5549 -1 -5550 5550 4 -5551 5550 -1 -5650 5550 -1 -5551 5551 4 -5552 5551 -1 -5651 5551 -1 -5552 5552 4 -5553 5552 -1 -5652 5552 -1 -5553 5553 4 -5554 5553 -1 -5653 5553 -1 -5554 5554 4 -5555 5554 -1 -5654 5554 -1 -5555 5555 4 -5556 5555 -1 -5655 5555 -1 -5556 5556 4 -5557 5556 -1 -5656 5556 -1 -5557 5557 4 -5558 5557 -1 -5657 5557 -1 -5558 5558 4 -5559 5558 -1 -5658 5558 -1 -5559 5559 4 -5560 5559 -1 -5659 5559 -1 -5560 5560 4 -5561 5560 -1 -5660 5560 -1 -5561 5561 4 -5562 5561 -1 -5661 5561 -1 -5562 5562 4 -5563 5562 -1 -5662 5562 -1 -5563 5563 4 -5564 5563 -1 -5663 5563 -1 -5564 5564 4 -5565 5564 -1 -5664 5564 -1 -5565 5565 4 -5566 5565 -1 -5665 5565 -1 -5566 5566 4 -5567 5566 -1 -5666 5566 -1 -5567 5567 4 -5568 5567 -1 -5667 5567 -1 -5568 5568 4 -5569 5568 -1 -5668 5568 -1 -5569 5569 4 -5570 5569 -1 -5669 5569 -1 -5570 5570 4 -5571 5570 -1 -5670 5570 -1 -5571 5571 4 -5572 5571 -1 -5671 5571 -1 -5572 5572 4 -5573 5572 -1 -5672 5572 -1 -5573 5573 4 -5574 5573 -1 -5673 5573 -1 -5574 5574 4 -5575 5574 -1 -5674 5574 -1 -5575 5575 4 -5576 5575 -1 -5675 5575 -1 -5576 5576 4 -5577 5576 -1 -5676 5576 -1 -5577 5577 4 -5578 5577 -1 -5677 5577 -1 -5578 5578 4 -5579 5578 -1 -5678 5578 -1 -5579 5579 4 -5580 5579 -1 -5679 5579 -1 -5580 5580 4 -5581 5580 -1 -5680 5580 -1 -5581 5581 4 -5582 5581 -1 -5681 5581 -1 -5582 5582 4 -5583 5582 -1 -5682 5582 -1 -5583 5583 4 -5584 5583 -1 -5683 5583 -1 -5584 5584 4 -5585 5584 -1 -5684 5584 -1 -5585 5585 4 -5586 5585 -1 -5685 5585 -1 -5586 5586 4 -5587 5586 -1 -5686 5586 -1 -5587 5587 4 -5588 5587 -1 -5687 5587 -1 -5588 5588 4 -5589 5588 -1 -5688 5588 -1 -5589 5589 4 -5590 5589 -1 -5689 5589 -1 -5590 5590 4 -5591 5590 -1 -5690 5590 -1 -5591 5591 4 -5592 5591 -1 -5691 5591 -1 -5592 5592 4 -5593 5592 -1 -5692 5592 -1 -5593 5593 4 -5594 5593 -1 -5693 5593 -1 -5594 5594 4 -5595 5594 -1 -5694 5594 -1 -5595 5595 4 -5596 5595 -1 -5695 5595 -1 -5596 5596 4 -5597 5596 -1 -5696 5596 -1 -5597 5597 4 -5598 5597 -1 -5697 5597 -1 -5598 5598 4 -5599 5598 -1 -5698 5598 -1 -5599 5599 4 -5600 5599 -1 -5699 5599 -1 -5600 5600 4 -5700 5600 -1 -5601 5601 4 -5602 5601 -1 -5701 5601 -1 -5602 5602 4 -5603 5602 -1 -5702 5602 -1 -5603 5603 4 -5604 5603 -1 -5703 5603 -1 -5604 5604 4 -5605 5604 -1 -5704 5604 -1 -5605 5605 4 -5606 5605 -1 -5705 5605 -1 -5606 5606 4 -5607 5606 -1 -5706 5606 -1 -5607 5607 4 -5608 5607 -1 -5707 5607 -1 -5608 5608 4 -5609 5608 -1 -5708 5608 -1 -5609 5609 4 -5610 5609 -1 -5709 5609 -1 -5610 5610 4 -5611 5610 -1 -5710 5610 -1 -5611 5611 4 -5612 5611 -1 -5711 5611 -1 -5612 5612 4 -5613 5612 -1 -5712 5612 -1 -5613 5613 4 -5614 5613 -1 -5713 5613 -1 -5614 5614 4 -5615 5614 -1 -5714 5614 -1 -5615 5615 4 -5616 5615 -1 -5715 5615 -1 -5616 5616 4 -5617 5616 -1 -5716 5616 -1 -5617 5617 4 -5618 5617 -1 -5717 5617 -1 -5618 5618 4 -5619 5618 -1 -5718 5618 -1 -5619 5619 4 -5620 5619 -1 -5719 5619 -1 -5620 5620 4 -5621 5620 -1 -5720 5620 -1 -5621 5621 4 -5622 5621 -1 -5721 5621 -1 -5622 5622 4 -5623 5622 -1 -5722 5622 -1 -5623 5623 4 -5624 5623 -1 -5723 5623 -1 -5624 5624 4 -5625 5624 -1 -5724 5624 -1 -5625 5625 4 -5626 5625 -1 -5725 5625 -1 -5626 5626 4 -5627 5626 -1 -5726 5626 -1 -5627 5627 4 -5628 5627 -1 -5727 5627 -1 -5628 5628 4 -5629 5628 -1 -5728 5628 -1 -5629 5629 4 -5630 5629 -1 -5729 5629 -1 -5630 5630 4 -5631 5630 -1 -5730 5630 -1 -5631 5631 4 -5632 5631 -1 -5731 5631 -1 -5632 5632 4 -5633 5632 -1 -5732 5632 -1 -5633 5633 4 -5634 5633 -1 -5733 5633 -1 -5634 5634 4 -5635 5634 -1 -5734 5634 -1 -5635 5635 4 -5636 5635 -1 -5735 5635 -1 -5636 5636 4 -5637 5636 -1 -5736 5636 -1 -5637 5637 4 -5638 5637 -1 -5737 5637 -1 -5638 5638 4 -5639 5638 -1 -5738 5638 -1 -5639 5639 4 -5640 5639 -1 -5739 5639 -1 -5640 5640 4 -5641 5640 -1 -5740 5640 -1 -5641 5641 4 -5642 5641 -1 -5741 5641 -1 -5642 5642 4 -5643 5642 -1 -5742 5642 -1 -5643 5643 4 -5644 5643 -1 -5743 5643 -1 -5644 5644 4 -5645 5644 -1 -5744 5644 -1 -5645 5645 4 -5646 5645 -1 -5745 5645 -1 -5646 5646 4 -5647 5646 -1 -5746 5646 -1 -5647 5647 4 -5648 5647 -1 -5747 5647 -1 -5648 5648 4 -5649 5648 -1 -5748 5648 -1 -5649 5649 4 -5650 5649 -1 -5749 5649 -1 -5650 5650 4 -5651 5650 -1 -5750 5650 -1 -5651 5651 4 -5652 5651 -1 -5751 5651 -1 -5652 5652 4 -5653 5652 -1 -5752 5652 -1 -5653 5653 4 -5654 5653 -1 -5753 5653 -1 -5654 5654 4 -5655 5654 -1 -5754 5654 -1 -5655 5655 4 -5656 5655 -1 -5755 5655 -1 -5656 5656 4 -5657 5656 -1 -5756 5656 -1 -5657 5657 4 -5658 5657 -1 -5757 5657 -1 -5658 5658 4 -5659 5658 -1 -5758 5658 -1 -5659 5659 4 -5660 5659 -1 -5759 5659 -1 -5660 5660 4 -5661 5660 -1 -5760 5660 -1 -5661 5661 4 -5662 5661 -1 -5761 5661 -1 -5662 5662 4 -5663 5662 -1 -5762 5662 -1 -5663 5663 4 -5664 5663 -1 -5763 5663 -1 -5664 5664 4 -5665 5664 -1 -5764 5664 -1 -5665 5665 4 -5666 5665 -1 -5765 5665 -1 -5666 5666 4 -5667 5666 -1 -5766 5666 -1 -5667 5667 4 -5668 5667 -1 -5767 5667 -1 -5668 5668 4 -5669 5668 -1 -5768 5668 -1 -5669 5669 4 -5670 5669 -1 -5769 5669 -1 -5670 5670 4 -5671 5670 -1 -5770 5670 -1 -5671 5671 4 -5672 5671 -1 -5771 5671 -1 -5672 5672 4 -5673 5672 -1 -5772 5672 -1 -5673 5673 4 -5674 5673 -1 -5773 5673 -1 -5674 5674 4 -5675 5674 -1 -5774 5674 -1 -5675 5675 4 -5676 5675 -1 -5775 5675 -1 -5676 5676 4 -5677 5676 -1 -5776 5676 -1 -5677 5677 4 -5678 5677 -1 -5777 5677 -1 -5678 5678 4 -5679 5678 -1 -5778 5678 -1 -5679 5679 4 -5680 5679 -1 -5779 5679 -1 -5680 5680 4 -5681 5680 -1 -5780 5680 -1 -5681 5681 4 -5682 5681 -1 -5781 5681 -1 -5682 5682 4 -5683 5682 -1 -5782 5682 -1 -5683 5683 4 -5684 5683 -1 -5783 5683 -1 -5684 5684 4 -5685 5684 -1 -5784 5684 -1 -5685 5685 4 -5686 5685 -1 -5785 5685 -1 -5686 5686 4 -5687 5686 -1 -5786 5686 -1 -5687 5687 4 -5688 5687 -1 -5787 5687 -1 -5688 5688 4 -5689 5688 -1 -5788 5688 -1 -5689 5689 4 -5690 5689 -1 -5789 5689 -1 -5690 5690 4 -5691 5690 -1 -5790 5690 -1 -5691 5691 4 -5692 5691 -1 -5791 5691 -1 -5692 5692 4 -5693 5692 -1 -5792 5692 -1 -5693 5693 4 -5694 5693 -1 -5793 5693 -1 -5694 5694 4 -5695 5694 -1 -5794 5694 -1 -5695 5695 4 -5696 5695 -1 -5795 5695 -1 -5696 5696 4 -5697 5696 -1 -5796 5696 -1 -5697 5697 4 -5698 5697 -1 -5797 5697 -1 -5698 5698 4 -5699 5698 -1 -5798 5698 -1 -5699 5699 4 -5700 5699 -1 -5799 5699 -1 -5700 5700 4 -5800 5700 -1 -5701 5701 4 -5702 5701 -1 -5801 5701 -1 -5702 5702 4 -5703 5702 -1 -5802 5702 -1 -5703 5703 4 -5704 5703 -1 -5803 5703 -1 -5704 5704 4 -5705 5704 -1 -5804 5704 -1 -5705 5705 4 -5706 5705 -1 -5805 5705 -1 -5706 5706 4 -5707 5706 -1 -5806 5706 -1 -5707 5707 4 -5708 5707 -1 -5807 5707 -1 -5708 5708 4 -5709 5708 -1 -5808 5708 -1 -5709 5709 4 -5710 5709 -1 -5809 5709 -1 -5710 5710 4 -5711 5710 -1 -5810 5710 -1 -5711 5711 4 -5712 5711 -1 -5811 5711 -1 -5712 5712 4 -5713 5712 -1 -5812 5712 -1 -5713 5713 4 -5714 5713 -1 -5813 5713 -1 -5714 5714 4 -5715 5714 -1 -5814 5714 -1 -5715 5715 4 -5716 5715 -1 -5815 5715 -1 -5716 5716 4 -5717 5716 -1 -5816 5716 -1 -5717 5717 4 -5718 5717 -1 -5817 5717 -1 -5718 5718 4 -5719 5718 -1 -5818 5718 -1 -5719 5719 4 -5720 5719 -1 -5819 5719 -1 -5720 5720 4 -5721 5720 -1 -5820 5720 -1 -5721 5721 4 -5722 5721 -1 -5821 5721 -1 -5722 5722 4 -5723 5722 -1 -5822 5722 -1 -5723 5723 4 -5724 5723 -1 -5823 5723 -1 -5724 5724 4 -5725 5724 -1 -5824 5724 -1 -5725 5725 4 -5726 5725 -1 -5825 5725 -1 -5726 5726 4 -5727 5726 -1 -5826 5726 -1 -5727 5727 4 -5728 5727 -1 -5827 5727 -1 -5728 5728 4 -5729 5728 -1 -5828 5728 -1 -5729 5729 4 -5730 5729 -1 -5829 5729 -1 -5730 5730 4 -5731 5730 -1 -5830 5730 -1 -5731 5731 4 -5732 5731 -1 -5831 5731 -1 -5732 5732 4 -5733 5732 -1 -5832 5732 -1 -5733 5733 4 -5734 5733 -1 -5833 5733 -1 -5734 5734 4 -5735 5734 -1 -5834 5734 -1 -5735 5735 4 -5736 5735 -1 -5835 5735 -1 -5736 5736 4 -5737 5736 -1 -5836 5736 -1 -5737 5737 4 -5738 5737 -1 -5837 5737 -1 -5738 5738 4 -5739 5738 -1 -5838 5738 -1 -5739 5739 4 -5740 5739 -1 -5839 5739 -1 -5740 5740 4 -5741 5740 -1 -5840 5740 -1 -5741 5741 4 -5742 5741 -1 -5841 5741 -1 -5742 5742 4 -5743 5742 -1 -5842 5742 -1 -5743 5743 4 -5744 5743 -1 -5843 5743 -1 -5744 5744 4 -5745 5744 -1 -5844 5744 -1 -5745 5745 4 -5746 5745 -1 -5845 5745 -1 -5746 5746 4 -5747 5746 -1 -5846 5746 -1 -5747 5747 4 -5748 5747 -1 -5847 5747 -1 -5748 5748 4 -5749 5748 -1 -5848 5748 -1 -5749 5749 4 -5750 5749 -1 -5849 5749 -1 -5750 5750 4 -5751 5750 -1 -5850 5750 -1 -5751 5751 4 -5752 5751 -1 -5851 5751 -1 -5752 5752 4 -5753 5752 -1 -5852 5752 -1 -5753 5753 4 -5754 5753 -1 -5853 5753 -1 -5754 5754 4 -5755 5754 -1 -5854 5754 -1 -5755 5755 4 -5756 5755 -1 -5855 5755 -1 -5756 5756 4 -5757 5756 -1 -5856 5756 -1 -5757 5757 4 -5758 5757 -1 -5857 5757 -1 -5758 5758 4 -5759 5758 -1 -5858 5758 -1 -5759 5759 4 -5760 5759 -1 -5859 5759 -1 -5760 5760 4 -5761 5760 -1 -5860 5760 -1 -5761 5761 4 -5762 5761 -1 -5861 5761 -1 -5762 5762 4 -5763 5762 -1 -5862 5762 -1 -5763 5763 4 -5764 5763 -1 -5863 5763 -1 -5764 5764 4 -5765 5764 -1 -5864 5764 -1 -5765 5765 4 -5766 5765 -1 -5865 5765 -1 -5766 5766 4 -5767 5766 -1 -5866 5766 -1 -5767 5767 4 -5768 5767 -1 -5867 5767 -1 -5768 5768 4 -5769 5768 -1 -5868 5768 -1 -5769 5769 4 -5770 5769 -1 -5869 5769 -1 -5770 5770 4 -5771 5770 -1 -5870 5770 -1 -5771 5771 4 -5772 5771 -1 -5871 5771 -1 -5772 5772 4 -5773 5772 -1 -5872 5772 -1 -5773 5773 4 -5774 5773 -1 -5873 5773 -1 -5774 5774 4 -5775 5774 -1 -5874 5774 -1 -5775 5775 4 -5776 5775 -1 -5875 5775 -1 -5776 5776 4 -5777 5776 -1 -5876 5776 -1 -5777 5777 4 -5778 5777 -1 -5877 5777 -1 -5778 5778 4 -5779 5778 -1 -5878 5778 -1 -5779 5779 4 -5780 5779 -1 -5879 5779 -1 -5780 5780 4 -5781 5780 -1 -5880 5780 -1 -5781 5781 4 -5782 5781 -1 -5881 5781 -1 -5782 5782 4 -5783 5782 -1 -5882 5782 -1 -5783 5783 4 -5784 5783 -1 -5883 5783 -1 -5784 5784 4 -5785 5784 -1 -5884 5784 -1 -5785 5785 4 -5786 5785 -1 -5885 5785 -1 -5786 5786 4 -5787 5786 -1 -5886 5786 -1 -5787 5787 4 -5788 5787 -1 -5887 5787 -1 -5788 5788 4 -5789 5788 -1 -5888 5788 -1 -5789 5789 4 -5790 5789 -1 -5889 5789 -1 -5790 5790 4 -5791 5790 -1 -5890 5790 -1 -5791 5791 4 -5792 5791 -1 -5891 5791 -1 -5792 5792 4 -5793 5792 -1 -5892 5792 -1 -5793 5793 4 -5794 5793 -1 -5893 5793 -1 -5794 5794 4 -5795 5794 -1 -5894 5794 -1 -5795 5795 4 -5796 5795 -1 -5895 5795 -1 -5796 5796 4 -5797 5796 -1 -5896 5796 -1 -5797 5797 4 -5798 5797 -1 -5897 5797 -1 -5798 5798 4 -5799 5798 -1 -5898 5798 -1 -5799 5799 4 -5800 5799 -1 -5899 5799 -1 -5800 5800 4 -5900 5800 -1 -5801 5801 4 -5802 5801 -1 -5901 5801 -1 -5802 5802 4 -5803 5802 -1 -5902 5802 -1 -5803 5803 4 -5804 5803 -1 -5903 5803 -1 -5804 5804 4 -5805 5804 -1 -5904 5804 -1 -5805 5805 4 -5806 5805 -1 -5905 5805 -1 -5806 5806 4 -5807 5806 -1 -5906 5806 -1 -5807 5807 4 -5808 5807 -1 -5907 5807 -1 -5808 5808 4 -5809 5808 -1 -5908 5808 -1 -5809 5809 4 -5810 5809 -1 -5909 5809 -1 -5810 5810 4 -5811 5810 -1 -5910 5810 -1 -5811 5811 4 -5812 5811 -1 -5911 5811 -1 -5812 5812 4 -5813 5812 -1 -5912 5812 -1 -5813 5813 4 -5814 5813 -1 -5913 5813 -1 -5814 5814 4 -5815 5814 -1 -5914 5814 -1 -5815 5815 4 -5816 5815 -1 -5915 5815 -1 -5816 5816 4 -5817 5816 -1 -5916 5816 -1 -5817 5817 4 -5818 5817 -1 -5917 5817 -1 -5818 5818 4 -5819 5818 -1 -5918 5818 -1 -5819 5819 4 -5820 5819 -1 -5919 5819 -1 -5820 5820 4 -5821 5820 -1 -5920 5820 -1 -5821 5821 4 -5822 5821 -1 -5921 5821 -1 -5822 5822 4 -5823 5822 -1 -5922 5822 -1 -5823 5823 4 -5824 5823 -1 -5923 5823 -1 -5824 5824 4 -5825 5824 -1 -5924 5824 -1 -5825 5825 4 -5826 5825 -1 -5925 5825 -1 -5826 5826 4 -5827 5826 -1 -5926 5826 -1 -5827 5827 4 -5828 5827 -1 -5927 5827 -1 -5828 5828 4 -5829 5828 -1 -5928 5828 -1 -5829 5829 4 -5830 5829 -1 -5929 5829 -1 -5830 5830 4 -5831 5830 -1 -5930 5830 -1 -5831 5831 4 -5832 5831 -1 -5931 5831 -1 -5832 5832 4 -5833 5832 -1 -5932 5832 -1 -5833 5833 4 -5834 5833 -1 -5933 5833 -1 -5834 5834 4 -5835 5834 -1 -5934 5834 -1 -5835 5835 4 -5836 5835 -1 -5935 5835 -1 -5836 5836 4 -5837 5836 -1 -5936 5836 -1 -5837 5837 4 -5838 5837 -1 -5937 5837 -1 -5838 5838 4 -5839 5838 -1 -5938 5838 -1 -5839 5839 4 -5840 5839 -1 -5939 5839 -1 -5840 5840 4 -5841 5840 -1 -5940 5840 -1 -5841 5841 4 -5842 5841 -1 -5941 5841 -1 -5842 5842 4 -5843 5842 -1 -5942 5842 -1 -5843 5843 4 -5844 5843 -1 -5943 5843 -1 -5844 5844 4 -5845 5844 -1 -5944 5844 -1 -5845 5845 4 -5846 5845 -1 -5945 5845 -1 -5846 5846 4 -5847 5846 -1 -5946 5846 -1 -5847 5847 4 -5848 5847 -1 -5947 5847 -1 -5848 5848 4 -5849 5848 -1 -5948 5848 -1 -5849 5849 4 -5850 5849 -1 -5949 5849 -1 -5850 5850 4 -5851 5850 -1 -5950 5850 -1 -5851 5851 4 -5852 5851 -1 -5951 5851 -1 -5852 5852 4 -5853 5852 -1 -5952 5852 -1 -5853 5853 4 -5854 5853 -1 -5953 5853 -1 -5854 5854 4 -5855 5854 -1 -5954 5854 -1 -5855 5855 4 -5856 5855 -1 -5955 5855 -1 -5856 5856 4 -5857 5856 -1 -5956 5856 -1 -5857 5857 4 -5858 5857 -1 -5957 5857 -1 -5858 5858 4 -5859 5858 -1 -5958 5858 -1 -5859 5859 4 -5860 5859 -1 -5959 5859 -1 -5860 5860 4 -5861 5860 -1 -5960 5860 -1 -5861 5861 4 -5862 5861 -1 -5961 5861 -1 -5862 5862 4 -5863 5862 -1 -5962 5862 -1 -5863 5863 4 -5864 5863 -1 -5963 5863 -1 -5864 5864 4 -5865 5864 -1 -5964 5864 -1 -5865 5865 4 -5866 5865 -1 -5965 5865 -1 -5866 5866 4 -5867 5866 -1 -5966 5866 -1 -5867 5867 4 -5868 5867 -1 -5967 5867 -1 -5868 5868 4 -5869 5868 -1 -5968 5868 -1 -5869 5869 4 -5870 5869 -1 -5969 5869 -1 -5870 5870 4 -5871 5870 -1 -5970 5870 -1 -5871 5871 4 -5872 5871 -1 -5971 5871 -1 -5872 5872 4 -5873 5872 -1 -5972 5872 -1 -5873 5873 4 -5874 5873 -1 -5973 5873 -1 -5874 5874 4 -5875 5874 -1 -5974 5874 -1 -5875 5875 4 -5876 5875 -1 -5975 5875 -1 -5876 5876 4 -5877 5876 -1 -5976 5876 -1 -5877 5877 4 -5878 5877 -1 -5977 5877 -1 -5878 5878 4 -5879 5878 -1 -5978 5878 -1 -5879 5879 4 -5880 5879 -1 -5979 5879 -1 -5880 5880 4 -5881 5880 -1 -5980 5880 -1 -5881 5881 4 -5882 5881 -1 -5981 5881 -1 -5882 5882 4 -5883 5882 -1 -5982 5882 -1 -5883 5883 4 -5884 5883 -1 -5983 5883 -1 -5884 5884 4 -5885 5884 -1 -5984 5884 -1 -5885 5885 4 -5886 5885 -1 -5985 5885 -1 -5886 5886 4 -5887 5886 -1 -5986 5886 -1 -5887 5887 4 -5888 5887 -1 -5987 5887 -1 -5888 5888 4 -5889 5888 -1 -5988 5888 -1 -5889 5889 4 -5890 5889 -1 -5989 5889 -1 -5890 5890 4 -5891 5890 -1 -5990 5890 -1 -5891 5891 4 -5892 5891 -1 -5991 5891 -1 -5892 5892 4 -5893 5892 -1 -5992 5892 -1 -5893 5893 4 -5894 5893 -1 -5993 5893 -1 -5894 5894 4 -5895 5894 -1 -5994 5894 -1 -5895 5895 4 -5896 5895 -1 -5995 5895 -1 -5896 5896 4 -5897 5896 -1 -5996 5896 -1 -5897 5897 4 -5898 5897 -1 -5997 5897 -1 -5898 5898 4 -5899 5898 -1 -5998 5898 -1 -5899 5899 4 -5900 5899 -1 -5999 5899 -1 -5900 5900 4 -6000 5900 -1 -5901 5901 4 -5902 5901 -1 -6001 5901 -1 -5902 5902 4 -5903 5902 -1 -6002 5902 -1 -5903 5903 4 -5904 5903 -1 -6003 5903 -1 -5904 5904 4 -5905 5904 -1 -6004 5904 -1 -5905 5905 4 -5906 5905 -1 -6005 5905 -1 -5906 5906 4 -5907 5906 -1 -6006 5906 -1 -5907 5907 4 -5908 5907 -1 -6007 5907 -1 -5908 5908 4 -5909 5908 -1 -6008 5908 -1 -5909 5909 4 -5910 5909 -1 -6009 5909 -1 -5910 5910 4 -5911 5910 -1 -6010 5910 -1 -5911 5911 4 -5912 5911 -1 -6011 5911 -1 -5912 5912 4 -5913 5912 -1 -6012 5912 -1 -5913 5913 4 -5914 5913 -1 -6013 5913 -1 -5914 5914 4 -5915 5914 -1 -6014 5914 -1 -5915 5915 4 -5916 5915 -1 -6015 5915 -1 -5916 5916 4 -5917 5916 -1 -6016 5916 -1 -5917 5917 4 -5918 5917 -1 -6017 5917 -1 -5918 5918 4 -5919 5918 -1 -6018 5918 -1 -5919 5919 4 -5920 5919 -1 -6019 5919 -1 -5920 5920 4 -5921 5920 -1 -6020 5920 -1 -5921 5921 4 -5922 5921 -1 -6021 5921 -1 -5922 5922 4 -5923 5922 -1 -6022 5922 -1 -5923 5923 4 -5924 5923 -1 -6023 5923 -1 -5924 5924 4 -5925 5924 -1 -6024 5924 -1 -5925 5925 4 -5926 5925 -1 -6025 5925 -1 -5926 5926 4 -5927 5926 -1 -6026 5926 -1 -5927 5927 4 -5928 5927 -1 -6027 5927 -1 -5928 5928 4 -5929 5928 -1 -6028 5928 -1 -5929 5929 4 -5930 5929 -1 -6029 5929 -1 -5930 5930 4 -5931 5930 -1 -6030 5930 -1 -5931 5931 4 -5932 5931 -1 -6031 5931 -1 -5932 5932 4 -5933 5932 -1 -6032 5932 -1 -5933 5933 4 -5934 5933 -1 -6033 5933 -1 -5934 5934 4 -5935 5934 -1 -6034 5934 -1 -5935 5935 4 -5936 5935 -1 -6035 5935 -1 -5936 5936 4 -5937 5936 -1 -6036 5936 -1 -5937 5937 4 -5938 5937 -1 -6037 5937 -1 -5938 5938 4 -5939 5938 -1 -6038 5938 -1 -5939 5939 4 -5940 5939 -1 -6039 5939 -1 -5940 5940 4 -5941 5940 -1 -6040 5940 -1 -5941 5941 4 -5942 5941 -1 -6041 5941 -1 -5942 5942 4 -5943 5942 -1 -6042 5942 -1 -5943 5943 4 -5944 5943 -1 -6043 5943 -1 -5944 5944 4 -5945 5944 -1 -6044 5944 -1 -5945 5945 4 -5946 5945 -1 -6045 5945 -1 -5946 5946 4 -5947 5946 -1 -6046 5946 -1 -5947 5947 4 -5948 5947 -1 -6047 5947 -1 -5948 5948 4 -5949 5948 -1 -6048 5948 -1 -5949 5949 4 -5950 5949 -1 -6049 5949 -1 -5950 5950 4 -5951 5950 -1 -6050 5950 -1 -5951 5951 4 -5952 5951 -1 -6051 5951 -1 -5952 5952 4 -5953 5952 -1 -6052 5952 -1 -5953 5953 4 -5954 5953 -1 -6053 5953 -1 -5954 5954 4 -5955 5954 -1 -6054 5954 -1 -5955 5955 4 -5956 5955 -1 -6055 5955 -1 -5956 5956 4 -5957 5956 -1 -6056 5956 -1 -5957 5957 4 -5958 5957 -1 -6057 5957 -1 -5958 5958 4 -5959 5958 -1 -6058 5958 -1 -5959 5959 4 -5960 5959 -1 -6059 5959 -1 -5960 5960 4 -5961 5960 -1 -6060 5960 -1 -5961 5961 4 -5962 5961 -1 -6061 5961 -1 -5962 5962 4 -5963 5962 -1 -6062 5962 -1 -5963 5963 4 -5964 5963 -1 -6063 5963 -1 -5964 5964 4 -5965 5964 -1 -6064 5964 -1 -5965 5965 4 -5966 5965 -1 -6065 5965 -1 -5966 5966 4 -5967 5966 -1 -6066 5966 -1 -5967 5967 4 -5968 5967 -1 -6067 5967 -1 -5968 5968 4 -5969 5968 -1 -6068 5968 -1 -5969 5969 4 -5970 5969 -1 -6069 5969 -1 -5970 5970 4 -5971 5970 -1 -6070 5970 -1 -5971 5971 4 -5972 5971 -1 -6071 5971 -1 -5972 5972 4 -5973 5972 -1 -6072 5972 -1 -5973 5973 4 -5974 5973 -1 -6073 5973 -1 -5974 5974 4 -5975 5974 -1 -6074 5974 -1 -5975 5975 4 -5976 5975 -1 -6075 5975 -1 -5976 5976 4 -5977 5976 -1 -6076 5976 -1 -5977 5977 4 -5978 5977 -1 -6077 5977 -1 -5978 5978 4 -5979 5978 -1 -6078 5978 -1 -5979 5979 4 -5980 5979 -1 -6079 5979 -1 -5980 5980 4 -5981 5980 -1 -6080 5980 -1 -5981 5981 4 -5982 5981 -1 -6081 5981 -1 -5982 5982 4 -5983 5982 -1 -6082 5982 -1 -5983 5983 4 -5984 5983 -1 -6083 5983 -1 -5984 5984 4 -5985 5984 -1 -6084 5984 -1 -5985 5985 4 -5986 5985 -1 -6085 5985 -1 -5986 5986 4 -5987 5986 -1 -6086 5986 -1 -5987 5987 4 -5988 5987 -1 -6087 5987 -1 -5988 5988 4 -5989 5988 -1 -6088 5988 -1 -5989 5989 4 -5990 5989 -1 -6089 5989 -1 -5990 5990 4 -5991 5990 -1 -6090 5990 -1 -5991 5991 4 -5992 5991 -1 -6091 5991 -1 -5992 5992 4 -5993 5992 -1 -6092 5992 -1 -5993 5993 4 -5994 5993 -1 -6093 5993 -1 -5994 5994 4 -5995 5994 -1 -6094 5994 -1 -5995 5995 4 -5996 5995 -1 -6095 5995 -1 -5996 5996 4 -5997 5996 -1 -6096 5996 -1 -5997 5997 4 -5998 5997 -1 -6097 5997 -1 -5998 5998 4 -5999 5998 -1 -6098 5998 -1 -5999 5999 4 -6000 5999 -1 -6099 5999 -1 -6000 6000 4 -6100 6000 -1 -6001 6001 4 -6002 6001 -1 -6101 6001 -1 -6002 6002 4 -6003 6002 -1 -6102 6002 -1 -6003 6003 4 -6004 6003 -1 -6103 6003 -1 -6004 6004 4 -6005 6004 -1 -6104 6004 -1 -6005 6005 4 -6006 6005 -1 -6105 6005 -1 -6006 6006 4 -6007 6006 -1 -6106 6006 -1 -6007 6007 4 -6008 6007 -1 -6107 6007 -1 -6008 6008 4 -6009 6008 -1 -6108 6008 -1 -6009 6009 4 -6010 6009 -1 -6109 6009 -1 -6010 6010 4 -6011 6010 -1 -6110 6010 -1 -6011 6011 4 -6012 6011 -1 -6111 6011 -1 -6012 6012 4 -6013 6012 -1 -6112 6012 -1 -6013 6013 4 -6014 6013 -1 -6113 6013 -1 -6014 6014 4 -6015 6014 -1 -6114 6014 -1 -6015 6015 4 -6016 6015 -1 -6115 6015 -1 -6016 6016 4 -6017 6016 -1 -6116 6016 -1 -6017 6017 4 -6018 6017 -1 -6117 6017 -1 -6018 6018 4 -6019 6018 -1 -6118 6018 -1 -6019 6019 4 -6020 6019 -1 -6119 6019 -1 -6020 6020 4 -6021 6020 -1 -6120 6020 -1 -6021 6021 4 -6022 6021 -1 -6121 6021 -1 -6022 6022 4 -6023 6022 -1 -6122 6022 -1 -6023 6023 4 -6024 6023 -1 -6123 6023 -1 -6024 6024 4 -6025 6024 -1 -6124 6024 -1 -6025 6025 4 -6026 6025 -1 -6125 6025 -1 -6026 6026 4 -6027 6026 -1 -6126 6026 -1 -6027 6027 4 -6028 6027 -1 -6127 6027 -1 -6028 6028 4 -6029 6028 -1 -6128 6028 -1 -6029 6029 4 -6030 6029 -1 -6129 6029 -1 -6030 6030 4 -6031 6030 -1 -6130 6030 -1 -6031 6031 4 -6032 6031 -1 -6131 6031 -1 -6032 6032 4 -6033 6032 -1 -6132 6032 -1 -6033 6033 4 -6034 6033 -1 -6133 6033 -1 -6034 6034 4 -6035 6034 -1 -6134 6034 -1 -6035 6035 4 -6036 6035 -1 -6135 6035 -1 -6036 6036 4 -6037 6036 -1 -6136 6036 -1 -6037 6037 4 -6038 6037 -1 -6137 6037 -1 -6038 6038 4 -6039 6038 -1 -6138 6038 -1 -6039 6039 4 -6040 6039 -1 -6139 6039 -1 -6040 6040 4 -6041 6040 -1 -6140 6040 -1 -6041 6041 4 -6042 6041 -1 -6141 6041 -1 -6042 6042 4 -6043 6042 -1 -6142 6042 -1 -6043 6043 4 -6044 6043 -1 -6143 6043 -1 -6044 6044 4 -6045 6044 -1 -6144 6044 -1 -6045 6045 4 -6046 6045 -1 -6145 6045 -1 -6046 6046 4 -6047 6046 -1 -6146 6046 -1 -6047 6047 4 -6048 6047 -1 -6147 6047 -1 -6048 6048 4 -6049 6048 -1 -6148 6048 -1 -6049 6049 4 -6050 6049 -1 -6149 6049 -1 -6050 6050 4 -6051 6050 -1 -6150 6050 -1 -6051 6051 4 -6052 6051 -1 -6151 6051 -1 -6052 6052 4 -6053 6052 -1 -6152 6052 -1 -6053 6053 4 -6054 6053 -1 -6153 6053 -1 -6054 6054 4 -6055 6054 -1 -6154 6054 -1 -6055 6055 4 -6056 6055 -1 -6155 6055 -1 -6056 6056 4 -6057 6056 -1 -6156 6056 -1 -6057 6057 4 -6058 6057 -1 -6157 6057 -1 -6058 6058 4 -6059 6058 -1 -6158 6058 -1 -6059 6059 4 -6060 6059 -1 -6159 6059 -1 -6060 6060 4 -6061 6060 -1 -6160 6060 -1 -6061 6061 4 -6062 6061 -1 -6161 6061 -1 -6062 6062 4 -6063 6062 -1 -6162 6062 -1 -6063 6063 4 -6064 6063 -1 -6163 6063 -1 -6064 6064 4 -6065 6064 -1 -6164 6064 -1 -6065 6065 4 -6066 6065 -1 -6165 6065 -1 -6066 6066 4 -6067 6066 -1 -6166 6066 -1 -6067 6067 4 -6068 6067 -1 -6167 6067 -1 -6068 6068 4 -6069 6068 -1 -6168 6068 -1 -6069 6069 4 -6070 6069 -1 -6169 6069 -1 -6070 6070 4 -6071 6070 -1 -6170 6070 -1 -6071 6071 4 -6072 6071 -1 -6171 6071 -1 -6072 6072 4 -6073 6072 -1 -6172 6072 -1 -6073 6073 4 -6074 6073 -1 -6173 6073 -1 -6074 6074 4 -6075 6074 -1 -6174 6074 -1 -6075 6075 4 -6076 6075 -1 -6175 6075 -1 -6076 6076 4 -6077 6076 -1 -6176 6076 -1 -6077 6077 4 -6078 6077 -1 -6177 6077 -1 -6078 6078 4 -6079 6078 -1 -6178 6078 -1 -6079 6079 4 -6080 6079 -1 -6179 6079 -1 -6080 6080 4 -6081 6080 -1 -6180 6080 -1 -6081 6081 4 -6082 6081 -1 -6181 6081 -1 -6082 6082 4 -6083 6082 -1 -6182 6082 -1 -6083 6083 4 -6084 6083 -1 -6183 6083 -1 -6084 6084 4 -6085 6084 -1 -6184 6084 -1 -6085 6085 4 -6086 6085 -1 -6185 6085 -1 -6086 6086 4 -6087 6086 -1 -6186 6086 -1 -6087 6087 4 -6088 6087 -1 -6187 6087 -1 -6088 6088 4 -6089 6088 -1 -6188 6088 -1 -6089 6089 4 -6090 6089 -1 -6189 6089 -1 -6090 6090 4 -6091 6090 -1 -6190 6090 -1 -6091 6091 4 -6092 6091 -1 -6191 6091 -1 -6092 6092 4 -6093 6092 -1 -6192 6092 -1 -6093 6093 4 -6094 6093 -1 -6193 6093 -1 -6094 6094 4 -6095 6094 -1 -6194 6094 -1 -6095 6095 4 -6096 6095 -1 -6195 6095 -1 -6096 6096 4 -6097 6096 -1 -6196 6096 -1 -6097 6097 4 -6098 6097 -1 -6197 6097 -1 -6098 6098 4 -6099 6098 -1 -6198 6098 -1 -6099 6099 4 -6100 6099 -1 -6199 6099 -1 -6100 6100 4 -6200 6100 -1 -6101 6101 4 -6102 6101 -1 -6201 6101 -1 -6102 6102 4 -6103 6102 -1 -6202 6102 -1 -6103 6103 4 -6104 6103 -1 -6203 6103 -1 -6104 6104 4 -6105 6104 -1 -6204 6104 -1 -6105 6105 4 -6106 6105 -1 -6205 6105 -1 -6106 6106 4 -6107 6106 -1 -6206 6106 -1 -6107 6107 4 -6108 6107 -1 -6207 6107 -1 -6108 6108 4 -6109 6108 -1 -6208 6108 -1 -6109 6109 4 -6110 6109 -1 -6209 6109 -1 -6110 6110 4 -6111 6110 -1 -6210 6110 -1 -6111 6111 4 -6112 6111 -1 -6211 6111 -1 -6112 6112 4 -6113 6112 -1 -6212 6112 -1 -6113 6113 4 -6114 6113 -1 -6213 6113 -1 -6114 6114 4 -6115 6114 -1 -6214 6114 -1 -6115 6115 4 -6116 6115 -1 -6215 6115 -1 -6116 6116 4 -6117 6116 -1 -6216 6116 -1 -6117 6117 4 -6118 6117 -1 -6217 6117 -1 -6118 6118 4 -6119 6118 -1 -6218 6118 -1 -6119 6119 4 -6120 6119 -1 -6219 6119 -1 -6120 6120 4 -6121 6120 -1 -6220 6120 -1 -6121 6121 4 -6122 6121 -1 -6221 6121 -1 -6122 6122 4 -6123 6122 -1 -6222 6122 -1 -6123 6123 4 -6124 6123 -1 -6223 6123 -1 -6124 6124 4 -6125 6124 -1 -6224 6124 -1 -6125 6125 4 -6126 6125 -1 -6225 6125 -1 -6126 6126 4 -6127 6126 -1 -6226 6126 -1 -6127 6127 4 -6128 6127 -1 -6227 6127 -1 -6128 6128 4 -6129 6128 -1 -6228 6128 -1 -6129 6129 4 -6130 6129 -1 -6229 6129 -1 -6130 6130 4 -6131 6130 -1 -6230 6130 -1 -6131 6131 4 -6132 6131 -1 -6231 6131 -1 -6132 6132 4 -6133 6132 -1 -6232 6132 -1 -6133 6133 4 -6134 6133 -1 -6233 6133 -1 -6134 6134 4 -6135 6134 -1 -6234 6134 -1 -6135 6135 4 -6136 6135 -1 -6235 6135 -1 -6136 6136 4 -6137 6136 -1 -6236 6136 -1 -6137 6137 4 -6138 6137 -1 -6237 6137 -1 -6138 6138 4 -6139 6138 -1 -6238 6138 -1 -6139 6139 4 -6140 6139 -1 -6239 6139 -1 -6140 6140 4 -6141 6140 -1 -6240 6140 -1 -6141 6141 4 -6142 6141 -1 -6241 6141 -1 -6142 6142 4 -6143 6142 -1 -6242 6142 -1 -6143 6143 4 -6144 6143 -1 -6243 6143 -1 -6144 6144 4 -6145 6144 -1 -6244 6144 -1 -6145 6145 4 -6146 6145 -1 -6245 6145 -1 -6146 6146 4 -6147 6146 -1 -6246 6146 -1 -6147 6147 4 -6148 6147 -1 -6247 6147 -1 -6148 6148 4 -6149 6148 -1 -6248 6148 -1 -6149 6149 4 -6150 6149 -1 -6249 6149 -1 -6150 6150 4 -6151 6150 -1 -6250 6150 -1 -6151 6151 4 -6152 6151 -1 -6251 6151 -1 -6152 6152 4 -6153 6152 -1 -6252 6152 -1 -6153 6153 4 -6154 6153 -1 -6253 6153 -1 -6154 6154 4 -6155 6154 -1 -6254 6154 -1 -6155 6155 4 -6156 6155 -1 -6255 6155 -1 -6156 6156 4 -6157 6156 -1 -6256 6156 -1 -6157 6157 4 -6158 6157 -1 -6257 6157 -1 -6158 6158 4 -6159 6158 -1 -6258 6158 -1 -6159 6159 4 -6160 6159 -1 -6259 6159 -1 -6160 6160 4 -6161 6160 -1 -6260 6160 -1 -6161 6161 4 -6162 6161 -1 -6261 6161 -1 -6162 6162 4 -6163 6162 -1 -6262 6162 -1 -6163 6163 4 -6164 6163 -1 -6263 6163 -1 -6164 6164 4 -6165 6164 -1 -6264 6164 -1 -6165 6165 4 -6166 6165 -1 -6265 6165 -1 -6166 6166 4 -6167 6166 -1 -6266 6166 -1 -6167 6167 4 -6168 6167 -1 -6267 6167 -1 -6168 6168 4 -6169 6168 -1 -6268 6168 -1 -6169 6169 4 -6170 6169 -1 -6269 6169 -1 -6170 6170 4 -6171 6170 -1 -6270 6170 -1 -6171 6171 4 -6172 6171 -1 -6271 6171 -1 -6172 6172 4 -6173 6172 -1 -6272 6172 -1 -6173 6173 4 -6174 6173 -1 -6273 6173 -1 -6174 6174 4 -6175 6174 -1 -6274 6174 -1 -6175 6175 4 -6176 6175 -1 -6275 6175 -1 -6176 6176 4 -6177 6176 -1 -6276 6176 -1 -6177 6177 4 -6178 6177 -1 -6277 6177 -1 -6178 6178 4 -6179 6178 -1 -6278 6178 -1 -6179 6179 4 -6180 6179 -1 -6279 6179 -1 -6180 6180 4 -6181 6180 -1 -6280 6180 -1 -6181 6181 4 -6182 6181 -1 -6281 6181 -1 -6182 6182 4 -6183 6182 -1 -6282 6182 -1 -6183 6183 4 -6184 6183 -1 -6283 6183 -1 -6184 6184 4 -6185 6184 -1 -6284 6184 -1 -6185 6185 4 -6186 6185 -1 -6285 6185 -1 -6186 6186 4 -6187 6186 -1 -6286 6186 -1 -6187 6187 4 -6188 6187 -1 -6287 6187 -1 -6188 6188 4 -6189 6188 -1 -6288 6188 -1 -6189 6189 4 -6190 6189 -1 -6289 6189 -1 -6190 6190 4 -6191 6190 -1 -6290 6190 -1 -6191 6191 4 -6192 6191 -1 -6291 6191 -1 -6192 6192 4 -6193 6192 -1 -6292 6192 -1 -6193 6193 4 -6194 6193 -1 -6293 6193 -1 -6194 6194 4 -6195 6194 -1 -6294 6194 -1 -6195 6195 4 -6196 6195 -1 -6295 6195 -1 -6196 6196 4 -6197 6196 -1 -6296 6196 -1 -6197 6197 4 -6198 6197 -1 -6297 6197 -1 -6198 6198 4 -6199 6198 -1 -6298 6198 -1 -6199 6199 4 -6200 6199 -1 -6299 6199 -1 -6200 6200 4 -6300 6200 -1 -6201 6201 4 -6202 6201 -1 -6301 6201 -1 -6202 6202 4 -6203 6202 -1 -6302 6202 -1 -6203 6203 4 -6204 6203 -1 -6303 6203 -1 -6204 6204 4 -6205 6204 -1 -6304 6204 -1 -6205 6205 4 -6206 6205 -1 -6305 6205 -1 -6206 6206 4 -6207 6206 -1 -6306 6206 -1 -6207 6207 4 -6208 6207 -1 -6307 6207 -1 -6208 6208 4 -6209 6208 -1 -6308 6208 -1 -6209 6209 4 -6210 6209 -1 -6309 6209 -1 -6210 6210 4 -6211 6210 -1 -6310 6210 -1 -6211 6211 4 -6212 6211 -1 -6311 6211 -1 -6212 6212 4 -6213 6212 -1 -6312 6212 -1 -6213 6213 4 -6214 6213 -1 -6313 6213 -1 -6214 6214 4 -6215 6214 -1 -6314 6214 -1 -6215 6215 4 -6216 6215 -1 -6315 6215 -1 -6216 6216 4 -6217 6216 -1 -6316 6216 -1 -6217 6217 4 -6218 6217 -1 -6317 6217 -1 -6218 6218 4 -6219 6218 -1 -6318 6218 -1 -6219 6219 4 -6220 6219 -1 -6319 6219 -1 -6220 6220 4 -6221 6220 -1 -6320 6220 -1 -6221 6221 4 -6222 6221 -1 -6321 6221 -1 -6222 6222 4 -6223 6222 -1 -6322 6222 -1 -6223 6223 4 -6224 6223 -1 -6323 6223 -1 -6224 6224 4 -6225 6224 -1 -6324 6224 -1 -6225 6225 4 -6226 6225 -1 -6325 6225 -1 -6226 6226 4 -6227 6226 -1 -6326 6226 -1 -6227 6227 4 -6228 6227 -1 -6327 6227 -1 -6228 6228 4 -6229 6228 -1 -6328 6228 -1 -6229 6229 4 -6230 6229 -1 -6329 6229 -1 -6230 6230 4 -6231 6230 -1 -6330 6230 -1 -6231 6231 4 -6232 6231 -1 -6331 6231 -1 -6232 6232 4 -6233 6232 -1 -6332 6232 -1 -6233 6233 4 -6234 6233 -1 -6333 6233 -1 -6234 6234 4 -6235 6234 -1 -6334 6234 -1 -6235 6235 4 -6236 6235 -1 -6335 6235 -1 -6236 6236 4 -6237 6236 -1 -6336 6236 -1 -6237 6237 4 -6238 6237 -1 -6337 6237 -1 -6238 6238 4 -6239 6238 -1 -6338 6238 -1 -6239 6239 4 -6240 6239 -1 -6339 6239 -1 -6240 6240 4 -6241 6240 -1 -6340 6240 -1 -6241 6241 4 -6242 6241 -1 -6341 6241 -1 -6242 6242 4 -6243 6242 -1 -6342 6242 -1 -6243 6243 4 -6244 6243 -1 -6343 6243 -1 -6244 6244 4 -6245 6244 -1 -6344 6244 -1 -6245 6245 4 -6246 6245 -1 -6345 6245 -1 -6246 6246 4 -6247 6246 -1 -6346 6246 -1 -6247 6247 4 -6248 6247 -1 -6347 6247 -1 -6248 6248 4 -6249 6248 -1 -6348 6248 -1 -6249 6249 4 -6250 6249 -1 -6349 6249 -1 -6250 6250 4 -6251 6250 -1 -6350 6250 -1 -6251 6251 4 -6252 6251 -1 -6351 6251 -1 -6252 6252 4 -6253 6252 -1 -6352 6252 -1 -6253 6253 4 -6254 6253 -1 -6353 6253 -1 -6254 6254 4 -6255 6254 -1 -6354 6254 -1 -6255 6255 4 -6256 6255 -1 -6355 6255 -1 -6256 6256 4 -6257 6256 -1 -6356 6256 -1 -6257 6257 4 -6258 6257 -1 -6357 6257 -1 -6258 6258 4 -6259 6258 -1 -6358 6258 -1 -6259 6259 4 -6260 6259 -1 -6359 6259 -1 -6260 6260 4 -6261 6260 -1 -6360 6260 -1 -6261 6261 4 -6262 6261 -1 -6361 6261 -1 -6262 6262 4 -6263 6262 -1 -6362 6262 -1 -6263 6263 4 -6264 6263 -1 -6363 6263 -1 -6264 6264 4 -6265 6264 -1 -6364 6264 -1 -6265 6265 4 -6266 6265 -1 -6365 6265 -1 -6266 6266 4 -6267 6266 -1 -6366 6266 -1 -6267 6267 4 -6268 6267 -1 -6367 6267 -1 -6268 6268 4 -6269 6268 -1 -6368 6268 -1 -6269 6269 4 -6270 6269 -1 -6369 6269 -1 -6270 6270 4 -6271 6270 -1 -6370 6270 -1 -6271 6271 4 -6272 6271 -1 -6371 6271 -1 -6272 6272 4 -6273 6272 -1 -6372 6272 -1 -6273 6273 4 -6274 6273 -1 -6373 6273 -1 -6274 6274 4 -6275 6274 -1 -6374 6274 -1 -6275 6275 4 -6276 6275 -1 -6375 6275 -1 -6276 6276 4 -6277 6276 -1 -6376 6276 -1 -6277 6277 4 -6278 6277 -1 -6377 6277 -1 -6278 6278 4 -6279 6278 -1 -6378 6278 -1 -6279 6279 4 -6280 6279 -1 -6379 6279 -1 -6280 6280 4 -6281 6280 -1 -6380 6280 -1 -6281 6281 4 -6282 6281 -1 -6381 6281 -1 -6282 6282 4 -6283 6282 -1 -6382 6282 -1 -6283 6283 4 -6284 6283 -1 -6383 6283 -1 -6284 6284 4 -6285 6284 -1 -6384 6284 -1 -6285 6285 4 -6286 6285 -1 -6385 6285 -1 -6286 6286 4 -6287 6286 -1 -6386 6286 -1 -6287 6287 4 -6288 6287 -1 -6387 6287 -1 -6288 6288 4 -6289 6288 -1 -6388 6288 -1 -6289 6289 4 -6290 6289 -1 -6389 6289 -1 -6290 6290 4 -6291 6290 -1 -6390 6290 -1 -6291 6291 4 -6292 6291 -1 -6391 6291 -1 -6292 6292 4 -6293 6292 -1 -6392 6292 -1 -6293 6293 4 -6294 6293 -1 -6393 6293 -1 -6294 6294 4 -6295 6294 -1 -6394 6294 -1 -6295 6295 4 -6296 6295 -1 -6395 6295 -1 -6296 6296 4 -6297 6296 -1 -6396 6296 -1 -6297 6297 4 -6298 6297 -1 -6397 6297 -1 -6298 6298 4 -6299 6298 -1 -6398 6298 -1 -6299 6299 4 -6300 6299 -1 -6399 6299 -1 -6300 6300 4 -6400 6300 -1 -6301 6301 4 -6302 6301 -1 -6401 6301 -1 -6302 6302 4 -6303 6302 -1 -6402 6302 -1 -6303 6303 4 -6304 6303 -1 -6403 6303 -1 -6304 6304 4 -6305 6304 -1 -6404 6304 -1 -6305 6305 4 -6306 6305 -1 -6405 6305 -1 -6306 6306 4 -6307 6306 -1 -6406 6306 -1 -6307 6307 4 -6308 6307 -1 -6407 6307 -1 -6308 6308 4 -6309 6308 -1 -6408 6308 -1 -6309 6309 4 -6310 6309 -1 -6409 6309 -1 -6310 6310 4 -6311 6310 -1 -6410 6310 -1 -6311 6311 4 -6312 6311 -1 -6411 6311 -1 -6312 6312 4 -6313 6312 -1 -6412 6312 -1 -6313 6313 4 -6314 6313 -1 -6413 6313 -1 -6314 6314 4 -6315 6314 -1 -6414 6314 -1 -6315 6315 4 -6316 6315 -1 -6415 6315 -1 -6316 6316 4 -6317 6316 -1 -6416 6316 -1 -6317 6317 4 -6318 6317 -1 -6417 6317 -1 -6318 6318 4 -6319 6318 -1 -6418 6318 -1 -6319 6319 4 -6320 6319 -1 -6419 6319 -1 -6320 6320 4 -6321 6320 -1 -6420 6320 -1 -6321 6321 4 -6322 6321 -1 -6421 6321 -1 -6322 6322 4 -6323 6322 -1 -6422 6322 -1 -6323 6323 4 -6324 6323 -1 -6423 6323 -1 -6324 6324 4 -6325 6324 -1 -6424 6324 -1 -6325 6325 4 -6326 6325 -1 -6425 6325 -1 -6326 6326 4 -6327 6326 -1 -6426 6326 -1 -6327 6327 4 -6328 6327 -1 -6427 6327 -1 -6328 6328 4 -6329 6328 -1 -6428 6328 -1 -6329 6329 4 -6330 6329 -1 -6429 6329 -1 -6330 6330 4 -6331 6330 -1 -6430 6330 -1 -6331 6331 4 -6332 6331 -1 -6431 6331 -1 -6332 6332 4 -6333 6332 -1 -6432 6332 -1 -6333 6333 4 -6334 6333 -1 -6433 6333 -1 -6334 6334 4 -6335 6334 -1 -6434 6334 -1 -6335 6335 4 -6336 6335 -1 -6435 6335 -1 -6336 6336 4 -6337 6336 -1 -6436 6336 -1 -6337 6337 4 -6338 6337 -1 -6437 6337 -1 -6338 6338 4 -6339 6338 -1 -6438 6338 -1 -6339 6339 4 -6340 6339 -1 -6439 6339 -1 -6340 6340 4 -6341 6340 -1 -6440 6340 -1 -6341 6341 4 -6342 6341 -1 -6441 6341 -1 -6342 6342 4 -6343 6342 -1 -6442 6342 -1 -6343 6343 4 -6344 6343 -1 -6443 6343 -1 -6344 6344 4 -6345 6344 -1 -6444 6344 -1 -6345 6345 4 -6346 6345 -1 -6445 6345 -1 -6346 6346 4 -6347 6346 -1 -6446 6346 -1 -6347 6347 4 -6348 6347 -1 -6447 6347 -1 -6348 6348 4 -6349 6348 -1 -6448 6348 -1 -6349 6349 4 -6350 6349 -1 -6449 6349 -1 -6350 6350 4 -6351 6350 -1 -6450 6350 -1 -6351 6351 4 -6352 6351 -1 -6451 6351 -1 -6352 6352 4 -6353 6352 -1 -6452 6352 -1 -6353 6353 4 -6354 6353 -1 -6453 6353 -1 -6354 6354 4 -6355 6354 -1 -6454 6354 -1 -6355 6355 4 -6356 6355 -1 -6455 6355 -1 -6356 6356 4 -6357 6356 -1 -6456 6356 -1 -6357 6357 4 -6358 6357 -1 -6457 6357 -1 -6358 6358 4 -6359 6358 -1 -6458 6358 -1 -6359 6359 4 -6360 6359 -1 -6459 6359 -1 -6360 6360 4 -6361 6360 -1 -6460 6360 -1 -6361 6361 4 -6362 6361 -1 -6461 6361 -1 -6362 6362 4 -6363 6362 -1 -6462 6362 -1 -6363 6363 4 -6364 6363 -1 -6463 6363 -1 -6364 6364 4 -6365 6364 -1 -6464 6364 -1 -6365 6365 4 -6366 6365 -1 -6465 6365 -1 -6366 6366 4 -6367 6366 -1 -6466 6366 -1 -6367 6367 4 -6368 6367 -1 -6467 6367 -1 -6368 6368 4 -6369 6368 -1 -6468 6368 -1 -6369 6369 4 -6370 6369 -1 -6469 6369 -1 -6370 6370 4 -6371 6370 -1 -6470 6370 -1 -6371 6371 4 -6372 6371 -1 -6471 6371 -1 -6372 6372 4 -6373 6372 -1 -6472 6372 -1 -6373 6373 4 -6374 6373 -1 -6473 6373 -1 -6374 6374 4 -6375 6374 -1 -6474 6374 -1 -6375 6375 4 -6376 6375 -1 -6475 6375 -1 -6376 6376 4 -6377 6376 -1 -6476 6376 -1 -6377 6377 4 -6378 6377 -1 -6477 6377 -1 -6378 6378 4 -6379 6378 -1 -6478 6378 -1 -6379 6379 4 -6380 6379 -1 -6479 6379 -1 -6380 6380 4 -6381 6380 -1 -6480 6380 -1 -6381 6381 4 -6382 6381 -1 -6481 6381 -1 -6382 6382 4 -6383 6382 -1 -6482 6382 -1 -6383 6383 4 -6384 6383 -1 -6483 6383 -1 -6384 6384 4 -6385 6384 -1 -6484 6384 -1 -6385 6385 4 -6386 6385 -1 -6485 6385 -1 -6386 6386 4 -6387 6386 -1 -6486 6386 -1 -6387 6387 4 -6388 6387 -1 -6487 6387 -1 -6388 6388 4 -6389 6388 -1 -6488 6388 -1 -6389 6389 4 -6390 6389 -1 -6489 6389 -1 -6390 6390 4 -6391 6390 -1 -6490 6390 -1 -6391 6391 4 -6392 6391 -1 -6491 6391 -1 -6392 6392 4 -6393 6392 -1 -6492 6392 -1 -6393 6393 4 -6394 6393 -1 -6493 6393 -1 -6394 6394 4 -6395 6394 -1 -6494 6394 -1 -6395 6395 4 -6396 6395 -1 -6495 6395 -1 -6396 6396 4 -6397 6396 -1 -6496 6396 -1 -6397 6397 4 -6398 6397 -1 -6497 6397 -1 -6398 6398 4 -6399 6398 -1 -6498 6398 -1 -6399 6399 4 -6400 6399 -1 -6499 6399 -1 -6400 6400 4 -6500 6400 -1 -6401 6401 4 -6402 6401 -1 -6501 6401 -1 -6402 6402 4 -6403 6402 -1 -6502 6402 -1 -6403 6403 4 -6404 6403 -1 -6503 6403 -1 -6404 6404 4 -6405 6404 -1 -6504 6404 -1 -6405 6405 4 -6406 6405 -1 -6505 6405 -1 -6406 6406 4 -6407 6406 -1 -6506 6406 -1 -6407 6407 4 -6408 6407 -1 -6507 6407 -1 -6408 6408 4 -6409 6408 -1 -6508 6408 -1 -6409 6409 4 -6410 6409 -1 -6509 6409 -1 -6410 6410 4 -6411 6410 -1 -6510 6410 -1 -6411 6411 4 -6412 6411 -1 -6511 6411 -1 -6412 6412 4 -6413 6412 -1 -6512 6412 -1 -6413 6413 4 -6414 6413 -1 -6513 6413 -1 -6414 6414 4 -6415 6414 -1 -6514 6414 -1 -6415 6415 4 -6416 6415 -1 -6515 6415 -1 -6416 6416 4 -6417 6416 -1 -6516 6416 -1 -6417 6417 4 -6418 6417 -1 -6517 6417 -1 -6418 6418 4 -6419 6418 -1 -6518 6418 -1 -6419 6419 4 -6420 6419 -1 -6519 6419 -1 -6420 6420 4 -6421 6420 -1 -6520 6420 -1 -6421 6421 4 -6422 6421 -1 -6521 6421 -1 -6422 6422 4 -6423 6422 -1 -6522 6422 -1 -6423 6423 4 -6424 6423 -1 -6523 6423 -1 -6424 6424 4 -6425 6424 -1 -6524 6424 -1 -6425 6425 4 -6426 6425 -1 -6525 6425 -1 -6426 6426 4 -6427 6426 -1 -6526 6426 -1 -6427 6427 4 -6428 6427 -1 -6527 6427 -1 -6428 6428 4 -6429 6428 -1 -6528 6428 -1 -6429 6429 4 -6430 6429 -1 -6529 6429 -1 -6430 6430 4 -6431 6430 -1 -6530 6430 -1 -6431 6431 4 -6432 6431 -1 -6531 6431 -1 -6432 6432 4 -6433 6432 -1 -6532 6432 -1 -6433 6433 4 -6434 6433 -1 -6533 6433 -1 -6434 6434 4 -6435 6434 -1 -6534 6434 -1 -6435 6435 4 -6436 6435 -1 -6535 6435 -1 -6436 6436 4 -6437 6436 -1 -6536 6436 -1 -6437 6437 4 -6438 6437 -1 -6537 6437 -1 -6438 6438 4 -6439 6438 -1 -6538 6438 -1 -6439 6439 4 -6440 6439 -1 -6539 6439 -1 -6440 6440 4 -6441 6440 -1 -6540 6440 -1 -6441 6441 4 -6442 6441 -1 -6541 6441 -1 -6442 6442 4 -6443 6442 -1 -6542 6442 -1 -6443 6443 4 -6444 6443 -1 -6543 6443 -1 -6444 6444 4 -6445 6444 -1 -6544 6444 -1 -6445 6445 4 -6446 6445 -1 -6545 6445 -1 -6446 6446 4 -6447 6446 -1 -6546 6446 -1 -6447 6447 4 -6448 6447 -1 -6547 6447 -1 -6448 6448 4 -6449 6448 -1 -6548 6448 -1 -6449 6449 4 -6450 6449 -1 -6549 6449 -1 -6450 6450 4 -6451 6450 -1 -6550 6450 -1 -6451 6451 4 -6452 6451 -1 -6551 6451 -1 -6452 6452 4 -6453 6452 -1 -6552 6452 -1 -6453 6453 4 -6454 6453 -1 -6553 6453 -1 -6454 6454 4 -6455 6454 -1 -6554 6454 -1 -6455 6455 4 -6456 6455 -1 -6555 6455 -1 -6456 6456 4 -6457 6456 -1 -6556 6456 -1 -6457 6457 4 -6458 6457 -1 -6557 6457 -1 -6458 6458 4 -6459 6458 -1 -6558 6458 -1 -6459 6459 4 -6460 6459 -1 -6559 6459 -1 -6460 6460 4 -6461 6460 -1 -6560 6460 -1 -6461 6461 4 -6462 6461 -1 -6561 6461 -1 -6462 6462 4 -6463 6462 -1 -6562 6462 -1 -6463 6463 4 -6464 6463 -1 -6563 6463 -1 -6464 6464 4 -6465 6464 -1 -6564 6464 -1 -6465 6465 4 -6466 6465 -1 -6565 6465 -1 -6466 6466 4 -6467 6466 -1 -6566 6466 -1 -6467 6467 4 -6468 6467 -1 -6567 6467 -1 -6468 6468 4 -6469 6468 -1 -6568 6468 -1 -6469 6469 4 -6470 6469 -1 -6569 6469 -1 -6470 6470 4 -6471 6470 -1 -6570 6470 -1 -6471 6471 4 -6472 6471 -1 -6571 6471 -1 -6472 6472 4 -6473 6472 -1 -6572 6472 -1 -6473 6473 4 -6474 6473 -1 -6573 6473 -1 -6474 6474 4 -6475 6474 -1 -6574 6474 -1 -6475 6475 4 -6476 6475 -1 -6575 6475 -1 -6476 6476 4 -6477 6476 -1 -6576 6476 -1 -6477 6477 4 -6478 6477 -1 -6577 6477 -1 -6478 6478 4 -6479 6478 -1 -6578 6478 -1 -6479 6479 4 -6480 6479 -1 -6579 6479 -1 -6480 6480 4 -6481 6480 -1 -6580 6480 -1 -6481 6481 4 -6482 6481 -1 -6581 6481 -1 -6482 6482 4 -6483 6482 -1 -6582 6482 -1 -6483 6483 4 -6484 6483 -1 -6583 6483 -1 -6484 6484 4 -6485 6484 -1 -6584 6484 -1 -6485 6485 4 -6486 6485 -1 -6585 6485 -1 -6486 6486 4 -6487 6486 -1 -6586 6486 -1 -6487 6487 4 -6488 6487 -1 -6587 6487 -1 -6488 6488 4 -6489 6488 -1 -6588 6488 -1 -6489 6489 4 -6490 6489 -1 -6589 6489 -1 -6490 6490 4 -6491 6490 -1 -6590 6490 -1 -6491 6491 4 -6492 6491 -1 -6591 6491 -1 -6492 6492 4 -6493 6492 -1 -6592 6492 -1 -6493 6493 4 -6494 6493 -1 -6593 6493 -1 -6494 6494 4 -6495 6494 -1 -6594 6494 -1 -6495 6495 4 -6496 6495 -1 -6595 6495 -1 -6496 6496 4 -6497 6496 -1 -6596 6496 -1 -6497 6497 4 -6498 6497 -1 -6597 6497 -1 -6498 6498 4 -6499 6498 -1 -6598 6498 -1 -6499 6499 4 -6500 6499 -1 -6599 6499 -1 -6500 6500 4 -6600 6500 -1 -6501 6501 4 -6502 6501 -1 -6601 6501 -1 -6502 6502 4 -6503 6502 -1 -6602 6502 -1 -6503 6503 4 -6504 6503 -1 -6603 6503 -1 -6504 6504 4 -6505 6504 -1 -6604 6504 -1 -6505 6505 4 -6506 6505 -1 -6605 6505 -1 -6506 6506 4 -6507 6506 -1 -6606 6506 -1 -6507 6507 4 -6508 6507 -1 -6607 6507 -1 -6508 6508 4 -6509 6508 -1 -6608 6508 -1 -6509 6509 4 -6510 6509 -1 -6609 6509 -1 -6510 6510 4 -6511 6510 -1 -6610 6510 -1 -6511 6511 4 -6512 6511 -1 -6611 6511 -1 -6512 6512 4 -6513 6512 -1 -6612 6512 -1 -6513 6513 4 -6514 6513 -1 -6613 6513 -1 -6514 6514 4 -6515 6514 -1 -6614 6514 -1 -6515 6515 4 -6516 6515 -1 -6615 6515 -1 -6516 6516 4 -6517 6516 -1 -6616 6516 -1 -6517 6517 4 -6518 6517 -1 -6617 6517 -1 -6518 6518 4 -6519 6518 -1 -6618 6518 -1 -6519 6519 4 -6520 6519 -1 -6619 6519 -1 -6520 6520 4 -6521 6520 -1 -6620 6520 -1 -6521 6521 4 -6522 6521 -1 -6621 6521 -1 -6522 6522 4 -6523 6522 -1 -6622 6522 -1 -6523 6523 4 -6524 6523 -1 -6623 6523 -1 -6524 6524 4 -6525 6524 -1 -6624 6524 -1 -6525 6525 4 -6526 6525 -1 -6625 6525 -1 -6526 6526 4 -6527 6526 -1 -6626 6526 -1 -6527 6527 4 -6528 6527 -1 -6627 6527 -1 -6528 6528 4 -6529 6528 -1 -6628 6528 -1 -6529 6529 4 -6530 6529 -1 -6629 6529 -1 -6530 6530 4 -6531 6530 -1 -6630 6530 -1 -6531 6531 4 -6532 6531 -1 -6631 6531 -1 -6532 6532 4 -6533 6532 -1 -6632 6532 -1 -6533 6533 4 -6534 6533 -1 -6633 6533 -1 -6534 6534 4 -6535 6534 -1 -6634 6534 -1 -6535 6535 4 -6536 6535 -1 -6635 6535 -1 -6536 6536 4 -6537 6536 -1 -6636 6536 -1 -6537 6537 4 -6538 6537 -1 -6637 6537 -1 -6538 6538 4 -6539 6538 -1 -6638 6538 -1 -6539 6539 4 -6540 6539 -1 -6639 6539 -1 -6540 6540 4 -6541 6540 -1 -6640 6540 -1 -6541 6541 4 -6542 6541 -1 -6641 6541 -1 -6542 6542 4 -6543 6542 -1 -6642 6542 -1 -6543 6543 4 -6544 6543 -1 -6643 6543 -1 -6544 6544 4 -6545 6544 -1 -6644 6544 -1 -6545 6545 4 -6546 6545 -1 -6645 6545 -1 -6546 6546 4 -6547 6546 -1 -6646 6546 -1 -6547 6547 4 -6548 6547 -1 -6647 6547 -1 -6548 6548 4 -6549 6548 -1 -6648 6548 -1 -6549 6549 4 -6550 6549 -1 -6649 6549 -1 -6550 6550 4 -6551 6550 -1 -6650 6550 -1 -6551 6551 4 -6552 6551 -1 -6651 6551 -1 -6552 6552 4 -6553 6552 -1 -6652 6552 -1 -6553 6553 4 -6554 6553 -1 -6653 6553 -1 -6554 6554 4 -6555 6554 -1 -6654 6554 -1 -6555 6555 4 -6556 6555 -1 -6655 6555 -1 -6556 6556 4 -6557 6556 -1 -6656 6556 -1 -6557 6557 4 -6558 6557 -1 -6657 6557 -1 -6558 6558 4 -6559 6558 -1 -6658 6558 -1 -6559 6559 4 -6560 6559 -1 -6659 6559 -1 -6560 6560 4 -6561 6560 -1 -6660 6560 -1 -6561 6561 4 -6562 6561 -1 -6661 6561 -1 -6562 6562 4 -6563 6562 -1 -6662 6562 -1 -6563 6563 4 -6564 6563 -1 -6663 6563 -1 -6564 6564 4 -6565 6564 -1 -6664 6564 -1 -6565 6565 4 -6566 6565 -1 -6665 6565 -1 -6566 6566 4 -6567 6566 -1 -6666 6566 -1 -6567 6567 4 -6568 6567 -1 -6667 6567 -1 -6568 6568 4 -6569 6568 -1 -6668 6568 -1 -6569 6569 4 -6570 6569 -1 -6669 6569 -1 -6570 6570 4 -6571 6570 -1 -6670 6570 -1 -6571 6571 4 -6572 6571 -1 -6671 6571 -1 -6572 6572 4 -6573 6572 -1 -6672 6572 -1 -6573 6573 4 -6574 6573 -1 -6673 6573 -1 -6574 6574 4 -6575 6574 -1 -6674 6574 -1 -6575 6575 4 -6576 6575 -1 -6675 6575 -1 -6576 6576 4 -6577 6576 -1 -6676 6576 -1 -6577 6577 4 -6578 6577 -1 -6677 6577 -1 -6578 6578 4 -6579 6578 -1 -6678 6578 -1 -6579 6579 4 -6580 6579 -1 -6679 6579 -1 -6580 6580 4 -6581 6580 -1 -6680 6580 -1 -6581 6581 4 -6582 6581 -1 -6681 6581 -1 -6582 6582 4 -6583 6582 -1 -6682 6582 -1 -6583 6583 4 -6584 6583 -1 -6683 6583 -1 -6584 6584 4 -6585 6584 -1 -6684 6584 -1 -6585 6585 4 -6586 6585 -1 -6685 6585 -1 -6586 6586 4 -6587 6586 -1 -6686 6586 -1 -6587 6587 4 -6588 6587 -1 -6687 6587 -1 -6588 6588 4 -6589 6588 -1 -6688 6588 -1 -6589 6589 4 -6590 6589 -1 -6689 6589 -1 -6590 6590 4 -6591 6590 -1 -6690 6590 -1 -6591 6591 4 -6592 6591 -1 -6691 6591 -1 -6592 6592 4 -6593 6592 -1 -6692 6592 -1 -6593 6593 4 -6594 6593 -1 -6693 6593 -1 -6594 6594 4 -6595 6594 -1 -6694 6594 -1 -6595 6595 4 -6596 6595 -1 -6695 6595 -1 -6596 6596 4 -6597 6596 -1 -6696 6596 -1 -6597 6597 4 -6598 6597 -1 -6697 6597 -1 -6598 6598 4 -6599 6598 -1 -6698 6598 -1 -6599 6599 4 -6600 6599 -1 -6699 6599 -1 -6600 6600 4 -6700 6600 -1 -6601 6601 4 -6602 6601 -1 -6701 6601 -1 -6602 6602 4 -6603 6602 -1 -6702 6602 -1 -6603 6603 4 -6604 6603 -1 -6703 6603 -1 -6604 6604 4 -6605 6604 -1 -6704 6604 -1 -6605 6605 4 -6606 6605 -1 -6705 6605 -1 -6606 6606 4 -6607 6606 -1 -6706 6606 -1 -6607 6607 4 -6608 6607 -1 -6707 6607 -1 -6608 6608 4 -6609 6608 -1 -6708 6608 -1 -6609 6609 4 -6610 6609 -1 -6709 6609 -1 -6610 6610 4 -6611 6610 -1 -6710 6610 -1 -6611 6611 4 -6612 6611 -1 -6711 6611 -1 -6612 6612 4 -6613 6612 -1 -6712 6612 -1 -6613 6613 4 -6614 6613 -1 -6713 6613 -1 -6614 6614 4 -6615 6614 -1 -6714 6614 -1 -6615 6615 4 -6616 6615 -1 -6715 6615 -1 -6616 6616 4 -6617 6616 -1 -6716 6616 -1 -6617 6617 4 -6618 6617 -1 -6717 6617 -1 -6618 6618 4 -6619 6618 -1 -6718 6618 -1 -6619 6619 4 -6620 6619 -1 -6719 6619 -1 -6620 6620 4 -6621 6620 -1 -6720 6620 -1 -6621 6621 4 -6622 6621 -1 -6721 6621 -1 -6622 6622 4 -6623 6622 -1 -6722 6622 -1 -6623 6623 4 -6624 6623 -1 -6723 6623 -1 -6624 6624 4 -6625 6624 -1 -6724 6624 -1 -6625 6625 4 -6626 6625 -1 -6725 6625 -1 -6626 6626 4 -6627 6626 -1 -6726 6626 -1 -6627 6627 4 -6628 6627 -1 -6727 6627 -1 -6628 6628 4 -6629 6628 -1 -6728 6628 -1 -6629 6629 4 -6630 6629 -1 -6729 6629 -1 -6630 6630 4 -6631 6630 -1 -6730 6630 -1 -6631 6631 4 -6632 6631 -1 -6731 6631 -1 -6632 6632 4 -6633 6632 -1 -6732 6632 -1 -6633 6633 4 -6634 6633 -1 -6733 6633 -1 -6634 6634 4 -6635 6634 -1 -6734 6634 -1 -6635 6635 4 -6636 6635 -1 -6735 6635 -1 -6636 6636 4 -6637 6636 -1 -6736 6636 -1 -6637 6637 4 -6638 6637 -1 -6737 6637 -1 -6638 6638 4 -6639 6638 -1 -6738 6638 -1 -6639 6639 4 -6640 6639 -1 -6739 6639 -1 -6640 6640 4 -6641 6640 -1 -6740 6640 -1 -6641 6641 4 -6642 6641 -1 -6741 6641 -1 -6642 6642 4 -6643 6642 -1 -6742 6642 -1 -6643 6643 4 -6644 6643 -1 -6743 6643 -1 -6644 6644 4 -6645 6644 -1 -6744 6644 -1 -6645 6645 4 -6646 6645 -1 -6745 6645 -1 -6646 6646 4 -6647 6646 -1 -6746 6646 -1 -6647 6647 4 -6648 6647 -1 -6747 6647 -1 -6648 6648 4 -6649 6648 -1 -6748 6648 -1 -6649 6649 4 -6650 6649 -1 -6749 6649 -1 -6650 6650 4 -6651 6650 -1 -6750 6650 -1 -6651 6651 4 -6652 6651 -1 -6751 6651 -1 -6652 6652 4 -6653 6652 -1 -6752 6652 -1 -6653 6653 4 -6654 6653 -1 -6753 6653 -1 -6654 6654 4 -6655 6654 -1 -6754 6654 -1 -6655 6655 4 -6656 6655 -1 -6755 6655 -1 -6656 6656 4 -6657 6656 -1 -6756 6656 -1 -6657 6657 4 -6658 6657 -1 -6757 6657 -1 -6658 6658 4 -6659 6658 -1 -6758 6658 -1 -6659 6659 4 -6660 6659 -1 -6759 6659 -1 -6660 6660 4 -6661 6660 -1 -6760 6660 -1 -6661 6661 4 -6662 6661 -1 -6761 6661 -1 -6662 6662 4 -6663 6662 -1 -6762 6662 -1 -6663 6663 4 -6664 6663 -1 -6763 6663 -1 -6664 6664 4 -6665 6664 -1 -6764 6664 -1 -6665 6665 4 -6666 6665 -1 -6765 6665 -1 -6666 6666 4 -6667 6666 -1 -6766 6666 -1 -6667 6667 4 -6668 6667 -1 -6767 6667 -1 -6668 6668 4 -6669 6668 -1 -6768 6668 -1 -6669 6669 4 -6670 6669 -1 -6769 6669 -1 -6670 6670 4 -6671 6670 -1 -6770 6670 -1 -6671 6671 4 -6672 6671 -1 -6771 6671 -1 -6672 6672 4 -6673 6672 -1 -6772 6672 -1 -6673 6673 4 -6674 6673 -1 -6773 6673 -1 -6674 6674 4 -6675 6674 -1 -6774 6674 -1 -6675 6675 4 -6676 6675 -1 -6775 6675 -1 -6676 6676 4 -6677 6676 -1 -6776 6676 -1 -6677 6677 4 -6678 6677 -1 -6777 6677 -1 -6678 6678 4 -6679 6678 -1 -6778 6678 -1 -6679 6679 4 -6680 6679 -1 -6779 6679 -1 -6680 6680 4 -6681 6680 -1 -6780 6680 -1 -6681 6681 4 -6682 6681 -1 -6781 6681 -1 -6682 6682 4 -6683 6682 -1 -6782 6682 -1 -6683 6683 4 -6684 6683 -1 -6783 6683 -1 -6684 6684 4 -6685 6684 -1 -6784 6684 -1 -6685 6685 4 -6686 6685 -1 -6785 6685 -1 -6686 6686 4 -6687 6686 -1 -6786 6686 -1 -6687 6687 4 -6688 6687 -1 -6787 6687 -1 -6688 6688 4 -6689 6688 -1 -6788 6688 -1 -6689 6689 4 -6690 6689 -1 -6789 6689 -1 -6690 6690 4 -6691 6690 -1 -6790 6690 -1 -6691 6691 4 -6692 6691 -1 -6791 6691 -1 -6692 6692 4 -6693 6692 -1 -6792 6692 -1 -6693 6693 4 -6694 6693 -1 -6793 6693 -1 -6694 6694 4 -6695 6694 -1 -6794 6694 -1 -6695 6695 4 -6696 6695 -1 -6795 6695 -1 -6696 6696 4 -6697 6696 -1 -6796 6696 -1 -6697 6697 4 -6698 6697 -1 -6797 6697 -1 -6698 6698 4 -6699 6698 -1 -6798 6698 -1 -6699 6699 4 -6700 6699 -1 -6799 6699 -1 -6700 6700 4 -6800 6700 -1 -6701 6701 4 -6702 6701 -1 -6801 6701 -1 -6702 6702 4 -6703 6702 -1 -6802 6702 -1 -6703 6703 4 -6704 6703 -1 -6803 6703 -1 -6704 6704 4 -6705 6704 -1 -6804 6704 -1 -6705 6705 4 -6706 6705 -1 -6805 6705 -1 -6706 6706 4 -6707 6706 -1 -6806 6706 -1 -6707 6707 4 -6708 6707 -1 -6807 6707 -1 -6708 6708 4 -6709 6708 -1 -6808 6708 -1 -6709 6709 4 -6710 6709 -1 -6809 6709 -1 -6710 6710 4 -6711 6710 -1 -6810 6710 -1 -6711 6711 4 -6712 6711 -1 -6811 6711 -1 -6712 6712 4 -6713 6712 -1 -6812 6712 -1 -6713 6713 4 -6714 6713 -1 -6813 6713 -1 -6714 6714 4 -6715 6714 -1 -6814 6714 -1 -6715 6715 4 -6716 6715 -1 -6815 6715 -1 -6716 6716 4 -6717 6716 -1 -6816 6716 -1 -6717 6717 4 -6718 6717 -1 -6817 6717 -1 -6718 6718 4 -6719 6718 -1 -6818 6718 -1 -6719 6719 4 -6720 6719 -1 -6819 6719 -1 -6720 6720 4 -6721 6720 -1 -6820 6720 -1 -6721 6721 4 -6722 6721 -1 -6821 6721 -1 -6722 6722 4 -6723 6722 -1 -6822 6722 -1 -6723 6723 4 -6724 6723 -1 -6823 6723 -1 -6724 6724 4 -6725 6724 -1 -6824 6724 -1 -6725 6725 4 -6726 6725 -1 -6825 6725 -1 -6726 6726 4 -6727 6726 -1 -6826 6726 -1 -6727 6727 4 -6728 6727 -1 -6827 6727 -1 -6728 6728 4 -6729 6728 -1 -6828 6728 -1 -6729 6729 4 -6730 6729 -1 -6829 6729 -1 -6730 6730 4 -6731 6730 -1 -6830 6730 -1 -6731 6731 4 -6732 6731 -1 -6831 6731 -1 -6732 6732 4 -6733 6732 -1 -6832 6732 -1 -6733 6733 4 -6734 6733 -1 -6833 6733 -1 -6734 6734 4 -6735 6734 -1 -6834 6734 -1 -6735 6735 4 -6736 6735 -1 -6835 6735 -1 -6736 6736 4 -6737 6736 -1 -6836 6736 -1 -6737 6737 4 -6738 6737 -1 -6837 6737 -1 -6738 6738 4 -6739 6738 -1 -6838 6738 -1 -6739 6739 4 -6740 6739 -1 -6839 6739 -1 -6740 6740 4 -6741 6740 -1 -6840 6740 -1 -6741 6741 4 -6742 6741 -1 -6841 6741 -1 -6742 6742 4 -6743 6742 -1 -6842 6742 -1 -6743 6743 4 -6744 6743 -1 -6843 6743 -1 -6744 6744 4 -6745 6744 -1 -6844 6744 -1 -6745 6745 4 -6746 6745 -1 -6845 6745 -1 -6746 6746 4 -6747 6746 -1 -6846 6746 -1 -6747 6747 4 -6748 6747 -1 -6847 6747 -1 -6748 6748 4 -6749 6748 -1 -6848 6748 -1 -6749 6749 4 -6750 6749 -1 -6849 6749 -1 -6750 6750 4 -6751 6750 -1 -6850 6750 -1 -6751 6751 4 -6752 6751 -1 -6851 6751 -1 -6752 6752 4 -6753 6752 -1 -6852 6752 -1 -6753 6753 4 -6754 6753 -1 -6853 6753 -1 -6754 6754 4 -6755 6754 -1 -6854 6754 -1 -6755 6755 4 -6756 6755 -1 -6855 6755 -1 -6756 6756 4 -6757 6756 -1 -6856 6756 -1 -6757 6757 4 -6758 6757 -1 -6857 6757 -1 -6758 6758 4 -6759 6758 -1 -6858 6758 -1 -6759 6759 4 -6760 6759 -1 -6859 6759 -1 -6760 6760 4 -6761 6760 -1 -6860 6760 -1 -6761 6761 4 -6762 6761 -1 -6861 6761 -1 -6762 6762 4 -6763 6762 -1 -6862 6762 -1 -6763 6763 4 -6764 6763 -1 -6863 6763 -1 -6764 6764 4 -6765 6764 -1 -6864 6764 -1 -6765 6765 4 -6766 6765 -1 -6865 6765 -1 -6766 6766 4 -6767 6766 -1 -6866 6766 -1 -6767 6767 4 -6768 6767 -1 -6867 6767 -1 -6768 6768 4 -6769 6768 -1 -6868 6768 -1 -6769 6769 4 -6770 6769 -1 -6869 6769 -1 -6770 6770 4 -6771 6770 -1 -6870 6770 -1 -6771 6771 4 -6772 6771 -1 -6871 6771 -1 -6772 6772 4 -6773 6772 -1 -6872 6772 -1 -6773 6773 4 -6774 6773 -1 -6873 6773 -1 -6774 6774 4 -6775 6774 -1 -6874 6774 -1 -6775 6775 4 -6776 6775 -1 -6875 6775 -1 -6776 6776 4 -6777 6776 -1 -6876 6776 -1 -6777 6777 4 -6778 6777 -1 -6877 6777 -1 -6778 6778 4 -6779 6778 -1 -6878 6778 -1 -6779 6779 4 -6780 6779 -1 -6879 6779 -1 -6780 6780 4 -6781 6780 -1 -6880 6780 -1 -6781 6781 4 -6782 6781 -1 -6881 6781 -1 -6782 6782 4 -6783 6782 -1 -6882 6782 -1 -6783 6783 4 -6784 6783 -1 -6883 6783 -1 -6784 6784 4 -6785 6784 -1 -6884 6784 -1 -6785 6785 4 -6786 6785 -1 -6885 6785 -1 -6786 6786 4 -6787 6786 -1 -6886 6786 -1 -6787 6787 4 -6788 6787 -1 -6887 6787 -1 -6788 6788 4 -6789 6788 -1 -6888 6788 -1 -6789 6789 4 -6790 6789 -1 -6889 6789 -1 -6790 6790 4 -6791 6790 -1 -6890 6790 -1 -6791 6791 4 -6792 6791 -1 -6891 6791 -1 -6792 6792 4 -6793 6792 -1 -6892 6792 -1 -6793 6793 4 -6794 6793 -1 -6893 6793 -1 -6794 6794 4 -6795 6794 -1 -6894 6794 -1 -6795 6795 4 -6796 6795 -1 -6895 6795 -1 -6796 6796 4 -6797 6796 -1 -6896 6796 -1 -6797 6797 4 -6798 6797 -1 -6897 6797 -1 -6798 6798 4 -6799 6798 -1 -6898 6798 -1 -6799 6799 4 -6800 6799 -1 -6899 6799 -1 -6800 6800 4 -6900 6800 -1 -6801 6801 4 -6802 6801 -1 -6901 6801 -1 -6802 6802 4 -6803 6802 -1 -6902 6802 -1 -6803 6803 4 -6804 6803 -1 -6903 6803 -1 -6804 6804 4 -6805 6804 -1 -6904 6804 -1 -6805 6805 4 -6806 6805 -1 -6905 6805 -1 -6806 6806 4 -6807 6806 -1 -6906 6806 -1 -6807 6807 4 -6808 6807 -1 -6907 6807 -1 -6808 6808 4 -6809 6808 -1 -6908 6808 -1 -6809 6809 4 -6810 6809 -1 -6909 6809 -1 -6810 6810 4 -6811 6810 -1 -6910 6810 -1 -6811 6811 4 -6812 6811 -1 -6911 6811 -1 -6812 6812 4 -6813 6812 -1 -6912 6812 -1 -6813 6813 4 -6814 6813 -1 -6913 6813 -1 -6814 6814 4 -6815 6814 -1 -6914 6814 -1 -6815 6815 4 -6816 6815 -1 -6915 6815 -1 -6816 6816 4 -6817 6816 -1 -6916 6816 -1 -6817 6817 4 -6818 6817 -1 -6917 6817 -1 -6818 6818 4 -6819 6818 -1 -6918 6818 -1 -6819 6819 4 -6820 6819 -1 -6919 6819 -1 -6820 6820 4 -6821 6820 -1 -6920 6820 -1 -6821 6821 4 -6822 6821 -1 -6921 6821 -1 -6822 6822 4 -6823 6822 -1 -6922 6822 -1 -6823 6823 4 -6824 6823 -1 -6923 6823 -1 -6824 6824 4 -6825 6824 -1 -6924 6824 -1 -6825 6825 4 -6826 6825 -1 -6925 6825 -1 -6826 6826 4 -6827 6826 -1 -6926 6826 -1 -6827 6827 4 -6828 6827 -1 -6927 6827 -1 -6828 6828 4 -6829 6828 -1 -6928 6828 -1 -6829 6829 4 -6830 6829 -1 -6929 6829 -1 -6830 6830 4 -6831 6830 -1 -6930 6830 -1 -6831 6831 4 -6832 6831 -1 -6931 6831 -1 -6832 6832 4 -6833 6832 -1 -6932 6832 -1 -6833 6833 4 -6834 6833 -1 -6933 6833 -1 -6834 6834 4 -6835 6834 -1 -6934 6834 -1 -6835 6835 4 -6836 6835 -1 -6935 6835 -1 -6836 6836 4 -6837 6836 -1 -6936 6836 -1 -6837 6837 4 -6838 6837 -1 -6937 6837 -1 -6838 6838 4 -6839 6838 -1 -6938 6838 -1 -6839 6839 4 -6840 6839 -1 -6939 6839 -1 -6840 6840 4 -6841 6840 -1 -6940 6840 -1 -6841 6841 4 -6842 6841 -1 -6941 6841 -1 -6842 6842 4 -6843 6842 -1 -6942 6842 -1 -6843 6843 4 -6844 6843 -1 -6943 6843 -1 -6844 6844 4 -6845 6844 -1 -6944 6844 -1 -6845 6845 4 -6846 6845 -1 -6945 6845 -1 -6846 6846 4 -6847 6846 -1 -6946 6846 -1 -6847 6847 4 -6848 6847 -1 -6947 6847 -1 -6848 6848 4 -6849 6848 -1 -6948 6848 -1 -6849 6849 4 -6850 6849 -1 -6949 6849 -1 -6850 6850 4 -6851 6850 -1 -6950 6850 -1 -6851 6851 4 -6852 6851 -1 -6951 6851 -1 -6852 6852 4 -6853 6852 -1 -6952 6852 -1 -6853 6853 4 -6854 6853 -1 -6953 6853 -1 -6854 6854 4 -6855 6854 -1 -6954 6854 -1 -6855 6855 4 -6856 6855 -1 -6955 6855 -1 -6856 6856 4 -6857 6856 -1 -6956 6856 -1 -6857 6857 4 -6858 6857 -1 -6957 6857 -1 -6858 6858 4 -6859 6858 -1 -6958 6858 -1 -6859 6859 4 -6860 6859 -1 -6959 6859 -1 -6860 6860 4 -6861 6860 -1 -6960 6860 -1 -6861 6861 4 -6862 6861 -1 -6961 6861 -1 -6862 6862 4 -6863 6862 -1 -6962 6862 -1 -6863 6863 4 -6864 6863 -1 -6963 6863 -1 -6864 6864 4 -6865 6864 -1 -6964 6864 -1 -6865 6865 4 -6866 6865 -1 -6965 6865 -1 -6866 6866 4 -6867 6866 -1 -6966 6866 -1 -6867 6867 4 -6868 6867 -1 -6967 6867 -1 -6868 6868 4 -6869 6868 -1 -6968 6868 -1 -6869 6869 4 -6870 6869 -1 -6969 6869 -1 -6870 6870 4 -6871 6870 -1 -6970 6870 -1 -6871 6871 4 -6872 6871 -1 -6971 6871 -1 -6872 6872 4 -6873 6872 -1 -6972 6872 -1 -6873 6873 4 -6874 6873 -1 -6973 6873 -1 -6874 6874 4 -6875 6874 -1 -6974 6874 -1 -6875 6875 4 -6876 6875 -1 -6975 6875 -1 -6876 6876 4 -6877 6876 -1 -6976 6876 -1 -6877 6877 4 -6878 6877 -1 -6977 6877 -1 -6878 6878 4 -6879 6878 -1 -6978 6878 -1 -6879 6879 4 -6880 6879 -1 -6979 6879 -1 -6880 6880 4 -6881 6880 -1 -6980 6880 -1 -6881 6881 4 -6882 6881 -1 -6981 6881 -1 -6882 6882 4 -6883 6882 -1 -6982 6882 -1 -6883 6883 4 -6884 6883 -1 -6983 6883 -1 -6884 6884 4 -6885 6884 -1 -6984 6884 -1 -6885 6885 4 -6886 6885 -1 -6985 6885 -1 -6886 6886 4 -6887 6886 -1 -6986 6886 -1 -6887 6887 4 -6888 6887 -1 -6987 6887 -1 -6888 6888 4 -6889 6888 -1 -6988 6888 -1 -6889 6889 4 -6890 6889 -1 -6989 6889 -1 -6890 6890 4 -6891 6890 -1 -6990 6890 -1 -6891 6891 4 -6892 6891 -1 -6991 6891 -1 -6892 6892 4 -6893 6892 -1 -6992 6892 -1 -6893 6893 4 -6894 6893 -1 -6993 6893 -1 -6894 6894 4 -6895 6894 -1 -6994 6894 -1 -6895 6895 4 -6896 6895 -1 -6995 6895 -1 -6896 6896 4 -6897 6896 -1 -6996 6896 -1 -6897 6897 4 -6898 6897 -1 -6997 6897 -1 -6898 6898 4 -6899 6898 -1 -6998 6898 -1 -6899 6899 4 -6900 6899 -1 -6999 6899 -1 -6900 6900 4 -7000 6900 -1 -6901 6901 4 -6902 6901 -1 -7001 6901 -1 -6902 6902 4 -6903 6902 -1 -7002 6902 -1 -6903 6903 4 -6904 6903 -1 -7003 6903 -1 -6904 6904 4 -6905 6904 -1 -7004 6904 -1 -6905 6905 4 -6906 6905 -1 -7005 6905 -1 -6906 6906 4 -6907 6906 -1 -7006 6906 -1 -6907 6907 4 -6908 6907 -1 -7007 6907 -1 -6908 6908 4 -6909 6908 -1 -7008 6908 -1 -6909 6909 4 -6910 6909 -1 -7009 6909 -1 -6910 6910 4 -6911 6910 -1 -7010 6910 -1 -6911 6911 4 -6912 6911 -1 -7011 6911 -1 -6912 6912 4 -6913 6912 -1 -7012 6912 -1 -6913 6913 4 -6914 6913 -1 -7013 6913 -1 -6914 6914 4 -6915 6914 -1 -7014 6914 -1 -6915 6915 4 -6916 6915 -1 -7015 6915 -1 -6916 6916 4 -6917 6916 -1 -7016 6916 -1 -6917 6917 4 -6918 6917 -1 -7017 6917 -1 -6918 6918 4 -6919 6918 -1 -7018 6918 -1 -6919 6919 4 -6920 6919 -1 -7019 6919 -1 -6920 6920 4 -6921 6920 -1 -7020 6920 -1 -6921 6921 4 -6922 6921 -1 -7021 6921 -1 -6922 6922 4 -6923 6922 -1 -7022 6922 -1 -6923 6923 4 -6924 6923 -1 -7023 6923 -1 -6924 6924 4 -6925 6924 -1 -7024 6924 -1 -6925 6925 4 -6926 6925 -1 -7025 6925 -1 -6926 6926 4 -6927 6926 -1 -7026 6926 -1 -6927 6927 4 -6928 6927 -1 -7027 6927 -1 -6928 6928 4 -6929 6928 -1 -7028 6928 -1 -6929 6929 4 -6930 6929 -1 -7029 6929 -1 -6930 6930 4 -6931 6930 -1 -7030 6930 -1 -6931 6931 4 -6932 6931 -1 -7031 6931 -1 -6932 6932 4 -6933 6932 -1 -7032 6932 -1 -6933 6933 4 -6934 6933 -1 -7033 6933 -1 -6934 6934 4 -6935 6934 -1 -7034 6934 -1 -6935 6935 4 -6936 6935 -1 -7035 6935 -1 -6936 6936 4 -6937 6936 -1 -7036 6936 -1 -6937 6937 4 -6938 6937 -1 -7037 6937 -1 -6938 6938 4 -6939 6938 -1 -7038 6938 -1 -6939 6939 4 -6940 6939 -1 -7039 6939 -1 -6940 6940 4 -6941 6940 -1 -7040 6940 -1 -6941 6941 4 -6942 6941 -1 -7041 6941 -1 -6942 6942 4 -6943 6942 -1 -7042 6942 -1 -6943 6943 4 -6944 6943 -1 -7043 6943 -1 -6944 6944 4 -6945 6944 -1 -7044 6944 -1 -6945 6945 4 -6946 6945 -1 -7045 6945 -1 -6946 6946 4 -6947 6946 -1 -7046 6946 -1 -6947 6947 4 -6948 6947 -1 -7047 6947 -1 -6948 6948 4 -6949 6948 -1 -7048 6948 -1 -6949 6949 4 -6950 6949 -1 -7049 6949 -1 -6950 6950 4 -6951 6950 -1 -7050 6950 -1 -6951 6951 4 -6952 6951 -1 -7051 6951 -1 -6952 6952 4 -6953 6952 -1 -7052 6952 -1 -6953 6953 4 -6954 6953 -1 -7053 6953 -1 -6954 6954 4 -6955 6954 -1 -7054 6954 -1 -6955 6955 4 -6956 6955 -1 -7055 6955 -1 -6956 6956 4 -6957 6956 -1 -7056 6956 -1 -6957 6957 4 -6958 6957 -1 -7057 6957 -1 -6958 6958 4 -6959 6958 -1 -7058 6958 -1 -6959 6959 4 -6960 6959 -1 -7059 6959 -1 -6960 6960 4 -6961 6960 -1 -7060 6960 -1 -6961 6961 4 -6962 6961 -1 -7061 6961 -1 -6962 6962 4 -6963 6962 -1 -7062 6962 -1 -6963 6963 4 -6964 6963 -1 -7063 6963 -1 -6964 6964 4 -6965 6964 -1 -7064 6964 -1 -6965 6965 4 -6966 6965 -1 -7065 6965 -1 -6966 6966 4 -6967 6966 -1 -7066 6966 -1 -6967 6967 4 -6968 6967 -1 -7067 6967 -1 -6968 6968 4 -6969 6968 -1 -7068 6968 -1 -6969 6969 4 -6970 6969 -1 -7069 6969 -1 -6970 6970 4 -6971 6970 -1 -7070 6970 -1 -6971 6971 4 -6972 6971 -1 -7071 6971 -1 -6972 6972 4 -6973 6972 -1 -7072 6972 -1 -6973 6973 4 -6974 6973 -1 -7073 6973 -1 -6974 6974 4 -6975 6974 -1 -7074 6974 -1 -6975 6975 4 -6976 6975 -1 -7075 6975 -1 -6976 6976 4 -6977 6976 -1 -7076 6976 -1 -6977 6977 4 -6978 6977 -1 -7077 6977 -1 -6978 6978 4 -6979 6978 -1 -7078 6978 -1 -6979 6979 4 -6980 6979 -1 -7079 6979 -1 -6980 6980 4 -6981 6980 -1 -7080 6980 -1 -6981 6981 4 -6982 6981 -1 -7081 6981 -1 -6982 6982 4 -6983 6982 -1 -7082 6982 -1 -6983 6983 4 -6984 6983 -1 -7083 6983 -1 -6984 6984 4 -6985 6984 -1 -7084 6984 -1 -6985 6985 4 -6986 6985 -1 -7085 6985 -1 -6986 6986 4 -6987 6986 -1 -7086 6986 -1 -6987 6987 4 -6988 6987 -1 -7087 6987 -1 -6988 6988 4 -6989 6988 -1 -7088 6988 -1 -6989 6989 4 -6990 6989 -1 -7089 6989 -1 -6990 6990 4 -6991 6990 -1 -7090 6990 -1 -6991 6991 4 -6992 6991 -1 -7091 6991 -1 -6992 6992 4 -6993 6992 -1 -7092 6992 -1 -6993 6993 4 -6994 6993 -1 -7093 6993 -1 -6994 6994 4 -6995 6994 -1 -7094 6994 -1 -6995 6995 4 -6996 6995 -1 -7095 6995 -1 -6996 6996 4 -6997 6996 -1 -7096 6996 -1 -6997 6997 4 -6998 6997 -1 -7097 6997 -1 -6998 6998 4 -6999 6998 -1 -7098 6998 -1 -6999 6999 4 -7000 6999 -1 -7099 6999 -1 -7000 7000 4 -7100 7000 -1 -7001 7001 4 -7002 7001 -1 -7101 7001 -1 -7002 7002 4 -7003 7002 -1 -7102 7002 -1 -7003 7003 4 -7004 7003 -1 -7103 7003 -1 -7004 7004 4 -7005 7004 -1 -7104 7004 -1 -7005 7005 4 -7006 7005 -1 -7105 7005 -1 -7006 7006 4 -7007 7006 -1 -7106 7006 -1 -7007 7007 4 -7008 7007 -1 -7107 7007 -1 -7008 7008 4 -7009 7008 -1 -7108 7008 -1 -7009 7009 4 -7010 7009 -1 -7109 7009 -1 -7010 7010 4 -7011 7010 -1 -7110 7010 -1 -7011 7011 4 -7012 7011 -1 -7111 7011 -1 -7012 7012 4 -7013 7012 -1 -7112 7012 -1 -7013 7013 4 -7014 7013 -1 -7113 7013 -1 -7014 7014 4 -7015 7014 -1 -7114 7014 -1 -7015 7015 4 -7016 7015 -1 -7115 7015 -1 -7016 7016 4 -7017 7016 -1 -7116 7016 -1 -7017 7017 4 -7018 7017 -1 -7117 7017 -1 -7018 7018 4 -7019 7018 -1 -7118 7018 -1 -7019 7019 4 -7020 7019 -1 -7119 7019 -1 -7020 7020 4 -7021 7020 -1 -7120 7020 -1 -7021 7021 4 -7022 7021 -1 -7121 7021 -1 -7022 7022 4 -7023 7022 -1 -7122 7022 -1 -7023 7023 4 -7024 7023 -1 -7123 7023 -1 -7024 7024 4 -7025 7024 -1 -7124 7024 -1 -7025 7025 4 -7026 7025 -1 -7125 7025 -1 -7026 7026 4 -7027 7026 -1 -7126 7026 -1 -7027 7027 4 -7028 7027 -1 -7127 7027 -1 -7028 7028 4 -7029 7028 -1 -7128 7028 -1 -7029 7029 4 -7030 7029 -1 -7129 7029 -1 -7030 7030 4 -7031 7030 -1 -7130 7030 -1 -7031 7031 4 -7032 7031 -1 -7131 7031 -1 -7032 7032 4 -7033 7032 -1 -7132 7032 -1 -7033 7033 4 -7034 7033 -1 -7133 7033 -1 -7034 7034 4 -7035 7034 -1 -7134 7034 -1 -7035 7035 4 -7036 7035 -1 -7135 7035 -1 -7036 7036 4 -7037 7036 -1 -7136 7036 -1 -7037 7037 4 -7038 7037 -1 -7137 7037 -1 -7038 7038 4 -7039 7038 -1 -7138 7038 -1 -7039 7039 4 -7040 7039 -1 -7139 7039 -1 -7040 7040 4 -7041 7040 -1 -7140 7040 -1 -7041 7041 4 -7042 7041 -1 -7141 7041 -1 -7042 7042 4 -7043 7042 -1 -7142 7042 -1 -7043 7043 4 -7044 7043 -1 -7143 7043 -1 -7044 7044 4 -7045 7044 -1 -7144 7044 -1 -7045 7045 4 -7046 7045 -1 -7145 7045 -1 -7046 7046 4 -7047 7046 -1 -7146 7046 -1 -7047 7047 4 -7048 7047 -1 -7147 7047 -1 -7048 7048 4 -7049 7048 -1 -7148 7048 -1 -7049 7049 4 -7050 7049 -1 -7149 7049 -1 -7050 7050 4 -7051 7050 -1 -7150 7050 -1 -7051 7051 4 -7052 7051 -1 -7151 7051 -1 -7052 7052 4 -7053 7052 -1 -7152 7052 -1 -7053 7053 4 -7054 7053 -1 -7153 7053 -1 -7054 7054 4 -7055 7054 -1 -7154 7054 -1 -7055 7055 4 -7056 7055 -1 -7155 7055 -1 -7056 7056 4 -7057 7056 -1 -7156 7056 -1 -7057 7057 4 -7058 7057 -1 -7157 7057 -1 -7058 7058 4 -7059 7058 -1 -7158 7058 -1 -7059 7059 4 -7060 7059 -1 -7159 7059 -1 -7060 7060 4 -7061 7060 -1 -7160 7060 -1 -7061 7061 4 -7062 7061 -1 -7161 7061 -1 -7062 7062 4 -7063 7062 -1 -7162 7062 -1 -7063 7063 4 -7064 7063 -1 -7163 7063 -1 -7064 7064 4 -7065 7064 -1 -7164 7064 -1 -7065 7065 4 -7066 7065 -1 -7165 7065 -1 -7066 7066 4 -7067 7066 -1 -7166 7066 -1 -7067 7067 4 -7068 7067 -1 -7167 7067 -1 -7068 7068 4 -7069 7068 -1 -7168 7068 -1 -7069 7069 4 -7070 7069 -1 -7169 7069 -1 -7070 7070 4 -7071 7070 -1 -7170 7070 -1 -7071 7071 4 -7072 7071 -1 -7171 7071 -1 -7072 7072 4 -7073 7072 -1 -7172 7072 -1 -7073 7073 4 -7074 7073 -1 -7173 7073 -1 -7074 7074 4 -7075 7074 -1 -7174 7074 -1 -7075 7075 4 -7076 7075 -1 -7175 7075 -1 -7076 7076 4 -7077 7076 -1 -7176 7076 -1 -7077 7077 4 -7078 7077 -1 -7177 7077 -1 -7078 7078 4 -7079 7078 -1 -7178 7078 -1 -7079 7079 4 -7080 7079 -1 -7179 7079 -1 -7080 7080 4 -7081 7080 -1 -7180 7080 -1 -7081 7081 4 -7082 7081 -1 -7181 7081 -1 -7082 7082 4 -7083 7082 -1 -7182 7082 -1 -7083 7083 4 -7084 7083 -1 -7183 7083 -1 -7084 7084 4 -7085 7084 -1 -7184 7084 -1 -7085 7085 4 -7086 7085 -1 -7185 7085 -1 -7086 7086 4 -7087 7086 -1 -7186 7086 -1 -7087 7087 4 -7088 7087 -1 -7187 7087 -1 -7088 7088 4 -7089 7088 -1 -7188 7088 -1 -7089 7089 4 -7090 7089 -1 -7189 7089 -1 -7090 7090 4 -7091 7090 -1 -7190 7090 -1 -7091 7091 4 -7092 7091 -1 -7191 7091 -1 -7092 7092 4 -7093 7092 -1 -7192 7092 -1 -7093 7093 4 -7094 7093 -1 -7193 7093 -1 -7094 7094 4 -7095 7094 -1 -7194 7094 -1 -7095 7095 4 -7096 7095 -1 -7195 7095 -1 -7096 7096 4 -7097 7096 -1 -7196 7096 -1 -7097 7097 4 -7098 7097 -1 -7197 7097 -1 -7098 7098 4 -7099 7098 -1 -7198 7098 -1 -7099 7099 4 -7100 7099 -1 -7199 7099 -1 -7100 7100 4 -7200 7100 -1 -7101 7101 4 -7102 7101 -1 -7201 7101 -1 -7102 7102 4 -7103 7102 -1 -7202 7102 -1 -7103 7103 4 -7104 7103 -1 -7203 7103 -1 -7104 7104 4 -7105 7104 -1 -7204 7104 -1 -7105 7105 4 -7106 7105 -1 -7205 7105 -1 -7106 7106 4 -7107 7106 -1 -7206 7106 -1 -7107 7107 4 -7108 7107 -1 -7207 7107 -1 -7108 7108 4 -7109 7108 -1 -7208 7108 -1 -7109 7109 4 -7110 7109 -1 -7209 7109 -1 -7110 7110 4 -7111 7110 -1 -7210 7110 -1 -7111 7111 4 -7112 7111 -1 -7211 7111 -1 -7112 7112 4 -7113 7112 -1 -7212 7112 -1 -7113 7113 4 -7114 7113 -1 -7213 7113 -1 -7114 7114 4 -7115 7114 -1 -7214 7114 -1 -7115 7115 4 -7116 7115 -1 -7215 7115 -1 -7116 7116 4 -7117 7116 -1 -7216 7116 -1 -7117 7117 4 -7118 7117 -1 -7217 7117 -1 -7118 7118 4 -7119 7118 -1 -7218 7118 -1 -7119 7119 4 -7120 7119 -1 -7219 7119 -1 -7120 7120 4 -7121 7120 -1 -7220 7120 -1 -7121 7121 4 -7122 7121 -1 -7221 7121 -1 -7122 7122 4 -7123 7122 -1 -7222 7122 -1 -7123 7123 4 -7124 7123 -1 -7223 7123 -1 -7124 7124 4 -7125 7124 -1 -7224 7124 -1 -7125 7125 4 -7126 7125 -1 -7225 7125 -1 -7126 7126 4 -7127 7126 -1 -7226 7126 -1 -7127 7127 4 -7128 7127 -1 -7227 7127 -1 -7128 7128 4 -7129 7128 -1 -7228 7128 -1 -7129 7129 4 -7130 7129 -1 -7229 7129 -1 -7130 7130 4 -7131 7130 -1 -7230 7130 -1 -7131 7131 4 -7132 7131 -1 -7231 7131 -1 -7132 7132 4 -7133 7132 -1 -7232 7132 -1 -7133 7133 4 -7134 7133 -1 -7233 7133 -1 -7134 7134 4 -7135 7134 -1 -7234 7134 -1 -7135 7135 4 -7136 7135 -1 -7235 7135 -1 -7136 7136 4 -7137 7136 -1 -7236 7136 -1 -7137 7137 4 -7138 7137 -1 -7237 7137 -1 -7138 7138 4 -7139 7138 -1 -7238 7138 -1 -7139 7139 4 -7140 7139 -1 -7239 7139 -1 -7140 7140 4 -7141 7140 -1 -7240 7140 -1 -7141 7141 4 -7142 7141 -1 -7241 7141 -1 -7142 7142 4 -7143 7142 -1 -7242 7142 -1 -7143 7143 4 -7144 7143 -1 -7243 7143 -1 -7144 7144 4 -7145 7144 -1 -7244 7144 -1 -7145 7145 4 -7146 7145 -1 -7245 7145 -1 -7146 7146 4 -7147 7146 -1 -7246 7146 -1 -7147 7147 4 -7148 7147 -1 -7247 7147 -1 -7148 7148 4 -7149 7148 -1 -7248 7148 -1 -7149 7149 4 -7150 7149 -1 -7249 7149 -1 -7150 7150 4 -7151 7150 -1 -7250 7150 -1 -7151 7151 4 -7152 7151 -1 -7251 7151 -1 -7152 7152 4 -7153 7152 -1 -7252 7152 -1 -7153 7153 4 -7154 7153 -1 -7253 7153 -1 -7154 7154 4 -7155 7154 -1 -7254 7154 -1 -7155 7155 4 -7156 7155 -1 -7255 7155 -1 -7156 7156 4 -7157 7156 -1 -7256 7156 -1 -7157 7157 4 -7158 7157 -1 -7257 7157 -1 -7158 7158 4 -7159 7158 -1 -7258 7158 -1 -7159 7159 4 -7160 7159 -1 -7259 7159 -1 -7160 7160 4 -7161 7160 -1 -7260 7160 -1 -7161 7161 4 -7162 7161 -1 -7261 7161 -1 -7162 7162 4 -7163 7162 -1 -7262 7162 -1 -7163 7163 4 -7164 7163 -1 -7263 7163 -1 -7164 7164 4 -7165 7164 -1 -7264 7164 -1 -7165 7165 4 -7166 7165 -1 -7265 7165 -1 -7166 7166 4 -7167 7166 -1 -7266 7166 -1 -7167 7167 4 -7168 7167 -1 -7267 7167 -1 -7168 7168 4 -7169 7168 -1 -7268 7168 -1 -7169 7169 4 -7170 7169 -1 -7269 7169 -1 -7170 7170 4 -7171 7170 -1 -7270 7170 -1 -7171 7171 4 -7172 7171 -1 -7271 7171 -1 -7172 7172 4 -7173 7172 -1 -7272 7172 -1 -7173 7173 4 -7174 7173 -1 -7273 7173 -1 -7174 7174 4 -7175 7174 -1 -7274 7174 -1 -7175 7175 4 -7176 7175 -1 -7275 7175 -1 -7176 7176 4 -7177 7176 -1 -7276 7176 -1 -7177 7177 4 -7178 7177 -1 -7277 7177 -1 -7178 7178 4 -7179 7178 -1 -7278 7178 -1 -7179 7179 4 -7180 7179 -1 -7279 7179 -1 -7180 7180 4 -7181 7180 -1 -7280 7180 -1 -7181 7181 4 -7182 7181 -1 -7281 7181 -1 -7182 7182 4 -7183 7182 -1 -7282 7182 -1 -7183 7183 4 -7184 7183 -1 -7283 7183 -1 -7184 7184 4 -7185 7184 -1 -7284 7184 -1 -7185 7185 4 -7186 7185 -1 -7285 7185 -1 -7186 7186 4 -7187 7186 -1 -7286 7186 -1 -7187 7187 4 -7188 7187 -1 -7287 7187 -1 -7188 7188 4 -7189 7188 -1 -7288 7188 -1 -7189 7189 4 -7190 7189 -1 -7289 7189 -1 -7190 7190 4 -7191 7190 -1 -7290 7190 -1 -7191 7191 4 -7192 7191 -1 -7291 7191 -1 -7192 7192 4 -7193 7192 -1 -7292 7192 -1 -7193 7193 4 -7194 7193 -1 -7293 7193 -1 -7194 7194 4 -7195 7194 -1 -7294 7194 -1 -7195 7195 4 -7196 7195 -1 -7295 7195 -1 -7196 7196 4 -7197 7196 -1 -7296 7196 -1 -7197 7197 4 -7198 7197 -1 -7297 7197 -1 -7198 7198 4 -7199 7198 -1 -7298 7198 -1 -7199 7199 4 -7200 7199 -1 -7299 7199 -1 -7200 7200 4 -7300 7200 -1 -7201 7201 4 -7202 7201 -1 -7301 7201 -1 -7202 7202 4 -7203 7202 -1 -7302 7202 -1 -7203 7203 4 -7204 7203 -1 -7303 7203 -1 -7204 7204 4 -7205 7204 -1 -7304 7204 -1 -7205 7205 4 -7206 7205 -1 -7305 7205 -1 -7206 7206 4 -7207 7206 -1 -7306 7206 -1 -7207 7207 4 -7208 7207 -1 -7307 7207 -1 -7208 7208 4 -7209 7208 -1 -7308 7208 -1 -7209 7209 4 -7210 7209 -1 -7309 7209 -1 -7210 7210 4 -7211 7210 -1 -7310 7210 -1 -7211 7211 4 -7212 7211 -1 -7311 7211 -1 -7212 7212 4 -7213 7212 -1 -7312 7212 -1 -7213 7213 4 -7214 7213 -1 -7313 7213 -1 -7214 7214 4 -7215 7214 -1 -7314 7214 -1 -7215 7215 4 -7216 7215 -1 -7315 7215 -1 -7216 7216 4 -7217 7216 -1 -7316 7216 -1 -7217 7217 4 -7218 7217 -1 -7317 7217 -1 -7218 7218 4 -7219 7218 -1 -7318 7218 -1 -7219 7219 4 -7220 7219 -1 -7319 7219 -1 -7220 7220 4 -7221 7220 -1 -7320 7220 -1 -7221 7221 4 -7222 7221 -1 -7321 7221 -1 -7222 7222 4 -7223 7222 -1 -7322 7222 -1 -7223 7223 4 -7224 7223 -1 -7323 7223 -1 -7224 7224 4 -7225 7224 -1 -7324 7224 -1 -7225 7225 4 -7226 7225 -1 -7325 7225 -1 -7226 7226 4 -7227 7226 -1 -7326 7226 -1 -7227 7227 4 -7228 7227 -1 -7327 7227 -1 -7228 7228 4 -7229 7228 -1 -7328 7228 -1 -7229 7229 4 -7230 7229 -1 -7329 7229 -1 -7230 7230 4 -7231 7230 -1 -7330 7230 -1 -7231 7231 4 -7232 7231 -1 -7331 7231 -1 -7232 7232 4 -7233 7232 -1 -7332 7232 -1 -7233 7233 4 -7234 7233 -1 -7333 7233 -1 -7234 7234 4 -7235 7234 -1 -7334 7234 -1 -7235 7235 4 -7236 7235 -1 -7335 7235 -1 -7236 7236 4 -7237 7236 -1 -7336 7236 -1 -7237 7237 4 -7238 7237 -1 -7337 7237 -1 -7238 7238 4 -7239 7238 -1 -7338 7238 -1 -7239 7239 4 -7240 7239 -1 -7339 7239 -1 -7240 7240 4 -7241 7240 -1 -7340 7240 -1 -7241 7241 4 -7242 7241 -1 -7341 7241 -1 -7242 7242 4 -7243 7242 -1 -7342 7242 -1 -7243 7243 4 -7244 7243 -1 -7343 7243 -1 -7244 7244 4 -7245 7244 -1 -7344 7244 -1 -7245 7245 4 -7246 7245 -1 -7345 7245 -1 -7246 7246 4 -7247 7246 -1 -7346 7246 -1 -7247 7247 4 -7248 7247 -1 -7347 7247 -1 -7248 7248 4 -7249 7248 -1 -7348 7248 -1 -7249 7249 4 -7250 7249 -1 -7349 7249 -1 -7250 7250 4 -7251 7250 -1 -7350 7250 -1 -7251 7251 4 -7252 7251 -1 -7351 7251 -1 -7252 7252 4 -7253 7252 -1 -7352 7252 -1 -7253 7253 4 -7254 7253 -1 -7353 7253 -1 -7254 7254 4 -7255 7254 -1 -7354 7254 -1 -7255 7255 4 -7256 7255 -1 -7355 7255 -1 -7256 7256 4 -7257 7256 -1 -7356 7256 -1 -7257 7257 4 -7258 7257 -1 -7357 7257 -1 -7258 7258 4 -7259 7258 -1 -7358 7258 -1 -7259 7259 4 -7260 7259 -1 -7359 7259 -1 -7260 7260 4 -7261 7260 -1 -7360 7260 -1 -7261 7261 4 -7262 7261 -1 -7361 7261 -1 -7262 7262 4 -7263 7262 -1 -7362 7262 -1 -7263 7263 4 -7264 7263 -1 -7363 7263 -1 -7264 7264 4 -7265 7264 -1 -7364 7264 -1 -7265 7265 4 -7266 7265 -1 -7365 7265 -1 -7266 7266 4 -7267 7266 -1 -7366 7266 -1 -7267 7267 4 -7268 7267 -1 -7367 7267 -1 -7268 7268 4 -7269 7268 -1 -7368 7268 -1 -7269 7269 4 -7270 7269 -1 -7369 7269 -1 -7270 7270 4 -7271 7270 -1 -7370 7270 -1 -7271 7271 4 -7272 7271 -1 -7371 7271 -1 -7272 7272 4 -7273 7272 -1 -7372 7272 -1 -7273 7273 4 -7274 7273 -1 -7373 7273 -1 -7274 7274 4 -7275 7274 -1 -7374 7274 -1 -7275 7275 4 -7276 7275 -1 -7375 7275 -1 -7276 7276 4 -7277 7276 -1 -7376 7276 -1 -7277 7277 4 -7278 7277 -1 -7377 7277 -1 -7278 7278 4 -7279 7278 -1 -7378 7278 -1 -7279 7279 4 -7280 7279 -1 -7379 7279 -1 -7280 7280 4 -7281 7280 -1 -7380 7280 -1 -7281 7281 4 -7282 7281 -1 -7381 7281 -1 -7282 7282 4 -7283 7282 -1 -7382 7282 -1 -7283 7283 4 -7284 7283 -1 -7383 7283 -1 -7284 7284 4 -7285 7284 -1 -7384 7284 -1 -7285 7285 4 -7286 7285 -1 -7385 7285 -1 -7286 7286 4 -7287 7286 -1 -7386 7286 -1 -7287 7287 4 -7288 7287 -1 -7387 7287 -1 -7288 7288 4 -7289 7288 -1 -7388 7288 -1 -7289 7289 4 -7290 7289 -1 -7389 7289 -1 -7290 7290 4 -7291 7290 -1 -7390 7290 -1 -7291 7291 4 -7292 7291 -1 -7391 7291 -1 -7292 7292 4 -7293 7292 -1 -7392 7292 -1 -7293 7293 4 -7294 7293 -1 -7393 7293 -1 -7294 7294 4 -7295 7294 -1 -7394 7294 -1 -7295 7295 4 -7296 7295 -1 -7395 7295 -1 -7296 7296 4 -7297 7296 -1 -7396 7296 -1 -7297 7297 4 -7298 7297 -1 -7397 7297 -1 -7298 7298 4 -7299 7298 -1 -7398 7298 -1 -7299 7299 4 -7300 7299 -1 -7399 7299 -1 -7300 7300 4 -7400 7300 -1 -7301 7301 4 -7302 7301 -1 -7401 7301 -1 -7302 7302 4 -7303 7302 -1 -7402 7302 -1 -7303 7303 4 -7304 7303 -1 -7403 7303 -1 -7304 7304 4 -7305 7304 -1 -7404 7304 -1 -7305 7305 4 -7306 7305 -1 -7405 7305 -1 -7306 7306 4 -7307 7306 -1 -7406 7306 -1 -7307 7307 4 -7308 7307 -1 -7407 7307 -1 -7308 7308 4 -7309 7308 -1 -7408 7308 -1 -7309 7309 4 -7310 7309 -1 -7409 7309 -1 -7310 7310 4 -7311 7310 -1 -7410 7310 -1 -7311 7311 4 -7312 7311 -1 -7411 7311 -1 -7312 7312 4 -7313 7312 -1 -7412 7312 -1 -7313 7313 4 -7314 7313 -1 -7413 7313 -1 -7314 7314 4 -7315 7314 -1 -7414 7314 -1 -7315 7315 4 -7316 7315 -1 -7415 7315 -1 -7316 7316 4 -7317 7316 -1 -7416 7316 -1 -7317 7317 4 -7318 7317 -1 -7417 7317 -1 -7318 7318 4 -7319 7318 -1 -7418 7318 -1 -7319 7319 4 -7320 7319 -1 -7419 7319 -1 -7320 7320 4 -7321 7320 -1 -7420 7320 -1 -7321 7321 4 -7322 7321 -1 -7421 7321 -1 -7322 7322 4 -7323 7322 -1 -7422 7322 -1 -7323 7323 4 -7324 7323 -1 -7423 7323 -1 -7324 7324 4 -7325 7324 -1 -7424 7324 -1 -7325 7325 4 -7326 7325 -1 -7425 7325 -1 -7326 7326 4 -7327 7326 -1 -7426 7326 -1 -7327 7327 4 -7328 7327 -1 -7427 7327 -1 -7328 7328 4 -7329 7328 -1 -7428 7328 -1 -7329 7329 4 -7330 7329 -1 -7429 7329 -1 -7330 7330 4 -7331 7330 -1 -7430 7330 -1 -7331 7331 4 -7332 7331 -1 -7431 7331 -1 -7332 7332 4 -7333 7332 -1 -7432 7332 -1 -7333 7333 4 -7334 7333 -1 -7433 7333 -1 -7334 7334 4 -7335 7334 -1 -7434 7334 -1 -7335 7335 4 -7336 7335 -1 -7435 7335 -1 -7336 7336 4 -7337 7336 -1 -7436 7336 -1 -7337 7337 4 -7338 7337 -1 -7437 7337 -1 -7338 7338 4 -7339 7338 -1 -7438 7338 -1 -7339 7339 4 -7340 7339 -1 -7439 7339 -1 -7340 7340 4 -7341 7340 -1 -7440 7340 -1 -7341 7341 4 -7342 7341 -1 -7441 7341 -1 -7342 7342 4 -7343 7342 -1 -7442 7342 -1 -7343 7343 4 -7344 7343 -1 -7443 7343 -1 -7344 7344 4 -7345 7344 -1 -7444 7344 -1 -7345 7345 4 -7346 7345 -1 -7445 7345 -1 -7346 7346 4 -7347 7346 -1 -7446 7346 -1 -7347 7347 4 -7348 7347 -1 -7447 7347 -1 -7348 7348 4 -7349 7348 -1 -7448 7348 -1 -7349 7349 4 -7350 7349 -1 -7449 7349 -1 -7350 7350 4 -7351 7350 -1 -7450 7350 -1 -7351 7351 4 -7352 7351 -1 -7451 7351 -1 -7352 7352 4 -7353 7352 -1 -7452 7352 -1 -7353 7353 4 -7354 7353 -1 -7453 7353 -1 -7354 7354 4 -7355 7354 -1 -7454 7354 -1 -7355 7355 4 -7356 7355 -1 -7455 7355 -1 -7356 7356 4 -7357 7356 -1 -7456 7356 -1 -7357 7357 4 -7358 7357 -1 -7457 7357 -1 -7358 7358 4 -7359 7358 -1 -7458 7358 -1 -7359 7359 4 -7360 7359 -1 -7459 7359 -1 -7360 7360 4 -7361 7360 -1 -7460 7360 -1 -7361 7361 4 -7362 7361 -1 -7461 7361 -1 -7362 7362 4 -7363 7362 -1 -7462 7362 -1 -7363 7363 4 -7364 7363 -1 -7463 7363 -1 -7364 7364 4 -7365 7364 -1 -7464 7364 -1 -7365 7365 4 -7366 7365 -1 -7465 7365 -1 -7366 7366 4 -7367 7366 -1 -7466 7366 -1 -7367 7367 4 -7368 7367 -1 -7467 7367 -1 -7368 7368 4 -7369 7368 -1 -7468 7368 -1 -7369 7369 4 -7370 7369 -1 -7469 7369 -1 -7370 7370 4 -7371 7370 -1 -7470 7370 -1 -7371 7371 4 -7372 7371 -1 -7471 7371 -1 -7372 7372 4 -7373 7372 -1 -7472 7372 -1 -7373 7373 4 -7374 7373 -1 -7473 7373 -1 -7374 7374 4 -7375 7374 -1 -7474 7374 -1 -7375 7375 4 -7376 7375 -1 -7475 7375 -1 -7376 7376 4 -7377 7376 -1 -7476 7376 -1 -7377 7377 4 -7378 7377 -1 -7477 7377 -1 -7378 7378 4 -7379 7378 -1 -7478 7378 -1 -7379 7379 4 -7380 7379 -1 -7479 7379 -1 -7380 7380 4 -7381 7380 -1 -7480 7380 -1 -7381 7381 4 -7382 7381 -1 -7481 7381 -1 -7382 7382 4 -7383 7382 -1 -7482 7382 -1 -7383 7383 4 -7384 7383 -1 -7483 7383 -1 -7384 7384 4 -7385 7384 -1 -7484 7384 -1 -7385 7385 4 -7386 7385 -1 -7485 7385 -1 -7386 7386 4 -7387 7386 -1 -7486 7386 -1 -7387 7387 4 -7388 7387 -1 -7487 7387 -1 -7388 7388 4 -7389 7388 -1 -7488 7388 -1 -7389 7389 4 -7390 7389 -1 -7489 7389 -1 -7390 7390 4 -7391 7390 -1 -7490 7390 -1 -7391 7391 4 -7392 7391 -1 -7491 7391 -1 -7392 7392 4 -7393 7392 -1 -7492 7392 -1 -7393 7393 4 -7394 7393 -1 -7493 7393 -1 -7394 7394 4 -7395 7394 -1 -7494 7394 -1 -7395 7395 4 -7396 7395 -1 -7495 7395 -1 -7396 7396 4 -7397 7396 -1 -7496 7396 -1 -7397 7397 4 -7398 7397 -1 -7497 7397 -1 -7398 7398 4 -7399 7398 -1 -7498 7398 -1 -7399 7399 4 -7400 7399 -1 -7499 7399 -1 -7400 7400 4 -7500 7400 -1 -7401 7401 4 -7402 7401 -1 -7501 7401 -1 -7402 7402 4 -7403 7402 -1 -7502 7402 -1 -7403 7403 4 -7404 7403 -1 -7503 7403 -1 -7404 7404 4 -7405 7404 -1 -7504 7404 -1 -7405 7405 4 -7406 7405 -1 -7505 7405 -1 -7406 7406 4 -7407 7406 -1 -7506 7406 -1 -7407 7407 4 -7408 7407 -1 -7507 7407 -1 -7408 7408 4 -7409 7408 -1 -7508 7408 -1 -7409 7409 4 -7410 7409 -1 -7509 7409 -1 -7410 7410 4 -7411 7410 -1 -7510 7410 -1 -7411 7411 4 -7412 7411 -1 -7511 7411 -1 -7412 7412 4 -7413 7412 -1 -7512 7412 -1 -7413 7413 4 -7414 7413 -1 -7513 7413 -1 -7414 7414 4 -7415 7414 -1 -7514 7414 -1 -7415 7415 4 -7416 7415 -1 -7515 7415 -1 -7416 7416 4 -7417 7416 -1 -7516 7416 -1 -7417 7417 4 -7418 7417 -1 -7517 7417 -1 -7418 7418 4 -7419 7418 -1 -7518 7418 -1 -7419 7419 4 -7420 7419 -1 -7519 7419 -1 -7420 7420 4 -7421 7420 -1 -7520 7420 -1 -7421 7421 4 -7422 7421 -1 -7521 7421 -1 -7422 7422 4 -7423 7422 -1 -7522 7422 -1 -7423 7423 4 -7424 7423 -1 -7523 7423 -1 -7424 7424 4 -7425 7424 -1 -7524 7424 -1 -7425 7425 4 -7426 7425 -1 -7525 7425 -1 -7426 7426 4 -7427 7426 -1 -7526 7426 -1 -7427 7427 4 -7428 7427 -1 -7527 7427 -1 -7428 7428 4 -7429 7428 -1 -7528 7428 -1 -7429 7429 4 -7430 7429 -1 -7529 7429 -1 -7430 7430 4 -7431 7430 -1 -7530 7430 -1 -7431 7431 4 -7432 7431 -1 -7531 7431 -1 -7432 7432 4 -7433 7432 -1 -7532 7432 -1 -7433 7433 4 -7434 7433 -1 -7533 7433 -1 -7434 7434 4 -7435 7434 -1 -7534 7434 -1 -7435 7435 4 -7436 7435 -1 -7535 7435 -1 -7436 7436 4 -7437 7436 -1 -7536 7436 -1 -7437 7437 4 -7438 7437 -1 -7537 7437 -1 -7438 7438 4 -7439 7438 -1 -7538 7438 -1 -7439 7439 4 -7440 7439 -1 -7539 7439 -1 -7440 7440 4 -7441 7440 -1 -7540 7440 -1 -7441 7441 4 -7442 7441 -1 -7541 7441 -1 -7442 7442 4 -7443 7442 -1 -7542 7442 -1 -7443 7443 4 -7444 7443 -1 -7543 7443 -1 -7444 7444 4 -7445 7444 -1 -7544 7444 -1 -7445 7445 4 -7446 7445 -1 -7545 7445 -1 -7446 7446 4 -7447 7446 -1 -7546 7446 -1 -7447 7447 4 -7448 7447 -1 -7547 7447 -1 -7448 7448 4 -7449 7448 -1 -7548 7448 -1 -7449 7449 4 -7450 7449 -1 -7549 7449 -1 -7450 7450 4 -7451 7450 -1 -7550 7450 -1 -7451 7451 4 -7452 7451 -1 -7551 7451 -1 -7452 7452 4 -7453 7452 -1 -7552 7452 -1 -7453 7453 4 -7454 7453 -1 -7553 7453 -1 -7454 7454 4 -7455 7454 -1 -7554 7454 -1 -7455 7455 4 -7456 7455 -1 -7555 7455 -1 -7456 7456 4 -7457 7456 -1 -7556 7456 -1 -7457 7457 4 -7458 7457 -1 -7557 7457 -1 -7458 7458 4 -7459 7458 -1 -7558 7458 -1 -7459 7459 4 -7460 7459 -1 -7559 7459 -1 -7460 7460 4 -7461 7460 -1 -7560 7460 -1 -7461 7461 4 -7462 7461 -1 -7561 7461 -1 -7462 7462 4 -7463 7462 -1 -7562 7462 -1 -7463 7463 4 -7464 7463 -1 -7563 7463 -1 -7464 7464 4 -7465 7464 -1 -7564 7464 -1 -7465 7465 4 -7466 7465 -1 -7565 7465 -1 -7466 7466 4 -7467 7466 -1 -7566 7466 -1 -7467 7467 4 -7468 7467 -1 -7567 7467 -1 -7468 7468 4 -7469 7468 -1 -7568 7468 -1 -7469 7469 4 -7470 7469 -1 -7569 7469 -1 -7470 7470 4 -7471 7470 -1 -7570 7470 -1 -7471 7471 4 -7472 7471 -1 -7571 7471 -1 -7472 7472 4 -7473 7472 -1 -7572 7472 -1 -7473 7473 4 -7474 7473 -1 -7573 7473 -1 -7474 7474 4 -7475 7474 -1 -7574 7474 -1 -7475 7475 4 -7476 7475 -1 -7575 7475 -1 -7476 7476 4 -7477 7476 -1 -7576 7476 -1 -7477 7477 4 -7478 7477 -1 -7577 7477 -1 -7478 7478 4 -7479 7478 -1 -7578 7478 -1 -7479 7479 4 -7480 7479 -1 -7579 7479 -1 -7480 7480 4 -7481 7480 -1 -7580 7480 -1 -7481 7481 4 -7482 7481 -1 -7581 7481 -1 -7482 7482 4 -7483 7482 -1 -7582 7482 -1 -7483 7483 4 -7484 7483 -1 -7583 7483 -1 -7484 7484 4 -7485 7484 -1 -7584 7484 -1 -7485 7485 4 -7486 7485 -1 -7585 7485 -1 -7486 7486 4 -7487 7486 -1 -7586 7486 -1 -7487 7487 4 -7488 7487 -1 -7587 7487 -1 -7488 7488 4 -7489 7488 -1 -7588 7488 -1 -7489 7489 4 -7490 7489 -1 -7589 7489 -1 -7490 7490 4 -7491 7490 -1 -7590 7490 -1 -7491 7491 4 -7492 7491 -1 -7591 7491 -1 -7492 7492 4 -7493 7492 -1 -7592 7492 -1 -7493 7493 4 -7494 7493 -1 -7593 7493 -1 -7494 7494 4 -7495 7494 -1 -7594 7494 -1 -7495 7495 4 -7496 7495 -1 -7595 7495 -1 -7496 7496 4 -7497 7496 -1 -7596 7496 -1 -7497 7497 4 -7498 7497 -1 -7597 7497 -1 -7498 7498 4 -7499 7498 -1 -7598 7498 -1 -7499 7499 4 -7500 7499 -1 -7599 7499 -1 -7500 7500 4 -7600 7500 -1 -7501 7501 4 -7502 7501 -1 -7601 7501 -1 -7502 7502 4 -7503 7502 -1 -7602 7502 -1 -7503 7503 4 -7504 7503 -1 -7603 7503 -1 -7504 7504 4 -7505 7504 -1 -7604 7504 -1 -7505 7505 4 -7506 7505 -1 -7605 7505 -1 -7506 7506 4 -7507 7506 -1 -7606 7506 -1 -7507 7507 4 -7508 7507 -1 -7607 7507 -1 -7508 7508 4 -7509 7508 -1 -7608 7508 -1 -7509 7509 4 -7510 7509 -1 -7609 7509 -1 -7510 7510 4 -7511 7510 -1 -7610 7510 -1 -7511 7511 4 -7512 7511 -1 -7611 7511 -1 -7512 7512 4 -7513 7512 -1 -7612 7512 -1 -7513 7513 4 -7514 7513 -1 -7613 7513 -1 -7514 7514 4 -7515 7514 -1 -7614 7514 -1 -7515 7515 4 -7516 7515 -1 -7615 7515 -1 -7516 7516 4 -7517 7516 -1 -7616 7516 -1 -7517 7517 4 -7518 7517 -1 -7617 7517 -1 -7518 7518 4 -7519 7518 -1 -7618 7518 -1 -7519 7519 4 -7520 7519 -1 -7619 7519 -1 -7520 7520 4 -7521 7520 -1 -7620 7520 -1 -7521 7521 4 -7522 7521 -1 -7621 7521 -1 -7522 7522 4 -7523 7522 -1 -7622 7522 -1 -7523 7523 4 -7524 7523 -1 -7623 7523 -1 -7524 7524 4 -7525 7524 -1 -7624 7524 -1 -7525 7525 4 -7526 7525 -1 -7625 7525 -1 -7526 7526 4 -7527 7526 -1 -7626 7526 -1 -7527 7527 4 -7528 7527 -1 -7627 7527 -1 -7528 7528 4 -7529 7528 -1 -7628 7528 -1 -7529 7529 4 -7530 7529 -1 -7629 7529 -1 -7530 7530 4 -7531 7530 -1 -7630 7530 -1 -7531 7531 4 -7532 7531 -1 -7631 7531 -1 -7532 7532 4 -7533 7532 -1 -7632 7532 -1 -7533 7533 4 -7534 7533 -1 -7633 7533 -1 -7534 7534 4 -7535 7534 -1 -7634 7534 -1 -7535 7535 4 -7536 7535 -1 -7635 7535 -1 -7536 7536 4 -7537 7536 -1 -7636 7536 -1 -7537 7537 4 -7538 7537 -1 -7637 7537 -1 -7538 7538 4 -7539 7538 -1 -7638 7538 -1 -7539 7539 4 -7540 7539 -1 -7639 7539 -1 -7540 7540 4 -7541 7540 -1 -7640 7540 -1 -7541 7541 4 -7542 7541 -1 -7641 7541 -1 -7542 7542 4 -7543 7542 -1 -7642 7542 -1 -7543 7543 4 -7544 7543 -1 -7643 7543 -1 -7544 7544 4 -7545 7544 -1 -7644 7544 -1 -7545 7545 4 -7546 7545 -1 -7645 7545 -1 -7546 7546 4 -7547 7546 -1 -7646 7546 -1 -7547 7547 4 -7548 7547 -1 -7647 7547 -1 -7548 7548 4 -7549 7548 -1 -7648 7548 -1 -7549 7549 4 -7550 7549 -1 -7649 7549 -1 -7550 7550 4 -7551 7550 -1 -7650 7550 -1 -7551 7551 4 -7552 7551 -1 -7651 7551 -1 -7552 7552 4 -7553 7552 -1 -7652 7552 -1 -7553 7553 4 -7554 7553 -1 -7653 7553 -1 -7554 7554 4 -7555 7554 -1 -7654 7554 -1 -7555 7555 4 -7556 7555 -1 -7655 7555 -1 -7556 7556 4 -7557 7556 -1 -7656 7556 -1 -7557 7557 4 -7558 7557 -1 -7657 7557 -1 -7558 7558 4 -7559 7558 -1 -7658 7558 -1 -7559 7559 4 -7560 7559 -1 -7659 7559 -1 -7560 7560 4 -7561 7560 -1 -7660 7560 -1 -7561 7561 4 -7562 7561 -1 -7661 7561 -1 -7562 7562 4 -7563 7562 -1 -7662 7562 -1 -7563 7563 4 -7564 7563 -1 -7663 7563 -1 -7564 7564 4 -7565 7564 -1 -7664 7564 -1 -7565 7565 4 -7566 7565 -1 -7665 7565 -1 -7566 7566 4 -7567 7566 -1 -7666 7566 -1 -7567 7567 4 -7568 7567 -1 -7667 7567 -1 -7568 7568 4 -7569 7568 -1 -7668 7568 -1 -7569 7569 4 -7570 7569 -1 -7669 7569 -1 -7570 7570 4 -7571 7570 -1 -7670 7570 -1 -7571 7571 4 -7572 7571 -1 -7671 7571 -1 -7572 7572 4 -7573 7572 -1 -7672 7572 -1 -7573 7573 4 -7574 7573 -1 -7673 7573 -1 -7574 7574 4 -7575 7574 -1 -7674 7574 -1 -7575 7575 4 -7576 7575 -1 -7675 7575 -1 -7576 7576 4 -7577 7576 -1 -7676 7576 -1 -7577 7577 4 -7578 7577 -1 -7677 7577 -1 -7578 7578 4 -7579 7578 -1 -7678 7578 -1 -7579 7579 4 -7580 7579 -1 -7679 7579 -1 -7580 7580 4 -7581 7580 -1 -7680 7580 -1 -7581 7581 4 -7582 7581 -1 -7681 7581 -1 -7582 7582 4 -7583 7582 -1 -7682 7582 -1 -7583 7583 4 -7584 7583 -1 -7683 7583 -1 -7584 7584 4 -7585 7584 -1 -7684 7584 -1 -7585 7585 4 -7586 7585 -1 -7685 7585 -1 -7586 7586 4 -7587 7586 -1 -7686 7586 -1 -7587 7587 4 -7588 7587 -1 -7687 7587 -1 -7588 7588 4 -7589 7588 -1 -7688 7588 -1 -7589 7589 4 -7590 7589 -1 -7689 7589 -1 -7590 7590 4 -7591 7590 -1 -7690 7590 -1 -7591 7591 4 -7592 7591 -1 -7691 7591 -1 -7592 7592 4 -7593 7592 -1 -7692 7592 -1 -7593 7593 4 -7594 7593 -1 -7693 7593 -1 -7594 7594 4 -7595 7594 -1 -7694 7594 -1 -7595 7595 4 -7596 7595 -1 -7695 7595 -1 -7596 7596 4 -7597 7596 -1 -7696 7596 -1 -7597 7597 4 -7598 7597 -1 -7697 7597 -1 -7598 7598 4 -7599 7598 -1 -7698 7598 -1 -7599 7599 4 -7600 7599 -1 -7699 7599 -1 -7600 7600 4 -7700 7600 -1 -7601 7601 4 -7602 7601 -1 -7701 7601 -1 -7602 7602 4 -7603 7602 -1 -7702 7602 -1 -7603 7603 4 -7604 7603 -1 -7703 7603 -1 -7604 7604 4 -7605 7604 -1 -7704 7604 -1 -7605 7605 4 -7606 7605 -1 -7705 7605 -1 -7606 7606 4 -7607 7606 -1 -7706 7606 -1 -7607 7607 4 -7608 7607 -1 -7707 7607 -1 -7608 7608 4 -7609 7608 -1 -7708 7608 -1 -7609 7609 4 -7610 7609 -1 -7709 7609 -1 -7610 7610 4 -7611 7610 -1 -7710 7610 -1 -7611 7611 4 -7612 7611 -1 -7711 7611 -1 -7612 7612 4 -7613 7612 -1 -7712 7612 -1 -7613 7613 4 -7614 7613 -1 -7713 7613 -1 -7614 7614 4 -7615 7614 -1 -7714 7614 -1 -7615 7615 4 -7616 7615 -1 -7715 7615 -1 -7616 7616 4 -7617 7616 -1 -7716 7616 -1 -7617 7617 4 -7618 7617 -1 -7717 7617 -1 -7618 7618 4 -7619 7618 -1 -7718 7618 -1 -7619 7619 4 -7620 7619 -1 -7719 7619 -1 -7620 7620 4 -7621 7620 -1 -7720 7620 -1 -7621 7621 4 -7622 7621 -1 -7721 7621 -1 -7622 7622 4 -7623 7622 -1 -7722 7622 -1 -7623 7623 4 -7624 7623 -1 -7723 7623 -1 -7624 7624 4 -7625 7624 -1 -7724 7624 -1 -7625 7625 4 -7626 7625 -1 -7725 7625 -1 -7626 7626 4 -7627 7626 -1 -7726 7626 -1 -7627 7627 4 -7628 7627 -1 -7727 7627 -1 -7628 7628 4 -7629 7628 -1 -7728 7628 -1 -7629 7629 4 -7630 7629 -1 -7729 7629 -1 -7630 7630 4 -7631 7630 -1 -7730 7630 -1 -7631 7631 4 -7632 7631 -1 -7731 7631 -1 -7632 7632 4 -7633 7632 -1 -7732 7632 -1 -7633 7633 4 -7634 7633 -1 -7733 7633 -1 -7634 7634 4 -7635 7634 -1 -7734 7634 -1 -7635 7635 4 -7636 7635 -1 -7735 7635 -1 -7636 7636 4 -7637 7636 -1 -7736 7636 -1 -7637 7637 4 -7638 7637 -1 -7737 7637 -1 -7638 7638 4 -7639 7638 -1 -7738 7638 -1 -7639 7639 4 -7640 7639 -1 -7739 7639 -1 -7640 7640 4 -7641 7640 -1 -7740 7640 -1 -7641 7641 4 -7642 7641 -1 -7741 7641 -1 -7642 7642 4 -7643 7642 -1 -7742 7642 -1 -7643 7643 4 -7644 7643 -1 -7743 7643 -1 -7644 7644 4 -7645 7644 -1 -7744 7644 -1 -7645 7645 4 -7646 7645 -1 -7745 7645 -1 -7646 7646 4 -7647 7646 -1 -7746 7646 -1 -7647 7647 4 -7648 7647 -1 -7747 7647 -1 -7648 7648 4 -7649 7648 -1 -7748 7648 -1 -7649 7649 4 -7650 7649 -1 -7749 7649 -1 -7650 7650 4 -7651 7650 -1 -7750 7650 -1 -7651 7651 4 -7652 7651 -1 -7751 7651 -1 -7652 7652 4 -7653 7652 -1 -7752 7652 -1 -7653 7653 4 -7654 7653 -1 -7753 7653 -1 -7654 7654 4 -7655 7654 -1 -7754 7654 -1 -7655 7655 4 -7656 7655 -1 -7755 7655 -1 -7656 7656 4 -7657 7656 -1 -7756 7656 -1 -7657 7657 4 -7658 7657 -1 -7757 7657 -1 -7658 7658 4 -7659 7658 -1 -7758 7658 -1 -7659 7659 4 -7660 7659 -1 -7759 7659 -1 -7660 7660 4 -7661 7660 -1 -7760 7660 -1 -7661 7661 4 -7662 7661 -1 -7761 7661 -1 -7662 7662 4 -7663 7662 -1 -7762 7662 -1 -7663 7663 4 -7664 7663 -1 -7763 7663 -1 -7664 7664 4 -7665 7664 -1 -7764 7664 -1 -7665 7665 4 -7666 7665 -1 -7765 7665 -1 -7666 7666 4 -7667 7666 -1 -7766 7666 -1 -7667 7667 4 -7668 7667 -1 -7767 7667 -1 -7668 7668 4 -7669 7668 -1 -7768 7668 -1 -7669 7669 4 -7670 7669 -1 -7769 7669 -1 -7670 7670 4 -7671 7670 -1 -7770 7670 -1 -7671 7671 4 -7672 7671 -1 -7771 7671 -1 -7672 7672 4 -7673 7672 -1 -7772 7672 -1 -7673 7673 4 -7674 7673 -1 -7773 7673 -1 -7674 7674 4 -7675 7674 -1 -7774 7674 -1 -7675 7675 4 -7676 7675 -1 -7775 7675 -1 -7676 7676 4 -7677 7676 -1 -7776 7676 -1 -7677 7677 4 -7678 7677 -1 -7777 7677 -1 -7678 7678 4 -7679 7678 -1 -7778 7678 -1 -7679 7679 4 -7680 7679 -1 -7779 7679 -1 -7680 7680 4 -7681 7680 -1 -7780 7680 -1 -7681 7681 4 -7682 7681 -1 -7781 7681 -1 -7682 7682 4 -7683 7682 -1 -7782 7682 -1 -7683 7683 4 -7684 7683 -1 -7783 7683 -1 -7684 7684 4 -7685 7684 -1 -7784 7684 -1 -7685 7685 4 -7686 7685 -1 -7785 7685 -1 -7686 7686 4 -7687 7686 -1 -7786 7686 -1 -7687 7687 4 -7688 7687 -1 -7787 7687 -1 -7688 7688 4 -7689 7688 -1 -7788 7688 -1 -7689 7689 4 -7690 7689 -1 -7789 7689 -1 -7690 7690 4 -7691 7690 -1 -7790 7690 -1 -7691 7691 4 -7692 7691 -1 -7791 7691 -1 -7692 7692 4 -7693 7692 -1 -7792 7692 -1 -7693 7693 4 -7694 7693 -1 -7793 7693 -1 -7694 7694 4 -7695 7694 -1 -7794 7694 -1 -7695 7695 4 -7696 7695 -1 -7795 7695 -1 -7696 7696 4 -7697 7696 -1 -7796 7696 -1 -7697 7697 4 -7698 7697 -1 -7797 7697 -1 -7698 7698 4 -7699 7698 -1 -7798 7698 -1 -7699 7699 4 -7700 7699 -1 -7799 7699 -1 -7700 7700 4 -7800 7700 -1 -7701 7701 4 -7702 7701 -1 -7801 7701 -1 -7702 7702 4 -7703 7702 -1 -7802 7702 -1 -7703 7703 4 -7704 7703 -1 -7803 7703 -1 -7704 7704 4 -7705 7704 -1 -7804 7704 -1 -7705 7705 4 -7706 7705 -1 -7805 7705 -1 -7706 7706 4 -7707 7706 -1 -7806 7706 -1 -7707 7707 4 -7708 7707 -1 -7807 7707 -1 -7708 7708 4 -7709 7708 -1 -7808 7708 -1 -7709 7709 4 -7710 7709 -1 -7809 7709 -1 -7710 7710 4 -7711 7710 -1 -7810 7710 -1 -7711 7711 4 -7712 7711 -1 -7811 7711 -1 -7712 7712 4 -7713 7712 -1 -7812 7712 -1 -7713 7713 4 -7714 7713 -1 -7813 7713 -1 -7714 7714 4 -7715 7714 -1 -7814 7714 -1 -7715 7715 4 -7716 7715 -1 -7815 7715 -1 -7716 7716 4 -7717 7716 -1 -7816 7716 -1 -7717 7717 4 -7718 7717 -1 -7817 7717 -1 -7718 7718 4 -7719 7718 -1 -7818 7718 -1 -7719 7719 4 -7720 7719 -1 -7819 7719 -1 -7720 7720 4 -7721 7720 -1 -7820 7720 -1 -7721 7721 4 -7722 7721 -1 -7821 7721 -1 -7722 7722 4 -7723 7722 -1 -7822 7722 -1 -7723 7723 4 -7724 7723 -1 -7823 7723 -1 -7724 7724 4 -7725 7724 -1 -7824 7724 -1 -7725 7725 4 -7726 7725 -1 -7825 7725 -1 -7726 7726 4 -7727 7726 -1 -7826 7726 -1 -7727 7727 4 -7728 7727 -1 -7827 7727 -1 -7728 7728 4 -7729 7728 -1 -7828 7728 -1 -7729 7729 4 -7730 7729 -1 -7829 7729 -1 -7730 7730 4 -7731 7730 -1 -7830 7730 -1 -7731 7731 4 -7732 7731 -1 -7831 7731 -1 -7732 7732 4 -7733 7732 -1 -7832 7732 -1 -7733 7733 4 -7734 7733 -1 -7833 7733 -1 -7734 7734 4 -7735 7734 -1 -7834 7734 -1 -7735 7735 4 -7736 7735 -1 -7835 7735 -1 -7736 7736 4 -7737 7736 -1 -7836 7736 -1 -7737 7737 4 -7738 7737 -1 -7837 7737 -1 -7738 7738 4 -7739 7738 -1 -7838 7738 -1 -7739 7739 4 -7740 7739 -1 -7839 7739 -1 -7740 7740 4 -7741 7740 -1 -7840 7740 -1 -7741 7741 4 -7742 7741 -1 -7841 7741 -1 -7742 7742 4 -7743 7742 -1 -7842 7742 -1 -7743 7743 4 -7744 7743 -1 -7843 7743 -1 -7744 7744 4 -7745 7744 -1 -7844 7744 -1 -7745 7745 4 -7746 7745 -1 -7845 7745 -1 -7746 7746 4 -7747 7746 -1 -7846 7746 -1 -7747 7747 4 -7748 7747 -1 -7847 7747 -1 -7748 7748 4 -7749 7748 -1 -7848 7748 -1 -7749 7749 4 -7750 7749 -1 -7849 7749 -1 -7750 7750 4 -7751 7750 -1 -7850 7750 -1 -7751 7751 4 -7752 7751 -1 -7851 7751 -1 -7752 7752 4 -7753 7752 -1 -7852 7752 -1 -7753 7753 4 -7754 7753 -1 -7853 7753 -1 -7754 7754 4 -7755 7754 -1 -7854 7754 -1 -7755 7755 4 -7756 7755 -1 -7855 7755 -1 -7756 7756 4 -7757 7756 -1 -7856 7756 -1 -7757 7757 4 -7758 7757 -1 -7857 7757 -1 -7758 7758 4 -7759 7758 -1 -7858 7758 -1 -7759 7759 4 -7760 7759 -1 -7859 7759 -1 -7760 7760 4 -7761 7760 -1 -7860 7760 -1 -7761 7761 4 -7762 7761 -1 -7861 7761 -1 -7762 7762 4 -7763 7762 -1 -7862 7762 -1 -7763 7763 4 -7764 7763 -1 -7863 7763 -1 -7764 7764 4 -7765 7764 -1 -7864 7764 -1 -7765 7765 4 -7766 7765 -1 -7865 7765 -1 -7766 7766 4 -7767 7766 -1 -7866 7766 -1 -7767 7767 4 -7768 7767 -1 -7867 7767 -1 -7768 7768 4 -7769 7768 -1 -7868 7768 -1 -7769 7769 4 -7770 7769 -1 -7869 7769 -1 -7770 7770 4 -7771 7770 -1 -7870 7770 -1 -7771 7771 4 -7772 7771 -1 -7871 7771 -1 -7772 7772 4 -7773 7772 -1 -7872 7772 -1 -7773 7773 4 -7774 7773 -1 -7873 7773 -1 -7774 7774 4 -7775 7774 -1 -7874 7774 -1 -7775 7775 4 -7776 7775 -1 -7875 7775 -1 -7776 7776 4 -7777 7776 -1 -7876 7776 -1 -7777 7777 4 -7778 7777 -1 -7877 7777 -1 -7778 7778 4 -7779 7778 -1 -7878 7778 -1 -7779 7779 4 -7780 7779 -1 -7879 7779 -1 -7780 7780 4 -7781 7780 -1 -7880 7780 -1 -7781 7781 4 -7782 7781 -1 -7881 7781 -1 -7782 7782 4 -7783 7782 -1 -7882 7782 -1 -7783 7783 4 -7784 7783 -1 -7883 7783 -1 -7784 7784 4 -7785 7784 -1 -7884 7784 -1 -7785 7785 4 -7786 7785 -1 -7885 7785 -1 -7786 7786 4 -7787 7786 -1 -7886 7786 -1 -7787 7787 4 -7788 7787 -1 -7887 7787 -1 -7788 7788 4 -7789 7788 -1 -7888 7788 -1 -7789 7789 4 -7790 7789 -1 -7889 7789 -1 -7790 7790 4 -7791 7790 -1 -7890 7790 -1 -7791 7791 4 -7792 7791 -1 -7891 7791 -1 -7792 7792 4 -7793 7792 -1 -7892 7792 -1 -7793 7793 4 -7794 7793 -1 -7893 7793 -1 -7794 7794 4 -7795 7794 -1 -7894 7794 -1 -7795 7795 4 -7796 7795 -1 -7895 7795 -1 -7796 7796 4 -7797 7796 -1 -7896 7796 -1 -7797 7797 4 -7798 7797 -1 -7897 7797 -1 -7798 7798 4 -7799 7798 -1 -7898 7798 -1 -7799 7799 4 -7800 7799 -1 -7899 7799 -1 -7800 7800 4 -7900 7800 -1 -7801 7801 4 -7802 7801 -1 -7901 7801 -1 -7802 7802 4 -7803 7802 -1 -7902 7802 -1 -7803 7803 4 -7804 7803 -1 -7903 7803 -1 -7804 7804 4 -7805 7804 -1 -7904 7804 -1 -7805 7805 4 -7806 7805 -1 -7905 7805 -1 -7806 7806 4 -7807 7806 -1 -7906 7806 -1 -7807 7807 4 -7808 7807 -1 -7907 7807 -1 -7808 7808 4 -7809 7808 -1 -7908 7808 -1 -7809 7809 4 -7810 7809 -1 -7909 7809 -1 -7810 7810 4 -7811 7810 -1 -7910 7810 -1 -7811 7811 4 -7812 7811 -1 -7911 7811 -1 -7812 7812 4 -7813 7812 -1 -7912 7812 -1 -7813 7813 4 -7814 7813 -1 -7913 7813 -1 -7814 7814 4 -7815 7814 -1 -7914 7814 -1 -7815 7815 4 -7816 7815 -1 -7915 7815 -1 -7816 7816 4 -7817 7816 -1 -7916 7816 -1 -7817 7817 4 -7818 7817 -1 -7917 7817 -1 -7818 7818 4 -7819 7818 -1 -7918 7818 -1 -7819 7819 4 -7820 7819 -1 -7919 7819 -1 -7820 7820 4 -7821 7820 -1 -7920 7820 -1 -7821 7821 4 -7822 7821 -1 -7921 7821 -1 -7822 7822 4 -7823 7822 -1 -7922 7822 -1 -7823 7823 4 -7824 7823 -1 -7923 7823 -1 -7824 7824 4 -7825 7824 -1 -7924 7824 -1 -7825 7825 4 -7826 7825 -1 -7925 7825 -1 -7826 7826 4 -7827 7826 -1 -7926 7826 -1 -7827 7827 4 -7828 7827 -1 -7927 7827 -1 -7828 7828 4 -7829 7828 -1 -7928 7828 -1 -7829 7829 4 -7830 7829 -1 -7929 7829 -1 -7830 7830 4 -7831 7830 -1 -7930 7830 -1 -7831 7831 4 -7832 7831 -1 -7931 7831 -1 -7832 7832 4 -7833 7832 -1 -7932 7832 -1 -7833 7833 4 -7834 7833 -1 -7933 7833 -1 -7834 7834 4 -7835 7834 -1 -7934 7834 -1 -7835 7835 4 -7836 7835 -1 -7935 7835 -1 -7836 7836 4 -7837 7836 -1 -7936 7836 -1 -7837 7837 4 -7838 7837 -1 -7937 7837 -1 -7838 7838 4 -7839 7838 -1 -7938 7838 -1 -7839 7839 4 -7840 7839 -1 -7939 7839 -1 -7840 7840 4 -7841 7840 -1 -7940 7840 -1 -7841 7841 4 -7842 7841 -1 -7941 7841 -1 -7842 7842 4 -7843 7842 -1 -7942 7842 -1 -7843 7843 4 -7844 7843 -1 -7943 7843 -1 -7844 7844 4 -7845 7844 -1 -7944 7844 -1 -7845 7845 4 -7846 7845 -1 -7945 7845 -1 -7846 7846 4 -7847 7846 -1 -7946 7846 -1 -7847 7847 4 -7848 7847 -1 -7947 7847 -1 -7848 7848 4 -7849 7848 -1 -7948 7848 -1 -7849 7849 4 -7850 7849 -1 -7949 7849 -1 -7850 7850 4 -7851 7850 -1 -7950 7850 -1 -7851 7851 4 -7852 7851 -1 -7951 7851 -1 -7852 7852 4 -7853 7852 -1 -7952 7852 -1 -7853 7853 4 -7854 7853 -1 -7953 7853 -1 -7854 7854 4 -7855 7854 -1 -7954 7854 -1 -7855 7855 4 -7856 7855 -1 -7955 7855 -1 -7856 7856 4 -7857 7856 -1 -7956 7856 -1 -7857 7857 4 -7858 7857 -1 -7957 7857 -1 -7858 7858 4 -7859 7858 -1 -7958 7858 -1 -7859 7859 4 -7860 7859 -1 -7959 7859 -1 -7860 7860 4 -7861 7860 -1 -7960 7860 -1 -7861 7861 4 -7862 7861 -1 -7961 7861 -1 -7862 7862 4 -7863 7862 -1 -7962 7862 -1 -7863 7863 4 -7864 7863 -1 -7963 7863 -1 -7864 7864 4 -7865 7864 -1 -7964 7864 -1 -7865 7865 4 -7866 7865 -1 -7965 7865 -1 -7866 7866 4 -7867 7866 -1 -7966 7866 -1 -7867 7867 4 -7868 7867 -1 -7967 7867 -1 -7868 7868 4 -7869 7868 -1 -7968 7868 -1 -7869 7869 4 -7870 7869 -1 -7969 7869 -1 -7870 7870 4 -7871 7870 -1 -7970 7870 -1 -7871 7871 4 -7872 7871 -1 -7971 7871 -1 -7872 7872 4 -7873 7872 -1 -7972 7872 -1 -7873 7873 4 -7874 7873 -1 -7973 7873 -1 -7874 7874 4 -7875 7874 -1 -7974 7874 -1 -7875 7875 4 -7876 7875 -1 -7975 7875 -1 -7876 7876 4 -7877 7876 -1 -7976 7876 -1 -7877 7877 4 -7878 7877 -1 -7977 7877 -1 -7878 7878 4 -7879 7878 -1 -7978 7878 -1 -7879 7879 4 -7880 7879 -1 -7979 7879 -1 -7880 7880 4 -7881 7880 -1 -7980 7880 -1 -7881 7881 4 -7882 7881 -1 -7981 7881 -1 -7882 7882 4 -7883 7882 -1 -7982 7882 -1 -7883 7883 4 -7884 7883 -1 -7983 7883 -1 -7884 7884 4 -7885 7884 -1 -7984 7884 -1 -7885 7885 4 -7886 7885 -1 -7985 7885 -1 -7886 7886 4 -7887 7886 -1 -7986 7886 -1 -7887 7887 4 -7888 7887 -1 -7987 7887 -1 -7888 7888 4 -7889 7888 -1 -7988 7888 -1 -7889 7889 4 -7890 7889 -1 -7989 7889 -1 -7890 7890 4 -7891 7890 -1 -7990 7890 -1 -7891 7891 4 -7892 7891 -1 -7991 7891 -1 -7892 7892 4 -7893 7892 -1 -7992 7892 -1 -7893 7893 4 -7894 7893 -1 -7993 7893 -1 -7894 7894 4 -7895 7894 -1 -7994 7894 -1 -7895 7895 4 -7896 7895 -1 -7995 7895 -1 -7896 7896 4 -7897 7896 -1 -7996 7896 -1 -7897 7897 4 -7898 7897 -1 -7997 7897 -1 -7898 7898 4 -7899 7898 -1 -7998 7898 -1 -7899 7899 4 -7900 7899 -1 -7999 7899 -1 -7900 7900 4 -8000 7900 -1 -7901 7901 4 -7902 7901 -1 -8001 7901 -1 -7902 7902 4 -7903 7902 -1 -8002 7902 -1 -7903 7903 4 -7904 7903 -1 -8003 7903 -1 -7904 7904 4 -7905 7904 -1 -8004 7904 -1 -7905 7905 4 -7906 7905 -1 -8005 7905 -1 -7906 7906 4 -7907 7906 -1 -8006 7906 -1 -7907 7907 4 -7908 7907 -1 -8007 7907 -1 -7908 7908 4 -7909 7908 -1 -8008 7908 -1 -7909 7909 4 -7910 7909 -1 -8009 7909 -1 -7910 7910 4 -7911 7910 -1 -8010 7910 -1 -7911 7911 4 -7912 7911 -1 -8011 7911 -1 -7912 7912 4 -7913 7912 -1 -8012 7912 -1 -7913 7913 4 -7914 7913 -1 -8013 7913 -1 -7914 7914 4 -7915 7914 -1 -8014 7914 -1 -7915 7915 4 -7916 7915 -1 -8015 7915 -1 -7916 7916 4 -7917 7916 -1 -8016 7916 -1 -7917 7917 4 -7918 7917 -1 -8017 7917 -1 -7918 7918 4 -7919 7918 -1 -8018 7918 -1 -7919 7919 4 -7920 7919 -1 -8019 7919 -1 -7920 7920 4 -7921 7920 -1 -8020 7920 -1 -7921 7921 4 -7922 7921 -1 -8021 7921 -1 -7922 7922 4 -7923 7922 -1 -8022 7922 -1 -7923 7923 4 -7924 7923 -1 -8023 7923 -1 -7924 7924 4 -7925 7924 -1 -8024 7924 -1 -7925 7925 4 -7926 7925 -1 -8025 7925 -1 -7926 7926 4 -7927 7926 -1 -8026 7926 -1 -7927 7927 4 -7928 7927 -1 -8027 7927 -1 -7928 7928 4 -7929 7928 -1 -8028 7928 -1 -7929 7929 4 -7930 7929 -1 -8029 7929 -1 -7930 7930 4 -7931 7930 -1 -8030 7930 -1 -7931 7931 4 -7932 7931 -1 -8031 7931 -1 -7932 7932 4 -7933 7932 -1 -8032 7932 -1 -7933 7933 4 -7934 7933 -1 -8033 7933 -1 -7934 7934 4 -7935 7934 -1 -8034 7934 -1 -7935 7935 4 -7936 7935 -1 -8035 7935 -1 -7936 7936 4 -7937 7936 -1 -8036 7936 -1 -7937 7937 4 -7938 7937 -1 -8037 7937 -1 -7938 7938 4 -7939 7938 -1 -8038 7938 -1 -7939 7939 4 -7940 7939 -1 -8039 7939 -1 -7940 7940 4 -7941 7940 -1 -8040 7940 -1 -7941 7941 4 -7942 7941 -1 -8041 7941 -1 -7942 7942 4 -7943 7942 -1 -8042 7942 -1 -7943 7943 4 -7944 7943 -1 -8043 7943 -1 -7944 7944 4 -7945 7944 -1 -8044 7944 -1 -7945 7945 4 -7946 7945 -1 -8045 7945 -1 -7946 7946 4 -7947 7946 -1 -8046 7946 -1 -7947 7947 4 -7948 7947 -1 -8047 7947 -1 -7948 7948 4 -7949 7948 -1 -8048 7948 -1 -7949 7949 4 -7950 7949 -1 -8049 7949 -1 -7950 7950 4 -7951 7950 -1 -8050 7950 -1 -7951 7951 4 -7952 7951 -1 -8051 7951 -1 -7952 7952 4 -7953 7952 -1 -8052 7952 -1 -7953 7953 4 -7954 7953 -1 -8053 7953 -1 -7954 7954 4 -7955 7954 -1 -8054 7954 -1 -7955 7955 4 -7956 7955 -1 -8055 7955 -1 -7956 7956 4 -7957 7956 -1 -8056 7956 -1 -7957 7957 4 -7958 7957 -1 -8057 7957 -1 -7958 7958 4 -7959 7958 -1 -8058 7958 -1 -7959 7959 4 -7960 7959 -1 -8059 7959 -1 -7960 7960 4 -7961 7960 -1 -8060 7960 -1 -7961 7961 4 -7962 7961 -1 -8061 7961 -1 -7962 7962 4 -7963 7962 -1 -8062 7962 -1 -7963 7963 4 -7964 7963 -1 -8063 7963 -1 -7964 7964 4 -7965 7964 -1 -8064 7964 -1 -7965 7965 4 -7966 7965 -1 -8065 7965 -1 -7966 7966 4 -7967 7966 -1 -8066 7966 -1 -7967 7967 4 -7968 7967 -1 -8067 7967 -1 -7968 7968 4 -7969 7968 -1 -8068 7968 -1 -7969 7969 4 -7970 7969 -1 -8069 7969 -1 -7970 7970 4 -7971 7970 -1 -8070 7970 -1 -7971 7971 4 -7972 7971 -1 -8071 7971 -1 -7972 7972 4 -7973 7972 -1 -8072 7972 -1 -7973 7973 4 -7974 7973 -1 -8073 7973 -1 -7974 7974 4 -7975 7974 -1 -8074 7974 -1 -7975 7975 4 -7976 7975 -1 -8075 7975 -1 -7976 7976 4 -7977 7976 -1 -8076 7976 -1 -7977 7977 4 -7978 7977 -1 -8077 7977 -1 -7978 7978 4 -7979 7978 -1 -8078 7978 -1 -7979 7979 4 -7980 7979 -1 -8079 7979 -1 -7980 7980 4 -7981 7980 -1 -8080 7980 -1 -7981 7981 4 -7982 7981 -1 -8081 7981 -1 -7982 7982 4 -7983 7982 -1 -8082 7982 -1 -7983 7983 4 -7984 7983 -1 -8083 7983 -1 -7984 7984 4 -7985 7984 -1 -8084 7984 -1 -7985 7985 4 -7986 7985 -1 -8085 7985 -1 -7986 7986 4 -7987 7986 -1 -8086 7986 -1 -7987 7987 4 -7988 7987 -1 -8087 7987 -1 -7988 7988 4 -7989 7988 -1 -8088 7988 -1 -7989 7989 4 -7990 7989 -1 -8089 7989 -1 -7990 7990 4 -7991 7990 -1 -8090 7990 -1 -7991 7991 4 -7992 7991 -1 -8091 7991 -1 -7992 7992 4 -7993 7992 -1 -8092 7992 -1 -7993 7993 4 -7994 7993 -1 -8093 7993 -1 -7994 7994 4 -7995 7994 -1 -8094 7994 -1 -7995 7995 4 -7996 7995 -1 -8095 7995 -1 -7996 7996 4 -7997 7996 -1 -8096 7996 -1 -7997 7997 4 -7998 7997 -1 -8097 7997 -1 -7998 7998 4 -7999 7998 -1 -8098 7998 -1 -7999 7999 4 -8000 7999 -1 -8099 7999 -1 -8000 8000 4 -8100 8000 -1 -8001 8001 4 -8002 8001 -1 -8101 8001 -1 -8002 8002 4 -8003 8002 -1 -8102 8002 -1 -8003 8003 4 -8004 8003 -1 -8103 8003 -1 -8004 8004 4 -8005 8004 -1 -8104 8004 -1 -8005 8005 4 -8006 8005 -1 -8105 8005 -1 -8006 8006 4 -8007 8006 -1 -8106 8006 -1 -8007 8007 4 -8008 8007 -1 -8107 8007 -1 -8008 8008 4 -8009 8008 -1 -8108 8008 -1 -8009 8009 4 -8010 8009 -1 -8109 8009 -1 -8010 8010 4 -8011 8010 -1 -8110 8010 -1 -8011 8011 4 -8012 8011 -1 -8111 8011 -1 -8012 8012 4 -8013 8012 -1 -8112 8012 -1 -8013 8013 4 -8014 8013 -1 -8113 8013 -1 -8014 8014 4 -8015 8014 -1 -8114 8014 -1 -8015 8015 4 -8016 8015 -1 -8115 8015 -1 -8016 8016 4 -8017 8016 -1 -8116 8016 -1 -8017 8017 4 -8018 8017 -1 -8117 8017 -1 -8018 8018 4 -8019 8018 -1 -8118 8018 -1 -8019 8019 4 -8020 8019 -1 -8119 8019 -1 -8020 8020 4 -8021 8020 -1 -8120 8020 -1 -8021 8021 4 -8022 8021 -1 -8121 8021 -1 -8022 8022 4 -8023 8022 -1 -8122 8022 -1 -8023 8023 4 -8024 8023 -1 -8123 8023 -1 -8024 8024 4 -8025 8024 -1 -8124 8024 -1 -8025 8025 4 -8026 8025 -1 -8125 8025 -1 -8026 8026 4 -8027 8026 -1 -8126 8026 -1 -8027 8027 4 -8028 8027 -1 -8127 8027 -1 -8028 8028 4 -8029 8028 -1 -8128 8028 -1 -8029 8029 4 -8030 8029 -1 -8129 8029 -1 -8030 8030 4 -8031 8030 -1 -8130 8030 -1 -8031 8031 4 -8032 8031 -1 -8131 8031 -1 -8032 8032 4 -8033 8032 -1 -8132 8032 -1 -8033 8033 4 -8034 8033 -1 -8133 8033 -1 -8034 8034 4 -8035 8034 -1 -8134 8034 -1 -8035 8035 4 -8036 8035 -1 -8135 8035 -1 -8036 8036 4 -8037 8036 -1 -8136 8036 -1 -8037 8037 4 -8038 8037 -1 -8137 8037 -1 -8038 8038 4 -8039 8038 -1 -8138 8038 -1 -8039 8039 4 -8040 8039 -1 -8139 8039 -1 -8040 8040 4 -8041 8040 -1 -8140 8040 -1 -8041 8041 4 -8042 8041 -1 -8141 8041 -1 -8042 8042 4 -8043 8042 -1 -8142 8042 -1 -8043 8043 4 -8044 8043 -1 -8143 8043 -1 -8044 8044 4 -8045 8044 -1 -8144 8044 -1 -8045 8045 4 -8046 8045 -1 -8145 8045 -1 -8046 8046 4 -8047 8046 -1 -8146 8046 -1 -8047 8047 4 -8048 8047 -1 -8147 8047 -1 -8048 8048 4 -8049 8048 -1 -8148 8048 -1 -8049 8049 4 -8050 8049 -1 -8149 8049 -1 -8050 8050 4 -8051 8050 -1 -8150 8050 -1 -8051 8051 4 -8052 8051 -1 -8151 8051 -1 -8052 8052 4 -8053 8052 -1 -8152 8052 -1 -8053 8053 4 -8054 8053 -1 -8153 8053 -1 -8054 8054 4 -8055 8054 -1 -8154 8054 -1 -8055 8055 4 -8056 8055 -1 -8155 8055 -1 -8056 8056 4 -8057 8056 -1 -8156 8056 -1 -8057 8057 4 -8058 8057 -1 -8157 8057 -1 -8058 8058 4 -8059 8058 -1 -8158 8058 -1 -8059 8059 4 -8060 8059 -1 -8159 8059 -1 -8060 8060 4 -8061 8060 -1 -8160 8060 -1 -8061 8061 4 -8062 8061 -1 -8161 8061 -1 -8062 8062 4 -8063 8062 -1 -8162 8062 -1 -8063 8063 4 -8064 8063 -1 -8163 8063 -1 -8064 8064 4 -8065 8064 -1 -8164 8064 -1 -8065 8065 4 -8066 8065 -1 -8165 8065 -1 -8066 8066 4 -8067 8066 -1 -8166 8066 -1 -8067 8067 4 -8068 8067 -1 -8167 8067 -1 -8068 8068 4 -8069 8068 -1 -8168 8068 -1 -8069 8069 4 -8070 8069 -1 -8169 8069 -1 -8070 8070 4 -8071 8070 -1 -8170 8070 -1 -8071 8071 4 -8072 8071 -1 -8171 8071 -1 -8072 8072 4 -8073 8072 -1 -8172 8072 -1 -8073 8073 4 -8074 8073 -1 -8173 8073 -1 -8074 8074 4 -8075 8074 -1 -8174 8074 -1 -8075 8075 4 -8076 8075 -1 -8175 8075 -1 -8076 8076 4 -8077 8076 -1 -8176 8076 -1 -8077 8077 4 -8078 8077 -1 -8177 8077 -1 -8078 8078 4 -8079 8078 -1 -8178 8078 -1 -8079 8079 4 -8080 8079 -1 -8179 8079 -1 -8080 8080 4 -8081 8080 -1 -8180 8080 -1 -8081 8081 4 -8082 8081 -1 -8181 8081 -1 -8082 8082 4 -8083 8082 -1 -8182 8082 -1 -8083 8083 4 -8084 8083 -1 -8183 8083 -1 -8084 8084 4 -8085 8084 -1 -8184 8084 -1 -8085 8085 4 -8086 8085 -1 -8185 8085 -1 -8086 8086 4 -8087 8086 -1 -8186 8086 -1 -8087 8087 4 -8088 8087 -1 -8187 8087 -1 -8088 8088 4 -8089 8088 -1 -8188 8088 -1 -8089 8089 4 -8090 8089 -1 -8189 8089 -1 -8090 8090 4 -8091 8090 -1 -8190 8090 -1 -8091 8091 4 -8092 8091 -1 -8191 8091 -1 -8092 8092 4 -8093 8092 -1 -8192 8092 -1 -8093 8093 4 -8094 8093 -1 -8193 8093 -1 -8094 8094 4 -8095 8094 -1 -8194 8094 -1 -8095 8095 4 -8096 8095 -1 -8195 8095 -1 -8096 8096 4 -8097 8096 -1 -8196 8096 -1 -8097 8097 4 -8098 8097 -1 -8197 8097 -1 -8098 8098 4 -8099 8098 -1 -8198 8098 -1 -8099 8099 4 -8100 8099 -1 -8199 8099 -1 -8100 8100 4 -8200 8100 -1 -8101 8101 4 -8102 8101 -1 -8201 8101 -1 -8102 8102 4 -8103 8102 -1 -8202 8102 -1 -8103 8103 4 -8104 8103 -1 -8203 8103 -1 -8104 8104 4 -8105 8104 -1 -8204 8104 -1 -8105 8105 4 -8106 8105 -1 -8205 8105 -1 -8106 8106 4 -8107 8106 -1 -8206 8106 -1 -8107 8107 4 -8108 8107 -1 -8207 8107 -1 -8108 8108 4 -8109 8108 -1 -8208 8108 -1 -8109 8109 4 -8110 8109 -1 -8209 8109 -1 -8110 8110 4 -8111 8110 -1 -8210 8110 -1 -8111 8111 4 -8112 8111 -1 -8211 8111 -1 -8112 8112 4 -8113 8112 -1 -8212 8112 -1 -8113 8113 4 -8114 8113 -1 -8213 8113 -1 -8114 8114 4 -8115 8114 -1 -8214 8114 -1 -8115 8115 4 -8116 8115 -1 -8215 8115 -1 -8116 8116 4 -8117 8116 -1 -8216 8116 -1 -8117 8117 4 -8118 8117 -1 -8217 8117 -1 -8118 8118 4 -8119 8118 -1 -8218 8118 -1 -8119 8119 4 -8120 8119 -1 -8219 8119 -1 -8120 8120 4 -8121 8120 -1 -8220 8120 -1 -8121 8121 4 -8122 8121 -1 -8221 8121 -1 -8122 8122 4 -8123 8122 -1 -8222 8122 -1 -8123 8123 4 -8124 8123 -1 -8223 8123 -1 -8124 8124 4 -8125 8124 -1 -8224 8124 -1 -8125 8125 4 -8126 8125 -1 -8225 8125 -1 -8126 8126 4 -8127 8126 -1 -8226 8126 -1 -8127 8127 4 -8128 8127 -1 -8227 8127 -1 -8128 8128 4 -8129 8128 -1 -8228 8128 -1 -8129 8129 4 -8130 8129 -1 -8229 8129 -1 -8130 8130 4 -8131 8130 -1 -8230 8130 -1 -8131 8131 4 -8132 8131 -1 -8231 8131 -1 -8132 8132 4 -8133 8132 -1 -8232 8132 -1 -8133 8133 4 -8134 8133 -1 -8233 8133 -1 -8134 8134 4 -8135 8134 -1 -8234 8134 -1 -8135 8135 4 -8136 8135 -1 -8235 8135 -1 -8136 8136 4 -8137 8136 -1 -8236 8136 -1 -8137 8137 4 -8138 8137 -1 -8237 8137 -1 -8138 8138 4 -8139 8138 -1 -8238 8138 -1 -8139 8139 4 -8140 8139 -1 -8239 8139 -1 -8140 8140 4 -8141 8140 -1 -8240 8140 -1 -8141 8141 4 -8142 8141 -1 -8241 8141 -1 -8142 8142 4 -8143 8142 -1 -8242 8142 -1 -8143 8143 4 -8144 8143 -1 -8243 8143 -1 -8144 8144 4 -8145 8144 -1 -8244 8144 -1 -8145 8145 4 -8146 8145 -1 -8245 8145 -1 -8146 8146 4 -8147 8146 -1 -8246 8146 -1 -8147 8147 4 -8148 8147 -1 -8247 8147 -1 -8148 8148 4 -8149 8148 -1 -8248 8148 -1 -8149 8149 4 -8150 8149 -1 -8249 8149 -1 -8150 8150 4 -8151 8150 -1 -8250 8150 -1 -8151 8151 4 -8152 8151 -1 -8251 8151 -1 -8152 8152 4 -8153 8152 -1 -8252 8152 -1 -8153 8153 4 -8154 8153 -1 -8253 8153 -1 -8154 8154 4 -8155 8154 -1 -8254 8154 -1 -8155 8155 4 -8156 8155 -1 -8255 8155 -1 -8156 8156 4 -8157 8156 -1 -8256 8156 -1 -8157 8157 4 -8158 8157 -1 -8257 8157 -1 -8158 8158 4 -8159 8158 -1 -8258 8158 -1 -8159 8159 4 -8160 8159 -1 -8259 8159 -1 -8160 8160 4 -8161 8160 -1 -8260 8160 -1 -8161 8161 4 -8162 8161 -1 -8261 8161 -1 -8162 8162 4 -8163 8162 -1 -8262 8162 -1 -8163 8163 4 -8164 8163 -1 -8263 8163 -1 -8164 8164 4 -8165 8164 -1 -8264 8164 -1 -8165 8165 4 -8166 8165 -1 -8265 8165 -1 -8166 8166 4 -8167 8166 -1 -8266 8166 -1 -8167 8167 4 -8168 8167 -1 -8267 8167 -1 -8168 8168 4 -8169 8168 -1 -8268 8168 -1 -8169 8169 4 -8170 8169 -1 -8269 8169 -1 -8170 8170 4 -8171 8170 -1 -8270 8170 -1 -8171 8171 4 -8172 8171 -1 -8271 8171 -1 -8172 8172 4 -8173 8172 -1 -8272 8172 -1 -8173 8173 4 -8174 8173 -1 -8273 8173 -1 -8174 8174 4 -8175 8174 -1 -8274 8174 -1 -8175 8175 4 -8176 8175 -1 -8275 8175 -1 -8176 8176 4 -8177 8176 -1 -8276 8176 -1 -8177 8177 4 -8178 8177 -1 -8277 8177 -1 -8178 8178 4 -8179 8178 -1 -8278 8178 -1 -8179 8179 4 -8180 8179 -1 -8279 8179 -1 -8180 8180 4 -8181 8180 -1 -8280 8180 -1 -8181 8181 4 -8182 8181 -1 -8281 8181 -1 -8182 8182 4 -8183 8182 -1 -8282 8182 -1 -8183 8183 4 -8184 8183 -1 -8283 8183 -1 -8184 8184 4 -8185 8184 -1 -8284 8184 -1 -8185 8185 4 -8186 8185 -1 -8285 8185 -1 -8186 8186 4 -8187 8186 -1 -8286 8186 -1 -8187 8187 4 -8188 8187 -1 -8287 8187 -1 -8188 8188 4 -8189 8188 -1 -8288 8188 -1 -8189 8189 4 -8190 8189 -1 -8289 8189 -1 -8190 8190 4 -8191 8190 -1 -8290 8190 -1 -8191 8191 4 -8192 8191 -1 -8291 8191 -1 -8192 8192 4 -8193 8192 -1 -8292 8192 -1 -8193 8193 4 -8194 8193 -1 -8293 8193 -1 -8194 8194 4 -8195 8194 -1 -8294 8194 -1 -8195 8195 4 -8196 8195 -1 -8295 8195 -1 -8196 8196 4 -8197 8196 -1 -8296 8196 -1 -8197 8197 4 -8198 8197 -1 -8297 8197 -1 -8198 8198 4 -8199 8198 -1 -8298 8198 -1 -8199 8199 4 -8200 8199 -1 -8299 8199 -1 -8200 8200 4 -8300 8200 -1 -8201 8201 4 -8202 8201 -1 -8301 8201 -1 -8202 8202 4 -8203 8202 -1 -8302 8202 -1 -8203 8203 4 -8204 8203 -1 -8303 8203 -1 -8204 8204 4 -8205 8204 -1 -8304 8204 -1 -8205 8205 4 -8206 8205 -1 -8305 8205 -1 -8206 8206 4 -8207 8206 -1 -8306 8206 -1 -8207 8207 4 -8208 8207 -1 -8307 8207 -1 -8208 8208 4 -8209 8208 -1 -8308 8208 -1 -8209 8209 4 -8210 8209 -1 -8309 8209 -1 -8210 8210 4 -8211 8210 -1 -8310 8210 -1 -8211 8211 4 -8212 8211 -1 -8311 8211 -1 -8212 8212 4 -8213 8212 -1 -8312 8212 -1 -8213 8213 4 -8214 8213 -1 -8313 8213 -1 -8214 8214 4 -8215 8214 -1 -8314 8214 -1 -8215 8215 4 -8216 8215 -1 -8315 8215 -1 -8216 8216 4 -8217 8216 -1 -8316 8216 -1 -8217 8217 4 -8218 8217 -1 -8317 8217 -1 -8218 8218 4 -8219 8218 -1 -8318 8218 -1 -8219 8219 4 -8220 8219 -1 -8319 8219 -1 -8220 8220 4 -8221 8220 -1 -8320 8220 -1 -8221 8221 4 -8222 8221 -1 -8321 8221 -1 -8222 8222 4 -8223 8222 -1 -8322 8222 -1 -8223 8223 4 -8224 8223 -1 -8323 8223 -1 -8224 8224 4 -8225 8224 -1 -8324 8224 -1 -8225 8225 4 -8226 8225 -1 -8325 8225 -1 -8226 8226 4 -8227 8226 -1 -8326 8226 -1 -8227 8227 4 -8228 8227 -1 -8327 8227 -1 -8228 8228 4 -8229 8228 -1 -8328 8228 -1 -8229 8229 4 -8230 8229 -1 -8329 8229 -1 -8230 8230 4 -8231 8230 -1 -8330 8230 -1 -8231 8231 4 -8232 8231 -1 -8331 8231 -1 -8232 8232 4 -8233 8232 -1 -8332 8232 -1 -8233 8233 4 -8234 8233 -1 -8333 8233 -1 -8234 8234 4 -8235 8234 -1 -8334 8234 -1 -8235 8235 4 -8236 8235 -1 -8335 8235 -1 -8236 8236 4 -8237 8236 -1 -8336 8236 -1 -8237 8237 4 -8238 8237 -1 -8337 8237 -1 -8238 8238 4 -8239 8238 -1 -8338 8238 -1 -8239 8239 4 -8240 8239 -1 -8339 8239 -1 -8240 8240 4 -8241 8240 -1 -8340 8240 -1 -8241 8241 4 -8242 8241 -1 -8341 8241 -1 -8242 8242 4 -8243 8242 -1 -8342 8242 -1 -8243 8243 4 -8244 8243 -1 -8343 8243 -1 -8244 8244 4 -8245 8244 -1 -8344 8244 -1 -8245 8245 4 -8246 8245 -1 -8345 8245 -1 -8246 8246 4 -8247 8246 -1 -8346 8246 -1 -8247 8247 4 -8248 8247 -1 -8347 8247 -1 -8248 8248 4 -8249 8248 -1 -8348 8248 -1 -8249 8249 4 -8250 8249 -1 -8349 8249 -1 -8250 8250 4 -8251 8250 -1 -8350 8250 -1 -8251 8251 4 -8252 8251 -1 -8351 8251 -1 -8252 8252 4 -8253 8252 -1 -8352 8252 -1 -8253 8253 4 -8254 8253 -1 -8353 8253 -1 -8254 8254 4 -8255 8254 -1 -8354 8254 -1 -8255 8255 4 -8256 8255 -1 -8355 8255 -1 -8256 8256 4 -8257 8256 -1 -8356 8256 -1 -8257 8257 4 -8258 8257 -1 -8357 8257 -1 -8258 8258 4 -8259 8258 -1 -8358 8258 -1 -8259 8259 4 -8260 8259 -1 -8359 8259 -1 -8260 8260 4 -8261 8260 -1 -8360 8260 -1 -8261 8261 4 -8262 8261 -1 -8361 8261 -1 -8262 8262 4 -8263 8262 -1 -8362 8262 -1 -8263 8263 4 -8264 8263 -1 -8363 8263 -1 -8264 8264 4 -8265 8264 -1 -8364 8264 -1 -8265 8265 4 -8266 8265 -1 -8365 8265 -1 -8266 8266 4 -8267 8266 -1 -8366 8266 -1 -8267 8267 4 -8268 8267 -1 -8367 8267 -1 -8268 8268 4 -8269 8268 -1 -8368 8268 -1 -8269 8269 4 -8270 8269 -1 -8369 8269 -1 -8270 8270 4 -8271 8270 -1 -8370 8270 -1 -8271 8271 4 -8272 8271 -1 -8371 8271 -1 -8272 8272 4 -8273 8272 -1 -8372 8272 -1 -8273 8273 4 -8274 8273 -1 -8373 8273 -1 -8274 8274 4 -8275 8274 -1 -8374 8274 -1 -8275 8275 4 -8276 8275 -1 -8375 8275 -1 -8276 8276 4 -8277 8276 -1 -8376 8276 -1 -8277 8277 4 -8278 8277 -1 -8377 8277 -1 -8278 8278 4 -8279 8278 -1 -8378 8278 -1 -8279 8279 4 -8280 8279 -1 -8379 8279 -1 -8280 8280 4 -8281 8280 -1 -8380 8280 -1 -8281 8281 4 -8282 8281 -1 -8381 8281 -1 -8282 8282 4 -8283 8282 -1 -8382 8282 -1 -8283 8283 4 -8284 8283 -1 -8383 8283 -1 -8284 8284 4 -8285 8284 -1 -8384 8284 -1 -8285 8285 4 -8286 8285 -1 -8385 8285 -1 -8286 8286 4 -8287 8286 -1 -8386 8286 -1 -8287 8287 4 -8288 8287 -1 -8387 8287 -1 -8288 8288 4 -8289 8288 -1 -8388 8288 -1 -8289 8289 4 -8290 8289 -1 -8389 8289 -1 -8290 8290 4 -8291 8290 -1 -8390 8290 -1 -8291 8291 4 -8292 8291 -1 -8391 8291 -1 -8292 8292 4 -8293 8292 -1 -8392 8292 -1 -8293 8293 4 -8294 8293 -1 -8393 8293 -1 -8294 8294 4 -8295 8294 -1 -8394 8294 -1 -8295 8295 4 -8296 8295 -1 -8395 8295 -1 -8296 8296 4 -8297 8296 -1 -8396 8296 -1 -8297 8297 4 -8298 8297 -1 -8397 8297 -1 -8298 8298 4 -8299 8298 -1 -8398 8298 -1 -8299 8299 4 -8300 8299 -1 -8399 8299 -1 -8300 8300 4 -8400 8300 -1 -8301 8301 4 -8302 8301 -1 -8401 8301 -1 -8302 8302 4 -8303 8302 -1 -8402 8302 -1 -8303 8303 4 -8304 8303 -1 -8403 8303 -1 -8304 8304 4 -8305 8304 -1 -8404 8304 -1 -8305 8305 4 -8306 8305 -1 -8405 8305 -1 -8306 8306 4 -8307 8306 -1 -8406 8306 -1 -8307 8307 4 -8308 8307 -1 -8407 8307 -1 -8308 8308 4 -8309 8308 -1 -8408 8308 -1 -8309 8309 4 -8310 8309 -1 -8409 8309 -1 -8310 8310 4 -8311 8310 -1 -8410 8310 -1 -8311 8311 4 -8312 8311 -1 -8411 8311 -1 -8312 8312 4 -8313 8312 -1 -8412 8312 -1 -8313 8313 4 -8314 8313 -1 -8413 8313 -1 -8314 8314 4 -8315 8314 -1 -8414 8314 -1 -8315 8315 4 -8316 8315 -1 -8415 8315 -1 -8316 8316 4 -8317 8316 -1 -8416 8316 -1 -8317 8317 4 -8318 8317 -1 -8417 8317 -1 -8318 8318 4 -8319 8318 -1 -8418 8318 -1 -8319 8319 4 -8320 8319 -1 -8419 8319 -1 -8320 8320 4 -8321 8320 -1 -8420 8320 -1 -8321 8321 4 -8322 8321 -1 -8421 8321 -1 -8322 8322 4 -8323 8322 -1 -8422 8322 -1 -8323 8323 4 -8324 8323 -1 -8423 8323 -1 -8324 8324 4 -8325 8324 -1 -8424 8324 -1 -8325 8325 4 -8326 8325 -1 -8425 8325 -1 -8326 8326 4 -8327 8326 -1 -8426 8326 -1 -8327 8327 4 -8328 8327 -1 -8427 8327 -1 -8328 8328 4 -8329 8328 -1 -8428 8328 -1 -8329 8329 4 -8330 8329 -1 -8429 8329 -1 -8330 8330 4 -8331 8330 -1 -8430 8330 -1 -8331 8331 4 -8332 8331 -1 -8431 8331 -1 -8332 8332 4 -8333 8332 -1 -8432 8332 -1 -8333 8333 4 -8334 8333 -1 -8433 8333 -1 -8334 8334 4 -8335 8334 -1 -8434 8334 -1 -8335 8335 4 -8336 8335 -1 -8435 8335 -1 -8336 8336 4 -8337 8336 -1 -8436 8336 -1 -8337 8337 4 -8338 8337 -1 -8437 8337 -1 -8338 8338 4 -8339 8338 -1 -8438 8338 -1 -8339 8339 4 -8340 8339 -1 -8439 8339 -1 -8340 8340 4 -8341 8340 -1 -8440 8340 -1 -8341 8341 4 -8342 8341 -1 -8441 8341 -1 -8342 8342 4 -8343 8342 -1 -8442 8342 -1 -8343 8343 4 -8344 8343 -1 -8443 8343 -1 -8344 8344 4 -8345 8344 -1 -8444 8344 -1 -8345 8345 4 -8346 8345 -1 -8445 8345 -1 -8346 8346 4 -8347 8346 -1 -8446 8346 -1 -8347 8347 4 -8348 8347 -1 -8447 8347 -1 -8348 8348 4 -8349 8348 -1 -8448 8348 -1 -8349 8349 4 -8350 8349 -1 -8449 8349 -1 -8350 8350 4 -8351 8350 -1 -8450 8350 -1 -8351 8351 4 -8352 8351 -1 -8451 8351 -1 -8352 8352 4 -8353 8352 -1 -8452 8352 -1 -8353 8353 4 -8354 8353 -1 -8453 8353 -1 -8354 8354 4 -8355 8354 -1 -8454 8354 -1 -8355 8355 4 -8356 8355 -1 -8455 8355 -1 -8356 8356 4 -8357 8356 -1 -8456 8356 -1 -8357 8357 4 -8358 8357 -1 -8457 8357 -1 -8358 8358 4 -8359 8358 -1 -8458 8358 -1 -8359 8359 4 -8360 8359 -1 -8459 8359 -1 -8360 8360 4 -8361 8360 -1 -8460 8360 -1 -8361 8361 4 -8362 8361 -1 -8461 8361 -1 -8362 8362 4 -8363 8362 -1 -8462 8362 -1 -8363 8363 4 -8364 8363 -1 -8463 8363 -1 -8364 8364 4 -8365 8364 -1 -8464 8364 -1 -8365 8365 4 -8366 8365 -1 -8465 8365 -1 -8366 8366 4 -8367 8366 -1 -8466 8366 -1 -8367 8367 4 -8368 8367 -1 -8467 8367 -1 -8368 8368 4 -8369 8368 -1 -8468 8368 -1 -8369 8369 4 -8370 8369 -1 -8469 8369 -1 -8370 8370 4 -8371 8370 -1 -8470 8370 -1 -8371 8371 4 -8372 8371 -1 -8471 8371 -1 -8372 8372 4 -8373 8372 -1 -8472 8372 -1 -8373 8373 4 -8374 8373 -1 -8473 8373 -1 -8374 8374 4 -8375 8374 -1 -8474 8374 -1 -8375 8375 4 -8376 8375 -1 -8475 8375 -1 -8376 8376 4 -8377 8376 -1 -8476 8376 -1 -8377 8377 4 -8378 8377 -1 -8477 8377 -1 -8378 8378 4 -8379 8378 -1 -8478 8378 -1 -8379 8379 4 -8380 8379 -1 -8479 8379 -1 -8380 8380 4 -8381 8380 -1 -8480 8380 -1 -8381 8381 4 -8382 8381 -1 -8481 8381 -1 -8382 8382 4 -8383 8382 -1 -8482 8382 -1 -8383 8383 4 -8384 8383 -1 -8483 8383 -1 -8384 8384 4 -8385 8384 -1 -8484 8384 -1 -8385 8385 4 -8386 8385 -1 -8485 8385 -1 -8386 8386 4 -8387 8386 -1 -8486 8386 -1 -8387 8387 4 -8388 8387 -1 -8487 8387 -1 -8388 8388 4 -8389 8388 -1 -8488 8388 -1 -8389 8389 4 -8390 8389 -1 -8489 8389 -1 -8390 8390 4 -8391 8390 -1 -8490 8390 -1 -8391 8391 4 -8392 8391 -1 -8491 8391 -1 -8392 8392 4 -8393 8392 -1 -8492 8392 -1 -8393 8393 4 -8394 8393 -1 -8493 8393 -1 -8394 8394 4 -8395 8394 -1 -8494 8394 -1 -8395 8395 4 -8396 8395 -1 -8495 8395 -1 -8396 8396 4 -8397 8396 -1 -8496 8396 -1 -8397 8397 4 -8398 8397 -1 -8497 8397 -1 -8398 8398 4 -8399 8398 -1 -8498 8398 -1 -8399 8399 4 -8400 8399 -1 -8499 8399 -1 -8400 8400 4 -8500 8400 -1 -8401 8401 4 -8402 8401 -1 -8501 8401 -1 -8402 8402 4 -8403 8402 -1 -8502 8402 -1 -8403 8403 4 -8404 8403 -1 -8503 8403 -1 -8404 8404 4 -8405 8404 -1 -8504 8404 -1 -8405 8405 4 -8406 8405 -1 -8505 8405 -1 -8406 8406 4 -8407 8406 -1 -8506 8406 -1 -8407 8407 4 -8408 8407 -1 -8507 8407 -1 -8408 8408 4 -8409 8408 -1 -8508 8408 -1 -8409 8409 4 -8410 8409 -1 -8509 8409 -1 -8410 8410 4 -8411 8410 -1 -8510 8410 -1 -8411 8411 4 -8412 8411 -1 -8511 8411 -1 -8412 8412 4 -8413 8412 -1 -8512 8412 -1 -8413 8413 4 -8414 8413 -1 -8513 8413 -1 -8414 8414 4 -8415 8414 -1 -8514 8414 -1 -8415 8415 4 -8416 8415 -1 -8515 8415 -1 -8416 8416 4 -8417 8416 -1 -8516 8416 -1 -8417 8417 4 -8418 8417 -1 -8517 8417 -1 -8418 8418 4 -8419 8418 -1 -8518 8418 -1 -8419 8419 4 -8420 8419 -1 -8519 8419 -1 -8420 8420 4 -8421 8420 -1 -8520 8420 -1 -8421 8421 4 -8422 8421 -1 -8521 8421 -1 -8422 8422 4 -8423 8422 -1 -8522 8422 -1 -8423 8423 4 -8424 8423 -1 -8523 8423 -1 -8424 8424 4 -8425 8424 -1 -8524 8424 -1 -8425 8425 4 -8426 8425 -1 -8525 8425 -1 -8426 8426 4 -8427 8426 -1 -8526 8426 -1 -8427 8427 4 -8428 8427 -1 -8527 8427 -1 -8428 8428 4 -8429 8428 -1 -8528 8428 -1 -8429 8429 4 -8430 8429 -1 -8529 8429 -1 -8430 8430 4 -8431 8430 -1 -8530 8430 -1 -8431 8431 4 -8432 8431 -1 -8531 8431 -1 -8432 8432 4 -8433 8432 -1 -8532 8432 -1 -8433 8433 4 -8434 8433 -1 -8533 8433 -1 -8434 8434 4 -8435 8434 -1 -8534 8434 -1 -8435 8435 4 -8436 8435 -1 -8535 8435 -1 -8436 8436 4 -8437 8436 -1 -8536 8436 -1 -8437 8437 4 -8438 8437 -1 -8537 8437 -1 -8438 8438 4 -8439 8438 -1 -8538 8438 -1 -8439 8439 4 -8440 8439 -1 -8539 8439 -1 -8440 8440 4 -8441 8440 -1 -8540 8440 -1 -8441 8441 4 -8442 8441 -1 -8541 8441 -1 -8442 8442 4 -8443 8442 -1 -8542 8442 -1 -8443 8443 4 -8444 8443 -1 -8543 8443 -1 -8444 8444 4 -8445 8444 -1 -8544 8444 -1 -8445 8445 4 -8446 8445 -1 -8545 8445 -1 -8446 8446 4 -8447 8446 -1 -8546 8446 -1 -8447 8447 4 -8448 8447 -1 -8547 8447 -1 -8448 8448 4 -8449 8448 -1 -8548 8448 -1 -8449 8449 4 -8450 8449 -1 -8549 8449 -1 -8450 8450 4 -8451 8450 -1 -8550 8450 -1 -8451 8451 4 -8452 8451 -1 -8551 8451 -1 -8452 8452 4 -8453 8452 -1 -8552 8452 -1 -8453 8453 4 -8454 8453 -1 -8553 8453 -1 -8454 8454 4 -8455 8454 -1 -8554 8454 -1 -8455 8455 4 -8456 8455 -1 -8555 8455 -1 -8456 8456 4 -8457 8456 -1 -8556 8456 -1 -8457 8457 4 -8458 8457 -1 -8557 8457 -1 -8458 8458 4 -8459 8458 -1 -8558 8458 -1 -8459 8459 4 -8460 8459 -1 -8559 8459 -1 -8460 8460 4 -8461 8460 -1 -8560 8460 -1 -8461 8461 4 -8462 8461 -1 -8561 8461 -1 -8462 8462 4 -8463 8462 -1 -8562 8462 -1 -8463 8463 4 -8464 8463 -1 -8563 8463 -1 -8464 8464 4 -8465 8464 -1 -8564 8464 -1 -8465 8465 4 -8466 8465 -1 -8565 8465 -1 -8466 8466 4 -8467 8466 -1 -8566 8466 -1 -8467 8467 4 -8468 8467 -1 -8567 8467 -1 -8468 8468 4 -8469 8468 -1 -8568 8468 -1 -8469 8469 4 -8470 8469 -1 -8569 8469 -1 -8470 8470 4 -8471 8470 -1 -8570 8470 -1 -8471 8471 4 -8472 8471 -1 -8571 8471 -1 -8472 8472 4 -8473 8472 -1 -8572 8472 -1 -8473 8473 4 -8474 8473 -1 -8573 8473 -1 -8474 8474 4 -8475 8474 -1 -8574 8474 -1 -8475 8475 4 -8476 8475 -1 -8575 8475 -1 -8476 8476 4 -8477 8476 -1 -8576 8476 -1 -8477 8477 4 -8478 8477 -1 -8577 8477 -1 -8478 8478 4 -8479 8478 -1 -8578 8478 -1 -8479 8479 4 -8480 8479 -1 -8579 8479 -1 -8480 8480 4 -8481 8480 -1 -8580 8480 -1 -8481 8481 4 -8482 8481 -1 -8581 8481 -1 -8482 8482 4 -8483 8482 -1 -8582 8482 -1 -8483 8483 4 -8484 8483 -1 -8583 8483 -1 -8484 8484 4 -8485 8484 -1 -8584 8484 -1 -8485 8485 4 -8486 8485 -1 -8585 8485 -1 -8486 8486 4 -8487 8486 -1 -8586 8486 -1 -8487 8487 4 -8488 8487 -1 -8587 8487 -1 -8488 8488 4 -8489 8488 -1 -8588 8488 -1 -8489 8489 4 -8490 8489 -1 -8589 8489 -1 -8490 8490 4 -8491 8490 -1 -8590 8490 -1 -8491 8491 4 -8492 8491 -1 -8591 8491 -1 -8492 8492 4 -8493 8492 -1 -8592 8492 -1 -8493 8493 4 -8494 8493 -1 -8593 8493 -1 -8494 8494 4 -8495 8494 -1 -8594 8494 -1 -8495 8495 4 -8496 8495 -1 -8595 8495 -1 -8496 8496 4 -8497 8496 -1 -8596 8496 -1 -8497 8497 4 -8498 8497 -1 -8597 8497 -1 -8498 8498 4 -8499 8498 -1 -8598 8498 -1 -8499 8499 4 -8500 8499 -1 -8599 8499 -1 -8500 8500 4 -8600 8500 -1 -8501 8501 4 -8502 8501 -1 -8601 8501 -1 -8502 8502 4 -8503 8502 -1 -8602 8502 -1 -8503 8503 4 -8504 8503 -1 -8603 8503 -1 -8504 8504 4 -8505 8504 -1 -8604 8504 -1 -8505 8505 4 -8506 8505 -1 -8605 8505 -1 -8506 8506 4 -8507 8506 -1 -8606 8506 -1 -8507 8507 4 -8508 8507 -1 -8607 8507 -1 -8508 8508 4 -8509 8508 -1 -8608 8508 -1 -8509 8509 4 -8510 8509 -1 -8609 8509 -1 -8510 8510 4 -8511 8510 -1 -8610 8510 -1 -8511 8511 4 -8512 8511 -1 -8611 8511 -1 -8512 8512 4 -8513 8512 -1 -8612 8512 -1 -8513 8513 4 -8514 8513 -1 -8613 8513 -1 -8514 8514 4 -8515 8514 -1 -8614 8514 -1 -8515 8515 4 -8516 8515 -1 -8615 8515 -1 -8516 8516 4 -8517 8516 -1 -8616 8516 -1 -8517 8517 4 -8518 8517 -1 -8617 8517 -1 -8518 8518 4 -8519 8518 -1 -8618 8518 -1 -8519 8519 4 -8520 8519 -1 -8619 8519 -1 -8520 8520 4 -8521 8520 -1 -8620 8520 -1 -8521 8521 4 -8522 8521 -1 -8621 8521 -1 -8522 8522 4 -8523 8522 -1 -8622 8522 -1 -8523 8523 4 -8524 8523 -1 -8623 8523 -1 -8524 8524 4 -8525 8524 -1 -8624 8524 -1 -8525 8525 4 -8526 8525 -1 -8625 8525 -1 -8526 8526 4 -8527 8526 -1 -8626 8526 -1 -8527 8527 4 -8528 8527 -1 -8627 8527 -1 -8528 8528 4 -8529 8528 -1 -8628 8528 -1 -8529 8529 4 -8530 8529 -1 -8629 8529 -1 -8530 8530 4 -8531 8530 -1 -8630 8530 -1 -8531 8531 4 -8532 8531 -1 -8631 8531 -1 -8532 8532 4 -8533 8532 -1 -8632 8532 -1 -8533 8533 4 -8534 8533 -1 -8633 8533 -1 -8534 8534 4 -8535 8534 -1 -8634 8534 -1 -8535 8535 4 -8536 8535 -1 -8635 8535 -1 -8536 8536 4 -8537 8536 -1 -8636 8536 -1 -8537 8537 4 -8538 8537 -1 -8637 8537 -1 -8538 8538 4 -8539 8538 -1 -8638 8538 -1 -8539 8539 4 -8540 8539 -1 -8639 8539 -1 -8540 8540 4 -8541 8540 -1 -8640 8540 -1 -8541 8541 4 -8542 8541 -1 -8641 8541 -1 -8542 8542 4 -8543 8542 -1 -8642 8542 -1 -8543 8543 4 -8544 8543 -1 -8643 8543 -1 -8544 8544 4 -8545 8544 -1 -8644 8544 -1 -8545 8545 4 -8546 8545 -1 -8645 8545 -1 -8546 8546 4 -8547 8546 -1 -8646 8546 -1 -8547 8547 4 -8548 8547 -1 -8647 8547 -1 -8548 8548 4 -8549 8548 -1 -8648 8548 -1 -8549 8549 4 -8550 8549 -1 -8649 8549 -1 -8550 8550 4 -8551 8550 -1 -8650 8550 -1 -8551 8551 4 -8552 8551 -1 -8651 8551 -1 -8552 8552 4 -8553 8552 -1 -8652 8552 -1 -8553 8553 4 -8554 8553 -1 -8653 8553 -1 -8554 8554 4 -8555 8554 -1 -8654 8554 -1 -8555 8555 4 -8556 8555 -1 -8655 8555 -1 -8556 8556 4 -8557 8556 -1 -8656 8556 -1 -8557 8557 4 -8558 8557 -1 -8657 8557 -1 -8558 8558 4 -8559 8558 -1 -8658 8558 -1 -8559 8559 4 -8560 8559 -1 -8659 8559 -1 -8560 8560 4 -8561 8560 -1 -8660 8560 -1 -8561 8561 4 -8562 8561 -1 -8661 8561 -1 -8562 8562 4 -8563 8562 -1 -8662 8562 -1 -8563 8563 4 -8564 8563 -1 -8663 8563 -1 -8564 8564 4 -8565 8564 -1 -8664 8564 -1 -8565 8565 4 -8566 8565 -1 -8665 8565 -1 -8566 8566 4 -8567 8566 -1 -8666 8566 -1 -8567 8567 4 -8568 8567 -1 -8667 8567 -1 -8568 8568 4 -8569 8568 -1 -8668 8568 -1 -8569 8569 4 -8570 8569 -1 -8669 8569 -1 -8570 8570 4 -8571 8570 -1 -8670 8570 -1 -8571 8571 4 -8572 8571 -1 -8671 8571 -1 -8572 8572 4 -8573 8572 -1 -8672 8572 -1 -8573 8573 4 -8574 8573 -1 -8673 8573 -1 -8574 8574 4 -8575 8574 -1 -8674 8574 -1 -8575 8575 4 -8576 8575 -1 -8675 8575 -1 -8576 8576 4 -8577 8576 -1 -8676 8576 -1 -8577 8577 4 -8578 8577 -1 -8677 8577 -1 -8578 8578 4 -8579 8578 -1 -8678 8578 -1 -8579 8579 4 -8580 8579 -1 -8679 8579 -1 -8580 8580 4 -8581 8580 -1 -8680 8580 -1 -8581 8581 4 -8582 8581 -1 -8681 8581 -1 -8582 8582 4 -8583 8582 -1 -8682 8582 -1 -8583 8583 4 -8584 8583 -1 -8683 8583 -1 -8584 8584 4 -8585 8584 -1 -8684 8584 -1 -8585 8585 4 -8586 8585 -1 -8685 8585 -1 -8586 8586 4 -8587 8586 -1 -8686 8586 -1 -8587 8587 4 -8588 8587 -1 -8687 8587 -1 -8588 8588 4 -8589 8588 -1 -8688 8588 -1 -8589 8589 4 -8590 8589 -1 -8689 8589 -1 -8590 8590 4 -8591 8590 -1 -8690 8590 -1 -8591 8591 4 -8592 8591 -1 -8691 8591 -1 -8592 8592 4 -8593 8592 -1 -8692 8592 -1 -8593 8593 4 -8594 8593 -1 -8693 8593 -1 -8594 8594 4 -8595 8594 -1 -8694 8594 -1 -8595 8595 4 -8596 8595 -1 -8695 8595 -1 -8596 8596 4 -8597 8596 -1 -8696 8596 -1 -8597 8597 4 -8598 8597 -1 -8697 8597 -1 -8598 8598 4 -8599 8598 -1 -8698 8598 -1 -8599 8599 4 -8600 8599 -1 -8699 8599 -1 -8600 8600 4 -8700 8600 -1 -8601 8601 4 -8602 8601 -1 -8701 8601 -1 -8602 8602 4 -8603 8602 -1 -8702 8602 -1 -8603 8603 4 -8604 8603 -1 -8703 8603 -1 -8604 8604 4 -8605 8604 -1 -8704 8604 -1 -8605 8605 4 -8606 8605 -1 -8705 8605 -1 -8606 8606 4 -8607 8606 -1 -8706 8606 -1 -8607 8607 4 -8608 8607 -1 -8707 8607 -1 -8608 8608 4 -8609 8608 -1 -8708 8608 -1 -8609 8609 4 -8610 8609 -1 -8709 8609 -1 -8610 8610 4 -8611 8610 -1 -8710 8610 -1 -8611 8611 4 -8612 8611 -1 -8711 8611 -1 -8612 8612 4 -8613 8612 -1 -8712 8612 -1 -8613 8613 4 -8614 8613 -1 -8713 8613 -1 -8614 8614 4 -8615 8614 -1 -8714 8614 -1 -8615 8615 4 -8616 8615 -1 -8715 8615 -1 -8616 8616 4 -8617 8616 -1 -8716 8616 -1 -8617 8617 4 -8618 8617 -1 -8717 8617 -1 -8618 8618 4 -8619 8618 -1 -8718 8618 -1 -8619 8619 4 -8620 8619 -1 -8719 8619 -1 -8620 8620 4 -8621 8620 -1 -8720 8620 -1 -8621 8621 4 -8622 8621 -1 -8721 8621 -1 -8622 8622 4 -8623 8622 -1 -8722 8622 -1 -8623 8623 4 -8624 8623 -1 -8723 8623 -1 -8624 8624 4 -8625 8624 -1 -8724 8624 -1 -8625 8625 4 -8626 8625 -1 -8725 8625 -1 -8626 8626 4 -8627 8626 -1 -8726 8626 -1 -8627 8627 4 -8628 8627 -1 -8727 8627 -1 -8628 8628 4 -8629 8628 -1 -8728 8628 -1 -8629 8629 4 -8630 8629 -1 -8729 8629 -1 -8630 8630 4 -8631 8630 -1 -8730 8630 -1 -8631 8631 4 -8632 8631 -1 -8731 8631 -1 -8632 8632 4 -8633 8632 -1 -8732 8632 -1 -8633 8633 4 -8634 8633 -1 -8733 8633 -1 -8634 8634 4 -8635 8634 -1 -8734 8634 -1 -8635 8635 4 -8636 8635 -1 -8735 8635 -1 -8636 8636 4 -8637 8636 -1 -8736 8636 -1 -8637 8637 4 -8638 8637 -1 -8737 8637 -1 -8638 8638 4 -8639 8638 -1 -8738 8638 -1 -8639 8639 4 -8640 8639 -1 -8739 8639 -1 -8640 8640 4 -8641 8640 -1 -8740 8640 -1 -8641 8641 4 -8642 8641 -1 -8741 8641 -1 -8642 8642 4 -8643 8642 -1 -8742 8642 -1 -8643 8643 4 -8644 8643 -1 -8743 8643 -1 -8644 8644 4 -8645 8644 -1 -8744 8644 -1 -8645 8645 4 -8646 8645 -1 -8745 8645 -1 -8646 8646 4 -8647 8646 -1 -8746 8646 -1 -8647 8647 4 -8648 8647 -1 -8747 8647 -1 -8648 8648 4 -8649 8648 -1 -8748 8648 -1 -8649 8649 4 -8650 8649 -1 -8749 8649 -1 -8650 8650 4 -8651 8650 -1 -8750 8650 -1 -8651 8651 4 -8652 8651 -1 -8751 8651 -1 -8652 8652 4 -8653 8652 -1 -8752 8652 -1 -8653 8653 4 -8654 8653 -1 -8753 8653 -1 -8654 8654 4 -8655 8654 -1 -8754 8654 -1 -8655 8655 4 -8656 8655 -1 -8755 8655 -1 -8656 8656 4 -8657 8656 -1 -8756 8656 -1 -8657 8657 4 -8658 8657 -1 -8757 8657 -1 -8658 8658 4 -8659 8658 -1 -8758 8658 -1 -8659 8659 4 -8660 8659 -1 -8759 8659 -1 -8660 8660 4 -8661 8660 -1 -8760 8660 -1 -8661 8661 4 -8662 8661 -1 -8761 8661 -1 -8662 8662 4 -8663 8662 -1 -8762 8662 -1 -8663 8663 4 -8664 8663 -1 -8763 8663 -1 -8664 8664 4 -8665 8664 -1 -8764 8664 -1 -8665 8665 4 -8666 8665 -1 -8765 8665 -1 -8666 8666 4 -8667 8666 -1 -8766 8666 -1 -8667 8667 4 -8668 8667 -1 -8767 8667 -1 -8668 8668 4 -8669 8668 -1 -8768 8668 -1 -8669 8669 4 -8670 8669 -1 -8769 8669 -1 -8670 8670 4 -8671 8670 -1 -8770 8670 -1 -8671 8671 4 -8672 8671 -1 -8771 8671 -1 -8672 8672 4 -8673 8672 -1 -8772 8672 -1 -8673 8673 4 -8674 8673 -1 -8773 8673 -1 -8674 8674 4 -8675 8674 -1 -8774 8674 -1 -8675 8675 4 -8676 8675 -1 -8775 8675 -1 -8676 8676 4 -8677 8676 -1 -8776 8676 -1 -8677 8677 4 -8678 8677 -1 -8777 8677 -1 -8678 8678 4 -8679 8678 -1 -8778 8678 -1 -8679 8679 4 -8680 8679 -1 -8779 8679 -1 -8680 8680 4 -8681 8680 -1 -8780 8680 -1 -8681 8681 4 -8682 8681 -1 -8781 8681 -1 -8682 8682 4 -8683 8682 -1 -8782 8682 -1 -8683 8683 4 -8684 8683 -1 -8783 8683 -1 -8684 8684 4 -8685 8684 -1 -8784 8684 -1 -8685 8685 4 -8686 8685 -1 -8785 8685 -1 -8686 8686 4 -8687 8686 -1 -8786 8686 -1 -8687 8687 4 -8688 8687 -1 -8787 8687 -1 -8688 8688 4 -8689 8688 -1 -8788 8688 -1 -8689 8689 4 -8690 8689 -1 -8789 8689 -1 -8690 8690 4 -8691 8690 -1 -8790 8690 -1 -8691 8691 4 -8692 8691 -1 -8791 8691 -1 -8692 8692 4 -8693 8692 -1 -8792 8692 -1 -8693 8693 4 -8694 8693 -1 -8793 8693 -1 -8694 8694 4 -8695 8694 -1 -8794 8694 -1 -8695 8695 4 -8696 8695 -1 -8795 8695 -1 -8696 8696 4 -8697 8696 -1 -8796 8696 -1 -8697 8697 4 -8698 8697 -1 -8797 8697 -1 -8698 8698 4 -8699 8698 -1 -8798 8698 -1 -8699 8699 4 -8700 8699 -1 -8799 8699 -1 -8700 8700 4 -8800 8700 -1 -8701 8701 4 -8702 8701 -1 -8801 8701 -1 -8702 8702 4 -8703 8702 -1 -8802 8702 -1 -8703 8703 4 -8704 8703 -1 -8803 8703 -1 -8704 8704 4 -8705 8704 -1 -8804 8704 -1 -8705 8705 4 -8706 8705 -1 -8805 8705 -1 -8706 8706 4 -8707 8706 -1 -8806 8706 -1 -8707 8707 4 -8708 8707 -1 -8807 8707 -1 -8708 8708 4 -8709 8708 -1 -8808 8708 -1 -8709 8709 4 -8710 8709 -1 -8809 8709 -1 -8710 8710 4 -8711 8710 -1 -8810 8710 -1 -8711 8711 4 -8712 8711 -1 -8811 8711 -1 -8712 8712 4 -8713 8712 -1 -8812 8712 -1 -8713 8713 4 -8714 8713 -1 -8813 8713 -1 -8714 8714 4 -8715 8714 -1 -8814 8714 -1 -8715 8715 4 -8716 8715 -1 -8815 8715 -1 -8716 8716 4 -8717 8716 -1 -8816 8716 -1 -8717 8717 4 -8718 8717 -1 -8817 8717 -1 -8718 8718 4 -8719 8718 -1 -8818 8718 -1 -8719 8719 4 -8720 8719 -1 -8819 8719 -1 -8720 8720 4 -8721 8720 -1 -8820 8720 -1 -8721 8721 4 -8722 8721 -1 -8821 8721 -1 -8722 8722 4 -8723 8722 -1 -8822 8722 -1 -8723 8723 4 -8724 8723 -1 -8823 8723 -1 -8724 8724 4 -8725 8724 -1 -8824 8724 -1 -8725 8725 4 -8726 8725 -1 -8825 8725 -1 -8726 8726 4 -8727 8726 -1 -8826 8726 -1 -8727 8727 4 -8728 8727 -1 -8827 8727 -1 -8728 8728 4 -8729 8728 -1 -8828 8728 -1 -8729 8729 4 -8730 8729 -1 -8829 8729 -1 -8730 8730 4 -8731 8730 -1 -8830 8730 -1 -8731 8731 4 -8732 8731 -1 -8831 8731 -1 -8732 8732 4 -8733 8732 -1 -8832 8732 -1 -8733 8733 4 -8734 8733 -1 -8833 8733 -1 -8734 8734 4 -8735 8734 -1 -8834 8734 -1 -8735 8735 4 -8736 8735 -1 -8835 8735 -1 -8736 8736 4 -8737 8736 -1 -8836 8736 -1 -8737 8737 4 -8738 8737 -1 -8837 8737 -1 -8738 8738 4 -8739 8738 -1 -8838 8738 -1 -8739 8739 4 -8740 8739 -1 -8839 8739 -1 -8740 8740 4 -8741 8740 -1 -8840 8740 -1 -8741 8741 4 -8742 8741 -1 -8841 8741 -1 -8742 8742 4 -8743 8742 -1 -8842 8742 -1 -8743 8743 4 -8744 8743 -1 -8843 8743 -1 -8744 8744 4 -8745 8744 -1 -8844 8744 -1 -8745 8745 4 -8746 8745 -1 -8845 8745 -1 -8746 8746 4 -8747 8746 -1 -8846 8746 -1 -8747 8747 4 -8748 8747 -1 -8847 8747 -1 -8748 8748 4 -8749 8748 -1 -8848 8748 -1 -8749 8749 4 -8750 8749 -1 -8849 8749 -1 -8750 8750 4 -8751 8750 -1 -8850 8750 -1 -8751 8751 4 -8752 8751 -1 -8851 8751 -1 -8752 8752 4 -8753 8752 -1 -8852 8752 -1 -8753 8753 4 -8754 8753 -1 -8853 8753 -1 -8754 8754 4 -8755 8754 -1 -8854 8754 -1 -8755 8755 4 -8756 8755 -1 -8855 8755 -1 -8756 8756 4 -8757 8756 -1 -8856 8756 -1 -8757 8757 4 -8758 8757 -1 -8857 8757 -1 -8758 8758 4 -8759 8758 -1 -8858 8758 -1 -8759 8759 4 -8760 8759 -1 -8859 8759 -1 -8760 8760 4 -8761 8760 -1 -8860 8760 -1 -8761 8761 4 -8762 8761 -1 -8861 8761 -1 -8762 8762 4 -8763 8762 -1 -8862 8762 -1 -8763 8763 4 -8764 8763 -1 -8863 8763 -1 -8764 8764 4 -8765 8764 -1 -8864 8764 -1 -8765 8765 4 -8766 8765 -1 -8865 8765 -1 -8766 8766 4 -8767 8766 -1 -8866 8766 -1 -8767 8767 4 -8768 8767 -1 -8867 8767 -1 -8768 8768 4 -8769 8768 -1 -8868 8768 -1 -8769 8769 4 -8770 8769 -1 -8869 8769 -1 -8770 8770 4 -8771 8770 -1 -8870 8770 -1 -8771 8771 4 -8772 8771 -1 -8871 8771 -1 -8772 8772 4 -8773 8772 -1 -8872 8772 -1 -8773 8773 4 -8774 8773 -1 -8873 8773 -1 -8774 8774 4 -8775 8774 -1 -8874 8774 -1 -8775 8775 4 -8776 8775 -1 -8875 8775 -1 -8776 8776 4 -8777 8776 -1 -8876 8776 -1 -8777 8777 4 -8778 8777 -1 -8877 8777 -1 -8778 8778 4 -8779 8778 -1 -8878 8778 -1 -8779 8779 4 -8780 8779 -1 -8879 8779 -1 -8780 8780 4 -8781 8780 -1 -8880 8780 -1 -8781 8781 4 -8782 8781 -1 -8881 8781 -1 -8782 8782 4 -8783 8782 -1 -8882 8782 -1 -8783 8783 4 -8784 8783 -1 -8883 8783 -1 -8784 8784 4 -8785 8784 -1 -8884 8784 -1 -8785 8785 4 -8786 8785 -1 -8885 8785 -1 -8786 8786 4 -8787 8786 -1 -8886 8786 -1 -8787 8787 4 -8788 8787 -1 -8887 8787 -1 -8788 8788 4 -8789 8788 -1 -8888 8788 -1 -8789 8789 4 -8790 8789 -1 -8889 8789 -1 -8790 8790 4 -8791 8790 -1 -8890 8790 -1 -8791 8791 4 -8792 8791 -1 -8891 8791 -1 -8792 8792 4 -8793 8792 -1 -8892 8792 -1 -8793 8793 4 -8794 8793 -1 -8893 8793 -1 -8794 8794 4 -8795 8794 -1 -8894 8794 -1 -8795 8795 4 -8796 8795 -1 -8895 8795 -1 -8796 8796 4 -8797 8796 -1 -8896 8796 -1 -8797 8797 4 -8798 8797 -1 -8897 8797 -1 -8798 8798 4 -8799 8798 -1 -8898 8798 -1 -8799 8799 4 -8800 8799 -1 -8899 8799 -1 -8800 8800 4 -8900 8800 -1 -8801 8801 4 -8802 8801 -1 -8901 8801 -1 -8802 8802 4 -8803 8802 -1 -8902 8802 -1 -8803 8803 4 -8804 8803 -1 -8903 8803 -1 -8804 8804 4 -8805 8804 -1 -8904 8804 -1 -8805 8805 4 -8806 8805 -1 -8905 8805 -1 -8806 8806 4 -8807 8806 -1 -8906 8806 -1 -8807 8807 4 -8808 8807 -1 -8907 8807 -1 -8808 8808 4 -8809 8808 -1 -8908 8808 -1 -8809 8809 4 -8810 8809 -1 -8909 8809 -1 -8810 8810 4 -8811 8810 -1 -8910 8810 -1 -8811 8811 4 -8812 8811 -1 -8911 8811 -1 -8812 8812 4 -8813 8812 -1 -8912 8812 -1 -8813 8813 4 -8814 8813 -1 -8913 8813 -1 -8814 8814 4 -8815 8814 -1 -8914 8814 -1 -8815 8815 4 -8816 8815 -1 -8915 8815 -1 -8816 8816 4 -8817 8816 -1 -8916 8816 -1 -8817 8817 4 -8818 8817 -1 -8917 8817 -1 -8818 8818 4 -8819 8818 -1 -8918 8818 -1 -8819 8819 4 -8820 8819 -1 -8919 8819 -1 -8820 8820 4 -8821 8820 -1 -8920 8820 -1 -8821 8821 4 -8822 8821 -1 -8921 8821 -1 -8822 8822 4 -8823 8822 -1 -8922 8822 -1 -8823 8823 4 -8824 8823 -1 -8923 8823 -1 -8824 8824 4 -8825 8824 -1 -8924 8824 -1 -8825 8825 4 -8826 8825 -1 -8925 8825 -1 -8826 8826 4 -8827 8826 -1 -8926 8826 -1 -8827 8827 4 -8828 8827 -1 -8927 8827 -1 -8828 8828 4 -8829 8828 -1 -8928 8828 -1 -8829 8829 4 -8830 8829 -1 -8929 8829 -1 -8830 8830 4 -8831 8830 -1 -8930 8830 -1 -8831 8831 4 -8832 8831 -1 -8931 8831 -1 -8832 8832 4 -8833 8832 -1 -8932 8832 -1 -8833 8833 4 -8834 8833 -1 -8933 8833 -1 -8834 8834 4 -8835 8834 -1 -8934 8834 -1 -8835 8835 4 -8836 8835 -1 -8935 8835 -1 -8836 8836 4 -8837 8836 -1 -8936 8836 -1 -8837 8837 4 -8838 8837 -1 -8937 8837 -1 -8838 8838 4 -8839 8838 -1 -8938 8838 -1 -8839 8839 4 -8840 8839 -1 -8939 8839 -1 -8840 8840 4 -8841 8840 -1 -8940 8840 -1 -8841 8841 4 -8842 8841 -1 -8941 8841 -1 -8842 8842 4 -8843 8842 -1 -8942 8842 -1 -8843 8843 4 -8844 8843 -1 -8943 8843 -1 -8844 8844 4 -8845 8844 -1 -8944 8844 -1 -8845 8845 4 -8846 8845 -1 -8945 8845 -1 -8846 8846 4 -8847 8846 -1 -8946 8846 -1 -8847 8847 4 -8848 8847 -1 -8947 8847 -1 -8848 8848 4 -8849 8848 -1 -8948 8848 -1 -8849 8849 4 -8850 8849 -1 -8949 8849 -1 -8850 8850 4 -8851 8850 -1 -8950 8850 -1 -8851 8851 4 -8852 8851 -1 -8951 8851 -1 -8852 8852 4 -8853 8852 -1 -8952 8852 -1 -8853 8853 4 -8854 8853 -1 -8953 8853 -1 -8854 8854 4 -8855 8854 -1 -8954 8854 -1 -8855 8855 4 -8856 8855 -1 -8955 8855 -1 -8856 8856 4 -8857 8856 -1 -8956 8856 -1 -8857 8857 4 -8858 8857 -1 -8957 8857 -1 -8858 8858 4 -8859 8858 -1 -8958 8858 -1 -8859 8859 4 -8860 8859 -1 -8959 8859 -1 -8860 8860 4 -8861 8860 -1 -8960 8860 -1 -8861 8861 4 -8862 8861 -1 -8961 8861 -1 -8862 8862 4 -8863 8862 -1 -8962 8862 -1 -8863 8863 4 -8864 8863 -1 -8963 8863 -1 -8864 8864 4 -8865 8864 -1 -8964 8864 -1 -8865 8865 4 -8866 8865 -1 -8965 8865 -1 -8866 8866 4 -8867 8866 -1 -8966 8866 -1 -8867 8867 4 -8868 8867 -1 -8967 8867 -1 -8868 8868 4 -8869 8868 -1 -8968 8868 -1 -8869 8869 4 -8870 8869 -1 -8969 8869 -1 -8870 8870 4 -8871 8870 -1 -8970 8870 -1 -8871 8871 4 -8872 8871 -1 -8971 8871 -1 -8872 8872 4 -8873 8872 -1 -8972 8872 -1 -8873 8873 4 -8874 8873 -1 -8973 8873 -1 -8874 8874 4 -8875 8874 -1 -8974 8874 -1 -8875 8875 4 -8876 8875 -1 -8975 8875 -1 -8876 8876 4 -8877 8876 -1 -8976 8876 -1 -8877 8877 4 -8878 8877 -1 -8977 8877 -1 -8878 8878 4 -8879 8878 -1 -8978 8878 -1 -8879 8879 4 -8880 8879 -1 -8979 8879 -1 -8880 8880 4 -8881 8880 -1 -8980 8880 -1 -8881 8881 4 -8882 8881 -1 -8981 8881 -1 -8882 8882 4 -8883 8882 -1 -8982 8882 -1 -8883 8883 4 -8884 8883 -1 -8983 8883 -1 -8884 8884 4 -8885 8884 -1 -8984 8884 -1 -8885 8885 4 -8886 8885 -1 -8985 8885 -1 -8886 8886 4 -8887 8886 -1 -8986 8886 -1 -8887 8887 4 -8888 8887 -1 -8987 8887 -1 -8888 8888 4 -8889 8888 -1 -8988 8888 -1 -8889 8889 4 -8890 8889 -1 -8989 8889 -1 -8890 8890 4 -8891 8890 -1 -8990 8890 -1 -8891 8891 4 -8892 8891 -1 -8991 8891 -1 -8892 8892 4 -8893 8892 -1 -8992 8892 -1 -8893 8893 4 -8894 8893 -1 -8993 8893 -1 -8894 8894 4 -8895 8894 -1 -8994 8894 -1 -8895 8895 4 -8896 8895 -1 -8995 8895 -1 -8896 8896 4 -8897 8896 -1 -8996 8896 -1 -8897 8897 4 -8898 8897 -1 -8997 8897 -1 -8898 8898 4 -8899 8898 -1 -8998 8898 -1 -8899 8899 4 -8900 8899 -1 -8999 8899 -1 -8900 8900 4 -9000 8900 -1 -8901 8901 4 -8902 8901 -1 -9001 8901 -1 -8902 8902 4 -8903 8902 -1 -9002 8902 -1 -8903 8903 4 -8904 8903 -1 -9003 8903 -1 -8904 8904 4 -8905 8904 -1 -9004 8904 -1 -8905 8905 4 -8906 8905 -1 -9005 8905 -1 -8906 8906 4 -8907 8906 -1 -9006 8906 -1 -8907 8907 4 -8908 8907 -1 -9007 8907 -1 -8908 8908 4 -8909 8908 -1 -9008 8908 -1 -8909 8909 4 -8910 8909 -1 -9009 8909 -1 -8910 8910 4 -8911 8910 -1 -9010 8910 -1 -8911 8911 4 -8912 8911 -1 -9011 8911 -1 -8912 8912 4 -8913 8912 -1 -9012 8912 -1 -8913 8913 4 -8914 8913 -1 -9013 8913 -1 -8914 8914 4 -8915 8914 -1 -9014 8914 -1 -8915 8915 4 -8916 8915 -1 -9015 8915 -1 -8916 8916 4 -8917 8916 -1 -9016 8916 -1 -8917 8917 4 -8918 8917 -1 -9017 8917 -1 -8918 8918 4 -8919 8918 -1 -9018 8918 -1 -8919 8919 4 -8920 8919 -1 -9019 8919 -1 -8920 8920 4 -8921 8920 -1 -9020 8920 -1 -8921 8921 4 -8922 8921 -1 -9021 8921 -1 -8922 8922 4 -8923 8922 -1 -9022 8922 -1 -8923 8923 4 -8924 8923 -1 -9023 8923 -1 -8924 8924 4 -8925 8924 -1 -9024 8924 -1 -8925 8925 4 -8926 8925 -1 -9025 8925 -1 -8926 8926 4 -8927 8926 -1 -9026 8926 -1 -8927 8927 4 -8928 8927 -1 -9027 8927 -1 -8928 8928 4 -8929 8928 -1 -9028 8928 -1 -8929 8929 4 -8930 8929 -1 -9029 8929 -1 -8930 8930 4 -8931 8930 -1 -9030 8930 -1 -8931 8931 4 -8932 8931 -1 -9031 8931 -1 -8932 8932 4 -8933 8932 -1 -9032 8932 -1 -8933 8933 4 -8934 8933 -1 -9033 8933 -1 -8934 8934 4 -8935 8934 -1 -9034 8934 -1 -8935 8935 4 -8936 8935 -1 -9035 8935 -1 -8936 8936 4 -8937 8936 -1 -9036 8936 -1 -8937 8937 4 -8938 8937 -1 -9037 8937 -1 -8938 8938 4 -8939 8938 -1 -9038 8938 -1 -8939 8939 4 -8940 8939 -1 -9039 8939 -1 -8940 8940 4 -8941 8940 -1 -9040 8940 -1 -8941 8941 4 -8942 8941 -1 -9041 8941 -1 -8942 8942 4 -8943 8942 -1 -9042 8942 -1 -8943 8943 4 -8944 8943 -1 -9043 8943 -1 -8944 8944 4 -8945 8944 -1 -9044 8944 -1 -8945 8945 4 -8946 8945 -1 -9045 8945 -1 -8946 8946 4 -8947 8946 -1 -9046 8946 -1 -8947 8947 4 -8948 8947 -1 -9047 8947 -1 -8948 8948 4 -8949 8948 -1 -9048 8948 -1 -8949 8949 4 -8950 8949 -1 -9049 8949 -1 -8950 8950 4 -8951 8950 -1 -9050 8950 -1 -8951 8951 4 -8952 8951 -1 -9051 8951 -1 -8952 8952 4 -8953 8952 -1 -9052 8952 -1 -8953 8953 4 -8954 8953 -1 -9053 8953 -1 -8954 8954 4 -8955 8954 -1 -9054 8954 -1 -8955 8955 4 -8956 8955 -1 -9055 8955 -1 -8956 8956 4 -8957 8956 -1 -9056 8956 -1 -8957 8957 4 -8958 8957 -1 -9057 8957 -1 -8958 8958 4 -8959 8958 -1 -9058 8958 -1 -8959 8959 4 -8960 8959 -1 -9059 8959 -1 -8960 8960 4 -8961 8960 -1 -9060 8960 -1 -8961 8961 4 -8962 8961 -1 -9061 8961 -1 -8962 8962 4 -8963 8962 -1 -9062 8962 -1 -8963 8963 4 -8964 8963 -1 -9063 8963 -1 -8964 8964 4 -8965 8964 -1 -9064 8964 -1 -8965 8965 4 -8966 8965 -1 -9065 8965 -1 -8966 8966 4 -8967 8966 -1 -9066 8966 -1 -8967 8967 4 -8968 8967 -1 -9067 8967 -1 -8968 8968 4 -8969 8968 -1 -9068 8968 -1 -8969 8969 4 -8970 8969 -1 -9069 8969 -1 -8970 8970 4 -8971 8970 -1 -9070 8970 -1 -8971 8971 4 -8972 8971 -1 -9071 8971 -1 -8972 8972 4 -8973 8972 -1 -9072 8972 -1 -8973 8973 4 -8974 8973 -1 -9073 8973 -1 -8974 8974 4 -8975 8974 -1 -9074 8974 -1 -8975 8975 4 -8976 8975 -1 -9075 8975 -1 -8976 8976 4 -8977 8976 -1 -9076 8976 -1 -8977 8977 4 -8978 8977 -1 -9077 8977 -1 -8978 8978 4 -8979 8978 -1 -9078 8978 -1 -8979 8979 4 -8980 8979 -1 -9079 8979 -1 -8980 8980 4 -8981 8980 -1 -9080 8980 -1 -8981 8981 4 -8982 8981 -1 -9081 8981 -1 -8982 8982 4 -8983 8982 -1 -9082 8982 -1 -8983 8983 4 -8984 8983 -1 -9083 8983 -1 -8984 8984 4 -8985 8984 -1 -9084 8984 -1 -8985 8985 4 -8986 8985 -1 -9085 8985 -1 -8986 8986 4 -8987 8986 -1 -9086 8986 -1 -8987 8987 4 -8988 8987 -1 -9087 8987 -1 -8988 8988 4 -8989 8988 -1 -9088 8988 -1 -8989 8989 4 -8990 8989 -1 -9089 8989 -1 -8990 8990 4 -8991 8990 -1 -9090 8990 -1 -8991 8991 4 -8992 8991 -1 -9091 8991 -1 -8992 8992 4 -8993 8992 -1 -9092 8992 -1 -8993 8993 4 -8994 8993 -1 -9093 8993 -1 -8994 8994 4 -8995 8994 -1 -9094 8994 -1 -8995 8995 4 -8996 8995 -1 -9095 8995 -1 -8996 8996 4 -8997 8996 -1 -9096 8996 -1 -8997 8997 4 -8998 8997 -1 -9097 8997 -1 -8998 8998 4 -8999 8998 -1 -9098 8998 -1 -8999 8999 4 -9000 8999 -1 -9099 8999 -1 -9000 9000 4 -9100 9000 -1 -9001 9001 4 -9002 9001 -1 -9101 9001 -1 -9002 9002 4 -9003 9002 -1 -9102 9002 -1 -9003 9003 4 -9004 9003 -1 -9103 9003 -1 -9004 9004 4 -9005 9004 -1 -9104 9004 -1 -9005 9005 4 -9006 9005 -1 -9105 9005 -1 -9006 9006 4 -9007 9006 -1 -9106 9006 -1 -9007 9007 4 -9008 9007 -1 -9107 9007 -1 -9008 9008 4 -9009 9008 -1 -9108 9008 -1 -9009 9009 4 -9010 9009 -1 -9109 9009 -1 -9010 9010 4 -9011 9010 -1 -9110 9010 -1 -9011 9011 4 -9012 9011 -1 -9111 9011 -1 -9012 9012 4 -9013 9012 -1 -9112 9012 -1 -9013 9013 4 -9014 9013 -1 -9113 9013 -1 -9014 9014 4 -9015 9014 -1 -9114 9014 -1 -9015 9015 4 -9016 9015 -1 -9115 9015 -1 -9016 9016 4 -9017 9016 -1 -9116 9016 -1 -9017 9017 4 -9018 9017 -1 -9117 9017 -1 -9018 9018 4 -9019 9018 -1 -9118 9018 -1 -9019 9019 4 -9020 9019 -1 -9119 9019 -1 -9020 9020 4 -9021 9020 -1 -9120 9020 -1 -9021 9021 4 -9022 9021 -1 -9121 9021 -1 -9022 9022 4 -9023 9022 -1 -9122 9022 -1 -9023 9023 4 -9024 9023 -1 -9123 9023 -1 -9024 9024 4 -9025 9024 -1 -9124 9024 -1 -9025 9025 4 -9026 9025 -1 -9125 9025 -1 -9026 9026 4 -9027 9026 -1 -9126 9026 -1 -9027 9027 4 -9028 9027 -1 -9127 9027 -1 -9028 9028 4 -9029 9028 -1 -9128 9028 -1 -9029 9029 4 -9030 9029 -1 -9129 9029 -1 -9030 9030 4 -9031 9030 -1 -9130 9030 -1 -9031 9031 4 -9032 9031 -1 -9131 9031 -1 -9032 9032 4 -9033 9032 -1 -9132 9032 -1 -9033 9033 4 -9034 9033 -1 -9133 9033 -1 -9034 9034 4 -9035 9034 -1 -9134 9034 -1 -9035 9035 4 -9036 9035 -1 -9135 9035 -1 -9036 9036 4 -9037 9036 -1 -9136 9036 -1 -9037 9037 4 -9038 9037 -1 -9137 9037 -1 -9038 9038 4 -9039 9038 -1 -9138 9038 -1 -9039 9039 4 -9040 9039 -1 -9139 9039 -1 -9040 9040 4 -9041 9040 -1 -9140 9040 -1 -9041 9041 4 -9042 9041 -1 -9141 9041 -1 -9042 9042 4 -9043 9042 -1 -9142 9042 -1 -9043 9043 4 -9044 9043 -1 -9143 9043 -1 -9044 9044 4 -9045 9044 -1 -9144 9044 -1 -9045 9045 4 -9046 9045 -1 -9145 9045 -1 -9046 9046 4 -9047 9046 -1 -9146 9046 -1 -9047 9047 4 -9048 9047 -1 -9147 9047 -1 -9048 9048 4 -9049 9048 -1 -9148 9048 -1 -9049 9049 4 -9050 9049 -1 -9149 9049 -1 -9050 9050 4 -9051 9050 -1 -9150 9050 -1 -9051 9051 4 -9052 9051 -1 -9151 9051 -1 -9052 9052 4 -9053 9052 -1 -9152 9052 -1 -9053 9053 4 -9054 9053 -1 -9153 9053 -1 -9054 9054 4 -9055 9054 -1 -9154 9054 -1 -9055 9055 4 -9056 9055 -1 -9155 9055 -1 -9056 9056 4 -9057 9056 -1 -9156 9056 -1 -9057 9057 4 -9058 9057 -1 -9157 9057 -1 -9058 9058 4 -9059 9058 -1 -9158 9058 -1 -9059 9059 4 -9060 9059 -1 -9159 9059 -1 -9060 9060 4 -9061 9060 -1 -9160 9060 -1 -9061 9061 4 -9062 9061 -1 -9161 9061 -1 -9062 9062 4 -9063 9062 -1 -9162 9062 -1 -9063 9063 4 -9064 9063 -1 -9163 9063 -1 -9064 9064 4 -9065 9064 -1 -9164 9064 -1 -9065 9065 4 -9066 9065 -1 -9165 9065 -1 -9066 9066 4 -9067 9066 -1 -9166 9066 -1 -9067 9067 4 -9068 9067 -1 -9167 9067 -1 -9068 9068 4 -9069 9068 -1 -9168 9068 -1 -9069 9069 4 -9070 9069 -1 -9169 9069 -1 -9070 9070 4 -9071 9070 -1 -9170 9070 -1 -9071 9071 4 -9072 9071 -1 -9171 9071 -1 -9072 9072 4 -9073 9072 -1 -9172 9072 -1 -9073 9073 4 -9074 9073 -1 -9173 9073 -1 -9074 9074 4 -9075 9074 -1 -9174 9074 -1 -9075 9075 4 -9076 9075 -1 -9175 9075 -1 -9076 9076 4 -9077 9076 -1 -9176 9076 -1 -9077 9077 4 -9078 9077 -1 -9177 9077 -1 -9078 9078 4 -9079 9078 -1 -9178 9078 -1 -9079 9079 4 -9080 9079 -1 -9179 9079 -1 -9080 9080 4 -9081 9080 -1 -9180 9080 -1 -9081 9081 4 -9082 9081 -1 -9181 9081 -1 -9082 9082 4 -9083 9082 -1 -9182 9082 -1 -9083 9083 4 -9084 9083 -1 -9183 9083 -1 -9084 9084 4 -9085 9084 -1 -9184 9084 -1 -9085 9085 4 -9086 9085 -1 -9185 9085 -1 -9086 9086 4 -9087 9086 -1 -9186 9086 -1 -9087 9087 4 -9088 9087 -1 -9187 9087 -1 -9088 9088 4 -9089 9088 -1 -9188 9088 -1 -9089 9089 4 -9090 9089 -1 -9189 9089 -1 -9090 9090 4 -9091 9090 -1 -9190 9090 -1 -9091 9091 4 -9092 9091 -1 -9191 9091 -1 -9092 9092 4 -9093 9092 -1 -9192 9092 -1 -9093 9093 4 -9094 9093 -1 -9193 9093 -1 -9094 9094 4 -9095 9094 -1 -9194 9094 -1 -9095 9095 4 -9096 9095 -1 -9195 9095 -1 -9096 9096 4 -9097 9096 -1 -9196 9096 -1 -9097 9097 4 -9098 9097 -1 -9197 9097 -1 -9098 9098 4 -9099 9098 -1 -9198 9098 -1 -9099 9099 4 -9100 9099 -1 -9199 9099 -1 -9100 9100 4 -9200 9100 -1 -9101 9101 4 -9102 9101 -1 -9201 9101 -1 -9102 9102 4 -9103 9102 -1 -9202 9102 -1 -9103 9103 4 -9104 9103 -1 -9203 9103 -1 -9104 9104 4 -9105 9104 -1 -9204 9104 -1 -9105 9105 4 -9106 9105 -1 -9205 9105 -1 -9106 9106 4 -9107 9106 -1 -9206 9106 -1 -9107 9107 4 -9108 9107 -1 -9207 9107 -1 -9108 9108 4 -9109 9108 -1 -9208 9108 -1 -9109 9109 4 -9110 9109 -1 -9209 9109 -1 -9110 9110 4 -9111 9110 -1 -9210 9110 -1 -9111 9111 4 -9112 9111 -1 -9211 9111 -1 -9112 9112 4 -9113 9112 -1 -9212 9112 -1 -9113 9113 4 -9114 9113 -1 -9213 9113 -1 -9114 9114 4 -9115 9114 -1 -9214 9114 -1 -9115 9115 4 -9116 9115 -1 -9215 9115 -1 -9116 9116 4 -9117 9116 -1 -9216 9116 -1 -9117 9117 4 -9118 9117 -1 -9217 9117 -1 -9118 9118 4 -9119 9118 -1 -9218 9118 -1 -9119 9119 4 -9120 9119 -1 -9219 9119 -1 -9120 9120 4 -9121 9120 -1 -9220 9120 -1 -9121 9121 4 -9122 9121 -1 -9221 9121 -1 -9122 9122 4 -9123 9122 -1 -9222 9122 -1 -9123 9123 4 -9124 9123 -1 -9223 9123 -1 -9124 9124 4 -9125 9124 -1 -9224 9124 -1 -9125 9125 4 -9126 9125 -1 -9225 9125 -1 -9126 9126 4 -9127 9126 -1 -9226 9126 -1 -9127 9127 4 -9128 9127 -1 -9227 9127 -1 -9128 9128 4 -9129 9128 -1 -9228 9128 -1 -9129 9129 4 -9130 9129 -1 -9229 9129 -1 -9130 9130 4 -9131 9130 -1 -9230 9130 -1 -9131 9131 4 -9132 9131 -1 -9231 9131 -1 -9132 9132 4 -9133 9132 -1 -9232 9132 -1 -9133 9133 4 -9134 9133 -1 -9233 9133 -1 -9134 9134 4 -9135 9134 -1 -9234 9134 -1 -9135 9135 4 -9136 9135 -1 -9235 9135 -1 -9136 9136 4 -9137 9136 -1 -9236 9136 -1 -9137 9137 4 -9138 9137 -1 -9237 9137 -1 -9138 9138 4 -9139 9138 -1 -9238 9138 -1 -9139 9139 4 -9140 9139 -1 -9239 9139 -1 -9140 9140 4 -9141 9140 -1 -9240 9140 -1 -9141 9141 4 -9142 9141 -1 -9241 9141 -1 -9142 9142 4 -9143 9142 -1 -9242 9142 -1 -9143 9143 4 -9144 9143 -1 -9243 9143 -1 -9144 9144 4 -9145 9144 -1 -9244 9144 -1 -9145 9145 4 -9146 9145 -1 -9245 9145 -1 -9146 9146 4 -9147 9146 -1 -9246 9146 -1 -9147 9147 4 -9148 9147 -1 -9247 9147 -1 -9148 9148 4 -9149 9148 -1 -9248 9148 -1 -9149 9149 4 -9150 9149 -1 -9249 9149 -1 -9150 9150 4 -9151 9150 -1 -9250 9150 -1 -9151 9151 4 -9152 9151 -1 -9251 9151 -1 -9152 9152 4 -9153 9152 -1 -9252 9152 -1 -9153 9153 4 -9154 9153 -1 -9253 9153 -1 -9154 9154 4 -9155 9154 -1 -9254 9154 -1 -9155 9155 4 -9156 9155 -1 -9255 9155 -1 -9156 9156 4 -9157 9156 -1 -9256 9156 -1 -9157 9157 4 -9158 9157 -1 -9257 9157 -1 -9158 9158 4 -9159 9158 -1 -9258 9158 -1 -9159 9159 4 -9160 9159 -1 -9259 9159 -1 -9160 9160 4 -9161 9160 -1 -9260 9160 -1 -9161 9161 4 -9162 9161 -1 -9261 9161 -1 -9162 9162 4 -9163 9162 -1 -9262 9162 -1 -9163 9163 4 -9164 9163 -1 -9263 9163 -1 -9164 9164 4 -9165 9164 -1 -9264 9164 -1 -9165 9165 4 -9166 9165 -1 -9265 9165 -1 -9166 9166 4 -9167 9166 -1 -9266 9166 -1 -9167 9167 4 -9168 9167 -1 -9267 9167 -1 -9168 9168 4 -9169 9168 -1 -9268 9168 -1 -9169 9169 4 -9170 9169 -1 -9269 9169 -1 -9170 9170 4 -9171 9170 -1 -9270 9170 -1 -9171 9171 4 -9172 9171 -1 -9271 9171 -1 -9172 9172 4 -9173 9172 -1 -9272 9172 -1 -9173 9173 4 -9174 9173 -1 -9273 9173 -1 -9174 9174 4 -9175 9174 -1 -9274 9174 -1 -9175 9175 4 -9176 9175 -1 -9275 9175 -1 -9176 9176 4 -9177 9176 -1 -9276 9176 -1 -9177 9177 4 -9178 9177 -1 -9277 9177 -1 -9178 9178 4 -9179 9178 -1 -9278 9178 -1 -9179 9179 4 -9180 9179 -1 -9279 9179 -1 -9180 9180 4 -9181 9180 -1 -9280 9180 -1 -9181 9181 4 -9182 9181 -1 -9281 9181 -1 -9182 9182 4 -9183 9182 -1 -9282 9182 -1 -9183 9183 4 -9184 9183 -1 -9283 9183 -1 -9184 9184 4 -9185 9184 -1 -9284 9184 -1 -9185 9185 4 -9186 9185 -1 -9285 9185 -1 -9186 9186 4 -9187 9186 -1 -9286 9186 -1 -9187 9187 4 -9188 9187 -1 -9287 9187 -1 -9188 9188 4 -9189 9188 -1 -9288 9188 -1 -9189 9189 4 -9190 9189 -1 -9289 9189 -1 -9190 9190 4 -9191 9190 -1 -9290 9190 -1 -9191 9191 4 -9192 9191 -1 -9291 9191 -1 -9192 9192 4 -9193 9192 -1 -9292 9192 -1 -9193 9193 4 -9194 9193 -1 -9293 9193 -1 -9194 9194 4 -9195 9194 -1 -9294 9194 -1 -9195 9195 4 -9196 9195 -1 -9295 9195 -1 -9196 9196 4 -9197 9196 -1 -9296 9196 -1 -9197 9197 4 -9198 9197 -1 -9297 9197 -1 -9198 9198 4 -9199 9198 -1 -9298 9198 -1 -9199 9199 4 -9200 9199 -1 -9299 9199 -1 -9200 9200 4 -9300 9200 -1 -9201 9201 4 -9202 9201 -1 -9301 9201 -1 -9202 9202 4 -9203 9202 -1 -9302 9202 -1 -9203 9203 4 -9204 9203 -1 -9303 9203 -1 -9204 9204 4 -9205 9204 -1 -9304 9204 -1 -9205 9205 4 -9206 9205 -1 -9305 9205 -1 -9206 9206 4 -9207 9206 -1 -9306 9206 -1 -9207 9207 4 -9208 9207 -1 -9307 9207 -1 -9208 9208 4 -9209 9208 -1 -9308 9208 -1 -9209 9209 4 -9210 9209 -1 -9309 9209 -1 -9210 9210 4 -9211 9210 -1 -9310 9210 -1 -9211 9211 4 -9212 9211 -1 -9311 9211 -1 -9212 9212 4 -9213 9212 -1 -9312 9212 -1 -9213 9213 4 -9214 9213 -1 -9313 9213 -1 -9214 9214 4 -9215 9214 -1 -9314 9214 -1 -9215 9215 4 -9216 9215 -1 -9315 9215 -1 -9216 9216 4 -9217 9216 -1 -9316 9216 -1 -9217 9217 4 -9218 9217 -1 -9317 9217 -1 -9218 9218 4 -9219 9218 -1 -9318 9218 -1 -9219 9219 4 -9220 9219 -1 -9319 9219 -1 -9220 9220 4 -9221 9220 -1 -9320 9220 -1 -9221 9221 4 -9222 9221 -1 -9321 9221 -1 -9222 9222 4 -9223 9222 -1 -9322 9222 -1 -9223 9223 4 -9224 9223 -1 -9323 9223 -1 -9224 9224 4 -9225 9224 -1 -9324 9224 -1 -9225 9225 4 -9226 9225 -1 -9325 9225 -1 -9226 9226 4 -9227 9226 -1 -9326 9226 -1 -9227 9227 4 -9228 9227 -1 -9327 9227 -1 -9228 9228 4 -9229 9228 -1 -9328 9228 -1 -9229 9229 4 -9230 9229 -1 -9329 9229 -1 -9230 9230 4 -9231 9230 -1 -9330 9230 -1 -9231 9231 4 -9232 9231 -1 -9331 9231 -1 -9232 9232 4 -9233 9232 -1 -9332 9232 -1 -9233 9233 4 -9234 9233 -1 -9333 9233 -1 -9234 9234 4 -9235 9234 -1 -9334 9234 -1 -9235 9235 4 -9236 9235 -1 -9335 9235 -1 -9236 9236 4 -9237 9236 -1 -9336 9236 -1 -9237 9237 4 -9238 9237 -1 -9337 9237 -1 -9238 9238 4 -9239 9238 -1 -9338 9238 -1 -9239 9239 4 -9240 9239 -1 -9339 9239 -1 -9240 9240 4 -9241 9240 -1 -9340 9240 -1 -9241 9241 4 -9242 9241 -1 -9341 9241 -1 -9242 9242 4 -9243 9242 -1 -9342 9242 -1 -9243 9243 4 -9244 9243 -1 -9343 9243 -1 -9244 9244 4 -9245 9244 -1 -9344 9244 -1 -9245 9245 4 -9246 9245 -1 -9345 9245 -1 -9246 9246 4 -9247 9246 -1 -9346 9246 -1 -9247 9247 4 -9248 9247 -1 -9347 9247 -1 -9248 9248 4 -9249 9248 -1 -9348 9248 -1 -9249 9249 4 -9250 9249 -1 -9349 9249 -1 -9250 9250 4 -9251 9250 -1 -9350 9250 -1 -9251 9251 4 -9252 9251 -1 -9351 9251 -1 -9252 9252 4 -9253 9252 -1 -9352 9252 -1 -9253 9253 4 -9254 9253 -1 -9353 9253 -1 -9254 9254 4 -9255 9254 -1 -9354 9254 -1 -9255 9255 4 -9256 9255 -1 -9355 9255 -1 -9256 9256 4 -9257 9256 -1 -9356 9256 -1 -9257 9257 4 -9258 9257 -1 -9357 9257 -1 -9258 9258 4 -9259 9258 -1 -9358 9258 -1 -9259 9259 4 -9260 9259 -1 -9359 9259 -1 -9260 9260 4 -9261 9260 -1 -9360 9260 -1 -9261 9261 4 -9262 9261 -1 -9361 9261 -1 -9262 9262 4 -9263 9262 -1 -9362 9262 -1 -9263 9263 4 -9264 9263 -1 -9363 9263 -1 -9264 9264 4 -9265 9264 -1 -9364 9264 -1 -9265 9265 4 -9266 9265 -1 -9365 9265 -1 -9266 9266 4 -9267 9266 -1 -9366 9266 -1 -9267 9267 4 -9268 9267 -1 -9367 9267 -1 -9268 9268 4 -9269 9268 -1 -9368 9268 -1 -9269 9269 4 -9270 9269 -1 -9369 9269 -1 -9270 9270 4 -9271 9270 -1 -9370 9270 -1 -9271 9271 4 -9272 9271 -1 -9371 9271 -1 -9272 9272 4 -9273 9272 -1 -9372 9272 -1 -9273 9273 4 -9274 9273 -1 -9373 9273 -1 -9274 9274 4 -9275 9274 -1 -9374 9274 -1 -9275 9275 4 -9276 9275 -1 -9375 9275 -1 -9276 9276 4 -9277 9276 -1 -9376 9276 -1 -9277 9277 4 -9278 9277 -1 -9377 9277 -1 -9278 9278 4 -9279 9278 -1 -9378 9278 -1 -9279 9279 4 -9280 9279 -1 -9379 9279 -1 -9280 9280 4 -9281 9280 -1 -9380 9280 -1 -9281 9281 4 -9282 9281 -1 -9381 9281 -1 -9282 9282 4 -9283 9282 -1 -9382 9282 -1 -9283 9283 4 -9284 9283 -1 -9383 9283 -1 -9284 9284 4 -9285 9284 -1 -9384 9284 -1 -9285 9285 4 -9286 9285 -1 -9385 9285 -1 -9286 9286 4 -9287 9286 -1 -9386 9286 -1 -9287 9287 4 -9288 9287 -1 -9387 9287 -1 -9288 9288 4 -9289 9288 -1 -9388 9288 -1 -9289 9289 4 -9290 9289 -1 -9389 9289 -1 -9290 9290 4 -9291 9290 -1 -9390 9290 -1 -9291 9291 4 -9292 9291 -1 -9391 9291 -1 -9292 9292 4 -9293 9292 -1 -9392 9292 -1 -9293 9293 4 -9294 9293 -1 -9393 9293 -1 -9294 9294 4 -9295 9294 -1 -9394 9294 -1 -9295 9295 4 -9296 9295 -1 -9395 9295 -1 -9296 9296 4 -9297 9296 -1 -9396 9296 -1 -9297 9297 4 -9298 9297 -1 -9397 9297 -1 -9298 9298 4 -9299 9298 -1 -9398 9298 -1 -9299 9299 4 -9300 9299 -1 -9399 9299 -1 -9300 9300 4 -9400 9300 -1 -9301 9301 4 -9302 9301 -1 -9401 9301 -1 -9302 9302 4 -9303 9302 -1 -9402 9302 -1 -9303 9303 4 -9304 9303 -1 -9403 9303 -1 -9304 9304 4 -9305 9304 -1 -9404 9304 -1 -9305 9305 4 -9306 9305 -1 -9405 9305 -1 -9306 9306 4 -9307 9306 -1 -9406 9306 -1 -9307 9307 4 -9308 9307 -1 -9407 9307 -1 -9308 9308 4 -9309 9308 -1 -9408 9308 -1 -9309 9309 4 -9310 9309 -1 -9409 9309 -1 -9310 9310 4 -9311 9310 -1 -9410 9310 -1 -9311 9311 4 -9312 9311 -1 -9411 9311 -1 -9312 9312 4 -9313 9312 -1 -9412 9312 -1 -9313 9313 4 -9314 9313 -1 -9413 9313 -1 -9314 9314 4 -9315 9314 -1 -9414 9314 -1 -9315 9315 4 -9316 9315 -1 -9415 9315 -1 -9316 9316 4 -9317 9316 -1 -9416 9316 -1 -9317 9317 4 -9318 9317 -1 -9417 9317 -1 -9318 9318 4 -9319 9318 -1 -9418 9318 -1 -9319 9319 4 -9320 9319 -1 -9419 9319 -1 -9320 9320 4 -9321 9320 -1 -9420 9320 -1 -9321 9321 4 -9322 9321 -1 -9421 9321 -1 -9322 9322 4 -9323 9322 -1 -9422 9322 -1 -9323 9323 4 -9324 9323 -1 -9423 9323 -1 -9324 9324 4 -9325 9324 -1 -9424 9324 -1 -9325 9325 4 -9326 9325 -1 -9425 9325 -1 -9326 9326 4 -9327 9326 -1 -9426 9326 -1 -9327 9327 4 -9328 9327 -1 -9427 9327 -1 -9328 9328 4 -9329 9328 -1 -9428 9328 -1 -9329 9329 4 -9330 9329 -1 -9429 9329 -1 -9330 9330 4 -9331 9330 -1 -9430 9330 -1 -9331 9331 4 -9332 9331 -1 -9431 9331 -1 -9332 9332 4 -9333 9332 -1 -9432 9332 -1 -9333 9333 4 -9334 9333 -1 -9433 9333 -1 -9334 9334 4 -9335 9334 -1 -9434 9334 -1 -9335 9335 4 -9336 9335 -1 -9435 9335 -1 -9336 9336 4 -9337 9336 -1 -9436 9336 -1 -9337 9337 4 -9338 9337 -1 -9437 9337 -1 -9338 9338 4 -9339 9338 -1 -9438 9338 -1 -9339 9339 4 -9340 9339 -1 -9439 9339 -1 -9340 9340 4 -9341 9340 -1 -9440 9340 -1 -9341 9341 4 -9342 9341 -1 -9441 9341 -1 -9342 9342 4 -9343 9342 -1 -9442 9342 -1 -9343 9343 4 -9344 9343 -1 -9443 9343 -1 -9344 9344 4 -9345 9344 -1 -9444 9344 -1 -9345 9345 4 -9346 9345 -1 -9445 9345 -1 -9346 9346 4 -9347 9346 -1 -9446 9346 -1 -9347 9347 4 -9348 9347 -1 -9447 9347 -1 -9348 9348 4 -9349 9348 -1 -9448 9348 -1 -9349 9349 4 -9350 9349 -1 -9449 9349 -1 -9350 9350 4 -9351 9350 -1 -9450 9350 -1 -9351 9351 4 -9352 9351 -1 -9451 9351 -1 -9352 9352 4 -9353 9352 -1 -9452 9352 -1 -9353 9353 4 -9354 9353 -1 -9453 9353 -1 -9354 9354 4 -9355 9354 -1 -9454 9354 -1 -9355 9355 4 -9356 9355 -1 -9455 9355 -1 -9356 9356 4 -9357 9356 -1 -9456 9356 -1 -9357 9357 4 -9358 9357 -1 -9457 9357 -1 -9358 9358 4 -9359 9358 -1 -9458 9358 -1 -9359 9359 4 -9360 9359 -1 -9459 9359 -1 -9360 9360 4 -9361 9360 -1 -9460 9360 -1 -9361 9361 4 -9362 9361 -1 -9461 9361 -1 -9362 9362 4 -9363 9362 -1 -9462 9362 -1 -9363 9363 4 -9364 9363 -1 -9463 9363 -1 -9364 9364 4 -9365 9364 -1 -9464 9364 -1 -9365 9365 4 -9366 9365 -1 -9465 9365 -1 -9366 9366 4 -9367 9366 -1 -9466 9366 -1 -9367 9367 4 -9368 9367 -1 -9467 9367 -1 -9368 9368 4 -9369 9368 -1 -9468 9368 -1 -9369 9369 4 -9370 9369 -1 -9469 9369 -1 -9370 9370 4 -9371 9370 -1 -9470 9370 -1 -9371 9371 4 -9372 9371 -1 -9471 9371 -1 -9372 9372 4 -9373 9372 -1 -9472 9372 -1 -9373 9373 4 -9374 9373 -1 -9473 9373 -1 -9374 9374 4 -9375 9374 -1 -9474 9374 -1 -9375 9375 4 -9376 9375 -1 -9475 9375 -1 -9376 9376 4 -9377 9376 -1 -9476 9376 -1 -9377 9377 4 -9378 9377 -1 -9477 9377 -1 -9378 9378 4 -9379 9378 -1 -9478 9378 -1 -9379 9379 4 -9380 9379 -1 -9479 9379 -1 -9380 9380 4 -9381 9380 -1 -9480 9380 -1 -9381 9381 4 -9382 9381 -1 -9481 9381 -1 -9382 9382 4 -9383 9382 -1 -9482 9382 -1 -9383 9383 4 -9384 9383 -1 -9483 9383 -1 -9384 9384 4 -9385 9384 -1 -9484 9384 -1 -9385 9385 4 -9386 9385 -1 -9485 9385 -1 -9386 9386 4 -9387 9386 -1 -9486 9386 -1 -9387 9387 4 -9388 9387 -1 -9487 9387 -1 -9388 9388 4 -9389 9388 -1 -9488 9388 -1 -9389 9389 4 -9390 9389 -1 -9489 9389 -1 -9390 9390 4 -9391 9390 -1 -9490 9390 -1 -9391 9391 4 -9392 9391 -1 -9491 9391 -1 -9392 9392 4 -9393 9392 -1 -9492 9392 -1 -9393 9393 4 -9394 9393 -1 -9493 9393 -1 -9394 9394 4 -9395 9394 -1 -9494 9394 -1 -9395 9395 4 -9396 9395 -1 -9495 9395 -1 -9396 9396 4 -9397 9396 -1 -9496 9396 -1 -9397 9397 4 -9398 9397 -1 -9497 9397 -1 -9398 9398 4 -9399 9398 -1 -9498 9398 -1 -9399 9399 4 -9400 9399 -1 -9499 9399 -1 -9400 9400 4 -9500 9400 -1 -9401 9401 4 -9402 9401 -1 -9501 9401 -1 -9402 9402 4 -9403 9402 -1 -9502 9402 -1 -9403 9403 4 -9404 9403 -1 -9503 9403 -1 -9404 9404 4 -9405 9404 -1 -9504 9404 -1 -9405 9405 4 -9406 9405 -1 -9505 9405 -1 -9406 9406 4 -9407 9406 -1 -9506 9406 -1 -9407 9407 4 -9408 9407 -1 -9507 9407 -1 -9408 9408 4 -9409 9408 -1 -9508 9408 -1 -9409 9409 4 -9410 9409 -1 -9509 9409 -1 -9410 9410 4 -9411 9410 -1 -9510 9410 -1 -9411 9411 4 -9412 9411 -1 -9511 9411 -1 -9412 9412 4 -9413 9412 -1 -9512 9412 -1 -9413 9413 4 -9414 9413 -1 -9513 9413 -1 -9414 9414 4 -9415 9414 -1 -9514 9414 -1 -9415 9415 4 -9416 9415 -1 -9515 9415 -1 -9416 9416 4 -9417 9416 -1 -9516 9416 -1 -9417 9417 4 -9418 9417 -1 -9517 9417 -1 -9418 9418 4 -9419 9418 -1 -9518 9418 -1 -9419 9419 4 -9420 9419 -1 -9519 9419 -1 -9420 9420 4 -9421 9420 -1 -9520 9420 -1 -9421 9421 4 -9422 9421 -1 -9521 9421 -1 -9422 9422 4 -9423 9422 -1 -9522 9422 -1 -9423 9423 4 -9424 9423 -1 -9523 9423 -1 -9424 9424 4 -9425 9424 -1 -9524 9424 -1 -9425 9425 4 -9426 9425 -1 -9525 9425 -1 -9426 9426 4 -9427 9426 -1 -9526 9426 -1 -9427 9427 4 -9428 9427 -1 -9527 9427 -1 -9428 9428 4 -9429 9428 -1 -9528 9428 -1 -9429 9429 4 -9430 9429 -1 -9529 9429 -1 -9430 9430 4 -9431 9430 -1 -9530 9430 -1 -9431 9431 4 -9432 9431 -1 -9531 9431 -1 -9432 9432 4 -9433 9432 -1 -9532 9432 -1 -9433 9433 4 -9434 9433 -1 -9533 9433 -1 -9434 9434 4 -9435 9434 -1 -9534 9434 -1 -9435 9435 4 -9436 9435 -1 -9535 9435 -1 -9436 9436 4 -9437 9436 -1 -9536 9436 -1 -9437 9437 4 -9438 9437 -1 -9537 9437 -1 -9438 9438 4 -9439 9438 -1 -9538 9438 -1 -9439 9439 4 -9440 9439 -1 -9539 9439 -1 -9440 9440 4 -9441 9440 -1 -9540 9440 -1 -9441 9441 4 -9442 9441 -1 -9541 9441 -1 -9442 9442 4 -9443 9442 -1 -9542 9442 -1 -9443 9443 4 -9444 9443 -1 -9543 9443 -1 -9444 9444 4 -9445 9444 -1 -9544 9444 -1 -9445 9445 4 -9446 9445 -1 -9545 9445 -1 -9446 9446 4 -9447 9446 -1 -9546 9446 -1 -9447 9447 4 -9448 9447 -1 -9547 9447 -1 -9448 9448 4 -9449 9448 -1 -9548 9448 -1 -9449 9449 4 -9450 9449 -1 -9549 9449 -1 -9450 9450 4 -9451 9450 -1 -9550 9450 -1 -9451 9451 4 -9452 9451 -1 -9551 9451 -1 -9452 9452 4 -9453 9452 -1 -9552 9452 -1 -9453 9453 4 -9454 9453 -1 -9553 9453 -1 -9454 9454 4 -9455 9454 -1 -9554 9454 -1 -9455 9455 4 -9456 9455 -1 -9555 9455 -1 -9456 9456 4 -9457 9456 -1 -9556 9456 -1 -9457 9457 4 -9458 9457 -1 -9557 9457 -1 -9458 9458 4 -9459 9458 -1 -9558 9458 -1 -9459 9459 4 -9460 9459 -1 -9559 9459 -1 -9460 9460 4 -9461 9460 -1 -9560 9460 -1 -9461 9461 4 -9462 9461 -1 -9561 9461 -1 -9462 9462 4 -9463 9462 -1 -9562 9462 -1 -9463 9463 4 -9464 9463 -1 -9563 9463 -1 -9464 9464 4 -9465 9464 -1 -9564 9464 -1 -9465 9465 4 -9466 9465 -1 -9565 9465 -1 -9466 9466 4 -9467 9466 -1 -9566 9466 -1 -9467 9467 4 -9468 9467 -1 -9567 9467 -1 -9468 9468 4 -9469 9468 -1 -9568 9468 -1 -9469 9469 4 -9470 9469 -1 -9569 9469 -1 -9470 9470 4 -9471 9470 -1 -9570 9470 -1 -9471 9471 4 -9472 9471 -1 -9571 9471 -1 -9472 9472 4 -9473 9472 -1 -9572 9472 -1 -9473 9473 4 -9474 9473 -1 -9573 9473 -1 -9474 9474 4 -9475 9474 -1 -9574 9474 -1 -9475 9475 4 -9476 9475 -1 -9575 9475 -1 -9476 9476 4 -9477 9476 -1 -9576 9476 -1 -9477 9477 4 -9478 9477 -1 -9577 9477 -1 -9478 9478 4 -9479 9478 -1 -9578 9478 -1 -9479 9479 4 -9480 9479 -1 -9579 9479 -1 -9480 9480 4 -9481 9480 -1 -9580 9480 -1 -9481 9481 4 -9482 9481 -1 -9581 9481 -1 -9482 9482 4 -9483 9482 -1 -9582 9482 -1 -9483 9483 4 -9484 9483 -1 -9583 9483 -1 -9484 9484 4 -9485 9484 -1 -9584 9484 -1 -9485 9485 4 -9486 9485 -1 -9585 9485 -1 -9486 9486 4 -9487 9486 -1 -9586 9486 -1 -9487 9487 4 -9488 9487 -1 -9587 9487 -1 -9488 9488 4 -9489 9488 -1 -9588 9488 -1 -9489 9489 4 -9490 9489 -1 -9589 9489 -1 -9490 9490 4 -9491 9490 -1 -9590 9490 -1 -9491 9491 4 -9492 9491 -1 -9591 9491 -1 -9492 9492 4 -9493 9492 -1 -9592 9492 -1 -9493 9493 4 -9494 9493 -1 -9593 9493 -1 -9494 9494 4 -9495 9494 -1 -9594 9494 -1 -9495 9495 4 -9496 9495 -1 -9595 9495 -1 -9496 9496 4 -9497 9496 -1 -9596 9496 -1 -9497 9497 4 -9498 9497 -1 -9597 9497 -1 -9498 9498 4 -9499 9498 -1 -9598 9498 -1 -9499 9499 4 -9500 9499 -1 -9599 9499 -1 -9500 9500 4 -9600 9500 -1 -9501 9501 4 -9502 9501 -1 -9601 9501 -1 -9502 9502 4 -9503 9502 -1 -9602 9502 -1 -9503 9503 4 -9504 9503 -1 -9603 9503 -1 -9504 9504 4 -9505 9504 -1 -9604 9504 -1 -9505 9505 4 -9506 9505 -1 -9605 9505 -1 -9506 9506 4 -9507 9506 -1 -9606 9506 -1 -9507 9507 4 -9508 9507 -1 -9607 9507 -1 -9508 9508 4 -9509 9508 -1 -9608 9508 -1 -9509 9509 4 -9510 9509 -1 -9609 9509 -1 -9510 9510 4 -9511 9510 -1 -9610 9510 -1 -9511 9511 4 -9512 9511 -1 -9611 9511 -1 -9512 9512 4 -9513 9512 -1 -9612 9512 -1 -9513 9513 4 -9514 9513 -1 -9613 9513 -1 -9514 9514 4 -9515 9514 -1 -9614 9514 -1 -9515 9515 4 -9516 9515 -1 -9615 9515 -1 -9516 9516 4 -9517 9516 -1 -9616 9516 -1 -9517 9517 4 -9518 9517 -1 -9617 9517 -1 -9518 9518 4 -9519 9518 -1 -9618 9518 -1 -9519 9519 4 -9520 9519 -1 -9619 9519 -1 -9520 9520 4 -9521 9520 -1 -9620 9520 -1 -9521 9521 4 -9522 9521 -1 -9621 9521 -1 -9522 9522 4 -9523 9522 -1 -9622 9522 -1 -9523 9523 4 -9524 9523 -1 -9623 9523 -1 -9524 9524 4 -9525 9524 -1 -9624 9524 -1 -9525 9525 4 -9526 9525 -1 -9625 9525 -1 -9526 9526 4 -9527 9526 -1 -9626 9526 -1 -9527 9527 4 -9528 9527 -1 -9627 9527 -1 -9528 9528 4 -9529 9528 -1 -9628 9528 -1 -9529 9529 4 -9530 9529 -1 -9629 9529 -1 -9530 9530 4 -9531 9530 -1 -9630 9530 -1 -9531 9531 4 -9532 9531 -1 -9631 9531 -1 -9532 9532 4 -9533 9532 -1 -9632 9532 -1 -9533 9533 4 -9534 9533 -1 -9633 9533 -1 -9534 9534 4 -9535 9534 -1 -9634 9534 -1 -9535 9535 4 -9536 9535 -1 -9635 9535 -1 -9536 9536 4 -9537 9536 -1 -9636 9536 -1 -9537 9537 4 -9538 9537 -1 -9637 9537 -1 -9538 9538 4 -9539 9538 -1 -9638 9538 -1 -9539 9539 4 -9540 9539 -1 -9639 9539 -1 -9540 9540 4 -9541 9540 -1 -9640 9540 -1 -9541 9541 4 -9542 9541 -1 -9641 9541 -1 -9542 9542 4 -9543 9542 -1 -9642 9542 -1 -9543 9543 4 -9544 9543 -1 -9643 9543 -1 -9544 9544 4 -9545 9544 -1 -9644 9544 -1 -9545 9545 4 -9546 9545 -1 -9645 9545 -1 -9546 9546 4 -9547 9546 -1 -9646 9546 -1 -9547 9547 4 -9548 9547 -1 -9647 9547 -1 -9548 9548 4 -9549 9548 -1 -9648 9548 -1 -9549 9549 4 -9550 9549 -1 -9649 9549 -1 -9550 9550 4 -9551 9550 -1 -9650 9550 -1 -9551 9551 4 -9552 9551 -1 -9651 9551 -1 -9552 9552 4 -9553 9552 -1 -9652 9552 -1 -9553 9553 4 -9554 9553 -1 -9653 9553 -1 -9554 9554 4 -9555 9554 -1 -9654 9554 -1 -9555 9555 4 -9556 9555 -1 -9655 9555 -1 -9556 9556 4 -9557 9556 -1 -9656 9556 -1 -9557 9557 4 -9558 9557 -1 -9657 9557 -1 -9558 9558 4 -9559 9558 -1 -9658 9558 -1 -9559 9559 4 -9560 9559 -1 -9659 9559 -1 -9560 9560 4 -9561 9560 -1 -9660 9560 -1 -9561 9561 4 -9562 9561 -1 -9661 9561 -1 -9562 9562 4 -9563 9562 -1 -9662 9562 -1 -9563 9563 4 -9564 9563 -1 -9663 9563 -1 -9564 9564 4 -9565 9564 -1 -9664 9564 -1 -9565 9565 4 -9566 9565 -1 -9665 9565 -1 -9566 9566 4 -9567 9566 -1 -9666 9566 -1 -9567 9567 4 -9568 9567 -1 -9667 9567 -1 -9568 9568 4 -9569 9568 -1 -9668 9568 -1 -9569 9569 4 -9570 9569 -1 -9669 9569 -1 -9570 9570 4 -9571 9570 -1 -9670 9570 -1 -9571 9571 4 -9572 9571 -1 -9671 9571 -1 -9572 9572 4 -9573 9572 -1 -9672 9572 -1 -9573 9573 4 -9574 9573 -1 -9673 9573 -1 -9574 9574 4 -9575 9574 -1 -9674 9574 -1 -9575 9575 4 -9576 9575 -1 -9675 9575 -1 -9576 9576 4 -9577 9576 -1 -9676 9576 -1 -9577 9577 4 -9578 9577 -1 -9677 9577 -1 -9578 9578 4 -9579 9578 -1 -9678 9578 -1 -9579 9579 4 -9580 9579 -1 -9679 9579 -1 -9580 9580 4 -9581 9580 -1 -9680 9580 -1 -9581 9581 4 -9582 9581 -1 -9681 9581 -1 -9582 9582 4 -9583 9582 -1 -9682 9582 -1 -9583 9583 4 -9584 9583 -1 -9683 9583 -1 -9584 9584 4 -9585 9584 -1 -9684 9584 -1 -9585 9585 4 -9586 9585 -1 -9685 9585 -1 -9586 9586 4 -9587 9586 -1 -9686 9586 -1 -9587 9587 4 -9588 9587 -1 -9687 9587 -1 -9588 9588 4 -9589 9588 -1 -9688 9588 -1 -9589 9589 4 -9590 9589 -1 -9689 9589 -1 -9590 9590 4 -9591 9590 -1 -9690 9590 -1 -9591 9591 4 -9592 9591 -1 -9691 9591 -1 -9592 9592 4 -9593 9592 -1 -9692 9592 -1 -9593 9593 4 -9594 9593 -1 -9693 9593 -1 -9594 9594 4 -9595 9594 -1 -9694 9594 -1 -9595 9595 4 -9596 9595 -1 -9695 9595 -1 -9596 9596 4 -9597 9596 -1 -9696 9596 -1 -9597 9597 4 -9598 9597 -1 -9697 9597 -1 -9598 9598 4 -9599 9598 -1 -9698 9598 -1 -9599 9599 4 -9600 9599 -1 -9699 9599 -1 -9600 9600 4 -9700 9600 -1 -9601 9601 4 -9602 9601 -1 -9701 9601 -1 -9602 9602 4 -9603 9602 -1 -9702 9602 -1 -9603 9603 4 -9604 9603 -1 -9703 9603 -1 -9604 9604 4 -9605 9604 -1 -9704 9604 -1 -9605 9605 4 -9606 9605 -1 -9705 9605 -1 -9606 9606 4 -9607 9606 -1 -9706 9606 -1 -9607 9607 4 -9608 9607 -1 -9707 9607 -1 -9608 9608 4 -9609 9608 -1 -9708 9608 -1 -9609 9609 4 -9610 9609 -1 -9709 9609 -1 -9610 9610 4 -9611 9610 -1 -9710 9610 -1 -9611 9611 4 -9612 9611 -1 -9711 9611 -1 -9612 9612 4 -9613 9612 -1 -9712 9612 -1 -9613 9613 4 -9614 9613 -1 -9713 9613 -1 -9614 9614 4 -9615 9614 -1 -9714 9614 -1 -9615 9615 4 -9616 9615 -1 -9715 9615 -1 -9616 9616 4 -9617 9616 -1 -9716 9616 -1 -9617 9617 4 -9618 9617 -1 -9717 9617 -1 -9618 9618 4 -9619 9618 -1 -9718 9618 -1 -9619 9619 4 -9620 9619 -1 -9719 9619 -1 -9620 9620 4 -9621 9620 -1 -9720 9620 -1 -9621 9621 4 -9622 9621 -1 -9721 9621 -1 -9622 9622 4 -9623 9622 -1 -9722 9622 -1 -9623 9623 4 -9624 9623 -1 -9723 9623 -1 -9624 9624 4 -9625 9624 -1 -9724 9624 -1 -9625 9625 4 -9626 9625 -1 -9725 9625 -1 -9626 9626 4 -9627 9626 -1 -9726 9626 -1 -9627 9627 4 -9628 9627 -1 -9727 9627 -1 -9628 9628 4 -9629 9628 -1 -9728 9628 -1 -9629 9629 4 -9630 9629 -1 -9729 9629 -1 -9630 9630 4 -9631 9630 -1 -9730 9630 -1 -9631 9631 4 -9632 9631 -1 -9731 9631 -1 -9632 9632 4 -9633 9632 -1 -9732 9632 -1 -9633 9633 4 -9634 9633 -1 -9733 9633 -1 -9634 9634 4 -9635 9634 -1 -9734 9634 -1 -9635 9635 4 -9636 9635 -1 -9735 9635 -1 -9636 9636 4 -9637 9636 -1 -9736 9636 -1 -9637 9637 4 -9638 9637 -1 -9737 9637 -1 -9638 9638 4 -9639 9638 -1 -9738 9638 -1 -9639 9639 4 -9640 9639 -1 -9739 9639 -1 -9640 9640 4 -9641 9640 -1 -9740 9640 -1 -9641 9641 4 -9642 9641 -1 -9741 9641 -1 -9642 9642 4 -9643 9642 -1 -9742 9642 -1 -9643 9643 4 -9644 9643 -1 -9743 9643 -1 -9644 9644 4 -9645 9644 -1 -9744 9644 -1 -9645 9645 4 -9646 9645 -1 -9745 9645 -1 -9646 9646 4 -9647 9646 -1 -9746 9646 -1 -9647 9647 4 -9648 9647 -1 -9747 9647 -1 -9648 9648 4 -9649 9648 -1 -9748 9648 -1 -9649 9649 4 -9650 9649 -1 -9749 9649 -1 -9650 9650 4 -9651 9650 -1 -9750 9650 -1 -9651 9651 4 -9652 9651 -1 -9751 9651 -1 -9652 9652 4 -9653 9652 -1 -9752 9652 -1 -9653 9653 4 -9654 9653 -1 -9753 9653 -1 -9654 9654 4 -9655 9654 -1 -9754 9654 -1 -9655 9655 4 -9656 9655 -1 -9755 9655 -1 -9656 9656 4 -9657 9656 -1 -9756 9656 -1 -9657 9657 4 -9658 9657 -1 -9757 9657 -1 -9658 9658 4 -9659 9658 -1 -9758 9658 -1 -9659 9659 4 -9660 9659 -1 -9759 9659 -1 -9660 9660 4 -9661 9660 -1 -9760 9660 -1 -9661 9661 4 -9662 9661 -1 -9761 9661 -1 -9662 9662 4 -9663 9662 -1 -9762 9662 -1 -9663 9663 4 -9664 9663 -1 -9763 9663 -1 -9664 9664 4 -9665 9664 -1 -9764 9664 -1 -9665 9665 4 -9666 9665 -1 -9765 9665 -1 -9666 9666 4 -9667 9666 -1 -9766 9666 -1 -9667 9667 4 -9668 9667 -1 -9767 9667 -1 -9668 9668 4 -9669 9668 -1 -9768 9668 -1 -9669 9669 4 -9670 9669 -1 -9769 9669 -1 -9670 9670 4 -9671 9670 -1 -9770 9670 -1 -9671 9671 4 -9672 9671 -1 -9771 9671 -1 -9672 9672 4 -9673 9672 -1 -9772 9672 -1 -9673 9673 4 -9674 9673 -1 -9773 9673 -1 -9674 9674 4 -9675 9674 -1 -9774 9674 -1 -9675 9675 4 -9676 9675 -1 -9775 9675 -1 -9676 9676 4 -9677 9676 -1 -9776 9676 -1 -9677 9677 4 -9678 9677 -1 -9777 9677 -1 -9678 9678 4 -9679 9678 -1 -9778 9678 -1 -9679 9679 4 -9680 9679 -1 -9779 9679 -1 -9680 9680 4 -9681 9680 -1 -9780 9680 -1 -9681 9681 4 -9682 9681 -1 -9781 9681 -1 -9682 9682 4 -9683 9682 -1 -9782 9682 -1 -9683 9683 4 -9684 9683 -1 -9783 9683 -1 -9684 9684 4 -9685 9684 -1 -9784 9684 -1 -9685 9685 4 -9686 9685 -1 -9785 9685 -1 -9686 9686 4 -9687 9686 -1 -9786 9686 -1 -9687 9687 4 -9688 9687 -1 -9787 9687 -1 -9688 9688 4 -9689 9688 -1 -9788 9688 -1 -9689 9689 4 -9690 9689 -1 -9789 9689 -1 -9690 9690 4 -9691 9690 -1 -9790 9690 -1 -9691 9691 4 -9692 9691 -1 -9791 9691 -1 -9692 9692 4 -9693 9692 -1 -9792 9692 -1 -9693 9693 4 -9694 9693 -1 -9793 9693 -1 -9694 9694 4 -9695 9694 -1 -9794 9694 -1 -9695 9695 4 -9696 9695 -1 -9795 9695 -1 -9696 9696 4 -9697 9696 -1 -9796 9696 -1 -9697 9697 4 -9698 9697 -1 -9797 9697 -1 -9698 9698 4 -9699 9698 -1 -9798 9698 -1 -9699 9699 4 -9700 9699 -1 -9799 9699 -1 -9700 9700 4 -9800 9700 -1 -9701 9701 4 -9702 9701 -1 -9801 9701 -1 -9702 9702 4 -9703 9702 -1 -9802 9702 -1 -9703 9703 4 -9704 9703 -1 -9803 9703 -1 -9704 9704 4 -9705 9704 -1 -9804 9704 -1 -9705 9705 4 -9706 9705 -1 -9805 9705 -1 -9706 9706 4 -9707 9706 -1 -9806 9706 -1 -9707 9707 4 -9708 9707 -1 -9807 9707 -1 -9708 9708 4 -9709 9708 -1 -9808 9708 -1 -9709 9709 4 -9710 9709 -1 -9809 9709 -1 -9710 9710 4 -9711 9710 -1 -9810 9710 -1 -9711 9711 4 -9712 9711 -1 -9811 9711 -1 -9712 9712 4 -9713 9712 -1 -9812 9712 -1 -9713 9713 4 -9714 9713 -1 -9813 9713 -1 -9714 9714 4 -9715 9714 -1 -9814 9714 -1 -9715 9715 4 -9716 9715 -1 -9815 9715 -1 -9716 9716 4 -9717 9716 -1 -9816 9716 -1 -9717 9717 4 -9718 9717 -1 -9817 9717 -1 -9718 9718 4 -9719 9718 -1 -9818 9718 -1 -9719 9719 4 -9720 9719 -1 -9819 9719 -1 -9720 9720 4 -9721 9720 -1 -9820 9720 -1 -9721 9721 4 -9722 9721 -1 -9821 9721 -1 -9722 9722 4 -9723 9722 -1 -9822 9722 -1 -9723 9723 4 -9724 9723 -1 -9823 9723 -1 -9724 9724 4 -9725 9724 -1 -9824 9724 -1 -9725 9725 4 -9726 9725 -1 -9825 9725 -1 -9726 9726 4 -9727 9726 -1 -9826 9726 -1 -9727 9727 4 -9728 9727 -1 -9827 9727 -1 -9728 9728 4 -9729 9728 -1 -9828 9728 -1 -9729 9729 4 -9730 9729 -1 -9829 9729 -1 -9730 9730 4 -9731 9730 -1 -9830 9730 -1 -9731 9731 4 -9732 9731 -1 -9831 9731 -1 -9732 9732 4 -9733 9732 -1 -9832 9732 -1 -9733 9733 4 -9734 9733 -1 -9833 9733 -1 -9734 9734 4 -9735 9734 -1 -9834 9734 -1 -9735 9735 4 -9736 9735 -1 -9835 9735 -1 -9736 9736 4 -9737 9736 -1 -9836 9736 -1 -9737 9737 4 -9738 9737 -1 -9837 9737 -1 -9738 9738 4 -9739 9738 -1 -9838 9738 -1 -9739 9739 4 -9740 9739 -1 -9839 9739 -1 -9740 9740 4 -9741 9740 -1 -9840 9740 -1 -9741 9741 4 -9742 9741 -1 -9841 9741 -1 -9742 9742 4 -9743 9742 -1 -9842 9742 -1 -9743 9743 4 -9744 9743 -1 -9843 9743 -1 -9744 9744 4 -9745 9744 -1 -9844 9744 -1 -9745 9745 4 -9746 9745 -1 -9845 9745 -1 -9746 9746 4 -9747 9746 -1 -9846 9746 -1 -9747 9747 4 -9748 9747 -1 -9847 9747 -1 -9748 9748 4 -9749 9748 -1 -9848 9748 -1 -9749 9749 4 -9750 9749 -1 -9849 9749 -1 -9750 9750 4 -9751 9750 -1 -9850 9750 -1 -9751 9751 4 -9752 9751 -1 -9851 9751 -1 -9752 9752 4 -9753 9752 -1 -9852 9752 -1 -9753 9753 4 -9754 9753 -1 -9853 9753 -1 -9754 9754 4 -9755 9754 -1 -9854 9754 -1 -9755 9755 4 -9756 9755 -1 -9855 9755 -1 -9756 9756 4 -9757 9756 -1 -9856 9756 -1 -9757 9757 4 -9758 9757 -1 -9857 9757 -1 -9758 9758 4 -9759 9758 -1 -9858 9758 -1 -9759 9759 4 -9760 9759 -1 -9859 9759 -1 -9760 9760 4 -9761 9760 -1 -9860 9760 -1 -9761 9761 4 -9762 9761 -1 -9861 9761 -1 -9762 9762 4 -9763 9762 -1 -9862 9762 -1 -9763 9763 4 -9764 9763 -1 -9863 9763 -1 -9764 9764 4 -9765 9764 -1 -9864 9764 -1 -9765 9765 4 -9766 9765 -1 -9865 9765 -1 -9766 9766 4 -9767 9766 -1 -9866 9766 -1 -9767 9767 4 -9768 9767 -1 -9867 9767 -1 -9768 9768 4 -9769 9768 -1 -9868 9768 -1 -9769 9769 4 -9770 9769 -1 -9869 9769 -1 -9770 9770 4 -9771 9770 -1 -9870 9770 -1 -9771 9771 4 -9772 9771 -1 -9871 9771 -1 -9772 9772 4 -9773 9772 -1 -9872 9772 -1 -9773 9773 4 -9774 9773 -1 -9873 9773 -1 -9774 9774 4 -9775 9774 -1 -9874 9774 -1 -9775 9775 4 -9776 9775 -1 -9875 9775 -1 -9776 9776 4 -9777 9776 -1 -9876 9776 -1 -9777 9777 4 -9778 9777 -1 -9877 9777 -1 -9778 9778 4 -9779 9778 -1 -9878 9778 -1 -9779 9779 4 -9780 9779 -1 -9879 9779 -1 -9780 9780 4 -9781 9780 -1 -9880 9780 -1 -9781 9781 4 -9782 9781 -1 -9881 9781 -1 -9782 9782 4 -9783 9782 -1 -9882 9782 -1 -9783 9783 4 -9784 9783 -1 -9883 9783 -1 -9784 9784 4 -9785 9784 -1 -9884 9784 -1 -9785 9785 4 -9786 9785 -1 -9885 9785 -1 -9786 9786 4 -9787 9786 -1 -9886 9786 -1 -9787 9787 4 -9788 9787 -1 -9887 9787 -1 -9788 9788 4 -9789 9788 -1 -9888 9788 -1 -9789 9789 4 -9790 9789 -1 -9889 9789 -1 -9790 9790 4 -9791 9790 -1 -9890 9790 -1 -9791 9791 4 -9792 9791 -1 -9891 9791 -1 -9792 9792 4 -9793 9792 -1 -9892 9792 -1 -9793 9793 4 -9794 9793 -1 -9893 9793 -1 -9794 9794 4 -9795 9794 -1 -9894 9794 -1 -9795 9795 4 -9796 9795 -1 -9895 9795 -1 -9796 9796 4 -9797 9796 -1 -9896 9796 -1 -9797 9797 4 -9798 9797 -1 -9897 9797 -1 -9798 9798 4 -9799 9798 -1 -9898 9798 -1 -9799 9799 4 -9800 9799 -1 -9899 9799 -1 -9800 9800 4 -9900 9800 -1 -9801 9801 4 -9802 9801 -1 -9901 9801 -1 -9802 9802 4 -9803 9802 -1 -9902 9802 -1 -9803 9803 4 -9804 9803 -1 -9903 9803 -1 -9804 9804 4 -9805 9804 -1 -9904 9804 -1 -9805 9805 4 -9806 9805 -1 -9905 9805 -1 -9806 9806 4 -9807 9806 -1 -9906 9806 -1 -9807 9807 4 -9808 9807 -1 -9907 9807 -1 -9808 9808 4 -9809 9808 -1 -9908 9808 -1 -9809 9809 4 -9810 9809 -1 -9909 9809 -1 -9810 9810 4 -9811 9810 -1 -9910 9810 -1 -9811 9811 4 -9812 9811 -1 -9911 9811 -1 -9812 9812 4 -9813 9812 -1 -9912 9812 -1 -9813 9813 4 -9814 9813 -1 -9913 9813 -1 -9814 9814 4 -9815 9814 -1 -9914 9814 -1 -9815 9815 4 -9816 9815 -1 -9915 9815 -1 -9816 9816 4 -9817 9816 -1 -9916 9816 -1 -9817 9817 4 -9818 9817 -1 -9917 9817 -1 -9818 9818 4 -9819 9818 -1 -9918 9818 -1 -9819 9819 4 -9820 9819 -1 -9919 9819 -1 -9820 9820 4 -9821 9820 -1 -9920 9820 -1 -9821 9821 4 -9822 9821 -1 -9921 9821 -1 -9822 9822 4 -9823 9822 -1 -9922 9822 -1 -9823 9823 4 -9824 9823 -1 -9923 9823 -1 -9824 9824 4 -9825 9824 -1 -9924 9824 -1 -9825 9825 4 -9826 9825 -1 -9925 9825 -1 -9826 9826 4 -9827 9826 -1 -9926 9826 -1 -9827 9827 4 -9828 9827 -1 -9927 9827 -1 -9828 9828 4 -9829 9828 -1 -9928 9828 -1 -9829 9829 4 -9830 9829 -1 -9929 9829 -1 -9830 9830 4 -9831 9830 -1 -9930 9830 -1 -9831 9831 4 -9832 9831 -1 -9931 9831 -1 -9832 9832 4 -9833 9832 -1 -9932 9832 -1 -9833 9833 4 -9834 9833 -1 -9933 9833 -1 -9834 9834 4 -9835 9834 -1 -9934 9834 -1 -9835 9835 4 -9836 9835 -1 -9935 9835 -1 -9836 9836 4 -9837 9836 -1 -9936 9836 -1 -9837 9837 4 -9838 9837 -1 -9937 9837 -1 -9838 9838 4 -9839 9838 -1 -9938 9838 -1 -9839 9839 4 -9840 9839 -1 -9939 9839 -1 -9840 9840 4 -9841 9840 -1 -9940 9840 -1 -9841 9841 4 -9842 9841 -1 -9941 9841 -1 -9842 9842 4 -9843 9842 -1 -9942 9842 -1 -9843 9843 4 -9844 9843 -1 -9943 9843 -1 -9844 9844 4 -9845 9844 -1 -9944 9844 -1 -9845 9845 4 -9846 9845 -1 -9945 9845 -1 -9846 9846 4 -9847 9846 -1 -9946 9846 -1 -9847 9847 4 -9848 9847 -1 -9947 9847 -1 -9848 9848 4 -9849 9848 -1 -9948 9848 -1 -9849 9849 4 -9850 9849 -1 -9949 9849 -1 -9850 9850 4 -9851 9850 -1 -9950 9850 -1 -9851 9851 4 -9852 9851 -1 -9951 9851 -1 -9852 9852 4 -9853 9852 -1 -9952 9852 -1 -9853 9853 4 -9854 9853 -1 -9953 9853 -1 -9854 9854 4 -9855 9854 -1 -9954 9854 -1 -9855 9855 4 -9856 9855 -1 -9955 9855 -1 -9856 9856 4 -9857 9856 -1 -9956 9856 -1 -9857 9857 4 -9858 9857 -1 -9957 9857 -1 -9858 9858 4 -9859 9858 -1 -9958 9858 -1 -9859 9859 4 -9860 9859 -1 -9959 9859 -1 -9860 9860 4 -9861 9860 -1 -9960 9860 -1 -9861 9861 4 -9862 9861 -1 -9961 9861 -1 -9862 9862 4 -9863 9862 -1 -9962 9862 -1 -9863 9863 4 -9864 9863 -1 -9963 9863 -1 -9864 9864 4 -9865 9864 -1 -9964 9864 -1 -9865 9865 4 -9866 9865 -1 -9965 9865 -1 -9866 9866 4 -9867 9866 -1 -9966 9866 -1 -9867 9867 4 -9868 9867 -1 -9967 9867 -1 -9868 9868 4 -9869 9868 -1 -9968 9868 -1 -9869 9869 4 -9870 9869 -1 -9969 9869 -1 -9870 9870 4 -9871 9870 -1 -9970 9870 -1 -9871 9871 4 -9872 9871 -1 -9971 9871 -1 -9872 9872 4 -9873 9872 -1 -9972 9872 -1 -9873 9873 4 -9874 9873 -1 -9973 9873 -1 -9874 9874 4 -9875 9874 -1 -9974 9874 -1 -9875 9875 4 -9876 9875 -1 -9975 9875 -1 -9876 9876 4 -9877 9876 -1 -9976 9876 -1 -9877 9877 4 -9878 9877 -1 -9977 9877 -1 -9878 9878 4 -9879 9878 -1 -9978 9878 -1 -9879 9879 4 -9880 9879 -1 -9979 9879 -1 -9880 9880 4 -9881 9880 -1 -9980 9880 -1 -9881 9881 4 -9882 9881 -1 -9981 9881 -1 -9882 9882 4 -9883 9882 -1 -9982 9882 -1 -9883 9883 4 -9884 9883 -1 -9983 9883 -1 -9884 9884 4 -9885 9884 -1 -9984 9884 -1 -9885 9885 4 -9886 9885 -1 -9985 9885 -1 -9886 9886 4 -9887 9886 -1 -9986 9886 -1 -9887 9887 4 -9888 9887 -1 -9987 9887 -1 -9888 9888 4 -9889 9888 -1 -9988 9888 -1 -9889 9889 4 -9890 9889 -1 -9989 9889 -1 -9890 9890 4 -9891 9890 -1 -9990 9890 -1 -9891 9891 4 -9892 9891 -1 -9991 9891 -1 -9892 9892 4 -9893 9892 -1 -9992 9892 -1 -9893 9893 4 -9894 9893 -1 -9993 9893 -1 -9894 9894 4 -9895 9894 -1 -9994 9894 -1 -9895 9895 4 -9896 9895 -1 -9995 9895 -1 -9896 9896 4 -9897 9896 -1 -9996 9896 -1 -9897 9897 4 -9898 9897 -1 -9997 9897 -1 -9898 9898 4 -9899 9898 -1 -9998 9898 -1 -9899 9899 4 -9900 9899 -1 -9999 9899 -1 -9900 9900 4 -10000 9900 -1 -9901 9901 4 -9902 9901 -1 -9902 9902 4 -9903 9902 -1 -9903 9903 4 -9904 9903 -1 -9904 9904 4 -9905 9904 -1 -9905 9905 4 -9906 9905 -1 -9906 9906 4 -9907 9906 -1 -9907 9907 4 -9908 9907 -1 -9908 9908 4 -9909 9908 -1 -9909 9909 4 -9910 9909 -1 -9910 9910 4 -9911 9910 -1 -9911 9911 4 -9912 9911 -1 -9912 9912 4 -9913 9912 -1 -9913 9913 4 -9914 9913 -1 -9914 9914 4 -9915 9914 -1 -9915 9915 4 -9916 9915 -1 -9916 9916 4 -9917 9916 -1 -9917 9917 4 -9918 9917 -1 -9918 9918 4 -9919 9918 -1 -9919 9919 4 -9920 9919 -1 -9920 9920 4 -9921 9920 -1 -9921 9921 4 -9922 9921 -1 -9922 9922 4 -9923 9922 -1 -9923 9923 4 -9924 9923 -1 -9924 9924 4 -9925 9924 -1 -9925 9925 4 -9926 9925 -1 -9926 9926 4 -9927 9926 -1 -9927 9927 4 -9928 9927 -1 -9928 9928 4 -9929 9928 -1 -9929 9929 4 -9930 9929 -1 -9930 9930 4 -9931 9930 -1 -9931 9931 4 -9932 9931 -1 -9932 9932 4 -9933 9932 -1 -9933 9933 4 -9934 9933 -1 -9934 9934 4 -9935 9934 -1 -9935 9935 4 -9936 9935 -1 -9936 9936 4 -9937 9936 -1 -9937 9937 4 -9938 9937 -1 -9938 9938 4 -9939 9938 -1 -9939 9939 4 -9940 9939 -1 -9940 9940 4 -9941 9940 -1 -9941 9941 4 -9942 9941 -1 -9942 9942 4 -9943 9942 -1 -9943 9943 4 -9944 9943 -1 -9944 9944 4 -9945 9944 -1 -9945 9945 4 -9946 9945 -1 -9946 9946 4 -9947 9946 -1 -9947 9947 4 -9948 9947 -1 -9948 9948 4 -9949 9948 -1 -9949 9949 4 -9950 9949 -1 -9950 9950 4 -9951 9950 -1 -9951 9951 4 -9952 9951 -1 -9952 9952 4 -9953 9952 -1 -9953 9953 4 -9954 9953 -1 -9954 9954 4 -9955 9954 -1 -9955 9955 4 -9956 9955 -1 -9956 9956 4 -9957 9956 -1 -9957 9957 4 -9958 9957 -1 -9958 9958 4 -9959 9958 -1 -9959 9959 4 -9960 9959 -1 -9960 9960 4 -9961 9960 -1 -9961 9961 4 -9962 9961 -1 -9962 9962 4 -9963 9962 -1 -9963 9963 4 -9964 9963 -1 -9964 9964 4 -9965 9964 -1 -9965 9965 4 -9966 9965 -1 -9966 9966 4 -9967 9966 -1 -9967 9967 4 -9968 9967 -1 -9968 9968 4 -9969 9968 -1 -9969 9969 4 -9970 9969 -1 -9970 9970 4 -9971 9970 -1 -9971 9971 4 -9972 9971 -1 -9972 9972 4 -9973 9972 -1 -9973 9973 4 -9974 9973 -1 -9974 9974 4 -9975 9974 -1 -9975 9975 4 -9976 9975 -1 -9976 9976 4 -9977 9976 -1 -9977 9977 4 -9978 9977 -1 -9978 9978 4 -9979 9978 -1 -9979 9979 4 -9980 9979 -1 -9980 9980 4 -9981 9980 -1 -9981 9981 4 -9982 9981 -1 -9982 9982 4 -9983 9982 -1 -9983 9983 4 -9984 9983 -1 -9984 9984 4 -9985 9984 -1 -9985 9985 4 -9986 9985 -1 -9986 9986 4 -9987 9986 -1 -9987 9987 4 -9988 9987 -1 -9988 9988 4 -9989 9988 -1 -9989 9989 4 -9990 9989 -1 -9990 9990 4 -9991 9990 -1 -9991 9991 4 -9992 9991 -1 -9992 9992 4 -9993 9992 -1 -9993 9993 4 -9994 9993 -1 -9994 9994 4 -9995 9994 -1 -9995 9995 4 -9996 9995 -1 -9996 9996 4 -9997 9996 -1 -9997 9997 4 -9998 9997 -1 -9998 9998 4 -9999 9998 -1 -9999 9999 4 -10000 9999 -1 -10000 10000 4 diff --git a/cpp/4_CUDA_Libraries/cuSolverRf/lap3D_7pt_n20.mtx b/cpp/4_CUDA_Libraries/cuSolverRf/lap3D_7pt_n20.mtx deleted file mode 100644 index 29f4f69f..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverRf/lap3D_7pt_n20.mtx +++ /dev/null @@ -1,30803 +0,0 @@ -%%MatrixMarket matrix coordinate real symmetric -% Generated 20-Nov-2014 -8000 8000 30800 -1 1 6 -2 1 -1 -21 1 -1 -401 1 -1 -2 2 6 -3 2 -1 -22 2 -1 -402 2 -1 -3 3 6 -4 3 -1 -23 3 -1 -403 3 -1 -4 4 6 -5 4 -1 -24 4 -1 -404 4 -1 -5 5 6 -6 5 -1 -25 5 -1 -405 5 -1 -6 6 6 -7 6 -1 -26 6 -1 -406 6 -1 -7 7 6 -8 7 -1 -27 7 -1 -407 7 -1 -8 8 6 -9 8 -1 -28 8 -1 -408 8 -1 -9 9 6 -10 9 -1 -29 9 -1 -409 9 -1 -10 10 6 -11 10 -1 -30 10 -1 -410 10 -1 -11 11 6 -12 11 -1 -31 11 -1 -411 11 -1 -12 12 6 -13 12 -1 -32 12 -1 -412 12 -1 -13 13 6 -14 13 -1 -33 13 -1 -413 13 -1 -14 14 6 -15 14 -1 -34 14 -1 -414 14 -1 -15 15 6 -16 15 -1 -35 15 -1 -415 15 -1 -16 16 6 -17 16 -1 -36 16 -1 -416 16 -1 -17 17 6 -18 17 -1 -37 17 -1 -417 17 -1 -18 18 6 -19 18 -1 -38 18 -1 -418 18 -1 -19 19 6 -20 19 -1 -39 19 -1 -419 19 -1 -20 20 6 -40 20 -1 -420 20 -1 -21 21 6 -22 21 -1 -41 21 -1 -421 21 -1 -22 22 6 -23 22 -1 -42 22 -1 -422 22 -1 -23 23 6 -24 23 -1 -43 23 -1 -423 23 -1 -24 24 6 -25 24 -1 -44 24 -1 -424 24 -1 -25 25 6 -26 25 -1 -45 25 -1 -425 25 -1 -26 26 6 -27 26 -1 -46 26 -1 -426 26 -1 -27 27 6 -28 27 -1 -47 27 -1 -427 27 -1 -28 28 6 -29 28 -1 -48 28 -1 -428 28 -1 -29 29 6 -30 29 -1 -49 29 -1 -429 29 -1 -30 30 6 -31 30 -1 -50 30 -1 -430 30 -1 -31 31 6 -32 31 -1 -51 31 -1 -431 31 -1 -32 32 6 -33 32 -1 -52 32 -1 -432 32 -1 -33 33 6 -34 33 -1 -53 33 -1 -433 33 -1 -34 34 6 -35 34 -1 -54 34 -1 -434 34 -1 -35 35 6 -36 35 -1 -55 35 -1 -435 35 -1 -36 36 6 -37 36 -1 -56 36 -1 -436 36 -1 -37 37 6 -38 37 -1 -57 37 -1 -437 37 -1 -38 38 6 -39 38 -1 -58 38 -1 -438 38 -1 -39 39 6 -40 39 -1 -59 39 -1 -439 39 -1 -40 40 6 -60 40 -1 -440 40 -1 -41 41 6 -42 41 -1 -61 41 -1 -441 41 -1 -42 42 6 -43 42 -1 -62 42 -1 -442 42 -1 -43 43 6 -44 43 -1 -63 43 -1 -443 43 -1 -44 44 6 -45 44 -1 -64 44 -1 -444 44 -1 -45 45 6 -46 45 -1 -65 45 -1 -445 45 -1 -46 46 6 -47 46 -1 -66 46 -1 -446 46 -1 -47 47 6 -48 47 -1 -67 47 -1 -447 47 -1 -48 48 6 -49 48 -1 -68 48 -1 -448 48 -1 -49 49 6 -50 49 -1 -69 49 -1 -449 49 -1 -50 50 6 -51 50 -1 -70 50 -1 -450 50 -1 -51 51 6 -52 51 -1 -71 51 -1 -451 51 -1 -52 52 6 -53 52 -1 -72 52 -1 -452 52 -1 -53 53 6 -54 53 -1 -73 53 -1 -453 53 -1 -54 54 6 -55 54 -1 -74 54 -1 -454 54 -1 -55 55 6 -56 55 -1 -75 55 -1 -455 55 -1 -56 56 6 -57 56 -1 -76 56 -1 -456 56 -1 -57 57 6 -58 57 -1 -77 57 -1 -457 57 -1 -58 58 6 -59 58 -1 -78 58 -1 -458 58 -1 -59 59 6 -60 59 -1 -79 59 -1 -459 59 -1 -60 60 6 -80 60 -1 -460 60 -1 -61 61 6 -62 61 -1 -81 61 -1 -461 61 -1 -62 62 6 -63 62 -1 -82 62 -1 -462 62 -1 -63 63 6 -64 63 -1 -83 63 -1 -463 63 -1 -64 64 6 -65 64 -1 -84 64 -1 -464 64 -1 -65 65 6 -66 65 -1 -85 65 -1 -465 65 -1 -66 66 6 -67 66 -1 -86 66 -1 -466 66 -1 -67 67 6 -68 67 -1 -87 67 -1 -467 67 -1 -68 68 6 -69 68 -1 -88 68 -1 -468 68 -1 -69 69 6 -70 69 -1 -89 69 -1 -469 69 -1 -70 70 6 -71 70 -1 -90 70 -1 -470 70 -1 -71 71 6 -72 71 -1 -91 71 -1 -471 71 -1 -72 72 6 -73 72 -1 -92 72 -1 -472 72 -1 -73 73 6 -74 73 -1 -93 73 -1 -473 73 -1 -74 74 6 -75 74 -1 -94 74 -1 -474 74 -1 -75 75 6 -76 75 -1 -95 75 -1 -475 75 -1 -76 76 6 -77 76 -1 -96 76 -1 -476 76 -1 -77 77 6 -78 77 -1 -97 77 -1 -477 77 -1 -78 78 6 -79 78 -1 -98 78 -1 -478 78 -1 -79 79 6 -80 79 -1 -99 79 -1 -479 79 -1 -80 80 6 -100 80 -1 -480 80 -1 -81 81 6 -82 81 -1 -101 81 -1 -481 81 -1 -82 82 6 -83 82 -1 -102 82 -1 -482 82 -1 -83 83 6 -84 83 -1 -103 83 -1 -483 83 -1 -84 84 6 -85 84 -1 -104 84 -1 -484 84 -1 -85 85 6 -86 85 -1 -105 85 -1 -485 85 -1 -86 86 6 -87 86 -1 -106 86 -1 -486 86 -1 -87 87 6 -88 87 -1 -107 87 -1 -487 87 -1 -88 88 6 -89 88 -1 -108 88 -1 -488 88 -1 -89 89 6 -90 89 -1 -109 89 -1 -489 89 -1 -90 90 6 -91 90 -1 -110 90 -1 -490 90 -1 -91 91 6 -92 91 -1 -111 91 -1 -491 91 -1 -92 92 6 -93 92 -1 -112 92 -1 -492 92 -1 -93 93 6 -94 93 -1 -113 93 -1 -493 93 -1 -94 94 6 -95 94 -1 -114 94 -1 -494 94 -1 -95 95 6 -96 95 -1 -115 95 -1 -495 95 -1 -96 96 6 -97 96 -1 -116 96 -1 -496 96 -1 -97 97 6 -98 97 -1 -117 97 -1 -497 97 -1 -98 98 6 -99 98 -1 -118 98 -1 -498 98 -1 -99 99 6 -100 99 -1 -119 99 -1 -499 99 -1 -100 100 6 -120 100 -1 -500 100 -1 -101 101 6 -102 101 -1 -121 101 -1 -501 101 -1 -102 102 6 -103 102 -1 -122 102 -1 -502 102 -1 -103 103 6 -104 103 -1 -123 103 -1 -503 103 -1 -104 104 6 -105 104 -1 -124 104 -1 -504 104 -1 -105 105 6 -106 105 -1 -125 105 -1 -505 105 -1 -106 106 6 -107 106 -1 -126 106 -1 -506 106 -1 -107 107 6 -108 107 -1 -127 107 -1 -507 107 -1 -108 108 6 -109 108 -1 -128 108 -1 -508 108 -1 -109 109 6 -110 109 -1 -129 109 -1 -509 109 -1 -110 110 6 -111 110 -1 -130 110 -1 -510 110 -1 -111 111 6 -112 111 -1 -131 111 -1 -511 111 -1 -112 112 6 -113 112 -1 -132 112 -1 -512 112 -1 -113 113 6 -114 113 -1 -133 113 -1 -513 113 -1 -114 114 6 -115 114 -1 -134 114 -1 -514 114 -1 -115 115 6 -116 115 -1 -135 115 -1 -515 115 -1 -116 116 6 -117 116 -1 -136 116 -1 -516 116 -1 -117 117 6 -118 117 -1 -137 117 -1 -517 117 -1 -118 118 6 -119 118 -1 -138 118 -1 -518 118 -1 -119 119 6 -120 119 -1 -139 119 -1 -519 119 -1 -120 120 6 -140 120 -1 -520 120 -1 -121 121 6 -122 121 -1 -141 121 -1 -521 121 -1 -122 122 6 -123 122 -1 -142 122 -1 -522 122 -1 -123 123 6 -124 123 -1 -143 123 -1 -523 123 -1 -124 124 6 -125 124 -1 -144 124 -1 -524 124 -1 -125 125 6 -126 125 -1 -145 125 -1 -525 125 -1 -126 126 6 -127 126 -1 -146 126 -1 -526 126 -1 -127 127 6 -128 127 -1 -147 127 -1 -527 127 -1 -128 128 6 -129 128 -1 -148 128 -1 -528 128 -1 -129 129 6 -130 129 -1 -149 129 -1 -529 129 -1 -130 130 6 -131 130 -1 -150 130 -1 -530 130 -1 -131 131 6 -132 131 -1 -151 131 -1 -531 131 -1 -132 132 6 -133 132 -1 -152 132 -1 -532 132 -1 -133 133 6 -134 133 -1 -153 133 -1 -533 133 -1 -134 134 6 -135 134 -1 -154 134 -1 -534 134 -1 -135 135 6 -136 135 -1 -155 135 -1 -535 135 -1 -136 136 6 -137 136 -1 -156 136 -1 -536 136 -1 -137 137 6 -138 137 -1 -157 137 -1 -537 137 -1 -138 138 6 -139 138 -1 -158 138 -1 -538 138 -1 -139 139 6 -140 139 -1 -159 139 -1 -539 139 -1 -140 140 6 -160 140 -1 -540 140 -1 -141 141 6 -142 141 -1 -161 141 -1 -541 141 -1 -142 142 6 -143 142 -1 -162 142 -1 -542 142 -1 -143 143 6 -144 143 -1 -163 143 -1 -543 143 -1 -144 144 6 -145 144 -1 -164 144 -1 -544 144 -1 -145 145 6 -146 145 -1 -165 145 -1 -545 145 -1 -146 146 6 -147 146 -1 -166 146 -1 -546 146 -1 -147 147 6 -148 147 -1 -167 147 -1 -547 147 -1 -148 148 6 -149 148 -1 -168 148 -1 -548 148 -1 -149 149 6 -150 149 -1 -169 149 -1 -549 149 -1 -150 150 6 -151 150 -1 -170 150 -1 -550 150 -1 -151 151 6 -152 151 -1 -171 151 -1 -551 151 -1 -152 152 6 -153 152 -1 -172 152 -1 -552 152 -1 -153 153 6 -154 153 -1 -173 153 -1 -553 153 -1 -154 154 6 -155 154 -1 -174 154 -1 -554 154 -1 -155 155 6 -156 155 -1 -175 155 -1 -555 155 -1 -156 156 6 -157 156 -1 -176 156 -1 -556 156 -1 -157 157 6 -158 157 -1 -177 157 -1 -557 157 -1 -158 158 6 -159 158 -1 -178 158 -1 -558 158 -1 -159 159 6 -160 159 -1 -179 159 -1 -559 159 -1 -160 160 6 -180 160 -1 -560 160 -1 -161 161 6 -162 161 -1 -181 161 -1 -561 161 -1 -162 162 6 -163 162 -1 -182 162 -1 -562 162 -1 -163 163 6 -164 163 -1 -183 163 -1 -563 163 -1 -164 164 6 -165 164 -1 -184 164 -1 -564 164 -1 -165 165 6 -166 165 -1 -185 165 -1 -565 165 -1 -166 166 6 -167 166 -1 -186 166 -1 -566 166 -1 -167 167 6 -168 167 -1 -187 167 -1 -567 167 -1 -168 168 6 -169 168 -1 -188 168 -1 -568 168 -1 -169 169 6 -170 169 -1 -189 169 -1 -569 169 -1 -170 170 6 -171 170 -1 -190 170 -1 -570 170 -1 -171 171 6 -172 171 -1 -191 171 -1 -571 171 -1 -172 172 6 -173 172 -1 -192 172 -1 -572 172 -1 -173 173 6 -174 173 -1 -193 173 -1 -573 173 -1 -174 174 6 -175 174 -1 -194 174 -1 -574 174 -1 -175 175 6 -176 175 -1 -195 175 -1 -575 175 -1 -176 176 6 -177 176 -1 -196 176 -1 -576 176 -1 -177 177 6 -178 177 -1 -197 177 -1 -577 177 -1 -178 178 6 -179 178 -1 -198 178 -1 -578 178 -1 -179 179 6 -180 179 -1 -199 179 -1 -579 179 -1 -180 180 6 -200 180 -1 -580 180 -1 -181 181 6 -182 181 -1 -201 181 -1 -581 181 -1 -182 182 6 -183 182 -1 -202 182 -1 -582 182 -1 -183 183 6 -184 183 -1 -203 183 -1 -583 183 -1 -184 184 6 -185 184 -1 -204 184 -1 -584 184 -1 -185 185 6 -186 185 -1 -205 185 -1 -585 185 -1 -186 186 6 -187 186 -1 -206 186 -1 -586 186 -1 -187 187 6 -188 187 -1 -207 187 -1 -587 187 -1 -188 188 6 -189 188 -1 -208 188 -1 -588 188 -1 -189 189 6 -190 189 -1 -209 189 -1 -589 189 -1 -190 190 6 -191 190 -1 -210 190 -1 -590 190 -1 -191 191 6 -192 191 -1 -211 191 -1 -591 191 -1 -192 192 6 -193 192 -1 -212 192 -1 -592 192 -1 -193 193 6 -194 193 -1 -213 193 -1 -593 193 -1 -194 194 6 -195 194 -1 -214 194 -1 -594 194 -1 -195 195 6 -196 195 -1 -215 195 -1 -595 195 -1 -196 196 6 -197 196 -1 -216 196 -1 -596 196 -1 -197 197 6 -198 197 -1 -217 197 -1 -597 197 -1 -198 198 6 -199 198 -1 -218 198 -1 -598 198 -1 -199 199 6 -200 199 -1 -219 199 -1 -599 199 -1 -200 200 6 -220 200 -1 -600 200 -1 -201 201 6 -202 201 -1 -221 201 -1 -601 201 -1 -202 202 6 -203 202 -1 -222 202 -1 -602 202 -1 -203 203 6 -204 203 -1 -223 203 -1 -603 203 -1 -204 204 6 -205 204 -1 -224 204 -1 -604 204 -1 -205 205 6 -206 205 -1 -225 205 -1 -605 205 -1 -206 206 6 -207 206 -1 -226 206 -1 -606 206 -1 -207 207 6 -208 207 -1 -227 207 -1 -607 207 -1 -208 208 6 -209 208 -1 -228 208 -1 -608 208 -1 -209 209 6 -210 209 -1 -229 209 -1 -609 209 -1 -210 210 6 -211 210 -1 -230 210 -1 -610 210 -1 -211 211 6 -212 211 -1 -231 211 -1 -611 211 -1 -212 212 6 -213 212 -1 -232 212 -1 -612 212 -1 -213 213 6 -214 213 -1 -233 213 -1 -613 213 -1 -214 214 6 -215 214 -1 -234 214 -1 -614 214 -1 -215 215 6 -216 215 -1 -235 215 -1 -615 215 -1 -216 216 6 -217 216 -1 -236 216 -1 -616 216 -1 -217 217 6 -218 217 -1 -237 217 -1 -617 217 -1 -218 218 6 -219 218 -1 -238 218 -1 -618 218 -1 -219 219 6 -220 219 -1 -239 219 -1 -619 219 -1 -220 220 6 -240 220 -1 -620 220 -1 -221 221 6 -222 221 -1 -241 221 -1 -621 221 -1 -222 222 6 -223 222 -1 -242 222 -1 -622 222 -1 -223 223 6 -224 223 -1 -243 223 -1 -623 223 -1 -224 224 6 -225 224 -1 -244 224 -1 -624 224 -1 -225 225 6 -226 225 -1 -245 225 -1 -625 225 -1 -226 226 6 -227 226 -1 -246 226 -1 -626 226 -1 -227 227 6 -228 227 -1 -247 227 -1 -627 227 -1 -228 228 6 -229 228 -1 -248 228 -1 -628 228 -1 -229 229 6 -230 229 -1 -249 229 -1 -629 229 -1 -230 230 6 -231 230 -1 -250 230 -1 -630 230 -1 -231 231 6 -232 231 -1 -251 231 -1 -631 231 -1 -232 232 6 -233 232 -1 -252 232 -1 -632 232 -1 -233 233 6 -234 233 -1 -253 233 -1 -633 233 -1 -234 234 6 -235 234 -1 -254 234 -1 -634 234 -1 -235 235 6 -236 235 -1 -255 235 -1 -635 235 -1 -236 236 6 -237 236 -1 -256 236 -1 -636 236 -1 -237 237 6 -238 237 -1 -257 237 -1 -637 237 -1 -238 238 6 -239 238 -1 -258 238 -1 -638 238 -1 -239 239 6 -240 239 -1 -259 239 -1 -639 239 -1 -240 240 6 -260 240 -1 -640 240 -1 -241 241 6 -242 241 -1 -261 241 -1 -641 241 -1 -242 242 6 -243 242 -1 -262 242 -1 -642 242 -1 -243 243 6 -244 243 -1 -263 243 -1 -643 243 -1 -244 244 6 -245 244 -1 -264 244 -1 -644 244 -1 -245 245 6 -246 245 -1 -265 245 -1 -645 245 -1 -246 246 6 -247 246 -1 -266 246 -1 -646 246 -1 -247 247 6 -248 247 -1 -267 247 -1 -647 247 -1 -248 248 6 -249 248 -1 -268 248 -1 -648 248 -1 -249 249 6 -250 249 -1 -269 249 -1 -649 249 -1 -250 250 6 -251 250 -1 -270 250 -1 -650 250 -1 -251 251 6 -252 251 -1 -271 251 -1 -651 251 -1 -252 252 6 -253 252 -1 -272 252 -1 -652 252 -1 -253 253 6 -254 253 -1 -273 253 -1 -653 253 -1 -254 254 6 -255 254 -1 -274 254 -1 -654 254 -1 -255 255 6 -256 255 -1 -275 255 -1 -655 255 -1 -256 256 6 -257 256 -1 -276 256 -1 -656 256 -1 -257 257 6 -258 257 -1 -277 257 -1 -657 257 -1 -258 258 6 -259 258 -1 -278 258 -1 -658 258 -1 -259 259 6 -260 259 -1 -279 259 -1 -659 259 -1 -260 260 6 -280 260 -1 -660 260 -1 -261 261 6 -262 261 -1 -281 261 -1 -661 261 -1 -262 262 6 -263 262 -1 -282 262 -1 -662 262 -1 -263 263 6 -264 263 -1 -283 263 -1 -663 263 -1 -264 264 6 -265 264 -1 -284 264 -1 -664 264 -1 -265 265 6 -266 265 -1 -285 265 -1 -665 265 -1 -266 266 6 -267 266 -1 -286 266 -1 -666 266 -1 -267 267 6 -268 267 -1 -287 267 -1 -667 267 -1 -268 268 6 -269 268 -1 -288 268 -1 -668 268 -1 -269 269 6 -270 269 -1 -289 269 -1 -669 269 -1 -270 270 6 -271 270 -1 -290 270 -1 -670 270 -1 -271 271 6 -272 271 -1 -291 271 -1 -671 271 -1 -272 272 6 -273 272 -1 -292 272 -1 -672 272 -1 -273 273 6 -274 273 -1 -293 273 -1 -673 273 -1 -274 274 6 -275 274 -1 -294 274 -1 -674 274 -1 -275 275 6 -276 275 -1 -295 275 -1 -675 275 -1 -276 276 6 -277 276 -1 -296 276 -1 -676 276 -1 -277 277 6 -278 277 -1 -297 277 -1 -677 277 -1 -278 278 6 -279 278 -1 -298 278 -1 -678 278 -1 -279 279 6 -280 279 -1 -299 279 -1 -679 279 -1 -280 280 6 -300 280 -1 -680 280 -1 -281 281 6 -282 281 -1 -301 281 -1 -681 281 -1 -282 282 6 -283 282 -1 -302 282 -1 -682 282 -1 -283 283 6 -284 283 -1 -303 283 -1 -683 283 -1 -284 284 6 -285 284 -1 -304 284 -1 -684 284 -1 -285 285 6 -286 285 -1 -305 285 -1 -685 285 -1 -286 286 6 -287 286 -1 -306 286 -1 -686 286 -1 -287 287 6 -288 287 -1 -307 287 -1 -687 287 -1 -288 288 6 -289 288 -1 -308 288 -1 -688 288 -1 -289 289 6 -290 289 -1 -309 289 -1 -689 289 -1 -290 290 6 -291 290 -1 -310 290 -1 -690 290 -1 -291 291 6 -292 291 -1 -311 291 -1 -691 291 -1 -292 292 6 -293 292 -1 -312 292 -1 -692 292 -1 -293 293 6 -294 293 -1 -313 293 -1 -693 293 -1 -294 294 6 -295 294 -1 -314 294 -1 -694 294 -1 -295 295 6 -296 295 -1 -315 295 -1 -695 295 -1 -296 296 6 -297 296 -1 -316 296 -1 -696 296 -1 -297 297 6 -298 297 -1 -317 297 -1 -697 297 -1 -298 298 6 -299 298 -1 -318 298 -1 -698 298 -1 -299 299 6 -300 299 -1 -319 299 -1 -699 299 -1 -300 300 6 -320 300 -1 -700 300 -1 -301 301 6 -302 301 -1 -321 301 -1 -701 301 -1 -302 302 6 -303 302 -1 -322 302 -1 -702 302 -1 -303 303 6 -304 303 -1 -323 303 -1 -703 303 -1 -304 304 6 -305 304 -1 -324 304 -1 -704 304 -1 -305 305 6 -306 305 -1 -325 305 -1 -705 305 -1 -306 306 6 -307 306 -1 -326 306 -1 -706 306 -1 -307 307 6 -308 307 -1 -327 307 -1 -707 307 -1 -308 308 6 -309 308 -1 -328 308 -1 -708 308 -1 -309 309 6 -310 309 -1 -329 309 -1 -709 309 -1 -310 310 6 -311 310 -1 -330 310 -1 -710 310 -1 -311 311 6 -312 311 -1 -331 311 -1 -711 311 -1 -312 312 6 -313 312 -1 -332 312 -1 -712 312 -1 -313 313 6 -314 313 -1 -333 313 -1 -713 313 -1 -314 314 6 -315 314 -1 -334 314 -1 -714 314 -1 -315 315 6 -316 315 -1 -335 315 -1 -715 315 -1 -316 316 6 -317 316 -1 -336 316 -1 -716 316 -1 -317 317 6 -318 317 -1 -337 317 -1 -717 317 -1 -318 318 6 -319 318 -1 -338 318 -1 -718 318 -1 -319 319 6 -320 319 -1 -339 319 -1 -719 319 -1 -320 320 6 -340 320 -1 -720 320 -1 -321 321 6 -322 321 -1 -341 321 -1 -721 321 -1 -322 322 6 -323 322 -1 -342 322 -1 -722 322 -1 -323 323 6 -324 323 -1 -343 323 -1 -723 323 -1 -324 324 6 -325 324 -1 -344 324 -1 -724 324 -1 -325 325 6 -326 325 -1 -345 325 -1 -725 325 -1 -326 326 6 -327 326 -1 -346 326 -1 -726 326 -1 -327 327 6 -328 327 -1 -347 327 -1 -727 327 -1 -328 328 6 -329 328 -1 -348 328 -1 -728 328 -1 -329 329 6 -330 329 -1 -349 329 -1 -729 329 -1 -330 330 6 -331 330 -1 -350 330 -1 -730 330 -1 -331 331 6 -332 331 -1 -351 331 -1 -731 331 -1 -332 332 6 -333 332 -1 -352 332 -1 -732 332 -1 -333 333 6 -334 333 -1 -353 333 -1 -733 333 -1 -334 334 6 -335 334 -1 -354 334 -1 -734 334 -1 -335 335 6 -336 335 -1 -355 335 -1 -735 335 -1 -336 336 6 -337 336 -1 -356 336 -1 -736 336 -1 -337 337 6 -338 337 -1 -357 337 -1 -737 337 -1 -338 338 6 -339 338 -1 -358 338 -1 -738 338 -1 -339 339 6 -340 339 -1 -359 339 -1 -739 339 -1 -340 340 6 -360 340 -1 -740 340 -1 -341 341 6 -342 341 -1 -361 341 -1 -741 341 -1 -342 342 6 -343 342 -1 -362 342 -1 -742 342 -1 -343 343 6 -344 343 -1 -363 343 -1 -743 343 -1 -344 344 6 -345 344 -1 -364 344 -1 -744 344 -1 -345 345 6 -346 345 -1 -365 345 -1 -745 345 -1 -346 346 6 -347 346 -1 -366 346 -1 -746 346 -1 -347 347 6 -348 347 -1 -367 347 -1 -747 347 -1 -348 348 6 -349 348 -1 -368 348 -1 -748 348 -1 -349 349 6 -350 349 -1 -369 349 -1 -749 349 -1 -350 350 6 -351 350 -1 -370 350 -1 -750 350 -1 -351 351 6 -352 351 -1 -371 351 -1 -751 351 -1 -352 352 6 -353 352 -1 -372 352 -1 -752 352 -1 -353 353 6 -354 353 -1 -373 353 -1 -753 353 -1 -354 354 6 -355 354 -1 -374 354 -1 -754 354 -1 -355 355 6 -356 355 -1 -375 355 -1 -755 355 -1 -356 356 6 -357 356 -1 -376 356 -1 -756 356 -1 -357 357 6 -358 357 -1 -377 357 -1 -757 357 -1 -358 358 6 -359 358 -1 -378 358 -1 -758 358 -1 -359 359 6 -360 359 -1 -379 359 -1 -759 359 -1 -360 360 6 -380 360 -1 -760 360 -1 -361 361 6 -362 361 -1 -381 361 -1 -761 361 -1 -362 362 6 -363 362 -1 -382 362 -1 -762 362 -1 -363 363 6 -364 363 -1 -383 363 -1 -763 363 -1 -364 364 6 -365 364 -1 -384 364 -1 -764 364 -1 -365 365 6 -366 365 -1 -385 365 -1 -765 365 -1 -366 366 6 -367 366 -1 -386 366 -1 -766 366 -1 -367 367 6 -368 367 -1 -387 367 -1 -767 367 -1 -368 368 6 -369 368 -1 -388 368 -1 -768 368 -1 -369 369 6 -370 369 -1 -389 369 -1 -769 369 -1 -370 370 6 -371 370 -1 -390 370 -1 -770 370 -1 -371 371 6 -372 371 -1 -391 371 -1 -771 371 -1 -372 372 6 -373 372 -1 -392 372 -1 -772 372 -1 -373 373 6 -374 373 -1 -393 373 -1 -773 373 -1 -374 374 6 -375 374 -1 -394 374 -1 -774 374 -1 -375 375 6 -376 375 -1 -395 375 -1 -775 375 -1 -376 376 6 -377 376 -1 -396 376 -1 -776 376 -1 -377 377 6 -378 377 -1 -397 377 -1 -777 377 -1 -378 378 6 -379 378 -1 -398 378 -1 -778 378 -1 -379 379 6 -380 379 -1 -399 379 -1 -779 379 -1 -380 380 6 -400 380 -1 -780 380 -1 -381 381 6 -382 381 -1 -781 381 -1 -382 382 6 -383 382 -1 -782 382 -1 -383 383 6 -384 383 -1 -783 383 -1 -384 384 6 -385 384 -1 -784 384 -1 -385 385 6 -386 385 -1 -785 385 -1 -386 386 6 -387 386 -1 -786 386 -1 -387 387 6 -388 387 -1 -787 387 -1 -388 388 6 -389 388 -1 -788 388 -1 -389 389 6 -390 389 -1 -789 389 -1 -390 390 6 -391 390 -1 -790 390 -1 -391 391 6 -392 391 -1 -791 391 -1 -392 392 6 -393 392 -1 -792 392 -1 -393 393 6 -394 393 -1 -793 393 -1 -394 394 6 -395 394 -1 -794 394 -1 -395 395 6 -396 395 -1 -795 395 -1 -396 396 6 -397 396 -1 -796 396 -1 -397 397 6 -398 397 -1 -797 397 -1 -398 398 6 -399 398 -1 -798 398 -1 -399 399 6 -400 399 -1 -799 399 -1 -400 400 6 -800 400 -1 -401 401 6 -402 401 -1 -421 401 -1 -801 401 -1 -402 402 6 -403 402 -1 -422 402 -1 -802 402 -1 -403 403 6 -404 403 -1 -423 403 -1 -803 403 -1 -404 404 6 -405 404 -1 -424 404 -1 -804 404 -1 -405 405 6 -406 405 -1 -425 405 -1 -805 405 -1 -406 406 6 -407 406 -1 -426 406 -1 -806 406 -1 -407 407 6 -408 407 -1 -427 407 -1 -807 407 -1 -408 408 6 -409 408 -1 -428 408 -1 -808 408 -1 -409 409 6 -410 409 -1 -429 409 -1 -809 409 -1 -410 410 6 -411 410 -1 -430 410 -1 -810 410 -1 -411 411 6 -412 411 -1 -431 411 -1 -811 411 -1 -412 412 6 -413 412 -1 -432 412 -1 -812 412 -1 -413 413 6 -414 413 -1 -433 413 -1 -813 413 -1 -414 414 6 -415 414 -1 -434 414 -1 -814 414 -1 -415 415 6 -416 415 -1 -435 415 -1 -815 415 -1 -416 416 6 -417 416 -1 -436 416 -1 -816 416 -1 -417 417 6 -418 417 -1 -437 417 -1 -817 417 -1 -418 418 6 -419 418 -1 -438 418 -1 -818 418 -1 -419 419 6 -420 419 -1 -439 419 -1 -819 419 -1 -420 420 6 -440 420 -1 -820 420 -1 -421 421 6 -422 421 -1 -441 421 -1 -821 421 -1 -422 422 6 -423 422 -1 -442 422 -1 -822 422 -1 -423 423 6 -424 423 -1 -443 423 -1 -823 423 -1 -424 424 6 -425 424 -1 -444 424 -1 -824 424 -1 -425 425 6 -426 425 -1 -445 425 -1 -825 425 -1 -426 426 6 -427 426 -1 -446 426 -1 -826 426 -1 -427 427 6 -428 427 -1 -447 427 -1 -827 427 -1 -428 428 6 -429 428 -1 -448 428 -1 -828 428 -1 -429 429 6 -430 429 -1 -449 429 -1 -829 429 -1 -430 430 6 -431 430 -1 -450 430 -1 -830 430 -1 -431 431 6 -432 431 -1 -451 431 -1 -831 431 -1 -432 432 6 -433 432 -1 -452 432 -1 -832 432 -1 -433 433 6 -434 433 -1 -453 433 -1 -833 433 -1 -434 434 6 -435 434 -1 -454 434 -1 -834 434 -1 -435 435 6 -436 435 -1 -455 435 -1 -835 435 -1 -436 436 6 -437 436 -1 -456 436 -1 -836 436 -1 -437 437 6 -438 437 -1 -457 437 -1 -837 437 -1 -438 438 6 -439 438 -1 -458 438 -1 -838 438 -1 -439 439 6 -440 439 -1 -459 439 -1 -839 439 -1 -440 440 6 -460 440 -1 -840 440 -1 -441 441 6 -442 441 -1 -461 441 -1 -841 441 -1 -442 442 6 -443 442 -1 -462 442 -1 -842 442 -1 -443 443 6 -444 443 -1 -463 443 -1 -843 443 -1 -444 444 6 -445 444 -1 -464 444 -1 -844 444 -1 -445 445 6 -446 445 -1 -465 445 -1 -845 445 -1 -446 446 6 -447 446 -1 -466 446 -1 -846 446 -1 -447 447 6 -448 447 -1 -467 447 -1 -847 447 -1 -448 448 6 -449 448 -1 -468 448 -1 -848 448 -1 -449 449 6 -450 449 -1 -469 449 -1 -849 449 -1 -450 450 6 -451 450 -1 -470 450 -1 -850 450 -1 -451 451 6 -452 451 -1 -471 451 -1 -851 451 -1 -452 452 6 -453 452 -1 -472 452 -1 -852 452 -1 -453 453 6 -454 453 -1 -473 453 -1 -853 453 -1 -454 454 6 -455 454 -1 -474 454 -1 -854 454 -1 -455 455 6 -456 455 -1 -475 455 -1 -855 455 -1 -456 456 6 -457 456 -1 -476 456 -1 -856 456 -1 -457 457 6 -458 457 -1 -477 457 -1 -857 457 -1 -458 458 6 -459 458 -1 -478 458 -1 -858 458 -1 -459 459 6 -460 459 -1 -479 459 -1 -859 459 -1 -460 460 6 -480 460 -1 -860 460 -1 -461 461 6 -462 461 -1 -481 461 -1 -861 461 -1 -462 462 6 -463 462 -1 -482 462 -1 -862 462 -1 -463 463 6 -464 463 -1 -483 463 -1 -863 463 -1 -464 464 6 -465 464 -1 -484 464 -1 -864 464 -1 -465 465 6 -466 465 -1 -485 465 -1 -865 465 -1 -466 466 6 -467 466 -1 -486 466 -1 -866 466 -1 -467 467 6 -468 467 -1 -487 467 -1 -867 467 -1 -468 468 6 -469 468 -1 -488 468 -1 -868 468 -1 -469 469 6 -470 469 -1 -489 469 -1 -869 469 -1 -470 470 6 -471 470 -1 -490 470 -1 -870 470 -1 -471 471 6 -472 471 -1 -491 471 -1 -871 471 -1 -472 472 6 -473 472 -1 -492 472 -1 -872 472 -1 -473 473 6 -474 473 -1 -493 473 -1 -873 473 -1 -474 474 6 -475 474 -1 -494 474 -1 -874 474 -1 -475 475 6 -476 475 -1 -495 475 -1 -875 475 -1 -476 476 6 -477 476 -1 -496 476 -1 -876 476 -1 -477 477 6 -478 477 -1 -497 477 -1 -877 477 -1 -478 478 6 -479 478 -1 -498 478 -1 -878 478 -1 -479 479 6 -480 479 -1 -499 479 -1 -879 479 -1 -480 480 6 -500 480 -1 -880 480 -1 -481 481 6 -482 481 -1 -501 481 -1 -881 481 -1 -482 482 6 -483 482 -1 -502 482 -1 -882 482 -1 -483 483 6 -484 483 -1 -503 483 -1 -883 483 -1 -484 484 6 -485 484 -1 -504 484 -1 -884 484 -1 -485 485 6 -486 485 -1 -505 485 -1 -885 485 -1 -486 486 6 -487 486 -1 -506 486 -1 -886 486 -1 -487 487 6 -488 487 -1 -507 487 -1 -887 487 -1 -488 488 6 -489 488 -1 -508 488 -1 -888 488 -1 -489 489 6 -490 489 -1 -509 489 -1 -889 489 -1 -490 490 6 -491 490 -1 -510 490 -1 -890 490 -1 -491 491 6 -492 491 -1 -511 491 -1 -891 491 -1 -492 492 6 -493 492 -1 -512 492 -1 -892 492 -1 -493 493 6 -494 493 -1 -513 493 -1 -893 493 -1 -494 494 6 -495 494 -1 -514 494 -1 -894 494 -1 -495 495 6 -496 495 -1 -515 495 -1 -895 495 -1 -496 496 6 -497 496 -1 -516 496 -1 -896 496 -1 -497 497 6 -498 497 -1 -517 497 -1 -897 497 -1 -498 498 6 -499 498 -1 -518 498 -1 -898 498 -1 -499 499 6 -500 499 -1 -519 499 -1 -899 499 -1 -500 500 6 -520 500 -1 -900 500 -1 -501 501 6 -502 501 -1 -521 501 -1 -901 501 -1 -502 502 6 -503 502 -1 -522 502 -1 -902 502 -1 -503 503 6 -504 503 -1 -523 503 -1 -903 503 -1 -504 504 6 -505 504 -1 -524 504 -1 -904 504 -1 -505 505 6 -506 505 -1 -525 505 -1 -905 505 -1 -506 506 6 -507 506 -1 -526 506 -1 -906 506 -1 -507 507 6 -508 507 -1 -527 507 -1 -907 507 -1 -508 508 6 -509 508 -1 -528 508 -1 -908 508 -1 -509 509 6 -510 509 -1 -529 509 -1 -909 509 -1 -510 510 6 -511 510 -1 -530 510 -1 -910 510 -1 -511 511 6 -512 511 -1 -531 511 -1 -911 511 -1 -512 512 6 -513 512 -1 -532 512 -1 -912 512 -1 -513 513 6 -514 513 -1 -533 513 -1 -913 513 -1 -514 514 6 -515 514 -1 -534 514 -1 -914 514 -1 -515 515 6 -516 515 -1 -535 515 -1 -915 515 -1 -516 516 6 -517 516 -1 -536 516 -1 -916 516 -1 -517 517 6 -518 517 -1 -537 517 -1 -917 517 -1 -518 518 6 -519 518 -1 -538 518 -1 -918 518 -1 -519 519 6 -520 519 -1 -539 519 -1 -919 519 -1 -520 520 6 -540 520 -1 -920 520 -1 -521 521 6 -522 521 -1 -541 521 -1 -921 521 -1 -522 522 6 -523 522 -1 -542 522 -1 -922 522 -1 -523 523 6 -524 523 -1 -543 523 -1 -923 523 -1 -524 524 6 -525 524 -1 -544 524 -1 -924 524 -1 -525 525 6 -526 525 -1 -545 525 -1 -925 525 -1 -526 526 6 -527 526 -1 -546 526 -1 -926 526 -1 -527 527 6 -528 527 -1 -547 527 -1 -927 527 -1 -528 528 6 -529 528 -1 -548 528 -1 -928 528 -1 -529 529 6 -530 529 -1 -549 529 -1 -929 529 -1 -530 530 6 -531 530 -1 -550 530 -1 -930 530 -1 -531 531 6 -532 531 -1 -551 531 -1 -931 531 -1 -532 532 6 -533 532 -1 -552 532 -1 -932 532 -1 -533 533 6 -534 533 -1 -553 533 -1 -933 533 -1 -534 534 6 -535 534 -1 -554 534 -1 -934 534 -1 -535 535 6 -536 535 -1 -555 535 -1 -935 535 -1 -536 536 6 -537 536 -1 -556 536 -1 -936 536 -1 -537 537 6 -538 537 -1 -557 537 -1 -937 537 -1 -538 538 6 -539 538 -1 -558 538 -1 -938 538 -1 -539 539 6 -540 539 -1 -559 539 -1 -939 539 -1 -540 540 6 -560 540 -1 -940 540 -1 -541 541 6 -542 541 -1 -561 541 -1 -941 541 -1 -542 542 6 -543 542 -1 -562 542 -1 -942 542 -1 -543 543 6 -544 543 -1 -563 543 -1 -943 543 -1 -544 544 6 -545 544 -1 -564 544 -1 -944 544 -1 -545 545 6 -546 545 -1 -565 545 -1 -945 545 -1 -546 546 6 -547 546 -1 -566 546 -1 -946 546 -1 -547 547 6 -548 547 -1 -567 547 -1 -947 547 -1 -548 548 6 -549 548 -1 -568 548 -1 -948 548 -1 -549 549 6 -550 549 -1 -569 549 -1 -949 549 -1 -550 550 6 -551 550 -1 -570 550 -1 -950 550 -1 -551 551 6 -552 551 -1 -571 551 -1 -951 551 -1 -552 552 6 -553 552 -1 -572 552 -1 -952 552 -1 -553 553 6 -554 553 -1 -573 553 -1 -953 553 -1 -554 554 6 -555 554 -1 -574 554 -1 -954 554 -1 -555 555 6 -556 555 -1 -575 555 -1 -955 555 -1 -556 556 6 -557 556 -1 -576 556 -1 -956 556 -1 -557 557 6 -558 557 -1 -577 557 -1 -957 557 -1 -558 558 6 -559 558 -1 -578 558 -1 -958 558 -1 -559 559 6 -560 559 -1 -579 559 -1 -959 559 -1 -560 560 6 -580 560 -1 -960 560 -1 -561 561 6 -562 561 -1 -581 561 -1 -961 561 -1 -562 562 6 -563 562 -1 -582 562 -1 -962 562 -1 -563 563 6 -564 563 -1 -583 563 -1 -963 563 -1 -564 564 6 -565 564 -1 -584 564 -1 -964 564 -1 -565 565 6 -566 565 -1 -585 565 -1 -965 565 -1 -566 566 6 -567 566 -1 -586 566 -1 -966 566 -1 -567 567 6 -568 567 -1 -587 567 -1 -967 567 -1 -568 568 6 -569 568 -1 -588 568 -1 -968 568 -1 -569 569 6 -570 569 -1 -589 569 -1 -969 569 -1 -570 570 6 -571 570 -1 -590 570 -1 -970 570 -1 -571 571 6 -572 571 -1 -591 571 -1 -971 571 -1 -572 572 6 -573 572 -1 -592 572 -1 -972 572 -1 -573 573 6 -574 573 -1 -593 573 -1 -973 573 -1 -574 574 6 -575 574 -1 -594 574 -1 -974 574 -1 -575 575 6 -576 575 -1 -595 575 -1 -975 575 -1 -576 576 6 -577 576 -1 -596 576 -1 -976 576 -1 -577 577 6 -578 577 -1 -597 577 -1 -977 577 -1 -578 578 6 -579 578 -1 -598 578 -1 -978 578 -1 -579 579 6 -580 579 -1 -599 579 -1 -979 579 -1 -580 580 6 -600 580 -1 -980 580 -1 -581 581 6 -582 581 -1 -601 581 -1 -981 581 -1 -582 582 6 -583 582 -1 -602 582 -1 -982 582 -1 -583 583 6 -584 583 -1 -603 583 -1 -983 583 -1 -584 584 6 -585 584 -1 -604 584 -1 -984 584 -1 -585 585 6 -586 585 -1 -605 585 -1 -985 585 -1 -586 586 6 -587 586 -1 -606 586 -1 -986 586 -1 -587 587 6 -588 587 -1 -607 587 -1 -987 587 -1 -588 588 6 -589 588 -1 -608 588 -1 -988 588 -1 -589 589 6 -590 589 -1 -609 589 -1 -989 589 -1 -590 590 6 -591 590 -1 -610 590 -1 -990 590 -1 -591 591 6 -592 591 -1 -611 591 -1 -991 591 -1 -592 592 6 -593 592 -1 -612 592 -1 -992 592 -1 -593 593 6 -594 593 -1 -613 593 -1 -993 593 -1 -594 594 6 -595 594 -1 -614 594 -1 -994 594 -1 -595 595 6 -596 595 -1 -615 595 -1 -995 595 -1 -596 596 6 -597 596 -1 -616 596 -1 -996 596 -1 -597 597 6 -598 597 -1 -617 597 -1 -997 597 -1 -598 598 6 -599 598 -1 -618 598 -1 -998 598 -1 -599 599 6 -600 599 -1 -619 599 -1 -999 599 -1 -600 600 6 -620 600 -1 -1000 600 -1 -601 601 6 -602 601 -1 -621 601 -1 -1001 601 -1 -602 602 6 -603 602 -1 -622 602 -1 -1002 602 -1 -603 603 6 -604 603 -1 -623 603 -1 -1003 603 -1 -604 604 6 -605 604 -1 -624 604 -1 -1004 604 -1 -605 605 6 -606 605 -1 -625 605 -1 -1005 605 -1 -606 606 6 -607 606 -1 -626 606 -1 -1006 606 -1 -607 607 6 -608 607 -1 -627 607 -1 -1007 607 -1 -608 608 6 -609 608 -1 -628 608 -1 -1008 608 -1 -609 609 6 -610 609 -1 -629 609 -1 -1009 609 -1 -610 610 6 -611 610 -1 -630 610 -1 -1010 610 -1 -611 611 6 -612 611 -1 -631 611 -1 -1011 611 -1 -612 612 6 -613 612 -1 -632 612 -1 -1012 612 -1 -613 613 6 -614 613 -1 -633 613 -1 -1013 613 -1 -614 614 6 -615 614 -1 -634 614 -1 -1014 614 -1 -615 615 6 -616 615 -1 -635 615 -1 -1015 615 -1 -616 616 6 -617 616 -1 -636 616 -1 -1016 616 -1 -617 617 6 -618 617 -1 -637 617 -1 -1017 617 -1 -618 618 6 -619 618 -1 -638 618 -1 -1018 618 -1 -619 619 6 -620 619 -1 -639 619 -1 -1019 619 -1 -620 620 6 -640 620 -1 -1020 620 -1 -621 621 6 -622 621 -1 -641 621 -1 -1021 621 -1 -622 622 6 -623 622 -1 -642 622 -1 -1022 622 -1 -623 623 6 -624 623 -1 -643 623 -1 -1023 623 -1 -624 624 6 -625 624 -1 -644 624 -1 -1024 624 -1 -625 625 6 -626 625 -1 -645 625 -1 -1025 625 -1 -626 626 6 -627 626 -1 -646 626 -1 -1026 626 -1 -627 627 6 -628 627 -1 -647 627 -1 -1027 627 -1 -628 628 6 -629 628 -1 -648 628 -1 -1028 628 -1 -629 629 6 -630 629 -1 -649 629 -1 -1029 629 -1 -630 630 6 -631 630 -1 -650 630 -1 -1030 630 -1 -631 631 6 -632 631 -1 -651 631 -1 -1031 631 -1 -632 632 6 -633 632 -1 -652 632 -1 -1032 632 -1 -633 633 6 -634 633 -1 -653 633 -1 -1033 633 -1 -634 634 6 -635 634 -1 -654 634 -1 -1034 634 -1 -635 635 6 -636 635 -1 -655 635 -1 -1035 635 -1 -636 636 6 -637 636 -1 -656 636 -1 -1036 636 -1 -637 637 6 -638 637 -1 -657 637 -1 -1037 637 -1 -638 638 6 -639 638 -1 -658 638 -1 -1038 638 -1 -639 639 6 -640 639 -1 -659 639 -1 -1039 639 -1 -640 640 6 -660 640 -1 -1040 640 -1 -641 641 6 -642 641 -1 -661 641 -1 -1041 641 -1 -642 642 6 -643 642 -1 -662 642 -1 -1042 642 -1 -643 643 6 -644 643 -1 -663 643 -1 -1043 643 -1 -644 644 6 -645 644 -1 -664 644 -1 -1044 644 -1 -645 645 6 -646 645 -1 -665 645 -1 -1045 645 -1 -646 646 6 -647 646 -1 -666 646 -1 -1046 646 -1 -647 647 6 -648 647 -1 -667 647 -1 -1047 647 -1 -648 648 6 -649 648 -1 -668 648 -1 -1048 648 -1 -649 649 6 -650 649 -1 -669 649 -1 -1049 649 -1 -650 650 6 -651 650 -1 -670 650 -1 -1050 650 -1 -651 651 6 -652 651 -1 -671 651 -1 -1051 651 -1 -652 652 6 -653 652 -1 -672 652 -1 -1052 652 -1 -653 653 6 -654 653 -1 -673 653 -1 -1053 653 -1 -654 654 6 -655 654 -1 -674 654 -1 -1054 654 -1 -655 655 6 -656 655 -1 -675 655 -1 -1055 655 -1 -656 656 6 -657 656 -1 -676 656 -1 -1056 656 -1 -657 657 6 -658 657 -1 -677 657 -1 -1057 657 -1 -658 658 6 -659 658 -1 -678 658 -1 -1058 658 -1 -659 659 6 -660 659 -1 -679 659 -1 -1059 659 -1 -660 660 6 -680 660 -1 -1060 660 -1 -661 661 6 -662 661 -1 -681 661 -1 -1061 661 -1 -662 662 6 -663 662 -1 -682 662 -1 -1062 662 -1 -663 663 6 -664 663 -1 -683 663 -1 -1063 663 -1 -664 664 6 -665 664 -1 -684 664 -1 -1064 664 -1 -665 665 6 -666 665 -1 -685 665 -1 -1065 665 -1 -666 666 6 -667 666 -1 -686 666 -1 -1066 666 -1 -667 667 6 -668 667 -1 -687 667 -1 -1067 667 -1 -668 668 6 -669 668 -1 -688 668 -1 -1068 668 -1 -669 669 6 -670 669 -1 -689 669 -1 -1069 669 -1 -670 670 6 -671 670 -1 -690 670 -1 -1070 670 -1 -671 671 6 -672 671 -1 -691 671 -1 -1071 671 -1 -672 672 6 -673 672 -1 -692 672 -1 -1072 672 -1 -673 673 6 -674 673 -1 -693 673 -1 -1073 673 -1 -674 674 6 -675 674 -1 -694 674 -1 -1074 674 -1 -675 675 6 -676 675 -1 -695 675 -1 -1075 675 -1 -676 676 6 -677 676 -1 -696 676 -1 -1076 676 -1 -677 677 6 -678 677 -1 -697 677 -1 -1077 677 -1 -678 678 6 -679 678 -1 -698 678 -1 -1078 678 -1 -679 679 6 -680 679 -1 -699 679 -1 -1079 679 -1 -680 680 6 -700 680 -1 -1080 680 -1 -681 681 6 -682 681 -1 -701 681 -1 -1081 681 -1 -682 682 6 -683 682 -1 -702 682 -1 -1082 682 -1 -683 683 6 -684 683 -1 -703 683 -1 -1083 683 -1 -684 684 6 -685 684 -1 -704 684 -1 -1084 684 -1 -685 685 6 -686 685 -1 -705 685 -1 -1085 685 -1 -686 686 6 -687 686 -1 -706 686 -1 -1086 686 -1 -687 687 6 -688 687 -1 -707 687 -1 -1087 687 -1 -688 688 6 -689 688 -1 -708 688 -1 -1088 688 -1 -689 689 6 -690 689 -1 -709 689 -1 -1089 689 -1 -690 690 6 -691 690 -1 -710 690 -1 -1090 690 -1 -691 691 6 -692 691 -1 -711 691 -1 -1091 691 -1 -692 692 6 -693 692 -1 -712 692 -1 -1092 692 -1 -693 693 6 -694 693 -1 -713 693 -1 -1093 693 -1 -694 694 6 -695 694 -1 -714 694 -1 -1094 694 -1 -695 695 6 -696 695 -1 -715 695 -1 -1095 695 -1 -696 696 6 -697 696 -1 -716 696 -1 -1096 696 -1 -697 697 6 -698 697 -1 -717 697 -1 -1097 697 -1 -698 698 6 -699 698 -1 -718 698 -1 -1098 698 -1 -699 699 6 -700 699 -1 -719 699 -1 -1099 699 -1 -700 700 6 -720 700 -1 -1100 700 -1 -701 701 6 -702 701 -1 -721 701 -1 -1101 701 -1 -702 702 6 -703 702 -1 -722 702 -1 -1102 702 -1 -703 703 6 -704 703 -1 -723 703 -1 -1103 703 -1 -704 704 6 -705 704 -1 -724 704 -1 -1104 704 -1 -705 705 6 -706 705 -1 -725 705 -1 -1105 705 -1 -706 706 6 -707 706 -1 -726 706 -1 -1106 706 -1 -707 707 6 -708 707 -1 -727 707 -1 -1107 707 -1 -708 708 6 -709 708 -1 -728 708 -1 -1108 708 -1 -709 709 6 -710 709 -1 -729 709 -1 -1109 709 -1 -710 710 6 -711 710 -1 -730 710 -1 -1110 710 -1 -711 711 6 -712 711 -1 -731 711 -1 -1111 711 -1 -712 712 6 -713 712 -1 -732 712 -1 -1112 712 -1 -713 713 6 -714 713 -1 -733 713 -1 -1113 713 -1 -714 714 6 -715 714 -1 -734 714 -1 -1114 714 -1 -715 715 6 -716 715 -1 -735 715 -1 -1115 715 -1 -716 716 6 -717 716 -1 -736 716 -1 -1116 716 -1 -717 717 6 -718 717 -1 -737 717 -1 -1117 717 -1 -718 718 6 -719 718 -1 -738 718 -1 -1118 718 -1 -719 719 6 -720 719 -1 -739 719 -1 -1119 719 -1 -720 720 6 -740 720 -1 -1120 720 -1 -721 721 6 -722 721 -1 -741 721 -1 -1121 721 -1 -722 722 6 -723 722 -1 -742 722 -1 -1122 722 -1 -723 723 6 -724 723 -1 -743 723 -1 -1123 723 -1 -724 724 6 -725 724 -1 -744 724 -1 -1124 724 -1 -725 725 6 -726 725 -1 -745 725 -1 -1125 725 -1 -726 726 6 -727 726 -1 -746 726 -1 -1126 726 -1 -727 727 6 -728 727 -1 -747 727 -1 -1127 727 -1 -728 728 6 -729 728 -1 -748 728 -1 -1128 728 -1 -729 729 6 -730 729 -1 -749 729 -1 -1129 729 -1 -730 730 6 -731 730 -1 -750 730 -1 -1130 730 -1 -731 731 6 -732 731 -1 -751 731 -1 -1131 731 -1 -732 732 6 -733 732 -1 -752 732 -1 -1132 732 -1 -733 733 6 -734 733 -1 -753 733 -1 -1133 733 -1 -734 734 6 -735 734 -1 -754 734 -1 -1134 734 -1 -735 735 6 -736 735 -1 -755 735 -1 -1135 735 -1 -736 736 6 -737 736 -1 -756 736 -1 -1136 736 -1 -737 737 6 -738 737 -1 -757 737 -1 -1137 737 -1 -738 738 6 -739 738 -1 -758 738 -1 -1138 738 -1 -739 739 6 -740 739 -1 -759 739 -1 -1139 739 -1 -740 740 6 -760 740 -1 -1140 740 -1 -741 741 6 -742 741 -1 -761 741 -1 -1141 741 -1 -742 742 6 -743 742 -1 -762 742 -1 -1142 742 -1 -743 743 6 -744 743 -1 -763 743 -1 -1143 743 -1 -744 744 6 -745 744 -1 -764 744 -1 -1144 744 -1 -745 745 6 -746 745 -1 -765 745 -1 -1145 745 -1 -746 746 6 -747 746 -1 -766 746 -1 -1146 746 -1 -747 747 6 -748 747 -1 -767 747 -1 -1147 747 -1 -748 748 6 -749 748 -1 -768 748 -1 -1148 748 -1 -749 749 6 -750 749 -1 -769 749 -1 -1149 749 -1 -750 750 6 -751 750 -1 -770 750 -1 -1150 750 -1 -751 751 6 -752 751 -1 -771 751 -1 -1151 751 -1 -752 752 6 -753 752 -1 -772 752 -1 -1152 752 -1 -753 753 6 -754 753 -1 -773 753 -1 -1153 753 -1 -754 754 6 -755 754 -1 -774 754 -1 -1154 754 -1 -755 755 6 -756 755 -1 -775 755 -1 -1155 755 -1 -756 756 6 -757 756 -1 -776 756 -1 -1156 756 -1 -757 757 6 -758 757 -1 -777 757 -1 -1157 757 -1 -758 758 6 -759 758 -1 -778 758 -1 -1158 758 -1 -759 759 6 -760 759 -1 -779 759 -1 -1159 759 -1 -760 760 6 -780 760 -1 -1160 760 -1 -761 761 6 -762 761 -1 -781 761 -1 -1161 761 -1 -762 762 6 -763 762 -1 -782 762 -1 -1162 762 -1 -763 763 6 -764 763 -1 -783 763 -1 -1163 763 -1 -764 764 6 -765 764 -1 -784 764 -1 -1164 764 -1 -765 765 6 -766 765 -1 -785 765 -1 -1165 765 -1 -766 766 6 -767 766 -1 -786 766 -1 -1166 766 -1 -767 767 6 -768 767 -1 -787 767 -1 -1167 767 -1 -768 768 6 -769 768 -1 -788 768 -1 -1168 768 -1 -769 769 6 -770 769 -1 -789 769 -1 -1169 769 -1 -770 770 6 -771 770 -1 -790 770 -1 -1170 770 -1 -771 771 6 -772 771 -1 -791 771 -1 -1171 771 -1 -772 772 6 -773 772 -1 -792 772 -1 -1172 772 -1 -773 773 6 -774 773 -1 -793 773 -1 -1173 773 -1 -774 774 6 -775 774 -1 -794 774 -1 -1174 774 -1 -775 775 6 -776 775 -1 -795 775 -1 -1175 775 -1 -776 776 6 -777 776 -1 -796 776 -1 -1176 776 -1 -777 777 6 -778 777 -1 -797 777 -1 -1177 777 -1 -778 778 6 -779 778 -1 -798 778 -1 -1178 778 -1 -779 779 6 -780 779 -1 -799 779 -1 -1179 779 -1 -780 780 6 -800 780 -1 -1180 780 -1 -781 781 6 -782 781 -1 -1181 781 -1 -782 782 6 -783 782 -1 -1182 782 -1 -783 783 6 -784 783 -1 -1183 783 -1 -784 784 6 -785 784 -1 -1184 784 -1 -785 785 6 -786 785 -1 -1185 785 -1 -786 786 6 -787 786 -1 -1186 786 -1 -787 787 6 -788 787 -1 -1187 787 -1 -788 788 6 -789 788 -1 -1188 788 -1 -789 789 6 -790 789 -1 -1189 789 -1 -790 790 6 -791 790 -1 -1190 790 -1 -791 791 6 -792 791 -1 -1191 791 -1 -792 792 6 -793 792 -1 -1192 792 -1 -793 793 6 -794 793 -1 -1193 793 -1 -794 794 6 -795 794 -1 -1194 794 -1 -795 795 6 -796 795 -1 -1195 795 -1 -796 796 6 -797 796 -1 -1196 796 -1 -797 797 6 -798 797 -1 -1197 797 -1 -798 798 6 -799 798 -1 -1198 798 -1 -799 799 6 -800 799 -1 -1199 799 -1 -800 800 6 -1200 800 -1 -801 801 6 -802 801 -1 -821 801 -1 -1201 801 -1 -802 802 6 -803 802 -1 -822 802 -1 -1202 802 -1 -803 803 6 -804 803 -1 -823 803 -1 -1203 803 -1 -804 804 6 -805 804 -1 -824 804 -1 -1204 804 -1 -805 805 6 -806 805 -1 -825 805 -1 -1205 805 -1 -806 806 6 -807 806 -1 -826 806 -1 -1206 806 -1 -807 807 6 -808 807 -1 -827 807 -1 -1207 807 -1 -808 808 6 -809 808 -1 -828 808 -1 -1208 808 -1 -809 809 6 -810 809 -1 -829 809 -1 -1209 809 -1 -810 810 6 -811 810 -1 -830 810 -1 -1210 810 -1 -811 811 6 -812 811 -1 -831 811 -1 -1211 811 -1 -812 812 6 -813 812 -1 -832 812 -1 -1212 812 -1 -813 813 6 -814 813 -1 -833 813 -1 -1213 813 -1 -814 814 6 -815 814 -1 -834 814 -1 -1214 814 -1 -815 815 6 -816 815 -1 -835 815 -1 -1215 815 -1 -816 816 6 -817 816 -1 -836 816 -1 -1216 816 -1 -817 817 6 -818 817 -1 -837 817 -1 -1217 817 -1 -818 818 6 -819 818 -1 -838 818 -1 -1218 818 -1 -819 819 6 -820 819 -1 -839 819 -1 -1219 819 -1 -820 820 6 -840 820 -1 -1220 820 -1 -821 821 6 -822 821 -1 -841 821 -1 -1221 821 -1 -822 822 6 -823 822 -1 -842 822 -1 -1222 822 -1 -823 823 6 -824 823 -1 -843 823 -1 -1223 823 -1 -824 824 6 -825 824 -1 -844 824 -1 -1224 824 -1 -825 825 6 -826 825 -1 -845 825 -1 -1225 825 -1 -826 826 6 -827 826 -1 -846 826 -1 -1226 826 -1 -827 827 6 -828 827 -1 -847 827 -1 -1227 827 -1 -828 828 6 -829 828 -1 -848 828 -1 -1228 828 -1 -829 829 6 -830 829 -1 -849 829 -1 -1229 829 -1 -830 830 6 -831 830 -1 -850 830 -1 -1230 830 -1 -831 831 6 -832 831 -1 -851 831 -1 -1231 831 -1 -832 832 6 -833 832 -1 -852 832 -1 -1232 832 -1 -833 833 6 -834 833 -1 -853 833 -1 -1233 833 -1 -834 834 6 -835 834 -1 -854 834 -1 -1234 834 -1 -835 835 6 -836 835 -1 -855 835 -1 -1235 835 -1 -836 836 6 -837 836 -1 -856 836 -1 -1236 836 -1 -837 837 6 -838 837 -1 -857 837 -1 -1237 837 -1 -838 838 6 -839 838 -1 -858 838 -1 -1238 838 -1 -839 839 6 -840 839 -1 -859 839 -1 -1239 839 -1 -840 840 6 -860 840 -1 -1240 840 -1 -841 841 6 -842 841 -1 -861 841 -1 -1241 841 -1 -842 842 6 -843 842 -1 -862 842 -1 -1242 842 -1 -843 843 6 -844 843 -1 -863 843 -1 -1243 843 -1 -844 844 6 -845 844 -1 -864 844 -1 -1244 844 -1 -845 845 6 -846 845 -1 -865 845 -1 -1245 845 -1 -846 846 6 -847 846 -1 -866 846 -1 -1246 846 -1 -847 847 6 -848 847 -1 -867 847 -1 -1247 847 -1 -848 848 6 -849 848 -1 -868 848 -1 -1248 848 -1 -849 849 6 -850 849 -1 -869 849 -1 -1249 849 -1 -850 850 6 -851 850 -1 -870 850 -1 -1250 850 -1 -851 851 6 -852 851 -1 -871 851 -1 -1251 851 -1 -852 852 6 -853 852 -1 -872 852 -1 -1252 852 -1 -853 853 6 -854 853 -1 -873 853 -1 -1253 853 -1 -854 854 6 -855 854 -1 -874 854 -1 -1254 854 -1 -855 855 6 -856 855 -1 -875 855 -1 -1255 855 -1 -856 856 6 -857 856 -1 -876 856 -1 -1256 856 -1 -857 857 6 -858 857 -1 -877 857 -1 -1257 857 -1 -858 858 6 -859 858 -1 -878 858 -1 -1258 858 -1 -859 859 6 -860 859 -1 -879 859 -1 -1259 859 -1 -860 860 6 -880 860 -1 -1260 860 -1 -861 861 6 -862 861 -1 -881 861 -1 -1261 861 -1 -862 862 6 -863 862 -1 -882 862 -1 -1262 862 -1 -863 863 6 -864 863 -1 -883 863 -1 -1263 863 -1 -864 864 6 -865 864 -1 -884 864 -1 -1264 864 -1 -865 865 6 -866 865 -1 -885 865 -1 -1265 865 -1 -866 866 6 -867 866 -1 -886 866 -1 -1266 866 -1 -867 867 6 -868 867 -1 -887 867 -1 -1267 867 -1 -868 868 6 -869 868 -1 -888 868 -1 -1268 868 -1 -869 869 6 -870 869 -1 -889 869 -1 -1269 869 -1 -870 870 6 -871 870 -1 -890 870 -1 -1270 870 -1 -871 871 6 -872 871 -1 -891 871 -1 -1271 871 -1 -872 872 6 -873 872 -1 -892 872 -1 -1272 872 -1 -873 873 6 -874 873 -1 -893 873 -1 -1273 873 -1 -874 874 6 -875 874 -1 -894 874 -1 -1274 874 -1 -875 875 6 -876 875 -1 -895 875 -1 -1275 875 -1 -876 876 6 -877 876 -1 -896 876 -1 -1276 876 -1 -877 877 6 -878 877 -1 -897 877 -1 -1277 877 -1 -878 878 6 -879 878 -1 -898 878 -1 -1278 878 -1 -879 879 6 -880 879 -1 -899 879 -1 -1279 879 -1 -880 880 6 -900 880 -1 -1280 880 -1 -881 881 6 -882 881 -1 -901 881 -1 -1281 881 -1 -882 882 6 -883 882 -1 -902 882 -1 -1282 882 -1 -883 883 6 -884 883 -1 -903 883 -1 -1283 883 -1 -884 884 6 -885 884 -1 -904 884 -1 -1284 884 -1 -885 885 6 -886 885 -1 -905 885 -1 -1285 885 -1 -886 886 6 -887 886 -1 -906 886 -1 -1286 886 -1 -887 887 6 -888 887 -1 -907 887 -1 -1287 887 -1 -888 888 6 -889 888 -1 -908 888 -1 -1288 888 -1 -889 889 6 -890 889 -1 -909 889 -1 -1289 889 -1 -890 890 6 -891 890 -1 -910 890 -1 -1290 890 -1 -891 891 6 -892 891 -1 -911 891 -1 -1291 891 -1 -892 892 6 -893 892 -1 -912 892 -1 -1292 892 -1 -893 893 6 -894 893 -1 -913 893 -1 -1293 893 -1 -894 894 6 -895 894 -1 -914 894 -1 -1294 894 -1 -895 895 6 -896 895 -1 -915 895 -1 -1295 895 -1 -896 896 6 -897 896 -1 -916 896 -1 -1296 896 -1 -897 897 6 -898 897 -1 -917 897 -1 -1297 897 -1 -898 898 6 -899 898 -1 -918 898 -1 -1298 898 -1 -899 899 6 -900 899 -1 -919 899 -1 -1299 899 -1 -900 900 6 -920 900 -1 -1300 900 -1 -901 901 6 -902 901 -1 -921 901 -1 -1301 901 -1 -902 902 6 -903 902 -1 -922 902 -1 -1302 902 -1 -903 903 6 -904 903 -1 -923 903 -1 -1303 903 -1 -904 904 6 -905 904 -1 -924 904 -1 -1304 904 -1 -905 905 6 -906 905 -1 -925 905 -1 -1305 905 -1 -906 906 6 -907 906 -1 -926 906 -1 -1306 906 -1 -907 907 6 -908 907 -1 -927 907 -1 -1307 907 -1 -908 908 6 -909 908 -1 -928 908 -1 -1308 908 -1 -909 909 6 -910 909 -1 -929 909 -1 -1309 909 -1 -910 910 6 -911 910 -1 -930 910 -1 -1310 910 -1 -911 911 6 -912 911 -1 -931 911 -1 -1311 911 -1 -912 912 6 -913 912 -1 -932 912 -1 -1312 912 -1 -913 913 6 -914 913 -1 -933 913 -1 -1313 913 -1 -914 914 6 -915 914 -1 -934 914 -1 -1314 914 -1 -915 915 6 -916 915 -1 -935 915 -1 -1315 915 -1 -916 916 6 -917 916 -1 -936 916 -1 -1316 916 -1 -917 917 6 -918 917 -1 -937 917 -1 -1317 917 -1 -918 918 6 -919 918 -1 -938 918 -1 -1318 918 -1 -919 919 6 -920 919 -1 -939 919 -1 -1319 919 -1 -920 920 6 -940 920 -1 -1320 920 -1 -921 921 6 -922 921 -1 -941 921 -1 -1321 921 -1 -922 922 6 -923 922 -1 -942 922 -1 -1322 922 -1 -923 923 6 -924 923 -1 -943 923 -1 -1323 923 -1 -924 924 6 -925 924 -1 -944 924 -1 -1324 924 -1 -925 925 6 -926 925 -1 -945 925 -1 -1325 925 -1 -926 926 6 -927 926 -1 -946 926 -1 -1326 926 -1 -927 927 6 -928 927 -1 -947 927 -1 -1327 927 -1 -928 928 6 -929 928 -1 -948 928 -1 -1328 928 -1 -929 929 6 -930 929 -1 -949 929 -1 -1329 929 -1 -930 930 6 -931 930 -1 -950 930 -1 -1330 930 -1 -931 931 6 -932 931 -1 -951 931 -1 -1331 931 -1 -932 932 6 -933 932 -1 -952 932 -1 -1332 932 -1 -933 933 6 -934 933 -1 -953 933 -1 -1333 933 -1 -934 934 6 -935 934 -1 -954 934 -1 -1334 934 -1 -935 935 6 -936 935 -1 -955 935 -1 -1335 935 -1 -936 936 6 -937 936 -1 -956 936 -1 -1336 936 -1 -937 937 6 -938 937 -1 -957 937 -1 -1337 937 -1 -938 938 6 -939 938 -1 -958 938 -1 -1338 938 -1 -939 939 6 -940 939 -1 -959 939 -1 -1339 939 -1 -940 940 6 -960 940 -1 -1340 940 -1 -941 941 6 -942 941 -1 -961 941 -1 -1341 941 -1 -942 942 6 -943 942 -1 -962 942 -1 -1342 942 -1 -943 943 6 -944 943 -1 -963 943 -1 -1343 943 -1 -944 944 6 -945 944 -1 -964 944 -1 -1344 944 -1 -945 945 6 -946 945 -1 -965 945 -1 -1345 945 -1 -946 946 6 -947 946 -1 -966 946 -1 -1346 946 -1 -947 947 6 -948 947 -1 -967 947 -1 -1347 947 -1 -948 948 6 -949 948 -1 -968 948 -1 -1348 948 -1 -949 949 6 -950 949 -1 -969 949 -1 -1349 949 -1 -950 950 6 -951 950 -1 -970 950 -1 -1350 950 -1 -951 951 6 -952 951 -1 -971 951 -1 -1351 951 -1 -952 952 6 -953 952 -1 -972 952 -1 -1352 952 -1 -953 953 6 -954 953 -1 -973 953 -1 -1353 953 -1 -954 954 6 -955 954 -1 -974 954 -1 -1354 954 -1 -955 955 6 -956 955 -1 -975 955 -1 -1355 955 -1 -956 956 6 -957 956 -1 -976 956 -1 -1356 956 -1 -957 957 6 -958 957 -1 -977 957 -1 -1357 957 -1 -958 958 6 -959 958 -1 -978 958 -1 -1358 958 -1 -959 959 6 -960 959 -1 -979 959 -1 -1359 959 -1 -960 960 6 -980 960 -1 -1360 960 -1 -961 961 6 -962 961 -1 -981 961 -1 -1361 961 -1 -962 962 6 -963 962 -1 -982 962 -1 -1362 962 -1 -963 963 6 -964 963 -1 -983 963 -1 -1363 963 -1 -964 964 6 -965 964 -1 -984 964 -1 -1364 964 -1 -965 965 6 -966 965 -1 -985 965 -1 -1365 965 -1 -966 966 6 -967 966 -1 -986 966 -1 -1366 966 -1 -967 967 6 -968 967 -1 -987 967 -1 -1367 967 -1 -968 968 6 -969 968 -1 -988 968 -1 -1368 968 -1 -969 969 6 -970 969 -1 -989 969 -1 -1369 969 -1 -970 970 6 -971 970 -1 -990 970 -1 -1370 970 -1 -971 971 6 -972 971 -1 -991 971 -1 -1371 971 -1 -972 972 6 -973 972 -1 -992 972 -1 -1372 972 -1 -973 973 6 -974 973 -1 -993 973 -1 -1373 973 -1 -974 974 6 -975 974 -1 -994 974 -1 -1374 974 -1 -975 975 6 -976 975 -1 -995 975 -1 -1375 975 -1 -976 976 6 -977 976 -1 -996 976 -1 -1376 976 -1 -977 977 6 -978 977 -1 -997 977 -1 -1377 977 -1 -978 978 6 -979 978 -1 -998 978 -1 -1378 978 -1 -979 979 6 -980 979 -1 -999 979 -1 -1379 979 -1 -980 980 6 -1000 980 -1 -1380 980 -1 -981 981 6 -982 981 -1 -1001 981 -1 -1381 981 -1 -982 982 6 -983 982 -1 -1002 982 -1 -1382 982 -1 -983 983 6 -984 983 -1 -1003 983 -1 -1383 983 -1 -984 984 6 -985 984 -1 -1004 984 -1 -1384 984 -1 -985 985 6 -986 985 -1 -1005 985 -1 -1385 985 -1 -986 986 6 -987 986 -1 -1006 986 -1 -1386 986 -1 -987 987 6 -988 987 -1 -1007 987 -1 -1387 987 -1 -988 988 6 -989 988 -1 -1008 988 -1 -1388 988 -1 -989 989 6 -990 989 -1 -1009 989 -1 -1389 989 -1 -990 990 6 -991 990 -1 -1010 990 -1 -1390 990 -1 -991 991 6 -992 991 -1 -1011 991 -1 -1391 991 -1 -992 992 6 -993 992 -1 -1012 992 -1 -1392 992 -1 -993 993 6 -994 993 -1 -1013 993 -1 -1393 993 -1 -994 994 6 -995 994 -1 -1014 994 -1 -1394 994 -1 -995 995 6 -996 995 -1 -1015 995 -1 -1395 995 -1 -996 996 6 -997 996 -1 -1016 996 -1 -1396 996 -1 -997 997 6 -998 997 -1 -1017 997 -1 -1397 997 -1 -998 998 6 -999 998 -1 -1018 998 -1 -1398 998 -1 -999 999 6 -1000 999 -1 -1019 999 -1 -1399 999 -1 -1000 1000 6 -1020 1000 -1 -1400 1000 -1 -1001 1001 6 -1002 1001 -1 -1021 1001 -1 -1401 1001 -1 -1002 1002 6 -1003 1002 -1 -1022 1002 -1 -1402 1002 -1 -1003 1003 6 -1004 1003 -1 -1023 1003 -1 -1403 1003 -1 -1004 1004 6 -1005 1004 -1 -1024 1004 -1 -1404 1004 -1 -1005 1005 6 -1006 1005 -1 -1025 1005 -1 -1405 1005 -1 -1006 1006 6 -1007 1006 -1 -1026 1006 -1 -1406 1006 -1 -1007 1007 6 -1008 1007 -1 -1027 1007 -1 -1407 1007 -1 -1008 1008 6 -1009 1008 -1 -1028 1008 -1 -1408 1008 -1 -1009 1009 6 -1010 1009 -1 -1029 1009 -1 -1409 1009 -1 -1010 1010 6 -1011 1010 -1 -1030 1010 -1 -1410 1010 -1 -1011 1011 6 -1012 1011 -1 -1031 1011 -1 -1411 1011 -1 -1012 1012 6 -1013 1012 -1 -1032 1012 -1 -1412 1012 -1 -1013 1013 6 -1014 1013 -1 -1033 1013 -1 -1413 1013 -1 -1014 1014 6 -1015 1014 -1 -1034 1014 -1 -1414 1014 -1 -1015 1015 6 -1016 1015 -1 -1035 1015 -1 -1415 1015 -1 -1016 1016 6 -1017 1016 -1 -1036 1016 -1 -1416 1016 -1 -1017 1017 6 -1018 1017 -1 -1037 1017 -1 -1417 1017 -1 -1018 1018 6 -1019 1018 -1 -1038 1018 -1 -1418 1018 -1 -1019 1019 6 -1020 1019 -1 -1039 1019 -1 -1419 1019 -1 -1020 1020 6 -1040 1020 -1 -1420 1020 -1 -1021 1021 6 -1022 1021 -1 -1041 1021 -1 -1421 1021 -1 -1022 1022 6 -1023 1022 -1 -1042 1022 -1 -1422 1022 -1 -1023 1023 6 -1024 1023 -1 -1043 1023 -1 -1423 1023 -1 -1024 1024 6 -1025 1024 -1 -1044 1024 -1 -1424 1024 -1 -1025 1025 6 -1026 1025 -1 -1045 1025 -1 -1425 1025 -1 -1026 1026 6 -1027 1026 -1 -1046 1026 -1 -1426 1026 -1 -1027 1027 6 -1028 1027 -1 -1047 1027 -1 -1427 1027 -1 -1028 1028 6 -1029 1028 -1 -1048 1028 -1 -1428 1028 -1 -1029 1029 6 -1030 1029 -1 -1049 1029 -1 -1429 1029 -1 -1030 1030 6 -1031 1030 -1 -1050 1030 -1 -1430 1030 -1 -1031 1031 6 -1032 1031 -1 -1051 1031 -1 -1431 1031 -1 -1032 1032 6 -1033 1032 -1 -1052 1032 -1 -1432 1032 -1 -1033 1033 6 -1034 1033 -1 -1053 1033 -1 -1433 1033 -1 -1034 1034 6 -1035 1034 -1 -1054 1034 -1 -1434 1034 -1 -1035 1035 6 -1036 1035 -1 -1055 1035 -1 -1435 1035 -1 -1036 1036 6 -1037 1036 -1 -1056 1036 -1 -1436 1036 -1 -1037 1037 6 -1038 1037 -1 -1057 1037 -1 -1437 1037 -1 -1038 1038 6 -1039 1038 -1 -1058 1038 -1 -1438 1038 -1 -1039 1039 6 -1040 1039 -1 -1059 1039 -1 -1439 1039 -1 -1040 1040 6 -1060 1040 -1 -1440 1040 -1 -1041 1041 6 -1042 1041 -1 -1061 1041 -1 -1441 1041 -1 -1042 1042 6 -1043 1042 -1 -1062 1042 -1 -1442 1042 -1 -1043 1043 6 -1044 1043 -1 -1063 1043 -1 -1443 1043 -1 -1044 1044 6 -1045 1044 -1 -1064 1044 -1 -1444 1044 -1 -1045 1045 6 -1046 1045 -1 -1065 1045 -1 -1445 1045 -1 -1046 1046 6 -1047 1046 -1 -1066 1046 -1 -1446 1046 -1 -1047 1047 6 -1048 1047 -1 -1067 1047 -1 -1447 1047 -1 -1048 1048 6 -1049 1048 -1 -1068 1048 -1 -1448 1048 -1 -1049 1049 6 -1050 1049 -1 -1069 1049 -1 -1449 1049 -1 -1050 1050 6 -1051 1050 -1 -1070 1050 -1 -1450 1050 -1 -1051 1051 6 -1052 1051 -1 -1071 1051 -1 -1451 1051 -1 -1052 1052 6 -1053 1052 -1 -1072 1052 -1 -1452 1052 -1 -1053 1053 6 -1054 1053 -1 -1073 1053 -1 -1453 1053 -1 -1054 1054 6 -1055 1054 -1 -1074 1054 -1 -1454 1054 -1 -1055 1055 6 -1056 1055 -1 -1075 1055 -1 -1455 1055 -1 -1056 1056 6 -1057 1056 -1 -1076 1056 -1 -1456 1056 -1 -1057 1057 6 -1058 1057 -1 -1077 1057 -1 -1457 1057 -1 -1058 1058 6 -1059 1058 -1 -1078 1058 -1 -1458 1058 -1 -1059 1059 6 -1060 1059 -1 -1079 1059 -1 -1459 1059 -1 -1060 1060 6 -1080 1060 -1 -1460 1060 -1 -1061 1061 6 -1062 1061 -1 -1081 1061 -1 -1461 1061 -1 -1062 1062 6 -1063 1062 -1 -1082 1062 -1 -1462 1062 -1 -1063 1063 6 -1064 1063 -1 -1083 1063 -1 -1463 1063 -1 -1064 1064 6 -1065 1064 -1 -1084 1064 -1 -1464 1064 -1 -1065 1065 6 -1066 1065 -1 -1085 1065 -1 -1465 1065 -1 -1066 1066 6 -1067 1066 -1 -1086 1066 -1 -1466 1066 -1 -1067 1067 6 -1068 1067 -1 -1087 1067 -1 -1467 1067 -1 -1068 1068 6 -1069 1068 -1 -1088 1068 -1 -1468 1068 -1 -1069 1069 6 -1070 1069 -1 -1089 1069 -1 -1469 1069 -1 -1070 1070 6 -1071 1070 -1 -1090 1070 -1 -1470 1070 -1 -1071 1071 6 -1072 1071 -1 -1091 1071 -1 -1471 1071 -1 -1072 1072 6 -1073 1072 -1 -1092 1072 -1 -1472 1072 -1 -1073 1073 6 -1074 1073 -1 -1093 1073 -1 -1473 1073 -1 -1074 1074 6 -1075 1074 -1 -1094 1074 -1 -1474 1074 -1 -1075 1075 6 -1076 1075 -1 -1095 1075 -1 -1475 1075 -1 -1076 1076 6 -1077 1076 -1 -1096 1076 -1 -1476 1076 -1 -1077 1077 6 -1078 1077 -1 -1097 1077 -1 -1477 1077 -1 -1078 1078 6 -1079 1078 -1 -1098 1078 -1 -1478 1078 -1 -1079 1079 6 -1080 1079 -1 -1099 1079 -1 -1479 1079 -1 -1080 1080 6 -1100 1080 -1 -1480 1080 -1 -1081 1081 6 -1082 1081 -1 -1101 1081 -1 -1481 1081 -1 -1082 1082 6 -1083 1082 -1 -1102 1082 -1 -1482 1082 -1 -1083 1083 6 -1084 1083 -1 -1103 1083 -1 -1483 1083 -1 -1084 1084 6 -1085 1084 -1 -1104 1084 -1 -1484 1084 -1 -1085 1085 6 -1086 1085 -1 -1105 1085 -1 -1485 1085 -1 -1086 1086 6 -1087 1086 -1 -1106 1086 -1 -1486 1086 -1 -1087 1087 6 -1088 1087 -1 -1107 1087 -1 -1487 1087 -1 -1088 1088 6 -1089 1088 -1 -1108 1088 -1 -1488 1088 -1 -1089 1089 6 -1090 1089 -1 -1109 1089 -1 -1489 1089 -1 -1090 1090 6 -1091 1090 -1 -1110 1090 -1 -1490 1090 -1 -1091 1091 6 -1092 1091 -1 -1111 1091 -1 -1491 1091 -1 -1092 1092 6 -1093 1092 -1 -1112 1092 -1 -1492 1092 -1 -1093 1093 6 -1094 1093 -1 -1113 1093 -1 -1493 1093 -1 -1094 1094 6 -1095 1094 -1 -1114 1094 -1 -1494 1094 -1 -1095 1095 6 -1096 1095 -1 -1115 1095 -1 -1495 1095 -1 -1096 1096 6 -1097 1096 -1 -1116 1096 -1 -1496 1096 -1 -1097 1097 6 -1098 1097 -1 -1117 1097 -1 -1497 1097 -1 -1098 1098 6 -1099 1098 -1 -1118 1098 -1 -1498 1098 -1 -1099 1099 6 -1100 1099 -1 -1119 1099 -1 -1499 1099 -1 -1100 1100 6 -1120 1100 -1 -1500 1100 -1 -1101 1101 6 -1102 1101 -1 -1121 1101 -1 -1501 1101 -1 -1102 1102 6 -1103 1102 -1 -1122 1102 -1 -1502 1102 -1 -1103 1103 6 -1104 1103 -1 -1123 1103 -1 -1503 1103 -1 -1104 1104 6 -1105 1104 -1 -1124 1104 -1 -1504 1104 -1 -1105 1105 6 -1106 1105 -1 -1125 1105 -1 -1505 1105 -1 -1106 1106 6 -1107 1106 -1 -1126 1106 -1 -1506 1106 -1 -1107 1107 6 -1108 1107 -1 -1127 1107 -1 -1507 1107 -1 -1108 1108 6 -1109 1108 -1 -1128 1108 -1 -1508 1108 -1 -1109 1109 6 -1110 1109 -1 -1129 1109 -1 -1509 1109 -1 -1110 1110 6 -1111 1110 -1 -1130 1110 -1 -1510 1110 -1 -1111 1111 6 -1112 1111 -1 -1131 1111 -1 -1511 1111 -1 -1112 1112 6 -1113 1112 -1 -1132 1112 -1 -1512 1112 -1 -1113 1113 6 -1114 1113 -1 -1133 1113 -1 -1513 1113 -1 -1114 1114 6 -1115 1114 -1 -1134 1114 -1 -1514 1114 -1 -1115 1115 6 -1116 1115 -1 -1135 1115 -1 -1515 1115 -1 -1116 1116 6 -1117 1116 -1 -1136 1116 -1 -1516 1116 -1 -1117 1117 6 -1118 1117 -1 -1137 1117 -1 -1517 1117 -1 -1118 1118 6 -1119 1118 -1 -1138 1118 -1 -1518 1118 -1 -1119 1119 6 -1120 1119 -1 -1139 1119 -1 -1519 1119 -1 -1120 1120 6 -1140 1120 -1 -1520 1120 -1 -1121 1121 6 -1122 1121 -1 -1141 1121 -1 -1521 1121 -1 -1122 1122 6 -1123 1122 -1 -1142 1122 -1 -1522 1122 -1 -1123 1123 6 -1124 1123 -1 -1143 1123 -1 -1523 1123 -1 -1124 1124 6 -1125 1124 -1 -1144 1124 -1 -1524 1124 -1 -1125 1125 6 -1126 1125 -1 -1145 1125 -1 -1525 1125 -1 -1126 1126 6 -1127 1126 -1 -1146 1126 -1 -1526 1126 -1 -1127 1127 6 -1128 1127 -1 -1147 1127 -1 -1527 1127 -1 -1128 1128 6 -1129 1128 -1 -1148 1128 -1 -1528 1128 -1 -1129 1129 6 -1130 1129 -1 -1149 1129 -1 -1529 1129 -1 -1130 1130 6 -1131 1130 -1 -1150 1130 -1 -1530 1130 -1 -1131 1131 6 -1132 1131 -1 -1151 1131 -1 -1531 1131 -1 -1132 1132 6 -1133 1132 -1 -1152 1132 -1 -1532 1132 -1 -1133 1133 6 -1134 1133 -1 -1153 1133 -1 -1533 1133 -1 -1134 1134 6 -1135 1134 -1 -1154 1134 -1 -1534 1134 -1 -1135 1135 6 -1136 1135 -1 -1155 1135 -1 -1535 1135 -1 -1136 1136 6 -1137 1136 -1 -1156 1136 -1 -1536 1136 -1 -1137 1137 6 -1138 1137 -1 -1157 1137 -1 -1537 1137 -1 -1138 1138 6 -1139 1138 -1 -1158 1138 -1 -1538 1138 -1 -1139 1139 6 -1140 1139 -1 -1159 1139 -1 -1539 1139 -1 -1140 1140 6 -1160 1140 -1 -1540 1140 -1 -1141 1141 6 -1142 1141 -1 -1161 1141 -1 -1541 1141 -1 -1142 1142 6 -1143 1142 -1 -1162 1142 -1 -1542 1142 -1 -1143 1143 6 -1144 1143 -1 -1163 1143 -1 -1543 1143 -1 -1144 1144 6 -1145 1144 -1 -1164 1144 -1 -1544 1144 -1 -1145 1145 6 -1146 1145 -1 -1165 1145 -1 -1545 1145 -1 -1146 1146 6 -1147 1146 -1 -1166 1146 -1 -1546 1146 -1 -1147 1147 6 -1148 1147 -1 -1167 1147 -1 -1547 1147 -1 -1148 1148 6 -1149 1148 -1 -1168 1148 -1 -1548 1148 -1 -1149 1149 6 -1150 1149 -1 -1169 1149 -1 -1549 1149 -1 -1150 1150 6 -1151 1150 -1 -1170 1150 -1 -1550 1150 -1 -1151 1151 6 -1152 1151 -1 -1171 1151 -1 -1551 1151 -1 -1152 1152 6 -1153 1152 -1 -1172 1152 -1 -1552 1152 -1 -1153 1153 6 -1154 1153 -1 -1173 1153 -1 -1553 1153 -1 -1154 1154 6 -1155 1154 -1 -1174 1154 -1 -1554 1154 -1 -1155 1155 6 -1156 1155 -1 -1175 1155 -1 -1555 1155 -1 -1156 1156 6 -1157 1156 -1 -1176 1156 -1 -1556 1156 -1 -1157 1157 6 -1158 1157 -1 -1177 1157 -1 -1557 1157 -1 -1158 1158 6 -1159 1158 -1 -1178 1158 -1 -1558 1158 -1 -1159 1159 6 -1160 1159 -1 -1179 1159 -1 -1559 1159 -1 -1160 1160 6 -1180 1160 -1 -1560 1160 -1 -1161 1161 6 -1162 1161 -1 -1181 1161 -1 -1561 1161 -1 -1162 1162 6 -1163 1162 -1 -1182 1162 -1 -1562 1162 -1 -1163 1163 6 -1164 1163 -1 -1183 1163 -1 -1563 1163 -1 -1164 1164 6 -1165 1164 -1 -1184 1164 -1 -1564 1164 -1 -1165 1165 6 -1166 1165 -1 -1185 1165 -1 -1565 1165 -1 -1166 1166 6 -1167 1166 -1 -1186 1166 -1 -1566 1166 -1 -1167 1167 6 -1168 1167 -1 -1187 1167 -1 -1567 1167 -1 -1168 1168 6 -1169 1168 -1 -1188 1168 -1 -1568 1168 -1 -1169 1169 6 -1170 1169 -1 -1189 1169 -1 -1569 1169 -1 -1170 1170 6 -1171 1170 -1 -1190 1170 -1 -1570 1170 -1 -1171 1171 6 -1172 1171 -1 -1191 1171 -1 -1571 1171 -1 -1172 1172 6 -1173 1172 -1 -1192 1172 -1 -1572 1172 -1 -1173 1173 6 -1174 1173 -1 -1193 1173 -1 -1573 1173 -1 -1174 1174 6 -1175 1174 -1 -1194 1174 -1 -1574 1174 -1 -1175 1175 6 -1176 1175 -1 -1195 1175 -1 -1575 1175 -1 -1176 1176 6 -1177 1176 -1 -1196 1176 -1 -1576 1176 -1 -1177 1177 6 -1178 1177 -1 -1197 1177 -1 -1577 1177 -1 -1178 1178 6 -1179 1178 -1 -1198 1178 -1 -1578 1178 -1 -1179 1179 6 -1180 1179 -1 -1199 1179 -1 -1579 1179 -1 -1180 1180 6 -1200 1180 -1 -1580 1180 -1 -1181 1181 6 -1182 1181 -1 -1581 1181 -1 -1182 1182 6 -1183 1182 -1 -1582 1182 -1 -1183 1183 6 -1184 1183 -1 -1583 1183 -1 -1184 1184 6 -1185 1184 -1 -1584 1184 -1 -1185 1185 6 -1186 1185 -1 -1585 1185 -1 -1186 1186 6 -1187 1186 -1 -1586 1186 -1 -1187 1187 6 -1188 1187 -1 -1587 1187 -1 -1188 1188 6 -1189 1188 -1 -1588 1188 -1 -1189 1189 6 -1190 1189 -1 -1589 1189 -1 -1190 1190 6 -1191 1190 -1 -1590 1190 -1 -1191 1191 6 -1192 1191 -1 -1591 1191 -1 -1192 1192 6 -1193 1192 -1 -1592 1192 -1 -1193 1193 6 -1194 1193 -1 -1593 1193 -1 -1194 1194 6 -1195 1194 -1 -1594 1194 -1 -1195 1195 6 -1196 1195 -1 -1595 1195 -1 -1196 1196 6 -1197 1196 -1 -1596 1196 -1 -1197 1197 6 -1198 1197 -1 -1597 1197 -1 -1198 1198 6 -1199 1198 -1 -1598 1198 -1 -1199 1199 6 -1200 1199 -1 -1599 1199 -1 -1200 1200 6 -1600 1200 -1 -1201 1201 6 -1202 1201 -1 -1221 1201 -1 -1601 1201 -1 -1202 1202 6 -1203 1202 -1 -1222 1202 -1 -1602 1202 -1 -1203 1203 6 -1204 1203 -1 -1223 1203 -1 -1603 1203 -1 -1204 1204 6 -1205 1204 -1 -1224 1204 -1 -1604 1204 -1 -1205 1205 6 -1206 1205 -1 -1225 1205 -1 -1605 1205 -1 -1206 1206 6 -1207 1206 -1 -1226 1206 -1 -1606 1206 -1 -1207 1207 6 -1208 1207 -1 -1227 1207 -1 -1607 1207 -1 -1208 1208 6 -1209 1208 -1 -1228 1208 -1 -1608 1208 -1 -1209 1209 6 -1210 1209 -1 -1229 1209 -1 -1609 1209 -1 -1210 1210 6 -1211 1210 -1 -1230 1210 -1 -1610 1210 -1 -1211 1211 6 -1212 1211 -1 -1231 1211 -1 -1611 1211 -1 -1212 1212 6 -1213 1212 -1 -1232 1212 -1 -1612 1212 -1 -1213 1213 6 -1214 1213 -1 -1233 1213 -1 -1613 1213 -1 -1214 1214 6 -1215 1214 -1 -1234 1214 -1 -1614 1214 -1 -1215 1215 6 -1216 1215 -1 -1235 1215 -1 -1615 1215 -1 -1216 1216 6 -1217 1216 -1 -1236 1216 -1 -1616 1216 -1 -1217 1217 6 -1218 1217 -1 -1237 1217 -1 -1617 1217 -1 -1218 1218 6 -1219 1218 -1 -1238 1218 -1 -1618 1218 -1 -1219 1219 6 -1220 1219 -1 -1239 1219 -1 -1619 1219 -1 -1220 1220 6 -1240 1220 -1 -1620 1220 -1 -1221 1221 6 -1222 1221 -1 -1241 1221 -1 -1621 1221 -1 -1222 1222 6 -1223 1222 -1 -1242 1222 -1 -1622 1222 -1 -1223 1223 6 -1224 1223 -1 -1243 1223 -1 -1623 1223 -1 -1224 1224 6 -1225 1224 -1 -1244 1224 -1 -1624 1224 -1 -1225 1225 6 -1226 1225 -1 -1245 1225 -1 -1625 1225 -1 -1226 1226 6 -1227 1226 -1 -1246 1226 -1 -1626 1226 -1 -1227 1227 6 -1228 1227 -1 -1247 1227 -1 -1627 1227 -1 -1228 1228 6 -1229 1228 -1 -1248 1228 -1 -1628 1228 -1 -1229 1229 6 -1230 1229 -1 -1249 1229 -1 -1629 1229 -1 -1230 1230 6 -1231 1230 -1 -1250 1230 -1 -1630 1230 -1 -1231 1231 6 -1232 1231 -1 -1251 1231 -1 -1631 1231 -1 -1232 1232 6 -1233 1232 -1 -1252 1232 -1 -1632 1232 -1 -1233 1233 6 -1234 1233 -1 -1253 1233 -1 -1633 1233 -1 -1234 1234 6 -1235 1234 -1 -1254 1234 -1 -1634 1234 -1 -1235 1235 6 -1236 1235 -1 -1255 1235 -1 -1635 1235 -1 -1236 1236 6 -1237 1236 -1 -1256 1236 -1 -1636 1236 -1 -1237 1237 6 -1238 1237 -1 -1257 1237 -1 -1637 1237 -1 -1238 1238 6 -1239 1238 -1 -1258 1238 -1 -1638 1238 -1 -1239 1239 6 -1240 1239 -1 -1259 1239 -1 -1639 1239 -1 -1240 1240 6 -1260 1240 -1 -1640 1240 -1 -1241 1241 6 -1242 1241 -1 -1261 1241 -1 -1641 1241 -1 -1242 1242 6 -1243 1242 -1 -1262 1242 -1 -1642 1242 -1 -1243 1243 6 -1244 1243 -1 -1263 1243 -1 -1643 1243 -1 -1244 1244 6 -1245 1244 -1 -1264 1244 -1 -1644 1244 -1 -1245 1245 6 -1246 1245 -1 -1265 1245 -1 -1645 1245 -1 -1246 1246 6 -1247 1246 -1 -1266 1246 -1 -1646 1246 -1 -1247 1247 6 -1248 1247 -1 -1267 1247 -1 -1647 1247 -1 -1248 1248 6 -1249 1248 -1 -1268 1248 -1 -1648 1248 -1 -1249 1249 6 -1250 1249 -1 -1269 1249 -1 -1649 1249 -1 -1250 1250 6 -1251 1250 -1 -1270 1250 -1 -1650 1250 -1 -1251 1251 6 -1252 1251 -1 -1271 1251 -1 -1651 1251 -1 -1252 1252 6 -1253 1252 -1 -1272 1252 -1 -1652 1252 -1 -1253 1253 6 -1254 1253 -1 -1273 1253 -1 -1653 1253 -1 -1254 1254 6 -1255 1254 -1 -1274 1254 -1 -1654 1254 -1 -1255 1255 6 -1256 1255 -1 -1275 1255 -1 -1655 1255 -1 -1256 1256 6 -1257 1256 -1 -1276 1256 -1 -1656 1256 -1 -1257 1257 6 -1258 1257 -1 -1277 1257 -1 -1657 1257 -1 -1258 1258 6 -1259 1258 -1 -1278 1258 -1 -1658 1258 -1 -1259 1259 6 -1260 1259 -1 -1279 1259 -1 -1659 1259 -1 -1260 1260 6 -1280 1260 -1 -1660 1260 -1 -1261 1261 6 -1262 1261 -1 -1281 1261 -1 -1661 1261 -1 -1262 1262 6 -1263 1262 -1 -1282 1262 -1 -1662 1262 -1 -1263 1263 6 -1264 1263 -1 -1283 1263 -1 -1663 1263 -1 -1264 1264 6 -1265 1264 -1 -1284 1264 -1 -1664 1264 -1 -1265 1265 6 -1266 1265 -1 -1285 1265 -1 -1665 1265 -1 -1266 1266 6 -1267 1266 -1 -1286 1266 -1 -1666 1266 -1 -1267 1267 6 -1268 1267 -1 -1287 1267 -1 -1667 1267 -1 -1268 1268 6 -1269 1268 -1 -1288 1268 -1 -1668 1268 -1 -1269 1269 6 -1270 1269 -1 -1289 1269 -1 -1669 1269 -1 -1270 1270 6 -1271 1270 -1 -1290 1270 -1 -1670 1270 -1 -1271 1271 6 -1272 1271 -1 -1291 1271 -1 -1671 1271 -1 -1272 1272 6 -1273 1272 -1 -1292 1272 -1 -1672 1272 -1 -1273 1273 6 -1274 1273 -1 -1293 1273 -1 -1673 1273 -1 -1274 1274 6 -1275 1274 -1 -1294 1274 -1 -1674 1274 -1 -1275 1275 6 -1276 1275 -1 -1295 1275 -1 -1675 1275 -1 -1276 1276 6 -1277 1276 -1 -1296 1276 -1 -1676 1276 -1 -1277 1277 6 -1278 1277 -1 -1297 1277 -1 -1677 1277 -1 -1278 1278 6 -1279 1278 -1 -1298 1278 -1 -1678 1278 -1 -1279 1279 6 -1280 1279 -1 -1299 1279 -1 -1679 1279 -1 -1280 1280 6 -1300 1280 -1 -1680 1280 -1 -1281 1281 6 -1282 1281 -1 -1301 1281 -1 -1681 1281 -1 -1282 1282 6 -1283 1282 -1 -1302 1282 -1 -1682 1282 -1 -1283 1283 6 -1284 1283 -1 -1303 1283 -1 -1683 1283 -1 -1284 1284 6 -1285 1284 -1 -1304 1284 -1 -1684 1284 -1 -1285 1285 6 -1286 1285 -1 -1305 1285 -1 -1685 1285 -1 -1286 1286 6 -1287 1286 -1 -1306 1286 -1 -1686 1286 -1 -1287 1287 6 -1288 1287 -1 -1307 1287 -1 -1687 1287 -1 -1288 1288 6 -1289 1288 -1 -1308 1288 -1 -1688 1288 -1 -1289 1289 6 -1290 1289 -1 -1309 1289 -1 -1689 1289 -1 -1290 1290 6 -1291 1290 -1 -1310 1290 -1 -1690 1290 -1 -1291 1291 6 -1292 1291 -1 -1311 1291 -1 -1691 1291 -1 -1292 1292 6 -1293 1292 -1 -1312 1292 -1 -1692 1292 -1 -1293 1293 6 -1294 1293 -1 -1313 1293 -1 -1693 1293 -1 -1294 1294 6 -1295 1294 -1 -1314 1294 -1 -1694 1294 -1 -1295 1295 6 -1296 1295 -1 -1315 1295 -1 -1695 1295 -1 -1296 1296 6 -1297 1296 -1 -1316 1296 -1 -1696 1296 -1 -1297 1297 6 -1298 1297 -1 -1317 1297 -1 -1697 1297 -1 -1298 1298 6 -1299 1298 -1 -1318 1298 -1 -1698 1298 -1 -1299 1299 6 -1300 1299 -1 -1319 1299 -1 -1699 1299 -1 -1300 1300 6 -1320 1300 -1 -1700 1300 -1 -1301 1301 6 -1302 1301 -1 -1321 1301 -1 -1701 1301 -1 -1302 1302 6 -1303 1302 -1 -1322 1302 -1 -1702 1302 -1 -1303 1303 6 -1304 1303 -1 -1323 1303 -1 -1703 1303 -1 -1304 1304 6 -1305 1304 -1 -1324 1304 -1 -1704 1304 -1 -1305 1305 6 -1306 1305 -1 -1325 1305 -1 -1705 1305 -1 -1306 1306 6 -1307 1306 -1 -1326 1306 -1 -1706 1306 -1 -1307 1307 6 -1308 1307 -1 -1327 1307 -1 -1707 1307 -1 -1308 1308 6 -1309 1308 -1 -1328 1308 -1 -1708 1308 -1 -1309 1309 6 -1310 1309 -1 -1329 1309 -1 -1709 1309 -1 -1310 1310 6 -1311 1310 -1 -1330 1310 -1 -1710 1310 -1 -1311 1311 6 -1312 1311 -1 -1331 1311 -1 -1711 1311 -1 -1312 1312 6 -1313 1312 -1 -1332 1312 -1 -1712 1312 -1 -1313 1313 6 -1314 1313 -1 -1333 1313 -1 -1713 1313 -1 -1314 1314 6 -1315 1314 -1 -1334 1314 -1 -1714 1314 -1 -1315 1315 6 -1316 1315 -1 -1335 1315 -1 -1715 1315 -1 -1316 1316 6 -1317 1316 -1 -1336 1316 -1 -1716 1316 -1 -1317 1317 6 -1318 1317 -1 -1337 1317 -1 -1717 1317 -1 -1318 1318 6 -1319 1318 -1 -1338 1318 -1 -1718 1318 -1 -1319 1319 6 -1320 1319 -1 -1339 1319 -1 -1719 1319 -1 -1320 1320 6 -1340 1320 -1 -1720 1320 -1 -1321 1321 6 -1322 1321 -1 -1341 1321 -1 -1721 1321 -1 -1322 1322 6 -1323 1322 -1 -1342 1322 -1 -1722 1322 -1 -1323 1323 6 -1324 1323 -1 -1343 1323 -1 -1723 1323 -1 -1324 1324 6 -1325 1324 -1 -1344 1324 -1 -1724 1324 -1 -1325 1325 6 -1326 1325 -1 -1345 1325 -1 -1725 1325 -1 -1326 1326 6 -1327 1326 -1 -1346 1326 -1 -1726 1326 -1 -1327 1327 6 -1328 1327 -1 -1347 1327 -1 -1727 1327 -1 -1328 1328 6 -1329 1328 -1 -1348 1328 -1 -1728 1328 -1 -1329 1329 6 -1330 1329 -1 -1349 1329 -1 -1729 1329 -1 -1330 1330 6 -1331 1330 -1 -1350 1330 -1 -1730 1330 -1 -1331 1331 6 -1332 1331 -1 -1351 1331 -1 -1731 1331 -1 -1332 1332 6 -1333 1332 -1 -1352 1332 -1 -1732 1332 -1 -1333 1333 6 -1334 1333 -1 -1353 1333 -1 -1733 1333 -1 -1334 1334 6 -1335 1334 -1 -1354 1334 -1 -1734 1334 -1 -1335 1335 6 -1336 1335 -1 -1355 1335 -1 -1735 1335 -1 -1336 1336 6 -1337 1336 -1 -1356 1336 -1 -1736 1336 -1 -1337 1337 6 -1338 1337 -1 -1357 1337 -1 -1737 1337 -1 -1338 1338 6 -1339 1338 -1 -1358 1338 -1 -1738 1338 -1 -1339 1339 6 -1340 1339 -1 -1359 1339 -1 -1739 1339 -1 -1340 1340 6 -1360 1340 -1 -1740 1340 -1 -1341 1341 6 -1342 1341 -1 -1361 1341 -1 -1741 1341 -1 -1342 1342 6 -1343 1342 -1 -1362 1342 -1 -1742 1342 -1 -1343 1343 6 -1344 1343 -1 -1363 1343 -1 -1743 1343 -1 -1344 1344 6 -1345 1344 -1 -1364 1344 -1 -1744 1344 -1 -1345 1345 6 -1346 1345 -1 -1365 1345 -1 -1745 1345 -1 -1346 1346 6 -1347 1346 -1 -1366 1346 -1 -1746 1346 -1 -1347 1347 6 -1348 1347 -1 -1367 1347 -1 -1747 1347 -1 -1348 1348 6 -1349 1348 -1 -1368 1348 -1 -1748 1348 -1 -1349 1349 6 -1350 1349 -1 -1369 1349 -1 -1749 1349 -1 -1350 1350 6 -1351 1350 -1 -1370 1350 -1 -1750 1350 -1 -1351 1351 6 -1352 1351 -1 -1371 1351 -1 -1751 1351 -1 -1352 1352 6 -1353 1352 -1 -1372 1352 -1 -1752 1352 -1 -1353 1353 6 -1354 1353 -1 -1373 1353 -1 -1753 1353 -1 -1354 1354 6 -1355 1354 -1 -1374 1354 -1 -1754 1354 -1 -1355 1355 6 -1356 1355 -1 -1375 1355 -1 -1755 1355 -1 -1356 1356 6 -1357 1356 -1 -1376 1356 -1 -1756 1356 -1 -1357 1357 6 -1358 1357 -1 -1377 1357 -1 -1757 1357 -1 -1358 1358 6 -1359 1358 -1 -1378 1358 -1 -1758 1358 -1 -1359 1359 6 -1360 1359 -1 -1379 1359 -1 -1759 1359 -1 -1360 1360 6 -1380 1360 -1 -1760 1360 -1 -1361 1361 6 -1362 1361 -1 -1381 1361 -1 -1761 1361 -1 -1362 1362 6 -1363 1362 -1 -1382 1362 -1 -1762 1362 -1 -1363 1363 6 -1364 1363 -1 -1383 1363 -1 -1763 1363 -1 -1364 1364 6 -1365 1364 -1 -1384 1364 -1 -1764 1364 -1 -1365 1365 6 -1366 1365 -1 -1385 1365 -1 -1765 1365 -1 -1366 1366 6 -1367 1366 -1 -1386 1366 -1 -1766 1366 -1 -1367 1367 6 -1368 1367 -1 -1387 1367 -1 -1767 1367 -1 -1368 1368 6 -1369 1368 -1 -1388 1368 -1 -1768 1368 -1 -1369 1369 6 -1370 1369 -1 -1389 1369 -1 -1769 1369 -1 -1370 1370 6 -1371 1370 -1 -1390 1370 -1 -1770 1370 -1 -1371 1371 6 -1372 1371 -1 -1391 1371 -1 -1771 1371 -1 -1372 1372 6 -1373 1372 -1 -1392 1372 -1 -1772 1372 -1 -1373 1373 6 -1374 1373 -1 -1393 1373 -1 -1773 1373 -1 -1374 1374 6 -1375 1374 -1 -1394 1374 -1 -1774 1374 -1 -1375 1375 6 -1376 1375 -1 -1395 1375 -1 -1775 1375 -1 -1376 1376 6 -1377 1376 -1 -1396 1376 -1 -1776 1376 -1 -1377 1377 6 -1378 1377 -1 -1397 1377 -1 -1777 1377 -1 -1378 1378 6 -1379 1378 -1 -1398 1378 -1 -1778 1378 -1 -1379 1379 6 -1380 1379 -1 -1399 1379 -1 -1779 1379 -1 -1380 1380 6 -1400 1380 -1 -1780 1380 -1 -1381 1381 6 -1382 1381 -1 -1401 1381 -1 -1781 1381 -1 -1382 1382 6 -1383 1382 -1 -1402 1382 -1 -1782 1382 -1 -1383 1383 6 -1384 1383 -1 -1403 1383 -1 -1783 1383 -1 -1384 1384 6 -1385 1384 -1 -1404 1384 -1 -1784 1384 -1 -1385 1385 6 -1386 1385 -1 -1405 1385 -1 -1785 1385 -1 -1386 1386 6 -1387 1386 -1 -1406 1386 -1 -1786 1386 -1 -1387 1387 6 -1388 1387 -1 -1407 1387 -1 -1787 1387 -1 -1388 1388 6 -1389 1388 -1 -1408 1388 -1 -1788 1388 -1 -1389 1389 6 -1390 1389 -1 -1409 1389 -1 -1789 1389 -1 -1390 1390 6 -1391 1390 -1 -1410 1390 -1 -1790 1390 -1 -1391 1391 6 -1392 1391 -1 -1411 1391 -1 -1791 1391 -1 -1392 1392 6 -1393 1392 -1 -1412 1392 -1 -1792 1392 -1 -1393 1393 6 -1394 1393 -1 -1413 1393 -1 -1793 1393 -1 -1394 1394 6 -1395 1394 -1 -1414 1394 -1 -1794 1394 -1 -1395 1395 6 -1396 1395 -1 -1415 1395 -1 -1795 1395 -1 -1396 1396 6 -1397 1396 -1 -1416 1396 -1 -1796 1396 -1 -1397 1397 6 -1398 1397 -1 -1417 1397 -1 -1797 1397 -1 -1398 1398 6 -1399 1398 -1 -1418 1398 -1 -1798 1398 -1 -1399 1399 6 -1400 1399 -1 -1419 1399 -1 -1799 1399 -1 -1400 1400 6 -1420 1400 -1 -1800 1400 -1 -1401 1401 6 -1402 1401 -1 -1421 1401 -1 -1801 1401 -1 -1402 1402 6 -1403 1402 -1 -1422 1402 -1 -1802 1402 -1 -1403 1403 6 -1404 1403 -1 -1423 1403 -1 -1803 1403 -1 -1404 1404 6 -1405 1404 -1 -1424 1404 -1 -1804 1404 -1 -1405 1405 6 -1406 1405 -1 -1425 1405 -1 -1805 1405 -1 -1406 1406 6 -1407 1406 -1 -1426 1406 -1 -1806 1406 -1 -1407 1407 6 -1408 1407 -1 -1427 1407 -1 -1807 1407 -1 -1408 1408 6 -1409 1408 -1 -1428 1408 -1 -1808 1408 -1 -1409 1409 6 -1410 1409 -1 -1429 1409 -1 -1809 1409 -1 -1410 1410 6 -1411 1410 -1 -1430 1410 -1 -1810 1410 -1 -1411 1411 6 -1412 1411 -1 -1431 1411 -1 -1811 1411 -1 -1412 1412 6 -1413 1412 -1 -1432 1412 -1 -1812 1412 -1 -1413 1413 6 -1414 1413 -1 -1433 1413 -1 -1813 1413 -1 -1414 1414 6 -1415 1414 -1 -1434 1414 -1 -1814 1414 -1 -1415 1415 6 -1416 1415 -1 -1435 1415 -1 -1815 1415 -1 -1416 1416 6 -1417 1416 -1 -1436 1416 -1 -1816 1416 -1 -1417 1417 6 -1418 1417 -1 -1437 1417 -1 -1817 1417 -1 -1418 1418 6 -1419 1418 -1 -1438 1418 -1 -1818 1418 -1 -1419 1419 6 -1420 1419 -1 -1439 1419 -1 -1819 1419 -1 -1420 1420 6 -1440 1420 -1 -1820 1420 -1 -1421 1421 6 -1422 1421 -1 -1441 1421 -1 -1821 1421 -1 -1422 1422 6 -1423 1422 -1 -1442 1422 -1 -1822 1422 -1 -1423 1423 6 -1424 1423 -1 -1443 1423 -1 -1823 1423 -1 -1424 1424 6 -1425 1424 -1 -1444 1424 -1 -1824 1424 -1 -1425 1425 6 -1426 1425 -1 -1445 1425 -1 -1825 1425 -1 -1426 1426 6 -1427 1426 -1 -1446 1426 -1 -1826 1426 -1 -1427 1427 6 -1428 1427 -1 -1447 1427 -1 -1827 1427 -1 -1428 1428 6 -1429 1428 -1 -1448 1428 -1 -1828 1428 -1 -1429 1429 6 -1430 1429 -1 -1449 1429 -1 -1829 1429 -1 -1430 1430 6 -1431 1430 -1 -1450 1430 -1 -1830 1430 -1 -1431 1431 6 -1432 1431 -1 -1451 1431 -1 -1831 1431 -1 -1432 1432 6 -1433 1432 -1 -1452 1432 -1 -1832 1432 -1 -1433 1433 6 -1434 1433 -1 -1453 1433 -1 -1833 1433 -1 -1434 1434 6 -1435 1434 -1 -1454 1434 -1 -1834 1434 -1 -1435 1435 6 -1436 1435 -1 -1455 1435 -1 -1835 1435 -1 -1436 1436 6 -1437 1436 -1 -1456 1436 -1 -1836 1436 -1 -1437 1437 6 -1438 1437 -1 -1457 1437 -1 -1837 1437 -1 -1438 1438 6 -1439 1438 -1 -1458 1438 -1 -1838 1438 -1 -1439 1439 6 -1440 1439 -1 -1459 1439 -1 -1839 1439 -1 -1440 1440 6 -1460 1440 -1 -1840 1440 -1 -1441 1441 6 -1442 1441 -1 -1461 1441 -1 -1841 1441 -1 -1442 1442 6 -1443 1442 -1 -1462 1442 -1 -1842 1442 -1 -1443 1443 6 -1444 1443 -1 -1463 1443 -1 -1843 1443 -1 -1444 1444 6 -1445 1444 -1 -1464 1444 -1 -1844 1444 -1 -1445 1445 6 -1446 1445 -1 -1465 1445 -1 -1845 1445 -1 -1446 1446 6 -1447 1446 -1 -1466 1446 -1 -1846 1446 -1 -1447 1447 6 -1448 1447 -1 -1467 1447 -1 -1847 1447 -1 -1448 1448 6 -1449 1448 -1 -1468 1448 -1 -1848 1448 -1 -1449 1449 6 -1450 1449 -1 -1469 1449 -1 -1849 1449 -1 -1450 1450 6 -1451 1450 -1 -1470 1450 -1 -1850 1450 -1 -1451 1451 6 -1452 1451 -1 -1471 1451 -1 -1851 1451 -1 -1452 1452 6 -1453 1452 -1 -1472 1452 -1 -1852 1452 -1 -1453 1453 6 -1454 1453 -1 -1473 1453 -1 -1853 1453 -1 -1454 1454 6 -1455 1454 -1 -1474 1454 -1 -1854 1454 -1 -1455 1455 6 -1456 1455 -1 -1475 1455 -1 -1855 1455 -1 -1456 1456 6 -1457 1456 -1 -1476 1456 -1 -1856 1456 -1 -1457 1457 6 -1458 1457 -1 -1477 1457 -1 -1857 1457 -1 -1458 1458 6 -1459 1458 -1 -1478 1458 -1 -1858 1458 -1 -1459 1459 6 -1460 1459 -1 -1479 1459 -1 -1859 1459 -1 -1460 1460 6 -1480 1460 -1 -1860 1460 -1 -1461 1461 6 -1462 1461 -1 -1481 1461 -1 -1861 1461 -1 -1462 1462 6 -1463 1462 -1 -1482 1462 -1 -1862 1462 -1 -1463 1463 6 -1464 1463 -1 -1483 1463 -1 -1863 1463 -1 -1464 1464 6 -1465 1464 -1 -1484 1464 -1 -1864 1464 -1 -1465 1465 6 -1466 1465 -1 -1485 1465 -1 -1865 1465 -1 -1466 1466 6 -1467 1466 -1 -1486 1466 -1 -1866 1466 -1 -1467 1467 6 -1468 1467 -1 -1487 1467 -1 -1867 1467 -1 -1468 1468 6 -1469 1468 -1 -1488 1468 -1 -1868 1468 -1 -1469 1469 6 -1470 1469 -1 -1489 1469 -1 -1869 1469 -1 -1470 1470 6 -1471 1470 -1 -1490 1470 -1 -1870 1470 -1 -1471 1471 6 -1472 1471 -1 -1491 1471 -1 -1871 1471 -1 -1472 1472 6 -1473 1472 -1 -1492 1472 -1 -1872 1472 -1 -1473 1473 6 -1474 1473 -1 -1493 1473 -1 -1873 1473 -1 -1474 1474 6 -1475 1474 -1 -1494 1474 -1 -1874 1474 -1 -1475 1475 6 -1476 1475 -1 -1495 1475 -1 -1875 1475 -1 -1476 1476 6 -1477 1476 -1 -1496 1476 -1 -1876 1476 -1 -1477 1477 6 -1478 1477 -1 -1497 1477 -1 -1877 1477 -1 -1478 1478 6 -1479 1478 -1 -1498 1478 -1 -1878 1478 -1 -1479 1479 6 -1480 1479 -1 -1499 1479 -1 -1879 1479 -1 -1480 1480 6 -1500 1480 -1 -1880 1480 -1 -1481 1481 6 -1482 1481 -1 -1501 1481 -1 -1881 1481 -1 -1482 1482 6 -1483 1482 -1 -1502 1482 -1 -1882 1482 -1 -1483 1483 6 -1484 1483 -1 -1503 1483 -1 -1883 1483 -1 -1484 1484 6 -1485 1484 -1 -1504 1484 -1 -1884 1484 -1 -1485 1485 6 -1486 1485 -1 -1505 1485 -1 -1885 1485 -1 -1486 1486 6 -1487 1486 -1 -1506 1486 -1 -1886 1486 -1 -1487 1487 6 -1488 1487 -1 -1507 1487 -1 -1887 1487 -1 -1488 1488 6 -1489 1488 -1 -1508 1488 -1 -1888 1488 -1 -1489 1489 6 -1490 1489 -1 -1509 1489 -1 -1889 1489 -1 -1490 1490 6 -1491 1490 -1 -1510 1490 -1 -1890 1490 -1 -1491 1491 6 -1492 1491 -1 -1511 1491 -1 -1891 1491 -1 -1492 1492 6 -1493 1492 -1 -1512 1492 -1 -1892 1492 -1 -1493 1493 6 -1494 1493 -1 -1513 1493 -1 -1893 1493 -1 -1494 1494 6 -1495 1494 -1 -1514 1494 -1 -1894 1494 -1 -1495 1495 6 -1496 1495 -1 -1515 1495 -1 -1895 1495 -1 -1496 1496 6 -1497 1496 -1 -1516 1496 -1 -1896 1496 -1 -1497 1497 6 -1498 1497 -1 -1517 1497 -1 -1897 1497 -1 -1498 1498 6 -1499 1498 -1 -1518 1498 -1 -1898 1498 -1 -1499 1499 6 -1500 1499 -1 -1519 1499 -1 -1899 1499 -1 -1500 1500 6 -1520 1500 -1 -1900 1500 -1 -1501 1501 6 -1502 1501 -1 -1521 1501 -1 -1901 1501 -1 -1502 1502 6 -1503 1502 -1 -1522 1502 -1 -1902 1502 -1 -1503 1503 6 -1504 1503 -1 -1523 1503 -1 -1903 1503 -1 -1504 1504 6 -1505 1504 -1 -1524 1504 -1 -1904 1504 -1 -1505 1505 6 -1506 1505 -1 -1525 1505 -1 -1905 1505 -1 -1506 1506 6 -1507 1506 -1 -1526 1506 -1 -1906 1506 -1 -1507 1507 6 -1508 1507 -1 -1527 1507 -1 -1907 1507 -1 -1508 1508 6 -1509 1508 -1 -1528 1508 -1 -1908 1508 -1 -1509 1509 6 -1510 1509 -1 -1529 1509 -1 -1909 1509 -1 -1510 1510 6 -1511 1510 -1 -1530 1510 -1 -1910 1510 -1 -1511 1511 6 -1512 1511 -1 -1531 1511 -1 -1911 1511 -1 -1512 1512 6 -1513 1512 -1 -1532 1512 -1 -1912 1512 -1 -1513 1513 6 -1514 1513 -1 -1533 1513 -1 -1913 1513 -1 -1514 1514 6 -1515 1514 -1 -1534 1514 -1 -1914 1514 -1 -1515 1515 6 -1516 1515 -1 -1535 1515 -1 -1915 1515 -1 -1516 1516 6 -1517 1516 -1 -1536 1516 -1 -1916 1516 -1 -1517 1517 6 -1518 1517 -1 -1537 1517 -1 -1917 1517 -1 -1518 1518 6 -1519 1518 -1 -1538 1518 -1 -1918 1518 -1 -1519 1519 6 -1520 1519 -1 -1539 1519 -1 -1919 1519 -1 -1520 1520 6 -1540 1520 -1 -1920 1520 -1 -1521 1521 6 -1522 1521 -1 -1541 1521 -1 -1921 1521 -1 -1522 1522 6 -1523 1522 -1 -1542 1522 -1 -1922 1522 -1 -1523 1523 6 -1524 1523 -1 -1543 1523 -1 -1923 1523 -1 -1524 1524 6 -1525 1524 -1 -1544 1524 -1 -1924 1524 -1 -1525 1525 6 -1526 1525 -1 -1545 1525 -1 -1925 1525 -1 -1526 1526 6 -1527 1526 -1 -1546 1526 -1 -1926 1526 -1 -1527 1527 6 -1528 1527 -1 -1547 1527 -1 -1927 1527 -1 -1528 1528 6 -1529 1528 -1 -1548 1528 -1 -1928 1528 -1 -1529 1529 6 -1530 1529 -1 -1549 1529 -1 -1929 1529 -1 -1530 1530 6 -1531 1530 -1 -1550 1530 -1 -1930 1530 -1 -1531 1531 6 -1532 1531 -1 -1551 1531 -1 -1931 1531 -1 -1532 1532 6 -1533 1532 -1 -1552 1532 -1 -1932 1532 -1 -1533 1533 6 -1534 1533 -1 -1553 1533 -1 -1933 1533 -1 -1534 1534 6 -1535 1534 -1 -1554 1534 -1 -1934 1534 -1 -1535 1535 6 -1536 1535 -1 -1555 1535 -1 -1935 1535 -1 -1536 1536 6 -1537 1536 -1 -1556 1536 -1 -1936 1536 -1 -1537 1537 6 -1538 1537 -1 -1557 1537 -1 -1937 1537 -1 -1538 1538 6 -1539 1538 -1 -1558 1538 -1 -1938 1538 -1 -1539 1539 6 -1540 1539 -1 -1559 1539 -1 -1939 1539 -1 -1540 1540 6 -1560 1540 -1 -1940 1540 -1 -1541 1541 6 -1542 1541 -1 -1561 1541 -1 -1941 1541 -1 -1542 1542 6 -1543 1542 -1 -1562 1542 -1 -1942 1542 -1 -1543 1543 6 -1544 1543 -1 -1563 1543 -1 -1943 1543 -1 -1544 1544 6 -1545 1544 -1 -1564 1544 -1 -1944 1544 -1 -1545 1545 6 -1546 1545 -1 -1565 1545 -1 -1945 1545 -1 -1546 1546 6 -1547 1546 -1 -1566 1546 -1 -1946 1546 -1 -1547 1547 6 -1548 1547 -1 -1567 1547 -1 -1947 1547 -1 -1548 1548 6 -1549 1548 -1 -1568 1548 -1 -1948 1548 -1 -1549 1549 6 -1550 1549 -1 -1569 1549 -1 -1949 1549 -1 -1550 1550 6 -1551 1550 -1 -1570 1550 -1 -1950 1550 -1 -1551 1551 6 -1552 1551 -1 -1571 1551 -1 -1951 1551 -1 -1552 1552 6 -1553 1552 -1 -1572 1552 -1 -1952 1552 -1 -1553 1553 6 -1554 1553 -1 -1573 1553 -1 -1953 1553 -1 -1554 1554 6 -1555 1554 -1 -1574 1554 -1 -1954 1554 -1 -1555 1555 6 -1556 1555 -1 -1575 1555 -1 -1955 1555 -1 -1556 1556 6 -1557 1556 -1 -1576 1556 -1 -1956 1556 -1 -1557 1557 6 -1558 1557 -1 -1577 1557 -1 -1957 1557 -1 -1558 1558 6 -1559 1558 -1 -1578 1558 -1 -1958 1558 -1 -1559 1559 6 -1560 1559 -1 -1579 1559 -1 -1959 1559 -1 -1560 1560 6 -1580 1560 -1 -1960 1560 -1 -1561 1561 6 -1562 1561 -1 -1581 1561 -1 -1961 1561 -1 -1562 1562 6 -1563 1562 -1 -1582 1562 -1 -1962 1562 -1 -1563 1563 6 -1564 1563 -1 -1583 1563 -1 -1963 1563 -1 -1564 1564 6 -1565 1564 -1 -1584 1564 -1 -1964 1564 -1 -1565 1565 6 -1566 1565 -1 -1585 1565 -1 -1965 1565 -1 -1566 1566 6 -1567 1566 -1 -1586 1566 -1 -1966 1566 -1 -1567 1567 6 -1568 1567 -1 -1587 1567 -1 -1967 1567 -1 -1568 1568 6 -1569 1568 -1 -1588 1568 -1 -1968 1568 -1 -1569 1569 6 -1570 1569 -1 -1589 1569 -1 -1969 1569 -1 -1570 1570 6 -1571 1570 -1 -1590 1570 -1 -1970 1570 -1 -1571 1571 6 -1572 1571 -1 -1591 1571 -1 -1971 1571 -1 -1572 1572 6 -1573 1572 -1 -1592 1572 -1 -1972 1572 -1 -1573 1573 6 -1574 1573 -1 -1593 1573 -1 -1973 1573 -1 -1574 1574 6 -1575 1574 -1 -1594 1574 -1 -1974 1574 -1 -1575 1575 6 -1576 1575 -1 -1595 1575 -1 -1975 1575 -1 -1576 1576 6 -1577 1576 -1 -1596 1576 -1 -1976 1576 -1 -1577 1577 6 -1578 1577 -1 -1597 1577 -1 -1977 1577 -1 -1578 1578 6 -1579 1578 -1 -1598 1578 -1 -1978 1578 -1 -1579 1579 6 -1580 1579 -1 -1599 1579 -1 -1979 1579 -1 -1580 1580 6 -1600 1580 -1 -1980 1580 -1 -1581 1581 6 -1582 1581 -1 -1981 1581 -1 -1582 1582 6 -1583 1582 -1 -1982 1582 -1 -1583 1583 6 -1584 1583 -1 -1983 1583 -1 -1584 1584 6 -1585 1584 -1 -1984 1584 -1 -1585 1585 6 -1586 1585 -1 -1985 1585 -1 -1586 1586 6 -1587 1586 -1 -1986 1586 -1 -1587 1587 6 -1588 1587 -1 -1987 1587 -1 -1588 1588 6 -1589 1588 -1 -1988 1588 -1 -1589 1589 6 -1590 1589 -1 -1989 1589 -1 -1590 1590 6 -1591 1590 -1 -1990 1590 -1 -1591 1591 6 -1592 1591 -1 -1991 1591 -1 -1592 1592 6 -1593 1592 -1 -1992 1592 -1 -1593 1593 6 -1594 1593 -1 -1993 1593 -1 -1594 1594 6 -1595 1594 -1 -1994 1594 -1 -1595 1595 6 -1596 1595 -1 -1995 1595 -1 -1596 1596 6 -1597 1596 -1 -1996 1596 -1 -1597 1597 6 -1598 1597 -1 -1997 1597 -1 -1598 1598 6 -1599 1598 -1 -1998 1598 -1 -1599 1599 6 -1600 1599 -1 -1999 1599 -1 -1600 1600 6 -2000 1600 -1 -1601 1601 6 -1602 1601 -1 -1621 1601 -1 -2001 1601 -1 -1602 1602 6 -1603 1602 -1 -1622 1602 -1 -2002 1602 -1 -1603 1603 6 -1604 1603 -1 -1623 1603 -1 -2003 1603 -1 -1604 1604 6 -1605 1604 -1 -1624 1604 -1 -2004 1604 -1 -1605 1605 6 -1606 1605 -1 -1625 1605 -1 -2005 1605 -1 -1606 1606 6 -1607 1606 -1 -1626 1606 -1 -2006 1606 -1 -1607 1607 6 -1608 1607 -1 -1627 1607 -1 -2007 1607 -1 -1608 1608 6 -1609 1608 -1 -1628 1608 -1 -2008 1608 -1 -1609 1609 6 -1610 1609 -1 -1629 1609 -1 -2009 1609 -1 -1610 1610 6 -1611 1610 -1 -1630 1610 -1 -2010 1610 -1 -1611 1611 6 -1612 1611 -1 -1631 1611 -1 -2011 1611 -1 -1612 1612 6 -1613 1612 -1 -1632 1612 -1 -2012 1612 -1 -1613 1613 6 -1614 1613 -1 -1633 1613 -1 -2013 1613 -1 -1614 1614 6 -1615 1614 -1 -1634 1614 -1 -2014 1614 -1 -1615 1615 6 -1616 1615 -1 -1635 1615 -1 -2015 1615 -1 -1616 1616 6 -1617 1616 -1 -1636 1616 -1 -2016 1616 -1 -1617 1617 6 -1618 1617 -1 -1637 1617 -1 -2017 1617 -1 -1618 1618 6 -1619 1618 -1 -1638 1618 -1 -2018 1618 -1 -1619 1619 6 -1620 1619 -1 -1639 1619 -1 -2019 1619 -1 -1620 1620 6 -1640 1620 -1 -2020 1620 -1 -1621 1621 6 -1622 1621 -1 -1641 1621 -1 -2021 1621 -1 -1622 1622 6 -1623 1622 -1 -1642 1622 -1 -2022 1622 -1 -1623 1623 6 -1624 1623 -1 -1643 1623 -1 -2023 1623 -1 -1624 1624 6 -1625 1624 -1 -1644 1624 -1 -2024 1624 -1 -1625 1625 6 -1626 1625 -1 -1645 1625 -1 -2025 1625 -1 -1626 1626 6 -1627 1626 -1 -1646 1626 -1 -2026 1626 -1 -1627 1627 6 -1628 1627 -1 -1647 1627 -1 -2027 1627 -1 -1628 1628 6 -1629 1628 -1 -1648 1628 -1 -2028 1628 -1 -1629 1629 6 -1630 1629 -1 -1649 1629 -1 -2029 1629 -1 -1630 1630 6 -1631 1630 -1 -1650 1630 -1 -2030 1630 -1 -1631 1631 6 -1632 1631 -1 -1651 1631 -1 -2031 1631 -1 -1632 1632 6 -1633 1632 -1 -1652 1632 -1 -2032 1632 -1 -1633 1633 6 -1634 1633 -1 -1653 1633 -1 -2033 1633 -1 -1634 1634 6 -1635 1634 -1 -1654 1634 -1 -2034 1634 -1 -1635 1635 6 -1636 1635 -1 -1655 1635 -1 -2035 1635 -1 -1636 1636 6 -1637 1636 -1 -1656 1636 -1 -2036 1636 -1 -1637 1637 6 -1638 1637 -1 -1657 1637 -1 -2037 1637 -1 -1638 1638 6 -1639 1638 -1 -1658 1638 -1 -2038 1638 -1 -1639 1639 6 -1640 1639 -1 -1659 1639 -1 -2039 1639 -1 -1640 1640 6 -1660 1640 -1 -2040 1640 -1 -1641 1641 6 -1642 1641 -1 -1661 1641 -1 -2041 1641 -1 -1642 1642 6 -1643 1642 -1 -1662 1642 -1 -2042 1642 -1 -1643 1643 6 -1644 1643 -1 -1663 1643 -1 -2043 1643 -1 -1644 1644 6 -1645 1644 -1 -1664 1644 -1 -2044 1644 -1 -1645 1645 6 -1646 1645 -1 -1665 1645 -1 -2045 1645 -1 -1646 1646 6 -1647 1646 -1 -1666 1646 -1 -2046 1646 -1 -1647 1647 6 -1648 1647 -1 -1667 1647 -1 -2047 1647 -1 -1648 1648 6 -1649 1648 -1 -1668 1648 -1 -2048 1648 -1 -1649 1649 6 -1650 1649 -1 -1669 1649 -1 -2049 1649 -1 -1650 1650 6 -1651 1650 -1 -1670 1650 -1 -2050 1650 -1 -1651 1651 6 -1652 1651 -1 -1671 1651 -1 -2051 1651 -1 -1652 1652 6 -1653 1652 -1 -1672 1652 -1 -2052 1652 -1 -1653 1653 6 -1654 1653 -1 -1673 1653 -1 -2053 1653 -1 -1654 1654 6 -1655 1654 -1 -1674 1654 -1 -2054 1654 -1 -1655 1655 6 -1656 1655 -1 -1675 1655 -1 -2055 1655 -1 -1656 1656 6 -1657 1656 -1 -1676 1656 -1 -2056 1656 -1 -1657 1657 6 -1658 1657 -1 -1677 1657 -1 -2057 1657 -1 -1658 1658 6 -1659 1658 -1 -1678 1658 -1 -2058 1658 -1 -1659 1659 6 -1660 1659 -1 -1679 1659 -1 -2059 1659 -1 -1660 1660 6 -1680 1660 -1 -2060 1660 -1 -1661 1661 6 -1662 1661 -1 -1681 1661 -1 -2061 1661 -1 -1662 1662 6 -1663 1662 -1 -1682 1662 -1 -2062 1662 -1 -1663 1663 6 -1664 1663 -1 -1683 1663 -1 -2063 1663 -1 -1664 1664 6 -1665 1664 -1 -1684 1664 -1 -2064 1664 -1 -1665 1665 6 -1666 1665 -1 -1685 1665 -1 -2065 1665 -1 -1666 1666 6 -1667 1666 -1 -1686 1666 -1 -2066 1666 -1 -1667 1667 6 -1668 1667 -1 -1687 1667 -1 -2067 1667 -1 -1668 1668 6 -1669 1668 -1 -1688 1668 -1 -2068 1668 -1 -1669 1669 6 -1670 1669 -1 -1689 1669 -1 -2069 1669 -1 -1670 1670 6 -1671 1670 -1 -1690 1670 -1 -2070 1670 -1 -1671 1671 6 -1672 1671 -1 -1691 1671 -1 -2071 1671 -1 -1672 1672 6 -1673 1672 -1 -1692 1672 -1 -2072 1672 -1 -1673 1673 6 -1674 1673 -1 -1693 1673 -1 -2073 1673 -1 -1674 1674 6 -1675 1674 -1 -1694 1674 -1 -2074 1674 -1 -1675 1675 6 -1676 1675 -1 -1695 1675 -1 -2075 1675 -1 -1676 1676 6 -1677 1676 -1 -1696 1676 -1 -2076 1676 -1 -1677 1677 6 -1678 1677 -1 -1697 1677 -1 -2077 1677 -1 -1678 1678 6 -1679 1678 -1 -1698 1678 -1 -2078 1678 -1 -1679 1679 6 -1680 1679 -1 -1699 1679 -1 -2079 1679 -1 -1680 1680 6 -1700 1680 -1 -2080 1680 -1 -1681 1681 6 -1682 1681 -1 -1701 1681 -1 -2081 1681 -1 -1682 1682 6 -1683 1682 -1 -1702 1682 -1 -2082 1682 -1 -1683 1683 6 -1684 1683 -1 -1703 1683 -1 -2083 1683 -1 -1684 1684 6 -1685 1684 -1 -1704 1684 -1 -2084 1684 -1 -1685 1685 6 -1686 1685 -1 -1705 1685 -1 -2085 1685 -1 -1686 1686 6 -1687 1686 -1 -1706 1686 -1 -2086 1686 -1 -1687 1687 6 -1688 1687 -1 -1707 1687 -1 -2087 1687 -1 -1688 1688 6 -1689 1688 -1 -1708 1688 -1 -2088 1688 -1 -1689 1689 6 -1690 1689 -1 -1709 1689 -1 -2089 1689 -1 -1690 1690 6 -1691 1690 -1 -1710 1690 -1 -2090 1690 -1 -1691 1691 6 -1692 1691 -1 -1711 1691 -1 -2091 1691 -1 -1692 1692 6 -1693 1692 -1 -1712 1692 -1 -2092 1692 -1 -1693 1693 6 -1694 1693 -1 -1713 1693 -1 -2093 1693 -1 -1694 1694 6 -1695 1694 -1 -1714 1694 -1 -2094 1694 -1 -1695 1695 6 -1696 1695 -1 -1715 1695 -1 -2095 1695 -1 -1696 1696 6 -1697 1696 -1 -1716 1696 -1 -2096 1696 -1 -1697 1697 6 -1698 1697 -1 -1717 1697 -1 -2097 1697 -1 -1698 1698 6 -1699 1698 -1 -1718 1698 -1 -2098 1698 -1 -1699 1699 6 -1700 1699 -1 -1719 1699 -1 -2099 1699 -1 -1700 1700 6 -1720 1700 -1 -2100 1700 -1 -1701 1701 6 -1702 1701 -1 -1721 1701 -1 -2101 1701 -1 -1702 1702 6 -1703 1702 -1 -1722 1702 -1 -2102 1702 -1 -1703 1703 6 -1704 1703 -1 -1723 1703 -1 -2103 1703 -1 -1704 1704 6 -1705 1704 -1 -1724 1704 -1 -2104 1704 -1 -1705 1705 6 -1706 1705 -1 -1725 1705 -1 -2105 1705 -1 -1706 1706 6 -1707 1706 -1 -1726 1706 -1 -2106 1706 -1 -1707 1707 6 -1708 1707 -1 -1727 1707 -1 -2107 1707 -1 -1708 1708 6 -1709 1708 -1 -1728 1708 -1 -2108 1708 -1 -1709 1709 6 -1710 1709 -1 -1729 1709 -1 -2109 1709 -1 -1710 1710 6 -1711 1710 -1 -1730 1710 -1 -2110 1710 -1 -1711 1711 6 -1712 1711 -1 -1731 1711 -1 -2111 1711 -1 -1712 1712 6 -1713 1712 -1 -1732 1712 -1 -2112 1712 -1 -1713 1713 6 -1714 1713 -1 -1733 1713 -1 -2113 1713 -1 -1714 1714 6 -1715 1714 -1 -1734 1714 -1 -2114 1714 -1 -1715 1715 6 -1716 1715 -1 -1735 1715 -1 -2115 1715 -1 -1716 1716 6 -1717 1716 -1 -1736 1716 -1 -2116 1716 -1 -1717 1717 6 -1718 1717 -1 -1737 1717 -1 -2117 1717 -1 -1718 1718 6 -1719 1718 -1 -1738 1718 -1 -2118 1718 -1 -1719 1719 6 -1720 1719 -1 -1739 1719 -1 -2119 1719 -1 -1720 1720 6 -1740 1720 -1 -2120 1720 -1 -1721 1721 6 -1722 1721 -1 -1741 1721 -1 -2121 1721 -1 -1722 1722 6 -1723 1722 -1 -1742 1722 -1 -2122 1722 -1 -1723 1723 6 -1724 1723 -1 -1743 1723 -1 -2123 1723 -1 -1724 1724 6 -1725 1724 -1 -1744 1724 -1 -2124 1724 -1 -1725 1725 6 -1726 1725 -1 -1745 1725 -1 -2125 1725 -1 -1726 1726 6 -1727 1726 -1 -1746 1726 -1 -2126 1726 -1 -1727 1727 6 -1728 1727 -1 -1747 1727 -1 -2127 1727 -1 -1728 1728 6 -1729 1728 -1 -1748 1728 -1 -2128 1728 -1 -1729 1729 6 -1730 1729 -1 -1749 1729 -1 -2129 1729 -1 -1730 1730 6 -1731 1730 -1 -1750 1730 -1 -2130 1730 -1 -1731 1731 6 -1732 1731 -1 -1751 1731 -1 -2131 1731 -1 -1732 1732 6 -1733 1732 -1 -1752 1732 -1 -2132 1732 -1 -1733 1733 6 -1734 1733 -1 -1753 1733 -1 -2133 1733 -1 -1734 1734 6 -1735 1734 -1 -1754 1734 -1 -2134 1734 -1 -1735 1735 6 -1736 1735 -1 -1755 1735 -1 -2135 1735 -1 -1736 1736 6 -1737 1736 -1 -1756 1736 -1 -2136 1736 -1 -1737 1737 6 -1738 1737 -1 -1757 1737 -1 -2137 1737 -1 -1738 1738 6 -1739 1738 -1 -1758 1738 -1 -2138 1738 -1 -1739 1739 6 -1740 1739 -1 -1759 1739 -1 -2139 1739 -1 -1740 1740 6 -1760 1740 -1 -2140 1740 -1 -1741 1741 6 -1742 1741 -1 -1761 1741 -1 -2141 1741 -1 -1742 1742 6 -1743 1742 -1 -1762 1742 -1 -2142 1742 -1 -1743 1743 6 -1744 1743 -1 -1763 1743 -1 -2143 1743 -1 -1744 1744 6 -1745 1744 -1 -1764 1744 -1 -2144 1744 -1 -1745 1745 6 -1746 1745 -1 -1765 1745 -1 -2145 1745 -1 -1746 1746 6 -1747 1746 -1 -1766 1746 -1 -2146 1746 -1 -1747 1747 6 -1748 1747 -1 -1767 1747 -1 -2147 1747 -1 -1748 1748 6 -1749 1748 -1 -1768 1748 -1 -2148 1748 -1 -1749 1749 6 -1750 1749 -1 -1769 1749 -1 -2149 1749 -1 -1750 1750 6 -1751 1750 -1 -1770 1750 -1 -2150 1750 -1 -1751 1751 6 -1752 1751 -1 -1771 1751 -1 -2151 1751 -1 -1752 1752 6 -1753 1752 -1 -1772 1752 -1 -2152 1752 -1 -1753 1753 6 -1754 1753 -1 -1773 1753 -1 -2153 1753 -1 -1754 1754 6 -1755 1754 -1 -1774 1754 -1 -2154 1754 -1 -1755 1755 6 -1756 1755 -1 -1775 1755 -1 -2155 1755 -1 -1756 1756 6 -1757 1756 -1 -1776 1756 -1 -2156 1756 -1 -1757 1757 6 -1758 1757 -1 -1777 1757 -1 -2157 1757 -1 -1758 1758 6 -1759 1758 -1 -1778 1758 -1 -2158 1758 -1 -1759 1759 6 -1760 1759 -1 -1779 1759 -1 -2159 1759 -1 -1760 1760 6 -1780 1760 -1 -2160 1760 -1 -1761 1761 6 -1762 1761 -1 -1781 1761 -1 -2161 1761 -1 -1762 1762 6 -1763 1762 -1 -1782 1762 -1 -2162 1762 -1 -1763 1763 6 -1764 1763 -1 -1783 1763 -1 -2163 1763 -1 -1764 1764 6 -1765 1764 -1 -1784 1764 -1 -2164 1764 -1 -1765 1765 6 -1766 1765 -1 -1785 1765 -1 -2165 1765 -1 -1766 1766 6 -1767 1766 -1 -1786 1766 -1 -2166 1766 -1 -1767 1767 6 -1768 1767 -1 -1787 1767 -1 -2167 1767 -1 -1768 1768 6 -1769 1768 -1 -1788 1768 -1 -2168 1768 -1 -1769 1769 6 -1770 1769 -1 -1789 1769 -1 -2169 1769 -1 -1770 1770 6 -1771 1770 -1 -1790 1770 -1 -2170 1770 -1 -1771 1771 6 -1772 1771 -1 -1791 1771 -1 -2171 1771 -1 -1772 1772 6 -1773 1772 -1 -1792 1772 -1 -2172 1772 -1 -1773 1773 6 -1774 1773 -1 -1793 1773 -1 -2173 1773 -1 -1774 1774 6 -1775 1774 -1 -1794 1774 -1 -2174 1774 -1 -1775 1775 6 -1776 1775 -1 -1795 1775 -1 -2175 1775 -1 -1776 1776 6 -1777 1776 -1 -1796 1776 -1 -2176 1776 -1 -1777 1777 6 -1778 1777 -1 -1797 1777 -1 -2177 1777 -1 -1778 1778 6 -1779 1778 -1 -1798 1778 -1 -2178 1778 -1 -1779 1779 6 -1780 1779 -1 -1799 1779 -1 -2179 1779 -1 -1780 1780 6 -1800 1780 -1 -2180 1780 -1 -1781 1781 6 -1782 1781 -1 -1801 1781 -1 -2181 1781 -1 -1782 1782 6 -1783 1782 -1 -1802 1782 -1 -2182 1782 -1 -1783 1783 6 -1784 1783 -1 -1803 1783 -1 -2183 1783 -1 -1784 1784 6 -1785 1784 -1 -1804 1784 -1 -2184 1784 -1 -1785 1785 6 -1786 1785 -1 -1805 1785 -1 -2185 1785 -1 -1786 1786 6 -1787 1786 -1 -1806 1786 -1 -2186 1786 -1 -1787 1787 6 -1788 1787 -1 -1807 1787 -1 -2187 1787 -1 -1788 1788 6 -1789 1788 -1 -1808 1788 -1 -2188 1788 -1 -1789 1789 6 -1790 1789 -1 -1809 1789 -1 -2189 1789 -1 -1790 1790 6 -1791 1790 -1 -1810 1790 -1 -2190 1790 -1 -1791 1791 6 -1792 1791 -1 -1811 1791 -1 -2191 1791 -1 -1792 1792 6 -1793 1792 -1 -1812 1792 -1 -2192 1792 -1 -1793 1793 6 -1794 1793 -1 -1813 1793 -1 -2193 1793 -1 -1794 1794 6 -1795 1794 -1 -1814 1794 -1 -2194 1794 -1 -1795 1795 6 -1796 1795 -1 -1815 1795 -1 -2195 1795 -1 -1796 1796 6 -1797 1796 -1 -1816 1796 -1 -2196 1796 -1 -1797 1797 6 -1798 1797 -1 -1817 1797 -1 -2197 1797 -1 -1798 1798 6 -1799 1798 -1 -1818 1798 -1 -2198 1798 -1 -1799 1799 6 -1800 1799 -1 -1819 1799 -1 -2199 1799 -1 -1800 1800 6 -1820 1800 -1 -2200 1800 -1 -1801 1801 6 -1802 1801 -1 -1821 1801 -1 -2201 1801 -1 -1802 1802 6 -1803 1802 -1 -1822 1802 -1 -2202 1802 -1 -1803 1803 6 -1804 1803 -1 -1823 1803 -1 -2203 1803 -1 -1804 1804 6 -1805 1804 -1 -1824 1804 -1 -2204 1804 -1 -1805 1805 6 -1806 1805 -1 -1825 1805 -1 -2205 1805 -1 -1806 1806 6 -1807 1806 -1 -1826 1806 -1 -2206 1806 -1 -1807 1807 6 -1808 1807 -1 -1827 1807 -1 -2207 1807 -1 -1808 1808 6 -1809 1808 -1 -1828 1808 -1 -2208 1808 -1 -1809 1809 6 -1810 1809 -1 -1829 1809 -1 -2209 1809 -1 -1810 1810 6 -1811 1810 -1 -1830 1810 -1 -2210 1810 -1 -1811 1811 6 -1812 1811 -1 -1831 1811 -1 -2211 1811 -1 -1812 1812 6 -1813 1812 -1 -1832 1812 -1 -2212 1812 -1 -1813 1813 6 -1814 1813 -1 -1833 1813 -1 -2213 1813 -1 -1814 1814 6 -1815 1814 -1 -1834 1814 -1 -2214 1814 -1 -1815 1815 6 -1816 1815 -1 -1835 1815 -1 -2215 1815 -1 -1816 1816 6 -1817 1816 -1 -1836 1816 -1 -2216 1816 -1 -1817 1817 6 -1818 1817 -1 -1837 1817 -1 -2217 1817 -1 -1818 1818 6 -1819 1818 -1 -1838 1818 -1 -2218 1818 -1 -1819 1819 6 -1820 1819 -1 -1839 1819 -1 -2219 1819 -1 -1820 1820 6 -1840 1820 -1 -2220 1820 -1 -1821 1821 6 -1822 1821 -1 -1841 1821 -1 -2221 1821 -1 -1822 1822 6 -1823 1822 -1 -1842 1822 -1 -2222 1822 -1 -1823 1823 6 -1824 1823 -1 -1843 1823 -1 -2223 1823 -1 -1824 1824 6 -1825 1824 -1 -1844 1824 -1 -2224 1824 -1 -1825 1825 6 -1826 1825 -1 -1845 1825 -1 -2225 1825 -1 -1826 1826 6 -1827 1826 -1 -1846 1826 -1 -2226 1826 -1 -1827 1827 6 -1828 1827 -1 -1847 1827 -1 -2227 1827 -1 -1828 1828 6 -1829 1828 -1 -1848 1828 -1 -2228 1828 -1 -1829 1829 6 -1830 1829 -1 -1849 1829 -1 -2229 1829 -1 -1830 1830 6 -1831 1830 -1 -1850 1830 -1 -2230 1830 -1 -1831 1831 6 -1832 1831 -1 -1851 1831 -1 -2231 1831 -1 -1832 1832 6 -1833 1832 -1 -1852 1832 -1 -2232 1832 -1 -1833 1833 6 -1834 1833 -1 -1853 1833 -1 -2233 1833 -1 -1834 1834 6 -1835 1834 -1 -1854 1834 -1 -2234 1834 -1 -1835 1835 6 -1836 1835 -1 -1855 1835 -1 -2235 1835 -1 -1836 1836 6 -1837 1836 -1 -1856 1836 -1 -2236 1836 -1 -1837 1837 6 -1838 1837 -1 -1857 1837 -1 -2237 1837 -1 -1838 1838 6 -1839 1838 -1 -1858 1838 -1 -2238 1838 -1 -1839 1839 6 -1840 1839 -1 -1859 1839 -1 -2239 1839 -1 -1840 1840 6 -1860 1840 -1 -2240 1840 -1 -1841 1841 6 -1842 1841 -1 -1861 1841 -1 -2241 1841 -1 -1842 1842 6 -1843 1842 -1 -1862 1842 -1 -2242 1842 -1 -1843 1843 6 -1844 1843 -1 -1863 1843 -1 -2243 1843 -1 -1844 1844 6 -1845 1844 -1 -1864 1844 -1 -2244 1844 -1 -1845 1845 6 -1846 1845 -1 -1865 1845 -1 -2245 1845 -1 -1846 1846 6 -1847 1846 -1 -1866 1846 -1 -2246 1846 -1 -1847 1847 6 -1848 1847 -1 -1867 1847 -1 -2247 1847 -1 -1848 1848 6 -1849 1848 -1 -1868 1848 -1 -2248 1848 -1 -1849 1849 6 -1850 1849 -1 -1869 1849 -1 -2249 1849 -1 -1850 1850 6 -1851 1850 -1 -1870 1850 -1 -2250 1850 -1 -1851 1851 6 -1852 1851 -1 -1871 1851 -1 -2251 1851 -1 -1852 1852 6 -1853 1852 -1 -1872 1852 -1 -2252 1852 -1 -1853 1853 6 -1854 1853 -1 -1873 1853 -1 -2253 1853 -1 -1854 1854 6 -1855 1854 -1 -1874 1854 -1 -2254 1854 -1 -1855 1855 6 -1856 1855 -1 -1875 1855 -1 -2255 1855 -1 -1856 1856 6 -1857 1856 -1 -1876 1856 -1 -2256 1856 -1 -1857 1857 6 -1858 1857 -1 -1877 1857 -1 -2257 1857 -1 -1858 1858 6 -1859 1858 -1 -1878 1858 -1 -2258 1858 -1 -1859 1859 6 -1860 1859 -1 -1879 1859 -1 -2259 1859 -1 -1860 1860 6 -1880 1860 -1 -2260 1860 -1 -1861 1861 6 -1862 1861 -1 -1881 1861 -1 -2261 1861 -1 -1862 1862 6 -1863 1862 -1 -1882 1862 -1 -2262 1862 -1 -1863 1863 6 -1864 1863 -1 -1883 1863 -1 -2263 1863 -1 -1864 1864 6 -1865 1864 -1 -1884 1864 -1 -2264 1864 -1 -1865 1865 6 -1866 1865 -1 -1885 1865 -1 -2265 1865 -1 -1866 1866 6 -1867 1866 -1 -1886 1866 -1 -2266 1866 -1 -1867 1867 6 -1868 1867 -1 -1887 1867 -1 -2267 1867 -1 -1868 1868 6 -1869 1868 -1 -1888 1868 -1 -2268 1868 -1 -1869 1869 6 -1870 1869 -1 -1889 1869 -1 -2269 1869 -1 -1870 1870 6 -1871 1870 -1 -1890 1870 -1 -2270 1870 -1 -1871 1871 6 -1872 1871 -1 -1891 1871 -1 -2271 1871 -1 -1872 1872 6 -1873 1872 -1 -1892 1872 -1 -2272 1872 -1 -1873 1873 6 -1874 1873 -1 -1893 1873 -1 -2273 1873 -1 -1874 1874 6 -1875 1874 -1 -1894 1874 -1 -2274 1874 -1 -1875 1875 6 -1876 1875 -1 -1895 1875 -1 -2275 1875 -1 -1876 1876 6 -1877 1876 -1 -1896 1876 -1 -2276 1876 -1 -1877 1877 6 -1878 1877 -1 -1897 1877 -1 -2277 1877 -1 -1878 1878 6 -1879 1878 -1 -1898 1878 -1 -2278 1878 -1 -1879 1879 6 -1880 1879 -1 -1899 1879 -1 -2279 1879 -1 -1880 1880 6 -1900 1880 -1 -2280 1880 -1 -1881 1881 6 -1882 1881 -1 -1901 1881 -1 -2281 1881 -1 -1882 1882 6 -1883 1882 -1 -1902 1882 -1 -2282 1882 -1 -1883 1883 6 -1884 1883 -1 -1903 1883 -1 -2283 1883 -1 -1884 1884 6 -1885 1884 -1 -1904 1884 -1 -2284 1884 -1 -1885 1885 6 -1886 1885 -1 -1905 1885 -1 -2285 1885 -1 -1886 1886 6 -1887 1886 -1 -1906 1886 -1 -2286 1886 -1 -1887 1887 6 -1888 1887 -1 -1907 1887 -1 -2287 1887 -1 -1888 1888 6 -1889 1888 -1 -1908 1888 -1 -2288 1888 -1 -1889 1889 6 -1890 1889 -1 -1909 1889 -1 -2289 1889 -1 -1890 1890 6 -1891 1890 -1 -1910 1890 -1 -2290 1890 -1 -1891 1891 6 -1892 1891 -1 -1911 1891 -1 -2291 1891 -1 -1892 1892 6 -1893 1892 -1 -1912 1892 -1 -2292 1892 -1 -1893 1893 6 -1894 1893 -1 -1913 1893 -1 -2293 1893 -1 -1894 1894 6 -1895 1894 -1 -1914 1894 -1 -2294 1894 -1 -1895 1895 6 -1896 1895 -1 -1915 1895 -1 -2295 1895 -1 -1896 1896 6 -1897 1896 -1 -1916 1896 -1 -2296 1896 -1 -1897 1897 6 -1898 1897 -1 -1917 1897 -1 -2297 1897 -1 -1898 1898 6 -1899 1898 -1 -1918 1898 -1 -2298 1898 -1 -1899 1899 6 -1900 1899 -1 -1919 1899 -1 -2299 1899 -1 -1900 1900 6 -1920 1900 -1 -2300 1900 -1 -1901 1901 6 -1902 1901 -1 -1921 1901 -1 -2301 1901 -1 -1902 1902 6 -1903 1902 -1 -1922 1902 -1 -2302 1902 -1 -1903 1903 6 -1904 1903 -1 -1923 1903 -1 -2303 1903 -1 -1904 1904 6 -1905 1904 -1 -1924 1904 -1 -2304 1904 -1 -1905 1905 6 -1906 1905 -1 -1925 1905 -1 -2305 1905 -1 -1906 1906 6 -1907 1906 -1 -1926 1906 -1 -2306 1906 -1 -1907 1907 6 -1908 1907 -1 -1927 1907 -1 -2307 1907 -1 -1908 1908 6 -1909 1908 -1 -1928 1908 -1 -2308 1908 -1 -1909 1909 6 -1910 1909 -1 -1929 1909 -1 -2309 1909 -1 -1910 1910 6 -1911 1910 -1 -1930 1910 -1 -2310 1910 -1 -1911 1911 6 -1912 1911 -1 -1931 1911 -1 -2311 1911 -1 -1912 1912 6 -1913 1912 -1 -1932 1912 -1 -2312 1912 -1 -1913 1913 6 -1914 1913 -1 -1933 1913 -1 -2313 1913 -1 -1914 1914 6 -1915 1914 -1 -1934 1914 -1 -2314 1914 -1 -1915 1915 6 -1916 1915 -1 -1935 1915 -1 -2315 1915 -1 -1916 1916 6 -1917 1916 -1 -1936 1916 -1 -2316 1916 -1 -1917 1917 6 -1918 1917 -1 -1937 1917 -1 -2317 1917 -1 -1918 1918 6 -1919 1918 -1 -1938 1918 -1 -2318 1918 -1 -1919 1919 6 -1920 1919 -1 -1939 1919 -1 -2319 1919 -1 -1920 1920 6 -1940 1920 -1 -2320 1920 -1 -1921 1921 6 -1922 1921 -1 -1941 1921 -1 -2321 1921 -1 -1922 1922 6 -1923 1922 -1 -1942 1922 -1 -2322 1922 -1 -1923 1923 6 -1924 1923 -1 -1943 1923 -1 -2323 1923 -1 -1924 1924 6 -1925 1924 -1 -1944 1924 -1 -2324 1924 -1 -1925 1925 6 -1926 1925 -1 -1945 1925 -1 -2325 1925 -1 -1926 1926 6 -1927 1926 -1 -1946 1926 -1 -2326 1926 -1 -1927 1927 6 -1928 1927 -1 -1947 1927 -1 -2327 1927 -1 -1928 1928 6 -1929 1928 -1 -1948 1928 -1 -2328 1928 -1 -1929 1929 6 -1930 1929 -1 -1949 1929 -1 -2329 1929 -1 -1930 1930 6 -1931 1930 -1 -1950 1930 -1 -2330 1930 -1 -1931 1931 6 -1932 1931 -1 -1951 1931 -1 -2331 1931 -1 -1932 1932 6 -1933 1932 -1 -1952 1932 -1 -2332 1932 -1 -1933 1933 6 -1934 1933 -1 -1953 1933 -1 -2333 1933 -1 -1934 1934 6 -1935 1934 -1 -1954 1934 -1 -2334 1934 -1 -1935 1935 6 -1936 1935 -1 -1955 1935 -1 -2335 1935 -1 -1936 1936 6 -1937 1936 -1 -1956 1936 -1 -2336 1936 -1 -1937 1937 6 -1938 1937 -1 -1957 1937 -1 -2337 1937 -1 -1938 1938 6 -1939 1938 -1 -1958 1938 -1 -2338 1938 -1 -1939 1939 6 -1940 1939 -1 -1959 1939 -1 -2339 1939 -1 -1940 1940 6 -1960 1940 -1 -2340 1940 -1 -1941 1941 6 -1942 1941 -1 -1961 1941 -1 -2341 1941 -1 -1942 1942 6 -1943 1942 -1 -1962 1942 -1 -2342 1942 -1 -1943 1943 6 -1944 1943 -1 -1963 1943 -1 -2343 1943 -1 -1944 1944 6 -1945 1944 -1 -1964 1944 -1 -2344 1944 -1 -1945 1945 6 -1946 1945 -1 -1965 1945 -1 -2345 1945 -1 -1946 1946 6 -1947 1946 -1 -1966 1946 -1 -2346 1946 -1 -1947 1947 6 -1948 1947 -1 -1967 1947 -1 -2347 1947 -1 -1948 1948 6 -1949 1948 -1 -1968 1948 -1 -2348 1948 -1 -1949 1949 6 -1950 1949 -1 -1969 1949 -1 -2349 1949 -1 -1950 1950 6 -1951 1950 -1 -1970 1950 -1 -2350 1950 -1 -1951 1951 6 -1952 1951 -1 -1971 1951 -1 -2351 1951 -1 -1952 1952 6 -1953 1952 -1 -1972 1952 -1 -2352 1952 -1 -1953 1953 6 -1954 1953 -1 -1973 1953 -1 -2353 1953 -1 -1954 1954 6 -1955 1954 -1 -1974 1954 -1 -2354 1954 -1 -1955 1955 6 -1956 1955 -1 -1975 1955 -1 -2355 1955 -1 -1956 1956 6 -1957 1956 -1 -1976 1956 -1 -2356 1956 -1 -1957 1957 6 -1958 1957 -1 -1977 1957 -1 -2357 1957 -1 -1958 1958 6 -1959 1958 -1 -1978 1958 -1 -2358 1958 -1 -1959 1959 6 -1960 1959 -1 -1979 1959 -1 -2359 1959 -1 -1960 1960 6 -1980 1960 -1 -2360 1960 -1 -1961 1961 6 -1962 1961 -1 -1981 1961 -1 -2361 1961 -1 -1962 1962 6 -1963 1962 -1 -1982 1962 -1 -2362 1962 -1 -1963 1963 6 -1964 1963 -1 -1983 1963 -1 -2363 1963 -1 -1964 1964 6 -1965 1964 -1 -1984 1964 -1 -2364 1964 -1 -1965 1965 6 -1966 1965 -1 -1985 1965 -1 -2365 1965 -1 -1966 1966 6 -1967 1966 -1 -1986 1966 -1 -2366 1966 -1 -1967 1967 6 -1968 1967 -1 -1987 1967 -1 -2367 1967 -1 -1968 1968 6 -1969 1968 -1 -1988 1968 -1 -2368 1968 -1 -1969 1969 6 -1970 1969 -1 -1989 1969 -1 -2369 1969 -1 -1970 1970 6 -1971 1970 -1 -1990 1970 -1 -2370 1970 -1 -1971 1971 6 -1972 1971 -1 -1991 1971 -1 -2371 1971 -1 -1972 1972 6 -1973 1972 -1 -1992 1972 -1 -2372 1972 -1 -1973 1973 6 -1974 1973 -1 -1993 1973 -1 -2373 1973 -1 -1974 1974 6 -1975 1974 -1 -1994 1974 -1 -2374 1974 -1 -1975 1975 6 -1976 1975 -1 -1995 1975 -1 -2375 1975 -1 -1976 1976 6 -1977 1976 -1 -1996 1976 -1 -2376 1976 -1 -1977 1977 6 -1978 1977 -1 -1997 1977 -1 -2377 1977 -1 -1978 1978 6 -1979 1978 -1 -1998 1978 -1 -2378 1978 -1 -1979 1979 6 -1980 1979 -1 -1999 1979 -1 -2379 1979 -1 -1980 1980 6 -2000 1980 -1 -2380 1980 -1 -1981 1981 6 -1982 1981 -1 -2381 1981 -1 -1982 1982 6 -1983 1982 -1 -2382 1982 -1 -1983 1983 6 -1984 1983 -1 -2383 1983 -1 -1984 1984 6 -1985 1984 -1 -2384 1984 -1 -1985 1985 6 -1986 1985 -1 -2385 1985 -1 -1986 1986 6 -1987 1986 -1 -2386 1986 -1 -1987 1987 6 -1988 1987 -1 -2387 1987 -1 -1988 1988 6 -1989 1988 -1 -2388 1988 -1 -1989 1989 6 -1990 1989 -1 -2389 1989 -1 -1990 1990 6 -1991 1990 -1 -2390 1990 -1 -1991 1991 6 -1992 1991 -1 -2391 1991 -1 -1992 1992 6 -1993 1992 -1 -2392 1992 -1 -1993 1993 6 -1994 1993 -1 -2393 1993 -1 -1994 1994 6 -1995 1994 -1 -2394 1994 -1 -1995 1995 6 -1996 1995 -1 -2395 1995 -1 -1996 1996 6 -1997 1996 -1 -2396 1996 -1 -1997 1997 6 -1998 1997 -1 -2397 1997 -1 -1998 1998 6 -1999 1998 -1 -2398 1998 -1 -1999 1999 6 -2000 1999 -1 -2399 1999 -1 -2000 2000 6 -2400 2000 -1 -2001 2001 6 -2002 2001 -1 -2021 2001 -1 -2401 2001 -1 -2002 2002 6 -2003 2002 -1 -2022 2002 -1 -2402 2002 -1 -2003 2003 6 -2004 2003 -1 -2023 2003 -1 -2403 2003 -1 -2004 2004 6 -2005 2004 -1 -2024 2004 -1 -2404 2004 -1 -2005 2005 6 -2006 2005 -1 -2025 2005 -1 -2405 2005 -1 -2006 2006 6 -2007 2006 -1 -2026 2006 -1 -2406 2006 -1 -2007 2007 6 -2008 2007 -1 -2027 2007 -1 -2407 2007 -1 -2008 2008 6 -2009 2008 -1 -2028 2008 -1 -2408 2008 -1 -2009 2009 6 -2010 2009 -1 -2029 2009 -1 -2409 2009 -1 -2010 2010 6 -2011 2010 -1 -2030 2010 -1 -2410 2010 -1 -2011 2011 6 -2012 2011 -1 -2031 2011 -1 -2411 2011 -1 -2012 2012 6 -2013 2012 -1 -2032 2012 -1 -2412 2012 -1 -2013 2013 6 -2014 2013 -1 -2033 2013 -1 -2413 2013 -1 -2014 2014 6 -2015 2014 -1 -2034 2014 -1 -2414 2014 -1 -2015 2015 6 -2016 2015 -1 -2035 2015 -1 -2415 2015 -1 -2016 2016 6 -2017 2016 -1 -2036 2016 -1 -2416 2016 -1 -2017 2017 6 -2018 2017 -1 -2037 2017 -1 -2417 2017 -1 -2018 2018 6 -2019 2018 -1 -2038 2018 -1 -2418 2018 -1 -2019 2019 6 -2020 2019 -1 -2039 2019 -1 -2419 2019 -1 -2020 2020 6 -2040 2020 -1 -2420 2020 -1 -2021 2021 6 -2022 2021 -1 -2041 2021 -1 -2421 2021 -1 -2022 2022 6 -2023 2022 -1 -2042 2022 -1 -2422 2022 -1 -2023 2023 6 -2024 2023 -1 -2043 2023 -1 -2423 2023 -1 -2024 2024 6 -2025 2024 -1 -2044 2024 -1 -2424 2024 -1 -2025 2025 6 -2026 2025 -1 -2045 2025 -1 -2425 2025 -1 -2026 2026 6 -2027 2026 -1 -2046 2026 -1 -2426 2026 -1 -2027 2027 6 -2028 2027 -1 -2047 2027 -1 -2427 2027 -1 -2028 2028 6 -2029 2028 -1 -2048 2028 -1 -2428 2028 -1 -2029 2029 6 -2030 2029 -1 -2049 2029 -1 -2429 2029 -1 -2030 2030 6 -2031 2030 -1 -2050 2030 -1 -2430 2030 -1 -2031 2031 6 -2032 2031 -1 -2051 2031 -1 -2431 2031 -1 -2032 2032 6 -2033 2032 -1 -2052 2032 -1 -2432 2032 -1 -2033 2033 6 -2034 2033 -1 -2053 2033 -1 -2433 2033 -1 -2034 2034 6 -2035 2034 -1 -2054 2034 -1 -2434 2034 -1 -2035 2035 6 -2036 2035 -1 -2055 2035 -1 -2435 2035 -1 -2036 2036 6 -2037 2036 -1 -2056 2036 -1 -2436 2036 -1 -2037 2037 6 -2038 2037 -1 -2057 2037 -1 -2437 2037 -1 -2038 2038 6 -2039 2038 -1 -2058 2038 -1 -2438 2038 -1 -2039 2039 6 -2040 2039 -1 -2059 2039 -1 -2439 2039 -1 -2040 2040 6 -2060 2040 -1 -2440 2040 -1 -2041 2041 6 -2042 2041 -1 -2061 2041 -1 -2441 2041 -1 -2042 2042 6 -2043 2042 -1 -2062 2042 -1 -2442 2042 -1 -2043 2043 6 -2044 2043 -1 -2063 2043 -1 -2443 2043 -1 -2044 2044 6 -2045 2044 -1 -2064 2044 -1 -2444 2044 -1 -2045 2045 6 -2046 2045 -1 -2065 2045 -1 -2445 2045 -1 -2046 2046 6 -2047 2046 -1 -2066 2046 -1 -2446 2046 -1 -2047 2047 6 -2048 2047 -1 -2067 2047 -1 -2447 2047 -1 -2048 2048 6 -2049 2048 -1 -2068 2048 -1 -2448 2048 -1 -2049 2049 6 -2050 2049 -1 -2069 2049 -1 -2449 2049 -1 -2050 2050 6 -2051 2050 -1 -2070 2050 -1 -2450 2050 -1 -2051 2051 6 -2052 2051 -1 -2071 2051 -1 -2451 2051 -1 -2052 2052 6 -2053 2052 -1 -2072 2052 -1 -2452 2052 -1 -2053 2053 6 -2054 2053 -1 -2073 2053 -1 -2453 2053 -1 -2054 2054 6 -2055 2054 -1 -2074 2054 -1 -2454 2054 -1 -2055 2055 6 -2056 2055 -1 -2075 2055 -1 -2455 2055 -1 -2056 2056 6 -2057 2056 -1 -2076 2056 -1 -2456 2056 -1 -2057 2057 6 -2058 2057 -1 -2077 2057 -1 -2457 2057 -1 -2058 2058 6 -2059 2058 -1 -2078 2058 -1 -2458 2058 -1 -2059 2059 6 -2060 2059 -1 -2079 2059 -1 -2459 2059 -1 -2060 2060 6 -2080 2060 -1 -2460 2060 -1 -2061 2061 6 -2062 2061 -1 -2081 2061 -1 -2461 2061 -1 -2062 2062 6 -2063 2062 -1 -2082 2062 -1 -2462 2062 -1 -2063 2063 6 -2064 2063 -1 -2083 2063 -1 -2463 2063 -1 -2064 2064 6 -2065 2064 -1 -2084 2064 -1 -2464 2064 -1 -2065 2065 6 -2066 2065 -1 -2085 2065 -1 -2465 2065 -1 -2066 2066 6 -2067 2066 -1 -2086 2066 -1 -2466 2066 -1 -2067 2067 6 -2068 2067 -1 -2087 2067 -1 -2467 2067 -1 -2068 2068 6 -2069 2068 -1 -2088 2068 -1 -2468 2068 -1 -2069 2069 6 -2070 2069 -1 -2089 2069 -1 -2469 2069 -1 -2070 2070 6 -2071 2070 -1 -2090 2070 -1 -2470 2070 -1 -2071 2071 6 -2072 2071 -1 -2091 2071 -1 -2471 2071 -1 -2072 2072 6 -2073 2072 -1 -2092 2072 -1 -2472 2072 -1 -2073 2073 6 -2074 2073 -1 -2093 2073 -1 -2473 2073 -1 -2074 2074 6 -2075 2074 -1 -2094 2074 -1 -2474 2074 -1 -2075 2075 6 -2076 2075 -1 -2095 2075 -1 -2475 2075 -1 -2076 2076 6 -2077 2076 -1 -2096 2076 -1 -2476 2076 -1 -2077 2077 6 -2078 2077 -1 -2097 2077 -1 -2477 2077 -1 -2078 2078 6 -2079 2078 -1 -2098 2078 -1 -2478 2078 -1 -2079 2079 6 -2080 2079 -1 -2099 2079 -1 -2479 2079 -1 -2080 2080 6 -2100 2080 -1 -2480 2080 -1 -2081 2081 6 -2082 2081 -1 -2101 2081 -1 -2481 2081 -1 -2082 2082 6 -2083 2082 -1 -2102 2082 -1 -2482 2082 -1 -2083 2083 6 -2084 2083 -1 -2103 2083 -1 -2483 2083 -1 -2084 2084 6 -2085 2084 -1 -2104 2084 -1 -2484 2084 -1 -2085 2085 6 -2086 2085 -1 -2105 2085 -1 -2485 2085 -1 -2086 2086 6 -2087 2086 -1 -2106 2086 -1 -2486 2086 -1 -2087 2087 6 -2088 2087 -1 -2107 2087 -1 -2487 2087 -1 -2088 2088 6 -2089 2088 -1 -2108 2088 -1 -2488 2088 -1 -2089 2089 6 -2090 2089 -1 -2109 2089 -1 -2489 2089 -1 -2090 2090 6 -2091 2090 -1 -2110 2090 -1 -2490 2090 -1 -2091 2091 6 -2092 2091 -1 -2111 2091 -1 -2491 2091 -1 -2092 2092 6 -2093 2092 -1 -2112 2092 -1 -2492 2092 -1 -2093 2093 6 -2094 2093 -1 -2113 2093 -1 -2493 2093 -1 -2094 2094 6 -2095 2094 -1 -2114 2094 -1 -2494 2094 -1 -2095 2095 6 -2096 2095 -1 -2115 2095 -1 -2495 2095 -1 -2096 2096 6 -2097 2096 -1 -2116 2096 -1 -2496 2096 -1 -2097 2097 6 -2098 2097 -1 -2117 2097 -1 -2497 2097 -1 -2098 2098 6 -2099 2098 -1 -2118 2098 -1 -2498 2098 -1 -2099 2099 6 -2100 2099 -1 -2119 2099 -1 -2499 2099 -1 -2100 2100 6 -2120 2100 -1 -2500 2100 -1 -2101 2101 6 -2102 2101 -1 -2121 2101 -1 -2501 2101 -1 -2102 2102 6 -2103 2102 -1 -2122 2102 -1 -2502 2102 -1 -2103 2103 6 -2104 2103 -1 -2123 2103 -1 -2503 2103 -1 -2104 2104 6 -2105 2104 -1 -2124 2104 -1 -2504 2104 -1 -2105 2105 6 -2106 2105 -1 -2125 2105 -1 -2505 2105 -1 -2106 2106 6 -2107 2106 -1 -2126 2106 -1 -2506 2106 -1 -2107 2107 6 -2108 2107 -1 -2127 2107 -1 -2507 2107 -1 -2108 2108 6 -2109 2108 -1 -2128 2108 -1 -2508 2108 -1 -2109 2109 6 -2110 2109 -1 -2129 2109 -1 -2509 2109 -1 -2110 2110 6 -2111 2110 -1 -2130 2110 -1 -2510 2110 -1 -2111 2111 6 -2112 2111 -1 -2131 2111 -1 -2511 2111 -1 -2112 2112 6 -2113 2112 -1 -2132 2112 -1 -2512 2112 -1 -2113 2113 6 -2114 2113 -1 -2133 2113 -1 -2513 2113 -1 -2114 2114 6 -2115 2114 -1 -2134 2114 -1 -2514 2114 -1 -2115 2115 6 -2116 2115 -1 -2135 2115 -1 -2515 2115 -1 -2116 2116 6 -2117 2116 -1 -2136 2116 -1 -2516 2116 -1 -2117 2117 6 -2118 2117 -1 -2137 2117 -1 -2517 2117 -1 -2118 2118 6 -2119 2118 -1 -2138 2118 -1 -2518 2118 -1 -2119 2119 6 -2120 2119 -1 -2139 2119 -1 -2519 2119 -1 -2120 2120 6 -2140 2120 -1 -2520 2120 -1 -2121 2121 6 -2122 2121 -1 -2141 2121 -1 -2521 2121 -1 -2122 2122 6 -2123 2122 -1 -2142 2122 -1 -2522 2122 -1 -2123 2123 6 -2124 2123 -1 -2143 2123 -1 -2523 2123 -1 -2124 2124 6 -2125 2124 -1 -2144 2124 -1 -2524 2124 -1 -2125 2125 6 -2126 2125 -1 -2145 2125 -1 -2525 2125 -1 -2126 2126 6 -2127 2126 -1 -2146 2126 -1 -2526 2126 -1 -2127 2127 6 -2128 2127 -1 -2147 2127 -1 -2527 2127 -1 -2128 2128 6 -2129 2128 -1 -2148 2128 -1 -2528 2128 -1 -2129 2129 6 -2130 2129 -1 -2149 2129 -1 -2529 2129 -1 -2130 2130 6 -2131 2130 -1 -2150 2130 -1 -2530 2130 -1 -2131 2131 6 -2132 2131 -1 -2151 2131 -1 -2531 2131 -1 -2132 2132 6 -2133 2132 -1 -2152 2132 -1 -2532 2132 -1 -2133 2133 6 -2134 2133 -1 -2153 2133 -1 -2533 2133 -1 -2134 2134 6 -2135 2134 -1 -2154 2134 -1 -2534 2134 -1 -2135 2135 6 -2136 2135 -1 -2155 2135 -1 -2535 2135 -1 -2136 2136 6 -2137 2136 -1 -2156 2136 -1 -2536 2136 -1 -2137 2137 6 -2138 2137 -1 -2157 2137 -1 -2537 2137 -1 -2138 2138 6 -2139 2138 -1 -2158 2138 -1 -2538 2138 -1 -2139 2139 6 -2140 2139 -1 -2159 2139 -1 -2539 2139 -1 -2140 2140 6 -2160 2140 -1 -2540 2140 -1 -2141 2141 6 -2142 2141 -1 -2161 2141 -1 -2541 2141 -1 -2142 2142 6 -2143 2142 -1 -2162 2142 -1 -2542 2142 -1 -2143 2143 6 -2144 2143 -1 -2163 2143 -1 -2543 2143 -1 -2144 2144 6 -2145 2144 -1 -2164 2144 -1 -2544 2144 -1 -2145 2145 6 -2146 2145 -1 -2165 2145 -1 -2545 2145 -1 -2146 2146 6 -2147 2146 -1 -2166 2146 -1 -2546 2146 -1 -2147 2147 6 -2148 2147 -1 -2167 2147 -1 -2547 2147 -1 -2148 2148 6 -2149 2148 -1 -2168 2148 -1 -2548 2148 -1 -2149 2149 6 -2150 2149 -1 -2169 2149 -1 -2549 2149 -1 -2150 2150 6 -2151 2150 -1 -2170 2150 -1 -2550 2150 -1 -2151 2151 6 -2152 2151 -1 -2171 2151 -1 -2551 2151 -1 -2152 2152 6 -2153 2152 -1 -2172 2152 -1 -2552 2152 -1 -2153 2153 6 -2154 2153 -1 -2173 2153 -1 -2553 2153 -1 -2154 2154 6 -2155 2154 -1 -2174 2154 -1 -2554 2154 -1 -2155 2155 6 -2156 2155 -1 -2175 2155 -1 -2555 2155 -1 -2156 2156 6 -2157 2156 -1 -2176 2156 -1 -2556 2156 -1 -2157 2157 6 -2158 2157 -1 -2177 2157 -1 -2557 2157 -1 -2158 2158 6 -2159 2158 -1 -2178 2158 -1 -2558 2158 -1 -2159 2159 6 -2160 2159 -1 -2179 2159 -1 -2559 2159 -1 -2160 2160 6 -2180 2160 -1 -2560 2160 -1 -2161 2161 6 -2162 2161 -1 -2181 2161 -1 -2561 2161 -1 -2162 2162 6 -2163 2162 -1 -2182 2162 -1 -2562 2162 -1 -2163 2163 6 -2164 2163 -1 -2183 2163 -1 -2563 2163 -1 -2164 2164 6 -2165 2164 -1 -2184 2164 -1 -2564 2164 -1 -2165 2165 6 -2166 2165 -1 -2185 2165 -1 -2565 2165 -1 -2166 2166 6 -2167 2166 -1 -2186 2166 -1 -2566 2166 -1 -2167 2167 6 -2168 2167 -1 -2187 2167 -1 -2567 2167 -1 -2168 2168 6 -2169 2168 -1 -2188 2168 -1 -2568 2168 -1 -2169 2169 6 -2170 2169 -1 -2189 2169 -1 -2569 2169 -1 -2170 2170 6 -2171 2170 -1 -2190 2170 -1 -2570 2170 -1 -2171 2171 6 -2172 2171 -1 -2191 2171 -1 -2571 2171 -1 -2172 2172 6 -2173 2172 -1 -2192 2172 -1 -2572 2172 -1 -2173 2173 6 -2174 2173 -1 -2193 2173 -1 -2573 2173 -1 -2174 2174 6 -2175 2174 -1 -2194 2174 -1 -2574 2174 -1 -2175 2175 6 -2176 2175 -1 -2195 2175 -1 -2575 2175 -1 -2176 2176 6 -2177 2176 -1 -2196 2176 -1 -2576 2176 -1 -2177 2177 6 -2178 2177 -1 -2197 2177 -1 -2577 2177 -1 -2178 2178 6 -2179 2178 -1 -2198 2178 -1 -2578 2178 -1 -2179 2179 6 -2180 2179 -1 -2199 2179 -1 -2579 2179 -1 -2180 2180 6 -2200 2180 -1 -2580 2180 -1 -2181 2181 6 -2182 2181 -1 -2201 2181 -1 -2581 2181 -1 -2182 2182 6 -2183 2182 -1 -2202 2182 -1 -2582 2182 -1 -2183 2183 6 -2184 2183 -1 -2203 2183 -1 -2583 2183 -1 -2184 2184 6 -2185 2184 -1 -2204 2184 -1 -2584 2184 -1 -2185 2185 6 -2186 2185 -1 -2205 2185 -1 -2585 2185 -1 -2186 2186 6 -2187 2186 -1 -2206 2186 -1 -2586 2186 -1 -2187 2187 6 -2188 2187 -1 -2207 2187 -1 -2587 2187 -1 -2188 2188 6 -2189 2188 -1 -2208 2188 -1 -2588 2188 -1 -2189 2189 6 -2190 2189 -1 -2209 2189 -1 -2589 2189 -1 -2190 2190 6 -2191 2190 -1 -2210 2190 -1 -2590 2190 -1 -2191 2191 6 -2192 2191 -1 -2211 2191 -1 -2591 2191 -1 -2192 2192 6 -2193 2192 -1 -2212 2192 -1 -2592 2192 -1 -2193 2193 6 -2194 2193 -1 -2213 2193 -1 -2593 2193 -1 -2194 2194 6 -2195 2194 -1 -2214 2194 -1 -2594 2194 -1 -2195 2195 6 -2196 2195 -1 -2215 2195 -1 -2595 2195 -1 -2196 2196 6 -2197 2196 -1 -2216 2196 -1 -2596 2196 -1 -2197 2197 6 -2198 2197 -1 -2217 2197 -1 -2597 2197 -1 -2198 2198 6 -2199 2198 -1 -2218 2198 -1 -2598 2198 -1 -2199 2199 6 -2200 2199 -1 -2219 2199 -1 -2599 2199 -1 -2200 2200 6 -2220 2200 -1 -2600 2200 -1 -2201 2201 6 -2202 2201 -1 -2221 2201 -1 -2601 2201 -1 -2202 2202 6 -2203 2202 -1 -2222 2202 -1 -2602 2202 -1 -2203 2203 6 -2204 2203 -1 -2223 2203 -1 -2603 2203 -1 -2204 2204 6 -2205 2204 -1 -2224 2204 -1 -2604 2204 -1 -2205 2205 6 -2206 2205 -1 -2225 2205 -1 -2605 2205 -1 -2206 2206 6 -2207 2206 -1 -2226 2206 -1 -2606 2206 -1 -2207 2207 6 -2208 2207 -1 -2227 2207 -1 -2607 2207 -1 -2208 2208 6 -2209 2208 -1 -2228 2208 -1 -2608 2208 -1 -2209 2209 6 -2210 2209 -1 -2229 2209 -1 -2609 2209 -1 -2210 2210 6 -2211 2210 -1 -2230 2210 -1 -2610 2210 -1 -2211 2211 6 -2212 2211 -1 -2231 2211 -1 -2611 2211 -1 -2212 2212 6 -2213 2212 -1 -2232 2212 -1 -2612 2212 -1 -2213 2213 6 -2214 2213 -1 -2233 2213 -1 -2613 2213 -1 -2214 2214 6 -2215 2214 -1 -2234 2214 -1 -2614 2214 -1 -2215 2215 6 -2216 2215 -1 -2235 2215 -1 -2615 2215 -1 -2216 2216 6 -2217 2216 -1 -2236 2216 -1 -2616 2216 -1 -2217 2217 6 -2218 2217 -1 -2237 2217 -1 -2617 2217 -1 -2218 2218 6 -2219 2218 -1 -2238 2218 -1 -2618 2218 -1 -2219 2219 6 -2220 2219 -1 -2239 2219 -1 -2619 2219 -1 -2220 2220 6 -2240 2220 -1 -2620 2220 -1 -2221 2221 6 -2222 2221 -1 -2241 2221 -1 -2621 2221 -1 -2222 2222 6 -2223 2222 -1 -2242 2222 -1 -2622 2222 -1 -2223 2223 6 -2224 2223 -1 -2243 2223 -1 -2623 2223 -1 -2224 2224 6 -2225 2224 -1 -2244 2224 -1 -2624 2224 -1 -2225 2225 6 -2226 2225 -1 -2245 2225 -1 -2625 2225 -1 -2226 2226 6 -2227 2226 -1 -2246 2226 -1 -2626 2226 -1 -2227 2227 6 -2228 2227 -1 -2247 2227 -1 -2627 2227 -1 -2228 2228 6 -2229 2228 -1 -2248 2228 -1 -2628 2228 -1 -2229 2229 6 -2230 2229 -1 -2249 2229 -1 -2629 2229 -1 -2230 2230 6 -2231 2230 -1 -2250 2230 -1 -2630 2230 -1 -2231 2231 6 -2232 2231 -1 -2251 2231 -1 -2631 2231 -1 -2232 2232 6 -2233 2232 -1 -2252 2232 -1 -2632 2232 -1 -2233 2233 6 -2234 2233 -1 -2253 2233 -1 -2633 2233 -1 -2234 2234 6 -2235 2234 -1 -2254 2234 -1 -2634 2234 -1 -2235 2235 6 -2236 2235 -1 -2255 2235 -1 -2635 2235 -1 -2236 2236 6 -2237 2236 -1 -2256 2236 -1 -2636 2236 -1 -2237 2237 6 -2238 2237 -1 -2257 2237 -1 -2637 2237 -1 -2238 2238 6 -2239 2238 -1 -2258 2238 -1 -2638 2238 -1 -2239 2239 6 -2240 2239 -1 -2259 2239 -1 -2639 2239 -1 -2240 2240 6 -2260 2240 -1 -2640 2240 -1 -2241 2241 6 -2242 2241 -1 -2261 2241 -1 -2641 2241 -1 -2242 2242 6 -2243 2242 -1 -2262 2242 -1 -2642 2242 -1 -2243 2243 6 -2244 2243 -1 -2263 2243 -1 -2643 2243 -1 -2244 2244 6 -2245 2244 -1 -2264 2244 -1 -2644 2244 -1 -2245 2245 6 -2246 2245 -1 -2265 2245 -1 -2645 2245 -1 -2246 2246 6 -2247 2246 -1 -2266 2246 -1 -2646 2246 -1 -2247 2247 6 -2248 2247 -1 -2267 2247 -1 -2647 2247 -1 -2248 2248 6 -2249 2248 -1 -2268 2248 -1 -2648 2248 -1 -2249 2249 6 -2250 2249 -1 -2269 2249 -1 -2649 2249 -1 -2250 2250 6 -2251 2250 -1 -2270 2250 -1 -2650 2250 -1 -2251 2251 6 -2252 2251 -1 -2271 2251 -1 -2651 2251 -1 -2252 2252 6 -2253 2252 -1 -2272 2252 -1 -2652 2252 -1 -2253 2253 6 -2254 2253 -1 -2273 2253 -1 -2653 2253 -1 -2254 2254 6 -2255 2254 -1 -2274 2254 -1 -2654 2254 -1 -2255 2255 6 -2256 2255 -1 -2275 2255 -1 -2655 2255 -1 -2256 2256 6 -2257 2256 -1 -2276 2256 -1 -2656 2256 -1 -2257 2257 6 -2258 2257 -1 -2277 2257 -1 -2657 2257 -1 -2258 2258 6 -2259 2258 -1 -2278 2258 -1 -2658 2258 -1 -2259 2259 6 -2260 2259 -1 -2279 2259 -1 -2659 2259 -1 -2260 2260 6 -2280 2260 -1 -2660 2260 -1 -2261 2261 6 -2262 2261 -1 -2281 2261 -1 -2661 2261 -1 -2262 2262 6 -2263 2262 -1 -2282 2262 -1 -2662 2262 -1 -2263 2263 6 -2264 2263 -1 -2283 2263 -1 -2663 2263 -1 -2264 2264 6 -2265 2264 -1 -2284 2264 -1 -2664 2264 -1 -2265 2265 6 -2266 2265 -1 -2285 2265 -1 -2665 2265 -1 -2266 2266 6 -2267 2266 -1 -2286 2266 -1 -2666 2266 -1 -2267 2267 6 -2268 2267 -1 -2287 2267 -1 -2667 2267 -1 -2268 2268 6 -2269 2268 -1 -2288 2268 -1 -2668 2268 -1 -2269 2269 6 -2270 2269 -1 -2289 2269 -1 -2669 2269 -1 -2270 2270 6 -2271 2270 -1 -2290 2270 -1 -2670 2270 -1 -2271 2271 6 -2272 2271 -1 -2291 2271 -1 -2671 2271 -1 -2272 2272 6 -2273 2272 -1 -2292 2272 -1 -2672 2272 -1 -2273 2273 6 -2274 2273 -1 -2293 2273 -1 -2673 2273 -1 -2274 2274 6 -2275 2274 -1 -2294 2274 -1 -2674 2274 -1 -2275 2275 6 -2276 2275 -1 -2295 2275 -1 -2675 2275 -1 -2276 2276 6 -2277 2276 -1 -2296 2276 -1 -2676 2276 -1 -2277 2277 6 -2278 2277 -1 -2297 2277 -1 -2677 2277 -1 -2278 2278 6 -2279 2278 -1 -2298 2278 -1 -2678 2278 -1 -2279 2279 6 -2280 2279 -1 -2299 2279 -1 -2679 2279 -1 -2280 2280 6 -2300 2280 -1 -2680 2280 -1 -2281 2281 6 -2282 2281 -1 -2301 2281 -1 -2681 2281 -1 -2282 2282 6 -2283 2282 -1 -2302 2282 -1 -2682 2282 -1 -2283 2283 6 -2284 2283 -1 -2303 2283 -1 -2683 2283 -1 -2284 2284 6 -2285 2284 -1 -2304 2284 -1 -2684 2284 -1 -2285 2285 6 -2286 2285 -1 -2305 2285 -1 -2685 2285 -1 -2286 2286 6 -2287 2286 -1 -2306 2286 -1 -2686 2286 -1 -2287 2287 6 -2288 2287 -1 -2307 2287 -1 -2687 2287 -1 -2288 2288 6 -2289 2288 -1 -2308 2288 -1 -2688 2288 -1 -2289 2289 6 -2290 2289 -1 -2309 2289 -1 -2689 2289 -1 -2290 2290 6 -2291 2290 -1 -2310 2290 -1 -2690 2290 -1 -2291 2291 6 -2292 2291 -1 -2311 2291 -1 -2691 2291 -1 -2292 2292 6 -2293 2292 -1 -2312 2292 -1 -2692 2292 -1 -2293 2293 6 -2294 2293 -1 -2313 2293 -1 -2693 2293 -1 -2294 2294 6 -2295 2294 -1 -2314 2294 -1 -2694 2294 -1 -2295 2295 6 -2296 2295 -1 -2315 2295 -1 -2695 2295 -1 -2296 2296 6 -2297 2296 -1 -2316 2296 -1 -2696 2296 -1 -2297 2297 6 -2298 2297 -1 -2317 2297 -1 -2697 2297 -1 -2298 2298 6 -2299 2298 -1 -2318 2298 -1 -2698 2298 -1 -2299 2299 6 -2300 2299 -1 -2319 2299 -1 -2699 2299 -1 -2300 2300 6 -2320 2300 -1 -2700 2300 -1 -2301 2301 6 -2302 2301 -1 -2321 2301 -1 -2701 2301 -1 -2302 2302 6 -2303 2302 -1 -2322 2302 -1 -2702 2302 -1 -2303 2303 6 -2304 2303 -1 -2323 2303 -1 -2703 2303 -1 -2304 2304 6 -2305 2304 -1 -2324 2304 -1 -2704 2304 -1 -2305 2305 6 -2306 2305 -1 -2325 2305 -1 -2705 2305 -1 -2306 2306 6 -2307 2306 -1 -2326 2306 -1 -2706 2306 -1 -2307 2307 6 -2308 2307 -1 -2327 2307 -1 -2707 2307 -1 -2308 2308 6 -2309 2308 -1 -2328 2308 -1 -2708 2308 -1 -2309 2309 6 -2310 2309 -1 -2329 2309 -1 -2709 2309 -1 -2310 2310 6 -2311 2310 -1 -2330 2310 -1 -2710 2310 -1 -2311 2311 6 -2312 2311 -1 -2331 2311 -1 -2711 2311 -1 -2312 2312 6 -2313 2312 -1 -2332 2312 -1 -2712 2312 -1 -2313 2313 6 -2314 2313 -1 -2333 2313 -1 -2713 2313 -1 -2314 2314 6 -2315 2314 -1 -2334 2314 -1 -2714 2314 -1 -2315 2315 6 -2316 2315 -1 -2335 2315 -1 -2715 2315 -1 -2316 2316 6 -2317 2316 -1 -2336 2316 -1 -2716 2316 -1 -2317 2317 6 -2318 2317 -1 -2337 2317 -1 -2717 2317 -1 -2318 2318 6 -2319 2318 -1 -2338 2318 -1 -2718 2318 -1 -2319 2319 6 -2320 2319 -1 -2339 2319 -1 -2719 2319 -1 -2320 2320 6 -2340 2320 -1 -2720 2320 -1 -2321 2321 6 -2322 2321 -1 -2341 2321 -1 -2721 2321 -1 -2322 2322 6 -2323 2322 -1 -2342 2322 -1 -2722 2322 -1 -2323 2323 6 -2324 2323 -1 -2343 2323 -1 -2723 2323 -1 -2324 2324 6 -2325 2324 -1 -2344 2324 -1 -2724 2324 -1 -2325 2325 6 -2326 2325 -1 -2345 2325 -1 -2725 2325 -1 -2326 2326 6 -2327 2326 -1 -2346 2326 -1 -2726 2326 -1 -2327 2327 6 -2328 2327 -1 -2347 2327 -1 -2727 2327 -1 -2328 2328 6 -2329 2328 -1 -2348 2328 -1 -2728 2328 -1 -2329 2329 6 -2330 2329 -1 -2349 2329 -1 -2729 2329 -1 -2330 2330 6 -2331 2330 -1 -2350 2330 -1 -2730 2330 -1 -2331 2331 6 -2332 2331 -1 -2351 2331 -1 -2731 2331 -1 -2332 2332 6 -2333 2332 -1 -2352 2332 -1 -2732 2332 -1 -2333 2333 6 -2334 2333 -1 -2353 2333 -1 -2733 2333 -1 -2334 2334 6 -2335 2334 -1 -2354 2334 -1 -2734 2334 -1 -2335 2335 6 -2336 2335 -1 -2355 2335 -1 -2735 2335 -1 -2336 2336 6 -2337 2336 -1 -2356 2336 -1 -2736 2336 -1 -2337 2337 6 -2338 2337 -1 -2357 2337 -1 -2737 2337 -1 -2338 2338 6 -2339 2338 -1 -2358 2338 -1 -2738 2338 -1 -2339 2339 6 -2340 2339 -1 -2359 2339 -1 -2739 2339 -1 -2340 2340 6 -2360 2340 -1 -2740 2340 -1 -2341 2341 6 -2342 2341 -1 -2361 2341 -1 -2741 2341 -1 -2342 2342 6 -2343 2342 -1 -2362 2342 -1 -2742 2342 -1 -2343 2343 6 -2344 2343 -1 -2363 2343 -1 -2743 2343 -1 -2344 2344 6 -2345 2344 -1 -2364 2344 -1 -2744 2344 -1 -2345 2345 6 -2346 2345 -1 -2365 2345 -1 -2745 2345 -1 -2346 2346 6 -2347 2346 -1 -2366 2346 -1 -2746 2346 -1 -2347 2347 6 -2348 2347 -1 -2367 2347 -1 -2747 2347 -1 -2348 2348 6 -2349 2348 -1 -2368 2348 -1 -2748 2348 -1 -2349 2349 6 -2350 2349 -1 -2369 2349 -1 -2749 2349 -1 -2350 2350 6 -2351 2350 -1 -2370 2350 -1 -2750 2350 -1 -2351 2351 6 -2352 2351 -1 -2371 2351 -1 -2751 2351 -1 -2352 2352 6 -2353 2352 -1 -2372 2352 -1 -2752 2352 -1 -2353 2353 6 -2354 2353 -1 -2373 2353 -1 -2753 2353 -1 -2354 2354 6 -2355 2354 -1 -2374 2354 -1 -2754 2354 -1 -2355 2355 6 -2356 2355 -1 -2375 2355 -1 -2755 2355 -1 -2356 2356 6 -2357 2356 -1 -2376 2356 -1 -2756 2356 -1 -2357 2357 6 -2358 2357 -1 -2377 2357 -1 -2757 2357 -1 -2358 2358 6 -2359 2358 -1 -2378 2358 -1 -2758 2358 -1 -2359 2359 6 -2360 2359 -1 -2379 2359 -1 -2759 2359 -1 -2360 2360 6 -2380 2360 -1 -2760 2360 -1 -2361 2361 6 -2362 2361 -1 -2381 2361 -1 -2761 2361 -1 -2362 2362 6 -2363 2362 -1 -2382 2362 -1 -2762 2362 -1 -2363 2363 6 -2364 2363 -1 -2383 2363 -1 -2763 2363 -1 -2364 2364 6 -2365 2364 -1 -2384 2364 -1 -2764 2364 -1 -2365 2365 6 -2366 2365 -1 -2385 2365 -1 -2765 2365 -1 -2366 2366 6 -2367 2366 -1 -2386 2366 -1 -2766 2366 -1 -2367 2367 6 -2368 2367 -1 -2387 2367 -1 -2767 2367 -1 -2368 2368 6 -2369 2368 -1 -2388 2368 -1 -2768 2368 -1 -2369 2369 6 -2370 2369 -1 -2389 2369 -1 -2769 2369 -1 -2370 2370 6 -2371 2370 -1 -2390 2370 -1 -2770 2370 -1 -2371 2371 6 -2372 2371 -1 -2391 2371 -1 -2771 2371 -1 -2372 2372 6 -2373 2372 -1 -2392 2372 -1 -2772 2372 -1 -2373 2373 6 -2374 2373 -1 -2393 2373 -1 -2773 2373 -1 -2374 2374 6 -2375 2374 -1 -2394 2374 -1 -2774 2374 -1 -2375 2375 6 -2376 2375 -1 -2395 2375 -1 -2775 2375 -1 -2376 2376 6 -2377 2376 -1 -2396 2376 -1 -2776 2376 -1 -2377 2377 6 -2378 2377 -1 -2397 2377 -1 -2777 2377 -1 -2378 2378 6 -2379 2378 -1 -2398 2378 -1 -2778 2378 -1 -2379 2379 6 -2380 2379 -1 -2399 2379 -1 -2779 2379 -1 -2380 2380 6 -2400 2380 -1 -2780 2380 -1 -2381 2381 6 -2382 2381 -1 -2781 2381 -1 -2382 2382 6 -2383 2382 -1 -2782 2382 -1 -2383 2383 6 -2384 2383 -1 -2783 2383 -1 -2384 2384 6 -2385 2384 -1 -2784 2384 -1 -2385 2385 6 -2386 2385 -1 -2785 2385 -1 -2386 2386 6 -2387 2386 -1 -2786 2386 -1 -2387 2387 6 -2388 2387 -1 -2787 2387 -1 -2388 2388 6 -2389 2388 -1 -2788 2388 -1 -2389 2389 6 -2390 2389 -1 -2789 2389 -1 -2390 2390 6 -2391 2390 -1 -2790 2390 -1 -2391 2391 6 -2392 2391 -1 -2791 2391 -1 -2392 2392 6 -2393 2392 -1 -2792 2392 -1 -2393 2393 6 -2394 2393 -1 -2793 2393 -1 -2394 2394 6 -2395 2394 -1 -2794 2394 -1 -2395 2395 6 -2396 2395 -1 -2795 2395 -1 -2396 2396 6 -2397 2396 -1 -2796 2396 -1 -2397 2397 6 -2398 2397 -1 -2797 2397 -1 -2398 2398 6 -2399 2398 -1 -2798 2398 -1 -2399 2399 6 -2400 2399 -1 -2799 2399 -1 -2400 2400 6 -2800 2400 -1 -2401 2401 6 -2402 2401 -1 -2421 2401 -1 -2801 2401 -1 -2402 2402 6 -2403 2402 -1 -2422 2402 -1 -2802 2402 -1 -2403 2403 6 -2404 2403 -1 -2423 2403 -1 -2803 2403 -1 -2404 2404 6 -2405 2404 -1 -2424 2404 -1 -2804 2404 -1 -2405 2405 6 -2406 2405 -1 -2425 2405 -1 -2805 2405 -1 -2406 2406 6 -2407 2406 -1 -2426 2406 -1 -2806 2406 -1 -2407 2407 6 -2408 2407 -1 -2427 2407 -1 -2807 2407 -1 -2408 2408 6 -2409 2408 -1 -2428 2408 -1 -2808 2408 -1 -2409 2409 6 -2410 2409 -1 -2429 2409 -1 -2809 2409 -1 -2410 2410 6 -2411 2410 -1 -2430 2410 -1 -2810 2410 -1 -2411 2411 6 -2412 2411 -1 -2431 2411 -1 -2811 2411 -1 -2412 2412 6 -2413 2412 -1 -2432 2412 -1 -2812 2412 -1 -2413 2413 6 -2414 2413 -1 -2433 2413 -1 -2813 2413 -1 -2414 2414 6 -2415 2414 -1 -2434 2414 -1 -2814 2414 -1 -2415 2415 6 -2416 2415 -1 -2435 2415 -1 -2815 2415 -1 -2416 2416 6 -2417 2416 -1 -2436 2416 -1 -2816 2416 -1 -2417 2417 6 -2418 2417 -1 -2437 2417 -1 -2817 2417 -1 -2418 2418 6 -2419 2418 -1 -2438 2418 -1 -2818 2418 -1 -2419 2419 6 -2420 2419 -1 -2439 2419 -1 -2819 2419 -1 -2420 2420 6 -2440 2420 -1 -2820 2420 -1 -2421 2421 6 -2422 2421 -1 -2441 2421 -1 -2821 2421 -1 -2422 2422 6 -2423 2422 -1 -2442 2422 -1 -2822 2422 -1 -2423 2423 6 -2424 2423 -1 -2443 2423 -1 -2823 2423 -1 -2424 2424 6 -2425 2424 -1 -2444 2424 -1 -2824 2424 -1 -2425 2425 6 -2426 2425 -1 -2445 2425 -1 -2825 2425 -1 -2426 2426 6 -2427 2426 -1 -2446 2426 -1 -2826 2426 -1 -2427 2427 6 -2428 2427 -1 -2447 2427 -1 -2827 2427 -1 -2428 2428 6 -2429 2428 -1 -2448 2428 -1 -2828 2428 -1 -2429 2429 6 -2430 2429 -1 -2449 2429 -1 -2829 2429 -1 -2430 2430 6 -2431 2430 -1 -2450 2430 -1 -2830 2430 -1 -2431 2431 6 -2432 2431 -1 -2451 2431 -1 -2831 2431 -1 -2432 2432 6 -2433 2432 -1 -2452 2432 -1 -2832 2432 -1 -2433 2433 6 -2434 2433 -1 -2453 2433 -1 -2833 2433 -1 -2434 2434 6 -2435 2434 -1 -2454 2434 -1 -2834 2434 -1 -2435 2435 6 -2436 2435 -1 -2455 2435 -1 -2835 2435 -1 -2436 2436 6 -2437 2436 -1 -2456 2436 -1 -2836 2436 -1 -2437 2437 6 -2438 2437 -1 -2457 2437 -1 -2837 2437 -1 -2438 2438 6 -2439 2438 -1 -2458 2438 -1 -2838 2438 -1 -2439 2439 6 -2440 2439 -1 -2459 2439 -1 -2839 2439 -1 -2440 2440 6 -2460 2440 -1 -2840 2440 -1 -2441 2441 6 -2442 2441 -1 -2461 2441 -1 -2841 2441 -1 -2442 2442 6 -2443 2442 -1 -2462 2442 -1 -2842 2442 -1 -2443 2443 6 -2444 2443 -1 -2463 2443 -1 -2843 2443 -1 -2444 2444 6 -2445 2444 -1 -2464 2444 -1 -2844 2444 -1 -2445 2445 6 -2446 2445 -1 -2465 2445 -1 -2845 2445 -1 -2446 2446 6 -2447 2446 -1 -2466 2446 -1 -2846 2446 -1 -2447 2447 6 -2448 2447 -1 -2467 2447 -1 -2847 2447 -1 -2448 2448 6 -2449 2448 -1 -2468 2448 -1 -2848 2448 -1 -2449 2449 6 -2450 2449 -1 -2469 2449 -1 -2849 2449 -1 -2450 2450 6 -2451 2450 -1 -2470 2450 -1 -2850 2450 -1 -2451 2451 6 -2452 2451 -1 -2471 2451 -1 -2851 2451 -1 -2452 2452 6 -2453 2452 -1 -2472 2452 -1 -2852 2452 -1 -2453 2453 6 -2454 2453 -1 -2473 2453 -1 -2853 2453 -1 -2454 2454 6 -2455 2454 -1 -2474 2454 -1 -2854 2454 -1 -2455 2455 6 -2456 2455 -1 -2475 2455 -1 -2855 2455 -1 -2456 2456 6 -2457 2456 -1 -2476 2456 -1 -2856 2456 -1 -2457 2457 6 -2458 2457 -1 -2477 2457 -1 -2857 2457 -1 -2458 2458 6 -2459 2458 -1 -2478 2458 -1 -2858 2458 -1 -2459 2459 6 -2460 2459 -1 -2479 2459 -1 -2859 2459 -1 -2460 2460 6 -2480 2460 -1 -2860 2460 -1 -2461 2461 6 -2462 2461 -1 -2481 2461 -1 -2861 2461 -1 -2462 2462 6 -2463 2462 -1 -2482 2462 -1 -2862 2462 -1 -2463 2463 6 -2464 2463 -1 -2483 2463 -1 -2863 2463 -1 -2464 2464 6 -2465 2464 -1 -2484 2464 -1 -2864 2464 -1 -2465 2465 6 -2466 2465 -1 -2485 2465 -1 -2865 2465 -1 -2466 2466 6 -2467 2466 -1 -2486 2466 -1 -2866 2466 -1 -2467 2467 6 -2468 2467 -1 -2487 2467 -1 -2867 2467 -1 -2468 2468 6 -2469 2468 -1 -2488 2468 -1 -2868 2468 -1 -2469 2469 6 -2470 2469 -1 -2489 2469 -1 -2869 2469 -1 -2470 2470 6 -2471 2470 -1 -2490 2470 -1 -2870 2470 -1 -2471 2471 6 -2472 2471 -1 -2491 2471 -1 -2871 2471 -1 -2472 2472 6 -2473 2472 -1 -2492 2472 -1 -2872 2472 -1 -2473 2473 6 -2474 2473 -1 -2493 2473 -1 -2873 2473 -1 -2474 2474 6 -2475 2474 -1 -2494 2474 -1 -2874 2474 -1 -2475 2475 6 -2476 2475 -1 -2495 2475 -1 -2875 2475 -1 -2476 2476 6 -2477 2476 -1 -2496 2476 -1 -2876 2476 -1 -2477 2477 6 -2478 2477 -1 -2497 2477 -1 -2877 2477 -1 -2478 2478 6 -2479 2478 -1 -2498 2478 -1 -2878 2478 -1 -2479 2479 6 -2480 2479 -1 -2499 2479 -1 -2879 2479 -1 -2480 2480 6 -2500 2480 -1 -2880 2480 -1 -2481 2481 6 -2482 2481 -1 -2501 2481 -1 -2881 2481 -1 -2482 2482 6 -2483 2482 -1 -2502 2482 -1 -2882 2482 -1 -2483 2483 6 -2484 2483 -1 -2503 2483 -1 -2883 2483 -1 -2484 2484 6 -2485 2484 -1 -2504 2484 -1 -2884 2484 -1 -2485 2485 6 -2486 2485 -1 -2505 2485 -1 -2885 2485 -1 -2486 2486 6 -2487 2486 -1 -2506 2486 -1 -2886 2486 -1 -2487 2487 6 -2488 2487 -1 -2507 2487 -1 -2887 2487 -1 -2488 2488 6 -2489 2488 -1 -2508 2488 -1 -2888 2488 -1 -2489 2489 6 -2490 2489 -1 -2509 2489 -1 -2889 2489 -1 -2490 2490 6 -2491 2490 -1 -2510 2490 -1 -2890 2490 -1 -2491 2491 6 -2492 2491 -1 -2511 2491 -1 -2891 2491 -1 -2492 2492 6 -2493 2492 -1 -2512 2492 -1 -2892 2492 -1 -2493 2493 6 -2494 2493 -1 -2513 2493 -1 -2893 2493 -1 -2494 2494 6 -2495 2494 -1 -2514 2494 -1 -2894 2494 -1 -2495 2495 6 -2496 2495 -1 -2515 2495 -1 -2895 2495 -1 -2496 2496 6 -2497 2496 -1 -2516 2496 -1 -2896 2496 -1 -2497 2497 6 -2498 2497 -1 -2517 2497 -1 -2897 2497 -1 -2498 2498 6 -2499 2498 -1 -2518 2498 -1 -2898 2498 -1 -2499 2499 6 -2500 2499 -1 -2519 2499 -1 -2899 2499 -1 -2500 2500 6 -2520 2500 -1 -2900 2500 -1 -2501 2501 6 -2502 2501 -1 -2521 2501 -1 -2901 2501 -1 -2502 2502 6 -2503 2502 -1 -2522 2502 -1 -2902 2502 -1 -2503 2503 6 -2504 2503 -1 -2523 2503 -1 -2903 2503 -1 -2504 2504 6 -2505 2504 -1 -2524 2504 -1 -2904 2504 -1 -2505 2505 6 -2506 2505 -1 -2525 2505 -1 -2905 2505 -1 -2506 2506 6 -2507 2506 -1 -2526 2506 -1 -2906 2506 -1 -2507 2507 6 -2508 2507 -1 -2527 2507 -1 -2907 2507 -1 -2508 2508 6 -2509 2508 -1 -2528 2508 -1 -2908 2508 -1 -2509 2509 6 -2510 2509 -1 -2529 2509 -1 -2909 2509 -1 -2510 2510 6 -2511 2510 -1 -2530 2510 -1 -2910 2510 -1 -2511 2511 6 -2512 2511 -1 -2531 2511 -1 -2911 2511 -1 -2512 2512 6 -2513 2512 -1 -2532 2512 -1 -2912 2512 -1 -2513 2513 6 -2514 2513 -1 -2533 2513 -1 -2913 2513 -1 -2514 2514 6 -2515 2514 -1 -2534 2514 -1 -2914 2514 -1 -2515 2515 6 -2516 2515 -1 -2535 2515 -1 -2915 2515 -1 -2516 2516 6 -2517 2516 -1 -2536 2516 -1 -2916 2516 -1 -2517 2517 6 -2518 2517 -1 -2537 2517 -1 -2917 2517 -1 -2518 2518 6 -2519 2518 -1 -2538 2518 -1 -2918 2518 -1 -2519 2519 6 -2520 2519 -1 -2539 2519 -1 -2919 2519 -1 -2520 2520 6 -2540 2520 -1 -2920 2520 -1 -2521 2521 6 -2522 2521 -1 -2541 2521 -1 -2921 2521 -1 -2522 2522 6 -2523 2522 -1 -2542 2522 -1 -2922 2522 -1 -2523 2523 6 -2524 2523 -1 -2543 2523 -1 -2923 2523 -1 -2524 2524 6 -2525 2524 -1 -2544 2524 -1 -2924 2524 -1 -2525 2525 6 -2526 2525 -1 -2545 2525 -1 -2925 2525 -1 -2526 2526 6 -2527 2526 -1 -2546 2526 -1 -2926 2526 -1 -2527 2527 6 -2528 2527 -1 -2547 2527 -1 -2927 2527 -1 -2528 2528 6 -2529 2528 -1 -2548 2528 -1 -2928 2528 -1 -2529 2529 6 -2530 2529 -1 -2549 2529 -1 -2929 2529 -1 -2530 2530 6 -2531 2530 -1 -2550 2530 -1 -2930 2530 -1 -2531 2531 6 -2532 2531 -1 -2551 2531 -1 -2931 2531 -1 -2532 2532 6 -2533 2532 -1 -2552 2532 -1 -2932 2532 -1 -2533 2533 6 -2534 2533 -1 -2553 2533 -1 -2933 2533 -1 -2534 2534 6 -2535 2534 -1 -2554 2534 -1 -2934 2534 -1 -2535 2535 6 -2536 2535 -1 -2555 2535 -1 -2935 2535 -1 -2536 2536 6 -2537 2536 -1 -2556 2536 -1 -2936 2536 -1 -2537 2537 6 -2538 2537 -1 -2557 2537 -1 -2937 2537 -1 -2538 2538 6 -2539 2538 -1 -2558 2538 -1 -2938 2538 -1 -2539 2539 6 -2540 2539 -1 -2559 2539 -1 -2939 2539 -1 -2540 2540 6 -2560 2540 -1 -2940 2540 -1 -2541 2541 6 -2542 2541 -1 -2561 2541 -1 -2941 2541 -1 -2542 2542 6 -2543 2542 -1 -2562 2542 -1 -2942 2542 -1 -2543 2543 6 -2544 2543 -1 -2563 2543 -1 -2943 2543 -1 -2544 2544 6 -2545 2544 -1 -2564 2544 -1 -2944 2544 -1 -2545 2545 6 -2546 2545 -1 -2565 2545 -1 -2945 2545 -1 -2546 2546 6 -2547 2546 -1 -2566 2546 -1 -2946 2546 -1 -2547 2547 6 -2548 2547 -1 -2567 2547 -1 -2947 2547 -1 -2548 2548 6 -2549 2548 -1 -2568 2548 -1 -2948 2548 -1 -2549 2549 6 -2550 2549 -1 -2569 2549 -1 -2949 2549 -1 -2550 2550 6 -2551 2550 -1 -2570 2550 -1 -2950 2550 -1 -2551 2551 6 -2552 2551 -1 -2571 2551 -1 -2951 2551 -1 -2552 2552 6 -2553 2552 -1 -2572 2552 -1 -2952 2552 -1 -2553 2553 6 -2554 2553 -1 -2573 2553 -1 -2953 2553 -1 -2554 2554 6 -2555 2554 -1 -2574 2554 -1 -2954 2554 -1 -2555 2555 6 -2556 2555 -1 -2575 2555 -1 -2955 2555 -1 -2556 2556 6 -2557 2556 -1 -2576 2556 -1 -2956 2556 -1 -2557 2557 6 -2558 2557 -1 -2577 2557 -1 -2957 2557 -1 -2558 2558 6 -2559 2558 -1 -2578 2558 -1 -2958 2558 -1 -2559 2559 6 -2560 2559 -1 -2579 2559 -1 -2959 2559 -1 -2560 2560 6 -2580 2560 -1 -2960 2560 -1 -2561 2561 6 -2562 2561 -1 -2581 2561 -1 -2961 2561 -1 -2562 2562 6 -2563 2562 -1 -2582 2562 -1 -2962 2562 -1 -2563 2563 6 -2564 2563 -1 -2583 2563 -1 -2963 2563 -1 -2564 2564 6 -2565 2564 -1 -2584 2564 -1 -2964 2564 -1 -2565 2565 6 -2566 2565 -1 -2585 2565 -1 -2965 2565 -1 -2566 2566 6 -2567 2566 -1 -2586 2566 -1 -2966 2566 -1 -2567 2567 6 -2568 2567 -1 -2587 2567 -1 -2967 2567 -1 -2568 2568 6 -2569 2568 -1 -2588 2568 -1 -2968 2568 -1 -2569 2569 6 -2570 2569 -1 -2589 2569 -1 -2969 2569 -1 -2570 2570 6 -2571 2570 -1 -2590 2570 -1 -2970 2570 -1 -2571 2571 6 -2572 2571 -1 -2591 2571 -1 -2971 2571 -1 -2572 2572 6 -2573 2572 -1 -2592 2572 -1 -2972 2572 -1 -2573 2573 6 -2574 2573 -1 -2593 2573 -1 -2973 2573 -1 -2574 2574 6 -2575 2574 -1 -2594 2574 -1 -2974 2574 -1 -2575 2575 6 -2576 2575 -1 -2595 2575 -1 -2975 2575 -1 -2576 2576 6 -2577 2576 -1 -2596 2576 -1 -2976 2576 -1 -2577 2577 6 -2578 2577 -1 -2597 2577 -1 -2977 2577 -1 -2578 2578 6 -2579 2578 -1 -2598 2578 -1 -2978 2578 -1 -2579 2579 6 -2580 2579 -1 -2599 2579 -1 -2979 2579 -1 -2580 2580 6 -2600 2580 -1 -2980 2580 -1 -2581 2581 6 -2582 2581 -1 -2601 2581 -1 -2981 2581 -1 -2582 2582 6 -2583 2582 -1 -2602 2582 -1 -2982 2582 -1 -2583 2583 6 -2584 2583 -1 -2603 2583 -1 -2983 2583 -1 -2584 2584 6 -2585 2584 -1 -2604 2584 -1 -2984 2584 -1 -2585 2585 6 -2586 2585 -1 -2605 2585 -1 -2985 2585 -1 -2586 2586 6 -2587 2586 -1 -2606 2586 -1 -2986 2586 -1 -2587 2587 6 -2588 2587 -1 -2607 2587 -1 -2987 2587 -1 -2588 2588 6 -2589 2588 -1 -2608 2588 -1 -2988 2588 -1 -2589 2589 6 -2590 2589 -1 -2609 2589 -1 -2989 2589 -1 -2590 2590 6 -2591 2590 -1 -2610 2590 -1 -2990 2590 -1 -2591 2591 6 -2592 2591 -1 -2611 2591 -1 -2991 2591 -1 -2592 2592 6 -2593 2592 -1 -2612 2592 -1 -2992 2592 -1 -2593 2593 6 -2594 2593 -1 -2613 2593 -1 -2993 2593 -1 -2594 2594 6 -2595 2594 -1 -2614 2594 -1 -2994 2594 -1 -2595 2595 6 -2596 2595 -1 -2615 2595 -1 -2995 2595 -1 -2596 2596 6 -2597 2596 -1 -2616 2596 -1 -2996 2596 -1 -2597 2597 6 -2598 2597 -1 -2617 2597 -1 -2997 2597 -1 -2598 2598 6 -2599 2598 -1 -2618 2598 -1 -2998 2598 -1 -2599 2599 6 -2600 2599 -1 -2619 2599 -1 -2999 2599 -1 -2600 2600 6 -2620 2600 -1 -3000 2600 -1 -2601 2601 6 -2602 2601 -1 -2621 2601 -1 -3001 2601 -1 -2602 2602 6 -2603 2602 -1 -2622 2602 -1 -3002 2602 -1 -2603 2603 6 -2604 2603 -1 -2623 2603 -1 -3003 2603 -1 -2604 2604 6 -2605 2604 -1 -2624 2604 -1 -3004 2604 -1 -2605 2605 6 -2606 2605 -1 -2625 2605 -1 -3005 2605 -1 -2606 2606 6 -2607 2606 -1 -2626 2606 -1 -3006 2606 -1 -2607 2607 6 -2608 2607 -1 -2627 2607 -1 -3007 2607 -1 -2608 2608 6 -2609 2608 -1 -2628 2608 -1 -3008 2608 -1 -2609 2609 6 -2610 2609 -1 -2629 2609 -1 -3009 2609 -1 -2610 2610 6 -2611 2610 -1 -2630 2610 -1 -3010 2610 -1 -2611 2611 6 -2612 2611 -1 -2631 2611 -1 -3011 2611 -1 -2612 2612 6 -2613 2612 -1 -2632 2612 -1 -3012 2612 -1 -2613 2613 6 -2614 2613 -1 -2633 2613 -1 -3013 2613 -1 -2614 2614 6 -2615 2614 -1 -2634 2614 -1 -3014 2614 -1 -2615 2615 6 -2616 2615 -1 -2635 2615 -1 -3015 2615 -1 -2616 2616 6 -2617 2616 -1 -2636 2616 -1 -3016 2616 -1 -2617 2617 6 -2618 2617 -1 -2637 2617 -1 -3017 2617 -1 -2618 2618 6 -2619 2618 -1 -2638 2618 -1 -3018 2618 -1 -2619 2619 6 -2620 2619 -1 -2639 2619 -1 -3019 2619 -1 -2620 2620 6 -2640 2620 -1 -3020 2620 -1 -2621 2621 6 -2622 2621 -1 -2641 2621 -1 -3021 2621 -1 -2622 2622 6 -2623 2622 -1 -2642 2622 -1 -3022 2622 -1 -2623 2623 6 -2624 2623 -1 -2643 2623 -1 -3023 2623 -1 -2624 2624 6 -2625 2624 -1 -2644 2624 -1 -3024 2624 -1 -2625 2625 6 -2626 2625 -1 -2645 2625 -1 -3025 2625 -1 -2626 2626 6 -2627 2626 -1 -2646 2626 -1 -3026 2626 -1 -2627 2627 6 -2628 2627 -1 -2647 2627 -1 -3027 2627 -1 -2628 2628 6 -2629 2628 -1 -2648 2628 -1 -3028 2628 -1 -2629 2629 6 -2630 2629 -1 -2649 2629 -1 -3029 2629 -1 -2630 2630 6 -2631 2630 -1 -2650 2630 -1 -3030 2630 -1 -2631 2631 6 -2632 2631 -1 -2651 2631 -1 -3031 2631 -1 -2632 2632 6 -2633 2632 -1 -2652 2632 -1 -3032 2632 -1 -2633 2633 6 -2634 2633 -1 -2653 2633 -1 -3033 2633 -1 -2634 2634 6 -2635 2634 -1 -2654 2634 -1 -3034 2634 -1 -2635 2635 6 -2636 2635 -1 -2655 2635 -1 -3035 2635 -1 -2636 2636 6 -2637 2636 -1 -2656 2636 -1 -3036 2636 -1 -2637 2637 6 -2638 2637 -1 -2657 2637 -1 -3037 2637 -1 -2638 2638 6 -2639 2638 -1 -2658 2638 -1 -3038 2638 -1 -2639 2639 6 -2640 2639 -1 -2659 2639 -1 -3039 2639 -1 -2640 2640 6 -2660 2640 -1 -3040 2640 -1 -2641 2641 6 -2642 2641 -1 -2661 2641 -1 -3041 2641 -1 -2642 2642 6 -2643 2642 -1 -2662 2642 -1 -3042 2642 -1 -2643 2643 6 -2644 2643 -1 -2663 2643 -1 -3043 2643 -1 -2644 2644 6 -2645 2644 -1 -2664 2644 -1 -3044 2644 -1 -2645 2645 6 -2646 2645 -1 -2665 2645 -1 -3045 2645 -1 -2646 2646 6 -2647 2646 -1 -2666 2646 -1 -3046 2646 -1 -2647 2647 6 -2648 2647 -1 -2667 2647 -1 -3047 2647 -1 -2648 2648 6 -2649 2648 -1 -2668 2648 -1 -3048 2648 -1 -2649 2649 6 -2650 2649 -1 -2669 2649 -1 -3049 2649 -1 -2650 2650 6 -2651 2650 -1 -2670 2650 -1 -3050 2650 -1 -2651 2651 6 -2652 2651 -1 -2671 2651 -1 -3051 2651 -1 -2652 2652 6 -2653 2652 -1 -2672 2652 -1 -3052 2652 -1 -2653 2653 6 -2654 2653 -1 -2673 2653 -1 -3053 2653 -1 -2654 2654 6 -2655 2654 -1 -2674 2654 -1 -3054 2654 -1 -2655 2655 6 -2656 2655 -1 -2675 2655 -1 -3055 2655 -1 -2656 2656 6 -2657 2656 -1 -2676 2656 -1 -3056 2656 -1 -2657 2657 6 -2658 2657 -1 -2677 2657 -1 -3057 2657 -1 -2658 2658 6 -2659 2658 -1 -2678 2658 -1 -3058 2658 -1 -2659 2659 6 -2660 2659 -1 -2679 2659 -1 -3059 2659 -1 -2660 2660 6 -2680 2660 -1 -3060 2660 -1 -2661 2661 6 -2662 2661 -1 -2681 2661 -1 -3061 2661 -1 -2662 2662 6 -2663 2662 -1 -2682 2662 -1 -3062 2662 -1 -2663 2663 6 -2664 2663 -1 -2683 2663 -1 -3063 2663 -1 -2664 2664 6 -2665 2664 -1 -2684 2664 -1 -3064 2664 -1 -2665 2665 6 -2666 2665 -1 -2685 2665 -1 -3065 2665 -1 -2666 2666 6 -2667 2666 -1 -2686 2666 -1 -3066 2666 -1 -2667 2667 6 -2668 2667 -1 -2687 2667 -1 -3067 2667 -1 -2668 2668 6 -2669 2668 -1 -2688 2668 -1 -3068 2668 -1 -2669 2669 6 -2670 2669 -1 -2689 2669 -1 -3069 2669 -1 -2670 2670 6 -2671 2670 -1 -2690 2670 -1 -3070 2670 -1 -2671 2671 6 -2672 2671 -1 -2691 2671 -1 -3071 2671 -1 -2672 2672 6 -2673 2672 -1 -2692 2672 -1 -3072 2672 -1 -2673 2673 6 -2674 2673 -1 -2693 2673 -1 -3073 2673 -1 -2674 2674 6 -2675 2674 -1 -2694 2674 -1 -3074 2674 -1 -2675 2675 6 -2676 2675 -1 -2695 2675 -1 -3075 2675 -1 -2676 2676 6 -2677 2676 -1 -2696 2676 -1 -3076 2676 -1 -2677 2677 6 -2678 2677 -1 -2697 2677 -1 -3077 2677 -1 -2678 2678 6 -2679 2678 -1 -2698 2678 -1 -3078 2678 -1 -2679 2679 6 -2680 2679 -1 -2699 2679 -1 -3079 2679 -1 -2680 2680 6 -2700 2680 -1 -3080 2680 -1 -2681 2681 6 -2682 2681 -1 -2701 2681 -1 -3081 2681 -1 -2682 2682 6 -2683 2682 -1 -2702 2682 -1 -3082 2682 -1 -2683 2683 6 -2684 2683 -1 -2703 2683 -1 -3083 2683 -1 -2684 2684 6 -2685 2684 -1 -2704 2684 -1 -3084 2684 -1 -2685 2685 6 -2686 2685 -1 -2705 2685 -1 -3085 2685 -1 -2686 2686 6 -2687 2686 -1 -2706 2686 -1 -3086 2686 -1 -2687 2687 6 -2688 2687 -1 -2707 2687 -1 -3087 2687 -1 -2688 2688 6 -2689 2688 -1 -2708 2688 -1 -3088 2688 -1 -2689 2689 6 -2690 2689 -1 -2709 2689 -1 -3089 2689 -1 -2690 2690 6 -2691 2690 -1 -2710 2690 -1 -3090 2690 -1 -2691 2691 6 -2692 2691 -1 -2711 2691 -1 -3091 2691 -1 -2692 2692 6 -2693 2692 -1 -2712 2692 -1 -3092 2692 -1 -2693 2693 6 -2694 2693 -1 -2713 2693 -1 -3093 2693 -1 -2694 2694 6 -2695 2694 -1 -2714 2694 -1 -3094 2694 -1 -2695 2695 6 -2696 2695 -1 -2715 2695 -1 -3095 2695 -1 -2696 2696 6 -2697 2696 -1 -2716 2696 -1 -3096 2696 -1 -2697 2697 6 -2698 2697 -1 -2717 2697 -1 -3097 2697 -1 -2698 2698 6 -2699 2698 -1 -2718 2698 -1 -3098 2698 -1 -2699 2699 6 -2700 2699 -1 -2719 2699 -1 -3099 2699 -1 -2700 2700 6 -2720 2700 -1 -3100 2700 -1 -2701 2701 6 -2702 2701 -1 -2721 2701 -1 -3101 2701 -1 -2702 2702 6 -2703 2702 -1 -2722 2702 -1 -3102 2702 -1 -2703 2703 6 -2704 2703 -1 -2723 2703 -1 -3103 2703 -1 -2704 2704 6 -2705 2704 -1 -2724 2704 -1 -3104 2704 -1 -2705 2705 6 -2706 2705 -1 -2725 2705 -1 -3105 2705 -1 -2706 2706 6 -2707 2706 -1 -2726 2706 -1 -3106 2706 -1 -2707 2707 6 -2708 2707 -1 -2727 2707 -1 -3107 2707 -1 -2708 2708 6 -2709 2708 -1 -2728 2708 -1 -3108 2708 -1 -2709 2709 6 -2710 2709 -1 -2729 2709 -1 -3109 2709 -1 -2710 2710 6 -2711 2710 -1 -2730 2710 -1 -3110 2710 -1 -2711 2711 6 -2712 2711 -1 -2731 2711 -1 -3111 2711 -1 -2712 2712 6 -2713 2712 -1 -2732 2712 -1 -3112 2712 -1 -2713 2713 6 -2714 2713 -1 -2733 2713 -1 -3113 2713 -1 -2714 2714 6 -2715 2714 -1 -2734 2714 -1 -3114 2714 -1 -2715 2715 6 -2716 2715 -1 -2735 2715 -1 -3115 2715 -1 -2716 2716 6 -2717 2716 -1 -2736 2716 -1 -3116 2716 -1 -2717 2717 6 -2718 2717 -1 -2737 2717 -1 -3117 2717 -1 -2718 2718 6 -2719 2718 -1 -2738 2718 -1 -3118 2718 -1 -2719 2719 6 -2720 2719 -1 -2739 2719 -1 -3119 2719 -1 -2720 2720 6 -2740 2720 -1 -3120 2720 -1 -2721 2721 6 -2722 2721 -1 -2741 2721 -1 -3121 2721 -1 -2722 2722 6 -2723 2722 -1 -2742 2722 -1 -3122 2722 -1 -2723 2723 6 -2724 2723 -1 -2743 2723 -1 -3123 2723 -1 -2724 2724 6 -2725 2724 -1 -2744 2724 -1 -3124 2724 -1 -2725 2725 6 -2726 2725 -1 -2745 2725 -1 -3125 2725 -1 -2726 2726 6 -2727 2726 -1 -2746 2726 -1 -3126 2726 -1 -2727 2727 6 -2728 2727 -1 -2747 2727 -1 -3127 2727 -1 -2728 2728 6 -2729 2728 -1 -2748 2728 -1 -3128 2728 -1 -2729 2729 6 -2730 2729 -1 -2749 2729 -1 -3129 2729 -1 -2730 2730 6 -2731 2730 -1 -2750 2730 -1 -3130 2730 -1 -2731 2731 6 -2732 2731 -1 -2751 2731 -1 -3131 2731 -1 -2732 2732 6 -2733 2732 -1 -2752 2732 -1 -3132 2732 -1 -2733 2733 6 -2734 2733 -1 -2753 2733 -1 -3133 2733 -1 -2734 2734 6 -2735 2734 -1 -2754 2734 -1 -3134 2734 -1 -2735 2735 6 -2736 2735 -1 -2755 2735 -1 -3135 2735 -1 -2736 2736 6 -2737 2736 -1 -2756 2736 -1 -3136 2736 -1 -2737 2737 6 -2738 2737 -1 -2757 2737 -1 -3137 2737 -1 -2738 2738 6 -2739 2738 -1 -2758 2738 -1 -3138 2738 -1 -2739 2739 6 -2740 2739 -1 -2759 2739 -1 -3139 2739 -1 -2740 2740 6 -2760 2740 -1 -3140 2740 -1 -2741 2741 6 -2742 2741 -1 -2761 2741 -1 -3141 2741 -1 -2742 2742 6 -2743 2742 -1 -2762 2742 -1 -3142 2742 -1 -2743 2743 6 -2744 2743 -1 -2763 2743 -1 -3143 2743 -1 -2744 2744 6 -2745 2744 -1 -2764 2744 -1 -3144 2744 -1 -2745 2745 6 -2746 2745 -1 -2765 2745 -1 -3145 2745 -1 -2746 2746 6 -2747 2746 -1 -2766 2746 -1 -3146 2746 -1 -2747 2747 6 -2748 2747 -1 -2767 2747 -1 -3147 2747 -1 -2748 2748 6 -2749 2748 -1 -2768 2748 -1 -3148 2748 -1 -2749 2749 6 -2750 2749 -1 -2769 2749 -1 -3149 2749 -1 -2750 2750 6 -2751 2750 -1 -2770 2750 -1 -3150 2750 -1 -2751 2751 6 -2752 2751 -1 -2771 2751 -1 -3151 2751 -1 -2752 2752 6 -2753 2752 -1 -2772 2752 -1 -3152 2752 -1 -2753 2753 6 -2754 2753 -1 -2773 2753 -1 -3153 2753 -1 -2754 2754 6 -2755 2754 -1 -2774 2754 -1 -3154 2754 -1 -2755 2755 6 -2756 2755 -1 -2775 2755 -1 -3155 2755 -1 -2756 2756 6 -2757 2756 -1 -2776 2756 -1 -3156 2756 -1 -2757 2757 6 -2758 2757 -1 -2777 2757 -1 -3157 2757 -1 -2758 2758 6 -2759 2758 -1 -2778 2758 -1 -3158 2758 -1 -2759 2759 6 -2760 2759 -1 -2779 2759 -1 -3159 2759 -1 -2760 2760 6 -2780 2760 -1 -3160 2760 -1 -2761 2761 6 -2762 2761 -1 -2781 2761 -1 -3161 2761 -1 -2762 2762 6 -2763 2762 -1 -2782 2762 -1 -3162 2762 -1 -2763 2763 6 -2764 2763 -1 -2783 2763 -1 -3163 2763 -1 -2764 2764 6 -2765 2764 -1 -2784 2764 -1 -3164 2764 -1 -2765 2765 6 -2766 2765 -1 -2785 2765 -1 -3165 2765 -1 -2766 2766 6 -2767 2766 -1 -2786 2766 -1 -3166 2766 -1 -2767 2767 6 -2768 2767 -1 -2787 2767 -1 -3167 2767 -1 -2768 2768 6 -2769 2768 -1 -2788 2768 -1 -3168 2768 -1 -2769 2769 6 -2770 2769 -1 -2789 2769 -1 -3169 2769 -1 -2770 2770 6 -2771 2770 -1 -2790 2770 -1 -3170 2770 -1 -2771 2771 6 -2772 2771 -1 -2791 2771 -1 -3171 2771 -1 -2772 2772 6 -2773 2772 -1 -2792 2772 -1 -3172 2772 -1 -2773 2773 6 -2774 2773 -1 -2793 2773 -1 -3173 2773 -1 -2774 2774 6 -2775 2774 -1 -2794 2774 -1 -3174 2774 -1 -2775 2775 6 -2776 2775 -1 -2795 2775 -1 -3175 2775 -1 -2776 2776 6 -2777 2776 -1 -2796 2776 -1 -3176 2776 -1 -2777 2777 6 -2778 2777 -1 -2797 2777 -1 -3177 2777 -1 -2778 2778 6 -2779 2778 -1 -2798 2778 -1 -3178 2778 -1 -2779 2779 6 -2780 2779 -1 -2799 2779 -1 -3179 2779 -1 -2780 2780 6 -2800 2780 -1 -3180 2780 -1 -2781 2781 6 -2782 2781 -1 -3181 2781 -1 -2782 2782 6 -2783 2782 -1 -3182 2782 -1 -2783 2783 6 -2784 2783 -1 -3183 2783 -1 -2784 2784 6 -2785 2784 -1 -3184 2784 -1 -2785 2785 6 -2786 2785 -1 -3185 2785 -1 -2786 2786 6 -2787 2786 -1 -3186 2786 -1 -2787 2787 6 -2788 2787 -1 -3187 2787 -1 -2788 2788 6 -2789 2788 -1 -3188 2788 -1 -2789 2789 6 -2790 2789 -1 -3189 2789 -1 -2790 2790 6 -2791 2790 -1 -3190 2790 -1 -2791 2791 6 -2792 2791 -1 -3191 2791 -1 -2792 2792 6 -2793 2792 -1 -3192 2792 -1 -2793 2793 6 -2794 2793 -1 -3193 2793 -1 -2794 2794 6 -2795 2794 -1 -3194 2794 -1 -2795 2795 6 -2796 2795 -1 -3195 2795 -1 -2796 2796 6 -2797 2796 -1 -3196 2796 -1 -2797 2797 6 -2798 2797 -1 -3197 2797 -1 -2798 2798 6 -2799 2798 -1 -3198 2798 -1 -2799 2799 6 -2800 2799 -1 -3199 2799 -1 -2800 2800 6 -3200 2800 -1 -2801 2801 6 -2802 2801 -1 -2821 2801 -1 -3201 2801 -1 -2802 2802 6 -2803 2802 -1 -2822 2802 -1 -3202 2802 -1 -2803 2803 6 -2804 2803 -1 -2823 2803 -1 -3203 2803 -1 -2804 2804 6 -2805 2804 -1 -2824 2804 -1 -3204 2804 -1 -2805 2805 6 -2806 2805 -1 -2825 2805 -1 -3205 2805 -1 -2806 2806 6 -2807 2806 -1 -2826 2806 -1 -3206 2806 -1 -2807 2807 6 -2808 2807 -1 -2827 2807 -1 -3207 2807 -1 -2808 2808 6 -2809 2808 -1 -2828 2808 -1 -3208 2808 -1 -2809 2809 6 -2810 2809 -1 -2829 2809 -1 -3209 2809 -1 -2810 2810 6 -2811 2810 -1 -2830 2810 -1 -3210 2810 -1 -2811 2811 6 -2812 2811 -1 -2831 2811 -1 -3211 2811 -1 -2812 2812 6 -2813 2812 -1 -2832 2812 -1 -3212 2812 -1 -2813 2813 6 -2814 2813 -1 -2833 2813 -1 -3213 2813 -1 -2814 2814 6 -2815 2814 -1 -2834 2814 -1 -3214 2814 -1 -2815 2815 6 -2816 2815 -1 -2835 2815 -1 -3215 2815 -1 -2816 2816 6 -2817 2816 -1 -2836 2816 -1 -3216 2816 -1 -2817 2817 6 -2818 2817 -1 -2837 2817 -1 -3217 2817 -1 -2818 2818 6 -2819 2818 -1 -2838 2818 -1 -3218 2818 -1 -2819 2819 6 -2820 2819 -1 -2839 2819 -1 -3219 2819 -1 -2820 2820 6 -2840 2820 -1 -3220 2820 -1 -2821 2821 6 -2822 2821 -1 -2841 2821 -1 -3221 2821 -1 -2822 2822 6 -2823 2822 -1 -2842 2822 -1 -3222 2822 -1 -2823 2823 6 -2824 2823 -1 -2843 2823 -1 -3223 2823 -1 -2824 2824 6 -2825 2824 -1 -2844 2824 -1 -3224 2824 -1 -2825 2825 6 -2826 2825 -1 -2845 2825 -1 -3225 2825 -1 -2826 2826 6 -2827 2826 -1 -2846 2826 -1 -3226 2826 -1 -2827 2827 6 -2828 2827 -1 -2847 2827 -1 -3227 2827 -1 -2828 2828 6 -2829 2828 -1 -2848 2828 -1 -3228 2828 -1 -2829 2829 6 -2830 2829 -1 -2849 2829 -1 -3229 2829 -1 -2830 2830 6 -2831 2830 -1 -2850 2830 -1 -3230 2830 -1 -2831 2831 6 -2832 2831 -1 -2851 2831 -1 -3231 2831 -1 -2832 2832 6 -2833 2832 -1 -2852 2832 -1 -3232 2832 -1 -2833 2833 6 -2834 2833 -1 -2853 2833 -1 -3233 2833 -1 -2834 2834 6 -2835 2834 -1 -2854 2834 -1 -3234 2834 -1 -2835 2835 6 -2836 2835 -1 -2855 2835 -1 -3235 2835 -1 -2836 2836 6 -2837 2836 -1 -2856 2836 -1 -3236 2836 -1 -2837 2837 6 -2838 2837 -1 -2857 2837 -1 -3237 2837 -1 -2838 2838 6 -2839 2838 -1 -2858 2838 -1 -3238 2838 -1 -2839 2839 6 -2840 2839 -1 -2859 2839 -1 -3239 2839 -1 -2840 2840 6 -2860 2840 -1 -3240 2840 -1 -2841 2841 6 -2842 2841 -1 -2861 2841 -1 -3241 2841 -1 -2842 2842 6 -2843 2842 -1 -2862 2842 -1 -3242 2842 -1 -2843 2843 6 -2844 2843 -1 -2863 2843 -1 -3243 2843 -1 -2844 2844 6 -2845 2844 -1 -2864 2844 -1 -3244 2844 -1 -2845 2845 6 -2846 2845 -1 -2865 2845 -1 -3245 2845 -1 -2846 2846 6 -2847 2846 -1 -2866 2846 -1 -3246 2846 -1 -2847 2847 6 -2848 2847 -1 -2867 2847 -1 -3247 2847 -1 -2848 2848 6 -2849 2848 -1 -2868 2848 -1 -3248 2848 -1 -2849 2849 6 -2850 2849 -1 -2869 2849 -1 -3249 2849 -1 -2850 2850 6 -2851 2850 -1 -2870 2850 -1 -3250 2850 -1 -2851 2851 6 -2852 2851 -1 -2871 2851 -1 -3251 2851 -1 -2852 2852 6 -2853 2852 -1 -2872 2852 -1 -3252 2852 -1 -2853 2853 6 -2854 2853 -1 -2873 2853 -1 -3253 2853 -1 -2854 2854 6 -2855 2854 -1 -2874 2854 -1 -3254 2854 -1 -2855 2855 6 -2856 2855 -1 -2875 2855 -1 -3255 2855 -1 -2856 2856 6 -2857 2856 -1 -2876 2856 -1 -3256 2856 -1 -2857 2857 6 -2858 2857 -1 -2877 2857 -1 -3257 2857 -1 -2858 2858 6 -2859 2858 -1 -2878 2858 -1 -3258 2858 -1 -2859 2859 6 -2860 2859 -1 -2879 2859 -1 -3259 2859 -1 -2860 2860 6 -2880 2860 -1 -3260 2860 -1 -2861 2861 6 -2862 2861 -1 -2881 2861 -1 -3261 2861 -1 -2862 2862 6 -2863 2862 -1 -2882 2862 -1 -3262 2862 -1 -2863 2863 6 -2864 2863 -1 -2883 2863 -1 -3263 2863 -1 -2864 2864 6 -2865 2864 -1 -2884 2864 -1 -3264 2864 -1 -2865 2865 6 -2866 2865 -1 -2885 2865 -1 -3265 2865 -1 -2866 2866 6 -2867 2866 -1 -2886 2866 -1 -3266 2866 -1 -2867 2867 6 -2868 2867 -1 -2887 2867 -1 -3267 2867 -1 -2868 2868 6 -2869 2868 -1 -2888 2868 -1 -3268 2868 -1 -2869 2869 6 -2870 2869 -1 -2889 2869 -1 -3269 2869 -1 -2870 2870 6 -2871 2870 -1 -2890 2870 -1 -3270 2870 -1 -2871 2871 6 -2872 2871 -1 -2891 2871 -1 -3271 2871 -1 -2872 2872 6 -2873 2872 -1 -2892 2872 -1 -3272 2872 -1 -2873 2873 6 -2874 2873 -1 -2893 2873 -1 -3273 2873 -1 -2874 2874 6 -2875 2874 -1 -2894 2874 -1 -3274 2874 -1 -2875 2875 6 -2876 2875 -1 -2895 2875 -1 -3275 2875 -1 -2876 2876 6 -2877 2876 -1 -2896 2876 -1 -3276 2876 -1 -2877 2877 6 -2878 2877 -1 -2897 2877 -1 -3277 2877 -1 -2878 2878 6 -2879 2878 -1 -2898 2878 -1 -3278 2878 -1 -2879 2879 6 -2880 2879 -1 -2899 2879 -1 -3279 2879 -1 -2880 2880 6 -2900 2880 -1 -3280 2880 -1 -2881 2881 6 -2882 2881 -1 -2901 2881 -1 -3281 2881 -1 -2882 2882 6 -2883 2882 -1 -2902 2882 -1 -3282 2882 -1 -2883 2883 6 -2884 2883 -1 -2903 2883 -1 -3283 2883 -1 -2884 2884 6 -2885 2884 -1 -2904 2884 -1 -3284 2884 -1 -2885 2885 6 -2886 2885 -1 -2905 2885 -1 -3285 2885 -1 -2886 2886 6 -2887 2886 -1 -2906 2886 -1 -3286 2886 -1 -2887 2887 6 -2888 2887 -1 -2907 2887 -1 -3287 2887 -1 -2888 2888 6 -2889 2888 -1 -2908 2888 -1 -3288 2888 -1 -2889 2889 6 -2890 2889 -1 -2909 2889 -1 -3289 2889 -1 -2890 2890 6 -2891 2890 -1 -2910 2890 -1 -3290 2890 -1 -2891 2891 6 -2892 2891 -1 -2911 2891 -1 -3291 2891 -1 -2892 2892 6 -2893 2892 -1 -2912 2892 -1 -3292 2892 -1 -2893 2893 6 -2894 2893 -1 -2913 2893 -1 -3293 2893 -1 -2894 2894 6 -2895 2894 -1 -2914 2894 -1 -3294 2894 -1 -2895 2895 6 -2896 2895 -1 -2915 2895 -1 -3295 2895 -1 -2896 2896 6 -2897 2896 -1 -2916 2896 -1 -3296 2896 -1 -2897 2897 6 -2898 2897 -1 -2917 2897 -1 -3297 2897 -1 -2898 2898 6 -2899 2898 -1 -2918 2898 -1 -3298 2898 -1 -2899 2899 6 -2900 2899 -1 -2919 2899 -1 -3299 2899 -1 -2900 2900 6 -2920 2900 -1 -3300 2900 -1 -2901 2901 6 -2902 2901 -1 -2921 2901 -1 -3301 2901 -1 -2902 2902 6 -2903 2902 -1 -2922 2902 -1 -3302 2902 -1 -2903 2903 6 -2904 2903 -1 -2923 2903 -1 -3303 2903 -1 -2904 2904 6 -2905 2904 -1 -2924 2904 -1 -3304 2904 -1 -2905 2905 6 -2906 2905 -1 -2925 2905 -1 -3305 2905 -1 -2906 2906 6 -2907 2906 -1 -2926 2906 -1 -3306 2906 -1 -2907 2907 6 -2908 2907 -1 -2927 2907 -1 -3307 2907 -1 -2908 2908 6 -2909 2908 -1 -2928 2908 -1 -3308 2908 -1 -2909 2909 6 -2910 2909 -1 -2929 2909 -1 -3309 2909 -1 -2910 2910 6 -2911 2910 -1 -2930 2910 -1 -3310 2910 -1 -2911 2911 6 -2912 2911 -1 -2931 2911 -1 -3311 2911 -1 -2912 2912 6 -2913 2912 -1 -2932 2912 -1 -3312 2912 -1 -2913 2913 6 -2914 2913 -1 -2933 2913 -1 -3313 2913 -1 -2914 2914 6 -2915 2914 -1 -2934 2914 -1 -3314 2914 -1 -2915 2915 6 -2916 2915 -1 -2935 2915 -1 -3315 2915 -1 -2916 2916 6 -2917 2916 -1 -2936 2916 -1 -3316 2916 -1 -2917 2917 6 -2918 2917 -1 -2937 2917 -1 -3317 2917 -1 -2918 2918 6 -2919 2918 -1 -2938 2918 -1 -3318 2918 -1 -2919 2919 6 -2920 2919 -1 -2939 2919 -1 -3319 2919 -1 -2920 2920 6 -2940 2920 -1 -3320 2920 -1 -2921 2921 6 -2922 2921 -1 -2941 2921 -1 -3321 2921 -1 -2922 2922 6 -2923 2922 -1 -2942 2922 -1 -3322 2922 -1 -2923 2923 6 -2924 2923 -1 -2943 2923 -1 -3323 2923 -1 -2924 2924 6 -2925 2924 -1 -2944 2924 -1 -3324 2924 -1 -2925 2925 6 -2926 2925 -1 -2945 2925 -1 -3325 2925 -1 -2926 2926 6 -2927 2926 -1 -2946 2926 -1 -3326 2926 -1 -2927 2927 6 -2928 2927 -1 -2947 2927 -1 -3327 2927 -1 -2928 2928 6 -2929 2928 -1 -2948 2928 -1 -3328 2928 -1 -2929 2929 6 -2930 2929 -1 -2949 2929 -1 -3329 2929 -1 -2930 2930 6 -2931 2930 -1 -2950 2930 -1 -3330 2930 -1 -2931 2931 6 -2932 2931 -1 -2951 2931 -1 -3331 2931 -1 -2932 2932 6 -2933 2932 -1 -2952 2932 -1 -3332 2932 -1 -2933 2933 6 -2934 2933 -1 -2953 2933 -1 -3333 2933 -1 -2934 2934 6 -2935 2934 -1 -2954 2934 -1 -3334 2934 -1 -2935 2935 6 -2936 2935 -1 -2955 2935 -1 -3335 2935 -1 -2936 2936 6 -2937 2936 -1 -2956 2936 -1 -3336 2936 -1 -2937 2937 6 -2938 2937 -1 -2957 2937 -1 -3337 2937 -1 -2938 2938 6 -2939 2938 -1 -2958 2938 -1 -3338 2938 -1 -2939 2939 6 -2940 2939 -1 -2959 2939 -1 -3339 2939 -1 -2940 2940 6 -2960 2940 -1 -3340 2940 -1 -2941 2941 6 -2942 2941 -1 -2961 2941 -1 -3341 2941 -1 -2942 2942 6 -2943 2942 -1 -2962 2942 -1 -3342 2942 -1 -2943 2943 6 -2944 2943 -1 -2963 2943 -1 -3343 2943 -1 -2944 2944 6 -2945 2944 -1 -2964 2944 -1 -3344 2944 -1 -2945 2945 6 -2946 2945 -1 -2965 2945 -1 -3345 2945 -1 -2946 2946 6 -2947 2946 -1 -2966 2946 -1 -3346 2946 -1 -2947 2947 6 -2948 2947 -1 -2967 2947 -1 -3347 2947 -1 -2948 2948 6 -2949 2948 -1 -2968 2948 -1 -3348 2948 -1 -2949 2949 6 -2950 2949 -1 -2969 2949 -1 -3349 2949 -1 -2950 2950 6 -2951 2950 -1 -2970 2950 -1 -3350 2950 -1 -2951 2951 6 -2952 2951 -1 -2971 2951 -1 -3351 2951 -1 -2952 2952 6 -2953 2952 -1 -2972 2952 -1 -3352 2952 -1 -2953 2953 6 -2954 2953 -1 -2973 2953 -1 -3353 2953 -1 -2954 2954 6 -2955 2954 -1 -2974 2954 -1 -3354 2954 -1 -2955 2955 6 -2956 2955 -1 -2975 2955 -1 -3355 2955 -1 -2956 2956 6 -2957 2956 -1 -2976 2956 -1 -3356 2956 -1 -2957 2957 6 -2958 2957 -1 -2977 2957 -1 -3357 2957 -1 -2958 2958 6 -2959 2958 -1 -2978 2958 -1 -3358 2958 -1 -2959 2959 6 -2960 2959 -1 -2979 2959 -1 -3359 2959 -1 -2960 2960 6 -2980 2960 -1 -3360 2960 -1 -2961 2961 6 -2962 2961 -1 -2981 2961 -1 -3361 2961 -1 -2962 2962 6 -2963 2962 -1 -2982 2962 -1 -3362 2962 -1 -2963 2963 6 -2964 2963 -1 -2983 2963 -1 -3363 2963 -1 -2964 2964 6 -2965 2964 -1 -2984 2964 -1 -3364 2964 -1 -2965 2965 6 -2966 2965 -1 -2985 2965 -1 -3365 2965 -1 -2966 2966 6 -2967 2966 -1 -2986 2966 -1 -3366 2966 -1 -2967 2967 6 -2968 2967 -1 -2987 2967 -1 -3367 2967 -1 -2968 2968 6 -2969 2968 -1 -2988 2968 -1 -3368 2968 -1 -2969 2969 6 -2970 2969 -1 -2989 2969 -1 -3369 2969 -1 -2970 2970 6 -2971 2970 -1 -2990 2970 -1 -3370 2970 -1 -2971 2971 6 -2972 2971 -1 -2991 2971 -1 -3371 2971 -1 -2972 2972 6 -2973 2972 -1 -2992 2972 -1 -3372 2972 -1 -2973 2973 6 -2974 2973 -1 -2993 2973 -1 -3373 2973 -1 -2974 2974 6 -2975 2974 -1 -2994 2974 -1 -3374 2974 -1 -2975 2975 6 -2976 2975 -1 -2995 2975 -1 -3375 2975 -1 -2976 2976 6 -2977 2976 -1 -2996 2976 -1 -3376 2976 -1 -2977 2977 6 -2978 2977 -1 -2997 2977 -1 -3377 2977 -1 -2978 2978 6 -2979 2978 -1 -2998 2978 -1 -3378 2978 -1 -2979 2979 6 -2980 2979 -1 -2999 2979 -1 -3379 2979 -1 -2980 2980 6 -3000 2980 -1 -3380 2980 -1 -2981 2981 6 -2982 2981 -1 -3001 2981 -1 -3381 2981 -1 -2982 2982 6 -2983 2982 -1 -3002 2982 -1 -3382 2982 -1 -2983 2983 6 -2984 2983 -1 -3003 2983 -1 -3383 2983 -1 -2984 2984 6 -2985 2984 -1 -3004 2984 -1 -3384 2984 -1 -2985 2985 6 -2986 2985 -1 -3005 2985 -1 -3385 2985 -1 -2986 2986 6 -2987 2986 -1 -3006 2986 -1 -3386 2986 -1 -2987 2987 6 -2988 2987 -1 -3007 2987 -1 -3387 2987 -1 -2988 2988 6 -2989 2988 -1 -3008 2988 -1 -3388 2988 -1 -2989 2989 6 -2990 2989 -1 -3009 2989 -1 -3389 2989 -1 -2990 2990 6 -2991 2990 -1 -3010 2990 -1 -3390 2990 -1 -2991 2991 6 -2992 2991 -1 -3011 2991 -1 -3391 2991 -1 -2992 2992 6 -2993 2992 -1 -3012 2992 -1 -3392 2992 -1 -2993 2993 6 -2994 2993 -1 -3013 2993 -1 -3393 2993 -1 -2994 2994 6 -2995 2994 -1 -3014 2994 -1 -3394 2994 -1 -2995 2995 6 -2996 2995 -1 -3015 2995 -1 -3395 2995 -1 -2996 2996 6 -2997 2996 -1 -3016 2996 -1 -3396 2996 -1 -2997 2997 6 -2998 2997 -1 -3017 2997 -1 -3397 2997 -1 -2998 2998 6 -2999 2998 -1 -3018 2998 -1 -3398 2998 -1 -2999 2999 6 -3000 2999 -1 -3019 2999 -1 -3399 2999 -1 -3000 3000 6 -3020 3000 -1 -3400 3000 -1 -3001 3001 6 -3002 3001 -1 -3021 3001 -1 -3401 3001 -1 -3002 3002 6 -3003 3002 -1 -3022 3002 -1 -3402 3002 -1 -3003 3003 6 -3004 3003 -1 -3023 3003 -1 -3403 3003 -1 -3004 3004 6 -3005 3004 -1 -3024 3004 -1 -3404 3004 -1 -3005 3005 6 -3006 3005 -1 -3025 3005 -1 -3405 3005 -1 -3006 3006 6 -3007 3006 -1 -3026 3006 -1 -3406 3006 -1 -3007 3007 6 -3008 3007 -1 -3027 3007 -1 -3407 3007 -1 -3008 3008 6 -3009 3008 -1 -3028 3008 -1 -3408 3008 -1 -3009 3009 6 -3010 3009 -1 -3029 3009 -1 -3409 3009 -1 -3010 3010 6 -3011 3010 -1 -3030 3010 -1 -3410 3010 -1 -3011 3011 6 -3012 3011 -1 -3031 3011 -1 -3411 3011 -1 -3012 3012 6 -3013 3012 -1 -3032 3012 -1 -3412 3012 -1 -3013 3013 6 -3014 3013 -1 -3033 3013 -1 -3413 3013 -1 -3014 3014 6 -3015 3014 -1 -3034 3014 -1 -3414 3014 -1 -3015 3015 6 -3016 3015 -1 -3035 3015 -1 -3415 3015 -1 -3016 3016 6 -3017 3016 -1 -3036 3016 -1 -3416 3016 -1 -3017 3017 6 -3018 3017 -1 -3037 3017 -1 -3417 3017 -1 -3018 3018 6 -3019 3018 -1 -3038 3018 -1 -3418 3018 -1 -3019 3019 6 -3020 3019 -1 -3039 3019 -1 -3419 3019 -1 -3020 3020 6 -3040 3020 -1 -3420 3020 -1 -3021 3021 6 -3022 3021 -1 -3041 3021 -1 -3421 3021 -1 -3022 3022 6 -3023 3022 -1 -3042 3022 -1 -3422 3022 -1 -3023 3023 6 -3024 3023 -1 -3043 3023 -1 -3423 3023 -1 -3024 3024 6 -3025 3024 -1 -3044 3024 -1 -3424 3024 -1 -3025 3025 6 -3026 3025 -1 -3045 3025 -1 -3425 3025 -1 -3026 3026 6 -3027 3026 -1 -3046 3026 -1 -3426 3026 -1 -3027 3027 6 -3028 3027 -1 -3047 3027 -1 -3427 3027 -1 -3028 3028 6 -3029 3028 -1 -3048 3028 -1 -3428 3028 -1 -3029 3029 6 -3030 3029 -1 -3049 3029 -1 -3429 3029 -1 -3030 3030 6 -3031 3030 -1 -3050 3030 -1 -3430 3030 -1 -3031 3031 6 -3032 3031 -1 -3051 3031 -1 -3431 3031 -1 -3032 3032 6 -3033 3032 -1 -3052 3032 -1 -3432 3032 -1 -3033 3033 6 -3034 3033 -1 -3053 3033 -1 -3433 3033 -1 -3034 3034 6 -3035 3034 -1 -3054 3034 -1 -3434 3034 -1 -3035 3035 6 -3036 3035 -1 -3055 3035 -1 -3435 3035 -1 -3036 3036 6 -3037 3036 -1 -3056 3036 -1 -3436 3036 -1 -3037 3037 6 -3038 3037 -1 -3057 3037 -1 -3437 3037 -1 -3038 3038 6 -3039 3038 -1 -3058 3038 -1 -3438 3038 -1 -3039 3039 6 -3040 3039 -1 -3059 3039 -1 -3439 3039 -1 -3040 3040 6 -3060 3040 -1 -3440 3040 -1 -3041 3041 6 -3042 3041 -1 -3061 3041 -1 -3441 3041 -1 -3042 3042 6 -3043 3042 -1 -3062 3042 -1 -3442 3042 -1 -3043 3043 6 -3044 3043 -1 -3063 3043 -1 -3443 3043 -1 -3044 3044 6 -3045 3044 -1 -3064 3044 -1 -3444 3044 -1 -3045 3045 6 -3046 3045 -1 -3065 3045 -1 -3445 3045 -1 -3046 3046 6 -3047 3046 -1 -3066 3046 -1 -3446 3046 -1 -3047 3047 6 -3048 3047 -1 -3067 3047 -1 -3447 3047 -1 -3048 3048 6 -3049 3048 -1 -3068 3048 -1 -3448 3048 -1 -3049 3049 6 -3050 3049 -1 -3069 3049 -1 -3449 3049 -1 -3050 3050 6 -3051 3050 -1 -3070 3050 -1 -3450 3050 -1 -3051 3051 6 -3052 3051 -1 -3071 3051 -1 -3451 3051 -1 -3052 3052 6 -3053 3052 -1 -3072 3052 -1 -3452 3052 -1 -3053 3053 6 -3054 3053 -1 -3073 3053 -1 -3453 3053 -1 -3054 3054 6 -3055 3054 -1 -3074 3054 -1 -3454 3054 -1 -3055 3055 6 -3056 3055 -1 -3075 3055 -1 -3455 3055 -1 -3056 3056 6 -3057 3056 -1 -3076 3056 -1 -3456 3056 -1 -3057 3057 6 -3058 3057 -1 -3077 3057 -1 -3457 3057 -1 -3058 3058 6 -3059 3058 -1 -3078 3058 -1 -3458 3058 -1 -3059 3059 6 -3060 3059 -1 -3079 3059 -1 -3459 3059 -1 -3060 3060 6 -3080 3060 -1 -3460 3060 -1 -3061 3061 6 -3062 3061 -1 -3081 3061 -1 -3461 3061 -1 -3062 3062 6 -3063 3062 -1 -3082 3062 -1 -3462 3062 -1 -3063 3063 6 -3064 3063 -1 -3083 3063 -1 -3463 3063 -1 -3064 3064 6 -3065 3064 -1 -3084 3064 -1 -3464 3064 -1 -3065 3065 6 -3066 3065 -1 -3085 3065 -1 -3465 3065 -1 -3066 3066 6 -3067 3066 -1 -3086 3066 -1 -3466 3066 -1 -3067 3067 6 -3068 3067 -1 -3087 3067 -1 -3467 3067 -1 -3068 3068 6 -3069 3068 -1 -3088 3068 -1 -3468 3068 -1 -3069 3069 6 -3070 3069 -1 -3089 3069 -1 -3469 3069 -1 -3070 3070 6 -3071 3070 -1 -3090 3070 -1 -3470 3070 -1 -3071 3071 6 -3072 3071 -1 -3091 3071 -1 -3471 3071 -1 -3072 3072 6 -3073 3072 -1 -3092 3072 -1 -3472 3072 -1 -3073 3073 6 -3074 3073 -1 -3093 3073 -1 -3473 3073 -1 -3074 3074 6 -3075 3074 -1 -3094 3074 -1 -3474 3074 -1 -3075 3075 6 -3076 3075 -1 -3095 3075 -1 -3475 3075 -1 -3076 3076 6 -3077 3076 -1 -3096 3076 -1 -3476 3076 -1 -3077 3077 6 -3078 3077 -1 -3097 3077 -1 -3477 3077 -1 -3078 3078 6 -3079 3078 -1 -3098 3078 -1 -3478 3078 -1 -3079 3079 6 -3080 3079 -1 -3099 3079 -1 -3479 3079 -1 -3080 3080 6 -3100 3080 -1 -3480 3080 -1 -3081 3081 6 -3082 3081 -1 -3101 3081 -1 -3481 3081 -1 -3082 3082 6 -3083 3082 -1 -3102 3082 -1 -3482 3082 -1 -3083 3083 6 -3084 3083 -1 -3103 3083 -1 -3483 3083 -1 -3084 3084 6 -3085 3084 -1 -3104 3084 -1 -3484 3084 -1 -3085 3085 6 -3086 3085 -1 -3105 3085 -1 -3485 3085 -1 -3086 3086 6 -3087 3086 -1 -3106 3086 -1 -3486 3086 -1 -3087 3087 6 -3088 3087 -1 -3107 3087 -1 -3487 3087 -1 -3088 3088 6 -3089 3088 -1 -3108 3088 -1 -3488 3088 -1 -3089 3089 6 -3090 3089 -1 -3109 3089 -1 -3489 3089 -1 -3090 3090 6 -3091 3090 -1 -3110 3090 -1 -3490 3090 -1 -3091 3091 6 -3092 3091 -1 -3111 3091 -1 -3491 3091 -1 -3092 3092 6 -3093 3092 -1 -3112 3092 -1 -3492 3092 -1 -3093 3093 6 -3094 3093 -1 -3113 3093 -1 -3493 3093 -1 -3094 3094 6 -3095 3094 -1 -3114 3094 -1 -3494 3094 -1 -3095 3095 6 -3096 3095 -1 -3115 3095 -1 -3495 3095 -1 -3096 3096 6 -3097 3096 -1 -3116 3096 -1 -3496 3096 -1 -3097 3097 6 -3098 3097 -1 -3117 3097 -1 -3497 3097 -1 -3098 3098 6 -3099 3098 -1 -3118 3098 -1 -3498 3098 -1 -3099 3099 6 -3100 3099 -1 -3119 3099 -1 -3499 3099 -1 -3100 3100 6 -3120 3100 -1 -3500 3100 -1 -3101 3101 6 -3102 3101 -1 -3121 3101 -1 -3501 3101 -1 -3102 3102 6 -3103 3102 -1 -3122 3102 -1 -3502 3102 -1 -3103 3103 6 -3104 3103 -1 -3123 3103 -1 -3503 3103 -1 -3104 3104 6 -3105 3104 -1 -3124 3104 -1 -3504 3104 -1 -3105 3105 6 -3106 3105 -1 -3125 3105 -1 -3505 3105 -1 -3106 3106 6 -3107 3106 -1 -3126 3106 -1 -3506 3106 -1 -3107 3107 6 -3108 3107 -1 -3127 3107 -1 -3507 3107 -1 -3108 3108 6 -3109 3108 -1 -3128 3108 -1 -3508 3108 -1 -3109 3109 6 -3110 3109 -1 -3129 3109 -1 -3509 3109 -1 -3110 3110 6 -3111 3110 -1 -3130 3110 -1 -3510 3110 -1 -3111 3111 6 -3112 3111 -1 -3131 3111 -1 -3511 3111 -1 -3112 3112 6 -3113 3112 -1 -3132 3112 -1 -3512 3112 -1 -3113 3113 6 -3114 3113 -1 -3133 3113 -1 -3513 3113 -1 -3114 3114 6 -3115 3114 -1 -3134 3114 -1 -3514 3114 -1 -3115 3115 6 -3116 3115 -1 -3135 3115 -1 -3515 3115 -1 -3116 3116 6 -3117 3116 -1 -3136 3116 -1 -3516 3116 -1 -3117 3117 6 -3118 3117 -1 -3137 3117 -1 -3517 3117 -1 -3118 3118 6 -3119 3118 -1 -3138 3118 -1 -3518 3118 -1 -3119 3119 6 -3120 3119 -1 -3139 3119 -1 -3519 3119 -1 -3120 3120 6 -3140 3120 -1 -3520 3120 -1 -3121 3121 6 -3122 3121 -1 -3141 3121 -1 -3521 3121 -1 -3122 3122 6 -3123 3122 -1 -3142 3122 -1 -3522 3122 -1 -3123 3123 6 -3124 3123 -1 -3143 3123 -1 -3523 3123 -1 -3124 3124 6 -3125 3124 -1 -3144 3124 -1 -3524 3124 -1 -3125 3125 6 -3126 3125 -1 -3145 3125 -1 -3525 3125 -1 -3126 3126 6 -3127 3126 -1 -3146 3126 -1 -3526 3126 -1 -3127 3127 6 -3128 3127 -1 -3147 3127 -1 -3527 3127 -1 -3128 3128 6 -3129 3128 -1 -3148 3128 -1 -3528 3128 -1 -3129 3129 6 -3130 3129 -1 -3149 3129 -1 -3529 3129 -1 -3130 3130 6 -3131 3130 -1 -3150 3130 -1 -3530 3130 -1 -3131 3131 6 -3132 3131 -1 -3151 3131 -1 -3531 3131 -1 -3132 3132 6 -3133 3132 -1 -3152 3132 -1 -3532 3132 -1 -3133 3133 6 -3134 3133 -1 -3153 3133 -1 -3533 3133 -1 -3134 3134 6 -3135 3134 -1 -3154 3134 -1 -3534 3134 -1 -3135 3135 6 -3136 3135 -1 -3155 3135 -1 -3535 3135 -1 -3136 3136 6 -3137 3136 -1 -3156 3136 -1 -3536 3136 -1 -3137 3137 6 -3138 3137 -1 -3157 3137 -1 -3537 3137 -1 -3138 3138 6 -3139 3138 -1 -3158 3138 -1 -3538 3138 -1 -3139 3139 6 -3140 3139 -1 -3159 3139 -1 -3539 3139 -1 -3140 3140 6 -3160 3140 -1 -3540 3140 -1 -3141 3141 6 -3142 3141 -1 -3161 3141 -1 -3541 3141 -1 -3142 3142 6 -3143 3142 -1 -3162 3142 -1 -3542 3142 -1 -3143 3143 6 -3144 3143 -1 -3163 3143 -1 -3543 3143 -1 -3144 3144 6 -3145 3144 -1 -3164 3144 -1 -3544 3144 -1 -3145 3145 6 -3146 3145 -1 -3165 3145 -1 -3545 3145 -1 -3146 3146 6 -3147 3146 -1 -3166 3146 -1 -3546 3146 -1 -3147 3147 6 -3148 3147 -1 -3167 3147 -1 -3547 3147 -1 -3148 3148 6 -3149 3148 -1 -3168 3148 -1 -3548 3148 -1 -3149 3149 6 -3150 3149 -1 -3169 3149 -1 -3549 3149 -1 -3150 3150 6 -3151 3150 -1 -3170 3150 -1 -3550 3150 -1 -3151 3151 6 -3152 3151 -1 -3171 3151 -1 -3551 3151 -1 -3152 3152 6 -3153 3152 -1 -3172 3152 -1 -3552 3152 -1 -3153 3153 6 -3154 3153 -1 -3173 3153 -1 -3553 3153 -1 -3154 3154 6 -3155 3154 -1 -3174 3154 -1 -3554 3154 -1 -3155 3155 6 -3156 3155 -1 -3175 3155 -1 -3555 3155 -1 -3156 3156 6 -3157 3156 -1 -3176 3156 -1 -3556 3156 -1 -3157 3157 6 -3158 3157 -1 -3177 3157 -1 -3557 3157 -1 -3158 3158 6 -3159 3158 -1 -3178 3158 -1 -3558 3158 -1 -3159 3159 6 -3160 3159 -1 -3179 3159 -1 -3559 3159 -1 -3160 3160 6 -3180 3160 -1 -3560 3160 -1 -3161 3161 6 -3162 3161 -1 -3181 3161 -1 -3561 3161 -1 -3162 3162 6 -3163 3162 -1 -3182 3162 -1 -3562 3162 -1 -3163 3163 6 -3164 3163 -1 -3183 3163 -1 -3563 3163 -1 -3164 3164 6 -3165 3164 -1 -3184 3164 -1 -3564 3164 -1 -3165 3165 6 -3166 3165 -1 -3185 3165 -1 -3565 3165 -1 -3166 3166 6 -3167 3166 -1 -3186 3166 -1 -3566 3166 -1 -3167 3167 6 -3168 3167 -1 -3187 3167 -1 -3567 3167 -1 -3168 3168 6 -3169 3168 -1 -3188 3168 -1 -3568 3168 -1 -3169 3169 6 -3170 3169 -1 -3189 3169 -1 -3569 3169 -1 -3170 3170 6 -3171 3170 -1 -3190 3170 -1 -3570 3170 -1 -3171 3171 6 -3172 3171 -1 -3191 3171 -1 -3571 3171 -1 -3172 3172 6 -3173 3172 -1 -3192 3172 -1 -3572 3172 -1 -3173 3173 6 -3174 3173 -1 -3193 3173 -1 -3573 3173 -1 -3174 3174 6 -3175 3174 -1 -3194 3174 -1 -3574 3174 -1 -3175 3175 6 -3176 3175 -1 -3195 3175 -1 -3575 3175 -1 -3176 3176 6 -3177 3176 -1 -3196 3176 -1 -3576 3176 -1 -3177 3177 6 -3178 3177 -1 -3197 3177 -1 -3577 3177 -1 -3178 3178 6 -3179 3178 -1 -3198 3178 -1 -3578 3178 -1 -3179 3179 6 -3180 3179 -1 -3199 3179 -1 -3579 3179 -1 -3180 3180 6 -3200 3180 -1 -3580 3180 -1 -3181 3181 6 -3182 3181 -1 -3581 3181 -1 -3182 3182 6 -3183 3182 -1 -3582 3182 -1 -3183 3183 6 -3184 3183 -1 -3583 3183 -1 -3184 3184 6 -3185 3184 -1 -3584 3184 -1 -3185 3185 6 -3186 3185 -1 -3585 3185 -1 -3186 3186 6 -3187 3186 -1 -3586 3186 -1 -3187 3187 6 -3188 3187 -1 -3587 3187 -1 -3188 3188 6 -3189 3188 -1 -3588 3188 -1 -3189 3189 6 -3190 3189 -1 -3589 3189 -1 -3190 3190 6 -3191 3190 -1 -3590 3190 -1 -3191 3191 6 -3192 3191 -1 -3591 3191 -1 -3192 3192 6 -3193 3192 -1 -3592 3192 -1 -3193 3193 6 -3194 3193 -1 -3593 3193 -1 -3194 3194 6 -3195 3194 -1 -3594 3194 -1 -3195 3195 6 -3196 3195 -1 -3595 3195 -1 -3196 3196 6 -3197 3196 -1 -3596 3196 -1 -3197 3197 6 -3198 3197 -1 -3597 3197 -1 -3198 3198 6 -3199 3198 -1 -3598 3198 -1 -3199 3199 6 -3200 3199 -1 -3599 3199 -1 -3200 3200 6 -3600 3200 -1 -3201 3201 6 -3202 3201 -1 -3221 3201 -1 -3601 3201 -1 -3202 3202 6 -3203 3202 -1 -3222 3202 -1 -3602 3202 -1 -3203 3203 6 -3204 3203 -1 -3223 3203 -1 -3603 3203 -1 -3204 3204 6 -3205 3204 -1 -3224 3204 -1 -3604 3204 -1 -3205 3205 6 -3206 3205 -1 -3225 3205 -1 -3605 3205 -1 -3206 3206 6 -3207 3206 -1 -3226 3206 -1 -3606 3206 -1 -3207 3207 6 -3208 3207 -1 -3227 3207 -1 -3607 3207 -1 -3208 3208 6 -3209 3208 -1 -3228 3208 -1 -3608 3208 -1 -3209 3209 6 -3210 3209 -1 -3229 3209 -1 -3609 3209 -1 -3210 3210 6 -3211 3210 -1 -3230 3210 -1 -3610 3210 -1 -3211 3211 6 -3212 3211 -1 -3231 3211 -1 -3611 3211 -1 -3212 3212 6 -3213 3212 -1 -3232 3212 -1 -3612 3212 -1 -3213 3213 6 -3214 3213 -1 -3233 3213 -1 -3613 3213 -1 -3214 3214 6 -3215 3214 -1 -3234 3214 -1 -3614 3214 -1 -3215 3215 6 -3216 3215 -1 -3235 3215 -1 -3615 3215 -1 -3216 3216 6 -3217 3216 -1 -3236 3216 -1 -3616 3216 -1 -3217 3217 6 -3218 3217 -1 -3237 3217 -1 -3617 3217 -1 -3218 3218 6 -3219 3218 -1 -3238 3218 -1 -3618 3218 -1 -3219 3219 6 -3220 3219 -1 -3239 3219 -1 -3619 3219 -1 -3220 3220 6 -3240 3220 -1 -3620 3220 -1 -3221 3221 6 -3222 3221 -1 -3241 3221 -1 -3621 3221 -1 -3222 3222 6 -3223 3222 -1 -3242 3222 -1 -3622 3222 -1 -3223 3223 6 -3224 3223 -1 -3243 3223 -1 -3623 3223 -1 -3224 3224 6 -3225 3224 -1 -3244 3224 -1 -3624 3224 -1 -3225 3225 6 -3226 3225 -1 -3245 3225 -1 -3625 3225 -1 -3226 3226 6 -3227 3226 -1 -3246 3226 -1 -3626 3226 -1 -3227 3227 6 -3228 3227 -1 -3247 3227 -1 -3627 3227 -1 -3228 3228 6 -3229 3228 -1 -3248 3228 -1 -3628 3228 -1 -3229 3229 6 -3230 3229 -1 -3249 3229 -1 -3629 3229 -1 -3230 3230 6 -3231 3230 -1 -3250 3230 -1 -3630 3230 -1 -3231 3231 6 -3232 3231 -1 -3251 3231 -1 -3631 3231 -1 -3232 3232 6 -3233 3232 -1 -3252 3232 -1 -3632 3232 -1 -3233 3233 6 -3234 3233 -1 -3253 3233 -1 -3633 3233 -1 -3234 3234 6 -3235 3234 -1 -3254 3234 -1 -3634 3234 -1 -3235 3235 6 -3236 3235 -1 -3255 3235 -1 -3635 3235 -1 -3236 3236 6 -3237 3236 -1 -3256 3236 -1 -3636 3236 -1 -3237 3237 6 -3238 3237 -1 -3257 3237 -1 -3637 3237 -1 -3238 3238 6 -3239 3238 -1 -3258 3238 -1 -3638 3238 -1 -3239 3239 6 -3240 3239 -1 -3259 3239 -1 -3639 3239 -1 -3240 3240 6 -3260 3240 -1 -3640 3240 -1 -3241 3241 6 -3242 3241 -1 -3261 3241 -1 -3641 3241 -1 -3242 3242 6 -3243 3242 -1 -3262 3242 -1 -3642 3242 -1 -3243 3243 6 -3244 3243 -1 -3263 3243 -1 -3643 3243 -1 -3244 3244 6 -3245 3244 -1 -3264 3244 -1 -3644 3244 -1 -3245 3245 6 -3246 3245 -1 -3265 3245 -1 -3645 3245 -1 -3246 3246 6 -3247 3246 -1 -3266 3246 -1 -3646 3246 -1 -3247 3247 6 -3248 3247 -1 -3267 3247 -1 -3647 3247 -1 -3248 3248 6 -3249 3248 -1 -3268 3248 -1 -3648 3248 -1 -3249 3249 6 -3250 3249 -1 -3269 3249 -1 -3649 3249 -1 -3250 3250 6 -3251 3250 -1 -3270 3250 -1 -3650 3250 -1 -3251 3251 6 -3252 3251 -1 -3271 3251 -1 -3651 3251 -1 -3252 3252 6 -3253 3252 -1 -3272 3252 -1 -3652 3252 -1 -3253 3253 6 -3254 3253 -1 -3273 3253 -1 -3653 3253 -1 -3254 3254 6 -3255 3254 -1 -3274 3254 -1 -3654 3254 -1 -3255 3255 6 -3256 3255 -1 -3275 3255 -1 -3655 3255 -1 -3256 3256 6 -3257 3256 -1 -3276 3256 -1 -3656 3256 -1 -3257 3257 6 -3258 3257 -1 -3277 3257 -1 -3657 3257 -1 -3258 3258 6 -3259 3258 -1 -3278 3258 -1 -3658 3258 -1 -3259 3259 6 -3260 3259 -1 -3279 3259 -1 -3659 3259 -1 -3260 3260 6 -3280 3260 -1 -3660 3260 -1 -3261 3261 6 -3262 3261 -1 -3281 3261 -1 -3661 3261 -1 -3262 3262 6 -3263 3262 -1 -3282 3262 -1 -3662 3262 -1 -3263 3263 6 -3264 3263 -1 -3283 3263 -1 -3663 3263 -1 -3264 3264 6 -3265 3264 -1 -3284 3264 -1 -3664 3264 -1 -3265 3265 6 -3266 3265 -1 -3285 3265 -1 -3665 3265 -1 -3266 3266 6 -3267 3266 -1 -3286 3266 -1 -3666 3266 -1 -3267 3267 6 -3268 3267 -1 -3287 3267 -1 -3667 3267 -1 -3268 3268 6 -3269 3268 -1 -3288 3268 -1 -3668 3268 -1 -3269 3269 6 -3270 3269 -1 -3289 3269 -1 -3669 3269 -1 -3270 3270 6 -3271 3270 -1 -3290 3270 -1 -3670 3270 -1 -3271 3271 6 -3272 3271 -1 -3291 3271 -1 -3671 3271 -1 -3272 3272 6 -3273 3272 -1 -3292 3272 -1 -3672 3272 -1 -3273 3273 6 -3274 3273 -1 -3293 3273 -1 -3673 3273 -1 -3274 3274 6 -3275 3274 -1 -3294 3274 -1 -3674 3274 -1 -3275 3275 6 -3276 3275 -1 -3295 3275 -1 -3675 3275 -1 -3276 3276 6 -3277 3276 -1 -3296 3276 -1 -3676 3276 -1 -3277 3277 6 -3278 3277 -1 -3297 3277 -1 -3677 3277 -1 -3278 3278 6 -3279 3278 -1 -3298 3278 -1 -3678 3278 -1 -3279 3279 6 -3280 3279 -1 -3299 3279 -1 -3679 3279 -1 -3280 3280 6 -3300 3280 -1 -3680 3280 -1 -3281 3281 6 -3282 3281 -1 -3301 3281 -1 -3681 3281 -1 -3282 3282 6 -3283 3282 -1 -3302 3282 -1 -3682 3282 -1 -3283 3283 6 -3284 3283 -1 -3303 3283 -1 -3683 3283 -1 -3284 3284 6 -3285 3284 -1 -3304 3284 -1 -3684 3284 -1 -3285 3285 6 -3286 3285 -1 -3305 3285 -1 -3685 3285 -1 -3286 3286 6 -3287 3286 -1 -3306 3286 -1 -3686 3286 -1 -3287 3287 6 -3288 3287 -1 -3307 3287 -1 -3687 3287 -1 -3288 3288 6 -3289 3288 -1 -3308 3288 -1 -3688 3288 -1 -3289 3289 6 -3290 3289 -1 -3309 3289 -1 -3689 3289 -1 -3290 3290 6 -3291 3290 -1 -3310 3290 -1 -3690 3290 -1 -3291 3291 6 -3292 3291 -1 -3311 3291 -1 -3691 3291 -1 -3292 3292 6 -3293 3292 -1 -3312 3292 -1 -3692 3292 -1 -3293 3293 6 -3294 3293 -1 -3313 3293 -1 -3693 3293 -1 -3294 3294 6 -3295 3294 -1 -3314 3294 -1 -3694 3294 -1 -3295 3295 6 -3296 3295 -1 -3315 3295 -1 -3695 3295 -1 -3296 3296 6 -3297 3296 -1 -3316 3296 -1 -3696 3296 -1 -3297 3297 6 -3298 3297 -1 -3317 3297 -1 -3697 3297 -1 -3298 3298 6 -3299 3298 -1 -3318 3298 -1 -3698 3298 -1 -3299 3299 6 -3300 3299 -1 -3319 3299 -1 -3699 3299 -1 -3300 3300 6 -3320 3300 -1 -3700 3300 -1 -3301 3301 6 -3302 3301 -1 -3321 3301 -1 -3701 3301 -1 -3302 3302 6 -3303 3302 -1 -3322 3302 -1 -3702 3302 -1 -3303 3303 6 -3304 3303 -1 -3323 3303 -1 -3703 3303 -1 -3304 3304 6 -3305 3304 -1 -3324 3304 -1 -3704 3304 -1 -3305 3305 6 -3306 3305 -1 -3325 3305 -1 -3705 3305 -1 -3306 3306 6 -3307 3306 -1 -3326 3306 -1 -3706 3306 -1 -3307 3307 6 -3308 3307 -1 -3327 3307 -1 -3707 3307 -1 -3308 3308 6 -3309 3308 -1 -3328 3308 -1 -3708 3308 -1 -3309 3309 6 -3310 3309 -1 -3329 3309 -1 -3709 3309 -1 -3310 3310 6 -3311 3310 -1 -3330 3310 -1 -3710 3310 -1 -3311 3311 6 -3312 3311 -1 -3331 3311 -1 -3711 3311 -1 -3312 3312 6 -3313 3312 -1 -3332 3312 -1 -3712 3312 -1 -3313 3313 6 -3314 3313 -1 -3333 3313 -1 -3713 3313 -1 -3314 3314 6 -3315 3314 -1 -3334 3314 -1 -3714 3314 -1 -3315 3315 6 -3316 3315 -1 -3335 3315 -1 -3715 3315 -1 -3316 3316 6 -3317 3316 -1 -3336 3316 -1 -3716 3316 -1 -3317 3317 6 -3318 3317 -1 -3337 3317 -1 -3717 3317 -1 -3318 3318 6 -3319 3318 -1 -3338 3318 -1 -3718 3318 -1 -3319 3319 6 -3320 3319 -1 -3339 3319 -1 -3719 3319 -1 -3320 3320 6 -3340 3320 -1 -3720 3320 -1 -3321 3321 6 -3322 3321 -1 -3341 3321 -1 -3721 3321 -1 -3322 3322 6 -3323 3322 -1 -3342 3322 -1 -3722 3322 -1 -3323 3323 6 -3324 3323 -1 -3343 3323 -1 -3723 3323 -1 -3324 3324 6 -3325 3324 -1 -3344 3324 -1 -3724 3324 -1 -3325 3325 6 -3326 3325 -1 -3345 3325 -1 -3725 3325 -1 -3326 3326 6 -3327 3326 -1 -3346 3326 -1 -3726 3326 -1 -3327 3327 6 -3328 3327 -1 -3347 3327 -1 -3727 3327 -1 -3328 3328 6 -3329 3328 -1 -3348 3328 -1 -3728 3328 -1 -3329 3329 6 -3330 3329 -1 -3349 3329 -1 -3729 3329 -1 -3330 3330 6 -3331 3330 -1 -3350 3330 -1 -3730 3330 -1 -3331 3331 6 -3332 3331 -1 -3351 3331 -1 -3731 3331 -1 -3332 3332 6 -3333 3332 -1 -3352 3332 -1 -3732 3332 -1 -3333 3333 6 -3334 3333 -1 -3353 3333 -1 -3733 3333 -1 -3334 3334 6 -3335 3334 -1 -3354 3334 -1 -3734 3334 -1 -3335 3335 6 -3336 3335 -1 -3355 3335 -1 -3735 3335 -1 -3336 3336 6 -3337 3336 -1 -3356 3336 -1 -3736 3336 -1 -3337 3337 6 -3338 3337 -1 -3357 3337 -1 -3737 3337 -1 -3338 3338 6 -3339 3338 -1 -3358 3338 -1 -3738 3338 -1 -3339 3339 6 -3340 3339 -1 -3359 3339 -1 -3739 3339 -1 -3340 3340 6 -3360 3340 -1 -3740 3340 -1 -3341 3341 6 -3342 3341 -1 -3361 3341 -1 -3741 3341 -1 -3342 3342 6 -3343 3342 -1 -3362 3342 -1 -3742 3342 -1 -3343 3343 6 -3344 3343 -1 -3363 3343 -1 -3743 3343 -1 -3344 3344 6 -3345 3344 -1 -3364 3344 -1 -3744 3344 -1 -3345 3345 6 -3346 3345 -1 -3365 3345 -1 -3745 3345 -1 -3346 3346 6 -3347 3346 -1 -3366 3346 -1 -3746 3346 -1 -3347 3347 6 -3348 3347 -1 -3367 3347 -1 -3747 3347 -1 -3348 3348 6 -3349 3348 -1 -3368 3348 -1 -3748 3348 -1 -3349 3349 6 -3350 3349 -1 -3369 3349 -1 -3749 3349 -1 -3350 3350 6 -3351 3350 -1 -3370 3350 -1 -3750 3350 -1 -3351 3351 6 -3352 3351 -1 -3371 3351 -1 -3751 3351 -1 -3352 3352 6 -3353 3352 -1 -3372 3352 -1 -3752 3352 -1 -3353 3353 6 -3354 3353 -1 -3373 3353 -1 -3753 3353 -1 -3354 3354 6 -3355 3354 -1 -3374 3354 -1 -3754 3354 -1 -3355 3355 6 -3356 3355 -1 -3375 3355 -1 -3755 3355 -1 -3356 3356 6 -3357 3356 -1 -3376 3356 -1 -3756 3356 -1 -3357 3357 6 -3358 3357 -1 -3377 3357 -1 -3757 3357 -1 -3358 3358 6 -3359 3358 -1 -3378 3358 -1 -3758 3358 -1 -3359 3359 6 -3360 3359 -1 -3379 3359 -1 -3759 3359 -1 -3360 3360 6 -3380 3360 -1 -3760 3360 -1 -3361 3361 6 -3362 3361 -1 -3381 3361 -1 -3761 3361 -1 -3362 3362 6 -3363 3362 -1 -3382 3362 -1 -3762 3362 -1 -3363 3363 6 -3364 3363 -1 -3383 3363 -1 -3763 3363 -1 -3364 3364 6 -3365 3364 -1 -3384 3364 -1 -3764 3364 -1 -3365 3365 6 -3366 3365 -1 -3385 3365 -1 -3765 3365 -1 -3366 3366 6 -3367 3366 -1 -3386 3366 -1 -3766 3366 -1 -3367 3367 6 -3368 3367 -1 -3387 3367 -1 -3767 3367 -1 -3368 3368 6 -3369 3368 -1 -3388 3368 -1 -3768 3368 -1 -3369 3369 6 -3370 3369 -1 -3389 3369 -1 -3769 3369 -1 -3370 3370 6 -3371 3370 -1 -3390 3370 -1 -3770 3370 -1 -3371 3371 6 -3372 3371 -1 -3391 3371 -1 -3771 3371 -1 -3372 3372 6 -3373 3372 -1 -3392 3372 -1 -3772 3372 -1 -3373 3373 6 -3374 3373 -1 -3393 3373 -1 -3773 3373 -1 -3374 3374 6 -3375 3374 -1 -3394 3374 -1 -3774 3374 -1 -3375 3375 6 -3376 3375 -1 -3395 3375 -1 -3775 3375 -1 -3376 3376 6 -3377 3376 -1 -3396 3376 -1 -3776 3376 -1 -3377 3377 6 -3378 3377 -1 -3397 3377 -1 -3777 3377 -1 -3378 3378 6 -3379 3378 -1 -3398 3378 -1 -3778 3378 -1 -3379 3379 6 -3380 3379 -1 -3399 3379 -1 -3779 3379 -1 -3380 3380 6 -3400 3380 -1 -3780 3380 -1 -3381 3381 6 -3382 3381 -1 -3401 3381 -1 -3781 3381 -1 -3382 3382 6 -3383 3382 -1 -3402 3382 -1 -3782 3382 -1 -3383 3383 6 -3384 3383 -1 -3403 3383 -1 -3783 3383 -1 -3384 3384 6 -3385 3384 -1 -3404 3384 -1 -3784 3384 -1 -3385 3385 6 -3386 3385 -1 -3405 3385 -1 -3785 3385 -1 -3386 3386 6 -3387 3386 -1 -3406 3386 -1 -3786 3386 -1 -3387 3387 6 -3388 3387 -1 -3407 3387 -1 -3787 3387 -1 -3388 3388 6 -3389 3388 -1 -3408 3388 -1 -3788 3388 -1 -3389 3389 6 -3390 3389 -1 -3409 3389 -1 -3789 3389 -1 -3390 3390 6 -3391 3390 -1 -3410 3390 -1 -3790 3390 -1 -3391 3391 6 -3392 3391 -1 -3411 3391 -1 -3791 3391 -1 -3392 3392 6 -3393 3392 -1 -3412 3392 -1 -3792 3392 -1 -3393 3393 6 -3394 3393 -1 -3413 3393 -1 -3793 3393 -1 -3394 3394 6 -3395 3394 -1 -3414 3394 -1 -3794 3394 -1 -3395 3395 6 -3396 3395 -1 -3415 3395 -1 -3795 3395 -1 -3396 3396 6 -3397 3396 -1 -3416 3396 -1 -3796 3396 -1 -3397 3397 6 -3398 3397 -1 -3417 3397 -1 -3797 3397 -1 -3398 3398 6 -3399 3398 -1 -3418 3398 -1 -3798 3398 -1 -3399 3399 6 -3400 3399 -1 -3419 3399 -1 -3799 3399 -1 -3400 3400 6 -3420 3400 -1 -3800 3400 -1 -3401 3401 6 -3402 3401 -1 -3421 3401 -1 -3801 3401 -1 -3402 3402 6 -3403 3402 -1 -3422 3402 -1 -3802 3402 -1 -3403 3403 6 -3404 3403 -1 -3423 3403 -1 -3803 3403 -1 -3404 3404 6 -3405 3404 -1 -3424 3404 -1 -3804 3404 -1 -3405 3405 6 -3406 3405 -1 -3425 3405 -1 -3805 3405 -1 -3406 3406 6 -3407 3406 -1 -3426 3406 -1 -3806 3406 -1 -3407 3407 6 -3408 3407 -1 -3427 3407 -1 -3807 3407 -1 -3408 3408 6 -3409 3408 -1 -3428 3408 -1 -3808 3408 -1 -3409 3409 6 -3410 3409 -1 -3429 3409 -1 -3809 3409 -1 -3410 3410 6 -3411 3410 -1 -3430 3410 -1 -3810 3410 -1 -3411 3411 6 -3412 3411 -1 -3431 3411 -1 -3811 3411 -1 -3412 3412 6 -3413 3412 -1 -3432 3412 -1 -3812 3412 -1 -3413 3413 6 -3414 3413 -1 -3433 3413 -1 -3813 3413 -1 -3414 3414 6 -3415 3414 -1 -3434 3414 -1 -3814 3414 -1 -3415 3415 6 -3416 3415 -1 -3435 3415 -1 -3815 3415 -1 -3416 3416 6 -3417 3416 -1 -3436 3416 -1 -3816 3416 -1 -3417 3417 6 -3418 3417 -1 -3437 3417 -1 -3817 3417 -1 -3418 3418 6 -3419 3418 -1 -3438 3418 -1 -3818 3418 -1 -3419 3419 6 -3420 3419 -1 -3439 3419 -1 -3819 3419 -1 -3420 3420 6 -3440 3420 -1 -3820 3420 -1 -3421 3421 6 -3422 3421 -1 -3441 3421 -1 -3821 3421 -1 -3422 3422 6 -3423 3422 -1 -3442 3422 -1 -3822 3422 -1 -3423 3423 6 -3424 3423 -1 -3443 3423 -1 -3823 3423 -1 -3424 3424 6 -3425 3424 -1 -3444 3424 -1 -3824 3424 -1 -3425 3425 6 -3426 3425 -1 -3445 3425 -1 -3825 3425 -1 -3426 3426 6 -3427 3426 -1 -3446 3426 -1 -3826 3426 -1 -3427 3427 6 -3428 3427 -1 -3447 3427 -1 -3827 3427 -1 -3428 3428 6 -3429 3428 -1 -3448 3428 -1 -3828 3428 -1 -3429 3429 6 -3430 3429 -1 -3449 3429 -1 -3829 3429 -1 -3430 3430 6 -3431 3430 -1 -3450 3430 -1 -3830 3430 -1 -3431 3431 6 -3432 3431 -1 -3451 3431 -1 -3831 3431 -1 -3432 3432 6 -3433 3432 -1 -3452 3432 -1 -3832 3432 -1 -3433 3433 6 -3434 3433 -1 -3453 3433 -1 -3833 3433 -1 -3434 3434 6 -3435 3434 -1 -3454 3434 -1 -3834 3434 -1 -3435 3435 6 -3436 3435 -1 -3455 3435 -1 -3835 3435 -1 -3436 3436 6 -3437 3436 -1 -3456 3436 -1 -3836 3436 -1 -3437 3437 6 -3438 3437 -1 -3457 3437 -1 -3837 3437 -1 -3438 3438 6 -3439 3438 -1 -3458 3438 -1 -3838 3438 -1 -3439 3439 6 -3440 3439 -1 -3459 3439 -1 -3839 3439 -1 -3440 3440 6 -3460 3440 -1 -3840 3440 -1 -3441 3441 6 -3442 3441 -1 -3461 3441 -1 -3841 3441 -1 -3442 3442 6 -3443 3442 -1 -3462 3442 -1 -3842 3442 -1 -3443 3443 6 -3444 3443 -1 -3463 3443 -1 -3843 3443 -1 -3444 3444 6 -3445 3444 -1 -3464 3444 -1 -3844 3444 -1 -3445 3445 6 -3446 3445 -1 -3465 3445 -1 -3845 3445 -1 -3446 3446 6 -3447 3446 -1 -3466 3446 -1 -3846 3446 -1 -3447 3447 6 -3448 3447 -1 -3467 3447 -1 -3847 3447 -1 -3448 3448 6 -3449 3448 -1 -3468 3448 -1 -3848 3448 -1 -3449 3449 6 -3450 3449 -1 -3469 3449 -1 -3849 3449 -1 -3450 3450 6 -3451 3450 -1 -3470 3450 -1 -3850 3450 -1 -3451 3451 6 -3452 3451 -1 -3471 3451 -1 -3851 3451 -1 -3452 3452 6 -3453 3452 -1 -3472 3452 -1 -3852 3452 -1 -3453 3453 6 -3454 3453 -1 -3473 3453 -1 -3853 3453 -1 -3454 3454 6 -3455 3454 -1 -3474 3454 -1 -3854 3454 -1 -3455 3455 6 -3456 3455 -1 -3475 3455 -1 -3855 3455 -1 -3456 3456 6 -3457 3456 -1 -3476 3456 -1 -3856 3456 -1 -3457 3457 6 -3458 3457 -1 -3477 3457 -1 -3857 3457 -1 -3458 3458 6 -3459 3458 -1 -3478 3458 -1 -3858 3458 -1 -3459 3459 6 -3460 3459 -1 -3479 3459 -1 -3859 3459 -1 -3460 3460 6 -3480 3460 -1 -3860 3460 -1 -3461 3461 6 -3462 3461 -1 -3481 3461 -1 -3861 3461 -1 -3462 3462 6 -3463 3462 -1 -3482 3462 -1 -3862 3462 -1 -3463 3463 6 -3464 3463 -1 -3483 3463 -1 -3863 3463 -1 -3464 3464 6 -3465 3464 -1 -3484 3464 -1 -3864 3464 -1 -3465 3465 6 -3466 3465 -1 -3485 3465 -1 -3865 3465 -1 -3466 3466 6 -3467 3466 -1 -3486 3466 -1 -3866 3466 -1 -3467 3467 6 -3468 3467 -1 -3487 3467 -1 -3867 3467 -1 -3468 3468 6 -3469 3468 -1 -3488 3468 -1 -3868 3468 -1 -3469 3469 6 -3470 3469 -1 -3489 3469 -1 -3869 3469 -1 -3470 3470 6 -3471 3470 -1 -3490 3470 -1 -3870 3470 -1 -3471 3471 6 -3472 3471 -1 -3491 3471 -1 -3871 3471 -1 -3472 3472 6 -3473 3472 -1 -3492 3472 -1 -3872 3472 -1 -3473 3473 6 -3474 3473 -1 -3493 3473 -1 -3873 3473 -1 -3474 3474 6 -3475 3474 -1 -3494 3474 -1 -3874 3474 -1 -3475 3475 6 -3476 3475 -1 -3495 3475 -1 -3875 3475 -1 -3476 3476 6 -3477 3476 -1 -3496 3476 -1 -3876 3476 -1 -3477 3477 6 -3478 3477 -1 -3497 3477 -1 -3877 3477 -1 -3478 3478 6 -3479 3478 -1 -3498 3478 -1 -3878 3478 -1 -3479 3479 6 -3480 3479 -1 -3499 3479 -1 -3879 3479 -1 -3480 3480 6 -3500 3480 -1 -3880 3480 -1 -3481 3481 6 -3482 3481 -1 -3501 3481 -1 -3881 3481 -1 -3482 3482 6 -3483 3482 -1 -3502 3482 -1 -3882 3482 -1 -3483 3483 6 -3484 3483 -1 -3503 3483 -1 -3883 3483 -1 -3484 3484 6 -3485 3484 -1 -3504 3484 -1 -3884 3484 -1 -3485 3485 6 -3486 3485 -1 -3505 3485 -1 -3885 3485 -1 -3486 3486 6 -3487 3486 -1 -3506 3486 -1 -3886 3486 -1 -3487 3487 6 -3488 3487 -1 -3507 3487 -1 -3887 3487 -1 -3488 3488 6 -3489 3488 -1 -3508 3488 -1 -3888 3488 -1 -3489 3489 6 -3490 3489 -1 -3509 3489 -1 -3889 3489 -1 -3490 3490 6 -3491 3490 -1 -3510 3490 -1 -3890 3490 -1 -3491 3491 6 -3492 3491 -1 -3511 3491 -1 -3891 3491 -1 -3492 3492 6 -3493 3492 -1 -3512 3492 -1 -3892 3492 -1 -3493 3493 6 -3494 3493 -1 -3513 3493 -1 -3893 3493 -1 -3494 3494 6 -3495 3494 -1 -3514 3494 -1 -3894 3494 -1 -3495 3495 6 -3496 3495 -1 -3515 3495 -1 -3895 3495 -1 -3496 3496 6 -3497 3496 -1 -3516 3496 -1 -3896 3496 -1 -3497 3497 6 -3498 3497 -1 -3517 3497 -1 -3897 3497 -1 -3498 3498 6 -3499 3498 -1 -3518 3498 -1 -3898 3498 -1 -3499 3499 6 -3500 3499 -1 -3519 3499 -1 -3899 3499 -1 -3500 3500 6 -3520 3500 -1 -3900 3500 -1 -3501 3501 6 -3502 3501 -1 -3521 3501 -1 -3901 3501 -1 -3502 3502 6 -3503 3502 -1 -3522 3502 -1 -3902 3502 -1 -3503 3503 6 -3504 3503 -1 -3523 3503 -1 -3903 3503 -1 -3504 3504 6 -3505 3504 -1 -3524 3504 -1 -3904 3504 -1 -3505 3505 6 -3506 3505 -1 -3525 3505 -1 -3905 3505 -1 -3506 3506 6 -3507 3506 -1 -3526 3506 -1 -3906 3506 -1 -3507 3507 6 -3508 3507 -1 -3527 3507 -1 -3907 3507 -1 -3508 3508 6 -3509 3508 -1 -3528 3508 -1 -3908 3508 -1 -3509 3509 6 -3510 3509 -1 -3529 3509 -1 -3909 3509 -1 -3510 3510 6 -3511 3510 -1 -3530 3510 -1 -3910 3510 -1 -3511 3511 6 -3512 3511 -1 -3531 3511 -1 -3911 3511 -1 -3512 3512 6 -3513 3512 -1 -3532 3512 -1 -3912 3512 -1 -3513 3513 6 -3514 3513 -1 -3533 3513 -1 -3913 3513 -1 -3514 3514 6 -3515 3514 -1 -3534 3514 -1 -3914 3514 -1 -3515 3515 6 -3516 3515 -1 -3535 3515 -1 -3915 3515 -1 -3516 3516 6 -3517 3516 -1 -3536 3516 -1 -3916 3516 -1 -3517 3517 6 -3518 3517 -1 -3537 3517 -1 -3917 3517 -1 -3518 3518 6 -3519 3518 -1 -3538 3518 -1 -3918 3518 -1 -3519 3519 6 -3520 3519 -1 -3539 3519 -1 -3919 3519 -1 -3520 3520 6 -3540 3520 -1 -3920 3520 -1 -3521 3521 6 -3522 3521 -1 -3541 3521 -1 -3921 3521 -1 -3522 3522 6 -3523 3522 -1 -3542 3522 -1 -3922 3522 -1 -3523 3523 6 -3524 3523 -1 -3543 3523 -1 -3923 3523 -1 -3524 3524 6 -3525 3524 -1 -3544 3524 -1 -3924 3524 -1 -3525 3525 6 -3526 3525 -1 -3545 3525 -1 -3925 3525 -1 -3526 3526 6 -3527 3526 -1 -3546 3526 -1 -3926 3526 -1 -3527 3527 6 -3528 3527 -1 -3547 3527 -1 -3927 3527 -1 -3528 3528 6 -3529 3528 -1 -3548 3528 -1 -3928 3528 -1 -3529 3529 6 -3530 3529 -1 -3549 3529 -1 -3929 3529 -1 -3530 3530 6 -3531 3530 -1 -3550 3530 -1 -3930 3530 -1 -3531 3531 6 -3532 3531 -1 -3551 3531 -1 -3931 3531 -1 -3532 3532 6 -3533 3532 -1 -3552 3532 -1 -3932 3532 -1 -3533 3533 6 -3534 3533 -1 -3553 3533 -1 -3933 3533 -1 -3534 3534 6 -3535 3534 -1 -3554 3534 -1 -3934 3534 -1 -3535 3535 6 -3536 3535 -1 -3555 3535 -1 -3935 3535 -1 -3536 3536 6 -3537 3536 -1 -3556 3536 -1 -3936 3536 -1 -3537 3537 6 -3538 3537 -1 -3557 3537 -1 -3937 3537 -1 -3538 3538 6 -3539 3538 -1 -3558 3538 -1 -3938 3538 -1 -3539 3539 6 -3540 3539 -1 -3559 3539 -1 -3939 3539 -1 -3540 3540 6 -3560 3540 -1 -3940 3540 -1 -3541 3541 6 -3542 3541 -1 -3561 3541 -1 -3941 3541 -1 -3542 3542 6 -3543 3542 -1 -3562 3542 -1 -3942 3542 -1 -3543 3543 6 -3544 3543 -1 -3563 3543 -1 -3943 3543 -1 -3544 3544 6 -3545 3544 -1 -3564 3544 -1 -3944 3544 -1 -3545 3545 6 -3546 3545 -1 -3565 3545 -1 -3945 3545 -1 -3546 3546 6 -3547 3546 -1 -3566 3546 -1 -3946 3546 -1 -3547 3547 6 -3548 3547 -1 -3567 3547 -1 -3947 3547 -1 -3548 3548 6 -3549 3548 -1 -3568 3548 -1 -3948 3548 -1 -3549 3549 6 -3550 3549 -1 -3569 3549 -1 -3949 3549 -1 -3550 3550 6 -3551 3550 -1 -3570 3550 -1 -3950 3550 -1 -3551 3551 6 -3552 3551 -1 -3571 3551 -1 -3951 3551 -1 -3552 3552 6 -3553 3552 -1 -3572 3552 -1 -3952 3552 -1 -3553 3553 6 -3554 3553 -1 -3573 3553 -1 -3953 3553 -1 -3554 3554 6 -3555 3554 -1 -3574 3554 -1 -3954 3554 -1 -3555 3555 6 -3556 3555 -1 -3575 3555 -1 -3955 3555 -1 -3556 3556 6 -3557 3556 -1 -3576 3556 -1 -3956 3556 -1 -3557 3557 6 -3558 3557 -1 -3577 3557 -1 -3957 3557 -1 -3558 3558 6 -3559 3558 -1 -3578 3558 -1 -3958 3558 -1 -3559 3559 6 -3560 3559 -1 -3579 3559 -1 -3959 3559 -1 -3560 3560 6 -3580 3560 -1 -3960 3560 -1 -3561 3561 6 -3562 3561 -1 -3581 3561 -1 -3961 3561 -1 -3562 3562 6 -3563 3562 -1 -3582 3562 -1 -3962 3562 -1 -3563 3563 6 -3564 3563 -1 -3583 3563 -1 -3963 3563 -1 -3564 3564 6 -3565 3564 -1 -3584 3564 -1 -3964 3564 -1 -3565 3565 6 -3566 3565 -1 -3585 3565 -1 -3965 3565 -1 -3566 3566 6 -3567 3566 -1 -3586 3566 -1 -3966 3566 -1 -3567 3567 6 -3568 3567 -1 -3587 3567 -1 -3967 3567 -1 -3568 3568 6 -3569 3568 -1 -3588 3568 -1 -3968 3568 -1 -3569 3569 6 -3570 3569 -1 -3589 3569 -1 -3969 3569 -1 -3570 3570 6 -3571 3570 -1 -3590 3570 -1 -3970 3570 -1 -3571 3571 6 -3572 3571 -1 -3591 3571 -1 -3971 3571 -1 -3572 3572 6 -3573 3572 -1 -3592 3572 -1 -3972 3572 -1 -3573 3573 6 -3574 3573 -1 -3593 3573 -1 -3973 3573 -1 -3574 3574 6 -3575 3574 -1 -3594 3574 -1 -3974 3574 -1 -3575 3575 6 -3576 3575 -1 -3595 3575 -1 -3975 3575 -1 -3576 3576 6 -3577 3576 -1 -3596 3576 -1 -3976 3576 -1 -3577 3577 6 -3578 3577 -1 -3597 3577 -1 -3977 3577 -1 -3578 3578 6 -3579 3578 -1 -3598 3578 -1 -3978 3578 -1 -3579 3579 6 -3580 3579 -1 -3599 3579 -1 -3979 3579 -1 -3580 3580 6 -3600 3580 -1 -3980 3580 -1 -3581 3581 6 -3582 3581 -1 -3981 3581 -1 -3582 3582 6 -3583 3582 -1 -3982 3582 -1 -3583 3583 6 -3584 3583 -1 -3983 3583 -1 -3584 3584 6 -3585 3584 -1 -3984 3584 -1 -3585 3585 6 -3586 3585 -1 -3985 3585 -1 -3586 3586 6 -3587 3586 -1 -3986 3586 -1 -3587 3587 6 -3588 3587 -1 -3987 3587 -1 -3588 3588 6 -3589 3588 -1 -3988 3588 -1 -3589 3589 6 -3590 3589 -1 -3989 3589 -1 -3590 3590 6 -3591 3590 -1 -3990 3590 -1 -3591 3591 6 -3592 3591 -1 -3991 3591 -1 -3592 3592 6 -3593 3592 -1 -3992 3592 -1 -3593 3593 6 -3594 3593 -1 -3993 3593 -1 -3594 3594 6 -3595 3594 -1 -3994 3594 -1 -3595 3595 6 -3596 3595 -1 -3995 3595 -1 -3596 3596 6 -3597 3596 -1 -3996 3596 -1 -3597 3597 6 -3598 3597 -1 -3997 3597 -1 -3598 3598 6 -3599 3598 -1 -3998 3598 -1 -3599 3599 6 -3600 3599 -1 -3999 3599 -1 -3600 3600 6 -4000 3600 -1 -3601 3601 6 -3602 3601 -1 -3621 3601 -1 -4001 3601 -1 -3602 3602 6 -3603 3602 -1 -3622 3602 -1 -4002 3602 -1 -3603 3603 6 -3604 3603 -1 -3623 3603 -1 -4003 3603 -1 -3604 3604 6 -3605 3604 -1 -3624 3604 -1 -4004 3604 -1 -3605 3605 6 -3606 3605 -1 -3625 3605 -1 -4005 3605 -1 -3606 3606 6 -3607 3606 -1 -3626 3606 -1 -4006 3606 -1 -3607 3607 6 -3608 3607 -1 -3627 3607 -1 -4007 3607 -1 -3608 3608 6 -3609 3608 -1 -3628 3608 -1 -4008 3608 -1 -3609 3609 6 -3610 3609 -1 -3629 3609 -1 -4009 3609 -1 -3610 3610 6 -3611 3610 -1 -3630 3610 -1 -4010 3610 -1 -3611 3611 6 -3612 3611 -1 -3631 3611 -1 -4011 3611 -1 -3612 3612 6 -3613 3612 -1 -3632 3612 -1 -4012 3612 -1 -3613 3613 6 -3614 3613 -1 -3633 3613 -1 -4013 3613 -1 -3614 3614 6 -3615 3614 -1 -3634 3614 -1 -4014 3614 -1 -3615 3615 6 -3616 3615 -1 -3635 3615 -1 -4015 3615 -1 -3616 3616 6 -3617 3616 -1 -3636 3616 -1 -4016 3616 -1 -3617 3617 6 -3618 3617 -1 -3637 3617 -1 -4017 3617 -1 -3618 3618 6 -3619 3618 -1 -3638 3618 -1 -4018 3618 -1 -3619 3619 6 -3620 3619 -1 -3639 3619 -1 -4019 3619 -1 -3620 3620 6 -3640 3620 -1 -4020 3620 -1 -3621 3621 6 -3622 3621 -1 -3641 3621 -1 -4021 3621 -1 -3622 3622 6 -3623 3622 -1 -3642 3622 -1 -4022 3622 -1 -3623 3623 6 -3624 3623 -1 -3643 3623 -1 -4023 3623 -1 -3624 3624 6 -3625 3624 -1 -3644 3624 -1 -4024 3624 -1 -3625 3625 6 -3626 3625 -1 -3645 3625 -1 -4025 3625 -1 -3626 3626 6 -3627 3626 -1 -3646 3626 -1 -4026 3626 -1 -3627 3627 6 -3628 3627 -1 -3647 3627 -1 -4027 3627 -1 -3628 3628 6 -3629 3628 -1 -3648 3628 -1 -4028 3628 -1 -3629 3629 6 -3630 3629 -1 -3649 3629 -1 -4029 3629 -1 -3630 3630 6 -3631 3630 -1 -3650 3630 -1 -4030 3630 -1 -3631 3631 6 -3632 3631 -1 -3651 3631 -1 -4031 3631 -1 -3632 3632 6 -3633 3632 -1 -3652 3632 -1 -4032 3632 -1 -3633 3633 6 -3634 3633 -1 -3653 3633 -1 -4033 3633 -1 -3634 3634 6 -3635 3634 -1 -3654 3634 -1 -4034 3634 -1 -3635 3635 6 -3636 3635 -1 -3655 3635 -1 -4035 3635 -1 -3636 3636 6 -3637 3636 -1 -3656 3636 -1 -4036 3636 -1 -3637 3637 6 -3638 3637 -1 -3657 3637 -1 -4037 3637 -1 -3638 3638 6 -3639 3638 -1 -3658 3638 -1 -4038 3638 -1 -3639 3639 6 -3640 3639 -1 -3659 3639 -1 -4039 3639 -1 -3640 3640 6 -3660 3640 -1 -4040 3640 -1 -3641 3641 6 -3642 3641 -1 -3661 3641 -1 -4041 3641 -1 -3642 3642 6 -3643 3642 -1 -3662 3642 -1 -4042 3642 -1 -3643 3643 6 -3644 3643 -1 -3663 3643 -1 -4043 3643 -1 -3644 3644 6 -3645 3644 -1 -3664 3644 -1 -4044 3644 -1 -3645 3645 6 -3646 3645 -1 -3665 3645 -1 -4045 3645 -1 -3646 3646 6 -3647 3646 -1 -3666 3646 -1 -4046 3646 -1 -3647 3647 6 -3648 3647 -1 -3667 3647 -1 -4047 3647 -1 -3648 3648 6 -3649 3648 -1 -3668 3648 -1 -4048 3648 -1 -3649 3649 6 -3650 3649 -1 -3669 3649 -1 -4049 3649 -1 -3650 3650 6 -3651 3650 -1 -3670 3650 -1 -4050 3650 -1 -3651 3651 6 -3652 3651 -1 -3671 3651 -1 -4051 3651 -1 -3652 3652 6 -3653 3652 -1 -3672 3652 -1 -4052 3652 -1 -3653 3653 6 -3654 3653 -1 -3673 3653 -1 -4053 3653 -1 -3654 3654 6 -3655 3654 -1 -3674 3654 -1 -4054 3654 -1 -3655 3655 6 -3656 3655 -1 -3675 3655 -1 -4055 3655 -1 -3656 3656 6 -3657 3656 -1 -3676 3656 -1 -4056 3656 -1 -3657 3657 6 -3658 3657 -1 -3677 3657 -1 -4057 3657 -1 -3658 3658 6 -3659 3658 -1 -3678 3658 -1 -4058 3658 -1 -3659 3659 6 -3660 3659 -1 -3679 3659 -1 -4059 3659 -1 -3660 3660 6 -3680 3660 -1 -4060 3660 -1 -3661 3661 6 -3662 3661 -1 -3681 3661 -1 -4061 3661 -1 -3662 3662 6 -3663 3662 -1 -3682 3662 -1 -4062 3662 -1 -3663 3663 6 -3664 3663 -1 -3683 3663 -1 -4063 3663 -1 -3664 3664 6 -3665 3664 -1 -3684 3664 -1 -4064 3664 -1 -3665 3665 6 -3666 3665 -1 -3685 3665 -1 -4065 3665 -1 -3666 3666 6 -3667 3666 -1 -3686 3666 -1 -4066 3666 -1 -3667 3667 6 -3668 3667 -1 -3687 3667 -1 -4067 3667 -1 -3668 3668 6 -3669 3668 -1 -3688 3668 -1 -4068 3668 -1 -3669 3669 6 -3670 3669 -1 -3689 3669 -1 -4069 3669 -1 -3670 3670 6 -3671 3670 -1 -3690 3670 -1 -4070 3670 -1 -3671 3671 6 -3672 3671 -1 -3691 3671 -1 -4071 3671 -1 -3672 3672 6 -3673 3672 -1 -3692 3672 -1 -4072 3672 -1 -3673 3673 6 -3674 3673 -1 -3693 3673 -1 -4073 3673 -1 -3674 3674 6 -3675 3674 -1 -3694 3674 -1 -4074 3674 -1 -3675 3675 6 -3676 3675 -1 -3695 3675 -1 -4075 3675 -1 -3676 3676 6 -3677 3676 -1 -3696 3676 -1 -4076 3676 -1 -3677 3677 6 -3678 3677 -1 -3697 3677 -1 -4077 3677 -1 -3678 3678 6 -3679 3678 -1 -3698 3678 -1 -4078 3678 -1 -3679 3679 6 -3680 3679 -1 -3699 3679 -1 -4079 3679 -1 -3680 3680 6 -3700 3680 -1 -4080 3680 -1 -3681 3681 6 -3682 3681 -1 -3701 3681 -1 -4081 3681 -1 -3682 3682 6 -3683 3682 -1 -3702 3682 -1 -4082 3682 -1 -3683 3683 6 -3684 3683 -1 -3703 3683 -1 -4083 3683 -1 -3684 3684 6 -3685 3684 -1 -3704 3684 -1 -4084 3684 -1 -3685 3685 6 -3686 3685 -1 -3705 3685 -1 -4085 3685 -1 -3686 3686 6 -3687 3686 -1 -3706 3686 -1 -4086 3686 -1 -3687 3687 6 -3688 3687 -1 -3707 3687 -1 -4087 3687 -1 -3688 3688 6 -3689 3688 -1 -3708 3688 -1 -4088 3688 -1 -3689 3689 6 -3690 3689 -1 -3709 3689 -1 -4089 3689 -1 -3690 3690 6 -3691 3690 -1 -3710 3690 -1 -4090 3690 -1 -3691 3691 6 -3692 3691 -1 -3711 3691 -1 -4091 3691 -1 -3692 3692 6 -3693 3692 -1 -3712 3692 -1 -4092 3692 -1 -3693 3693 6 -3694 3693 -1 -3713 3693 -1 -4093 3693 -1 -3694 3694 6 -3695 3694 -1 -3714 3694 -1 -4094 3694 -1 -3695 3695 6 -3696 3695 -1 -3715 3695 -1 -4095 3695 -1 -3696 3696 6 -3697 3696 -1 -3716 3696 -1 -4096 3696 -1 -3697 3697 6 -3698 3697 -1 -3717 3697 -1 -4097 3697 -1 -3698 3698 6 -3699 3698 -1 -3718 3698 -1 -4098 3698 -1 -3699 3699 6 -3700 3699 -1 -3719 3699 -1 -4099 3699 -1 -3700 3700 6 -3720 3700 -1 -4100 3700 -1 -3701 3701 6 -3702 3701 -1 -3721 3701 -1 -4101 3701 -1 -3702 3702 6 -3703 3702 -1 -3722 3702 -1 -4102 3702 -1 -3703 3703 6 -3704 3703 -1 -3723 3703 -1 -4103 3703 -1 -3704 3704 6 -3705 3704 -1 -3724 3704 -1 -4104 3704 -1 -3705 3705 6 -3706 3705 -1 -3725 3705 -1 -4105 3705 -1 -3706 3706 6 -3707 3706 -1 -3726 3706 -1 -4106 3706 -1 -3707 3707 6 -3708 3707 -1 -3727 3707 -1 -4107 3707 -1 -3708 3708 6 -3709 3708 -1 -3728 3708 -1 -4108 3708 -1 -3709 3709 6 -3710 3709 -1 -3729 3709 -1 -4109 3709 -1 -3710 3710 6 -3711 3710 -1 -3730 3710 -1 -4110 3710 -1 -3711 3711 6 -3712 3711 -1 -3731 3711 -1 -4111 3711 -1 -3712 3712 6 -3713 3712 -1 -3732 3712 -1 -4112 3712 -1 -3713 3713 6 -3714 3713 -1 -3733 3713 -1 -4113 3713 -1 -3714 3714 6 -3715 3714 -1 -3734 3714 -1 -4114 3714 -1 -3715 3715 6 -3716 3715 -1 -3735 3715 -1 -4115 3715 -1 -3716 3716 6 -3717 3716 -1 -3736 3716 -1 -4116 3716 -1 -3717 3717 6 -3718 3717 -1 -3737 3717 -1 -4117 3717 -1 -3718 3718 6 -3719 3718 -1 -3738 3718 -1 -4118 3718 -1 -3719 3719 6 -3720 3719 -1 -3739 3719 -1 -4119 3719 -1 -3720 3720 6 -3740 3720 -1 -4120 3720 -1 -3721 3721 6 -3722 3721 -1 -3741 3721 -1 -4121 3721 -1 -3722 3722 6 -3723 3722 -1 -3742 3722 -1 -4122 3722 -1 -3723 3723 6 -3724 3723 -1 -3743 3723 -1 -4123 3723 -1 -3724 3724 6 -3725 3724 -1 -3744 3724 -1 -4124 3724 -1 -3725 3725 6 -3726 3725 -1 -3745 3725 -1 -4125 3725 -1 -3726 3726 6 -3727 3726 -1 -3746 3726 -1 -4126 3726 -1 -3727 3727 6 -3728 3727 -1 -3747 3727 -1 -4127 3727 -1 -3728 3728 6 -3729 3728 -1 -3748 3728 -1 -4128 3728 -1 -3729 3729 6 -3730 3729 -1 -3749 3729 -1 -4129 3729 -1 -3730 3730 6 -3731 3730 -1 -3750 3730 -1 -4130 3730 -1 -3731 3731 6 -3732 3731 -1 -3751 3731 -1 -4131 3731 -1 -3732 3732 6 -3733 3732 -1 -3752 3732 -1 -4132 3732 -1 -3733 3733 6 -3734 3733 -1 -3753 3733 -1 -4133 3733 -1 -3734 3734 6 -3735 3734 -1 -3754 3734 -1 -4134 3734 -1 -3735 3735 6 -3736 3735 -1 -3755 3735 -1 -4135 3735 -1 -3736 3736 6 -3737 3736 -1 -3756 3736 -1 -4136 3736 -1 -3737 3737 6 -3738 3737 -1 -3757 3737 -1 -4137 3737 -1 -3738 3738 6 -3739 3738 -1 -3758 3738 -1 -4138 3738 -1 -3739 3739 6 -3740 3739 -1 -3759 3739 -1 -4139 3739 -1 -3740 3740 6 -3760 3740 -1 -4140 3740 -1 -3741 3741 6 -3742 3741 -1 -3761 3741 -1 -4141 3741 -1 -3742 3742 6 -3743 3742 -1 -3762 3742 -1 -4142 3742 -1 -3743 3743 6 -3744 3743 -1 -3763 3743 -1 -4143 3743 -1 -3744 3744 6 -3745 3744 -1 -3764 3744 -1 -4144 3744 -1 -3745 3745 6 -3746 3745 -1 -3765 3745 -1 -4145 3745 -1 -3746 3746 6 -3747 3746 -1 -3766 3746 -1 -4146 3746 -1 -3747 3747 6 -3748 3747 -1 -3767 3747 -1 -4147 3747 -1 -3748 3748 6 -3749 3748 -1 -3768 3748 -1 -4148 3748 -1 -3749 3749 6 -3750 3749 -1 -3769 3749 -1 -4149 3749 -1 -3750 3750 6 -3751 3750 -1 -3770 3750 -1 -4150 3750 -1 -3751 3751 6 -3752 3751 -1 -3771 3751 -1 -4151 3751 -1 -3752 3752 6 -3753 3752 -1 -3772 3752 -1 -4152 3752 -1 -3753 3753 6 -3754 3753 -1 -3773 3753 -1 -4153 3753 -1 -3754 3754 6 -3755 3754 -1 -3774 3754 -1 -4154 3754 -1 -3755 3755 6 -3756 3755 -1 -3775 3755 -1 -4155 3755 -1 -3756 3756 6 -3757 3756 -1 -3776 3756 -1 -4156 3756 -1 -3757 3757 6 -3758 3757 -1 -3777 3757 -1 -4157 3757 -1 -3758 3758 6 -3759 3758 -1 -3778 3758 -1 -4158 3758 -1 -3759 3759 6 -3760 3759 -1 -3779 3759 -1 -4159 3759 -1 -3760 3760 6 -3780 3760 -1 -4160 3760 -1 -3761 3761 6 -3762 3761 -1 -3781 3761 -1 -4161 3761 -1 -3762 3762 6 -3763 3762 -1 -3782 3762 -1 -4162 3762 -1 -3763 3763 6 -3764 3763 -1 -3783 3763 -1 -4163 3763 -1 -3764 3764 6 -3765 3764 -1 -3784 3764 -1 -4164 3764 -1 -3765 3765 6 -3766 3765 -1 -3785 3765 -1 -4165 3765 -1 -3766 3766 6 -3767 3766 -1 -3786 3766 -1 -4166 3766 -1 -3767 3767 6 -3768 3767 -1 -3787 3767 -1 -4167 3767 -1 -3768 3768 6 -3769 3768 -1 -3788 3768 -1 -4168 3768 -1 -3769 3769 6 -3770 3769 -1 -3789 3769 -1 -4169 3769 -1 -3770 3770 6 -3771 3770 -1 -3790 3770 -1 -4170 3770 -1 -3771 3771 6 -3772 3771 -1 -3791 3771 -1 -4171 3771 -1 -3772 3772 6 -3773 3772 -1 -3792 3772 -1 -4172 3772 -1 -3773 3773 6 -3774 3773 -1 -3793 3773 -1 -4173 3773 -1 -3774 3774 6 -3775 3774 -1 -3794 3774 -1 -4174 3774 -1 -3775 3775 6 -3776 3775 -1 -3795 3775 -1 -4175 3775 -1 -3776 3776 6 -3777 3776 -1 -3796 3776 -1 -4176 3776 -1 -3777 3777 6 -3778 3777 -1 -3797 3777 -1 -4177 3777 -1 -3778 3778 6 -3779 3778 -1 -3798 3778 -1 -4178 3778 -1 -3779 3779 6 -3780 3779 -1 -3799 3779 -1 -4179 3779 -1 -3780 3780 6 -3800 3780 -1 -4180 3780 -1 -3781 3781 6 -3782 3781 -1 -3801 3781 -1 -4181 3781 -1 -3782 3782 6 -3783 3782 -1 -3802 3782 -1 -4182 3782 -1 -3783 3783 6 -3784 3783 -1 -3803 3783 -1 -4183 3783 -1 -3784 3784 6 -3785 3784 -1 -3804 3784 -1 -4184 3784 -1 -3785 3785 6 -3786 3785 -1 -3805 3785 -1 -4185 3785 -1 -3786 3786 6 -3787 3786 -1 -3806 3786 -1 -4186 3786 -1 -3787 3787 6 -3788 3787 -1 -3807 3787 -1 -4187 3787 -1 -3788 3788 6 -3789 3788 -1 -3808 3788 -1 -4188 3788 -1 -3789 3789 6 -3790 3789 -1 -3809 3789 -1 -4189 3789 -1 -3790 3790 6 -3791 3790 -1 -3810 3790 -1 -4190 3790 -1 -3791 3791 6 -3792 3791 -1 -3811 3791 -1 -4191 3791 -1 -3792 3792 6 -3793 3792 -1 -3812 3792 -1 -4192 3792 -1 -3793 3793 6 -3794 3793 -1 -3813 3793 -1 -4193 3793 -1 -3794 3794 6 -3795 3794 -1 -3814 3794 -1 -4194 3794 -1 -3795 3795 6 -3796 3795 -1 -3815 3795 -1 -4195 3795 -1 -3796 3796 6 -3797 3796 -1 -3816 3796 -1 -4196 3796 -1 -3797 3797 6 -3798 3797 -1 -3817 3797 -1 -4197 3797 -1 -3798 3798 6 -3799 3798 -1 -3818 3798 -1 -4198 3798 -1 -3799 3799 6 -3800 3799 -1 -3819 3799 -1 -4199 3799 -1 -3800 3800 6 -3820 3800 -1 -4200 3800 -1 -3801 3801 6 -3802 3801 -1 -3821 3801 -1 -4201 3801 -1 -3802 3802 6 -3803 3802 -1 -3822 3802 -1 -4202 3802 -1 -3803 3803 6 -3804 3803 -1 -3823 3803 -1 -4203 3803 -1 -3804 3804 6 -3805 3804 -1 -3824 3804 -1 -4204 3804 -1 -3805 3805 6 -3806 3805 -1 -3825 3805 -1 -4205 3805 -1 -3806 3806 6 -3807 3806 -1 -3826 3806 -1 -4206 3806 -1 -3807 3807 6 -3808 3807 -1 -3827 3807 -1 -4207 3807 -1 -3808 3808 6 -3809 3808 -1 -3828 3808 -1 -4208 3808 -1 -3809 3809 6 -3810 3809 -1 -3829 3809 -1 -4209 3809 -1 -3810 3810 6 -3811 3810 -1 -3830 3810 -1 -4210 3810 -1 -3811 3811 6 -3812 3811 -1 -3831 3811 -1 -4211 3811 -1 -3812 3812 6 -3813 3812 -1 -3832 3812 -1 -4212 3812 -1 -3813 3813 6 -3814 3813 -1 -3833 3813 -1 -4213 3813 -1 -3814 3814 6 -3815 3814 -1 -3834 3814 -1 -4214 3814 -1 -3815 3815 6 -3816 3815 -1 -3835 3815 -1 -4215 3815 -1 -3816 3816 6 -3817 3816 -1 -3836 3816 -1 -4216 3816 -1 -3817 3817 6 -3818 3817 -1 -3837 3817 -1 -4217 3817 -1 -3818 3818 6 -3819 3818 -1 -3838 3818 -1 -4218 3818 -1 -3819 3819 6 -3820 3819 -1 -3839 3819 -1 -4219 3819 -1 -3820 3820 6 -3840 3820 -1 -4220 3820 -1 -3821 3821 6 -3822 3821 -1 -3841 3821 -1 -4221 3821 -1 -3822 3822 6 -3823 3822 -1 -3842 3822 -1 -4222 3822 -1 -3823 3823 6 -3824 3823 -1 -3843 3823 -1 -4223 3823 -1 -3824 3824 6 -3825 3824 -1 -3844 3824 -1 -4224 3824 -1 -3825 3825 6 -3826 3825 -1 -3845 3825 -1 -4225 3825 -1 -3826 3826 6 -3827 3826 -1 -3846 3826 -1 -4226 3826 -1 -3827 3827 6 -3828 3827 -1 -3847 3827 -1 -4227 3827 -1 -3828 3828 6 -3829 3828 -1 -3848 3828 -1 -4228 3828 -1 -3829 3829 6 -3830 3829 -1 -3849 3829 -1 -4229 3829 -1 -3830 3830 6 -3831 3830 -1 -3850 3830 -1 -4230 3830 -1 -3831 3831 6 -3832 3831 -1 -3851 3831 -1 -4231 3831 -1 -3832 3832 6 -3833 3832 -1 -3852 3832 -1 -4232 3832 -1 -3833 3833 6 -3834 3833 -1 -3853 3833 -1 -4233 3833 -1 -3834 3834 6 -3835 3834 -1 -3854 3834 -1 -4234 3834 -1 -3835 3835 6 -3836 3835 -1 -3855 3835 -1 -4235 3835 -1 -3836 3836 6 -3837 3836 -1 -3856 3836 -1 -4236 3836 -1 -3837 3837 6 -3838 3837 -1 -3857 3837 -1 -4237 3837 -1 -3838 3838 6 -3839 3838 -1 -3858 3838 -1 -4238 3838 -1 -3839 3839 6 -3840 3839 -1 -3859 3839 -1 -4239 3839 -1 -3840 3840 6 -3860 3840 -1 -4240 3840 -1 -3841 3841 6 -3842 3841 -1 -3861 3841 -1 -4241 3841 -1 -3842 3842 6 -3843 3842 -1 -3862 3842 -1 -4242 3842 -1 -3843 3843 6 -3844 3843 -1 -3863 3843 -1 -4243 3843 -1 -3844 3844 6 -3845 3844 -1 -3864 3844 -1 -4244 3844 -1 -3845 3845 6 -3846 3845 -1 -3865 3845 -1 -4245 3845 -1 -3846 3846 6 -3847 3846 -1 -3866 3846 -1 -4246 3846 -1 -3847 3847 6 -3848 3847 -1 -3867 3847 -1 -4247 3847 -1 -3848 3848 6 -3849 3848 -1 -3868 3848 -1 -4248 3848 -1 -3849 3849 6 -3850 3849 -1 -3869 3849 -1 -4249 3849 -1 -3850 3850 6 -3851 3850 -1 -3870 3850 -1 -4250 3850 -1 -3851 3851 6 -3852 3851 -1 -3871 3851 -1 -4251 3851 -1 -3852 3852 6 -3853 3852 -1 -3872 3852 -1 -4252 3852 -1 -3853 3853 6 -3854 3853 -1 -3873 3853 -1 -4253 3853 -1 -3854 3854 6 -3855 3854 -1 -3874 3854 -1 -4254 3854 -1 -3855 3855 6 -3856 3855 -1 -3875 3855 -1 -4255 3855 -1 -3856 3856 6 -3857 3856 -1 -3876 3856 -1 -4256 3856 -1 -3857 3857 6 -3858 3857 -1 -3877 3857 -1 -4257 3857 -1 -3858 3858 6 -3859 3858 -1 -3878 3858 -1 -4258 3858 -1 -3859 3859 6 -3860 3859 -1 -3879 3859 -1 -4259 3859 -1 -3860 3860 6 -3880 3860 -1 -4260 3860 -1 -3861 3861 6 -3862 3861 -1 -3881 3861 -1 -4261 3861 -1 -3862 3862 6 -3863 3862 -1 -3882 3862 -1 -4262 3862 -1 -3863 3863 6 -3864 3863 -1 -3883 3863 -1 -4263 3863 -1 -3864 3864 6 -3865 3864 -1 -3884 3864 -1 -4264 3864 -1 -3865 3865 6 -3866 3865 -1 -3885 3865 -1 -4265 3865 -1 -3866 3866 6 -3867 3866 -1 -3886 3866 -1 -4266 3866 -1 -3867 3867 6 -3868 3867 -1 -3887 3867 -1 -4267 3867 -1 -3868 3868 6 -3869 3868 -1 -3888 3868 -1 -4268 3868 -1 -3869 3869 6 -3870 3869 -1 -3889 3869 -1 -4269 3869 -1 -3870 3870 6 -3871 3870 -1 -3890 3870 -1 -4270 3870 -1 -3871 3871 6 -3872 3871 -1 -3891 3871 -1 -4271 3871 -1 -3872 3872 6 -3873 3872 -1 -3892 3872 -1 -4272 3872 -1 -3873 3873 6 -3874 3873 -1 -3893 3873 -1 -4273 3873 -1 -3874 3874 6 -3875 3874 -1 -3894 3874 -1 -4274 3874 -1 -3875 3875 6 -3876 3875 -1 -3895 3875 -1 -4275 3875 -1 -3876 3876 6 -3877 3876 -1 -3896 3876 -1 -4276 3876 -1 -3877 3877 6 -3878 3877 -1 -3897 3877 -1 -4277 3877 -1 -3878 3878 6 -3879 3878 -1 -3898 3878 -1 -4278 3878 -1 -3879 3879 6 -3880 3879 -1 -3899 3879 -1 -4279 3879 -1 -3880 3880 6 -3900 3880 -1 -4280 3880 -1 -3881 3881 6 -3882 3881 -1 -3901 3881 -1 -4281 3881 -1 -3882 3882 6 -3883 3882 -1 -3902 3882 -1 -4282 3882 -1 -3883 3883 6 -3884 3883 -1 -3903 3883 -1 -4283 3883 -1 -3884 3884 6 -3885 3884 -1 -3904 3884 -1 -4284 3884 -1 -3885 3885 6 -3886 3885 -1 -3905 3885 -1 -4285 3885 -1 -3886 3886 6 -3887 3886 -1 -3906 3886 -1 -4286 3886 -1 -3887 3887 6 -3888 3887 -1 -3907 3887 -1 -4287 3887 -1 -3888 3888 6 -3889 3888 -1 -3908 3888 -1 -4288 3888 -1 -3889 3889 6 -3890 3889 -1 -3909 3889 -1 -4289 3889 -1 -3890 3890 6 -3891 3890 -1 -3910 3890 -1 -4290 3890 -1 -3891 3891 6 -3892 3891 -1 -3911 3891 -1 -4291 3891 -1 -3892 3892 6 -3893 3892 -1 -3912 3892 -1 -4292 3892 -1 -3893 3893 6 -3894 3893 -1 -3913 3893 -1 -4293 3893 -1 -3894 3894 6 -3895 3894 -1 -3914 3894 -1 -4294 3894 -1 -3895 3895 6 -3896 3895 -1 -3915 3895 -1 -4295 3895 -1 -3896 3896 6 -3897 3896 -1 -3916 3896 -1 -4296 3896 -1 -3897 3897 6 -3898 3897 -1 -3917 3897 -1 -4297 3897 -1 -3898 3898 6 -3899 3898 -1 -3918 3898 -1 -4298 3898 -1 -3899 3899 6 -3900 3899 -1 -3919 3899 -1 -4299 3899 -1 -3900 3900 6 -3920 3900 -1 -4300 3900 -1 -3901 3901 6 -3902 3901 -1 -3921 3901 -1 -4301 3901 -1 -3902 3902 6 -3903 3902 -1 -3922 3902 -1 -4302 3902 -1 -3903 3903 6 -3904 3903 -1 -3923 3903 -1 -4303 3903 -1 -3904 3904 6 -3905 3904 -1 -3924 3904 -1 -4304 3904 -1 -3905 3905 6 -3906 3905 -1 -3925 3905 -1 -4305 3905 -1 -3906 3906 6 -3907 3906 -1 -3926 3906 -1 -4306 3906 -1 -3907 3907 6 -3908 3907 -1 -3927 3907 -1 -4307 3907 -1 -3908 3908 6 -3909 3908 -1 -3928 3908 -1 -4308 3908 -1 -3909 3909 6 -3910 3909 -1 -3929 3909 -1 -4309 3909 -1 -3910 3910 6 -3911 3910 -1 -3930 3910 -1 -4310 3910 -1 -3911 3911 6 -3912 3911 -1 -3931 3911 -1 -4311 3911 -1 -3912 3912 6 -3913 3912 -1 -3932 3912 -1 -4312 3912 -1 -3913 3913 6 -3914 3913 -1 -3933 3913 -1 -4313 3913 -1 -3914 3914 6 -3915 3914 -1 -3934 3914 -1 -4314 3914 -1 -3915 3915 6 -3916 3915 -1 -3935 3915 -1 -4315 3915 -1 -3916 3916 6 -3917 3916 -1 -3936 3916 -1 -4316 3916 -1 -3917 3917 6 -3918 3917 -1 -3937 3917 -1 -4317 3917 -1 -3918 3918 6 -3919 3918 -1 -3938 3918 -1 -4318 3918 -1 -3919 3919 6 -3920 3919 -1 -3939 3919 -1 -4319 3919 -1 -3920 3920 6 -3940 3920 -1 -4320 3920 -1 -3921 3921 6 -3922 3921 -1 -3941 3921 -1 -4321 3921 -1 -3922 3922 6 -3923 3922 -1 -3942 3922 -1 -4322 3922 -1 -3923 3923 6 -3924 3923 -1 -3943 3923 -1 -4323 3923 -1 -3924 3924 6 -3925 3924 -1 -3944 3924 -1 -4324 3924 -1 -3925 3925 6 -3926 3925 -1 -3945 3925 -1 -4325 3925 -1 -3926 3926 6 -3927 3926 -1 -3946 3926 -1 -4326 3926 -1 -3927 3927 6 -3928 3927 -1 -3947 3927 -1 -4327 3927 -1 -3928 3928 6 -3929 3928 -1 -3948 3928 -1 -4328 3928 -1 -3929 3929 6 -3930 3929 -1 -3949 3929 -1 -4329 3929 -1 -3930 3930 6 -3931 3930 -1 -3950 3930 -1 -4330 3930 -1 -3931 3931 6 -3932 3931 -1 -3951 3931 -1 -4331 3931 -1 -3932 3932 6 -3933 3932 -1 -3952 3932 -1 -4332 3932 -1 -3933 3933 6 -3934 3933 -1 -3953 3933 -1 -4333 3933 -1 -3934 3934 6 -3935 3934 -1 -3954 3934 -1 -4334 3934 -1 -3935 3935 6 -3936 3935 -1 -3955 3935 -1 -4335 3935 -1 -3936 3936 6 -3937 3936 -1 -3956 3936 -1 -4336 3936 -1 -3937 3937 6 -3938 3937 -1 -3957 3937 -1 -4337 3937 -1 -3938 3938 6 -3939 3938 -1 -3958 3938 -1 -4338 3938 -1 -3939 3939 6 -3940 3939 -1 -3959 3939 -1 -4339 3939 -1 -3940 3940 6 -3960 3940 -1 -4340 3940 -1 -3941 3941 6 -3942 3941 -1 -3961 3941 -1 -4341 3941 -1 -3942 3942 6 -3943 3942 -1 -3962 3942 -1 -4342 3942 -1 -3943 3943 6 -3944 3943 -1 -3963 3943 -1 -4343 3943 -1 -3944 3944 6 -3945 3944 -1 -3964 3944 -1 -4344 3944 -1 -3945 3945 6 -3946 3945 -1 -3965 3945 -1 -4345 3945 -1 -3946 3946 6 -3947 3946 -1 -3966 3946 -1 -4346 3946 -1 -3947 3947 6 -3948 3947 -1 -3967 3947 -1 -4347 3947 -1 -3948 3948 6 -3949 3948 -1 -3968 3948 -1 -4348 3948 -1 -3949 3949 6 -3950 3949 -1 -3969 3949 -1 -4349 3949 -1 -3950 3950 6 -3951 3950 -1 -3970 3950 -1 -4350 3950 -1 -3951 3951 6 -3952 3951 -1 -3971 3951 -1 -4351 3951 -1 -3952 3952 6 -3953 3952 -1 -3972 3952 -1 -4352 3952 -1 -3953 3953 6 -3954 3953 -1 -3973 3953 -1 -4353 3953 -1 -3954 3954 6 -3955 3954 -1 -3974 3954 -1 -4354 3954 -1 -3955 3955 6 -3956 3955 -1 -3975 3955 -1 -4355 3955 -1 -3956 3956 6 -3957 3956 -1 -3976 3956 -1 -4356 3956 -1 -3957 3957 6 -3958 3957 -1 -3977 3957 -1 -4357 3957 -1 -3958 3958 6 -3959 3958 -1 -3978 3958 -1 -4358 3958 -1 -3959 3959 6 -3960 3959 -1 -3979 3959 -1 -4359 3959 -1 -3960 3960 6 -3980 3960 -1 -4360 3960 -1 -3961 3961 6 -3962 3961 -1 -3981 3961 -1 -4361 3961 -1 -3962 3962 6 -3963 3962 -1 -3982 3962 -1 -4362 3962 -1 -3963 3963 6 -3964 3963 -1 -3983 3963 -1 -4363 3963 -1 -3964 3964 6 -3965 3964 -1 -3984 3964 -1 -4364 3964 -1 -3965 3965 6 -3966 3965 -1 -3985 3965 -1 -4365 3965 -1 -3966 3966 6 -3967 3966 -1 -3986 3966 -1 -4366 3966 -1 -3967 3967 6 -3968 3967 -1 -3987 3967 -1 -4367 3967 -1 -3968 3968 6 -3969 3968 -1 -3988 3968 -1 -4368 3968 -1 -3969 3969 6 -3970 3969 -1 -3989 3969 -1 -4369 3969 -1 -3970 3970 6 -3971 3970 -1 -3990 3970 -1 -4370 3970 -1 -3971 3971 6 -3972 3971 -1 -3991 3971 -1 -4371 3971 -1 -3972 3972 6 -3973 3972 -1 -3992 3972 -1 -4372 3972 -1 -3973 3973 6 -3974 3973 -1 -3993 3973 -1 -4373 3973 -1 -3974 3974 6 -3975 3974 -1 -3994 3974 -1 -4374 3974 -1 -3975 3975 6 -3976 3975 -1 -3995 3975 -1 -4375 3975 -1 -3976 3976 6 -3977 3976 -1 -3996 3976 -1 -4376 3976 -1 -3977 3977 6 -3978 3977 -1 -3997 3977 -1 -4377 3977 -1 -3978 3978 6 -3979 3978 -1 -3998 3978 -1 -4378 3978 -1 -3979 3979 6 -3980 3979 -1 -3999 3979 -1 -4379 3979 -1 -3980 3980 6 -4000 3980 -1 -4380 3980 -1 -3981 3981 6 -3982 3981 -1 -4381 3981 -1 -3982 3982 6 -3983 3982 -1 -4382 3982 -1 -3983 3983 6 -3984 3983 -1 -4383 3983 -1 -3984 3984 6 -3985 3984 -1 -4384 3984 -1 -3985 3985 6 -3986 3985 -1 -4385 3985 -1 -3986 3986 6 -3987 3986 -1 -4386 3986 -1 -3987 3987 6 -3988 3987 -1 -4387 3987 -1 -3988 3988 6 -3989 3988 -1 -4388 3988 -1 -3989 3989 6 -3990 3989 -1 -4389 3989 -1 -3990 3990 6 -3991 3990 -1 -4390 3990 -1 -3991 3991 6 -3992 3991 -1 -4391 3991 -1 -3992 3992 6 -3993 3992 -1 -4392 3992 -1 -3993 3993 6 -3994 3993 -1 -4393 3993 -1 -3994 3994 6 -3995 3994 -1 -4394 3994 -1 -3995 3995 6 -3996 3995 -1 -4395 3995 -1 -3996 3996 6 -3997 3996 -1 -4396 3996 -1 -3997 3997 6 -3998 3997 -1 -4397 3997 -1 -3998 3998 6 -3999 3998 -1 -4398 3998 -1 -3999 3999 6 -4000 3999 -1 -4399 3999 -1 -4000 4000 6 -4400 4000 -1 -4001 4001 6 -4002 4001 -1 -4021 4001 -1 -4401 4001 -1 -4002 4002 6 -4003 4002 -1 -4022 4002 -1 -4402 4002 -1 -4003 4003 6 -4004 4003 -1 -4023 4003 -1 -4403 4003 -1 -4004 4004 6 -4005 4004 -1 -4024 4004 -1 -4404 4004 -1 -4005 4005 6 -4006 4005 -1 -4025 4005 -1 -4405 4005 -1 -4006 4006 6 -4007 4006 -1 -4026 4006 -1 -4406 4006 -1 -4007 4007 6 -4008 4007 -1 -4027 4007 -1 -4407 4007 -1 -4008 4008 6 -4009 4008 -1 -4028 4008 -1 -4408 4008 -1 -4009 4009 6 -4010 4009 -1 -4029 4009 -1 -4409 4009 -1 -4010 4010 6 -4011 4010 -1 -4030 4010 -1 -4410 4010 -1 -4011 4011 6 -4012 4011 -1 -4031 4011 -1 -4411 4011 -1 -4012 4012 6 -4013 4012 -1 -4032 4012 -1 -4412 4012 -1 -4013 4013 6 -4014 4013 -1 -4033 4013 -1 -4413 4013 -1 -4014 4014 6 -4015 4014 -1 -4034 4014 -1 -4414 4014 -1 -4015 4015 6 -4016 4015 -1 -4035 4015 -1 -4415 4015 -1 -4016 4016 6 -4017 4016 -1 -4036 4016 -1 -4416 4016 -1 -4017 4017 6 -4018 4017 -1 -4037 4017 -1 -4417 4017 -1 -4018 4018 6 -4019 4018 -1 -4038 4018 -1 -4418 4018 -1 -4019 4019 6 -4020 4019 -1 -4039 4019 -1 -4419 4019 -1 -4020 4020 6 -4040 4020 -1 -4420 4020 -1 -4021 4021 6 -4022 4021 -1 -4041 4021 -1 -4421 4021 -1 -4022 4022 6 -4023 4022 -1 -4042 4022 -1 -4422 4022 -1 -4023 4023 6 -4024 4023 -1 -4043 4023 -1 -4423 4023 -1 -4024 4024 6 -4025 4024 -1 -4044 4024 -1 -4424 4024 -1 -4025 4025 6 -4026 4025 -1 -4045 4025 -1 -4425 4025 -1 -4026 4026 6 -4027 4026 -1 -4046 4026 -1 -4426 4026 -1 -4027 4027 6 -4028 4027 -1 -4047 4027 -1 -4427 4027 -1 -4028 4028 6 -4029 4028 -1 -4048 4028 -1 -4428 4028 -1 -4029 4029 6 -4030 4029 -1 -4049 4029 -1 -4429 4029 -1 -4030 4030 6 -4031 4030 -1 -4050 4030 -1 -4430 4030 -1 -4031 4031 6 -4032 4031 -1 -4051 4031 -1 -4431 4031 -1 -4032 4032 6 -4033 4032 -1 -4052 4032 -1 -4432 4032 -1 -4033 4033 6 -4034 4033 -1 -4053 4033 -1 -4433 4033 -1 -4034 4034 6 -4035 4034 -1 -4054 4034 -1 -4434 4034 -1 -4035 4035 6 -4036 4035 -1 -4055 4035 -1 -4435 4035 -1 -4036 4036 6 -4037 4036 -1 -4056 4036 -1 -4436 4036 -1 -4037 4037 6 -4038 4037 -1 -4057 4037 -1 -4437 4037 -1 -4038 4038 6 -4039 4038 -1 -4058 4038 -1 -4438 4038 -1 -4039 4039 6 -4040 4039 -1 -4059 4039 -1 -4439 4039 -1 -4040 4040 6 -4060 4040 -1 -4440 4040 -1 -4041 4041 6 -4042 4041 -1 -4061 4041 -1 -4441 4041 -1 -4042 4042 6 -4043 4042 -1 -4062 4042 -1 -4442 4042 -1 -4043 4043 6 -4044 4043 -1 -4063 4043 -1 -4443 4043 -1 -4044 4044 6 -4045 4044 -1 -4064 4044 -1 -4444 4044 -1 -4045 4045 6 -4046 4045 -1 -4065 4045 -1 -4445 4045 -1 -4046 4046 6 -4047 4046 -1 -4066 4046 -1 -4446 4046 -1 -4047 4047 6 -4048 4047 -1 -4067 4047 -1 -4447 4047 -1 -4048 4048 6 -4049 4048 -1 -4068 4048 -1 -4448 4048 -1 -4049 4049 6 -4050 4049 -1 -4069 4049 -1 -4449 4049 -1 -4050 4050 6 -4051 4050 -1 -4070 4050 -1 -4450 4050 -1 -4051 4051 6 -4052 4051 -1 -4071 4051 -1 -4451 4051 -1 -4052 4052 6 -4053 4052 -1 -4072 4052 -1 -4452 4052 -1 -4053 4053 6 -4054 4053 -1 -4073 4053 -1 -4453 4053 -1 -4054 4054 6 -4055 4054 -1 -4074 4054 -1 -4454 4054 -1 -4055 4055 6 -4056 4055 -1 -4075 4055 -1 -4455 4055 -1 -4056 4056 6 -4057 4056 -1 -4076 4056 -1 -4456 4056 -1 -4057 4057 6 -4058 4057 -1 -4077 4057 -1 -4457 4057 -1 -4058 4058 6 -4059 4058 -1 -4078 4058 -1 -4458 4058 -1 -4059 4059 6 -4060 4059 -1 -4079 4059 -1 -4459 4059 -1 -4060 4060 6 -4080 4060 -1 -4460 4060 -1 -4061 4061 6 -4062 4061 -1 -4081 4061 -1 -4461 4061 -1 -4062 4062 6 -4063 4062 -1 -4082 4062 -1 -4462 4062 -1 -4063 4063 6 -4064 4063 -1 -4083 4063 -1 -4463 4063 -1 -4064 4064 6 -4065 4064 -1 -4084 4064 -1 -4464 4064 -1 -4065 4065 6 -4066 4065 -1 -4085 4065 -1 -4465 4065 -1 -4066 4066 6 -4067 4066 -1 -4086 4066 -1 -4466 4066 -1 -4067 4067 6 -4068 4067 -1 -4087 4067 -1 -4467 4067 -1 -4068 4068 6 -4069 4068 -1 -4088 4068 -1 -4468 4068 -1 -4069 4069 6 -4070 4069 -1 -4089 4069 -1 -4469 4069 -1 -4070 4070 6 -4071 4070 -1 -4090 4070 -1 -4470 4070 -1 -4071 4071 6 -4072 4071 -1 -4091 4071 -1 -4471 4071 -1 -4072 4072 6 -4073 4072 -1 -4092 4072 -1 -4472 4072 -1 -4073 4073 6 -4074 4073 -1 -4093 4073 -1 -4473 4073 -1 -4074 4074 6 -4075 4074 -1 -4094 4074 -1 -4474 4074 -1 -4075 4075 6 -4076 4075 -1 -4095 4075 -1 -4475 4075 -1 -4076 4076 6 -4077 4076 -1 -4096 4076 -1 -4476 4076 -1 -4077 4077 6 -4078 4077 -1 -4097 4077 -1 -4477 4077 -1 -4078 4078 6 -4079 4078 -1 -4098 4078 -1 -4478 4078 -1 -4079 4079 6 -4080 4079 -1 -4099 4079 -1 -4479 4079 -1 -4080 4080 6 -4100 4080 -1 -4480 4080 -1 -4081 4081 6 -4082 4081 -1 -4101 4081 -1 -4481 4081 -1 -4082 4082 6 -4083 4082 -1 -4102 4082 -1 -4482 4082 -1 -4083 4083 6 -4084 4083 -1 -4103 4083 -1 -4483 4083 -1 -4084 4084 6 -4085 4084 -1 -4104 4084 -1 -4484 4084 -1 -4085 4085 6 -4086 4085 -1 -4105 4085 -1 -4485 4085 -1 -4086 4086 6 -4087 4086 -1 -4106 4086 -1 -4486 4086 -1 -4087 4087 6 -4088 4087 -1 -4107 4087 -1 -4487 4087 -1 -4088 4088 6 -4089 4088 -1 -4108 4088 -1 -4488 4088 -1 -4089 4089 6 -4090 4089 -1 -4109 4089 -1 -4489 4089 -1 -4090 4090 6 -4091 4090 -1 -4110 4090 -1 -4490 4090 -1 -4091 4091 6 -4092 4091 -1 -4111 4091 -1 -4491 4091 -1 -4092 4092 6 -4093 4092 -1 -4112 4092 -1 -4492 4092 -1 -4093 4093 6 -4094 4093 -1 -4113 4093 -1 -4493 4093 -1 -4094 4094 6 -4095 4094 -1 -4114 4094 -1 -4494 4094 -1 -4095 4095 6 -4096 4095 -1 -4115 4095 -1 -4495 4095 -1 -4096 4096 6 -4097 4096 -1 -4116 4096 -1 -4496 4096 -1 -4097 4097 6 -4098 4097 -1 -4117 4097 -1 -4497 4097 -1 -4098 4098 6 -4099 4098 -1 -4118 4098 -1 -4498 4098 -1 -4099 4099 6 -4100 4099 -1 -4119 4099 -1 -4499 4099 -1 -4100 4100 6 -4120 4100 -1 -4500 4100 -1 -4101 4101 6 -4102 4101 -1 -4121 4101 -1 -4501 4101 -1 -4102 4102 6 -4103 4102 -1 -4122 4102 -1 -4502 4102 -1 -4103 4103 6 -4104 4103 -1 -4123 4103 -1 -4503 4103 -1 -4104 4104 6 -4105 4104 -1 -4124 4104 -1 -4504 4104 -1 -4105 4105 6 -4106 4105 -1 -4125 4105 -1 -4505 4105 -1 -4106 4106 6 -4107 4106 -1 -4126 4106 -1 -4506 4106 -1 -4107 4107 6 -4108 4107 -1 -4127 4107 -1 -4507 4107 -1 -4108 4108 6 -4109 4108 -1 -4128 4108 -1 -4508 4108 -1 -4109 4109 6 -4110 4109 -1 -4129 4109 -1 -4509 4109 -1 -4110 4110 6 -4111 4110 -1 -4130 4110 -1 -4510 4110 -1 -4111 4111 6 -4112 4111 -1 -4131 4111 -1 -4511 4111 -1 -4112 4112 6 -4113 4112 -1 -4132 4112 -1 -4512 4112 -1 -4113 4113 6 -4114 4113 -1 -4133 4113 -1 -4513 4113 -1 -4114 4114 6 -4115 4114 -1 -4134 4114 -1 -4514 4114 -1 -4115 4115 6 -4116 4115 -1 -4135 4115 -1 -4515 4115 -1 -4116 4116 6 -4117 4116 -1 -4136 4116 -1 -4516 4116 -1 -4117 4117 6 -4118 4117 -1 -4137 4117 -1 -4517 4117 -1 -4118 4118 6 -4119 4118 -1 -4138 4118 -1 -4518 4118 -1 -4119 4119 6 -4120 4119 -1 -4139 4119 -1 -4519 4119 -1 -4120 4120 6 -4140 4120 -1 -4520 4120 -1 -4121 4121 6 -4122 4121 -1 -4141 4121 -1 -4521 4121 -1 -4122 4122 6 -4123 4122 -1 -4142 4122 -1 -4522 4122 -1 -4123 4123 6 -4124 4123 -1 -4143 4123 -1 -4523 4123 -1 -4124 4124 6 -4125 4124 -1 -4144 4124 -1 -4524 4124 -1 -4125 4125 6 -4126 4125 -1 -4145 4125 -1 -4525 4125 -1 -4126 4126 6 -4127 4126 -1 -4146 4126 -1 -4526 4126 -1 -4127 4127 6 -4128 4127 -1 -4147 4127 -1 -4527 4127 -1 -4128 4128 6 -4129 4128 -1 -4148 4128 -1 -4528 4128 -1 -4129 4129 6 -4130 4129 -1 -4149 4129 -1 -4529 4129 -1 -4130 4130 6 -4131 4130 -1 -4150 4130 -1 -4530 4130 -1 -4131 4131 6 -4132 4131 -1 -4151 4131 -1 -4531 4131 -1 -4132 4132 6 -4133 4132 -1 -4152 4132 -1 -4532 4132 -1 -4133 4133 6 -4134 4133 -1 -4153 4133 -1 -4533 4133 -1 -4134 4134 6 -4135 4134 -1 -4154 4134 -1 -4534 4134 -1 -4135 4135 6 -4136 4135 -1 -4155 4135 -1 -4535 4135 -1 -4136 4136 6 -4137 4136 -1 -4156 4136 -1 -4536 4136 -1 -4137 4137 6 -4138 4137 -1 -4157 4137 -1 -4537 4137 -1 -4138 4138 6 -4139 4138 -1 -4158 4138 -1 -4538 4138 -1 -4139 4139 6 -4140 4139 -1 -4159 4139 -1 -4539 4139 -1 -4140 4140 6 -4160 4140 -1 -4540 4140 -1 -4141 4141 6 -4142 4141 -1 -4161 4141 -1 -4541 4141 -1 -4142 4142 6 -4143 4142 -1 -4162 4142 -1 -4542 4142 -1 -4143 4143 6 -4144 4143 -1 -4163 4143 -1 -4543 4143 -1 -4144 4144 6 -4145 4144 -1 -4164 4144 -1 -4544 4144 -1 -4145 4145 6 -4146 4145 -1 -4165 4145 -1 -4545 4145 -1 -4146 4146 6 -4147 4146 -1 -4166 4146 -1 -4546 4146 -1 -4147 4147 6 -4148 4147 -1 -4167 4147 -1 -4547 4147 -1 -4148 4148 6 -4149 4148 -1 -4168 4148 -1 -4548 4148 -1 -4149 4149 6 -4150 4149 -1 -4169 4149 -1 -4549 4149 -1 -4150 4150 6 -4151 4150 -1 -4170 4150 -1 -4550 4150 -1 -4151 4151 6 -4152 4151 -1 -4171 4151 -1 -4551 4151 -1 -4152 4152 6 -4153 4152 -1 -4172 4152 -1 -4552 4152 -1 -4153 4153 6 -4154 4153 -1 -4173 4153 -1 -4553 4153 -1 -4154 4154 6 -4155 4154 -1 -4174 4154 -1 -4554 4154 -1 -4155 4155 6 -4156 4155 -1 -4175 4155 -1 -4555 4155 -1 -4156 4156 6 -4157 4156 -1 -4176 4156 -1 -4556 4156 -1 -4157 4157 6 -4158 4157 -1 -4177 4157 -1 -4557 4157 -1 -4158 4158 6 -4159 4158 -1 -4178 4158 -1 -4558 4158 -1 -4159 4159 6 -4160 4159 -1 -4179 4159 -1 -4559 4159 -1 -4160 4160 6 -4180 4160 -1 -4560 4160 -1 -4161 4161 6 -4162 4161 -1 -4181 4161 -1 -4561 4161 -1 -4162 4162 6 -4163 4162 -1 -4182 4162 -1 -4562 4162 -1 -4163 4163 6 -4164 4163 -1 -4183 4163 -1 -4563 4163 -1 -4164 4164 6 -4165 4164 -1 -4184 4164 -1 -4564 4164 -1 -4165 4165 6 -4166 4165 -1 -4185 4165 -1 -4565 4165 -1 -4166 4166 6 -4167 4166 -1 -4186 4166 -1 -4566 4166 -1 -4167 4167 6 -4168 4167 -1 -4187 4167 -1 -4567 4167 -1 -4168 4168 6 -4169 4168 -1 -4188 4168 -1 -4568 4168 -1 -4169 4169 6 -4170 4169 -1 -4189 4169 -1 -4569 4169 -1 -4170 4170 6 -4171 4170 -1 -4190 4170 -1 -4570 4170 -1 -4171 4171 6 -4172 4171 -1 -4191 4171 -1 -4571 4171 -1 -4172 4172 6 -4173 4172 -1 -4192 4172 -1 -4572 4172 -1 -4173 4173 6 -4174 4173 -1 -4193 4173 -1 -4573 4173 -1 -4174 4174 6 -4175 4174 -1 -4194 4174 -1 -4574 4174 -1 -4175 4175 6 -4176 4175 -1 -4195 4175 -1 -4575 4175 -1 -4176 4176 6 -4177 4176 -1 -4196 4176 -1 -4576 4176 -1 -4177 4177 6 -4178 4177 -1 -4197 4177 -1 -4577 4177 -1 -4178 4178 6 -4179 4178 -1 -4198 4178 -1 -4578 4178 -1 -4179 4179 6 -4180 4179 -1 -4199 4179 -1 -4579 4179 -1 -4180 4180 6 -4200 4180 -1 -4580 4180 -1 -4181 4181 6 -4182 4181 -1 -4201 4181 -1 -4581 4181 -1 -4182 4182 6 -4183 4182 -1 -4202 4182 -1 -4582 4182 -1 -4183 4183 6 -4184 4183 -1 -4203 4183 -1 -4583 4183 -1 -4184 4184 6 -4185 4184 -1 -4204 4184 -1 -4584 4184 -1 -4185 4185 6 -4186 4185 -1 -4205 4185 -1 -4585 4185 -1 -4186 4186 6 -4187 4186 -1 -4206 4186 -1 -4586 4186 -1 -4187 4187 6 -4188 4187 -1 -4207 4187 -1 -4587 4187 -1 -4188 4188 6 -4189 4188 -1 -4208 4188 -1 -4588 4188 -1 -4189 4189 6 -4190 4189 -1 -4209 4189 -1 -4589 4189 -1 -4190 4190 6 -4191 4190 -1 -4210 4190 -1 -4590 4190 -1 -4191 4191 6 -4192 4191 -1 -4211 4191 -1 -4591 4191 -1 -4192 4192 6 -4193 4192 -1 -4212 4192 -1 -4592 4192 -1 -4193 4193 6 -4194 4193 -1 -4213 4193 -1 -4593 4193 -1 -4194 4194 6 -4195 4194 -1 -4214 4194 -1 -4594 4194 -1 -4195 4195 6 -4196 4195 -1 -4215 4195 -1 -4595 4195 -1 -4196 4196 6 -4197 4196 -1 -4216 4196 -1 -4596 4196 -1 -4197 4197 6 -4198 4197 -1 -4217 4197 -1 -4597 4197 -1 -4198 4198 6 -4199 4198 -1 -4218 4198 -1 -4598 4198 -1 -4199 4199 6 -4200 4199 -1 -4219 4199 -1 -4599 4199 -1 -4200 4200 6 -4220 4200 -1 -4600 4200 -1 -4201 4201 6 -4202 4201 -1 -4221 4201 -1 -4601 4201 -1 -4202 4202 6 -4203 4202 -1 -4222 4202 -1 -4602 4202 -1 -4203 4203 6 -4204 4203 -1 -4223 4203 -1 -4603 4203 -1 -4204 4204 6 -4205 4204 -1 -4224 4204 -1 -4604 4204 -1 -4205 4205 6 -4206 4205 -1 -4225 4205 -1 -4605 4205 -1 -4206 4206 6 -4207 4206 -1 -4226 4206 -1 -4606 4206 -1 -4207 4207 6 -4208 4207 -1 -4227 4207 -1 -4607 4207 -1 -4208 4208 6 -4209 4208 -1 -4228 4208 -1 -4608 4208 -1 -4209 4209 6 -4210 4209 -1 -4229 4209 -1 -4609 4209 -1 -4210 4210 6 -4211 4210 -1 -4230 4210 -1 -4610 4210 -1 -4211 4211 6 -4212 4211 -1 -4231 4211 -1 -4611 4211 -1 -4212 4212 6 -4213 4212 -1 -4232 4212 -1 -4612 4212 -1 -4213 4213 6 -4214 4213 -1 -4233 4213 -1 -4613 4213 -1 -4214 4214 6 -4215 4214 -1 -4234 4214 -1 -4614 4214 -1 -4215 4215 6 -4216 4215 -1 -4235 4215 -1 -4615 4215 -1 -4216 4216 6 -4217 4216 -1 -4236 4216 -1 -4616 4216 -1 -4217 4217 6 -4218 4217 -1 -4237 4217 -1 -4617 4217 -1 -4218 4218 6 -4219 4218 -1 -4238 4218 -1 -4618 4218 -1 -4219 4219 6 -4220 4219 -1 -4239 4219 -1 -4619 4219 -1 -4220 4220 6 -4240 4220 -1 -4620 4220 -1 -4221 4221 6 -4222 4221 -1 -4241 4221 -1 -4621 4221 -1 -4222 4222 6 -4223 4222 -1 -4242 4222 -1 -4622 4222 -1 -4223 4223 6 -4224 4223 -1 -4243 4223 -1 -4623 4223 -1 -4224 4224 6 -4225 4224 -1 -4244 4224 -1 -4624 4224 -1 -4225 4225 6 -4226 4225 -1 -4245 4225 -1 -4625 4225 -1 -4226 4226 6 -4227 4226 -1 -4246 4226 -1 -4626 4226 -1 -4227 4227 6 -4228 4227 -1 -4247 4227 -1 -4627 4227 -1 -4228 4228 6 -4229 4228 -1 -4248 4228 -1 -4628 4228 -1 -4229 4229 6 -4230 4229 -1 -4249 4229 -1 -4629 4229 -1 -4230 4230 6 -4231 4230 -1 -4250 4230 -1 -4630 4230 -1 -4231 4231 6 -4232 4231 -1 -4251 4231 -1 -4631 4231 -1 -4232 4232 6 -4233 4232 -1 -4252 4232 -1 -4632 4232 -1 -4233 4233 6 -4234 4233 -1 -4253 4233 -1 -4633 4233 -1 -4234 4234 6 -4235 4234 -1 -4254 4234 -1 -4634 4234 -1 -4235 4235 6 -4236 4235 -1 -4255 4235 -1 -4635 4235 -1 -4236 4236 6 -4237 4236 -1 -4256 4236 -1 -4636 4236 -1 -4237 4237 6 -4238 4237 -1 -4257 4237 -1 -4637 4237 -1 -4238 4238 6 -4239 4238 -1 -4258 4238 -1 -4638 4238 -1 -4239 4239 6 -4240 4239 -1 -4259 4239 -1 -4639 4239 -1 -4240 4240 6 -4260 4240 -1 -4640 4240 -1 -4241 4241 6 -4242 4241 -1 -4261 4241 -1 -4641 4241 -1 -4242 4242 6 -4243 4242 -1 -4262 4242 -1 -4642 4242 -1 -4243 4243 6 -4244 4243 -1 -4263 4243 -1 -4643 4243 -1 -4244 4244 6 -4245 4244 -1 -4264 4244 -1 -4644 4244 -1 -4245 4245 6 -4246 4245 -1 -4265 4245 -1 -4645 4245 -1 -4246 4246 6 -4247 4246 -1 -4266 4246 -1 -4646 4246 -1 -4247 4247 6 -4248 4247 -1 -4267 4247 -1 -4647 4247 -1 -4248 4248 6 -4249 4248 -1 -4268 4248 -1 -4648 4248 -1 -4249 4249 6 -4250 4249 -1 -4269 4249 -1 -4649 4249 -1 -4250 4250 6 -4251 4250 -1 -4270 4250 -1 -4650 4250 -1 -4251 4251 6 -4252 4251 -1 -4271 4251 -1 -4651 4251 -1 -4252 4252 6 -4253 4252 -1 -4272 4252 -1 -4652 4252 -1 -4253 4253 6 -4254 4253 -1 -4273 4253 -1 -4653 4253 -1 -4254 4254 6 -4255 4254 -1 -4274 4254 -1 -4654 4254 -1 -4255 4255 6 -4256 4255 -1 -4275 4255 -1 -4655 4255 -1 -4256 4256 6 -4257 4256 -1 -4276 4256 -1 -4656 4256 -1 -4257 4257 6 -4258 4257 -1 -4277 4257 -1 -4657 4257 -1 -4258 4258 6 -4259 4258 -1 -4278 4258 -1 -4658 4258 -1 -4259 4259 6 -4260 4259 -1 -4279 4259 -1 -4659 4259 -1 -4260 4260 6 -4280 4260 -1 -4660 4260 -1 -4261 4261 6 -4262 4261 -1 -4281 4261 -1 -4661 4261 -1 -4262 4262 6 -4263 4262 -1 -4282 4262 -1 -4662 4262 -1 -4263 4263 6 -4264 4263 -1 -4283 4263 -1 -4663 4263 -1 -4264 4264 6 -4265 4264 -1 -4284 4264 -1 -4664 4264 -1 -4265 4265 6 -4266 4265 -1 -4285 4265 -1 -4665 4265 -1 -4266 4266 6 -4267 4266 -1 -4286 4266 -1 -4666 4266 -1 -4267 4267 6 -4268 4267 -1 -4287 4267 -1 -4667 4267 -1 -4268 4268 6 -4269 4268 -1 -4288 4268 -1 -4668 4268 -1 -4269 4269 6 -4270 4269 -1 -4289 4269 -1 -4669 4269 -1 -4270 4270 6 -4271 4270 -1 -4290 4270 -1 -4670 4270 -1 -4271 4271 6 -4272 4271 -1 -4291 4271 -1 -4671 4271 -1 -4272 4272 6 -4273 4272 -1 -4292 4272 -1 -4672 4272 -1 -4273 4273 6 -4274 4273 -1 -4293 4273 -1 -4673 4273 -1 -4274 4274 6 -4275 4274 -1 -4294 4274 -1 -4674 4274 -1 -4275 4275 6 -4276 4275 -1 -4295 4275 -1 -4675 4275 -1 -4276 4276 6 -4277 4276 -1 -4296 4276 -1 -4676 4276 -1 -4277 4277 6 -4278 4277 -1 -4297 4277 -1 -4677 4277 -1 -4278 4278 6 -4279 4278 -1 -4298 4278 -1 -4678 4278 -1 -4279 4279 6 -4280 4279 -1 -4299 4279 -1 -4679 4279 -1 -4280 4280 6 -4300 4280 -1 -4680 4280 -1 -4281 4281 6 -4282 4281 -1 -4301 4281 -1 -4681 4281 -1 -4282 4282 6 -4283 4282 -1 -4302 4282 -1 -4682 4282 -1 -4283 4283 6 -4284 4283 -1 -4303 4283 -1 -4683 4283 -1 -4284 4284 6 -4285 4284 -1 -4304 4284 -1 -4684 4284 -1 -4285 4285 6 -4286 4285 -1 -4305 4285 -1 -4685 4285 -1 -4286 4286 6 -4287 4286 -1 -4306 4286 -1 -4686 4286 -1 -4287 4287 6 -4288 4287 -1 -4307 4287 -1 -4687 4287 -1 -4288 4288 6 -4289 4288 -1 -4308 4288 -1 -4688 4288 -1 -4289 4289 6 -4290 4289 -1 -4309 4289 -1 -4689 4289 -1 -4290 4290 6 -4291 4290 -1 -4310 4290 -1 -4690 4290 -1 -4291 4291 6 -4292 4291 -1 -4311 4291 -1 -4691 4291 -1 -4292 4292 6 -4293 4292 -1 -4312 4292 -1 -4692 4292 -1 -4293 4293 6 -4294 4293 -1 -4313 4293 -1 -4693 4293 -1 -4294 4294 6 -4295 4294 -1 -4314 4294 -1 -4694 4294 -1 -4295 4295 6 -4296 4295 -1 -4315 4295 -1 -4695 4295 -1 -4296 4296 6 -4297 4296 -1 -4316 4296 -1 -4696 4296 -1 -4297 4297 6 -4298 4297 -1 -4317 4297 -1 -4697 4297 -1 -4298 4298 6 -4299 4298 -1 -4318 4298 -1 -4698 4298 -1 -4299 4299 6 -4300 4299 -1 -4319 4299 -1 -4699 4299 -1 -4300 4300 6 -4320 4300 -1 -4700 4300 -1 -4301 4301 6 -4302 4301 -1 -4321 4301 -1 -4701 4301 -1 -4302 4302 6 -4303 4302 -1 -4322 4302 -1 -4702 4302 -1 -4303 4303 6 -4304 4303 -1 -4323 4303 -1 -4703 4303 -1 -4304 4304 6 -4305 4304 -1 -4324 4304 -1 -4704 4304 -1 -4305 4305 6 -4306 4305 -1 -4325 4305 -1 -4705 4305 -1 -4306 4306 6 -4307 4306 -1 -4326 4306 -1 -4706 4306 -1 -4307 4307 6 -4308 4307 -1 -4327 4307 -1 -4707 4307 -1 -4308 4308 6 -4309 4308 -1 -4328 4308 -1 -4708 4308 -1 -4309 4309 6 -4310 4309 -1 -4329 4309 -1 -4709 4309 -1 -4310 4310 6 -4311 4310 -1 -4330 4310 -1 -4710 4310 -1 -4311 4311 6 -4312 4311 -1 -4331 4311 -1 -4711 4311 -1 -4312 4312 6 -4313 4312 -1 -4332 4312 -1 -4712 4312 -1 -4313 4313 6 -4314 4313 -1 -4333 4313 -1 -4713 4313 -1 -4314 4314 6 -4315 4314 -1 -4334 4314 -1 -4714 4314 -1 -4315 4315 6 -4316 4315 -1 -4335 4315 -1 -4715 4315 -1 -4316 4316 6 -4317 4316 -1 -4336 4316 -1 -4716 4316 -1 -4317 4317 6 -4318 4317 -1 -4337 4317 -1 -4717 4317 -1 -4318 4318 6 -4319 4318 -1 -4338 4318 -1 -4718 4318 -1 -4319 4319 6 -4320 4319 -1 -4339 4319 -1 -4719 4319 -1 -4320 4320 6 -4340 4320 -1 -4720 4320 -1 -4321 4321 6 -4322 4321 -1 -4341 4321 -1 -4721 4321 -1 -4322 4322 6 -4323 4322 -1 -4342 4322 -1 -4722 4322 -1 -4323 4323 6 -4324 4323 -1 -4343 4323 -1 -4723 4323 -1 -4324 4324 6 -4325 4324 -1 -4344 4324 -1 -4724 4324 -1 -4325 4325 6 -4326 4325 -1 -4345 4325 -1 -4725 4325 -1 -4326 4326 6 -4327 4326 -1 -4346 4326 -1 -4726 4326 -1 -4327 4327 6 -4328 4327 -1 -4347 4327 -1 -4727 4327 -1 -4328 4328 6 -4329 4328 -1 -4348 4328 -1 -4728 4328 -1 -4329 4329 6 -4330 4329 -1 -4349 4329 -1 -4729 4329 -1 -4330 4330 6 -4331 4330 -1 -4350 4330 -1 -4730 4330 -1 -4331 4331 6 -4332 4331 -1 -4351 4331 -1 -4731 4331 -1 -4332 4332 6 -4333 4332 -1 -4352 4332 -1 -4732 4332 -1 -4333 4333 6 -4334 4333 -1 -4353 4333 -1 -4733 4333 -1 -4334 4334 6 -4335 4334 -1 -4354 4334 -1 -4734 4334 -1 -4335 4335 6 -4336 4335 -1 -4355 4335 -1 -4735 4335 -1 -4336 4336 6 -4337 4336 -1 -4356 4336 -1 -4736 4336 -1 -4337 4337 6 -4338 4337 -1 -4357 4337 -1 -4737 4337 -1 -4338 4338 6 -4339 4338 -1 -4358 4338 -1 -4738 4338 -1 -4339 4339 6 -4340 4339 -1 -4359 4339 -1 -4739 4339 -1 -4340 4340 6 -4360 4340 -1 -4740 4340 -1 -4341 4341 6 -4342 4341 -1 -4361 4341 -1 -4741 4341 -1 -4342 4342 6 -4343 4342 -1 -4362 4342 -1 -4742 4342 -1 -4343 4343 6 -4344 4343 -1 -4363 4343 -1 -4743 4343 -1 -4344 4344 6 -4345 4344 -1 -4364 4344 -1 -4744 4344 -1 -4345 4345 6 -4346 4345 -1 -4365 4345 -1 -4745 4345 -1 -4346 4346 6 -4347 4346 -1 -4366 4346 -1 -4746 4346 -1 -4347 4347 6 -4348 4347 -1 -4367 4347 -1 -4747 4347 -1 -4348 4348 6 -4349 4348 -1 -4368 4348 -1 -4748 4348 -1 -4349 4349 6 -4350 4349 -1 -4369 4349 -1 -4749 4349 -1 -4350 4350 6 -4351 4350 -1 -4370 4350 -1 -4750 4350 -1 -4351 4351 6 -4352 4351 -1 -4371 4351 -1 -4751 4351 -1 -4352 4352 6 -4353 4352 -1 -4372 4352 -1 -4752 4352 -1 -4353 4353 6 -4354 4353 -1 -4373 4353 -1 -4753 4353 -1 -4354 4354 6 -4355 4354 -1 -4374 4354 -1 -4754 4354 -1 -4355 4355 6 -4356 4355 -1 -4375 4355 -1 -4755 4355 -1 -4356 4356 6 -4357 4356 -1 -4376 4356 -1 -4756 4356 -1 -4357 4357 6 -4358 4357 -1 -4377 4357 -1 -4757 4357 -1 -4358 4358 6 -4359 4358 -1 -4378 4358 -1 -4758 4358 -1 -4359 4359 6 -4360 4359 -1 -4379 4359 -1 -4759 4359 -1 -4360 4360 6 -4380 4360 -1 -4760 4360 -1 -4361 4361 6 -4362 4361 -1 -4381 4361 -1 -4761 4361 -1 -4362 4362 6 -4363 4362 -1 -4382 4362 -1 -4762 4362 -1 -4363 4363 6 -4364 4363 -1 -4383 4363 -1 -4763 4363 -1 -4364 4364 6 -4365 4364 -1 -4384 4364 -1 -4764 4364 -1 -4365 4365 6 -4366 4365 -1 -4385 4365 -1 -4765 4365 -1 -4366 4366 6 -4367 4366 -1 -4386 4366 -1 -4766 4366 -1 -4367 4367 6 -4368 4367 -1 -4387 4367 -1 -4767 4367 -1 -4368 4368 6 -4369 4368 -1 -4388 4368 -1 -4768 4368 -1 -4369 4369 6 -4370 4369 -1 -4389 4369 -1 -4769 4369 -1 -4370 4370 6 -4371 4370 -1 -4390 4370 -1 -4770 4370 -1 -4371 4371 6 -4372 4371 -1 -4391 4371 -1 -4771 4371 -1 -4372 4372 6 -4373 4372 -1 -4392 4372 -1 -4772 4372 -1 -4373 4373 6 -4374 4373 -1 -4393 4373 -1 -4773 4373 -1 -4374 4374 6 -4375 4374 -1 -4394 4374 -1 -4774 4374 -1 -4375 4375 6 -4376 4375 -1 -4395 4375 -1 -4775 4375 -1 -4376 4376 6 -4377 4376 -1 -4396 4376 -1 -4776 4376 -1 -4377 4377 6 -4378 4377 -1 -4397 4377 -1 -4777 4377 -1 -4378 4378 6 -4379 4378 -1 -4398 4378 -1 -4778 4378 -1 -4379 4379 6 -4380 4379 -1 -4399 4379 -1 -4779 4379 -1 -4380 4380 6 -4400 4380 -1 -4780 4380 -1 -4381 4381 6 -4382 4381 -1 -4781 4381 -1 -4382 4382 6 -4383 4382 -1 -4782 4382 -1 -4383 4383 6 -4384 4383 -1 -4783 4383 -1 -4384 4384 6 -4385 4384 -1 -4784 4384 -1 -4385 4385 6 -4386 4385 -1 -4785 4385 -1 -4386 4386 6 -4387 4386 -1 -4786 4386 -1 -4387 4387 6 -4388 4387 -1 -4787 4387 -1 -4388 4388 6 -4389 4388 -1 -4788 4388 -1 -4389 4389 6 -4390 4389 -1 -4789 4389 -1 -4390 4390 6 -4391 4390 -1 -4790 4390 -1 -4391 4391 6 -4392 4391 -1 -4791 4391 -1 -4392 4392 6 -4393 4392 -1 -4792 4392 -1 -4393 4393 6 -4394 4393 -1 -4793 4393 -1 -4394 4394 6 -4395 4394 -1 -4794 4394 -1 -4395 4395 6 -4396 4395 -1 -4795 4395 -1 -4396 4396 6 -4397 4396 -1 -4796 4396 -1 -4397 4397 6 -4398 4397 -1 -4797 4397 -1 -4398 4398 6 -4399 4398 -1 -4798 4398 -1 -4399 4399 6 -4400 4399 -1 -4799 4399 -1 -4400 4400 6 -4800 4400 -1 -4401 4401 6 -4402 4401 -1 -4421 4401 -1 -4801 4401 -1 -4402 4402 6 -4403 4402 -1 -4422 4402 -1 -4802 4402 -1 -4403 4403 6 -4404 4403 -1 -4423 4403 -1 -4803 4403 -1 -4404 4404 6 -4405 4404 -1 -4424 4404 -1 -4804 4404 -1 -4405 4405 6 -4406 4405 -1 -4425 4405 -1 -4805 4405 -1 -4406 4406 6 -4407 4406 -1 -4426 4406 -1 -4806 4406 -1 -4407 4407 6 -4408 4407 -1 -4427 4407 -1 -4807 4407 -1 -4408 4408 6 -4409 4408 -1 -4428 4408 -1 -4808 4408 -1 -4409 4409 6 -4410 4409 -1 -4429 4409 -1 -4809 4409 -1 -4410 4410 6 -4411 4410 -1 -4430 4410 -1 -4810 4410 -1 -4411 4411 6 -4412 4411 -1 -4431 4411 -1 -4811 4411 -1 -4412 4412 6 -4413 4412 -1 -4432 4412 -1 -4812 4412 -1 -4413 4413 6 -4414 4413 -1 -4433 4413 -1 -4813 4413 -1 -4414 4414 6 -4415 4414 -1 -4434 4414 -1 -4814 4414 -1 -4415 4415 6 -4416 4415 -1 -4435 4415 -1 -4815 4415 -1 -4416 4416 6 -4417 4416 -1 -4436 4416 -1 -4816 4416 -1 -4417 4417 6 -4418 4417 -1 -4437 4417 -1 -4817 4417 -1 -4418 4418 6 -4419 4418 -1 -4438 4418 -1 -4818 4418 -1 -4419 4419 6 -4420 4419 -1 -4439 4419 -1 -4819 4419 -1 -4420 4420 6 -4440 4420 -1 -4820 4420 -1 -4421 4421 6 -4422 4421 -1 -4441 4421 -1 -4821 4421 -1 -4422 4422 6 -4423 4422 -1 -4442 4422 -1 -4822 4422 -1 -4423 4423 6 -4424 4423 -1 -4443 4423 -1 -4823 4423 -1 -4424 4424 6 -4425 4424 -1 -4444 4424 -1 -4824 4424 -1 -4425 4425 6 -4426 4425 -1 -4445 4425 -1 -4825 4425 -1 -4426 4426 6 -4427 4426 -1 -4446 4426 -1 -4826 4426 -1 -4427 4427 6 -4428 4427 -1 -4447 4427 -1 -4827 4427 -1 -4428 4428 6 -4429 4428 -1 -4448 4428 -1 -4828 4428 -1 -4429 4429 6 -4430 4429 -1 -4449 4429 -1 -4829 4429 -1 -4430 4430 6 -4431 4430 -1 -4450 4430 -1 -4830 4430 -1 -4431 4431 6 -4432 4431 -1 -4451 4431 -1 -4831 4431 -1 -4432 4432 6 -4433 4432 -1 -4452 4432 -1 -4832 4432 -1 -4433 4433 6 -4434 4433 -1 -4453 4433 -1 -4833 4433 -1 -4434 4434 6 -4435 4434 -1 -4454 4434 -1 -4834 4434 -1 -4435 4435 6 -4436 4435 -1 -4455 4435 -1 -4835 4435 -1 -4436 4436 6 -4437 4436 -1 -4456 4436 -1 -4836 4436 -1 -4437 4437 6 -4438 4437 -1 -4457 4437 -1 -4837 4437 -1 -4438 4438 6 -4439 4438 -1 -4458 4438 -1 -4838 4438 -1 -4439 4439 6 -4440 4439 -1 -4459 4439 -1 -4839 4439 -1 -4440 4440 6 -4460 4440 -1 -4840 4440 -1 -4441 4441 6 -4442 4441 -1 -4461 4441 -1 -4841 4441 -1 -4442 4442 6 -4443 4442 -1 -4462 4442 -1 -4842 4442 -1 -4443 4443 6 -4444 4443 -1 -4463 4443 -1 -4843 4443 -1 -4444 4444 6 -4445 4444 -1 -4464 4444 -1 -4844 4444 -1 -4445 4445 6 -4446 4445 -1 -4465 4445 -1 -4845 4445 -1 -4446 4446 6 -4447 4446 -1 -4466 4446 -1 -4846 4446 -1 -4447 4447 6 -4448 4447 -1 -4467 4447 -1 -4847 4447 -1 -4448 4448 6 -4449 4448 -1 -4468 4448 -1 -4848 4448 -1 -4449 4449 6 -4450 4449 -1 -4469 4449 -1 -4849 4449 -1 -4450 4450 6 -4451 4450 -1 -4470 4450 -1 -4850 4450 -1 -4451 4451 6 -4452 4451 -1 -4471 4451 -1 -4851 4451 -1 -4452 4452 6 -4453 4452 -1 -4472 4452 -1 -4852 4452 -1 -4453 4453 6 -4454 4453 -1 -4473 4453 -1 -4853 4453 -1 -4454 4454 6 -4455 4454 -1 -4474 4454 -1 -4854 4454 -1 -4455 4455 6 -4456 4455 -1 -4475 4455 -1 -4855 4455 -1 -4456 4456 6 -4457 4456 -1 -4476 4456 -1 -4856 4456 -1 -4457 4457 6 -4458 4457 -1 -4477 4457 -1 -4857 4457 -1 -4458 4458 6 -4459 4458 -1 -4478 4458 -1 -4858 4458 -1 -4459 4459 6 -4460 4459 -1 -4479 4459 -1 -4859 4459 -1 -4460 4460 6 -4480 4460 -1 -4860 4460 -1 -4461 4461 6 -4462 4461 -1 -4481 4461 -1 -4861 4461 -1 -4462 4462 6 -4463 4462 -1 -4482 4462 -1 -4862 4462 -1 -4463 4463 6 -4464 4463 -1 -4483 4463 -1 -4863 4463 -1 -4464 4464 6 -4465 4464 -1 -4484 4464 -1 -4864 4464 -1 -4465 4465 6 -4466 4465 -1 -4485 4465 -1 -4865 4465 -1 -4466 4466 6 -4467 4466 -1 -4486 4466 -1 -4866 4466 -1 -4467 4467 6 -4468 4467 -1 -4487 4467 -1 -4867 4467 -1 -4468 4468 6 -4469 4468 -1 -4488 4468 -1 -4868 4468 -1 -4469 4469 6 -4470 4469 -1 -4489 4469 -1 -4869 4469 -1 -4470 4470 6 -4471 4470 -1 -4490 4470 -1 -4870 4470 -1 -4471 4471 6 -4472 4471 -1 -4491 4471 -1 -4871 4471 -1 -4472 4472 6 -4473 4472 -1 -4492 4472 -1 -4872 4472 -1 -4473 4473 6 -4474 4473 -1 -4493 4473 -1 -4873 4473 -1 -4474 4474 6 -4475 4474 -1 -4494 4474 -1 -4874 4474 -1 -4475 4475 6 -4476 4475 -1 -4495 4475 -1 -4875 4475 -1 -4476 4476 6 -4477 4476 -1 -4496 4476 -1 -4876 4476 -1 -4477 4477 6 -4478 4477 -1 -4497 4477 -1 -4877 4477 -1 -4478 4478 6 -4479 4478 -1 -4498 4478 -1 -4878 4478 -1 -4479 4479 6 -4480 4479 -1 -4499 4479 -1 -4879 4479 -1 -4480 4480 6 -4500 4480 -1 -4880 4480 -1 -4481 4481 6 -4482 4481 -1 -4501 4481 -1 -4881 4481 -1 -4482 4482 6 -4483 4482 -1 -4502 4482 -1 -4882 4482 -1 -4483 4483 6 -4484 4483 -1 -4503 4483 -1 -4883 4483 -1 -4484 4484 6 -4485 4484 -1 -4504 4484 -1 -4884 4484 -1 -4485 4485 6 -4486 4485 -1 -4505 4485 -1 -4885 4485 -1 -4486 4486 6 -4487 4486 -1 -4506 4486 -1 -4886 4486 -1 -4487 4487 6 -4488 4487 -1 -4507 4487 -1 -4887 4487 -1 -4488 4488 6 -4489 4488 -1 -4508 4488 -1 -4888 4488 -1 -4489 4489 6 -4490 4489 -1 -4509 4489 -1 -4889 4489 -1 -4490 4490 6 -4491 4490 -1 -4510 4490 -1 -4890 4490 -1 -4491 4491 6 -4492 4491 -1 -4511 4491 -1 -4891 4491 -1 -4492 4492 6 -4493 4492 -1 -4512 4492 -1 -4892 4492 -1 -4493 4493 6 -4494 4493 -1 -4513 4493 -1 -4893 4493 -1 -4494 4494 6 -4495 4494 -1 -4514 4494 -1 -4894 4494 -1 -4495 4495 6 -4496 4495 -1 -4515 4495 -1 -4895 4495 -1 -4496 4496 6 -4497 4496 -1 -4516 4496 -1 -4896 4496 -1 -4497 4497 6 -4498 4497 -1 -4517 4497 -1 -4897 4497 -1 -4498 4498 6 -4499 4498 -1 -4518 4498 -1 -4898 4498 -1 -4499 4499 6 -4500 4499 -1 -4519 4499 -1 -4899 4499 -1 -4500 4500 6 -4520 4500 -1 -4900 4500 -1 -4501 4501 6 -4502 4501 -1 -4521 4501 -1 -4901 4501 -1 -4502 4502 6 -4503 4502 -1 -4522 4502 -1 -4902 4502 -1 -4503 4503 6 -4504 4503 -1 -4523 4503 -1 -4903 4503 -1 -4504 4504 6 -4505 4504 -1 -4524 4504 -1 -4904 4504 -1 -4505 4505 6 -4506 4505 -1 -4525 4505 -1 -4905 4505 -1 -4506 4506 6 -4507 4506 -1 -4526 4506 -1 -4906 4506 -1 -4507 4507 6 -4508 4507 -1 -4527 4507 -1 -4907 4507 -1 -4508 4508 6 -4509 4508 -1 -4528 4508 -1 -4908 4508 -1 -4509 4509 6 -4510 4509 -1 -4529 4509 -1 -4909 4509 -1 -4510 4510 6 -4511 4510 -1 -4530 4510 -1 -4910 4510 -1 -4511 4511 6 -4512 4511 -1 -4531 4511 -1 -4911 4511 -1 -4512 4512 6 -4513 4512 -1 -4532 4512 -1 -4912 4512 -1 -4513 4513 6 -4514 4513 -1 -4533 4513 -1 -4913 4513 -1 -4514 4514 6 -4515 4514 -1 -4534 4514 -1 -4914 4514 -1 -4515 4515 6 -4516 4515 -1 -4535 4515 -1 -4915 4515 -1 -4516 4516 6 -4517 4516 -1 -4536 4516 -1 -4916 4516 -1 -4517 4517 6 -4518 4517 -1 -4537 4517 -1 -4917 4517 -1 -4518 4518 6 -4519 4518 -1 -4538 4518 -1 -4918 4518 -1 -4519 4519 6 -4520 4519 -1 -4539 4519 -1 -4919 4519 -1 -4520 4520 6 -4540 4520 -1 -4920 4520 -1 -4521 4521 6 -4522 4521 -1 -4541 4521 -1 -4921 4521 -1 -4522 4522 6 -4523 4522 -1 -4542 4522 -1 -4922 4522 -1 -4523 4523 6 -4524 4523 -1 -4543 4523 -1 -4923 4523 -1 -4524 4524 6 -4525 4524 -1 -4544 4524 -1 -4924 4524 -1 -4525 4525 6 -4526 4525 -1 -4545 4525 -1 -4925 4525 -1 -4526 4526 6 -4527 4526 -1 -4546 4526 -1 -4926 4526 -1 -4527 4527 6 -4528 4527 -1 -4547 4527 -1 -4927 4527 -1 -4528 4528 6 -4529 4528 -1 -4548 4528 -1 -4928 4528 -1 -4529 4529 6 -4530 4529 -1 -4549 4529 -1 -4929 4529 -1 -4530 4530 6 -4531 4530 -1 -4550 4530 -1 -4930 4530 -1 -4531 4531 6 -4532 4531 -1 -4551 4531 -1 -4931 4531 -1 -4532 4532 6 -4533 4532 -1 -4552 4532 -1 -4932 4532 -1 -4533 4533 6 -4534 4533 -1 -4553 4533 -1 -4933 4533 -1 -4534 4534 6 -4535 4534 -1 -4554 4534 -1 -4934 4534 -1 -4535 4535 6 -4536 4535 -1 -4555 4535 -1 -4935 4535 -1 -4536 4536 6 -4537 4536 -1 -4556 4536 -1 -4936 4536 -1 -4537 4537 6 -4538 4537 -1 -4557 4537 -1 -4937 4537 -1 -4538 4538 6 -4539 4538 -1 -4558 4538 -1 -4938 4538 -1 -4539 4539 6 -4540 4539 -1 -4559 4539 -1 -4939 4539 -1 -4540 4540 6 -4560 4540 -1 -4940 4540 -1 -4541 4541 6 -4542 4541 -1 -4561 4541 -1 -4941 4541 -1 -4542 4542 6 -4543 4542 -1 -4562 4542 -1 -4942 4542 -1 -4543 4543 6 -4544 4543 -1 -4563 4543 -1 -4943 4543 -1 -4544 4544 6 -4545 4544 -1 -4564 4544 -1 -4944 4544 -1 -4545 4545 6 -4546 4545 -1 -4565 4545 -1 -4945 4545 -1 -4546 4546 6 -4547 4546 -1 -4566 4546 -1 -4946 4546 -1 -4547 4547 6 -4548 4547 -1 -4567 4547 -1 -4947 4547 -1 -4548 4548 6 -4549 4548 -1 -4568 4548 -1 -4948 4548 -1 -4549 4549 6 -4550 4549 -1 -4569 4549 -1 -4949 4549 -1 -4550 4550 6 -4551 4550 -1 -4570 4550 -1 -4950 4550 -1 -4551 4551 6 -4552 4551 -1 -4571 4551 -1 -4951 4551 -1 -4552 4552 6 -4553 4552 -1 -4572 4552 -1 -4952 4552 -1 -4553 4553 6 -4554 4553 -1 -4573 4553 -1 -4953 4553 -1 -4554 4554 6 -4555 4554 -1 -4574 4554 -1 -4954 4554 -1 -4555 4555 6 -4556 4555 -1 -4575 4555 -1 -4955 4555 -1 -4556 4556 6 -4557 4556 -1 -4576 4556 -1 -4956 4556 -1 -4557 4557 6 -4558 4557 -1 -4577 4557 -1 -4957 4557 -1 -4558 4558 6 -4559 4558 -1 -4578 4558 -1 -4958 4558 -1 -4559 4559 6 -4560 4559 -1 -4579 4559 -1 -4959 4559 -1 -4560 4560 6 -4580 4560 -1 -4960 4560 -1 -4561 4561 6 -4562 4561 -1 -4581 4561 -1 -4961 4561 -1 -4562 4562 6 -4563 4562 -1 -4582 4562 -1 -4962 4562 -1 -4563 4563 6 -4564 4563 -1 -4583 4563 -1 -4963 4563 -1 -4564 4564 6 -4565 4564 -1 -4584 4564 -1 -4964 4564 -1 -4565 4565 6 -4566 4565 -1 -4585 4565 -1 -4965 4565 -1 -4566 4566 6 -4567 4566 -1 -4586 4566 -1 -4966 4566 -1 -4567 4567 6 -4568 4567 -1 -4587 4567 -1 -4967 4567 -1 -4568 4568 6 -4569 4568 -1 -4588 4568 -1 -4968 4568 -1 -4569 4569 6 -4570 4569 -1 -4589 4569 -1 -4969 4569 -1 -4570 4570 6 -4571 4570 -1 -4590 4570 -1 -4970 4570 -1 -4571 4571 6 -4572 4571 -1 -4591 4571 -1 -4971 4571 -1 -4572 4572 6 -4573 4572 -1 -4592 4572 -1 -4972 4572 -1 -4573 4573 6 -4574 4573 -1 -4593 4573 -1 -4973 4573 -1 -4574 4574 6 -4575 4574 -1 -4594 4574 -1 -4974 4574 -1 -4575 4575 6 -4576 4575 -1 -4595 4575 -1 -4975 4575 -1 -4576 4576 6 -4577 4576 -1 -4596 4576 -1 -4976 4576 -1 -4577 4577 6 -4578 4577 -1 -4597 4577 -1 -4977 4577 -1 -4578 4578 6 -4579 4578 -1 -4598 4578 -1 -4978 4578 -1 -4579 4579 6 -4580 4579 -1 -4599 4579 -1 -4979 4579 -1 -4580 4580 6 -4600 4580 -1 -4980 4580 -1 -4581 4581 6 -4582 4581 -1 -4601 4581 -1 -4981 4581 -1 -4582 4582 6 -4583 4582 -1 -4602 4582 -1 -4982 4582 -1 -4583 4583 6 -4584 4583 -1 -4603 4583 -1 -4983 4583 -1 -4584 4584 6 -4585 4584 -1 -4604 4584 -1 -4984 4584 -1 -4585 4585 6 -4586 4585 -1 -4605 4585 -1 -4985 4585 -1 -4586 4586 6 -4587 4586 -1 -4606 4586 -1 -4986 4586 -1 -4587 4587 6 -4588 4587 -1 -4607 4587 -1 -4987 4587 -1 -4588 4588 6 -4589 4588 -1 -4608 4588 -1 -4988 4588 -1 -4589 4589 6 -4590 4589 -1 -4609 4589 -1 -4989 4589 -1 -4590 4590 6 -4591 4590 -1 -4610 4590 -1 -4990 4590 -1 -4591 4591 6 -4592 4591 -1 -4611 4591 -1 -4991 4591 -1 -4592 4592 6 -4593 4592 -1 -4612 4592 -1 -4992 4592 -1 -4593 4593 6 -4594 4593 -1 -4613 4593 -1 -4993 4593 -1 -4594 4594 6 -4595 4594 -1 -4614 4594 -1 -4994 4594 -1 -4595 4595 6 -4596 4595 -1 -4615 4595 -1 -4995 4595 -1 -4596 4596 6 -4597 4596 -1 -4616 4596 -1 -4996 4596 -1 -4597 4597 6 -4598 4597 -1 -4617 4597 -1 -4997 4597 -1 -4598 4598 6 -4599 4598 -1 -4618 4598 -1 -4998 4598 -1 -4599 4599 6 -4600 4599 -1 -4619 4599 -1 -4999 4599 -1 -4600 4600 6 -4620 4600 -1 -5000 4600 -1 -4601 4601 6 -4602 4601 -1 -4621 4601 -1 -5001 4601 -1 -4602 4602 6 -4603 4602 -1 -4622 4602 -1 -5002 4602 -1 -4603 4603 6 -4604 4603 -1 -4623 4603 -1 -5003 4603 -1 -4604 4604 6 -4605 4604 -1 -4624 4604 -1 -5004 4604 -1 -4605 4605 6 -4606 4605 -1 -4625 4605 -1 -5005 4605 -1 -4606 4606 6 -4607 4606 -1 -4626 4606 -1 -5006 4606 -1 -4607 4607 6 -4608 4607 -1 -4627 4607 -1 -5007 4607 -1 -4608 4608 6 -4609 4608 -1 -4628 4608 -1 -5008 4608 -1 -4609 4609 6 -4610 4609 -1 -4629 4609 -1 -5009 4609 -1 -4610 4610 6 -4611 4610 -1 -4630 4610 -1 -5010 4610 -1 -4611 4611 6 -4612 4611 -1 -4631 4611 -1 -5011 4611 -1 -4612 4612 6 -4613 4612 -1 -4632 4612 -1 -5012 4612 -1 -4613 4613 6 -4614 4613 -1 -4633 4613 -1 -5013 4613 -1 -4614 4614 6 -4615 4614 -1 -4634 4614 -1 -5014 4614 -1 -4615 4615 6 -4616 4615 -1 -4635 4615 -1 -5015 4615 -1 -4616 4616 6 -4617 4616 -1 -4636 4616 -1 -5016 4616 -1 -4617 4617 6 -4618 4617 -1 -4637 4617 -1 -5017 4617 -1 -4618 4618 6 -4619 4618 -1 -4638 4618 -1 -5018 4618 -1 -4619 4619 6 -4620 4619 -1 -4639 4619 -1 -5019 4619 -1 -4620 4620 6 -4640 4620 -1 -5020 4620 -1 -4621 4621 6 -4622 4621 -1 -4641 4621 -1 -5021 4621 -1 -4622 4622 6 -4623 4622 -1 -4642 4622 -1 -5022 4622 -1 -4623 4623 6 -4624 4623 -1 -4643 4623 -1 -5023 4623 -1 -4624 4624 6 -4625 4624 -1 -4644 4624 -1 -5024 4624 -1 -4625 4625 6 -4626 4625 -1 -4645 4625 -1 -5025 4625 -1 -4626 4626 6 -4627 4626 -1 -4646 4626 -1 -5026 4626 -1 -4627 4627 6 -4628 4627 -1 -4647 4627 -1 -5027 4627 -1 -4628 4628 6 -4629 4628 -1 -4648 4628 -1 -5028 4628 -1 -4629 4629 6 -4630 4629 -1 -4649 4629 -1 -5029 4629 -1 -4630 4630 6 -4631 4630 -1 -4650 4630 -1 -5030 4630 -1 -4631 4631 6 -4632 4631 -1 -4651 4631 -1 -5031 4631 -1 -4632 4632 6 -4633 4632 -1 -4652 4632 -1 -5032 4632 -1 -4633 4633 6 -4634 4633 -1 -4653 4633 -1 -5033 4633 -1 -4634 4634 6 -4635 4634 -1 -4654 4634 -1 -5034 4634 -1 -4635 4635 6 -4636 4635 -1 -4655 4635 -1 -5035 4635 -1 -4636 4636 6 -4637 4636 -1 -4656 4636 -1 -5036 4636 -1 -4637 4637 6 -4638 4637 -1 -4657 4637 -1 -5037 4637 -1 -4638 4638 6 -4639 4638 -1 -4658 4638 -1 -5038 4638 -1 -4639 4639 6 -4640 4639 -1 -4659 4639 -1 -5039 4639 -1 -4640 4640 6 -4660 4640 -1 -5040 4640 -1 -4641 4641 6 -4642 4641 -1 -4661 4641 -1 -5041 4641 -1 -4642 4642 6 -4643 4642 -1 -4662 4642 -1 -5042 4642 -1 -4643 4643 6 -4644 4643 -1 -4663 4643 -1 -5043 4643 -1 -4644 4644 6 -4645 4644 -1 -4664 4644 -1 -5044 4644 -1 -4645 4645 6 -4646 4645 -1 -4665 4645 -1 -5045 4645 -1 -4646 4646 6 -4647 4646 -1 -4666 4646 -1 -5046 4646 -1 -4647 4647 6 -4648 4647 -1 -4667 4647 -1 -5047 4647 -1 -4648 4648 6 -4649 4648 -1 -4668 4648 -1 -5048 4648 -1 -4649 4649 6 -4650 4649 -1 -4669 4649 -1 -5049 4649 -1 -4650 4650 6 -4651 4650 -1 -4670 4650 -1 -5050 4650 -1 -4651 4651 6 -4652 4651 -1 -4671 4651 -1 -5051 4651 -1 -4652 4652 6 -4653 4652 -1 -4672 4652 -1 -5052 4652 -1 -4653 4653 6 -4654 4653 -1 -4673 4653 -1 -5053 4653 -1 -4654 4654 6 -4655 4654 -1 -4674 4654 -1 -5054 4654 -1 -4655 4655 6 -4656 4655 -1 -4675 4655 -1 -5055 4655 -1 -4656 4656 6 -4657 4656 -1 -4676 4656 -1 -5056 4656 -1 -4657 4657 6 -4658 4657 -1 -4677 4657 -1 -5057 4657 -1 -4658 4658 6 -4659 4658 -1 -4678 4658 -1 -5058 4658 -1 -4659 4659 6 -4660 4659 -1 -4679 4659 -1 -5059 4659 -1 -4660 4660 6 -4680 4660 -1 -5060 4660 -1 -4661 4661 6 -4662 4661 -1 -4681 4661 -1 -5061 4661 -1 -4662 4662 6 -4663 4662 -1 -4682 4662 -1 -5062 4662 -1 -4663 4663 6 -4664 4663 -1 -4683 4663 -1 -5063 4663 -1 -4664 4664 6 -4665 4664 -1 -4684 4664 -1 -5064 4664 -1 -4665 4665 6 -4666 4665 -1 -4685 4665 -1 -5065 4665 -1 -4666 4666 6 -4667 4666 -1 -4686 4666 -1 -5066 4666 -1 -4667 4667 6 -4668 4667 -1 -4687 4667 -1 -5067 4667 -1 -4668 4668 6 -4669 4668 -1 -4688 4668 -1 -5068 4668 -1 -4669 4669 6 -4670 4669 -1 -4689 4669 -1 -5069 4669 -1 -4670 4670 6 -4671 4670 -1 -4690 4670 -1 -5070 4670 -1 -4671 4671 6 -4672 4671 -1 -4691 4671 -1 -5071 4671 -1 -4672 4672 6 -4673 4672 -1 -4692 4672 -1 -5072 4672 -1 -4673 4673 6 -4674 4673 -1 -4693 4673 -1 -5073 4673 -1 -4674 4674 6 -4675 4674 -1 -4694 4674 -1 -5074 4674 -1 -4675 4675 6 -4676 4675 -1 -4695 4675 -1 -5075 4675 -1 -4676 4676 6 -4677 4676 -1 -4696 4676 -1 -5076 4676 -1 -4677 4677 6 -4678 4677 -1 -4697 4677 -1 -5077 4677 -1 -4678 4678 6 -4679 4678 -1 -4698 4678 -1 -5078 4678 -1 -4679 4679 6 -4680 4679 -1 -4699 4679 -1 -5079 4679 -1 -4680 4680 6 -4700 4680 -1 -5080 4680 -1 -4681 4681 6 -4682 4681 -1 -4701 4681 -1 -5081 4681 -1 -4682 4682 6 -4683 4682 -1 -4702 4682 -1 -5082 4682 -1 -4683 4683 6 -4684 4683 -1 -4703 4683 -1 -5083 4683 -1 -4684 4684 6 -4685 4684 -1 -4704 4684 -1 -5084 4684 -1 -4685 4685 6 -4686 4685 -1 -4705 4685 -1 -5085 4685 -1 -4686 4686 6 -4687 4686 -1 -4706 4686 -1 -5086 4686 -1 -4687 4687 6 -4688 4687 -1 -4707 4687 -1 -5087 4687 -1 -4688 4688 6 -4689 4688 -1 -4708 4688 -1 -5088 4688 -1 -4689 4689 6 -4690 4689 -1 -4709 4689 -1 -5089 4689 -1 -4690 4690 6 -4691 4690 -1 -4710 4690 -1 -5090 4690 -1 -4691 4691 6 -4692 4691 -1 -4711 4691 -1 -5091 4691 -1 -4692 4692 6 -4693 4692 -1 -4712 4692 -1 -5092 4692 -1 -4693 4693 6 -4694 4693 -1 -4713 4693 -1 -5093 4693 -1 -4694 4694 6 -4695 4694 -1 -4714 4694 -1 -5094 4694 -1 -4695 4695 6 -4696 4695 -1 -4715 4695 -1 -5095 4695 -1 -4696 4696 6 -4697 4696 -1 -4716 4696 -1 -5096 4696 -1 -4697 4697 6 -4698 4697 -1 -4717 4697 -1 -5097 4697 -1 -4698 4698 6 -4699 4698 -1 -4718 4698 -1 -5098 4698 -1 -4699 4699 6 -4700 4699 -1 -4719 4699 -1 -5099 4699 -1 -4700 4700 6 -4720 4700 -1 -5100 4700 -1 -4701 4701 6 -4702 4701 -1 -4721 4701 -1 -5101 4701 -1 -4702 4702 6 -4703 4702 -1 -4722 4702 -1 -5102 4702 -1 -4703 4703 6 -4704 4703 -1 -4723 4703 -1 -5103 4703 -1 -4704 4704 6 -4705 4704 -1 -4724 4704 -1 -5104 4704 -1 -4705 4705 6 -4706 4705 -1 -4725 4705 -1 -5105 4705 -1 -4706 4706 6 -4707 4706 -1 -4726 4706 -1 -5106 4706 -1 -4707 4707 6 -4708 4707 -1 -4727 4707 -1 -5107 4707 -1 -4708 4708 6 -4709 4708 -1 -4728 4708 -1 -5108 4708 -1 -4709 4709 6 -4710 4709 -1 -4729 4709 -1 -5109 4709 -1 -4710 4710 6 -4711 4710 -1 -4730 4710 -1 -5110 4710 -1 -4711 4711 6 -4712 4711 -1 -4731 4711 -1 -5111 4711 -1 -4712 4712 6 -4713 4712 -1 -4732 4712 -1 -5112 4712 -1 -4713 4713 6 -4714 4713 -1 -4733 4713 -1 -5113 4713 -1 -4714 4714 6 -4715 4714 -1 -4734 4714 -1 -5114 4714 -1 -4715 4715 6 -4716 4715 -1 -4735 4715 -1 -5115 4715 -1 -4716 4716 6 -4717 4716 -1 -4736 4716 -1 -5116 4716 -1 -4717 4717 6 -4718 4717 -1 -4737 4717 -1 -5117 4717 -1 -4718 4718 6 -4719 4718 -1 -4738 4718 -1 -5118 4718 -1 -4719 4719 6 -4720 4719 -1 -4739 4719 -1 -5119 4719 -1 -4720 4720 6 -4740 4720 -1 -5120 4720 -1 -4721 4721 6 -4722 4721 -1 -4741 4721 -1 -5121 4721 -1 -4722 4722 6 -4723 4722 -1 -4742 4722 -1 -5122 4722 -1 -4723 4723 6 -4724 4723 -1 -4743 4723 -1 -5123 4723 -1 -4724 4724 6 -4725 4724 -1 -4744 4724 -1 -5124 4724 -1 -4725 4725 6 -4726 4725 -1 -4745 4725 -1 -5125 4725 -1 -4726 4726 6 -4727 4726 -1 -4746 4726 -1 -5126 4726 -1 -4727 4727 6 -4728 4727 -1 -4747 4727 -1 -5127 4727 -1 -4728 4728 6 -4729 4728 -1 -4748 4728 -1 -5128 4728 -1 -4729 4729 6 -4730 4729 -1 -4749 4729 -1 -5129 4729 -1 -4730 4730 6 -4731 4730 -1 -4750 4730 -1 -5130 4730 -1 -4731 4731 6 -4732 4731 -1 -4751 4731 -1 -5131 4731 -1 -4732 4732 6 -4733 4732 -1 -4752 4732 -1 -5132 4732 -1 -4733 4733 6 -4734 4733 -1 -4753 4733 -1 -5133 4733 -1 -4734 4734 6 -4735 4734 -1 -4754 4734 -1 -5134 4734 -1 -4735 4735 6 -4736 4735 -1 -4755 4735 -1 -5135 4735 -1 -4736 4736 6 -4737 4736 -1 -4756 4736 -1 -5136 4736 -1 -4737 4737 6 -4738 4737 -1 -4757 4737 -1 -5137 4737 -1 -4738 4738 6 -4739 4738 -1 -4758 4738 -1 -5138 4738 -1 -4739 4739 6 -4740 4739 -1 -4759 4739 -1 -5139 4739 -1 -4740 4740 6 -4760 4740 -1 -5140 4740 -1 -4741 4741 6 -4742 4741 -1 -4761 4741 -1 -5141 4741 -1 -4742 4742 6 -4743 4742 -1 -4762 4742 -1 -5142 4742 -1 -4743 4743 6 -4744 4743 -1 -4763 4743 -1 -5143 4743 -1 -4744 4744 6 -4745 4744 -1 -4764 4744 -1 -5144 4744 -1 -4745 4745 6 -4746 4745 -1 -4765 4745 -1 -5145 4745 -1 -4746 4746 6 -4747 4746 -1 -4766 4746 -1 -5146 4746 -1 -4747 4747 6 -4748 4747 -1 -4767 4747 -1 -5147 4747 -1 -4748 4748 6 -4749 4748 -1 -4768 4748 -1 -5148 4748 -1 -4749 4749 6 -4750 4749 -1 -4769 4749 -1 -5149 4749 -1 -4750 4750 6 -4751 4750 -1 -4770 4750 -1 -5150 4750 -1 -4751 4751 6 -4752 4751 -1 -4771 4751 -1 -5151 4751 -1 -4752 4752 6 -4753 4752 -1 -4772 4752 -1 -5152 4752 -1 -4753 4753 6 -4754 4753 -1 -4773 4753 -1 -5153 4753 -1 -4754 4754 6 -4755 4754 -1 -4774 4754 -1 -5154 4754 -1 -4755 4755 6 -4756 4755 -1 -4775 4755 -1 -5155 4755 -1 -4756 4756 6 -4757 4756 -1 -4776 4756 -1 -5156 4756 -1 -4757 4757 6 -4758 4757 -1 -4777 4757 -1 -5157 4757 -1 -4758 4758 6 -4759 4758 -1 -4778 4758 -1 -5158 4758 -1 -4759 4759 6 -4760 4759 -1 -4779 4759 -1 -5159 4759 -1 -4760 4760 6 -4780 4760 -1 -5160 4760 -1 -4761 4761 6 -4762 4761 -1 -4781 4761 -1 -5161 4761 -1 -4762 4762 6 -4763 4762 -1 -4782 4762 -1 -5162 4762 -1 -4763 4763 6 -4764 4763 -1 -4783 4763 -1 -5163 4763 -1 -4764 4764 6 -4765 4764 -1 -4784 4764 -1 -5164 4764 -1 -4765 4765 6 -4766 4765 -1 -4785 4765 -1 -5165 4765 -1 -4766 4766 6 -4767 4766 -1 -4786 4766 -1 -5166 4766 -1 -4767 4767 6 -4768 4767 -1 -4787 4767 -1 -5167 4767 -1 -4768 4768 6 -4769 4768 -1 -4788 4768 -1 -5168 4768 -1 -4769 4769 6 -4770 4769 -1 -4789 4769 -1 -5169 4769 -1 -4770 4770 6 -4771 4770 -1 -4790 4770 -1 -5170 4770 -1 -4771 4771 6 -4772 4771 -1 -4791 4771 -1 -5171 4771 -1 -4772 4772 6 -4773 4772 -1 -4792 4772 -1 -5172 4772 -1 -4773 4773 6 -4774 4773 -1 -4793 4773 -1 -5173 4773 -1 -4774 4774 6 -4775 4774 -1 -4794 4774 -1 -5174 4774 -1 -4775 4775 6 -4776 4775 -1 -4795 4775 -1 -5175 4775 -1 -4776 4776 6 -4777 4776 -1 -4796 4776 -1 -5176 4776 -1 -4777 4777 6 -4778 4777 -1 -4797 4777 -1 -5177 4777 -1 -4778 4778 6 -4779 4778 -1 -4798 4778 -1 -5178 4778 -1 -4779 4779 6 -4780 4779 -1 -4799 4779 -1 -5179 4779 -1 -4780 4780 6 -4800 4780 -1 -5180 4780 -1 -4781 4781 6 -4782 4781 -1 -5181 4781 -1 -4782 4782 6 -4783 4782 -1 -5182 4782 -1 -4783 4783 6 -4784 4783 -1 -5183 4783 -1 -4784 4784 6 -4785 4784 -1 -5184 4784 -1 -4785 4785 6 -4786 4785 -1 -5185 4785 -1 -4786 4786 6 -4787 4786 -1 -5186 4786 -1 -4787 4787 6 -4788 4787 -1 -5187 4787 -1 -4788 4788 6 -4789 4788 -1 -5188 4788 -1 -4789 4789 6 -4790 4789 -1 -5189 4789 -1 -4790 4790 6 -4791 4790 -1 -5190 4790 -1 -4791 4791 6 -4792 4791 -1 -5191 4791 -1 -4792 4792 6 -4793 4792 -1 -5192 4792 -1 -4793 4793 6 -4794 4793 -1 -5193 4793 -1 -4794 4794 6 -4795 4794 -1 -5194 4794 -1 -4795 4795 6 -4796 4795 -1 -5195 4795 -1 -4796 4796 6 -4797 4796 -1 -5196 4796 -1 -4797 4797 6 -4798 4797 -1 -5197 4797 -1 -4798 4798 6 -4799 4798 -1 -5198 4798 -1 -4799 4799 6 -4800 4799 -1 -5199 4799 -1 -4800 4800 6 -5200 4800 -1 -4801 4801 6 -4802 4801 -1 -4821 4801 -1 -5201 4801 -1 -4802 4802 6 -4803 4802 -1 -4822 4802 -1 -5202 4802 -1 -4803 4803 6 -4804 4803 -1 -4823 4803 -1 -5203 4803 -1 -4804 4804 6 -4805 4804 -1 -4824 4804 -1 -5204 4804 -1 -4805 4805 6 -4806 4805 -1 -4825 4805 -1 -5205 4805 -1 -4806 4806 6 -4807 4806 -1 -4826 4806 -1 -5206 4806 -1 -4807 4807 6 -4808 4807 -1 -4827 4807 -1 -5207 4807 -1 -4808 4808 6 -4809 4808 -1 -4828 4808 -1 -5208 4808 -1 -4809 4809 6 -4810 4809 -1 -4829 4809 -1 -5209 4809 -1 -4810 4810 6 -4811 4810 -1 -4830 4810 -1 -5210 4810 -1 -4811 4811 6 -4812 4811 -1 -4831 4811 -1 -5211 4811 -1 -4812 4812 6 -4813 4812 -1 -4832 4812 -1 -5212 4812 -1 -4813 4813 6 -4814 4813 -1 -4833 4813 -1 -5213 4813 -1 -4814 4814 6 -4815 4814 -1 -4834 4814 -1 -5214 4814 -1 -4815 4815 6 -4816 4815 -1 -4835 4815 -1 -5215 4815 -1 -4816 4816 6 -4817 4816 -1 -4836 4816 -1 -5216 4816 -1 -4817 4817 6 -4818 4817 -1 -4837 4817 -1 -5217 4817 -1 -4818 4818 6 -4819 4818 -1 -4838 4818 -1 -5218 4818 -1 -4819 4819 6 -4820 4819 -1 -4839 4819 -1 -5219 4819 -1 -4820 4820 6 -4840 4820 -1 -5220 4820 -1 -4821 4821 6 -4822 4821 -1 -4841 4821 -1 -5221 4821 -1 -4822 4822 6 -4823 4822 -1 -4842 4822 -1 -5222 4822 -1 -4823 4823 6 -4824 4823 -1 -4843 4823 -1 -5223 4823 -1 -4824 4824 6 -4825 4824 -1 -4844 4824 -1 -5224 4824 -1 -4825 4825 6 -4826 4825 -1 -4845 4825 -1 -5225 4825 -1 -4826 4826 6 -4827 4826 -1 -4846 4826 -1 -5226 4826 -1 -4827 4827 6 -4828 4827 -1 -4847 4827 -1 -5227 4827 -1 -4828 4828 6 -4829 4828 -1 -4848 4828 -1 -5228 4828 -1 -4829 4829 6 -4830 4829 -1 -4849 4829 -1 -5229 4829 -1 -4830 4830 6 -4831 4830 -1 -4850 4830 -1 -5230 4830 -1 -4831 4831 6 -4832 4831 -1 -4851 4831 -1 -5231 4831 -1 -4832 4832 6 -4833 4832 -1 -4852 4832 -1 -5232 4832 -1 -4833 4833 6 -4834 4833 -1 -4853 4833 -1 -5233 4833 -1 -4834 4834 6 -4835 4834 -1 -4854 4834 -1 -5234 4834 -1 -4835 4835 6 -4836 4835 -1 -4855 4835 -1 -5235 4835 -1 -4836 4836 6 -4837 4836 -1 -4856 4836 -1 -5236 4836 -1 -4837 4837 6 -4838 4837 -1 -4857 4837 -1 -5237 4837 -1 -4838 4838 6 -4839 4838 -1 -4858 4838 -1 -5238 4838 -1 -4839 4839 6 -4840 4839 -1 -4859 4839 -1 -5239 4839 -1 -4840 4840 6 -4860 4840 -1 -5240 4840 -1 -4841 4841 6 -4842 4841 -1 -4861 4841 -1 -5241 4841 -1 -4842 4842 6 -4843 4842 -1 -4862 4842 -1 -5242 4842 -1 -4843 4843 6 -4844 4843 -1 -4863 4843 -1 -5243 4843 -1 -4844 4844 6 -4845 4844 -1 -4864 4844 -1 -5244 4844 -1 -4845 4845 6 -4846 4845 -1 -4865 4845 -1 -5245 4845 -1 -4846 4846 6 -4847 4846 -1 -4866 4846 -1 -5246 4846 -1 -4847 4847 6 -4848 4847 -1 -4867 4847 -1 -5247 4847 -1 -4848 4848 6 -4849 4848 -1 -4868 4848 -1 -5248 4848 -1 -4849 4849 6 -4850 4849 -1 -4869 4849 -1 -5249 4849 -1 -4850 4850 6 -4851 4850 -1 -4870 4850 -1 -5250 4850 -1 -4851 4851 6 -4852 4851 -1 -4871 4851 -1 -5251 4851 -1 -4852 4852 6 -4853 4852 -1 -4872 4852 -1 -5252 4852 -1 -4853 4853 6 -4854 4853 -1 -4873 4853 -1 -5253 4853 -1 -4854 4854 6 -4855 4854 -1 -4874 4854 -1 -5254 4854 -1 -4855 4855 6 -4856 4855 -1 -4875 4855 -1 -5255 4855 -1 -4856 4856 6 -4857 4856 -1 -4876 4856 -1 -5256 4856 -1 -4857 4857 6 -4858 4857 -1 -4877 4857 -1 -5257 4857 -1 -4858 4858 6 -4859 4858 -1 -4878 4858 -1 -5258 4858 -1 -4859 4859 6 -4860 4859 -1 -4879 4859 -1 -5259 4859 -1 -4860 4860 6 -4880 4860 -1 -5260 4860 -1 -4861 4861 6 -4862 4861 -1 -4881 4861 -1 -5261 4861 -1 -4862 4862 6 -4863 4862 -1 -4882 4862 -1 -5262 4862 -1 -4863 4863 6 -4864 4863 -1 -4883 4863 -1 -5263 4863 -1 -4864 4864 6 -4865 4864 -1 -4884 4864 -1 -5264 4864 -1 -4865 4865 6 -4866 4865 -1 -4885 4865 -1 -5265 4865 -1 -4866 4866 6 -4867 4866 -1 -4886 4866 -1 -5266 4866 -1 -4867 4867 6 -4868 4867 -1 -4887 4867 -1 -5267 4867 -1 -4868 4868 6 -4869 4868 -1 -4888 4868 -1 -5268 4868 -1 -4869 4869 6 -4870 4869 -1 -4889 4869 -1 -5269 4869 -1 -4870 4870 6 -4871 4870 -1 -4890 4870 -1 -5270 4870 -1 -4871 4871 6 -4872 4871 -1 -4891 4871 -1 -5271 4871 -1 -4872 4872 6 -4873 4872 -1 -4892 4872 -1 -5272 4872 -1 -4873 4873 6 -4874 4873 -1 -4893 4873 -1 -5273 4873 -1 -4874 4874 6 -4875 4874 -1 -4894 4874 -1 -5274 4874 -1 -4875 4875 6 -4876 4875 -1 -4895 4875 -1 -5275 4875 -1 -4876 4876 6 -4877 4876 -1 -4896 4876 -1 -5276 4876 -1 -4877 4877 6 -4878 4877 -1 -4897 4877 -1 -5277 4877 -1 -4878 4878 6 -4879 4878 -1 -4898 4878 -1 -5278 4878 -1 -4879 4879 6 -4880 4879 -1 -4899 4879 -1 -5279 4879 -1 -4880 4880 6 -4900 4880 -1 -5280 4880 -1 -4881 4881 6 -4882 4881 -1 -4901 4881 -1 -5281 4881 -1 -4882 4882 6 -4883 4882 -1 -4902 4882 -1 -5282 4882 -1 -4883 4883 6 -4884 4883 -1 -4903 4883 -1 -5283 4883 -1 -4884 4884 6 -4885 4884 -1 -4904 4884 -1 -5284 4884 -1 -4885 4885 6 -4886 4885 -1 -4905 4885 -1 -5285 4885 -1 -4886 4886 6 -4887 4886 -1 -4906 4886 -1 -5286 4886 -1 -4887 4887 6 -4888 4887 -1 -4907 4887 -1 -5287 4887 -1 -4888 4888 6 -4889 4888 -1 -4908 4888 -1 -5288 4888 -1 -4889 4889 6 -4890 4889 -1 -4909 4889 -1 -5289 4889 -1 -4890 4890 6 -4891 4890 -1 -4910 4890 -1 -5290 4890 -1 -4891 4891 6 -4892 4891 -1 -4911 4891 -1 -5291 4891 -1 -4892 4892 6 -4893 4892 -1 -4912 4892 -1 -5292 4892 -1 -4893 4893 6 -4894 4893 -1 -4913 4893 -1 -5293 4893 -1 -4894 4894 6 -4895 4894 -1 -4914 4894 -1 -5294 4894 -1 -4895 4895 6 -4896 4895 -1 -4915 4895 -1 -5295 4895 -1 -4896 4896 6 -4897 4896 -1 -4916 4896 -1 -5296 4896 -1 -4897 4897 6 -4898 4897 -1 -4917 4897 -1 -5297 4897 -1 -4898 4898 6 -4899 4898 -1 -4918 4898 -1 -5298 4898 -1 -4899 4899 6 -4900 4899 -1 -4919 4899 -1 -5299 4899 -1 -4900 4900 6 -4920 4900 -1 -5300 4900 -1 -4901 4901 6 -4902 4901 -1 -4921 4901 -1 -5301 4901 -1 -4902 4902 6 -4903 4902 -1 -4922 4902 -1 -5302 4902 -1 -4903 4903 6 -4904 4903 -1 -4923 4903 -1 -5303 4903 -1 -4904 4904 6 -4905 4904 -1 -4924 4904 -1 -5304 4904 -1 -4905 4905 6 -4906 4905 -1 -4925 4905 -1 -5305 4905 -1 -4906 4906 6 -4907 4906 -1 -4926 4906 -1 -5306 4906 -1 -4907 4907 6 -4908 4907 -1 -4927 4907 -1 -5307 4907 -1 -4908 4908 6 -4909 4908 -1 -4928 4908 -1 -5308 4908 -1 -4909 4909 6 -4910 4909 -1 -4929 4909 -1 -5309 4909 -1 -4910 4910 6 -4911 4910 -1 -4930 4910 -1 -5310 4910 -1 -4911 4911 6 -4912 4911 -1 -4931 4911 -1 -5311 4911 -1 -4912 4912 6 -4913 4912 -1 -4932 4912 -1 -5312 4912 -1 -4913 4913 6 -4914 4913 -1 -4933 4913 -1 -5313 4913 -1 -4914 4914 6 -4915 4914 -1 -4934 4914 -1 -5314 4914 -1 -4915 4915 6 -4916 4915 -1 -4935 4915 -1 -5315 4915 -1 -4916 4916 6 -4917 4916 -1 -4936 4916 -1 -5316 4916 -1 -4917 4917 6 -4918 4917 -1 -4937 4917 -1 -5317 4917 -1 -4918 4918 6 -4919 4918 -1 -4938 4918 -1 -5318 4918 -1 -4919 4919 6 -4920 4919 -1 -4939 4919 -1 -5319 4919 -1 -4920 4920 6 -4940 4920 -1 -5320 4920 -1 -4921 4921 6 -4922 4921 -1 -4941 4921 -1 -5321 4921 -1 -4922 4922 6 -4923 4922 -1 -4942 4922 -1 -5322 4922 -1 -4923 4923 6 -4924 4923 -1 -4943 4923 -1 -5323 4923 -1 -4924 4924 6 -4925 4924 -1 -4944 4924 -1 -5324 4924 -1 -4925 4925 6 -4926 4925 -1 -4945 4925 -1 -5325 4925 -1 -4926 4926 6 -4927 4926 -1 -4946 4926 -1 -5326 4926 -1 -4927 4927 6 -4928 4927 -1 -4947 4927 -1 -5327 4927 -1 -4928 4928 6 -4929 4928 -1 -4948 4928 -1 -5328 4928 -1 -4929 4929 6 -4930 4929 -1 -4949 4929 -1 -5329 4929 -1 -4930 4930 6 -4931 4930 -1 -4950 4930 -1 -5330 4930 -1 -4931 4931 6 -4932 4931 -1 -4951 4931 -1 -5331 4931 -1 -4932 4932 6 -4933 4932 -1 -4952 4932 -1 -5332 4932 -1 -4933 4933 6 -4934 4933 -1 -4953 4933 -1 -5333 4933 -1 -4934 4934 6 -4935 4934 -1 -4954 4934 -1 -5334 4934 -1 -4935 4935 6 -4936 4935 -1 -4955 4935 -1 -5335 4935 -1 -4936 4936 6 -4937 4936 -1 -4956 4936 -1 -5336 4936 -1 -4937 4937 6 -4938 4937 -1 -4957 4937 -1 -5337 4937 -1 -4938 4938 6 -4939 4938 -1 -4958 4938 -1 -5338 4938 -1 -4939 4939 6 -4940 4939 -1 -4959 4939 -1 -5339 4939 -1 -4940 4940 6 -4960 4940 -1 -5340 4940 -1 -4941 4941 6 -4942 4941 -1 -4961 4941 -1 -5341 4941 -1 -4942 4942 6 -4943 4942 -1 -4962 4942 -1 -5342 4942 -1 -4943 4943 6 -4944 4943 -1 -4963 4943 -1 -5343 4943 -1 -4944 4944 6 -4945 4944 -1 -4964 4944 -1 -5344 4944 -1 -4945 4945 6 -4946 4945 -1 -4965 4945 -1 -5345 4945 -1 -4946 4946 6 -4947 4946 -1 -4966 4946 -1 -5346 4946 -1 -4947 4947 6 -4948 4947 -1 -4967 4947 -1 -5347 4947 -1 -4948 4948 6 -4949 4948 -1 -4968 4948 -1 -5348 4948 -1 -4949 4949 6 -4950 4949 -1 -4969 4949 -1 -5349 4949 -1 -4950 4950 6 -4951 4950 -1 -4970 4950 -1 -5350 4950 -1 -4951 4951 6 -4952 4951 -1 -4971 4951 -1 -5351 4951 -1 -4952 4952 6 -4953 4952 -1 -4972 4952 -1 -5352 4952 -1 -4953 4953 6 -4954 4953 -1 -4973 4953 -1 -5353 4953 -1 -4954 4954 6 -4955 4954 -1 -4974 4954 -1 -5354 4954 -1 -4955 4955 6 -4956 4955 -1 -4975 4955 -1 -5355 4955 -1 -4956 4956 6 -4957 4956 -1 -4976 4956 -1 -5356 4956 -1 -4957 4957 6 -4958 4957 -1 -4977 4957 -1 -5357 4957 -1 -4958 4958 6 -4959 4958 -1 -4978 4958 -1 -5358 4958 -1 -4959 4959 6 -4960 4959 -1 -4979 4959 -1 -5359 4959 -1 -4960 4960 6 -4980 4960 -1 -5360 4960 -1 -4961 4961 6 -4962 4961 -1 -4981 4961 -1 -5361 4961 -1 -4962 4962 6 -4963 4962 -1 -4982 4962 -1 -5362 4962 -1 -4963 4963 6 -4964 4963 -1 -4983 4963 -1 -5363 4963 -1 -4964 4964 6 -4965 4964 -1 -4984 4964 -1 -5364 4964 -1 -4965 4965 6 -4966 4965 -1 -4985 4965 -1 -5365 4965 -1 -4966 4966 6 -4967 4966 -1 -4986 4966 -1 -5366 4966 -1 -4967 4967 6 -4968 4967 -1 -4987 4967 -1 -5367 4967 -1 -4968 4968 6 -4969 4968 -1 -4988 4968 -1 -5368 4968 -1 -4969 4969 6 -4970 4969 -1 -4989 4969 -1 -5369 4969 -1 -4970 4970 6 -4971 4970 -1 -4990 4970 -1 -5370 4970 -1 -4971 4971 6 -4972 4971 -1 -4991 4971 -1 -5371 4971 -1 -4972 4972 6 -4973 4972 -1 -4992 4972 -1 -5372 4972 -1 -4973 4973 6 -4974 4973 -1 -4993 4973 -1 -5373 4973 -1 -4974 4974 6 -4975 4974 -1 -4994 4974 -1 -5374 4974 -1 -4975 4975 6 -4976 4975 -1 -4995 4975 -1 -5375 4975 -1 -4976 4976 6 -4977 4976 -1 -4996 4976 -1 -5376 4976 -1 -4977 4977 6 -4978 4977 -1 -4997 4977 -1 -5377 4977 -1 -4978 4978 6 -4979 4978 -1 -4998 4978 -1 -5378 4978 -1 -4979 4979 6 -4980 4979 -1 -4999 4979 -1 -5379 4979 -1 -4980 4980 6 -5000 4980 -1 -5380 4980 -1 -4981 4981 6 -4982 4981 -1 -5001 4981 -1 -5381 4981 -1 -4982 4982 6 -4983 4982 -1 -5002 4982 -1 -5382 4982 -1 -4983 4983 6 -4984 4983 -1 -5003 4983 -1 -5383 4983 -1 -4984 4984 6 -4985 4984 -1 -5004 4984 -1 -5384 4984 -1 -4985 4985 6 -4986 4985 -1 -5005 4985 -1 -5385 4985 -1 -4986 4986 6 -4987 4986 -1 -5006 4986 -1 -5386 4986 -1 -4987 4987 6 -4988 4987 -1 -5007 4987 -1 -5387 4987 -1 -4988 4988 6 -4989 4988 -1 -5008 4988 -1 -5388 4988 -1 -4989 4989 6 -4990 4989 -1 -5009 4989 -1 -5389 4989 -1 -4990 4990 6 -4991 4990 -1 -5010 4990 -1 -5390 4990 -1 -4991 4991 6 -4992 4991 -1 -5011 4991 -1 -5391 4991 -1 -4992 4992 6 -4993 4992 -1 -5012 4992 -1 -5392 4992 -1 -4993 4993 6 -4994 4993 -1 -5013 4993 -1 -5393 4993 -1 -4994 4994 6 -4995 4994 -1 -5014 4994 -1 -5394 4994 -1 -4995 4995 6 -4996 4995 -1 -5015 4995 -1 -5395 4995 -1 -4996 4996 6 -4997 4996 -1 -5016 4996 -1 -5396 4996 -1 -4997 4997 6 -4998 4997 -1 -5017 4997 -1 -5397 4997 -1 -4998 4998 6 -4999 4998 -1 -5018 4998 -1 -5398 4998 -1 -4999 4999 6 -5000 4999 -1 -5019 4999 -1 -5399 4999 -1 -5000 5000 6 -5020 5000 -1 -5400 5000 -1 -5001 5001 6 -5002 5001 -1 -5021 5001 -1 -5401 5001 -1 -5002 5002 6 -5003 5002 -1 -5022 5002 -1 -5402 5002 -1 -5003 5003 6 -5004 5003 -1 -5023 5003 -1 -5403 5003 -1 -5004 5004 6 -5005 5004 -1 -5024 5004 -1 -5404 5004 -1 -5005 5005 6 -5006 5005 -1 -5025 5005 -1 -5405 5005 -1 -5006 5006 6 -5007 5006 -1 -5026 5006 -1 -5406 5006 -1 -5007 5007 6 -5008 5007 -1 -5027 5007 -1 -5407 5007 -1 -5008 5008 6 -5009 5008 -1 -5028 5008 -1 -5408 5008 -1 -5009 5009 6 -5010 5009 -1 -5029 5009 -1 -5409 5009 -1 -5010 5010 6 -5011 5010 -1 -5030 5010 -1 -5410 5010 -1 -5011 5011 6 -5012 5011 -1 -5031 5011 -1 -5411 5011 -1 -5012 5012 6 -5013 5012 -1 -5032 5012 -1 -5412 5012 -1 -5013 5013 6 -5014 5013 -1 -5033 5013 -1 -5413 5013 -1 -5014 5014 6 -5015 5014 -1 -5034 5014 -1 -5414 5014 -1 -5015 5015 6 -5016 5015 -1 -5035 5015 -1 -5415 5015 -1 -5016 5016 6 -5017 5016 -1 -5036 5016 -1 -5416 5016 -1 -5017 5017 6 -5018 5017 -1 -5037 5017 -1 -5417 5017 -1 -5018 5018 6 -5019 5018 -1 -5038 5018 -1 -5418 5018 -1 -5019 5019 6 -5020 5019 -1 -5039 5019 -1 -5419 5019 -1 -5020 5020 6 -5040 5020 -1 -5420 5020 -1 -5021 5021 6 -5022 5021 -1 -5041 5021 -1 -5421 5021 -1 -5022 5022 6 -5023 5022 -1 -5042 5022 -1 -5422 5022 -1 -5023 5023 6 -5024 5023 -1 -5043 5023 -1 -5423 5023 -1 -5024 5024 6 -5025 5024 -1 -5044 5024 -1 -5424 5024 -1 -5025 5025 6 -5026 5025 -1 -5045 5025 -1 -5425 5025 -1 -5026 5026 6 -5027 5026 -1 -5046 5026 -1 -5426 5026 -1 -5027 5027 6 -5028 5027 -1 -5047 5027 -1 -5427 5027 -1 -5028 5028 6 -5029 5028 -1 -5048 5028 -1 -5428 5028 -1 -5029 5029 6 -5030 5029 -1 -5049 5029 -1 -5429 5029 -1 -5030 5030 6 -5031 5030 -1 -5050 5030 -1 -5430 5030 -1 -5031 5031 6 -5032 5031 -1 -5051 5031 -1 -5431 5031 -1 -5032 5032 6 -5033 5032 -1 -5052 5032 -1 -5432 5032 -1 -5033 5033 6 -5034 5033 -1 -5053 5033 -1 -5433 5033 -1 -5034 5034 6 -5035 5034 -1 -5054 5034 -1 -5434 5034 -1 -5035 5035 6 -5036 5035 -1 -5055 5035 -1 -5435 5035 -1 -5036 5036 6 -5037 5036 -1 -5056 5036 -1 -5436 5036 -1 -5037 5037 6 -5038 5037 -1 -5057 5037 -1 -5437 5037 -1 -5038 5038 6 -5039 5038 -1 -5058 5038 -1 -5438 5038 -1 -5039 5039 6 -5040 5039 -1 -5059 5039 -1 -5439 5039 -1 -5040 5040 6 -5060 5040 -1 -5440 5040 -1 -5041 5041 6 -5042 5041 -1 -5061 5041 -1 -5441 5041 -1 -5042 5042 6 -5043 5042 -1 -5062 5042 -1 -5442 5042 -1 -5043 5043 6 -5044 5043 -1 -5063 5043 -1 -5443 5043 -1 -5044 5044 6 -5045 5044 -1 -5064 5044 -1 -5444 5044 -1 -5045 5045 6 -5046 5045 -1 -5065 5045 -1 -5445 5045 -1 -5046 5046 6 -5047 5046 -1 -5066 5046 -1 -5446 5046 -1 -5047 5047 6 -5048 5047 -1 -5067 5047 -1 -5447 5047 -1 -5048 5048 6 -5049 5048 -1 -5068 5048 -1 -5448 5048 -1 -5049 5049 6 -5050 5049 -1 -5069 5049 -1 -5449 5049 -1 -5050 5050 6 -5051 5050 -1 -5070 5050 -1 -5450 5050 -1 -5051 5051 6 -5052 5051 -1 -5071 5051 -1 -5451 5051 -1 -5052 5052 6 -5053 5052 -1 -5072 5052 -1 -5452 5052 -1 -5053 5053 6 -5054 5053 -1 -5073 5053 -1 -5453 5053 -1 -5054 5054 6 -5055 5054 -1 -5074 5054 -1 -5454 5054 -1 -5055 5055 6 -5056 5055 -1 -5075 5055 -1 -5455 5055 -1 -5056 5056 6 -5057 5056 -1 -5076 5056 -1 -5456 5056 -1 -5057 5057 6 -5058 5057 -1 -5077 5057 -1 -5457 5057 -1 -5058 5058 6 -5059 5058 -1 -5078 5058 -1 -5458 5058 -1 -5059 5059 6 -5060 5059 -1 -5079 5059 -1 -5459 5059 -1 -5060 5060 6 -5080 5060 -1 -5460 5060 -1 -5061 5061 6 -5062 5061 -1 -5081 5061 -1 -5461 5061 -1 -5062 5062 6 -5063 5062 -1 -5082 5062 -1 -5462 5062 -1 -5063 5063 6 -5064 5063 -1 -5083 5063 -1 -5463 5063 -1 -5064 5064 6 -5065 5064 -1 -5084 5064 -1 -5464 5064 -1 -5065 5065 6 -5066 5065 -1 -5085 5065 -1 -5465 5065 -1 -5066 5066 6 -5067 5066 -1 -5086 5066 -1 -5466 5066 -1 -5067 5067 6 -5068 5067 -1 -5087 5067 -1 -5467 5067 -1 -5068 5068 6 -5069 5068 -1 -5088 5068 -1 -5468 5068 -1 -5069 5069 6 -5070 5069 -1 -5089 5069 -1 -5469 5069 -1 -5070 5070 6 -5071 5070 -1 -5090 5070 -1 -5470 5070 -1 -5071 5071 6 -5072 5071 -1 -5091 5071 -1 -5471 5071 -1 -5072 5072 6 -5073 5072 -1 -5092 5072 -1 -5472 5072 -1 -5073 5073 6 -5074 5073 -1 -5093 5073 -1 -5473 5073 -1 -5074 5074 6 -5075 5074 -1 -5094 5074 -1 -5474 5074 -1 -5075 5075 6 -5076 5075 -1 -5095 5075 -1 -5475 5075 -1 -5076 5076 6 -5077 5076 -1 -5096 5076 -1 -5476 5076 -1 -5077 5077 6 -5078 5077 -1 -5097 5077 -1 -5477 5077 -1 -5078 5078 6 -5079 5078 -1 -5098 5078 -1 -5478 5078 -1 -5079 5079 6 -5080 5079 -1 -5099 5079 -1 -5479 5079 -1 -5080 5080 6 -5100 5080 -1 -5480 5080 -1 -5081 5081 6 -5082 5081 -1 -5101 5081 -1 -5481 5081 -1 -5082 5082 6 -5083 5082 -1 -5102 5082 -1 -5482 5082 -1 -5083 5083 6 -5084 5083 -1 -5103 5083 -1 -5483 5083 -1 -5084 5084 6 -5085 5084 -1 -5104 5084 -1 -5484 5084 -1 -5085 5085 6 -5086 5085 -1 -5105 5085 -1 -5485 5085 -1 -5086 5086 6 -5087 5086 -1 -5106 5086 -1 -5486 5086 -1 -5087 5087 6 -5088 5087 -1 -5107 5087 -1 -5487 5087 -1 -5088 5088 6 -5089 5088 -1 -5108 5088 -1 -5488 5088 -1 -5089 5089 6 -5090 5089 -1 -5109 5089 -1 -5489 5089 -1 -5090 5090 6 -5091 5090 -1 -5110 5090 -1 -5490 5090 -1 -5091 5091 6 -5092 5091 -1 -5111 5091 -1 -5491 5091 -1 -5092 5092 6 -5093 5092 -1 -5112 5092 -1 -5492 5092 -1 -5093 5093 6 -5094 5093 -1 -5113 5093 -1 -5493 5093 -1 -5094 5094 6 -5095 5094 -1 -5114 5094 -1 -5494 5094 -1 -5095 5095 6 -5096 5095 -1 -5115 5095 -1 -5495 5095 -1 -5096 5096 6 -5097 5096 -1 -5116 5096 -1 -5496 5096 -1 -5097 5097 6 -5098 5097 -1 -5117 5097 -1 -5497 5097 -1 -5098 5098 6 -5099 5098 -1 -5118 5098 -1 -5498 5098 -1 -5099 5099 6 -5100 5099 -1 -5119 5099 -1 -5499 5099 -1 -5100 5100 6 -5120 5100 -1 -5500 5100 -1 -5101 5101 6 -5102 5101 -1 -5121 5101 -1 -5501 5101 -1 -5102 5102 6 -5103 5102 -1 -5122 5102 -1 -5502 5102 -1 -5103 5103 6 -5104 5103 -1 -5123 5103 -1 -5503 5103 -1 -5104 5104 6 -5105 5104 -1 -5124 5104 -1 -5504 5104 -1 -5105 5105 6 -5106 5105 -1 -5125 5105 -1 -5505 5105 -1 -5106 5106 6 -5107 5106 -1 -5126 5106 -1 -5506 5106 -1 -5107 5107 6 -5108 5107 -1 -5127 5107 -1 -5507 5107 -1 -5108 5108 6 -5109 5108 -1 -5128 5108 -1 -5508 5108 -1 -5109 5109 6 -5110 5109 -1 -5129 5109 -1 -5509 5109 -1 -5110 5110 6 -5111 5110 -1 -5130 5110 -1 -5510 5110 -1 -5111 5111 6 -5112 5111 -1 -5131 5111 -1 -5511 5111 -1 -5112 5112 6 -5113 5112 -1 -5132 5112 -1 -5512 5112 -1 -5113 5113 6 -5114 5113 -1 -5133 5113 -1 -5513 5113 -1 -5114 5114 6 -5115 5114 -1 -5134 5114 -1 -5514 5114 -1 -5115 5115 6 -5116 5115 -1 -5135 5115 -1 -5515 5115 -1 -5116 5116 6 -5117 5116 -1 -5136 5116 -1 -5516 5116 -1 -5117 5117 6 -5118 5117 -1 -5137 5117 -1 -5517 5117 -1 -5118 5118 6 -5119 5118 -1 -5138 5118 -1 -5518 5118 -1 -5119 5119 6 -5120 5119 -1 -5139 5119 -1 -5519 5119 -1 -5120 5120 6 -5140 5120 -1 -5520 5120 -1 -5121 5121 6 -5122 5121 -1 -5141 5121 -1 -5521 5121 -1 -5122 5122 6 -5123 5122 -1 -5142 5122 -1 -5522 5122 -1 -5123 5123 6 -5124 5123 -1 -5143 5123 -1 -5523 5123 -1 -5124 5124 6 -5125 5124 -1 -5144 5124 -1 -5524 5124 -1 -5125 5125 6 -5126 5125 -1 -5145 5125 -1 -5525 5125 -1 -5126 5126 6 -5127 5126 -1 -5146 5126 -1 -5526 5126 -1 -5127 5127 6 -5128 5127 -1 -5147 5127 -1 -5527 5127 -1 -5128 5128 6 -5129 5128 -1 -5148 5128 -1 -5528 5128 -1 -5129 5129 6 -5130 5129 -1 -5149 5129 -1 -5529 5129 -1 -5130 5130 6 -5131 5130 -1 -5150 5130 -1 -5530 5130 -1 -5131 5131 6 -5132 5131 -1 -5151 5131 -1 -5531 5131 -1 -5132 5132 6 -5133 5132 -1 -5152 5132 -1 -5532 5132 -1 -5133 5133 6 -5134 5133 -1 -5153 5133 -1 -5533 5133 -1 -5134 5134 6 -5135 5134 -1 -5154 5134 -1 -5534 5134 -1 -5135 5135 6 -5136 5135 -1 -5155 5135 -1 -5535 5135 -1 -5136 5136 6 -5137 5136 -1 -5156 5136 -1 -5536 5136 -1 -5137 5137 6 -5138 5137 -1 -5157 5137 -1 -5537 5137 -1 -5138 5138 6 -5139 5138 -1 -5158 5138 -1 -5538 5138 -1 -5139 5139 6 -5140 5139 -1 -5159 5139 -1 -5539 5139 -1 -5140 5140 6 -5160 5140 -1 -5540 5140 -1 -5141 5141 6 -5142 5141 -1 -5161 5141 -1 -5541 5141 -1 -5142 5142 6 -5143 5142 -1 -5162 5142 -1 -5542 5142 -1 -5143 5143 6 -5144 5143 -1 -5163 5143 -1 -5543 5143 -1 -5144 5144 6 -5145 5144 -1 -5164 5144 -1 -5544 5144 -1 -5145 5145 6 -5146 5145 -1 -5165 5145 -1 -5545 5145 -1 -5146 5146 6 -5147 5146 -1 -5166 5146 -1 -5546 5146 -1 -5147 5147 6 -5148 5147 -1 -5167 5147 -1 -5547 5147 -1 -5148 5148 6 -5149 5148 -1 -5168 5148 -1 -5548 5148 -1 -5149 5149 6 -5150 5149 -1 -5169 5149 -1 -5549 5149 -1 -5150 5150 6 -5151 5150 -1 -5170 5150 -1 -5550 5150 -1 -5151 5151 6 -5152 5151 -1 -5171 5151 -1 -5551 5151 -1 -5152 5152 6 -5153 5152 -1 -5172 5152 -1 -5552 5152 -1 -5153 5153 6 -5154 5153 -1 -5173 5153 -1 -5553 5153 -1 -5154 5154 6 -5155 5154 -1 -5174 5154 -1 -5554 5154 -1 -5155 5155 6 -5156 5155 -1 -5175 5155 -1 -5555 5155 -1 -5156 5156 6 -5157 5156 -1 -5176 5156 -1 -5556 5156 -1 -5157 5157 6 -5158 5157 -1 -5177 5157 -1 -5557 5157 -1 -5158 5158 6 -5159 5158 -1 -5178 5158 -1 -5558 5158 -1 -5159 5159 6 -5160 5159 -1 -5179 5159 -1 -5559 5159 -1 -5160 5160 6 -5180 5160 -1 -5560 5160 -1 -5161 5161 6 -5162 5161 -1 -5181 5161 -1 -5561 5161 -1 -5162 5162 6 -5163 5162 -1 -5182 5162 -1 -5562 5162 -1 -5163 5163 6 -5164 5163 -1 -5183 5163 -1 -5563 5163 -1 -5164 5164 6 -5165 5164 -1 -5184 5164 -1 -5564 5164 -1 -5165 5165 6 -5166 5165 -1 -5185 5165 -1 -5565 5165 -1 -5166 5166 6 -5167 5166 -1 -5186 5166 -1 -5566 5166 -1 -5167 5167 6 -5168 5167 -1 -5187 5167 -1 -5567 5167 -1 -5168 5168 6 -5169 5168 -1 -5188 5168 -1 -5568 5168 -1 -5169 5169 6 -5170 5169 -1 -5189 5169 -1 -5569 5169 -1 -5170 5170 6 -5171 5170 -1 -5190 5170 -1 -5570 5170 -1 -5171 5171 6 -5172 5171 -1 -5191 5171 -1 -5571 5171 -1 -5172 5172 6 -5173 5172 -1 -5192 5172 -1 -5572 5172 -1 -5173 5173 6 -5174 5173 -1 -5193 5173 -1 -5573 5173 -1 -5174 5174 6 -5175 5174 -1 -5194 5174 -1 -5574 5174 -1 -5175 5175 6 -5176 5175 -1 -5195 5175 -1 -5575 5175 -1 -5176 5176 6 -5177 5176 -1 -5196 5176 -1 -5576 5176 -1 -5177 5177 6 -5178 5177 -1 -5197 5177 -1 -5577 5177 -1 -5178 5178 6 -5179 5178 -1 -5198 5178 -1 -5578 5178 -1 -5179 5179 6 -5180 5179 -1 -5199 5179 -1 -5579 5179 -1 -5180 5180 6 -5200 5180 -1 -5580 5180 -1 -5181 5181 6 -5182 5181 -1 -5581 5181 -1 -5182 5182 6 -5183 5182 -1 -5582 5182 -1 -5183 5183 6 -5184 5183 -1 -5583 5183 -1 -5184 5184 6 -5185 5184 -1 -5584 5184 -1 -5185 5185 6 -5186 5185 -1 -5585 5185 -1 -5186 5186 6 -5187 5186 -1 -5586 5186 -1 -5187 5187 6 -5188 5187 -1 -5587 5187 -1 -5188 5188 6 -5189 5188 -1 -5588 5188 -1 -5189 5189 6 -5190 5189 -1 -5589 5189 -1 -5190 5190 6 -5191 5190 -1 -5590 5190 -1 -5191 5191 6 -5192 5191 -1 -5591 5191 -1 -5192 5192 6 -5193 5192 -1 -5592 5192 -1 -5193 5193 6 -5194 5193 -1 -5593 5193 -1 -5194 5194 6 -5195 5194 -1 -5594 5194 -1 -5195 5195 6 -5196 5195 -1 -5595 5195 -1 -5196 5196 6 -5197 5196 -1 -5596 5196 -1 -5197 5197 6 -5198 5197 -1 -5597 5197 -1 -5198 5198 6 -5199 5198 -1 -5598 5198 -1 -5199 5199 6 -5200 5199 -1 -5599 5199 -1 -5200 5200 6 -5600 5200 -1 -5201 5201 6 -5202 5201 -1 -5221 5201 -1 -5601 5201 -1 -5202 5202 6 -5203 5202 -1 -5222 5202 -1 -5602 5202 -1 -5203 5203 6 -5204 5203 -1 -5223 5203 -1 -5603 5203 -1 -5204 5204 6 -5205 5204 -1 -5224 5204 -1 -5604 5204 -1 -5205 5205 6 -5206 5205 -1 -5225 5205 -1 -5605 5205 -1 -5206 5206 6 -5207 5206 -1 -5226 5206 -1 -5606 5206 -1 -5207 5207 6 -5208 5207 -1 -5227 5207 -1 -5607 5207 -1 -5208 5208 6 -5209 5208 -1 -5228 5208 -1 -5608 5208 -1 -5209 5209 6 -5210 5209 -1 -5229 5209 -1 -5609 5209 -1 -5210 5210 6 -5211 5210 -1 -5230 5210 -1 -5610 5210 -1 -5211 5211 6 -5212 5211 -1 -5231 5211 -1 -5611 5211 -1 -5212 5212 6 -5213 5212 -1 -5232 5212 -1 -5612 5212 -1 -5213 5213 6 -5214 5213 -1 -5233 5213 -1 -5613 5213 -1 -5214 5214 6 -5215 5214 -1 -5234 5214 -1 -5614 5214 -1 -5215 5215 6 -5216 5215 -1 -5235 5215 -1 -5615 5215 -1 -5216 5216 6 -5217 5216 -1 -5236 5216 -1 -5616 5216 -1 -5217 5217 6 -5218 5217 -1 -5237 5217 -1 -5617 5217 -1 -5218 5218 6 -5219 5218 -1 -5238 5218 -1 -5618 5218 -1 -5219 5219 6 -5220 5219 -1 -5239 5219 -1 -5619 5219 -1 -5220 5220 6 -5240 5220 -1 -5620 5220 -1 -5221 5221 6 -5222 5221 -1 -5241 5221 -1 -5621 5221 -1 -5222 5222 6 -5223 5222 -1 -5242 5222 -1 -5622 5222 -1 -5223 5223 6 -5224 5223 -1 -5243 5223 -1 -5623 5223 -1 -5224 5224 6 -5225 5224 -1 -5244 5224 -1 -5624 5224 -1 -5225 5225 6 -5226 5225 -1 -5245 5225 -1 -5625 5225 -1 -5226 5226 6 -5227 5226 -1 -5246 5226 -1 -5626 5226 -1 -5227 5227 6 -5228 5227 -1 -5247 5227 -1 -5627 5227 -1 -5228 5228 6 -5229 5228 -1 -5248 5228 -1 -5628 5228 -1 -5229 5229 6 -5230 5229 -1 -5249 5229 -1 -5629 5229 -1 -5230 5230 6 -5231 5230 -1 -5250 5230 -1 -5630 5230 -1 -5231 5231 6 -5232 5231 -1 -5251 5231 -1 -5631 5231 -1 -5232 5232 6 -5233 5232 -1 -5252 5232 -1 -5632 5232 -1 -5233 5233 6 -5234 5233 -1 -5253 5233 -1 -5633 5233 -1 -5234 5234 6 -5235 5234 -1 -5254 5234 -1 -5634 5234 -1 -5235 5235 6 -5236 5235 -1 -5255 5235 -1 -5635 5235 -1 -5236 5236 6 -5237 5236 -1 -5256 5236 -1 -5636 5236 -1 -5237 5237 6 -5238 5237 -1 -5257 5237 -1 -5637 5237 -1 -5238 5238 6 -5239 5238 -1 -5258 5238 -1 -5638 5238 -1 -5239 5239 6 -5240 5239 -1 -5259 5239 -1 -5639 5239 -1 -5240 5240 6 -5260 5240 -1 -5640 5240 -1 -5241 5241 6 -5242 5241 -1 -5261 5241 -1 -5641 5241 -1 -5242 5242 6 -5243 5242 -1 -5262 5242 -1 -5642 5242 -1 -5243 5243 6 -5244 5243 -1 -5263 5243 -1 -5643 5243 -1 -5244 5244 6 -5245 5244 -1 -5264 5244 -1 -5644 5244 -1 -5245 5245 6 -5246 5245 -1 -5265 5245 -1 -5645 5245 -1 -5246 5246 6 -5247 5246 -1 -5266 5246 -1 -5646 5246 -1 -5247 5247 6 -5248 5247 -1 -5267 5247 -1 -5647 5247 -1 -5248 5248 6 -5249 5248 -1 -5268 5248 -1 -5648 5248 -1 -5249 5249 6 -5250 5249 -1 -5269 5249 -1 -5649 5249 -1 -5250 5250 6 -5251 5250 -1 -5270 5250 -1 -5650 5250 -1 -5251 5251 6 -5252 5251 -1 -5271 5251 -1 -5651 5251 -1 -5252 5252 6 -5253 5252 -1 -5272 5252 -1 -5652 5252 -1 -5253 5253 6 -5254 5253 -1 -5273 5253 -1 -5653 5253 -1 -5254 5254 6 -5255 5254 -1 -5274 5254 -1 -5654 5254 -1 -5255 5255 6 -5256 5255 -1 -5275 5255 -1 -5655 5255 -1 -5256 5256 6 -5257 5256 -1 -5276 5256 -1 -5656 5256 -1 -5257 5257 6 -5258 5257 -1 -5277 5257 -1 -5657 5257 -1 -5258 5258 6 -5259 5258 -1 -5278 5258 -1 -5658 5258 -1 -5259 5259 6 -5260 5259 -1 -5279 5259 -1 -5659 5259 -1 -5260 5260 6 -5280 5260 -1 -5660 5260 -1 -5261 5261 6 -5262 5261 -1 -5281 5261 -1 -5661 5261 -1 -5262 5262 6 -5263 5262 -1 -5282 5262 -1 -5662 5262 -1 -5263 5263 6 -5264 5263 -1 -5283 5263 -1 -5663 5263 -1 -5264 5264 6 -5265 5264 -1 -5284 5264 -1 -5664 5264 -1 -5265 5265 6 -5266 5265 -1 -5285 5265 -1 -5665 5265 -1 -5266 5266 6 -5267 5266 -1 -5286 5266 -1 -5666 5266 -1 -5267 5267 6 -5268 5267 -1 -5287 5267 -1 -5667 5267 -1 -5268 5268 6 -5269 5268 -1 -5288 5268 -1 -5668 5268 -1 -5269 5269 6 -5270 5269 -1 -5289 5269 -1 -5669 5269 -1 -5270 5270 6 -5271 5270 -1 -5290 5270 -1 -5670 5270 -1 -5271 5271 6 -5272 5271 -1 -5291 5271 -1 -5671 5271 -1 -5272 5272 6 -5273 5272 -1 -5292 5272 -1 -5672 5272 -1 -5273 5273 6 -5274 5273 -1 -5293 5273 -1 -5673 5273 -1 -5274 5274 6 -5275 5274 -1 -5294 5274 -1 -5674 5274 -1 -5275 5275 6 -5276 5275 -1 -5295 5275 -1 -5675 5275 -1 -5276 5276 6 -5277 5276 -1 -5296 5276 -1 -5676 5276 -1 -5277 5277 6 -5278 5277 -1 -5297 5277 -1 -5677 5277 -1 -5278 5278 6 -5279 5278 -1 -5298 5278 -1 -5678 5278 -1 -5279 5279 6 -5280 5279 -1 -5299 5279 -1 -5679 5279 -1 -5280 5280 6 -5300 5280 -1 -5680 5280 -1 -5281 5281 6 -5282 5281 -1 -5301 5281 -1 -5681 5281 -1 -5282 5282 6 -5283 5282 -1 -5302 5282 -1 -5682 5282 -1 -5283 5283 6 -5284 5283 -1 -5303 5283 -1 -5683 5283 -1 -5284 5284 6 -5285 5284 -1 -5304 5284 -1 -5684 5284 -1 -5285 5285 6 -5286 5285 -1 -5305 5285 -1 -5685 5285 -1 -5286 5286 6 -5287 5286 -1 -5306 5286 -1 -5686 5286 -1 -5287 5287 6 -5288 5287 -1 -5307 5287 -1 -5687 5287 -1 -5288 5288 6 -5289 5288 -1 -5308 5288 -1 -5688 5288 -1 -5289 5289 6 -5290 5289 -1 -5309 5289 -1 -5689 5289 -1 -5290 5290 6 -5291 5290 -1 -5310 5290 -1 -5690 5290 -1 -5291 5291 6 -5292 5291 -1 -5311 5291 -1 -5691 5291 -1 -5292 5292 6 -5293 5292 -1 -5312 5292 -1 -5692 5292 -1 -5293 5293 6 -5294 5293 -1 -5313 5293 -1 -5693 5293 -1 -5294 5294 6 -5295 5294 -1 -5314 5294 -1 -5694 5294 -1 -5295 5295 6 -5296 5295 -1 -5315 5295 -1 -5695 5295 -1 -5296 5296 6 -5297 5296 -1 -5316 5296 -1 -5696 5296 -1 -5297 5297 6 -5298 5297 -1 -5317 5297 -1 -5697 5297 -1 -5298 5298 6 -5299 5298 -1 -5318 5298 -1 -5698 5298 -1 -5299 5299 6 -5300 5299 -1 -5319 5299 -1 -5699 5299 -1 -5300 5300 6 -5320 5300 -1 -5700 5300 -1 -5301 5301 6 -5302 5301 -1 -5321 5301 -1 -5701 5301 -1 -5302 5302 6 -5303 5302 -1 -5322 5302 -1 -5702 5302 -1 -5303 5303 6 -5304 5303 -1 -5323 5303 -1 -5703 5303 -1 -5304 5304 6 -5305 5304 -1 -5324 5304 -1 -5704 5304 -1 -5305 5305 6 -5306 5305 -1 -5325 5305 -1 -5705 5305 -1 -5306 5306 6 -5307 5306 -1 -5326 5306 -1 -5706 5306 -1 -5307 5307 6 -5308 5307 -1 -5327 5307 -1 -5707 5307 -1 -5308 5308 6 -5309 5308 -1 -5328 5308 -1 -5708 5308 -1 -5309 5309 6 -5310 5309 -1 -5329 5309 -1 -5709 5309 -1 -5310 5310 6 -5311 5310 -1 -5330 5310 -1 -5710 5310 -1 -5311 5311 6 -5312 5311 -1 -5331 5311 -1 -5711 5311 -1 -5312 5312 6 -5313 5312 -1 -5332 5312 -1 -5712 5312 -1 -5313 5313 6 -5314 5313 -1 -5333 5313 -1 -5713 5313 -1 -5314 5314 6 -5315 5314 -1 -5334 5314 -1 -5714 5314 -1 -5315 5315 6 -5316 5315 -1 -5335 5315 -1 -5715 5315 -1 -5316 5316 6 -5317 5316 -1 -5336 5316 -1 -5716 5316 -1 -5317 5317 6 -5318 5317 -1 -5337 5317 -1 -5717 5317 -1 -5318 5318 6 -5319 5318 -1 -5338 5318 -1 -5718 5318 -1 -5319 5319 6 -5320 5319 -1 -5339 5319 -1 -5719 5319 -1 -5320 5320 6 -5340 5320 -1 -5720 5320 -1 -5321 5321 6 -5322 5321 -1 -5341 5321 -1 -5721 5321 -1 -5322 5322 6 -5323 5322 -1 -5342 5322 -1 -5722 5322 -1 -5323 5323 6 -5324 5323 -1 -5343 5323 -1 -5723 5323 -1 -5324 5324 6 -5325 5324 -1 -5344 5324 -1 -5724 5324 -1 -5325 5325 6 -5326 5325 -1 -5345 5325 -1 -5725 5325 -1 -5326 5326 6 -5327 5326 -1 -5346 5326 -1 -5726 5326 -1 -5327 5327 6 -5328 5327 -1 -5347 5327 -1 -5727 5327 -1 -5328 5328 6 -5329 5328 -1 -5348 5328 -1 -5728 5328 -1 -5329 5329 6 -5330 5329 -1 -5349 5329 -1 -5729 5329 -1 -5330 5330 6 -5331 5330 -1 -5350 5330 -1 -5730 5330 -1 -5331 5331 6 -5332 5331 -1 -5351 5331 -1 -5731 5331 -1 -5332 5332 6 -5333 5332 -1 -5352 5332 -1 -5732 5332 -1 -5333 5333 6 -5334 5333 -1 -5353 5333 -1 -5733 5333 -1 -5334 5334 6 -5335 5334 -1 -5354 5334 -1 -5734 5334 -1 -5335 5335 6 -5336 5335 -1 -5355 5335 -1 -5735 5335 -1 -5336 5336 6 -5337 5336 -1 -5356 5336 -1 -5736 5336 -1 -5337 5337 6 -5338 5337 -1 -5357 5337 -1 -5737 5337 -1 -5338 5338 6 -5339 5338 -1 -5358 5338 -1 -5738 5338 -1 -5339 5339 6 -5340 5339 -1 -5359 5339 -1 -5739 5339 -1 -5340 5340 6 -5360 5340 -1 -5740 5340 -1 -5341 5341 6 -5342 5341 -1 -5361 5341 -1 -5741 5341 -1 -5342 5342 6 -5343 5342 -1 -5362 5342 -1 -5742 5342 -1 -5343 5343 6 -5344 5343 -1 -5363 5343 -1 -5743 5343 -1 -5344 5344 6 -5345 5344 -1 -5364 5344 -1 -5744 5344 -1 -5345 5345 6 -5346 5345 -1 -5365 5345 -1 -5745 5345 -1 -5346 5346 6 -5347 5346 -1 -5366 5346 -1 -5746 5346 -1 -5347 5347 6 -5348 5347 -1 -5367 5347 -1 -5747 5347 -1 -5348 5348 6 -5349 5348 -1 -5368 5348 -1 -5748 5348 -1 -5349 5349 6 -5350 5349 -1 -5369 5349 -1 -5749 5349 -1 -5350 5350 6 -5351 5350 -1 -5370 5350 -1 -5750 5350 -1 -5351 5351 6 -5352 5351 -1 -5371 5351 -1 -5751 5351 -1 -5352 5352 6 -5353 5352 -1 -5372 5352 -1 -5752 5352 -1 -5353 5353 6 -5354 5353 -1 -5373 5353 -1 -5753 5353 -1 -5354 5354 6 -5355 5354 -1 -5374 5354 -1 -5754 5354 -1 -5355 5355 6 -5356 5355 -1 -5375 5355 -1 -5755 5355 -1 -5356 5356 6 -5357 5356 -1 -5376 5356 -1 -5756 5356 -1 -5357 5357 6 -5358 5357 -1 -5377 5357 -1 -5757 5357 -1 -5358 5358 6 -5359 5358 -1 -5378 5358 -1 -5758 5358 -1 -5359 5359 6 -5360 5359 -1 -5379 5359 -1 -5759 5359 -1 -5360 5360 6 -5380 5360 -1 -5760 5360 -1 -5361 5361 6 -5362 5361 -1 -5381 5361 -1 -5761 5361 -1 -5362 5362 6 -5363 5362 -1 -5382 5362 -1 -5762 5362 -1 -5363 5363 6 -5364 5363 -1 -5383 5363 -1 -5763 5363 -1 -5364 5364 6 -5365 5364 -1 -5384 5364 -1 -5764 5364 -1 -5365 5365 6 -5366 5365 -1 -5385 5365 -1 -5765 5365 -1 -5366 5366 6 -5367 5366 -1 -5386 5366 -1 -5766 5366 -1 -5367 5367 6 -5368 5367 -1 -5387 5367 -1 -5767 5367 -1 -5368 5368 6 -5369 5368 -1 -5388 5368 -1 -5768 5368 -1 -5369 5369 6 -5370 5369 -1 -5389 5369 -1 -5769 5369 -1 -5370 5370 6 -5371 5370 -1 -5390 5370 -1 -5770 5370 -1 -5371 5371 6 -5372 5371 -1 -5391 5371 -1 -5771 5371 -1 -5372 5372 6 -5373 5372 -1 -5392 5372 -1 -5772 5372 -1 -5373 5373 6 -5374 5373 -1 -5393 5373 -1 -5773 5373 -1 -5374 5374 6 -5375 5374 -1 -5394 5374 -1 -5774 5374 -1 -5375 5375 6 -5376 5375 -1 -5395 5375 -1 -5775 5375 -1 -5376 5376 6 -5377 5376 -1 -5396 5376 -1 -5776 5376 -1 -5377 5377 6 -5378 5377 -1 -5397 5377 -1 -5777 5377 -1 -5378 5378 6 -5379 5378 -1 -5398 5378 -1 -5778 5378 -1 -5379 5379 6 -5380 5379 -1 -5399 5379 -1 -5779 5379 -1 -5380 5380 6 -5400 5380 -1 -5780 5380 -1 -5381 5381 6 -5382 5381 -1 -5401 5381 -1 -5781 5381 -1 -5382 5382 6 -5383 5382 -1 -5402 5382 -1 -5782 5382 -1 -5383 5383 6 -5384 5383 -1 -5403 5383 -1 -5783 5383 -1 -5384 5384 6 -5385 5384 -1 -5404 5384 -1 -5784 5384 -1 -5385 5385 6 -5386 5385 -1 -5405 5385 -1 -5785 5385 -1 -5386 5386 6 -5387 5386 -1 -5406 5386 -1 -5786 5386 -1 -5387 5387 6 -5388 5387 -1 -5407 5387 -1 -5787 5387 -1 -5388 5388 6 -5389 5388 -1 -5408 5388 -1 -5788 5388 -1 -5389 5389 6 -5390 5389 -1 -5409 5389 -1 -5789 5389 -1 -5390 5390 6 -5391 5390 -1 -5410 5390 -1 -5790 5390 -1 -5391 5391 6 -5392 5391 -1 -5411 5391 -1 -5791 5391 -1 -5392 5392 6 -5393 5392 -1 -5412 5392 -1 -5792 5392 -1 -5393 5393 6 -5394 5393 -1 -5413 5393 -1 -5793 5393 -1 -5394 5394 6 -5395 5394 -1 -5414 5394 -1 -5794 5394 -1 -5395 5395 6 -5396 5395 -1 -5415 5395 -1 -5795 5395 -1 -5396 5396 6 -5397 5396 -1 -5416 5396 -1 -5796 5396 -1 -5397 5397 6 -5398 5397 -1 -5417 5397 -1 -5797 5397 -1 -5398 5398 6 -5399 5398 -1 -5418 5398 -1 -5798 5398 -1 -5399 5399 6 -5400 5399 -1 -5419 5399 -1 -5799 5399 -1 -5400 5400 6 -5420 5400 -1 -5800 5400 -1 -5401 5401 6 -5402 5401 -1 -5421 5401 -1 -5801 5401 -1 -5402 5402 6 -5403 5402 -1 -5422 5402 -1 -5802 5402 -1 -5403 5403 6 -5404 5403 -1 -5423 5403 -1 -5803 5403 -1 -5404 5404 6 -5405 5404 -1 -5424 5404 -1 -5804 5404 -1 -5405 5405 6 -5406 5405 -1 -5425 5405 -1 -5805 5405 -1 -5406 5406 6 -5407 5406 -1 -5426 5406 -1 -5806 5406 -1 -5407 5407 6 -5408 5407 -1 -5427 5407 -1 -5807 5407 -1 -5408 5408 6 -5409 5408 -1 -5428 5408 -1 -5808 5408 -1 -5409 5409 6 -5410 5409 -1 -5429 5409 -1 -5809 5409 -1 -5410 5410 6 -5411 5410 -1 -5430 5410 -1 -5810 5410 -1 -5411 5411 6 -5412 5411 -1 -5431 5411 -1 -5811 5411 -1 -5412 5412 6 -5413 5412 -1 -5432 5412 -1 -5812 5412 -1 -5413 5413 6 -5414 5413 -1 -5433 5413 -1 -5813 5413 -1 -5414 5414 6 -5415 5414 -1 -5434 5414 -1 -5814 5414 -1 -5415 5415 6 -5416 5415 -1 -5435 5415 -1 -5815 5415 -1 -5416 5416 6 -5417 5416 -1 -5436 5416 -1 -5816 5416 -1 -5417 5417 6 -5418 5417 -1 -5437 5417 -1 -5817 5417 -1 -5418 5418 6 -5419 5418 -1 -5438 5418 -1 -5818 5418 -1 -5419 5419 6 -5420 5419 -1 -5439 5419 -1 -5819 5419 -1 -5420 5420 6 -5440 5420 -1 -5820 5420 -1 -5421 5421 6 -5422 5421 -1 -5441 5421 -1 -5821 5421 -1 -5422 5422 6 -5423 5422 -1 -5442 5422 -1 -5822 5422 -1 -5423 5423 6 -5424 5423 -1 -5443 5423 -1 -5823 5423 -1 -5424 5424 6 -5425 5424 -1 -5444 5424 -1 -5824 5424 -1 -5425 5425 6 -5426 5425 -1 -5445 5425 -1 -5825 5425 -1 -5426 5426 6 -5427 5426 -1 -5446 5426 -1 -5826 5426 -1 -5427 5427 6 -5428 5427 -1 -5447 5427 -1 -5827 5427 -1 -5428 5428 6 -5429 5428 -1 -5448 5428 -1 -5828 5428 -1 -5429 5429 6 -5430 5429 -1 -5449 5429 -1 -5829 5429 -1 -5430 5430 6 -5431 5430 -1 -5450 5430 -1 -5830 5430 -1 -5431 5431 6 -5432 5431 -1 -5451 5431 -1 -5831 5431 -1 -5432 5432 6 -5433 5432 -1 -5452 5432 -1 -5832 5432 -1 -5433 5433 6 -5434 5433 -1 -5453 5433 -1 -5833 5433 -1 -5434 5434 6 -5435 5434 -1 -5454 5434 -1 -5834 5434 -1 -5435 5435 6 -5436 5435 -1 -5455 5435 -1 -5835 5435 -1 -5436 5436 6 -5437 5436 -1 -5456 5436 -1 -5836 5436 -1 -5437 5437 6 -5438 5437 -1 -5457 5437 -1 -5837 5437 -1 -5438 5438 6 -5439 5438 -1 -5458 5438 -1 -5838 5438 -1 -5439 5439 6 -5440 5439 -1 -5459 5439 -1 -5839 5439 -1 -5440 5440 6 -5460 5440 -1 -5840 5440 -1 -5441 5441 6 -5442 5441 -1 -5461 5441 -1 -5841 5441 -1 -5442 5442 6 -5443 5442 -1 -5462 5442 -1 -5842 5442 -1 -5443 5443 6 -5444 5443 -1 -5463 5443 -1 -5843 5443 -1 -5444 5444 6 -5445 5444 -1 -5464 5444 -1 -5844 5444 -1 -5445 5445 6 -5446 5445 -1 -5465 5445 -1 -5845 5445 -1 -5446 5446 6 -5447 5446 -1 -5466 5446 -1 -5846 5446 -1 -5447 5447 6 -5448 5447 -1 -5467 5447 -1 -5847 5447 -1 -5448 5448 6 -5449 5448 -1 -5468 5448 -1 -5848 5448 -1 -5449 5449 6 -5450 5449 -1 -5469 5449 -1 -5849 5449 -1 -5450 5450 6 -5451 5450 -1 -5470 5450 -1 -5850 5450 -1 -5451 5451 6 -5452 5451 -1 -5471 5451 -1 -5851 5451 -1 -5452 5452 6 -5453 5452 -1 -5472 5452 -1 -5852 5452 -1 -5453 5453 6 -5454 5453 -1 -5473 5453 -1 -5853 5453 -1 -5454 5454 6 -5455 5454 -1 -5474 5454 -1 -5854 5454 -1 -5455 5455 6 -5456 5455 -1 -5475 5455 -1 -5855 5455 -1 -5456 5456 6 -5457 5456 -1 -5476 5456 -1 -5856 5456 -1 -5457 5457 6 -5458 5457 -1 -5477 5457 -1 -5857 5457 -1 -5458 5458 6 -5459 5458 -1 -5478 5458 -1 -5858 5458 -1 -5459 5459 6 -5460 5459 -1 -5479 5459 -1 -5859 5459 -1 -5460 5460 6 -5480 5460 -1 -5860 5460 -1 -5461 5461 6 -5462 5461 -1 -5481 5461 -1 -5861 5461 -1 -5462 5462 6 -5463 5462 -1 -5482 5462 -1 -5862 5462 -1 -5463 5463 6 -5464 5463 -1 -5483 5463 -1 -5863 5463 -1 -5464 5464 6 -5465 5464 -1 -5484 5464 -1 -5864 5464 -1 -5465 5465 6 -5466 5465 -1 -5485 5465 -1 -5865 5465 -1 -5466 5466 6 -5467 5466 -1 -5486 5466 -1 -5866 5466 -1 -5467 5467 6 -5468 5467 -1 -5487 5467 -1 -5867 5467 -1 -5468 5468 6 -5469 5468 -1 -5488 5468 -1 -5868 5468 -1 -5469 5469 6 -5470 5469 -1 -5489 5469 -1 -5869 5469 -1 -5470 5470 6 -5471 5470 -1 -5490 5470 -1 -5870 5470 -1 -5471 5471 6 -5472 5471 -1 -5491 5471 -1 -5871 5471 -1 -5472 5472 6 -5473 5472 -1 -5492 5472 -1 -5872 5472 -1 -5473 5473 6 -5474 5473 -1 -5493 5473 -1 -5873 5473 -1 -5474 5474 6 -5475 5474 -1 -5494 5474 -1 -5874 5474 -1 -5475 5475 6 -5476 5475 -1 -5495 5475 -1 -5875 5475 -1 -5476 5476 6 -5477 5476 -1 -5496 5476 -1 -5876 5476 -1 -5477 5477 6 -5478 5477 -1 -5497 5477 -1 -5877 5477 -1 -5478 5478 6 -5479 5478 -1 -5498 5478 -1 -5878 5478 -1 -5479 5479 6 -5480 5479 -1 -5499 5479 -1 -5879 5479 -1 -5480 5480 6 -5500 5480 -1 -5880 5480 -1 -5481 5481 6 -5482 5481 -1 -5501 5481 -1 -5881 5481 -1 -5482 5482 6 -5483 5482 -1 -5502 5482 -1 -5882 5482 -1 -5483 5483 6 -5484 5483 -1 -5503 5483 -1 -5883 5483 -1 -5484 5484 6 -5485 5484 -1 -5504 5484 -1 -5884 5484 -1 -5485 5485 6 -5486 5485 -1 -5505 5485 -1 -5885 5485 -1 -5486 5486 6 -5487 5486 -1 -5506 5486 -1 -5886 5486 -1 -5487 5487 6 -5488 5487 -1 -5507 5487 -1 -5887 5487 -1 -5488 5488 6 -5489 5488 -1 -5508 5488 -1 -5888 5488 -1 -5489 5489 6 -5490 5489 -1 -5509 5489 -1 -5889 5489 -1 -5490 5490 6 -5491 5490 -1 -5510 5490 -1 -5890 5490 -1 -5491 5491 6 -5492 5491 -1 -5511 5491 -1 -5891 5491 -1 -5492 5492 6 -5493 5492 -1 -5512 5492 -1 -5892 5492 -1 -5493 5493 6 -5494 5493 -1 -5513 5493 -1 -5893 5493 -1 -5494 5494 6 -5495 5494 -1 -5514 5494 -1 -5894 5494 -1 -5495 5495 6 -5496 5495 -1 -5515 5495 -1 -5895 5495 -1 -5496 5496 6 -5497 5496 -1 -5516 5496 -1 -5896 5496 -1 -5497 5497 6 -5498 5497 -1 -5517 5497 -1 -5897 5497 -1 -5498 5498 6 -5499 5498 -1 -5518 5498 -1 -5898 5498 -1 -5499 5499 6 -5500 5499 -1 -5519 5499 -1 -5899 5499 -1 -5500 5500 6 -5520 5500 -1 -5900 5500 -1 -5501 5501 6 -5502 5501 -1 -5521 5501 -1 -5901 5501 -1 -5502 5502 6 -5503 5502 -1 -5522 5502 -1 -5902 5502 -1 -5503 5503 6 -5504 5503 -1 -5523 5503 -1 -5903 5503 -1 -5504 5504 6 -5505 5504 -1 -5524 5504 -1 -5904 5504 -1 -5505 5505 6 -5506 5505 -1 -5525 5505 -1 -5905 5505 -1 -5506 5506 6 -5507 5506 -1 -5526 5506 -1 -5906 5506 -1 -5507 5507 6 -5508 5507 -1 -5527 5507 -1 -5907 5507 -1 -5508 5508 6 -5509 5508 -1 -5528 5508 -1 -5908 5508 -1 -5509 5509 6 -5510 5509 -1 -5529 5509 -1 -5909 5509 -1 -5510 5510 6 -5511 5510 -1 -5530 5510 -1 -5910 5510 -1 -5511 5511 6 -5512 5511 -1 -5531 5511 -1 -5911 5511 -1 -5512 5512 6 -5513 5512 -1 -5532 5512 -1 -5912 5512 -1 -5513 5513 6 -5514 5513 -1 -5533 5513 -1 -5913 5513 -1 -5514 5514 6 -5515 5514 -1 -5534 5514 -1 -5914 5514 -1 -5515 5515 6 -5516 5515 -1 -5535 5515 -1 -5915 5515 -1 -5516 5516 6 -5517 5516 -1 -5536 5516 -1 -5916 5516 -1 -5517 5517 6 -5518 5517 -1 -5537 5517 -1 -5917 5517 -1 -5518 5518 6 -5519 5518 -1 -5538 5518 -1 -5918 5518 -1 -5519 5519 6 -5520 5519 -1 -5539 5519 -1 -5919 5519 -1 -5520 5520 6 -5540 5520 -1 -5920 5520 -1 -5521 5521 6 -5522 5521 -1 -5541 5521 -1 -5921 5521 -1 -5522 5522 6 -5523 5522 -1 -5542 5522 -1 -5922 5522 -1 -5523 5523 6 -5524 5523 -1 -5543 5523 -1 -5923 5523 -1 -5524 5524 6 -5525 5524 -1 -5544 5524 -1 -5924 5524 -1 -5525 5525 6 -5526 5525 -1 -5545 5525 -1 -5925 5525 -1 -5526 5526 6 -5527 5526 -1 -5546 5526 -1 -5926 5526 -1 -5527 5527 6 -5528 5527 -1 -5547 5527 -1 -5927 5527 -1 -5528 5528 6 -5529 5528 -1 -5548 5528 -1 -5928 5528 -1 -5529 5529 6 -5530 5529 -1 -5549 5529 -1 -5929 5529 -1 -5530 5530 6 -5531 5530 -1 -5550 5530 -1 -5930 5530 -1 -5531 5531 6 -5532 5531 -1 -5551 5531 -1 -5931 5531 -1 -5532 5532 6 -5533 5532 -1 -5552 5532 -1 -5932 5532 -1 -5533 5533 6 -5534 5533 -1 -5553 5533 -1 -5933 5533 -1 -5534 5534 6 -5535 5534 -1 -5554 5534 -1 -5934 5534 -1 -5535 5535 6 -5536 5535 -1 -5555 5535 -1 -5935 5535 -1 -5536 5536 6 -5537 5536 -1 -5556 5536 -1 -5936 5536 -1 -5537 5537 6 -5538 5537 -1 -5557 5537 -1 -5937 5537 -1 -5538 5538 6 -5539 5538 -1 -5558 5538 -1 -5938 5538 -1 -5539 5539 6 -5540 5539 -1 -5559 5539 -1 -5939 5539 -1 -5540 5540 6 -5560 5540 -1 -5940 5540 -1 -5541 5541 6 -5542 5541 -1 -5561 5541 -1 -5941 5541 -1 -5542 5542 6 -5543 5542 -1 -5562 5542 -1 -5942 5542 -1 -5543 5543 6 -5544 5543 -1 -5563 5543 -1 -5943 5543 -1 -5544 5544 6 -5545 5544 -1 -5564 5544 -1 -5944 5544 -1 -5545 5545 6 -5546 5545 -1 -5565 5545 -1 -5945 5545 -1 -5546 5546 6 -5547 5546 -1 -5566 5546 -1 -5946 5546 -1 -5547 5547 6 -5548 5547 -1 -5567 5547 -1 -5947 5547 -1 -5548 5548 6 -5549 5548 -1 -5568 5548 -1 -5948 5548 -1 -5549 5549 6 -5550 5549 -1 -5569 5549 -1 -5949 5549 -1 -5550 5550 6 -5551 5550 -1 -5570 5550 -1 -5950 5550 -1 -5551 5551 6 -5552 5551 -1 -5571 5551 -1 -5951 5551 -1 -5552 5552 6 -5553 5552 -1 -5572 5552 -1 -5952 5552 -1 -5553 5553 6 -5554 5553 -1 -5573 5553 -1 -5953 5553 -1 -5554 5554 6 -5555 5554 -1 -5574 5554 -1 -5954 5554 -1 -5555 5555 6 -5556 5555 -1 -5575 5555 -1 -5955 5555 -1 -5556 5556 6 -5557 5556 -1 -5576 5556 -1 -5956 5556 -1 -5557 5557 6 -5558 5557 -1 -5577 5557 -1 -5957 5557 -1 -5558 5558 6 -5559 5558 -1 -5578 5558 -1 -5958 5558 -1 -5559 5559 6 -5560 5559 -1 -5579 5559 -1 -5959 5559 -1 -5560 5560 6 -5580 5560 -1 -5960 5560 -1 -5561 5561 6 -5562 5561 -1 -5581 5561 -1 -5961 5561 -1 -5562 5562 6 -5563 5562 -1 -5582 5562 -1 -5962 5562 -1 -5563 5563 6 -5564 5563 -1 -5583 5563 -1 -5963 5563 -1 -5564 5564 6 -5565 5564 -1 -5584 5564 -1 -5964 5564 -1 -5565 5565 6 -5566 5565 -1 -5585 5565 -1 -5965 5565 -1 -5566 5566 6 -5567 5566 -1 -5586 5566 -1 -5966 5566 -1 -5567 5567 6 -5568 5567 -1 -5587 5567 -1 -5967 5567 -1 -5568 5568 6 -5569 5568 -1 -5588 5568 -1 -5968 5568 -1 -5569 5569 6 -5570 5569 -1 -5589 5569 -1 -5969 5569 -1 -5570 5570 6 -5571 5570 -1 -5590 5570 -1 -5970 5570 -1 -5571 5571 6 -5572 5571 -1 -5591 5571 -1 -5971 5571 -1 -5572 5572 6 -5573 5572 -1 -5592 5572 -1 -5972 5572 -1 -5573 5573 6 -5574 5573 -1 -5593 5573 -1 -5973 5573 -1 -5574 5574 6 -5575 5574 -1 -5594 5574 -1 -5974 5574 -1 -5575 5575 6 -5576 5575 -1 -5595 5575 -1 -5975 5575 -1 -5576 5576 6 -5577 5576 -1 -5596 5576 -1 -5976 5576 -1 -5577 5577 6 -5578 5577 -1 -5597 5577 -1 -5977 5577 -1 -5578 5578 6 -5579 5578 -1 -5598 5578 -1 -5978 5578 -1 -5579 5579 6 -5580 5579 -1 -5599 5579 -1 -5979 5579 -1 -5580 5580 6 -5600 5580 -1 -5980 5580 -1 -5581 5581 6 -5582 5581 -1 -5981 5581 -1 -5582 5582 6 -5583 5582 -1 -5982 5582 -1 -5583 5583 6 -5584 5583 -1 -5983 5583 -1 -5584 5584 6 -5585 5584 -1 -5984 5584 -1 -5585 5585 6 -5586 5585 -1 -5985 5585 -1 -5586 5586 6 -5587 5586 -1 -5986 5586 -1 -5587 5587 6 -5588 5587 -1 -5987 5587 -1 -5588 5588 6 -5589 5588 -1 -5988 5588 -1 -5589 5589 6 -5590 5589 -1 -5989 5589 -1 -5590 5590 6 -5591 5590 -1 -5990 5590 -1 -5591 5591 6 -5592 5591 -1 -5991 5591 -1 -5592 5592 6 -5593 5592 -1 -5992 5592 -1 -5593 5593 6 -5594 5593 -1 -5993 5593 -1 -5594 5594 6 -5595 5594 -1 -5994 5594 -1 -5595 5595 6 -5596 5595 -1 -5995 5595 -1 -5596 5596 6 -5597 5596 -1 -5996 5596 -1 -5597 5597 6 -5598 5597 -1 -5997 5597 -1 -5598 5598 6 -5599 5598 -1 -5998 5598 -1 -5599 5599 6 -5600 5599 -1 -5999 5599 -1 -5600 5600 6 -6000 5600 -1 -5601 5601 6 -5602 5601 -1 -5621 5601 -1 -6001 5601 -1 -5602 5602 6 -5603 5602 -1 -5622 5602 -1 -6002 5602 -1 -5603 5603 6 -5604 5603 -1 -5623 5603 -1 -6003 5603 -1 -5604 5604 6 -5605 5604 -1 -5624 5604 -1 -6004 5604 -1 -5605 5605 6 -5606 5605 -1 -5625 5605 -1 -6005 5605 -1 -5606 5606 6 -5607 5606 -1 -5626 5606 -1 -6006 5606 -1 -5607 5607 6 -5608 5607 -1 -5627 5607 -1 -6007 5607 -1 -5608 5608 6 -5609 5608 -1 -5628 5608 -1 -6008 5608 -1 -5609 5609 6 -5610 5609 -1 -5629 5609 -1 -6009 5609 -1 -5610 5610 6 -5611 5610 -1 -5630 5610 -1 -6010 5610 -1 -5611 5611 6 -5612 5611 -1 -5631 5611 -1 -6011 5611 -1 -5612 5612 6 -5613 5612 -1 -5632 5612 -1 -6012 5612 -1 -5613 5613 6 -5614 5613 -1 -5633 5613 -1 -6013 5613 -1 -5614 5614 6 -5615 5614 -1 -5634 5614 -1 -6014 5614 -1 -5615 5615 6 -5616 5615 -1 -5635 5615 -1 -6015 5615 -1 -5616 5616 6 -5617 5616 -1 -5636 5616 -1 -6016 5616 -1 -5617 5617 6 -5618 5617 -1 -5637 5617 -1 -6017 5617 -1 -5618 5618 6 -5619 5618 -1 -5638 5618 -1 -6018 5618 -1 -5619 5619 6 -5620 5619 -1 -5639 5619 -1 -6019 5619 -1 -5620 5620 6 -5640 5620 -1 -6020 5620 -1 -5621 5621 6 -5622 5621 -1 -5641 5621 -1 -6021 5621 -1 -5622 5622 6 -5623 5622 -1 -5642 5622 -1 -6022 5622 -1 -5623 5623 6 -5624 5623 -1 -5643 5623 -1 -6023 5623 -1 -5624 5624 6 -5625 5624 -1 -5644 5624 -1 -6024 5624 -1 -5625 5625 6 -5626 5625 -1 -5645 5625 -1 -6025 5625 -1 -5626 5626 6 -5627 5626 -1 -5646 5626 -1 -6026 5626 -1 -5627 5627 6 -5628 5627 -1 -5647 5627 -1 -6027 5627 -1 -5628 5628 6 -5629 5628 -1 -5648 5628 -1 -6028 5628 -1 -5629 5629 6 -5630 5629 -1 -5649 5629 -1 -6029 5629 -1 -5630 5630 6 -5631 5630 -1 -5650 5630 -1 -6030 5630 -1 -5631 5631 6 -5632 5631 -1 -5651 5631 -1 -6031 5631 -1 -5632 5632 6 -5633 5632 -1 -5652 5632 -1 -6032 5632 -1 -5633 5633 6 -5634 5633 -1 -5653 5633 -1 -6033 5633 -1 -5634 5634 6 -5635 5634 -1 -5654 5634 -1 -6034 5634 -1 -5635 5635 6 -5636 5635 -1 -5655 5635 -1 -6035 5635 -1 -5636 5636 6 -5637 5636 -1 -5656 5636 -1 -6036 5636 -1 -5637 5637 6 -5638 5637 -1 -5657 5637 -1 -6037 5637 -1 -5638 5638 6 -5639 5638 -1 -5658 5638 -1 -6038 5638 -1 -5639 5639 6 -5640 5639 -1 -5659 5639 -1 -6039 5639 -1 -5640 5640 6 -5660 5640 -1 -6040 5640 -1 -5641 5641 6 -5642 5641 -1 -5661 5641 -1 -6041 5641 -1 -5642 5642 6 -5643 5642 -1 -5662 5642 -1 -6042 5642 -1 -5643 5643 6 -5644 5643 -1 -5663 5643 -1 -6043 5643 -1 -5644 5644 6 -5645 5644 -1 -5664 5644 -1 -6044 5644 -1 -5645 5645 6 -5646 5645 -1 -5665 5645 -1 -6045 5645 -1 -5646 5646 6 -5647 5646 -1 -5666 5646 -1 -6046 5646 -1 -5647 5647 6 -5648 5647 -1 -5667 5647 -1 -6047 5647 -1 -5648 5648 6 -5649 5648 -1 -5668 5648 -1 -6048 5648 -1 -5649 5649 6 -5650 5649 -1 -5669 5649 -1 -6049 5649 -1 -5650 5650 6 -5651 5650 -1 -5670 5650 -1 -6050 5650 -1 -5651 5651 6 -5652 5651 -1 -5671 5651 -1 -6051 5651 -1 -5652 5652 6 -5653 5652 -1 -5672 5652 -1 -6052 5652 -1 -5653 5653 6 -5654 5653 -1 -5673 5653 -1 -6053 5653 -1 -5654 5654 6 -5655 5654 -1 -5674 5654 -1 -6054 5654 -1 -5655 5655 6 -5656 5655 -1 -5675 5655 -1 -6055 5655 -1 -5656 5656 6 -5657 5656 -1 -5676 5656 -1 -6056 5656 -1 -5657 5657 6 -5658 5657 -1 -5677 5657 -1 -6057 5657 -1 -5658 5658 6 -5659 5658 -1 -5678 5658 -1 -6058 5658 -1 -5659 5659 6 -5660 5659 -1 -5679 5659 -1 -6059 5659 -1 -5660 5660 6 -5680 5660 -1 -6060 5660 -1 -5661 5661 6 -5662 5661 -1 -5681 5661 -1 -6061 5661 -1 -5662 5662 6 -5663 5662 -1 -5682 5662 -1 -6062 5662 -1 -5663 5663 6 -5664 5663 -1 -5683 5663 -1 -6063 5663 -1 -5664 5664 6 -5665 5664 -1 -5684 5664 -1 -6064 5664 -1 -5665 5665 6 -5666 5665 -1 -5685 5665 -1 -6065 5665 -1 -5666 5666 6 -5667 5666 -1 -5686 5666 -1 -6066 5666 -1 -5667 5667 6 -5668 5667 -1 -5687 5667 -1 -6067 5667 -1 -5668 5668 6 -5669 5668 -1 -5688 5668 -1 -6068 5668 -1 -5669 5669 6 -5670 5669 -1 -5689 5669 -1 -6069 5669 -1 -5670 5670 6 -5671 5670 -1 -5690 5670 -1 -6070 5670 -1 -5671 5671 6 -5672 5671 -1 -5691 5671 -1 -6071 5671 -1 -5672 5672 6 -5673 5672 -1 -5692 5672 -1 -6072 5672 -1 -5673 5673 6 -5674 5673 -1 -5693 5673 -1 -6073 5673 -1 -5674 5674 6 -5675 5674 -1 -5694 5674 -1 -6074 5674 -1 -5675 5675 6 -5676 5675 -1 -5695 5675 -1 -6075 5675 -1 -5676 5676 6 -5677 5676 -1 -5696 5676 -1 -6076 5676 -1 -5677 5677 6 -5678 5677 -1 -5697 5677 -1 -6077 5677 -1 -5678 5678 6 -5679 5678 -1 -5698 5678 -1 -6078 5678 -1 -5679 5679 6 -5680 5679 -1 -5699 5679 -1 -6079 5679 -1 -5680 5680 6 -5700 5680 -1 -6080 5680 -1 -5681 5681 6 -5682 5681 -1 -5701 5681 -1 -6081 5681 -1 -5682 5682 6 -5683 5682 -1 -5702 5682 -1 -6082 5682 -1 -5683 5683 6 -5684 5683 -1 -5703 5683 -1 -6083 5683 -1 -5684 5684 6 -5685 5684 -1 -5704 5684 -1 -6084 5684 -1 -5685 5685 6 -5686 5685 -1 -5705 5685 -1 -6085 5685 -1 -5686 5686 6 -5687 5686 -1 -5706 5686 -1 -6086 5686 -1 -5687 5687 6 -5688 5687 -1 -5707 5687 -1 -6087 5687 -1 -5688 5688 6 -5689 5688 -1 -5708 5688 -1 -6088 5688 -1 -5689 5689 6 -5690 5689 -1 -5709 5689 -1 -6089 5689 -1 -5690 5690 6 -5691 5690 -1 -5710 5690 -1 -6090 5690 -1 -5691 5691 6 -5692 5691 -1 -5711 5691 -1 -6091 5691 -1 -5692 5692 6 -5693 5692 -1 -5712 5692 -1 -6092 5692 -1 -5693 5693 6 -5694 5693 -1 -5713 5693 -1 -6093 5693 -1 -5694 5694 6 -5695 5694 -1 -5714 5694 -1 -6094 5694 -1 -5695 5695 6 -5696 5695 -1 -5715 5695 -1 -6095 5695 -1 -5696 5696 6 -5697 5696 -1 -5716 5696 -1 -6096 5696 -1 -5697 5697 6 -5698 5697 -1 -5717 5697 -1 -6097 5697 -1 -5698 5698 6 -5699 5698 -1 -5718 5698 -1 -6098 5698 -1 -5699 5699 6 -5700 5699 -1 -5719 5699 -1 -6099 5699 -1 -5700 5700 6 -5720 5700 -1 -6100 5700 -1 -5701 5701 6 -5702 5701 -1 -5721 5701 -1 -6101 5701 -1 -5702 5702 6 -5703 5702 -1 -5722 5702 -1 -6102 5702 -1 -5703 5703 6 -5704 5703 -1 -5723 5703 -1 -6103 5703 -1 -5704 5704 6 -5705 5704 -1 -5724 5704 -1 -6104 5704 -1 -5705 5705 6 -5706 5705 -1 -5725 5705 -1 -6105 5705 -1 -5706 5706 6 -5707 5706 -1 -5726 5706 -1 -6106 5706 -1 -5707 5707 6 -5708 5707 -1 -5727 5707 -1 -6107 5707 -1 -5708 5708 6 -5709 5708 -1 -5728 5708 -1 -6108 5708 -1 -5709 5709 6 -5710 5709 -1 -5729 5709 -1 -6109 5709 -1 -5710 5710 6 -5711 5710 -1 -5730 5710 -1 -6110 5710 -1 -5711 5711 6 -5712 5711 -1 -5731 5711 -1 -6111 5711 -1 -5712 5712 6 -5713 5712 -1 -5732 5712 -1 -6112 5712 -1 -5713 5713 6 -5714 5713 -1 -5733 5713 -1 -6113 5713 -1 -5714 5714 6 -5715 5714 -1 -5734 5714 -1 -6114 5714 -1 -5715 5715 6 -5716 5715 -1 -5735 5715 -1 -6115 5715 -1 -5716 5716 6 -5717 5716 -1 -5736 5716 -1 -6116 5716 -1 -5717 5717 6 -5718 5717 -1 -5737 5717 -1 -6117 5717 -1 -5718 5718 6 -5719 5718 -1 -5738 5718 -1 -6118 5718 -1 -5719 5719 6 -5720 5719 -1 -5739 5719 -1 -6119 5719 -1 -5720 5720 6 -5740 5720 -1 -6120 5720 -1 -5721 5721 6 -5722 5721 -1 -5741 5721 -1 -6121 5721 -1 -5722 5722 6 -5723 5722 -1 -5742 5722 -1 -6122 5722 -1 -5723 5723 6 -5724 5723 -1 -5743 5723 -1 -6123 5723 -1 -5724 5724 6 -5725 5724 -1 -5744 5724 -1 -6124 5724 -1 -5725 5725 6 -5726 5725 -1 -5745 5725 -1 -6125 5725 -1 -5726 5726 6 -5727 5726 -1 -5746 5726 -1 -6126 5726 -1 -5727 5727 6 -5728 5727 -1 -5747 5727 -1 -6127 5727 -1 -5728 5728 6 -5729 5728 -1 -5748 5728 -1 -6128 5728 -1 -5729 5729 6 -5730 5729 -1 -5749 5729 -1 -6129 5729 -1 -5730 5730 6 -5731 5730 -1 -5750 5730 -1 -6130 5730 -1 -5731 5731 6 -5732 5731 -1 -5751 5731 -1 -6131 5731 -1 -5732 5732 6 -5733 5732 -1 -5752 5732 -1 -6132 5732 -1 -5733 5733 6 -5734 5733 -1 -5753 5733 -1 -6133 5733 -1 -5734 5734 6 -5735 5734 -1 -5754 5734 -1 -6134 5734 -1 -5735 5735 6 -5736 5735 -1 -5755 5735 -1 -6135 5735 -1 -5736 5736 6 -5737 5736 -1 -5756 5736 -1 -6136 5736 -1 -5737 5737 6 -5738 5737 -1 -5757 5737 -1 -6137 5737 -1 -5738 5738 6 -5739 5738 -1 -5758 5738 -1 -6138 5738 -1 -5739 5739 6 -5740 5739 -1 -5759 5739 -1 -6139 5739 -1 -5740 5740 6 -5760 5740 -1 -6140 5740 -1 -5741 5741 6 -5742 5741 -1 -5761 5741 -1 -6141 5741 -1 -5742 5742 6 -5743 5742 -1 -5762 5742 -1 -6142 5742 -1 -5743 5743 6 -5744 5743 -1 -5763 5743 -1 -6143 5743 -1 -5744 5744 6 -5745 5744 -1 -5764 5744 -1 -6144 5744 -1 -5745 5745 6 -5746 5745 -1 -5765 5745 -1 -6145 5745 -1 -5746 5746 6 -5747 5746 -1 -5766 5746 -1 -6146 5746 -1 -5747 5747 6 -5748 5747 -1 -5767 5747 -1 -6147 5747 -1 -5748 5748 6 -5749 5748 -1 -5768 5748 -1 -6148 5748 -1 -5749 5749 6 -5750 5749 -1 -5769 5749 -1 -6149 5749 -1 -5750 5750 6 -5751 5750 -1 -5770 5750 -1 -6150 5750 -1 -5751 5751 6 -5752 5751 -1 -5771 5751 -1 -6151 5751 -1 -5752 5752 6 -5753 5752 -1 -5772 5752 -1 -6152 5752 -1 -5753 5753 6 -5754 5753 -1 -5773 5753 -1 -6153 5753 -1 -5754 5754 6 -5755 5754 -1 -5774 5754 -1 -6154 5754 -1 -5755 5755 6 -5756 5755 -1 -5775 5755 -1 -6155 5755 -1 -5756 5756 6 -5757 5756 -1 -5776 5756 -1 -6156 5756 -1 -5757 5757 6 -5758 5757 -1 -5777 5757 -1 -6157 5757 -1 -5758 5758 6 -5759 5758 -1 -5778 5758 -1 -6158 5758 -1 -5759 5759 6 -5760 5759 -1 -5779 5759 -1 -6159 5759 -1 -5760 5760 6 -5780 5760 -1 -6160 5760 -1 -5761 5761 6 -5762 5761 -1 -5781 5761 -1 -6161 5761 -1 -5762 5762 6 -5763 5762 -1 -5782 5762 -1 -6162 5762 -1 -5763 5763 6 -5764 5763 -1 -5783 5763 -1 -6163 5763 -1 -5764 5764 6 -5765 5764 -1 -5784 5764 -1 -6164 5764 -1 -5765 5765 6 -5766 5765 -1 -5785 5765 -1 -6165 5765 -1 -5766 5766 6 -5767 5766 -1 -5786 5766 -1 -6166 5766 -1 -5767 5767 6 -5768 5767 -1 -5787 5767 -1 -6167 5767 -1 -5768 5768 6 -5769 5768 -1 -5788 5768 -1 -6168 5768 -1 -5769 5769 6 -5770 5769 -1 -5789 5769 -1 -6169 5769 -1 -5770 5770 6 -5771 5770 -1 -5790 5770 -1 -6170 5770 -1 -5771 5771 6 -5772 5771 -1 -5791 5771 -1 -6171 5771 -1 -5772 5772 6 -5773 5772 -1 -5792 5772 -1 -6172 5772 -1 -5773 5773 6 -5774 5773 -1 -5793 5773 -1 -6173 5773 -1 -5774 5774 6 -5775 5774 -1 -5794 5774 -1 -6174 5774 -1 -5775 5775 6 -5776 5775 -1 -5795 5775 -1 -6175 5775 -1 -5776 5776 6 -5777 5776 -1 -5796 5776 -1 -6176 5776 -1 -5777 5777 6 -5778 5777 -1 -5797 5777 -1 -6177 5777 -1 -5778 5778 6 -5779 5778 -1 -5798 5778 -1 -6178 5778 -1 -5779 5779 6 -5780 5779 -1 -5799 5779 -1 -6179 5779 -1 -5780 5780 6 -5800 5780 -1 -6180 5780 -1 -5781 5781 6 -5782 5781 -1 -5801 5781 -1 -6181 5781 -1 -5782 5782 6 -5783 5782 -1 -5802 5782 -1 -6182 5782 -1 -5783 5783 6 -5784 5783 -1 -5803 5783 -1 -6183 5783 -1 -5784 5784 6 -5785 5784 -1 -5804 5784 -1 -6184 5784 -1 -5785 5785 6 -5786 5785 -1 -5805 5785 -1 -6185 5785 -1 -5786 5786 6 -5787 5786 -1 -5806 5786 -1 -6186 5786 -1 -5787 5787 6 -5788 5787 -1 -5807 5787 -1 -6187 5787 -1 -5788 5788 6 -5789 5788 -1 -5808 5788 -1 -6188 5788 -1 -5789 5789 6 -5790 5789 -1 -5809 5789 -1 -6189 5789 -1 -5790 5790 6 -5791 5790 -1 -5810 5790 -1 -6190 5790 -1 -5791 5791 6 -5792 5791 -1 -5811 5791 -1 -6191 5791 -1 -5792 5792 6 -5793 5792 -1 -5812 5792 -1 -6192 5792 -1 -5793 5793 6 -5794 5793 -1 -5813 5793 -1 -6193 5793 -1 -5794 5794 6 -5795 5794 -1 -5814 5794 -1 -6194 5794 -1 -5795 5795 6 -5796 5795 -1 -5815 5795 -1 -6195 5795 -1 -5796 5796 6 -5797 5796 -1 -5816 5796 -1 -6196 5796 -1 -5797 5797 6 -5798 5797 -1 -5817 5797 -1 -6197 5797 -1 -5798 5798 6 -5799 5798 -1 -5818 5798 -1 -6198 5798 -1 -5799 5799 6 -5800 5799 -1 -5819 5799 -1 -6199 5799 -1 -5800 5800 6 -5820 5800 -1 -6200 5800 -1 -5801 5801 6 -5802 5801 -1 -5821 5801 -1 -6201 5801 -1 -5802 5802 6 -5803 5802 -1 -5822 5802 -1 -6202 5802 -1 -5803 5803 6 -5804 5803 -1 -5823 5803 -1 -6203 5803 -1 -5804 5804 6 -5805 5804 -1 -5824 5804 -1 -6204 5804 -1 -5805 5805 6 -5806 5805 -1 -5825 5805 -1 -6205 5805 -1 -5806 5806 6 -5807 5806 -1 -5826 5806 -1 -6206 5806 -1 -5807 5807 6 -5808 5807 -1 -5827 5807 -1 -6207 5807 -1 -5808 5808 6 -5809 5808 -1 -5828 5808 -1 -6208 5808 -1 -5809 5809 6 -5810 5809 -1 -5829 5809 -1 -6209 5809 -1 -5810 5810 6 -5811 5810 -1 -5830 5810 -1 -6210 5810 -1 -5811 5811 6 -5812 5811 -1 -5831 5811 -1 -6211 5811 -1 -5812 5812 6 -5813 5812 -1 -5832 5812 -1 -6212 5812 -1 -5813 5813 6 -5814 5813 -1 -5833 5813 -1 -6213 5813 -1 -5814 5814 6 -5815 5814 -1 -5834 5814 -1 -6214 5814 -1 -5815 5815 6 -5816 5815 -1 -5835 5815 -1 -6215 5815 -1 -5816 5816 6 -5817 5816 -1 -5836 5816 -1 -6216 5816 -1 -5817 5817 6 -5818 5817 -1 -5837 5817 -1 -6217 5817 -1 -5818 5818 6 -5819 5818 -1 -5838 5818 -1 -6218 5818 -1 -5819 5819 6 -5820 5819 -1 -5839 5819 -1 -6219 5819 -1 -5820 5820 6 -5840 5820 -1 -6220 5820 -1 -5821 5821 6 -5822 5821 -1 -5841 5821 -1 -6221 5821 -1 -5822 5822 6 -5823 5822 -1 -5842 5822 -1 -6222 5822 -1 -5823 5823 6 -5824 5823 -1 -5843 5823 -1 -6223 5823 -1 -5824 5824 6 -5825 5824 -1 -5844 5824 -1 -6224 5824 -1 -5825 5825 6 -5826 5825 -1 -5845 5825 -1 -6225 5825 -1 -5826 5826 6 -5827 5826 -1 -5846 5826 -1 -6226 5826 -1 -5827 5827 6 -5828 5827 -1 -5847 5827 -1 -6227 5827 -1 -5828 5828 6 -5829 5828 -1 -5848 5828 -1 -6228 5828 -1 -5829 5829 6 -5830 5829 -1 -5849 5829 -1 -6229 5829 -1 -5830 5830 6 -5831 5830 -1 -5850 5830 -1 -6230 5830 -1 -5831 5831 6 -5832 5831 -1 -5851 5831 -1 -6231 5831 -1 -5832 5832 6 -5833 5832 -1 -5852 5832 -1 -6232 5832 -1 -5833 5833 6 -5834 5833 -1 -5853 5833 -1 -6233 5833 -1 -5834 5834 6 -5835 5834 -1 -5854 5834 -1 -6234 5834 -1 -5835 5835 6 -5836 5835 -1 -5855 5835 -1 -6235 5835 -1 -5836 5836 6 -5837 5836 -1 -5856 5836 -1 -6236 5836 -1 -5837 5837 6 -5838 5837 -1 -5857 5837 -1 -6237 5837 -1 -5838 5838 6 -5839 5838 -1 -5858 5838 -1 -6238 5838 -1 -5839 5839 6 -5840 5839 -1 -5859 5839 -1 -6239 5839 -1 -5840 5840 6 -5860 5840 -1 -6240 5840 -1 -5841 5841 6 -5842 5841 -1 -5861 5841 -1 -6241 5841 -1 -5842 5842 6 -5843 5842 -1 -5862 5842 -1 -6242 5842 -1 -5843 5843 6 -5844 5843 -1 -5863 5843 -1 -6243 5843 -1 -5844 5844 6 -5845 5844 -1 -5864 5844 -1 -6244 5844 -1 -5845 5845 6 -5846 5845 -1 -5865 5845 -1 -6245 5845 -1 -5846 5846 6 -5847 5846 -1 -5866 5846 -1 -6246 5846 -1 -5847 5847 6 -5848 5847 -1 -5867 5847 -1 -6247 5847 -1 -5848 5848 6 -5849 5848 -1 -5868 5848 -1 -6248 5848 -1 -5849 5849 6 -5850 5849 -1 -5869 5849 -1 -6249 5849 -1 -5850 5850 6 -5851 5850 -1 -5870 5850 -1 -6250 5850 -1 -5851 5851 6 -5852 5851 -1 -5871 5851 -1 -6251 5851 -1 -5852 5852 6 -5853 5852 -1 -5872 5852 -1 -6252 5852 -1 -5853 5853 6 -5854 5853 -1 -5873 5853 -1 -6253 5853 -1 -5854 5854 6 -5855 5854 -1 -5874 5854 -1 -6254 5854 -1 -5855 5855 6 -5856 5855 -1 -5875 5855 -1 -6255 5855 -1 -5856 5856 6 -5857 5856 -1 -5876 5856 -1 -6256 5856 -1 -5857 5857 6 -5858 5857 -1 -5877 5857 -1 -6257 5857 -1 -5858 5858 6 -5859 5858 -1 -5878 5858 -1 -6258 5858 -1 -5859 5859 6 -5860 5859 -1 -5879 5859 -1 -6259 5859 -1 -5860 5860 6 -5880 5860 -1 -6260 5860 -1 -5861 5861 6 -5862 5861 -1 -5881 5861 -1 -6261 5861 -1 -5862 5862 6 -5863 5862 -1 -5882 5862 -1 -6262 5862 -1 -5863 5863 6 -5864 5863 -1 -5883 5863 -1 -6263 5863 -1 -5864 5864 6 -5865 5864 -1 -5884 5864 -1 -6264 5864 -1 -5865 5865 6 -5866 5865 -1 -5885 5865 -1 -6265 5865 -1 -5866 5866 6 -5867 5866 -1 -5886 5866 -1 -6266 5866 -1 -5867 5867 6 -5868 5867 -1 -5887 5867 -1 -6267 5867 -1 -5868 5868 6 -5869 5868 -1 -5888 5868 -1 -6268 5868 -1 -5869 5869 6 -5870 5869 -1 -5889 5869 -1 -6269 5869 -1 -5870 5870 6 -5871 5870 -1 -5890 5870 -1 -6270 5870 -1 -5871 5871 6 -5872 5871 -1 -5891 5871 -1 -6271 5871 -1 -5872 5872 6 -5873 5872 -1 -5892 5872 -1 -6272 5872 -1 -5873 5873 6 -5874 5873 -1 -5893 5873 -1 -6273 5873 -1 -5874 5874 6 -5875 5874 -1 -5894 5874 -1 -6274 5874 -1 -5875 5875 6 -5876 5875 -1 -5895 5875 -1 -6275 5875 -1 -5876 5876 6 -5877 5876 -1 -5896 5876 -1 -6276 5876 -1 -5877 5877 6 -5878 5877 -1 -5897 5877 -1 -6277 5877 -1 -5878 5878 6 -5879 5878 -1 -5898 5878 -1 -6278 5878 -1 -5879 5879 6 -5880 5879 -1 -5899 5879 -1 -6279 5879 -1 -5880 5880 6 -5900 5880 -1 -6280 5880 -1 -5881 5881 6 -5882 5881 -1 -5901 5881 -1 -6281 5881 -1 -5882 5882 6 -5883 5882 -1 -5902 5882 -1 -6282 5882 -1 -5883 5883 6 -5884 5883 -1 -5903 5883 -1 -6283 5883 -1 -5884 5884 6 -5885 5884 -1 -5904 5884 -1 -6284 5884 -1 -5885 5885 6 -5886 5885 -1 -5905 5885 -1 -6285 5885 -1 -5886 5886 6 -5887 5886 -1 -5906 5886 -1 -6286 5886 -1 -5887 5887 6 -5888 5887 -1 -5907 5887 -1 -6287 5887 -1 -5888 5888 6 -5889 5888 -1 -5908 5888 -1 -6288 5888 -1 -5889 5889 6 -5890 5889 -1 -5909 5889 -1 -6289 5889 -1 -5890 5890 6 -5891 5890 -1 -5910 5890 -1 -6290 5890 -1 -5891 5891 6 -5892 5891 -1 -5911 5891 -1 -6291 5891 -1 -5892 5892 6 -5893 5892 -1 -5912 5892 -1 -6292 5892 -1 -5893 5893 6 -5894 5893 -1 -5913 5893 -1 -6293 5893 -1 -5894 5894 6 -5895 5894 -1 -5914 5894 -1 -6294 5894 -1 -5895 5895 6 -5896 5895 -1 -5915 5895 -1 -6295 5895 -1 -5896 5896 6 -5897 5896 -1 -5916 5896 -1 -6296 5896 -1 -5897 5897 6 -5898 5897 -1 -5917 5897 -1 -6297 5897 -1 -5898 5898 6 -5899 5898 -1 -5918 5898 -1 -6298 5898 -1 -5899 5899 6 -5900 5899 -1 -5919 5899 -1 -6299 5899 -1 -5900 5900 6 -5920 5900 -1 -6300 5900 -1 -5901 5901 6 -5902 5901 -1 -5921 5901 -1 -6301 5901 -1 -5902 5902 6 -5903 5902 -1 -5922 5902 -1 -6302 5902 -1 -5903 5903 6 -5904 5903 -1 -5923 5903 -1 -6303 5903 -1 -5904 5904 6 -5905 5904 -1 -5924 5904 -1 -6304 5904 -1 -5905 5905 6 -5906 5905 -1 -5925 5905 -1 -6305 5905 -1 -5906 5906 6 -5907 5906 -1 -5926 5906 -1 -6306 5906 -1 -5907 5907 6 -5908 5907 -1 -5927 5907 -1 -6307 5907 -1 -5908 5908 6 -5909 5908 -1 -5928 5908 -1 -6308 5908 -1 -5909 5909 6 -5910 5909 -1 -5929 5909 -1 -6309 5909 -1 -5910 5910 6 -5911 5910 -1 -5930 5910 -1 -6310 5910 -1 -5911 5911 6 -5912 5911 -1 -5931 5911 -1 -6311 5911 -1 -5912 5912 6 -5913 5912 -1 -5932 5912 -1 -6312 5912 -1 -5913 5913 6 -5914 5913 -1 -5933 5913 -1 -6313 5913 -1 -5914 5914 6 -5915 5914 -1 -5934 5914 -1 -6314 5914 -1 -5915 5915 6 -5916 5915 -1 -5935 5915 -1 -6315 5915 -1 -5916 5916 6 -5917 5916 -1 -5936 5916 -1 -6316 5916 -1 -5917 5917 6 -5918 5917 -1 -5937 5917 -1 -6317 5917 -1 -5918 5918 6 -5919 5918 -1 -5938 5918 -1 -6318 5918 -1 -5919 5919 6 -5920 5919 -1 -5939 5919 -1 -6319 5919 -1 -5920 5920 6 -5940 5920 -1 -6320 5920 -1 -5921 5921 6 -5922 5921 -1 -5941 5921 -1 -6321 5921 -1 -5922 5922 6 -5923 5922 -1 -5942 5922 -1 -6322 5922 -1 -5923 5923 6 -5924 5923 -1 -5943 5923 -1 -6323 5923 -1 -5924 5924 6 -5925 5924 -1 -5944 5924 -1 -6324 5924 -1 -5925 5925 6 -5926 5925 -1 -5945 5925 -1 -6325 5925 -1 -5926 5926 6 -5927 5926 -1 -5946 5926 -1 -6326 5926 -1 -5927 5927 6 -5928 5927 -1 -5947 5927 -1 -6327 5927 -1 -5928 5928 6 -5929 5928 -1 -5948 5928 -1 -6328 5928 -1 -5929 5929 6 -5930 5929 -1 -5949 5929 -1 -6329 5929 -1 -5930 5930 6 -5931 5930 -1 -5950 5930 -1 -6330 5930 -1 -5931 5931 6 -5932 5931 -1 -5951 5931 -1 -6331 5931 -1 -5932 5932 6 -5933 5932 -1 -5952 5932 -1 -6332 5932 -1 -5933 5933 6 -5934 5933 -1 -5953 5933 -1 -6333 5933 -1 -5934 5934 6 -5935 5934 -1 -5954 5934 -1 -6334 5934 -1 -5935 5935 6 -5936 5935 -1 -5955 5935 -1 -6335 5935 -1 -5936 5936 6 -5937 5936 -1 -5956 5936 -1 -6336 5936 -1 -5937 5937 6 -5938 5937 -1 -5957 5937 -1 -6337 5937 -1 -5938 5938 6 -5939 5938 -1 -5958 5938 -1 -6338 5938 -1 -5939 5939 6 -5940 5939 -1 -5959 5939 -1 -6339 5939 -1 -5940 5940 6 -5960 5940 -1 -6340 5940 -1 -5941 5941 6 -5942 5941 -1 -5961 5941 -1 -6341 5941 -1 -5942 5942 6 -5943 5942 -1 -5962 5942 -1 -6342 5942 -1 -5943 5943 6 -5944 5943 -1 -5963 5943 -1 -6343 5943 -1 -5944 5944 6 -5945 5944 -1 -5964 5944 -1 -6344 5944 -1 -5945 5945 6 -5946 5945 -1 -5965 5945 -1 -6345 5945 -1 -5946 5946 6 -5947 5946 -1 -5966 5946 -1 -6346 5946 -1 -5947 5947 6 -5948 5947 -1 -5967 5947 -1 -6347 5947 -1 -5948 5948 6 -5949 5948 -1 -5968 5948 -1 -6348 5948 -1 -5949 5949 6 -5950 5949 -1 -5969 5949 -1 -6349 5949 -1 -5950 5950 6 -5951 5950 -1 -5970 5950 -1 -6350 5950 -1 -5951 5951 6 -5952 5951 -1 -5971 5951 -1 -6351 5951 -1 -5952 5952 6 -5953 5952 -1 -5972 5952 -1 -6352 5952 -1 -5953 5953 6 -5954 5953 -1 -5973 5953 -1 -6353 5953 -1 -5954 5954 6 -5955 5954 -1 -5974 5954 -1 -6354 5954 -1 -5955 5955 6 -5956 5955 -1 -5975 5955 -1 -6355 5955 -1 -5956 5956 6 -5957 5956 -1 -5976 5956 -1 -6356 5956 -1 -5957 5957 6 -5958 5957 -1 -5977 5957 -1 -6357 5957 -1 -5958 5958 6 -5959 5958 -1 -5978 5958 -1 -6358 5958 -1 -5959 5959 6 -5960 5959 -1 -5979 5959 -1 -6359 5959 -1 -5960 5960 6 -5980 5960 -1 -6360 5960 -1 -5961 5961 6 -5962 5961 -1 -5981 5961 -1 -6361 5961 -1 -5962 5962 6 -5963 5962 -1 -5982 5962 -1 -6362 5962 -1 -5963 5963 6 -5964 5963 -1 -5983 5963 -1 -6363 5963 -1 -5964 5964 6 -5965 5964 -1 -5984 5964 -1 -6364 5964 -1 -5965 5965 6 -5966 5965 -1 -5985 5965 -1 -6365 5965 -1 -5966 5966 6 -5967 5966 -1 -5986 5966 -1 -6366 5966 -1 -5967 5967 6 -5968 5967 -1 -5987 5967 -1 -6367 5967 -1 -5968 5968 6 -5969 5968 -1 -5988 5968 -1 -6368 5968 -1 -5969 5969 6 -5970 5969 -1 -5989 5969 -1 -6369 5969 -1 -5970 5970 6 -5971 5970 -1 -5990 5970 -1 -6370 5970 -1 -5971 5971 6 -5972 5971 -1 -5991 5971 -1 -6371 5971 -1 -5972 5972 6 -5973 5972 -1 -5992 5972 -1 -6372 5972 -1 -5973 5973 6 -5974 5973 -1 -5993 5973 -1 -6373 5973 -1 -5974 5974 6 -5975 5974 -1 -5994 5974 -1 -6374 5974 -1 -5975 5975 6 -5976 5975 -1 -5995 5975 -1 -6375 5975 -1 -5976 5976 6 -5977 5976 -1 -5996 5976 -1 -6376 5976 -1 -5977 5977 6 -5978 5977 -1 -5997 5977 -1 -6377 5977 -1 -5978 5978 6 -5979 5978 -1 -5998 5978 -1 -6378 5978 -1 -5979 5979 6 -5980 5979 -1 -5999 5979 -1 -6379 5979 -1 -5980 5980 6 -6000 5980 -1 -6380 5980 -1 -5981 5981 6 -5982 5981 -1 -6381 5981 -1 -5982 5982 6 -5983 5982 -1 -6382 5982 -1 -5983 5983 6 -5984 5983 -1 -6383 5983 -1 -5984 5984 6 -5985 5984 -1 -6384 5984 -1 -5985 5985 6 -5986 5985 -1 -6385 5985 -1 -5986 5986 6 -5987 5986 -1 -6386 5986 -1 -5987 5987 6 -5988 5987 -1 -6387 5987 -1 -5988 5988 6 -5989 5988 -1 -6388 5988 -1 -5989 5989 6 -5990 5989 -1 -6389 5989 -1 -5990 5990 6 -5991 5990 -1 -6390 5990 -1 -5991 5991 6 -5992 5991 -1 -6391 5991 -1 -5992 5992 6 -5993 5992 -1 -6392 5992 -1 -5993 5993 6 -5994 5993 -1 -6393 5993 -1 -5994 5994 6 -5995 5994 -1 -6394 5994 -1 -5995 5995 6 -5996 5995 -1 -6395 5995 -1 -5996 5996 6 -5997 5996 -1 -6396 5996 -1 -5997 5997 6 -5998 5997 -1 -6397 5997 -1 -5998 5998 6 -5999 5998 -1 -6398 5998 -1 -5999 5999 6 -6000 5999 -1 -6399 5999 -1 -6000 6000 6 -6400 6000 -1 -6001 6001 6 -6002 6001 -1 -6021 6001 -1 -6401 6001 -1 -6002 6002 6 -6003 6002 -1 -6022 6002 -1 -6402 6002 -1 -6003 6003 6 -6004 6003 -1 -6023 6003 -1 -6403 6003 -1 -6004 6004 6 -6005 6004 -1 -6024 6004 -1 -6404 6004 -1 -6005 6005 6 -6006 6005 -1 -6025 6005 -1 -6405 6005 -1 -6006 6006 6 -6007 6006 -1 -6026 6006 -1 -6406 6006 -1 -6007 6007 6 -6008 6007 -1 -6027 6007 -1 -6407 6007 -1 -6008 6008 6 -6009 6008 -1 -6028 6008 -1 -6408 6008 -1 -6009 6009 6 -6010 6009 -1 -6029 6009 -1 -6409 6009 -1 -6010 6010 6 -6011 6010 -1 -6030 6010 -1 -6410 6010 -1 -6011 6011 6 -6012 6011 -1 -6031 6011 -1 -6411 6011 -1 -6012 6012 6 -6013 6012 -1 -6032 6012 -1 -6412 6012 -1 -6013 6013 6 -6014 6013 -1 -6033 6013 -1 -6413 6013 -1 -6014 6014 6 -6015 6014 -1 -6034 6014 -1 -6414 6014 -1 -6015 6015 6 -6016 6015 -1 -6035 6015 -1 -6415 6015 -1 -6016 6016 6 -6017 6016 -1 -6036 6016 -1 -6416 6016 -1 -6017 6017 6 -6018 6017 -1 -6037 6017 -1 -6417 6017 -1 -6018 6018 6 -6019 6018 -1 -6038 6018 -1 -6418 6018 -1 -6019 6019 6 -6020 6019 -1 -6039 6019 -1 -6419 6019 -1 -6020 6020 6 -6040 6020 -1 -6420 6020 -1 -6021 6021 6 -6022 6021 -1 -6041 6021 -1 -6421 6021 -1 -6022 6022 6 -6023 6022 -1 -6042 6022 -1 -6422 6022 -1 -6023 6023 6 -6024 6023 -1 -6043 6023 -1 -6423 6023 -1 -6024 6024 6 -6025 6024 -1 -6044 6024 -1 -6424 6024 -1 -6025 6025 6 -6026 6025 -1 -6045 6025 -1 -6425 6025 -1 -6026 6026 6 -6027 6026 -1 -6046 6026 -1 -6426 6026 -1 -6027 6027 6 -6028 6027 -1 -6047 6027 -1 -6427 6027 -1 -6028 6028 6 -6029 6028 -1 -6048 6028 -1 -6428 6028 -1 -6029 6029 6 -6030 6029 -1 -6049 6029 -1 -6429 6029 -1 -6030 6030 6 -6031 6030 -1 -6050 6030 -1 -6430 6030 -1 -6031 6031 6 -6032 6031 -1 -6051 6031 -1 -6431 6031 -1 -6032 6032 6 -6033 6032 -1 -6052 6032 -1 -6432 6032 -1 -6033 6033 6 -6034 6033 -1 -6053 6033 -1 -6433 6033 -1 -6034 6034 6 -6035 6034 -1 -6054 6034 -1 -6434 6034 -1 -6035 6035 6 -6036 6035 -1 -6055 6035 -1 -6435 6035 -1 -6036 6036 6 -6037 6036 -1 -6056 6036 -1 -6436 6036 -1 -6037 6037 6 -6038 6037 -1 -6057 6037 -1 -6437 6037 -1 -6038 6038 6 -6039 6038 -1 -6058 6038 -1 -6438 6038 -1 -6039 6039 6 -6040 6039 -1 -6059 6039 -1 -6439 6039 -1 -6040 6040 6 -6060 6040 -1 -6440 6040 -1 -6041 6041 6 -6042 6041 -1 -6061 6041 -1 -6441 6041 -1 -6042 6042 6 -6043 6042 -1 -6062 6042 -1 -6442 6042 -1 -6043 6043 6 -6044 6043 -1 -6063 6043 -1 -6443 6043 -1 -6044 6044 6 -6045 6044 -1 -6064 6044 -1 -6444 6044 -1 -6045 6045 6 -6046 6045 -1 -6065 6045 -1 -6445 6045 -1 -6046 6046 6 -6047 6046 -1 -6066 6046 -1 -6446 6046 -1 -6047 6047 6 -6048 6047 -1 -6067 6047 -1 -6447 6047 -1 -6048 6048 6 -6049 6048 -1 -6068 6048 -1 -6448 6048 -1 -6049 6049 6 -6050 6049 -1 -6069 6049 -1 -6449 6049 -1 -6050 6050 6 -6051 6050 -1 -6070 6050 -1 -6450 6050 -1 -6051 6051 6 -6052 6051 -1 -6071 6051 -1 -6451 6051 -1 -6052 6052 6 -6053 6052 -1 -6072 6052 -1 -6452 6052 -1 -6053 6053 6 -6054 6053 -1 -6073 6053 -1 -6453 6053 -1 -6054 6054 6 -6055 6054 -1 -6074 6054 -1 -6454 6054 -1 -6055 6055 6 -6056 6055 -1 -6075 6055 -1 -6455 6055 -1 -6056 6056 6 -6057 6056 -1 -6076 6056 -1 -6456 6056 -1 -6057 6057 6 -6058 6057 -1 -6077 6057 -1 -6457 6057 -1 -6058 6058 6 -6059 6058 -1 -6078 6058 -1 -6458 6058 -1 -6059 6059 6 -6060 6059 -1 -6079 6059 -1 -6459 6059 -1 -6060 6060 6 -6080 6060 -1 -6460 6060 -1 -6061 6061 6 -6062 6061 -1 -6081 6061 -1 -6461 6061 -1 -6062 6062 6 -6063 6062 -1 -6082 6062 -1 -6462 6062 -1 -6063 6063 6 -6064 6063 -1 -6083 6063 -1 -6463 6063 -1 -6064 6064 6 -6065 6064 -1 -6084 6064 -1 -6464 6064 -1 -6065 6065 6 -6066 6065 -1 -6085 6065 -1 -6465 6065 -1 -6066 6066 6 -6067 6066 -1 -6086 6066 -1 -6466 6066 -1 -6067 6067 6 -6068 6067 -1 -6087 6067 -1 -6467 6067 -1 -6068 6068 6 -6069 6068 -1 -6088 6068 -1 -6468 6068 -1 -6069 6069 6 -6070 6069 -1 -6089 6069 -1 -6469 6069 -1 -6070 6070 6 -6071 6070 -1 -6090 6070 -1 -6470 6070 -1 -6071 6071 6 -6072 6071 -1 -6091 6071 -1 -6471 6071 -1 -6072 6072 6 -6073 6072 -1 -6092 6072 -1 -6472 6072 -1 -6073 6073 6 -6074 6073 -1 -6093 6073 -1 -6473 6073 -1 -6074 6074 6 -6075 6074 -1 -6094 6074 -1 -6474 6074 -1 -6075 6075 6 -6076 6075 -1 -6095 6075 -1 -6475 6075 -1 -6076 6076 6 -6077 6076 -1 -6096 6076 -1 -6476 6076 -1 -6077 6077 6 -6078 6077 -1 -6097 6077 -1 -6477 6077 -1 -6078 6078 6 -6079 6078 -1 -6098 6078 -1 -6478 6078 -1 -6079 6079 6 -6080 6079 -1 -6099 6079 -1 -6479 6079 -1 -6080 6080 6 -6100 6080 -1 -6480 6080 -1 -6081 6081 6 -6082 6081 -1 -6101 6081 -1 -6481 6081 -1 -6082 6082 6 -6083 6082 -1 -6102 6082 -1 -6482 6082 -1 -6083 6083 6 -6084 6083 -1 -6103 6083 -1 -6483 6083 -1 -6084 6084 6 -6085 6084 -1 -6104 6084 -1 -6484 6084 -1 -6085 6085 6 -6086 6085 -1 -6105 6085 -1 -6485 6085 -1 -6086 6086 6 -6087 6086 -1 -6106 6086 -1 -6486 6086 -1 -6087 6087 6 -6088 6087 -1 -6107 6087 -1 -6487 6087 -1 -6088 6088 6 -6089 6088 -1 -6108 6088 -1 -6488 6088 -1 -6089 6089 6 -6090 6089 -1 -6109 6089 -1 -6489 6089 -1 -6090 6090 6 -6091 6090 -1 -6110 6090 -1 -6490 6090 -1 -6091 6091 6 -6092 6091 -1 -6111 6091 -1 -6491 6091 -1 -6092 6092 6 -6093 6092 -1 -6112 6092 -1 -6492 6092 -1 -6093 6093 6 -6094 6093 -1 -6113 6093 -1 -6493 6093 -1 -6094 6094 6 -6095 6094 -1 -6114 6094 -1 -6494 6094 -1 -6095 6095 6 -6096 6095 -1 -6115 6095 -1 -6495 6095 -1 -6096 6096 6 -6097 6096 -1 -6116 6096 -1 -6496 6096 -1 -6097 6097 6 -6098 6097 -1 -6117 6097 -1 -6497 6097 -1 -6098 6098 6 -6099 6098 -1 -6118 6098 -1 -6498 6098 -1 -6099 6099 6 -6100 6099 -1 -6119 6099 -1 -6499 6099 -1 -6100 6100 6 -6120 6100 -1 -6500 6100 -1 -6101 6101 6 -6102 6101 -1 -6121 6101 -1 -6501 6101 -1 -6102 6102 6 -6103 6102 -1 -6122 6102 -1 -6502 6102 -1 -6103 6103 6 -6104 6103 -1 -6123 6103 -1 -6503 6103 -1 -6104 6104 6 -6105 6104 -1 -6124 6104 -1 -6504 6104 -1 -6105 6105 6 -6106 6105 -1 -6125 6105 -1 -6505 6105 -1 -6106 6106 6 -6107 6106 -1 -6126 6106 -1 -6506 6106 -1 -6107 6107 6 -6108 6107 -1 -6127 6107 -1 -6507 6107 -1 -6108 6108 6 -6109 6108 -1 -6128 6108 -1 -6508 6108 -1 -6109 6109 6 -6110 6109 -1 -6129 6109 -1 -6509 6109 -1 -6110 6110 6 -6111 6110 -1 -6130 6110 -1 -6510 6110 -1 -6111 6111 6 -6112 6111 -1 -6131 6111 -1 -6511 6111 -1 -6112 6112 6 -6113 6112 -1 -6132 6112 -1 -6512 6112 -1 -6113 6113 6 -6114 6113 -1 -6133 6113 -1 -6513 6113 -1 -6114 6114 6 -6115 6114 -1 -6134 6114 -1 -6514 6114 -1 -6115 6115 6 -6116 6115 -1 -6135 6115 -1 -6515 6115 -1 -6116 6116 6 -6117 6116 -1 -6136 6116 -1 -6516 6116 -1 -6117 6117 6 -6118 6117 -1 -6137 6117 -1 -6517 6117 -1 -6118 6118 6 -6119 6118 -1 -6138 6118 -1 -6518 6118 -1 -6119 6119 6 -6120 6119 -1 -6139 6119 -1 -6519 6119 -1 -6120 6120 6 -6140 6120 -1 -6520 6120 -1 -6121 6121 6 -6122 6121 -1 -6141 6121 -1 -6521 6121 -1 -6122 6122 6 -6123 6122 -1 -6142 6122 -1 -6522 6122 -1 -6123 6123 6 -6124 6123 -1 -6143 6123 -1 -6523 6123 -1 -6124 6124 6 -6125 6124 -1 -6144 6124 -1 -6524 6124 -1 -6125 6125 6 -6126 6125 -1 -6145 6125 -1 -6525 6125 -1 -6126 6126 6 -6127 6126 -1 -6146 6126 -1 -6526 6126 -1 -6127 6127 6 -6128 6127 -1 -6147 6127 -1 -6527 6127 -1 -6128 6128 6 -6129 6128 -1 -6148 6128 -1 -6528 6128 -1 -6129 6129 6 -6130 6129 -1 -6149 6129 -1 -6529 6129 -1 -6130 6130 6 -6131 6130 -1 -6150 6130 -1 -6530 6130 -1 -6131 6131 6 -6132 6131 -1 -6151 6131 -1 -6531 6131 -1 -6132 6132 6 -6133 6132 -1 -6152 6132 -1 -6532 6132 -1 -6133 6133 6 -6134 6133 -1 -6153 6133 -1 -6533 6133 -1 -6134 6134 6 -6135 6134 -1 -6154 6134 -1 -6534 6134 -1 -6135 6135 6 -6136 6135 -1 -6155 6135 -1 -6535 6135 -1 -6136 6136 6 -6137 6136 -1 -6156 6136 -1 -6536 6136 -1 -6137 6137 6 -6138 6137 -1 -6157 6137 -1 -6537 6137 -1 -6138 6138 6 -6139 6138 -1 -6158 6138 -1 -6538 6138 -1 -6139 6139 6 -6140 6139 -1 -6159 6139 -1 -6539 6139 -1 -6140 6140 6 -6160 6140 -1 -6540 6140 -1 -6141 6141 6 -6142 6141 -1 -6161 6141 -1 -6541 6141 -1 -6142 6142 6 -6143 6142 -1 -6162 6142 -1 -6542 6142 -1 -6143 6143 6 -6144 6143 -1 -6163 6143 -1 -6543 6143 -1 -6144 6144 6 -6145 6144 -1 -6164 6144 -1 -6544 6144 -1 -6145 6145 6 -6146 6145 -1 -6165 6145 -1 -6545 6145 -1 -6146 6146 6 -6147 6146 -1 -6166 6146 -1 -6546 6146 -1 -6147 6147 6 -6148 6147 -1 -6167 6147 -1 -6547 6147 -1 -6148 6148 6 -6149 6148 -1 -6168 6148 -1 -6548 6148 -1 -6149 6149 6 -6150 6149 -1 -6169 6149 -1 -6549 6149 -1 -6150 6150 6 -6151 6150 -1 -6170 6150 -1 -6550 6150 -1 -6151 6151 6 -6152 6151 -1 -6171 6151 -1 -6551 6151 -1 -6152 6152 6 -6153 6152 -1 -6172 6152 -1 -6552 6152 -1 -6153 6153 6 -6154 6153 -1 -6173 6153 -1 -6553 6153 -1 -6154 6154 6 -6155 6154 -1 -6174 6154 -1 -6554 6154 -1 -6155 6155 6 -6156 6155 -1 -6175 6155 -1 -6555 6155 -1 -6156 6156 6 -6157 6156 -1 -6176 6156 -1 -6556 6156 -1 -6157 6157 6 -6158 6157 -1 -6177 6157 -1 -6557 6157 -1 -6158 6158 6 -6159 6158 -1 -6178 6158 -1 -6558 6158 -1 -6159 6159 6 -6160 6159 -1 -6179 6159 -1 -6559 6159 -1 -6160 6160 6 -6180 6160 -1 -6560 6160 -1 -6161 6161 6 -6162 6161 -1 -6181 6161 -1 -6561 6161 -1 -6162 6162 6 -6163 6162 -1 -6182 6162 -1 -6562 6162 -1 -6163 6163 6 -6164 6163 -1 -6183 6163 -1 -6563 6163 -1 -6164 6164 6 -6165 6164 -1 -6184 6164 -1 -6564 6164 -1 -6165 6165 6 -6166 6165 -1 -6185 6165 -1 -6565 6165 -1 -6166 6166 6 -6167 6166 -1 -6186 6166 -1 -6566 6166 -1 -6167 6167 6 -6168 6167 -1 -6187 6167 -1 -6567 6167 -1 -6168 6168 6 -6169 6168 -1 -6188 6168 -1 -6568 6168 -1 -6169 6169 6 -6170 6169 -1 -6189 6169 -1 -6569 6169 -1 -6170 6170 6 -6171 6170 -1 -6190 6170 -1 -6570 6170 -1 -6171 6171 6 -6172 6171 -1 -6191 6171 -1 -6571 6171 -1 -6172 6172 6 -6173 6172 -1 -6192 6172 -1 -6572 6172 -1 -6173 6173 6 -6174 6173 -1 -6193 6173 -1 -6573 6173 -1 -6174 6174 6 -6175 6174 -1 -6194 6174 -1 -6574 6174 -1 -6175 6175 6 -6176 6175 -1 -6195 6175 -1 -6575 6175 -1 -6176 6176 6 -6177 6176 -1 -6196 6176 -1 -6576 6176 -1 -6177 6177 6 -6178 6177 -1 -6197 6177 -1 -6577 6177 -1 -6178 6178 6 -6179 6178 -1 -6198 6178 -1 -6578 6178 -1 -6179 6179 6 -6180 6179 -1 -6199 6179 -1 -6579 6179 -1 -6180 6180 6 -6200 6180 -1 -6580 6180 -1 -6181 6181 6 -6182 6181 -1 -6201 6181 -1 -6581 6181 -1 -6182 6182 6 -6183 6182 -1 -6202 6182 -1 -6582 6182 -1 -6183 6183 6 -6184 6183 -1 -6203 6183 -1 -6583 6183 -1 -6184 6184 6 -6185 6184 -1 -6204 6184 -1 -6584 6184 -1 -6185 6185 6 -6186 6185 -1 -6205 6185 -1 -6585 6185 -1 -6186 6186 6 -6187 6186 -1 -6206 6186 -1 -6586 6186 -1 -6187 6187 6 -6188 6187 -1 -6207 6187 -1 -6587 6187 -1 -6188 6188 6 -6189 6188 -1 -6208 6188 -1 -6588 6188 -1 -6189 6189 6 -6190 6189 -1 -6209 6189 -1 -6589 6189 -1 -6190 6190 6 -6191 6190 -1 -6210 6190 -1 -6590 6190 -1 -6191 6191 6 -6192 6191 -1 -6211 6191 -1 -6591 6191 -1 -6192 6192 6 -6193 6192 -1 -6212 6192 -1 -6592 6192 -1 -6193 6193 6 -6194 6193 -1 -6213 6193 -1 -6593 6193 -1 -6194 6194 6 -6195 6194 -1 -6214 6194 -1 -6594 6194 -1 -6195 6195 6 -6196 6195 -1 -6215 6195 -1 -6595 6195 -1 -6196 6196 6 -6197 6196 -1 -6216 6196 -1 -6596 6196 -1 -6197 6197 6 -6198 6197 -1 -6217 6197 -1 -6597 6197 -1 -6198 6198 6 -6199 6198 -1 -6218 6198 -1 -6598 6198 -1 -6199 6199 6 -6200 6199 -1 -6219 6199 -1 -6599 6199 -1 -6200 6200 6 -6220 6200 -1 -6600 6200 -1 -6201 6201 6 -6202 6201 -1 -6221 6201 -1 -6601 6201 -1 -6202 6202 6 -6203 6202 -1 -6222 6202 -1 -6602 6202 -1 -6203 6203 6 -6204 6203 -1 -6223 6203 -1 -6603 6203 -1 -6204 6204 6 -6205 6204 -1 -6224 6204 -1 -6604 6204 -1 -6205 6205 6 -6206 6205 -1 -6225 6205 -1 -6605 6205 -1 -6206 6206 6 -6207 6206 -1 -6226 6206 -1 -6606 6206 -1 -6207 6207 6 -6208 6207 -1 -6227 6207 -1 -6607 6207 -1 -6208 6208 6 -6209 6208 -1 -6228 6208 -1 -6608 6208 -1 -6209 6209 6 -6210 6209 -1 -6229 6209 -1 -6609 6209 -1 -6210 6210 6 -6211 6210 -1 -6230 6210 -1 -6610 6210 -1 -6211 6211 6 -6212 6211 -1 -6231 6211 -1 -6611 6211 -1 -6212 6212 6 -6213 6212 -1 -6232 6212 -1 -6612 6212 -1 -6213 6213 6 -6214 6213 -1 -6233 6213 -1 -6613 6213 -1 -6214 6214 6 -6215 6214 -1 -6234 6214 -1 -6614 6214 -1 -6215 6215 6 -6216 6215 -1 -6235 6215 -1 -6615 6215 -1 -6216 6216 6 -6217 6216 -1 -6236 6216 -1 -6616 6216 -1 -6217 6217 6 -6218 6217 -1 -6237 6217 -1 -6617 6217 -1 -6218 6218 6 -6219 6218 -1 -6238 6218 -1 -6618 6218 -1 -6219 6219 6 -6220 6219 -1 -6239 6219 -1 -6619 6219 -1 -6220 6220 6 -6240 6220 -1 -6620 6220 -1 -6221 6221 6 -6222 6221 -1 -6241 6221 -1 -6621 6221 -1 -6222 6222 6 -6223 6222 -1 -6242 6222 -1 -6622 6222 -1 -6223 6223 6 -6224 6223 -1 -6243 6223 -1 -6623 6223 -1 -6224 6224 6 -6225 6224 -1 -6244 6224 -1 -6624 6224 -1 -6225 6225 6 -6226 6225 -1 -6245 6225 -1 -6625 6225 -1 -6226 6226 6 -6227 6226 -1 -6246 6226 -1 -6626 6226 -1 -6227 6227 6 -6228 6227 -1 -6247 6227 -1 -6627 6227 -1 -6228 6228 6 -6229 6228 -1 -6248 6228 -1 -6628 6228 -1 -6229 6229 6 -6230 6229 -1 -6249 6229 -1 -6629 6229 -1 -6230 6230 6 -6231 6230 -1 -6250 6230 -1 -6630 6230 -1 -6231 6231 6 -6232 6231 -1 -6251 6231 -1 -6631 6231 -1 -6232 6232 6 -6233 6232 -1 -6252 6232 -1 -6632 6232 -1 -6233 6233 6 -6234 6233 -1 -6253 6233 -1 -6633 6233 -1 -6234 6234 6 -6235 6234 -1 -6254 6234 -1 -6634 6234 -1 -6235 6235 6 -6236 6235 -1 -6255 6235 -1 -6635 6235 -1 -6236 6236 6 -6237 6236 -1 -6256 6236 -1 -6636 6236 -1 -6237 6237 6 -6238 6237 -1 -6257 6237 -1 -6637 6237 -1 -6238 6238 6 -6239 6238 -1 -6258 6238 -1 -6638 6238 -1 -6239 6239 6 -6240 6239 -1 -6259 6239 -1 -6639 6239 -1 -6240 6240 6 -6260 6240 -1 -6640 6240 -1 -6241 6241 6 -6242 6241 -1 -6261 6241 -1 -6641 6241 -1 -6242 6242 6 -6243 6242 -1 -6262 6242 -1 -6642 6242 -1 -6243 6243 6 -6244 6243 -1 -6263 6243 -1 -6643 6243 -1 -6244 6244 6 -6245 6244 -1 -6264 6244 -1 -6644 6244 -1 -6245 6245 6 -6246 6245 -1 -6265 6245 -1 -6645 6245 -1 -6246 6246 6 -6247 6246 -1 -6266 6246 -1 -6646 6246 -1 -6247 6247 6 -6248 6247 -1 -6267 6247 -1 -6647 6247 -1 -6248 6248 6 -6249 6248 -1 -6268 6248 -1 -6648 6248 -1 -6249 6249 6 -6250 6249 -1 -6269 6249 -1 -6649 6249 -1 -6250 6250 6 -6251 6250 -1 -6270 6250 -1 -6650 6250 -1 -6251 6251 6 -6252 6251 -1 -6271 6251 -1 -6651 6251 -1 -6252 6252 6 -6253 6252 -1 -6272 6252 -1 -6652 6252 -1 -6253 6253 6 -6254 6253 -1 -6273 6253 -1 -6653 6253 -1 -6254 6254 6 -6255 6254 -1 -6274 6254 -1 -6654 6254 -1 -6255 6255 6 -6256 6255 -1 -6275 6255 -1 -6655 6255 -1 -6256 6256 6 -6257 6256 -1 -6276 6256 -1 -6656 6256 -1 -6257 6257 6 -6258 6257 -1 -6277 6257 -1 -6657 6257 -1 -6258 6258 6 -6259 6258 -1 -6278 6258 -1 -6658 6258 -1 -6259 6259 6 -6260 6259 -1 -6279 6259 -1 -6659 6259 -1 -6260 6260 6 -6280 6260 -1 -6660 6260 -1 -6261 6261 6 -6262 6261 -1 -6281 6261 -1 -6661 6261 -1 -6262 6262 6 -6263 6262 -1 -6282 6262 -1 -6662 6262 -1 -6263 6263 6 -6264 6263 -1 -6283 6263 -1 -6663 6263 -1 -6264 6264 6 -6265 6264 -1 -6284 6264 -1 -6664 6264 -1 -6265 6265 6 -6266 6265 -1 -6285 6265 -1 -6665 6265 -1 -6266 6266 6 -6267 6266 -1 -6286 6266 -1 -6666 6266 -1 -6267 6267 6 -6268 6267 -1 -6287 6267 -1 -6667 6267 -1 -6268 6268 6 -6269 6268 -1 -6288 6268 -1 -6668 6268 -1 -6269 6269 6 -6270 6269 -1 -6289 6269 -1 -6669 6269 -1 -6270 6270 6 -6271 6270 -1 -6290 6270 -1 -6670 6270 -1 -6271 6271 6 -6272 6271 -1 -6291 6271 -1 -6671 6271 -1 -6272 6272 6 -6273 6272 -1 -6292 6272 -1 -6672 6272 -1 -6273 6273 6 -6274 6273 -1 -6293 6273 -1 -6673 6273 -1 -6274 6274 6 -6275 6274 -1 -6294 6274 -1 -6674 6274 -1 -6275 6275 6 -6276 6275 -1 -6295 6275 -1 -6675 6275 -1 -6276 6276 6 -6277 6276 -1 -6296 6276 -1 -6676 6276 -1 -6277 6277 6 -6278 6277 -1 -6297 6277 -1 -6677 6277 -1 -6278 6278 6 -6279 6278 -1 -6298 6278 -1 -6678 6278 -1 -6279 6279 6 -6280 6279 -1 -6299 6279 -1 -6679 6279 -1 -6280 6280 6 -6300 6280 -1 -6680 6280 -1 -6281 6281 6 -6282 6281 -1 -6301 6281 -1 -6681 6281 -1 -6282 6282 6 -6283 6282 -1 -6302 6282 -1 -6682 6282 -1 -6283 6283 6 -6284 6283 -1 -6303 6283 -1 -6683 6283 -1 -6284 6284 6 -6285 6284 -1 -6304 6284 -1 -6684 6284 -1 -6285 6285 6 -6286 6285 -1 -6305 6285 -1 -6685 6285 -1 -6286 6286 6 -6287 6286 -1 -6306 6286 -1 -6686 6286 -1 -6287 6287 6 -6288 6287 -1 -6307 6287 -1 -6687 6287 -1 -6288 6288 6 -6289 6288 -1 -6308 6288 -1 -6688 6288 -1 -6289 6289 6 -6290 6289 -1 -6309 6289 -1 -6689 6289 -1 -6290 6290 6 -6291 6290 -1 -6310 6290 -1 -6690 6290 -1 -6291 6291 6 -6292 6291 -1 -6311 6291 -1 -6691 6291 -1 -6292 6292 6 -6293 6292 -1 -6312 6292 -1 -6692 6292 -1 -6293 6293 6 -6294 6293 -1 -6313 6293 -1 -6693 6293 -1 -6294 6294 6 -6295 6294 -1 -6314 6294 -1 -6694 6294 -1 -6295 6295 6 -6296 6295 -1 -6315 6295 -1 -6695 6295 -1 -6296 6296 6 -6297 6296 -1 -6316 6296 -1 -6696 6296 -1 -6297 6297 6 -6298 6297 -1 -6317 6297 -1 -6697 6297 -1 -6298 6298 6 -6299 6298 -1 -6318 6298 -1 -6698 6298 -1 -6299 6299 6 -6300 6299 -1 -6319 6299 -1 -6699 6299 -1 -6300 6300 6 -6320 6300 -1 -6700 6300 -1 -6301 6301 6 -6302 6301 -1 -6321 6301 -1 -6701 6301 -1 -6302 6302 6 -6303 6302 -1 -6322 6302 -1 -6702 6302 -1 -6303 6303 6 -6304 6303 -1 -6323 6303 -1 -6703 6303 -1 -6304 6304 6 -6305 6304 -1 -6324 6304 -1 -6704 6304 -1 -6305 6305 6 -6306 6305 -1 -6325 6305 -1 -6705 6305 -1 -6306 6306 6 -6307 6306 -1 -6326 6306 -1 -6706 6306 -1 -6307 6307 6 -6308 6307 -1 -6327 6307 -1 -6707 6307 -1 -6308 6308 6 -6309 6308 -1 -6328 6308 -1 -6708 6308 -1 -6309 6309 6 -6310 6309 -1 -6329 6309 -1 -6709 6309 -1 -6310 6310 6 -6311 6310 -1 -6330 6310 -1 -6710 6310 -1 -6311 6311 6 -6312 6311 -1 -6331 6311 -1 -6711 6311 -1 -6312 6312 6 -6313 6312 -1 -6332 6312 -1 -6712 6312 -1 -6313 6313 6 -6314 6313 -1 -6333 6313 -1 -6713 6313 -1 -6314 6314 6 -6315 6314 -1 -6334 6314 -1 -6714 6314 -1 -6315 6315 6 -6316 6315 -1 -6335 6315 -1 -6715 6315 -1 -6316 6316 6 -6317 6316 -1 -6336 6316 -1 -6716 6316 -1 -6317 6317 6 -6318 6317 -1 -6337 6317 -1 -6717 6317 -1 -6318 6318 6 -6319 6318 -1 -6338 6318 -1 -6718 6318 -1 -6319 6319 6 -6320 6319 -1 -6339 6319 -1 -6719 6319 -1 -6320 6320 6 -6340 6320 -1 -6720 6320 -1 -6321 6321 6 -6322 6321 -1 -6341 6321 -1 -6721 6321 -1 -6322 6322 6 -6323 6322 -1 -6342 6322 -1 -6722 6322 -1 -6323 6323 6 -6324 6323 -1 -6343 6323 -1 -6723 6323 -1 -6324 6324 6 -6325 6324 -1 -6344 6324 -1 -6724 6324 -1 -6325 6325 6 -6326 6325 -1 -6345 6325 -1 -6725 6325 -1 -6326 6326 6 -6327 6326 -1 -6346 6326 -1 -6726 6326 -1 -6327 6327 6 -6328 6327 -1 -6347 6327 -1 -6727 6327 -1 -6328 6328 6 -6329 6328 -1 -6348 6328 -1 -6728 6328 -1 -6329 6329 6 -6330 6329 -1 -6349 6329 -1 -6729 6329 -1 -6330 6330 6 -6331 6330 -1 -6350 6330 -1 -6730 6330 -1 -6331 6331 6 -6332 6331 -1 -6351 6331 -1 -6731 6331 -1 -6332 6332 6 -6333 6332 -1 -6352 6332 -1 -6732 6332 -1 -6333 6333 6 -6334 6333 -1 -6353 6333 -1 -6733 6333 -1 -6334 6334 6 -6335 6334 -1 -6354 6334 -1 -6734 6334 -1 -6335 6335 6 -6336 6335 -1 -6355 6335 -1 -6735 6335 -1 -6336 6336 6 -6337 6336 -1 -6356 6336 -1 -6736 6336 -1 -6337 6337 6 -6338 6337 -1 -6357 6337 -1 -6737 6337 -1 -6338 6338 6 -6339 6338 -1 -6358 6338 -1 -6738 6338 -1 -6339 6339 6 -6340 6339 -1 -6359 6339 -1 -6739 6339 -1 -6340 6340 6 -6360 6340 -1 -6740 6340 -1 -6341 6341 6 -6342 6341 -1 -6361 6341 -1 -6741 6341 -1 -6342 6342 6 -6343 6342 -1 -6362 6342 -1 -6742 6342 -1 -6343 6343 6 -6344 6343 -1 -6363 6343 -1 -6743 6343 -1 -6344 6344 6 -6345 6344 -1 -6364 6344 -1 -6744 6344 -1 -6345 6345 6 -6346 6345 -1 -6365 6345 -1 -6745 6345 -1 -6346 6346 6 -6347 6346 -1 -6366 6346 -1 -6746 6346 -1 -6347 6347 6 -6348 6347 -1 -6367 6347 -1 -6747 6347 -1 -6348 6348 6 -6349 6348 -1 -6368 6348 -1 -6748 6348 -1 -6349 6349 6 -6350 6349 -1 -6369 6349 -1 -6749 6349 -1 -6350 6350 6 -6351 6350 -1 -6370 6350 -1 -6750 6350 -1 -6351 6351 6 -6352 6351 -1 -6371 6351 -1 -6751 6351 -1 -6352 6352 6 -6353 6352 -1 -6372 6352 -1 -6752 6352 -1 -6353 6353 6 -6354 6353 -1 -6373 6353 -1 -6753 6353 -1 -6354 6354 6 -6355 6354 -1 -6374 6354 -1 -6754 6354 -1 -6355 6355 6 -6356 6355 -1 -6375 6355 -1 -6755 6355 -1 -6356 6356 6 -6357 6356 -1 -6376 6356 -1 -6756 6356 -1 -6357 6357 6 -6358 6357 -1 -6377 6357 -1 -6757 6357 -1 -6358 6358 6 -6359 6358 -1 -6378 6358 -1 -6758 6358 -1 -6359 6359 6 -6360 6359 -1 -6379 6359 -1 -6759 6359 -1 -6360 6360 6 -6380 6360 -1 -6760 6360 -1 -6361 6361 6 -6362 6361 -1 -6381 6361 -1 -6761 6361 -1 -6362 6362 6 -6363 6362 -1 -6382 6362 -1 -6762 6362 -1 -6363 6363 6 -6364 6363 -1 -6383 6363 -1 -6763 6363 -1 -6364 6364 6 -6365 6364 -1 -6384 6364 -1 -6764 6364 -1 -6365 6365 6 -6366 6365 -1 -6385 6365 -1 -6765 6365 -1 -6366 6366 6 -6367 6366 -1 -6386 6366 -1 -6766 6366 -1 -6367 6367 6 -6368 6367 -1 -6387 6367 -1 -6767 6367 -1 -6368 6368 6 -6369 6368 -1 -6388 6368 -1 -6768 6368 -1 -6369 6369 6 -6370 6369 -1 -6389 6369 -1 -6769 6369 -1 -6370 6370 6 -6371 6370 -1 -6390 6370 -1 -6770 6370 -1 -6371 6371 6 -6372 6371 -1 -6391 6371 -1 -6771 6371 -1 -6372 6372 6 -6373 6372 -1 -6392 6372 -1 -6772 6372 -1 -6373 6373 6 -6374 6373 -1 -6393 6373 -1 -6773 6373 -1 -6374 6374 6 -6375 6374 -1 -6394 6374 -1 -6774 6374 -1 -6375 6375 6 -6376 6375 -1 -6395 6375 -1 -6775 6375 -1 -6376 6376 6 -6377 6376 -1 -6396 6376 -1 -6776 6376 -1 -6377 6377 6 -6378 6377 -1 -6397 6377 -1 -6777 6377 -1 -6378 6378 6 -6379 6378 -1 -6398 6378 -1 -6778 6378 -1 -6379 6379 6 -6380 6379 -1 -6399 6379 -1 -6779 6379 -1 -6380 6380 6 -6400 6380 -1 -6780 6380 -1 -6381 6381 6 -6382 6381 -1 -6781 6381 -1 -6382 6382 6 -6383 6382 -1 -6782 6382 -1 -6383 6383 6 -6384 6383 -1 -6783 6383 -1 -6384 6384 6 -6385 6384 -1 -6784 6384 -1 -6385 6385 6 -6386 6385 -1 -6785 6385 -1 -6386 6386 6 -6387 6386 -1 -6786 6386 -1 -6387 6387 6 -6388 6387 -1 -6787 6387 -1 -6388 6388 6 -6389 6388 -1 -6788 6388 -1 -6389 6389 6 -6390 6389 -1 -6789 6389 -1 -6390 6390 6 -6391 6390 -1 -6790 6390 -1 -6391 6391 6 -6392 6391 -1 -6791 6391 -1 -6392 6392 6 -6393 6392 -1 -6792 6392 -1 -6393 6393 6 -6394 6393 -1 -6793 6393 -1 -6394 6394 6 -6395 6394 -1 -6794 6394 -1 -6395 6395 6 -6396 6395 -1 -6795 6395 -1 -6396 6396 6 -6397 6396 -1 -6796 6396 -1 -6397 6397 6 -6398 6397 -1 -6797 6397 -1 -6398 6398 6 -6399 6398 -1 -6798 6398 -1 -6399 6399 6 -6400 6399 -1 -6799 6399 -1 -6400 6400 6 -6800 6400 -1 -6401 6401 6 -6402 6401 -1 -6421 6401 -1 -6801 6401 -1 -6402 6402 6 -6403 6402 -1 -6422 6402 -1 -6802 6402 -1 -6403 6403 6 -6404 6403 -1 -6423 6403 -1 -6803 6403 -1 -6404 6404 6 -6405 6404 -1 -6424 6404 -1 -6804 6404 -1 -6405 6405 6 -6406 6405 -1 -6425 6405 -1 -6805 6405 -1 -6406 6406 6 -6407 6406 -1 -6426 6406 -1 -6806 6406 -1 -6407 6407 6 -6408 6407 -1 -6427 6407 -1 -6807 6407 -1 -6408 6408 6 -6409 6408 -1 -6428 6408 -1 -6808 6408 -1 -6409 6409 6 -6410 6409 -1 -6429 6409 -1 -6809 6409 -1 -6410 6410 6 -6411 6410 -1 -6430 6410 -1 -6810 6410 -1 -6411 6411 6 -6412 6411 -1 -6431 6411 -1 -6811 6411 -1 -6412 6412 6 -6413 6412 -1 -6432 6412 -1 -6812 6412 -1 -6413 6413 6 -6414 6413 -1 -6433 6413 -1 -6813 6413 -1 -6414 6414 6 -6415 6414 -1 -6434 6414 -1 -6814 6414 -1 -6415 6415 6 -6416 6415 -1 -6435 6415 -1 -6815 6415 -1 -6416 6416 6 -6417 6416 -1 -6436 6416 -1 -6816 6416 -1 -6417 6417 6 -6418 6417 -1 -6437 6417 -1 -6817 6417 -1 -6418 6418 6 -6419 6418 -1 -6438 6418 -1 -6818 6418 -1 -6419 6419 6 -6420 6419 -1 -6439 6419 -1 -6819 6419 -1 -6420 6420 6 -6440 6420 -1 -6820 6420 -1 -6421 6421 6 -6422 6421 -1 -6441 6421 -1 -6821 6421 -1 -6422 6422 6 -6423 6422 -1 -6442 6422 -1 -6822 6422 -1 -6423 6423 6 -6424 6423 -1 -6443 6423 -1 -6823 6423 -1 -6424 6424 6 -6425 6424 -1 -6444 6424 -1 -6824 6424 -1 -6425 6425 6 -6426 6425 -1 -6445 6425 -1 -6825 6425 -1 -6426 6426 6 -6427 6426 -1 -6446 6426 -1 -6826 6426 -1 -6427 6427 6 -6428 6427 -1 -6447 6427 -1 -6827 6427 -1 -6428 6428 6 -6429 6428 -1 -6448 6428 -1 -6828 6428 -1 -6429 6429 6 -6430 6429 -1 -6449 6429 -1 -6829 6429 -1 -6430 6430 6 -6431 6430 -1 -6450 6430 -1 -6830 6430 -1 -6431 6431 6 -6432 6431 -1 -6451 6431 -1 -6831 6431 -1 -6432 6432 6 -6433 6432 -1 -6452 6432 -1 -6832 6432 -1 -6433 6433 6 -6434 6433 -1 -6453 6433 -1 -6833 6433 -1 -6434 6434 6 -6435 6434 -1 -6454 6434 -1 -6834 6434 -1 -6435 6435 6 -6436 6435 -1 -6455 6435 -1 -6835 6435 -1 -6436 6436 6 -6437 6436 -1 -6456 6436 -1 -6836 6436 -1 -6437 6437 6 -6438 6437 -1 -6457 6437 -1 -6837 6437 -1 -6438 6438 6 -6439 6438 -1 -6458 6438 -1 -6838 6438 -1 -6439 6439 6 -6440 6439 -1 -6459 6439 -1 -6839 6439 -1 -6440 6440 6 -6460 6440 -1 -6840 6440 -1 -6441 6441 6 -6442 6441 -1 -6461 6441 -1 -6841 6441 -1 -6442 6442 6 -6443 6442 -1 -6462 6442 -1 -6842 6442 -1 -6443 6443 6 -6444 6443 -1 -6463 6443 -1 -6843 6443 -1 -6444 6444 6 -6445 6444 -1 -6464 6444 -1 -6844 6444 -1 -6445 6445 6 -6446 6445 -1 -6465 6445 -1 -6845 6445 -1 -6446 6446 6 -6447 6446 -1 -6466 6446 -1 -6846 6446 -1 -6447 6447 6 -6448 6447 -1 -6467 6447 -1 -6847 6447 -1 -6448 6448 6 -6449 6448 -1 -6468 6448 -1 -6848 6448 -1 -6449 6449 6 -6450 6449 -1 -6469 6449 -1 -6849 6449 -1 -6450 6450 6 -6451 6450 -1 -6470 6450 -1 -6850 6450 -1 -6451 6451 6 -6452 6451 -1 -6471 6451 -1 -6851 6451 -1 -6452 6452 6 -6453 6452 -1 -6472 6452 -1 -6852 6452 -1 -6453 6453 6 -6454 6453 -1 -6473 6453 -1 -6853 6453 -1 -6454 6454 6 -6455 6454 -1 -6474 6454 -1 -6854 6454 -1 -6455 6455 6 -6456 6455 -1 -6475 6455 -1 -6855 6455 -1 -6456 6456 6 -6457 6456 -1 -6476 6456 -1 -6856 6456 -1 -6457 6457 6 -6458 6457 -1 -6477 6457 -1 -6857 6457 -1 -6458 6458 6 -6459 6458 -1 -6478 6458 -1 -6858 6458 -1 -6459 6459 6 -6460 6459 -1 -6479 6459 -1 -6859 6459 -1 -6460 6460 6 -6480 6460 -1 -6860 6460 -1 -6461 6461 6 -6462 6461 -1 -6481 6461 -1 -6861 6461 -1 -6462 6462 6 -6463 6462 -1 -6482 6462 -1 -6862 6462 -1 -6463 6463 6 -6464 6463 -1 -6483 6463 -1 -6863 6463 -1 -6464 6464 6 -6465 6464 -1 -6484 6464 -1 -6864 6464 -1 -6465 6465 6 -6466 6465 -1 -6485 6465 -1 -6865 6465 -1 -6466 6466 6 -6467 6466 -1 -6486 6466 -1 -6866 6466 -1 -6467 6467 6 -6468 6467 -1 -6487 6467 -1 -6867 6467 -1 -6468 6468 6 -6469 6468 -1 -6488 6468 -1 -6868 6468 -1 -6469 6469 6 -6470 6469 -1 -6489 6469 -1 -6869 6469 -1 -6470 6470 6 -6471 6470 -1 -6490 6470 -1 -6870 6470 -1 -6471 6471 6 -6472 6471 -1 -6491 6471 -1 -6871 6471 -1 -6472 6472 6 -6473 6472 -1 -6492 6472 -1 -6872 6472 -1 -6473 6473 6 -6474 6473 -1 -6493 6473 -1 -6873 6473 -1 -6474 6474 6 -6475 6474 -1 -6494 6474 -1 -6874 6474 -1 -6475 6475 6 -6476 6475 -1 -6495 6475 -1 -6875 6475 -1 -6476 6476 6 -6477 6476 -1 -6496 6476 -1 -6876 6476 -1 -6477 6477 6 -6478 6477 -1 -6497 6477 -1 -6877 6477 -1 -6478 6478 6 -6479 6478 -1 -6498 6478 -1 -6878 6478 -1 -6479 6479 6 -6480 6479 -1 -6499 6479 -1 -6879 6479 -1 -6480 6480 6 -6500 6480 -1 -6880 6480 -1 -6481 6481 6 -6482 6481 -1 -6501 6481 -1 -6881 6481 -1 -6482 6482 6 -6483 6482 -1 -6502 6482 -1 -6882 6482 -1 -6483 6483 6 -6484 6483 -1 -6503 6483 -1 -6883 6483 -1 -6484 6484 6 -6485 6484 -1 -6504 6484 -1 -6884 6484 -1 -6485 6485 6 -6486 6485 -1 -6505 6485 -1 -6885 6485 -1 -6486 6486 6 -6487 6486 -1 -6506 6486 -1 -6886 6486 -1 -6487 6487 6 -6488 6487 -1 -6507 6487 -1 -6887 6487 -1 -6488 6488 6 -6489 6488 -1 -6508 6488 -1 -6888 6488 -1 -6489 6489 6 -6490 6489 -1 -6509 6489 -1 -6889 6489 -1 -6490 6490 6 -6491 6490 -1 -6510 6490 -1 -6890 6490 -1 -6491 6491 6 -6492 6491 -1 -6511 6491 -1 -6891 6491 -1 -6492 6492 6 -6493 6492 -1 -6512 6492 -1 -6892 6492 -1 -6493 6493 6 -6494 6493 -1 -6513 6493 -1 -6893 6493 -1 -6494 6494 6 -6495 6494 -1 -6514 6494 -1 -6894 6494 -1 -6495 6495 6 -6496 6495 -1 -6515 6495 -1 -6895 6495 -1 -6496 6496 6 -6497 6496 -1 -6516 6496 -1 -6896 6496 -1 -6497 6497 6 -6498 6497 -1 -6517 6497 -1 -6897 6497 -1 -6498 6498 6 -6499 6498 -1 -6518 6498 -1 -6898 6498 -1 -6499 6499 6 -6500 6499 -1 -6519 6499 -1 -6899 6499 -1 -6500 6500 6 -6520 6500 -1 -6900 6500 -1 -6501 6501 6 -6502 6501 -1 -6521 6501 -1 -6901 6501 -1 -6502 6502 6 -6503 6502 -1 -6522 6502 -1 -6902 6502 -1 -6503 6503 6 -6504 6503 -1 -6523 6503 -1 -6903 6503 -1 -6504 6504 6 -6505 6504 -1 -6524 6504 -1 -6904 6504 -1 -6505 6505 6 -6506 6505 -1 -6525 6505 -1 -6905 6505 -1 -6506 6506 6 -6507 6506 -1 -6526 6506 -1 -6906 6506 -1 -6507 6507 6 -6508 6507 -1 -6527 6507 -1 -6907 6507 -1 -6508 6508 6 -6509 6508 -1 -6528 6508 -1 -6908 6508 -1 -6509 6509 6 -6510 6509 -1 -6529 6509 -1 -6909 6509 -1 -6510 6510 6 -6511 6510 -1 -6530 6510 -1 -6910 6510 -1 -6511 6511 6 -6512 6511 -1 -6531 6511 -1 -6911 6511 -1 -6512 6512 6 -6513 6512 -1 -6532 6512 -1 -6912 6512 -1 -6513 6513 6 -6514 6513 -1 -6533 6513 -1 -6913 6513 -1 -6514 6514 6 -6515 6514 -1 -6534 6514 -1 -6914 6514 -1 -6515 6515 6 -6516 6515 -1 -6535 6515 -1 -6915 6515 -1 -6516 6516 6 -6517 6516 -1 -6536 6516 -1 -6916 6516 -1 -6517 6517 6 -6518 6517 -1 -6537 6517 -1 -6917 6517 -1 -6518 6518 6 -6519 6518 -1 -6538 6518 -1 -6918 6518 -1 -6519 6519 6 -6520 6519 -1 -6539 6519 -1 -6919 6519 -1 -6520 6520 6 -6540 6520 -1 -6920 6520 -1 -6521 6521 6 -6522 6521 -1 -6541 6521 -1 -6921 6521 -1 -6522 6522 6 -6523 6522 -1 -6542 6522 -1 -6922 6522 -1 -6523 6523 6 -6524 6523 -1 -6543 6523 -1 -6923 6523 -1 -6524 6524 6 -6525 6524 -1 -6544 6524 -1 -6924 6524 -1 -6525 6525 6 -6526 6525 -1 -6545 6525 -1 -6925 6525 -1 -6526 6526 6 -6527 6526 -1 -6546 6526 -1 -6926 6526 -1 -6527 6527 6 -6528 6527 -1 -6547 6527 -1 -6927 6527 -1 -6528 6528 6 -6529 6528 -1 -6548 6528 -1 -6928 6528 -1 -6529 6529 6 -6530 6529 -1 -6549 6529 -1 -6929 6529 -1 -6530 6530 6 -6531 6530 -1 -6550 6530 -1 -6930 6530 -1 -6531 6531 6 -6532 6531 -1 -6551 6531 -1 -6931 6531 -1 -6532 6532 6 -6533 6532 -1 -6552 6532 -1 -6932 6532 -1 -6533 6533 6 -6534 6533 -1 -6553 6533 -1 -6933 6533 -1 -6534 6534 6 -6535 6534 -1 -6554 6534 -1 -6934 6534 -1 -6535 6535 6 -6536 6535 -1 -6555 6535 -1 -6935 6535 -1 -6536 6536 6 -6537 6536 -1 -6556 6536 -1 -6936 6536 -1 -6537 6537 6 -6538 6537 -1 -6557 6537 -1 -6937 6537 -1 -6538 6538 6 -6539 6538 -1 -6558 6538 -1 -6938 6538 -1 -6539 6539 6 -6540 6539 -1 -6559 6539 -1 -6939 6539 -1 -6540 6540 6 -6560 6540 -1 -6940 6540 -1 -6541 6541 6 -6542 6541 -1 -6561 6541 -1 -6941 6541 -1 -6542 6542 6 -6543 6542 -1 -6562 6542 -1 -6942 6542 -1 -6543 6543 6 -6544 6543 -1 -6563 6543 -1 -6943 6543 -1 -6544 6544 6 -6545 6544 -1 -6564 6544 -1 -6944 6544 -1 -6545 6545 6 -6546 6545 -1 -6565 6545 -1 -6945 6545 -1 -6546 6546 6 -6547 6546 -1 -6566 6546 -1 -6946 6546 -1 -6547 6547 6 -6548 6547 -1 -6567 6547 -1 -6947 6547 -1 -6548 6548 6 -6549 6548 -1 -6568 6548 -1 -6948 6548 -1 -6549 6549 6 -6550 6549 -1 -6569 6549 -1 -6949 6549 -1 -6550 6550 6 -6551 6550 -1 -6570 6550 -1 -6950 6550 -1 -6551 6551 6 -6552 6551 -1 -6571 6551 -1 -6951 6551 -1 -6552 6552 6 -6553 6552 -1 -6572 6552 -1 -6952 6552 -1 -6553 6553 6 -6554 6553 -1 -6573 6553 -1 -6953 6553 -1 -6554 6554 6 -6555 6554 -1 -6574 6554 -1 -6954 6554 -1 -6555 6555 6 -6556 6555 -1 -6575 6555 -1 -6955 6555 -1 -6556 6556 6 -6557 6556 -1 -6576 6556 -1 -6956 6556 -1 -6557 6557 6 -6558 6557 -1 -6577 6557 -1 -6957 6557 -1 -6558 6558 6 -6559 6558 -1 -6578 6558 -1 -6958 6558 -1 -6559 6559 6 -6560 6559 -1 -6579 6559 -1 -6959 6559 -1 -6560 6560 6 -6580 6560 -1 -6960 6560 -1 -6561 6561 6 -6562 6561 -1 -6581 6561 -1 -6961 6561 -1 -6562 6562 6 -6563 6562 -1 -6582 6562 -1 -6962 6562 -1 -6563 6563 6 -6564 6563 -1 -6583 6563 -1 -6963 6563 -1 -6564 6564 6 -6565 6564 -1 -6584 6564 -1 -6964 6564 -1 -6565 6565 6 -6566 6565 -1 -6585 6565 -1 -6965 6565 -1 -6566 6566 6 -6567 6566 -1 -6586 6566 -1 -6966 6566 -1 -6567 6567 6 -6568 6567 -1 -6587 6567 -1 -6967 6567 -1 -6568 6568 6 -6569 6568 -1 -6588 6568 -1 -6968 6568 -1 -6569 6569 6 -6570 6569 -1 -6589 6569 -1 -6969 6569 -1 -6570 6570 6 -6571 6570 -1 -6590 6570 -1 -6970 6570 -1 -6571 6571 6 -6572 6571 -1 -6591 6571 -1 -6971 6571 -1 -6572 6572 6 -6573 6572 -1 -6592 6572 -1 -6972 6572 -1 -6573 6573 6 -6574 6573 -1 -6593 6573 -1 -6973 6573 -1 -6574 6574 6 -6575 6574 -1 -6594 6574 -1 -6974 6574 -1 -6575 6575 6 -6576 6575 -1 -6595 6575 -1 -6975 6575 -1 -6576 6576 6 -6577 6576 -1 -6596 6576 -1 -6976 6576 -1 -6577 6577 6 -6578 6577 -1 -6597 6577 -1 -6977 6577 -1 -6578 6578 6 -6579 6578 -1 -6598 6578 -1 -6978 6578 -1 -6579 6579 6 -6580 6579 -1 -6599 6579 -1 -6979 6579 -1 -6580 6580 6 -6600 6580 -1 -6980 6580 -1 -6581 6581 6 -6582 6581 -1 -6601 6581 -1 -6981 6581 -1 -6582 6582 6 -6583 6582 -1 -6602 6582 -1 -6982 6582 -1 -6583 6583 6 -6584 6583 -1 -6603 6583 -1 -6983 6583 -1 -6584 6584 6 -6585 6584 -1 -6604 6584 -1 -6984 6584 -1 -6585 6585 6 -6586 6585 -1 -6605 6585 -1 -6985 6585 -1 -6586 6586 6 -6587 6586 -1 -6606 6586 -1 -6986 6586 -1 -6587 6587 6 -6588 6587 -1 -6607 6587 -1 -6987 6587 -1 -6588 6588 6 -6589 6588 -1 -6608 6588 -1 -6988 6588 -1 -6589 6589 6 -6590 6589 -1 -6609 6589 -1 -6989 6589 -1 -6590 6590 6 -6591 6590 -1 -6610 6590 -1 -6990 6590 -1 -6591 6591 6 -6592 6591 -1 -6611 6591 -1 -6991 6591 -1 -6592 6592 6 -6593 6592 -1 -6612 6592 -1 -6992 6592 -1 -6593 6593 6 -6594 6593 -1 -6613 6593 -1 -6993 6593 -1 -6594 6594 6 -6595 6594 -1 -6614 6594 -1 -6994 6594 -1 -6595 6595 6 -6596 6595 -1 -6615 6595 -1 -6995 6595 -1 -6596 6596 6 -6597 6596 -1 -6616 6596 -1 -6996 6596 -1 -6597 6597 6 -6598 6597 -1 -6617 6597 -1 -6997 6597 -1 -6598 6598 6 -6599 6598 -1 -6618 6598 -1 -6998 6598 -1 -6599 6599 6 -6600 6599 -1 -6619 6599 -1 -6999 6599 -1 -6600 6600 6 -6620 6600 -1 -7000 6600 -1 -6601 6601 6 -6602 6601 -1 -6621 6601 -1 -7001 6601 -1 -6602 6602 6 -6603 6602 -1 -6622 6602 -1 -7002 6602 -1 -6603 6603 6 -6604 6603 -1 -6623 6603 -1 -7003 6603 -1 -6604 6604 6 -6605 6604 -1 -6624 6604 -1 -7004 6604 -1 -6605 6605 6 -6606 6605 -1 -6625 6605 -1 -7005 6605 -1 -6606 6606 6 -6607 6606 -1 -6626 6606 -1 -7006 6606 -1 -6607 6607 6 -6608 6607 -1 -6627 6607 -1 -7007 6607 -1 -6608 6608 6 -6609 6608 -1 -6628 6608 -1 -7008 6608 -1 -6609 6609 6 -6610 6609 -1 -6629 6609 -1 -7009 6609 -1 -6610 6610 6 -6611 6610 -1 -6630 6610 -1 -7010 6610 -1 -6611 6611 6 -6612 6611 -1 -6631 6611 -1 -7011 6611 -1 -6612 6612 6 -6613 6612 -1 -6632 6612 -1 -7012 6612 -1 -6613 6613 6 -6614 6613 -1 -6633 6613 -1 -7013 6613 -1 -6614 6614 6 -6615 6614 -1 -6634 6614 -1 -7014 6614 -1 -6615 6615 6 -6616 6615 -1 -6635 6615 -1 -7015 6615 -1 -6616 6616 6 -6617 6616 -1 -6636 6616 -1 -7016 6616 -1 -6617 6617 6 -6618 6617 -1 -6637 6617 -1 -7017 6617 -1 -6618 6618 6 -6619 6618 -1 -6638 6618 -1 -7018 6618 -1 -6619 6619 6 -6620 6619 -1 -6639 6619 -1 -7019 6619 -1 -6620 6620 6 -6640 6620 -1 -7020 6620 -1 -6621 6621 6 -6622 6621 -1 -6641 6621 -1 -7021 6621 -1 -6622 6622 6 -6623 6622 -1 -6642 6622 -1 -7022 6622 -1 -6623 6623 6 -6624 6623 -1 -6643 6623 -1 -7023 6623 -1 -6624 6624 6 -6625 6624 -1 -6644 6624 -1 -7024 6624 -1 -6625 6625 6 -6626 6625 -1 -6645 6625 -1 -7025 6625 -1 -6626 6626 6 -6627 6626 -1 -6646 6626 -1 -7026 6626 -1 -6627 6627 6 -6628 6627 -1 -6647 6627 -1 -7027 6627 -1 -6628 6628 6 -6629 6628 -1 -6648 6628 -1 -7028 6628 -1 -6629 6629 6 -6630 6629 -1 -6649 6629 -1 -7029 6629 -1 -6630 6630 6 -6631 6630 -1 -6650 6630 -1 -7030 6630 -1 -6631 6631 6 -6632 6631 -1 -6651 6631 -1 -7031 6631 -1 -6632 6632 6 -6633 6632 -1 -6652 6632 -1 -7032 6632 -1 -6633 6633 6 -6634 6633 -1 -6653 6633 -1 -7033 6633 -1 -6634 6634 6 -6635 6634 -1 -6654 6634 -1 -7034 6634 -1 -6635 6635 6 -6636 6635 -1 -6655 6635 -1 -7035 6635 -1 -6636 6636 6 -6637 6636 -1 -6656 6636 -1 -7036 6636 -1 -6637 6637 6 -6638 6637 -1 -6657 6637 -1 -7037 6637 -1 -6638 6638 6 -6639 6638 -1 -6658 6638 -1 -7038 6638 -1 -6639 6639 6 -6640 6639 -1 -6659 6639 -1 -7039 6639 -1 -6640 6640 6 -6660 6640 -1 -7040 6640 -1 -6641 6641 6 -6642 6641 -1 -6661 6641 -1 -7041 6641 -1 -6642 6642 6 -6643 6642 -1 -6662 6642 -1 -7042 6642 -1 -6643 6643 6 -6644 6643 -1 -6663 6643 -1 -7043 6643 -1 -6644 6644 6 -6645 6644 -1 -6664 6644 -1 -7044 6644 -1 -6645 6645 6 -6646 6645 -1 -6665 6645 -1 -7045 6645 -1 -6646 6646 6 -6647 6646 -1 -6666 6646 -1 -7046 6646 -1 -6647 6647 6 -6648 6647 -1 -6667 6647 -1 -7047 6647 -1 -6648 6648 6 -6649 6648 -1 -6668 6648 -1 -7048 6648 -1 -6649 6649 6 -6650 6649 -1 -6669 6649 -1 -7049 6649 -1 -6650 6650 6 -6651 6650 -1 -6670 6650 -1 -7050 6650 -1 -6651 6651 6 -6652 6651 -1 -6671 6651 -1 -7051 6651 -1 -6652 6652 6 -6653 6652 -1 -6672 6652 -1 -7052 6652 -1 -6653 6653 6 -6654 6653 -1 -6673 6653 -1 -7053 6653 -1 -6654 6654 6 -6655 6654 -1 -6674 6654 -1 -7054 6654 -1 -6655 6655 6 -6656 6655 -1 -6675 6655 -1 -7055 6655 -1 -6656 6656 6 -6657 6656 -1 -6676 6656 -1 -7056 6656 -1 -6657 6657 6 -6658 6657 -1 -6677 6657 -1 -7057 6657 -1 -6658 6658 6 -6659 6658 -1 -6678 6658 -1 -7058 6658 -1 -6659 6659 6 -6660 6659 -1 -6679 6659 -1 -7059 6659 -1 -6660 6660 6 -6680 6660 -1 -7060 6660 -1 -6661 6661 6 -6662 6661 -1 -6681 6661 -1 -7061 6661 -1 -6662 6662 6 -6663 6662 -1 -6682 6662 -1 -7062 6662 -1 -6663 6663 6 -6664 6663 -1 -6683 6663 -1 -7063 6663 -1 -6664 6664 6 -6665 6664 -1 -6684 6664 -1 -7064 6664 -1 -6665 6665 6 -6666 6665 -1 -6685 6665 -1 -7065 6665 -1 -6666 6666 6 -6667 6666 -1 -6686 6666 -1 -7066 6666 -1 -6667 6667 6 -6668 6667 -1 -6687 6667 -1 -7067 6667 -1 -6668 6668 6 -6669 6668 -1 -6688 6668 -1 -7068 6668 -1 -6669 6669 6 -6670 6669 -1 -6689 6669 -1 -7069 6669 -1 -6670 6670 6 -6671 6670 -1 -6690 6670 -1 -7070 6670 -1 -6671 6671 6 -6672 6671 -1 -6691 6671 -1 -7071 6671 -1 -6672 6672 6 -6673 6672 -1 -6692 6672 -1 -7072 6672 -1 -6673 6673 6 -6674 6673 -1 -6693 6673 -1 -7073 6673 -1 -6674 6674 6 -6675 6674 -1 -6694 6674 -1 -7074 6674 -1 -6675 6675 6 -6676 6675 -1 -6695 6675 -1 -7075 6675 -1 -6676 6676 6 -6677 6676 -1 -6696 6676 -1 -7076 6676 -1 -6677 6677 6 -6678 6677 -1 -6697 6677 -1 -7077 6677 -1 -6678 6678 6 -6679 6678 -1 -6698 6678 -1 -7078 6678 -1 -6679 6679 6 -6680 6679 -1 -6699 6679 -1 -7079 6679 -1 -6680 6680 6 -6700 6680 -1 -7080 6680 -1 -6681 6681 6 -6682 6681 -1 -6701 6681 -1 -7081 6681 -1 -6682 6682 6 -6683 6682 -1 -6702 6682 -1 -7082 6682 -1 -6683 6683 6 -6684 6683 -1 -6703 6683 -1 -7083 6683 -1 -6684 6684 6 -6685 6684 -1 -6704 6684 -1 -7084 6684 -1 -6685 6685 6 -6686 6685 -1 -6705 6685 -1 -7085 6685 -1 -6686 6686 6 -6687 6686 -1 -6706 6686 -1 -7086 6686 -1 -6687 6687 6 -6688 6687 -1 -6707 6687 -1 -7087 6687 -1 -6688 6688 6 -6689 6688 -1 -6708 6688 -1 -7088 6688 -1 -6689 6689 6 -6690 6689 -1 -6709 6689 -1 -7089 6689 -1 -6690 6690 6 -6691 6690 -1 -6710 6690 -1 -7090 6690 -1 -6691 6691 6 -6692 6691 -1 -6711 6691 -1 -7091 6691 -1 -6692 6692 6 -6693 6692 -1 -6712 6692 -1 -7092 6692 -1 -6693 6693 6 -6694 6693 -1 -6713 6693 -1 -7093 6693 -1 -6694 6694 6 -6695 6694 -1 -6714 6694 -1 -7094 6694 -1 -6695 6695 6 -6696 6695 -1 -6715 6695 -1 -7095 6695 -1 -6696 6696 6 -6697 6696 -1 -6716 6696 -1 -7096 6696 -1 -6697 6697 6 -6698 6697 -1 -6717 6697 -1 -7097 6697 -1 -6698 6698 6 -6699 6698 -1 -6718 6698 -1 -7098 6698 -1 -6699 6699 6 -6700 6699 -1 -6719 6699 -1 -7099 6699 -1 -6700 6700 6 -6720 6700 -1 -7100 6700 -1 -6701 6701 6 -6702 6701 -1 -6721 6701 -1 -7101 6701 -1 -6702 6702 6 -6703 6702 -1 -6722 6702 -1 -7102 6702 -1 -6703 6703 6 -6704 6703 -1 -6723 6703 -1 -7103 6703 -1 -6704 6704 6 -6705 6704 -1 -6724 6704 -1 -7104 6704 -1 -6705 6705 6 -6706 6705 -1 -6725 6705 -1 -7105 6705 -1 -6706 6706 6 -6707 6706 -1 -6726 6706 -1 -7106 6706 -1 -6707 6707 6 -6708 6707 -1 -6727 6707 -1 -7107 6707 -1 -6708 6708 6 -6709 6708 -1 -6728 6708 -1 -7108 6708 -1 -6709 6709 6 -6710 6709 -1 -6729 6709 -1 -7109 6709 -1 -6710 6710 6 -6711 6710 -1 -6730 6710 -1 -7110 6710 -1 -6711 6711 6 -6712 6711 -1 -6731 6711 -1 -7111 6711 -1 -6712 6712 6 -6713 6712 -1 -6732 6712 -1 -7112 6712 -1 -6713 6713 6 -6714 6713 -1 -6733 6713 -1 -7113 6713 -1 -6714 6714 6 -6715 6714 -1 -6734 6714 -1 -7114 6714 -1 -6715 6715 6 -6716 6715 -1 -6735 6715 -1 -7115 6715 -1 -6716 6716 6 -6717 6716 -1 -6736 6716 -1 -7116 6716 -1 -6717 6717 6 -6718 6717 -1 -6737 6717 -1 -7117 6717 -1 -6718 6718 6 -6719 6718 -1 -6738 6718 -1 -7118 6718 -1 -6719 6719 6 -6720 6719 -1 -6739 6719 -1 -7119 6719 -1 -6720 6720 6 -6740 6720 -1 -7120 6720 -1 -6721 6721 6 -6722 6721 -1 -6741 6721 -1 -7121 6721 -1 -6722 6722 6 -6723 6722 -1 -6742 6722 -1 -7122 6722 -1 -6723 6723 6 -6724 6723 -1 -6743 6723 -1 -7123 6723 -1 -6724 6724 6 -6725 6724 -1 -6744 6724 -1 -7124 6724 -1 -6725 6725 6 -6726 6725 -1 -6745 6725 -1 -7125 6725 -1 -6726 6726 6 -6727 6726 -1 -6746 6726 -1 -7126 6726 -1 -6727 6727 6 -6728 6727 -1 -6747 6727 -1 -7127 6727 -1 -6728 6728 6 -6729 6728 -1 -6748 6728 -1 -7128 6728 -1 -6729 6729 6 -6730 6729 -1 -6749 6729 -1 -7129 6729 -1 -6730 6730 6 -6731 6730 -1 -6750 6730 -1 -7130 6730 -1 -6731 6731 6 -6732 6731 -1 -6751 6731 -1 -7131 6731 -1 -6732 6732 6 -6733 6732 -1 -6752 6732 -1 -7132 6732 -1 -6733 6733 6 -6734 6733 -1 -6753 6733 -1 -7133 6733 -1 -6734 6734 6 -6735 6734 -1 -6754 6734 -1 -7134 6734 -1 -6735 6735 6 -6736 6735 -1 -6755 6735 -1 -7135 6735 -1 -6736 6736 6 -6737 6736 -1 -6756 6736 -1 -7136 6736 -1 -6737 6737 6 -6738 6737 -1 -6757 6737 -1 -7137 6737 -1 -6738 6738 6 -6739 6738 -1 -6758 6738 -1 -7138 6738 -1 -6739 6739 6 -6740 6739 -1 -6759 6739 -1 -7139 6739 -1 -6740 6740 6 -6760 6740 -1 -7140 6740 -1 -6741 6741 6 -6742 6741 -1 -6761 6741 -1 -7141 6741 -1 -6742 6742 6 -6743 6742 -1 -6762 6742 -1 -7142 6742 -1 -6743 6743 6 -6744 6743 -1 -6763 6743 -1 -7143 6743 -1 -6744 6744 6 -6745 6744 -1 -6764 6744 -1 -7144 6744 -1 -6745 6745 6 -6746 6745 -1 -6765 6745 -1 -7145 6745 -1 -6746 6746 6 -6747 6746 -1 -6766 6746 -1 -7146 6746 -1 -6747 6747 6 -6748 6747 -1 -6767 6747 -1 -7147 6747 -1 -6748 6748 6 -6749 6748 -1 -6768 6748 -1 -7148 6748 -1 -6749 6749 6 -6750 6749 -1 -6769 6749 -1 -7149 6749 -1 -6750 6750 6 -6751 6750 -1 -6770 6750 -1 -7150 6750 -1 -6751 6751 6 -6752 6751 -1 -6771 6751 -1 -7151 6751 -1 -6752 6752 6 -6753 6752 -1 -6772 6752 -1 -7152 6752 -1 -6753 6753 6 -6754 6753 -1 -6773 6753 -1 -7153 6753 -1 -6754 6754 6 -6755 6754 -1 -6774 6754 -1 -7154 6754 -1 -6755 6755 6 -6756 6755 -1 -6775 6755 -1 -7155 6755 -1 -6756 6756 6 -6757 6756 -1 -6776 6756 -1 -7156 6756 -1 -6757 6757 6 -6758 6757 -1 -6777 6757 -1 -7157 6757 -1 -6758 6758 6 -6759 6758 -1 -6778 6758 -1 -7158 6758 -1 -6759 6759 6 -6760 6759 -1 -6779 6759 -1 -7159 6759 -1 -6760 6760 6 -6780 6760 -1 -7160 6760 -1 -6761 6761 6 -6762 6761 -1 -6781 6761 -1 -7161 6761 -1 -6762 6762 6 -6763 6762 -1 -6782 6762 -1 -7162 6762 -1 -6763 6763 6 -6764 6763 -1 -6783 6763 -1 -7163 6763 -1 -6764 6764 6 -6765 6764 -1 -6784 6764 -1 -7164 6764 -1 -6765 6765 6 -6766 6765 -1 -6785 6765 -1 -7165 6765 -1 -6766 6766 6 -6767 6766 -1 -6786 6766 -1 -7166 6766 -1 -6767 6767 6 -6768 6767 -1 -6787 6767 -1 -7167 6767 -1 -6768 6768 6 -6769 6768 -1 -6788 6768 -1 -7168 6768 -1 -6769 6769 6 -6770 6769 -1 -6789 6769 -1 -7169 6769 -1 -6770 6770 6 -6771 6770 -1 -6790 6770 -1 -7170 6770 -1 -6771 6771 6 -6772 6771 -1 -6791 6771 -1 -7171 6771 -1 -6772 6772 6 -6773 6772 -1 -6792 6772 -1 -7172 6772 -1 -6773 6773 6 -6774 6773 -1 -6793 6773 -1 -7173 6773 -1 -6774 6774 6 -6775 6774 -1 -6794 6774 -1 -7174 6774 -1 -6775 6775 6 -6776 6775 -1 -6795 6775 -1 -7175 6775 -1 -6776 6776 6 -6777 6776 -1 -6796 6776 -1 -7176 6776 -1 -6777 6777 6 -6778 6777 -1 -6797 6777 -1 -7177 6777 -1 -6778 6778 6 -6779 6778 -1 -6798 6778 -1 -7178 6778 -1 -6779 6779 6 -6780 6779 -1 -6799 6779 -1 -7179 6779 -1 -6780 6780 6 -6800 6780 -1 -7180 6780 -1 -6781 6781 6 -6782 6781 -1 -7181 6781 -1 -6782 6782 6 -6783 6782 -1 -7182 6782 -1 -6783 6783 6 -6784 6783 -1 -7183 6783 -1 -6784 6784 6 -6785 6784 -1 -7184 6784 -1 -6785 6785 6 -6786 6785 -1 -7185 6785 -1 -6786 6786 6 -6787 6786 -1 -7186 6786 -1 -6787 6787 6 -6788 6787 -1 -7187 6787 -1 -6788 6788 6 -6789 6788 -1 -7188 6788 -1 -6789 6789 6 -6790 6789 -1 -7189 6789 -1 -6790 6790 6 -6791 6790 -1 -7190 6790 -1 -6791 6791 6 -6792 6791 -1 -7191 6791 -1 -6792 6792 6 -6793 6792 -1 -7192 6792 -1 -6793 6793 6 -6794 6793 -1 -7193 6793 -1 -6794 6794 6 -6795 6794 -1 -7194 6794 -1 -6795 6795 6 -6796 6795 -1 -7195 6795 -1 -6796 6796 6 -6797 6796 -1 -7196 6796 -1 -6797 6797 6 -6798 6797 -1 -7197 6797 -1 -6798 6798 6 -6799 6798 -1 -7198 6798 -1 -6799 6799 6 -6800 6799 -1 -7199 6799 -1 -6800 6800 6 -7200 6800 -1 -6801 6801 6 -6802 6801 -1 -6821 6801 -1 -7201 6801 -1 -6802 6802 6 -6803 6802 -1 -6822 6802 -1 -7202 6802 -1 -6803 6803 6 -6804 6803 -1 -6823 6803 -1 -7203 6803 -1 -6804 6804 6 -6805 6804 -1 -6824 6804 -1 -7204 6804 -1 -6805 6805 6 -6806 6805 -1 -6825 6805 -1 -7205 6805 -1 -6806 6806 6 -6807 6806 -1 -6826 6806 -1 -7206 6806 -1 -6807 6807 6 -6808 6807 -1 -6827 6807 -1 -7207 6807 -1 -6808 6808 6 -6809 6808 -1 -6828 6808 -1 -7208 6808 -1 -6809 6809 6 -6810 6809 -1 -6829 6809 -1 -7209 6809 -1 -6810 6810 6 -6811 6810 -1 -6830 6810 -1 -7210 6810 -1 -6811 6811 6 -6812 6811 -1 -6831 6811 -1 -7211 6811 -1 -6812 6812 6 -6813 6812 -1 -6832 6812 -1 -7212 6812 -1 -6813 6813 6 -6814 6813 -1 -6833 6813 -1 -7213 6813 -1 -6814 6814 6 -6815 6814 -1 -6834 6814 -1 -7214 6814 -1 -6815 6815 6 -6816 6815 -1 -6835 6815 -1 -7215 6815 -1 -6816 6816 6 -6817 6816 -1 -6836 6816 -1 -7216 6816 -1 -6817 6817 6 -6818 6817 -1 -6837 6817 -1 -7217 6817 -1 -6818 6818 6 -6819 6818 -1 -6838 6818 -1 -7218 6818 -1 -6819 6819 6 -6820 6819 -1 -6839 6819 -1 -7219 6819 -1 -6820 6820 6 -6840 6820 -1 -7220 6820 -1 -6821 6821 6 -6822 6821 -1 -6841 6821 -1 -7221 6821 -1 -6822 6822 6 -6823 6822 -1 -6842 6822 -1 -7222 6822 -1 -6823 6823 6 -6824 6823 -1 -6843 6823 -1 -7223 6823 -1 -6824 6824 6 -6825 6824 -1 -6844 6824 -1 -7224 6824 -1 -6825 6825 6 -6826 6825 -1 -6845 6825 -1 -7225 6825 -1 -6826 6826 6 -6827 6826 -1 -6846 6826 -1 -7226 6826 -1 -6827 6827 6 -6828 6827 -1 -6847 6827 -1 -7227 6827 -1 -6828 6828 6 -6829 6828 -1 -6848 6828 -1 -7228 6828 -1 -6829 6829 6 -6830 6829 -1 -6849 6829 -1 -7229 6829 -1 -6830 6830 6 -6831 6830 -1 -6850 6830 -1 -7230 6830 -1 -6831 6831 6 -6832 6831 -1 -6851 6831 -1 -7231 6831 -1 -6832 6832 6 -6833 6832 -1 -6852 6832 -1 -7232 6832 -1 -6833 6833 6 -6834 6833 -1 -6853 6833 -1 -7233 6833 -1 -6834 6834 6 -6835 6834 -1 -6854 6834 -1 -7234 6834 -1 -6835 6835 6 -6836 6835 -1 -6855 6835 -1 -7235 6835 -1 -6836 6836 6 -6837 6836 -1 -6856 6836 -1 -7236 6836 -1 -6837 6837 6 -6838 6837 -1 -6857 6837 -1 -7237 6837 -1 -6838 6838 6 -6839 6838 -1 -6858 6838 -1 -7238 6838 -1 -6839 6839 6 -6840 6839 -1 -6859 6839 -1 -7239 6839 -1 -6840 6840 6 -6860 6840 -1 -7240 6840 -1 -6841 6841 6 -6842 6841 -1 -6861 6841 -1 -7241 6841 -1 -6842 6842 6 -6843 6842 -1 -6862 6842 -1 -7242 6842 -1 -6843 6843 6 -6844 6843 -1 -6863 6843 -1 -7243 6843 -1 -6844 6844 6 -6845 6844 -1 -6864 6844 -1 -7244 6844 -1 -6845 6845 6 -6846 6845 -1 -6865 6845 -1 -7245 6845 -1 -6846 6846 6 -6847 6846 -1 -6866 6846 -1 -7246 6846 -1 -6847 6847 6 -6848 6847 -1 -6867 6847 -1 -7247 6847 -1 -6848 6848 6 -6849 6848 -1 -6868 6848 -1 -7248 6848 -1 -6849 6849 6 -6850 6849 -1 -6869 6849 -1 -7249 6849 -1 -6850 6850 6 -6851 6850 -1 -6870 6850 -1 -7250 6850 -1 -6851 6851 6 -6852 6851 -1 -6871 6851 -1 -7251 6851 -1 -6852 6852 6 -6853 6852 -1 -6872 6852 -1 -7252 6852 -1 -6853 6853 6 -6854 6853 -1 -6873 6853 -1 -7253 6853 -1 -6854 6854 6 -6855 6854 -1 -6874 6854 -1 -7254 6854 -1 -6855 6855 6 -6856 6855 -1 -6875 6855 -1 -7255 6855 -1 -6856 6856 6 -6857 6856 -1 -6876 6856 -1 -7256 6856 -1 -6857 6857 6 -6858 6857 -1 -6877 6857 -1 -7257 6857 -1 -6858 6858 6 -6859 6858 -1 -6878 6858 -1 -7258 6858 -1 -6859 6859 6 -6860 6859 -1 -6879 6859 -1 -7259 6859 -1 -6860 6860 6 -6880 6860 -1 -7260 6860 -1 -6861 6861 6 -6862 6861 -1 -6881 6861 -1 -7261 6861 -1 -6862 6862 6 -6863 6862 -1 -6882 6862 -1 -7262 6862 -1 -6863 6863 6 -6864 6863 -1 -6883 6863 -1 -7263 6863 -1 -6864 6864 6 -6865 6864 -1 -6884 6864 -1 -7264 6864 -1 -6865 6865 6 -6866 6865 -1 -6885 6865 -1 -7265 6865 -1 -6866 6866 6 -6867 6866 -1 -6886 6866 -1 -7266 6866 -1 -6867 6867 6 -6868 6867 -1 -6887 6867 -1 -7267 6867 -1 -6868 6868 6 -6869 6868 -1 -6888 6868 -1 -7268 6868 -1 -6869 6869 6 -6870 6869 -1 -6889 6869 -1 -7269 6869 -1 -6870 6870 6 -6871 6870 -1 -6890 6870 -1 -7270 6870 -1 -6871 6871 6 -6872 6871 -1 -6891 6871 -1 -7271 6871 -1 -6872 6872 6 -6873 6872 -1 -6892 6872 -1 -7272 6872 -1 -6873 6873 6 -6874 6873 -1 -6893 6873 -1 -7273 6873 -1 -6874 6874 6 -6875 6874 -1 -6894 6874 -1 -7274 6874 -1 -6875 6875 6 -6876 6875 -1 -6895 6875 -1 -7275 6875 -1 -6876 6876 6 -6877 6876 -1 -6896 6876 -1 -7276 6876 -1 -6877 6877 6 -6878 6877 -1 -6897 6877 -1 -7277 6877 -1 -6878 6878 6 -6879 6878 -1 -6898 6878 -1 -7278 6878 -1 -6879 6879 6 -6880 6879 -1 -6899 6879 -1 -7279 6879 -1 -6880 6880 6 -6900 6880 -1 -7280 6880 -1 -6881 6881 6 -6882 6881 -1 -6901 6881 -1 -7281 6881 -1 -6882 6882 6 -6883 6882 -1 -6902 6882 -1 -7282 6882 -1 -6883 6883 6 -6884 6883 -1 -6903 6883 -1 -7283 6883 -1 -6884 6884 6 -6885 6884 -1 -6904 6884 -1 -7284 6884 -1 -6885 6885 6 -6886 6885 -1 -6905 6885 -1 -7285 6885 -1 -6886 6886 6 -6887 6886 -1 -6906 6886 -1 -7286 6886 -1 -6887 6887 6 -6888 6887 -1 -6907 6887 -1 -7287 6887 -1 -6888 6888 6 -6889 6888 -1 -6908 6888 -1 -7288 6888 -1 -6889 6889 6 -6890 6889 -1 -6909 6889 -1 -7289 6889 -1 -6890 6890 6 -6891 6890 -1 -6910 6890 -1 -7290 6890 -1 -6891 6891 6 -6892 6891 -1 -6911 6891 -1 -7291 6891 -1 -6892 6892 6 -6893 6892 -1 -6912 6892 -1 -7292 6892 -1 -6893 6893 6 -6894 6893 -1 -6913 6893 -1 -7293 6893 -1 -6894 6894 6 -6895 6894 -1 -6914 6894 -1 -7294 6894 -1 -6895 6895 6 -6896 6895 -1 -6915 6895 -1 -7295 6895 -1 -6896 6896 6 -6897 6896 -1 -6916 6896 -1 -7296 6896 -1 -6897 6897 6 -6898 6897 -1 -6917 6897 -1 -7297 6897 -1 -6898 6898 6 -6899 6898 -1 -6918 6898 -1 -7298 6898 -1 -6899 6899 6 -6900 6899 -1 -6919 6899 -1 -7299 6899 -1 -6900 6900 6 -6920 6900 -1 -7300 6900 -1 -6901 6901 6 -6902 6901 -1 -6921 6901 -1 -7301 6901 -1 -6902 6902 6 -6903 6902 -1 -6922 6902 -1 -7302 6902 -1 -6903 6903 6 -6904 6903 -1 -6923 6903 -1 -7303 6903 -1 -6904 6904 6 -6905 6904 -1 -6924 6904 -1 -7304 6904 -1 -6905 6905 6 -6906 6905 -1 -6925 6905 -1 -7305 6905 -1 -6906 6906 6 -6907 6906 -1 -6926 6906 -1 -7306 6906 -1 -6907 6907 6 -6908 6907 -1 -6927 6907 -1 -7307 6907 -1 -6908 6908 6 -6909 6908 -1 -6928 6908 -1 -7308 6908 -1 -6909 6909 6 -6910 6909 -1 -6929 6909 -1 -7309 6909 -1 -6910 6910 6 -6911 6910 -1 -6930 6910 -1 -7310 6910 -1 -6911 6911 6 -6912 6911 -1 -6931 6911 -1 -7311 6911 -1 -6912 6912 6 -6913 6912 -1 -6932 6912 -1 -7312 6912 -1 -6913 6913 6 -6914 6913 -1 -6933 6913 -1 -7313 6913 -1 -6914 6914 6 -6915 6914 -1 -6934 6914 -1 -7314 6914 -1 -6915 6915 6 -6916 6915 -1 -6935 6915 -1 -7315 6915 -1 -6916 6916 6 -6917 6916 -1 -6936 6916 -1 -7316 6916 -1 -6917 6917 6 -6918 6917 -1 -6937 6917 -1 -7317 6917 -1 -6918 6918 6 -6919 6918 -1 -6938 6918 -1 -7318 6918 -1 -6919 6919 6 -6920 6919 -1 -6939 6919 -1 -7319 6919 -1 -6920 6920 6 -6940 6920 -1 -7320 6920 -1 -6921 6921 6 -6922 6921 -1 -6941 6921 -1 -7321 6921 -1 -6922 6922 6 -6923 6922 -1 -6942 6922 -1 -7322 6922 -1 -6923 6923 6 -6924 6923 -1 -6943 6923 -1 -7323 6923 -1 -6924 6924 6 -6925 6924 -1 -6944 6924 -1 -7324 6924 -1 -6925 6925 6 -6926 6925 -1 -6945 6925 -1 -7325 6925 -1 -6926 6926 6 -6927 6926 -1 -6946 6926 -1 -7326 6926 -1 -6927 6927 6 -6928 6927 -1 -6947 6927 -1 -7327 6927 -1 -6928 6928 6 -6929 6928 -1 -6948 6928 -1 -7328 6928 -1 -6929 6929 6 -6930 6929 -1 -6949 6929 -1 -7329 6929 -1 -6930 6930 6 -6931 6930 -1 -6950 6930 -1 -7330 6930 -1 -6931 6931 6 -6932 6931 -1 -6951 6931 -1 -7331 6931 -1 -6932 6932 6 -6933 6932 -1 -6952 6932 -1 -7332 6932 -1 -6933 6933 6 -6934 6933 -1 -6953 6933 -1 -7333 6933 -1 -6934 6934 6 -6935 6934 -1 -6954 6934 -1 -7334 6934 -1 -6935 6935 6 -6936 6935 -1 -6955 6935 -1 -7335 6935 -1 -6936 6936 6 -6937 6936 -1 -6956 6936 -1 -7336 6936 -1 -6937 6937 6 -6938 6937 -1 -6957 6937 -1 -7337 6937 -1 -6938 6938 6 -6939 6938 -1 -6958 6938 -1 -7338 6938 -1 -6939 6939 6 -6940 6939 -1 -6959 6939 -1 -7339 6939 -1 -6940 6940 6 -6960 6940 -1 -7340 6940 -1 -6941 6941 6 -6942 6941 -1 -6961 6941 -1 -7341 6941 -1 -6942 6942 6 -6943 6942 -1 -6962 6942 -1 -7342 6942 -1 -6943 6943 6 -6944 6943 -1 -6963 6943 -1 -7343 6943 -1 -6944 6944 6 -6945 6944 -1 -6964 6944 -1 -7344 6944 -1 -6945 6945 6 -6946 6945 -1 -6965 6945 -1 -7345 6945 -1 -6946 6946 6 -6947 6946 -1 -6966 6946 -1 -7346 6946 -1 -6947 6947 6 -6948 6947 -1 -6967 6947 -1 -7347 6947 -1 -6948 6948 6 -6949 6948 -1 -6968 6948 -1 -7348 6948 -1 -6949 6949 6 -6950 6949 -1 -6969 6949 -1 -7349 6949 -1 -6950 6950 6 -6951 6950 -1 -6970 6950 -1 -7350 6950 -1 -6951 6951 6 -6952 6951 -1 -6971 6951 -1 -7351 6951 -1 -6952 6952 6 -6953 6952 -1 -6972 6952 -1 -7352 6952 -1 -6953 6953 6 -6954 6953 -1 -6973 6953 -1 -7353 6953 -1 -6954 6954 6 -6955 6954 -1 -6974 6954 -1 -7354 6954 -1 -6955 6955 6 -6956 6955 -1 -6975 6955 -1 -7355 6955 -1 -6956 6956 6 -6957 6956 -1 -6976 6956 -1 -7356 6956 -1 -6957 6957 6 -6958 6957 -1 -6977 6957 -1 -7357 6957 -1 -6958 6958 6 -6959 6958 -1 -6978 6958 -1 -7358 6958 -1 -6959 6959 6 -6960 6959 -1 -6979 6959 -1 -7359 6959 -1 -6960 6960 6 -6980 6960 -1 -7360 6960 -1 -6961 6961 6 -6962 6961 -1 -6981 6961 -1 -7361 6961 -1 -6962 6962 6 -6963 6962 -1 -6982 6962 -1 -7362 6962 -1 -6963 6963 6 -6964 6963 -1 -6983 6963 -1 -7363 6963 -1 -6964 6964 6 -6965 6964 -1 -6984 6964 -1 -7364 6964 -1 -6965 6965 6 -6966 6965 -1 -6985 6965 -1 -7365 6965 -1 -6966 6966 6 -6967 6966 -1 -6986 6966 -1 -7366 6966 -1 -6967 6967 6 -6968 6967 -1 -6987 6967 -1 -7367 6967 -1 -6968 6968 6 -6969 6968 -1 -6988 6968 -1 -7368 6968 -1 -6969 6969 6 -6970 6969 -1 -6989 6969 -1 -7369 6969 -1 -6970 6970 6 -6971 6970 -1 -6990 6970 -1 -7370 6970 -1 -6971 6971 6 -6972 6971 -1 -6991 6971 -1 -7371 6971 -1 -6972 6972 6 -6973 6972 -1 -6992 6972 -1 -7372 6972 -1 -6973 6973 6 -6974 6973 -1 -6993 6973 -1 -7373 6973 -1 -6974 6974 6 -6975 6974 -1 -6994 6974 -1 -7374 6974 -1 -6975 6975 6 -6976 6975 -1 -6995 6975 -1 -7375 6975 -1 -6976 6976 6 -6977 6976 -1 -6996 6976 -1 -7376 6976 -1 -6977 6977 6 -6978 6977 -1 -6997 6977 -1 -7377 6977 -1 -6978 6978 6 -6979 6978 -1 -6998 6978 -1 -7378 6978 -1 -6979 6979 6 -6980 6979 -1 -6999 6979 -1 -7379 6979 -1 -6980 6980 6 -7000 6980 -1 -7380 6980 -1 -6981 6981 6 -6982 6981 -1 -7001 6981 -1 -7381 6981 -1 -6982 6982 6 -6983 6982 -1 -7002 6982 -1 -7382 6982 -1 -6983 6983 6 -6984 6983 -1 -7003 6983 -1 -7383 6983 -1 -6984 6984 6 -6985 6984 -1 -7004 6984 -1 -7384 6984 -1 -6985 6985 6 -6986 6985 -1 -7005 6985 -1 -7385 6985 -1 -6986 6986 6 -6987 6986 -1 -7006 6986 -1 -7386 6986 -1 -6987 6987 6 -6988 6987 -1 -7007 6987 -1 -7387 6987 -1 -6988 6988 6 -6989 6988 -1 -7008 6988 -1 -7388 6988 -1 -6989 6989 6 -6990 6989 -1 -7009 6989 -1 -7389 6989 -1 -6990 6990 6 -6991 6990 -1 -7010 6990 -1 -7390 6990 -1 -6991 6991 6 -6992 6991 -1 -7011 6991 -1 -7391 6991 -1 -6992 6992 6 -6993 6992 -1 -7012 6992 -1 -7392 6992 -1 -6993 6993 6 -6994 6993 -1 -7013 6993 -1 -7393 6993 -1 -6994 6994 6 -6995 6994 -1 -7014 6994 -1 -7394 6994 -1 -6995 6995 6 -6996 6995 -1 -7015 6995 -1 -7395 6995 -1 -6996 6996 6 -6997 6996 -1 -7016 6996 -1 -7396 6996 -1 -6997 6997 6 -6998 6997 -1 -7017 6997 -1 -7397 6997 -1 -6998 6998 6 -6999 6998 -1 -7018 6998 -1 -7398 6998 -1 -6999 6999 6 -7000 6999 -1 -7019 6999 -1 -7399 6999 -1 -7000 7000 6 -7020 7000 -1 -7400 7000 -1 -7001 7001 6 -7002 7001 -1 -7021 7001 -1 -7401 7001 -1 -7002 7002 6 -7003 7002 -1 -7022 7002 -1 -7402 7002 -1 -7003 7003 6 -7004 7003 -1 -7023 7003 -1 -7403 7003 -1 -7004 7004 6 -7005 7004 -1 -7024 7004 -1 -7404 7004 -1 -7005 7005 6 -7006 7005 -1 -7025 7005 -1 -7405 7005 -1 -7006 7006 6 -7007 7006 -1 -7026 7006 -1 -7406 7006 -1 -7007 7007 6 -7008 7007 -1 -7027 7007 -1 -7407 7007 -1 -7008 7008 6 -7009 7008 -1 -7028 7008 -1 -7408 7008 -1 -7009 7009 6 -7010 7009 -1 -7029 7009 -1 -7409 7009 -1 -7010 7010 6 -7011 7010 -1 -7030 7010 -1 -7410 7010 -1 -7011 7011 6 -7012 7011 -1 -7031 7011 -1 -7411 7011 -1 -7012 7012 6 -7013 7012 -1 -7032 7012 -1 -7412 7012 -1 -7013 7013 6 -7014 7013 -1 -7033 7013 -1 -7413 7013 -1 -7014 7014 6 -7015 7014 -1 -7034 7014 -1 -7414 7014 -1 -7015 7015 6 -7016 7015 -1 -7035 7015 -1 -7415 7015 -1 -7016 7016 6 -7017 7016 -1 -7036 7016 -1 -7416 7016 -1 -7017 7017 6 -7018 7017 -1 -7037 7017 -1 -7417 7017 -1 -7018 7018 6 -7019 7018 -1 -7038 7018 -1 -7418 7018 -1 -7019 7019 6 -7020 7019 -1 -7039 7019 -1 -7419 7019 -1 -7020 7020 6 -7040 7020 -1 -7420 7020 -1 -7021 7021 6 -7022 7021 -1 -7041 7021 -1 -7421 7021 -1 -7022 7022 6 -7023 7022 -1 -7042 7022 -1 -7422 7022 -1 -7023 7023 6 -7024 7023 -1 -7043 7023 -1 -7423 7023 -1 -7024 7024 6 -7025 7024 -1 -7044 7024 -1 -7424 7024 -1 -7025 7025 6 -7026 7025 -1 -7045 7025 -1 -7425 7025 -1 -7026 7026 6 -7027 7026 -1 -7046 7026 -1 -7426 7026 -1 -7027 7027 6 -7028 7027 -1 -7047 7027 -1 -7427 7027 -1 -7028 7028 6 -7029 7028 -1 -7048 7028 -1 -7428 7028 -1 -7029 7029 6 -7030 7029 -1 -7049 7029 -1 -7429 7029 -1 -7030 7030 6 -7031 7030 -1 -7050 7030 -1 -7430 7030 -1 -7031 7031 6 -7032 7031 -1 -7051 7031 -1 -7431 7031 -1 -7032 7032 6 -7033 7032 -1 -7052 7032 -1 -7432 7032 -1 -7033 7033 6 -7034 7033 -1 -7053 7033 -1 -7433 7033 -1 -7034 7034 6 -7035 7034 -1 -7054 7034 -1 -7434 7034 -1 -7035 7035 6 -7036 7035 -1 -7055 7035 -1 -7435 7035 -1 -7036 7036 6 -7037 7036 -1 -7056 7036 -1 -7436 7036 -1 -7037 7037 6 -7038 7037 -1 -7057 7037 -1 -7437 7037 -1 -7038 7038 6 -7039 7038 -1 -7058 7038 -1 -7438 7038 -1 -7039 7039 6 -7040 7039 -1 -7059 7039 -1 -7439 7039 -1 -7040 7040 6 -7060 7040 -1 -7440 7040 -1 -7041 7041 6 -7042 7041 -1 -7061 7041 -1 -7441 7041 -1 -7042 7042 6 -7043 7042 -1 -7062 7042 -1 -7442 7042 -1 -7043 7043 6 -7044 7043 -1 -7063 7043 -1 -7443 7043 -1 -7044 7044 6 -7045 7044 -1 -7064 7044 -1 -7444 7044 -1 -7045 7045 6 -7046 7045 -1 -7065 7045 -1 -7445 7045 -1 -7046 7046 6 -7047 7046 -1 -7066 7046 -1 -7446 7046 -1 -7047 7047 6 -7048 7047 -1 -7067 7047 -1 -7447 7047 -1 -7048 7048 6 -7049 7048 -1 -7068 7048 -1 -7448 7048 -1 -7049 7049 6 -7050 7049 -1 -7069 7049 -1 -7449 7049 -1 -7050 7050 6 -7051 7050 -1 -7070 7050 -1 -7450 7050 -1 -7051 7051 6 -7052 7051 -1 -7071 7051 -1 -7451 7051 -1 -7052 7052 6 -7053 7052 -1 -7072 7052 -1 -7452 7052 -1 -7053 7053 6 -7054 7053 -1 -7073 7053 -1 -7453 7053 -1 -7054 7054 6 -7055 7054 -1 -7074 7054 -1 -7454 7054 -1 -7055 7055 6 -7056 7055 -1 -7075 7055 -1 -7455 7055 -1 -7056 7056 6 -7057 7056 -1 -7076 7056 -1 -7456 7056 -1 -7057 7057 6 -7058 7057 -1 -7077 7057 -1 -7457 7057 -1 -7058 7058 6 -7059 7058 -1 -7078 7058 -1 -7458 7058 -1 -7059 7059 6 -7060 7059 -1 -7079 7059 -1 -7459 7059 -1 -7060 7060 6 -7080 7060 -1 -7460 7060 -1 -7061 7061 6 -7062 7061 -1 -7081 7061 -1 -7461 7061 -1 -7062 7062 6 -7063 7062 -1 -7082 7062 -1 -7462 7062 -1 -7063 7063 6 -7064 7063 -1 -7083 7063 -1 -7463 7063 -1 -7064 7064 6 -7065 7064 -1 -7084 7064 -1 -7464 7064 -1 -7065 7065 6 -7066 7065 -1 -7085 7065 -1 -7465 7065 -1 -7066 7066 6 -7067 7066 -1 -7086 7066 -1 -7466 7066 -1 -7067 7067 6 -7068 7067 -1 -7087 7067 -1 -7467 7067 -1 -7068 7068 6 -7069 7068 -1 -7088 7068 -1 -7468 7068 -1 -7069 7069 6 -7070 7069 -1 -7089 7069 -1 -7469 7069 -1 -7070 7070 6 -7071 7070 -1 -7090 7070 -1 -7470 7070 -1 -7071 7071 6 -7072 7071 -1 -7091 7071 -1 -7471 7071 -1 -7072 7072 6 -7073 7072 -1 -7092 7072 -1 -7472 7072 -1 -7073 7073 6 -7074 7073 -1 -7093 7073 -1 -7473 7073 -1 -7074 7074 6 -7075 7074 -1 -7094 7074 -1 -7474 7074 -1 -7075 7075 6 -7076 7075 -1 -7095 7075 -1 -7475 7075 -1 -7076 7076 6 -7077 7076 -1 -7096 7076 -1 -7476 7076 -1 -7077 7077 6 -7078 7077 -1 -7097 7077 -1 -7477 7077 -1 -7078 7078 6 -7079 7078 -1 -7098 7078 -1 -7478 7078 -1 -7079 7079 6 -7080 7079 -1 -7099 7079 -1 -7479 7079 -1 -7080 7080 6 -7100 7080 -1 -7480 7080 -1 -7081 7081 6 -7082 7081 -1 -7101 7081 -1 -7481 7081 -1 -7082 7082 6 -7083 7082 -1 -7102 7082 -1 -7482 7082 -1 -7083 7083 6 -7084 7083 -1 -7103 7083 -1 -7483 7083 -1 -7084 7084 6 -7085 7084 -1 -7104 7084 -1 -7484 7084 -1 -7085 7085 6 -7086 7085 -1 -7105 7085 -1 -7485 7085 -1 -7086 7086 6 -7087 7086 -1 -7106 7086 -1 -7486 7086 -1 -7087 7087 6 -7088 7087 -1 -7107 7087 -1 -7487 7087 -1 -7088 7088 6 -7089 7088 -1 -7108 7088 -1 -7488 7088 -1 -7089 7089 6 -7090 7089 -1 -7109 7089 -1 -7489 7089 -1 -7090 7090 6 -7091 7090 -1 -7110 7090 -1 -7490 7090 -1 -7091 7091 6 -7092 7091 -1 -7111 7091 -1 -7491 7091 -1 -7092 7092 6 -7093 7092 -1 -7112 7092 -1 -7492 7092 -1 -7093 7093 6 -7094 7093 -1 -7113 7093 -1 -7493 7093 -1 -7094 7094 6 -7095 7094 -1 -7114 7094 -1 -7494 7094 -1 -7095 7095 6 -7096 7095 -1 -7115 7095 -1 -7495 7095 -1 -7096 7096 6 -7097 7096 -1 -7116 7096 -1 -7496 7096 -1 -7097 7097 6 -7098 7097 -1 -7117 7097 -1 -7497 7097 -1 -7098 7098 6 -7099 7098 -1 -7118 7098 -1 -7498 7098 -1 -7099 7099 6 -7100 7099 -1 -7119 7099 -1 -7499 7099 -1 -7100 7100 6 -7120 7100 -1 -7500 7100 -1 -7101 7101 6 -7102 7101 -1 -7121 7101 -1 -7501 7101 -1 -7102 7102 6 -7103 7102 -1 -7122 7102 -1 -7502 7102 -1 -7103 7103 6 -7104 7103 -1 -7123 7103 -1 -7503 7103 -1 -7104 7104 6 -7105 7104 -1 -7124 7104 -1 -7504 7104 -1 -7105 7105 6 -7106 7105 -1 -7125 7105 -1 -7505 7105 -1 -7106 7106 6 -7107 7106 -1 -7126 7106 -1 -7506 7106 -1 -7107 7107 6 -7108 7107 -1 -7127 7107 -1 -7507 7107 -1 -7108 7108 6 -7109 7108 -1 -7128 7108 -1 -7508 7108 -1 -7109 7109 6 -7110 7109 -1 -7129 7109 -1 -7509 7109 -1 -7110 7110 6 -7111 7110 -1 -7130 7110 -1 -7510 7110 -1 -7111 7111 6 -7112 7111 -1 -7131 7111 -1 -7511 7111 -1 -7112 7112 6 -7113 7112 -1 -7132 7112 -1 -7512 7112 -1 -7113 7113 6 -7114 7113 -1 -7133 7113 -1 -7513 7113 -1 -7114 7114 6 -7115 7114 -1 -7134 7114 -1 -7514 7114 -1 -7115 7115 6 -7116 7115 -1 -7135 7115 -1 -7515 7115 -1 -7116 7116 6 -7117 7116 -1 -7136 7116 -1 -7516 7116 -1 -7117 7117 6 -7118 7117 -1 -7137 7117 -1 -7517 7117 -1 -7118 7118 6 -7119 7118 -1 -7138 7118 -1 -7518 7118 -1 -7119 7119 6 -7120 7119 -1 -7139 7119 -1 -7519 7119 -1 -7120 7120 6 -7140 7120 -1 -7520 7120 -1 -7121 7121 6 -7122 7121 -1 -7141 7121 -1 -7521 7121 -1 -7122 7122 6 -7123 7122 -1 -7142 7122 -1 -7522 7122 -1 -7123 7123 6 -7124 7123 -1 -7143 7123 -1 -7523 7123 -1 -7124 7124 6 -7125 7124 -1 -7144 7124 -1 -7524 7124 -1 -7125 7125 6 -7126 7125 -1 -7145 7125 -1 -7525 7125 -1 -7126 7126 6 -7127 7126 -1 -7146 7126 -1 -7526 7126 -1 -7127 7127 6 -7128 7127 -1 -7147 7127 -1 -7527 7127 -1 -7128 7128 6 -7129 7128 -1 -7148 7128 -1 -7528 7128 -1 -7129 7129 6 -7130 7129 -1 -7149 7129 -1 -7529 7129 -1 -7130 7130 6 -7131 7130 -1 -7150 7130 -1 -7530 7130 -1 -7131 7131 6 -7132 7131 -1 -7151 7131 -1 -7531 7131 -1 -7132 7132 6 -7133 7132 -1 -7152 7132 -1 -7532 7132 -1 -7133 7133 6 -7134 7133 -1 -7153 7133 -1 -7533 7133 -1 -7134 7134 6 -7135 7134 -1 -7154 7134 -1 -7534 7134 -1 -7135 7135 6 -7136 7135 -1 -7155 7135 -1 -7535 7135 -1 -7136 7136 6 -7137 7136 -1 -7156 7136 -1 -7536 7136 -1 -7137 7137 6 -7138 7137 -1 -7157 7137 -1 -7537 7137 -1 -7138 7138 6 -7139 7138 -1 -7158 7138 -1 -7538 7138 -1 -7139 7139 6 -7140 7139 -1 -7159 7139 -1 -7539 7139 -1 -7140 7140 6 -7160 7140 -1 -7540 7140 -1 -7141 7141 6 -7142 7141 -1 -7161 7141 -1 -7541 7141 -1 -7142 7142 6 -7143 7142 -1 -7162 7142 -1 -7542 7142 -1 -7143 7143 6 -7144 7143 -1 -7163 7143 -1 -7543 7143 -1 -7144 7144 6 -7145 7144 -1 -7164 7144 -1 -7544 7144 -1 -7145 7145 6 -7146 7145 -1 -7165 7145 -1 -7545 7145 -1 -7146 7146 6 -7147 7146 -1 -7166 7146 -1 -7546 7146 -1 -7147 7147 6 -7148 7147 -1 -7167 7147 -1 -7547 7147 -1 -7148 7148 6 -7149 7148 -1 -7168 7148 -1 -7548 7148 -1 -7149 7149 6 -7150 7149 -1 -7169 7149 -1 -7549 7149 -1 -7150 7150 6 -7151 7150 -1 -7170 7150 -1 -7550 7150 -1 -7151 7151 6 -7152 7151 -1 -7171 7151 -1 -7551 7151 -1 -7152 7152 6 -7153 7152 -1 -7172 7152 -1 -7552 7152 -1 -7153 7153 6 -7154 7153 -1 -7173 7153 -1 -7553 7153 -1 -7154 7154 6 -7155 7154 -1 -7174 7154 -1 -7554 7154 -1 -7155 7155 6 -7156 7155 -1 -7175 7155 -1 -7555 7155 -1 -7156 7156 6 -7157 7156 -1 -7176 7156 -1 -7556 7156 -1 -7157 7157 6 -7158 7157 -1 -7177 7157 -1 -7557 7157 -1 -7158 7158 6 -7159 7158 -1 -7178 7158 -1 -7558 7158 -1 -7159 7159 6 -7160 7159 -1 -7179 7159 -1 -7559 7159 -1 -7160 7160 6 -7180 7160 -1 -7560 7160 -1 -7161 7161 6 -7162 7161 -1 -7181 7161 -1 -7561 7161 -1 -7162 7162 6 -7163 7162 -1 -7182 7162 -1 -7562 7162 -1 -7163 7163 6 -7164 7163 -1 -7183 7163 -1 -7563 7163 -1 -7164 7164 6 -7165 7164 -1 -7184 7164 -1 -7564 7164 -1 -7165 7165 6 -7166 7165 -1 -7185 7165 -1 -7565 7165 -1 -7166 7166 6 -7167 7166 -1 -7186 7166 -1 -7566 7166 -1 -7167 7167 6 -7168 7167 -1 -7187 7167 -1 -7567 7167 -1 -7168 7168 6 -7169 7168 -1 -7188 7168 -1 -7568 7168 -1 -7169 7169 6 -7170 7169 -1 -7189 7169 -1 -7569 7169 -1 -7170 7170 6 -7171 7170 -1 -7190 7170 -1 -7570 7170 -1 -7171 7171 6 -7172 7171 -1 -7191 7171 -1 -7571 7171 -1 -7172 7172 6 -7173 7172 -1 -7192 7172 -1 -7572 7172 -1 -7173 7173 6 -7174 7173 -1 -7193 7173 -1 -7573 7173 -1 -7174 7174 6 -7175 7174 -1 -7194 7174 -1 -7574 7174 -1 -7175 7175 6 -7176 7175 -1 -7195 7175 -1 -7575 7175 -1 -7176 7176 6 -7177 7176 -1 -7196 7176 -1 -7576 7176 -1 -7177 7177 6 -7178 7177 -1 -7197 7177 -1 -7577 7177 -1 -7178 7178 6 -7179 7178 -1 -7198 7178 -1 -7578 7178 -1 -7179 7179 6 -7180 7179 -1 -7199 7179 -1 -7579 7179 -1 -7180 7180 6 -7200 7180 -1 -7580 7180 -1 -7181 7181 6 -7182 7181 -1 -7581 7181 -1 -7182 7182 6 -7183 7182 -1 -7582 7182 -1 -7183 7183 6 -7184 7183 -1 -7583 7183 -1 -7184 7184 6 -7185 7184 -1 -7584 7184 -1 -7185 7185 6 -7186 7185 -1 -7585 7185 -1 -7186 7186 6 -7187 7186 -1 -7586 7186 -1 -7187 7187 6 -7188 7187 -1 -7587 7187 -1 -7188 7188 6 -7189 7188 -1 -7588 7188 -1 -7189 7189 6 -7190 7189 -1 -7589 7189 -1 -7190 7190 6 -7191 7190 -1 -7590 7190 -1 -7191 7191 6 -7192 7191 -1 -7591 7191 -1 -7192 7192 6 -7193 7192 -1 -7592 7192 -1 -7193 7193 6 -7194 7193 -1 -7593 7193 -1 -7194 7194 6 -7195 7194 -1 -7594 7194 -1 -7195 7195 6 -7196 7195 -1 -7595 7195 -1 -7196 7196 6 -7197 7196 -1 -7596 7196 -1 -7197 7197 6 -7198 7197 -1 -7597 7197 -1 -7198 7198 6 -7199 7198 -1 -7598 7198 -1 -7199 7199 6 -7200 7199 -1 -7599 7199 -1 -7200 7200 6 -7600 7200 -1 -7201 7201 6 -7202 7201 -1 -7221 7201 -1 -7601 7201 -1 -7202 7202 6 -7203 7202 -1 -7222 7202 -1 -7602 7202 -1 -7203 7203 6 -7204 7203 -1 -7223 7203 -1 -7603 7203 -1 -7204 7204 6 -7205 7204 -1 -7224 7204 -1 -7604 7204 -1 -7205 7205 6 -7206 7205 -1 -7225 7205 -1 -7605 7205 -1 -7206 7206 6 -7207 7206 -1 -7226 7206 -1 -7606 7206 -1 -7207 7207 6 -7208 7207 -1 -7227 7207 -1 -7607 7207 -1 -7208 7208 6 -7209 7208 -1 -7228 7208 -1 -7608 7208 -1 -7209 7209 6 -7210 7209 -1 -7229 7209 -1 -7609 7209 -1 -7210 7210 6 -7211 7210 -1 -7230 7210 -1 -7610 7210 -1 -7211 7211 6 -7212 7211 -1 -7231 7211 -1 -7611 7211 -1 -7212 7212 6 -7213 7212 -1 -7232 7212 -1 -7612 7212 -1 -7213 7213 6 -7214 7213 -1 -7233 7213 -1 -7613 7213 -1 -7214 7214 6 -7215 7214 -1 -7234 7214 -1 -7614 7214 -1 -7215 7215 6 -7216 7215 -1 -7235 7215 -1 -7615 7215 -1 -7216 7216 6 -7217 7216 -1 -7236 7216 -1 -7616 7216 -1 -7217 7217 6 -7218 7217 -1 -7237 7217 -1 -7617 7217 -1 -7218 7218 6 -7219 7218 -1 -7238 7218 -1 -7618 7218 -1 -7219 7219 6 -7220 7219 -1 -7239 7219 -1 -7619 7219 -1 -7220 7220 6 -7240 7220 -1 -7620 7220 -1 -7221 7221 6 -7222 7221 -1 -7241 7221 -1 -7621 7221 -1 -7222 7222 6 -7223 7222 -1 -7242 7222 -1 -7622 7222 -1 -7223 7223 6 -7224 7223 -1 -7243 7223 -1 -7623 7223 -1 -7224 7224 6 -7225 7224 -1 -7244 7224 -1 -7624 7224 -1 -7225 7225 6 -7226 7225 -1 -7245 7225 -1 -7625 7225 -1 -7226 7226 6 -7227 7226 -1 -7246 7226 -1 -7626 7226 -1 -7227 7227 6 -7228 7227 -1 -7247 7227 -1 -7627 7227 -1 -7228 7228 6 -7229 7228 -1 -7248 7228 -1 -7628 7228 -1 -7229 7229 6 -7230 7229 -1 -7249 7229 -1 -7629 7229 -1 -7230 7230 6 -7231 7230 -1 -7250 7230 -1 -7630 7230 -1 -7231 7231 6 -7232 7231 -1 -7251 7231 -1 -7631 7231 -1 -7232 7232 6 -7233 7232 -1 -7252 7232 -1 -7632 7232 -1 -7233 7233 6 -7234 7233 -1 -7253 7233 -1 -7633 7233 -1 -7234 7234 6 -7235 7234 -1 -7254 7234 -1 -7634 7234 -1 -7235 7235 6 -7236 7235 -1 -7255 7235 -1 -7635 7235 -1 -7236 7236 6 -7237 7236 -1 -7256 7236 -1 -7636 7236 -1 -7237 7237 6 -7238 7237 -1 -7257 7237 -1 -7637 7237 -1 -7238 7238 6 -7239 7238 -1 -7258 7238 -1 -7638 7238 -1 -7239 7239 6 -7240 7239 -1 -7259 7239 -1 -7639 7239 -1 -7240 7240 6 -7260 7240 -1 -7640 7240 -1 -7241 7241 6 -7242 7241 -1 -7261 7241 -1 -7641 7241 -1 -7242 7242 6 -7243 7242 -1 -7262 7242 -1 -7642 7242 -1 -7243 7243 6 -7244 7243 -1 -7263 7243 -1 -7643 7243 -1 -7244 7244 6 -7245 7244 -1 -7264 7244 -1 -7644 7244 -1 -7245 7245 6 -7246 7245 -1 -7265 7245 -1 -7645 7245 -1 -7246 7246 6 -7247 7246 -1 -7266 7246 -1 -7646 7246 -1 -7247 7247 6 -7248 7247 -1 -7267 7247 -1 -7647 7247 -1 -7248 7248 6 -7249 7248 -1 -7268 7248 -1 -7648 7248 -1 -7249 7249 6 -7250 7249 -1 -7269 7249 -1 -7649 7249 -1 -7250 7250 6 -7251 7250 -1 -7270 7250 -1 -7650 7250 -1 -7251 7251 6 -7252 7251 -1 -7271 7251 -1 -7651 7251 -1 -7252 7252 6 -7253 7252 -1 -7272 7252 -1 -7652 7252 -1 -7253 7253 6 -7254 7253 -1 -7273 7253 -1 -7653 7253 -1 -7254 7254 6 -7255 7254 -1 -7274 7254 -1 -7654 7254 -1 -7255 7255 6 -7256 7255 -1 -7275 7255 -1 -7655 7255 -1 -7256 7256 6 -7257 7256 -1 -7276 7256 -1 -7656 7256 -1 -7257 7257 6 -7258 7257 -1 -7277 7257 -1 -7657 7257 -1 -7258 7258 6 -7259 7258 -1 -7278 7258 -1 -7658 7258 -1 -7259 7259 6 -7260 7259 -1 -7279 7259 -1 -7659 7259 -1 -7260 7260 6 -7280 7260 -1 -7660 7260 -1 -7261 7261 6 -7262 7261 -1 -7281 7261 -1 -7661 7261 -1 -7262 7262 6 -7263 7262 -1 -7282 7262 -1 -7662 7262 -1 -7263 7263 6 -7264 7263 -1 -7283 7263 -1 -7663 7263 -1 -7264 7264 6 -7265 7264 -1 -7284 7264 -1 -7664 7264 -1 -7265 7265 6 -7266 7265 -1 -7285 7265 -1 -7665 7265 -1 -7266 7266 6 -7267 7266 -1 -7286 7266 -1 -7666 7266 -1 -7267 7267 6 -7268 7267 -1 -7287 7267 -1 -7667 7267 -1 -7268 7268 6 -7269 7268 -1 -7288 7268 -1 -7668 7268 -1 -7269 7269 6 -7270 7269 -1 -7289 7269 -1 -7669 7269 -1 -7270 7270 6 -7271 7270 -1 -7290 7270 -1 -7670 7270 -1 -7271 7271 6 -7272 7271 -1 -7291 7271 -1 -7671 7271 -1 -7272 7272 6 -7273 7272 -1 -7292 7272 -1 -7672 7272 -1 -7273 7273 6 -7274 7273 -1 -7293 7273 -1 -7673 7273 -1 -7274 7274 6 -7275 7274 -1 -7294 7274 -1 -7674 7274 -1 -7275 7275 6 -7276 7275 -1 -7295 7275 -1 -7675 7275 -1 -7276 7276 6 -7277 7276 -1 -7296 7276 -1 -7676 7276 -1 -7277 7277 6 -7278 7277 -1 -7297 7277 -1 -7677 7277 -1 -7278 7278 6 -7279 7278 -1 -7298 7278 -1 -7678 7278 -1 -7279 7279 6 -7280 7279 -1 -7299 7279 -1 -7679 7279 -1 -7280 7280 6 -7300 7280 -1 -7680 7280 -1 -7281 7281 6 -7282 7281 -1 -7301 7281 -1 -7681 7281 -1 -7282 7282 6 -7283 7282 -1 -7302 7282 -1 -7682 7282 -1 -7283 7283 6 -7284 7283 -1 -7303 7283 -1 -7683 7283 -1 -7284 7284 6 -7285 7284 -1 -7304 7284 -1 -7684 7284 -1 -7285 7285 6 -7286 7285 -1 -7305 7285 -1 -7685 7285 -1 -7286 7286 6 -7287 7286 -1 -7306 7286 -1 -7686 7286 -1 -7287 7287 6 -7288 7287 -1 -7307 7287 -1 -7687 7287 -1 -7288 7288 6 -7289 7288 -1 -7308 7288 -1 -7688 7288 -1 -7289 7289 6 -7290 7289 -1 -7309 7289 -1 -7689 7289 -1 -7290 7290 6 -7291 7290 -1 -7310 7290 -1 -7690 7290 -1 -7291 7291 6 -7292 7291 -1 -7311 7291 -1 -7691 7291 -1 -7292 7292 6 -7293 7292 -1 -7312 7292 -1 -7692 7292 -1 -7293 7293 6 -7294 7293 -1 -7313 7293 -1 -7693 7293 -1 -7294 7294 6 -7295 7294 -1 -7314 7294 -1 -7694 7294 -1 -7295 7295 6 -7296 7295 -1 -7315 7295 -1 -7695 7295 -1 -7296 7296 6 -7297 7296 -1 -7316 7296 -1 -7696 7296 -1 -7297 7297 6 -7298 7297 -1 -7317 7297 -1 -7697 7297 -1 -7298 7298 6 -7299 7298 -1 -7318 7298 -1 -7698 7298 -1 -7299 7299 6 -7300 7299 -1 -7319 7299 -1 -7699 7299 -1 -7300 7300 6 -7320 7300 -1 -7700 7300 -1 -7301 7301 6 -7302 7301 -1 -7321 7301 -1 -7701 7301 -1 -7302 7302 6 -7303 7302 -1 -7322 7302 -1 -7702 7302 -1 -7303 7303 6 -7304 7303 -1 -7323 7303 -1 -7703 7303 -1 -7304 7304 6 -7305 7304 -1 -7324 7304 -1 -7704 7304 -1 -7305 7305 6 -7306 7305 -1 -7325 7305 -1 -7705 7305 -1 -7306 7306 6 -7307 7306 -1 -7326 7306 -1 -7706 7306 -1 -7307 7307 6 -7308 7307 -1 -7327 7307 -1 -7707 7307 -1 -7308 7308 6 -7309 7308 -1 -7328 7308 -1 -7708 7308 -1 -7309 7309 6 -7310 7309 -1 -7329 7309 -1 -7709 7309 -1 -7310 7310 6 -7311 7310 -1 -7330 7310 -1 -7710 7310 -1 -7311 7311 6 -7312 7311 -1 -7331 7311 -1 -7711 7311 -1 -7312 7312 6 -7313 7312 -1 -7332 7312 -1 -7712 7312 -1 -7313 7313 6 -7314 7313 -1 -7333 7313 -1 -7713 7313 -1 -7314 7314 6 -7315 7314 -1 -7334 7314 -1 -7714 7314 -1 -7315 7315 6 -7316 7315 -1 -7335 7315 -1 -7715 7315 -1 -7316 7316 6 -7317 7316 -1 -7336 7316 -1 -7716 7316 -1 -7317 7317 6 -7318 7317 -1 -7337 7317 -1 -7717 7317 -1 -7318 7318 6 -7319 7318 -1 -7338 7318 -1 -7718 7318 -1 -7319 7319 6 -7320 7319 -1 -7339 7319 -1 -7719 7319 -1 -7320 7320 6 -7340 7320 -1 -7720 7320 -1 -7321 7321 6 -7322 7321 -1 -7341 7321 -1 -7721 7321 -1 -7322 7322 6 -7323 7322 -1 -7342 7322 -1 -7722 7322 -1 -7323 7323 6 -7324 7323 -1 -7343 7323 -1 -7723 7323 -1 -7324 7324 6 -7325 7324 -1 -7344 7324 -1 -7724 7324 -1 -7325 7325 6 -7326 7325 -1 -7345 7325 -1 -7725 7325 -1 -7326 7326 6 -7327 7326 -1 -7346 7326 -1 -7726 7326 -1 -7327 7327 6 -7328 7327 -1 -7347 7327 -1 -7727 7327 -1 -7328 7328 6 -7329 7328 -1 -7348 7328 -1 -7728 7328 -1 -7329 7329 6 -7330 7329 -1 -7349 7329 -1 -7729 7329 -1 -7330 7330 6 -7331 7330 -1 -7350 7330 -1 -7730 7330 -1 -7331 7331 6 -7332 7331 -1 -7351 7331 -1 -7731 7331 -1 -7332 7332 6 -7333 7332 -1 -7352 7332 -1 -7732 7332 -1 -7333 7333 6 -7334 7333 -1 -7353 7333 -1 -7733 7333 -1 -7334 7334 6 -7335 7334 -1 -7354 7334 -1 -7734 7334 -1 -7335 7335 6 -7336 7335 -1 -7355 7335 -1 -7735 7335 -1 -7336 7336 6 -7337 7336 -1 -7356 7336 -1 -7736 7336 -1 -7337 7337 6 -7338 7337 -1 -7357 7337 -1 -7737 7337 -1 -7338 7338 6 -7339 7338 -1 -7358 7338 -1 -7738 7338 -1 -7339 7339 6 -7340 7339 -1 -7359 7339 -1 -7739 7339 -1 -7340 7340 6 -7360 7340 -1 -7740 7340 -1 -7341 7341 6 -7342 7341 -1 -7361 7341 -1 -7741 7341 -1 -7342 7342 6 -7343 7342 -1 -7362 7342 -1 -7742 7342 -1 -7343 7343 6 -7344 7343 -1 -7363 7343 -1 -7743 7343 -1 -7344 7344 6 -7345 7344 -1 -7364 7344 -1 -7744 7344 -1 -7345 7345 6 -7346 7345 -1 -7365 7345 -1 -7745 7345 -1 -7346 7346 6 -7347 7346 -1 -7366 7346 -1 -7746 7346 -1 -7347 7347 6 -7348 7347 -1 -7367 7347 -1 -7747 7347 -1 -7348 7348 6 -7349 7348 -1 -7368 7348 -1 -7748 7348 -1 -7349 7349 6 -7350 7349 -1 -7369 7349 -1 -7749 7349 -1 -7350 7350 6 -7351 7350 -1 -7370 7350 -1 -7750 7350 -1 -7351 7351 6 -7352 7351 -1 -7371 7351 -1 -7751 7351 -1 -7352 7352 6 -7353 7352 -1 -7372 7352 -1 -7752 7352 -1 -7353 7353 6 -7354 7353 -1 -7373 7353 -1 -7753 7353 -1 -7354 7354 6 -7355 7354 -1 -7374 7354 -1 -7754 7354 -1 -7355 7355 6 -7356 7355 -1 -7375 7355 -1 -7755 7355 -1 -7356 7356 6 -7357 7356 -1 -7376 7356 -1 -7756 7356 -1 -7357 7357 6 -7358 7357 -1 -7377 7357 -1 -7757 7357 -1 -7358 7358 6 -7359 7358 -1 -7378 7358 -1 -7758 7358 -1 -7359 7359 6 -7360 7359 -1 -7379 7359 -1 -7759 7359 -1 -7360 7360 6 -7380 7360 -1 -7760 7360 -1 -7361 7361 6 -7362 7361 -1 -7381 7361 -1 -7761 7361 -1 -7362 7362 6 -7363 7362 -1 -7382 7362 -1 -7762 7362 -1 -7363 7363 6 -7364 7363 -1 -7383 7363 -1 -7763 7363 -1 -7364 7364 6 -7365 7364 -1 -7384 7364 -1 -7764 7364 -1 -7365 7365 6 -7366 7365 -1 -7385 7365 -1 -7765 7365 -1 -7366 7366 6 -7367 7366 -1 -7386 7366 -1 -7766 7366 -1 -7367 7367 6 -7368 7367 -1 -7387 7367 -1 -7767 7367 -1 -7368 7368 6 -7369 7368 -1 -7388 7368 -1 -7768 7368 -1 -7369 7369 6 -7370 7369 -1 -7389 7369 -1 -7769 7369 -1 -7370 7370 6 -7371 7370 -1 -7390 7370 -1 -7770 7370 -1 -7371 7371 6 -7372 7371 -1 -7391 7371 -1 -7771 7371 -1 -7372 7372 6 -7373 7372 -1 -7392 7372 -1 -7772 7372 -1 -7373 7373 6 -7374 7373 -1 -7393 7373 -1 -7773 7373 -1 -7374 7374 6 -7375 7374 -1 -7394 7374 -1 -7774 7374 -1 -7375 7375 6 -7376 7375 -1 -7395 7375 -1 -7775 7375 -1 -7376 7376 6 -7377 7376 -1 -7396 7376 -1 -7776 7376 -1 -7377 7377 6 -7378 7377 -1 -7397 7377 -1 -7777 7377 -1 -7378 7378 6 -7379 7378 -1 -7398 7378 -1 -7778 7378 -1 -7379 7379 6 -7380 7379 -1 -7399 7379 -1 -7779 7379 -1 -7380 7380 6 -7400 7380 -1 -7780 7380 -1 -7381 7381 6 -7382 7381 -1 -7401 7381 -1 -7781 7381 -1 -7382 7382 6 -7383 7382 -1 -7402 7382 -1 -7782 7382 -1 -7383 7383 6 -7384 7383 -1 -7403 7383 -1 -7783 7383 -1 -7384 7384 6 -7385 7384 -1 -7404 7384 -1 -7784 7384 -1 -7385 7385 6 -7386 7385 -1 -7405 7385 -1 -7785 7385 -1 -7386 7386 6 -7387 7386 -1 -7406 7386 -1 -7786 7386 -1 -7387 7387 6 -7388 7387 -1 -7407 7387 -1 -7787 7387 -1 -7388 7388 6 -7389 7388 -1 -7408 7388 -1 -7788 7388 -1 -7389 7389 6 -7390 7389 -1 -7409 7389 -1 -7789 7389 -1 -7390 7390 6 -7391 7390 -1 -7410 7390 -1 -7790 7390 -1 -7391 7391 6 -7392 7391 -1 -7411 7391 -1 -7791 7391 -1 -7392 7392 6 -7393 7392 -1 -7412 7392 -1 -7792 7392 -1 -7393 7393 6 -7394 7393 -1 -7413 7393 -1 -7793 7393 -1 -7394 7394 6 -7395 7394 -1 -7414 7394 -1 -7794 7394 -1 -7395 7395 6 -7396 7395 -1 -7415 7395 -1 -7795 7395 -1 -7396 7396 6 -7397 7396 -1 -7416 7396 -1 -7796 7396 -1 -7397 7397 6 -7398 7397 -1 -7417 7397 -1 -7797 7397 -1 -7398 7398 6 -7399 7398 -1 -7418 7398 -1 -7798 7398 -1 -7399 7399 6 -7400 7399 -1 -7419 7399 -1 -7799 7399 -1 -7400 7400 6 -7420 7400 -1 -7800 7400 -1 -7401 7401 6 -7402 7401 -1 -7421 7401 -1 -7801 7401 -1 -7402 7402 6 -7403 7402 -1 -7422 7402 -1 -7802 7402 -1 -7403 7403 6 -7404 7403 -1 -7423 7403 -1 -7803 7403 -1 -7404 7404 6 -7405 7404 -1 -7424 7404 -1 -7804 7404 -1 -7405 7405 6 -7406 7405 -1 -7425 7405 -1 -7805 7405 -1 -7406 7406 6 -7407 7406 -1 -7426 7406 -1 -7806 7406 -1 -7407 7407 6 -7408 7407 -1 -7427 7407 -1 -7807 7407 -1 -7408 7408 6 -7409 7408 -1 -7428 7408 -1 -7808 7408 -1 -7409 7409 6 -7410 7409 -1 -7429 7409 -1 -7809 7409 -1 -7410 7410 6 -7411 7410 -1 -7430 7410 -1 -7810 7410 -1 -7411 7411 6 -7412 7411 -1 -7431 7411 -1 -7811 7411 -1 -7412 7412 6 -7413 7412 -1 -7432 7412 -1 -7812 7412 -1 -7413 7413 6 -7414 7413 -1 -7433 7413 -1 -7813 7413 -1 -7414 7414 6 -7415 7414 -1 -7434 7414 -1 -7814 7414 -1 -7415 7415 6 -7416 7415 -1 -7435 7415 -1 -7815 7415 -1 -7416 7416 6 -7417 7416 -1 -7436 7416 -1 -7816 7416 -1 -7417 7417 6 -7418 7417 -1 -7437 7417 -1 -7817 7417 -1 -7418 7418 6 -7419 7418 -1 -7438 7418 -1 -7818 7418 -1 -7419 7419 6 -7420 7419 -1 -7439 7419 -1 -7819 7419 -1 -7420 7420 6 -7440 7420 -1 -7820 7420 -1 -7421 7421 6 -7422 7421 -1 -7441 7421 -1 -7821 7421 -1 -7422 7422 6 -7423 7422 -1 -7442 7422 -1 -7822 7422 -1 -7423 7423 6 -7424 7423 -1 -7443 7423 -1 -7823 7423 -1 -7424 7424 6 -7425 7424 -1 -7444 7424 -1 -7824 7424 -1 -7425 7425 6 -7426 7425 -1 -7445 7425 -1 -7825 7425 -1 -7426 7426 6 -7427 7426 -1 -7446 7426 -1 -7826 7426 -1 -7427 7427 6 -7428 7427 -1 -7447 7427 -1 -7827 7427 -1 -7428 7428 6 -7429 7428 -1 -7448 7428 -1 -7828 7428 -1 -7429 7429 6 -7430 7429 -1 -7449 7429 -1 -7829 7429 -1 -7430 7430 6 -7431 7430 -1 -7450 7430 -1 -7830 7430 -1 -7431 7431 6 -7432 7431 -1 -7451 7431 -1 -7831 7431 -1 -7432 7432 6 -7433 7432 -1 -7452 7432 -1 -7832 7432 -1 -7433 7433 6 -7434 7433 -1 -7453 7433 -1 -7833 7433 -1 -7434 7434 6 -7435 7434 -1 -7454 7434 -1 -7834 7434 -1 -7435 7435 6 -7436 7435 -1 -7455 7435 -1 -7835 7435 -1 -7436 7436 6 -7437 7436 -1 -7456 7436 -1 -7836 7436 -1 -7437 7437 6 -7438 7437 -1 -7457 7437 -1 -7837 7437 -1 -7438 7438 6 -7439 7438 -1 -7458 7438 -1 -7838 7438 -1 -7439 7439 6 -7440 7439 -1 -7459 7439 -1 -7839 7439 -1 -7440 7440 6 -7460 7440 -1 -7840 7440 -1 -7441 7441 6 -7442 7441 -1 -7461 7441 -1 -7841 7441 -1 -7442 7442 6 -7443 7442 -1 -7462 7442 -1 -7842 7442 -1 -7443 7443 6 -7444 7443 -1 -7463 7443 -1 -7843 7443 -1 -7444 7444 6 -7445 7444 -1 -7464 7444 -1 -7844 7444 -1 -7445 7445 6 -7446 7445 -1 -7465 7445 -1 -7845 7445 -1 -7446 7446 6 -7447 7446 -1 -7466 7446 -1 -7846 7446 -1 -7447 7447 6 -7448 7447 -1 -7467 7447 -1 -7847 7447 -1 -7448 7448 6 -7449 7448 -1 -7468 7448 -1 -7848 7448 -1 -7449 7449 6 -7450 7449 -1 -7469 7449 -1 -7849 7449 -1 -7450 7450 6 -7451 7450 -1 -7470 7450 -1 -7850 7450 -1 -7451 7451 6 -7452 7451 -1 -7471 7451 -1 -7851 7451 -1 -7452 7452 6 -7453 7452 -1 -7472 7452 -1 -7852 7452 -1 -7453 7453 6 -7454 7453 -1 -7473 7453 -1 -7853 7453 -1 -7454 7454 6 -7455 7454 -1 -7474 7454 -1 -7854 7454 -1 -7455 7455 6 -7456 7455 -1 -7475 7455 -1 -7855 7455 -1 -7456 7456 6 -7457 7456 -1 -7476 7456 -1 -7856 7456 -1 -7457 7457 6 -7458 7457 -1 -7477 7457 -1 -7857 7457 -1 -7458 7458 6 -7459 7458 -1 -7478 7458 -1 -7858 7458 -1 -7459 7459 6 -7460 7459 -1 -7479 7459 -1 -7859 7459 -1 -7460 7460 6 -7480 7460 -1 -7860 7460 -1 -7461 7461 6 -7462 7461 -1 -7481 7461 -1 -7861 7461 -1 -7462 7462 6 -7463 7462 -1 -7482 7462 -1 -7862 7462 -1 -7463 7463 6 -7464 7463 -1 -7483 7463 -1 -7863 7463 -1 -7464 7464 6 -7465 7464 -1 -7484 7464 -1 -7864 7464 -1 -7465 7465 6 -7466 7465 -1 -7485 7465 -1 -7865 7465 -1 -7466 7466 6 -7467 7466 -1 -7486 7466 -1 -7866 7466 -1 -7467 7467 6 -7468 7467 -1 -7487 7467 -1 -7867 7467 -1 -7468 7468 6 -7469 7468 -1 -7488 7468 -1 -7868 7468 -1 -7469 7469 6 -7470 7469 -1 -7489 7469 -1 -7869 7469 -1 -7470 7470 6 -7471 7470 -1 -7490 7470 -1 -7870 7470 -1 -7471 7471 6 -7472 7471 -1 -7491 7471 -1 -7871 7471 -1 -7472 7472 6 -7473 7472 -1 -7492 7472 -1 -7872 7472 -1 -7473 7473 6 -7474 7473 -1 -7493 7473 -1 -7873 7473 -1 -7474 7474 6 -7475 7474 -1 -7494 7474 -1 -7874 7474 -1 -7475 7475 6 -7476 7475 -1 -7495 7475 -1 -7875 7475 -1 -7476 7476 6 -7477 7476 -1 -7496 7476 -1 -7876 7476 -1 -7477 7477 6 -7478 7477 -1 -7497 7477 -1 -7877 7477 -1 -7478 7478 6 -7479 7478 -1 -7498 7478 -1 -7878 7478 -1 -7479 7479 6 -7480 7479 -1 -7499 7479 -1 -7879 7479 -1 -7480 7480 6 -7500 7480 -1 -7880 7480 -1 -7481 7481 6 -7482 7481 -1 -7501 7481 -1 -7881 7481 -1 -7482 7482 6 -7483 7482 -1 -7502 7482 -1 -7882 7482 -1 -7483 7483 6 -7484 7483 -1 -7503 7483 -1 -7883 7483 -1 -7484 7484 6 -7485 7484 -1 -7504 7484 -1 -7884 7484 -1 -7485 7485 6 -7486 7485 -1 -7505 7485 -1 -7885 7485 -1 -7486 7486 6 -7487 7486 -1 -7506 7486 -1 -7886 7486 -1 -7487 7487 6 -7488 7487 -1 -7507 7487 -1 -7887 7487 -1 -7488 7488 6 -7489 7488 -1 -7508 7488 -1 -7888 7488 -1 -7489 7489 6 -7490 7489 -1 -7509 7489 -1 -7889 7489 -1 -7490 7490 6 -7491 7490 -1 -7510 7490 -1 -7890 7490 -1 -7491 7491 6 -7492 7491 -1 -7511 7491 -1 -7891 7491 -1 -7492 7492 6 -7493 7492 -1 -7512 7492 -1 -7892 7492 -1 -7493 7493 6 -7494 7493 -1 -7513 7493 -1 -7893 7493 -1 -7494 7494 6 -7495 7494 -1 -7514 7494 -1 -7894 7494 -1 -7495 7495 6 -7496 7495 -1 -7515 7495 -1 -7895 7495 -1 -7496 7496 6 -7497 7496 -1 -7516 7496 -1 -7896 7496 -1 -7497 7497 6 -7498 7497 -1 -7517 7497 -1 -7897 7497 -1 -7498 7498 6 -7499 7498 -1 -7518 7498 -1 -7898 7498 -1 -7499 7499 6 -7500 7499 -1 -7519 7499 -1 -7899 7499 -1 -7500 7500 6 -7520 7500 -1 -7900 7500 -1 -7501 7501 6 -7502 7501 -1 -7521 7501 -1 -7901 7501 -1 -7502 7502 6 -7503 7502 -1 -7522 7502 -1 -7902 7502 -1 -7503 7503 6 -7504 7503 -1 -7523 7503 -1 -7903 7503 -1 -7504 7504 6 -7505 7504 -1 -7524 7504 -1 -7904 7504 -1 -7505 7505 6 -7506 7505 -1 -7525 7505 -1 -7905 7505 -1 -7506 7506 6 -7507 7506 -1 -7526 7506 -1 -7906 7506 -1 -7507 7507 6 -7508 7507 -1 -7527 7507 -1 -7907 7507 -1 -7508 7508 6 -7509 7508 -1 -7528 7508 -1 -7908 7508 -1 -7509 7509 6 -7510 7509 -1 -7529 7509 -1 -7909 7509 -1 -7510 7510 6 -7511 7510 -1 -7530 7510 -1 -7910 7510 -1 -7511 7511 6 -7512 7511 -1 -7531 7511 -1 -7911 7511 -1 -7512 7512 6 -7513 7512 -1 -7532 7512 -1 -7912 7512 -1 -7513 7513 6 -7514 7513 -1 -7533 7513 -1 -7913 7513 -1 -7514 7514 6 -7515 7514 -1 -7534 7514 -1 -7914 7514 -1 -7515 7515 6 -7516 7515 -1 -7535 7515 -1 -7915 7515 -1 -7516 7516 6 -7517 7516 -1 -7536 7516 -1 -7916 7516 -1 -7517 7517 6 -7518 7517 -1 -7537 7517 -1 -7917 7517 -1 -7518 7518 6 -7519 7518 -1 -7538 7518 -1 -7918 7518 -1 -7519 7519 6 -7520 7519 -1 -7539 7519 -1 -7919 7519 -1 -7520 7520 6 -7540 7520 -1 -7920 7520 -1 -7521 7521 6 -7522 7521 -1 -7541 7521 -1 -7921 7521 -1 -7522 7522 6 -7523 7522 -1 -7542 7522 -1 -7922 7522 -1 -7523 7523 6 -7524 7523 -1 -7543 7523 -1 -7923 7523 -1 -7524 7524 6 -7525 7524 -1 -7544 7524 -1 -7924 7524 -1 -7525 7525 6 -7526 7525 -1 -7545 7525 -1 -7925 7525 -1 -7526 7526 6 -7527 7526 -1 -7546 7526 -1 -7926 7526 -1 -7527 7527 6 -7528 7527 -1 -7547 7527 -1 -7927 7527 -1 -7528 7528 6 -7529 7528 -1 -7548 7528 -1 -7928 7528 -1 -7529 7529 6 -7530 7529 -1 -7549 7529 -1 -7929 7529 -1 -7530 7530 6 -7531 7530 -1 -7550 7530 -1 -7930 7530 -1 -7531 7531 6 -7532 7531 -1 -7551 7531 -1 -7931 7531 -1 -7532 7532 6 -7533 7532 -1 -7552 7532 -1 -7932 7532 -1 -7533 7533 6 -7534 7533 -1 -7553 7533 -1 -7933 7533 -1 -7534 7534 6 -7535 7534 -1 -7554 7534 -1 -7934 7534 -1 -7535 7535 6 -7536 7535 -1 -7555 7535 -1 -7935 7535 -1 -7536 7536 6 -7537 7536 -1 -7556 7536 -1 -7936 7536 -1 -7537 7537 6 -7538 7537 -1 -7557 7537 -1 -7937 7537 -1 -7538 7538 6 -7539 7538 -1 -7558 7538 -1 -7938 7538 -1 -7539 7539 6 -7540 7539 -1 -7559 7539 -1 -7939 7539 -1 -7540 7540 6 -7560 7540 -1 -7940 7540 -1 -7541 7541 6 -7542 7541 -1 -7561 7541 -1 -7941 7541 -1 -7542 7542 6 -7543 7542 -1 -7562 7542 -1 -7942 7542 -1 -7543 7543 6 -7544 7543 -1 -7563 7543 -1 -7943 7543 -1 -7544 7544 6 -7545 7544 -1 -7564 7544 -1 -7944 7544 -1 -7545 7545 6 -7546 7545 -1 -7565 7545 -1 -7945 7545 -1 -7546 7546 6 -7547 7546 -1 -7566 7546 -1 -7946 7546 -1 -7547 7547 6 -7548 7547 -1 -7567 7547 -1 -7947 7547 -1 -7548 7548 6 -7549 7548 -1 -7568 7548 -1 -7948 7548 -1 -7549 7549 6 -7550 7549 -1 -7569 7549 -1 -7949 7549 -1 -7550 7550 6 -7551 7550 -1 -7570 7550 -1 -7950 7550 -1 -7551 7551 6 -7552 7551 -1 -7571 7551 -1 -7951 7551 -1 -7552 7552 6 -7553 7552 -1 -7572 7552 -1 -7952 7552 -1 -7553 7553 6 -7554 7553 -1 -7573 7553 -1 -7953 7553 -1 -7554 7554 6 -7555 7554 -1 -7574 7554 -1 -7954 7554 -1 -7555 7555 6 -7556 7555 -1 -7575 7555 -1 -7955 7555 -1 -7556 7556 6 -7557 7556 -1 -7576 7556 -1 -7956 7556 -1 -7557 7557 6 -7558 7557 -1 -7577 7557 -1 -7957 7557 -1 -7558 7558 6 -7559 7558 -1 -7578 7558 -1 -7958 7558 -1 -7559 7559 6 -7560 7559 -1 -7579 7559 -1 -7959 7559 -1 -7560 7560 6 -7580 7560 -1 -7960 7560 -1 -7561 7561 6 -7562 7561 -1 -7581 7561 -1 -7961 7561 -1 -7562 7562 6 -7563 7562 -1 -7582 7562 -1 -7962 7562 -1 -7563 7563 6 -7564 7563 -1 -7583 7563 -1 -7963 7563 -1 -7564 7564 6 -7565 7564 -1 -7584 7564 -1 -7964 7564 -1 -7565 7565 6 -7566 7565 -1 -7585 7565 -1 -7965 7565 -1 -7566 7566 6 -7567 7566 -1 -7586 7566 -1 -7966 7566 -1 -7567 7567 6 -7568 7567 -1 -7587 7567 -1 -7967 7567 -1 -7568 7568 6 -7569 7568 -1 -7588 7568 -1 -7968 7568 -1 -7569 7569 6 -7570 7569 -1 -7589 7569 -1 -7969 7569 -1 -7570 7570 6 -7571 7570 -1 -7590 7570 -1 -7970 7570 -1 -7571 7571 6 -7572 7571 -1 -7591 7571 -1 -7971 7571 -1 -7572 7572 6 -7573 7572 -1 -7592 7572 -1 -7972 7572 -1 -7573 7573 6 -7574 7573 -1 -7593 7573 -1 -7973 7573 -1 -7574 7574 6 -7575 7574 -1 -7594 7574 -1 -7974 7574 -1 -7575 7575 6 -7576 7575 -1 -7595 7575 -1 -7975 7575 -1 -7576 7576 6 -7577 7576 -1 -7596 7576 -1 -7976 7576 -1 -7577 7577 6 -7578 7577 -1 -7597 7577 -1 -7977 7577 -1 -7578 7578 6 -7579 7578 -1 -7598 7578 -1 -7978 7578 -1 -7579 7579 6 -7580 7579 -1 -7599 7579 -1 -7979 7579 -1 -7580 7580 6 -7600 7580 -1 -7980 7580 -1 -7581 7581 6 -7582 7581 -1 -7981 7581 -1 -7582 7582 6 -7583 7582 -1 -7982 7582 -1 -7583 7583 6 -7584 7583 -1 -7983 7583 -1 -7584 7584 6 -7585 7584 -1 -7984 7584 -1 -7585 7585 6 -7586 7585 -1 -7985 7585 -1 -7586 7586 6 -7587 7586 -1 -7986 7586 -1 -7587 7587 6 -7588 7587 -1 -7987 7587 -1 -7588 7588 6 -7589 7588 -1 -7988 7588 -1 -7589 7589 6 -7590 7589 -1 -7989 7589 -1 -7590 7590 6 -7591 7590 -1 -7990 7590 -1 -7591 7591 6 -7592 7591 -1 -7991 7591 -1 -7592 7592 6 -7593 7592 -1 -7992 7592 -1 -7593 7593 6 -7594 7593 -1 -7993 7593 -1 -7594 7594 6 -7595 7594 -1 -7994 7594 -1 -7595 7595 6 -7596 7595 -1 -7995 7595 -1 -7596 7596 6 -7597 7596 -1 -7996 7596 -1 -7597 7597 6 -7598 7597 -1 -7997 7597 -1 -7598 7598 6 -7599 7598 -1 -7998 7598 -1 -7599 7599 6 -7600 7599 -1 -7999 7599 -1 -7600 7600 6 -8000 7600 -1 -7601 7601 6 -7602 7601 -1 -7621 7601 -1 -7602 7602 6 -7603 7602 -1 -7622 7602 -1 -7603 7603 6 -7604 7603 -1 -7623 7603 -1 -7604 7604 6 -7605 7604 -1 -7624 7604 -1 -7605 7605 6 -7606 7605 -1 -7625 7605 -1 -7606 7606 6 -7607 7606 -1 -7626 7606 -1 -7607 7607 6 -7608 7607 -1 -7627 7607 -1 -7608 7608 6 -7609 7608 -1 -7628 7608 -1 -7609 7609 6 -7610 7609 -1 -7629 7609 -1 -7610 7610 6 -7611 7610 -1 -7630 7610 -1 -7611 7611 6 -7612 7611 -1 -7631 7611 -1 -7612 7612 6 -7613 7612 -1 -7632 7612 -1 -7613 7613 6 -7614 7613 -1 -7633 7613 -1 -7614 7614 6 -7615 7614 -1 -7634 7614 -1 -7615 7615 6 -7616 7615 -1 -7635 7615 -1 -7616 7616 6 -7617 7616 -1 -7636 7616 -1 -7617 7617 6 -7618 7617 -1 -7637 7617 -1 -7618 7618 6 -7619 7618 -1 -7638 7618 -1 -7619 7619 6 -7620 7619 -1 -7639 7619 -1 -7620 7620 6 -7640 7620 -1 -7621 7621 6 -7622 7621 -1 -7641 7621 -1 -7622 7622 6 -7623 7622 -1 -7642 7622 -1 -7623 7623 6 -7624 7623 -1 -7643 7623 -1 -7624 7624 6 -7625 7624 -1 -7644 7624 -1 -7625 7625 6 -7626 7625 -1 -7645 7625 -1 -7626 7626 6 -7627 7626 -1 -7646 7626 -1 -7627 7627 6 -7628 7627 -1 -7647 7627 -1 -7628 7628 6 -7629 7628 -1 -7648 7628 -1 -7629 7629 6 -7630 7629 -1 -7649 7629 -1 -7630 7630 6 -7631 7630 -1 -7650 7630 -1 -7631 7631 6 -7632 7631 -1 -7651 7631 -1 -7632 7632 6 -7633 7632 -1 -7652 7632 -1 -7633 7633 6 -7634 7633 -1 -7653 7633 -1 -7634 7634 6 -7635 7634 -1 -7654 7634 -1 -7635 7635 6 -7636 7635 -1 -7655 7635 -1 -7636 7636 6 -7637 7636 -1 -7656 7636 -1 -7637 7637 6 -7638 7637 -1 -7657 7637 -1 -7638 7638 6 -7639 7638 -1 -7658 7638 -1 -7639 7639 6 -7640 7639 -1 -7659 7639 -1 -7640 7640 6 -7660 7640 -1 -7641 7641 6 -7642 7641 -1 -7661 7641 -1 -7642 7642 6 -7643 7642 -1 -7662 7642 -1 -7643 7643 6 -7644 7643 -1 -7663 7643 -1 -7644 7644 6 -7645 7644 -1 -7664 7644 -1 -7645 7645 6 -7646 7645 -1 -7665 7645 -1 -7646 7646 6 -7647 7646 -1 -7666 7646 -1 -7647 7647 6 -7648 7647 -1 -7667 7647 -1 -7648 7648 6 -7649 7648 -1 -7668 7648 -1 -7649 7649 6 -7650 7649 -1 -7669 7649 -1 -7650 7650 6 -7651 7650 -1 -7670 7650 -1 -7651 7651 6 -7652 7651 -1 -7671 7651 -1 -7652 7652 6 -7653 7652 -1 -7672 7652 -1 -7653 7653 6 -7654 7653 -1 -7673 7653 -1 -7654 7654 6 -7655 7654 -1 -7674 7654 -1 -7655 7655 6 -7656 7655 -1 -7675 7655 -1 -7656 7656 6 -7657 7656 -1 -7676 7656 -1 -7657 7657 6 -7658 7657 -1 -7677 7657 -1 -7658 7658 6 -7659 7658 -1 -7678 7658 -1 -7659 7659 6 -7660 7659 -1 -7679 7659 -1 -7660 7660 6 -7680 7660 -1 -7661 7661 6 -7662 7661 -1 -7681 7661 -1 -7662 7662 6 -7663 7662 -1 -7682 7662 -1 -7663 7663 6 -7664 7663 -1 -7683 7663 -1 -7664 7664 6 -7665 7664 -1 -7684 7664 -1 -7665 7665 6 -7666 7665 -1 -7685 7665 -1 -7666 7666 6 -7667 7666 -1 -7686 7666 -1 -7667 7667 6 -7668 7667 -1 -7687 7667 -1 -7668 7668 6 -7669 7668 -1 -7688 7668 -1 -7669 7669 6 -7670 7669 -1 -7689 7669 -1 -7670 7670 6 -7671 7670 -1 -7690 7670 -1 -7671 7671 6 -7672 7671 -1 -7691 7671 -1 -7672 7672 6 -7673 7672 -1 -7692 7672 -1 -7673 7673 6 -7674 7673 -1 -7693 7673 -1 -7674 7674 6 -7675 7674 -1 -7694 7674 -1 -7675 7675 6 -7676 7675 -1 -7695 7675 -1 -7676 7676 6 -7677 7676 -1 -7696 7676 -1 -7677 7677 6 -7678 7677 -1 -7697 7677 -1 -7678 7678 6 -7679 7678 -1 -7698 7678 -1 -7679 7679 6 -7680 7679 -1 -7699 7679 -1 -7680 7680 6 -7700 7680 -1 -7681 7681 6 -7682 7681 -1 -7701 7681 -1 -7682 7682 6 -7683 7682 -1 -7702 7682 -1 -7683 7683 6 -7684 7683 -1 -7703 7683 -1 -7684 7684 6 -7685 7684 -1 -7704 7684 -1 -7685 7685 6 -7686 7685 -1 -7705 7685 -1 -7686 7686 6 -7687 7686 -1 -7706 7686 -1 -7687 7687 6 -7688 7687 -1 -7707 7687 -1 -7688 7688 6 -7689 7688 -1 -7708 7688 -1 -7689 7689 6 -7690 7689 -1 -7709 7689 -1 -7690 7690 6 -7691 7690 -1 -7710 7690 -1 -7691 7691 6 -7692 7691 -1 -7711 7691 -1 -7692 7692 6 -7693 7692 -1 -7712 7692 -1 -7693 7693 6 -7694 7693 -1 -7713 7693 -1 -7694 7694 6 -7695 7694 -1 -7714 7694 -1 -7695 7695 6 -7696 7695 -1 -7715 7695 -1 -7696 7696 6 -7697 7696 -1 -7716 7696 -1 -7697 7697 6 -7698 7697 -1 -7717 7697 -1 -7698 7698 6 -7699 7698 -1 -7718 7698 -1 -7699 7699 6 -7700 7699 -1 -7719 7699 -1 -7700 7700 6 -7720 7700 -1 -7701 7701 6 -7702 7701 -1 -7721 7701 -1 -7702 7702 6 -7703 7702 -1 -7722 7702 -1 -7703 7703 6 -7704 7703 -1 -7723 7703 -1 -7704 7704 6 -7705 7704 -1 -7724 7704 -1 -7705 7705 6 -7706 7705 -1 -7725 7705 -1 -7706 7706 6 -7707 7706 -1 -7726 7706 -1 -7707 7707 6 -7708 7707 -1 -7727 7707 -1 -7708 7708 6 -7709 7708 -1 -7728 7708 -1 -7709 7709 6 -7710 7709 -1 -7729 7709 -1 -7710 7710 6 -7711 7710 -1 -7730 7710 -1 -7711 7711 6 -7712 7711 -1 -7731 7711 -1 -7712 7712 6 -7713 7712 -1 -7732 7712 -1 -7713 7713 6 -7714 7713 -1 -7733 7713 -1 -7714 7714 6 -7715 7714 -1 -7734 7714 -1 -7715 7715 6 -7716 7715 -1 -7735 7715 -1 -7716 7716 6 -7717 7716 -1 -7736 7716 -1 -7717 7717 6 -7718 7717 -1 -7737 7717 -1 -7718 7718 6 -7719 7718 -1 -7738 7718 -1 -7719 7719 6 -7720 7719 -1 -7739 7719 -1 -7720 7720 6 -7740 7720 -1 -7721 7721 6 -7722 7721 -1 -7741 7721 -1 -7722 7722 6 -7723 7722 -1 -7742 7722 -1 -7723 7723 6 -7724 7723 -1 -7743 7723 -1 -7724 7724 6 -7725 7724 -1 -7744 7724 -1 -7725 7725 6 -7726 7725 -1 -7745 7725 -1 -7726 7726 6 -7727 7726 -1 -7746 7726 -1 -7727 7727 6 -7728 7727 -1 -7747 7727 -1 -7728 7728 6 -7729 7728 -1 -7748 7728 -1 -7729 7729 6 -7730 7729 -1 -7749 7729 -1 -7730 7730 6 -7731 7730 -1 -7750 7730 -1 -7731 7731 6 -7732 7731 -1 -7751 7731 -1 -7732 7732 6 -7733 7732 -1 -7752 7732 -1 -7733 7733 6 -7734 7733 -1 -7753 7733 -1 -7734 7734 6 -7735 7734 -1 -7754 7734 -1 -7735 7735 6 -7736 7735 -1 -7755 7735 -1 -7736 7736 6 -7737 7736 -1 -7756 7736 -1 -7737 7737 6 -7738 7737 -1 -7757 7737 -1 -7738 7738 6 -7739 7738 -1 -7758 7738 -1 -7739 7739 6 -7740 7739 -1 -7759 7739 -1 -7740 7740 6 -7760 7740 -1 -7741 7741 6 -7742 7741 -1 -7761 7741 -1 -7742 7742 6 -7743 7742 -1 -7762 7742 -1 -7743 7743 6 -7744 7743 -1 -7763 7743 -1 -7744 7744 6 -7745 7744 -1 -7764 7744 -1 -7745 7745 6 -7746 7745 -1 -7765 7745 -1 -7746 7746 6 -7747 7746 -1 -7766 7746 -1 -7747 7747 6 -7748 7747 -1 -7767 7747 -1 -7748 7748 6 -7749 7748 -1 -7768 7748 -1 -7749 7749 6 -7750 7749 -1 -7769 7749 -1 -7750 7750 6 -7751 7750 -1 -7770 7750 -1 -7751 7751 6 -7752 7751 -1 -7771 7751 -1 -7752 7752 6 -7753 7752 -1 -7772 7752 -1 -7753 7753 6 -7754 7753 -1 -7773 7753 -1 -7754 7754 6 -7755 7754 -1 -7774 7754 -1 -7755 7755 6 -7756 7755 -1 -7775 7755 -1 -7756 7756 6 -7757 7756 -1 -7776 7756 -1 -7757 7757 6 -7758 7757 -1 -7777 7757 -1 -7758 7758 6 -7759 7758 -1 -7778 7758 -1 -7759 7759 6 -7760 7759 -1 -7779 7759 -1 -7760 7760 6 -7780 7760 -1 -7761 7761 6 -7762 7761 -1 -7781 7761 -1 -7762 7762 6 -7763 7762 -1 -7782 7762 -1 -7763 7763 6 -7764 7763 -1 -7783 7763 -1 -7764 7764 6 -7765 7764 -1 -7784 7764 -1 -7765 7765 6 -7766 7765 -1 -7785 7765 -1 -7766 7766 6 -7767 7766 -1 -7786 7766 -1 -7767 7767 6 -7768 7767 -1 -7787 7767 -1 -7768 7768 6 -7769 7768 -1 -7788 7768 -1 -7769 7769 6 -7770 7769 -1 -7789 7769 -1 -7770 7770 6 -7771 7770 -1 -7790 7770 -1 -7771 7771 6 -7772 7771 -1 -7791 7771 -1 -7772 7772 6 -7773 7772 -1 -7792 7772 -1 -7773 7773 6 -7774 7773 -1 -7793 7773 -1 -7774 7774 6 -7775 7774 -1 -7794 7774 -1 -7775 7775 6 -7776 7775 -1 -7795 7775 -1 -7776 7776 6 -7777 7776 -1 -7796 7776 -1 -7777 7777 6 -7778 7777 -1 -7797 7777 -1 -7778 7778 6 -7779 7778 -1 -7798 7778 -1 -7779 7779 6 -7780 7779 -1 -7799 7779 -1 -7780 7780 6 -7800 7780 -1 -7781 7781 6 -7782 7781 -1 -7801 7781 -1 -7782 7782 6 -7783 7782 -1 -7802 7782 -1 -7783 7783 6 -7784 7783 -1 -7803 7783 -1 -7784 7784 6 -7785 7784 -1 -7804 7784 -1 -7785 7785 6 -7786 7785 -1 -7805 7785 -1 -7786 7786 6 -7787 7786 -1 -7806 7786 -1 -7787 7787 6 -7788 7787 -1 -7807 7787 -1 -7788 7788 6 -7789 7788 -1 -7808 7788 -1 -7789 7789 6 -7790 7789 -1 -7809 7789 -1 -7790 7790 6 -7791 7790 -1 -7810 7790 -1 -7791 7791 6 -7792 7791 -1 -7811 7791 -1 -7792 7792 6 -7793 7792 -1 -7812 7792 -1 -7793 7793 6 -7794 7793 -1 -7813 7793 -1 -7794 7794 6 -7795 7794 -1 -7814 7794 -1 -7795 7795 6 -7796 7795 -1 -7815 7795 -1 -7796 7796 6 -7797 7796 -1 -7816 7796 -1 -7797 7797 6 -7798 7797 -1 -7817 7797 -1 -7798 7798 6 -7799 7798 -1 -7818 7798 -1 -7799 7799 6 -7800 7799 -1 -7819 7799 -1 -7800 7800 6 -7820 7800 -1 -7801 7801 6 -7802 7801 -1 -7821 7801 -1 -7802 7802 6 -7803 7802 -1 -7822 7802 -1 -7803 7803 6 -7804 7803 -1 -7823 7803 -1 -7804 7804 6 -7805 7804 -1 -7824 7804 -1 -7805 7805 6 -7806 7805 -1 -7825 7805 -1 -7806 7806 6 -7807 7806 -1 -7826 7806 -1 -7807 7807 6 -7808 7807 -1 -7827 7807 -1 -7808 7808 6 -7809 7808 -1 -7828 7808 -1 -7809 7809 6 -7810 7809 -1 -7829 7809 -1 -7810 7810 6 -7811 7810 -1 -7830 7810 -1 -7811 7811 6 -7812 7811 -1 -7831 7811 -1 -7812 7812 6 -7813 7812 -1 -7832 7812 -1 -7813 7813 6 -7814 7813 -1 -7833 7813 -1 -7814 7814 6 -7815 7814 -1 -7834 7814 -1 -7815 7815 6 -7816 7815 -1 -7835 7815 -1 -7816 7816 6 -7817 7816 -1 -7836 7816 -1 -7817 7817 6 -7818 7817 -1 -7837 7817 -1 -7818 7818 6 -7819 7818 -1 -7838 7818 -1 -7819 7819 6 -7820 7819 -1 -7839 7819 -1 -7820 7820 6 -7840 7820 -1 -7821 7821 6 -7822 7821 -1 -7841 7821 -1 -7822 7822 6 -7823 7822 -1 -7842 7822 -1 -7823 7823 6 -7824 7823 -1 -7843 7823 -1 -7824 7824 6 -7825 7824 -1 -7844 7824 -1 -7825 7825 6 -7826 7825 -1 -7845 7825 -1 -7826 7826 6 -7827 7826 -1 -7846 7826 -1 -7827 7827 6 -7828 7827 -1 -7847 7827 -1 -7828 7828 6 -7829 7828 -1 -7848 7828 -1 -7829 7829 6 -7830 7829 -1 -7849 7829 -1 -7830 7830 6 -7831 7830 -1 -7850 7830 -1 -7831 7831 6 -7832 7831 -1 -7851 7831 -1 -7832 7832 6 -7833 7832 -1 -7852 7832 -1 -7833 7833 6 -7834 7833 -1 -7853 7833 -1 -7834 7834 6 -7835 7834 -1 -7854 7834 -1 -7835 7835 6 -7836 7835 -1 -7855 7835 -1 -7836 7836 6 -7837 7836 -1 -7856 7836 -1 -7837 7837 6 -7838 7837 -1 -7857 7837 -1 -7838 7838 6 -7839 7838 -1 -7858 7838 -1 -7839 7839 6 -7840 7839 -1 -7859 7839 -1 -7840 7840 6 -7860 7840 -1 -7841 7841 6 -7842 7841 -1 -7861 7841 -1 -7842 7842 6 -7843 7842 -1 -7862 7842 -1 -7843 7843 6 -7844 7843 -1 -7863 7843 -1 -7844 7844 6 -7845 7844 -1 -7864 7844 -1 -7845 7845 6 -7846 7845 -1 -7865 7845 -1 -7846 7846 6 -7847 7846 -1 -7866 7846 -1 -7847 7847 6 -7848 7847 -1 -7867 7847 -1 -7848 7848 6 -7849 7848 -1 -7868 7848 -1 -7849 7849 6 -7850 7849 -1 -7869 7849 -1 -7850 7850 6 -7851 7850 -1 -7870 7850 -1 -7851 7851 6 -7852 7851 -1 -7871 7851 -1 -7852 7852 6 -7853 7852 -1 -7872 7852 -1 -7853 7853 6 -7854 7853 -1 -7873 7853 -1 -7854 7854 6 -7855 7854 -1 -7874 7854 -1 -7855 7855 6 -7856 7855 -1 -7875 7855 -1 -7856 7856 6 -7857 7856 -1 -7876 7856 -1 -7857 7857 6 -7858 7857 -1 -7877 7857 -1 -7858 7858 6 -7859 7858 -1 -7878 7858 -1 -7859 7859 6 -7860 7859 -1 -7879 7859 -1 -7860 7860 6 -7880 7860 -1 -7861 7861 6 -7862 7861 -1 -7881 7861 -1 -7862 7862 6 -7863 7862 -1 -7882 7862 -1 -7863 7863 6 -7864 7863 -1 -7883 7863 -1 -7864 7864 6 -7865 7864 -1 -7884 7864 -1 -7865 7865 6 -7866 7865 -1 -7885 7865 -1 -7866 7866 6 -7867 7866 -1 -7886 7866 -1 -7867 7867 6 -7868 7867 -1 -7887 7867 -1 -7868 7868 6 -7869 7868 -1 -7888 7868 -1 -7869 7869 6 -7870 7869 -1 -7889 7869 -1 -7870 7870 6 -7871 7870 -1 -7890 7870 -1 -7871 7871 6 -7872 7871 -1 -7891 7871 -1 -7872 7872 6 -7873 7872 -1 -7892 7872 -1 -7873 7873 6 -7874 7873 -1 -7893 7873 -1 -7874 7874 6 -7875 7874 -1 -7894 7874 -1 -7875 7875 6 -7876 7875 -1 -7895 7875 -1 -7876 7876 6 -7877 7876 -1 -7896 7876 -1 -7877 7877 6 -7878 7877 -1 -7897 7877 -1 -7878 7878 6 -7879 7878 -1 -7898 7878 -1 -7879 7879 6 -7880 7879 -1 -7899 7879 -1 -7880 7880 6 -7900 7880 -1 -7881 7881 6 -7882 7881 -1 -7901 7881 -1 -7882 7882 6 -7883 7882 -1 -7902 7882 -1 -7883 7883 6 -7884 7883 -1 -7903 7883 -1 -7884 7884 6 -7885 7884 -1 -7904 7884 -1 -7885 7885 6 -7886 7885 -1 -7905 7885 -1 -7886 7886 6 -7887 7886 -1 -7906 7886 -1 -7887 7887 6 -7888 7887 -1 -7907 7887 -1 -7888 7888 6 -7889 7888 -1 -7908 7888 -1 -7889 7889 6 -7890 7889 -1 -7909 7889 -1 -7890 7890 6 -7891 7890 -1 -7910 7890 -1 -7891 7891 6 -7892 7891 -1 -7911 7891 -1 -7892 7892 6 -7893 7892 -1 -7912 7892 -1 -7893 7893 6 -7894 7893 -1 -7913 7893 -1 -7894 7894 6 -7895 7894 -1 -7914 7894 -1 -7895 7895 6 -7896 7895 -1 -7915 7895 -1 -7896 7896 6 -7897 7896 -1 -7916 7896 -1 -7897 7897 6 -7898 7897 -1 -7917 7897 -1 -7898 7898 6 -7899 7898 -1 -7918 7898 -1 -7899 7899 6 -7900 7899 -1 -7919 7899 -1 -7900 7900 6 -7920 7900 -1 -7901 7901 6 -7902 7901 -1 -7921 7901 -1 -7902 7902 6 -7903 7902 -1 -7922 7902 -1 -7903 7903 6 -7904 7903 -1 -7923 7903 -1 -7904 7904 6 -7905 7904 -1 -7924 7904 -1 -7905 7905 6 -7906 7905 -1 -7925 7905 -1 -7906 7906 6 -7907 7906 -1 -7926 7906 -1 -7907 7907 6 -7908 7907 -1 -7927 7907 -1 -7908 7908 6 -7909 7908 -1 -7928 7908 -1 -7909 7909 6 -7910 7909 -1 -7929 7909 -1 -7910 7910 6 -7911 7910 -1 -7930 7910 -1 -7911 7911 6 -7912 7911 -1 -7931 7911 -1 -7912 7912 6 -7913 7912 -1 -7932 7912 -1 -7913 7913 6 -7914 7913 -1 -7933 7913 -1 -7914 7914 6 -7915 7914 -1 -7934 7914 -1 -7915 7915 6 -7916 7915 -1 -7935 7915 -1 -7916 7916 6 -7917 7916 -1 -7936 7916 -1 -7917 7917 6 -7918 7917 -1 -7937 7917 -1 -7918 7918 6 -7919 7918 -1 -7938 7918 -1 -7919 7919 6 -7920 7919 -1 -7939 7919 -1 -7920 7920 6 -7940 7920 -1 -7921 7921 6 -7922 7921 -1 -7941 7921 -1 -7922 7922 6 -7923 7922 -1 -7942 7922 -1 -7923 7923 6 -7924 7923 -1 -7943 7923 -1 -7924 7924 6 -7925 7924 -1 -7944 7924 -1 -7925 7925 6 -7926 7925 -1 -7945 7925 -1 -7926 7926 6 -7927 7926 -1 -7946 7926 -1 -7927 7927 6 -7928 7927 -1 -7947 7927 -1 -7928 7928 6 -7929 7928 -1 -7948 7928 -1 -7929 7929 6 -7930 7929 -1 -7949 7929 -1 -7930 7930 6 -7931 7930 -1 -7950 7930 -1 -7931 7931 6 -7932 7931 -1 -7951 7931 -1 -7932 7932 6 -7933 7932 -1 -7952 7932 -1 -7933 7933 6 -7934 7933 -1 -7953 7933 -1 -7934 7934 6 -7935 7934 -1 -7954 7934 -1 -7935 7935 6 -7936 7935 -1 -7955 7935 -1 -7936 7936 6 -7937 7936 -1 -7956 7936 -1 -7937 7937 6 -7938 7937 -1 -7957 7937 -1 -7938 7938 6 -7939 7938 -1 -7958 7938 -1 -7939 7939 6 -7940 7939 -1 -7959 7939 -1 -7940 7940 6 -7960 7940 -1 -7941 7941 6 -7942 7941 -1 -7961 7941 -1 -7942 7942 6 -7943 7942 -1 -7962 7942 -1 -7943 7943 6 -7944 7943 -1 -7963 7943 -1 -7944 7944 6 -7945 7944 -1 -7964 7944 -1 -7945 7945 6 -7946 7945 -1 -7965 7945 -1 -7946 7946 6 -7947 7946 -1 -7966 7946 -1 -7947 7947 6 -7948 7947 -1 -7967 7947 -1 -7948 7948 6 -7949 7948 -1 -7968 7948 -1 -7949 7949 6 -7950 7949 -1 -7969 7949 -1 -7950 7950 6 -7951 7950 -1 -7970 7950 -1 -7951 7951 6 -7952 7951 -1 -7971 7951 -1 -7952 7952 6 -7953 7952 -1 -7972 7952 -1 -7953 7953 6 -7954 7953 -1 -7973 7953 -1 -7954 7954 6 -7955 7954 -1 -7974 7954 -1 -7955 7955 6 -7956 7955 -1 -7975 7955 -1 -7956 7956 6 -7957 7956 -1 -7976 7956 -1 -7957 7957 6 -7958 7957 -1 -7977 7957 -1 -7958 7958 6 -7959 7958 -1 -7978 7958 -1 -7959 7959 6 -7960 7959 -1 -7979 7959 -1 -7960 7960 6 -7980 7960 -1 -7961 7961 6 -7962 7961 -1 -7981 7961 -1 -7962 7962 6 -7963 7962 -1 -7982 7962 -1 -7963 7963 6 -7964 7963 -1 -7983 7963 -1 -7964 7964 6 -7965 7964 -1 -7984 7964 -1 -7965 7965 6 -7966 7965 -1 -7985 7965 -1 -7966 7966 6 -7967 7966 -1 -7986 7966 -1 -7967 7967 6 -7968 7967 -1 -7987 7967 -1 -7968 7968 6 -7969 7968 -1 -7988 7968 -1 -7969 7969 6 -7970 7969 -1 -7989 7969 -1 -7970 7970 6 -7971 7970 -1 -7990 7970 -1 -7971 7971 6 -7972 7971 -1 -7991 7971 -1 -7972 7972 6 -7973 7972 -1 -7992 7972 -1 -7973 7973 6 -7974 7973 -1 -7993 7973 -1 -7974 7974 6 -7975 7974 -1 -7994 7974 -1 -7975 7975 6 -7976 7975 -1 -7995 7975 -1 -7976 7976 6 -7977 7976 -1 -7996 7976 -1 -7977 7977 6 -7978 7977 -1 -7997 7977 -1 -7978 7978 6 -7979 7978 -1 -7998 7978 -1 -7979 7979 6 -7980 7979 -1 -7999 7979 -1 -7980 7980 6 -8000 7980 -1 -7981 7981 6 -7982 7981 -1 -7982 7982 6 -7983 7982 -1 -7983 7983 6 -7984 7983 -1 -7984 7984 6 -7985 7984 -1 -7985 7985 6 -7986 7985 -1 -7986 7986 6 -7987 7986 -1 -7987 7987 6 -7988 7987 -1 -7988 7988 6 -7989 7988 -1 -7989 7989 6 -7990 7989 -1 -7990 7990 6 -7991 7990 -1 -7991 7991 6 -7992 7991 -1 -7992 7992 6 -7993 7992 -1 -7993 7993 6 -7994 7993 -1 -7994 7994 6 -7995 7994 -1 -7995 7995 6 -7996 7995 -1 -7996 7996 6 -7997 7996 -1 -7997 7997 6 -7998 7997 -1 -7998 7998 6 -7999 7998 -1 -7999 7999 6 -8000 7999 -1 -8000 8000 6 diff --git a/cpp/4_CUDA_Libraries/cuSolverRf/mmio.c b/cpp/4_CUDA_Libraries/cuSolverRf/mmio.c deleted file mode 100644 index de5528e8..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverRf/mmio.c +++ /dev/null @@ -1,474 +0,0 @@ -/* - * Matrix Market I/O library for ANSI C - * - * See http://math.nist.gov/MatrixMarket for details. - * - * - */ - -/* avoid Windows warnings (for example: strcpy, fscanf, etc.) */ -#if defined(_WIN32) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "mmio.h" - -#include -#include -#include -#include - -int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_) -{ - FILE *f; - MM_typecode matcode; - int M, N, nz; - int i; - double *val; - int *I, *J; - - if ((f = fopen(fname, "r")) == NULL) - return -1; - - - if (mm_read_banner(f, &matcode) != 0) { - printf("mm_read_unsymetric: Could not process Matrix Market banner "); - printf(" in file [%s]\n", fname); - return -1; - } - - - if (!(mm_is_real(matcode) && mm_is_matrix(matcode) && mm_is_sparse(matcode))) { - fprintf(stderr, "Sorry, this application does not support "); - fprintf(stderr, "Market Market type: [%s]\n", mm_typecode_to_str(matcode)); - return -1; - } - - /* find out size of sparse matrix: M, N, nz .... */ - - if (mm_read_mtx_crd_size(f, &M, &N, &nz) != 0) { - fprintf(stderr, "read_unsymmetric_sparse(): could not parse matrix size.\n"); - return -1; - } - - *M_ = M; - *N_ = N; - *nz_ = nz; - - /* reserve memory for matrices */ - - I = (int *)malloc(nz * sizeof(int)); - J = (int *)malloc(nz * sizeof(int)); - val = (double *)malloc(nz * sizeof(double)); - - *val_ = val; - *I_ = I; - *J_ = J; - - /* NOTE: when reading in doubles, ANSI C requires the use of the "l" */ - /* specifier as in "%lg", "%lf", "%le", otherwise errors will occur */ - /* (ANSI C X3.159-1989, Sec. 4.9.6.2, p. 136 lines 13-15) */ - - for (i = 0; i < nz; i++) { - if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3) { - return -1; - } - I[i]--; /* adjust from 1-based to 0-based */ - J[i]--; - } - fclose(f); - - return 0; -} - -int mm_is_valid(MM_typecode matcode) -{ - if (!mm_is_matrix(matcode)) - return 0; - if (mm_is_dense(matcode) && mm_is_pattern(matcode)) - return 0; - if (mm_is_real(matcode) && mm_is_hermitian(matcode)) - return 0; - if (mm_is_pattern(matcode) && (mm_is_hermitian(matcode) || mm_is_skew(matcode))) - return 0; - return 1; -} - -int mm_read_banner(FILE *f, MM_typecode *matcode) -{ - char line[MM_MAX_LINE_LENGTH]; - char banner[MM_MAX_TOKEN_LENGTH]; - char mtx[MM_MAX_TOKEN_LENGTH]; - char crd[MM_MAX_TOKEN_LENGTH]; - char data_type[MM_MAX_TOKEN_LENGTH]; - char storage_scheme[MM_MAX_TOKEN_LENGTH]; - char *p; - - - mm_clear_typecode(matcode); - - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - - if (sscanf(line, "%s %s %s %s %s", banner, mtx, crd, data_type, storage_scheme) != 5) - return MM_PREMATURE_EOF; - - for (p = mtx; *p != '\0'; *p = tolower(*p), p++) - ; /* convert to lower case */ - for (p = crd; *p != '\0'; *p = tolower(*p), p++) - ; - for (p = data_type; *p != '\0'; *p = tolower(*p), p++) - ; - for (p = storage_scheme; *p != '\0'; *p = tolower(*p), p++) - ; - - /* check for banner */ - if (strncmp(banner, MatrixMarketBanner, strlen(MatrixMarketBanner)) != 0) - return MM_NO_HEADER; - - /* first field should be "mtx" */ - if (strcmp(mtx, MM_MTX_STR) != 0) - return MM_UNSUPPORTED_TYPE; - mm_set_matrix(matcode); - - - /* second field describes whether this is a sparse matrix (in coordinate - storgae) or a dense array */ - - - if (strcmp(crd, MM_SPARSE_STR) == 0) - mm_set_sparse(matcode); - else if (strcmp(crd, MM_DENSE_STR) == 0) - mm_set_dense(matcode); - else - return MM_UNSUPPORTED_TYPE; - - /* third field */ - - if (strcmp(data_type, MM_REAL_STR) == 0) - mm_set_real(matcode); - else if (strcmp(data_type, MM_COMPLEX_STR) == 0) - mm_set_complex(matcode); - else if (strcmp(data_type, MM_PATTERN_STR) == 0) - mm_set_pattern(matcode); - else if (strcmp(data_type, MM_INT_STR) == 0) - mm_set_integer(matcode); - else - return MM_UNSUPPORTED_TYPE; - - /* fourth field */ - - if (strcmp(storage_scheme, MM_GENERAL_STR) == 0) - mm_set_general(matcode); - else if (strcmp(storage_scheme, MM_SYMM_STR) == 0) - mm_set_symmetric(matcode); - else if (strcmp(storage_scheme, MM_HERM_STR) == 0) - mm_set_hermitian(matcode); - else if (strcmp(storage_scheme, MM_SKEW_STR) == 0) - mm_set_skew(matcode); - else - return MM_UNSUPPORTED_TYPE; - - return 0; -} - -int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz) -{ - if (fprintf(f, "%d %d %d\n", M, N, nz) != 3) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - -int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz) -{ - char line[MM_MAX_LINE_LENGTH]; - int num_items_read; - - /* set return null parameter values, in case we exit with errors */ - *M = *N = *nz = 0; - - /* now continue scanning until you reach the end-of-comments */ - do { - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - } while (line[0] == '%'); - - /* line[] is either blank or has M,N, nz */ - if (sscanf(line, "%d %d %d", M, N, nz) == 3) - return 0; - - else - do { - num_items_read = fscanf(f, "%d %d %d", M, N, nz); - if (num_items_read == EOF) - return MM_PREMATURE_EOF; - } while (num_items_read != 3); - - return 0; -} - - -int mm_read_mtx_array_size(FILE *f, int *M, int *N) -{ - char line[MM_MAX_LINE_LENGTH]; - int num_items_read; - /* set return null parameter values, in case we exit with errors */ - *M = *N = 0; - - /* now continue scanning until you reach the end-of-comments */ - do { - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - } while (line[0] == '%'); - - /* line[] is either blank or has M,N, nz */ - if (sscanf(line, "%d %d", M, N) == 2) - return 0; - - else /* we have a blank line */ - do { - num_items_read = fscanf(f, "%d %d", M, N); - if (num_items_read == EOF) - return MM_PREMATURE_EOF; - } while (num_items_read != 2); - - return 0; -} - -int mm_write_mtx_array_size(FILE *f, int M, int N) -{ - if (fprintf(f, "%d %d\n", M, N) != 2) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - - -/*-------------------------------------------------------------------------*/ - -/******************************************************************/ -/* use when I[], J[], and val[]J, and val[] are already allocated */ -/******************************************************************/ - -int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode) -{ - int i; - if (mm_is_complex(matcode)) { - for (i = 0; i < nz; i++) - if (fscanf(f, "%d %d %lg %lg", &I[i], &J[i], &val[2 * i], &val[2 * i + 1]) != 4) - return MM_PREMATURE_EOF; - } - else if (mm_is_real(matcode) || mm_is_integer(matcode)) { - for (i = 0; i < nz; i++) { - if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3) - return MM_PREMATURE_EOF; - } - } - - else if (mm_is_pattern(matcode)) { - for (i = 0; i < nz; i++) - if (fscanf(f, "%d %d", &I[i], &J[i]) != 2) - return MM_PREMATURE_EOF; - } - else - return MM_UNSUPPORTED_TYPE; - - return 0; -} - -int mm_read_mtx_crd_entry(FILE *f, int *I, int *J, double *real, double *imag, MM_typecode matcode) -{ - if (mm_is_complex(matcode)) { - if (fscanf(f, "%d %d %lg %lg", I, J, real, imag) != 4) - return MM_PREMATURE_EOF; - } - else if (mm_is_real(matcode) || mm_is_integer(matcode)) { - if (fscanf(f, "%d %d %lg\n", I, J, real) != 3) - return MM_PREMATURE_EOF; - } - - else if (mm_is_pattern(matcode)) { - if (fscanf(f, "%d %d", I, J) != 2) - return MM_PREMATURE_EOF; - } - else - return MM_UNSUPPORTED_TYPE; - - return 0; -} - - -/************************************************************************ - mm_read_mtx_crd() fills M, N, nz, array of values, and return - type code, e.g. 'MCRS' - - if matrix is complex, values[] is of size 2*nz, - (nz pairs of real/imaginary values) -************************************************************************/ - -int mm_read_mtx_crd(char *fname, int *M, int *N, int *nz, int **I, int **J, double **val, MM_typecode *matcode) -{ - int ret_code; - FILE *f; - - if (strcmp(fname, "stdin") == 0) - f = stdin; - else if ((f = fopen(fname, "r")) == NULL) - return MM_COULD_NOT_READ_FILE; - - - if ((ret_code = mm_read_banner(f, matcode)) != 0) - return ret_code; - - if (!(mm_is_valid(*matcode) && mm_is_sparse(*matcode) && mm_is_matrix(*matcode))) - return MM_UNSUPPORTED_TYPE; - - if ((ret_code = mm_read_mtx_crd_size(f, M, N, nz)) != 0) - return ret_code; - - - *I = (int *)malloc(*nz * sizeof(int)); - *J = (int *)malloc(*nz * sizeof(int)); - *val = NULL; - - if (mm_is_complex(*matcode)) { - *val = (double *)malloc(*nz * 2 * sizeof(double)); - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - else if (mm_is_real(*matcode) || mm_is_integer(*matcode)) { - *val = (double *)malloc(*nz * sizeof(double)); - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - - else if (mm_is_pattern(*matcode)) { - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - - if (f != stdin) - fclose(f); - return 0; -} - -int mm_write_banner(FILE *f, MM_typecode matcode) -{ - char *str = mm_typecode_to_str(matcode); - int ret_code; - - ret_code = fprintf(f, "%s %s\n", MatrixMarketBanner, str); - free(str); - if (ret_code != 2) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - -int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode) -{ - FILE *f; - int i; - - if (strcmp(fname, "stdout") == 0) - f = stdout; - else if ((f = fopen(fname, "w")) == NULL) - return MM_COULD_NOT_WRITE_FILE; - - /* print banner followed by typecode */ - fprintf(f, "%s ", MatrixMarketBanner); - fprintf(f, "%s\n", mm_typecode_to_str(matcode)); - - /* print matrix sizes and nonzeros */ - fprintf(f, "%d %d %d\n", M, N, nz); - - /* print values */ - if (mm_is_pattern(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d\n", I[i], J[i]); - else if (mm_is_integer(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %d\n", I[i], J[i], (int)val[i]); - else if (mm_is_real(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %20.16g\n", I[i], J[i], val[i]); - else if (mm_is_complex(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %20.16g %20.16g\n", I[i], J[i], val[2 * i], val[2 * i + 1]); - else { - if (f != stdout) - fclose(f); - return MM_UNSUPPORTED_TYPE; - } - - if (f != stdout) - fclose(f); - - return 0; -} - -/** - * Create a new copy of a string s. mm_strdup() is a common routine, but - * not part of ANSI C, so it is included here. Used by mm_typecode_to_str(). - * - */ -static char *mm_strdup(const char *s) -{ - size_t len = strlen(s); - char *s2 = (char *)malloc((len + 1) * sizeof(char)); - return strcpy(s2, s); -} - -char *mm_typecode_to_str(MM_typecode matcode) -{ - char buffer[MM_MAX_LINE_LENGTH]; - char *types[4]; - // char *mm_strdup(const char *); - // int error =0; - - /* check for MTX type */ - if (mm_is_matrix(matcode)) - types[0] = MM_MTX_STR; - else - return NULL; // error=1; - - /* check for CRD or ARR matrix */ - if (mm_is_sparse(matcode)) - types[1] = MM_SPARSE_STR; - else if (mm_is_dense(matcode)) - types[1] = MM_DENSE_STR; - else - return NULL; - - /* check for element data type */ - if (mm_is_real(matcode)) - types[2] = MM_REAL_STR; - else if (mm_is_complex(matcode)) - types[2] = MM_COMPLEX_STR; - else if (mm_is_pattern(matcode)) - types[2] = MM_PATTERN_STR; - else if (mm_is_integer(matcode)) - types[2] = MM_INT_STR; - else - return NULL; - - - /* check for symmetry type */ - if (mm_is_general(matcode)) - types[3] = MM_GENERAL_STR; - else if (mm_is_symmetric(matcode)) - types[3] = MM_SYMM_STR; - else if (mm_is_hermitian(matcode)) - types[3] = MM_HERM_STR; - else if (mm_is_skew(matcode)) - types[3] = MM_SKEW_STR; - else - return NULL; - - sprintf(buffer, "%s %s %s %s", types[0], types[1], types[2], types[3]); - return mm_strdup(buffer); -} diff --git a/cpp/4_CUDA_Libraries/cuSolverRf/mmio.h b/cpp/4_CUDA_Libraries/cuSolverRf/mmio.h deleted file mode 100644 index a05f6063..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverRf/mmio.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Matrix Market I/O library for ANSI C - * - * See http://math.nist.gov/MatrixMarket for details. - * - * - */ - -#ifndef MM_IO_H -#define MM_IO_H - -#include - -#if defined(__cplusplus) -extern "C" -{ -#endif /* __cplusplus */ - -#define MM_MAX_LINE_LENGTH 1025 -#define MatrixMarketBanner "%%MatrixMarket" -#define MM_MAX_TOKEN_LENGTH 64 - - typedef char MM_typecode[4]; - - char *mm_typecode_to_str(MM_typecode matcode); - - int mm_read_banner(FILE *f, MM_typecode *matcode); - int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz); - int mm_read_mtx_array_size(FILE *f, int *M, int *N); - - int mm_write_banner(FILE *f, MM_typecode matcode); - int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz); - int mm_write_mtx_array_size(FILE *f, int M, int N); - - - /********************* MM_typecode query fucntions ***************************/ - -#define mm_is_matrix(typecode) ((typecode)[0] == 'M') - -#define mm_is_sparse(typecode) ((typecode)[1] == 'C') -#define mm_is_coordinate(typecode) ((typecode)[1] == 'C') -#define mm_is_dense(typecode) ((typecode)[1] == 'A') -#define mm_is_array(typecode) ((typecode)[1] == 'A') - -#define mm_is_complex(typecode) ((typecode)[2] == 'C') -#define mm_is_real(typecode) ((typecode)[2] == 'R') -#define mm_is_pattern(typecode) ((typecode)[2] == 'P') -#define mm_is_integer(typecode) ((typecode)[2] == 'I') - -#define mm_is_symmetric(typecode) ((typecode)[3] == 'S') -#define mm_is_general(typecode) ((typecode)[3] == 'G') -#define mm_is_skew(typecode) ((typecode)[3] == 'K') -#define mm_is_hermitian(typecode) ((typecode)[3] == 'H') - - int mm_is_valid(MM_typecode matcode); /* too complex for a macro */ - - - /********************* MM_typecode modify fucntions ***************************/ - -#define mm_set_matrix(typecode) ((*typecode)[0] = 'M') -#define mm_set_coordinate(typecode) ((*typecode)[1] = 'C') -#define mm_set_array(typecode) ((*typecode)[1] = 'A') -#define mm_set_dense(typecode) mm_set_array(typecode) -#define mm_set_sparse(typecode) mm_set_coordinate(typecode) - -#define mm_set_complex(typecode) ((*typecode)[2] = 'C') -#define mm_set_real(typecode) ((*typecode)[2] = 'R') -#define mm_set_pattern(typecode) ((*typecode)[2] = 'P') -#define mm_set_integer(typecode) ((*typecode)[2] = 'I') - - -#define mm_set_symmetric(typecode) ((*typecode)[3] = 'S') -#define mm_set_general(typecode) ((*typecode)[3] = 'G') -#define mm_set_skew(typecode) ((*typecode)[3] = 'K') -#define mm_set_hermitian(typecode) ((*typecode)[3] = 'H') - -#define mm_clear_typecode(typecode) ((*typecode)[0] = (*typecode)[1] = (*typecode)[2] = ' ', (*typecode)[3] = 'G') - -#define mm_initialize_typecode(typecode) mm_clear_typecode(typecode) - - - /********************* Matrix Market error codes ***************************/ - - -#define MM_COULD_NOT_READ_FILE 11 -#define MM_PREMATURE_EOF 12 -#define MM_NOT_MTX 13 -#define MM_NO_HEADER 14 -#define MM_UNSUPPORTED_TYPE 15 -#define MM_LINE_TOO_LONG 16 -#define MM_COULD_NOT_WRITE_FILE 17 - - - /******************** Matrix Market internal definitions ******************** - - MM_matrix_typecode: 4-character sequence - - ojbect sparse/ data storage - dense type scheme - - string position: [0] [1] [2] [3] - - Matrix typecode: M(atrix) C(oord) R(eal) G(eneral) - A(array) C(omplex) H(ermitian) - P(attern) S(ymmetric) - I(nteger) K(kew) - - ***********************************************************************/ - -#define MM_MTX_STR "matrix" -#define MM_ARRAY_STR "array" -#define MM_DENSE_STR "array" -#define MM_COORDINATE_STR "coordinate" -#define MM_SPARSE_STR "coordinate" -#define MM_COMPLEX_STR "complex" -#define MM_REAL_STR "real" -#define MM_INT_STR "integer" -#define MM_GENERAL_STR "general" -#define MM_SYMM_STR "symmetric" -#define MM_HERM_STR "hermitian" -#define MM_SKEW_STR "skew-symmetric" -#define MM_PATTERN_STR "pattern" - - - /* high level routines */ - int mm_read_mtx_crd(char *fname, int *M, int *N, int *nz, int **I, int **J, double **val, MM_typecode *matcode); - - int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode); - int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode); - int mm_read_mtx_crd_entry(FILE *f, int *I, int *J, double *real, double *img, MM_typecode matcode); - - int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_); - -#if defined(__cplusplus) -} -#endif /* __cplusplus */ - -#endif diff --git a/cpp/4_CUDA_Libraries/cuSolverRf/mmio_wrapper.cpp b/cpp/4_CUDA_Libraries/cuSolverRf/mmio_wrapper.cpp deleted file mode 100644 index 3f798d53..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverRf/mmio_wrapper.cpp +++ /dev/null @@ -1,492 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include -#include -#include - -#include "mmio.h" - -/* avoid Windows warnings (for example: strcpy, fscanf, etc.) */ -#if defined(_WIN32) -#define _CRT_SECURE_NO_WARNINGS -#endif - -/* various __inline__ __device__ function to initialize a T_ELEM */ -template __inline__ T_ELEM cuGet(int); -template <> __inline__ float cuGet(int x) { return float(x); } - -template <> __inline__ double cuGet(int x) { return double(x); } - -template <> __inline__ cuComplex cuGet(int x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(int x) { return (make_cuDoubleComplex(double(x), 0.0)); } - -template __inline__ T_ELEM cuGet(int, int); -template <> __inline__ float cuGet(int x, int y) { return float(x); } - -template <> __inline__ double cuGet(int x, int y) { return double(x); } - -template <> __inline__ cuComplex cuGet(int x, int y) { return make_cuComplex(float(x), float(y)); } - -template <> __inline__ cuDoubleComplex cuGet(int x, int y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - -template __inline__ T_ELEM cuGet(float); -template <> __inline__ float cuGet(float x) { return float(x); } - -template <> __inline__ double cuGet(float x) { return double(x); } - -template <> __inline__ cuComplex cuGet(float x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(float x) -{ - return (make_cuDoubleComplex(double(x), 0.0)); -} - -template __inline__ T_ELEM cuGet(float, float); -template <> __inline__ float cuGet(float x, float y) { return float(x); } - -template <> __inline__ double cuGet(float x, float y) { return double(x); } - -template <> __inline__ cuComplex cuGet(float x, float y) { return (make_cuComplex(float(x), float(y))); } - -template <> __inline__ cuDoubleComplex cuGet(float x, float y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - -template __inline__ T_ELEM cuGet(double); -template <> __inline__ float cuGet(double x) { return float(x); } - -template <> __inline__ double cuGet(double x) { return double(x); } - -template <> __inline__ cuComplex cuGet(double x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(double x) -{ - return (make_cuDoubleComplex(double(x), 0.0)); -} - -template __inline__ T_ELEM cuGet(double, double); -template <> __inline__ float cuGet(double x, double y) { return float(x); } - -template <> __inline__ double cuGet(double x, double y) { return double(x); } - -template <> __inline__ cuComplex cuGet(double x, double y) { return (make_cuComplex(float(x), float(y))); } - -template <> __inline__ cuDoubleComplex cuGet(double x, double y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - -static void compress_index(const int *Ind, int nnz, int m, int *Ptr, int base) -{ - int i; - - /* initialize everything to zero */ - for (i = 0; i < m + 1; i++) { - Ptr[i] = 0; - } - /* count elements in every row */ - Ptr[0] = base; - for (i = 0; i < nnz; i++) { - Ptr[Ind[i] + (1 - base)]++; - } - /* add all the values */ - for (i = 0; i < m; i++) { - Ptr[i + 1] += Ptr[i]; - } -} - -struct cooFormat -{ - int i; - int j; - int p; // permutation -}; - -int cmp_cooFormat_csr(struct cooFormat *s, struct cooFormat *t) -{ - if (s->i < t->i) { - return -1; - } - else if (s->i > t->i) { - return 1; - } - else { - return s->j - t->j; - } -} - -int cmp_cooFormat_csc(struct cooFormat *s, struct cooFormat *t) -{ - if (s->j < t->j) { - return -1; - } - else if (s->j > t->j) { - return 1; - } - else { - return s->i - t->i; - } -} - -typedef int (*FUNPTR)(const void *, const void *); -typedef int (*FUNPTR2)(struct cooFormat *s, struct cooFormat *t); - -static FUNPTR2 fptr_array[2] = { - cmp_cooFormat_csr, - cmp_cooFormat_csc, -}; - -static int verify_pattern(int m, int nnz, int *csrRowPtr, int *csrColInd) -{ - int i, col, start, end, base_index; - int error_found = 0; - - if (nnz != (csrRowPtr[m] - csrRowPtr[0])) { - fprintf(stderr, - "Error (nnz check failed): (csrRowPtr[%d]=%d - csrRowPtr[%d]=%d) " - "!= (nnz=%d)\n", - 0, - csrRowPtr[0], - m, - csrRowPtr[m], - nnz); - error_found = 1; - } - - base_index = csrRowPtr[0]; - if ((0 != base_index) && (1 != base_index)) { - fprintf(stderr, "Error (base index check failed): base index = %d\n", base_index); - error_found = 1; - } - - for (i = 0; (!error_found) && (i < m); i++) { - start = csrRowPtr[i] - base_index; - end = csrRowPtr[i + 1] - base_index; - if (start > end) { - fprintf(stderr, - "Error (corrupted row): csrRowPtr[%d] (=%d) > csrRowPtr[%d] (=%d)\n", - i, - start + base_index, - i + 1, - end + base_index); - error_found = 1; - } - for (col = start; col < end; col++) { - if (csrColInd[col] < base_index) { - fprintf(stderr, "Error (column vs. base index check failed): csrColInd[%d] < %d\n", col, base_index); - error_found = 1; - } - if ((col < (end - 1)) && (csrColInd[col] >= csrColInd[col + 1])) { - fprintf(stderr, - "Error (sorting of the column indecis check failed): " - "(csrColInd[%d]=%d) >= (csrColInd[%d]=%d)\n", - col, - csrColInd[col], - col + 1, - csrColInd[col + 1]); - error_found = 1; - } - } - } - return error_found; -} - -template -int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - T_ELEM **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix) -{ - MM_typecode matcode; - double *tempVal; - int *tempRowInd, *tempColInd; - double *tval; - int *trow, *tcol; - int *csrRowPtr, *cscColPtr; - int i, j, error, base, count; - struct cooFormat *work; - - /* read the matrix */ - error = mm_read_mtx_crd(filename, m, n, nnz, &trow, &tcol, &tval, &matcode); - if (error) { - fprintf(stderr, "!!!! can not open file: '%s'\n", filename); - return 1; - } - - /* start error checking */ - if (mm_is_complex(matcode) && ((elem_type != 'z') && (elem_type != 'c'))) { - fprintf(stderr, "!!!! complex matrix requires type 'z' or 'c'\n"); - return 1; - } - - if (mm_is_dense(matcode) || mm_is_array(matcode) || mm_is_pattern(matcode) /*|| mm_is_integer(matcode)*/) { - fprintf(stderr, "!!!! dense, array, pattern and integer matrices are not supported\n"); - return 1; - } - - /* if necessary symmetrize the pattern (transform from triangular to full) */ - if ((extendSymMatrix) && (mm_is_symmetric(matcode) || mm_is_hermitian(matcode) || mm_is_skew(matcode))) { - // count number of non-diagonal elements - count = 0; - for (i = 0; i < (*nnz); i++) { - if (trow[i] != tcol[i]) { - count++; - } - } - // allocate space for the symmetrized matrix - tempRowInd = (int *)malloc((*nnz + count) * sizeof(int)); - tempColInd = (int *)malloc((*nnz + count) * sizeof(int)); - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - tempVal = (double *)malloc((*nnz + count) * sizeof(double)); - } - else { - tempVal = (double *)malloc(2 * (*nnz + count) * sizeof(double)); - } - // copy the elements regular and transposed locations - for (j = 0, i = 0; i < (*nnz); i++) { - tempRowInd[j] = trow[i]; - tempColInd[j] = tcol[i]; - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - tempVal[j] = tval[i]; - } - else { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = tval[2 * i + 1]; - } - j++; - if (trow[i] != tcol[i]) { - tempRowInd[j] = tcol[i]; - tempColInd[j] = trow[i]; - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - if (mm_is_skew(matcode)) { - tempVal[j] = -tval[i]; - } - else { - tempVal[j] = tval[i]; - } - } - else { - if (mm_is_hermitian(matcode)) { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = -tval[2 * i + 1]; - } - else { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = tval[2 * i + 1]; - } - } - j++; - } - } - (*nnz) += count; - // free temporary storage - free(trow); - free(tcol); - free(tval); - } - else { - tempRowInd = trow; - tempColInd = tcol; - tempVal = tval; - } - // life time of (trow, tcol, tval) is over. - // please use COO format (tempRowInd, tempColInd, tempVal) - - // use qsort to sort COO format - work = (struct cooFormat *)malloc(sizeof(struct cooFormat) * (*nnz)); - if (NULL == work) { - fprintf(stderr, "!!!! allocation error, malloc failed\n"); - return 1; - } - for (i = 0; i < (*nnz); i++) { - work[i].i = tempRowInd[i]; - work[i].j = tempColInd[i]; - work[i].p = i; // permutation is identity - } - - if (csrFormat) { - /* create row-major ordering of indices (sorted by row and within each row - * by column) */ - qsort(work, *nnz, sizeof(struct cooFormat), (FUNPTR)fptr_array[0]); - } - else { - /* create column-major ordering of indices (sorted by column and within each - * column by row) */ - qsort(work, *nnz, sizeof(struct cooFormat), (FUNPTR)fptr_array[1]); - } - - // (tempRowInd, tempColInd) is sorted either by row-major or by col-major - for (i = 0; i < (*nnz); i++) { - tempRowInd[i] = work[i].i; - tempColInd[i] = work[i].j; - } - - // setup base - // check if there is any row/col 0, if so base-0 - // check if there is any row/col equal to matrix dimension m/n, if so base-1 - int base0 = 0; - int base1 = 0; - for (i = 0; i < (*nnz); i++) { - const int row = tempRowInd[i]; - const int col = tempColInd[i]; - if ((0 == row) || (0 == col)) { - base0 = 1; - } - if ((*m == row) || (*n == col)) { - base1 = 1; - } - } - if (base0 && base1) { - printf("Error: input matrix is base-0 and base-1 \n"); - return 1; - } - - base = 0; - if (base1) { - base = 1; - } - - /* compress the appropriate indices */ - if (csrFormat) { - /* CSR format (assuming row-major format) */ - csrRowPtr = (int *)malloc(((*m) + 1) * sizeof(csrRowPtr[0])); - if (!csrRowPtr) - return 1; - compress_index(tempRowInd, *nnz, *m, csrRowPtr, base); - - *aRowInd = csrRowPtr; - *aColInd = (int *)malloc((*nnz) * sizeof(int)); - } - else { - /* CSC format (assuming column-major format) */ - cscColPtr = (int *)malloc(((*n) + 1) * sizeof(cscColPtr[0])); - if (!cscColPtr) - return 1; - compress_index(tempColInd, *nnz, *n, cscColPtr, base); - - *aColInd = cscColPtr; - *aRowInd = (int *)malloc((*nnz) * sizeof(int)); - } - - /* transfrom the matrix values of type double into one of the cusparse library - * types */ - *aVal = (T_ELEM *)malloc((*nnz) * sizeof(T_ELEM)); - - for (i = 0; i < (*nnz); i++) { - if (csrFormat) { - (*aColInd)[i] = tempColInd[i]; - } - else { - (*aRowInd)[i] = tempRowInd[i]; - } - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - (*aVal)[i] = cuGet(tempVal[work[i].p]); - } - else { - (*aVal)[i] = cuGet(tempVal[2 * work[i].p], tempVal[2 * work[i].p + 1]); - } - } - - /* check for corruption */ - int error_found; - if (csrFormat) { - error_found = verify_pattern(*m, *nnz, *aRowInd, *aColInd); - } - else { - error_found = verify_pattern(*n, *nnz, *aColInd, *aRowInd); - } - if (error_found) { - fprintf(stderr, "!!!! verify_pattern failed\n"); - return 1; - } - - /* cleanup and exit */ - free(work); - free(tempVal); - free(tempColInd); - free(tempRowInd); - - return 0; -} - -/* specific instantiation */ -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - float **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - double **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - cuComplex **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - cuDoubleComplex **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/.vscode/extensions.json b/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/CMakeLists.txt b/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/CMakeLists.txt deleted file mode 100644 index fab672ff..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/CMakeLists.txt +++ /dev/null @@ -1,58 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(cuSolverSp_LinearSolver LANGUAGES C CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for cuSolverSp_LinearSolver -add_executable(cuSolverSp_LinearSolver cuSolverSp_LinearSolver.cpp mmio.c mmio_wrapper.cpp) - -target_compile_options(cuSolverSp_LinearSolver PRIVATE $<$:--extended-lambda>) - -target_compile_features(cuSolverSp_LinearSolver PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(cuSolverSp_LinearSolver PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(cuSolverSp_LinearSolver PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(cuSolverSp_LinearSolver PRIVATE - CUDA::cudart - CUDA::cublas - CUDA::cusolver -) - -# Copy data files to output directory -add_custom_command(TARGET cuSolverSp_LinearSolver POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lap2D_5pt_n100.mtx - ${CMAKE_CURRENT_BINARY_DIR} -) - -# Copy data files to output directory -add_custom_command(TARGET cuSolverSp_LinearSolver POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lap3D_7pt_n20.mtx - ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/README.md b/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/README.md deleted file mode 100644 index 210dd430..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# cuSolverSp_LinearSolver - cuSolverSp Linear Solver - -## Description - -A CUDA Sample that demonstrates cuSolverSP's LU, QR and Cholesky factorization. - -## Key Concepts - -Linear Algebra, CUSOLVER Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuDoubleComplex, cuComplex - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaStreamDestroy, cudaFree, cudaDeviceSynchronize, cudaMalloc, cudaStreamCreate, cudaMemcpyAsync - -## Dependencies needed to build/run -[CUSOLVER](../../../README.md#cusolver), [CUSPARSE](../../../README.md#cusparse) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/cuSolverSp_LinearSolver.cpp b/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/cuSolverSp_LinearSolver.cpp deleted file mode 100644 index dde0734a..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/cuSolverSp_LinearSolver.cpp +++ /dev/null @@ -1,738 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * Test three linear solvers, including Cholesky, LU and QR. - * The user has to prepare a sparse matrix of "matrix market format" (with - extension .mtx). - * For example, the user can download matrices in Florida Sparse Matrix - Collection. - * (http://www.cise.ufl.edu/research/sparse/matrices/) - * - * The user needs to choose a solver by the switch -R and - * to provide the path of the matrix by the switch -F, then - * the program solves - * A*x = b - * and reports relative error - * |b-A*x|/(|A|*|x|+|b|) - * - * How does it work? - * The example solves A*x = b by the following steps - * step 1: B = A(Q,Q) - * Q is the ordering to minimize zero fill-in. - * The user can choose symrcm or symamd. - * step 2: solve B*z = Q*b - * step 3: x = inv(Q)*z - * - * Above three steps can be combined by the formula - * (Q*A*Q')*(Q*x) = (Q*b) - * - * The elapsed time is also reported so the user can compare efficiency of - different solvers. - * - * How to use - /cuSolverSp_LinearSolver // Default: Cholesky, symrcm & - file=lap2D_5pt_n100.mtx - * ./cuSolverSp_LinearSolver -R=chol -file= // cholesky - factorization - * ./cuSolverSp_LinearSolver -R=lu -P=symrcm -file= // symrcm + LU - with partial pivoting - * ./cuSolverSp_LinearSolver -R=qr -P=symamd -file= // symamd + QR - factorization - * - * - * Remark: the absolute error on solution x is meaningless without knowing - condition number of A. - * The relative error on residual should be close to machine zero, - i.e. 1.e-15. - */ - -#include -#include -#include -#include -#include -#include - -#include "cusolverSp.h" -#include "cusparse.h" -#include "helper_cuda.h" -#include "helper_cusolver.h" - -template -int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - T_ELEM **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -void UsageSP(void) -{ - printf("\n"); - printf("-h : display this help\n"); - printf("-R= : choose a linear solver\n"); - printf(" chol (cholesky factorization), this is default\n"); - printf(" qr (QR factorization)\n"); - printf(" lu (LU factorization)\n"); - printf("-P= : choose a reordering\n"); - printf(" symrcm (Reverse Cuthill-McKee)\n"); - printf(" symamd (Approximate Minimum Degree)\n"); - printf(" metis (nested dissection)\n"); - printf("-file= : filename containing a matrix in MM format\n"); - printf("-device= : if want to run on specific GPU\n"); - - exit(0); -} - -void parseCommandLineArguments(int argc, char *argv[], struct testOpts &opts) -{ - memset(&opts, 0, sizeof(opts)); - - if (checkCmdLineFlag(argc, (const char **)argv, "-h")) { - UsageSP(); - } - - if (checkCmdLineFlag(argc, (const char **)argv, "R")) { - char *solverType = NULL; - getCmdLineArgumentString(argc, (const char **)argv, "R", &solverType); - - if (solverType) { - if ((STRCASECMP(solverType, "chol") != 0) && (STRCASECMP(solverType, "lu") != 0) - && (STRCASECMP(solverType, "qr") != 0)) { - printf("\nIncorrect argument passed to -R option\n"); - UsageSP(); - } - else { - opts.testFunc = solverType; - } - } - } - - if (checkCmdLineFlag(argc, (const char **)argv, "P")) { - char *reorderType = NULL; - getCmdLineArgumentString(argc, (const char **)argv, "P", &reorderType); - - if (reorderType) { - if ((STRCASECMP(reorderType, "symrcm") != 0) && (STRCASECMP(reorderType, "symamd") != 0) - && (STRCASECMP(reorderType, "metis") != 0)) { - printf("\nIncorrect argument passed to -P option\n"); - UsageSP(); - } - else { - opts.reorder = reorderType; - } - } - } - - if (checkCmdLineFlag(argc, (const char **)argv, "file")) { - char *fileName = 0; - getCmdLineArgumentString(argc, (const char **)argv, "file", &fileName); - - if (fileName) { - opts.sparse_mat_filename = fileName; - } - else { - printf("\nIncorrect filename passed to -file \n "); - UsageSP(); - } - } -} - -int main(int argc, char *argv[]) -{ - struct testOpts opts; - cusolverSpHandle_t handle = NULL; - cusparseHandle_t cusparseHandle = NULL; /* used in residual evaluation */ - cudaStream_t stream = NULL; - cusparseMatDescr_t descrA = NULL; - - int rowsA = 0; /* number of rows of A */ - int colsA = 0; /* number of columns of A */ - int nnzA = 0; /* number of nonzeros of A */ - int baseA = 0; /* base index in CSR format */ - - /* CSR(A) from I/O */ - int *h_csrRowPtrA = NULL; - int *h_csrColIndA = NULL; - double *h_csrValA = NULL; - - double *h_z = NULL; /* z = B \ (Q*b) */ - double *h_x = NULL; /* x = A \ b */ - double *h_b = NULL; /* b = ones(n,1) */ - double *h_Qb = NULL; /* Q*b */ - double *h_r = NULL; /* r = b - A*x */ - - int *h_Q = NULL; /* n */ - /* reorder to reduce zero fill-in */ - /* Q = symrcm(A) or Q = symamd(A) */ - /* B = Q*A*Q' or B = A(Q,Q) by MATLAB notation */ - int *h_csrRowPtrB = NULL; /* n+1 */ - int *h_csrColIndB = NULL; /* nnzA */ - double *h_csrValB = NULL; /* nnzA */ - int *h_mapBfromA = NULL; /* nnzA */ - - size_t size_perm = 0; - void *buffer_cpu = NULL; /* working space for permutation: B = Q*A*Q^T */ - - /* device copy of A: used in residual evaluation */ - int *d_csrRowPtrA = NULL; - int *d_csrColIndA = NULL; - double *d_csrValA = NULL; - - /* device copy of B: used in B*z = Q*b */ - int *d_csrRowPtrB = NULL; - int *d_csrColIndB = NULL; - double *d_csrValB = NULL; - - int *d_Q = NULL; /* device copy of h_Q */ - double *d_z = NULL; /* z = B \ Q*b */ - double *d_x = NULL; /* x = A \ b */ - double *d_b = NULL; /* a copy of h_b */ - double *d_Qb = NULL; /* a copy of h_Qb */ - double *d_r = NULL; /* r = b - A*x */ - - double tol = 1.e-12; - const int reorder = 0; /* no reordering */ - int singularity = 0; /* -1 if A is invertible under tol. */ - - /* the constants are used in residual evaluation, r = b - A*x */ - const double minus_one = -1.0; - const double one = 1.0; - - double b_inf = 0.0; - double x_inf = 0.0; - double r_inf = 0.0; - double A_inf = 0.0; - int errors = 0; - int issym = 0; - - double start, stop; - double time_solve_cpu; - double time_solve_gpu; - - parseCommandLineArguments(argc, argv, opts); - - if (NULL == opts.testFunc) { - opts.testFunc = "chol"; /* By default running Cholesky as NO solver selected with -R - option. */ - } - - findCudaDevice(argc, (const char **)argv); - - if (opts.sparse_mat_filename == NULL) { - opts.sparse_mat_filename = sdkFindFilePath("lap2D_5pt_n100.mtx", argv[0]); - if (opts.sparse_mat_filename != NULL) - printf("Using default input file [%s]\n", opts.sparse_mat_filename); - else - printf("Could not find lap2D_5pt_n100.mtx\n"); - } - else { - printf("Using input file [%s]\n", opts.sparse_mat_filename); - } - - printf("step 1: read matrix market format\n"); - - if (opts.sparse_mat_filename == NULL) { - fprintf(stderr, "Error: input matrix is not provided\n"); - return EXIT_FAILURE; - } - - if (loadMMSparseMatrix(opts.sparse_mat_filename, - 'd', - true, - &rowsA, - &colsA, - &nnzA, - &h_csrValA, - &h_csrRowPtrA, - &h_csrColIndA, - true)) { - exit(EXIT_FAILURE); - } - baseA = h_csrRowPtrA[0]; // baseA = {0,1} - printf("sparse matrix A is %d x %d with %d nonzeros, base=%d\n", rowsA, colsA, nnzA, baseA); - - if (rowsA != colsA) { - fprintf(stderr, "Error: only support square matrix\n"); - return 1; - } - - checkCudaErrors(cusolverSpCreate(&handle)); - checkCudaErrors(cusparseCreate(&cusparseHandle)); - - checkCudaErrors(cudaStreamCreate(&stream)); - /* bind stream to cusparse and cusolver*/ - checkCudaErrors(cusolverSpSetStream(handle, stream)); - checkCudaErrors(cusparseSetStream(cusparseHandle, stream)); - - /* configure matrix descriptor*/ - checkCudaErrors(cusparseCreateMatDescr(&descrA)); - checkCudaErrors(cusparseSetMatType(descrA, CUSPARSE_MATRIX_TYPE_GENERAL)); - if (baseA) { - checkCudaErrors(cusparseSetMatIndexBase(descrA, CUSPARSE_INDEX_BASE_ONE)); - } - else { - checkCudaErrors(cusparseSetMatIndexBase(descrA, CUSPARSE_INDEX_BASE_ZERO)); - } - - h_z = (double *)malloc(sizeof(double) * colsA); - h_x = (double *)malloc(sizeof(double) * colsA); - h_b = (double *)malloc(sizeof(double) * rowsA); - h_Qb = (double *)malloc(sizeof(double) * rowsA); - h_r = (double *)malloc(sizeof(double) * rowsA); - - h_Q = (int *)malloc(sizeof(int) * colsA); - h_csrRowPtrB = (int *)malloc(sizeof(int) * (rowsA + 1)); - h_csrColIndB = (int *)malloc(sizeof(int) * nnzA); - h_csrValB = (double *)malloc(sizeof(double) * nnzA); - h_mapBfromA = (int *)malloc(sizeof(int) * nnzA); - - assert(NULL != h_z); - assert(NULL != h_x); - assert(NULL != h_b); - assert(NULL != h_Qb); - assert(NULL != h_r); - assert(NULL != h_Q); - assert(NULL != h_csrRowPtrB); - assert(NULL != h_csrColIndB); - assert(NULL != h_csrValB); - assert(NULL != h_mapBfromA); - - checkCudaErrors(cudaMalloc((void **)&d_csrRowPtrA, sizeof(int) * (rowsA + 1))); - checkCudaErrors(cudaMalloc((void **)&d_csrColIndA, sizeof(int) * nnzA)); - checkCudaErrors(cudaMalloc((void **)&d_csrValA, sizeof(double) * nnzA)); - checkCudaErrors(cudaMalloc((void **)&d_csrRowPtrB, sizeof(int) * (rowsA + 1))); - checkCudaErrors(cudaMalloc((void **)&d_csrColIndB, sizeof(int) * nnzA)); - checkCudaErrors(cudaMalloc((void **)&d_csrValB, sizeof(double) * nnzA)); - checkCudaErrors(cudaMalloc((void **)&d_Q, sizeof(int) * colsA)); - checkCudaErrors(cudaMalloc((void **)&d_z, sizeof(double) * colsA)); - checkCudaErrors(cudaMalloc((void **)&d_x, sizeof(double) * colsA)); - checkCudaErrors(cudaMalloc((void **)&d_b, sizeof(double) * rowsA)); - checkCudaErrors(cudaMalloc((void **)&d_Qb, sizeof(double) * rowsA)); - checkCudaErrors(cudaMalloc((void **)&d_r, sizeof(double) * rowsA)); - - /* verify if A has symmetric pattern or not */ - checkCudaErrors( - cusolverSpXcsrissymHost(handle, rowsA, nnzA, descrA, h_csrRowPtrA, h_csrRowPtrA + 1, h_csrColIndA, &issym)); - - if (0 == strcmp(opts.testFunc, "chol")) { - if (!issym) { - printf("Error: A has no symmetric pattern, please use LU or QR \n"); - exit(EXIT_FAILURE); - } - } - - printf("step 2: reorder the matrix A to minimize zero fill-in\n"); - printf(" if the user choose a reordering by -P=symrcm, -P=symamd or " - "-P=metis\n"); - - if (NULL != opts.reorder) { - if (0 == strcmp(opts.reorder, "symrcm")) { - printf("step 2.1: Q = symrcm(A) \n"); - checkCudaErrors(cusolverSpXcsrsymrcmHost(handle, rowsA, nnzA, descrA, h_csrRowPtrA, h_csrColIndA, h_Q)); - } - else if (0 == strcmp(opts.reorder, "symamd")) { - printf("step 2.1: Q = symamd(A) \n"); - checkCudaErrors(cusolverSpXcsrsymamdHost(handle, rowsA, nnzA, descrA, h_csrRowPtrA, h_csrColIndA, h_Q)); - } - else if (0 == strcmp(opts.reorder, "metis")) { - printf("step 2.1: Q = metis(A) \n"); - checkCudaErrors(cusolverSpXcsrmetisndHost(handle, - rowsA, - nnzA, - descrA, - h_csrRowPtrA, - h_csrColIndA, - NULL, /* default setting. */ - h_Q)); - } - else { - fprintf(stderr, "Error: %s is unknown reordering\n", opts.reorder); - return 1; - } - } - else { - printf("step 2.1: no reordering is chosen, Q = 0:n-1 \n"); - for (int j = 0; j < rowsA; j++) { - h_Q[j] = j; - } - } - - printf("step 2.2: B = A(Q,Q) \n"); - - memcpy(h_csrRowPtrB, h_csrRowPtrA, sizeof(int) * (rowsA + 1)); - memcpy(h_csrColIndB, h_csrColIndA, sizeof(int) * nnzA); - - checkCudaErrors(cusolverSpXcsrperm_bufferSizeHost( - handle, rowsA, colsA, nnzA, descrA, h_csrRowPtrB, h_csrColIndB, h_Q, h_Q, &size_perm)); - - if (buffer_cpu) { - free(buffer_cpu); - } - buffer_cpu = (void *)malloc(sizeof(char) * size_perm); - assert(NULL != buffer_cpu); - - /* h_mapBfromA = Identity */ - for (int j = 0; j < nnzA; j++) { - h_mapBfromA[j] = j; - } - checkCudaErrors(cusolverSpXcsrpermHost( - handle, rowsA, colsA, nnzA, descrA, h_csrRowPtrB, h_csrColIndB, h_Q, h_Q, h_mapBfromA, buffer_cpu)); - - /* B = A( mapBfromA ) */ - for (int j = 0; j < nnzA; j++) { - h_csrValB[j] = h_csrValA[h_mapBfromA[j]]; - } - - printf("step 3: b(j) = 1 + j/n \n"); - for (int row = 0; row < rowsA; row++) { - h_b[row] = 1.0 + ((double)row) / ((double)rowsA); - } - - /* h_Qb = b(Q) */ - for (int row = 0; row < rowsA; row++) { - h_Qb[row] = h_b[h_Q[row]]; - } - - printf("step 4: prepare data on device\n"); - checkCudaErrors( - cudaMemcpyAsync(d_csrRowPtrA, h_csrRowPtrA, sizeof(int) * (rowsA + 1), cudaMemcpyHostToDevice, stream)); - checkCudaErrors(cudaMemcpyAsync(d_csrColIndA, h_csrColIndA, sizeof(int) * nnzA, cudaMemcpyHostToDevice, stream)); - checkCudaErrors(cudaMemcpyAsync(d_csrValA, h_csrValA, sizeof(double) * nnzA, cudaMemcpyHostToDevice, stream)); - checkCudaErrors( - cudaMemcpyAsync(d_csrRowPtrB, h_csrRowPtrB, sizeof(int) * (rowsA + 1), cudaMemcpyHostToDevice, stream)); - checkCudaErrors(cudaMemcpyAsync(d_csrColIndB, h_csrColIndB, sizeof(int) * nnzA, cudaMemcpyHostToDevice, stream)); - checkCudaErrors(cudaMemcpyAsync(d_csrValB, h_csrValB, sizeof(double) * nnzA, cudaMemcpyHostToDevice, stream)); - checkCudaErrors(cudaMemcpyAsync(d_b, h_b, sizeof(double) * rowsA, cudaMemcpyHostToDevice, stream)); - checkCudaErrors(cudaMemcpyAsync(d_Qb, h_Qb, sizeof(double) * rowsA, cudaMemcpyHostToDevice, stream)); - checkCudaErrors(cudaMemcpyAsync(d_Q, h_Q, sizeof(int) * rowsA, cudaMemcpyHostToDevice, stream)); - - printf("step 5: solve A*x = b on CPU \n"); - start = second(); - - /* solve B*z = Q*b */ - if (0 == strcmp(opts.testFunc, "chol")) { - checkCudaErrors(cusolverSpDcsrlsvcholHost( - handle, rowsA, nnzA, descrA, h_csrValB, h_csrRowPtrB, h_csrColIndB, h_Qb, tol, reorder, h_z, &singularity)); - } - else if (0 == strcmp(opts.testFunc, "lu")) { - checkCudaErrors(cusolverSpDcsrlsvluHost( - handle, rowsA, nnzA, descrA, h_csrValB, h_csrRowPtrB, h_csrColIndB, h_Qb, tol, reorder, h_z, &singularity)); - } - else if (0 == strcmp(opts.testFunc, "qr")) { - checkCudaErrors(cusolverSpDcsrlsvqrHost( - handle, rowsA, nnzA, descrA, h_csrValB, h_csrRowPtrB, h_csrColIndB, h_Qb, tol, reorder, h_z, &singularity)); - } - else { - fprintf(stderr, "Error: %s is unknown function\n", opts.testFunc); - return 1; - } - - /* Q*x = z */ - for (int row = 0; row < rowsA; row++) { - h_x[h_Q[row]] = h_z[row]; - } - - if (0 <= singularity) { - printf("WARNING: the matrix is singular at row %d under tol (%E)\n", singularity, tol); - } - - stop = second(); - time_solve_cpu = stop - start; - - printf("step 6: evaluate residual r = b - A*x (result on CPU)\n"); - checkCudaErrors(cudaMemcpyAsync(d_r, d_b, sizeof(double) * rowsA, cudaMemcpyDeviceToDevice, stream)); - checkCudaErrors(cudaMemcpyAsync(d_x, h_x, sizeof(double) * colsA, cudaMemcpyHostToDevice, stream)); - - /* Wrap raw data into cuSPARSE generic API objects */ - cusparseSpMatDescr_t matA = NULL; - if (baseA) { - checkCudaErrors(cusparseCreateCsr(&matA, - rowsA, - colsA, - nnzA, - d_csrRowPtrA, - d_csrColIndA, - d_csrValA, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ONE, - CUDA_R_64F)); - } - else { - checkCudaErrors(cusparseCreateCsr(&matA, - rowsA, - colsA, - nnzA, - d_csrRowPtrA, - d_csrColIndA, - d_csrValA, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ZERO, - CUDA_R_64F)); - } - - cusparseDnVecDescr_t vecx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecx, colsA, d_x, CUDA_R_64F)); - cusparseDnVecDescr_t vecAx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecAx, rowsA, d_r, CUDA_R_64F)); - - /* Allocate workspace for cuSPARSE */ - size_t bufferSize = 0; - checkCudaErrors(cusparseSpMV_bufferSize(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - &bufferSize)); - void *buffer = NULL; - checkCudaErrors(cudaMalloc(&buffer, bufferSize)); - - checkCudaErrors(cusparseSpMV(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - - checkCudaErrors(cudaMemcpyAsync(h_r, d_r, sizeof(double) * rowsA, cudaMemcpyDeviceToHost, stream)); - /* wait until h_r is ready */ - checkCudaErrors(cudaDeviceSynchronize()); - - b_inf = vec_norminf(rowsA, h_b); - x_inf = vec_norminf(colsA, h_x); - r_inf = vec_norminf(rowsA, h_r); - A_inf = csr_mat_norminf(rowsA, colsA, nnzA, descrA, h_csrValA, h_csrRowPtrA, h_csrColIndA); - - printf("(CPU) |b - A*x| = %E \n", r_inf); - printf("(CPU) |A| = %E \n", A_inf); - printf("(CPU) |x| = %E \n", x_inf); - printf("(CPU) |b| = %E \n", b_inf); - printf("(CPU) |b - A*x|/(|A|*|x| + |b|) = %E \n", r_inf / (A_inf * x_inf + b_inf)); - - printf("step 7: solve A*x = b on GPU\n"); - start = second(); - - /* solve B*z = Q*b */ - if (0 == strcmp(opts.testFunc, "chol")) { - checkCudaErrors(cusolverSpDcsrlsvchol( - handle, rowsA, nnzA, descrA, d_csrValB, d_csrRowPtrB, d_csrColIndB, d_Qb, tol, reorder, d_z, &singularity)); - } - else if (0 == strcmp(opts.testFunc, "lu")) { - printf("WARNING: no LU available on GPU \n"); - } - else if (0 == strcmp(opts.testFunc, "qr")) { - checkCudaErrors(cusolverSpDcsrlsvqr( - handle, rowsA, nnzA, descrA, d_csrValB, d_csrRowPtrB, d_csrColIndB, d_Qb, tol, reorder, d_z, &singularity)); - } - else { - fprintf(stderr, "Error: %s is unknow function\n", opts.testFunc); - return 1; - } - checkCudaErrors(cudaDeviceSynchronize()); - if (0 <= singularity) { - printf("WARNING: the matrix is singular at row %d under tol (%E)\n", singularity, tol); - } - /* Q*x = z */ - cusparseSpVecDescr_t vecz = NULL; - checkCudaErrors( - cusparseCreateSpVec(&vecz, colsA, rowsA, d_Q, d_z, CUSPARSE_INDEX_32I, CUSPARSE_INDEX_BASE_ZERO, CUDA_R_64F)); - checkCudaErrors(cusparseScatter(cusparseHandle, vecz, vecx)); - checkCudaErrors(cusparseDestroySpVec(vecz)); - - - checkCudaErrors(cudaDeviceSynchronize()); - - stop = second(); - time_solve_gpu = stop - start; - - printf("step 8: evaluate residual r = b - A*x (result on GPU)\n"); - checkCudaErrors(cudaMemcpyAsync(d_r, d_b, sizeof(double) * rowsA, cudaMemcpyDeviceToDevice, stream)); - - checkCudaErrors(cusparseSpMV(cusparseHandle, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - - checkCudaErrors(cudaMemcpyAsync(h_x, d_x, sizeof(double) * colsA, cudaMemcpyDeviceToHost, stream)); - checkCudaErrors(cudaMemcpyAsync(h_r, d_r, sizeof(double) * rowsA, cudaMemcpyDeviceToHost, stream)); - /* wait until h_x and h_r are ready */ - checkCudaErrors(cudaDeviceSynchronize()); - - b_inf = vec_norminf(rowsA, h_b); - x_inf = vec_norminf(colsA, h_x); - r_inf = vec_norminf(rowsA, h_r); - - if (0 != strcmp(opts.testFunc, "lu")) { - // only cholesky and qr have GPU version - printf("(GPU) |b - A*x| = %E \n", r_inf); - printf("(GPU) |A| = %E \n", A_inf); - printf("(GPU) |x| = %E \n", x_inf); - printf("(GPU) |b| = %E \n", b_inf); - printf("(GPU) |b - A*x|/(|A|*|x| + |b|) = %E \n", r_inf / (A_inf * x_inf + b_inf)); - } - - fprintf(stdout, "timing %s: CPU = %10.6f sec , GPU = %10.6f sec\n", opts.testFunc, time_solve_cpu, time_solve_gpu); - - if (0 != strcmp(opts.testFunc, "lu")) { - printf("show last 10 elements of solution vector (GPU) \n"); - printf("consistent result for different reordering and solver \n"); - for (int j = rowsA - 10; j < rowsA; j++) { - printf("x[%d] = %E\n", j, h_x[j]); - } - } - - if (handle) { - checkCudaErrors(cusolverSpDestroy(handle)); - } - if (cusparseHandle) { - checkCudaErrors(cusparseDestroy(cusparseHandle)); - } - if (stream) { - checkCudaErrors(cudaStreamDestroy(stream)); - } - if (descrA) { - checkCudaErrors(cusparseDestroyMatDescr(descrA)); - } - if (matA) { - checkCudaErrors(cusparseDestroySpMat(matA)); - } - if (vecx) { - checkCudaErrors(cusparseDestroyDnVec(vecx)); - } - if (vecAx) { - checkCudaErrors(cusparseDestroyDnVec(vecAx)); - } - - if (h_csrValA) { - free(h_csrValA); - } - if (h_csrRowPtrA) { - free(h_csrRowPtrA); - } - if (h_csrColIndA) { - free(h_csrColIndA); - } - if (h_z) { - free(h_z); - } - if (h_x) { - free(h_x); - } - if (h_b) { - free(h_b); - } - if (h_Qb) { - free(h_Qb); - } - if (h_r) { - free(h_r); - } - - if (h_Q) { - free(h_Q); - } - - if (h_csrRowPtrB) { - free(h_csrRowPtrB); - } - if (h_csrColIndB) { - free(h_csrColIndB); - } - if (h_csrValB) { - free(h_csrValB); - } - if (h_mapBfromA) { - free(h_mapBfromA); - } - - if (buffer_cpu) { - free(buffer_cpu); - } - - if (buffer) { - checkCudaErrors(cudaFree(buffer)); - } - if (d_csrValA) { - checkCudaErrors(cudaFree(d_csrValA)); - } - if (d_csrRowPtrA) { - checkCudaErrors(cudaFree(d_csrRowPtrA)); - } - if (d_csrColIndA) { - checkCudaErrors(cudaFree(d_csrColIndA)); - } - if (d_csrValB) { - checkCudaErrors(cudaFree(d_csrValB)); - } - if (d_csrRowPtrB) { - checkCudaErrors(cudaFree(d_csrRowPtrB)); - } - if (d_csrColIndB) { - checkCudaErrors(cudaFree(d_csrColIndB)); - } - if (d_Q) { - checkCudaErrors(cudaFree(d_Q)); - } - if (d_z) { - checkCudaErrors(cudaFree(d_z)); - } - if (d_x) { - checkCudaErrors(cudaFree(d_x)); - } - if (d_b) { - checkCudaErrors(cudaFree(d_b)); - } - if (d_Qb) { - checkCudaErrors(cudaFree(d_Qb)); - } - if (d_r) { - checkCudaErrors(cudaFree(d_r)); - } - - return 0; -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/lap2D_5pt_n100.mtx b/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/lap2D_5pt_n100.mtx deleted file mode 100644 index dae3c1eb..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/lap2D_5pt_n100.mtx +++ /dev/null @@ -1,29803 +0,0 @@ -%%MatrixMarket matrix coordinate real symmetric -% Generated 20-Nov-2014 -10000 10000 29800 -1 1 4 -2 1 -1 -101 1 -1 -2 2 4 -3 2 -1 -102 2 -1 -3 3 4 -4 3 -1 -103 3 -1 -4 4 4 -5 4 -1 -104 4 -1 -5 5 4 -6 5 -1 -105 5 -1 -6 6 4 -7 6 -1 -106 6 -1 -7 7 4 -8 7 -1 -107 7 -1 -8 8 4 -9 8 -1 -108 8 -1 -9 9 4 -10 9 -1 -109 9 -1 -10 10 4 -11 10 -1 -110 10 -1 -11 11 4 -12 11 -1 -111 11 -1 -12 12 4 -13 12 -1 -112 12 -1 -13 13 4 -14 13 -1 -113 13 -1 -14 14 4 -15 14 -1 -114 14 -1 -15 15 4 -16 15 -1 -115 15 -1 -16 16 4 -17 16 -1 -116 16 -1 -17 17 4 -18 17 -1 -117 17 -1 -18 18 4 -19 18 -1 -118 18 -1 -19 19 4 -20 19 -1 -119 19 -1 -20 20 4 -21 20 -1 -120 20 -1 -21 21 4 -22 21 -1 -121 21 -1 -22 22 4 -23 22 -1 -122 22 -1 -23 23 4 -24 23 -1 -123 23 -1 -24 24 4 -25 24 -1 -124 24 -1 -25 25 4 -26 25 -1 -125 25 -1 -26 26 4 -27 26 -1 -126 26 -1 -27 27 4 -28 27 -1 -127 27 -1 -28 28 4 -29 28 -1 -128 28 -1 -29 29 4 -30 29 -1 -129 29 -1 -30 30 4 -31 30 -1 -130 30 -1 -31 31 4 -32 31 -1 -131 31 -1 -32 32 4 -33 32 -1 -132 32 -1 -33 33 4 -34 33 -1 -133 33 -1 -34 34 4 -35 34 -1 -134 34 -1 -35 35 4 -36 35 -1 -135 35 -1 -36 36 4 -37 36 -1 -136 36 -1 -37 37 4 -38 37 -1 -137 37 -1 -38 38 4 -39 38 -1 -138 38 -1 -39 39 4 -40 39 -1 -139 39 -1 -40 40 4 -41 40 -1 -140 40 -1 -41 41 4 -42 41 -1 -141 41 -1 -42 42 4 -43 42 -1 -142 42 -1 -43 43 4 -44 43 -1 -143 43 -1 -44 44 4 -45 44 -1 -144 44 -1 -45 45 4 -46 45 -1 -145 45 -1 -46 46 4 -47 46 -1 -146 46 -1 -47 47 4 -48 47 -1 -147 47 -1 -48 48 4 -49 48 -1 -148 48 -1 -49 49 4 -50 49 -1 -149 49 -1 -50 50 4 -51 50 -1 -150 50 -1 -51 51 4 -52 51 -1 -151 51 -1 -52 52 4 -53 52 -1 -152 52 -1 -53 53 4 -54 53 -1 -153 53 -1 -54 54 4 -55 54 -1 -154 54 -1 -55 55 4 -56 55 -1 -155 55 -1 -56 56 4 -57 56 -1 -156 56 -1 -57 57 4 -58 57 -1 -157 57 -1 -58 58 4 -59 58 -1 -158 58 -1 -59 59 4 -60 59 -1 -159 59 -1 -60 60 4 -61 60 -1 -160 60 -1 -61 61 4 -62 61 -1 -161 61 -1 -62 62 4 -63 62 -1 -162 62 -1 -63 63 4 -64 63 -1 -163 63 -1 -64 64 4 -65 64 -1 -164 64 -1 -65 65 4 -66 65 -1 -165 65 -1 -66 66 4 -67 66 -1 -166 66 -1 -67 67 4 -68 67 -1 -167 67 -1 -68 68 4 -69 68 -1 -168 68 -1 -69 69 4 -70 69 -1 -169 69 -1 -70 70 4 -71 70 -1 -170 70 -1 -71 71 4 -72 71 -1 -171 71 -1 -72 72 4 -73 72 -1 -172 72 -1 -73 73 4 -74 73 -1 -173 73 -1 -74 74 4 -75 74 -1 -174 74 -1 -75 75 4 -76 75 -1 -175 75 -1 -76 76 4 -77 76 -1 -176 76 -1 -77 77 4 -78 77 -1 -177 77 -1 -78 78 4 -79 78 -1 -178 78 -1 -79 79 4 -80 79 -1 -179 79 -1 -80 80 4 -81 80 -1 -180 80 -1 -81 81 4 -82 81 -1 -181 81 -1 -82 82 4 -83 82 -1 -182 82 -1 -83 83 4 -84 83 -1 -183 83 -1 -84 84 4 -85 84 -1 -184 84 -1 -85 85 4 -86 85 -1 -185 85 -1 -86 86 4 -87 86 -1 -186 86 -1 -87 87 4 -88 87 -1 -187 87 -1 -88 88 4 -89 88 -1 -188 88 -1 -89 89 4 -90 89 -1 -189 89 -1 -90 90 4 -91 90 -1 -190 90 -1 -91 91 4 -92 91 -1 -191 91 -1 -92 92 4 -93 92 -1 -192 92 -1 -93 93 4 -94 93 -1 -193 93 -1 -94 94 4 -95 94 -1 -194 94 -1 -95 95 4 -96 95 -1 -195 95 -1 -96 96 4 -97 96 -1 -196 96 -1 -97 97 4 -98 97 -1 -197 97 -1 -98 98 4 -99 98 -1 -198 98 -1 -99 99 4 -100 99 -1 -199 99 -1 -100 100 4 -200 100 -1 -101 101 4 -102 101 -1 -201 101 -1 -102 102 4 -103 102 -1 -202 102 -1 -103 103 4 -104 103 -1 -203 103 -1 -104 104 4 -105 104 -1 -204 104 -1 -105 105 4 -106 105 -1 -205 105 -1 -106 106 4 -107 106 -1 -206 106 -1 -107 107 4 -108 107 -1 -207 107 -1 -108 108 4 -109 108 -1 -208 108 -1 -109 109 4 -110 109 -1 -209 109 -1 -110 110 4 -111 110 -1 -210 110 -1 -111 111 4 -112 111 -1 -211 111 -1 -112 112 4 -113 112 -1 -212 112 -1 -113 113 4 -114 113 -1 -213 113 -1 -114 114 4 -115 114 -1 -214 114 -1 -115 115 4 -116 115 -1 -215 115 -1 -116 116 4 -117 116 -1 -216 116 -1 -117 117 4 -118 117 -1 -217 117 -1 -118 118 4 -119 118 -1 -218 118 -1 -119 119 4 -120 119 -1 -219 119 -1 -120 120 4 -121 120 -1 -220 120 -1 -121 121 4 -122 121 -1 -221 121 -1 -122 122 4 -123 122 -1 -222 122 -1 -123 123 4 -124 123 -1 -223 123 -1 -124 124 4 -125 124 -1 -224 124 -1 -125 125 4 -126 125 -1 -225 125 -1 -126 126 4 -127 126 -1 -226 126 -1 -127 127 4 -128 127 -1 -227 127 -1 -128 128 4 -129 128 -1 -228 128 -1 -129 129 4 -130 129 -1 -229 129 -1 -130 130 4 -131 130 -1 -230 130 -1 -131 131 4 -132 131 -1 -231 131 -1 -132 132 4 -133 132 -1 -232 132 -1 -133 133 4 -134 133 -1 -233 133 -1 -134 134 4 -135 134 -1 -234 134 -1 -135 135 4 -136 135 -1 -235 135 -1 -136 136 4 -137 136 -1 -236 136 -1 -137 137 4 -138 137 -1 -237 137 -1 -138 138 4 -139 138 -1 -238 138 -1 -139 139 4 -140 139 -1 -239 139 -1 -140 140 4 -141 140 -1 -240 140 -1 -141 141 4 -142 141 -1 -241 141 -1 -142 142 4 -143 142 -1 -242 142 -1 -143 143 4 -144 143 -1 -243 143 -1 -144 144 4 -145 144 -1 -244 144 -1 -145 145 4 -146 145 -1 -245 145 -1 -146 146 4 -147 146 -1 -246 146 -1 -147 147 4 -148 147 -1 -247 147 -1 -148 148 4 -149 148 -1 -248 148 -1 -149 149 4 -150 149 -1 -249 149 -1 -150 150 4 -151 150 -1 -250 150 -1 -151 151 4 -152 151 -1 -251 151 -1 -152 152 4 -153 152 -1 -252 152 -1 -153 153 4 -154 153 -1 -253 153 -1 -154 154 4 -155 154 -1 -254 154 -1 -155 155 4 -156 155 -1 -255 155 -1 -156 156 4 -157 156 -1 -256 156 -1 -157 157 4 -158 157 -1 -257 157 -1 -158 158 4 -159 158 -1 -258 158 -1 -159 159 4 -160 159 -1 -259 159 -1 -160 160 4 -161 160 -1 -260 160 -1 -161 161 4 -162 161 -1 -261 161 -1 -162 162 4 -163 162 -1 -262 162 -1 -163 163 4 -164 163 -1 -263 163 -1 -164 164 4 -165 164 -1 -264 164 -1 -165 165 4 -166 165 -1 -265 165 -1 -166 166 4 -167 166 -1 -266 166 -1 -167 167 4 -168 167 -1 -267 167 -1 -168 168 4 -169 168 -1 -268 168 -1 -169 169 4 -170 169 -1 -269 169 -1 -170 170 4 -171 170 -1 -270 170 -1 -171 171 4 -172 171 -1 -271 171 -1 -172 172 4 -173 172 -1 -272 172 -1 -173 173 4 -174 173 -1 -273 173 -1 -174 174 4 -175 174 -1 -274 174 -1 -175 175 4 -176 175 -1 -275 175 -1 -176 176 4 -177 176 -1 -276 176 -1 -177 177 4 -178 177 -1 -277 177 -1 -178 178 4 -179 178 -1 -278 178 -1 -179 179 4 -180 179 -1 -279 179 -1 -180 180 4 -181 180 -1 -280 180 -1 -181 181 4 -182 181 -1 -281 181 -1 -182 182 4 -183 182 -1 -282 182 -1 -183 183 4 -184 183 -1 -283 183 -1 -184 184 4 -185 184 -1 -284 184 -1 -185 185 4 -186 185 -1 -285 185 -1 -186 186 4 -187 186 -1 -286 186 -1 -187 187 4 -188 187 -1 -287 187 -1 -188 188 4 -189 188 -1 -288 188 -1 -189 189 4 -190 189 -1 -289 189 -1 -190 190 4 -191 190 -1 -290 190 -1 -191 191 4 -192 191 -1 -291 191 -1 -192 192 4 -193 192 -1 -292 192 -1 -193 193 4 -194 193 -1 -293 193 -1 -194 194 4 -195 194 -1 -294 194 -1 -195 195 4 -196 195 -1 -295 195 -1 -196 196 4 -197 196 -1 -296 196 -1 -197 197 4 -198 197 -1 -297 197 -1 -198 198 4 -199 198 -1 -298 198 -1 -199 199 4 -200 199 -1 -299 199 -1 -200 200 4 -300 200 -1 -201 201 4 -202 201 -1 -301 201 -1 -202 202 4 -203 202 -1 -302 202 -1 -203 203 4 -204 203 -1 -303 203 -1 -204 204 4 -205 204 -1 -304 204 -1 -205 205 4 -206 205 -1 -305 205 -1 -206 206 4 -207 206 -1 -306 206 -1 -207 207 4 -208 207 -1 -307 207 -1 -208 208 4 -209 208 -1 -308 208 -1 -209 209 4 -210 209 -1 -309 209 -1 -210 210 4 -211 210 -1 -310 210 -1 -211 211 4 -212 211 -1 -311 211 -1 -212 212 4 -213 212 -1 -312 212 -1 -213 213 4 -214 213 -1 -313 213 -1 -214 214 4 -215 214 -1 -314 214 -1 -215 215 4 -216 215 -1 -315 215 -1 -216 216 4 -217 216 -1 -316 216 -1 -217 217 4 -218 217 -1 -317 217 -1 -218 218 4 -219 218 -1 -318 218 -1 -219 219 4 -220 219 -1 -319 219 -1 -220 220 4 -221 220 -1 -320 220 -1 -221 221 4 -222 221 -1 -321 221 -1 -222 222 4 -223 222 -1 -322 222 -1 -223 223 4 -224 223 -1 -323 223 -1 -224 224 4 -225 224 -1 -324 224 -1 -225 225 4 -226 225 -1 -325 225 -1 -226 226 4 -227 226 -1 -326 226 -1 -227 227 4 -228 227 -1 -327 227 -1 -228 228 4 -229 228 -1 -328 228 -1 -229 229 4 -230 229 -1 -329 229 -1 -230 230 4 -231 230 -1 -330 230 -1 -231 231 4 -232 231 -1 -331 231 -1 -232 232 4 -233 232 -1 -332 232 -1 -233 233 4 -234 233 -1 -333 233 -1 -234 234 4 -235 234 -1 -334 234 -1 -235 235 4 -236 235 -1 -335 235 -1 -236 236 4 -237 236 -1 -336 236 -1 -237 237 4 -238 237 -1 -337 237 -1 -238 238 4 -239 238 -1 -338 238 -1 -239 239 4 -240 239 -1 -339 239 -1 -240 240 4 -241 240 -1 -340 240 -1 -241 241 4 -242 241 -1 -341 241 -1 -242 242 4 -243 242 -1 -342 242 -1 -243 243 4 -244 243 -1 -343 243 -1 -244 244 4 -245 244 -1 -344 244 -1 -245 245 4 -246 245 -1 -345 245 -1 -246 246 4 -247 246 -1 -346 246 -1 -247 247 4 -248 247 -1 -347 247 -1 -248 248 4 -249 248 -1 -348 248 -1 -249 249 4 -250 249 -1 -349 249 -1 -250 250 4 -251 250 -1 -350 250 -1 -251 251 4 -252 251 -1 -351 251 -1 -252 252 4 -253 252 -1 -352 252 -1 -253 253 4 -254 253 -1 -353 253 -1 -254 254 4 -255 254 -1 -354 254 -1 -255 255 4 -256 255 -1 -355 255 -1 -256 256 4 -257 256 -1 -356 256 -1 -257 257 4 -258 257 -1 -357 257 -1 -258 258 4 -259 258 -1 -358 258 -1 -259 259 4 -260 259 -1 -359 259 -1 -260 260 4 -261 260 -1 -360 260 -1 -261 261 4 -262 261 -1 -361 261 -1 -262 262 4 -263 262 -1 -362 262 -1 -263 263 4 -264 263 -1 -363 263 -1 -264 264 4 -265 264 -1 -364 264 -1 -265 265 4 -266 265 -1 -365 265 -1 -266 266 4 -267 266 -1 -366 266 -1 -267 267 4 -268 267 -1 -367 267 -1 -268 268 4 -269 268 -1 -368 268 -1 -269 269 4 -270 269 -1 -369 269 -1 -270 270 4 -271 270 -1 -370 270 -1 -271 271 4 -272 271 -1 -371 271 -1 -272 272 4 -273 272 -1 -372 272 -1 -273 273 4 -274 273 -1 -373 273 -1 -274 274 4 -275 274 -1 -374 274 -1 -275 275 4 -276 275 -1 -375 275 -1 -276 276 4 -277 276 -1 -376 276 -1 -277 277 4 -278 277 -1 -377 277 -1 -278 278 4 -279 278 -1 -378 278 -1 -279 279 4 -280 279 -1 -379 279 -1 -280 280 4 -281 280 -1 -380 280 -1 -281 281 4 -282 281 -1 -381 281 -1 -282 282 4 -283 282 -1 -382 282 -1 -283 283 4 -284 283 -1 -383 283 -1 -284 284 4 -285 284 -1 -384 284 -1 -285 285 4 -286 285 -1 -385 285 -1 -286 286 4 -287 286 -1 -386 286 -1 -287 287 4 -288 287 -1 -387 287 -1 -288 288 4 -289 288 -1 -388 288 -1 -289 289 4 -290 289 -1 -389 289 -1 -290 290 4 -291 290 -1 -390 290 -1 -291 291 4 -292 291 -1 -391 291 -1 -292 292 4 -293 292 -1 -392 292 -1 -293 293 4 -294 293 -1 -393 293 -1 -294 294 4 -295 294 -1 -394 294 -1 -295 295 4 -296 295 -1 -395 295 -1 -296 296 4 -297 296 -1 -396 296 -1 -297 297 4 -298 297 -1 -397 297 -1 -298 298 4 -299 298 -1 -398 298 -1 -299 299 4 -300 299 -1 -399 299 -1 -300 300 4 -400 300 -1 -301 301 4 -302 301 -1 -401 301 -1 -302 302 4 -303 302 -1 -402 302 -1 -303 303 4 -304 303 -1 -403 303 -1 -304 304 4 -305 304 -1 -404 304 -1 -305 305 4 -306 305 -1 -405 305 -1 -306 306 4 -307 306 -1 -406 306 -1 -307 307 4 -308 307 -1 -407 307 -1 -308 308 4 -309 308 -1 -408 308 -1 -309 309 4 -310 309 -1 -409 309 -1 -310 310 4 -311 310 -1 -410 310 -1 -311 311 4 -312 311 -1 -411 311 -1 -312 312 4 -313 312 -1 -412 312 -1 -313 313 4 -314 313 -1 -413 313 -1 -314 314 4 -315 314 -1 -414 314 -1 -315 315 4 -316 315 -1 -415 315 -1 -316 316 4 -317 316 -1 -416 316 -1 -317 317 4 -318 317 -1 -417 317 -1 -318 318 4 -319 318 -1 -418 318 -1 -319 319 4 -320 319 -1 -419 319 -1 -320 320 4 -321 320 -1 -420 320 -1 -321 321 4 -322 321 -1 -421 321 -1 -322 322 4 -323 322 -1 -422 322 -1 -323 323 4 -324 323 -1 -423 323 -1 -324 324 4 -325 324 -1 -424 324 -1 -325 325 4 -326 325 -1 -425 325 -1 -326 326 4 -327 326 -1 -426 326 -1 -327 327 4 -328 327 -1 -427 327 -1 -328 328 4 -329 328 -1 -428 328 -1 -329 329 4 -330 329 -1 -429 329 -1 -330 330 4 -331 330 -1 -430 330 -1 -331 331 4 -332 331 -1 -431 331 -1 -332 332 4 -333 332 -1 -432 332 -1 -333 333 4 -334 333 -1 -433 333 -1 -334 334 4 -335 334 -1 -434 334 -1 -335 335 4 -336 335 -1 -435 335 -1 -336 336 4 -337 336 -1 -436 336 -1 -337 337 4 -338 337 -1 -437 337 -1 -338 338 4 -339 338 -1 -438 338 -1 -339 339 4 -340 339 -1 -439 339 -1 -340 340 4 -341 340 -1 -440 340 -1 -341 341 4 -342 341 -1 -441 341 -1 -342 342 4 -343 342 -1 -442 342 -1 -343 343 4 -344 343 -1 -443 343 -1 -344 344 4 -345 344 -1 -444 344 -1 -345 345 4 -346 345 -1 -445 345 -1 -346 346 4 -347 346 -1 -446 346 -1 -347 347 4 -348 347 -1 -447 347 -1 -348 348 4 -349 348 -1 -448 348 -1 -349 349 4 -350 349 -1 -449 349 -1 -350 350 4 -351 350 -1 -450 350 -1 -351 351 4 -352 351 -1 -451 351 -1 -352 352 4 -353 352 -1 -452 352 -1 -353 353 4 -354 353 -1 -453 353 -1 -354 354 4 -355 354 -1 -454 354 -1 -355 355 4 -356 355 -1 -455 355 -1 -356 356 4 -357 356 -1 -456 356 -1 -357 357 4 -358 357 -1 -457 357 -1 -358 358 4 -359 358 -1 -458 358 -1 -359 359 4 -360 359 -1 -459 359 -1 -360 360 4 -361 360 -1 -460 360 -1 -361 361 4 -362 361 -1 -461 361 -1 -362 362 4 -363 362 -1 -462 362 -1 -363 363 4 -364 363 -1 -463 363 -1 -364 364 4 -365 364 -1 -464 364 -1 -365 365 4 -366 365 -1 -465 365 -1 -366 366 4 -367 366 -1 -466 366 -1 -367 367 4 -368 367 -1 -467 367 -1 -368 368 4 -369 368 -1 -468 368 -1 -369 369 4 -370 369 -1 -469 369 -1 -370 370 4 -371 370 -1 -470 370 -1 -371 371 4 -372 371 -1 -471 371 -1 -372 372 4 -373 372 -1 -472 372 -1 -373 373 4 -374 373 -1 -473 373 -1 -374 374 4 -375 374 -1 -474 374 -1 -375 375 4 -376 375 -1 -475 375 -1 -376 376 4 -377 376 -1 -476 376 -1 -377 377 4 -378 377 -1 -477 377 -1 -378 378 4 -379 378 -1 -478 378 -1 -379 379 4 -380 379 -1 -479 379 -1 -380 380 4 -381 380 -1 -480 380 -1 -381 381 4 -382 381 -1 -481 381 -1 -382 382 4 -383 382 -1 -482 382 -1 -383 383 4 -384 383 -1 -483 383 -1 -384 384 4 -385 384 -1 -484 384 -1 -385 385 4 -386 385 -1 -485 385 -1 -386 386 4 -387 386 -1 -486 386 -1 -387 387 4 -388 387 -1 -487 387 -1 -388 388 4 -389 388 -1 -488 388 -1 -389 389 4 -390 389 -1 -489 389 -1 -390 390 4 -391 390 -1 -490 390 -1 -391 391 4 -392 391 -1 -491 391 -1 -392 392 4 -393 392 -1 -492 392 -1 -393 393 4 -394 393 -1 -493 393 -1 -394 394 4 -395 394 -1 -494 394 -1 -395 395 4 -396 395 -1 -495 395 -1 -396 396 4 -397 396 -1 -496 396 -1 -397 397 4 -398 397 -1 -497 397 -1 -398 398 4 -399 398 -1 -498 398 -1 -399 399 4 -400 399 -1 -499 399 -1 -400 400 4 -500 400 -1 -401 401 4 -402 401 -1 -501 401 -1 -402 402 4 -403 402 -1 -502 402 -1 -403 403 4 -404 403 -1 -503 403 -1 -404 404 4 -405 404 -1 -504 404 -1 -405 405 4 -406 405 -1 -505 405 -1 -406 406 4 -407 406 -1 -506 406 -1 -407 407 4 -408 407 -1 -507 407 -1 -408 408 4 -409 408 -1 -508 408 -1 -409 409 4 -410 409 -1 -509 409 -1 -410 410 4 -411 410 -1 -510 410 -1 -411 411 4 -412 411 -1 -511 411 -1 -412 412 4 -413 412 -1 -512 412 -1 -413 413 4 -414 413 -1 -513 413 -1 -414 414 4 -415 414 -1 -514 414 -1 -415 415 4 -416 415 -1 -515 415 -1 -416 416 4 -417 416 -1 -516 416 -1 -417 417 4 -418 417 -1 -517 417 -1 -418 418 4 -419 418 -1 -518 418 -1 -419 419 4 -420 419 -1 -519 419 -1 -420 420 4 -421 420 -1 -520 420 -1 -421 421 4 -422 421 -1 -521 421 -1 -422 422 4 -423 422 -1 -522 422 -1 -423 423 4 -424 423 -1 -523 423 -1 -424 424 4 -425 424 -1 -524 424 -1 -425 425 4 -426 425 -1 -525 425 -1 -426 426 4 -427 426 -1 -526 426 -1 -427 427 4 -428 427 -1 -527 427 -1 -428 428 4 -429 428 -1 -528 428 -1 -429 429 4 -430 429 -1 -529 429 -1 -430 430 4 -431 430 -1 -530 430 -1 -431 431 4 -432 431 -1 -531 431 -1 -432 432 4 -433 432 -1 -532 432 -1 -433 433 4 -434 433 -1 -533 433 -1 -434 434 4 -435 434 -1 -534 434 -1 -435 435 4 -436 435 -1 -535 435 -1 -436 436 4 -437 436 -1 -536 436 -1 -437 437 4 -438 437 -1 -537 437 -1 -438 438 4 -439 438 -1 -538 438 -1 -439 439 4 -440 439 -1 -539 439 -1 -440 440 4 -441 440 -1 -540 440 -1 -441 441 4 -442 441 -1 -541 441 -1 -442 442 4 -443 442 -1 -542 442 -1 -443 443 4 -444 443 -1 -543 443 -1 -444 444 4 -445 444 -1 -544 444 -1 -445 445 4 -446 445 -1 -545 445 -1 -446 446 4 -447 446 -1 -546 446 -1 -447 447 4 -448 447 -1 -547 447 -1 -448 448 4 -449 448 -1 -548 448 -1 -449 449 4 -450 449 -1 -549 449 -1 -450 450 4 -451 450 -1 -550 450 -1 -451 451 4 -452 451 -1 -551 451 -1 -452 452 4 -453 452 -1 -552 452 -1 -453 453 4 -454 453 -1 -553 453 -1 -454 454 4 -455 454 -1 -554 454 -1 -455 455 4 -456 455 -1 -555 455 -1 -456 456 4 -457 456 -1 -556 456 -1 -457 457 4 -458 457 -1 -557 457 -1 -458 458 4 -459 458 -1 -558 458 -1 -459 459 4 -460 459 -1 -559 459 -1 -460 460 4 -461 460 -1 -560 460 -1 -461 461 4 -462 461 -1 -561 461 -1 -462 462 4 -463 462 -1 -562 462 -1 -463 463 4 -464 463 -1 -563 463 -1 -464 464 4 -465 464 -1 -564 464 -1 -465 465 4 -466 465 -1 -565 465 -1 -466 466 4 -467 466 -1 -566 466 -1 -467 467 4 -468 467 -1 -567 467 -1 -468 468 4 -469 468 -1 -568 468 -1 -469 469 4 -470 469 -1 -569 469 -1 -470 470 4 -471 470 -1 -570 470 -1 -471 471 4 -472 471 -1 -571 471 -1 -472 472 4 -473 472 -1 -572 472 -1 -473 473 4 -474 473 -1 -573 473 -1 -474 474 4 -475 474 -1 -574 474 -1 -475 475 4 -476 475 -1 -575 475 -1 -476 476 4 -477 476 -1 -576 476 -1 -477 477 4 -478 477 -1 -577 477 -1 -478 478 4 -479 478 -1 -578 478 -1 -479 479 4 -480 479 -1 -579 479 -1 -480 480 4 -481 480 -1 -580 480 -1 -481 481 4 -482 481 -1 -581 481 -1 -482 482 4 -483 482 -1 -582 482 -1 -483 483 4 -484 483 -1 -583 483 -1 -484 484 4 -485 484 -1 -584 484 -1 -485 485 4 -486 485 -1 -585 485 -1 -486 486 4 -487 486 -1 -586 486 -1 -487 487 4 -488 487 -1 -587 487 -1 -488 488 4 -489 488 -1 -588 488 -1 -489 489 4 -490 489 -1 -589 489 -1 -490 490 4 -491 490 -1 -590 490 -1 -491 491 4 -492 491 -1 -591 491 -1 -492 492 4 -493 492 -1 -592 492 -1 -493 493 4 -494 493 -1 -593 493 -1 -494 494 4 -495 494 -1 -594 494 -1 -495 495 4 -496 495 -1 -595 495 -1 -496 496 4 -497 496 -1 -596 496 -1 -497 497 4 -498 497 -1 -597 497 -1 -498 498 4 -499 498 -1 -598 498 -1 -499 499 4 -500 499 -1 -599 499 -1 -500 500 4 -600 500 -1 -501 501 4 -502 501 -1 -601 501 -1 -502 502 4 -503 502 -1 -602 502 -1 -503 503 4 -504 503 -1 -603 503 -1 -504 504 4 -505 504 -1 -604 504 -1 -505 505 4 -506 505 -1 -605 505 -1 -506 506 4 -507 506 -1 -606 506 -1 -507 507 4 -508 507 -1 -607 507 -1 -508 508 4 -509 508 -1 -608 508 -1 -509 509 4 -510 509 -1 -609 509 -1 -510 510 4 -511 510 -1 -610 510 -1 -511 511 4 -512 511 -1 -611 511 -1 -512 512 4 -513 512 -1 -612 512 -1 -513 513 4 -514 513 -1 -613 513 -1 -514 514 4 -515 514 -1 -614 514 -1 -515 515 4 -516 515 -1 -615 515 -1 -516 516 4 -517 516 -1 -616 516 -1 -517 517 4 -518 517 -1 -617 517 -1 -518 518 4 -519 518 -1 -618 518 -1 -519 519 4 -520 519 -1 -619 519 -1 -520 520 4 -521 520 -1 -620 520 -1 -521 521 4 -522 521 -1 -621 521 -1 -522 522 4 -523 522 -1 -622 522 -1 -523 523 4 -524 523 -1 -623 523 -1 -524 524 4 -525 524 -1 -624 524 -1 -525 525 4 -526 525 -1 -625 525 -1 -526 526 4 -527 526 -1 -626 526 -1 -527 527 4 -528 527 -1 -627 527 -1 -528 528 4 -529 528 -1 -628 528 -1 -529 529 4 -530 529 -1 -629 529 -1 -530 530 4 -531 530 -1 -630 530 -1 -531 531 4 -532 531 -1 -631 531 -1 -532 532 4 -533 532 -1 -632 532 -1 -533 533 4 -534 533 -1 -633 533 -1 -534 534 4 -535 534 -1 -634 534 -1 -535 535 4 -536 535 -1 -635 535 -1 -536 536 4 -537 536 -1 -636 536 -1 -537 537 4 -538 537 -1 -637 537 -1 -538 538 4 -539 538 -1 -638 538 -1 -539 539 4 -540 539 -1 -639 539 -1 -540 540 4 -541 540 -1 -640 540 -1 -541 541 4 -542 541 -1 -641 541 -1 -542 542 4 -543 542 -1 -642 542 -1 -543 543 4 -544 543 -1 -643 543 -1 -544 544 4 -545 544 -1 -644 544 -1 -545 545 4 -546 545 -1 -645 545 -1 -546 546 4 -547 546 -1 -646 546 -1 -547 547 4 -548 547 -1 -647 547 -1 -548 548 4 -549 548 -1 -648 548 -1 -549 549 4 -550 549 -1 -649 549 -1 -550 550 4 -551 550 -1 -650 550 -1 -551 551 4 -552 551 -1 -651 551 -1 -552 552 4 -553 552 -1 -652 552 -1 -553 553 4 -554 553 -1 -653 553 -1 -554 554 4 -555 554 -1 -654 554 -1 -555 555 4 -556 555 -1 -655 555 -1 -556 556 4 -557 556 -1 -656 556 -1 -557 557 4 -558 557 -1 -657 557 -1 -558 558 4 -559 558 -1 -658 558 -1 -559 559 4 -560 559 -1 -659 559 -1 -560 560 4 -561 560 -1 -660 560 -1 -561 561 4 -562 561 -1 -661 561 -1 -562 562 4 -563 562 -1 -662 562 -1 -563 563 4 -564 563 -1 -663 563 -1 -564 564 4 -565 564 -1 -664 564 -1 -565 565 4 -566 565 -1 -665 565 -1 -566 566 4 -567 566 -1 -666 566 -1 -567 567 4 -568 567 -1 -667 567 -1 -568 568 4 -569 568 -1 -668 568 -1 -569 569 4 -570 569 -1 -669 569 -1 -570 570 4 -571 570 -1 -670 570 -1 -571 571 4 -572 571 -1 -671 571 -1 -572 572 4 -573 572 -1 -672 572 -1 -573 573 4 -574 573 -1 -673 573 -1 -574 574 4 -575 574 -1 -674 574 -1 -575 575 4 -576 575 -1 -675 575 -1 -576 576 4 -577 576 -1 -676 576 -1 -577 577 4 -578 577 -1 -677 577 -1 -578 578 4 -579 578 -1 -678 578 -1 -579 579 4 -580 579 -1 -679 579 -1 -580 580 4 -581 580 -1 -680 580 -1 -581 581 4 -582 581 -1 -681 581 -1 -582 582 4 -583 582 -1 -682 582 -1 -583 583 4 -584 583 -1 -683 583 -1 -584 584 4 -585 584 -1 -684 584 -1 -585 585 4 -586 585 -1 -685 585 -1 -586 586 4 -587 586 -1 -686 586 -1 -587 587 4 -588 587 -1 -687 587 -1 -588 588 4 -589 588 -1 -688 588 -1 -589 589 4 -590 589 -1 -689 589 -1 -590 590 4 -591 590 -1 -690 590 -1 -591 591 4 -592 591 -1 -691 591 -1 -592 592 4 -593 592 -1 -692 592 -1 -593 593 4 -594 593 -1 -693 593 -1 -594 594 4 -595 594 -1 -694 594 -1 -595 595 4 -596 595 -1 -695 595 -1 -596 596 4 -597 596 -1 -696 596 -1 -597 597 4 -598 597 -1 -697 597 -1 -598 598 4 -599 598 -1 -698 598 -1 -599 599 4 -600 599 -1 -699 599 -1 -600 600 4 -700 600 -1 -601 601 4 -602 601 -1 -701 601 -1 -602 602 4 -603 602 -1 -702 602 -1 -603 603 4 -604 603 -1 -703 603 -1 -604 604 4 -605 604 -1 -704 604 -1 -605 605 4 -606 605 -1 -705 605 -1 -606 606 4 -607 606 -1 -706 606 -1 -607 607 4 -608 607 -1 -707 607 -1 -608 608 4 -609 608 -1 -708 608 -1 -609 609 4 -610 609 -1 -709 609 -1 -610 610 4 -611 610 -1 -710 610 -1 -611 611 4 -612 611 -1 -711 611 -1 -612 612 4 -613 612 -1 -712 612 -1 -613 613 4 -614 613 -1 -713 613 -1 -614 614 4 -615 614 -1 -714 614 -1 -615 615 4 -616 615 -1 -715 615 -1 -616 616 4 -617 616 -1 -716 616 -1 -617 617 4 -618 617 -1 -717 617 -1 -618 618 4 -619 618 -1 -718 618 -1 -619 619 4 -620 619 -1 -719 619 -1 -620 620 4 -621 620 -1 -720 620 -1 -621 621 4 -622 621 -1 -721 621 -1 -622 622 4 -623 622 -1 -722 622 -1 -623 623 4 -624 623 -1 -723 623 -1 -624 624 4 -625 624 -1 -724 624 -1 -625 625 4 -626 625 -1 -725 625 -1 -626 626 4 -627 626 -1 -726 626 -1 -627 627 4 -628 627 -1 -727 627 -1 -628 628 4 -629 628 -1 -728 628 -1 -629 629 4 -630 629 -1 -729 629 -1 -630 630 4 -631 630 -1 -730 630 -1 -631 631 4 -632 631 -1 -731 631 -1 -632 632 4 -633 632 -1 -732 632 -1 -633 633 4 -634 633 -1 -733 633 -1 -634 634 4 -635 634 -1 -734 634 -1 -635 635 4 -636 635 -1 -735 635 -1 -636 636 4 -637 636 -1 -736 636 -1 -637 637 4 -638 637 -1 -737 637 -1 -638 638 4 -639 638 -1 -738 638 -1 -639 639 4 -640 639 -1 -739 639 -1 -640 640 4 -641 640 -1 -740 640 -1 -641 641 4 -642 641 -1 -741 641 -1 -642 642 4 -643 642 -1 -742 642 -1 -643 643 4 -644 643 -1 -743 643 -1 -644 644 4 -645 644 -1 -744 644 -1 -645 645 4 -646 645 -1 -745 645 -1 -646 646 4 -647 646 -1 -746 646 -1 -647 647 4 -648 647 -1 -747 647 -1 -648 648 4 -649 648 -1 -748 648 -1 -649 649 4 -650 649 -1 -749 649 -1 -650 650 4 -651 650 -1 -750 650 -1 -651 651 4 -652 651 -1 -751 651 -1 -652 652 4 -653 652 -1 -752 652 -1 -653 653 4 -654 653 -1 -753 653 -1 -654 654 4 -655 654 -1 -754 654 -1 -655 655 4 -656 655 -1 -755 655 -1 -656 656 4 -657 656 -1 -756 656 -1 -657 657 4 -658 657 -1 -757 657 -1 -658 658 4 -659 658 -1 -758 658 -1 -659 659 4 -660 659 -1 -759 659 -1 -660 660 4 -661 660 -1 -760 660 -1 -661 661 4 -662 661 -1 -761 661 -1 -662 662 4 -663 662 -1 -762 662 -1 -663 663 4 -664 663 -1 -763 663 -1 -664 664 4 -665 664 -1 -764 664 -1 -665 665 4 -666 665 -1 -765 665 -1 -666 666 4 -667 666 -1 -766 666 -1 -667 667 4 -668 667 -1 -767 667 -1 -668 668 4 -669 668 -1 -768 668 -1 -669 669 4 -670 669 -1 -769 669 -1 -670 670 4 -671 670 -1 -770 670 -1 -671 671 4 -672 671 -1 -771 671 -1 -672 672 4 -673 672 -1 -772 672 -1 -673 673 4 -674 673 -1 -773 673 -1 -674 674 4 -675 674 -1 -774 674 -1 -675 675 4 -676 675 -1 -775 675 -1 -676 676 4 -677 676 -1 -776 676 -1 -677 677 4 -678 677 -1 -777 677 -1 -678 678 4 -679 678 -1 -778 678 -1 -679 679 4 -680 679 -1 -779 679 -1 -680 680 4 -681 680 -1 -780 680 -1 -681 681 4 -682 681 -1 -781 681 -1 -682 682 4 -683 682 -1 -782 682 -1 -683 683 4 -684 683 -1 -783 683 -1 -684 684 4 -685 684 -1 -784 684 -1 -685 685 4 -686 685 -1 -785 685 -1 -686 686 4 -687 686 -1 -786 686 -1 -687 687 4 -688 687 -1 -787 687 -1 -688 688 4 -689 688 -1 -788 688 -1 -689 689 4 -690 689 -1 -789 689 -1 -690 690 4 -691 690 -1 -790 690 -1 -691 691 4 -692 691 -1 -791 691 -1 -692 692 4 -693 692 -1 -792 692 -1 -693 693 4 -694 693 -1 -793 693 -1 -694 694 4 -695 694 -1 -794 694 -1 -695 695 4 -696 695 -1 -795 695 -1 -696 696 4 -697 696 -1 -796 696 -1 -697 697 4 -698 697 -1 -797 697 -1 -698 698 4 -699 698 -1 -798 698 -1 -699 699 4 -700 699 -1 -799 699 -1 -700 700 4 -800 700 -1 -701 701 4 -702 701 -1 -801 701 -1 -702 702 4 -703 702 -1 -802 702 -1 -703 703 4 -704 703 -1 -803 703 -1 -704 704 4 -705 704 -1 -804 704 -1 -705 705 4 -706 705 -1 -805 705 -1 -706 706 4 -707 706 -1 -806 706 -1 -707 707 4 -708 707 -1 -807 707 -1 -708 708 4 -709 708 -1 -808 708 -1 -709 709 4 -710 709 -1 -809 709 -1 -710 710 4 -711 710 -1 -810 710 -1 -711 711 4 -712 711 -1 -811 711 -1 -712 712 4 -713 712 -1 -812 712 -1 -713 713 4 -714 713 -1 -813 713 -1 -714 714 4 -715 714 -1 -814 714 -1 -715 715 4 -716 715 -1 -815 715 -1 -716 716 4 -717 716 -1 -816 716 -1 -717 717 4 -718 717 -1 -817 717 -1 -718 718 4 -719 718 -1 -818 718 -1 -719 719 4 -720 719 -1 -819 719 -1 -720 720 4 -721 720 -1 -820 720 -1 -721 721 4 -722 721 -1 -821 721 -1 -722 722 4 -723 722 -1 -822 722 -1 -723 723 4 -724 723 -1 -823 723 -1 -724 724 4 -725 724 -1 -824 724 -1 -725 725 4 -726 725 -1 -825 725 -1 -726 726 4 -727 726 -1 -826 726 -1 -727 727 4 -728 727 -1 -827 727 -1 -728 728 4 -729 728 -1 -828 728 -1 -729 729 4 -730 729 -1 -829 729 -1 -730 730 4 -731 730 -1 -830 730 -1 -731 731 4 -732 731 -1 -831 731 -1 -732 732 4 -733 732 -1 -832 732 -1 -733 733 4 -734 733 -1 -833 733 -1 -734 734 4 -735 734 -1 -834 734 -1 -735 735 4 -736 735 -1 -835 735 -1 -736 736 4 -737 736 -1 -836 736 -1 -737 737 4 -738 737 -1 -837 737 -1 -738 738 4 -739 738 -1 -838 738 -1 -739 739 4 -740 739 -1 -839 739 -1 -740 740 4 -741 740 -1 -840 740 -1 -741 741 4 -742 741 -1 -841 741 -1 -742 742 4 -743 742 -1 -842 742 -1 -743 743 4 -744 743 -1 -843 743 -1 -744 744 4 -745 744 -1 -844 744 -1 -745 745 4 -746 745 -1 -845 745 -1 -746 746 4 -747 746 -1 -846 746 -1 -747 747 4 -748 747 -1 -847 747 -1 -748 748 4 -749 748 -1 -848 748 -1 -749 749 4 -750 749 -1 -849 749 -1 -750 750 4 -751 750 -1 -850 750 -1 -751 751 4 -752 751 -1 -851 751 -1 -752 752 4 -753 752 -1 -852 752 -1 -753 753 4 -754 753 -1 -853 753 -1 -754 754 4 -755 754 -1 -854 754 -1 -755 755 4 -756 755 -1 -855 755 -1 -756 756 4 -757 756 -1 -856 756 -1 -757 757 4 -758 757 -1 -857 757 -1 -758 758 4 -759 758 -1 -858 758 -1 -759 759 4 -760 759 -1 -859 759 -1 -760 760 4 -761 760 -1 -860 760 -1 -761 761 4 -762 761 -1 -861 761 -1 -762 762 4 -763 762 -1 -862 762 -1 -763 763 4 -764 763 -1 -863 763 -1 -764 764 4 -765 764 -1 -864 764 -1 -765 765 4 -766 765 -1 -865 765 -1 -766 766 4 -767 766 -1 -866 766 -1 -767 767 4 -768 767 -1 -867 767 -1 -768 768 4 -769 768 -1 -868 768 -1 -769 769 4 -770 769 -1 -869 769 -1 -770 770 4 -771 770 -1 -870 770 -1 -771 771 4 -772 771 -1 -871 771 -1 -772 772 4 -773 772 -1 -872 772 -1 -773 773 4 -774 773 -1 -873 773 -1 -774 774 4 -775 774 -1 -874 774 -1 -775 775 4 -776 775 -1 -875 775 -1 -776 776 4 -777 776 -1 -876 776 -1 -777 777 4 -778 777 -1 -877 777 -1 -778 778 4 -779 778 -1 -878 778 -1 -779 779 4 -780 779 -1 -879 779 -1 -780 780 4 -781 780 -1 -880 780 -1 -781 781 4 -782 781 -1 -881 781 -1 -782 782 4 -783 782 -1 -882 782 -1 -783 783 4 -784 783 -1 -883 783 -1 -784 784 4 -785 784 -1 -884 784 -1 -785 785 4 -786 785 -1 -885 785 -1 -786 786 4 -787 786 -1 -886 786 -1 -787 787 4 -788 787 -1 -887 787 -1 -788 788 4 -789 788 -1 -888 788 -1 -789 789 4 -790 789 -1 -889 789 -1 -790 790 4 -791 790 -1 -890 790 -1 -791 791 4 -792 791 -1 -891 791 -1 -792 792 4 -793 792 -1 -892 792 -1 -793 793 4 -794 793 -1 -893 793 -1 -794 794 4 -795 794 -1 -894 794 -1 -795 795 4 -796 795 -1 -895 795 -1 -796 796 4 -797 796 -1 -896 796 -1 -797 797 4 -798 797 -1 -897 797 -1 -798 798 4 -799 798 -1 -898 798 -1 -799 799 4 -800 799 -1 -899 799 -1 -800 800 4 -900 800 -1 -801 801 4 -802 801 -1 -901 801 -1 -802 802 4 -803 802 -1 -902 802 -1 -803 803 4 -804 803 -1 -903 803 -1 -804 804 4 -805 804 -1 -904 804 -1 -805 805 4 -806 805 -1 -905 805 -1 -806 806 4 -807 806 -1 -906 806 -1 -807 807 4 -808 807 -1 -907 807 -1 -808 808 4 -809 808 -1 -908 808 -1 -809 809 4 -810 809 -1 -909 809 -1 -810 810 4 -811 810 -1 -910 810 -1 -811 811 4 -812 811 -1 -911 811 -1 -812 812 4 -813 812 -1 -912 812 -1 -813 813 4 -814 813 -1 -913 813 -1 -814 814 4 -815 814 -1 -914 814 -1 -815 815 4 -816 815 -1 -915 815 -1 -816 816 4 -817 816 -1 -916 816 -1 -817 817 4 -818 817 -1 -917 817 -1 -818 818 4 -819 818 -1 -918 818 -1 -819 819 4 -820 819 -1 -919 819 -1 -820 820 4 -821 820 -1 -920 820 -1 -821 821 4 -822 821 -1 -921 821 -1 -822 822 4 -823 822 -1 -922 822 -1 -823 823 4 -824 823 -1 -923 823 -1 -824 824 4 -825 824 -1 -924 824 -1 -825 825 4 -826 825 -1 -925 825 -1 -826 826 4 -827 826 -1 -926 826 -1 -827 827 4 -828 827 -1 -927 827 -1 -828 828 4 -829 828 -1 -928 828 -1 -829 829 4 -830 829 -1 -929 829 -1 -830 830 4 -831 830 -1 -930 830 -1 -831 831 4 -832 831 -1 -931 831 -1 -832 832 4 -833 832 -1 -932 832 -1 -833 833 4 -834 833 -1 -933 833 -1 -834 834 4 -835 834 -1 -934 834 -1 -835 835 4 -836 835 -1 -935 835 -1 -836 836 4 -837 836 -1 -936 836 -1 -837 837 4 -838 837 -1 -937 837 -1 -838 838 4 -839 838 -1 -938 838 -1 -839 839 4 -840 839 -1 -939 839 -1 -840 840 4 -841 840 -1 -940 840 -1 -841 841 4 -842 841 -1 -941 841 -1 -842 842 4 -843 842 -1 -942 842 -1 -843 843 4 -844 843 -1 -943 843 -1 -844 844 4 -845 844 -1 -944 844 -1 -845 845 4 -846 845 -1 -945 845 -1 -846 846 4 -847 846 -1 -946 846 -1 -847 847 4 -848 847 -1 -947 847 -1 -848 848 4 -849 848 -1 -948 848 -1 -849 849 4 -850 849 -1 -949 849 -1 -850 850 4 -851 850 -1 -950 850 -1 -851 851 4 -852 851 -1 -951 851 -1 -852 852 4 -853 852 -1 -952 852 -1 -853 853 4 -854 853 -1 -953 853 -1 -854 854 4 -855 854 -1 -954 854 -1 -855 855 4 -856 855 -1 -955 855 -1 -856 856 4 -857 856 -1 -956 856 -1 -857 857 4 -858 857 -1 -957 857 -1 -858 858 4 -859 858 -1 -958 858 -1 -859 859 4 -860 859 -1 -959 859 -1 -860 860 4 -861 860 -1 -960 860 -1 -861 861 4 -862 861 -1 -961 861 -1 -862 862 4 -863 862 -1 -962 862 -1 -863 863 4 -864 863 -1 -963 863 -1 -864 864 4 -865 864 -1 -964 864 -1 -865 865 4 -866 865 -1 -965 865 -1 -866 866 4 -867 866 -1 -966 866 -1 -867 867 4 -868 867 -1 -967 867 -1 -868 868 4 -869 868 -1 -968 868 -1 -869 869 4 -870 869 -1 -969 869 -1 -870 870 4 -871 870 -1 -970 870 -1 -871 871 4 -872 871 -1 -971 871 -1 -872 872 4 -873 872 -1 -972 872 -1 -873 873 4 -874 873 -1 -973 873 -1 -874 874 4 -875 874 -1 -974 874 -1 -875 875 4 -876 875 -1 -975 875 -1 -876 876 4 -877 876 -1 -976 876 -1 -877 877 4 -878 877 -1 -977 877 -1 -878 878 4 -879 878 -1 -978 878 -1 -879 879 4 -880 879 -1 -979 879 -1 -880 880 4 -881 880 -1 -980 880 -1 -881 881 4 -882 881 -1 -981 881 -1 -882 882 4 -883 882 -1 -982 882 -1 -883 883 4 -884 883 -1 -983 883 -1 -884 884 4 -885 884 -1 -984 884 -1 -885 885 4 -886 885 -1 -985 885 -1 -886 886 4 -887 886 -1 -986 886 -1 -887 887 4 -888 887 -1 -987 887 -1 -888 888 4 -889 888 -1 -988 888 -1 -889 889 4 -890 889 -1 -989 889 -1 -890 890 4 -891 890 -1 -990 890 -1 -891 891 4 -892 891 -1 -991 891 -1 -892 892 4 -893 892 -1 -992 892 -1 -893 893 4 -894 893 -1 -993 893 -1 -894 894 4 -895 894 -1 -994 894 -1 -895 895 4 -896 895 -1 -995 895 -1 -896 896 4 -897 896 -1 -996 896 -1 -897 897 4 -898 897 -1 -997 897 -1 -898 898 4 -899 898 -1 -998 898 -1 -899 899 4 -900 899 -1 -999 899 -1 -900 900 4 -1000 900 -1 -901 901 4 -902 901 -1 -1001 901 -1 -902 902 4 -903 902 -1 -1002 902 -1 -903 903 4 -904 903 -1 -1003 903 -1 -904 904 4 -905 904 -1 -1004 904 -1 -905 905 4 -906 905 -1 -1005 905 -1 -906 906 4 -907 906 -1 -1006 906 -1 -907 907 4 -908 907 -1 -1007 907 -1 -908 908 4 -909 908 -1 -1008 908 -1 -909 909 4 -910 909 -1 -1009 909 -1 -910 910 4 -911 910 -1 -1010 910 -1 -911 911 4 -912 911 -1 -1011 911 -1 -912 912 4 -913 912 -1 -1012 912 -1 -913 913 4 -914 913 -1 -1013 913 -1 -914 914 4 -915 914 -1 -1014 914 -1 -915 915 4 -916 915 -1 -1015 915 -1 -916 916 4 -917 916 -1 -1016 916 -1 -917 917 4 -918 917 -1 -1017 917 -1 -918 918 4 -919 918 -1 -1018 918 -1 -919 919 4 -920 919 -1 -1019 919 -1 -920 920 4 -921 920 -1 -1020 920 -1 -921 921 4 -922 921 -1 -1021 921 -1 -922 922 4 -923 922 -1 -1022 922 -1 -923 923 4 -924 923 -1 -1023 923 -1 -924 924 4 -925 924 -1 -1024 924 -1 -925 925 4 -926 925 -1 -1025 925 -1 -926 926 4 -927 926 -1 -1026 926 -1 -927 927 4 -928 927 -1 -1027 927 -1 -928 928 4 -929 928 -1 -1028 928 -1 -929 929 4 -930 929 -1 -1029 929 -1 -930 930 4 -931 930 -1 -1030 930 -1 -931 931 4 -932 931 -1 -1031 931 -1 -932 932 4 -933 932 -1 -1032 932 -1 -933 933 4 -934 933 -1 -1033 933 -1 -934 934 4 -935 934 -1 -1034 934 -1 -935 935 4 -936 935 -1 -1035 935 -1 -936 936 4 -937 936 -1 -1036 936 -1 -937 937 4 -938 937 -1 -1037 937 -1 -938 938 4 -939 938 -1 -1038 938 -1 -939 939 4 -940 939 -1 -1039 939 -1 -940 940 4 -941 940 -1 -1040 940 -1 -941 941 4 -942 941 -1 -1041 941 -1 -942 942 4 -943 942 -1 -1042 942 -1 -943 943 4 -944 943 -1 -1043 943 -1 -944 944 4 -945 944 -1 -1044 944 -1 -945 945 4 -946 945 -1 -1045 945 -1 -946 946 4 -947 946 -1 -1046 946 -1 -947 947 4 -948 947 -1 -1047 947 -1 -948 948 4 -949 948 -1 -1048 948 -1 -949 949 4 -950 949 -1 -1049 949 -1 -950 950 4 -951 950 -1 -1050 950 -1 -951 951 4 -952 951 -1 -1051 951 -1 -952 952 4 -953 952 -1 -1052 952 -1 -953 953 4 -954 953 -1 -1053 953 -1 -954 954 4 -955 954 -1 -1054 954 -1 -955 955 4 -956 955 -1 -1055 955 -1 -956 956 4 -957 956 -1 -1056 956 -1 -957 957 4 -958 957 -1 -1057 957 -1 -958 958 4 -959 958 -1 -1058 958 -1 -959 959 4 -960 959 -1 -1059 959 -1 -960 960 4 -961 960 -1 -1060 960 -1 -961 961 4 -962 961 -1 -1061 961 -1 -962 962 4 -963 962 -1 -1062 962 -1 -963 963 4 -964 963 -1 -1063 963 -1 -964 964 4 -965 964 -1 -1064 964 -1 -965 965 4 -966 965 -1 -1065 965 -1 -966 966 4 -967 966 -1 -1066 966 -1 -967 967 4 -968 967 -1 -1067 967 -1 -968 968 4 -969 968 -1 -1068 968 -1 -969 969 4 -970 969 -1 -1069 969 -1 -970 970 4 -971 970 -1 -1070 970 -1 -971 971 4 -972 971 -1 -1071 971 -1 -972 972 4 -973 972 -1 -1072 972 -1 -973 973 4 -974 973 -1 -1073 973 -1 -974 974 4 -975 974 -1 -1074 974 -1 -975 975 4 -976 975 -1 -1075 975 -1 -976 976 4 -977 976 -1 -1076 976 -1 -977 977 4 -978 977 -1 -1077 977 -1 -978 978 4 -979 978 -1 -1078 978 -1 -979 979 4 -980 979 -1 -1079 979 -1 -980 980 4 -981 980 -1 -1080 980 -1 -981 981 4 -982 981 -1 -1081 981 -1 -982 982 4 -983 982 -1 -1082 982 -1 -983 983 4 -984 983 -1 -1083 983 -1 -984 984 4 -985 984 -1 -1084 984 -1 -985 985 4 -986 985 -1 -1085 985 -1 -986 986 4 -987 986 -1 -1086 986 -1 -987 987 4 -988 987 -1 -1087 987 -1 -988 988 4 -989 988 -1 -1088 988 -1 -989 989 4 -990 989 -1 -1089 989 -1 -990 990 4 -991 990 -1 -1090 990 -1 -991 991 4 -992 991 -1 -1091 991 -1 -992 992 4 -993 992 -1 -1092 992 -1 -993 993 4 -994 993 -1 -1093 993 -1 -994 994 4 -995 994 -1 -1094 994 -1 -995 995 4 -996 995 -1 -1095 995 -1 -996 996 4 -997 996 -1 -1096 996 -1 -997 997 4 -998 997 -1 -1097 997 -1 -998 998 4 -999 998 -1 -1098 998 -1 -999 999 4 -1000 999 -1 -1099 999 -1 -1000 1000 4 -1100 1000 -1 -1001 1001 4 -1002 1001 -1 -1101 1001 -1 -1002 1002 4 -1003 1002 -1 -1102 1002 -1 -1003 1003 4 -1004 1003 -1 -1103 1003 -1 -1004 1004 4 -1005 1004 -1 -1104 1004 -1 -1005 1005 4 -1006 1005 -1 -1105 1005 -1 -1006 1006 4 -1007 1006 -1 -1106 1006 -1 -1007 1007 4 -1008 1007 -1 -1107 1007 -1 -1008 1008 4 -1009 1008 -1 -1108 1008 -1 -1009 1009 4 -1010 1009 -1 -1109 1009 -1 -1010 1010 4 -1011 1010 -1 -1110 1010 -1 -1011 1011 4 -1012 1011 -1 -1111 1011 -1 -1012 1012 4 -1013 1012 -1 -1112 1012 -1 -1013 1013 4 -1014 1013 -1 -1113 1013 -1 -1014 1014 4 -1015 1014 -1 -1114 1014 -1 -1015 1015 4 -1016 1015 -1 -1115 1015 -1 -1016 1016 4 -1017 1016 -1 -1116 1016 -1 -1017 1017 4 -1018 1017 -1 -1117 1017 -1 -1018 1018 4 -1019 1018 -1 -1118 1018 -1 -1019 1019 4 -1020 1019 -1 -1119 1019 -1 -1020 1020 4 -1021 1020 -1 -1120 1020 -1 -1021 1021 4 -1022 1021 -1 -1121 1021 -1 -1022 1022 4 -1023 1022 -1 -1122 1022 -1 -1023 1023 4 -1024 1023 -1 -1123 1023 -1 -1024 1024 4 -1025 1024 -1 -1124 1024 -1 -1025 1025 4 -1026 1025 -1 -1125 1025 -1 -1026 1026 4 -1027 1026 -1 -1126 1026 -1 -1027 1027 4 -1028 1027 -1 -1127 1027 -1 -1028 1028 4 -1029 1028 -1 -1128 1028 -1 -1029 1029 4 -1030 1029 -1 -1129 1029 -1 -1030 1030 4 -1031 1030 -1 -1130 1030 -1 -1031 1031 4 -1032 1031 -1 -1131 1031 -1 -1032 1032 4 -1033 1032 -1 -1132 1032 -1 -1033 1033 4 -1034 1033 -1 -1133 1033 -1 -1034 1034 4 -1035 1034 -1 -1134 1034 -1 -1035 1035 4 -1036 1035 -1 -1135 1035 -1 -1036 1036 4 -1037 1036 -1 -1136 1036 -1 -1037 1037 4 -1038 1037 -1 -1137 1037 -1 -1038 1038 4 -1039 1038 -1 -1138 1038 -1 -1039 1039 4 -1040 1039 -1 -1139 1039 -1 -1040 1040 4 -1041 1040 -1 -1140 1040 -1 -1041 1041 4 -1042 1041 -1 -1141 1041 -1 -1042 1042 4 -1043 1042 -1 -1142 1042 -1 -1043 1043 4 -1044 1043 -1 -1143 1043 -1 -1044 1044 4 -1045 1044 -1 -1144 1044 -1 -1045 1045 4 -1046 1045 -1 -1145 1045 -1 -1046 1046 4 -1047 1046 -1 -1146 1046 -1 -1047 1047 4 -1048 1047 -1 -1147 1047 -1 -1048 1048 4 -1049 1048 -1 -1148 1048 -1 -1049 1049 4 -1050 1049 -1 -1149 1049 -1 -1050 1050 4 -1051 1050 -1 -1150 1050 -1 -1051 1051 4 -1052 1051 -1 -1151 1051 -1 -1052 1052 4 -1053 1052 -1 -1152 1052 -1 -1053 1053 4 -1054 1053 -1 -1153 1053 -1 -1054 1054 4 -1055 1054 -1 -1154 1054 -1 -1055 1055 4 -1056 1055 -1 -1155 1055 -1 -1056 1056 4 -1057 1056 -1 -1156 1056 -1 -1057 1057 4 -1058 1057 -1 -1157 1057 -1 -1058 1058 4 -1059 1058 -1 -1158 1058 -1 -1059 1059 4 -1060 1059 -1 -1159 1059 -1 -1060 1060 4 -1061 1060 -1 -1160 1060 -1 -1061 1061 4 -1062 1061 -1 -1161 1061 -1 -1062 1062 4 -1063 1062 -1 -1162 1062 -1 -1063 1063 4 -1064 1063 -1 -1163 1063 -1 -1064 1064 4 -1065 1064 -1 -1164 1064 -1 -1065 1065 4 -1066 1065 -1 -1165 1065 -1 -1066 1066 4 -1067 1066 -1 -1166 1066 -1 -1067 1067 4 -1068 1067 -1 -1167 1067 -1 -1068 1068 4 -1069 1068 -1 -1168 1068 -1 -1069 1069 4 -1070 1069 -1 -1169 1069 -1 -1070 1070 4 -1071 1070 -1 -1170 1070 -1 -1071 1071 4 -1072 1071 -1 -1171 1071 -1 -1072 1072 4 -1073 1072 -1 -1172 1072 -1 -1073 1073 4 -1074 1073 -1 -1173 1073 -1 -1074 1074 4 -1075 1074 -1 -1174 1074 -1 -1075 1075 4 -1076 1075 -1 -1175 1075 -1 -1076 1076 4 -1077 1076 -1 -1176 1076 -1 -1077 1077 4 -1078 1077 -1 -1177 1077 -1 -1078 1078 4 -1079 1078 -1 -1178 1078 -1 -1079 1079 4 -1080 1079 -1 -1179 1079 -1 -1080 1080 4 -1081 1080 -1 -1180 1080 -1 -1081 1081 4 -1082 1081 -1 -1181 1081 -1 -1082 1082 4 -1083 1082 -1 -1182 1082 -1 -1083 1083 4 -1084 1083 -1 -1183 1083 -1 -1084 1084 4 -1085 1084 -1 -1184 1084 -1 -1085 1085 4 -1086 1085 -1 -1185 1085 -1 -1086 1086 4 -1087 1086 -1 -1186 1086 -1 -1087 1087 4 -1088 1087 -1 -1187 1087 -1 -1088 1088 4 -1089 1088 -1 -1188 1088 -1 -1089 1089 4 -1090 1089 -1 -1189 1089 -1 -1090 1090 4 -1091 1090 -1 -1190 1090 -1 -1091 1091 4 -1092 1091 -1 -1191 1091 -1 -1092 1092 4 -1093 1092 -1 -1192 1092 -1 -1093 1093 4 -1094 1093 -1 -1193 1093 -1 -1094 1094 4 -1095 1094 -1 -1194 1094 -1 -1095 1095 4 -1096 1095 -1 -1195 1095 -1 -1096 1096 4 -1097 1096 -1 -1196 1096 -1 -1097 1097 4 -1098 1097 -1 -1197 1097 -1 -1098 1098 4 -1099 1098 -1 -1198 1098 -1 -1099 1099 4 -1100 1099 -1 -1199 1099 -1 -1100 1100 4 -1200 1100 -1 -1101 1101 4 -1102 1101 -1 -1201 1101 -1 -1102 1102 4 -1103 1102 -1 -1202 1102 -1 -1103 1103 4 -1104 1103 -1 -1203 1103 -1 -1104 1104 4 -1105 1104 -1 -1204 1104 -1 -1105 1105 4 -1106 1105 -1 -1205 1105 -1 -1106 1106 4 -1107 1106 -1 -1206 1106 -1 -1107 1107 4 -1108 1107 -1 -1207 1107 -1 -1108 1108 4 -1109 1108 -1 -1208 1108 -1 -1109 1109 4 -1110 1109 -1 -1209 1109 -1 -1110 1110 4 -1111 1110 -1 -1210 1110 -1 -1111 1111 4 -1112 1111 -1 -1211 1111 -1 -1112 1112 4 -1113 1112 -1 -1212 1112 -1 -1113 1113 4 -1114 1113 -1 -1213 1113 -1 -1114 1114 4 -1115 1114 -1 -1214 1114 -1 -1115 1115 4 -1116 1115 -1 -1215 1115 -1 -1116 1116 4 -1117 1116 -1 -1216 1116 -1 -1117 1117 4 -1118 1117 -1 -1217 1117 -1 -1118 1118 4 -1119 1118 -1 -1218 1118 -1 -1119 1119 4 -1120 1119 -1 -1219 1119 -1 -1120 1120 4 -1121 1120 -1 -1220 1120 -1 -1121 1121 4 -1122 1121 -1 -1221 1121 -1 -1122 1122 4 -1123 1122 -1 -1222 1122 -1 -1123 1123 4 -1124 1123 -1 -1223 1123 -1 -1124 1124 4 -1125 1124 -1 -1224 1124 -1 -1125 1125 4 -1126 1125 -1 -1225 1125 -1 -1126 1126 4 -1127 1126 -1 -1226 1126 -1 -1127 1127 4 -1128 1127 -1 -1227 1127 -1 -1128 1128 4 -1129 1128 -1 -1228 1128 -1 -1129 1129 4 -1130 1129 -1 -1229 1129 -1 -1130 1130 4 -1131 1130 -1 -1230 1130 -1 -1131 1131 4 -1132 1131 -1 -1231 1131 -1 -1132 1132 4 -1133 1132 -1 -1232 1132 -1 -1133 1133 4 -1134 1133 -1 -1233 1133 -1 -1134 1134 4 -1135 1134 -1 -1234 1134 -1 -1135 1135 4 -1136 1135 -1 -1235 1135 -1 -1136 1136 4 -1137 1136 -1 -1236 1136 -1 -1137 1137 4 -1138 1137 -1 -1237 1137 -1 -1138 1138 4 -1139 1138 -1 -1238 1138 -1 -1139 1139 4 -1140 1139 -1 -1239 1139 -1 -1140 1140 4 -1141 1140 -1 -1240 1140 -1 -1141 1141 4 -1142 1141 -1 -1241 1141 -1 -1142 1142 4 -1143 1142 -1 -1242 1142 -1 -1143 1143 4 -1144 1143 -1 -1243 1143 -1 -1144 1144 4 -1145 1144 -1 -1244 1144 -1 -1145 1145 4 -1146 1145 -1 -1245 1145 -1 -1146 1146 4 -1147 1146 -1 -1246 1146 -1 -1147 1147 4 -1148 1147 -1 -1247 1147 -1 -1148 1148 4 -1149 1148 -1 -1248 1148 -1 -1149 1149 4 -1150 1149 -1 -1249 1149 -1 -1150 1150 4 -1151 1150 -1 -1250 1150 -1 -1151 1151 4 -1152 1151 -1 -1251 1151 -1 -1152 1152 4 -1153 1152 -1 -1252 1152 -1 -1153 1153 4 -1154 1153 -1 -1253 1153 -1 -1154 1154 4 -1155 1154 -1 -1254 1154 -1 -1155 1155 4 -1156 1155 -1 -1255 1155 -1 -1156 1156 4 -1157 1156 -1 -1256 1156 -1 -1157 1157 4 -1158 1157 -1 -1257 1157 -1 -1158 1158 4 -1159 1158 -1 -1258 1158 -1 -1159 1159 4 -1160 1159 -1 -1259 1159 -1 -1160 1160 4 -1161 1160 -1 -1260 1160 -1 -1161 1161 4 -1162 1161 -1 -1261 1161 -1 -1162 1162 4 -1163 1162 -1 -1262 1162 -1 -1163 1163 4 -1164 1163 -1 -1263 1163 -1 -1164 1164 4 -1165 1164 -1 -1264 1164 -1 -1165 1165 4 -1166 1165 -1 -1265 1165 -1 -1166 1166 4 -1167 1166 -1 -1266 1166 -1 -1167 1167 4 -1168 1167 -1 -1267 1167 -1 -1168 1168 4 -1169 1168 -1 -1268 1168 -1 -1169 1169 4 -1170 1169 -1 -1269 1169 -1 -1170 1170 4 -1171 1170 -1 -1270 1170 -1 -1171 1171 4 -1172 1171 -1 -1271 1171 -1 -1172 1172 4 -1173 1172 -1 -1272 1172 -1 -1173 1173 4 -1174 1173 -1 -1273 1173 -1 -1174 1174 4 -1175 1174 -1 -1274 1174 -1 -1175 1175 4 -1176 1175 -1 -1275 1175 -1 -1176 1176 4 -1177 1176 -1 -1276 1176 -1 -1177 1177 4 -1178 1177 -1 -1277 1177 -1 -1178 1178 4 -1179 1178 -1 -1278 1178 -1 -1179 1179 4 -1180 1179 -1 -1279 1179 -1 -1180 1180 4 -1181 1180 -1 -1280 1180 -1 -1181 1181 4 -1182 1181 -1 -1281 1181 -1 -1182 1182 4 -1183 1182 -1 -1282 1182 -1 -1183 1183 4 -1184 1183 -1 -1283 1183 -1 -1184 1184 4 -1185 1184 -1 -1284 1184 -1 -1185 1185 4 -1186 1185 -1 -1285 1185 -1 -1186 1186 4 -1187 1186 -1 -1286 1186 -1 -1187 1187 4 -1188 1187 -1 -1287 1187 -1 -1188 1188 4 -1189 1188 -1 -1288 1188 -1 -1189 1189 4 -1190 1189 -1 -1289 1189 -1 -1190 1190 4 -1191 1190 -1 -1290 1190 -1 -1191 1191 4 -1192 1191 -1 -1291 1191 -1 -1192 1192 4 -1193 1192 -1 -1292 1192 -1 -1193 1193 4 -1194 1193 -1 -1293 1193 -1 -1194 1194 4 -1195 1194 -1 -1294 1194 -1 -1195 1195 4 -1196 1195 -1 -1295 1195 -1 -1196 1196 4 -1197 1196 -1 -1296 1196 -1 -1197 1197 4 -1198 1197 -1 -1297 1197 -1 -1198 1198 4 -1199 1198 -1 -1298 1198 -1 -1199 1199 4 -1200 1199 -1 -1299 1199 -1 -1200 1200 4 -1300 1200 -1 -1201 1201 4 -1202 1201 -1 -1301 1201 -1 -1202 1202 4 -1203 1202 -1 -1302 1202 -1 -1203 1203 4 -1204 1203 -1 -1303 1203 -1 -1204 1204 4 -1205 1204 -1 -1304 1204 -1 -1205 1205 4 -1206 1205 -1 -1305 1205 -1 -1206 1206 4 -1207 1206 -1 -1306 1206 -1 -1207 1207 4 -1208 1207 -1 -1307 1207 -1 -1208 1208 4 -1209 1208 -1 -1308 1208 -1 -1209 1209 4 -1210 1209 -1 -1309 1209 -1 -1210 1210 4 -1211 1210 -1 -1310 1210 -1 -1211 1211 4 -1212 1211 -1 -1311 1211 -1 -1212 1212 4 -1213 1212 -1 -1312 1212 -1 -1213 1213 4 -1214 1213 -1 -1313 1213 -1 -1214 1214 4 -1215 1214 -1 -1314 1214 -1 -1215 1215 4 -1216 1215 -1 -1315 1215 -1 -1216 1216 4 -1217 1216 -1 -1316 1216 -1 -1217 1217 4 -1218 1217 -1 -1317 1217 -1 -1218 1218 4 -1219 1218 -1 -1318 1218 -1 -1219 1219 4 -1220 1219 -1 -1319 1219 -1 -1220 1220 4 -1221 1220 -1 -1320 1220 -1 -1221 1221 4 -1222 1221 -1 -1321 1221 -1 -1222 1222 4 -1223 1222 -1 -1322 1222 -1 -1223 1223 4 -1224 1223 -1 -1323 1223 -1 -1224 1224 4 -1225 1224 -1 -1324 1224 -1 -1225 1225 4 -1226 1225 -1 -1325 1225 -1 -1226 1226 4 -1227 1226 -1 -1326 1226 -1 -1227 1227 4 -1228 1227 -1 -1327 1227 -1 -1228 1228 4 -1229 1228 -1 -1328 1228 -1 -1229 1229 4 -1230 1229 -1 -1329 1229 -1 -1230 1230 4 -1231 1230 -1 -1330 1230 -1 -1231 1231 4 -1232 1231 -1 -1331 1231 -1 -1232 1232 4 -1233 1232 -1 -1332 1232 -1 -1233 1233 4 -1234 1233 -1 -1333 1233 -1 -1234 1234 4 -1235 1234 -1 -1334 1234 -1 -1235 1235 4 -1236 1235 -1 -1335 1235 -1 -1236 1236 4 -1237 1236 -1 -1336 1236 -1 -1237 1237 4 -1238 1237 -1 -1337 1237 -1 -1238 1238 4 -1239 1238 -1 -1338 1238 -1 -1239 1239 4 -1240 1239 -1 -1339 1239 -1 -1240 1240 4 -1241 1240 -1 -1340 1240 -1 -1241 1241 4 -1242 1241 -1 -1341 1241 -1 -1242 1242 4 -1243 1242 -1 -1342 1242 -1 -1243 1243 4 -1244 1243 -1 -1343 1243 -1 -1244 1244 4 -1245 1244 -1 -1344 1244 -1 -1245 1245 4 -1246 1245 -1 -1345 1245 -1 -1246 1246 4 -1247 1246 -1 -1346 1246 -1 -1247 1247 4 -1248 1247 -1 -1347 1247 -1 -1248 1248 4 -1249 1248 -1 -1348 1248 -1 -1249 1249 4 -1250 1249 -1 -1349 1249 -1 -1250 1250 4 -1251 1250 -1 -1350 1250 -1 -1251 1251 4 -1252 1251 -1 -1351 1251 -1 -1252 1252 4 -1253 1252 -1 -1352 1252 -1 -1253 1253 4 -1254 1253 -1 -1353 1253 -1 -1254 1254 4 -1255 1254 -1 -1354 1254 -1 -1255 1255 4 -1256 1255 -1 -1355 1255 -1 -1256 1256 4 -1257 1256 -1 -1356 1256 -1 -1257 1257 4 -1258 1257 -1 -1357 1257 -1 -1258 1258 4 -1259 1258 -1 -1358 1258 -1 -1259 1259 4 -1260 1259 -1 -1359 1259 -1 -1260 1260 4 -1261 1260 -1 -1360 1260 -1 -1261 1261 4 -1262 1261 -1 -1361 1261 -1 -1262 1262 4 -1263 1262 -1 -1362 1262 -1 -1263 1263 4 -1264 1263 -1 -1363 1263 -1 -1264 1264 4 -1265 1264 -1 -1364 1264 -1 -1265 1265 4 -1266 1265 -1 -1365 1265 -1 -1266 1266 4 -1267 1266 -1 -1366 1266 -1 -1267 1267 4 -1268 1267 -1 -1367 1267 -1 -1268 1268 4 -1269 1268 -1 -1368 1268 -1 -1269 1269 4 -1270 1269 -1 -1369 1269 -1 -1270 1270 4 -1271 1270 -1 -1370 1270 -1 -1271 1271 4 -1272 1271 -1 -1371 1271 -1 -1272 1272 4 -1273 1272 -1 -1372 1272 -1 -1273 1273 4 -1274 1273 -1 -1373 1273 -1 -1274 1274 4 -1275 1274 -1 -1374 1274 -1 -1275 1275 4 -1276 1275 -1 -1375 1275 -1 -1276 1276 4 -1277 1276 -1 -1376 1276 -1 -1277 1277 4 -1278 1277 -1 -1377 1277 -1 -1278 1278 4 -1279 1278 -1 -1378 1278 -1 -1279 1279 4 -1280 1279 -1 -1379 1279 -1 -1280 1280 4 -1281 1280 -1 -1380 1280 -1 -1281 1281 4 -1282 1281 -1 -1381 1281 -1 -1282 1282 4 -1283 1282 -1 -1382 1282 -1 -1283 1283 4 -1284 1283 -1 -1383 1283 -1 -1284 1284 4 -1285 1284 -1 -1384 1284 -1 -1285 1285 4 -1286 1285 -1 -1385 1285 -1 -1286 1286 4 -1287 1286 -1 -1386 1286 -1 -1287 1287 4 -1288 1287 -1 -1387 1287 -1 -1288 1288 4 -1289 1288 -1 -1388 1288 -1 -1289 1289 4 -1290 1289 -1 -1389 1289 -1 -1290 1290 4 -1291 1290 -1 -1390 1290 -1 -1291 1291 4 -1292 1291 -1 -1391 1291 -1 -1292 1292 4 -1293 1292 -1 -1392 1292 -1 -1293 1293 4 -1294 1293 -1 -1393 1293 -1 -1294 1294 4 -1295 1294 -1 -1394 1294 -1 -1295 1295 4 -1296 1295 -1 -1395 1295 -1 -1296 1296 4 -1297 1296 -1 -1396 1296 -1 -1297 1297 4 -1298 1297 -1 -1397 1297 -1 -1298 1298 4 -1299 1298 -1 -1398 1298 -1 -1299 1299 4 -1300 1299 -1 -1399 1299 -1 -1300 1300 4 -1400 1300 -1 -1301 1301 4 -1302 1301 -1 -1401 1301 -1 -1302 1302 4 -1303 1302 -1 -1402 1302 -1 -1303 1303 4 -1304 1303 -1 -1403 1303 -1 -1304 1304 4 -1305 1304 -1 -1404 1304 -1 -1305 1305 4 -1306 1305 -1 -1405 1305 -1 -1306 1306 4 -1307 1306 -1 -1406 1306 -1 -1307 1307 4 -1308 1307 -1 -1407 1307 -1 -1308 1308 4 -1309 1308 -1 -1408 1308 -1 -1309 1309 4 -1310 1309 -1 -1409 1309 -1 -1310 1310 4 -1311 1310 -1 -1410 1310 -1 -1311 1311 4 -1312 1311 -1 -1411 1311 -1 -1312 1312 4 -1313 1312 -1 -1412 1312 -1 -1313 1313 4 -1314 1313 -1 -1413 1313 -1 -1314 1314 4 -1315 1314 -1 -1414 1314 -1 -1315 1315 4 -1316 1315 -1 -1415 1315 -1 -1316 1316 4 -1317 1316 -1 -1416 1316 -1 -1317 1317 4 -1318 1317 -1 -1417 1317 -1 -1318 1318 4 -1319 1318 -1 -1418 1318 -1 -1319 1319 4 -1320 1319 -1 -1419 1319 -1 -1320 1320 4 -1321 1320 -1 -1420 1320 -1 -1321 1321 4 -1322 1321 -1 -1421 1321 -1 -1322 1322 4 -1323 1322 -1 -1422 1322 -1 -1323 1323 4 -1324 1323 -1 -1423 1323 -1 -1324 1324 4 -1325 1324 -1 -1424 1324 -1 -1325 1325 4 -1326 1325 -1 -1425 1325 -1 -1326 1326 4 -1327 1326 -1 -1426 1326 -1 -1327 1327 4 -1328 1327 -1 -1427 1327 -1 -1328 1328 4 -1329 1328 -1 -1428 1328 -1 -1329 1329 4 -1330 1329 -1 -1429 1329 -1 -1330 1330 4 -1331 1330 -1 -1430 1330 -1 -1331 1331 4 -1332 1331 -1 -1431 1331 -1 -1332 1332 4 -1333 1332 -1 -1432 1332 -1 -1333 1333 4 -1334 1333 -1 -1433 1333 -1 -1334 1334 4 -1335 1334 -1 -1434 1334 -1 -1335 1335 4 -1336 1335 -1 -1435 1335 -1 -1336 1336 4 -1337 1336 -1 -1436 1336 -1 -1337 1337 4 -1338 1337 -1 -1437 1337 -1 -1338 1338 4 -1339 1338 -1 -1438 1338 -1 -1339 1339 4 -1340 1339 -1 -1439 1339 -1 -1340 1340 4 -1341 1340 -1 -1440 1340 -1 -1341 1341 4 -1342 1341 -1 -1441 1341 -1 -1342 1342 4 -1343 1342 -1 -1442 1342 -1 -1343 1343 4 -1344 1343 -1 -1443 1343 -1 -1344 1344 4 -1345 1344 -1 -1444 1344 -1 -1345 1345 4 -1346 1345 -1 -1445 1345 -1 -1346 1346 4 -1347 1346 -1 -1446 1346 -1 -1347 1347 4 -1348 1347 -1 -1447 1347 -1 -1348 1348 4 -1349 1348 -1 -1448 1348 -1 -1349 1349 4 -1350 1349 -1 -1449 1349 -1 -1350 1350 4 -1351 1350 -1 -1450 1350 -1 -1351 1351 4 -1352 1351 -1 -1451 1351 -1 -1352 1352 4 -1353 1352 -1 -1452 1352 -1 -1353 1353 4 -1354 1353 -1 -1453 1353 -1 -1354 1354 4 -1355 1354 -1 -1454 1354 -1 -1355 1355 4 -1356 1355 -1 -1455 1355 -1 -1356 1356 4 -1357 1356 -1 -1456 1356 -1 -1357 1357 4 -1358 1357 -1 -1457 1357 -1 -1358 1358 4 -1359 1358 -1 -1458 1358 -1 -1359 1359 4 -1360 1359 -1 -1459 1359 -1 -1360 1360 4 -1361 1360 -1 -1460 1360 -1 -1361 1361 4 -1362 1361 -1 -1461 1361 -1 -1362 1362 4 -1363 1362 -1 -1462 1362 -1 -1363 1363 4 -1364 1363 -1 -1463 1363 -1 -1364 1364 4 -1365 1364 -1 -1464 1364 -1 -1365 1365 4 -1366 1365 -1 -1465 1365 -1 -1366 1366 4 -1367 1366 -1 -1466 1366 -1 -1367 1367 4 -1368 1367 -1 -1467 1367 -1 -1368 1368 4 -1369 1368 -1 -1468 1368 -1 -1369 1369 4 -1370 1369 -1 -1469 1369 -1 -1370 1370 4 -1371 1370 -1 -1470 1370 -1 -1371 1371 4 -1372 1371 -1 -1471 1371 -1 -1372 1372 4 -1373 1372 -1 -1472 1372 -1 -1373 1373 4 -1374 1373 -1 -1473 1373 -1 -1374 1374 4 -1375 1374 -1 -1474 1374 -1 -1375 1375 4 -1376 1375 -1 -1475 1375 -1 -1376 1376 4 -1377 1376 -1 -1476 1376 -1 -1377 1377 4 -1378 1377 -1 -1477 1377 -1 -1378 1378 4 -1379 1378 -1 -1478 1378 -1 -1379 1379 4 -1380 1379 -1 -1479 1379 -1 -1380 1380 4 -1381 1380 -1 -1480 1380 -1 -1381 1381 4 -1382 1381 -1 -1481 1381 -1 -1382 1382 4 -1383 1382 -1 -1482 1382 -1 -1383 1383 4 -1384 1383 -1 -1483 1383 -1 -1384 1384 4 -1385 1384 -1 -1484 1384 -1 -1385 1385 4 -1386 1385 -1 -1485 1385 -1 -1386 1386 4 -1387 1386 -1 -1486 1386 -1 -1387 1387 4 -1388 1387 -1 -1487 1387 -1 -1388 1388 4 -1389 1388 -1 -1488 1388 -1 -1389 1389 4 -1390 1389 -1 -1489 1389 -1 -1390 1390 4 -1391 1390 -1 -1490 1390 -1 -1391 1391 4 -1392 1391 -1 -1491 1391 -1 -1392 1392 4 -1393 1392 -1 -1492 1392 -1 -1393 1393 4 -1394 1393 -1 -1493 1393 -1 -1394 1394 4 -1395 1394 -1 -1494 1394 -1 -1395 1395 4 -1396 1395 -1 -1495 1395 -1 -1396 1396 4 -1397 1396 -1 -1496 1396 -1 -1397 1397 4 -1398 1397 -1 -1497 1397 -1 -1398 1398 4 -1399 1398 -1 -1498 1398 -1 -1399 1399 4 -1400 1399 -1 -1499 1399 -1 -1400 1400 4 -1500 1400 -1 -1401 1401 4 -1402 1401 -1 -1501 1401 -1 -1402 1402 4 -1403 1402 -1 -1502 1402 -1 -1403 1403 4 -1404 1403 -1 -1503 1403 -1 -1404 1404 4 -1405 1404 -1 -1504 1404 -1 -1405 1405 4 -1406 1405 -1 -1505 1405 -1 -1406 1406 4 -1407 1406 -1 -1506 1406 -1 -1407 1407 4 -1408 1407 -1 -1507 1407 -1 -1408 1408 4 -1409 1408 -1 -1508 1408 -1 -1409 1409 4 -1410 1409 -1 -1509 1409 -1 -1410 1410 4 -1411 1410 -1 -1510 1410 -1 -1411 1411 4 -1412 1411 -1 -1511 1411 -1 -1412 1412 4 -1413 1412 -1 -1512 1412 -1 -1413 1413 4 -1414 1413 -1 -1513 1413 -1 -1414 1414 4 -1415 1414 -1 -1514 1414 -1 -1415 1415 4 -1416 1415 -1 -1515 1415 -1 -1416 1416 4 -1417 1416 -1 -1516 1416 -1 -1417 1417 4 -1418 1417 -1 -1517 1417 -1 -1418 1418 4 -1419 1418 -1 -1518 1418 -1 -1419 1419 4 -1420 1419 -1 -1519 1419 -1 -1420 1420 4 -1421 1420 -1 -1520 1420 -1 -1421 1421 4 -1422 1421 -1 -1521 1421 -1 -1422 1422 4 -1423 1422 -1 -1522 1422 -1 -1423 1423 4 -1424 1423 -1 -1523 1423 -1 -1424 1424 4 -1425 1424 -1 -1524 1424 -1 -1425 1425 4 -1426 1425 -1 -1525 1425 -1 -1426 1426 4 -1427 1426 -1 -1526 1426 -1 -1427 1427 4 -1428 1427 -1 -1527 1427 -1 -1428 1428 4 -1429 1428 -1 -1528 1428 -1 -1429 1429 4 -1430 1429 -1 -1529 1429 -1 -1430 1430 4 -1431 1430 -1 -1530 1430 -1 -1431 1431 4 -1432 1431 -1 -1531 1431 -1 -1432 1432 4 -1433 1432 -1 -1532 1432 -1 -1433 1433 4 -1434 1433 -1 -1533 1433 -1 -1434 1434 4 -1435 1434 -1 -1534 1434 -1 -1435 1435 4 -1436 1435 -1 -1535 1435 -1 -1436 1436 4 -1437 1436 -1 -1536 1436 -1 -1437 1437 4 -1438 1437 -1 -1537 1437 -1 -1438 1438 4 -1439 1438 -1 -1538 1438 -1 -1439 1439 4 -1440 1439 -1 -1539 1439 -1 -1440 1440 4 -1441 1440 -1 -1540 1440 -1 -1441 1441 4 -1442 1441 -1 -1541 1441 -1 -1442 1442 4 -1443 1442 -1 -1542 1442 -1 -1443 1443 4 -1444 1443 -1 -1543 1443 -1 -1444 1444 4 -1445 1444 -1 -1544 1444 -1 -1445 1445 4 -1446 1445 -1 -1545 1445 -1 -1446 1446 4 -1447 1446 -1 -1546 1446 -1 -1447 1447 4 -1448 1447 -1 -1547 1447 -1 -1448 1448 4 -1449 1448 -1 -1548 1448 -1 -1449 1449 4 -1450 1449 -1 -1549 1449 -1 -1450 1450 4 -1451 1450 -1 -1550 1450 -1 -1451 1451 4 -1452 1451 -1 -1551 1451 -1 -1452 1452 4 -1453 1452 -1 -1552 1452 -1 -1453 1453 4 -1454 1453 -1 -1553 1453 -1 -1454 1454 4 -1455 1454 -1 -1554 1454 -1 -1455 1455 4 -1456 1455 -1 -1555 1455 -1 -1456 1456 4 -1457 1456 -1 -1556 1456 -1 -1457 1457 4 -1458 1457 -1 -1557 1457 -1 -1458 1458 4 -1459 1458 -1 -1558 1458 -1 -1459 1459 4 -1460 1459 -1 -1559 1459 -1 -1460 1460 4 -1461 1460 -1 -1560 1460 -1 -1461 1461 4 -1462 1461 -1 -1561 1461 -1 -1462 1462 4 -1463 1462 -1 -1562 1462 -1 -1463 1463 4 -1464 1463 -1 -1563 1463 -1 -1464 1464 4 -1465 1464 -1 -1564 1464 -1 -1465 1465 4 -1466 1465 -1 -1565 1465 -1 -1466 1466 4 -1467 1466 -1 -1566 1466 -1 -1467 1467 4 -1468 1467 -1 -1567 1467 -1 -1468 1468 4 -1469 1468 -1 -1568 1468 -1 -1469 1469 4 -1470 1469 -1 -1569 1469 -1 -1470 1470 4 -1471 1470 -1 -1570 1470 -1 -1471 1471 4 -1472 1471 -1 -1571 1471 -1 -1472 1472 4 -1473 1472 -1 -1572 1472 -1 -1473 1473 4 -1474 1473 -1 -1573 1473 -1 -1474 1474 4 -1475 1474 -1 -1574 1474 -1 -1475 1475 4 -1476 1475 -1 -1575 1475 -1 -1476 1476 4 -1477 1476 -1 -1576 1476 -1 -1477 1477 4 -1478 1477 -1 -1577 1477 -1 -1478 1478 4 -1479 1478 -1 -1578 1478 -1 -1479 1479 4 -1480 1479 -1 -1579 1479 -1 -1480 1480 4 -1481 1480 -1 -1580 1480 -1 -1481 1481 4 -1482 1481 -1 -1581 1481 -1 -1482 1482 4 -1483 1482 -1 -1582 1482 -1 -1483 1483 4 -1484 1483 -1 -1583 1483 -1 -1484 1484 4 -1485 1484 -1 -1584 1484 -1 -1485 1485 4 -1486 1485 -1 -1585 1485 -1 -1486 1486 4 -1487 1486 -1 -1586 1486 -1 -1487 1487 4 -1488 1487 -1 -1587 1487 -1 -1488 1488 4 -1489 1488 -1 -1588 1488 -1 -1489 1489 4 -1490 1489 -1 -1589 1489 -1 -1490 1490 4 -1491 1490 -1 -1590 1490 -1 -1491 1491 4 -1492 1491 -1 -1591 1491 -1 -1492 1492 4 -1493 1492 -1 -1592 1492 -1 -1493 1493 4 -1494 1493 -1 -1593 1493 -1 -1494 1494 4 -1495 1494 -1 -1594 1494 -1 -1495 1495 4 -1496 1495 -1 -1595 1495 -1 -1496 1496 4 -1497 1496 -1 -1596 1496 -1 -1497 1497 4 -1498 1497 -1 -1597 1497 -1 -1498 1498 4 -1499 1498 -1 -1598 1498 -1 -1499 1499 4 -1500 1499 -1 -1599 1499 -1 -1500 1500 4 -1600 1500 -1 -1501 1501 4 -1502 1501 -1 -1601 1501 -1 -1502 1502 4 -1503 1502 -1 -1602 1502 -1 -1503 1503 4 -1504 1503 -1 -1603 1503 -1 -1504 1504 4 -1505 1504 -1 -1604 1504 -1 -1505 1505 4 -1506 1505 -1 -1605 1505 -1 -1506 1506 4 -1507 1506 -1 -1606 1506 -1 -1507 1507 4 -1508 1507 -1 -1607 1507 -1 -1508 1508 4 -1509 1508 -1 -1608 1508 -1 -1509 1509 4 -1510 1509 -1 -1609 1509 -1 -1510 1510 4 -1511 1510 -1 -1610 1510 -1 -1511 1511 4 -1512 1511 -1 -1611 1511 -1 -1512 1512 4 -1513 1512 -1 -1612 1512 -1 -1513 1513 4 -1514 1513 -1 -1613 1513 -1 -1514 1514 4 -1515 1514 -1 -1614 1514 -1 -1515 1515 4 -1516 1515 -1 -1615 1515 -1 -1516 1516 4 -1517 1516 -1 -1616 1516 -1 -1517 1517 4 -1518 1517 -1 -1617 1517 -1 -1518 1518 4 -1519 1518 -1 -1618 1518 -1 -1519 1519 4 -1520 1519 -1 -1619 1519 -1 -1520 1520 4 -1521 1520 -1 -1620 1520 -1 -1521 1521 4 -1522 1521 -1 -1621 1521 -1 -1522 1522 4 -1523 1522 -1 -1622 1522 -1 -1523 1523 4 -1524 1523 -1 -1623 1523 -1 -1524 1524 4 -1525 1524 -1 -1624 1524 -1 -1525 1525 4 -1526 1525 -1 -1625 1525 -1 -1526 1526 4 -1527 1526 -1 -1626 1526 -1 -1527 1527 4 -1528 1527 -1 -1627 1527 -1 -1528 1528 4 -1529 1528 -1 -1628 1528 -1 -1529 1529 4 -1530 1529 -1 -1629 1529 -1 -1530 1530 4 -1531 1530 -1 -1630 1530 -1 -1531 1531 4 -1532 1531 -1 -1631 1531 -1 -1532 1532 4 -1533 1532 -1 -1632 1532 -1 -1533 1533 4 -1534 1533 -1 -1633 1533 -1 -1534 1534 4 -1535 1534 -1 -1634 1534 -1 -1535 1535 4 -1536 1535 -1 -1635 1535 -1 -1536 1536 4 -1537 1536 -1 -1636 1536 -1 -1537 1537 4 -1538 1537 -1 -1637 1537 -1 -1538 1538 4 -1539 1538 -1 -1638 1538 -1 -1539 1539 4 -1540 1539 -1 -1639 1539 -1 -1540 1540 4 -1541 1540 -1 -1640 1540 -1 -1541 1541 4 -1542 1541 -1 -1641 1541 -1 -1542 1542 4 -1543 1542 -1 -1642 1542 -1 -1543 1543 4 -1544 1543 -1 -1643 1543 -1 -1544 1544 4 -1545 1544 -1 -1644 1544 -1 -1545 1545 4 -1546 1545 -1 -1645 1545 -1 -1546 1546 4 -1547 1546 -1 -1646 1546 -1 -1547 1547 4 -1548 1547 -1 -1647 1547 -1 -1548 1548 4 -1549 1548 -1 -1648 1548 -1 -1549 1549 4 -1550 1549 -1 -1649 1549 -1 -1550 1550 4 -1551 1550 -1 -1650 1550 -1 -1551 1551 4 -1552 1551 -1 -1651 1551 -1 -1552 1552 4 -1553 1552 -1 -1652 1552 -1 -1553 1553 4 -1554 1553 -1 -1653 1553 -1 -1554 1554 4 -1555 1554 -1 -1654 1554 -1 -1555 1555 4 -1556 1555 -1 -1655 1555 -1 -1556 1556 4 -1557 1556 -1 -1656 1556 -1 -1557 1557 4 -1558 1557 -1 -1657 1557 -1 -1558 1558 4 -1559 1558 -1 -1658 1558 -1 -1559 1559 4 -1560 1559 -1 -1659 1559 -1 -1560 1560 4 -1561 1560 -1 -1660 1560 -1 -1561 1561 4 -1562 1561 -1 -1661 1561 -1 -1562 1562 4 -1563 1562 -1 -1662 1562 -1 -1563 1563 4 -1564 1563 -1 -1663 1563 -1 -1564 1564 4 -1565 1564 -1 -1664 1564 -1 -1565 1565 4 -1566 1565 -1 -1665 1565 -1 -1566 1566 4 -1567 1566 -1 -1666 1566 -1 -1567 1567 4 -1568 1567 -1 -1667 1567 -1 -1568 1568 4 -1569 1568 -1 -1668 1568 -1 -1569 1569 4 -1570 1569 -1 -1669 1569 -1 -1570 1570 4 -1571 1570 -1 -1670 1570 -1 -1571 1571 4 -1572 1571 -1 -1671 1571 -1 -1572 1572 4 -1573 1572 -1 -1672 1572 -1 -1573 1573 4 -1574 1573 -1 -1673 1573 -1 -1574 1574 4 -1575 1574 -1 -1674 1574 -1 -1575 1575 4 -1576 1575 -1 -1675 1575 -1 -1576 1576 4 -1577 1576 -1 -1676 1576 -1 -1577 1577 4 -1578 1577 -1 -1677 1577 -1 -1578 1578 4 -1579 1578 -1 -1678 1578 -1 -1579 1579 4 -1580 1579 -1 -1679 1579 -1 -1580 1580 4 -1581 1580 -1 -1680 1580 -1 -1581 1581 4 -1582 1581 -1 -1681 1581 -1 -1582 1582 4 -1583 1582 -1 -1682 1582 -1 -1583 1583 4 -1584 1583 -1 -1683 1583 -1 -1584 1584 4 -1585 1584 -1 -1684 1584 -1 -1585 1585 4 -1586 1585 -1 -1685 1585 -1 -1586 1586 4 -1587 1586 -1 -1686 1586 -1 -1587 1587 4 -1588 1587 -1 -1687 1587 -1 -1588 1588 4 -1589 1588 -1 -1688 1588 -1 -1589 1589 4 -1590 1589 -1 -1689 1589 -1 -1590 1590 4 -1591 1590 -1 -1690 1590 -1 -1591 1591 4 -1592 1591 -1 -1691 1591 -1 -1592 1592 4 -1593 1592 -1 -1692 1592 -1 -1593 1593 4 -1594 1593 -1 -1693 1593 -1 -1594 1594 4 -1595 1594 -1 -1694 1594 -1 -1595 1595 4 -1596 1595 -1 -1695 1595 -1 -1596 1596 4 -1597 1596 -1 -1696 1596 -1 -1597 1597 4 -1598 1597 -1 -1697 1597 -1 -1598 1598 4 -1599 1598 -1 -1698 1598 -1 -1599 1599 4 -1600 1599 -1 -1699 1599 -1 -1600 1600 4 -1700 1600 -1 -1601 1601 4 -1602 1601 -1 -1701 1601 -1 -1602 1602 4 -1603 1602 -1 -1702 1602 -1 -1603 1603 4 -1604 1603 -1 -1703 1603 -1 -1604 1604 4 -1605 1604 -1 -1704 1604 -1 -1605 1605 4 -1606 1605 -1 -1705 1605 -1 -1606 1606 4 -1607 1606 -1 -1706 1606 -1 -1607 1607 4 -1608 1607 -1 -1707 1607 -1 -1608 1608 4 -1609 1608 -1 -1708 1608 -1 -1609 1609 4 -1610 1609 -1 -1709 1609 -1 -1610 1610 4 -1611 1610 -1 -1710 1610 -1 -1611 1611 4 -1612 1611 -1 -1711 1611 -1 -1612 1612 4 -1613 1612 -1 -1712 1612 -1 -1613 1613 4 -1614 1613 -1 -1713 1613 -1 -1614 1614 4 -1615 1614 -1 -1714 1614 -1 -1615 1615 4 -1616 1615 -1 -1715 1615 -1 -1616 1616 4 -1617 1616 -1 -1716 1616 -1 -1617 1617 4 -1618 1617 -1 -1717 1617 -1 -1618 1618 4 -1619 1618 -1 -1718 1618 -1 -1619 1619 4 -1620 1619 -1 -1719 1619 -1 -1620 1620 4 -1621 1620 -1 -1720 1620 -1 -1621 1621 4 -1622 1621 -1 -1721 1621 -1 -1622 1622 4 -1623 1622 -1 -1722 1622 -1 -1623 1623 4 -1624 1623 -1 -1723 1623 -1 -1624 1624 4 -1625 1624 -1 -1724 1624 -1 -1625 1625 4 -1626 1625 -1 -1725 1625 -1 -1626 1626 4 -1627 1626 -1 -1726 1626 -1 -1627 1627 4 -1628 1627 -1 -1727 1627 -1 -1628 1628 4 -1629 1628 -1 -1728 1628 -1 -1629 1629 4 -1630 1629 -1 -1729 1629 -1 -1630 1630 4 -1631 1630 -1 -1730 1630 -1 -1631 1631 4 -1632 1631 -1 -1731 1631 -1 -1632 1632 4 -1633 1632 -1 -1732 1632 -1 -1633 1633 4 -1634 1633 -1 -1733 1633 -1 -1634 1634 4 -1635 1634 -1 -1734 1634 -1 -1635 1635 4 -1636 1635 -1 -1735 1635 -1 -1636 1636 4 -1637 1636 -1 -1736 1636 -1 -1637 1637 4 -1638 1637 -1 -1737 1637 -1 -1638 1638 4 -1639 1638 -1 -1738 1638 -1 -1639 1639 4 -1640 1639 -1 -1739 1639 -1 -1640 1640 4 -1641 1640 -1 -1740 1640 -1 -1641 1641 4 -1642 1641 -1 -1741 1641 -1 -1642 1642 4 -1643 1642 -1 -1742 1642 -1 -1643 1643 4 -1644 1643 -1 -1743 1643 -1 -1644 1644 4 -1645 1644 -1 -1744 1644 -1 -1645 1645 4 -1646 1645 -1 -1745 1645 -1 -1646 1646 4 -1647 1646 -1 -1746 1646 -1 -1647 1647 4 -1648 1647 -1 -1747 1647 -1 -1648 1648 4 -1649 1648 -1 -1748 1648 -1 -1649 1649 4 -1650 1649 -1 -1749 1649 -1 -1650 1650 4 -1651 1650 -1 -1750 1650 -1 -1651 1651 4 -1652 1651 -1 -1751 1651 -1 -1652 1652 4 -1653 1652 -1 -1752 1652 -1 -1653 1653 4 -1654 1653 -1 -1753 1653 -1 -1654 1654 4 -1655 1654 -1 -1754 1654 -1 -1655 1655 4 -1656 1655 -1 -1755 1655 -1 -1656 1656 4 -1657 1656 -1 -1756 1656 -1 -1657 1657 4 -1658 1657 -1 -1757 1657 -1 -1658 1658 4 -1659 1658 -1 -1758 1658 -1 -1659 1659 4 -1660 1659 -1 -1759 1659 -1 -1660 1660 4 -1661 1660 -1 -1760 1660 -1 -1661 1661 4 -1662 1661 -1 -1761 1661 -1 -1662 1662 4 -1663 1662 -1 -1762 1662 -1 -1663 1663 4 -1664 1663 -1 -1763 1663 -1 -1664 1664 4 -1665 1664 -1 -1764 1664 -1 -1665 1665 4 -1666 1665 -1 -1765 1665 -1 -1666 1666 4 -1667 1666 -1 -1766 1666 -1 -1667 1667 4 -1668 1667 -1 -1767 1667 -1 -1668 1668 4 -1669 1668 -1 -1768 1668 -1 -1669 1669 4 -1670 1669 -1 -1769 1669 -1 -1670 1670 4 -1671 1670 -1 -1770 1670 -1 -1671 1671 4 -1672 1671 -1 -1771 1671 -1 -1672 1672 4 -1673 1672 -1 -1772 1672 -1 -1673 1673 4 -1674 1673 -1 -1773 1673 -1 -1674 1674 4 -1675 1674 -1 -1774 1674 -1 -1675 1675 4 -1676 1675 -1 -1775 1675 -1 -1676 1676 4 -1677 1676 -1 -1776 1676 -1 -1677 1677 4 -1678 1677 -1 -1777 1677 -1 -1678 1678 4 -1679 1678 -1 -1778 1678 -1 -1679 1679 4 -1680 1679 -1 -1779 1679 -1 -1680 1680 4 -1681 1680 -1 -1780 1680 -1 -1681 1681 4 -1682 1681 -1 -1781 1681 -1 -1682 1682 4 -1683 1682 -1 -1782 1682 -1 -1683 1683 4 -1684 1683 -1 -1783 1683 -1 -1684 1684 4 -1685 1684 -1 -1784 1684 -1 -1685 1685 4 -1686 1685 -1 -1785 1685 -1 -1686 1686 4 -1687 1686 -1 -1786 1686 -1 -1687 1687 4 -1688 1687 -1 -1787 1687 -1 -1688 1688 4 -1689 1688 -1 -1788 1688 -1 -1689 1689 4 -1690 1689 -1 -1789 1689 -1 -1690 1690 4 -1691 1690 -1 -1790 1690 -1 -1691 1691 4 -1692 1691 -1 -1791 1691 -1 -1692 1692 4 -1693 1692 -1 -1792 1692 -1 -1693 1693 4 -1694 1693 -1 -1793 1693 -1 -1694 1694 4 -1695 1694 -1 -1794 1694 -1 -1695 1695 4 -1696 1695 -1 -1795 1695 -1 -1696 1696 4 -1697 1696 -1 -1796 1696 -1 -1697 1697 4 -1698 1697 -1 -1797 1697 -1 -1698 1698 4 -1699 1698 -1 -1798 1698 -1 -1699 1699 4 -1700 1699 -1 -1799 1699 -1 -1700 1700 4 -1800 1700 -1 -1701 1701 4 -1702 1701 -1 -1801 1701 -1 -1702 1702 4 -1703 1702 -1 -1802 1702 -1 -1703 1703 4 -1704 1703 -1 -1803 1703 -1 -1704 1704 4 -1705 1704 -1 -1804 1704 -1 -1705 1705 4 -1706 1705 -1 -1805 1705 -1 -1706 1706 4 -1707 1706 -1 -1806 1706 -1 -1707 1707 4 -1708 1707 -1 -1807 1707 -1 -1708 1708 4 -1709 1708 -1 -1808 1708 -1 -1709 1709 4 -1710 1709 -1 -1809 1709 -1 -1710 1710 4 -1711 1710 -1 -1810 1710 -1 -1711 1711 4 -1712 1711 -1 -1811 1711 -1 -1712 1712 4 -1713 1712 -1 -1812 1712 -1 -1713 1713 4 -1714 1713 -1 -1813 1713 -1 -1714 1714 4 -1715 1714 -1 -1814 1714 -1 -1715 1715 4 -1716 1715 -1 -1815 1715 -1 -1716 1716 4 -1717 1716 -1 -1816 1716 -1 -1717 1717 4 -1718 1717 -1 -1817 1717 -1 -1718 1718 4 -1719 1718 -1 -1818 1718 -1 -1719 1719 4 -1720 1719 -1 -1819 1719 -1 -1720 1720 4 -1721 1720 -1 -1820 1720 -1 -1721 1721 4 -1722 1721 -1 -1821 1721 -1 -1722 1722 4 -1723 1722 -1 -1822 1722 -1 -1723 1723 4 -1724 1723 -1 -1823 1723 -1 -1724 1724 4 -1725 1724 -1 -1824 1724 -1 -1725 1725 4 -1726 1725 -1 -1825 1725 -1 -1726 1726 4 -1727 1726 -1 -1826 1726 -1 -1727 1727 4 -1728 1727 -1 -1827 1727 -1 -1728 1728 4 -1729 1728 -1 -1828 1728 -1 -1729 1729 4 -1730 1729 -1 -1829 1729 -1 -1730 1730 4 -1731 1730 -1 -1830 1730 -1 -1731 1731 4 -1732 1731 -1 -1831 1731 -1 -1732 1732 4 -1733 1732 -1 -1832 1732 -1 -1733 1733 4 -1734 1733 -1 -1833 1733 -1 -1734 1734 4 -1735 1734 -1 -1834 1734 -1 -1735 1735 4 -1736 1735 -1 -1835 1735 -1 -1736 1736 4 -1737 1736 -1 -1836 1736 -1 -1737 1737 4 -1738 1737 -1 -1837 1737 -1 -1738 1738 4 -1739 1738 -1 -1838 1738 -1 -1739 1739 4 -1740 1739 -1 -1839 1739 -1 -1740 1740 4 -1741 1740 -1 -1840 1740 -1 -1741 1741 4 -1742 1741 -1 -1841 1741 -1 -1742 1742 4 -1743 1742 -1 -1842 1742 -1 -1743 1743 4 -1744 1743 -1 -1843 1743 -1 -1744 1744 4 -1745 1744 -1 -1844 1744 -1 -1745 1745 4 -1746 1745 -1 -1845 1745 -1 -1746 1746 4 -1747 1746 -1 -1846 1746 -1 -1747 1747 4 -1748 1747 -1 -1847 1747 -1 -1748 1748 4 -1749 1748 -1 -1848 1748 -1 -1749 1749 4 -1750 1749 -1 -1849 1749 -1 -1750 1750 4 -1751 1750 -1 -1850 1750 -1 -1751 1751 4 -1752 1751 -1 -1851 1751 -1 -1752 1752 4 -1753 1752 -1 -1852 1752 -1 -1753 1753 4 -1754 1753 -1 -1853 1753 -1 -1754 1754 4 -1755 1754 -1 -1854 1754 -1 -1755 1755 4 -1756 1755 -1 -1855 1755 -1 -1756 1756 4 -1757 1756 -1 -1856 1756 -1 -1757 1757 4 -1758 1757 -1 -1857 1757 -1 -1758 1758 4 -1759 1758 -1 -1858 1758 -1 -1759 1759 4 -1760 1759 -1 -1859 1759 -1 -1760 1760 4 -1761 1760 -1 -1860 1760 -1 -1761 1761 4 -1762 1761 -1 -1861 1761 -1 -1762 1762 4 -1763 1762 -1 -1862 1762 -1 -1763 1763 4 -1764 1763 -1 -1863 1763 -1 -1764 1764 4 -1765 1764 -1 -1864 1764 -1 -1765 1765 4 -1766 1765 -1 -1865 1765 -1 -1766 1766 4 -1767 1766 -1 -1866 1766 -1 -1767 1767 4 -1768 1767 -1 -1867 1767 -1 -1768 1768 4 -1769 1768 -1 -1868 1768 -1 -1769 1769 4 -1770 1769 -1 -1869 1769 -1 -1770 1770 4 -1771 1770 -1 -1870 1770 -1 -1771 1771 4 -1772 1771 -1 -1871 1771 -1 -1772 1772 4 -1773 1772 -1 -1872 1772 -1 -1773 1773 4 -1774 1773 -1 -1873 1773 -1 -1774 1774 4 -1775 1774 -1 -1874 1774 -1 -1775 1775 4 -1776 1775 -1 -1875 1775 -1 -1776 1776 4 -1777 1776 -1 -1876 1776 -1 -1777 1777 4 -1778 1777 -1 -1877 1777 -1 -1778 1778 4 -1779 1778 -1 -1878 1778 -1 -1779 1779 4 -1780 1779 -1 -1879 1779 -1 -1780 1780 4 -1781 1780 -1 -1880 1780 -1 -1781 1781 4 -1782 1781 -1 -1881 1781 -1 -1782 1782 4 -1783 1782 -1 -1882 1782 -1 -1783 1783 4 -1784 1783 -1 -1883 1783 -1 -1784 1784 4 -1785 1784 -1 -1884 1784 -1 -1785 1785 4 -1786 1785 -1 -1885 1785 -1 -1786 1786 4 -1787 1786 -1 -1886 1786 -1 -1787 1787 4 -1788 1787 -1 -1887 1787 -1 -1788 1788 4 -1789 1788 -1 -1888 1788 -1 -1789 1789 4 -1790 1789 -1 -1889 1789 -1 -1790 1790 4 -1791 1790 -1 -1890 1790 -1 -1791 1791 4 -1792 1791 -1 -1891 1791 -1 -1792 1792 4 -1793 1792 -1 -1892 1792 -1 -1793 1793 4 -1794 1793 -1 -1893 1793 -1 -1794 1794 4 -1795 1794 -1 -1894 1794 -1 -1795 1795 4 -1796 1795 -1 -1895 1795 -1 -1796 1796 4 -1797 1796 -1 -1896 1796 -1 -1797 1797 4 -1798 1797 -1 -1897 1797 -1 -1798 1798 4 -1799 1798 -1 -1898 1798 -1 -1799 1799 4 -1800 1799 -1 -1899 1799 -1 -1800 1800 4 -1900 1800 -1 -1801 1801 4 -1802 1801 -1 -1901 1801 -1 -1802 1802 4 -1803 1802 -1 -1902 1802 -1 -1803 1803 4 -1804 1803 -1 -1903 1803 -1 -1804 1804 4 -1805 1804 -1 -1904 1804 -1 -1805 1805 4 -1806 1805 -1 -1905 1805 -1 -1806 1806 4 -1807 1806 -1 -1906 1806 -1 -1807 1807 4 -1808 1807 -1 -1907 1807 -1 -1808 1808 4 -1809 1808 -1 -1908 1808 -1 -1809 1809 4 -1810 1809 -1 -1909 1809 -1 -1810 1810 4 -1811 1810 -1 -1910 1810 -1 -1811 1811 4 -1812 1811 -1 -1911 1811 -1 -1812 1812 4 -1813 1812 -1 -1912 1812 -1 -1813 1813 4 -1814 1813 -1 -1913 1813 -1 -1814 1814 4 -1815 1814 -1 -1914 1814 -1 -1815 1815 4 -1816 1815 -1 -1915 1815 -1 -1816 1816 4 -1817 1816 -1 -1916 1816 -1 -1817 1817 4 -1818 1817 -1 -1917 1817 -1 -1818 1818 4 -1819 1818 -1 -1918 1818 -1 -1819 1819 4 -1820 1819 -1 -1919 1819 -1 -1820 1820 4 -1821 1820 -1 -1920 1820 -1 -1821 1821 4 -1822 1821 -1 -1921 1821 -1 -1822 1822 4 -1823 1822 -1 -1922 1822 -1 -1823 1823 4 -1824 1823 -1 -1923 1823 -1 -1824 1824 4 -1825 1824 -1 -1924 1824 -1 -1825 1825 4 -1826 1825 -1 -1925 1825 -1 -1826 1826 4 -1827 1826 -1 -1926 1826 -1 -1827 1827 4 -1828 1827 -1 -1927 1827 -1 -1828 1828 4 -1829 1828 -1 -1928 1828 -1 -1829 1829 4 -1830 1829 -1 -1929 1829 -1 -1830 1830 4 -1831 1830 -1 -1930 1830 -1 -1831 1831 4 -1832 1831 -1 -1931 1831 -1 -1832 1832 4 -1833 1832 -1 -1932 1832 -1 -1833 1833 4 -1834 1833 -1 -1933 1833 -1 -1834 1834 4 -1835 1834 -1 -1934 1834 -1 -1835 1835 4 -1836 1835 -1 -1935 1835 -1 -1836 1836 4 -1837 1836 -1 -1936 1836 -1 -1837 1837 4 -1838 1837 -1 -1937 1837 -1 -1838 1838 4 -1839 1838 -1 -1938 1838 -1 -1839 1839 4 -1840 1839 -1 -1939 1839 -1 -1840 1840 4 -1841 1840 -1 -1940 1840 -1 -1841 1841 4 -1842 1841 -1 -1941 1841 -1 -1842 1842 4 -1843 1842 -1 -1942 1842 -1 -1843 1843 4 -1844 1843 -1 -1943 1843 -1 -1844 1844 4 -1845 1844 -1 -1944 1844 -1 -1845 1845 4 -1846 1845 -1 -1945 1845 -1 -1846 1846 4 -1847 1846 -1 -1946 1846 -1 -1847 1847 4 -1848 1847 -1 -1947 1847 -1 -1848 1848 4 -1849 1848 -1 -1948 1848 -1 -1849 1849 4 -1850 1849 -1 -1949 1849 -1 -1850 1850 4 -1851 1850 -1 -1950 1850 -1 -1851 1851 4 -1852 1851 -1 -1951 1851 -1 -1852 1852 4 -1853 1852 -1 -1952 1852 -1 -1853 1853 4 -1854 1853 -1 -1953 1853 -1 -1854 1854 4 -1855 1854 -1 -1954 1854 -1 -1855 1855 4 -1856 1855 -1 -1955 1855 -1 -1856 1856 4 -1857 1856 -1 -1956 1856 -1 -1857 1857 4 -1858 1857 -1 -1957 1857 -1 -1858 1858 4 -1859 1858 -1 -1958 1858 -1 -1859 1859 4 -1860 1859 -1 -1959 1859 -1 -1860 1860 4 -1861 1860 -1 -1960 1860 -1 -1861 1861 4 -1862 1861 -1 -1961 1861 -1 -1862 1862 4 -1863 1862 -1 -1962 1862 -1 -1863 1863 4 -1864 1863 -1 -1963 1863 -1 -1864 1864 4 -1865 1864 -1 -1964 1864 -1 -1865 1865 4 -1866 1865 -1 -1965 1865 -1 -1866 1866 4 -1867 1866 -1 -1966 1866 -1 -1867 1867 4 -1868 1867 -1 -1967 1867 -1 -1868 1868 4 -1869 1868 -1 -1968 1868 -1 -1869 1869 4 -1870 1869 -1 -1969 1869 -1 -1870 1870 4 -1871 1870 -1 -1970 1870 -1 -1871 1871 4 -1872 1871 -1 -1971 1871 -1 -1872 1872 4 -1873 1872 -1 -1972 1872 -1 -1873 1873 4 -1874 1873 -1 -1973 1873 -1 -1874 1874 4 -1875 1874 -1 -1974 1874 -1 -1875 1875 4 -1876 1875 -1 -1975 1875 -1 -1876 1876 4 -1877 1876 -1 -1976 1876 -1 -1877 1877 4 -1878 1877 -1 -1977 1877 -1 -1878 1878 4 -1879 1878 -1 -1978 1878 -1 -1879 1879 4 -1880 1879 -1 -1979 1879 -1 -1880 1880 4 -1881 1880 -1 -1980 1880 -1 -1881 1881 4 -1882 1881 -1 -1981 1881 -1 -1882 1882 4 -1883 1882 -1 -1982 1882 -1 -1883 1883 4 -1884 1883 -1 -1983 1883 -1 -1884 1884 4 -1885 1884 -1 -1984 1884 -1 -1885 1885 4 -1886 1885 -1 -1985 1885 -1 -1886 1886 4 -1887 1886 -1 -1986 1886 -1 -1887 1887 4 -1888 1887 -1 -1987 1887 -1 -1888 1888 4 -1889 1888 -1 -1988 1888 -1 -1889 1889 4 -1890 1889 -1 -1989 1889 -1 -1890 1890 4 -1891 1890 -1 -1990 1890 -1 -1891 1891 4 -1892 1891 -1 -1991 1891 -1 -1892 1892 4 -1893 1892 -1 -1992 1892 -1 -1893 1893 4 -1894 1893 -1 -1993 1893 -1 -1894 1894 4 -1895 1894 -1 -1994 1894 -1 -1895 1895 4 -1896 1895 -1 -1995 1895 -1 -1896 1896 4 -1897 1896 -1 -1996 1896 -1 -1897 1897 4 -1898 1897 -1 -1997 1897 -1 -1898 1898 4 -1899 1898 -1 -1998 1898 -1 -1899 1899 4 -1900 1899 -1 -1999 1899 -1 -1900 1900 4 -2000 1900 -1 -1901 1901 4 -1902 1901 -1 -2001 1901 -1 -1902 1902 4 -1903 1902 -1 -2002 1902 -1 -1903 1903 4 -1904 1903 -1 -2003 1903 -1 -1904 1904 4 -1905 1904 -1 -2004 1904 -1 -1905 1905 4 -1906 1905 -1 -2005 1905 -1 -1906 1906 4 -1907 1906 -1 -2006 1906 -1 -1907 1907 4 -1908 1907 -1 -2007 1907 -1 -1908 1908 4 -1909 1908 -1 -2008 1908 -1 -1909 1909 4 -1910 1909 -1 -2009 1909 -1 -1910 1910 4 -1911 1910 -1 -2010 1910 -1 -1911 1911 4 -1912 1911 -1 -2011 1911 -1 -1912 1912 4 -1913 1912 -1 -2012 1912 -1 -1913 1913 4 -1914 1913 -1 -2013 1913 -1 -1914 1914 4 -1915 1914 -1 -2014 1914 -1 -1915 1915 4 -1916 1915 -1 -2015 1915 -1 -1916 1916 4 -1917 1916 -1 -2016 1916 -1 -1917 1917 4 -1918 1917 -1 -2017 1917 -1 -1918 1918 4 -1919 1918 -1 -2018 1918 -1 -1919 1919 4 -1920 1919 -1 -2019 1919 -1 -1920 1920 4 -1921 1920 -1 -2020 1920 -1 -1921 1921 4 -1922 1921 -1 -2021 1921 -1 -1922 1922 4 -1923 1922 -1 -2022 1922 -1 -1923 1923 4 -1924 1923 -1 -2023 1923 -1 -1924 1924 4 -1925 1924 -1 -2024 1924 -1 -1925 1925 4 -1926 1925 -1 -2025 1925 -1 -1926 1926 4 -1927 1926 -1 -2026 1926 -1 -1927 1927 4 -1928 1927 -1 -2027 1927 -1 -1928 1928 4 -1929 1928 -1 -2028 1928 -1 -1929 1929 4 -1930 1929 -1 -2029 1929 -1 -1930 1930 4 -1931 1930 -1 -2030 1930 -1 -1931 1931 4 -1932 1931 -1 -2031 1931 -1 -1932 1932 4 -1933 1932 -1 -2032 1932 -1 -1933 1933 4 -1934 1933 -1 -2033 1933 -1 -1934 1934 4 -1935 1934 -1 -2034 1934 -1 -1935 1935 4 -1936 1935 -1 -2035 1935 -1 -1936 1936 4 -1937 1936 -1 -2036 1936 -1 -1937 1937 4 -1938 1937 -1 -2037 1937 -1 -1938 1938 4 -1939 1938 -1 -2038 1938 -1 -1939 1939 4 -1940 1939 -1 -2039 1939 -1 -1940 1940 4 -1941 1940 -1 -2040 1940 -1 -1941 1941 4 -1942 1941 -1 -2041 1941 -1 -1942 1942 4 -1943 1942 -1 -2042 1942 -1 -1943 1943 4 -1944 1943 -1 -2043 1943 -1 -1944 1944 4 -1945 1944 -1 -2044 1944 -1 -1945 1945 4 -1946 1945 -1 -2045 1945 -1 -1946 1946 4 -1947 1946 -1 -2046 1946 -1 -1947 1947 4 -1948 1947 -1 -2047 1947 -1 -1948 1948 4 -1949 1948 -1 -2048 1948 -1 -1949 1949 4 -1950 1949 -1 -2049 1949 -1 -1950 1950 4 -1951 1950 -1 -2050 1950 -1 -1951 1951 4 -1952 1951 -1 -2051 1951 -1 -1952 1952 4 -1953 1952 -1 -2052 1952 -1 -1953 1953 4 -1954 1953 -1 -2053 1953 -1 -1954 1954 4 -1955 1954 -1 -2054 1954 -1 -1955 1955 4 -1956 1955 -1 -2055 1955 -1 -1956 1956 4 -1957 1956 -1 -2056 1956 -1 -1957 1957 4 -1958 1957 -1 -2057 1957 -1 -1958 1958 4 -1959 1958 -1 -2058 1958 -1 -1959 1959 4 -1960 1959 -1 -2059 1959 -1 -1960 1960 4 -1961 1960 -1 -2060 1960 -1 -1961 1961 4 -1962 1961 -1 -2061 1961 -1 -1962 1962 4 -1963 1962 -1 -2062 1962 -1 -1963 1963 4 -1964 1963 -1 -2063 1963 -1 -1964 1964 4 -1965 1964 -1 -2064 1964 -1 -1965 1965 4 -1966 1965 -1 -2065 1965 -1 -1966 1966 4 -1967 1966 -1 -2066 1966 -1 -1967 1967 4 -1968 1967 -1 -2067 1967 -1 -1968 1968 4 -1969 1968 -1 -2068 1968 -1 -1969 1969 4 -1970 1969 -1 -2069 1969 -1 -1970 1970 4 -1971 1970 -1 -2070 1970 -1 -1971 1971 4 -1972 1971 -1 -2071 1971 -1 -1972 1972 4 -1973 1972 -1 -2072 1972 -1 -1973 1973 4 -1974 1973 -1 -2073 1973 -1 -1974 1974 4 -1975 1974 -1 -2074 1974 -1 -1975 1975 4 -1976 1975 -1 -2075 1975 -1 -1976 1976 4 -1977 1976 -1 -2076 1976 -1 -1977 1977 4 -1978 1977 -1 -2077 1977 -1 -1978 1978 4 -1979 1978 -1 -2078 1978 -1 -1979 1979 4 -1980 1979 -1 -2079 1979 -1 -1980 1980 4 -1981 1980 -1 -2080 1980 -1 -1981 1981 4 -1982 1981 -1 -2081 1981 -1 -1982 1982 4 -1983 1982 -1 -2082 1982 -1 -1983 1983 4 -1984 1983 -1 -2083 1983 -1 -1984 1984 4 -1985 1984 -1 -2084 1984 -1 -1985 1985 4 -1986 1985 -1 -2085 1985 -1 -1986 1986 4 -1987 1986 -1 -2086 1986 -1 -1987 1987 4 -1988 1987 -1 -2087 1987 -1 -1988 1988 4 -1989 1988 -1 -2088 1988 -1 -1989 1989 4 -1990 1989 -1 -2089 1989 -1 -1990 1990 4 -1991 1990 -1 -2090 1990 -1 -1991 1991 4 -1992 1991 -1 -2091 1991 -1 -1992 1992 4 -1993 1992 -1 -2092 1992 -1 -1993 1993 4 -1994 1993 -1 -2093 1993 -1 -1994 1994 4 -1995 1994 -1 -2094 1994 -1 -1995 1995 4 -1996 1995 -1 -2095 1995 -1 -1996 1996 4 -1997 1996 -1 -2096 1996 -1 -1997 1997 4 -1998 1997 -1 -2097 1997 -1 -1998 1998 4 -1999 1998 -1 -2098 1998 -1 -1999 1999 4 -2000 1999 -1 -2099 1999 -1 -2000 2000 4 -2100 2000 -1 -2001 2001 4 -2002 2001 -1 -2101 2001 -1 -2002 2002 4 -2003 2002 -1 -2102 2002 -1 -2003 2003 4 -2004 2003 -1 -2103 2003 -1 -2004 2004 4 -2005 2004 -1 -2104 2004 -1 -2005 2005 4 -2006 2005 -1 -2105 2005 -1 -2006 2006 4 -2007 2006 -1 -2106 2006 -1 -2007 2007 4 -2008 2007 -1 -2107 2007 -1 -2008 2008 4 -2009 2008 -1 -2108 2008 -1 -2009 2009 4 -2010 2009 -1 -2109 2009 -1 -2010 2010 4 -2011 2010 -1 -2110 2010 -1 -2011 2011 4 -2012 2011 -1 -2111 2011 -1 -2012 2012 4 -2013 2012 -1 -2112 2012 -1 -2013 2013 4 -2014 2013 -1 -2113 2013 -1 -2014 2014 4 -2015 2014 -1 -2114 2014 -1 -2015 2015 4 -2016 2015 -1 -2115 2015 -1 -2016 2016 4 -2017 2016 -1 -2116 2016 -1 -2017 2017 4 -2018 2017 -1 -2117 2017 -1 -2018 2018 4 -2019 2018 -1 -2118 2018 -1 -2019 2019 4 -2020 2019 -1 -2119 2019 -1 -2020 2020 4 -2021 2020 -1 -2120 2020 -1 -2021 2021 4 -2022 2021 -1 -2121 2021 -1 -2022 2022 4 -2023 2022 -1 -2122 2022 -1 -2023 2023 4 -2024 2023 -1 -2123 2023 -1 -2024 2024 4 -2025 2024 -1 -2124 2024 -1 -2025 2025 4 -2026 2025 -1 -2125 2025 -1 -2026 2026 4 -2027 2026 -1 -2126 2026 -1 -2027 2027 4 -2028 2027 -1 -2127 2027 -1 -2028 2028 4 -2029 2028 -1 -2128 2028 -1 -2029 2029 4 -2030 2029 -1 -2129 2029 -1 -2030 2030 4 -2031 2030 -1 -2130 2030 -1 -2031 2031 4 -2032 2031 -1 -2131 2031 -1 -2032 2032 4 -2033 2032 -1 -2132 2032 -1 -2033 2033 4 -2034 2033 -1 -2133 2033 -1 -2034 2034 4 -2035 2034 -1 -2134 2034 -1 -2035 2035 4 -2036 2035 -1 -2135 2035 -1 -2036 2036 4 -2037 2036 -1 -2136 2036 -1 -2037 2037 4 -2038 2037 -1 -2137 2037 -1 -2038 2038 4 -2039 2038 -1 -2138 2038 -1 -2039 2039 4 -2040 2039 -1 -2139 2039 -1 -2040 2040 4 -2041 2040 -1 -2140 2040 -1 -2041 2041 4 -2042 2041 -1 -2141 2041 -1 -2042 2042 4 -2043 2042 -1 -2142 2042 -1 -2043 2043 4 -2044 2043 -1 -2143 2043 -1 -2044 2044 4 -2045 2044 -1 -2144 2044 -1 -2045 2045 4 -2046 2045 -1 -2145 2045 -1 -2046 2046 4 -2047 2046 -1 -2146 2046 -1 -2047 2047 4 -2048 2047 -1 -2147 2047 -1 -2048 2048 4 -2049 2048 -1 -2148 2048 -1 -2049 2049 4 -2050 2049 -1 -2149 2049 -1 -2050 2050 4 -2051 2050 -1 -2150 2050 -1 -2051 2051 4 -2052 2051 -1 -2151 2051 -1 -2052 2052 4 -2053 2052 -1 -2152 2052 -1 -2053 2053 4 -2054 2053 -1 -2153 2053 -1 -2054 2054 4 -2055 2054 -1 -2154 2054 -1 -2055 2055 4 -2056 2055 -1 -2155 2055 -1 -2056 2056 4 -2057 2056 -1 -2156 2056 -1 -2057 2057 4 -2058 2057 -1 -2157 2057 -1 -2058 2058 4 -2059 2058 -1 -2158 2058 -1 -2059 2059 4 -2060 2059 -1 -2159 2059 -1 -2060 2060 4 -2061 2060 -1 -2160 2060 -1 -2061 2061 4 -2062 2061 -1 -2161 2061 -1 -2062 2062 4 -2063 2062 -1 -2162 2062 -1 -2063 2063 4 -2064 2063 -1 -2163 2063 -1 -2064 2064 4 -2065 2064 -1 -2164 2064 -1 -2065 2065 4 -2066 2065 -1 -2165 2065 -1 -2066 2066 4 -2067 2066 -1 -2166 2066 -1 -2067 2067 4 -2068 2067 -1 -2167 2067 -1 -2068 2068 4 -2069 2068 -1 -2168 2068 -1 -2069 2069 4 -2070 2069 -1 -2169 2069 -1 -2070 2070 4 -2071 2070 -1 -2170 2070 -1 -2071 2071 4 -2072 2071 -1 -2171 2071 -1 -2072 2072 4 -2073 2072 -1 -2172 2072 -1 -2073 2073 4 -2074 2073 -1 -2173 2073 -1 -2074 2074 4 -2075 2074 -1 -2174 2074 -1 -2075 2075 4 -2076 2075 -1 -2175 2075 -1 -2076 2076 4 -2077 2076 -1 -2176 2076 -1 -2077 2077 4 -2078 2077 -1 -2177 2077 -1 -2078 2078 4 -2079 2078 -1 -2178 2078 -1 -2079 2079 4 -2080 2079 -1 -2179 2079 -1 -2080 2080 4 -2081 2080 -1 -2180 2080 -1 -2081 2081 4 -2082 2081 -1 -2181 2081 -1 -2082 2082 4 -2083 2082 -1 -2182 2082 -1 -2083 2083 4 -2084 2083 -1 -2183 2083 -1 -2084 2084 4 -2085 2084 -1 -2184 2084 -1 -2085 2085 4 -2086 2085 -1 -2185 2085 -1 -2086 2086 4 -2087 2086 -1 -2186 2086 -1 -2087 2087 4 -2088 2087 -1 -2187 2087 -1 -2088 2088 4 -2089 2088 -1 -2188 2088 -1 -2089 2089 4 -2090 2089 -1 -2189 2089 -1 -2090 2090 4 -2091 2090 -1 -2190 2090 -1 -2091 2091 4 -2092 2091 -1 -2191 2091 -1 -2092 2092 4 -2093 2092 -1 -2192 2092 -1 -2093 2093 4 -2094 2093 -1 -2193 2093 -1 -2094 2094 4 -2095 2094 -1 -2194 2094 -1 -2095 2095 4 -2096 2095 -1 -2195 2095 -1 -2096 2096 4 -2097 2096 -1 -2196 2096 -1 -2097 2097 4 -2098 2097 -1 -2197 2097 -1 -2098 2098 4 -2099 2098 -1 -2198 2098 -1 -2099 2099 4 -2100 2099 -1 -2199 2099 -1 -2100 2100 4 -2200 2100 -1 -2101 2101 4 -2102 2101 -1 -2201 2101 -1 -2102 2102 4 -2103 2102 -1 -2202 2102 -1 -2103 2103 4 -2104 2103 -1 -2203 2103 -1 -2104 2104 4 -2105 2104 -1 -2204 2104 -1 -2105 2105 4 -2106 2105 -1 -2205 2105 -1 -2106 2106 4 -2107 2106 -1 -2206 2106 -1 -2107 2107 4 -2108 2107 -1 -2207 2107 -1 -2108 2108 4 -2109 2108 -1 -2208 2108 -1 -2109 2109 4 -2110 2109 -1 -2209 2109 -1 -2110 2110 4 -2111 2110 -1 -2210 2110 -1 -2111 2111 4 -2112 2111 -1 -2211 2111 -1 -2112 2112 4 -2113 2112 -1 -2212 2112 -1 -2113 2113 4 -2114 2113 -1 -2213 2113 -1 -2114 2114 4 -2115 2114 -1 -2214 2114 -1 -2115 2115 4 -2116 2115 -1 -2215 2115 -1 -2116 2116 4 -2117 2116 -1 -2216 2116 -1 -2117 2117 4 -2118 2117 -1 -2217 2117 -1 -2118 2118 4 -2119 2118 -1 -2218 2118 -1 -2119 2119 4 -2120 2119 -1 -2219 2119 -1 -2120 2120 4 -2121 2120 -1 -2220 2120 -1 -2121 2121 4 -2122 2121 -1 -2221 2121 -1 -2122 2122 4 -2123 2122 -1 -2222 2122 -1 -2123 2123 4 -2124 2123 -1 -2223 2123 -1 -2124 2124 4 -2125 2124 -1 -2224 2124 -1 -2125 2125 4 -2126 2125 -1 -2225 2125 -1 -2126 2126 4 -2127 2126 -1 -2226 2126 -1 -2127 2127 4 -2128 2127 -1 -2227 2127 -1 -2128 2128 4 -2129 2128 -1 -2228 2128 -1 -2129 2129 4 -2130 2129 -1 -2229 2129 -1 -2130 2130 4 -2131 2130 -1 -2230 2130 -1 -2131 2131 4 -2132 2131 -1 -2231 2131 -1 -2132 2132 4 -2133 2132 -1 -2232 2132 -1 -2133 2133 4 -2134 2133 -1 -2233 2133 -1 -2134 2134 4 -2135 2134 -1 -2234 2134 -1 -2135 2135 4 -2136 2135 -1 -2235 2135 -1 -2136 2136 4 -2137 2136 -1 -2236 2136 -1 -2137 2137 4 -2138 2137 -1 -2237 2137 -1 -2138 2138 4 -2139 2138 -1 -2238 2138 -1 -2139 2139 4 -2140 2139 -1 -2239 2139 -1 -2140 2140 4 -2141 2140 -1 -2240 2140 -1 -2141 2141 4 -2142 2141 -1 -2241 2141 -1 -2142 2142 4 -2143 2142 -1 -2242 2142 -1 -2143 2143 4 -2144 2143 -1 -2243 2143 -1 -2144 2144 4 -2145 2144 -1 -2244 2144 -1 -2145 2145 4 -2146 2145 -1 -2245 2145 -1 -2146 2146 4 -2147 2146 -1 -2246 2146 -1 -2147 2147 4 -2148 2147 -1 -2247 2147 -1 -2148 2148 4 -2149 2148 -1 -2248 2148 -1 -2149 2149 4 -2150 2149 -1 -2249 2149 -1 -2150 2150 4 -2151 2150 -1 -2250 2150 -1 -2151 2151 4 -2152 2151 -1 -2251 2151 -1 -2152 2152 4 -2153 2152 -1 -2252 2152 -1 -2153 2153 4 -2154 2153 -1 -2253 2153 -1 -2154 2154 4 -2155 2154 -1 -2254 2154 -1 -2155 2155 4 -2156 2155 -1 -2255 2155 -1 -2156 2156 4 -2157 2156 -1 -2256 2156 -1 -2157 2157 4 -2158 2157 -1 -2257 2157 -1 -2158 2158 4 -2159 2158 -1 -2258 2158 -1 -2159 2159 4 -2160 2159 -1 -2259 2159 -1 -2160 2160 4 -2161 2160 -1 -2260 2160 -1 -2161 2161 4 -2162 2161 -1 -2261 2161 -1 -2162 2162 4 -2163 2162 -1 -2262 2162 -1 -2163 2163 4 -2164 2163 -1 -2263 2163 -1 -2164 2164 4 -2165 2164 -1 -2264 2164 -1 -2165 2165 4 -2166 2165 -1 -2265 2165 -1 -2166 2166 4 -2167 2166 -1 -2266 2166 -1 -2167 2167 4 -2168 2167 -1 -2267 2167 -1 -2168 2168 4 -2169 2168 -1 -2268 2168 -1 -2169 2169 4 -2170 2169 -1 -2269 2169 -1 -2170 2170 4 -2171 2170 -1 -2270 2170 -1 -2171 2171 4 -2172 2171 -1 -2271 2171 -1 -2172 2172 4 -2173 2172 -1 -2272 2172 -1 -2173 2173 4 -2174 2173 -1 -2273 2173 -1 -2174 2174 4 -2175 2174 -1 -2274 2174 -1 -2175 2175 4 -2176 2175 -1 -2275 2175 -1 -2176 2176 4 -2177 2176 -1 -2276 2176 -1 -2177 2177 4 -2178 2177 -1 -2277 2177 -1 -2178 2178 4 -2179 2178 -1 -2278 2178 -1 -2179 2179 4 -2180 2179 -1 -2279 2179 -1 -2180 2180 4 -2181 2180 -1 -2280 2180 -1 -2181 2181 4 -2182 2181 -1 -2281 2181 -1 -2182 2182 4 -2183 2182 -1 -2282 2182 -1 -2183 2183 4 -2184 2183 -1 -2283 2183 -1 -2184 2184 4 -2185 2184 -1 -2284 2184 -1 -2185 2185 4 -2186 2185 -1 -2285 2185 -1 -2186 2186 4 -2187 2186 -1 -2286 2186 -1 -2187 2187 4 -2188 2187 -1 -2287 2187 -1 -2188 2188 4 -2189 2188 -1 -2288 2188 -1 -2189 2189 4 -2190 2189 -1 -2289 2189 -1 -2190 2190 4 -2191 2190 -1 -2290 2190 -1 -2191 2191 4 -2192 2191 -1 -2291 2191 -1 -2192 2192 4 -2193 2192 -1 -2292 2192 -1 -2193 2193 4 -2194 2193 -1 -2293 2193 -1 -2194 2194 4 -2195 2194 -1 -2294 2194 -1 -2195 2195 4 -2196 2195 -1 -2295 2195 -1 -2196 2196 4 -2197 2196 -1 -2296 2196 -1 -2197 2197 4 -2198 2197 -1 -2297 2197 -1 -2198 2198 4 -2199 2198 -1 -2298 2198 -1 -2199 2199 4 -2200 2199 -1 -2299 2199 -1 -2200 2200 4 -2300 2200 -1 -2201 2201 4 -2202 2201 -1 -2301 2201 -1 -2202 2202 4 -2203 2202 -1 -2302 2202 -1 -2203 2203 4 -2204 2203 -1 -2303 2203 -1 -2204 2204 4 -2205 2204 -1 -2304 2204 -1 -2205 2205 4 -2206 2205 -1 -2305 2205 -1 -2206 2206 4 -2207 2206 -1 -2306 2206 -1 -2207 2207 4 -2208 2207 -1 -2307 2207 -1 -2208 2208 4 -2209 2208 -1 -2308 2208 -1 -2209 2209 4 -2210 2209 -1 -2309 2209 -1 -2210 2210 4 -2211 2210 -1 -2310 2210 -1 -2211 2211 4 -2212 2211 -1 -2311 2211 -1 -2212 2212 4 -2213 2212 -1 -2312 2212 -1 -2213 2213 4 -2214 2213 -1 -2313 2213 -1 -2214 2214 4 -2215 2214 -1 -2314 2214 -1 -2215 2215 4 -2216 2215 -1 -2315 2215 -1 -2216 2216 4 -2217 2216 -1 -2316 2216 -1 -2217 2217 4 -2218 2217 -1 -2317 2217 -1 -2218 2218 4 -2219 2218 -1 -2318 2218 -1 -2219 2219 4 -2220 2219 -1 -2319 2219 -1 -2220 2220 4 -2221 2220 -1 -2320 2220 -1 -2221 2221 4 -2222 2221 -1 -2321 2221 -1 -2222 2222 4 -2223 2222 -1 -2322 2222 -1 -2223 2223 4 -2224 2223 -1 -2323 2223 -1 -2224 2224 4 -2225 2224 -1 -2324 2224 -1 -2225 2225 4 -2226 2225 -1 -2325 2225 -1 -2226 2226 4 -2227 2226 -1 -2326 2226 -1 -2227 2227 4 -2228 2227 -1 -2327 2227 -1 -2228 2228 4 -2229 2228 -1 -2328 2228 -1 -2229 2229 4 -2230 2229 -1 -2329 2229 -1 -2230 2230 4 -2231 2230 -1 -2330 2230 -1 -2231 2231 4 -2232 2231 -1 -2331 2231 -1 -2232 2232 4 -2233 2232 -1 -2332 2232 -1 -2233 2233 4 -2234 2233 -1 -2333 2233 -1 -2234 2234 4 -2235 2234 -1 -2334 2234 -1 -2235 2235 4 -2236 2235 -1 -2335 2235 -1 -2236 2236 4 -2237 2236 -1 -2336 2236 -1 -2237 2237 4 -2238 2237 -1 -2337 2237 -1 -2238 2238 4 -2239 2238 -1 -2338 2238 -1 -2239 2239 4 -2240 2239 -1 -2339 2239 -1 -2240 2240 4 -2241 2240 -1 -2340 2240 -1 -2241 2241 4 -2242 2241 -1 -2341 2241 -1 -2242 2242 4 -2243 2242 -1 -2342 2242 -1 -2243 2243 4 -2244 2243 -1 -2343 2243 -1 -2244 2244 4 -2245 2244 -1 -2344 2244 -1 -2245 2245 4 -2246 2245 -1 -2345 2245 -1 -2246 2246 4 -2247 2246 -1 -2346 2246 -1 -2247 2247 4 -2248 2247 -1 -2347 2247 -1 -2248 2248 4 -2249 2248 -1 -2348 2248 -1 -2249 2249 4 -2250 2249 -1 -2349 2249 -1 -2250 2250 4 -2251 2250 -1 -2350 2250 -1 -2251 2251 4 -2252 2251 -1 -2351 2251 -1 -2252 2252 4 -2253 2252 -1 -2352 2252 -1 -2253 2253 4 -2254 2253 -1 -2353 2253 -1 -2254 2254 4 -2255 2254 -1 -2354 2254 -1 -2255 2255 4 -2256 2255 -1 -2355 2255 -1 -2256 2256 4 -2257 2256 -1 -2356 2256 -1 -2257 2257 4 -2258 2257 -1 -2357 2257 -1 -2258 2258 4 -2259 2258 -1 -2358 2258 -1 -2259 2259 4 -2260 2259 -1 -2359 2259 -1 -2260 2260 4 -2261 2260 -1 -2360 2260 -1 -2261 2261 4 -2262 2261 -1 -2361 2261 -1 -2262 2262 4 -2263 2262 -1 -2362 2262 -1 -2263 2263 4 -2264 2263 -1 -2363 2263 -1 -2264 2264 4 -2265 2264 -1 -2364 2264 -1 -2265 2265 4 -2266 2265 -1 -2365 2265 -1 -2266 2266 4 -2267 2266 -1 -2366 2266 -1 -2267 2267 4 -2268 2267 -1 -2367 2267 -1 -2268 2268 4 -2269 2268 -1 -2368 2268 -1 -2269 2269 4 -2270 2269 -1 -2369 2269 -1 -2270 2270 4 -2271 2270 -1 -2370 2270 -1 -2271 2271 4 -2272 2271 -1 -2371 2271 -1 -2272 2272 4 -2273 2272 -1 -2372 2272 -1 -2273 2273 4 -2274 2273 -1 -2373 2273 -1 -2274 2274 4 -2275 2274 -1 -2374 2274 -1 -2275 2275 4 -2276 2275 -1 -2375 2275 -1 -2276 2276 4 -2277 2276 -1 -2376 2276 -1 -2277 2277 4 -2278 2277 -1 -2377 2277 -1 -2278 2278 4 -2279 2278 -1 -2378 2278 -1 -2279 2279 4 -2280 2279 -1 -2379 2279 -1 -2280 2280 4 -2281 2280 -1 -2380 2280 -1 -2281 2281 4 -2282 2281 -1 -2381 2281 -1 -2282 2282 4 -2283 2282 -1 -2382 2282 -1 -2283 2283 4 -2284 2283 -1 -2383 2283 -1 -2284 2284 4 -2285 2284 -1 -2384 2284 -1 -2285 2285 4 -2286 2285 -1 -2385 2285 -1 -2286 2286 4 -2287 2286 -1 -2386 2286 -1 -2287 2287 4 -2288 2287 -1 -2387 2287 -1 -2288 2288 4 -2289 2288 -1 -2388 2288 -1 -2289 2289 4 -2290 2289 -1 -2389 2289 -1 -2290 2290 4 -2291 2290 -1 -2390 2290 -1 -2291 2291 4 -2292 2291 -1 -2391 2291 -1 -2292 2292 4 -2293 2292 -1 -2392 2292 -1 -2293 2293 4 -2294 2293 -1 -2393 2293 -1 -2294 2294 4 -2295 2294 -1 -2394 2294 -1 -2295 2295 4 -2296 2295 -1 -2395 2295 -1 -2296 2296 4 -2297 2296 -1 -2396 2296 -1 -2297 2297 4 -2298 2297 -1 -2397 2297 -1 -2298 2298 4 -2299 2298 -1 -2398 2298 -1 -2299 2299 4 -2300 2299 -1 -2399 2299 -1 -2300 2300 4 -2400 2300 -1 -2301 2301 4 -2302 2301 -1 -2401 2301 -1 -2302 2302 4 -2303 2302 -1 -2402 2302 -1 -2303 2303 4 -2304 2303 -1 -2403 2303 -1 -2304 2304 4 -2305 2304 -1 -2404 2304 -1 -2305 2305 4 -2306 2305 -1 -2405 2305 -1 -2306 2306 4 -2307 2306 -1 -2406 2306 -1 -2307 2307 4 -2308 2307 -1 -2407 2307 -1 -2308 2308 4 -2309 2308 -1 -2408 2308 -1 -2309 2309 4 -2310 2309 -1 -2409 2309 -1 -2310 2310 4 -2311 2310 -1 -2410 2310 -1 -2311 2311 4 -2312 2311 -1 -2411 2311 -1 -2312 2312 4 -2313 2312 -1 -2412 2312 -1 -2313 2313 4 -2314 2313 -1 -2413 2313 -1 -2314 2314 4 -2315 2314 -1 -2414 2314 -1 -2315 2315 4 -2316 2315 -1 -2415 2315 -1 -2316 2316 4 -2317 2316 -1 -2416 2316 -1 -2317 2317 4 -2318 2317 -1 -2417 2317 -1 -2318 2318 4 -2319 2318 -1 -2418 2318 -1 -2319 2319 4 -2320 2319 -1 -2419 2319 -1 -2320 2320 4 -2321 2320 -1 -2420 2320 -1 -2321 2321 4 -2322 2321 -1 -2421 2321 -1 -2322 2322 4 -2323 2322 -1 -2422 2322 -1 -2323 2323 4 -2324 2323 -1 -2423 2323 -1 -2324 2324 4 -2325 2324 -1 -2424 2324 -1 -2325 2325 4 -2326 2325 -1 -2425 2325 -1 -2326 2326 4 -2327 2326 -1 -2426 2326 -1 -2327 2327 4 -2328 2327 -1 -2427 2327 -1 -2328 2328 4 -2329 2328 -1 -2428 2328 -1 -2329 2329 4 -2330 2329 -1 -2429 2329 -1 -2330 2330 4 -2331 2330 -1 -2430 2330 -1 -2331 2331 4 -2332 2331 -1 -2431 2331 -1 -2332 2332 4 -2333 2332 -1 -2432 2332 -1 -2333 2333 4 -2334 2333 -1 -2433 2333 -1 -2334 2334 4 -2335 2334 -1 -2434 2334 -1 -2335 2335 4 -2336 2335 -1 -2435 2335 -1 -2336 2336 4 -2337 2336 -1 -2436 2336 -1 -2337 2337 4 -2338 2337 -1 -2437 2337 -1 -2338 2338 4 -2339 2338 -1 -2438 2338 -1 -2339 2339 4 -2340 2339 -1 -2439 2339 -1 -2340 2340 4 -2341 2340 -1 -2440 2340 -1 -2341 2341 4 -2342 2341 -1 -2441 2341 -1 -2342 2342 4 -2343 2342 -1 -2442 2342 -1 -2343 2343 4 -2344 2343 -1 -2443 2343 -1 -2344 2344 4 -2345 2344 -1 -2444 2344 -1 -2345 2345 4 -2346 2345 -1 -2445 2345 -1 -2346 2346 4 -2347 2346 -1 -2446 2346 -1 -2347 2347 4 -2348 2347 -1 -2447 2347 -1 -2348 2348 4 -2349 2348 -1 -2448 2348 -1 -2349 2349 4 -2350 2349 -1 -2449 2349 -1 -2350 2350 4 -2351 2350 -1 -2450 2350 -1 -2351 2351 4 -2352 2351 -1 -2451 2351 -1 -2352 2352 4 -2353 2352 -1 -2452 2352 -1 -2353 2353 4 -2354 2353 -1 -2453 2353 -1 -2354 2354 4 -2355 2354 -1 -2454 2354 -1 -2355 2355 4 -2356 2355 -1 -2455 2355 -1 -2356 2356 4 -2357 2356 -1 -2456 2356 -1 -2357 2357 4 -2358 2357 -1 -2457 2357 -1 -2358 2358 4 -2359 2358 -1 -2458 2358 -1 -2359 2359 4 -2360 2359 -1 -2459 2359 -1 -2360 2360 4 -2361 2360 -1 -2460 2360 -1 -2361 2361 4 -2362 2361 -1 -2461 2361 -1 -2362 2362 4 -2363 2362 -1 -2462 2362 -1 -2363 2363 4 -2364 2363 -1 -2463 2363 -1 -2364 2364 4 -2365 2364 -1 -2464 2364 -1 -2365 2365 4 -2366 2365 -1 -2465 2365 -1 -2366 2366 4 -2367 2366 -1 -2466 2366 -1 -2367 2367 4 -2368 2367 -1 -2467 2367 -1 -2368 2368 4 -2369 2368 -1 -2468 2368 -1 -2369 2369 4 -2370 2369 -1 -2469 2369 -1 -2370 2370 4 -2371 2370 -1 -2470 2370 -1 -2371 2371 4 -2372 2371 -1 -2471 2371 -1 -2372 2372 4 -2373 2372 -1 -2472 2372 -1 -2373 2373 4 -2374 2373 -1 -2473 2373 -1 -2374 2374 4 -2375 2374 -1 -2474 2374 -1 -2375 2375 4 -2376 2375 -1 -2475 2375 -1 -2376 2376 4 -2377 2376 -1 -2476 2376 -1 -2377 2377 4 -2378 2377 -1 -2477 2377 -1 -2378 2378 4 -2379 2378 -1 -2478 2378 -1 -2379 2379 4 -2380 2379 -1 -2479 2379 -1 -2380 2380 4 -2381 2380 -1 -2480 2380 -1 -2381 2381 4 -2382 2381 -1 -2481 2381 -1 -2382 2382 4 -2383 2382 -1 -2482 2382 -1 -2383 2383 4 -2384 2383 -1 -2483 2383 -1 -2384 2384 4 -2385 2384 -1 -2484 2384 -1 -2385 2385 4 -2386 2385 -1 -2485 2385 -1 -2386 2386 4 -2387 2386 -1 -2486 2386 -1 -2387 2387 4 -2388 2387 -1 -2487 2387 -1 -2388 2388 4 -2389 2388 -1 -2488 2388 -1 -2389 2389 4 -2390 2389 -1 -2489 2389 -1 -2390 2390 4 -2391 2390 -1 -2490 2390 -1 -2391 2391 4 -2392 2391 -1 -2491 2391 -1 -2392 2392 4 -2393 2392 -1 -2492 2392 -1 -2393 2393 4 -2394 2393 -1 -2493 2393 -1 -2394 2394 4 -2395 2394 -1 -2494 2394 -1 -2395 2395 4 -2396 2395 -1 -2495 2395 -1 -2396 2396 4 -2397 2396 -1 -2496 2396 -1 -2397 2397 4 -2398 2397 -1 -2497 2397 -1 -2398 2398 4 -2399 2398 -1 -2498 2398 -1 -2399 2399 4 -2400 2399 -1 -2499 2399 -1 -2400 2400 4 -2500 2400 -1 -2401 2401 4 -2402 2401 -1 -2501 2401 -1 -2402 2402 4 -2403 2402 -1 -2502 2402 -1 -2403 2403 4 -2404 2403 -1 -2503 2403 -1 -2404 2404 4 -2405 2404 -1 -2504 2404 -1 -2405 2405 4 -2406 2405 -1 -2505 2405 -1 -2406 2406 4 -2407 2406 -1 -2506 2406 -1 -2407 2407 4 -2408 2407 -1 -2507 2407 -1 -2408 2408 4 -2409 2408 -1 -2508 2408 -1 -2409 2409 4 -2410 2409 -1 -2509 2409 -1 -2410 2410 4 -2411 2410 -1 -2510 2410 -1 -2411 2411 4 -2412 2411 -1 -2511 2411 -1 -2412 2412 4 -2413 2412 -1 -2512 2412 -1 -2413 2413 4 -2414 2413 -1 -2513 2413 -1 -2414 2414 4 -2415 2414 -1 -2514 2414 -1 -2415 2415 4 -2416 2415 -1 -2515 2415 -1 -2416 2416 4 -2417 2416 -1 -2516 2416 -1 -2417 2417 4 -2418 2417 -1 -2517 2417 -1 -2418 2418 4 -2419 2418 -1 -2518 2418 -1 -2419 2419 4 -2420 2419 -1 -2519 2419 -1 -2420 2420 4 -2421 2420 -1 -2520 2420 -1 -2421 2421 4 -2422 2421 -1 -2521 2421 -1 -2422 2422 4 -2423 2422 -1 -2522 2422 -1 -2423 2423 4 -2424 2423 -1 -2523 2423 -1 -2424 2424 4 -2425 2424 -1 -2524 2424 -1 -2425 2425 4 -2426 2425 -1 -2525 2425 -1 -2426 2426 4 -2427 2426 -1 -2526 2426 -1 -2427 2427 4 -2428 2427 -1 -2527 2427 -1 -2428 2428 4 -2429 2428 -1 -2528 2428 -1 -2429 2429 4 -2430 2429 -1 -2529 2429 -1 -2430 2430 4 -2431 2430 -1 -2530 2430 -1 -2431 2431 4 -2432 2431 -1 -2531 2431 -1 -2432 2432 4 -2433 2432 -1 -2532 2432 -1 -2433 2433 4 -2434 2433 -1 -2533 2433 -1 -2434 2434 4 -2435 2434 -1 -2534 2434 -1 -2435 2435 4 -2436 2435 -1 -2535 2435 -1 -2436 2436 4 -2437 2436 -1 -2536 2436 -1 -2437 2437 4 -2438 2437 -1 -2537 2437 -1 -2438 2438 4 -2439 2438 -1 -2538 2438 -1 -2439 2439 4 -2440 2439 -1 -2539 2439 -1 -2440 2440 4 -2441 2440 -1 -2540 2440 -1 -2441 2441 4 -2442 2441 -1 -2541 2441 -1 -2442 2442 4 -2443 2442 -1 -2542 2442 -1 -2443 2443 4 -2444 2443 -1 -2543 2443 -1 -2444 2444 4 -2445 2444 -1 -2544 2444 -1 -2445 2445 4 -2446 2445 -1 -2545 2445 -1 -2446 2446 4 -2447 2446 -1 -2546 2446 -1 -2447 2447 4 -2448 2447 -1 -2547 2447 -1 -2448 2448 4 -2449 2448 -1 -2548 2448 -1 -2449 2449 4 -2450 2449 -1 -2549 2449 -1 -2450 2450 4 -2451 2450 -1 -2550 2450 -1 -2451 2451 4 -2452 2451 -1 -2551 2451 -1 -2452 2452 4 -2453 2452 -1 -2552 2452 -1 -2453 2453 4 -2454 2453 -1 -2553 2453 -1 -2454 2454 4 -2455 2454 -1 -2554 2454 -1 -2455 2455 4 -2456 2455 -1 -2555 2455 -1 -2456 2456 4 -2457 2456 -1 -2556 2456 -1 -2457 2457 4 -2458 2457 -1 -2557 2457 -1 -2458 2458 4 -2459 2458 -1 -2558 2458 -1 -2459 2459 4 -2460 2459 -1 -2559 2459 -1 -2460 2460 4 -2461 2460 -1 -2560 2460 -1 -2461 2461 4 -2462 2461 -1 -2561 2461 -1 -2462 2462 4 -2463 2462 -1 -2562 2462 -1 -2463 2463 4 -2464 2463 -1 -2563 2463 -1 -2464 2464 4 -2465 2464 -1 -2564 2464 -1 -2465 2465 4 -2466 2465 -1 -2565 2465 -1 -2466 2466 4 -2467 2466 -1 -2566 2466 -1 -2467 2467 4 -2468 2467 -1 -2567 2467 -1 -2468 2468 4 -2469 2468 -1 -2568 2468 -1 -2469 2469 4 -2470 2469 -1 -2569 2469 -1 -2470 2470 4 -2471 2470 -1 -2570 2470 -1 -2471 2471 4 -2472 2471 -1 -2571 2471 -1 -2472 2472 4 -2473 2472 -1 -2572 2472 -1 -2473 2473 4 -2474 2473 -1 -2573 2473 -1 -2474 2474 4 -2475 2474 -1 -2574 2474 -1 -2475 2475 4 -2476 2475 -1 -2575 2475 -1 -2476 2476 4 -2477 2476 -1 -2576 2476 -1 -2477 2477 4 -2478 2477 -1 -2577 2477 -1 -2478 2478 4 -2479 2478 -1 -2578 2478 -1 -2479 2479 4 -2480 2479 -1 -2579 2479 -1 -2480 2480 4 -2481 2480 -1 -2580 2480 -1 -2481 2481 4 -2482 2481 -1 -2581 2481 -1 -2482 2482 4 -2483 2482 -1 -2582 2482 -1 -2483 2483 4 -2484 2483 -1 -2583 2483 -1 -2484 2484 4 -2485 2484 -1 -2584 2484 -1 -2485 2485 4 -2486 2485 -1 -2585 2485 -1 -2486 2486 4 -2487 2486 -1 -2586 2486 -1 -2487 2487 4 -2488 2487 -1 -2587 2487 -1 -2488 2488 4 -2489 2488 -1 -2588 2488 -1 -2489 2489 4 -2490 2489 -1 -2589 2489 -1 -2490 2490 4 -2491 2490 -1 -2590 2490 -1 -2491 2491 4 -2492 2491 -1 -2591 2491 -1 -2492 2492 4 -2493 2492 -1 -2592 2492 -1 -2493 2493 4 -2494 2493 -1 -2593 2493 -1 -2494 2494 4 -2495 2494 -1 -2594 2494 -1 -2495 2495 4 -2496 2495 -1 -2595 2495 -1 -2496 2496 4 -2497 2496 -1 -2596 2496 -1 -2497 2497 4 -2498 2497 -1 -2597 2497 -1 -2498 2498 4 -2499 2498 -1 -2598 2498 -1 -2499 2499 4 -2500 2499 -1 -2599 2499 -1 -2500 2500 4 -2600 2500 -1 -2501 2501 4 -2502 2501 -1 -2601 2501 -1 -2502 2502 4 -2503 2502 -1 -2602 2502 -1 -2503 2503 4 -2504 2503 -1 -2603 2503 -1 -2504 2504 4 -2505 2504 -1 -2604 2504 -1 -2505 2505 4 -2506 2505 -1 -2605 2505 -1 -2506 2506 4 -2507 2506 -1 -2606 2506 -1 -2507 2507 4 -2508 2507 -1 -2607 2507 -1 -2508 2508 4 -2509 2508 -1 -2608 2508 -1 -2509 2509 4 -2510 2509 -1 -2609 2509 -1 -2510 2510 4 -2511 2510 -1 -2610 2510 -1 -2511 2511 4 -2512 2511 -1 -2611 2511 -1 -2512 2512 4 -2513 2512 -1 -2612 2512 -1 -2513 2513 4 -2514 2513 -1 -2613 2513 -1 -2514 2514 4 -2515 2514 -1 -2614 2514 -1 -2515 2515 4 -2516 2515 -1 -2615 2515 -1 -2516 2516 4 -2517 2516 -1 -2616 2516 -1 -2517 2517 4 -2518 2517 -1 -2617 2517 -1 -2518 2518 4 -2519 2518 -1 -2618 2518 -1 -2519 2519 4 -2520 2519 -1 -2619 2519 -1 -2520 2520 4 -2521 2520 -1 -2620 2520 -1 -2521 2521 4 -2522 2521 -1 -2621 2521 -1 -2522 2522 4 -2523 2522 -1 -2622 2522 -1 -2523 2523 4 -2524 2523 -1 -2623 2523 -1 -2524 2524 4 -2525 2524 -1 -2624 2524 -1 -2525 2525 4 -2526 2525 -1 -2625 2525 -1 -2526 2526 4 -2527 2526 -1 -2626 2526 -1 -2527 2527 4 -2528 2527 -1 -2627 2527 -1 -2528 2528 4 -2529 2528 -1 -2628 2528 -1 -2529 2529 4 -2530 2529 -1 -2629 2529 -1 -2530 2530 4 -2531 2530 -1 -2630 2530 -1 -2531 2531 4 -2532 2531 -1 -2631 2531 -1 -2532 2532 4 -2533 2532 -1 -2632 2532 -1 -2533 2533 4 -2534 2533 -1 -2633 2533 -1 -2534 2534 4 -2535 2534 -1 -2634 2534 -1 -2535 2535 4 -2536 2535 -1 -2635 2535 -1 -2536 2536 4 -2537 2536 -1 -2636 2536 -1 -2537 2537 4 -2538 2537 -1 -2637 2537 -1 -2538 2538 4 -2539 2538 -1 -2638 2538 -1 -2539 2539 4 -2540 2539 -1 -2639 2539 -1 -2540 2540 4 -2541 2540 -1 -2640 2540 -1 -2541 2541 4 -2542 2541 -1 -2641 2541 -1 -2542 2542 4 -2543 2542 -1 -2642 2542 -1 -2543 2543 4 -2544 2543 -1 -2643 2543 -1 -2544 2544 4 -2545 2544 -1 -2644 2544 -1 -2545 2545 4 -2546 2545 -1 -2645 2545 -1 -2546 2546 4 -2547 2546 -1 -2646 2546 -1 -2547 2547 4 -2548 2547 -1 -2647 2547 -1 -2548 2548 4 -2549 2548 -1 -2648 2548 -1 -2549 2549 4 -2550 2549 -1 -2649 2549 -1 -2550 2550 4 -2551 2550 -1 -2650 2550 -1 -2551 2551 4 -2552 2551 -1 -2651 2551 -1 -2552 2552 4 -2553 2552 -1 -2652 2552 -1 -2553 2553 4 -2554 2553 -1 -2653 2553 -1 -2554 2554 4 -2555 2554 -1 -2654 2554 -1 -2555 2555 4 -2556 2555 -1 -2655 2555 -1 -2556 2556 4 -2557 2556 -1 -2656 2556 -1 -2557 2557 4 -2558 2557 -1 -2657 2557 -1 -2558 2558 4 -2559 2558 -1 -2658 2558 -1 -2559 2559 4 -2560 2559 -1 -2659 2559 -1 -2560 2560 4 -2561 2560 -1 -2660 2560 -1 -2561 2561 4 -2562 2561 -1 -2661 2561 -1 -2562 2562 4 -2563 2562 -1 -2662 2562 -1 -2563 2563 4 -2564 2563 -1 -2663 2563 -1 -2564 2564 4 -2565 2564 -1 -2664 2564 -1 -2565 2565 4 -2566 2565 -1 -2665 2565 -1 -2566 2566 4 -2567 2566 -1 -2666 2566 -1 -2567 2567 4 -2568 2567 -1 -2667 2567 -1 -2568 2568 4 -2569 2568 -1 -2668 2568 -1 -2569 2569 4 -2570 2569 -1 -2669 2569 -1 -2570 2570 4 -2571 2570 -1 -2670 2570 -1 -2571 2571 4 -2572 2571 -1 -2671 2571 -1 -2572 2572 4 -2573 2572 -1 -2672 2572 -1 -2573 2573 4 -2574 2573 -1 -2673 2573 -1 -2574 2574 4 -2575 2574 -1 -2674 2574 -1 -2575 2575 4 -2576 2575 -1 -2675 2575 -1 -2576 2576 4 -2577 2576 -1 -2676 2576 -1 -2577 2577 4 -2578 2577 -1 -2677 2577 -1 -2578 2578 4 -2579 2578 -1 -2678 2578 -1 -2579 2579 4 -2580 2579 -1 -2679 2579 -1 -2580 2580 4 -2581 2580 -1 -2680 2580 -1 -2581 2581 4 -2582 2581 -1 -2681 2581 -1 -2582 2582 4 -2583 2582 -1 -2682 2582 -1 -2583 2583 4 -2584 2583 -1 -2683 2583 -1 -2584 2584 4 -2585 2584 -1 -2684 2584 -1 -2585 2585 4 -2586 2585 -1 -2685 2585 -1 -2586 2586 4 -2587 2586 -1 -2686 2586 -1 -2587 2587 4 -2588 2587 -1 -2687 2587 -1 -2588 2588 4 -2589 2588 -1 -2688 2588 -1 -2589 2589 4 -2590 2589 -1 -2689 2589 -1 -2590 2590 4 -2591 2590 -1 -2690 2590 -1 -2591 2591 4 -2592 2591 -1 -2691 2591 -1 -2592 2592 4 -2593 2592 -1 -2692 2592 -1 -2593 2593 4 -2594 2593 -1 -2693 2593 -1 -2594 2594 4 -2595 2594 -1 -2694 2594 -1 -2595 2595 4 -2596 2595 -1 -2695 2595 -1 -2596 2596 4 -2597 2596 -1 -2696 2596 -1 -2597 2597 4 -2598 2597 -1 -2697 2597 -1 -2598 2598 4 -2599 2598 -1 -2698 2598 -1 -2599 2599 4 -2600 2599 -1 -2699 2599 -1 -2600 2600 4 -2700 2600 -1 -2601 2601 4 -2602 2601 -1 -2701 2601 -1 -2602 2602 4 -2603 2602 -1 -2702 2602 -1 -2603 2603 4 -2604 2603 -1 -2703 2603 -1 -2604 2604 4 -2605 2604 -1 -2704 2604 -1 -2605 2605 4 -2606 2605 -1 -2705 2605 -1 -2606 2606 4 -2607 2606 -1 -2706 2606 -1 -2607 2607 4 -2608 2607 -1 -2707 2607 -1 -2608 2608 4 -2609 2608 -1 -2708 2608 -1 -2609 2609 4 -2610 2609 -1 -2709 2609 -1 -2610 2610 4 -2611 2610 -1 -2710 2610 -1 -2611 2611 4 -2612 2611 -1 -2711 2611 -1 -2612 2612 4 -2613 2612 -1 -2712 2612 -1 -2613 2613 4 -2614 2613 -1 -2713 2613 -1 -2614 2614 4 -2615 2614 -1 -2714 2614 -1 -2615 2615 4 -2616 2615 -1 -2715 2615 -1 -2616 2616 4 -2617 2616 -1 -2716 2616 -1 -2617 2617 4 -2618 2617 -1 -2717 2617 -1 -2618 2618 4 -2619 2618 -1 -2718 2618 -1 -2619 2619 4 -2620 2619 -1 -2719 2619 -1 -2620 2620 4 -2621 2620 -1 -2720 2620 -1 -2621 2621 4 -2622 2621 -1 -2721 2621 -1 -2622 2622 4 -2623 2622 -1 -2722 2622 -1 -2623 2623 4 -2624 2623 -1 -2723 2623 -1 -2624 2624 4 -2625 2624 -1 -2724 2624 -1 -2625 2625 4 -2626 2625 -1 -2725 2625 -1 -2626 2626 4 -2627 2626 -1 -2726 2626 -1 -2627 2627 4 -2628 2627 -1 -2727 2627 -1 -2628 2628 4 -2629 2628 -1 -2728 2628 -1 -2629 2629 4 -2630 2629 -1 -2729 2629 -1 -2630 2630 4 -2631 2630 -1 -2730 2630 -1 -2631 2631 4 -2632 2631 -1 -2731 2631 -1 -2632 2632 4 -2633 2632 -1 -2732 2632 -1 -2633 2633 4 -2634 2633 -1 -2733 2633 -1 -2634 2634 4 -2635 2634 -1 -2734 2634 -1 -2635 2635 4 -2636 2635 -1 -2735 2635 -1 -2636 2636 4 -2637 2636 -1 -2736 2636 -1 -2637 2637 4 -2638 2637 -1 -2737 2637 -1 -2638 2638 4 -2639 2638 -1 -2738 2638 -1 -2639 2639 4 -2640 2639 -1 -2739 2639 -1 -2640 2640 4 -2641 2640 -1 -2740 2640 -1 -2641 2641 4 -2642 2641 -1 -2741 2641 -1 -2642 2642 4 -2643 2642 -1 -2742 2642 -1 -2643 2643 4 -2644 2643 -1 -2743 2643 -1 -2644 2644 4 -2645 2644 -1 -2744 2644 -1 -2645 2645 4 -2646 2645 -1 -2745 2645 -1 -2646 2646 4 -2647 2646 -1 -2746 2646 -1 -2647 2647 4 -2648 2647 -1 -2747 2647 -1 -2648 2648 4 -2649 2648 -1 -2748 2648 -1 -2649 2649 4 -2650 2649 -1 -2749 2649 -1 -2650 2650 4 -2651 2650 -1 -2750 2650 -1 -2651 2651 4 -2652 2651 -1 -2751 2651 -1 -2652 2652 4 -2653 2652 -1 -2752 2652 -1 -2653 2653 4 -2654 2653 -1 -2753 2653 -1 -2654 2654 4 -2655 2654 -1 -2754 2654 -1 -2655 2655 4 -2656 2655 -1 -2755 2655 -1 -2656 2656 4 -2657 2656 -1 -2756 2656 -1 -2657 2657 4 -2658 2657 -1 -2757 2657 -1 -2658 2658 4 -2659 2658 -1 -2758 2658 -1 -2659 2659 4 -2660 2659 -1 -2759 2659 -1 -2660 2660 4 -2661 2660 -1 -2760 2660 -1 -2661 2661 4 -2662 2661 -1 -2761 2661 -1 -2662 2662 4 -2663 2662 -1 -2762 2662 -1 -2663 2663 4 -2664 2663 -1 -2763 2663 -1 -2664 2664 4 -2665 2664 -1 -2764 2664 -1 -2665 2665 4 -2666 2665 -1 -2765 2665 -1 -2666 2666 4 -2667 2666 -1 -2766 2666 -1 -2667 2667 4 -2668 2667 -1 -2767 2667 -1 -2668 2668 4 -2669 2668 -1 -2768 2668 -1 -2669 2669 4 -2670 2669 -1 -2769 2669 -1 -2670 2670 4 -2671 2670 -1 -2770 2670 -1 -2671 2671 4 -2672 2671 -1 -2771 2671 -1 -2672 2672 4 -2673 2672 -1 -2772 2672 -1 -2673 2673 4 -2674 2673 -1 -2773 2673 -1 -2674 2674 4 -2675 2674 -1 -2774 2674 -1 -2675 2675 4 -2676 2675 -1 -2775 2675 -1 -2676 2676 4 -2677 2676 -1 -2776 2676 -1 -2677 2677 4 -2678 2677 -1 -2777 2677 -1 -2678 2678 4 -2679 2678 -1 -2778 2678 -1 -2679 2679 4 -2680 2679 -1 -2779 2679 -1 -2680 2680 4 -2681 2680 -1 -2780 2680 -1 -2681 2681 4 -2682 2681 -1 -2781 2681 -1 -2682 2682 4 -2683 2682 -1 -2782 2682 -1 -2683 2683 4 -2684 2683 -1 -2783 2683 -1 -2684 2684 4 -2685 2684 -1 -2784 2684 -1 -2685 2685 4 -2686 2685 -1 -2785 2685 -1 -2686 2686 4 -2687 2686 -1 -2786 2686 -1 -2687 2687 4 -2688 2687 -1 -2787 2687 -1 -2688 2688 4 -2689 2688 -1 -2788 2688 -1 -2689 2689 4 -2690 2689 -1 -2789 2689 -1 -2690 2690 4 -2691 2690 -1 -2790 2690 -1 -2691 2691 4 -2692 2691 -1 -2791 2691 -1 -2692 2692 4 -2693 2692 -1 -2792 2692 -1 -2693 2693 4 -2694 2693 -1 -2793 2693 -1 -2694 2694 4 -2695 2694 -1 -2794 2694 -1 -2695 2695 4 -2696 2695 -1 -2795 2695 -1 -2696 2696 4 -2697 2696 -1 -2796 2696 -1 -2697 2697 4 -2698 2697 -1 -2797 2697 -1 -2698 2698 4 -2699 2698 -1 -2798 2698 -1 -2699 2699 4 -2700 2699 -1 -2799 2699 -1 -2700 2700 4 -2800 2700 -1 -2701 2701 4 -2702 2701 -1 -2801 2701 -1 -2702 2702 4 -2703 2702 -1 -2802 2702 -1 -2703 2703 4 -2704 2703 -1 -2803 2703 -1 -2704 2704 4 -2705 2704 -1 -2804 2704 -1 -2705 2705 4 -2706 2705 -1 -2805 2705 -1 -2706 2706 4 -2707 2706 -1 -2806 2706 -1 -2707 2707 4 -2708 2707 -1 -2807 2707 -1 -2708 2708 4 -2709 2708 -1 -2808 2708 -1 -2709 2709 4 -2710 2709 -1 -2809 2709 -1 -2710 2710 4 -2711 2710 -1 -2810 2710 -1 -2711 2711 4 -2712 2711 -1 -2811 2711 -1 -2712 2712 4 -2713 2712 -1 -2812 2712 -1 -2713 2713 4 -2714 2713 -1 -2813 2713 -1 -2714 2714 4 -2715 2714 -1 -2814 2714 -1 -2715 2715 4 -2716 2715 -1 -2815 2715 -1 -2716 2716 4 -2717 2716 -1 -2816 2716 -1 -2717 2717 4 -2718 2717 -1 -2817 2717 -1 -2718 2718 4 -2719 2718 -1 -2818 2718 -1 -2719 2719 4 -2720 2719 -1 -2819 2719 -1 -2720 2720 4 -2721 2720 -1 -2820 2720 -1 -2721 2721 4 -2722 2721 -1 -2821 2721 -1 -2722 2722 4 -2723 2722 -1 -2822 2722 -1 -2723 2723 4 -2724 2723 -1 -2823 2723 -1 -2724 2724 4 -2725 2724 -1 -2824 2724 -1 -2725 2725 4 -2726 2725 -1 -2825 2725 -1 -2726 2726 4 -2727 2726 -1 -2826 2726 -1 -2727 2727 4 -2728 2727 -1 -2827 2727 -1 -2728 2728 4 -2729 2728 -1 -2828 2728 -1 -2729 2729 4 -2730 2729 -1 -2829 2729 -1 -2730 2730 4 -2731 2730 -1 -2830 2730 -1 -2731 2731 4 -2732 2731 -1 -2831 2731 -1 -2732 2732 4 -2733 2732 -1 -2832 2732 -1 -2733 2733 4 -2734 2733 -1 -2833 2733 -1 -2734 2734 4 -2735 2734 -1 -2834 2734 -1 -2735 2735 4 -2736 2735 -1 -2835 2735 -1 -2736 2736 4 -2737 2736 -1 -2836 2736 -1 -2737 2737 4 -2738 2737 -1 -2837 2737 -1 -2738 2738 4 -2739 2738 -1 -2838 2738 -1 -2739 2739 4 -2740 2739 -1 -2839 2739 -1 -2740 2740 4 -2741 2740 -1 -2840 2740 -1 -2741 2741 4 -2742 2741 -1 -2841 2741 -1 -2742 2742 4 -2743 2742 -1 -2842 2742 -1 -2743 2743 4 -2744 2743 -1 -2843 2743 -1 -2744 2744 4 -2745 2744 -1 -2844 2744 -1 -2745 2745 4 -2746 2745 -1 -2845 2745 -1 -2746 2746 4 -2747 2746 -1 -2846 2746 -1 -2747 2747 4 -2748 2747 -1 -2847 2747 -1 -2748 2748 4 -2749 2748 -1 -2848 2748 -1 -2749 2749 4 -2750 2749 -1 -2849 2749 -1 -2750 2750 4 -2751 2750 -1 -2850 2750 -1 -2751 2751 4 -2752 2751 -1 -2851 2751 -1 -2752 2752 4 -2753 2752 -1 -2852 2752 -1 -2753 2753 4 -2754 2753 -1 -2853 2753 -1 -2754 2754 4 -2755 2754 -1 -2854 2754 -1 -2755 2755 4 -2756 2755 -1 -2855 2755 -1 -2756 2756 4 -2757 2756 -1 -2856 2756 -1 -2757 2757 4 -2758 2757 -1 -2857 2757 -1 -2758 2758 4 -2759 2758 -1 -2858 2758 -1 -2759 2759 4 -2760 2759 -1 -2859 2759 -1 -2760 2760 4 -2761 2760 -1 -2860 2760 -1 -2761 2761 4 -2762 2761 -1 -2861 2761 -1 -2762 2762 4 -2763 2762 -1 -2862 2762 -1 -2763 2763 4 -2764 2763 -1 -2863 2763 -1 -2764 2764 4 -2765 2764 -1 -2864 2764 -1 -2765 2765 4 -2766 2765 -1 -2865 2765 -1 -2766 2766 4 -2767 2766 -1 -2866 2766 -1 -2767 2767 4 -2768 2767 -1 -2867 2767 -1 -2768 2768 4 -2769 2768 -1 -2868 2768 -1 -2769 2769 4 -2770 2769 -1 -2869 2769 -1 -2770 2770 4 -2771 2770 -1 -2870 2770 -1 -2771 2771 4 -2772 2771 -1 -2871 2771 -1 -2772 2772 4 -2773 2772 -1 -2872 2772 -1 -2773 2773 4 -2774 2773 -1 -2873 2773 -1 -2774 2774 4 -2775 2774 -1 -2874 2774 -1 -2775 2775 4 -2776 2775 -1 -2875 2775 -1 -2776 2776 4 -2777 2776 -1 -2876 2776 -1 -2777 2777 4 -2778 2777 -1 -2877 2777 -1 -2778 2778 4 -2779 2778 -1 -2878 2778 -1 -2779 2779 4 -2780 2779 -1 -2879 2779 -1 -2780 2780 4 -2781 2780 -1 -2880 2780 -1 -2781 2781 4 -2782 2781 -1 -2881 2781 -1 -2782 2782 4 -2783 2782 -1 -2882 2782 -1 -2783 2783 4 -2784 2783 -1 -2883 2783 -1 -2784 2784 4 -2785 2784 -1 -2884 2784 -1 -2785 2785 4 -2786 2785 -1 -2885 2785 -1 -2786 2786 4 -2787 2786 -1 -2886 2786 -1 -2787 2787 4 -2788 2787 -1 -2887 2787 -1 -2788 2788 4 -2789 2788 -1 -2888 2788 -1 -2789 2789 4 -2790 2789 -1 -2889 2789 -1 -2790 2790 4 -2791 2790 -1 -2890 2790 -1 -2791 2791 4 -2792 2791 -1 -2891 2791 -1 -2792 2792 4 -2793 2792 -1 -2892 2792 -1 -2793 2793 4 -2794 2793 -1 -2893 2793 -1 -2794 2794 4 -2795 2794 -1 -2894 2794 -1 -2795 2795 4 -2796 2795 -1 -2895 2795 -1 -2796 2796 4 -2797 2796 -1 -2896 2796 -1 -2797 2797 4 -2798 2797 -1 -2897 2797 -1 -2798 2798 4 -2799 2798 -1 -2898 2798 -1 -2799 2799 4 -2800 2799 -1 -2899 2799 -1 -2800 2800 4 -2900 2800 -1 -2801 2801 4 -2802 2801 -1 -2901 2801 -1 -2802 2802 4 -2803 2802 -1 -2902 2802 -1 -2803 2803 4 -2804 2803 -1 -2903 2803 -1 -2804 2804 4 -2805 2804 -1 -2904 2804 -1 -2805 2805 4 -2806 2805 -1 -2905 2805 -1 -2806 2806 4 -2807 2806 -1 -2906 2806 -1 -2807 2807 4 -2808 2807 -1 -2907 2807 -1 -2808 2808 4 -2809 2808 -1 -2908 2808 -1 -2809 2809 4 -2810 2809 -1 -2909 2809 -1 -2810 2810 4 -2811 2810 -1 -2910 2810 -1 -2811 2811 4 -2812 2811 -1 -2911 2811 -1 -2812 2812 4 -2813 2812 -1 -2912 2812 -1 -2813 2813 4 -2814 2813 -1 -2913 2813 -1 -2814 2814 4 -2815 2814 -1 -2914 2814 -1 -2815 2815 4 -2816 2815 -1 -2915 2815 -1 -2816 2816 4 -2817 2816 -1 -2916 2816 -1 -2817 2817 4 -2818 2817 -1 -2917 2817 -1 -2818 2818 4 -2819 2818 -1 -2918 2818 -1 -2819 2819 4 -2820 2819 -1 -2919 2819 -1 -2820 2820 4 -2821 2820 -1 -2920 2820 -1 -2821 2821 4 -2822 2821 -1 -2921 2821 -1 -2822 2822 4 -2823 2822 -1 -2922 2822 -1 -2823 2823 4 -2824 2823 -1 -2923 2823 -1 -2824 2824 4 -2825 2824 -1 -2924 2824 -1 -2825 2825 4 -2826 2825 -1 -2925 2825 -1 -2826 2826 4 -2827 2826 -1 -2926 2826 -1 -2827 2827 4 -2828 2827 -1 -2927 2827 -1 -2828 2828 4 -2829 2828 -1 -2928 2828 -1 -2829 2829 4 -2830 2829 -1 -2929 2829 -1 -2830 2830 4 -2831 2830 -1 -2930 2830 -1 -2831 2831 4 -2832 2831 -1 -2931 2831 -1 -2832 2832 4 -2833 2832 -1 -2932 2832 -1 -2833 2833 4 -2834 2833 -1 -2933 2833 -1 -2834 2834 4 -2835 2834 -1 -2934 2834 -1 -2835 2835 4 -2836 2835 -1 -2935 2835 -1 -2836 2836 4 -2837 2836 -1 -2936 2836 -1 -2837 2837 4 -2838 2837 -1 -2937 2837 -1 -2838 2838 4 -2839 2838 -1 -2938 2838 -1 -2839 2839 4 -2840 2839 -1 -2939 2839 -1 -2840 2840 4 -2841 2840 -1 -2940 2840 -1 -2841 2841 4 -2842 2841 -1 -2941 2841 -1 -2842 2842 4 -2843 2842 -1 -2942 2842 -1 -2843 2843 4 -2844 2843 -1 -2943 2843 -1 -2844 2844 4 -2845 2844 -1 -2944 2844 -1 -2845 2845 4 -2846 2845 -1 -2945 2845 -1 -2846 2846 4 -2847 2846 -1 -2946 2846 -1 -2847 2847 4 -2848 2847 -1 -2947 2847 -1 -2848 2848 4 -2849 2848 -1 -2948 2848 -1 -2849 2849 4 -2850 2849 -1 -2949 2849 -1 -2850 2850 4 -2851 2850 -1 -2950 2850 -1 -2851 2851 4 -2852 2851 -1 -2951 2851 -1 -2852 2852 4 -2853 2852 -1 -2952 2852 -1 -2853 2853 4 -2854 2853 -1 -2953 2853 -1 -2854 2854 4 -2855 2854 -1 -2954 2854 -1 -2855 2855 4 -2856 2855 -1 -2955 2855 -1 -2856 2856 4 -2857 2856 -1 -2956 2856 -1 -2857 2857 4 -2858 2857 -1 -2957 2857 -1 -2858 2858 4 -2859 2858 -1 -2958 2858 -1 -2859 2859 4 -2860 2859 -1 -2959 2859 -1 -2860 2860 4 -2861 2860 -1 -2960 2860 -1 -2861 2861 4 -2862 2861 -1 -2961 2861 -1 -2862 2862 4 -2863 2862 -1 -2962 2862 -1 -2863 2863 4 -2864 2863 -1 -2963 2863 -1 -2864 2864 4 -2865 2864 -1 -2964 2864 -1 -2865 2865 4 -2866 2865 -1 -2965 2865 -1 -2866 2866 4 -2867 2866 -1 -2966 2866 -1 -2867 2867 4 -2868 2867 -1 -2967 2867 -1 -2868 2868 4 -2869 2868 -1 -2968 2868 -1 -2869 2869 4 -2870 2869 -1 -2969 2869 -1 -2870 2870 4 -2871 2870 -1 -2970 2870 -1 -2871 2871 4 -2872 2871 -1 -2971 2871 -1 -2872 2872 4 -2873 2872 -1 -2972 2872 -1 -2873 2873 4 -2874 2873 -1 -2973 2873 -1 -2874 2874 4 -2875 2874 -1 -2974 2874 -1 -2875 2875 4 -2876 2875 -1 -2975 2875 -1 -2876 2876 4 -2877 2876 -1 -2976 2876 -1 -2877 2877 4 -2878 2877 -1 -2977 2877 -1 -2878 2878 4 -2879 2878 -1 -2978 2878 -1 -2879 2879 4 -2880 2879 -1 -2979 2879 -1 -2880 2880 4 -2881 2880 -1 -2980 2880 -1 -2881 2881 4 -2882 2881 -1 -2981 2881 -1 -2882 2882 4 -2883 2882 -1 -2982 2882 -1 -2883 2883 4 -2884 2883 -1 -2983 2883 -1 -2884 2884 4 -2885 2884 -1 -2984 2884 -1 -2885 2885 4 -2886 2885 -1 -2985 2885 -1 -2886 2886 4 -2887 2886 -1 -2986 2886 -1 -2887 2887 4 -2888 2887 -1 -2987 2887 -1 -2888 2888 4 -2889 2888 -1 -2988 2888 -1 -2889 2889 4 -2890 2889 -1 -2989 2889 -1 -2890 2890 4 -2891 2890 -1 -2990 2890 -1 -2891 2891 4 -2892 2891 -1 -2991 2891 -1 -2892 2892 4 -2893 2892 -1 -2992 2892 -1 -2893 2893 4 -2894 2893 -1 -2993 2893 -1 -2894 2894 4 -2895 2894 -1 -2994 2894 -1 -2895 2895 4 -2896 2895 -1 -2995 2895 -1 -2896 2896 4 -2897 2896 -1 -2996 2896 -1 -2897 2897 4 -2898 2897 -1 -2997 2897 -1 -2898 2898 4 -2899 2898 -1 -2998 2898 -1 -2899 2899 4 -2900 2899 -1 -2999 2899 -1 -2900 2900 4 -3000 2900 -1 -2901 2901 4 -2902 2901 -1 -3001 2901 -1 -2902 2902 4 -2903 2902 -1 -3002 2902 -1 -2903 2903 4 -2904 2903 -1 -3003 2903 -1 -2904 2904 4 -2905 2904 -1 -3004 2904 -1 -2905 2905 4 -2906 2905 -1 -3005 2905 -1 -2906 2906 4 -2907 2906 -1 -3006 2906 -1 -2907 2907 4 -2908 2907 -1 -3007 2907 -1 -2908 2908 4 -2909 2908 -1 -3008 2908 -1 -2909 2909 4 -2910 2909 -1 -3009 2909 -1 -2910 2910 4 -2911 2910 -1 -3010 2910 -1 -2911 2911 4 -2912 2911 -1 -3011 2911 -1 -2912 2912 4 -2913 2912 -1 -3012 2912 -1 -2913 2913 4 -2914 2913 -1 -3013 2913 -1 -2914 2914 4 -2915 2914 -1 -3014 2914 -1 -2915 2915 4 -2916 2915 -1 -3015 2915 -1 -2916 2916 4 -2917 2916 -1 -3016 2916 -1 -2917 2917 4 -2918 2917 -1 -3017 2917 -1 -2918 2918 4 -2919 2918 -1 -3018 2918 -1 -2919 2919 4 -2920 2919 -1 -3019 2919 -1 -2920 2920 4 -2921 2920 -1 -3020 2920 -1 -2921 2921 4 -2922 2921 -1 -3021 2921 -1 -2922 2922 4 -2923 2922 -1 -3022 2922 -1 -2923 2923 4 -2924 2923 -1 -3023 2923 -1 -2924 2924 4 -2925 2924 -1 -3024 2924 -1 -2925 2925 4 -2926 2925 -1 -3025 2925 -1 -2926 2926 4 -2927 2926 -1 -3026 2926 -1 -2927 2927 4 -2928 2927 -1 -3027 2927 -1 -2928 2928 4 -2929 2928 -1 -3028 2928 -1 -2929 2929 4 -2930 2929 -1 -3029 2929 -1 -2930 2930 4 -2931 2930 -1 -3030 2930 -1 -2931 2931 4 -2932 2931 -1 -3031 2931 -1 -2932 2932 4 -2933 2932 -1 -3032 2932 -1 -2933 2933 4 -2934 2933 -1 -3033 2933 -1 -2934 2934 4 -2935 2934 -1 -3034 2934 -1 -2935 2935 4 -2936 2935 -1 -3035 2935 -1 -2936 2936 4 -2937 2936 -1 -3036 2936 -1 -2937 2937 4 -2938 2937 -1 -3037 2937 -1 -2938 2938 4 -2939 2938 -1 -3038 2938 -1 -2939 2939 4 -2940 2939 -1 -3039 2939 -1 -2940 2940 4 -2941 2940 -1 -3040 2940 -1 -2941 2941 4 -2942 2941 -1 -3041 2941 -1 -2942 2942 4 -2943 2942 -1 -3042 2942 -1 -2943 2943 4 -2944 2943 -1 -3043 2943 -1 -2944 2944 4 -2945 2944 -1 -3044 2944 -1 -2945 2945 4 -2946 2945 -1 -3045 2945 -1 -2946 2946 4 -2947 2946 -1 -3046 2946 -1 -2947 2947 4 -2948 2947 -1 -3047 2947 -1 -2948 2948 4 -2949 2948 -1 -3048 2948 -1 -2949 2949 4 -2950 2949 -1 -3049 2949 -1 -2950 2950 4 -2951 2950 -1 -3050 2950 -1 -2951 2951 4 -2952 2951 -1 -3051 2951 -1 -2952 2952 4 -2953 2952 -1 -3052 2952 -1 -2953 2953 4 -2954 2953 -1 -3053 2953 -1 -2954 2954 4 -2955 2954 -1 -3054 2954 -1 -2955 2955 4 -2956 2955 -1 -3055 2955 -1 -2956 2956 4 -2957 2956 -1 -3056 2956 -1 -2957 2957 4 -2958 2957 -1 -3057 2957 -1 -2958 2958 4 -2959 2958 -1 -3058 2958 -1 -2959 2959 4 -2960 2959 -1 -3059 2959 -1 -2960 2960 4 -2961 2960 -1 -3060 2960 -1 -2961 2961 4 -2962 2961 -1 -3061 2961 -1 -2962 2962 4 -2963 2962 -1 -3062 2962 -1 -2963 2963 4 -2964 2963 -1 -3063 2963 -1 -2964 2964 4 -2965 2964 -1 -3064 2964 -1 -2965 2965 4 -2966 2965 -1 -3065 2965 -1 -2966 2966 4 -2967 2966 -1 -3066 2966 -1 -2967 2967 4 -2968 2967 -1 -3067 2967 -1 -2968 2968 4 -2969 2968 -1 -3068 2968 -1 -2969 2969 4 -2970 2969 -1 -3069 2969 -1 -2970 2970 4 -2971 2970 -1 -3070 2970 -1 -2971 2971 4 -2972 2971 -1 -3071 2971 -1 -2972 2972 4 -2973 2972 -1 -3072 2972 -1 -2973 2973 4 -2974 2973 -1 -3073 2973 -1 -2974 2974 4 -2975 2974 -1 -3074 2974 -1 -2975 2975 4 -2976 2975 -1 -3075 2975 -1 -2976 2976 4 -2977 2976 -1 -3076 2976 -1 -2977 2977 4 -2978 2977 -1 -3077 2977 -1 -2978 2978 4 -2979 2978 -1 -3078 2978 -1 -2979 2979 4 -2980 2979 -1 -3079 2979 -1 -2980 2980 4 -2981 2980 -1 -3080 2980 -1 -2981 2981 4 -2982 2981 -1 -3081 2981 -1 -2982 2982 4 -2983 2982 -1 -3082 2982 -1 -2983 2983 4 -2984 2983 -1 -3083 2983 -1 -2984 2984 4 -2985 2984 -1 -3084 2984 -1 -2985 2985 4 -2986 2985 -1 -3085 2985 -1 -2986 2986 4 -2987 2986 -1 -3086 2986 -1 -2987 2987 4 -2988 2987 -1 -3087 2987 -1 -2988 2988 4 -2989 2988 -1 -3088 2988 -1 -2989 2989 4 -2990 2989 -1 -3089 2989 -1 -2990 2990 4 -2991 2990 -1 -3090 2990 -1 -2991 2991 4 -2992 2991 -1 -3091 2991 -1 -2992 2992 4 -2993 2992 -1 -3092 2992 -1 -2993 2993 4 -2994 2993 -1 -3093 2993 -1 -2994 2994 4 -2995 2994 -1 -3094 2994 -1 -2995 2995 4 -2996 2995 -1 -3095 2995 -1 -2996 2996 4 -2997 2996 -1 -3096 2996 -1 -2997 2997 4 -2998 2997 -1 -3097 2997 -1 -2998 2998 4 -2999 2998 -1 -3098 2998 -1 -2999 2999 4 -3000 2999 -1 -3099 2999 -1 -3000 3000 4 -3100 3000 -1 -3001 3001 4 -3002 3001 -1 -3101 3001 -1 -3002 3002 4 -3003 3002 -1 -3102 3002 -1 -3003 3003 4 -3004 3003 -1 -3103 3003 -1 -3004 3004 4 -3005 3004 -1 -3104 3004 -1 -3005 3005 4 -3006 3005 -1 -3105 3005 -1 -3006 3006 4 -3007 3006 -1 -3106 3006 -1 -3007 3007 4 -3008 3007 -1 -3107 3007 -1 -3008 3008 4 -3009 3008 -1 -3108 3008 -1 -3009 3009 4 -3010 3009 -1 -3109 3009 -1 -3010 3010 4 -3011 3010 -1 -3110 3010 -1 -3011 3011 4 -3012 3011 -1 -3111 3011 -1 -3012 3012 4 -3013 3012 -1 -3112 3012 -1 -3013 3013 4 -3014 3013 -1 -3113 3013 -1 -3014 3014 4 -3015 3014 -1 -3114 3014 -1 -3015 3015 4 -3016 3015 -1 -3115 3015 -1 -3016 3016 4 -3017 3016 -1 -3116 3016 -1 -3017 3017 4 -3018 3017 -1 -3117 3017 -1 -3018 3018 4 -3019 3018 -1 -3118 3018 -1 -3019 3019 4 -3020 3019 -1 -3119 3019 -1 -3020 3020 4 -3021 3020 -1 -3120 3020 -1 -3021 3021 4 -3022 3021 -1 -3121 3021 -1 -3022 3022 4 -3023 3022 -1 -3122 3022 -1 -3023 3023 4 -3024 3023 -1 -3123 3023 -1 -3024 3024 4 -3025 3024 -1 -3124 3024 -1 -3025 3025 4 -3026 3025 -1 -3125 3025 -1 -3026 3026 4 -3027 3026 -1 -3126 3026 -1 -3027 3027 4 -3028 3027 -1 -3127 3027 -1 -3028 3028 4 -3029 3028 -1 -3128 3028 -1 -3029 3029 4 -3030 3029 -1 -3129 3029 -1 -3030 3030 4 -3031 3030 -1 -3130 3030 -1 -3031 3031 4 -3032 3031 -1 -3131 3031 -1 -3032 3032 4 -3033 3032 -1 -3132 3032 -1 -3033 3033 4 -3034 3033 -1 -3133 3033 -1 -3034 3034 4 -3035 3034 -1 -3134 3034 -1 -3035 3035 4 -3036 3035 -1 -3135 3035 -1 -3036 3036 4 -3037 3036 -1 -3136 3036 -1 -3037 3037 4 -3038 3037 -1 -3137 3037 -1 -3038 3038 4 -3039 3038 -1 -3138 3038 -1 -3039 3039 4 -3040 3039 -1 -3139 3039 -1 -3040 3040 4 -3041 3040 -1 -3140 3040 -1 -3041 3041 4 -3042 3041 -1 -3141 3041 -1 -3042 3042 4 -3043 3042 -1 -3142 3042 -1 -3043 3043 4 -3044 3043 -1 -3143 3043 -1 -3044 3044 4 -3045 3044 -1 -3144 3044 -1 -3045 3045 4 -3046 3045 -1 -3145 3045 -1 -3046 3046 4 -3047 3046 -1 -3146 3046 -1 -3047 3047 4 -3048 3047 -1 -3147 3047 -1 -3048 3048 4 -3049 3048 -1 -3148 3048 -1 -3049 3049 4 -3050 3049 -1 -3149 3049 -1 -3050 3050 4 -3051 3050 -1 -3150 3050 -1 -3051 3051 4 -3052 3051 -1 -3151 3051 -1 -3052 3052 4 -3053 3052 -1 -3152 3052 -1 -3053 3053 4 -3054 3053 -1 -3153 3053 -1 -3054 3054 4 -3055 3054 -1 -3154 3054 -1 -3055 3055 4 -3056 3055 -1 -3155 3055 -1 -3056 3056 4 -3057 3056 -1 -3156 3056 -1 -3057 3057 4 -3058 3057 -1 -3157 3057 -1 -3058 3058 4 -3059 3058 -1 -3158 3058 -1 -3059 3059 4 -3060 3059 -1 -3159 3059 -1 -3060 3060 4 -3061 3060 -1 -3160 3060 -1 -3061 3061 4 -3062 3061 -1 -3161 3061 -1 -3062 3062 4 -3063 3062 -1 -3162 3062 -1 -3063 3063 4 -3064 3063 -1 -3163 3063 -1 -3064 3064 4 -3065 3064 -1 -3164 3064 -1 -3065 3065 4 -3066 3065 -1 -3165 3065 -1 -3066 3066 4 -3067 3066 -1 -3166 3066 -1 -3067 3067 4 -3068 3067 -1 -3167 3067 -1 -3068 3068 4 -3069 3068 -1 -3168 3068 -1 -3069 3069 4 -3070 3069 -1 -3169 3069 -1 -3070 3070 4 -3071 3070 -1 -3170 3070 -1 -3071 3071 4 -3072 3071 -1 -3171 3071 -1 -3072 3072 4 -3073 3072 -1 -3172 3072 -1 -3073 3073 4 -3074 3073 -1 -3173 3073 -1 -3074 3074 4 -3075 3074 -1 -3174 3074 -1 -3075 3075 4 -3076 3075 -1 -3175 3075 -1 -3076 3076 4 -3077 3076 -1 -3176 3076 -1 -3077 3077 4 -3078 3077 -1 -3177 3077 -1 -3078 3078 4 -3079 3078 -1 -3178 3078 -1 -3079 3079 4 -3080 3079 -1 -3179 3079 -1 -3080 3080 4 -3081 3080 -1 -3180 3080 -1 -3081 3081 4 -3082 3081 -1 -3181 3081 -1 -3082 3082 4 -3083 3082 -1 -3182 3082 -1 -3083 3083 4 -3084 3083 -1 -3183 3083 -1 -3084 3084 4 -3085 3084 -1 -3184 3084 -1 -3085 3085 4 -3086 3085 -1 -3185 3085 -1 -3086 3086 4 -3087 3086 -1 -3186 3086 -1 -3087 3087 4 -3088 3087 -1 -3187 3087 -1 -3088 3088 4 -3089 3088 -1 -3188 3088 -1 -3089 3089 4 -3090 3089 -1 -3189 3089 -1 -3090 3090 4 -3091 3090 -1 -3190 3090 -1 -3091 3091 4 -3092 3091 -1 -3191 3091 -1 -3092 3092 4 -3093 3092 -1 -3192 3092 -1 -3093 3093 4 -3094 3093 -1 -3193 3093 -1 -3094 3094 4 -3095 3094 -1 -3194 3094 -1 -3095 3095 4 -3096 3095 -1 -3195 3095 -1 -3096 3096 4 -3097 3096 -1 -3196 3096 -1 -3097 3097 4 -3098 3097 -1 -3197 3097 -1 -3098 3098 4 -3099 3098 -1 -3198 3098 -1 -3099 3099 4 -3100 3099 -1 -3199 3099 -1 -3100 3100 4 -3200 3100 -1 -3101 3101 4 -3102 3101 -1 -3201 3101 -1 -3102 3102 4 -3103 3102 -1 -3202 3102 -1 -3103 3103 4 -3104 3103 -1 -3203 3103 -1 -3104 3104 4 -3105 3104 -1 -3204 3104 -1 -3105 3105 4 -3106 3105 -1 -3205 3105 -1 -3106 3106 4 -3107 3106 -1 -3206 3106 -1 -3107 3107 4 -3108 3107 -1 -3207 3107 -1 -3108 3108 4 -3109 3108 -1 -3208 3108 -1 -3109 3109 4 -3110 3109 -1 -3209 3109 -1 -3110 3110 4 -3111 3110 -1 -3210 3110 -1 -3111 3111 4 -3112 3111 -1 -3211 3111 -1 -3112 3112 4 -3113 3112 -1 -3212 3112 -1 -3113 3113 4 -3114 3113 -1 -3213 3113 -1 -3114 3114 4 -3115 3114 -1 -3214 3114 -1 -3115 3115 4 -3116 3115 -1 -3215 3115 -1 -3116 3116 4 -3117 3116 -1 -3216 3116 -1 -3117 3117 4 -3118 3117 -1 -3217 3117 -1 -3118 3118 4 -3119 3118 -1 -3218 3118 -1 -3119 3119 4 -3120 3119 -1 -3219 3119 -1 -3120 3120 4 -3121 3120 -1 -3220 3120 -1 -3121 3121 4 -3122 3121 -1 -3221 3121 -1 -3122 3122 4 -3123 3122 -1 -3222 3122 -1 -3123 3123 4 -3124 3123 -1 -3223 3123 -1 -3124 3124 4 -3125 3124 -1 -3224 3124 -1 -3125 3125 4 -3126 3125 -1 -3225 3125 -1 -3126 3126 4 -3127 3126 -1 -3226 3126 -1 -3127 3127 4 -3128 3127 -1 -3227 3127 -1 -3128 3128 4 -3129 3128 -1 -3228 3128 -1 -3129 3129 4 -3130 3129 -1 -3229 3129 -1 -3130 3130 4 -3131 3130 -1 -3230 3130 -1 -3131 3131 4 -3132 3131 -1 -3231 3131 -1 -3132 3132 4 -3133 3132 -1 -3232 3132 -1 -3133 3133 4 -3134 3133 -1 -3233 3133 -1 -3134 3134 4 -3135 3134 -1 -3234 3134 -1 -3135 3135 4 -3136 3135 -1 -3235 3135 -1 -3136 3136 4 -3137 3136 -1 -3236 3136 -1 -3137 3137 4 -3138 3137 -1 -3237 3137 -1 -3138 3138 4 -3139 3138 -1 -3238 3138 -1 -3139 3139 4 -3140 3139 -1 -3239 3139 -1 -3140 3140 4 -3141 3140 -1 -3240 3140 -1 -3141 3141 4 -3142 3141 -1 -3241 3141 -1 -3142 3142 4 -3143 3142 -1 -3242 3142 -1 -3143 3143 4 -3144 3143 -1 -3243 3143 -1 -3144 3144 4 -3145 3144 -1 -3244 3144 -1 -3145 3145 4 -3146 3145 -1 -3245 3145 -1 -3146 3146 4 -3147 3146 -1 -3246 3146 -1 -3147 3147 4 -3148 3147 -1 -3247 3147 -1 -3148 3148 4 -3149 3148 -1 -3248 3148 -1 -3149 3149 4 -3150 3149 -1 -3249 3149 -1 -3150 3150 4 -3151 3150 -1 -3250 3150 -1 -3151 3151 4 -3152 3151 -1 -3251 3151 -1 -3152 3152 4 -3153 3152 -1 -3252 3152 -1 -3153 3153 4 -3154 3153 -1 -3253 3153 -1 -3154 3154 4 -3155 3154 -1 -3254 3154 -1 -3155 3155 4 -3156 3155 -1 -3255 3155 -1 -3156 3156 4 -3157 3156 -1 -3256 3156 -1 -3157 3157 4 -3158 3157 -1 -3257 3157 -1 -3158 3158 4 -3159 3158 -1 -3258 3158 -1 -3159 3159 4 -3160 3159 -1 -3259 3159 -1 -3160 3160 4 -3161 3160 -1 -3260 3160 -1 -3161 3161 4 -3162 3161 -1 -3261 3161 -1 -3162 3162 4 -3163 3162 -1 -3262 3162 -1 -3163 3163 4 -3164 3163 -1 -3263 3163 -1 -3164 3164 4 -3165 3164 -1 -3264 3164 -1 -3165 3165 4 -3166 3165 -1 -3265 3165 -1 -3166 3166 4 -3167 3166 -1 -3266 3166 -1 -3167 3167 4 -3168 3167 -1 -3267 3167 -1 -3168 3168 4 -3169 3168 -1 -3268 3168 -1 -3169 3169 4 -3170 3169 -1 -3269 3169 -1 -3170 3170 4 -3171 3170 -1 -3270 3170 -1 -3171 3171 4 -3172 3171 -1 -3271 3171 -1 -3172 3172 4 -3173 3172 -1 -3272 3172 -1 -3173 3173 4 -3174 3173 -1 -3273 3173 -1 -3174 3174 4 -3175 3174 -1 -3274 3174 -1 -3175 3175 4 -3176 3175 -1 -3275 3175 -1 -3176 3176 4 -3177 3176 -1 -3276 3176 -1 -3177 3177 4 -3178 3177 -1 -3277 3177 -1 -3178 3178 4 -3179 3178 -1 -3278 3178 -1 -3179 3179 4 -3180 3179 -1 -3279 3179 -1 -3180 3180 4 -3181 3180 -1 -3280 3180 -1 -3181 3181 4 -3182 3181 -1 -3281 3181 -1 -3182 3182 4 -3183 3182 -1 -3282 3182 -1 -3183 3183 4 -3184 3183 -1 -3283 3183 -1 -3184 3184 4 -3185 3184 -1 -3284 3184 -1 -3185 3185 4 -3186 3185 -1 -3285 3185 -1 -3186 3186 4 -3187 3186 -1 -3286 3186 -1 -3187 3187 4 -3188 3187 -1 -3287 3187 -1 -3188 3188 4 -3189 3188 -1 -3288 3188 -1 -3189 3189 4 -3190 3189 -1 -3289 3189 -1 -3190 3190 4 -3191 3190 -1 -3290 3190 -1 -3191 3191 4 -3192 3191 -1 -3291 3191 -1 -3192 3192 4 -3193 3192 -1 -3292 3192 -1 -3193 3193 4 -3194 3193 -1 -3293 3193 -1 -3194 3194 4 -3195 3194 -1 -3294 3194 -1 -3195 3195 4 -3196 3195 -1 -3295 3195 -1 -3196 3196 4 -3197 3196 -1 -3296 3196 -1 -3197 3197 4 -3198 3197 -1 -3297 3197 -1 -3198 3198 4 -3199 3198 -1 -3298 3198 -1 -3199 3199 4 -3200 3199 -1 -3299 3199 -1 -3200 3200 4 -3300 3200 -1 -3201 3201 4 -3202 3201 -1 -3301 3201 -1 -3202 3202 4 -3203 3202 -1 -3302 3202 -1 -3203 3203 4 -3204 3203 -1 -3303 3203 -1 -3204 3204 4 -3205 3204 -1 -3304 3204 -1 -3205 3205 4 -3206 3205 -1 -3305 3205 -1 -3206 3206 4 -3207 3206 -1 -3306 3206 -1 -3207 3207 4 -3208 3207 -1 -3307 3207 -1 -3208 3208 4 -3209 3208 -1 -3308 3208 -1 -3209 3209 4 -3210 3209 -1 -3309 3209 -1 -3210 3210 4 -3211 3210 -1 -3310 3210 -1 -3211 3211 4 -3212 3211 -1 -3311 3211 -1 -3212 3212 4 -3213 3212 -1 -3312 3212 -1 -3213 3213 4 -3214 3213 -1 -3313 3213 -1 -3214 3214 4 -3215 3214 -1 -3314 3214 -1 -3215 3215 4 -3216 3215 -1 -3315 3215 -1 -3216 3216 4 -3217 3216 -1 -3316 3216 -1 -3217 3217 4 -3218 3217 -1 -3317 3217 -1 -3218 3218 4 -3219 3218 -1 -3318 3218 -1 -3219 3219 4 -3220 3219 -1 -3319 3219 -1 -3220 3220 4 -3221 3220 -1 -3320 3220 -1 -3221 3221 4 -3222 3221 -1 -3321 3221 -1 -3222 3222 4 -3223 3222 -1 -3322 3222 -1 -3223 3223 4 -3224 3223 -1 -3323 3223 -1 -3224 3224 4 -3225 3224 -1 -3324 3224 -1 -3225 3225 4 -3226 3225 -1 -3325 3225 -1 -3226 3226 4 -3227 3226 -1 -3326 3226 -1 -3227 3227 4 -3228 3227 -1 -3327 3227 -1 -3228 3228 4 -3229 3228 -1 -3328 3228 -1 -3229 3229 4 -3230 3229 -1 -3329 3229 -1 -3230 3230 4 -3231 3230 -1 -3330 3230 -1 -3231 3231 4 -3232 3231 -1 -3331 3231 -1 -3232 3232 4 -3233 3232 -1 -3332 3232 -1 -3233 3233 4 -3234 3233 -1 -3333 3233 -1 -3234 3234 4 -3235 3234 -1 -3334 3234 -1 -3235 3235 4 -3236 3235 -1 -3335 3235 -1 -3236 3236 4 -3237 3236 -1 -3336 3236 -1 -3237 3237 4 -3238 3237 -1 -3337 3237 -1 -3238 3238 4 -3239 3238 -1 -3338 3238 -1 -3239 3239 4 -3240 3239 -1 -3339 3239 -1 -3240 3240 4 -3241 3240 -1 -3340 3240 -1 -3241 3241 4 -3242 3241 -1 -3341 3241 -1 -3242 3242 4 -3243 3242 -1 -3342 3242 -1 -3243 3243 4 -3244 3243 -1 -3343 3243 -1 -3244 3244 4 -3245 3244 -1 -3344 3244 -1 -3245 3245 4 -3246 3245 -1 -3345 3245 -1 -3246 3246 4 -3247 3246 -1 -3346 3246 -1 -3247 3247 4 -3248 3247 -1 -3347 3247 -1 -3248 3248 4 -3249 3248 -1 -3348 3248 -1 -3249 3249 4 -3250 3249 -1 -3349 3249 -1 -3250 3250 4 -3251 3250 -1 -3350 3250 -1 -3251 3251 4 -3252 3251 -1 -3351 3251 -1 -3252 3252 4 -3253 3252 -1 -3352 3252 -1 -3253 3253 4 -3254 3253 -1 -3353 3253 -1 -3254 3254 4 -3255 3254 -1 -3354 3254 -1 -3255 3255 4 -3256 3255 -1 -3355 3255 -1 -3256 3256 4 -3257 3256 -1 -3356 3256 -1 -3257 3257 4 -3258 3257 -1 -3357 3257 -1 -3258 3258 4 -3259 3258 -1 -3358 3258 -1 -3259 3259 4 -3260 3259 -1 -3359 3259 -1 -3260 3260 4 -3261 3260 -1 -3360 3260 -1 -3261 3261 4 -3262 3261 -1 -3361 3261 -1 -3262 3262 4 -3263 3262 -1 -3362 3262 -1 -3263 3263 4 -3264 3263 -1 -3363 3263 -1 -3264 3264 4 -3265 3264 -1 -3364 3264 -1 -3265 3265 4 -3266 3265 -1 -3365 3265 -1 -3266 3266 4 -3267 3266 -1 -3366 3266 -1 -3267 3267 4 -3268 3267 -1 -3367 3267 -1 -3268 3268 4 -3269 3268 -1 -3368 3268 -1 -3269 3269 4 -3270 3269 -1 -3369 3269 -1 -3270 3270 4 -3271 3270 -1 -3370 3270 -1 -3271 3271 4 -3272 3271 -1 -3371 3271 -1 -3272 3272 4 -3273 3272 -1 -3372 3272 -1 -3273 3273 4 -3274 3273 -1 -3373 3273 -1 -3274 3274 4 -3275 3274 -1 -3374 3274 -1 -3275 3275 4 -3276 3275 -1 -3375 3275 -1 -3276 3276 4 -3277 3276 -1 -3376 3276 -1 -3277 3277 4 -3278 3277 -1 -3377 3277 -1 -3278 3278 4 -3279 3278 -1 -3378 3278 -1 -3279 3279 4 -3280 3279 -1 -3379 3279 -1 -3280 3280 4 -3281 3280 -1 -3380 3280 -1 -3281 3281 4 -3282 3281 -1 -3381 3281 -1 -3282 3282 4 -3283 3282 -1 -3382 3282 -1 -3283 3283 4 -3284 3283 -1 -3383 3283 -1 -3284 3284 4 -3285 3284 -1 -3384 3284 -1 -3285 3285 4 -3286 3285 -1 -3385 3285 -1 -3286 3286 4 -3287 3286 -1 -3386 3286 -1 -3287 3287 4 -3288 3287 -1 -3387 3287 -1 -3288 3288 4 -3289 3288 -1 -3388 3288 -1 -3289 3289 4 -3290 3289 -1 -3389 3289 -1 -3290 3290 4 -3291 3290 -1 -3390 3290 -1 -3291 3291 4 -3292 3291 -1 -3391 3291 -1 -3292 3292 4 -3293 3292 -1 -3392 3292 -1 -3293 3293 4 -3294 3293 -1 -3393 3293 -1 -3294 3294 4 -3295 3294 -1 -3394 3294 -1 -3295 3295 4 -3296 3295 -1 -3395 3295 -1 -3296 3296 4 -3297 3296 -1 -3396 3296 -1 -3297 3297 4 -3298 3297 -1 -3397 3297 -1 -3298 3298 4 -3299 3298 -1 -3398 3298 -1 -3299 3299 4 -3300 3299 -1 -3399 3299 -1 -3300 3300 4 -3400 3300 -1 -3301 3301 4 -3302 3301 -1 -3401 3301 -1 -3302 3302 4 -3303 3302 -1 -3402 3302 -1 -3303 3303 4 -3304 3303 -1 -3403 3303 -1 -3304 3304 4 -3305 3304 -1 -3404 3304 -1 -3305 3305 4 -3306 3305 -1 -3405 3305 -1 -3306 3306 4 -3307 3306 -1 -3406 3306 -1 -3307 3307 4 -3308 3307 -1 -3407 3307 -1 -3308 3308 4 -3309 3308 -1 -3408 3308 -1 -3309 3309 4 -3310 3309 -1 -3409 3309 -1 -3310 3310 4 -3311 3310 -1 -3410 3310 -1 -3311 3311 4 -3312 3311 -1 -3411 3311 -1 -3312 3312 4 -3313 3312 -1 -3412 3312 -1 -3313 3313 4 -3314 3313 -1 -3413 3313 -1 -3314 3314 4 -3315 3314 -1 -3414 3314 -1 -3315 3315 4 -3316 3315 -1 -3415 3315 -1 -3316 3316 4 -3317 3316 -1 -3416 3316 -1 -3317 3317 4 -3318 3317 -1 -3417 3317 -1 -3318 3318 4 -3319 3318 -1 -3418 3318 -1 -3319 3319 4 -3320 3319 -1 -3419 3319 -1 -3320 3320 4 -3321 3320 -1 -3420 3320 -1 -3321 3321 4 -3322 3321 -1 -3421 3321 -1 -3322 3322 4 -3323 3322 -1 -3422 3322 -1 -3323 3323 4 -3324 3323 -1 -3423 3323 -1 -3324 3324 4 -3325 3324 -1 -3424 3324 -1 -3325 3325 4 -3326 3325 -1 -3425 3325 -1 -3326 3326 4 -3327 3326 -1 -3426 3326 -1 -3327 3327 4 -3328 3327 -1 -3427 3327 -1 -3328 3328 4 -3329 3328 -1 -3428 3328 -1 -3329 3329 4 -3330 3329 -1 -3429 3329 -1 -3330 3330 4 -3331 3330 -1 -3430 3330 -1 -3331 3331 4 -3332 3331 -1 -3431 3331 -1 -3332 3332 4 -3333 3332 -1 -3432 3332 -1 -3333 3333 4 -3334 3333 -1 -3433 3333 -1 -3334 3334 4 -3335 3334 -1 -3434 3334 -1 -3335 3335 4 -3336 3335 -1 -3435 3335 -1 -3336 3336 4 -3337 3336 -1 -3436 3336 -1 -3337 3337 4 -3338 3337 -1 -3437 3337 -1 -3338 3338 4 -3339 3338 -1 -3438 3338 -1 -3339 3339 4 -3340 3339 -1 -3439 3339 -1 -3340 3340 4 -3341 3340 -1 -3440 3340 -1 -3341 3341 4 -3342 3341 -1 -3441 3341 -1 -3342 3342 4 -3343 3342 -1 -3442 3342 -1 -3343 3343 4 -3344 3343 -1 -3443 3343 -1 -3344 3344 4 -3345 3344 -1 -3444 3344 -1 -3345 3345 4 -3346 3345 -1 -3445 3345 -1 -3346 3346 4 -3347 3346 -1 -3446 3346 -1 -3347 3347 4 -3348 3347 -1 -3447 3347 -1 -3348 3348 4 -3349 3348 -1 -3448 3348 -1 -3349 3349 4 -3350 3349 -1 -3449 3349 -1 -3350 3350 4 -3351 3350 -1 -3450 3350 -1 -3351 3351 4 -3352 3351 -1 -3451 3351 -1 -3352 3352 4 -3353 3352 -1 -3452 3352 -1 -3353 3353 4 -3354 3353 -1 -3453 3353 -1 -3354 3354 4 -3355 3354 -1 -3454 3354 -1 -3355 3355 4 -3356 3355 -1 -3455 3355 -1 -3356 3356 4 -3357 3356 -1 -3456 3356 -1 -3357 3357 4 -3358 3357 -1 -3457 3357 -1 -3358 3358 4 -3359 3358 -1 -3458 3358 -1 -3359 3359 4 -3360 3359 -1 -3459 3359 -1 -3360 3360 4 -3361 3360 -1 -3460 3360 -1 -3361 3361 4 -3362 3361 -1 -3461 3361 -1 -3362 3362 4 -3363 3362 -1 -3462 3362 -1 -3363 3363 4 -3364 3363 -1 -3463 3363 -1 -3364 3364 4 -3365 3364 -1 -3464 3364 -1 -3365 3365 4 -3366 3365 -1 -3465 3365 -1 -3366 3366 4 -3367 3366 -1 -3466 3366 -1 -3367 3367 4 -3368 3367 -1 -3467 3367 -1 -3368 3368 4 -3369 3368 -1 -3468 3368 -1 -3369 3369 4 -3370 3369 -1 -3469 3369 -1 -3370 3370 4 -3371 3370 -1 -3470 3370 -1 -3371 3371 4 -3372 3371 -1 -3471 3371 -1 -3372 3372 4 -3373 3372 -1 -3472 3372 -1 -3373 3373 4 -3374 3373 -1 -3473 3373 -1 -3374 3374 4 -3375 3374 -1 -3474 3374 -1 -3375 3375 4 -3376 3375 -1 -3475 3375 -1 -3376 3376 4 -3377 3376 -1 -3476 3376 -1 -3377 3377 4 -3378 3377 -1 -3477 3377 -1 -3378 3378 4 -3379 3378 -1 -3478 3378 -1 -3379 3379 4 -3380 3379 -1 -3479 3379 -1 -3380 3380 4 -3381 3380 -1 -3480 3380 -1 -3381 3381 4 -3382 3381 -1 -3481 3381 -1 -3382 3382 4 -3383 3382 -1 -3482 3382 -1 -3383 3383 4 -3384 3383 -1 -3483 3383 -1 -3384 3384 4 -3385 3384 -1 -3484 3384 -1 -3385 3385 4 -3386 3385 -1 -3485 3385 -1 -3386 3386 4 -3387 3386 -1 -3486 3386 -1 -3387 3387 4 -3388 3387 -1 -3487 3387 -1 -3388 3388 4 -3389 3388 -1 -3488 3388 -1 -3389 3389 4 -3390 3389 -1 -3489 3389 -1 -3390 3390 4 -3391 3390 -1 -3490 3390 -1 -3391 3391 4 -3392 3391 -1 -3491 3391 -1 -3392 3392 4 -3393 3392 -1 -3492 3392 -1 -3393 3393 4 -3394 3393 -1 -3493 3393 -1 -3394 3394 4 -3395 3394 -1 -3494 3394 -1 -3395 3395 4 -3396 3395 -1 -3495 3395 -1 -3396 3396 4 -3397 3396 -1 -3496 3396 -1 -3397 3397 4 -3398 3397 -1 -3497 3397 -1 -3398 3398 4 -3399 3398 -1 -3498 3398 -1 -3399 3399 4 -3400 3399 -1 -3499 3399 -1 -3400 3400 4 -3500 3400 -1 -3401 3401 4 -3402 3401 -1 -3501 3401 -1 -3402 3402 4 -3403 3402 -1 -3502 3402 -1 -3403 3403 4 -3404 3403 -1 -3503 3403 -1 -3404 3404 4 -3405 3404 -1 -3504 3404 -1 -3405 3405 4 -3406 3405 -1 -3505 3405 -1 -3406 3406 4 -3407 3406 -1 -3506 3406 -1 -3407 3407 4 -3408 3407 -1 -3507 3407 -1 -3408 3408 4 -3409 3408 -1 -3508 3408 -1 -3409 3409 4 -3410 3409 -1 -3509 3409 -1 -3410 3410 4 -3411 3410 -1 -3510 3410 -1 -3411 3411 4 -3412 3411 -1 -3511 3411 -1 -3412 3412 4 -3413 3412 -1 -3512 3412 -1 -3413 3413 4 -3414 3413 -1 -3513 3413 -1 -3414 3414 4 -3415 3414 -1 -3514 3414 -1 -3415 3415 4 -3416 3415 -1 -3515 3415 -1 -3416 3416 4 -3417 3416 -1 -3516 3416 -1 -3417 3417 4 -3418 3417 -1 -3517 3417 -1 -3418 3418 4 -3419 3418 -1 -3518 3418 -1 -3419 3419 4 -3420 3419 -1 -3519 3419 -1 -3420 3420 4 -3421 3420 -1 -3520 3420 -1 -3421 3421 4 -3422 3421 -1 -3521 3421 -1 -3422 3422 4 -3423 3422 -1 -3522 3422 -1 -3423 3423 4 -3424 3423 -1 -3523 3423 -1 -3424 3424 4 -3425 3424 -1 -3524 3424 -1 -3425 3425 4 -3426 3425 -1 -3525 3425 -1 -3426 3426 4 -3427 3426 -1 -3526 3426 -1 -3427 3427 4 -3428 3427 -1 -3527 3427 -1 -3428 3428 4 -3429 3428 -1 -3528 3428 -1 -3429 3429 4 -3430 3429 -1 -3529 3429 -1 -3430 3430 4 -3431 3430 -1 -3530 3430 -1 -3431 3431 4 -3432 3431 -1 -3531 3431 -1 -3432 3432 4 -3433 3432 -1 -3532 3432 -1 -3433 3433 4 -3434 3433 -1 -3533 3433 -1 -3434 3434 4 -3435 3434 -1 -3534 3434 -1 -3435 3435 4 -3436 3435 -1 -3535 3435 -1 -3436 3436 4 -3437 3436 -1 -3536 3436 -1 -3437 3437 4 -3438 3437 -1 -3537 3437 -1 -3438 3438 4 -3439 3438 -1 -3538 3438 -1 -3439 3439 4 -3440 3439 -1 -3539 3439 -1 -3440 3440 4 -3441 3440 -1 -3540 3440 -1 -3441 3441 4 -3442 3441 -1 -3541 3441 -1 -3442 3442 4 -3443 3442 -1 -3542 3442 -1 -3443 3443 4 -3444 3443 -1 -3543 3443 -1 -3444 3444 4 -3445 3444 -1 -3544 3444 -1 -3445 3445 4 -3446 3445 -1 -3545 3445 -1 -3446 3446 4 -3447 3446 -1 -3546 3446 -1 -3447 3447 4 -3448 3447 -1 -3547 3447 -1 -3448 3448 4 -3449 3448 -1 -3548 3448 -1 -3449 3449 4 -3450 3449 -1 -3549 3449 -1 -3450 3450 4 -3451 3450 -1 -3550 3450 -1 -3451 3451 4 -3452 3451 -1 -3551 3451 -1 -3452 3452 4 -3453 3452 -1 -3552 3452 -1 -3453 3453 4 -3454 3453 -1 -3553 3453 -1 -3454 3454 4 -3455 3454 -1 -3554 3454 -1 -3455 3455 4 -3456 3455 -1 -3555 3455 -1 -3456 3456 4 -3457 3456 -1 -3556 3456 -1 -3457 3457 4 -3458 3457 -1 -3557 3457 -1 -3458 3458 4 -3459 3458 -1 -3558 3458 -1 -3459 3459 4 -3460 3459 -1 -3559 3459 -1 -3460 3460 4 -3461 3460 -1 -3560 3460 -1 -3461 3461 4 -3462 3461 -1 -3561 3461 -1 -3462 3462 4 -3463 3462 -1 -3562 3462 -1 -3463 3463 4 -3464 3463 -1 -3563 3463 -1 -3464 3464 4 -3465 3464 -1 -3564 3464 -1 -3465 3465 4 -3466 3465 -1 -3565 3465 -1 -3466 3466 4 -3467 3466 -1 -3566 3466 -1 -3467 3467 4 -3468 3467 -1 -3567 3467 -1 -3468 3468 4 -3469 3468 -1 -3568 3468 -1 -3469 3469 4 -3470 3469 -1 -3569 3469 -1 -3470 3470 4 -3471 3470 -1 -3570 3470 -1 -3471 3471 4 -3472 3471 -1 -3571 3471 -1 -3472 3472 4 -3473 3472 -1 -3572 3472 -1 -3473 3473 4 -3474 3473 -1 -3573 3473 -1 -3474 3474 4 -3475 3474 -1 -3574 3474 -1 -3475 3475 4 -3476 3475 -1 -3575 3475 -1 -3476 3476 4 -3477 3476 -1 -3576 3476 -1 -3477 3477 4 -3478 3477 -1 -3577 3477 -1 -3478 3478 4 -3479 3478 -1 -3578 3478 -1 -3479 3479 4 -3480 3479 -1 -3579 3479 -1 -3480 3480 4 -3481 3480 -1 -3580 3480 -1 -3481 3481 4 -3482 3481 -1 -3581 3481 -1 -3482 3482 4 -3483 3482 -1 -3582 3482 -1 -3483 3483 4 -3484 3483 -1 -3583 3483 -1 -3484 3484 4 -3485 3484 -1 -3584 3484 -1 -3485 3485 4 -3486 3485 -1 -3585 3485 -1 -3486 3486 4 -3487 3486 -1 -3586 3486 -1 -3487 3487 4 -3488 3487 -1 -3587 3487 -1 -3488 3488 4 -3489 3488 -1 -3588 3488 -1 -3489 3489 4 -3490 3489 -1 -3589 3489 -1 -3490 3490 4 -3491 3490 -1 -3590 3490 -1 -3491 3491 4 -3492 3491 -1 -3591 3491 -1 -3492 3492 4 -3493 3492 -1 -3592 3492 -1 -3493 3493 4 -3494 3493 -1 -3593 3493 -1 -3494 3494 4 -3495 3494 -1 -3594 3494 -1 -3495 3495 4 -3496 3495 -1 -3595 3495 -1 -3496 3496 4 -3497 3496 -1 -3596 3496 -1 -3497 3497 4 -3498 3497 -1 -3597 3497 -1 -3498 3498 4 -3499 3498 -1 -3598 3498 -1 -3499 3499 4 -3500 3499 -1 -3599 3499 -1 -3500 3500 4 -3600 3500 -1 -3501 3501 4 -3502 3501 -1 -3601 3501 -1 -3502 3502 4 -3503 3502 -1 -3602 3502 -1 -3503 3503 4 -3504 3503 -1 -3603 3503 -1 -3504 3504 4 -3505 3504 -1 -3604 3504 -1 -3505 3505 4 -3506 3505 -1 -3605 3505 -1 -3506 3506 4 -3507 3506 -1 -3606 3506 -1 -3507 3507 4 -3508 3507 -1 -3607 3507 -1 -3508 3508 4 -3509 3508 -1 -3608 3508 -1 -3509 3509 4 -3510 3509 -1 -3609 3509 -1 -3510 3510 4 -3511 3510 -1 -3610 3510 -1 -3511 3511 4 -3512 3511 -1 -3611 3511 -1 -3512 3512 4 -3513 3512 -1 -3612 3512 -1 -3513 3513 4 -3514 3513 -1 -3613 3513 -1 -3514 3514 4 -3515 3514 -1 -3614 3514 -1 -3515 3515 4 -3516 3515 -1 -3615 3515 -1 -3516 3516 4 -3517 3516 -1 -3616 3516 -1 -3517 3517 4 -3518 3517 -1 -3617 3517 -1 -3518 3518 4 -3519 3518 -1 -3618 3518 -1 -3519 3519 4 -3520 3519 -1 -3619 3519 -1 -3520 3520 4 -3521 3520 -1 -3620 3520 -1 -3521 3521 4 -3522 3521 -1 -3621 3521 -1 -3522 3522 4 -3523 3522 -1 -3622 3522 -1 -3523 3523 4 -3524 3523 -1 -3623 3523 -1 -3524 3524 4 -3525 3524 -1 -3624 3524 -1 -3525 3525 4 -3526 3525 -1 -3625 3525 -1 -3526 3526 4 -3527 3526 -1 -3626 3526 -1 -3527 3527 4 -3528 3527 -1 -3627 3527 -1 -3528 3528 4 -3529 3528 -1 -3628 3528 -1 -3529 3529 4 -3530 3529 -1 -3629 3529 -1 -3530 3530 4 -3531 3530 -1 -3630 3530 -1 -3531 3531 4 -3532 3531 -1 -3631 3531 -1 -3532 3532 4 -3533 3532 -1 -3632 3532 -1 -3533 3533 4 -3534 3533 -1 -3633 3533 -1 -3534 3534 4 -3535 3534 -1 -3634 3534 -1 -3535 3535 4 -3536 3535 -1 -3635 3535 -1 -3536 3536 4 -3537 3536 -1 -3636 3536 -1 -3537 3537 4 -3538 3537 -1 -3637 3537 -1 -3538 3538 4 -3539 3538 -1 -3638 3538 -1 -3539 3539 4 -3540 3539 -1 -3639 3539 -1 -3540 3540 4 -3541 3540 -1 -3640 3540 -1 -3541 3541 4 -3542 3541 -1 -3641 3541 -1 -3542 3542 4 -3543 3542 -1 -3642 3542 -1 -3543 3543 4 -3544 3543 -1 -3643 3543 -1 -3544 3544 4 -3545 3544 -1 -3644 3544 -1 -3545 3545 4 -3546 3545 -1 -3645 3545 -1 -3546 3546 4 -3547 3546 -1 -3646 3546 -1 -3547 3547 4 -3548 3547 -1 -3647 3547 -1 -3548 3548 4 -3549 3548 -1 -3648 3548 -1 -3549 3549 4 -3550 3549 -1 -3649 3549 -1 -3550 3550 4 -3551 3550 -1 -3650 3550 -1 -3551 3551 4 -3552 3551 -1 -3651 3551 -1 -3552 3552 4 -3553 3552 -1 -3652 3552 -1 -3553 3553 4 -3554 3553 -1 -3653 3553 -1 -3554 3554 4 -3555 3554 -1 -3654 3554 -1 -3555 3555 4 -3556 3555 -1 -3655 3555 -1 -3556 3556 4 -3557 3556 -1 -3656 3556 -1 -3557 3557 4 -3558 3557 -1 -3657 3557 -1 -3558 3558 4 -3559 3558 -1 -3658 3558 -1 -3559 3559 4 -3560 3559 -1 -3659 3559 -1 -3560 3560 4 -3561 3560 -1 -3660 3560 -1 -3561 3561 4 -3562 3561 -1 -3661 3561 -1 -3562 3562 4 -3563 3562 -1 -3662 3562 -1 -3563 3563 4 -3564 3563 -1 -3663 3563 -1 -3564 3564 4 -3565 3564 -1 -3664 3564 -1 -3565 3565 4 -3566 3565 -1 -3665 3565 -1 -3566 3566 4 -3567 3566 -1 -3666 3566 -1 -3567 3567 4 -3568 3567 -1 -3667 3567 -1 -3568 3568 4 -3569 3568 -1 -3668 3568 -1 -3569 3569 4 -3570 3569 -1 -3669 3569 -1 -3570 3570 4 -3571 3570 -1 -3670 3570 -1 -3571 3571 4 -3572 3571 -1 -3671 3571 -1 -3572 3572 4 -3573 3572 -1 -3672 3572 -1 -3573 3573 4 -3574 3573 -1 -3673 3573 -1 -3574 3574 4 -3575 3574 -1 -3674 3574 -1 -3575 3575 4 -3576 3575 -1 -3675 3575 -1 -3576 3576 4 -3577 3576 -1 -3676 3576 -1 -3577 3577 4 -3578 3577 -1 -3677 3577 -1 -3578 3578 4 -3579 3578 -1 -3678 3578 -1 -3579 3579 4 -3580 3579 -1 -3679 3579 -1 -3580 3580 4 -3581 3580 -1 -3680 3580 -1 -3581 3581 4 -3582 3581 -1 -3681 3581 -1 -3582 3582 4 -3583 3582 -1 -3682 3582 -1 -3583 3583 4 -3584 3583 -1 -3683 3583 -1 -3584 3584 4 -3585 3584 -1 -3684 3584 -1 -3585 3585 4 -3586 3585 -1 -3685 3585 -1 -3586 3586 4 -3587 3586 -1 -3686 3586 -1 -3587 3587 4 -3588 3587 -1 -3687 3587 -1 -3588 3588 4 -3589 3588 -1 -3688 3588 -1 -3589 3589 4 -3590 3589 -1 -3689 3589 -1 -3590 3590 4 -3591 3590 -1 -3690 3590 -1 -3591 3591 4 -3592 3591 -1 -3691 3591 -1 -3592 3592 4 -3593 3592 -1 -3692 3592 -1 -3593 3593 4 -3594 3593 -1 -3693 3593 -1 -3594 3594 4 -3595 3594 -1 -3694 3594 -1 -3595 3595 4 -3596 3595 -1 -3695 3595 -1 -3596 3596 4 -3597 3596 -1 -3696 3596 -1 -3597 3597 4 -3598 3597 -1 -3697 3597 -1 -3598 3598 4 -3599 3598 -1 -3698 3598 -1 -3599 3599 4 -3600 3599 -1 -3699 3599 -1 -3600 3600 4 -3700 3600 -1 -3601 3601 4 -3602 3601 -1 -3701 3601 -1 -3602 3602 4 -3603 3602 -1 -3702 3602 -1 -3603 3603 4 -3604 3603 -1 -3703 3603 -1 -3604 3604 4 -3605 3604 -1 -3704 3604 -1 -3605 3605 4 -3606 3605 -1 -3705 3605 -1 -3606 3606 4 -3607 3606 -1 -3706 3606 -1 -3607 3607 4 -3608 3607 -1 -3707 3607 -1 -3608 3608 4 -3609 3608 -1 -3708 3608 -1 -3609 3609 4 -3610 3609 -1 -3709 3609 -1 -3610 3610 4 -3611 3610 -1 -3710 3610 -1 -3611 3611 4 -3612 3611 -1 -3711 3611 -1 -3612 3612 4 -3613 3612 -1 -3712 3612 -1 -3613 3613 4 -3614 3613 -1 -3713 3613 -1 -3614 3614 4 -3615 3614 -1 -3714 3614 -1 -3615 3615 4 -3616 3615 -1 -3715 3615 -1 -3616 3616 4 -3617 3616 -1 -3716 3616 -1 -3617 3617 4 -3618 3617 -1 -3717 3617 -1 -3618 3618 4 -3619 3618 -1 -3718 3618 -1 -3619 3619 4 -3620 3619 -1 -3719 3619 -1 -3620 3620 4 -3621 3620 -1 -3720 3620 -1 -3621 3621 4 -3622 3621 -1 -3721 3621 -1 -3622 3622 4 -3623 3622 -1 -3722 3622 -1 -3623 3623 4 -3624 3623 -1 -3723 3623 -1 -3624 3624 4 -3625 3624 -1 -3724 3624 -1 -3625 3625 4 -3626 3625 -1 -3725 3625 -1 -3626 3626 4 -3627 3626 -1 -3726 3626 -1 -3627 3627 4 -3628 3627 -1 -3727 3627 -1 -3628 3628 4 -3629 3628 -1 -3728 3628 -1 -3629 3629 4 -3630 3629 -1 -3729 3629 -1 -3630 3630 4 -3631 3630 -1 -3730 3630 -1 -3631 3631 4 -3632 3631 -1 -3731 3631 -1 -3632 3632 4 -3633 3632 -1 -3732 3632 -1 -3633 3633 4 -3634 3633 -1 -3733 3633 -1 -3634 3634 4 -3635 3634 -1 -3734 3634 -1 -3635 3635 4 -3636 3635 -1 -3735 3635 -1 -3636 3636 4 -3637 3636 -1 -3736 3636 -1 -3637 3637 4 -3638 3637 -1 -3737 3637 -1 -3638 3638 4 -3639 3638 -1 -3738 3638 -1 -3639 3639 4 -3640 3639 -1 -3739 3639 -1 -3640 3640 4 -3641 3640 -1 -3740 3640 -1 -3641 3641 4 -3642 3641 -1 -3741 3641 -1 -3642 3642 4 -3643 3642 -1 -3742 3642 -1 -3643 3643 4 -3644 3643 -1 -3743 3643 -1 -3644 3644 4 -3645 3644 -1 -3744 3644 -1 -3645 3645 4 -3646 3645 -1 -3745 3645 -1 -3646 3646 4 -3647 3646 -1 -3746 3646 -1 -3647 3647 4 -3648 3647 -1 -3747 3647 -1 -3648 3648 4 -3649 3648 -1 -3748 3648 -1 -3649 3649 4 -3650 3649 -1 -3749 3649 -1 -3650 3650 4 -3651 3650 -1 -3750 3650 -1 -3651 3651 4 -3652 3651 -1 -3751 3651 -1 -3652 3652 4 -3653 3652 -1 -3752 3652 -1 -3653 3653 4 -3654 3653 -1 -3753 3653 -1 -3654 3654 4 -3655 3654 -1 -3754 3654 -1 -3655 3655 4 -3656 3655 -1 -3755 3655 -1 -3656 3656 4 -3657 3656 -1 -3756 3656 -1 -3657 3657 4 -3658 3657 -1 -3757 3657 -1 -3658 3658 4 -3659 3658 -1 -3758 3658 -1 -3659 3659 4 -3660 3659 -1 -3759 3659 -1 -3660 3660 4 -3661 3660 -1 -3760 3660 -1 -3661 3661 4 -3662 3661 -1 -3761 3661 -1 -3662 3662 4 -3663 3662 -1 -3762 3662 -1 -3663 3663 4 -3664 3663 -1 -3763 3663 -1 -3664 3664 4 -3665 3664 -1 -3764 3664 -1 -3665 3665 4 -3666 3665 -1 -3765 3665 -1 -3666 3666 4 -3667 3666 -1 -3766 3666 -1 -3667 3667 4 -3668 3667 -1 -3767 3667 -1 -3668 3668 4 -3669 3668 -1 -3768 3668 -1 -3669 3669 4 -3670 3669 -1 -3769 3669 -1 -3670 3670 4 -3671 3670 -1 -3770 3670 -1 -3671 3671 4 -3672 3671 -1 -3771 3671 -1 -3672 3672 4 -3673 3672 -1 -3772 3672 -1 -3673 3673 4 -3674 3673 -1 -3773 3673 -1 -3674 3674 4 -3675 3674 -1 -3774 3674 -1 -3675 3675 4 -3676 3675 -1 -3775 3675 -1 -3676 3676 4 -3677 3676 -1 -3776 3676 -1 -3677 3677 4 -3678 3677 -1 -3777 3677 -1 -3678 3678 4 -3679 3678 -1 -3778 3678 -1 -3679 3679 4 -3680 3679 -1 -3779 3679 -1 -3680 3680 4 -3681 3680 -1 -3780 3680 -1 -3681 3681 4 -3682 3681 -1 -3781 3681 -1 -3682 3682 4 -3683 3682 -1 -3782 3682 -1 -3683 3683 4 -3684 3683 -1 -3783 3683 -1 -3684 3684 4 -3685 3684 -1 -3784 3684 -1 -3685 3685 4 -3686 3685 -1 -3785 3685 -1 -3686 3686 4 -3687 3686 -1 -3786 3686 -1 -3687 3687 4 -3688 3687 -1 -3787 3687 -1 -3688 3688 4 -3689 3688 -1 -3788 3688 -1 -3689 3689 4 -3690 3689 -1 -3789 3689 -1 -3690 3690 4 -3691 3690 -1 -3790 3690 -1 -3691 3691 4 -3692 3691 -1 -3791 3691 -1 -3692 3692 4 -3693 3692 -1 -3792 3692 -1 -3693 3693 4 -3694 3693 -1 -3793 3693 -1 -3694 3694 4 -3695 3694 -1 -3794 3694 -1 -3695 3695 4 -3696 3695 -1 -3795 3695 -1 -3696 3696 4 -3697 3696 -1 -3796 3696 -1 -3697 3697 4 -3698 3697 -1 -3797 3697 -1 -3698 3698 4 -3699 3698 -1 -3798 3698 -1 -3699 3699 4 -3700 3699 -1 -3799 3699 -1 -3700 3700 4 -3800 3700 -1 -3701 3701 4 -3702 3701 -1 -3801 3701 -1 -3702 3702 4 -3703 3702 -1 -3802 3702 -1 -3703 3703 4 -3704 3703 -1 -3803 3703 -1 -3704 3704 4 -3705 3704 -1 -3804 3704 -1 -3705 3705 4 -3706 3705 -1 -3805 3705 -1 -3706 3706 4 -3707 3706 -1 -3806 3706 -1 -3707 3707 4 -3708 3707 -1 -3807 3707 -1 -3708 3708 4 -3709 3708 -1 -3808 3708 -1 -3709 3709 4 -3710 3709 -1 -3809 3709 -1 -3710 3710 4 -3711 3710 -1 -3810 3710 -1 -3711 3711 4 -3712 3711 -1 -3811 3711 -1 -3712 3712 4 -3713 3712 -1 -3812 3712 -1 -3713 3713 4 -3714 3713 -1 -3813 3713 -1 -3714 3714 4 -3715 3714 -1 -3814 3714 -1 -3715 3715 4 -3716 3715 -1 -3815 3715 -1 -3716 3716 4 -3717 3716 -1 -3816 3716 -1 -3717 3717 4 -3718 3717 -1 -3817 3717 -1 -3718 3718 4 -3719 3718 -1 -3818 3718 -1 -3719 3719 4 -3720 3719 -1 -3819 3719 -1 -3720 3720 4 -3721 3720 -1 -3820 3720 -1 -3721 3721 4 -3722 3721 -1 -3821 3721 -1 -3722 3722 4 -3723 3722 -1 -3822 3722 -1 -3723 3723 4 -3724 3723 -1 -3823 3723 -1 -3724 3724 4 -3725 3724 -1 -3824 3724 -1 -3725 3725 4 -3726 3725 -1 -3825 3725 -1 -3726 3726 4 -3727 3726 -1 -3826 3726 -1 -3727 3727 4 -3728 3727 -1 -3827 3727 -1 -3728 3728 4 -3729 3728 -1 -3828 3728 -1 -3729 3729 4 -3730 3729 -1 -3829 3729 -1 -3730 3730 4 -3731 3730 -1 -3830 3730 -1 -3731 3731 4 -3732 3731 -1 -3831 3731 -1 -3732 3732 4 -3733 3732 -1 -3832 3732 -1 -3733 3733 4 -3734 3733 -1 -3833 3733 -1 -3734 3734 4 -3735 3734 -1 -3834 3734 -1 -3735 3735 4 -3736 3735 -1 -3835 3735 -1 -3736 3736 4 -3737 3736 -1 -3836 3736 -1 -3737 3737 4 -3738 3737 -1 -3837 3737 -1 -3738 3738 4 -3739 3738 -1 -3838 3738 -1 -3739 3739 4 -3740 3739 -1 -3839 3739 -1 -3740 3740 4 -3741 3740 -1 -3840 3740 -1 -3741 3741 4 -3742 3741 -1 -3841 3741 -1 -3742 3742 4 -3743 3742 -1 -3842 3742 -1 -3743 3743 4 -3744 3743 -1 -3843 3743 -1 -3744 3744 4 -3745 3744 -1 -3844 3744 -1 -3745 3745 4 -3746 3745 -1 -3845 3745 -1 -3746 3746 4 -3747 3746 -1 -3846 3746 -1 -3747 3747 4 -3748 3747 -1 -3847 3747 -1 -3748 3748 4 -3749 3748 -1 -3848 3748 -1 -3749 3749 4 -3750 3749 -1 -3849 3749 -1 -3750 3750 4 -3751 3750 -1 -3850 3750 -1 -3751 3751 4 -3752 3751 -1 -3851 3751 -1 -3752 3752 4 -3753 3752 -1 -3852 3752 -1 -3753 3753 4 -3754 3753 -1 -3853 3753 -1 -3754 3754 4 -3755 3754 -1 -3854 3754 -1 -3755 3755 4 -3756 3755 -1 -3855 3755 -1 -3756 3756 4 -3757 3756 -1 -3856 3756 -1 -3757 3757 4 -3758 3757 -1 -3857 3757 -1 -3758 3758 4 -3759 3758 -1 -3858 3758 -1 -3759 3759 4 -3760 3759 -1 -3859 3759 -1 -3760 3760 4 -3761 3760 -1 -3860 3760 -1 -3761 3761 4 -3762 3761 -1 -3861 3761 -1 -3762 3762 4 -3763 3762 -1 -3862 3762 -1 -3763 3763 4 -3764 3763 -1 -3863 3763 -1 -3764 3764 4 -3765 3764 -1 -3864 3764 -1 -3765 3765 4 -3766 3765 -1 -3865 3765 -1 -3766 3766 4 -3767 3766 -1 -3866 3766 -1 -3767 3767 4 -3768 3767 -1 -3867 3767 -1 -3768 3768 4 -3769 3768 -1 -3868 3768 -1 -3769 3769 4 -3770 3769 -1 -3869 3769 -1 -3770 3770 4 -3771 3770 -1 -3870 3770 -1 -3771 3771 4 -3772 3771 -1 -3871 3771 -1 -3772 3772 4 -3773 3772 -1 -3872 3772 -1 -3773 3773 4 -3774 3773 -1 -3873 3773 -1 -3774 3774 4 -3775 3774 -1 -3874 3774 -1 -3775 3775 4 -3776 3775 -1 -3875 3775 -1 -3776 3776 4 -3777 3776 -1 -3876 3776 -1 -3777 3777 4 -3778 3777 -1 -3877 3777 -1 -3778 3778 4 -3779 3778 -1 -3878 3778 -1 -3779 3779 4 -3780 3779 -1 -3879 3779 -1 -3780 3780 4 -3781 3780 -1 -3880 3780 -1 -3781 3781 4 -3782 3781 -1 -3881 3781 -1 -3782 3782 4 -3783 3782 -1 -3882 3782 -1 -3783 3783 4 -3784 3783 -1 -3883 3783 -1 -3784 3784 4 -3785 3784 -1 -3884 3784 -1 -3785 3785 4 -3786 3785 -1 -3885 3785 -1 -3786 3786 4 -3787 3786 -1 -3886 3786 -1 -3787 3787 4 -3788 3787 -1 -3887 3787 -1 -3788 3788 4 -3789 3788 -1 -3888 3788 -1 -3789 3789 4 -3790 3789 -1 -3889 3789 -1 -3790 3790 4 -3791 3790 -1 -3890 3790 -1 -3791 3791 4 -3792 3791 -1 -3891 3791 -1 -3792 3792 4 -3793 3792 -1 -3892 3792 -1 -3793 3793 4 -3794 3793 -1 -3893 3793 -1 -3794 3794 4 -3795 3794 -1 -3894 3794 -1 -3795 3795 4 -3796 3795 -1 -3895 3795 -1 -3796 3796 4 -3797 3796 -1 -3896 3796 -1 -3797 3797 4 -3798 3797 -1 -3897 3797 -1 -3798 3798 4 -3799 3798 -1 -3898 3798 -1 -3799 3799 4 -3800 3799 -1 -3899 3799 -1 -3800 3800 4 -3900 3800 -1 -3801 3801 4 -3802 3801 -1 -3901 3801 -1 -3802 3802 4 -3803 3802 -1 -3902 3802 -1 -3803 3803 4 -3804 3803 -1 -3903 3803 -1 -3804 3804 4 -3805 3804 -1 -3904 3804 -1 -3805 3805 4 -3806 3805 -1 -3905 3805 -1 -3806 3806 4 -3807 3806 -1 -3906 3806 -1 -3807 3807 4 -3808 3807 -1 -3907 3807 -1 -3808 3808 4 -3809 3808 -1 -3908 3808 -1 -3809 3809 4 -3810 3809 -1 -3909 3809 -1 -3810 3810 4 -3811 3810 -1 -3910 3810 -1 -3811 3811 4 -3812 3811 -1 -3911 3811 -1 -3812 3812 4 -3813 3812 -1 -3912 3812 -1 -3813 3813 4 -3814 3813 -1 -3913 3813 -1 -3814 3814 4 -3815 3814 -1 -3914 3814 -1 -3815 3815 4 -3816 3815 -1 -3915 3815 -1 -3816 3816 4 -3817 3816 -1 -3916 3816 -1 -3817 3817 4 -3818 3817 -1 -3917 3817 -1 -3818 3818 4 -3819 3818 -1 -3918 3818 -1 -3819 3819 4 -3820 3819 -1 -3919 3819 -1 -3820 3820 4 -3821 3820 -1 -3920 3820 -1 -3821 3821 4 -3822 3821 -1 -3921 3821 -1 -3822 3822 4 -3823 3822 -1 -3922 3822 -1 -3823 3823 4 -3824 3823 -1 -3923 3823 -1 -3824 3824 4 -3825 3824 -1 -3924 3824 -1 -3825 3825 4 -3826 3825 -1 -3925 3825 -1 -3826 3826 4 -3827 3826 -1 -3926 3826 -1 -3827 3827 4 -3828 3827 -1 -3927 3827 -1 -3828 3828 4 -3829 3828 -1 -3928 3828 -1 -3829 3829 4 -3830 3829 -1 -3929 3829 -1 -3830 3830 4 -3831 3830 -1 -3930 3830 -1 -3831 3831 4 -3832 3831 -1 -3931 3831 -1 -3832 3832 4 -3833 3832 -1 -3932 3832 -1 -3833 3833 4 -3834 3833 -1 -3933 3833 -1 -3834 3834 4 -3835 3834 -1 -3934 3834 -1 -3835 3835 4 -3836 3835 -1 -3935 3835 -1 -3836 3836 4 -3837 3836 -1 -3936 3836 -1 -3837 3837 4 -3838 3837 -1 -3937 3837 -1 -3838 3838 4 -3839 3838 -1 -3938 3838 -1 -3839 3839 4 -3840 3839 -1 -3939 3839 -1 -3840 3840 4 -3841 3840 -1 -3940 3840 -1 -3841 3841 4 -3842 3841 -1 -3941 3841 -1 -3842 3842 4 -3843 3842 -1 -3942 3842 -1 -3843 3843 4 -3844 3843 -1 -3943 3843 -1 -3844 3844 4 -3845 3844 -1 -3944 3844 -1 -3845 3845 4 -3846 3845 -1 -3945 3845 -1 -3846 3846 4 -3847 3846 -1 -3946 3846 -1 -3847 3847 4 -3848 3847 -1 -3947 3847 -1 -3848 3848 4 -3849 3848 -1 -3948 3848 -1 -3849 3849 4 -3850 3849 -1 -3949 3849 -1 -3850 3850 4 -3851 3850 -1 -3950 3850 -1 -3851 3851 4 -3852 3851 -1 -3951 3851 -1 -3852 3852 4 -3853 3852 -1 -3952 3852 -1 -3853 3853 4 -3854 3853 -1 -3953 3853 -1 -3854 3854 4 -3855 3854 -1 -3954 3854 -1 -3855 3855 4 -3856 3855 -1 -3955 3855 -1 -3856 3856 4 -3857 3856 -1 -3956 3856 -1 -3857 3857 4 -3858 3857 -1 -3957 3857 -1 -3858 3858 4 -3859 3858 -1 -3958 3858 -1 -3859 3859 4 -3860 3859 -1 -3959 3859 -1 -3860 3860 4 -3861 3860 -1 -3960 3860 -1 -3861 3861 4 -3862 3861 -1 -3961 3861 -1 -3862 3862 4 -3863 3862 -1 -3962 3862 -1 -3863 3863 4 -3864 3863 -1 -3963 3863 -1 -3864 3864 4 -3865 3864 -1 -3964 3864 -1 -3865 3865 4 -3866 3865 -1 -3965 3865 -1 -3866 3866 4 -3867 3866 -1 -3966 3866 -1 -3867 3867 4 -3868 3867 -1 -3967 3867 -1 -3868 3868 4 -3869 3868 -1 -3968 3868 -1 -3869 3869 4 -3870 3869 -1 -3969 3869 -1 -3870 3870 4 -3871 3870 -1 -3970 3870 -1 -3871 3871 4 -3872 3871 -1 -3971 3871 -1 -3872 3872 4 -3873 3872 -1 -3972 3872 -1 -3873 3873 4 -3874 3873 -1 -3973 3873 -1 -3874 3874 4 -3875 3874 -1 -3974 3874 -1 -3875 3875 4 -3876 3875 -1 -3975 3875 -1 -3876 3876 4 -3877 3876 -1 -3976 3876 -1 -3877 3877 4 -3878 3877 -1 -3977 3877 -1 -3878 3878 4 -3879 3878 -1 -3978 3878 -1 -3879 3879 4 -3880 3879 -1 -3979 3879 -1 -3880 3880 4 -3881 3880 -1 -3980 3880 -1 -3881 3881 4 -3882 3881 -1 -3981 3881 -1 -3882 3882 4 -3883 3882 -1 -3982 3882 -1 -3883 3883 4 -3884 3883 -1 -3983 3883 -1 -3884 3884 4 -3885 3884 -1 -3984 3884 -1 -3885 3885 4 -3886 3885 -1 -3985 3885 -1 -3886 3886 4 -3887 3886 -1 -3986 3886 -1 -3887 3887 4 -3888 3887 -1 -3987 3887 -1 -3888 3888 4 -3889 3888 -1 -3988 3888 -1 -3889 3889 4 -3890 3889 -1 -3989 3889 -1 -3890 3890 4 -3891 3890 -1 -3990 3890 -1 -3891 3891 4 -3892 3891 -1 -3991 3891 -1 -3892 3892 4 -3893 3892 -1 -3992 3892 -1 -3893 3893 4 -3894 3893 -1 -3993 3893 -1 -3894 3894 4 -3895 3894 -1 -3994 3894 -1 -3895 3895 4 -3896 3895 -1 -3995 3895 -1 -3896 3896 4 -3897 3896 -1 -3996 3896 -1 -3897 3897 4 -3898 3897 -1 -3997 3897 -1 -3898 3898 4 -3899 3898 -1 -3998 3898 -1 -3899 3899 4 -3900 3899 -1 -3999 3899 -1 -3900 3900 4 -4000 3900 -1 -3901 3901 4 -3902 3901 -1 -4001 3901 -1 -3902 3902 4 -3903 3902 -1 -4002 3902 -1 -3903 3903 4 -3904 3903 -1 -4003 3903 -1 -3904 3904 4 -3905 3904 -1 -4004 3904 -1 -3905 3905 4 -3906 3905 -1 -4005 3905 -1 -3906 3906 4 -3907 3906 -1 -4006 3906 -1 -3907 3907 4 -3908 3907 -1 -4007 3907 -1 -3908 3908 4 -3909 3908 -1 -4008 3908 -1 -3909 3909 4 -3910 3909 -1 -4009 3909 -1 -3910 3910 4 -3911 3910 -1 -4010 3910 -1 -3911 3911 4 -3912 3911 -1 -4011 3911 -1 -3912 3912 4 -3913 3912 -1 -4012 3912 -1 -3913 3913 4 -3914 3913 -1 -4013 3913 -1 -3914 3914 4 -3915 3914 -1 -4014 3914 -1 -3915 3915 4 -3916 3915 -1 -4015 3915 -1 -3916 3916 4 -3917 3916 -1 -4016 3916 -1 -3917 3917 4 -3918 3917 -1 -4017 3917 -1 -3918 3918 4 -3919 3918 -1 -4018 3918 -1 -3919 3919 4 -3920 3919 -1 -4019 3919 -1 -3920 3920 4 -3921 3920 -1 -4020 3920 -1 -3921 3921 4 -3922 3921 -1 -4021 3921 -1 -3922 3922 4 -3923 3922 -1 -4022 3922 -1 -3923 3923 4 -3924 3923 -1 -4023 3923 -1 -3924 3924 4 -3925 3924 -1 -4024 3924 -1 -3925 3925 4 -3926 3925 -1 -4025 3925 -1 -3926 3926 4 -3927 3926 -1 -4026 3926 -1 -3927 3927 4 -3928 3927 -1 -4027 3927 -1 -3928 3928 4 -3929 3928 -1 -4028 3928 -1 -3929 3929 4 -3930 3929 -1 -4029 3929 -1 -3930 3930 4 -3931 3930 -1 -4030 3930 -1 -3931 3931 4 -3932 3931 -1 -4031 3931 -1 -3932 3932 4 -3933 3932 -1 -4032 3932 -1 -3933 3933 4 -3934 3933 -1 -4033 3933 -1 -3934 3934 4 -3935 3934 -1 -4034 3934 -1 -3935 3935 4 -3936 3935 -1 -4035 3935 -1 -3936 3936 4 -3937 3936 -1 -4036 3936 -1 -3937 3937 4 -3938 3937 -1 -4037 3937 -1 -3938 3938 4 -3939 3938 -1 -4038 3938 -1 -3939 3939 4 -3940 3939 -1 -4039 3939 -1 -3940 3940 4 -3941 3940 -1 -4040 3940 -1 -3941 3941 4 -3942 3941 -1 -4041 3941 -1 -3942 3942 4 -3943 3942 -1 -4042 3942 -1 -3943 3943 4 -3944 3943 -1 -4043 3943 -1 -3944 3944 4 -3945 3944 -1 -4044 3944 -1 -3945 3945 4 -3946 3945 -1 -4045 3945 -1 -3946 3946 4 -3947 3946 -1 -4046 3946 -1 -3947 3947 4 -3948 3947 -1 -4047 3947 -1 -3948 3948 4 -3949 3948 -1 -4048 3948 -1 -3949 3949 4 -3950 3949 -1 -4049 3949 -1 -3950 3950 4 -3951 3950 -1 -4050 3950 -1 -3951 3951 4 -3952 3951 -1 -4051 3951 -1 -3952 3952 4 -3953 3952 -1 -4052 3952 -1 -3953 3953 4 -3954 3953 -1 -4053 3953 -1 -3954 3954 4 -3955 3954 -1 -4054 3954 -1 -3955 3955 4 -3956 3955 -1 -4055 3955 -1 -3956 3956 4 -3957 3956 -1 -4056 3956 -1 -3957 3957 4 -3958 3957 -1 -4057 3957 -1 -3958 3958 4 -3959 3958 -1 -4058 3958 -1 -3959 3959 4 -3960 3959 -1 -4059 3959 -1 -3960 3960 4 -3961 3960 -1 -4060 3960 -1 -3961 3961 4 -3962 3961 -1 -4061 3961 -1 -3962 3962 4 -3963 3962 -1 -4062 3962 -1 -3963 3963 4 -3964 3963 -1 -4063 3963 -1 -3964 3964 4 -3965 3964 -1 -4064 3964 -1 -3965 3965 4 -3966 3965 -1 -4065 3965 -1 -3966 3966 4 -3967 3966 -1 -4066 3966 -1 -3967 3967 4 -3968 3967 -1 -4067 3967 -1 -3968 3968 4 -3969 3968 -1 -4068 3968 -1 -3969 3969 4 -3970 3969 -1 -4069 3969 -1 -3970 3970 4 -3971 3970 -1 -4070 3970 -1 -3971 3971 4 -3972 3971 -1 -4071 3971 -1 -3972 3972 4 -3973 3972 -1 -4072 3972 -1 -3973 3973 4 -3974 3973 -1 -4073 3973 -1 -3974 3974 4 -3975 3974 -1 -4074 3974 -1 -3975 3975 4 -3976 3975 -1 -4075 3975 -1 -3976 3976 4 -3977 3976 -1 -4076 3976 -1 -3977 3977 4 -3978 3977 -1 -4077 3977 -1 -3978 3978 4 -3979 3978 -1 -4078 3978 -1 -3979 3979 4 -3980 3979 -1 -4079 3979 -1 -3980 3980 4 -3981 3980 -1 -4080 3980 -1 -3981 3981 4 -3982 3981 -1 -4081 3981 -1 -3982 3982 4 -3983 3982 -1 -4082 3982 -1 -3983 3983 4 -3984 3983 -1 -4083 3983 -1 -3984 3984 4 -3985 3984 -1 -4084 3984 -1 -3985 3985 4 -3986 3985 -1 -4085 3985 -1 -3986 3986 4 -3987 3986 -1 -4086 3986 -1 -3987 3987 4 -3988 3987 -1 -4087 3987 -1 -3988 3988 4 -3989 3988 -1 -4088 3988 -1 -3989 3989 4 -3990 3989 -1 -4089 3989 -1 -3990 3990 4 -3991 3990 -1 -4090 3990 -1 -3991 3991 4 -3992 3991 -1 -4091 3991 -1 -3992 3992 4 -3993 3992 -1 -4092 3992 -1 -3993 3993 4 -3994 3993 -1 -4093 3993 -1 -3994 3994 4 -3995 3994 -1 -4094 3994 -1 -3995 3995 4 -3996 3995 -1 -4095 3995 -1 -3996 3996 4 -3997 3996 -1 -4096 3996 -1 -3997 3997 4 -3998 3997 -1 -4097 3997 -1 -3998 3998 4 -3999 3998 -1 -4098 3998 -1 -3999 3999 4 -4000 3999 -1 -4099 3999 -1 -4000 4000 4 -4100 4000 -1 -4001 4001 4 -4002 4001 -1 -4101 4001 -1 -4002 4002 4 -4003 4002 -1 -4102 4002 -1 -4003 4003 4 -4004 4003 -1 -4103 4003 -1 -4004 4004 4 -4005 4004 -1 -4104 4004 -1 -4005 4005 4 -4006 4005 -1 -4105 4005 -1 -4006 4006 4 -4007 4006 -1 -4106 4006 -1 -4007 4007 4 -4008 4007 -1 -4107 4007 -1 -4008 4008 4 -4009 4008 -1 -4108 4008 -1 -4009 4009 4 -4010 4009 -1 -4109 4009 -1 -4010 4010 4 -4011 4010 -1 -4110 4010 -1 -4011 4011 4 -4012 4011 -1 -4111 4011 -1 -4012 4012 4 -4013 4012 -1 -4112 4012 -1 -4013 4013 4 -4014 4013 -1 -4113 4013 -1 -4014 4014 4 -4015 4014 -1 -4114 4014 -1 -4015 4015 4 -4016 4015 -1 -4115 4015 -1 -4016 4016 4 -4017 4016 -1 -4116 4016 -1 -4017 4017 4 -4018 4017 -1 -4117 4017 -1 -4018 4018 4 -4019 4018 -1 -4118 4018 -1 -4019 4019 4 -4020 4019 -1 -4119 4019 -1 -4020 4020 4 -4021 4020 -1 -4120 4020 -1 -4021 4021 4 -4022 4021 -1 -4121 4021 -1 -4022 4022 4 -4023 4022 -1 -4122 4022 -1 -4023 4023 4 -4024 4023 -1 -4123 4023 -1 -4024 4024 4 -4025 4024 -1 -4124 4024 -1 -4025 4025 4 -4026 4025 -1 -4125 4025 -1 -4026 4026 4 -4027 4026 -1 -4126 4026 -1 -4027 4027 4 -4028 4027 -1 -4127 4027 -1 -4028 4028 4 -4029 4028 -1 -4128 4028 -1 -4029 4029 4 -4030 4029 -1 -4129 4029 -1 -4030 4030 4 -4031 4030 -1 -4130 4030 -1 -4031 4031 4 -4032 4031 -1 -4131 4031 -1 -4032 4032 4 -4033 4032 -1 -4132 4032 -1 -4033 4033 4 -4034 4033 -1 -4133 4033 -1 -4034 4034 4 -4035 4034 -1 -4134 4034 -1 -4035 4035 4 -4036 4035 -1 -4135 4035 -1 -4036 4036 4 -4037 4036 -1 -4136 4036 -1 -4037 4037 4 -4038 4037 -1 -4137 4037 -1 -4038 4038 4 -4039 4038 -1 -4138 4038 -1 -4039 4039 4 -4040 4039 -1 -4139 4039 -1 -4040 4040 4 -4041 4040 -1 -4140 4040 -1 -4041 4041 4 -4042 4041 -1 -4141 4041 -1 -4042 4042 4 -4043 4042 -1 -4142 4042 -1 -4043 4043 4 -4044 4043 -1 -4143 4043 -1 -4044 4044 4 -4045 4044 -1 -4144 4044 -1 -4045 4045 4 -4046 4045 -1 -4145 4045 -1 -4046 4046 4 -4047 4046 -1 -4146 4046 -1 -4047 4047 4 -4048 4047 -1 -4147 4047 -1 -4048 4048 4 -4049 4048 -1 -4148 4048 -1 -4049 4049 4 -4050 4049 -1 -4149 4049 -1 -4050 4050 4 -4051 4050 -1 -4150 4050 -1 -4051 4051 4 -4052 4051 -1 -4151 4051 -1 -4052 4052 4 -4053 4052 -1 -4152 4052 -1 -4053 4053 4 -4054 4053 -1 -4153 4053 -1 -4054 4054 4 -4055 4054 -1 -4154 4054 -1 -4055 4055 4 -4056 4055 -1 -4155 4055 -1 -4056 4056 4 -4057 4056 -1 -4156 4056 -1 -4057 4057 4 -4058 4057 -1 -4157 4057 -1 -4058 4058 4 -4059 4058 -1 -4158 4058 -1 -4059 4059 4 -4060 4059 -1 -4159 4059 -1 -4060 4060 4 -4061 4060 -1 -4160 4060 -1 -4061 4061 4 -4062 4061 -1 -4161 4061 -1 -4062 4062 4 -4063 4062 -1 -4162 4062 -1 -4063 4063 4 -4064 4063 -1 -4163 4063 -1 -4064 4064 4 -4065 4064 -1 -4164 4064 -1 -4065 4065 4 -4066 4065 -1 -4165 4065 -1 -4066 4066 4 -4067 4066 -1 -4166 4066 -1 -4067 4067 4 -4068 4067 -1 -4167 4067 -1 -4068 4068 4 -4069 4068 -1 -4168 4068 -1 -4069 4069 4 -4070 4069 -1 -4169 4069 -1 -4070 4070 4 -4071 4070 -1 -4170 4070 -1 -4071 4071 4 -4072 4071 -1 -4171 4071 -1 -4072 4072 4 -4073 4072 -1 -4172 4072 -1 -4073 4073 4 -4074 4073 -1 -4173 4073 -1 -4074 4074 4 -4075 4074 -1 -4174 4074 -1 -4075 4075 4 -4076 4075 -1 -4175 4075 -1 -4076 4076 4 -4077 4076 -1 -4176 4076 -1 -4077 4077 4 -4078 4077 -1 -4177 4077 -1 -4078 4078 4 -4079 4078 -1 -4178 4078 -1 -4079 4079 4 -4080 4079 -1 -4179 4079 -1 -4080 4080 4 -4081 4080 -1 -4180 4080 -1 -4081 4081 4 -4082 4081 -1 -4181 4081 -1 -4082 4082 4 -4083 4082 -1 -4182 4082 -1 -4083 4083 4 -4084 4083 -1 -4183 4083 -1 -4084 4084 4 -4085 4084 -1 -4184 4084 -1 -4085 4085 4 -4086 4085 -1 -4185 4085 -1 -4086 4086 4 -4087 4086 -1 -4186 4086 -1 -4087 4087 4 -4088 4087 -1 -4187 4087 -1 -4088 4088 4 -4089 4088 -1 -4188 4088 -1 -4089 4089 4 -4090 4089 -1 -4189 4089 -1 -4090 4090 4 -4091 4090 -1 -4190 4090 -1 -4091 4091 4 -4092 4091 -1 -4191 4091 -1 -4092 4092 4 -4093 4092 -1 -4192 4092 -1 -4093 4093 4 -4094 4093 -1 -4193 4093 -1 -4094 4094 4 -4095 4094 -1 -4194 4094 -1 -4095 4095 4 -4096 4095 -1 -4195 4095 -1 -4096 4096 4 -4097 4096 -1 -4196 4096 -1 -4097 4097 4 -4098 4097 -1 -4197 4097 -1 -4098 4098 4 -4099 4098 -1 -4198 4098 -1 -4099 4099 4 -4100 4099 -1 -4199 4099 -1 -4100 4100 4 -4200 4100 -1 -4101 4101 4 -4102 4101 -1 -4201 4101 -1 -4102 4102 4 -4103 4102 -1 -4202 4102 -1 -4103 4103 4 -4104 4103 -1 -4203 4103 -1 -4104 4104 4 -4105 4104 -1 -4204 4104 -1 -4105 4105 4 -4106 4105 -1 -4205 4105 -1 -4106 4106 4 -4107 4106 -1 -4206 4106 -1 -4107 4107 4 -4108 4107 -1 -4207 4107 -1 -4108 4108 4 -4109 4108 -1 -4208 4108 -1 -4109 4109 4 -4110 4109 -1 -4209 4109 -1 -4110 4110 4 -4111 4110 -1 -4210 4110 -1 -4111 4111 4 -4112 4111 -1 -4211 4111 -1 -4112 4112 4 -4113 4112 -1 -4212 4112 -1 -4113 4113 4 -4114 4113 -1 -4213 4113 -1 -4114 4114 4 -4115 4114 -1 -4214 4114 -1 -4115 4115 4 -4116 4115 -1 -4215 4115 -1 -4116 4116 4 -4117 4116 -1 -4216 4116 -1 -4117 4117 4 -4118 4117 -1 -4217 4117 -1 -4118 4118 4 -4119 4118 -1 -4218 4118 -1 -4119 4119 4 -4120 4119 -1 -4219 4119 -1 -4120 4120 4 -4121 4120 -1 -4220 4120 -1 -4121 4121 4 -4122 4121 -1 -4221 4121 -1 -4122 4122 4 -4123 4122 -1 -4222 4122 -1 -4123 4123 4 -4124 4123 -1 -4223 4123 -1 -4124 4124 4 -4125 4124 -1 -4224 4124 -1 -4125 4125 4 -4126 4125 -1 -4225 4125 -1 -4126 4126 4 -4127 4126 -1 -4226 4126 -1 -4127 4127 4 -4128 4127 -1 -4227 4127 -1 -4128 4128 4 -4129 4128 -1 -4228 4128 -1 -4129 4129 4 -4130 4129 -1 -4229 4129 -1 -4130 4130 4 -4131 4130 -1 -4230 4130 -1 -4131 4131 4 -4132 4131 -1 -4231 4131 -1 -4132 4132 4 -4133 4132 -1 -4232 4132 -1 -4133 4133 4 -4134 4133 -1 -4233 4133 -1 -4134 4134 4 -4135 4134 -1 -4234 4134 -1 -4135 4135 4 -4136 4135 -1 -4235 4135 -1 -4136 4136 4 -4137 4136 -1 -4236 4136 -1 -4137 4137 4 -4138 4137 -1 -4237 4137 -1 -4138 4138 4 -4139 4138 -1 -4238 4138 -1 -4139 4139 4 -4140 4139 -1 -4239 4139 -1 -4140 4140 4 -4141 4140 -1 -4240 4140 -1 -4141 4141 4 -4142 4141 -1 -4241 4141 -1 -4142 4142 4 -4143 4142 -1 -4242 4142 -1 -4143 4143 4 -4144 4143 -1 -4243 4143 -1 -4144 4144 4 -4145 4144 -1 -4244 4144 -1 -4145 4145 4 -4146 4145 -1 -4245 4145 -1 -4146 4146 4 -4147 4146 -1 -4246 4146 -1 -4147 4147 4 -4148 4147 -1 -4247 4147 -1 -4148 4148 4 -4149 4148 -1 -4248 4148 -1 -4149 4149 4 -4150 4149 -1 -4249 4149 -1 -4150 4150 4 -4151 4150 -1 -4250 4150 -1 -4151 4151 4 -4152 4151 -1 -4251 4151 -1 -4152 4152 4 -4153 4152 -1 -4252 4152 -1 -4153 4153 4 -4154 4153 -1 -4253 4153 -1 -4154 4154 4 -4155 4154 -1 -4254 4154 -1 -4155 4155 4 -4156 4155 -1 -4255 4155 -1 -4156 4156 4 -4157 4156 -1 -4256 4156 -1 -4157 4157 4 -4158 4157 -1 -4257 4157 -1 -4158 4158 4 -4159 4158 -1 -4258 4158 -1 -4159 4159 4 -4160 4159 -1 -4259 4159 -1 -4160 4160 4 -4161 4160 -1 -4260 4160 -1 -4161 4161 4 -4162 4161 -1 -4261 4161 -1 -4162 4162 4 -4163 4162 -1 -4262 4162 -1 -4163 4163 4 -4164 4163 -1 -4263 4163 -1 -4164 4164 4 -4165 4164 -1 -4264 4164 -1 -4165 4165 4 -4166 4165 -1 -4265 4165 -1 -4166 4166 4 -4167 4166 -1 -4266 4166 -1 -4167 4167 4 -4168 4167 -1 -4267 4167 -1 -4168 4168 4 -4169 4168 -1 -4268 4168 -1 -4169 4169 4 -4170 4169 -1 -4269 4169 -1 -4170 4170 4 -4171 4170 -1 -4270 4170 -1 -4171 4171 4 -4172 4171 -1 -4271 4171 -1 -4172 4172 4 -4173 4172 -1 -4272 4172 -1 -4173 4173 4 -4174 4173 -1 -4273 4173 -1 -4174 4174 4 -4175 4174 -1 -4274 4174 -1 -4175 4175 4 -4176 4175 -1 -4275 4175 -1 -4176 4176 4 -4177 4176 -1 -4276 4176 -1 -4177 4177 4 -4178 4177 -1 -4277 4177 -1 -4178 4178 4 -4179 4178 -1 -4278 4178 -1 -4179 4179 4 -4180 4179 -1 -4279 4179 -1 -4180 4180 4 -4181 4180 -1 -4280 4180 -1 -4181 4181 4 -4182 4181 -1 -4281 4181 -1 -4182 4182 4 -4183 4182 -1 -4282 4182 -1 -4183 4183 4 -4184 4183 -1 -4283 4183 -1 -4184 4184 4 -4185 4184 -1 -4284 4184 -1 -4185 4185 4 -4186 4185 -1 -4285 4185 -1 -4186 4186 4 -4187 4186 -1 -4286 4186 -1 -4187 4187 4 -4188 4187 -1 -4287 4187 -1 -4188 4188 4 -4189 4188 -1 -4288 4188 -1 -4189 4189 4 -4190 4189 -1 -4289 4189 -1 -4190 4190 4 -4191 4190 -1 -4290 4190 -1 -4191 4191 4 -4192 4191 -1 -4291 4191 -1 -4192 4192 4 -4193 4192 -1 -4292 4192 -1 -4193 4193 4 -4194 4193 -1 -4293 4193 -1 -4194 4194 4 -4195 4194 -1 -4294 4194 -1 -4195 4195 4 -4196 4195 -1 -4295 4195 -1 -4196 4196 4 -4197 4196 -1 -4296 4196 -1 -4197 4197 4 -4198 4197 -1 -4297 4197 -1 -4198 4198 4 -4199 4198 -1 -4298 4198 -1 -4199 4199 4 -4200 4199 -1 -4299 4199 -1 -4200 4200 4 -4300 4200 -1 -4201 4201 4 -4202 4201 -1 -4301 4201 -1 -4202 4202 4 -4203 4202 -1 -4302 4202 -1 -4203 4203 4 -4204 4203 -1 -4303 4203 -1 -4204 4204 4 -4205 4204 -1 -4304 4204 -1 -4205 4205 4 -4206 4205 -1 -4305 4205 -1 -4206 4206 4 -4207 4206 -1 -4306 4206 -1 -4207 4207 4 -4208 4207 -1 -4307 4207 -1 -4208 4208 4 -4209 4208 -1 -4308 4208 -1 -4209 4209 4 -4210 4209 -1 -4309 4209 -1 -4210 4210 4 -4211 4210 -1 -4310 4210 -1 -4211 4211 4 -4212 4211 -1 -4311 4211 -1 -4212 4212 4 -4213 4212 -1 -4312 4212 -1 -4213 4213 4 -4214 4213 -1 -4313 4213 -1 -4214 4214 4 -4215 4214 -1 -4314 4214 -1 -4215 4215 4 -4216 4215 -1 -4315 4215 -1 -4216 4216 4 -4217 4216 -1 -4316 4216 -1 -4217 4217 4 -4218 4217 -1 -4317 4217 -1 -4218 4218 4 -4219 4218 -1 -4318 4218 -1 -4219 4219 4 -4220 4219 -1 -4319 4219 -1 -4220 4220 4 -4221 4220 -1 -4320 4220 -1 -4221 4221 4 -4222 4221 -1 -4321 4221 -1 -4222 4222 4 -4223 4222 -1 -4322 4222 -1 -4223 4223 4 -4224 4223 -1 -4323 4223 -1 -4224 4224 4 -4225 4224 -1 -4324 4224 -1 -4225 4225 4 -4226 4225 -1 -4325 4225 -1 -4226 4226 4 -4227 4226 -1 -4326 4226 -1 -4227 4227 4 -4228 4227 -1 -4327 4227 -1 -4228 4228 4 -4229 4228 -1 -4328 4228 -1 -4229 4229 4 -4230 4229 -1 -4329 4229 -1 -4230 4230 4 -4231 4230 -1 -4330 4230 -1 -4231 4231 4 -4232 4231 -1 -4331 4231 -1 -4232 4232 4 -4233 4232 -1 -4332 4232 -1 -4233 4233 4 -4234 4233 -1 -4333 4233 -1 -4234 4234 4 -4235 4234 -1 -4334 4234 -1 -4235 4235 4 -4236 4235 -1 -4335 4235 -1 -4236 4236 4 -4237 4236 -1 -4336 4236 -1 -4237 4237 4 -4238 4237 -1 -4337 4237 -1 -4238 4238 4 -4239 4238 -1 -4338 4238 -1 -4239 4239 4 -4240 4239 -1 -4339 4239 -1 -4240 4240 4 -4241 4240 -1 -4340 4240 -1 -4241 4241 4 -4242 4241 -1 -4341 4241 -1 -4242 4242 4 -4243 4242 -1 -4342 4242 -1 -4243 4243 4 -4244 4243 -1 -4343 4243 -1 -4244 4244 4 -4245 4244 -1 -4344 4244 -1 -4245 4245 4 -4246 4245 -1 -4345 4245 -1 -4246 4246 4 -4247 4246 -1 -4346 4246 -1 -4247 4247 4 -4248 4247 -1 -4347 4247 -1 -4248 4248 4 -4249 4248 -1 -4348 4248 -1 -4249 4249 4 -4250 4249 -1 -4349 4249 -1 -4250 4250 4 -4251 4250 -1 -4350 4250 -1 -4251 4251 4 -4252 4251 -1 -4351 4251 -1 -4252 4252 4 -4253 4252 -1 -4352 4252 -1 -4253 4253 4 -4254 4253 -1 -4353 4253 -1 -4254 4254 4 -4255 4254 -1 -4354 4254 -1 -4255 4255 4 -4256 4255 -1 -4355 4255 -1 -4256 4256 4 -4257 4256 -1 -4356 4256 -1 -4257 4257 4 -4258 4257 -1 -4357 4257 -1 -4258 4258 4 -4259 4258 -1 -4358 4258 -1 -4259 4259 4 -4260 4259 -1 -4359 4259 -1 -4260 4260 4 -4261 4260 -1 -4360 4260 -1 -4261 4261 4 -4262 4261 -1 -4361 4261 -1 -4262 4262 4 -4263 4262 -1 -4362 4262 -1 -4263 4263 4 -4264 4263 -1 -4363 4263 -1 -4264 4264 4 -4265 4264 -1 -4364 4264 -1 -4265 4265 4 -4266 4265 -1 -4365 4265 -1 -4266 4266 4 -4267 4266 -1 -4366 4266 -1 -4267 4267 4 -4268 4267 -1 -4367 4267 -1 -4268 4268 4 -4269 4268 -1 -4368 4268 -1 -4269 4269 4 -4270 4269 -1 -4369 4269 -1 -4270 4270 4 -4271 4270 -1 -4370 4270 -1 -4271 4271 4 -4272 4271 -1 -4371 4271 -1 -4272 4272 4 -4273 4272 -1 -4372 4272 -1 -4273 4273 4 -4274 4273 -1 -4373 4273 -1 -4274 4274 4 -4275 4274 -1 -4374 4274 -1 -4275 4275 4 -4276 4275 -1 -4375 4275 -1 -4276 4276 4 -4277 4276 -1 -4376 4276 -1 -4277 4277 4 -4278 4277 -1 -4377 4277 -1 -4278 4278 4 -4279 4278 -1 -4378 4278 -1 -4279 4279 4 -4280 4279 -1 -4379 4279 -1 -4280 4280 4 -4281 4280 -1 -4380 4280 -1 -4281 4281 4 -4282 4281 -1 -4381 4281 -1 -4282 4282 4 -4283 4282 -1 -4382 4282 -1 -4283 4283 4 -4284 4283 -1 -4383 4283 -1 -4284 4284 4 -4285 4284 -1 -4384 4284 -1 -4285 4285 4 -4286 4285 -1 -4385 4285 -1 -4286 4286 4 -4287 4286 -1 -4386 4286 -1 -4287 4287 4 -4288 4287 -1 -4387 4287 -1 -4288 4288 4 -4289 4288 -1 -4388 4288 -1 -4289 4289 4 -4290 4289 -1 -4389 4289 -1 -4290 4290 4 -4291 4290 -1 -4390 4290 -1 -4291 4291 4 -4292 4291 -1 -4391 4291 -1 -4292 4292 4 -4293 4292 -1 -4392 4292 -1 -4293 4293 4 -4294 4293 -1 -4393 4293 -1 -4294 4294 4 -4295 4294 -1 -4394 4294 -1 -4295 4295 4 -4296 4295 -1 -4395 4295 -1 -4296 4296 4 -4297 4296 -1 -4396 4296 -1 -4297 4297 4 -4298 4297 -1 -4397 4297 -1 -4298 4298 4 -4299 4298 -1 -4398 4298 -1 -4299 4299 4 -4300 4299 -1 -4399 4299 -1 -4300 4300 4 -4400 4300 -1 -4301 4301 4 -4302 4301 -1 -4401 4301 -1 -4302 4302 4 -4303 4302 -1 -4402 4302 -1 -4303 4303 4 -4304 4303 -1 -4403 4303 -1 -4304 4304 4 -4305 4304 -1 -4404 4304 -1 -4305 4305 4 -4306 4305 -1 -4405 4305 -1 -4306 4306 4 -4307 4306 -1 -4406 4306 -1 -4307 4307 4 -4308 4307 -1 -4407 4307 -1 -4308 4308 4 -4309 4308 -1 -4408 4308 -1 -4309 4309 4 -4310 4309 -1 -4409 4309 -1 -4310 4310 4 -4311 4310 -1 -4410 4310 -1 -4311 4311 4 -4312 4311 -1 -4411 4311 -1 -4312 4312 4 -4313 4312 -1 -4412 4312 -1 -4313 4313 4 -4314 4313 -1 -4413 4313 -1 -4314 4314 4 -4315 4314 -1 -4414 4314 -1 -4315 4315 4 -4316 4315 -1 -4415 4315 -1 -4316 4316 4 -4317 4316 -1 -4416 4316 -1 -4317 4317 4 -4318 4317 -1 -4417 4317 -1 -4318 4318 4 -4319 4318 -1 -4418 4318 -1 -4319 4319 4 -4320 4319 -1 -4419 4319 -1 -4320 4320 4 -4321 4320 -1 -4420 4320 -1 -4321 4321 4 -4322 4321 -1 -4421 4321 -1 -4322 4322 4 -4323 4322 -1 -4422 4322 -1 -4323 4323 4 -4324 4323 -1 -4423 4323 -1 -4324 4324 4 -4325 4324 -1 -4424 4324 -1 -4325 4325 4 -4326 4325 -1 -4425 4325 -1 -4326 4326 4 -4327 4326 -1 -4426 4326 -1 -4327 4327 4 -4328 4327 -1 -4427 4327 -1 -4328 4328 4 -4329 4328 -1 -4428 4328 -1 -4329 4329 4 -4330 4329 -1 -4429 4329 -1 -4330 4330 4 -4331 4330 -1 -4430 4330 -1 -4331 4331 4 -4332 4331 -1 -4431 4331 -1 -4332 4332 4 -4333 4332 -1 -4432 4332 -1 -4333 4333 4 -4334 4333 -1 -4433 4333 -1 -4334 4334 4 -4335 4334 -1 -4434 4334 -1 -4335 4335 4 -4336 4335 -1 -4435 4335 -1 -4336 4336 4 -4337 4336 -1 -4436 4336 -1 -4337 4337 4 -4338 4337 -1 -4437 4337 -1 -4338 4338 4 -4339 4338 -1 -4438 4338 -1 -4339 4339 4 -4340 4339 -1 -4439 4339 -1 -4340 4340 4 -4341 4340 -1 -4440 4340 -1 -4341 4341 4 -4342 4341 -1 -4441 4341 -1 -4342 4342 4 -4343 4342 -1 -4442 4342 -1 -4343 4343 4 -4344 4343 -1 -4443 4343 -1 -4344 4344 4 -4345 4344 -1 -4444 4344 -1 -4345 4345 4 -4346 4345 -1 -4445 4345 -1 -4346 4346 4 -4347 4346 -1 -4446 4346 -1 -4347 4347 4 -4348 4347 -1 -4447 4347 -1 -4348 4348 4 -4349 4348 -1 -4448 4348 -1 -4349 4349 4 -4350 4349 -1 -4449 4349 -1 -4350 4350 4 -4351 4350 -1 -4450 4350 -1 -4351 4351 4 -4352 4351 -1 -4451 4351 -1 -4352 4352 4 -4353 4352 -1 -4452 4352 -1 -4353 4353 4 -4354 4353 -1 -4453 4353 -1 -4354 4354 4 -4355 4354 -1 -4454 4354 -1 -4355 4355 4 -4356 4355 -1 -4455 4355 -1 -4356 4356 4 -4357 4356 -1 -4456 4356 -1 -4357 4357 4 -4358 4357 -1 -4457 4357 -1 -4358 4358 4 -4359 4358 -1 -4458 4358 -1 -4359 4359 4 -4360 4359 -1 -4459 4359 -1 -4360 4360 4 -4361 4360 -1 -4460 4360 -1 -4361 4361 4 -4362 4361 -1 -4461 4361 -1 -4362 4362 4 -4363 4362 -1 -4462 4362 -1 -4363 4363 4 -4364 4363 -1 -4463 4363 -1 -4364 4364 4 -4365 4364 -1 -4464 4364 -1 -4365 4365 4 -4366 4365 -1 -4465 4365 -1 -4366 4366 4 -4367 4366 -1 -4466 4366 -1 -4367 4367 4 -4368 4367 -1 -4467 4367 -1 -4368 4368 4 -4369 4368 -1 -4468 4368 -1 -4369 4369 4 -4370 4369 -1 -4469 4369 -1 -4370 4370 4 -4371 4370 -1 -4470 4370 -1 -4371 4371 4 -4372 4371 -1 -4471 4371 -1 -4372 4372 4 -4373 4372 -1 -4472 4372 -1 -4373 4373 4 -4374 4373 -1 -4473 4373 -1 -4374 4374 4 -4375 4374 -1 -4474 4374 -1 -4375 4375 4 -4376 4375 -1 -4475 4375 -1 -4376 4376 4 -4377 4376 -1 -4476 4376 -1 -4377 4377 4 -4378 4377 -1 -4477 4377 -1 -4378 4378 4 -4379 4378 -1 -4478 4378 -1 -4379 4379 4 -4380 4379 -1 -4479 4379 -1 -4380 4380 4 -4381 4380 -1 -4480 4380 -1 -4381 4381 4 -4382 4381 -1 -4481 4381 -1 -4382 4382 4 -4383 4382 -1 -4482 4382 -1 -4383 4383 4 -4384 4383 -1 -4483 4383 -1 -4384 4384 4 -4385 4384 -1 -4484 4384 -1 -4385 4385 4 -4386 4385 -1 -4485 4385 -1 -4386 4386 4 -4387 4386 -1 -4486 4386 -1 -4387 4387 4 -4388 4387 -1 -4487 4387 -1 -4388 4388 4 -4389 4388 -1 -4488 4388 -1 -4389 4389 4 -4390 4389 -1 -4489 4389 -1 -4390 4390 4 -4391 4390 -1 -4490 4390 -1 -4391 4391 4 -4392 4391 -1 -4491 4391 -1 -4392 4392 4 -4393 4392 -1 -4492 4392 -1 -4393 4393 4 -4394 4393 -1 -4493 4393 -1 -4394 4394 4 -4395 4394 -1 -4494 4394 -1 -4395 4395 4 -4396 4395 -1 -4495 4395 -1 -4396 4396 4 -4397 4396 -1 -4496 4396 -1 -4397 4397 4 -4398 4397 -1 -4497 4397 -1 -4398 4398 4 -4399 4398 -1 -4498 4398 -1 -4399 4399 4 -4400 4399 -1 -4499 4399 -1 -4400 4400 4 -4500 4400 -1 -4401 4401 4 -4402 4401 -1 -4501 4401 -1 -4402 4402 4 -4403 4402 -1 -4502 4402 -1 -4403 4403 4 -4404 4403 -1 -4503 4403 -1 -4404 4404 4 -4405 4404 -1 -4504 4404 -1 -4405 4405 4 -4406 4405 -1 -4505 4405 -1 -4406 4406 4 -4407 4406 -1 -4506 4406 -1 -4407 4407 4 -4408 4407 -1 -4507 4407 -1 -4408 4408 4 -4409 4408 -1 -4508 4408 -1 -4409 4409 4 -4410 4409 -1 -4509 4409 -1 -4410 4410 4 -4411 4410 -1 -4510 4410 -1 -4411 4411 4 -4412 4411 -1 -4511 4411 -1 -4412 4412 4 -4413 4412 -1 -4512 4412 -1 -4413 4413 4 -4414 4413 -1 -4513 4413 -1 -4414 4414 4 -4415 4414 -1 -4514 4414 -1 -4415 4415 4 -4416 4415 -1 -4515 4415 -1 -4416 4416 4 -4417 4416 -1 -4516 4416 -1 -4417 4417 4 -4418 4417 -1 -4517 4417 -1 -4418 4418 4 -4419 4418 -1 -4518 4418 -1 -4419 4419 4 -4420 4419 -1 -4519 4419 -1 -4420 4420 4 -4421 4420 -1 -4520 4420 -1 -4421 4421 4 -4422 4421 -1 -4521 4421 -1 -4422 4422 4 -4423 4422 -1 -4522 4422 -1 -4423 4423 4 -4424 4423 -1 -4523 4423 -1 -4424 4424 4 -4425 4424 -1 -4524 4424 -1 -4425 4425 4 -4426 4425 -1 -4525 4425 -1 -4426 4426 4 -4427 4426 -1 -4526 4426 -1 -4427 4427 4 -4428 4427 -1 -4527 4427 -1 -4428 4428 4 -4429 4428 -1 -4528 4428 -1 -4429 4429 4 -4430 4429 -1 -4529 4429 -1 -4430 4430 4 -4431 4430 -1 -4530 4430 -1 -4431 4431 4 -4432 4431 -1 -4531 4431 -1 -4432 4432 4 -4433 4432 -1 -4532 4432 -1 -4433 4433 4 -4434 4433 -1 -4533 4433 -1 -4434 4434 4 -4435 4434 -1 -4534 4434 -1 -4435 4435 4 -4436 4435 -1 -4535 4435 -1 -4436 4436 4 -4437 4436 -1 -4536 4436 -1 -4437 4437 4 -4438 4437 -1 -4537 4437 -1 -4438 4438 4 -4439 4438 -1 -4538 4438 -1 -4439 4439 4 -4440 4439 -1 -4539 4439 -1 -4440 4440 4 -4441 4440 -1 -4540 4440 -1 -4441 4441 4 -4442 4441 -1 -4541 4441 -1 -4442 4442 4 -4443 4442 -1 -4542 4442 -1 -4443 4443 4 -4444 4443 -1 -4543 4443 -1 -4444 4444 4 -4445 4444 -1 -4544 4444 -1 -4445 4445 4 -4446 4445 -1 -4545 4445 -1 -4446 4446 4 -4447 4446 -1 -4546 4446 -1 -4447 4447 4 -4448 4447 -1 -4547 4447 -1 -4448 4448 4 -4449 4448 -1 -4548 4448 -1 -4449 4449 4 -4450 4449 -1 -4549 4449 -1 -4450 4450 4 -4451 4450 -1 -4550 4450 -1 -4451 4451 4 -4452 4451 -1 -4551 4451 -1 -4452 4452 4 -4453 4452 -1 -4552 4452 -1 -4453 4453 4 -4454 4453 -1 -4553 4453 -1 -4454 4454 4 -4455 4454 -1 -4554 4454 -1 -4455 4455 4 -4456 4455 -1 -4555 4455 -1 -4456 4456 4 -4457 4456 -1 -4556 4456 -1 -4457 4457 4 -4458 4457 -1 -4557 4457 -1 -4458 4458 4 -4459 4458 -1 -4558 4458 -1 -4459 4459 4 -4460 4459 -1 -4559 4459 -1 -4460 4460 4 -4461 4460 -1 -4560 4460 -1 -4461 4461 4 -4462 4461 -1 -4561 4461 -1 -4462 4462 4 -4463 4462 -1 -4562 4462 -1 -4463 4463 4 -4464 4463 -1 -4563 4463 -1 -4464 4464 4 -4465 4464 -1 -4564 4464 -1 -4465 4465 4 -4466 4465 -1 -4565 4465 -1 -4466 4466 4 -4467 4466 -1 -4566 4466 -1 -4467 4467 4 -4468 4467 -1 -4567 4467 -1 -4468 4468 4 -4469 4468 -1 -4568 4468 -1 -4469 4469 4 -4470 4469 -1 -4569 4469 -1 -4470 4470 4 -4471 4470 -1 -4570 4470 -1 -4471 4471 4 -4472 4471 -1 -4571 4471 -1 -4472 4472 4 -4473 4472 -1 -4572 4472 -1 -4473 4473 4 -4474 4473 -1 -4573 4473 -1 -4474 4474 4 -4475 4474 -1 -4574 4474 -1 -4475 4475 4 -4476 4475 -1 -4575 4475 -1 -4476 4476 4 -4477 4476 -1 -4576 4476 -1 -4477 4477 4 -4478 4477 -1 -4577 4477 -1 -4478 4478 4 -4479 4478 -1 -4578 4478 -1 -4479 4479 4 -4480 4479 -1 -4579 4479 -1 -4480 4480 4 -4481 4480 -1 -4580 4480 -1 -4481 4481 4 -4482 4481 -1 -4581 4481 -1 -4482 4482 4 -4483 4482 -1 -4582 4482 -1 -4483 4483 4 -4484 4483 -1 -4583 4483 -1 -4484 4484 4 -4485 4484 -1 -4584 4484 -1 -4485 4485 4 -4486 4485 -1 -4585 4485 -1 -4486 4486 4 -4487 4486 -1 -4586 4486 -1 -4487 4487 4 -4488 4487 -1 -4587 4487 -1 -4488 4488 4 -4489 4488 -1 -4588 4488 -1 -4489 4489 4 -4490 4489 -1 -4589 4489 -1 -4490 4490 4 -4491 4490 -1 -4590 4490 -1 -4491 4491 4 -4492 4491 -1 -4591 4491 -1 -4492 4492 4 -4493 4492 -1 -4592 4492 -1 -4493 4493 4 -4494 4493 -1 -4593 4493 -1 -4494 4494 4 -4495 4494 -1 -4594 4494 -1 -4495 4495 4 -4496 4495 -1 -4595 4495 -1 -4496 4496 4 -4497 4496 -1 -4596 4496 -1 -4497 4497 4 -4498 4497 -1 -4597 4497 -1 -4498 4498 4 -4499 4498 -1 -4598 4498 -1 -4499 4499 4 -4500 4499 -1 -4599 4499 -1 -4500 4500 4 -4600 4500 -1 -4501 4501 4 -4502 4501 -1 -4601 4501 -1 -4502 4502 4 -4503 4502 -1 -4602 4502 -1 -4503 4503 4 -4504 4503 -1 -4603 4503 -1 -4504 4504 4 -4505 4504 -1 -4604 4504 -1 -4505 4505 4 -4506 4505 -1 -4605 4505 -1 -4506 4506 4 -4507 4506 -1 -4606 4506 -1 -4507 4507 4 -4508 4507 -1 -4607 4507 -1 -4508 4508 4 -4509 4508 -1 -4608 4508 -1 -4509 4509 4 -4510 4509 -1 -4609 4509 -1 -4510 4510 4 -4511 4510 -1 -4610 4510 -1 -4511 4511 4 -4512 4511 -1 -4611 4511 -1 -4512 4512 4 -4513 4512 -1 -4612 4512 -1 -4513 4513 4 -4514 4513 -1 -4613 4513 -1 -4514 4514 4 -4515 4514 -1 -4614 4514 -1 -4515 4515 4 -4516 4515 -1 -4615 4515 -1 -4516 4516 4 -4517 4516 -1 -4616 4516 -1 -4517 4517 4 -4518 4517 -1 -4617 4517 -1 -4518 4518 4 -4519 4518 -1 -4618 4518 -1 -4519 4519 4 -4520 4519 -1 -4619 4519 -1 -4520 4520 4 -4521 4520 -1 -4620 4520 -1 -4521 4521 4 -4522 4521 -1 -4621 4521 -1 -4522 4522 4 -4523 4522 -1 -4622 4522 -1 -4523 4523 4 -4524 4523 -1 -4623 4523 -1 -4524 4524 4 -4525 4524 -1 -4624 4524 -1 -4525 4525 4 -4526 4525 -1 -4625 4525 -1 -4526 4526 4 -4527 4526 -1 -4626 4526 -1 -4527 4527 4 -4528 4527 -1 -4627 4527 -1 -4528 4528 4 -4529 4528 -1 -4628 4528 -1 -4529 4529 4 -4530 4529 -1 -4629 4529 -1 -4530 4530 4 -4531 4530 -1 -4630 4530 -1 -4531 4531 4 -4532 4531 -1 -4631 4531 -1 -4532 4532 4 -4533 4532 -1 -4632 4532 -1 -4533 4533 4 -4534 4533 -1 -4633 4533 -1 -4534 4534 4 -4535 4534 -1 -4634 4534 -1 -4535 4535 4 -4536 4535 -1 -4635 4535 -1 -4536 4536 4 -4537 4536 -1 -4636 4536 -1 -4537 4537 4 -4538 4537 -1 -4637 4537 -1 -4538 4538 4 -4539 4538 -1 -4638 4538 -1 -4539 4539 4 -4540 4539 -1 -4639 4539 -1 -4540 4540 4 -4541 4540 -1 -4640 4540 -1 -4541 4541 4 -4542 4541 -1 -4641 4541 -1 -4542 4542 4 -4543 4542 -1 -4642 4542 -1 -4543 4543 4 -4544 4543 -1 -4643 4543 -1 -4544 4544 4 -4545 4544 -1 -4644 4544 -1 -4545 4545 4 -4546 4545 -1 -4645 4545 -1 -4546 4546 4 -4547 4546 -1 -4646 4546 -1 -4547 4547 4 -4548 4547 -1 -4647 4547 -1 -4548 4548 4 -4549 4548 -1 -4648 4548 -1 -4549 4549 4 -4550 4549 -1 -4649 4549 -1 -4550 4550 4 -4551 4550 -1 -4650 4550 -1 -4551 4551 4 -4552 4551 -1 -4651 4551 -1 -4552 4552 4 -4553 4552 -1 -4652 4552 -1 -4553 4553 4 -4554 4553 -1 -4653 4553 -1 -4554 4554 4 -4555 4554 -1 -4654 4554 -1 -4555 4555 4 -4556 4555 -1 -4655 4555 -1 -4556 4556 4 -4557 4556 -1 -4656 4556 -1 -4557 4557 4 -4558 4557 -1 -4657 4557 -1 -4558 4558 4 -4559 4558 -1 -4658 4558 -1 -4559 4559 4 -4560 4559 -1 -4659 4559 -1 -4560 4560 4 -4561 4560 -1 -4660 4560 -1 -4561 4561 4 -4562 4561 -1 -4661 4561 -1 -4562 4562 4 -4563 4562 -1 -4662 4562 -1 -4563 4563 4 -4564 4563 -1 -4663 4563 -1 -4564 4564 4 -4565 4564 -1 -4664 4564 -1 -4565 4565 4 -4566 4565 -1 -4665 4565 -1 -4566 4566 4 -4567 4566 -1 -4666 4566 -1 -4567 4567 4 -4568 4567 -1 -4667 4567 -1 -4568 4568 4 -4569 4568 -1 -4668 4568 -1 -4569 4569 4 -4570 4569 -1 -4669 4569 -1 -4570 4570 4 -4571 4570 -1 -4670 4570 -1 -4571 4571 4 -4572 4571 -1 -4671 4571 -1 -4572 4572 4 -4573 4572 -1 -4672 4572 -1 -4573 4573 4 -4574 4573 -1 -4673 4573 -1 -4574 4574 4 -4575 4574 -1 -4674 4574 -1 -4575 4575 4 -4576 4575 -1 -4675 4575 -1 -4576 4576 4 -4577 4576 -1 -4676 4576 -1 -4577 4577 4 -4578 4577 -1 -4677 4577 -1 -4578 4578 4 -4579 4578 -1 -4678 4578 -1 -4579 4579 4 -4580 4579 -1 -4679 4579 -1 -4580 4580 4 -4581 4580 -1 -4680 4580 -1 -4581 4581 4 -4582 4581 -1 -4681 4581 -1 -4582 4582 4 -4583 4582 -1 -4682 4582 -1 -4583 4583 4 -4584 4583 -1 -4683 4583 -1 -4584 4584 4 -4585 4584 -1 -4684 4584 -1 -4585 4585 4 -4586 4585 -1 -4685 4585 -1 -4586 4586 4 -4587 4586 -1 -4686 4586 -1 -4587 4587 4 -4588 4587 -1 -4687 4587 -1 -4588 4588 4 -4589 4588 -1 -4688 4588 -1 -4589 4589 4 -4590 4589 -1 -4689 4589 -1 -4590 4590 4 -4591 4590 -1 -4690 4590 -1 -4591 4591 4 -4592 4591 -1 -4691 4591 -1 -4592 4592 4 -4593 4592 -1 -4692 4592 -1 -4593 4593 4 -4594 4593 -1 -4693 4593 -1 -4594 4594 4 -4595 4594 -1 -4694 4594 -1 -4595 4595 4 -4596 4595 -1 -4695 4595 -1 -4596 4596 4 -4597 4596 -1 -4696 4596 -1 -4597 4597 4 -4598 4597 -1 -4697 4597 -1 -4598 4598 4 -4599 4598 -1 -4698 4598 -1 -4599 4599 4 -4600 4599 -1 -4699 4599 -1 -4600 4600 4 -4700 4600 -1 -4601 4601 4 -4602 4601 -1 -4701 4601 -1 -4602 4602 4 -4603 4602 -1 -4702 4602 -1 -4603 4603 4 -4604 4603 -1 -4703 4603 -1 -4604 4604 4 -4605 4604 -1 -4704 4604 -1 -4605 4605 4 -4606 4605 -1 -4705 4605 -1 -4606 4606 4 -4607 4606 -1 -4706 4606 -1 -4607 4607 4 -4608 4607 -1 -4707 4607 -1 -4608 4608 4 -4609 4608 -1 -4708 4608 -1 -4609 4609 4 -4610 4609 -1 -4709 4609 -1 -4610 4610 4 -4611 4610 -1 -4710 4610 -1 -4611 4611 4 -4612 4611 -1 -4711 4611 -1 -4612 4612 4 -4613 4612 -1 -4712 4612 -1 -4613 4613 4 -4614 4613 -1 -4713 4613 -1 -4614 4614 4 -4615 4614 -1 -4714 4614 -1 -4615 4615 4 -4616 4615 -1 -4715 4615 -1 -4616 4616 4 -4617 4616 -1 -4716 4616 -1 -4617 4617 4 -4618 4617 -1 -4717 4617 -1 -4618 4618 4 -4619 4618 -1 -4718 4618 -1 -4619 4619 4 -4620 4619 -1 -4719 4619 -1 -4620 4620 4 -4621 4620 -1 -4720 4620 -1 -4621 4621 4 -4622 4621 -1 -4721 4621 -1 -4622 4622 4 -4623 4622 -1 -4722 4622 -1 -4623 4623 4 -4624 4623 -1 -4723 4623 -1 -4624 4624 4 -4625 4624 -1 -4724 4624 -1 -4625 4625 4 -4626 4625 -1 -4725 4625 -1 -4626 4626 4 -4627 4626 -1 -4726 4626 -1 -4627 4627 4 -4628 4627 -1 -4727 4627 -1 -4628 4628 4 -4629 4628 -1 -4728 4628 -1 -4629 4629 4 -4630 4629 -1 -4729 4629 -1 -4630 4630 4 -4631 4630 -1 -4730 4630 -1 -4631 4631 4 -4632 4631 -1 -4731 4631 -1 -4632 4632 4 -4633 4632 -1 -4732 4632 -1 -4633 4633 4 -4634 4633 -1 -4733 4633 -1 -4634 4634 4 -4635 4634 -1 -4734 4634 -1 -4635 4635 4 -4636 4635 -1 -4735 4635 -1 -4636 4636 4 -4637 4636 -1 -4736 4636 -1 -4637 4637 4 -4638 4637 -1 -4737 4637 -1 -4638 4638 4 -4639 4638 -1 -4738 4638 -1 -4639 4639 4 -4640 4639 -1 -4739 4639 -1 -4640 4640 4 -4641 4640 -1 -4740 4640 -1 -4641 4641 4 -4642 4641 -1 -4741 4641 -1 -4642 4642 4 -4643 4642 -1 -4742 4642 -1 -4643 4643 4 -4644 4643 -1 -4743 4643 -1 -4644 4644 4 -4645 4644 -1 -4744 4644 -1 -4645 4645 4 -4646 4645 -1 -4745 4645 -1 -4646 4646 4 -4647 4646 -1 -4746 4646 -1 -4647 4647 4 -4648 4647 -1 -4747 4647 -1 -4648 4648 4 -4649 4648 -1 -4748 4648 -1 -4649 4649 4 -4650 4649 -1 -4749 4649 -1 -4650 4650 4 -4651 4650 -1 -4750 4650 -1 -4651 4651 4 -4652 4651 -1 -4751 4651 -1 -4652 4652 4 -4653 4652 -1 -4752 4652 -1 -4653 4653 4 -4654 4653 -1 -4753 4653 -1 -4654 4654 4 -4655 4654 -1 -4754 4654 -1 -4655 4655 4 -4656 4655 -1 -4755 4655 -1 -4656 4656 4 -4657 4656 -1 -4756 4656 -1 -4657 4657 4 -4658 4657 -1 -4757 4657 -1 -4658 4658 4 -4659 4658 -1 -4758 4658 -1 -4659 4659 4 -4660 4659 -1 -4759 4659 -1 -4660 4660 4 -4661 4660 -1 -4760 4660 -1 -4661 4661 4 -4662 4661 -1 -4761 4661 -1 -4662 4662 4 -4663 4662 -1 -4762 4662 -1 -4663 4663 4 -4664 4663 -1 -4763 4663 -1 -4664 4664 4 -4665 4664 -1 -4764 4664 -1 -4665 4665 4 -4666 4665 -1 -4765 4665 -1 -4666 4666 4 -4667 4666 -1 -4766 4666 -1 -4667 4667 4 -4668 4667 -1 -4767 4667 -1 -4668 4668 4 -4669 4668 -1 -4768 4668 -1 -4669 4669 4 -4670 4669 -1 -4769 4669 -1 -4670 4670 4 -4671 4670 -1 -4770 4670 -1 -4671 4671 4 -4672 4671 -1 -4771 4671 -1 -4672 4672 4 -4673 4672 -1 -4772 4672 -1 -4673 4673 4 -4674 4673 -1 -4773 4673 -1 -4674 4674 4 -4675 4674 -1 -4774 4674 -1 -4675 4675 4 -4676 4675 -1 -4775 4675 -1 -4676 4676 4 -4677 4676 -1 -4776 4676 -1 -4677 4677 4 -4678 4677 -1 -4777 4677 -1 -4678 4678 4 -4679 4678 -1 -4778 4678 -1 -4679 4679 4 -4680 4679 -1 -4779 4679 -1 -4680 4680 4 -4681 4680 -1 -4780 4680 -1 -4681 4681 4 -4682 4681 -1 -4781 4681 -1 -4682 4682 4 -4683 4682 -1 -4782 4682 -1 -4683 4683 4 -4684 4683 -1 -4783 4683 -1 -4684 4684 4 -4685 4684 -1 -4784 4684 -1 -4685 4685 4 -4686 4685 -1 -4785 4685 -1 -4686 4686 4 -4687 4686 -1 -4786 4686 -1 -4687 4687 4 -4688 4687 -1 -4787 4687 -1 -4688 4688 4 -4689 4688 -1 -4788 4688 -1 -4689 4689 4 -4690 4689 -1 -4789 4689 -1 -4690 4690 4 -4691 4690 -1 -4790 4690 -1 -4691 4691 4 -4692 4691 -1 -4791 4691 -1 -4692 4692 4 -4693 4692 -1 -4792 4692 -1 -4693 4693 4 -4694 4693 -1 -4793 4693 -1 -4694 4694 4 -4695 4694 -1 -4794 4694 -1 -4695 4695 4 -4696 4695 -1 -4795 4695 -1 -4696 4696 4 -4697 4696 -1 -4796 4696 -1 -4697 4697 4 -4698 4697 -1 -4797 4697 -1 -4698 4698 4 -4699 4698 -1 -4798 4698 -1 -4699 4699 4 -4700 4699 -1 -4799 4699 -1 -4700 4700 4 -4800 4700 -1 -4701 4701 4 -4702 4701 -1 -4801 4701 -1 -4702 4702 4 -4703 4702 -1 -4802 4702 -1 -4703 4703 4 -4704 4703 -1 -4803 4703 -1 -4704 4704 4 -4705 4704 -1 -4804 4704 -1 -4705 4705 4 -4706 4705 -1 -4805 4705 -1 -4706 4706 4 -4707 4706 -1 -4806 4706 -1 -4707 4707 4 -4708 4707 -1 -4807 4707 -1 -4708 4708 4 -4709 4708 -1 -4808 4708 -1 -4709 4709 4 -4710 4709 -1 -4809 4709 -1 -4710 4710 4 -4711 4710 -1 -4810 4710 -1 -4711 4711 4 -4712 4711 -1 -4811 4711 -1 -4712 4712 4 -4713 4712 -1 -4812 4712 -1 -4713 4713 4 -4714 4713 -1 -4813 4713 -1 -4714 4714 4 -4715 4714 -1 -4814 4714 -1 -4715 4715 4 -4716 4715 -1 -4815 4715 -1 -4716 4716 4 -4717 4716 -1 -4816 4716 -1 -4717 4717 4 -4718 4717 -1 -4817 4717 -1 -4718 4718 4 -4719 4718 -1 -4818 4718 -1 -4719 4719 4 -4720 4719 -1 -4819 4719 -1 -4720 4720 4 -4721 4720 -1 -4820 4720 -1 -4721 4721 4 -4722 4721 -1 -4821 4721 -1 -4722 4722 4 -4723 4722 -1 -4822 4722 -1 -4723 4723 4 -4724 4723 -1 -4823 4723 -1 -4724 4724 4 -4725 4724 -1 -4824 4724 -1 -4725 4725 4 -4726 4725 -1 -4825 4725 -1 -4726 4726 4 -4727 4726 -1 -4826 4726 -1 -4727 4727 4 -4728 4727 -1 -4827 4727 -1 -4728 4728 4 -4729 4728 -1 -4828 4728 -1 -4729 4729 4 -4730 4729 -1 -4829 4729 -1 -4730 4730 4 -4731 4730 -1 -4830 4730 -1 -4731 4731 4 -4732 4731 -1 -4831 4731 -1 -4732 4732 4 -4733 4732 -1 -4832 4732 -1 -4733 4733 4 -4734 4733 -1 -4833 4733 -1 -4734 4734 4 -4735 4734 -1 -4834 4734 -1 -4735 4735 4 -4736 4735 -1 -4835 4735 -1 -4736 4736 4 -4737 4736 -1 -4836 4736 -1 -4737 4737 4 -4738 4737 -1 -4837 4737 -1 -4738 4738 4 -4739 4738 -1 -4838 4738 -1 -4739 4739 4 -4740 4739 -1 -4839 4739 -1 -4740 4740 4 -4741 4740 -1 -4840 4740 -1 -4741 4741 4 -4742 4741 -1 -4841 4741 -1 -4742 4742 4 -4743 4742 -1 -4842 4742 -1 -4743 4743 4 -4744 4743 -1 -4843 4743 -1 -4744 4744 4 -4745 4744 -1 -4844 4744 -1 -4745 4745 4 -4746 4745 -1 -4845 4745 -1 -4746 4746 4 -4747 4746 -1 -4846 4746 -1 -4747 4747 4 -4748 4747 -1 -4847 4747 -1 -4748 4748 4 -4749 4748 -1 -4848 4748 -1 -4749 4749 4 -4750 4749 -1 -4849 4749 -1 -4750 4750 4 -4751 4750 -1 -4850 4750 -1 -4751 4751 4 -4752 4751 -1 -4851 4751 -1 -4752 4752 4 -4753 4752 -1 -4852 4752 -1 -4753 4753 4 -4754 4753 -1 -4853 4753 -1 -4754 4754 4 -4755 4754 -1 -4854 4754 -1 -4755 4755 4 -4756 4755 -1 -4855 4755 -1 -4756 4756 4 -4757 4756 -1 -4856 4756 -1 -4757 4757 4 -4758 4757 -1 -4857 4757 -1 -4758 4758 4 -4759 4758 -1 -4858 4758 -1 -4759 4759 4 -4760 4759 -1 -4859 4759 -1 -4760 4760 4 -4761 4760 -1 -4860 4760 -1 -4761 4761 4 -4762 4761 -1 -4861 4761 -1 -4762 4762 4 -4763 4762 -1 -4862 4762 -1 -4763 4763 4 -4764 4763 -1 -4863 4763 -1 -4764 4764 4 -4765 4764 -1 -4864 4764 -1 -4765 4765 4 -4766 4765 -1 -4865 4765 -1 -4766 4766 4 -4767 4766 -1 -4866 4766 -1 -4767 4767 4 -4768 4767 -1 -4867 4767 -1 -4768 4768 4 -4769 4768 -1 -4868 4768 -1 -4769 4769 4 -4770 4769 -1 -4869 4769 -1 -4770 4770 4 -4771 4770 -1 -4870 4770 -1 -4771 4771 4 -4772 4771 -1 -4871 4771 -1 -4772 4772 4 -4773 4772 -1 -4872 4772 -1 -4773 4773 4 -4774 4773 -1 -4873 4773 -1 -4774 4774 4 -4775 4774 -1 -4874 4774 -1 -4775 4775 4 -4776 4775 -1 -4875 4775 -1 -4776 4776 4 -4777 4776 -1 -4876 4776 -1 -4777 4777 4 -4778 4777 -1 -4877 4777 -1 -4778 4778 4 -4779 4778 -1 -4878 4778 -1 -4779 4779 4 -4780 4779 -1 -4879 4779 -1 -4780 4780 4 -4781 4780 -1 -4880 4780 -1 -4781 4781 4 -4782 4781 -1 -4881 4781 -1 -4782 4782 4 -4783 4782 -1 -4882 4782 -1 -4783 4783 4 -4784 4783 -1 -4883 4783 -1 -4784 4784 4 -4785 4784 -1 -4884 4784 -1 -4785 4785 4 -4786 4785 -1 -4885 4785 -1 -4786 4786 4 -4787 4786 -1 -4886 4786 -1 -4787 4787 4 -4788 4787 -1 -4887 4787 -1 -4788 4788 4 -4789 4788 -1 -4888 4788 -1 -4789 4789 4 -4790 4789 -1 -4889 4789 -1 -4790 4790 4 -4791 4790 -1 -4890 4790 -1 -4791 4791 4 -4792 4791 -1 -4891 4791 -1 -4792 4792 4 -4793 4792 -1 -4892 4792 -1 -4793 4793 4 -4794 4793 -1 -4893 4793 -1 -4794 4794 4 -4795 4794 -1 -4894 4794 -1 -4795 4795 4 -4796 4795 -1 -4895 4795 -1 -4796 4796 4 -4797 4796 -1 -4896 4796 -1 -4797 4797 4 -4798 4797 -1 -4897 4797 -1 -4798 4798 4 -4799 4798 -1 -4898 4798 -1 -4799 4799 4 -4800 4799 -1 -4899 4799 -1 -4800 4800 4 -4900 4800 -1 -4801 4801 4 -4802 4801 -1 -4901 4801 -1 -4802 4802 4 -4803 4802 -1 -4902 4802 -1 -4803 4803 4 -4804 4803 -1 -4903 4803 -1 -4804 4804 4 -4805 4804 -1 -4904 4804 -1 -4805 4805 4 -4806 4805 -1 -4905 4805 -1 -4806 4806 4 -4807 4806 -1 -4906 4806 -1 -4807 4807 4 -4808 4807 -1 -4907 4807 -1 -4808 4808 4 -4809 4808 -1 -4908 4808 -1 -4809 4809 4 -4810 4809 -1 -4909 4809 -1 -4810 4810 4 -4811 4810 -1 -4910 4810 -1 -4811 4811 4 -4812 4811 -1 -4911 4811 -1 -4812 4812 4 -4813 4812 -1 -4912 4812 -1 -4813 4813 4 -4814 4813 -1 -4913 4813 -1 -4814 4814 4 -4815 4814 -1 -4914 4814 -1 -4815 4815 4 -4816 4815 -1 -4915 4815 -1 -4816 4816 4 -4817 4816 -1 -4916 4816 -1 -4817 4817 4 -4818 4817 -1 -4917 4817 -1 -4818 4818 4 -4819 4818 -1 -4918 4818 -1 -4819 4819 4 -4820 4819 -1 -4919 4819 -1 -4820 4820 4 -4821 4820 -1 -4920 4820 -1 -4821 4821 4 -4822 4821 -1 -4921 4821 -1 -4822 4822 4 -4823 4822 -1 -4922 4822 -1 -4823 4823 4 -4824 4823 -1 -4923 4823 -1 -4824 4824 4 -4825 4824 -1 -4924 4824 -1 -4825 4825 4 -4826 4825 -1 -4925 4825 -1 -4826 4826 4 -4827 4826 -1 -4926 4826 -1 -4827 4827 4 -4828 4827 -1 -4927 4827 -1 -4828 4828 4 -4829 4828 -1 -4928 4828 -1 -4829 4829 4 -4830 4829 -1 -4929 4829 -1 -4830 4830 4 -4831 4830 -1 -4930 4830 -1 -4831 4831 4 -4832 4831 -1 -4931 4831 -1 -4832 4832 4 -4833 4832 -1 -4932 4832 -1 -4833 4833 4 -4834 4833 -1 -4933 4833 -1 -4834 4834 4 -4835 4834 -1 -4934 4834 -1 -4835 4835 4 -4836 4835 -1 -4935 4835 -1 -4836 4836 4 -4837 4836 -1 -4936 4836 -1 -4837 4837 4 -4838 4837 -1 -4937 4837 -1 -4838 4838 4 -4839 4838 -1 -4938 4838 -1 -4839 4839 4 -4840 4839 -1 -4939 4839 -1 -4840 4840 4 -4841 4840 -1 -4940 4840 -1 -4841 4841 4 -4842 4841 -1 -4941 4841 -1 -4842 4842 4 -4843 4842 -1 -4942 4842 -1 -4843 4843 4 -4844 4843 -1 -4943 4843 -1 -4844 4844 4 -4845 4844 -1 -4944 4844 -1 -4845 4845 4 -4846 4845 -1 -4945 4845 -1 -4846 4846 4 -4847 4846 -1 -4946 4846 -1 -4847 4847 4 -4848 4847 -1 -4947 4847 -1 -4848 4848 4 -4849 4848 -1 -4948 4848 -1 -4849 4849 4 -4850 4849 -1 -4949 4849 -1 -4850 4850 4 -4851 4850 -1 -4950 4850 -1 -4851 4851 4 -4852 4851 -1 -4951 4851 -1 -4852 4852 4 -4853 4852 -1 -4952 4852 -1 -4853 4853 4 -4854 4853 -1 -4953 4853 -1 -4854 4854 4 -4855 4854 -1 -4954 4854 -1 -4855 4855 4 -4856 4855 -1 -4955 4855 -1 -4856 4856 4 -4857 4856 -1 -4956 4856 -1 -4857 4857 4 -4858 4857 -1 -4957 4857 -1 -4858 4858 4 -4859 4858 -1 -4958 4858 -1 -4859 4859 4 -4860 4859 -1 -4959 4859 -1 -4860 4860 4 -4861 4860 -1 -4960 4860 -1 -4861 4861 4 -4862 4861 -1 -4961 4861 -1 -4862 4862 4 -4863 4862 -1 -4962 4862 -1 -4863 4863 4 -4864 4863 -1 -4963 4863 -1 -4864 4864 4 -4865 4864 -1 -4964 4864 -1 -4865 4865 4 -4866 4865 -1 -4965 4865 -1 -4866 4866 4 -4867 4866 -1 -4966 4866 -1 -4867 4867 4 -4868 4867 -1 -4967 4867 -1 -4868 4868 4 -4869 4868 -1 -4968 4868 -1 -4869 4869 4 -4870 4869 -1 -4969 4869 -1 -4870 4870 4 -4871 4870 -1 -4970 4870 -1 -4871 4871 4 -4872 4871 -1 -4971 4871 -1 -4872 4872 4 -4873 4872 -1 -4972 4872 -1 -4873 4873 4 -4874 4873 -1 -4973 4873 -1 -4874 4874 4 -4875 4874 -1 -4974 4874 -1 -4875 4875 4 -4876 4875 -1 -4975 4875 -1 -4876 4876 4 -4877 4876 -1 -4976 4876 -1 -4877 4877 4 -4878 4877 -1 -4977 4877 -1 -4878 4878 4 -4879 4878 -1 -4978 4878 -1 -4879 4879 4 -4880 4879 -1 -4979 4879 -1 -4880 4880 4 -4881 4880 -1 -4980 4880 -1 -4881 4881 4 -4882 4881 -1 -4981 4881 -1 -4882 4882 4 -4883 4882 -1 -4982 4882 -1 -4883 4883 4 -4884 4883 -1 -4983 4883 -1 -4884 4884 4 -4885 4884 -1 -4984 4884 -1 -4885 4885 4 -4886 4885 -1 -4985 4885 -1 -4886 4886 4 -4887 4886 -1 -4986 4886 -1 -4887 4887 4 -4888 4887 -1 -4987 4887 -1 -4888 4888 4 -4889 4888 -1 -4988 4888 -1 -4889 4889 4 -4890 4889 -1 -4989 4889 -1 -4890 4890 4 -4891 4890 -1 -4990 4890 -1 -4891 4891 4 -4892 4891 -1 -4991 4891 -1 -4892 4892 4 -4893 4892 -1 -4992 4892 -1 -4893 4893 4 -4894 4893 -1 -4993 4893 -1 -4894 4894 4 -4895 4894 -1 -4994 4894 -1 -4895 4895 4 -4896 4895 -1 -4995 4895 -1 -4896 4896 4 -4897 4896 -1 -4996 4896 -1 -4897 4897 4 -4898 4897 -1 -4997 4897 -1 -4898 4898 4 -4899 4898 -1 -4998 4898 -1 -4899 4899 4 -4900 4899 -1 -4999 4899 -1 -4900 4900 4 -5000 4900 -1 -4901 4901 4 -4902 4901 -1 -5001 4901 -1 -4902 4902 4 -4903 4902 -1 -5002 4902 -1 -4903 4903 4 -4904 4903 -1 -5003 4903 -1 -4904 4904 4 -4905 4904 -1 -5004 4904 -1 -4905 4905 4 -4906 4905 -1 -5005 4905 -1 -4906 4906 4 -4907 4906 -1 -5006 4906 -1 -4907 4907 4 -4908 4907 -1 -5007 4907 -1 -4908 4908 4 -4909 4908 -1 -5008 4908 -1 -4909 4909 4 -4910 4909 -1 -5009 4909 -1 -4910 4910 4 -4911 4910 -1 -5010 4910 -1 -4911 4911 4 -4912 4911 -1 -5011 4911 -1 -4912 4912 4 -4913 4912 -1 -5012 4912 -1 -4913 4913 4 -4914 4913 -1 -5013 4913 -1 -4914 4914 4 -4915 4914 -1 -5014 4914 -1 -4915 4915 4 -4916 4915 -1 -5015 4915 -1 -4916 4916 4 -4917 4916 -1 -5016 4916 -1 -4917 4917 4 -4918 4917 -1 -5017 4917 -1 -4918 4918 4 -4919 4918 -1 -5018 4918 -1 -4919 4919 4 -4920 4919 -1 -5019 4919 -1 -4920 4920 4 -4921 4920 -1 -5020 4920 -1 -4921 4921 4 -4922 4921 -1 -5021 4921 -1 -4922 4922 4 -4923 4922 -1 -5022 4922 -1 -4923 4923 4 -4924 4923 -1 -5023 4923 -1 -4924 4924 4 -4925 4924 -1 -5024 4924 -1 -4925 4925 4 -4926 4925 -1 -5025 4925 -1 -4926 4926 4 -4927 4926 -1 -5026 4926 -1 -4927 4927 4 -4928 4927 -1 -5027 4927 -1 -4928 4928 4 -4929 4928 -1 -5028 4928 -1 -4929 4929 4 -4930 4929 -1 -5029 4929 -1 -4930 4930 4 -4931 4930 -1 -5030 4930 -1 -4931 4931 4 -4932 4931 -1 -5031 4931 -1 -4932 4932 4 -4933 4932 -1 -5032 4932 -1 -4933 4933 4 -4934 4933 -1 -5033 4933 -1 -4934 4934 4 -4935 4934 -1 -5034 4934 -1 -4935 4935 4 -4936 4935 -1 -5035 4935 -1 -4936 4936 4 -4937 4936 -1 -5036 4936 -1 -4937 4937 4 -4938 4937 -1 -5037 4937 -1 -4938 4938 4 -4939 4938 -1 -5038 4938 -1 -4939 4939 4 -4940 4939 -1 -5039 4939 -1 -4940 4940 4 -4941 4940 -1 -5040 4940 -1 -4941 4941 4 -4942 4941 -1 -5041 4941 -1 -4942 4942 4 -4943 4942 -1 -5042 4942 -1 -4943 4943 4 -4944 4943 -1 -5043 4943 -1 -4944 4944 4 -4945 4944 -1 -5044 4944 -1 -4945 4945 4 -4946 4945 -1 -5045 4945 -1 -4946 4946 4 -4947 4946 -1 -5046 4946 -1 -4947 4947 4 -4948 4947 -1 -5047 4947 -1 -4948 4948 4 -4949 4948 -1 -5048 4948 -1 -4949 4949 4 -4950 4949 -1 -5049 4949 -1 -4950 4950 4 -4951 4950 -1 -5050 4950 -1 -4951 4951 4 -4952 4951 -1 -5051 4951 -1 -4952 4952 4 -4953 4952 -1 -5052 4952 -1 -4953 4953 4 -4954 4953 -1 -5053 4953 -1 -4954 4954 4 -4955 4954 -1 -5054 4954 -1 -4955 4955 4 -4956 4955 -1 -5055 4955 -1 -4956 4956 4 -4957 4956 -1 -5056 4956 -1 -4957 4957 4 -4958 4957 -1 -5057 4957 -1 -4958 4958 4 -4959 4958 -1 -5058 4958 -1 -4959 4959 4 -4960 4959 -1 -5059 4959 -1 -4960 4960 4 -4961 4960 -1 -5060 4960 -1 -4961 4961 4 -4962 4961 -1 -5061 4961 -1 -4962 4962 4 -4963 4962 -1 -5062 4962 -1 -4963 4963 4 -4964 4963 -1 -5063 4963 -1 -4964 4964 4 -4965 4964 -1 -5064 4964 -1 -4965 4965 4 -4966 4965 -1 -5065 4965 -1 -4966 4966 4 -4967 4966 -1 -5066 4966 -1 -4967 4967 4 -4968 4967 -1 -5067 4967 -1 -4968 4968 4 -4969 4968 -1 -5068 4968 -1 -4969 4969 4 -4970 4969 -1 -5069 4969 -1 -4970 4970 4 -4971 4970 -1 -5070 4970 -1 -4971 4971 4 -4972 4971 -1 -5071 4971 -1 -4972 4972 4 -4973 4972 -1 -5072 4972 -1 -4973 4973 4 -4974 4973 -1 -5073 4973 -1 -4974 4974 4 -4975 4974 -1 -5074 4974 -1 -4975 4975 4 -4976 4975 -1 -5075 4975 -1 -4976 4976 4 -4977 4976 -1 -5076 4976 -1 -4977 4977 4 -4978 4977 -1 -5077 4977 -1 -4978 4978 4 -4979 4978 -1 -5078 4978 -1 -4979 4979 4 -4980 4979 -1 -5079 4979 -1 -4980 4980 4 -4981 4980 -1 -5080 4980 -1 -4981 4981 4 -4982 4981 -1 -5081 4981 -1 -4982 4982 4 -4983 4982 -1 -5082 4982 -1 -4983 4983 4 -4984 4983 -1 -5083 4983 -1 -4984 4984 4 -4985 4984 -1 -5084 4984 -1 -4985 4985 4 -4986 4985 -1 -5085 4985 -1 -4986 4986 4 -4987 4986 -1 -5086 4986 -1 -4987 4987 4 -4988 4987 -1 -5087 4987 -1 -4988 4988 4 -4989 4988 -1 -5088 4988 -1 -4989 4989 4 -4990 4989 -1 -5089 4989 -1 -4990 4990 4 -4991 4990 -1 -5090 4990 -1 -4991 4991 4 -4992 4991 -1 -5091 4991 -1 -4992 4992 4 -4993 4992 -1 -5092 4992 -1 -4993 4993 4 -4994 4993 -1 -5093 4993 -1 -4994 4994 4 -4995 4994 -1 -5094 4994 -1 -4995 4995 4 -4996 4995 -1 -5095 4995 -1 -4996 4996 4 -4997 4996 -1 -5096 4996 -1 -4997 4997 4 -4998 4997 -1 -5097 4997 -1 -4998 4998 4 -4999 4998 -1 -5098 4998 -1 -4999 4999 4 -5000 4999 -1 -5099 4999 -1 -5000 5000 4 -5100 5000 -1 -5001 5001 4 -5002 5001 -1 -5101 5001 -1 -5002 5002 4 -5003 5002 -1 -5102 5002 -1 -5003 5003 4 -5004 5003 -1 -5103 5003 -1 -5004 5004 4 -5005 5004 -1 -5104 5004 -1 -5005 5005 4 -5006 5005 -1 -5105 5005 -1 -5006 5006 4 -5007 5006 -1 -5106 5006 -1 -5007 5007 4 -5008 5007 -1 -5107 5007 -1 -5008 5008 4 -5009 5008 -1 -5108 5008 -1 -5009 5009 4 -5010 5009 -1 -5109 5009 -1 -5010 5010 4 -5011 5010 -1 -5110 5010 -1 -5011 5011 4 -5012 5011 -1 -5111 5011 -1 -5012 5012 4 -5013 5012 -1 -5112 5012 -1 -5013 5013 4 -5014 5013 -1 -5113 5013 -1 -5014 5014 4 -5015 5014 -1 -5114 5014 -1 -5015 5015 4 -5016 5015 -1 -5115 5015 -1 -5016 5016 4 -5017 5016 -1 -5116 5016 -1 -5017 5017 4 -5018 5017 -1 -5117 5017 -1 -5018 5018 4 -5019 5018 -1 -5118 5018 -1 -5019 5019 4 -5020 5019 -1 -5119 5019 -1 -5020 5020 4 -5021 5020 -1 -5120 5020 -1 -5021 5021 4 -5022 5021 -1 -5121 5021 -1 -5022 5022 4 -5023 5022 -1 -5122 5022 -1 -5023 5023 4 -5024 5023 -1 -5123 5023 -1 -5024 5024 4 -5025 5024 -1 -5124 5024 -1 -5025 5025 4 -5026 5025 -1 -5125 5025 -1 -5026 5026 4 -5027 5026 -1 -5126 5026 -1 -5027 5027 4 -5028 5027 -1 -5127 5027 -1 -5028 5028 4 -5029 5028 -1 -5128 5028 -1 -5029 5029 4 -5030 5029 -1 -5129 5029 -1 -5030 5030 4 -5031 5030 -1 -5130 5030 -1 -5031 5031 4 -5032 5031 -1 -5131 5031 -1 -5032 5032 4 -5033 5032 -1 -5132 5032 -1 -5033 5033 4 -5034 5033 -1 -5133 5033 -1 -5034 5034 4 -5035 5034 -1 -5134 5034 -1 -5035 5035 4 -5036 5035 -1 -5135 5035 -1 -5036 5036 4 -5037 5036 -1 -5136 5036 -1 -5037 5037 4 -5038 5037 -1 -5137 5037 -1 -5038 5038 4 -5039 5038 -1 -5138 5038 -1 -5039 5039 4 -5040 5039 -1 -5139 5039 -1 -5040 5040 4 -5041 5040 -1 -5140 5040 -1 -5041 5041 4 -5042 5041 -1 -5141 5041 -1 -5042 5042 4 -5043 5042 -1 -5142 5042 -1 -5043 5043 4 -5044 5043 -1 -5143 5043 -1 -5044 5044 4 -5045 5044 -1 -5144 5044 -1 -5045 5045 4 -5046 5045 -1 -5145 5045 -1 -5046 5046 4 -5047 5046 -1 -5146 5046 -1 -5047 5047 4 -5048 5047 -1 -5147 5047 -1 -5048 5048 4 -5049 5048 -1 -5148 5048 -1 -5049 5049 4 -5050 5049 -1 -5149 5049 -1 -5050 5050 4 -5051 5050 -1 -5150 5050 -1 -5051 5051 4 -5052 5051 -1 -5151 5051 -1 -5052 5052 4 -5053 5052 -1 -5152 5052 -1 -5053 5053 4 -5054 5053 -1 -5153 5053 -1 -5054 5054 4 -5055 5054 -1 -5154 5054 -1 -5055 5055 4 -5056 5055 -1 -5155 5055 -1 -5056 5056 4 -5057 5056 -1 -5156 5056 -1 -5057 5057 4 -5058 5057 -1 -5157 5057 -1 -5058 5058 4 -5059 5058 -1 -5158 5058 -1 -5059 5059 4 -5060 5059 -1 -5159 5059 -1 -5060 5060 4 -5061 5060 -1 -5160 5060 -1 -5061 5061 4 -5062 5061 -1 -5161 5061 -1 -5062 5062 4 -5063 5062 -1 -5162 5062 -1 -5063 5063 4 -5064 5063 -1 -5163 5063 -1 -5064 5064 4 -5065 5064 -1 -5164 5064 -1 -5065 5065 4 -5066 5065 -1 -5165 5065 -1 -5066 5066 4 -5067 5066 -1 -5166 5066 -1 -5067 5067 4 -5068 5067 -1 -5167 5067 -1 -5068 5068 4 -5069 5068 -1 -5168 5068 -1 -5069 5069 4 -5070 5069 -1 -5169 5069 -1 -5070 5070 4 -5071 5070 -1 -5170 5070 -1 -5071 5071 4 -5072 5071 -1 -5171 5071 -1 -5072 5072 4 -5073 5072 -1 -5172 5072 -1 -5073 5073 4 -5074 5073 -1 -5173 5073 -1 -5074 5074 4 -5075 5074 -1 -5174 5074 -1 -5075 5075 4 -5076 5075 -1 -5175 5075 -1 -5076 5076 4 -5077 5076 -1 -5176 5076 -1 -5077 5077 4 -5078 5077 -1 -5177 5077 -1 -5078 5078 4 -5079 5078 -1 -5178 5078 -1 -5079 5079 4 -5080 5079 -1 -5179 5079 -1 -5080 5080 4 -5081 5080 -1 -5180 5080 -1 -5081 5081 4 -5082 5081 -1 -5181 5081 -1 -5082 5082 4 -5083 5082 -1 -5182 5082 -1 -5083 5083 4 -5084 5083 -1 -5183 5083 -1 -5084 5084 4 -5085 5084 -1 -5184 5084 -1 -5085 5085 4 -5086 5085 -1 -5185 5085 -1 -5086 5086 4 -5087 5086 -1 -5186 5086 -1 -5087 5087 4 -5088 5087 -1 -5187 5087 -1 -5088 5088 4 -5089 5088 -1 -5188 5088 -1 -5089 5089 4 -5090 5089 -1 -5189 5089 -1 -5090 5090 4 -5091 5090 -1 -5190 5090 -1 -5091 5091 4 -5092 5091 -1 -5191 5091 -1 -5092 5092 4 -5093 5092 -1 -5192 5092 -1 -5093 5093 4 -5094 5093 -1 -5193 5093 -1 -5094 5094 4 -5095 5094 -1 -5194 5094 -1 -5095 5095 4 -5096 5095 -1 -5195 5095 -1 -5096 5096 4 -5097 5096 -1 -5196 5096 -1 -5097 5097 4 -5098 5097 -1 -5197 5097 -1 -5098 5098 4 -5099 5098 -1 -5198 5098 -1 -5099 5099 4 -5100 5099 -1 -5199 5099 -1 -5100 5100 4 -5200 5100 -1 -5101 5101 4 -5102 5101 -1 -5201 5101 -1 -5102 5102 4 -5103 5102 -1 -5202 5102 -1 -5103 5103 4 -5104 5103 -1 -5203 5103 -1 -5104 5104 4 -5105 5104 -1 -5204 5104 -1 -5105 5105 4 -5106 5105 -1 -5205 5105 -1 -5106 5106 4 -5107 5106 -1 -5206 5106 -1 -5107 5107 4 -5108 5107 -1 -5207 5107 -1 -5108 5108 4 -5109 5108 -1 -5208 5108 -1 -5109 5109 4 -5110 5109 -1 -5209 5109 -1 -5110 5110 4 -5111 5110 -1 -5210 5110 -1 -5111 5111 4 -5112 5111 -1 -5211 5111 -1 -5112 5112 4 -5113 5112 -1 -5212 5112 -1 -5113 5113 4 -5114 5113 -1 -5213 5113 -1 -5114 5114 4 -5115 5114 -1 -5214 5114 -1 -5115 5115 4 -5116 5115 -1 -5215 5115 -1 -5116 5116 4 -5117 5116 -1 -5216 5116 -1 -5117 5117 4 -5118 5117 -1 -5217 5117 -1 -5118 5118 4 -5119 5118 -1 -5218 5118 -1 -5119 5119 4 -5120 5119 -1 -5219 5119 -1 -5120 5120 4 -5121 5120 -1 -5220 5120 -1 -5121 5121 4 -5122 5121 -1 -5221 5121 -1 -5122 5122 4 -5123 5122 -1 -5222 5122 -1 -5123 5123 4 -5124 5123 -1 -5223 5123 -1 -5124 5124 4 -5125 5124 -1 -5224 5124 -1 -5125 5125 4 -5126 5125 -1 -5225 5125 -1 -5126 5126 4 -5127 5126 -1 -5226 5126 -1 -5127 5127 4 -5128 5127 -1 -5227 5127 -1 -5128 5128 4 -5129 5128 -1 -5228 5128 -1 -5129 5129 4 -5130 5129 -1 -5229 5129 -1 -5130 5130 4 -5131 5130 -1 -5230 5130 -1 -5131 5131 4 -5132 5131 -1 -5231 5131 -1 -5132 5132 4 -5133 5132 -1 -5232 5132 -1 -5133 5133 4 -5134 5133 -1 -5233 5133 -1 -5134 5134 4 -5135 5134 -1 -5234 5134 -1 -5135 5135 4 -5136 5135 -1 -5235 5135 -1 -5136 5136 4 -5137 5136 -1 -5236 5136 -1 -5137 5137 4 -5138 5137 -1 -5237 5137 -1 -5138 5138 4 -5139 5138 -1 -5238 5138 -1 -5139 5139 4 -5140 5139 -1 -5239 5139 -1 -5140 5140 4 -5141 5140 -1 -5240 5140 -1 -5141 5141 4 -5142 5141 -1 -5241 5141 -1 -5142 5142 4 -5143 5142 -1 -5242 5142 -1 -5143 5143 4 -5144 5143 -1 -5243 5143 -1 -5144 5144 4 -5145 5144 -1 -5244 5144 -1 -5145 5145 4 -5146 5145 -1 -5245 5145 -1 -5146 5146 4 -5147 5146 -1 -5246 5146 -1 -5147 5147 4 -5148 5147 -1 -5247 5147 -1 -5148 5148 4 -5149 5148 -1 -5248 5148 -1 -5149 5149 4 -5150 5149 -1 -5249 5149 -1 -5150 5150 4 -5151 5150 -1 -5250 5150 -1 -5151 5151 4 -5152 5151 -1 -5251 5151 -1 -5152 5152 4 -5153 5152 -1 -5252 5152 -1 -5153 5153 4 -5154 5153 -1 -5253 5153 -1 -5154 5154 4 -5155 5154 -1 -5254 5154 -1 -5155 5155 4 -5156 5155 -1 -5255 5155 -1 -5156 5156 4 -5157 5156 -1 -5256 5156 -1 -5157 5157 4 -5158 5157 -1 -5257 5157 -1 -5158 5158 4 -5159 5158 -1 -5258 5158 -1 -5159 5159 4 -5160 5159 -1 -5259 5159 -1 -5160 5160 4 -5161 5160 -1 -5260 5160 -1 -5161 5161 4 -5162 5161 -1 -5261 5161 -1 -5162 5162 4 -5163 5162 -1 -5262 5162 -1 -5163 5163 4 -5164 5163 -1 -5263 5163 -1 -5164 5164 4 -5165 5164 -1 -5264 5164 -1 -5165 5165 4 -5166 5165 -1 -5265 5165 -1 -5166 5166 4 -5167 5166 -1 -5266 5166 -1 -5167 5167 4 -5168 5167 -1 -5267 5167 -1 -5168 5168 4 -5169 5168 -1 -5268 5168 -1 -5169 5169 4 -5170 5169 -1 -5269 5169 -1 -5170 5170 4 -5171 5170 -1 -5270 5170 -1 -5171 5171 4 -5172 5171 -1 -5271 5171 -1 -5172 5172 4 -5173 5172 -1 -5272 5172 -1 -5173 5173 4 -5174 5173 -1 -5273 5173 -1 -5174 5174 4 -5175 5174 -1 -5274 5174 -1 -5175 5175 4 -5176 5175 -1 -5275 5175 -1 -5176 5176 4 -5177 5176 -1 -5276 5176 -1 -5177 5177 4 -5178 5177 -1 -5277 5177 -1 -5178 5178 4 -5179 5178 -1 -5278 5178 -1 -5179 5179 4 -5180 5179 -1 -5279 5179 -1 -5180 5180 4 -5181 5180 -1 -5280 5180 -1 -5181 5181 4 -5182 5181 -1 -5281 5181 -1 -5182 5182 4 -5183 5182 -1 -5282 5182 -1 -5183 5183 4 -5184 5183 -1 -5283 5183 -1 -5184 5184 4 -5185 5184 -1 -5284 5184 -1 -5185 5185 4 -5186 5185 -1 -5285 5185 -1 -5186 5186 4 -5187 5186 -1 -5286 5186 -1 -5187 5187 4 -5188 5187 -1 -5287 5187 -1 -5188 5188 4 -5189 5188 -1 -5288 5188 -1 -5189 5189 4 -5190 5189 -1 -5289 5189 -1 -5190 5190 4 -5191 5190 -1 -5290 5190 -1 -5191 5191 4 -5192 5191 -1 -5291 5191 -1 -5192 5192 4 -5193 5192 -1 -5292 5192 -1 -5193 5193 4 -5194 5193 -1 -5293 5193 -1 -5194 5194 4 -5195 5194 -1 -5294 5194 -1 -5195 5195 4 -5196 5195 -1 -5295 5195 -1 -5196 5196 4 -5197 5196 -1 -5296 5196 -1 -5197 5197 4 -5198 5197 -1 -5297 5197 -1 -5198 5198 4 -5199 5198 -1 -5298 5198 -1 -5199 5199 4 -5200 5199 -1 -5299 5199 -1 -5200 5200 4 -5300 5200 -1 -5201 5201 4 -5202 5201 -1 -5301 5201 -1 -5202 5202 4 -5203 5202 -1 -5302 5202 -1 -5203 5203 4 -5204 5203 -1 -5303 5203 -1 -5204 5204 4 -5205 5204 -1 -5304 5204 -1 -5205 5205 4 -5206 5205 -1 -5305 5205 -1 -5206 5206 4 -5207 5206 -1 -5306 5206 -1 -5207 5207 4 -5208 5207 -1 -5307 5207 -1 -5208 5208 4 -5209 5208 -1 -5308 5208 -1 -5209 5209 4 -5210 5209 -1 -5309 5209 -1 -5210 5210 4 -5211 5210 -1 -5310 5210 -1 -5211 5211 4 -5212 5211 -1 -5311 5211 -1 -5212 5212 4 -5213 5212 -1 -5312 5212 -1 -5213 5213 4 -5214 5213 -1 -5313 5213 -1 -5214 5214 4 -5215 5214 -1 -5314 5214 -1 -5215 5215 4 -5216 5215 -1 -5315 5215 -1 -5216 5216 4 -5217 5216 -1 -5316 5216 -1 -5217 5217 4 -5218 5217 -1 -5317 5217 -1 -5218 5218 4 -5219 5218 -1 -5318 5218 -1 -5219 5219 4 -5220 5219 -1 -5319 5219 -1 -5220 5220 4 -5221 5220 -1 -5320 5220 -1 -5221 5221 4 -5222 5221 -1 -5321 5221 -1 -5222 5222 4 -5223 5222 -1 -5322 5222 -1 -5223 5223 4 -5224 5223 -1 -5323 5223 -1 -5224 5224 4 -5225 5224 -1 -5324 5224 -1 -5225 5225 4 -5226 5225 -1 -5325 5225 -1 -5226 5226 4 -5227 5226 -1 -5326 5226 -1 -5227 5227 4 -5228 5227 -1 -5327 5227 -1 -5228 5228 4 -5229 5228 -1 -5328 5228 -1 -5229 5229 4 -5230 5229 -1 -5329 5229 -1 -5230 5230 4 -5231 5230 -1 -5330 5230 -1 -5231 5231 4 -5232 5231 -1 -5331 5231 -1 -5232 5232 4 -5233 5232 -1 -5332 5232 -1 -5233 5233 4 -5234 5233 -1 -5333 5233 -1 -5234 5234 4 -5235 5234 -1 -5334 5234 -1 -5235 5235 4 -5236 5235 -1 -5335 5235 -1 -5236 5236 4 -5237 5236 -1 -5336 5236 -1 -5237 5237 4 -5238 5237 -1 -5337 5237 -1 -5238 5238 4 -5239 5238 -1 -5338 5238 -1 -5239 5239 4 -5240 5239 -1 -5339 5239 -1 -5240 5240 4 -5241 5240 -1 -5340 5240 -1 -5241 5241 4 -5242 5241 -1 -5341 5241 -1 -5242 5242 4 -5243 5242 -1 -5342 5242 -1 -5243 5243 4 -5244 5243 -1 -5343 5243 -1 -5244 5244 4 -5245 5244 -1 -5344 5244 -1 -5245 5245 4 -5246 5245 -1 -5345 5245 -1 -5246 5246 4 -5247 5246 -1 -5346 5246 -1 -5247 5247 4 -5248 5247 -1 -5347 5247 -1 -5248 5248 4 -5249 5248 -1 -5348 5248 -1 -5249 5249 4 -5250 5249 -1 -5349 5249 -1 -5250 5250 4 -5251 5250 -1 -5350 5250 -1 -5251 5251 4 -5252 5251 -1 -5351 5251 -1 -5252 5252 4 -5253 5252 -1 -5352 5252 -1 -5253 5253 4 -5254 5253 -1 -5353 5253 -1 -5254 5254 4 -5255 5254 -1 -5354 5254 -1 -5255 5255 4 -5256 5255 -1 -5355 5255 -1 -5256 5256 4 -5257 5256 -1 -5356 5256 -1 -5257 5257 4 -5258 5257 -1 -5357 5257 -1 -5258 5258 4 -5259 5258 -1 -5358 5258 -1 -5259 5259 4 -5260 5259 -1 -5359 5259 -1 -5260 5260 4 -5261 5260 -1 -5360 5260 -1 -5261 5261 4 -5262 5261 -1 -5361 5261 -1 -5262 5262 4 -5263 5262 -1 -5362 5262 -1 -5263 5263 4 -5264 5263 -1 -5363 5263 -1 -5264 5264 4 -5265 5264 -1 -5364 5264 -1 -5265 5265 4 -5266 5265 -1 -5365 5265 -1 -5266 5266 4 -5267 5266 -1 -5366 5266 -1 -5267 5267 4 -5268 5267 -1 -5367 5267 -1 -5268 5268 4 -5269 5268 -1 -5368 5268 -1 -5269 5269 4 -5270 5269 -1 -5369 5269 -1 -5270 5270 4 -5271 5270 -1 -5370 5270 -1 -5271 5271 4 -5272 5271 -1 -5371 5271 -1 -5272 5272 4 -5273 5272 -1 -5372 5272 -1 -5273 5273 4 -5274 5273 -1 -5373 5273 -1 -5274 5274 4 -5275 5274 -1 -5374 5274 -1 -5275 5275 4 -5276 5275 -1 -5375 5275 -1 -5276 5276 4 -5277 5276 -1 -5376 5276 -1 -5277 5277 4 -5278 5277 -1 -5377 5277 -1 -5278 5278 4 -5279 5278 -1 -5378 5278 -1 -5279 5279 4 -5280 5279 -1 -5379 5279 -1 -5280 5280 4 -5281 5280 -1 -5380 5280 -1 -5281 5281 4 -5282 5281 -1 -5381 5281 -1 -5282 5282 4 -5283 5282 -1 -5382 5282 -1 -5283 5283 4 -5284 5283 -1 -5383 5283 -1 -5284 5284 4 -5285 5284 -1 -5384 5284 -1 -5285 5285 4 -5286 5285 -1 -5385 5285 -1 -5286 5286 4 -5287 5286 -1 -5386 5286 -1 -5287 5287 4 -5288 5287 -1 -5387 5287 -1 -5288 5288 4 -5289 5288 -1 -5388 5288 -1 -5289 5289 4 -5290 5289 -1 -5389 5289 -1 -5290 5290 4 -5291 5290 -1 -5390 5290 -1 -5291 5291 4 -5292 5291 -1 -5391 5291 -1 -5292 5292 4 -5293 5292 -1 -5392 5292 -1 -5293 5293 4 -5294 5293 -1 -5393 5293 -1 -5294 5294 4 -5295 5294 -1 -5394 5294 -1 -5295 5295 4 -5296 5295 -1 -5395 5295 -1 -5296 5296 4 -5297 5296 -1 -5396 5296 -1 -5297 5297 4 -5298 5297 -1 -5397 5297 -1 -5298 5298 4 -5299 5298 -1 -5398 5298 -1 -5299 5299 4 -5300 5299 -1 -5399 5299 -1 -5300 5300 4 -5400 5300 -1 -5301 5301 4 -5302 5301 -1 -5401 5301 -1 -5302 5302 4 -5303 5302 -1 -5402 5302 -1 -5303 5303 4 -5304 5303 -1 -5403 5303 -1 -5304 5304 4 -5305 5304 -1 -5404 5304 -1 -5305 5305 4 -5306 5305 -1 -5405 5305 -1 -5306 5306 4 -5307 5306 -1 -5406 5306 -1 -5307 5307 4 -5308 5307 -1 -5407 5307 -1 -5308 5308 4 -5309 5308 -1 -5408 5308 -1 -5309 5309 4 -5310 5309 -1 -5409 5309 -1 -5310 5310 4 -5311 5310 -1 -5410 5310 -1 -5311 5311 4 -5312 5311 -1 -5411 5311 -1 -5312 5312 4 -5313 5312 -1 -5412 5312 -1 -5313 5313 4 -5314 5313 -1 -5413 5313 -1 -5314 5314 4 -5315 5314 -1 -5414 5314 -1 -5315 5315 4 -5316 5315 -1 -5415 5315 -1 -5316 5316 4 -5317 5316 -1 -5416 5316 -1 -5317 5317 4 -5318 5317 -1 -5417 5317 -1 -5318 5318 4 -5319 5318 -1 -5418 5318 -1 -5319 5319 4 -5320 5319 -1 -5419 5319 -1 -5320 5320 4 -5321 5320 -1 -5420 5320 -1 -5321 5321 4 -5322 5321 -1 -5421 5321 -1 -5322 5322 4 -5323 5322 -1 -5422 5322 -1 -5323 5323 4 -5324 5323 -1 -5423 5323 -1 -5324 5324 4 -5325 5324 -1 -5424 5324 -1 -5325 5325 4 -5326 5325 -1 -5425 5325 -1 -5326 5326 4 -5327 5326 -1 -5426 5326 -1 -5327 5327 4 -5328 5327 -1 -5427 5327 -1 -5328 5328 4 -5329 5328 -1 -5428 5328 -1 -5329 5329 4 -5330 5329 -1 -5429 5329 -1 -5330 5330 4 -5331 5330 -1 -5430 5330 -1 -5331 5331 4 -5332 5331 -1 -5431 5331 -1 -5332 5332 4 -5333 5332 -1 -5432 5332 -1 -5333 5333 4 -5334 5333 -1 -5433 5333 -1 -5334 5334 4 -5335 5334 -1 -5434 5334 -1 -5335 5335 4 -5336 5335 -1 -5435 5335 -1 -5336 5336 4 -5337 5336 -1 -5436 5336 -1 -5337 5337 4 -5338 5337 -1 -5437 5337 -1 -5338 5338 4 -5339 5338 -1 -5438 5338 -1 -5339 5339 4 -5340 5339 -1 -5439 5339 -1 -5340 5340 4 -5341 5340 -1 -5440 5340 -1 -5341 5341 4 -5342 5341 -1 -5441 5341 -1 -5342 5342 4 -5343 5342 -1 -5442 5342 -1 -5343 5343 4 -5344 5343 -1 -5443 5343 -1 -5344 5344 4 -5345 5344 -1 -5444 5344 -1 -5345 5345 4 -5346 5345 -1 -5445 5345 -1 -5346 5346 4 -5347 5346 -1 -5446 5346 -1 -5347 5347 4 -5348 5347 -1 -5447 5347 -1 -5348 5348 4 -5349 5348 -1 -5448 5348 -1 -5349 5349 4 -5350 5349 -1 -5449 5349 -1 -5350 5350 4 -5351 5350 -1 -5450 5350 -1 -5351 5351 4 -5352 5351 -1 -5451 5351 -1 -5352 5352 4 -5353 5352 -1 -5452 5352 -1 -5353 5353 4 -5354 5353 -1 -5453 5353 -1 -5354 5354 4 -5355 5354 -1 -5454 5354 -1 -5355 5355 4 -5356 5355 -1 -5455 5355 -1 -5356 5356 4 -5357 5356 -1 -5456 5356 -1 -5357 5357 4 -5358 5357 -1 -5457 5357 -1 -5358 5358 4 -5359 5358 -1 -5458 5358 -1 -5359 5359 4 -5360 5359 -1 -5459 5359 -1 -5360 5360 4 -5361 5360 -1 -5460 5360 -1 -5361 5361 4 -5362 5361 -1 -5461 5361 -1 -5362 5362 4 -5363 5362 -1 -5462 5362 -1 -5363 5363 4 -5364 5363 -1 -5463 5363 -1 -5364 5364 4 -5365 5364 -1 -5464 5364 -1 -5365 5365 4 -5366 5365 -1 -5465 5365 -1 -5366 5366 4 -5367 5366 -1 -5466 5366 -1 -5367 5367 4 -5368 5367 -1 -5467 5367 -1 -5368 5368 4 -5369 5368 -1 -5468 5368 -1 -5369 5369 4 -5370 5369 -1 -5469 5369 -1 -5370 5370 4 -5371 5370 -1 -5470 5370 -1 -5371 5371 4 -5372 5371 -1 -5471 5371 -1 -5372 5372 4 -5373 5372 -1 -5472 5372 -1 -5373 5373 4 -5374 5373 -1 -5473 5373 -1 -5374 5374 4 -5375 5374 -1 -5474 5374 -1 -5375 5375 4 -5376 5375 -1 -5475 5375 -1 -5376 5376 4 -5377 5376 -1 -5476 5376 -1 -5377 5377 4 -5378 5377 -1 -5477 5377 -1 -5378 5378 4 -5379 5378 -1 -5478 5378 -1 -5379 5379 4 -5380 5379 -1 -5479 5379 -1 -5380 5380 4 -5381 5380 -1 -5480 5380 -1 -5381 5381 4 -5382 5381 -1 -5481 5381 -1 -5382 5382 4 -5383 5382 -1 -5482 5382 -1 -5383 5383 4 -5384 5383 -1 -5483 5383 -1 -5384 5384 4 -5385 5384 -1 -5484 5384 -1 -5385 5385 4 -5386 5385 -1 -5485 5385 -1 -5386 5386 4 -5387 5386 -1 -5486 5386 -1 -5387 5387 4 -5388 5387 -1 -5487 5387 -1 -5388 5388 4 -5389 5388 -1 -5488 5388 -1 -5389 5389 4 -5390 5389 -1 -5489 5389 -1 -5390 5390 4 -5391 5390 -1 -5490 5390 -1 -5391 5391 4 -5392 5391 -1 -5491 5391 -1 -5392 5392 4 -5393 5392 -1 -5492 5392 -1 -5393 5393 4 -5394 5393 -1 -5493 5393 -1 -5394 5394 4 -5395 5394 -1 -5494 5394 -1 -5395 5395 4 -5396 5395 -1 -5495 5395 -1 -5396 5396 4 -5397 5396 -1 -5496 5396 -1 -5397 5397 4 -5398 5397 -1 -5497 5397 -1 -5398 5398 4 -5399 5398 -1 -5498 5398 -1 -5399 5399 4 -5400 5399 -1 -5499 5399 -1 -5400 5400 4 -5500 5400 -1 -5401 5401 4 -5402 5401 -1 -5501 5401 -1 -5402 5402 4 -5403 5402 -1 -5502 5402 -1 -5403 5403 4 -5404 5403 -1 -5503 5403 -1 -5404 5404 4 -5405 5404 -1 -5504 5404 -1 -5405 5405 4 -5406 5405 -1 -5505 5405 -1 -5406 5406 4 -5407 5406 -1 -5506 5406 -1 -5407 5407 4 -5408 5407 -1 -5507 5407 -1 -5408 5408 4 -5409 5408 -1 -5508 5408 -1 -5409 5409 4 -5410 5409 -1 -5509 5409 -1 -5410 5410 4 -5411 5410 -1 -5510 5410 -1 -5411 5411 4 -5412 5411 -1 -5511 5411 -1 -5412 5412 4 -5413 5412 -1 -5512 5412 -1 -5413 5413 4 -5414 5413 -1 -5513 5413 -1 -5414 5414 4 -5415 5414 -1 -5514 5414 -1 -5415 5415 4 -5416 5415 -1 -5515 5415 -1 -5416 5416 4 -5417 5416 -1 -5516 5416 -1 -5417 5417 4 -5418 5417 -1 -5517 5417 -1 -5418 5418 4 -5419 5418 -1 -5518 5418 -1 -5419 5419 4 -5420 5419 -1 -5519 5419 -1 -5420 5420 4 -5421 5420 -1 -5520 5420 -1 -5421 5421 4 -5422 5421 -1 -5521 5421 -1 -5422 5422 4 -5423 5422 -1 -5522 5422 -1 -5423 5423 4 -5424 5423 -1 -5523 5423 -1 -5424 5424 4 -5425 5424 -1 -5524 5424 -1 -5425 5425 4 -5426 5425 -1 -5525 5425 -1 -5426 5426 4 -5427 5426 -1 -5526 5426 -1 -5427 5427 4 -5428 5427 -1 -5527 5427 -1 -5428 5428 4 -5429 5428 -1 -5528 5428 -1 -5429 5429 4 -5430 5429 -1 -5529 5429 -1 -5430 5430 4 -5431 5430 -1 -5530 5430 -1 -5431 5431 4 -5432 5431 -1 -5531 5431 -1 -5432 5432 4 -5433 5432 -1 -5532 5432 -1 -5433 5433 4 -5434 5433 -1 -5533 5433 -1 -5434 5434 4 -5435 5434 -1 -5534 5434 -1 -5435 5435 4 -5436 5435 -1 -5535 5435 -1 -5436 5436 4 -5437 5436 -1 -5536 5436 -1 -5437 5437 4 -5438 5437 -1 -5537 5437 -1 -5438 5438 4 -5439 5438 -1 -5538 5438 -1 -5439 5439 4 -5440 5439 -1 -5539 5439 -1 -5440 5440 4 -5441 5440 -1 -5540 5440 -1 -5441 5441 4 -5442 5441 -1 -5541 5441 -1 -5442 5442 4 -5443 5442 -1 -5542 5442 -1 -5443 5443 4 -5444 5443 -1 -5543 5443 -1 -5444 5444 4 -5445 5444 -1 -5544 5444 -1 -5445 5445 4 -5446 5445 -1 -5545 5445 -1 -5446 5446 4 -5447 5446 -1 -5546 5446 -1 -5447 5447 4 -5448 5447 -1 -5547 5447 -1 -5448 5448 4 -5449 5448 -1 -5548 5448 -1 -5449 5449 4 -5450 5449 -1 -5549 5449 -1 -5450 5450 4 -5451 5450 -1 -5550 5450 -1 -5451 5451 4 -5452 5451 -1 -5551 5451 -1 -5452 5452 4 -5453 5452 -1 -5552 5452 -1 -5453 5453 4 -5454 5453 -1 -5553 5453 -1 -5454 5454 4 -5455 5454 -1 -5554 5454 -1 -5455 5455 4 -5456 5455 -1 -5555 5455 -1 -5456 5456 4 -5457 5456 -1 -5556 5456 -1 -5457 5457 4 -5458 5457 -1 -5557 5457 -1 -5458 5458 4 -5459 5458 -1 -5558 5458 -1 -5459 5459 4 -5460 5459 -1 -5559 5459 -1 -5460 5460 4 -5461 5460 -1 -5560 5460 -1 -5461 5461 4 -5462 5461 -1 -5561 5461 -1 -5462 5462 4 -5463 5462 -1 -5562 5462 -1 -5463 5463 4 -5464 5463 -1 -5563 5463 -1 -5464 5464 4 -5465 5464 -1 -5564 5464 -1 -5465 5465 4 -5466 5465 -1 -5565 5465 -1 -5466 5466 4 -5467 5466 -1 -5566 5466 -1 -5467 5467 4 -5468 5467 -1 -5567 5467 -1 -5468 5468 4 -5469 5468 -1 -5568 5468 -1 -5469 5469 4 -5470 5469 -1 -5569 5469 -1 -5470 5470 4 -5471 5470 -1 -5570 5470 -1 -5471 5471 4 -5472 5471 -1 -5571 5471 -1 -5472 5472 4 -5473 5472 -1 -5572 5472 -1 -5473 5473 4 -5474 5473 -1 -5573 5473 -1 -5474 5474 4 -5475 5474 -1 -5574 5474 -1 -5475 5475 4 -5476 5475 -1 -5575 5475 -1 -5476 5476 4 -5477 5476 -1 -5576 5476 -1 -5477 5477 4 -5478 5477 -1 -5577 5477 -1 -5478 5478 4 -5479 5478 -1 -5578 5478 -1 -5479 5479 4 -5480 5479 -1 -5579 5479 -1 -5480 5480 4 -5481 5480 -1 -5580 5480 -1 -5481 5481 4 -5482 5481 -1 -5581 5481 -1 -5482 5482 4 -5483 5482 -1 -5582 5482 -1 -5483 5483 4 -5484 5483 -1 -5583 5483 -1 -5484 5484 4 -5485 5484 -1 -5584 5484 -1 -5485 5485 4 -5486 5485 -1 -5585 5485 -1 -5486 5486 4 -5487 5486 -1 -5586 5486 -1 -5487 5487 4 -5488 5487 -1 -5587 5487 -1 -5488 5488 4 -5489 5488 -1 -5588 5488 -1 -5489 5489 4 -5490 5489 -1 -5589 5489 -1 -5490 5490 4 -5491 5490 -1 -5590 5490 -1 -5491 5491 4 -5492 5491 -1 -5591 5491 -1 -5492 5492 4 -5493 5492 -1 -5592 5492 -1 -5493 5493 4 -5494 5493 -1 -5593 5493 -1 -5494 5494 4 -5495 5494 -1 -5594 5494 -1 -5495 5495 4 -5496 5495 -1 -5595 5495 -1 -5496 5496 4 -5497 5496 -1 -5596 5496 -1 -5497 5497 4 -5498 5497 -1 -5597 5497 -1 -5498 5498 4 -5499 5498 -1 -5598 5498 -1 -5499 5499 4 -5500 5499 -1 -5599 5499 -1 -5500 5500 4 -5600 5500 -1 -5501 5501 4 -5502 5501 -1 -5601 5501 -1 -5502 5502 4 -5503 5502 -1 -5602 5502 -1 -5503 5503 4 -5504 5503 -1 -5603 5503 -1 -5504 5504 4 -5505 5504 -1 -5604 5504 -1 -5505 5505 4 -5506 5505 -1 -5605 5505 -1 -5506 5506 4 -5507 5506 -1 -5606 5506 -1 -5507 5507 4 -5508 5507 -1 -5607 5507 -1 -5508 5508 4 -5509 5508 -1 -5608 5508 -1 -5509 5509 4 -5510 5509 -1 -5609 5509 -1 -5510 5510 4 -5511 5510 -1 -5610 5510 -1 -5511 5511 4 -5512 5511 -1 -5611 5511 -1 -5512 5512 4 -5513 5512 -1 -5612 5512 -1 -5513 5513 4 -5514 5513 -1 -5613 5513 -1 -5514 5514 4 -5515 5514 -1 -5614 5514 -1 -5515 5515 4 -5516 5515 -1 -5615 5515 -1 -5516 5516 4 -5517 5516 -1 -5616 5516 -1 -5517 5517 4 -5518 5517 -1 -5617 5517 -1 -5518 5518 4 -5519 5518 -1 -5618 5518 -1 -5519 5519 4 -5520 5519 -1 -5619 5519 -1 -5520 5520 4 -5521 5520 -1 -5620 5520 -1 -5521 5521 4 -5522 5521 -1 -5621 5521 -1 -5522 5522 4 -5523 5522 -1 -5622 5522 -1 -5523 5523 4 -5524 5523 -1 -5623 5523 -1 -5524 5524 4 -5525 5524 -1 -5624 5524 -1 -5525 5525 4 -5526 5525 -1 -5625 5525 -1 -5526 5526 4 -5527 5526 -1 -5626 5526 -1 -5527 5527 4 -5528 5527 -1 -5627 5527 -1 -5528 5528 4 -5529 5528 -1 -5628 5528 -1 -5529 5529 4 -5530 5529 -1 -5629 5529 -1 -5530 5530 4 -5531 5530 -1 -5630 5530 -1 -5531 5531 4 -5532 5531 -1 -5631 5531 -1 -5532 5532 4 -5533 5532 -1 -5632 5532 -1 -5533 5533 4 -5534 5533 -1 -5633 5533 -1 -5534 5534 4 -5535 5534 -1 -5634 5534 -1 -5535 5535 4 -5536 5535 -1 -5635 5535 -1 -5536 5536 4 -5537 5536 -1 -5636 5536 -1 -5537 5537 4 -5538 5537 -1 -5637 5537 -1 -5538 5538 4 -5539 5538 -1 -5638 5538 -1 -5539 5539 4 -5540 5539 -1 -5639 5539 -1 -5540 5540 4 -5541 5540 -1 -5640 5540 -1 -5541 5541 4 -5542 5541 -1 -5641 5541 -1 -5542 5542 4 -5543 5542 -1 -5642 5542 -1 -5543 5543 4 -5544 5543 -1 -5643 5543 -1 -5544 5544 4 -5545 5544 -1 -5644 5544 -1 -5545 5545 4 -5546 5545 -1 -5645 5545 -1 -5546 5546 4 -5547 5546 -1 -5646 5546 -1 -5547 5547 4 -5548 5547 -1 -5647 5547 -1 -5548 5548 4 -5549 5548 -1 -5648 5548 -1 -5549 5549 4 -5550 5549 -1 -5649 5549 -1 -5550 5550 4 -5551 5550 -1 -5650 5550 -1 -5551 5551 4 -5552 5551 -1 -5651 5551 -1 -5552 5552 4 -5553 5552 -1 -5652 5552 -1 -5553 5553 4 -5554 5553 -1 -5653 5553 -1 -5554 5554 4 -5555 5554 -1 -5654 5554 -1 -5555 5555 4 -5556 5555 -1 -5655 5555 -1 -5556 5556 4 -5557 5556 -1 -5656 5556 -1 -5557 5557 4 -5558 5557 -1 -5657 5557 -1 -5558 5558 4 -5559 5558 -1 -5658 5558 -1 -5559 5559 4 -5560 5559 -1 -5659 5559 -1 -5560 5560 4 -5561 5560 -1 -5660 5560 -1 -5561 5561 4 -5562 5561 -1 -5661 5561 -1 -5562 5562 4 -5563 5562 -1 -5662 5562 -1 -5563 5563 4 -5564 5563 -1 -5663 5563 -1 -5564 5564 4 -5565 5564 -1 -5664 5564 -1 -5565 5565 4 -5566 5565 -1 -5665 5565 -1 -5566 5566 4 -5567 5566 -1 -5666 5566 -1 -5567 5567 4 -5568 5567 -1 -5667 5567 -1 -5568 5568 4 -5569 5568 -1 -5668 5568 -1 -5569 5569 4 -5570 5569 -1 -5669 5569 -1 -5570 5570 4 -5571 5570 -1 -5670 5570 -1 -5571 5571 4 -5572 5571 -1 -5671 5571 -1 -5572 5572 4 -5573 5572 -1 -5672 5572 -1 -5573 5573 4 -5574 5573 -1 -5673 5573 -1 -5574 5574 4 -5575 5574 -1 -5674 5574 -1 -5575 5575 4 -5576 5575 -1 -5675 5575 -1 -5576 5576 4 -5577 5576 -1 -5676 5576 -1 -5577 5577 4 -5578 5577 -1 -5677 5577 -1 -5578 5578 4 -5579 5578 -1 -5678 5578 -1 -5579 5579 4 -5580 5579 -1 -5679 5579 -1 -5580 5580 4 -5581 5580 -1 -5680 5580 -1 -5581 5581 4 -5582 5581 -1 -5681 5581 -1 -5582 5582 4 -5583 5582 -1 -5682 5582 -1 -5583 5583 4 -5584 5583 -1 -5683 5583 -1 -5584 5584 4 -5585 5584 -1 -5684 5584 -1 -5585 5585 4 -5586 5585 -1 -5685 5585 -1 -5586 5586 4 -5587 5586 -1 -5686 5586 -1 -5587 5587 4 -5588 5587 -1 -5687 5587 -1 -5588 5588 4 -5589 5588 -1 -5688 5588 -1 -5589 5589 4 -5590 5589 -1 -5689 5589 -1 -5590 5590 4 -5591 5590 -1 -5690 5590 -1 -5591 5591 4 -5592 5591 -1 -5691 5591 -1 -5592 5592 4 -5593 5592 -1 -5692 5592 -1 -5593 5593 4 -5594 5593 -1 -5693 5593 -1 -5594 5594 4 -5595 5594 -1 -5694 5594 -1 -5595 5595 4 -5596 5595 -1 -5695 5595 -1 -5596 5596 4 -5597 5596 -1 -5696 5596 -1 -5597 5597 4 -5598 5597 -1 -5697 5597 -1 -5598 5598 4 -5599 5598 -1 -5698 5598 -1 -5599 5599 4 -5600 5599 -1 -5699 5599 -1 -5600 5600 4 -5700 5600 -1 -5601 5601 4 -5602 5601 -1 -5701 5601 -1 -5602 5602 4 -5603 5602 -1 -5702 5602 -1 -5603 5603 4 -5604 5603 -1 -5703 5603 -1 -5604 5604 4 -5605 5604 -1 -5704 5604 -1 -5605 5605 4 -5606 5605 -1 -5705 5605 -1 -5606 5606 4 -5607 5606 -1 -5706 5606 -1 -5607 5607 4 -5608 5607 -1 -5707 5607 -1 -5608 5608 4 -5609 5608 -1 -5708 5608 -1 -5609 5609 4 -5610 5609 -1 -5709 5609 -1 -5610 5610 4 -5611 5610 -1 -5710 5610 -1 -5611 5611 4 -5612 5611 -1 -5711 5611 -1 -5612 5612 4 -5613 5612 -1 -5712 5612 -1 -5613 5613 4 -5614 5613 -1 -5713 5613 -1 -5614 5614 4 -5615 5614 -1 -5714 5614 -1 -5615 5615 4 -5616 5615 -1 -5715 5615 -1 -5616 5616 4 -5617 5616 -1 -5716 5616 -1 -5617 5617 4 -5618 5617 -1 -5717 5617 -1 -5618 5618 4 -5619 5618 -1 -5718 5618 -1 -5619 5619 4 -5620 5619 -1 -5719 5619 -1 -5620 5620 4 -5621 5620 -1 -5720 5620 -1 -5621 5621 4 -5622 5621 -1 -5721 5621 -1 -5622 5622 4 -5623 5622 -1 -5722 5622 -1 -5623 5623 4 -5624 5623 -1 -5723 5623 -1 -5624 5624 4 -5625 5624 -1 -5724 5624 -1 -5625 5625 4 -5626 5625 -1 -5725 5625 -1 -5626 5626 4 -5627 5626 -1 -5726 5626 -1 -5627 5627 4 -5628 5627 -1 -5727 5627 -1 -5628 5628 4 -5629 5628 -1 -5728 5628 -1 -5629 5629 4 -5630 5629 -1 -5729 5629 -1 -5630 5630 4 -5631 5630 -1 -5730 5630 -1 -5631 5631 4 -5632 5631 -1 -5731 5631 -1 -5632 5632 4 -5633 5632 -1 -5732 5632 -1 -5633 5633 4 -5634 5633 -1 -5733 5633 -1 -5634 5634 4 -5635 5634 -1 -5734 5634 -1 -5635 5635 4 -5636 5635 -1 -5735 5635 -1 -5636 5636 4 -5637 5636 -1 -5736 5636 -1 -5637 5637 4 -5638 5637 -1 -5737 5637 -1 -5638 5638 4 -5639 5638 -1 -5738 5638 -1 -5639 5639 4 -5640 5639 -1 -5739 5639 -1 -5640 5640 4 -5641 5640 -1 -5740 5640 -1 -5641 5641 4 -5642 5641 -1 -5741 5641 -1 -5642 5642 4 -5643 5642 -1 -5742 5642 -1 -5643 5643 4 -5644 5643 -1 -5743 5643 -1 -5644 5644 4 -5645 5644 -1 -5744 5644 -1 -5645 5645 4 -5646 5645 -1 -5745 5645 -1 -5646 5646 4 -5647 5646 -1 -5746 5646 -1 -5647 5647 4 -5648 5647 -1 -5747 5647 -1 -5648 5648 4 -5649 5648 -1 -5748 5648 -1 -5649 5649 4 -5650 5649 -1 -5749 5649 -1 -5650 5650 4 -5651 5650 -1 -5750 5650 -1 -5651 5651 4 -5652 5651 -1 -5751 5651 -1 -5652 5652 4 -5653 5652 -1 -5752 5652 -1 -5653 5653 4 -5654 5653 -1 -5753 5653 -1 -5654 5654 4 -5655 5654 -1 -5754 5654 -1 -5655 5655 4 -5656 5655 -1 -5755 5655 -1 -5656 5656 4 -5657 5656 -1 -5756 5656 -1 -5657 5657 4 -5658 5657 -1 -5757 5657 -1 -5658 5658 4 -5659 5658 -1 -5758 5658 -1 -5659 5659 4 -5660 5659 -1 -5759 5659 -1 -5660 5660 4 -5661 5660 -1 -5760 5660 -1 -5661 5661 4 -5662 5661 -1 -5761 5661 -1 -5662 5662 4 -5663 5662 -1 -5762 5662 -1 -5663 5663 4 -5664 5663 -1 -5763 5663 -1 -5664 5664 4 -5665 5664 -1 -5764 5664 -1 -5665 5665 4 -5666 5665 -1 -5765 5665 -1 -5666 5666 4 -5667 5666 -1 -5766 5666 -1 -5667 5667 4 -5668 5667 -1 -5767 5667 -1 -5668 5668 4 -5669 5668 -1 -5768 5668 -1 -5669 5669 4 -5670 5669 -1 -5769 5669 -1 -5670 5670 4 -5671 5670 -1 -5770 5670 -1 -5671 5671 4 -5672 5671 -1 -5771 5671 -1 -5672 5672 4 -5673 5672 -1 -5772 5672 -1 -5673 5673 4 -5674 5673 -1 -5773 5673 -1 -5674 5674 4 -5675 5674 -1 -5774 5674 -1 -5675 5675 4 -5676 5675 -1 -5775 5675 -1 -5676 5676 4 -5677 5676 -1 -5776 5676 -1 -5677 5677 4 -5678 5677 -1 -5777 5677 -1 -5678 5678 4 -5679 5678 -1 -5778 5678 -1 -5679 5679 4 -5680 5679 -1 -5779 5679 -1 -5680 5680 4 -5681 5680 -1 -5780 5680 -1 -5681 5681 4 -5682 5681 -1 -5781 5681 -1 -5682 5682 4 -5683 5682 -1 -5782 5682 -1 -5683 5683 4 -5684 5683 -1 -5783 5683 -1 -5684 5684 4 -5685 5684 -1 -5784 5684 -1 -5685 5685 4 -5686 5685 -1 -5785 5685 -1 -5686 5686 4 -5687 5686 -1 -5786 5686 -1 -5687 5687 4 -5688 5687 -1 -5787 5687 -1 -5688 5688 4 -5689 5688 -1 -5788 5688 -1 -5689 5689 4 -5690 5689 -1 -5789 5689 -1 -5690 5690 4 -5691 5690 -1 -5790 5690 -1 -5691 5691 4 -5692 5691 -1 -5791 5691 -1 -5692 5692 4 -5693 5692 -1 -5792 5692 -1 -5693 5693 4 -5694 5693 -1 -5793 5693 -1 -5694 5694 4 -5695 5694 -1 -5794 5694 -1 -5695 5695 4 -5696 5695 -1 -5795 5695 -1 -5696 5696 4 -5697 5696 -1 -5796 5696 -1 -5697 5697 4 -5698 5697 -1 -5797 5697 -1 -5698 5698 4 -5699 5698 -1 -5798 5698 -1 -5699 5699 4 -5700 5699 -1 -5799 5699 -1 -5700 5700 4 -5800 5700 -1 -5701 5701 4 -5702 5701 -1 -5801 5701 -1 -5702 5702 4 -5703 5702 -1 -5802 5702 -1 -5703 5703 4 -5704 5703 -1 -5803 5703 -1 -5704 5704 4 -5705 5704 -1 -5804 5704 -1 -5705 5705 4 -5706 5705 -1 -5805 5705 -1 -5706 5706 4 -5707 5706 -1 -5806 5706 -1 -5707 5707 4 -5708 5707 -1 -5807 5707 -1 -5708 5708 4 -5709 5708 -1 -5808 5708 -1 -5709 5709 4 -5710 5709 -1 -5809 5709 -1 -5710 5710 4 -5711 5710 -1 -5810 5710 -1 -5711 5711 4 -5712 5711 -1 -5811 5711 -1 -5712 5712 4 -5713 5712 -1 -5812 5712 -1 -5713 5713 4 -5714 5713 -1 -5813 5713 -1 -5714 5714 4 -5715 5714 -1 -5814 5714 -1 -5715 5715 4 -5716 5715 -1 -5815 5715 -1 -5716 5716 4 -5717 5716 -1 -5816 5716 -1 -5717 5717 4 -5718 5717 -1 -5817 5717 -1 -5718 5718 4 -5719 5718 -1 -5818 5718 -1 -5719 5719 4 -5720 5719 -1 -5819 5719 -1 -5720 5720 4 -5721 5720 -1 -5820 5720 -1 -5721 5721 4 -5722 5721 -1 -5821 5721 -1 -5722 5722 4 -5723 5722 -1 -5822 5722 -1 -5723 5723 4 -5724 5723 -1 -5823 5723 -1 -5724 5724 4 -5725 5724 -1 -5824 5724 -1 -5725 5725 4 -5726 5725 -1 -5825 5725 -1 -5726 5726 4 -5727 5726 -1 -5826 5726 -1 -5727 5727 4 -5728 5727 -1 -5827 5727 -1 -5728 5728 4 -5729 5728 -1 -5828 5728 -1 -5729 5729 4 -5730 5729 -1 -5829 5729 -1 -5730 5730 4 -5731 5730 -1 -5830 5730 -1 -5731 5731 4 -5732 5731 -1 -5831 5731 -1 -5732 5732 4 -5733 5732 -1 -5832 5732 -1 -5733 5733 4 -5734 5733 -1 -5833 5733 -1 -5734 5734 4 -5735 5734 -1 -5834 5734 -1 -5735 5735 4 -5736 5735 -1 -5835 5735 -1 -5736 5736 4 -5737 5736 -1 -5836 5736 -1 -5737 5737 4 -5738 5737 -1 -5837 5737 -1 -5738 5738 4 -5739 5738 -1 -5838 5738 -1 -5739 5739 4 -5740 5739 -1 -5839 5739 -1 -5740 5740 4 -5741 5740 -1 -5840 5740 -1 -5741 5741 4 -5742 5741 -1 -5841 5741 -1 -5742 5742 4 -5743 5742 -1 -5842 5742 -1 -5743 5743 4 -5744 5743 -1 -5843 5743 -1 -5744 5744 4 -5745 5744 -1 -5844 5744 -1 -5745 5745 4 -5746 5745 -1 -5845 5745 -1 -5746 5746 4 -5747 5746 -1 -5846 5746 -1 -5747 5747 4 -5748 5747 -1 -5847 5747 -1 -5748 5748 4 -5749 5748 -1 -5848 5748 -1 -5749 5749 4 -5750 5749 -1 -5849 5749 -1 -5750 5750 4 -5751 5750 -1 -5850 5750 -1 -5751 5751 4 -5752 5751 -1 -5851 5751 -1 -5752 5752 4 -5753 5752 -1 -5852 5752 -1 -5753 5753 4 -5754 5753 -1 -5853 5753 -1 -5754 5754 4 -5755 5754 -1 -5854 5754 -1 -5755 5755 4 -5756 5755 -1 -5855 5755 -1 -5756 5756 4 -5757 5756 -1 -5856 5756 -1 -5757 5757 4 -5758 5757 -1 -5857 5757 -1 -5758 5758 4 -5759 5758 -1 -5858 5758 -1 -5759 5759 4 -5760 5759 -1 -5859 5759 -1 -5760 5760 4 -5761 5760 -1 -5860 5760 -1 -5761 5761 4 -5762 5761 -1 -5861 5761 -1 -5762 5762 4 -5763 5762 -1 -5862 5762 -1 -5763 5763 4 -5764 5763 -1 -5863 5763 -1 -5764 5764 4 -5765 5764 -1 -5864 5764 -1 -5765 5765 4 -5766 5765 -1 -5865 5765 -1 -5766 5766 4 -5767 5766 -1 -5866 5766 -1 -5767 5767 4 -5768 5767 -1 -5867 5767 -1 -5768 5768 4 -5769 5768 -1 -5868 5768 -1 -5769 5769 4 -5770 5769 -1 -5869 5769 -1 -5770 5770 4 -5771 5770 -1 -5870 5770 -1 -5771 5771 4 -5772 5771 -1 -5871 5771 -1 -5772 5772 4 -5773 5772 -1 -5872 5772 -1 -5773 5773 4 -5774 5773 -1 -5873 5773 -1 -5774 5774 4 -5775 5774 -1 -5874 5774 -1 -5775 5775 4 -5776 5775 -1 -5875 5775 -1 -5776 5776 4 -5777 5776 -1 -5876 5776 -1 -5777 5777 4 -5778 5777 -1 -5877 5777 -1 -5778 5778 4 -5779 5778 -1 -5878 5778 -1 -5779 5779 4 -5780 5779 -1 -5879 5779 -1 -5780 5780 4 -5781 5780 -1 -5880 5780 -1 -5781 5781 4 -5782 5781 -1 -5881 5781 -1 -5782 5782 4 -5783 5782 -1 -5882 5782 -1 -5783 5783 4 -5784 5783 -1 -5883 5783 -1 -5784 5784 4 -5785 5784 -1 -5884 5784 -1 -5785 5785 4 -5786 5785 -1 -5885 5785 -1 -5786 5786 4 -5787 5786 -1 -5886 5786 -1 -5787 5787 4 -5788 5787 -1 -5887 5787 -1 -5788 5788 4 -5789 5788 -1 -5888 5788 -1 -5789 5789 4 -5790 5789 -1 -5889 5789 -1 -5790 5790 4 -5791 5790 -1 -5890 5790 -1 -5791 5791 4 -5792 5791 -1 -5891 5791 -1 -5792 5792 4 -5793 5792 -1 -5892 5792 -1 -5793 5793 4 -5794 5793 -1 -5893 5793 -1 -5794 5794 4 -5795 5794 -1 -5894 5794 -1 -5795 5795 4 -5796 5795 -1 -5895 5795 -1 -5796 5796 4 -5797 5796 -1 -5896 5796 -1 -5797 5797 4 -5798 5797 -1 -5897 5797 -1 -5798 5798 4 -5799 5798 -1 -5898 5798 -1 -5799 5799 4 -5800 5799 -1 -5899 5799 -1 -5800 5800 4 -5900 5800 -1 -5801 5801 4 -5802 5801 -1 -5901 5801 -1 -5802 5802 4 -5803 5802 -1 -5902 5802 -1 -5803 5803 4 -5804 5803 -1 -5903 5803 -1 -5804 5804 4 -5805 5804 -1 -5904 5804 -1 -5805 5805 4 -5806 5805 -1 -5905 5805 -1 -5806 5806 4 -5807 5806 -1 -5906 5806 -1 -5807 5807 4 -5808 5807 -1 -5907 5807 -1 -5808 5808 4 -5809 5808 -1 -5908 5808 -1 -5809 5809 4 -5810 5809 -1 -5909 5809 -1 -5810 5810 4 -5811 5810 -1 -5910 5810 -1 -5811 5811 4 -5812 5811 -1 -5911 5811 -1 -5812 5812 4 -5813 5812 -1 -5912 5812 -1 -5813 5813 4 -5814 5813 -1 -5913 5813 -1 -5814 5814 4 -5815 5814 -1 -5914 5814 -1 -5815 5815 4 -5816 5815 -1 -5915 5815 -1 -5816 5816 4 -5817 5816 -1 -5916 5816 -1 -5817 5817 4 -5818 5817 -1 -5917 5817 -1 -5818 5818 4 -5819 5818 -1 -5918 5818 -1 -5819 5819 4 -5820 5819 -1 -5919 5819 -1 -5820 5820 4 -5821 5820 -1 -5920 5820 -1 -5821 5821 4 -5822 5821 -1 -5921 5821 -1 -5822 5822 4 -5823 5822 -1 -5922 5822 -1 -5823 5823 4 -5824 5823 -1 -5923 5823 -1 -5824 5824 4 -5825 5824 -1 -5924 5824 -1 -5825 5825 4 -5826 5825 -1 -5925 5825 -1 -5826 5826 4 -5827 5826 -1 -5926 5826 -1 -5827 5827 4 -5828 5827 -1 -5927 5827 -1 -5828 5828 4 -5829 5828 -1 -5928 5828 -1 -5829 5829 4 -5830 5829 -1 -5929 5829 -1 -5830 5830 4 -5831 5830 -1 -5930 5830 -1 -5831 5831 4 -5832 5831 -1 -5931 5831 -1 -5832 5832 4 -5833 5832 -1 -5932 5832 -1 -5833 5833 4 -5834 5833 -1 -5933 5833 -1 -5834 5834 4 -5835 5834 -1 -5934 5834 -1 -5835 5835 4 -5836 5835 -1 -5935 5835 -1 -5836 5836 4 -5837 5836 -1 -5936 5836 -1 -5837 5837 4 -5838 5837 -1 -5937 5837 -1 -5838 5838 4 -5839 5838 -1 -5938 5838 -1 -5839 5839 4 -5840 5839 -1 -5939 5839 -1 -5840 5840 4 -5841 5840 -1 -5940 5840 -1 -5841 5841 4 -5842 5841 -1 -5941 5841 -1 -5842 5842 4 -5843 5842 -1 -5942 5842 -1 -5843 5843 4 -5844 5843 -1 -5943 5843 -1 -5844 5844 4 -5845 5844 -1 -5944 5844 -1 -5845 5845 4 -5846 5845 -1 -5945 5845 -1 -5846 5846 4 -5847 5846 -1 -5946 5846 -1 -5847 5847 4 -5848 5847 -1 -5947 5847 -1 -5848 5848 4 -5849 5848 -1 -5948 5848 -1 -5849 5849 4 -5850 5849 -1 -5949 5849 -1 -5850 5850 4 -5851 5850 -1 -5950 5850 -1 -5851 5851 4 -5852 5851 -1 -5951 5851 -1 -5852 5852 4 -5853 5852 -1 -5952 5852 -1 -5853 5853 4 -5854 5853 -1 -5953 5853 -1 -5854 5854 4 -5855 5854 -1 -5954 5854 -1 -5855 5855 4 -5856 5855 -1 -5955 5855 -1 -5856 5856 4 -5857 5856 -1 -5956 5856 -1 -5857 5857 4 -5858 5857 -1 -5957 5857 -1 -5858 5858 4 -5859 5858 -1 -5958 5858 -1 -5859 5859 4 -5860 5859 -1 -5959 5859 -1 -5860 5860 4 -5861 5860 -1 -5960 5860 -1 -5861 5861 4 -5862 5861 -1 -5961 5861 -1 -5862 5862 4 -5863 5862 -1 -5962 5862 -1 -5863 5863 4 -5864 5863 -1 -5963 5863 -1 -5864 5864 4 -5865 5864 -1 -5964 5864 -1 -5865 5865 4 -5866 5865 -1 -5965 5865 -1 -5866 5866 4 -5867 5866 -1 -5966 5866 -1 -5867 5867 4 -5868 5867 -1 -5967 5867 -1 -5868 5868 4 -5869 5868 -1 -5968 5868 -1 -5869 5869 4 -5870 5869 -1 -5969 5869 -1 -5870 5870 4 -5871 5870 -1 -5970 5870 -1 -5871 5871 4 -5872 5871 -1 -5971 5871 -1 -5872 5872 4 -5873 5872 -1 -5972 5872 -1 -5873 5873 4 -5874 5873 -1 -5973 5873 -1 -5874 5874 4 -5875 5874 -1 -5974 5874 -1 -5875 5875 4 -5876 5875 -1 -5975 5875 -1 -5876 5876 4 -5877 5876 -1 -5976 5876 -1 -5877 5877 4 -5878 5877 -1 -5977 5877 -1 -5878 5878 4 -5879 5878 -1 -5978 5878 -1 -5879 5879 4 -5880 5879 -1 -5979 5879 -1 -5880 5880 4 -5881 5880 -1 -5980 5880 -1 -5881 5881 4 -5882 5881 -1 -5981 5881 -1 -5882 5882 4 -5883 5882 -1 -5982 5882 -1 -5883 5883 4 -5884 5883 -1 -5983 5883 -1 -5884 5884 4 -5885 5884 -1 -5984 5884 -1 -5885 5885 4 -5886 5885 -1 -5985 5885 -1 -5886 5886 4 -5887 5886 -1 -5986 5886 -1 -5887 5887 4 -5888 5887 -1 -5987 5887 -1 -5888 5888 4 -5889 5888 -1 -5988 5888 -1 -5889 5889 4 -5890 5889 -1 -5989 5889 -1 -5890 5890 4 -5891 5890 -1 -5990 5890 -1 -5891 5891 4 -5892 5891 -1 -5991 5891 -1 -5892 5892 4 -5893 5892 -1 -5992 5892 -1 -5893 5893 4 -5894 5893 -1 -5993 5893 -1 -5894 5894 4 -5895 5894 -1 -5994 5894 -1 -5895 5895 4 -5896 5895 -1 -5995 5895 -1 -5896 5896 4 -5897 5896 -1 -5996 5896 -1 -5897 5897 4 -5898 5897 -1 -5997 5897 -1 -5898 5898 4 -5899 5898 -1 -5998 5898 -1 -5899 5899 4 -5900 5899 -1 -5999 5899 -1 -5900 5900 4 -6000 5900 -1 -5901 5901 4 -5902 5901 -1 -6001 5901 -1 -5902 5902 4 -5903 5902 -1 -6002 5902 -1 -5903 5903 4 -5904 5903 -1 -6003 5903 -1 -5904 5904 4 -5905 5904 -1 -6004 5904 -1 -5905 5905 4 -5906 5905 -1 -6005 5905 -1 -5906 5906 4 -5907 5906 -1 -6006 5906 -1 -5907 5907 4 -5908 5907 -1 -6007 5907 -1 -5908 5908 4 -5909 5908 -1 -6008 5908 -1 -5909 5909 4 -5910 5909 -1 -6009 5909 -1 -5910 5910 4 -5911 5910 -1 -6010 5910 -1 -5911 5911 4 -5912 5911 -1 -6011 5911 -1 -5912 5912 4 -5913 5912 -1 -6012 5912 -1 -5913 5913 4 -5914 5913 -1 -6013 5913 -1 -5914 5914 4 -5915 5914 -1 -6014 5914 -1 -5915 5915 4 -5916 5915 -1 -6015 5915 -1 -5916 5916 4 -5917 5916 -1 -6016 5916 -1 -5917 5917 4 -5918 5917 -1 -6017 5917 -1 -5918 5918 4 -5919 5918 -1 -6018 5918 -1 -5919 5919 4 -5920 5919 -1 -6019 5919 -1 -5920 5920 4 -5921 5920 -1 -6020 5920 -1 -5921 5921 4 -5922 5921 -1 -6021 5921 -1 -5922 5922 4 -5923 5922 -1 -6022 5922 -1 -5923 5923 4 -5924 5923 -1 -6023 5923 -1 -5924 5924 4 -5925 5924 -1 -6024 5924 -1 -5925 5925 4 -5926 5925 -1 -6025 5925 -1 -5926 5926 4 -5927 5926 -1 -6026 5926 -1 -5927 5927 4 -5928 5927 -1 -6027 5927 -1 -5928 5928 4 -5929 5928 -1 -6028 5928 -1 -5929 5929 4 -5930 5929 -1 -6029 5929 -1 -5930 5930 4 -5931 5930 -1 -6030 5930 -1 -5931 5931 4 -5932 5931 -1 -6031 5931 -1 -5932 5932 4 -5933 5932 -1 -6032 5932 -1 -5933 5933 4 -5934 5933 -1 -6033 5933 -1 -5934 5934 4 -5935 5934 -1 -6034 5934 -1 -5935 5935 4 -5936 5935 -1 -6035 5935 -1 -5936 5936 4 -5937 5936 -1 -6036 5936 -1 -5937 5937 4 -5938 5937 -1 -6037 5937 -1 -5938 5938 4 -5939 5938 -1 -6038 5938 -1 -5939 5939 4 -5940 5939 -1 -6039 5939 -1 -5940 5940 4 -5941 5940 -1 -6040 5940 -1 -5941 5941 4 -5942 5941 -1 -6041 5941 -1 -5942 5942 4 -5943 5942 -1 -6042 5942 -1 -5943 5943 4 -5944 5943 -1 -6043 5943 -1 -5944 5944 4 -5945 5944 -1 -6044 5944 -1 -5945 5945 4 -5946 5945 -1 -6045 5945 -1 -5946 5946 4 -5947 5946 -1 -6046 5946 -1 -5947 5947 4 -5948 5947 -1 -6047 5947 -1 -5948 5948 4 -5949 5948 -1 -6048 5948 -1 -5949 5949 4 -5950 5949 -1 -6049 5949 -1 -5950 5950 4 -5951 5950 -1 -6050 5950 -1 -5951 5951 4 -5952 5951 -1 -6051 5951 -1 -5952 5952 4 -5953 5952 -1 -6052 5952 -1 -5953 5953 4 -5954 5953 -1 -6053 5953 -1 -5954 5954 4 -5955 5954 -1 -6054 5954 -1 -5955 5955 4 -5956 5955 -1 -6055 5955 -1 -5956 5956 4 -5957 5956 -1 -6056 5956 -1 -5957 5957 4 -5958 5957 -1 -6057 5957 -1 -5958 5958 4 -5959 5958 -1 -6058 5958 -1 -5959 5959 4 -5960 5959 -1 -6059 5959 -1 -5960 5960 4 -5961 5960 -1 -6060 5960 -1 -5961 5961 4 -5962 5961 -1 -6061 5961 -1 -5962 5962 4 -5963 5962 -1 -6062 5962 -1 -5963 5963 4 -5964 5963 -1 -6063 5963 -1 -5964 5964 4 -5965 5964 -1 -6064 5964 -1 -5965 5965 4 -5966 5965 -1 -6065 5965 -1 -5966 5966 4 -5967 5966 -1 -6066 5966 -1 -5967 5967 4 -5968 5967 -1 -6067 5967 -1 -5968 5968 4 -5969 5968 -1 -6068 5968 -1 -5969 5969 4 -5970 5969 -1 -6069 5969 -1 -5970 5970 4 -5971 5970 -1 -6070 5970 -1 -5971 5971 4 -5972 5971 -1 -6071 5971 -1 -5972 5972 4 -5973 5972 -1 -6072 5972 -1 -5973 5973 4 -5974 5973 -1 -6073 5973 -1 -5974 5974 4 -5975 5974 -1 -6074 5974 -1 -5975 5975 4 -5976 5975 -1 -6075 5975 -1 -5976 5976 4 -5977 5976 -1 -6076 5976 -1 -5977 5977 4 -5978 5977 -1 -6077 5977 -1 -5978 5978 4 -5979 5978 -1 -6078 5978 -1 -5979 5979 4 -5980 5979 -1 -6079 5979 -1 -5980 5980 4 -5981 5980 -1 -6080 5980 -1 -5981 5981 4 -5982 5981 -1 -6081 5981 -1 -5982 5982 4 -5983 5982 -1 -6082 5982 -1 -5983 5983 4 -5984 5983 -1 -6083 5983 -1 -5984 5984 4 -5985 5984 -1 -6084 5984 -1 -5985 5985 4 -5986 5985 -1 -6085 5985 -1 -5986 5986 4 -5987 5986 -1 -6086 5986 -1 -5987 5987 4 -5988 5987 -1 -6087 5987 -1 -5988 5988 4 -5989 5988 -1 -6088 5988 -1 -5989 5989 4 -5990 5989 -1 -6089 5989 -1 -5990 5990 4 -5991 5990 -1 -6090 5990 -1 -5991 5991 4 -5992 5991 -1 -6091 5991 -1 -5992 5992 4 -5993 5992 -1 -6092 5992 -1 -5993 5993 4 -5994 5993 -1 -6093 5993 -1 -5994 5994 4 -5995 5994 -1 -6094 5994 -1 -5995 5995 4 -5996 5995 -1 -6095 5995 -1 -5996 5996 4 -5997 5996 -1 -6096 5996 -1 -5997 5997 4 -5998 5997 -1 -6097 5997 -1 -5998 5998 4 -5999 5998 -1 -6098 5998 -1 -5999 5999 4 -6000 5999 -1 -6099 5999 -1 -6000 6000 4 -6100 6000 -1 -6001 6001 4 -6002 6001 -1 -6101 6001 -1 -6002 6002 4 -6003 6002 -1 -6102 6002 -1 -6003 6003 4 -6004 6003 -1 -6103 6003 -1 -6004 6004 4 -6005 6004 -1 -6104 6004 -1 -6005 6005 4 -6006 6005 -1 -6105 6005 -1 -6006 6006 4 -6007 6006 -1 -6106 6006 -1 -6007 6007 4 -6008 6007 -1 -6107 6007 -1 -6008 6008 4 -6009 6008 -1 -6108 6008 -1 -6009 6009 4 -6010 6009 -1 -6109 6009 -1 -6010 6010 4 -6011 6010 -1 -6110 6010 -1 -6011 6011 4 -6012 6011 -1 -6111 6011 -1 -6012 6012 4 -6013 6012 -1 -6112 6012 -1 -6013 6013 4 -6014 6013 -1 -6113 6013 -1 -6014 6014 4 -6015 6014 -1 -6114 6014 -1 -6015 6015 4 -6016 6015 -1 -6115 6015 -1 -6016 6016 4 -6017 6016 -1 -6116 6016 -1 -6017 6017 4 -6018 6017 -1 -6117 6017 -1 -6018 6018 4 -6019 6018 -1 -6118 6018 -1 -6019 6019 4 -6020 6019 -1 -6119 6019 -1 -6020 6020 4 -6021 6020 -1 -6120 6020 -1 -6021 6021 4 -6022 6021 -1 -6121 6021 -1 -6022 6022 4 -6023 6022 -1 -6122 6022 -1 -6023 6023 4 -6024 6023 -1 -6123 6023 -1 -6024 6024 4 -6025 6024 -1 -6124 6024 -1 -6025 6025 4 -6026 6025 -1 -6125 6025 -1 -6026 6026 4 -6027 6026 -1 -6126 6026 -1 -6027 6027 4 -6028 6027 -1 -6127 6027 -1 -6028 6028 4 -6029 6028 -1 -6128 6028 -1 -6029 6029 4 -6030 6029 -1 -6129 6029 -1 -6030 6030 4 -6031 6030 -1 -6130 6030 -1 -6031 6031 4 -6032 6031 -1 -6131 6031 -1 -6032 6032 4 -6033 6032 -1 -6132 6032 -1 -6033 6033 4 -6034 6033 -1 -6133 6033 -1 -6034 6034 4 -6035 6034 -1 -6134 6034 -1 -6035 6035 4 -6036 6035 -1 -6135 6035 -1 -6036 6036 4 -6037 6036 -1 -6136 6036 -1 -6037 6037 4 -6038 6037 -1 -6137 6037 -1 -6038 6038 4 -6039 6038 -1 -6138 6038 -1 -6039 6039 4 -6040 6039 -1 -6139 6039 -1 -6040 6040 4 -6041 6040 -1 -6140 6040 -1 -6041 6041 4 -6042 6041 -1 -6141 6041 -1 -6042 6042 4 -6043 6042 -1 -6142 6042 -1 -6043 6043 4 -6044 6043 -1 -6143 6043 -1 -6044 6044 4 -6045 6044 -1 -6144 6044 -1 -6045 6045 4 -6046 6045 -1 -6145 6045 -1 -6046 6046 4 -6047 6046 -1 -6146 6046 -1 -6047 6047 4 -6048 6047 -1 -6147 6047 -1 -6048 6048 4 -6049 6048 -1 -6148 6048 -1 -6049 6049 4 -6050 6049 -1 -6149 6049 -1 -6050 6050 4 -6051 6050 -1 -6150 6050 -1 -6051 6051 4 -6052 6051 -1 -6151 6051 -1 -6052 6052 4 -6053 6052 -1 -6152 6052 -1 -6053 6053 4 -6054 6053 -1 -6153 6053 -1 -6054 6054 4 -6055 6054 -1 -6154 6054 -1 -6055 6055 4 -6056 6055 -1 -6155 6055 -1 -6056 6056 4 -6057 6056 -1 -6156 6056 -1 -6057 6057 4 -6058 6057 -1 -6157 6057 -1 -6058 6058 4 -6059 6058 -1 -6158 6058 -1 -6059 6059 4 -6060 6059 -1 -6159 6059 -1 -6060 6060 4 -6061 6060 -1 -6160 6060 -1 -6061 6061 4 -6062 6061 -1 -6161 6061 -1 -6062 6062 4 -6063 6062 -1 -6162 6062 -1 -6063 6063 4 -6064 6063 -1 -6163 6063 -1 -6064 6064 4 -6065 6064 -1 -6164 6064 -1 -6065 6065 4 -6066 6065 -1 -6165 6065 -1 -6066 6066 4 -6067 6066 -1 -6166 6066 -1 -6067 6067 4 -6068 6067 -1 -6167 6067 -1 -6068 6068 4 -6069 6068 -1 -6168 6068 -1 -6069 6069 4 -6070 6069 -1 -6169 6069 -1 -6070 6070 4 -6071 6070 -1 -6170 6070 -1 -6071 6071 4 -6072 6071 -1 -6171 6071 -1 -6072 6072 4 -6073 6072 -1 -6172 6072 -1 -6073 6073 4 -6074 6073 -1 -6173 6073 -1 -6074 6074 4 -6075 6074 -1 -6174 6074 -1 -6075 6075 4 -6076 6075 -1 -6175 6075 -1 -6076 6076 4 -6077 6076 -1 -6176 6076 -1 -6077 6077 4 -6078 6077 -1 -6177 6077 -1 -6078 6078 4 -6079 6078 -1 -6178 6078 -1 -6079 6079 4 -6080 6079 -1 -6179 6079 -1 -6080 6080 4 -6081 6080 -1 -6180 6080 -1 -6081 6081 4 -6082 6081 -1 -6181 6081 -1 -6082 6082 4 -6083 6082 -1 -6182 6082 -1 -6083 6083 4 -6084 6083 -1 -6183 6083 -1 -6084 6084 4 -6085 6084 -1 -6184 6084 -1 -6085 6085 4 -6086 6085 -1 -6185 6085 -1 -6086 6086 4 -6087 6086 -1 -6186 6086 -1 -6087 6087 4 -6088 6087 -1 -6187 6087 -1 -6088 6088 4 -6089 6088 -1 -6188 6088 -1 -6089 6089 4 -6090 6089 -1 -6189 6089 -1 -6090 6090 4 -6091 6090 -1 -6190 6090 -1 -6091 6091 4 -6092 6091 -1 -6191 6091 -1 -6092 6092 4 -6093 6092 -1 -6192 6092 -1 -6093 6093 4 -6094 6093 -1 -6193 6093 -1 -6094 6094 4 -6095 6094 -1 -6194 6094 -1 -6095 6095 4 -6096 6095 -1 -6195 6095 -1 -6096 6096 4 -6097 6096 -1 -6196 6096 -1 -6097 6097 4 -6098 6097 -1 -6197 6097 -1 -6098 6098 4 -6099 6098 -1 -6198 6098 -1 -6099 6099 4 -6100 6099 -1 -6199 6099 -1 -6100 6100 4 -6200 6100 -1 -6101 6101 4 -6102 6101 -1 -6201 6101 -1 -6102 6102 4 -6103 6102 -1 -6202 6102 -1 -6103 6103 4 -6104 6103 -1 -6203 6103 -1 -6104 6104 4 -6105 6104 -1 -6204 6104 -1 -6105 6105 4 -6106 6105 -1 -6205 6105 -1 -6106 6106 4 -6107 6106 -1 -6206 6106 -1 -6107 6107 4 -6108 6107 -1 -6207 6107 -1 -6108 6108 4 -6109 6108 -1 -6208 6108 -1 -6109 6109 4 -6110 6109 -1 -6209 6109 -1 -6110 6110 4 -6111 6110 -1 -6210 6110 -1 -6111 6111 4 -6112 6111 -1 -6211 6111 -1 -6112 6112 4 -6113 6112 -1 -6212 6112 -1 -6113 6113 4 -6114 6113 -1 -6213 6113 -1 -6114 6114 4 -6115 6114 -1 -6214 6114 -1 -6115 6115 4 -6116 6115 -1 -6215 6115 -1 -6116 6116 4 -6117 6116 -1 -6216 6116 -1 -6117 6117 4 -6118 6117 -1 -6217 6117 -1 -6118 6118 4 -6119 6118 -1 -6218 6118 -1 -6119 6119 4 -6120 6119 -1 -6219 6119 -1 -6120 6120 4 -6121 6120 -1 -6220 6120 -1 -6121 6121 4 -6122 6121 -1 -6221 6121 -1 -6122 6122 4 -6123 6122 -1 -6222 6122 -1 -6123 6123 4 -6124 6123 -1 -6223 6123 -1 -6124 6124 4 -6125 6124 -1 -6224 6124 -1 -6125 6125 4 -6126 6125 -1 -6225 6125 -1 -6126 6126 4 -6127 6126 -1 -6226 6126 -1 -6127 6127 4 -6128 6127 -1 -6227 6127 -1 -6128 6128 4 -6129 6128 -1 -6228 6128 -1 -6129 6129 4 -6130 6129 -1 -6229 6129 -1 -6130 6130 4 -6131 6130 -1 -6230 6130 -1 -6131 6131 4 -6132 6131 -1 -6231 6131 -1 -6132 6132 4 -6133 6132 -1 -6232 6132 -1 -6133 6133 4 -6134 6133 -1 -6233 6133 -1 -6134 6134 4 -6135 6134 -1 -6234 6134 -1 -6135 6135 4 -6136 6135 -1 -6235 6135 -1 -6136 6136 4 -6137 6136 -1 -6236 6136 -1 -6137 6137 4 -6138 6137 -1 -6237 6137 -1 -6138 6138 4 -6139 6138 -1 -6238 6138 -1 -6139 6139 4 -6140 6139 -1 -6239 6139 -1 -6140 6140 4 -6141 6140 -1 -6240 6140 -1 -6141 6141 4 -6142 6141 -1 -6241 6141 -1 -6142 6142 4 -6143 6142 -1 -6242 6142 -1 -6143 6143 4 -6144 6143 -1 -6243 6143 -1 -6144 6144 4 -6145 6144 -1 -6244 6144 -1 -6145 6145 4 -6146 6145 -1 -6245 6145 -1 -6146 6146 4 -6147 6146 -1 -6246 6146 -1 -6147 6147 4 -6148 6147 -1 -6247 6147 -1 -6148 6148 4 -6149 6148 -1 -6248 6148 -1 -6149 6149 4 -6150 6149 -1 -6249 6149 -1 -6150 6150 4 -6151 6150 -1 -6250 6150 -1 -6151 6151 4 -6152 6151 -1 -6251 6151 -1 -6152 6152 4 -6153 6152 -1 -6252 6152 -1 -6153 6153 4 -6154 6153 -1 -6253 6153 -1 -6154 6154 4 -6155 6154 -1 -6254 6154 -1 -6155 6155 4 -6156 6155 -1 -6255 6155 -1 -6156 6156 4 -6157 6156 -1 -6256 6156 -1 -6157 6157 4 -6158 6157 -1 -6257 6157 -1 -6158 6158 4 -6159 6158 -1 -6258 6158 -1 -6159 6159 4 -6160 6159 -1 -6259 6159 -1 -6160 6160 4 -6161 6160 -1 -6260 6160 -1 -6161 6161 4 -6162 6161 -1 -6261 6161 -1 -6162 6162 4 -6163 6162 -1 -6262 6162 -1 -6163 6163 4 -6164 6163 -1 -6263 6163 -1 -6164 6164 4 -6165 6164 -1 -6264 6164 -1 -6165 6165 4 -6166 6165 -1 -6265 6165 -1 -6166 6166 4 -6167 6166 -1 -6266 6166 -1 -6167 6167 4 -6168 6167 -1 -6267 6167 -1 -6168 6168 4 -6169 6168 -1 -6268 6168 -1 -6169 6169 4 -6170 6169 -1 -6269 6169 -1 -6170 6170 4 -6171 6170 -1 -6270 6170 -1 -6171 6171 4 -6172 6171 -1 -6271 6171 -1 -6172 6172 4 -6173 6172 -1 -6272 6172 -1 -6173 6173 4 -6174 6173 -1 -6273 6173 -1 -6174 6174 4 -6175 6174 -1 -6274 6174 -1 -6175 6175 4 -6176 6175 -1 -6275 6175 -1 -6176 6176 4 -6177 6176 -1 -6276 6176 -1 -6177 6177 4 -6178 6177 -1 -6277 6177 -1 -6178 6178 4 -6179 6178 -1 -6278 6178 -1 -6179 6179 4 -6180 6179 -1 -6279 6179 -1 -6180 6180 4 -6181 6180 -1 -6280 6180 -1 -6181 6181 4 -6182 6181 -1 -6281 6181 -1 -6182 6182 4 -6183 6182 -1 -6282 6182 -1 -6183 6183 4 -6184 6183 -1 -6283 6183 -1 -6184 6184 4 -6185 6184 -1 -6284 6184 -1 -6185 6185 4 -6186 6185 -1 -6285 6185 -1 -6186 6186 4 -6187 6186 -1 -6286 6186 -1 -6187 6187 4 -6188 6187 -1 -6287 6187 -1 -6188 6188 4 -6189 6188 -1 -6288 6188 -1 -6189 6189 4 -6190 6189 -1 -6289 6189 -1 -6190 6190 4 -6191 6190 -1 -6290 6190 -1 -6191 6191 4 -6192 6191 -1 -6291 6191 -1 -6192 6192 4 -6193 6192 -1 -6292 6192 -1 -6193 6193 4 -6194 6193 -1 -6293 6193 -1 -6194 6194 4 -6195 6194 -1 -6294 6194 -1 -6195 6195 4 -6196 6195 -1 -6295 6195 -1 -6196 6196 4 -6197 6196 -1 -6296 6196 -1 -6197 6197 4 -6198 6197 -1 -6297 6197 -1 -6198 6198 4 -6199 6198 -1 -6298 6198 -1 -6199 6199 4 -6200 6199 -1 -6299 6199 -1 -6200 6200 4 -6300 6200 -1 -6201 6201 4 -6202 6201 -1 -6301 6201 -1 -6202 6202 4 -6203 6202 -1 -6302 6202 -1 -6203 6203 4 -6204 6203 -1 -6303 6203 -1 -6204 6204 4 -6205 6204 -1 -6304 6204 -1 -6205 6205 4 -6206 6205 -1 -6305 6205 -1 -6206 6206 4 -6207 6206 -1 -6306 6206 -1 -6207 6207 4 -6208 6207 -1 -6307 6207 -1 -6208 6208 4 -6209 6208 -1 -6308 6208 -1 -6209 6209 4 -6210 6209 -1 -6309 6209 -1 -6210 6210 4 -6211 6210 -1 -6310 6210 -1 -6211 6211 4 -6212 6211 -1 -6311 6211 -1 -6212 6212 4 -6213 6212 -1 -6312 6212 -1 -6213 6213 4 -6214 6213 -1 -6313 6213 -1 -6214 6214 4 -6215 6214 -1 -6314 6214 -1 -6215 6215 4 -6216 6215 -1 -6315 6215 -1 -6216 6216 4 -6217 6216 -1 -6316 6216 -1 -6217 6217 4 -6218 6217 -1 -6317 6217 -1 -6218 6218 4 -6219 6218 -1 -6318 6218 -1 -6219 6219 4 -6220 6219 -1 -6319 6219 -1 -6220 6220 4 -6221 6220 -1 -6320 6220 -1 -6221 6221 4 -6222 6221 -1 -6321 6221 -1 -6222 6222 4 -6223 6222 -1 -6322 6222 -1 -6223 6223 4 -6224 6223 -1 -6323 6223 -1 -6224 6224 4 -6225 6224 -1 -6324 6224 -1 -6225 6225 4 -6226 6225 -1 -6325 6225 -1 -6226 6226 4 -6227 6226 -1 -6326 6226 -1 -6227 6227 4 -6228 6227 -1 -6327 6227 -1 -6228 6228 4 -6229 6228 -1 -6328 6228 -1 -6229 6229 4 -6230 6229 -1 -6329 6229 -1 -6230 6230 4 -6231 6230 -1 -6330 6230 -1 -6231 6231 4 -6232 6231 -1 -6331 6231 -1 -6232 6232 4 -6233 6232 -1 -6332 6232 -1 -6233 6233 4 -6234 6233 -1 -6333 6233 -1 -6234 6234 4 -6235 6234 -1 -6334 6234 -1 -6235 6235 4 -6236 6235 -1 -6335 6235 -1 -6236 6236 4 -6237 6236 -1 -6336 6236 -1 -6237 6237 4 -6238 6237 -1 -6337 6237 -1 -6238 6238 4 -6239 6238 -1 -6338 6238 -1 -6239 6239 4 -6240 6239 -1 -6339 6239 -1 -6240 6240 4 -6241 6240 -1 -6340 6240 -1 -6241 6241 4 -6242 6241 -1 -6341 6241 -1 -6242 6242 4 -6243 6242 -1 -6342 6242 -1 -6243 6243 4 -6244 6243 -1 -6343 6243 -1 -6244 6244 4 -6245 6244 -1 -6344 6244 -1 -6245 6245 4 -6246 6245 -1 -6345 6245 -1 -6246 6246 4 -6247 6246 -1 -6346 6246 -1 -6247 6247 4 -6248 6247 -1 -6347 6247 -1 -6248 6248 4 -6249 6248 -1 -6348 6248 -1 -6249 6249 4 -6250 6249 -1 -6349 6249 -1 -6250 6250 4 -6251 6250 -1 -6350 6250 -1 -6251 6251 4 -6252 6251 -1 -6351 6251 -1 -6252 6252 4 -6253 6252 -1 -6352 6252 -1 -6253 6253 4 -6254 6253 -1 -6353 6253 -1 -6254 6254 4 -6255 6254 -1 -6354 6254 -1 -6255 6255 4 -6256 6255 -1 -6355 6255 -1 -6256 6256 4 -6257 6256 -1 -6356 6256 -1 -6257 6257 4 -6258 6257 -1 -6357 6257 -1 -6258 6258 4 -6259 6258 -1 -6358 6258 -1 -6259 6259 4 -6260 6259 -1 -6359 6259 -1 -6260 6260 4 -6261 6260 -1 -6360 6260 -1 -6261 6261 4 -6262 6261 -1 -6361 6261 -1 -6262 6262 4 -6263 6262 -1 -6362 6262 -1 -6263 6263 4 -6264 6263 -1 -6363 6263 -1 -6264 6264 4 -6265 6264 -1 -6364 6264 -1 -6265 6265 4 -6266 6265 -1 -6365 6265 -1 -6266 6266 4 -6267 6266 -1 -6366 6266 -1 -6267 6267 4 -6268 6267 -1 -6367 6267 -1 -6268 6268 4 -6269 6268 -1 -6368 6268 -1 -6269 6269 4 -6270 6269 -1 -6369 6269 -1 -6270 6270 4 -6271 6270 -1 -6370 6270 -1 -6271 6271 4 -6272 6271 -1 -6371 6271 -1 -6272 6272 4 -6273 6272 -1 -6372 6272 -1 -6273 6273 4 -6274 6273 -1 -6373 6273 -1 -6274 6274 4 -6275 6274 -1 -6374 6274 -1 -6275 6275 4 -6276 6275 -1 -6375 6275 -1 -6276 6276 4 -6277 6276 -1 -6376 6276 -1 -6277 6277 4 -6278 6277 -1 -6377 6277 -1 -6278 6278 4 -6279 6278 -1 -6378 6278 -1 -6279 6279 4 -6280 6279 -1 -6379 6279 -1 -6280 6280 4 -6281 6280 -1 -6380 6280 -1 -6281 6281 4 -6282 6281 -1 -6381 6281 -1 -6282 6282 4 -6283 6282 -1 -6382 6282 -1 -6283 6283 4 -6284 6283 -1 -6383 6283 -1 -6284 6284 4 -6285 6284 -1 -6384 6284 -1 -6285 6285 4 -6286 6285 -1 -6385 6285 -1 -6286 6286 4 -6287 6286 -1 -6386 6286 -1 -6287 6287 4 -6288 6287 -1 -6387 6287 -1 -6288 6288 4 -6289 6288 -1 -6388 6288 -1 -6289 6289 4 -6290 6289 -1 -6389 6289 -1 -6290 6290 4 -6291 6290 -1 -6390 6290 -1 -6291 6291 4 -6292 6291 -1 -6391 6291 -1 -6292 6292 4 -6293 6292 -1 -6392 6292 -1 -6293 6293 4 -6294 6293 -1 -6393 6293 -1 -6294 6294 4 -6295 6294 -1 -6394 6294 -1 -6295 6295 4 -6296 6295 -1 -6395 6295 -1 -6296 6296 4 -6297 6296 -1 -6396 6296 -1 -6297 6297 4 -6298 6297 -1 -6397 6297 -1 -6298 6298 4 -6299 6298 -1 -6398 6298 -1 -6299 6299 4 -6300 6299 -1 -6399 6299 -1 -6300 6300 4 -6400 6300 -1 -6301 6301 4 -6302 6301 -1 -6401 6301 -1 -6302 6302 4 -6303 6302 -1 -6402 6302 -1 -6303 6303 4 -6304 6303 -1 -6403 6303 -1 -6304 6304 4 -6305 6304 -1 -6404 6304 -1 -6305 6305 4 -6306 6305 -1 -6405 6305 -1 -6306 6306 4 -6307 6306 -1 -6406 6306 -1 -6307 6307 4 -6308 6307 -1 -6407 6307 -1 -6308 6308 4 -6309 6308 -1 -6408 6308 -1 -6309 6309 4 -6310 6309 -1 -6409 6309 -1 -6310 6310 4 -6311 6310 -1 -6410 6310 -1 -6311 6311 4 -6312 6311 -1 -6411 6311 -1 -6312 6312 4 -6313 6312 -1 -6412 6312 -1 -6313 6313 4 -6314 6313 -1 -6413 6313 -1 -6314 6314 4 -6315 6314 -1 -6414 6314 -1 -6315 6315 4 -6316 6315 -1 -6415 6315 -1 -6316 6316 4 -6317 6316 -1 -6416 6316 -1 -6317 6317 4 -6318 6317 -1 -6417 6317 -1 -6318 6318 4 -6319 6318 -1 -6418 6318 -1 -6319 6319 4 -6320 6319 -1 -6419 6319 -1 -6320 6320 4 -6321 6320 -1 -6420 6320 -1 -6321 6321 4 -6322 6321 -1 -6421 6321 -1 -6322 6322 4 -6323 6322 -1 -6422 6322 -1 -6323 6323 4 -6324 6323 -1 -6423 6323 -1 -6324 6324 4 -6325 6324 -1 -6424 6324 -1 -6325 6325 4 -6326 6325 -1 -6425 6325 -1 -6326 6326 4 -6327 6326 -1 -6426 6326 -1 -6327 6327 4 -6328 6327 -1 -6427 6327 -1 -6328 6328 4 -6329 6328 -1 -6428 6328 -1 -6329 6329 4 -6330 6329 -1 -6429 6329 -1 -6330 6330 4 -6331 6330 -1 -6430 6330 -1 -6331 6331 4 -6332 6331 -1 -6431 6331 -1 -6332 6332 4 -6333 6332 -1 -6432 6332 -1 -6333 6333 4 -6334 6333 -1 -6433 6333 -1 -6334 6334 4 -6335 6334 -1 -6434 6334 -1 -6335 6335 4 -6336 6335 -1 -6435 6335 -1 -6336 6336 4 -6337 6336 -1 -6436 6336 -1 -6337 6337 4 -6338 6337 -1 -6437 6337 -1 -6338 6338 4 -6339 6338 -1 -6438 6338 -1 -6339 6339 4 -6340 6339 -1 -6439 6339 -1 -6340 6340 4 -6341 6340 -1 -6440 6340 -1 -6341 6341 4 -6342 6341 -1 -6441 6341 -1 -6342 6342 4 -6343 6342 -1 -6442 6342 -1 -6343 6343 4 -6344 6343 -1 -6443 6343 -1 -6344 6344 4 -6345 6344 -1 -6444 6344 -1 -6345 6345 4 -6346 6345 -1 -6445 6345 -1 -6346 6346 4 -6347 6346 -1 -6446 6346 -1 -6347 6347 4 -6348 6347 -1 -6447 6347 -1 -6348 6348 4 -6349 6348 -1 -6448 6348 -1 -6349 6349 4 -6350 6349 -1 -6449 6349 -1 -6350 6350 4 -6351 6350 -1 -6450 6350 -1 -6351 6351 4 -6352 6351 -1 -6451 6351 -1 -6352 6352 4 -6353 6352 -1 -6452 6352 -1 -6353 6353 4 -6354 6353 -1 -6453 6353 -1 -6354 6354 4 -6355 6354 -1 -6454 6354 -1 -6355 6355 4 -6356 6355 -1 -6455 6355 -1 -6356 6356 4 -6357 6356 -1 -6456 6356 -1 -6357 6357 4 -6358 6357 -1 -6457 6357 -1 -6358 6358 4 -6359 6358 -1 -6458 6358 -1 -6359 6359 4 -6360 6359 -1 -6459 6359 -1 -6360 6360 4 -6361 6360 -1 -6460 6360 -1 -6361 6361 4 -6362 6361 -1 -6461 6361 -1 -6362 6362 4 -6363 6362 -1 -6462 6362 -1 -6363 6363 4 -6364 6363 -1 -6463 6363 -1 -6364 6364 4 -6365 6364 -1 -6464 6364 -1 -6365 6365 4 -6366 6365 -1 -6465 6365 -1 -6366 6366 4 -6367 6366 -1 -6466 6366 -1 -6367 6367 4 -6368 6367 -1 -6467 6367 -1 -6368 6368 4 -6369 6368 -1 -6468 6368 -1 -6369 6369 4 -6370 6369 -1 -6469 6369 -1 -6370 6370 4 -6371 6370 -1 -6470 6370 -1 -6371 6371 4 -6372 6371 -1 -6471 6371 -1 -6372 6372 4 -6373 6372 -1 -6472 6372 -1 -6373 6373 4 -6374 6373 -1 -6473 6373 -1 -6374 6374 4 -6375 6374 -1 -6474 6374 -1 -6375 6375 4 -6376 6375 -1 -6475 6375 -1 -6376 6376 4 -6377 6376 -1 -6476 6376 -1 -6377 6377 4 -6378 6377 -1 -6477 6377 -1 -6378 6378 4 -6379 6378 -1 -6478 6378 -1 -6379 6379 4 -6380 6379 -1 -6479 6379 -1 -6380 6380 4 -6381 6380 -1 -6480 6380 -1 -6381 6381 4 -6382 6381 -1 -6481 6381 -1 -6382 6382 4 -6383 6382 -1 -6482 6382 -1 -6383 6383 4 -6384 6383 -1 -6483 6383 -1 -6384 6384 4 -6385 6384 -1 -6484 6384 -1 -6385 6385 4 -6386 6385 -1 -6485 6385 -1 -6386 6386 4 -6387 6386 -1 -6486 6386 -1 -6387 6387 4 -6388 6387 -1 -6487 6387 -1 -6388 6388 4 -6389 6388 -1 -6488 6388 -1 -6389 6389 4 -6390 6389 -1 -6489 6389 -1 -6390 6390 4 -6391 6390 -1 -6490 6390 -1 -6391 6391 4 -6392 6391 -1 -6491 6391 -1 -6392 6392 4 -6393 6392 -1 -6492 6392 -1 -6393 6393 4 -6394 6393 -1 -6493 6393 -1 -6394 6394 4 -6395 6394 -1 -6494 6394 -1 -6395 6395 4 -6396 6395 -1 -6495 6395 -1 -6396 6396 4 -6397 6396 -1 -6496 6396 -1 -6397 6397 4 -6398 6397 -1 -6497 6397 -1 -6398 6398 4 -6399 6398 -1 -6498 6398 -1 -6399 6399 4 -6400 6399 -1 -6499 6399 -1 -6400 6400 4 -6500 6400 -1 -6401 6401 4 -6402 6401 -1 -6501 6401 -1 -6402 6402 4 -6403 6402 -1 -6502 6402 -1 -6403 6403 4 -6404 6403 -1 -6503 6403 -1 -6404 6404 4 -6405 6404 -1 -6504 6404 -1 -6405 6405 4 -6406 6405 -1 -6505 6405 -1 -6406 6406 4 -6407 6406 -1 -6506 6406 -1 -6407 6407 4 -6408 6407 -1 -6507 6407 -1 -6408 6408 4 -6409 6408 -1 -6508 6408 -1 -6409 6409 4 -6410 6409 -1 -6509 6409 -1 -6410 6410 4 -6411 6410 -1 -6510 6410 -1 -6411 6411 4 -6412 6411 -1 -6511 6411 -1 -6412 6412 4 -6413 6412 -1 -6512 6412 -1 -6413 6413 4 -6414 6413 -1 -6513 6413 -1 -6414 6414 4 -6415 6414 -1 -6514 6414 -1 -6415 6415 4 -6416 6415 -1 -6515 6415 -1 -6416 6416 4 -6417 6416 -1 -6516 6416 -1 -6417 6417 4 -6418 6417 -1 -6517 6417 -1 -6418 6418 4 -6419 6418 -1 -6518 6418 -1 -6419 6419 4 -6420 6419 -1 -6519 6419 -1 -6420 6420 4 -6421 6420 -1 -6520 6420 -1 -6421 6421 4 -6422 6421 -1 -6521 6421 -1 -6422 6422 4 -6423 6422 -1 -6522 6422 -1 -6423 6423 4 -6424 6423 -1 -6523 6423 -1 -6424 6424 4 -6425 6424 -1 -6524 6424 -1 -6425 6425 4 -6426 6425 -1 -6525 6425 -1 -6426 6426 4 -6427 6426 -1 -6526 6426 -1 -6427 6427 4 -6428 6427 -1 -6527 6427 -1 -6428 6428 4 -6429 6428 -1 -6528 6428 -1 -6429 6429 4 -6430 6429 -1 -6529 6429 -1 -6430 6430 4 -6431 6430 -1 -6530 6430 -1 -6431 6431 4 -6432 6431 -1 -6531 6431 -1 -6432 6432 4 -6433 6432 -1 -6532 6432 -1 -6433 6433 4 -6434 6433 -1 -6533 6433 -1 -6434 6434 4 -6435 6434 -1 -6534 6434 -1 -6435 6435 4 -6436 6435 -1 -6535 6435 -1 -6436 6436 4 -6437 6436 -1 -6536 6436 -1 -6437 6437 4 -6438 6437 -1 -6537 6437 -1 -6438 6438 4 -6439 6438 -1 -6538 6438 -1 -6439 6439 4 -6440 6439 -1 -6539 6439 -1 -6440 6440 4 -6441 6440 -1 -6540 6440 -1 -6441 6441 4 -6442 6441 -1 -6541 6441 -1 -6442 6442 4 -6443 6442 -1 -6542 6442 -1 -6443 6443 4 -6444 6443 -1 -6543 6443 -1 -6444 6444 4 -6445 6444 -1 -6544 6444 -1 -6445 6445 4 -6446 6445 -1 -6545 6445 -1 -6446 6446 4 -6447 6446 -1 -6546 6446 -1 -6447 6447 4 -6448 6447 -1 -6547 6447 -1 -6448 6448 4 -6449 6448 -1 -6548 6448 -1 -6449 6449 4 -6450 6449 -1 -6549 6449 -1 -6450 6450 4 -6451 6450 -1 -6550 6450 -1 -6451 6451 4 -6452 6451 -1 -6551 6451 -1 -6452 6452 4 -6453 6452 -1 -6552 6452 -1 -6453 6453 4 -6454 6453 -1 -6553 6453 -1 -6454 6454 4 -6455 6454 -1 -6554 6454 -1 -6455 6455 4 -6456 6455 -1 -6555 6455 -1 -6456 6456 4 -6457 6456 -1 -6556 6456 -1 -6457 6457 4 -6458 6457 -1 -6557 6457 -1 -6458 6458 4 -6459 6458 -1 -6558 6458 -1 -6459 6459 4 -6460 6459 -1 -6559 6459 -1 -6460 6460 4 -6461 6460 -1 -6560 6460 -1 -6461 6461 4 -6462 6461 -1 -6561 6461 -1 -6462 6462 4 -6463 6462 -1 -6562 6462 -1 -6463 6463 4 -6464 6463 -1 -6563 6463 -1 -6464 6464 4 -6465 6464 -1 -6564 6464 -1 -6465 6465 4 -6466 6465 -1 -6565 6465 -1 -6466 6466 4 -6467 6466 -1 -6566 6466 -1 -6467 6467 4 -6468 6467 -1 -6567 6467 -1 -6468 6468 4 -6469 6468 -1 -6568 6468 -1 -6469 6469 4 -6470 6469 -1 -6569 6469 -1 -6470 6470 4 -6471 6470 -1 -6570 6470 -1 -6471 6471 4 -6472 6471 -1 -6571 6471 -1 -6472 6472 4 -6473 6472 -1 -6572 6472 -1 -6473 6473 4 -6474 6473 -1 -6573 6473 -1 -6474 6474 4 -6475 6474 -1 -6574 6474 -1 -6475 6475 4 -6476 6475 -1 -6575 6475 -1 -6476 6476 4 -6477 6476 -1 -6576 6476 -1 -6477 6477 4 -6478 6477 -1 -6577 6477 -1 -6478 6478 4 -6479 6478 -1 -6578 6478 -1 -6479 6479 4 -6480 6479 -1 -6579 6479 -1 -6480 6480 4 -6481 6480 -1 -6580 6480 -1 -6481 6481 4 -6482 6481 -1 -6581 6481 -1 -6482 6482 4 -6483 6482 -1 -6582 6482 -1 -6483 6483 4 -6484 6483 -1 -6583 6483 -1 -6484 6484 4 -6485 6484 -1 -6584 6484 -1 -6485 6485 4 -6486 6485 -1 -6585 6485 -1 -6486 6486 4 -6487 6486 -1 -6586 6486 -1 -6487 6487 4 -6488 6487 -1 -6587 6487 -1 -6488 6488 4 -6489 6488 -1 -6588 6488 -1 -6489 6489 4 -6490 6489 -1 -6589 6489 -1 -6490 6490 4 -6491 6490 -1 -6590 6490 -1 -6491 6491 4 -6492 6491 -1 -6591 6491 -1 -6492 6492 4 -6493 6492 -1 -6592 6492 -1 -6493 6493 4 -6494 6493 -1 -6593 6493 -1 -6494 6494 4 -6495 6494 -1 -6594 6494 -1 -6495 6495 4 -6496 6495 -1 -6595 6495 -1 -6496 6496 4 -6497 6496 -1 -6596 6496 -1 -6497 6497 4 -6498 6497 -1 -6597 6497 -1 -6498 6498 4 -6499 6498 -1 -6598 6498 -1 -6499 6499 4 -6500 6499 -1 -6599 6499 -1 -6500 6500 4 -6600 6500 -1 -6501 6501 4 -6502 6501 -1 -6601 6501 -1 -6502 6502 4 -6503 6502 -1 -6602 6502 -1 -6503 6503 4 -6504 6503 -1 -6603 6503 -1 -6504 6504 4 -6505 6504 -1 -6604 6504 -1 -6505 6505 4 -6506 6505 -1 -6605 6505 -1 -6506 6506 4 -6507 6506 -1 -6606 6506 -1 -6507 6507 4 -6508 6507 -1 -6607 6507 -1 -6508 6508 4 -6509 6508 -1 -6608 6508 -1 -6509 6509 4 -6510 6509 -1 -6609 6509 -1 -6510 6510 4 -6511 6510 -1 -6610 6510 -1 -6511 6511 4 -6512 6511 -1 -6611 6511 -1 -6512 6512 4 -6513 6512 -1 -6612 6512 -1 -6513 6513 4 -6514 6513 -1 -6613 6513 -1 -6514 6514 4 -6515 6514 -1 -6614 6514 -1 -6515 6515 4 -6516 6515 -1 -6615 6515 -1 -6516 6516 4 -6517 6516 -1 -6616 6516 -1 -6517 6517 4 -6518 6517 -1 -6617 6517 -1 -6518 6518 4 -6519 6518 -1 -6618 6518 -1 -6519 6519 4 -6520 6519 -1 -6619 6519 -1 -6520 6520 4 -6521 6520 -1 -6620 6520 -1 -6521 6521 4 -6522 6521 -1 -6621 6521 -1 -6522 6522 4 -6523 6522 -1 -6622 6522 -1 -6523 6523 4 -6524 6523 -1 -6623 6523 -1 -6524 6524 4 -6525 6524 -1 -6624 6524 -1 -6525 6525 4 -6526 6525 -1 -6625 6525 -1 -6526 6526 4 -6527 6526 -1 -6626 6526 -1 -6527 6527 4 -6528 6527 -1 -6627 6527 -1 -6528 6528 4 -6529 6528 -1 -6628 6528 -1 -6529 6529 4 -6530 6529 -1 -6629 6529 -1 -6530 6530 4 -6531 6530 -1 -6630 6530 -1 -6531 6531 4 -6532 6531 -1 -6631 6531 -1 -6532 6532 4 -6533 6532 -1 -6632 6532 -1 -6533 6533 4 -6534 6533 -1 -6633 6533 -1 -6534 6534 4 -6535 6534 -1 -6634 6534 -1 -6535 6535 4 -6536 6535 -1 -6635 6535 -1 -6536 6536 4 -6537 6536 -1 -6636 6536 -1 -6537 6537 4 -6538 6537 -1 -6637 6537 -1 -6538 6538 4 -6539 6538 -1 -6638 6538 -1 -6539 6539 4 -6540 6539 -1 -6639 6539 -1 -6540 6540 4 -6541 6540 -1 -6640 6540 -1 -6541 6541 4 -6542 6541 -1 -6641 6541 -1 -6542 6542 4 -6543 6542 -1 -6642 6542 -1 -6543 6543 4 -6544 6543 -1 -6643 6543 -1 -6544 6544 4 -6545 6544 -1 -6644 6544 -1 -6545 6545 4 -6546 6545 -1 -6645 6545 -1 -6546 6546 4 -6547 6546 -1 -6646 6546 -1 -6547 6547 4 -6548 6547 -1 -6647 6547 -1 -6548 6548 4 -6549 6548 -1 -6648 6548 -1 -6549 6549 4 -6550 6549 -1 -6649 6549 -1 -6550 6550 4 -6551 6550 -1 -6650 6550 -1 -6551 6551 4 -6552 6551 -1 -6651 6551 -1 -6552 6552 4 -6553 6552 -1 -6652 6552 -1 -6553 6553 4 -6554 6553 -1 -6653 6553 -1 -6554 6554 4 -6555 6554 -1 -6654 6554 -1 -6555 6555 4 -6556 6555 -1 -6655 6555 -1 -6556 6556 4 -6557 6556 -1 -6656 6556 -1 -6557 6557 4 -6558 6557 -1 -6657 6557 -1 -6558 6558 4 -6559 6558 -1 -6658 6558 -1 -6559 6559 4 -6560 6559 -1 -6659 6559 -1 -6560 6560 4 -6561 6560 -1 -6660 6560 -1 -6561 6561 4 -6562 6561 -1 -6661 6561 -1 -6562 6562 4 -6563 6562 -1 -6662 6562 -1 -6563 6563 4 -6564 6563 -1 -6663 6563 -1 -6564 6564 4 -6565 6564 -1 -6664 6564 -1 -6565 6565 4 -6566 6565 -1 -6665 6565 -1 -6566 6566 4 -6567 6566 -1 -6666 6566 -1 -6567 6567 4 -6568 6567 -1 -6667 6567 -1 -6568 6568 4 -6569 6568 -1 -6668 6568 -1 -6569 6569 4 -6570 6569 -1 -6669 6569 -1 -6570 6570 4 -6571 6570 -1 -6670 6570 -1 -6571 6571 4 -6572 6571 -1 -6671 6571 -1 -6572 6572 4 -6573 6572 -1 -6672 6572 -1 -6573 6573 4 -6574 6573 -1 -6673 6573 -1 -6574 6574 4 -6575 6574 -1 -6674 6574 -1 -6575 6575 4 -6576 6575 -1 -6675 6575 -1 -6576 6576 4 -6577 6576 -1 -6676 6576 -1 -6577 6577 4 -6578 6577 -1 -6677 6577 -1 -6578 6578 4 -6579 6578 -1 -6678 6578 -1 -6579 6579 4 -6580 6579 -1 -6679 6579 -1 -6580 6580 4 -6581 6580 -1 -6680 6580 -1 -6581 6581 4 -6582 6581 -1 -6681 6581 -1 -6582 6582 4 -6583 6582 -1 -6682 6582 -1 -6583 6583 4 -6584 6583 -1 -6683 6583 -1 -6584 6584 4 -6585 6584 -1 -6684 6584 -1 -6585 6585 4 -6586 6585 -1 -6685 6585 -1 -6586 6586 4 -6587 6586 -1 -6686 6586 -1 -6587 6587 4 -6588 6587 -1 -6687 6587 -1 -6588 6588 4 -6589 6588 -1 -6688 6588 -1 -6589 6589 4 -6590 6589 -1 -6689 6589 -1 -6590 6590 4 -6591 6590 -1 -6690 6590 -1 -6591 6591 4 -6592 6591 -1 -6691 6591 -1 -6592 6592 4 -6593 6592 -1 -6692 6592 -1 -6593 6593 4 -6594 6593 -1 -6693 6593 -1 -6594 6594 4 -6595 6594 -1 -6694 6594 -1 -6595 6595 4 -6596 6595 -1 -6695 6595 -1 -6596 6596 4 -6597 6596 -1 -6696 6596 -1 -6597 6597 4 -6598 6597 -1 -6697 6597 -1 -6598 6598 4 -6599 6598 -1 -6698 6598 -1 -6599 6599 4 -6600 6599 -1 -6699 6599 -1 -6600 6600 4 -6700 6600 -1 -6601 6601 4 -6602 6601 -1 -6701 6601 -1 -6602 6602 4 -6603 6602 -1 -6702 6602 -1 -6603 6603 4 -6604 6603 -1 -6703 6603 -1 -6604 6604 4 -6605 6604 -1 -6704 6604 -1 -6605 6605 4 -6606 6605 -1 -6705 6605 -1 -6606 6606 4 -6607 6606 -1 -6706 6606 -1 -6607 6607 4 -6608 6607 -1 -6707 6607 -1 -6608 6608 4 -6609 6608 -1 -6708 6608 -1 -6609 6609 4 -6610 6609 -1 -6709 6609 -1 -6610 6610 4 -6611 6610 -1 -6710 6610 -1 -6611 6611 4 -6612 6611 -1 -6711 6611 -1 -6612 6612 4 -6613 6612 -1 -6712 6612 -1 -6613 6613 4 -6614 6613 -1 -6713 6613 -1 -6614 6614 4 -6615 6614 -1 -6714 6614 -1 -6615 6615 4 -6616 6615 -1 -6715 6615 -1 -6616 6616 4 -6617 6616 -1 -6716 6616 -1 -6617 6617 4 -6618 6617 -1 -6717 6617 -1 -6618 6618 4 -6619 6618 -1 -6718 6618 -1 -6619 6619 4 -6620 6619 -1 -6719 6619 -1 -6620 6620 4 -6621 6620 -1 -6720 6620 -1 -6621 6621 4 -6622 6621 -1 -6721 6621 -1 -6622 6622 4 -6623 6622 -1 -6722 6622 -1 -6623 6623 4 -6624 6623 -1 -6723 6623 -1 -6624 6624 4 -6625 6624 -1 -6724 6624 -1 -6625 6625 4 -6626 6625 -1 -6725 6625 -1 -6626 6626 4 -6627 6626 -1 -6726 6626 -1 -6627 6627 4 -6628 6627 -1 -6727 6627 -1 -6628 6628 4 -6629 6628 -1 -6728 6628 -1 -6629 6629 4 -6630 6629 -1 -6729 6629 -1 -6630 6630 4 -6631 6630 -1 -6730 6630 -1 -6631 6631 4 -6632 6631 -1 -6731 6631 -1 -6632 6632 4 -6633 6632 -1 -6732 6632 -1 -6633 6633 4 -6634 6633 -1 -6733 6633 -1 -6634 6634 4 -6635 6634 -1 -6734 6634 -1 -6635 6635 4 -6636 6635 -1 -6735 6635 -1 -6636 6636 4 -6637 6636 -1 -6736 6636 -1 -6637 6637 4 -6638 6637 -1 -6737 6637 -1 -6638 6638 4 -6639 6638 -1 -6738 6638 -1 -6639 6639 4 -6640 6639 -1 -6739 6639 -1 -6640 6640 4 -6641 6640 -1 -6740 6640 -1 -6641 6641 4 -6642 6641 -1 -6741 6641 -1 -6642 6642 4 -6643 6642 -1 -6742 6642 -1 -6643 6643 4 -6644 6643 -1 -6743 6643 -1 -6644 6644 4 -6645 6644 -1 -6744 6644 -1 -6645 6645 4 -6646 6645 -1 -6745 6645 -1 -6646 6646 4 -6647 6646 -1 -6746 6646 -1 -6647 6647 4 -6648 6647 -1 -6747 6647 -1 -6648 6648 4 -6649 6648 -1 -6748 6648 -1 -6649 6649 4 -6650 6649 -1 -6749 6649 -1 -6650 6650 4 -6651 6650 -1 -6750 6650 -1 -6651 6651 4 -6652 6651 -1 -6751 6651 -1 -6652 6652 4 -6653 6652 -1 -6752 6652 -1 -6653 6653 4 -6654 6653 -1 -6753 6653 -1 -6654 6654 4 -6655 6654 -1 -6754 6654 -1 -6655 6655 4 -6656 6655 -1 -6755 6655 -1 -6656 6656 4 -6657 6656 -1 -6756 6656 -1 -6657 6657 4 -6658 6657 -1 -6757 6657 -1 -6658 6658 4 -6659 6658 -1 -6758 6658 -1 -6659 6659 4 -6660 6659 -1 -6759 6659 -1 -6660 6660 4 -6661 6660 -1 -6760 6660 -1 -6661 6661 4 -6662 6661 -1 -6761 6661 -1 -6662 6662 4 -6663 6662 -1 -6762 6662 -1 -6663 6663 4 -6664 6663 -1 -6763 6663 -1 -6664 6664 4 -6665 6664 -1 -6764 6664 -1 -6665 6665 4 -6666 6665 -1 -6765 6665 -1 -6666 6666 4 -6667 6666 -1 -6766 6666 -1 -6667 6667 4 -6668 6667 -1 -6767 6667 -1 -6668 6668 4 -6669 6668 -1 -6768 6668 -1 -6669 6669 4 -6670 6669 -1 -6769 6669 -1 -6670 6670 4 -6671 6670 -1 -6770 6670 -1 -6671 6671 4 -6672 6671 -1 -6771 6671 -1 -6672 6672 4 -6673 6672 -1 -6772 6672 -1 -6673 6673 4 -6674 6673 -1 -6773 6673 -1 -6674 6674 4 -6675 6674 -1 -6774 6674 -1 -6675 6675 4 -6676 6675 -1 -6775 6675 -1 -6676 6676 4 -6677 6676 -1 -6776 6676 -1 -6677 6677 4 -6678 6677 -1 -6777 6677 -1 -6678 6678 4 -6679 6678 -1 -6778 6678 -1 -6679 6679 4 -6680 6679 -1 -6779 6679 -1 -6680 6680 4 -6681 6680 -1 -6780 6680 -1 -6681 6681 4 -6682 6681 -1 -6781 6681 -1 -6682 6682 4 -6683 6682 -1 -6782 6682 -1 -6683 6683 4 -6684 6683 -1 -6783 6683 -1 -6684 6684 4 -6685 6684 -1 -6784 6684 -1 -6685 6685 4 -6686 6685 -1 -6785 6685 -1 -6686 6686 4 -6687 6686 -1 -6786 6686 -1 -6687 6687 4 -6688 6687 -1 -6787 6687 -1 -6688 6688 4 -6689 6688 -1 -6788 6688 -1 -6689 6689 4 -6690 6689 -1 -6789 6689 -1 -6690 6690 4 -6691 6690 -1 -6790 6690 -1 -6691 6691 4 -6692 6691 -1 -6791 6691 -1 -6692 6692 4 -6693 6692 -1 -6792 6692 -1 -6693 6693 4 -6694 6693 -1 -6793 6693 -1 -6694 6694 4 -6695 6694 -1 -6794 6694 -1 -6695 6695 4 -6696 6695 -1 -6795 6695 -1 -6696 6696 4 -6697 6696 -1 -6796 6696 -1 -6697 6697 4 -6698 6697 -1 -6797 6697 -1 -6698 6698 4 -6699 6698 -1 -6798 6698 -1 -6699 6699 4 -6700 6699 -1 -6799 6699 -1 -6700 6700 4 -6800 6700 -1 -6701 6701 4 -6702 6701 -1 -6801 6701 -1 -6702 6702 4 -6703 6702 -1 -6802 6702 -1 -6703 6703 4 -6704 6703 -1 -6803 6703 -1 -6704 6704 4 -6705 6704 -1 -6804 6704 -1 -6705 6705 4 -6706 6705 -1 -6805 6705 -1 -6706 6706 4 -6707 6706 -1 -6806 6706 -1 -6707 6707 4 -6708 6707 -1 -6807 6707 -1 -6708 6708 4 -6709 6708 -1 -6808 6708 -1 -6709 6709 4 -6710 6709 -1 -6809 6709 -1 -6710 6710 4 -6711 6710 -1 -6810 6710 -1 -6711 6711 4 -6712 6711 -1 -6811 6711 -1 -6712 6712 4 -6713 6712 -1 -6812 6712 -1 -6713 6713 4 -6714 6713 -1 -6813 6713 -1 -6714 6714 4 -6715 6714 -1 -6814 6714 -1 -6715 6715 4 -6716 6715 -1 -6815 6715 -1 -6716 6716 4 -6717 6716 -1 -6816 6716 -1 -6717 6717 4 -6718 6717 -1 -6817 6717 -1 -6718 6718 4 -6719 6718 -1 -6818 6718 -1 -6719 6719 4 -6720 6719 -1 -6819 6719 -1 -6720 6720 4 -6721 6720 -1 -6820 6720 -1 -6721 6721 4 -6722 6721 -1 -6821 6721 -1 -6722 6722 4 -6723 6722 -1 -6822 6722 -1 -6723 6723 4 -6724 6723 -1 -6823 6723 -1 -6724 6724 4 -6725 6724 -1 -6824 6724 -1 -6725 6725 4 -6726 6725 -1 -6825 6725 -1 -6726 6726 4 -6727 6726 -1 -6826 6726 -1 -6727 6727 4 -6728 6727 -1 -6827 6727 -1 -6728 6728 4 -6729 6728 -1 -6828 6728 -1 -6729 6729 4 -6730 6729 -1 -6829 6729 -1 -6730 6730 4 -6731 6730 -1 -6830 6730 -1 -6731 6731 4 -6732 6731 -1 -6831 6731 -1 -6732 6732 4 -6733 6732 -1 -6832 6732 -1 -6733 6733 4 -6734 6733 -1 -6833 6733 -1 -6734 6734 4 -6735 6734 -1 -6834 6734 -1 -6735 6735 4 -6736 6735 -1 -6835 6735 -1 -6736 6736 4 -6737 6736 -1 -6836 6736 -1 -6737 6737 4 -6738 6737 -1 -6837 6737 -1 -6738 6738 4 -6739 6738 -1 -6838 6738 -1 -6739 6739 4 -6740 6739 -1 -6839 6739 -1 -6740 6740 4 -6741 6740 -1 -6840 6740 -1 -6741 6741 4 -6742 6741 -1 -6841 6741 -1 -6742 6742 4 -6743 6742 -1 -6842 6742 -1 -6743 6743 4 -6744 6743 -1 -6843 6743 -1 -6744 6744 4 -6745 6744 -1 -6844 6744 -1 -6745 6745 4 -6746 6745 -1 -6845 6745 -1 -6746 6746 4 -6747 6746 -1 -6846 6746 -1 -6747 6747 4 -6748 6747 -1 -6847 6747 -1 -6748 6748 4 -6749 6748 -1 -6848 6748 -1 -6749 6749 4 -6750 6749 -1 -6849 6749 -1 -6750 6750 4 -6751 6750 -1 -6850 6750 -1 -6751 6751 4 -6752 6751 -1 -6851 6751 -1 -6752 6752 4 -6753 6752 -1 -6852 6752 -1 -6753 6753 4 -6754 6753 -1 -6853 6753 -1 -6754 6754 4 -6755 6754 -1 -6854 6754 -1 -6755 6755 4 -6756 6755 -1 -6855 6755 -1 -6756 6756 4 -6757 6756 -1 -6856 6756 -1 -6757 6757 4 -6758 6757 -1 -6857 6757 -1 -6758 6758 4 -6759 6758 -1 -6858 6758 -1 -6759 6759 4 -6760 6759 -1 -6859 6759 -1 -6760 6760 4 -6761 6760 -1 -6860 6760 -1 -6761 6761 4 -6762 6761 -1 -6861 6761 -1 -6762 6762 4 -6763 6762 -1 -6862 6762 -1 -6763 6763 4 -6764 6763 -1 -6863 6763 -1 -6764 6764 4 -6765 6764 -1 -6864 6764 -1 -6765 6765 4 -6766 6765 -1 -6865 6765 -1 -6766 6766 4 -6767 6766 -1 -6866 6766 -1 -6767 6767 4 -6768 6767 -1 -6867 6767 -1 -6768 6768 4 -6769 6768 -1 -6868 6768 -1 -6769 6769 4 -6770 6769 -1 -6869 6769 -1 -6770 6770 4 -6771 6770 -1 -6870 6770 -1 -6771 6771 4 -6772 6771 -1 -6871 6771 -1 -6772 6772 4 -6773 6772 -1 -6872 6772 -1 -6773 6773 4 -6774 6773 -1 -6873 6773 -1 -6774 6774 4 -6775 6774 -1 -6874 6774 -1 -6775 6775 4 -6776 6775 -1 -6875 6775 -1 -6776 6776 4 -6777 6776 -1 -6876 6776 -1 -6777 6777 4 -6778 6777 -1 -6877 6777 -1 -6778 6778 4 -6779 6778 -1 -6878 6778 -1 -6779 6779 4 -6780 6779 -1 -6879 6779 -1 -6780 6780 4 -6781 6780 -1 -6880 6780 -1 -6781 6781 4 -6782 6781 -1 -6881 6781 -1 -6782 6782 4 -6783 6782 -1 -6882 6782 -1 -6783 6783 4 -6784 6783 -1 -6883 6783 -1 -6784 6784 4 -6785 6784 -1 -6884 6784 -1 -6785 6785 4 -6786 6785 -1 -6885 6785 -1 -6786 6786 4 -6787 6786 -1 -6886 6786 -1 -6787 6787 4 -6788 6787 -1 -6887 6787 -1 -6788 6788 4 -6789 6788 -1 -6888 6788 -1 -6789 6789 4 -6790 6789 -1 -6889 6789 -1 -6790 6790 4 -6791 6790 -1 -6890 6790 -1 -6791 6791 4 -6792 6791 -1 -6891 6791 -1 -6792 6792 4 -6793 6792 -1 -6892 6792 -1 -6793 6793 4 -6794 6793 -1 -6893 6793 -1 -6794 6794 4 -6795 6794 -1 -6894 6794 -1 -6795 6795 4 -6796 6795 -1 -6895 6795 -1 -6796 6796 4 -6797 6796 -1 -6896 6796 -1 -6797 6797 4 -6798 6797 -1 -6897 6797 -1 -6798 6798 4 -6799 6798 -1 -6898 6798 -1 -6799 6799 4 -6800 6799 -1 -6899 6799 -1 -6800 6800 4 -6900 6800 -1 -6801 6801 4 -6802 6801 -1 -6901 6801 -1 -6802 6802 4 -6803 6802 -1 -6902 6802 -1 -6803 6803 4 -6804 6803 -1 -6903 6803 -1 -6804 6804 4 -6805 6804 -1 -6904 6804 -1 -6805 6805 4 -6806 6805 -1 -6905 6805 -1 -6806 6806 4 -6807 6806 -1 -6906 6806 -1 -6807 6807 4 -6808 6807 -1 -6907 6807 -1 -6808 6808 4 -6809 6808 -1 -6908 6808 -1 -6809 6809 4 -6810 6809 -1 -6909 6809 -1 -6810 6810 4 -6811 6810 -1 -6910 6810 -1 -6811 6811 4 -6812 6811 -1 -6911 6811 -1 -6812 6812 4 -6813 6812 -1 -6912 6812 -1 -6813 6813 4 -6814 6813 -1 -6913 6813 -1 -6814 6814 4 -6815 6814 -1 -6914 6814 -1 -6815 6815 4 -6816 6815 -1 -6915 6815 -1 -6816 6816 4 -6817 6816 -1 -6916 6816 -1 -6817 6817 4 -6818 6817 -1 -6917 6817 -1 -6818 6818 4 -6819 6818 -1 -6918 6818 -1 -6819 6819 4 -6820 6819 -1 -6919 6819 -1 -6820 6820 4 -6821 6820 -1 -6920 6820 -1 -6821 6821 4 -6822 6821 -1 -6921 6821 -1 -6822 6822 4 -6823 6822 -1 -6922 6822 -1 -6823 6823 4 -6824 6823 -1 -6923 6823 -1 -6824 6824 4 -6825 6824 -1 -6924 6824 -1 -6825 6825 4 -6826 6825 -1 -6925 6825 -1 -6826 6826 4 -6827 6826 -1 -6926 6826 -1 -6827 6827 4 -6828 6827 -1 -6927 6827 -1 -6828 6828 4 -6829 6828 -1 -6928 6828 -1 -6829 6829 4 -6830 6829 -1 -6929 6829 -1 -6830 6830 4 -6831 6830 -1 -6930 6830 -1 -6831 6831 4 -6832 6831 -1 -6931 6831 -1 -6832 6832 4 -6833 6832 -1 -6932 6832 -1 -6833 6833 4 -6834 6833 -1 -6933 6833 -1 -6834 6834 4 -6835 6834 -1 -6934 6834 -1 -6835 6835 4 -6836 6835 -1 -6935 6835 -1 -6836 6836 4 -6837 6836 -1 -6936 6836 -1 -6837 6837 4 -6838 6837 -1 -6937 6837 -1 -6838 6838 4 -6839 6838 -1 -6938 6838 -1 -6839 6839 4 -6840 6839 -1 -6939 6839 -1 -6840 6840 4 -6841 6840 -1 -6940 6840 -1 -6841 6841 4 -6842 6841 -1 -6941 6841 -1 -6842 6842 4 -6843 6842 -1 -6942 6842 -1 -6843 6843 4 -6844 6843 -1 -6943 6843 -1 -6844 6844 4 -6845 6844 -1 -6944 6844 -1 -6845 6845 4 -6846 6845 -1 -6945 6845 -1 -6846 6846 4 -6847 6846 -1 -6946 6846 -1 -6847 6847 4 -6848 6847 -1 -6947 6847 -1 -6848 6848 4 -6849 6848 -1 -6948 6848 -1 -6849 6849 4 -6850 6849 -1 -6949 6849 -1 -6850 6850 4 -6851 6850 -1 -6950 6850 -1 -6851 6851 4 -6852 6851 -1 -6951 6851 -1 -6852 6852 4 -6853 6852 -1 -6952 6852 -1 -6853 6853 4 -6854 6853 -1 -6953 6853 -1 -6854 6854 4 -6855 6854 -1 -6954 6854 -1 -6855 6855 4 -6856 6855 -1 -6955 6855 -1 -6856 6856 4 -6857 6856 -1 -6956 6856 -1 -6857 6857 4 -6858 6857 -1 -6957 6857 -1 -6858 6858 4 -6859 6858 -1 -6958 6858 -1 -6859 6859 4 -6860 6859 -1 -6959 6859 -1 -6860 6860 4 -6861 6860 -1 -6960 6860 -1 -6861 6861 4 -6862 6861 -1 -6961 6861 -1 -6862 6862 4 -6863 6862 -1 -6962 6862 -1 -6863 6863 4 -6864 6863 -1 -6963 6863 -1 -6864 6864 4 -6865 6864 -1 -6964 6864 -1 -6865 6865 4 -6866 6865 -1 -6965 6865 -1 -6866 6866 4 -6867 6866 -1 -6966 6866 -1 -6867 6867 4 -6868 6867 -1 -6967 6867 -1 -6868 6868 4 -6869 6868 -1 -6968 6868 -1 -6869 6869 4 -6870 6869 -1 -6969 6869 -1 -6870 6870 4 -6871 6870 -1 -6970 6870 -1 -6871 6871 4 -6872 6871 -1 -6971 6871 -1 -6872 6872 4 -6873 6872 -1 -6972 6872 -1 -6873 6873 4 -6874 6873 -1 -6973 6873 -1 -6874 6874 4 -6875 6874 -1 -6974 6874 -1 -6875 6875 4 -6876 6875 -1 -6975 6875 -1 -6876 6876 4 -6877 6876 -1 -6976 6876 -1 -6877 6877 4 -6878 6877 -1 -6977 6877 -1 -6878 6878 4 -6879 6878 -1 -6978 6878 -1 -6879 6879 4 -6880 6879 -1 -6979 6879 -1 -6880 6880 4 -6881 6880 -1 -6980 6880 -1 -6881 6881 4 -6882 6881 -1 -6981 6881 -1 -6882 6882 4 -6883 6882 -1 -6982 6882 -1 -6883 6883 4 -6884 6883 -1 -6983 6883 -1 -6884 6884 4 -6885 6884 -1 -6984 6884 -1 -6885 6885 4 -6886 6885 -1 -6985 6885 -1 -6886 6886 4 -6887 6886 -1 -6986 6886 -1 -6887 6887 4 -6888 6887 -1 -6987 6887 -1 -6888 6888 4 -6889 6888 -1 -6988 6888 -1 -6889 6889 4 -6890 6889 -1 -6989 6889 -1 -6890 6890 4 -6891 6890 -1 -6990 6890 -1 -6891 6891 4 -6892 6891 -1 -6991 6891 -1 -6892 6892 4 -6893 6892 -1 -6992 6892 -1 -6893 6893 4 -6894 6893 -1 -6993 6893 -1 -6894 6894 4 -6895 6894 -1 -6994 6894 -1 -6895 6895 4 -6896 6895 -1 -6995 6895 -1 -6896 6896 4 -6897 6896 -1 -6996 6896 -1 -6897 6897 4 -6898 6897 -1 -6997 6897 -1 -6898 6898 4 -6899 6898 -1 -6998 6898 -1 -6899 6899 4 -6900 6899 -1 -6999 6899 -1 -6900 6900 4 -7000 6900 -1 -6901 6901 4 -6902 6901 -1 -7001 6901 -1 -6902 6902 4 -6903 6902 -1 -7002 6902 -1 -6903 6903 4 -6904 6903 -1 -7003 6903 -1 -6904 6904 4 -6905 6904 -1 -7004 6904 -1 -6905 6905 4 -6906 6905 -1 -7005 6905 -1 -6906 6906 4 -6907 6906 -1 -7006 6906 -1 -6907 6907 4 -6908 6907 -1 -7007 6907 -1 -6908 6908 4 -6909 6908 -1 -7008 6908 -1 -6909 6909 4 -6910 6909 -1 -7009 6909 -1 -6910 6910 4 -6911 6910 -1 -7010 6910 -1 -6911 6911 4 -6912 6911 -1 -7011 6911 -1 -6912 6912 4 -6913 6912 -1 -7012 6912 -1 -6913 6913 4 -6914 6913 -1 -7013 6913 -1 -6914 6914 4 -6915 6914 -1 -7014 6914 -1 -6915 6915 4 -6916 6915 -1 -7015 6915 -1 -6916 6916 4 -6917 6916 -1 -7016 6916 -1 -6917 6917 4 -6918 6917 -1 -7017 6917 -1 -6918 6918 4 -6919 6918 -1 -7018 6918 -1 -6919 6919 4 -6920 6919 -1 -7019 6919 -1 -6920 6920 4 -6921 6920 -1 -7020 6920 -1 -6921 6921 4 -6922 6921 -1 -7021 6921 -1 -6922 6922 4 -6923 6922 -1 -7022 6922 -1 -6923 6923 4 -6924 6923 -1 -7023 6923 -1 -6924 6924 4 -6925 6924 -1 -7024 6924 -1 -6925 6925 4 -6926 6925 -1 -7025 6925 -1 -6926 6926 4 -6927 6926 -1 -7026 6926 -1 -6927 6927 4 -6928 6927 -1 -7027 6927 -1 -6928 6928 4 -6929 6928 -1 -7028 6928 -1 -6929 6929 4 -6930 6929 -1 -7029 6929 -1 -6930 6930 4 -6931 6930 -1 -7030 6930 -1 -6931 6931 4 -6932 6931 -1 -7031 6931 -1 -6932 6932 4 -6933 6932 -1 -7032 6932 -1 -6933 6933 4 -6934 6933 -1 -7033 6933 -1 -6934 6934 4 -6935 6934 -1 -7034 6934 -1 -6935 6935 4 -6936 6935 -1 -7035 6935 -1 -6936 6936 4 -6937 6936 -1 -7036 6936 -1 -6937 6937 4 -6938 6937 -1 -7037 6937 -1 -6938 6938 4 -6939 6938 -1 -7038 6938 -1 -6939 6939 4 -6940 6939 -1 -7039 6939 -1 -6940 6940 4 -6941 6940 -1 -7040 6940 -1 -6941 6941 4 -6942 6941 -1 -7041 6941 -1 -6942 6942 4 -6943 6942 -1 -7042 6942 -1 -6943 6943 4 -6944 6943 -1 -7043 6943 -1 -6944 6944 4 -6945 6944 -1 -7044 6944 -1 -6945 6945 4 -6946 6945 -1 -7045 6945 -1 -6946 6946 4 -6947 6946 -1 -7046 6946 -1 -6947 6947 4 -6948 6947 -1 -7047 6947 -1 -6948 6948 4 -6949 6948 -1 -7048 6948 -1 -6949 6949 4 -6950 6949 -1 -7049 6949 -1 -6950 6950 4 -6951 6950 -1 -7050 6950 -1 -6951 6951 4 -6952 6951 -1 -7051 6951 -1 -6952 6952 4 -6953 6952 -1 -7052 6952 -1 -6953 6953 4 -6954 6953 -1 -7053 6953 -1 -6954 6954 4 -6955 6954 -1 -7054 6954 -1 -6955 6955 4 -6956 6955 -1 -7055 6955 -1 -6956 6956 4 -6957 6956 -1 -7056 6956 -1 -6957 6957 4 -6958 6957 -1 -7057 6957 -1 -6958 6958 4 -6959 6958 -1 -7058 6958 -1 -6959 6959 4 -6960 6959 -1 -7059 6959 -1 -6960 6960 4 -6961 6960 -1 -7060 6960 -1 -6961 6961 4 -6962 6961 -1 -7061 6961 -1 -6962 6962 4 -6963 6962 -1 -7062 6962 -1 -6963 6963 4 -6964 6963 -1 -7063 6963 -1 -6964 6964 4 -6965 6964 -1 -7064 6964 -1 -6965 6965 4 -6966 6965 -1 -7065 6965 -1 -6966 6966 4 -6967 6966 -1 -7066 6966 -1 -6967 6967 4 -6968 6967 -1 -7067 6967 -1 -6968 6968 4 -6969 6968 -1 -7068 6968 -1 -6969 6969 4 -6970 6969 -1 -7069 6969 -1 -6970 6970 4 -6971 6970 -1 -7070 6970 -1 -6971 6971 4 -6972 6971 -1 -7071 6971 -1 -6972 6972 4 -6973 6972 -1 -7072 6972 -1 -6973 6973 4 -6974 6973 -1 -7073 6973 -1 -6974 6974 4 -6975 6974 -1 -7074 6974 -1 -6975 6975 4 -6976 6975 -1 -7075 6975 -1 -6976 6976 4 -6977 6976 -1 -7076 6976 -1 -6977 6977 4 -6978 6977 -1 -7077 6977 -1 -6978 6978 4 -6979 6978 -1 -7078 6978 -1 -6979 6979 4 -6980 6979 -1 -7079 6979 -1 -6980 6980 4 -6981 6980 -1 -7080 6980 -1 -6981 6981 4 -6982 6981 -1 -7081 6981 -1 -6982 6982 4 -6983 6982 -1 -7082 6982 -1 -6983 6983 4 -6984 6983 -1 -7083 6983 -1 -6984 6984 4 -6985 6984 -1 -7084 6984 -1 -6985 6985 4 -6986 6985 -1 -7085 6985 -1 -6986 6986 4 -6987 6986 -1 -7086 6986 -1 -6987 6987 4 -6988 6987 -1 -7087 6987 -1 -6988 6988 4 -6989 6988 -1 -7088 6988 -1 -6989 6989 4 -6990 6989 -1 -7089 6989 -1 -6990 6990 4 -6991 6990 -1 -7090 6990 -1 -6991 6991 4 -6992 6991 -1 -7091 6991 -1 -6992 6992 4 -6993 6992 -1 -7092 6992 -1 -6993 6993 4 -6994 6993 -1 -7093 6993 -1 -6994 6994 4 -6995 6994 -1 -7094 6994 -1 -6995 6995 4 -6996 6995 -1 -7095 6995 -1 -6996 6996 4 -6997 6996 -1 -7096 6996 -1 -6997 6997 4 -6998 6997 -1 -7097 6997 -1 -6998 6998 4 -6999 6998 -1 -7098 6998 -1 -6999 6999 4 -7000 6999 -1 -7099 6999 -1 -7000 7000 4 -7100 7000 -1 -7001 7001 4 -7002 7001 -1 -7101 7001 -1 -7002 7002 4 -7003 7002 -1 -7102 7002 -1 -7003 7003 4 -7004 7003 -1 -7103 7003 -1 -7004 7004 4 -7005 7004 -1 -7104 7004 -1 -7005 7005 4 -7006 7005 -1 -7105 7005 -1 -7006 7006 4 -7007 7006 -1 -7106 7006 -1 -7007 7007 4 -7008 7007 -1 -7107 7007 -1 -7008 7008 4 -7009 7008 -1 -7108 7008 -1 -7009 7009 4 -7010 7009 -1 -7109 7009 -1 -7010 7010 4 -7011 7010 -1 -7110 7010 -1 -7011 7011 4 -7012 7011 -1 -7111 7011 -1 -7012 7012 4 -7013 7012 -1 -7112 7012 -1 -7013 7013 4 -7014 7013 -1 -7113 7013 -1 -7014 7014 4 -7015 7014 -1 -7114 7014 -1 -7015 7015 4 -7016 7015 -1 -7115 7015 -1 -7016 7016 4 -7017 7016 -1 -7116 7016 -1 -7017 7017 4 -7018 7017 -1 -7117 7017 -1 -7018 7018 4 -7019 7018 -1 -7118 7018 -1 -7019 7019 4 -7020 7019 -1 -7119 7019 -1 -7020 7020 4 -7021 7020 -1 -7120 7020 -1 -7021 7021 4 -7022 7021 -1 -7121 7021 -1 -7022 7022 4 -7023 7022 -1 -7122 7022 -1 -7023 7023 4 -7024 7023 -1 -7123 7023 -1 -7024 7024 4 -7025 7024 -1 -7124 7024 -1 -7025 7025 4 -7026 7025 -1 -7125 7025 -1 -7026 7026 4 -7027 7026 -1 -7126 7026 -1 -7027 7027 4 -7028 7027 -1 -7127 7027 -1 -7028 7028 4 -7029 7028 -1 -7128 7028 -1 -7029 7029 4 -7030 7029 -1 -7129 7029 -1 -7030 7030 4 -7031 7030 -1 -7130 7030 -1 -7031 7031 4 -7032 7031 -1 -7131 7031 -1 -7032 7032 4 -7033 7032 -1 -7132 7032 -1 -7033 7033 4 -7034 7033 -1 -7133 7033 -1 -7034 7034 4 -7035 7034 -1 -7134 7034 -1 -7035 7035 4 -7036 7035 -1 -7135 7035 -1 -7036 7036 4 -7037 7036 -1 -7136 7036 -1 -7037 7037 4 -7038 7037 -1 -7137 7037 -1 -7038 7038 4 -7039 7038 -1 -7138 7038 -1 -7039 7039 4 -7040 7039 -1 -7139 7039 -1 -7040 7040 4 -7041 7040 -1 -7140 7040 -1 -7041 7041 4 -7042 7041 -1 -7141 7041 -1 -7042 7042 4 -7043 7042 -1 -7142 7042 -1 -7043 7043 4 -7044 7043 -1 -7143 7043 -1 -7044 7044 4 -7045 7044 -1 -7144 7044 -1 -7045 7045 4 -7046 7045 -1 -7145 7045 -1 -7046 7046 4 -7047 7046 -1 -7146 7046 -1 -7047 7047 4 -7048 7047 -1 -7147 7047 -1 -7048 7048 4 -7049 7048 -1 -7148 7048 -1 -7049 7049 4 -7050 7049 -1 -7149 7049 -1 -7050 7050 4 -7051 7050 -1 -7150 7050 -1 -7051 7051 4 -7052 7051 -1 -7151 7051 -1 -7052 7052 4 -7053 7052 -1 -7152 7052 -1 -7053 7053 4 -7054 7053 -1 -7153 7053 -1 -7054 7054 4 -7055 7054 -1 -7154 7054 -1 -7055 7055 4 -7056 7055 -1 -7155 7055 -1 -7056 7056 4 -7057 7056 -1 -7156 7056 -1 -7057 7057 4 -7058 7057 -1 -7157 7057 -1 -7058 7058 4 -7059 7058 -1 -7158 7058 -1 -7059 7059 4 -7060 7059 -1 -7159 7059 -1 -7060 7060 4 -7061 7060 -1 -7160 7060 -1 -7061 7061 4 -7062 7061 -1 -7161 7061 -1 -7062 7062 4 -7063 7062 -1 -7162 7062 -1 -7063 7063 4 -7064 7063 -1 -7163 7063 -1 -7064 7064 4 -7065 7064 -1 -7164 7064 -1 -7065 7065 4 -7066 7065 -1 -7165 7065 -1 -7066 7066 4 -7067 7066 -1 -7166 7066 -1 -7067 7067 4 -7068 7067 -1 -7167 7067 -1 -7068 7068 4 -7069 7068 -1 -7168 7068 -1 -7069 7069 4 -7070 7069 -1 -7169 7069 -1 -7070 7070 4 -7071 7070 -1 -7170 7070 -1 -7071 7071 4 -7072 7071 -1 -7171 7071 -1 -7072 7072 4 -7073 7072 -1 -7172 7072 -1 -7073 7073 4 -7074 7073 -1 -7173 7073 -1 -7074 7074 4 -7075 7074 -1 -7174 7074 -1 -7075 7075 4 -7076 7075 -1 -7175 7075 -1 -7076 7076 4 -7077 7076 -1 -7176 7076 -1 -7077 7077 4 -7078 7077 -1 -7177 7077 -1 -7078 7078 4 -7079 7078 -1 -7178 7078 -1 -7079 7079 4 -7080 7079 -1 -7179 7079 -1 -7080 7080 4 -7081 7080 -1 -7180 7080 -1 -7081 7081 4 -7082 7081 -1 -7181 7081 -1 -7082 7082 4 -7083 7082 -1 -7182 7082 -1 -7083 7083 4 -7084 7083 -1 -7183 7083 -1 -7084 7084 4 -7085 7084 -1 -7184 7084 -1 -7085 7085 4 -7086 7085 -1 -7185 7085 -1 -7086 7086 4 -7087 7086 -1 -7186 7086 -1 -7087 7087 4 -7088 7087 -1 -7187 7087 -1 -7088 7088 4 -7089 7088 -1 -7188 7088 -1 -7089 7089 4 -7090 7089 -1 -7189 7089 -1 -7090 7090 4 -7091 7090 -1 -7190 7090 -1 -7091 7091 4 -7092 7091 -1 -7191 7091 -1 -7092 7092 4 -7093 7092 -1 -7192 7092 -1 -7093 7093 4 -7094 7093 -1 -7193 7093 -1 -7094 7094 4 -7095 7094 -1 -7194 7094 -1 -7095 7095 4 -7096 7095 -1 -7195 7095 -1 -7096 7096 4 -7097 7096 -1 -7196 7096 -1 -7097 7097 4 -7098 7097 -1 -7197 7097 -1 -7098 7098 4 -7099 7098 -1 -7198 7098 -1 -7099 7099 4 -7100 7099 -1 -7199 7099 -1 -7100 7100 4 -7200 7100 -1 -7101 7101 4 -7102 7101 -1 -7201 7101 -1 -7102 7102 4 -7103 7102 -1 -7202 7102 -1 -7103 7103 4 -7104 7103 -1 -7203 7103 -1 -7104 7104 4 -7105 7104 -1 -7204 7104 -1 -7105 7105 4 -7106 7105 -1 -7205 7105 -1 -7106 7106 4 -7107 7106 -1 -7206 7106 -1 -7107 7107 4 -7108 7107 -1 -7207 7107 -1 -7108 7108 4 -7109 7108 -1 -7208 7108 -1 -7109 7109 4 -7110 7109 -1 -7209 7109 -1 -7110 7110 4 -7111 7110 -1 -7210 7110 -1 -7111 7111 4 -7112 7111 -1 -7211 7111 -1 -7112 7112 4 -7113 7112 -1 -7212 7112 -1 -7113 7113 4 -7114 7113 -1 -7213 7113 -1 -7114 7114 4 -7115 7114 -1 -7214 7114 -1 -7115 7115 4 -7116 7115 -1 -7215 7115 -1 -7116 7116 4 -7117 7116 -1 -7216 7116 -1 -7117 7117 4 -7118 7117 -1 -7217 7117 -1 -7118 7118 4 -7119 7118 -1 -7218 7118 -1 -7119 7119 4 -7120 7119 -1 -7219 7119 -1 -7120 7120 4 -7121 7120 -1 -7220 7120 -1 -7121 7121 4 -7122 7121 -1 -7221 7121 -1 -7122 7122 4 -7123 7122 -1 -7222 7122 -1 -7123 7123 4 -7124 7123 -1 -7223 7123 -1 -7124 7124 4 -7125 7124 -1 -7224 7124 -1 -7125 7125 4 -7126 7125 -1 -7225 7125 -1 -7126 7126 4 -7127 7126 -1 -7226 7126 -1 -7127 7127 4 -7128 7127 -1 -7227 7127 -1 -7128 7128 4 -7129 7128 -1 -7228 7128 -1 -7129 7129 4 -7130 7129 -1 -7229 7129 -1 -7130 7130 4 -7131 7130 -1 -7230 7130 -1 -7131 7131 4 -7132 7131 -1 -7231 7131 -1 -7132 7132 4 -7133 7132 -1 -7232 7132 -1 -7133 7133 4 -7134 7133 -1 -7233 7133 -1 -7134 7134 4 -7135 7134 -1 -7234 7134 -1 -7135 7135 4 -7136 7135 -1 -7235 7135 -1 -7136 7136 4 -7137 7136 -1 -7236 7136 -1 -7137 7137 4 -7138 7137 -1 -7237 7137 -1 -7138 7138 4 -7139 7138 -1 -7238 7138 -1 -7139 7139 4 -7140 7139 -1 -7239 7139 -1 -7140 7140 4 -7141 7140 -1 -7240 7140 -1 -7141 7141 4 -7142 7141 -1 -7241 7141 -1 -7142 7142 4 -7143 7142 -1 -7242 7142 -1 -7143 7143 4 -7144 7143 -1 -7243 7143 -1 -7144 7144 4 -7145 7144 -1 -7244 7144 -1 -7145 7145 4 -7146 7145 -1 -7245 7145 -1 -7146 7146 4 -7147 7146 -1 -7246 7146 -1 -7147 7147 4 -7148 7147 -1 -7247 7147 -1 -7148 7148 4 -7149 7148 -1 -7248 7148 -1 -7149 7149 4 -7150 7149 -1 -7249 7149 -1 -7150 7150 4 -7151 7150 -1 -7250 7150 -1 -7151 7151 4 -7152 7151 -1 -7251 7151 -1 -7152 7152 4 -7153 7152 -1 -7252 7152 -1 -7153 7153 4 -7154 7153 -1 -7253 7153 -1 -7154 7154 4 -7155 7154 -1 -7254 7154 -1 -7155 7155 4 -7156 7155 -1 -7255 7155 -1 -7156 7156 4 -7157 7156 -1 -7256 7156 -1 -7157 7157 4 -7158 7157 -1 -7257 7157 -1 -7158 7158 4 -7159 7158 -1 -7258 7158 -1 -7159 7159 4 -7160 7159 -1 -7259 7159 -1 -7160 7160 4 -7161 7160 -1 -7260 7160 -1 -7161 7161 4 -7162 7161 -1 -7261 7161 -1 -7162 7162 4 -7163 7162 -1 -7262 7162 -1 -7163 7163 4 -7164 7163 -1 -7263 7163 -1 -7164 7164 4 -7165 7164 -1 -7264 7164 -1 -7165 7165 4 -7166 7165 -1 -7265 7165 -1 -7166 7166 4 -7167 7166 -1 -7266 7166 -1 -7167 7167 4 -7168 7167 -1 -7267 7167 -1 -7168 7168 4 -7169 7168 -1 -7268 7168 -1 -7169 7169 4 -7170 7169 -1 -7269 7169 -1 -7170 7170 4 -7171 7170 -1 -7270 7170 -1 -7171 7171 4 -7172 7171 -1 -7271 7171 -1 -7172 7172 4 -7173 7172 -1 -7272 7172 -1 -7173 7173 4 -7174 7173 -1 -7273 7173 -1 -7174 7174 4 -7175 7174 -1 -7274 7174 -1 -7175 7175 4 -7176 7175 -1 -7275 7175 -1 -7176 7176 4 -7177 7176 -1 -7276 7176 -1 -7177 7177 4 -7178 7177 -1 -7277 7177 -1 -7178 7178 4 -7179 7178 -1 -7278 7178 -1 -7179 7179 4 -7180 7179 -1 -7279 7179 -1 -7180 7180 4 -7181 7180 -1 -7280 7180 -1 -7181 7181 4 -7182 7181 -1 -7281 7181 -1 -7182 7182 4 -7183 7182 -1 -7282 7182 -1 -7183 7183 4 -7184 7183 -1 -7283 7183 -1 -7184 7184 4 -7185 7184 -1 -7284 7184 -1 -7185 7185 4 -7186 7185 -1 -7285 7185 -1 -7186 7186 4 -7187 7186 -1 -7286 7186 -1 -7187 7187 4 -7188 7187 -1 -7287 7187 -1 -7188 7188 4 -7189 7188 -1 -7288 7188 -1 -7189 7189 4 -7190 7189 -1 -7289 7189 -1 -7190 7190 4 -7191 7190 -1 -7290 7190 -1 -7191 7191 4 -7192 7191 -1 -7291 7191 -1 -7192 7192 4 -7193 7192 -1 -7292 7192 -1 -7193 7193 4 -7194 7193 -1 -7293 7193 -1 -7194 7194 4 -7195 7194 -1 -7294 7194 -1 -7195 7195 4 -7196 7195 -1 -7295 7195 -1 -7196 7196 4 -7197 7196 -1 -7296 7196 -1 -7197 7197 4 -7198 7197 -1 -7297 7197 -1 -7198 7198 4 -7199 7198 -1 -7298 7198 -1 -7199 7199 4 -7200 7199 -1 -7299 7199 -1 -7200 7200 4 -7300 7200 -1 -7201 7201 4 -7202 7201 -1 -7301 7201 -1 -7202 7202 4 -7203 7202 -1 -7302 7202 -1 -7203 7203 4 -7204 7203 -1 -7303 7203 -1 -7204 7204 4 -7205 7204 -1 -7304 7204 -1 -7205 7205 4 -7206 7205 -1 -7305 7205 -1 -7206 7206 4 -7207 7206 -1 -7306 7206 -1 -7207 7207 4 -7208 7207 -1 -7307 7207 -1 -7208 7208 4 -7209 7208 -1 -7308 7208 -1 -7209 7209 4 -7210 7209 -1 -7309 7209 -1 -7210 7210 4 -7211 7210 -1 -7310 7210 -1 -7211 7211 4 -7212 7211 -1 -7311 7211 -1 -7212 7212 4 -7213 7212 -1 -7312 7212 -1 -7213 7213 4 -7214 7213 -1 -7313 7213 -1 -7214 7214 4 -7215 7214 -1 -7314 7214 -1 -7215 7215 4 -7216 7215 -1 -7315 7215 -1 -7216 7216 4 -7217 7216 -1 -7316 7216 -1 -7217 7217 4 -7218 7217 -1 -7317 7217 -1 -7218 7218 4 -7219 7218 -1 -7318 7218 -1 -7219 7219 4 -7220 7219 -1 -7319 7219 -1 -7220 7220 4 -7221 7220 -1 -7320 7220 -1 -7221 7221 4 -7222 7221 -1 -7321 7221 -1 -7222 7222 4 -7223 7222 -1 -7322 7222 -1 -7223 7223 4 -7224 7223 -1 -7323 7223 -1 -7224 7224 4 -7225 7224 -1 -7324 7224 -1 -7225 7225 4 -7226 7225 -1 -7325 7225 -1 -7226 7226 4 -7227 7226 -1 -7326 7226 -1 -7227 7227 4 -7228 7227 -1 -7327 7227 -1 -7228 7228 4 -7229 7228 -1 -7328 7228 -1 -7229 7229 4 -7230 7229 -1 -7329 7229 -1 -7230 7230 4 -7231 7230 -1 -7330 7230 -1 -7231 7231 4 -7232 7231 -1 -7331 7231 -1 -7232 7232 4 -7233 7232 -1 -7332 7232 -1 -7233 7233 4 -7234 7233 -1 -7333 7233 -1 -7234 7234 4 -7235 7234 -1 -7334 7234 -1 -7235 7235 4 -7236 7235 -1 -7335 7235 -1 -7236 7236 4 -7237 7236 -1 -7336 7236 -1 -7237 7237 4 -7238 7237 -1 -7337 7237 -1 -7238 7238 4 -7239 7238 -1 -7338 7238 -1 -7239 7239 4 -7240 7239 -1 -7339 7239 -1 -7240 7240 4 -7241 7240 -1 -7340 7240 -1 -7241 7241 4 -7242 7241 -1 -7341 7241 -1 -7242 7242 4 -7243 7242 -1 -7342 7242 -1 -7243 7243 4 -7244 7243 -1 -7343 7243 -1 -7244 7244 4 -7245 7244 -1 -7344 7244 -1 -7245 7245 4 -7246 7245 -1 -7345 7245 -1 -7246 7246 4 -7247 7246 -1 -7346 7246 -1 -7247 7247 4 -7248 7247 -1 -7347 7247 -1 -7248 7248 4 -7249 7248 -1 -7348 7248 -1 -7249 7249 4 -7250 7249 -1 -7349 7249 -1 -7250 7250 4 -7251 7250 -1 -7350 7250 -1 -7251 7251 4 -7252 7251 -1 -7351 7251 -1 -7252 7252 4 -7253 7252 -1 -7352 7252 -1 -7253 7253 4 -7254 7253 -1 -7353 7253 -1 -7254 7254 4 -7255 7254 -1 -7354 7254 -1 -7255 7255 4 -7256 7255 -1 -7355 7255 -1 -7256 7256 4 -7257 7256 -1 -7356 7256 -1 -7257 7257 4 -7258 7257 -1 -7357 7257 -1 -7258 7258 4 -7259 7258 -1 -7358 7258 -1 -7259 7259 4 -7260 7259 -1 -7359 7259 -1 -7260 7260 4 -7261 7260 -1 -7360 7260 -1 -7261 7261 4 -7262 7261 -1 -7361 7261 -1 -7262 7262 4 -7263 7262 -1 -7362 7262 -1 -7263 7263 4 -7264 7263 -1 -7363 7263 -1 -7264 7264 4 -7265 7264 -1 -7364 7264 -1 -7265 7265 4 -7266 7265 -1 -7365 7265 -1 -7266 7266 4 -7267 7266 -1 -7366 7266 -1 -7267 7267 4 -7268 7267 -1 -7367 7267 -1 -7268 7268 4 -7269 7268 -1 -7368 7268 -1 -7269 7269 4 -7270 7269 -1 -7369 7269 -1 -7270 7270 4 -7271 7270 -1 -7370 7270 -1 -7271 7271 4 -7272 7271 -1 -7371 7271 -1 -7272 7272 4 -7273 7272 -1 -7372 7272 -1 -7273 7273 4 -7274 7273 -1 -7373 7273 -1 -7274 7274 4 -7275 7274 -1 -7374 7274 -1 -7275 7275 4 -7276 7275 -1 -7375 7275 -1 -7276 7276 4 -7277 7276 -1 -7376 7276 -1 -7277 7277 4 -7278 7277 -1 -7377 7277 -1 -7278 7278 4 -7279 7278 -1 -7378 7278 -1 -7279 7279 4 -7280 7279 -1 -7379 7279 -1 -7280 7280 4 -7281 7280 -1 -7380 7280 -1 -7281 7281 4 -7282 7281 -1 -7381 7281 -1 -7282 7282 4 -7283 7282 -1 -7382 7282 -1 -7283 7283 4 -7284 7283 -1 -7383 7283 -1 -7284 7284 4 -7285 7284 -1 -7384 7284 -1 -7285 7285 4 -7286 7285 -1 -7385 7285 -1 -7286 7286 4 -7287 7286 -1 -7386 7286 -1 -7287 7287 4 -7288 7287 -1 -7387 7287 -1 -7288 7288 4 -7289 7288 -1 -7388 7288 -1 -7289 7289 4 -7290 7289 -1 -7389 7289 -1 -7290 7290 4 -7291 7290 -1 -7390 7290 -1 -7291 7291 4 -7292 7291 -1 -7391 7291 -1 -7292 7292 4 -7293 7292 -1 -7392 7292 -1 -7293 7293 4 -7294 7293 -1 -7393 7293 -1 -7294 7294 4 -7295 7294 -1 -7394 7294 -1 -7295 7295 4 -7296 7295 -1 -7395 7295 -1 -7296 7296 4 -7297 7296 -1 -7396 7296 -1 -7297 7297 4 -7298 7297 -1 -7397 7297 -1 -7298 7298 4 -7299 7298 -1 -7398 7298 -1 -7299 7299 4 -7300 7299 -1 -7399 7299 -1 -7300 7300 4 -7400 7300 -1 -7301 7301 4 -7302 7301 -1 -7401 7301 -1 -7302 7302 4 -7303 7302 -1 -7402 7302 -1 -7303 7303 4 -7304 7303 -1 -7403 7303 -1 -7304 7304 4 -7305 7304 -1 -7404 7304 -1 -7305 7305 4 -7306 7305 -1 -7405 7305 -1 -7306 7306 4 -7307 7306 -1 -7406 7306 -1 -7307 7307 4 -7308 7307 -1 -7407 7307 -1 -7308 7308 4 -7309 7308 -1 -7408 7308 -1 -7309 7309 4 -7310 7309 -1 -7409 7309 -1 -7310 7310 4 -7311 7310 -1 -7410 7310 -1 -7311 7311 4 -7312 7311 -1 -7411 7311 -1 -7312 7312 4 -7313 7312 -1 -7412 7312 -1 -7313 7313 4 -7314 7313 -1 -7413 7313 -1 -7314 7314 4 -7315 7314 -1 -7414 7314 -1 -7315 7315 4 -7316 7315 -1 -7415 7315 -1 -7316 7316 4 -7317 7316 -1 -7416 7316 -1 -7317 7317 4 -7318 7317 -1 -7417 7317 -1 -7318 7318 4 -7319 7318 -1 -7418 7318 -1 -7319 7319 4 -7320 7319 -1 -7419 7319 -1 -7320 7320 4 -7321 7320 -1 -7420 7320 -1 -7321 7321 4 -7322 7321 -1 -7421 7321 -1 -7322 7322 4 -7323 7322 -1 -7422 7322 -1 -7323 7323 4 -7324 7323 -1 -7423 7323 -1 -7324 7324 4 -7325 7324 -1 -7424 7324 -1 -7325 7325 4 -7326 7325 -1 -7425 7325 -1 -7326 7326 4 -7327 7326 -1 -7426 7326 -1 -7327 7327 4 -7328 7327 -1 -7427 7327 -1 -7328 7328 4 -7329 7328 -1 -7428 7328 -1 -7329 7329 4 -7330 7329 -1 -7429 7329 -1 -7330 7330 4 -7331 7330 -1 -7430 7330 -1 -7331 7331 4 -7332 7331 -1 -7431 7331 -1 -7332 7332 4 -7333 7332 -1 -7432 7332 -1 -7333 7333 4 -7334 7333 -1 -7433 7333 -1 -7334 7334 4 -7335 7334 -1 -7434 7334 -1 -7335 7335 4 -7336 7335 -1 -7435 7335 -1 -7336 7336 4 -7337 7336 -1 -7436 7336 -1 -7337 7337 4 -7338 7337 -1 -7437 7337 -1 -7338 7338 4 -7339 7338 -1 -7438 7338 -1 -7339 7339 4 -7340 7339 -1 -7439 7339 -1 -7340 7340 4 -7341 7340 -1 -7440 7340 -1 -7341 7341 4 -7342 7341 -1 -7441 7341 -1 -7342 7342 4 -7343 7342 -1 -7442 7342 -1 -7343 7343 4 -7344 7343 -1 -7443 7343 -1 -7344 7344 4 -7345 7344 -1 -7444 7344 -1 -7345 7345 4 -7346 7345 -1 -7445 7345 -1 -7346 7346 4 -7347 7346 -1 -7446 7346 -1 -7347 7347 4 -7348 7347 -1 -7447 7347 -1 -7348 7348 4 -7349 7348 -1 -7448 7348 -1 -7349 7349 4 -7350 7349 -1 -7449 7349 -1 -7350 7350 4 -7351 7350 -1 -7450 7350 -1 -7351 7351 4 -7352 7351 -1 -7451 7351 -1 -7352 7352 4 -7353 7352 -1 -7452 7352 -1 -7353 7353 4 -7354 7353 -1 -7453 7353 -1 -7354 7354 4 -7355 7354 -1 -7454 7354 -1 -7355 7355 4 -7356 7355 -1 -7455 7355 -1 -7356 7356 4 -7357 7356 -1 -7456 7356 -1 -7357 7357 4 -7358 7357 -1 -7457 7357 -1 -7358 7358 4 -7359 7358 -1 -7458 7358 -1 -7359 7359 4 -7360 7359 -1 -7459 7359 -1 -7360 7360 4 -7361 7360 -1 -7460 7360 -1 -7361 7361 4 -7362 7361 -1 -7461 7361 -1 -7362 7362 4 -7363 7362 -1 -7462 7362 -1 -7363 7363 4 -7364 7363 -1 -7463 7363 -1 -7364 7364 4 -7365 7364 -1 -7464 7364 -1 -7365 7365 4 -7366 7365 -1 -7465 7365 -1 -7366 7366 4 -7367 7366 -1 -7466 7366 -1 -7367 7367 4 -7368 7367 -1 -7467 7367 -1 -7368 7368 4 -7369 7368 -1 -7468 7368 -1 -7369 7369 4 -7370 7369 -1 -7469 7369 -1 -7370 7370 4 -7371 7370 -1 -7470 7370 -1 -7371 7371 4 -7372 7371 -1 -7471 7371 -1 -7372 7372 4 -7373 7372 -1 -7472 7372 -1 -7373 7373 4 -7374 7373 -1 -7473 7373 -1 -7374 7374 4 -7375 7374 -1 -7474 7374 -1 -7375 7375 4 -7376 7375 -1 -7475 7375 -1 -7376 7376 4 -7377 7376 -1 -7476 7376 -1 -7377 7377 4 -7378 7377 -1 -7477 7377 -1 -7378 7378 4 -7379 7378 -1 -7478 7378 -1 -7379 7379 4 -7380 7379 -1 -7479 7379 -1 -7380 7380 4 -7381 7380 -1 -7480 7380 -1 -7381 7381 4 -7382 7381 -1 -7481 7381 -1 -7382 7382 4 -7383 7382 -1 -7482 7382 -1 -7383 7383 4 -7384 7383 -1 -7483 7383 -1 -7384 7384 4 -7385 7384 -1 -7484 7384 -1 -7385 7385 4 -7386 7385 -1 -7485 7385 -1 -7386 7386 4 -7387 7386 -1 -7486 7386 -1 -7387 7387 4 -7388 7387 -1 -7487 7387 -1 -7388 7388 4 -7389 7388 -1 -7488 7388 -1 -7389 7389 4 -7390 7389 -1 -7489 7389 -1 -7390 7390 4 -7391 7390 -1 -7490 7390 -1 -7391 7391 4 -7392 7391 -1 -7491 7391 -1 -7392 7392 4 -7393 7392 -1 -7492 7392 -1 -7393 7393 4 -7394 7393 -1 -7493 7393 -1 -7394 7394 4 -7395 7394 -1 -7494 7394 -1 -7395 7395 4 -7396 7395 -1 -7495 7395 -1 -7396 7396 4 -7397 7396 -1 -7496 7396 -1 -7397 7397 4 -7398 7397 -1 -7497 7397 -1 -7398 7398 4 -7399 7398 -1 -7498 7398 -1 -7399 7399 4 -7400 7399 -1 -7499 7399 -1 -7400 7400 4 -7500 7400 -1 -7401 7401 4 -7402 7401 -1 -7501 7401 -1 -7402 7402 4 -7403 7402 -1 -7502 7402 -1 -7403 7403 4 -7404 7403 -1 -7503 7403 -1 -7404 7404 4 -7405 7404 -1 -7504 7404 -1 -7405 7405 4 -7406 7405 -1 -7505 7405 -1 -7406 7406 4 -7407 7406 -1 -7506 7406 -1 -7407 7407 4 -7408 7407 -1 -7507 7407 -1 -7408 7408 4 -7409 7408 -1 -7508 7408 -1 -7409 7409 4 -7410 7409 -1 -7509 7409 -1 -7410 7410 4 -7411 7410 -1 -7510 7410 -1 -7411 7411 4 -7412 7411 -1 -7511 7411 -1 -7412 7412 4 -7413 7412 -1 -7512 7412 -1 -7413 7413 4 -7414 7413 -1 -7513 7413 -1 -7414 7414 4 -7415 7414 -1 -7514 7414 -1 -7415 7415 4 -7416 7415 -1 -7515 7415 -1 -7416 7416 4 -7417 7416 -1 -7516 7416 -1 -7417 7417 4 -7418 7417 -1 -7517 7417 -1 -7418 7418 4 -7419 7418 -1 -7518 7418 -1 -7419 7419 4 -7420 7419 -1 -7519 7419 -1 -7420 7420 4 -7421 7420 -1 -7520 7420 -1 -7421 7421 4 -7422 7421 -1 -7521 7421 -1 -7422 7422 4 -7423 7422 -1 -7522 7422 -1 -7423 7423 4 -7424 7423 -1 -7523 7423 -1 -7424 7424 4 -7425 7424 -1 -7524 7424 -1 -7425 7425 4 -7426 7425 -1 -7525 7425 -1 -7426 7426 4 -7427 7426 -1 -7526 7426 -1 -7427 7427 4 -7428 7427 -1 -7527 7427 -1 -7428 7428 4 -7429 7428 -1 -7528 7428 -1 -7429 7429 4 -7430 7429 -1 -7529 7429 -1 -7430 7430 4 -7431 7430 -1 -7530 7430 -1 -7431 7431 4 -7432 7431 -1 -7531 7431 -1 -7432 7432 4 -7433 7432 -1 -7532 7432 -1 -7433 7433 4 -7434 7433 -1 -7533 7433 -1 -7434 7434 4 -7435 7434 -1 -7534 7434 -1 -7435 7435 4 -7436 7435 -1 -7535 7435 -1 -7436 7436 4 -7437 7436 -1 -7536 7436 -1 -7437 7437 4 -7438 7437 -1 -7537 7437 -1 -7438 7438 4 -7439 7438 -1 -7538 7438 -1 -7439 7439 4 -7440 7439 -1 -7539 7439 -1 -7440 7440 4 -7441 7440 -1 -7540 7440 -1 -7441 7441 4 -7442 7441 -1 -7541 7441 -1 -7442 7442 4 -7443 7442 -1 -7542 7442 -1 -7443 7443 4 -7444 7443 -1 -7543 7443 -1 -7444 7444 4 -7445 7444 -1 -7544 7444 -1 -7445 7445 4 -7446 7445 -1 -7545 7445 -1 -7446 7446 4 -7447 7446 -1 -7546 7446 -1 -7447 7447 4 -7448 7447 -1 -7547 7447 -1 -7448 7448 4 -7449 7448 -1 -7548 7448 -1 -7449 7449 4 -7450 7449 -1 -7549 7449 -1 -7450 7450 4 -7451 7450 -1 -7550 7450 -1 -7451 7451 4 -7452 7451 -1 -7551 7451 -1 -7452 7452 4 -7453 7452 -1 -7552 7452 -1 -7453 7453 4 -7454 7453 -1 -7553 7453 -1 -7454 7454 4 -7455 7454 -1 -7554 7454 -1 -7455 7455 4 -7456 7455 -1 -7555 7455 -1 -7456 7456 4 -7457 7456 -1 -7556 7456 -1 -7457 7457 4 -7458 7457 -1 -7557 7457 -1 -7458 7458 4 -7459 7458 -1 -7558 7458 -1 -7459 7459 4 -7460 7459 -1 -7559 7459 -1 -7460 7460 4 -7461 7460 -1 -7560 7460 -1 -7461 7461 4 -7462 7461 -1 -7561 7461 -1 -7462 7462 4 -7463 7462 -1 -7562 7462 -1 -7463 7463 4 -7464 7463 -1 -7563 7463 -1 -7464 7464 4 -7465 7464 -1 -7564 7464 -1 -7465 7465 4 -7466 7465 -1 -7565 7465 -1 -7466 7466 4 -7467 7466 -1 -7566 7466 -1 -7467 7467 4 -7468 7467 -1 -7567 7467 -1 -7468 7468 4 -7469 7468 -1 -7568 7468 -1 -7469 7469 4 -7470 7469 -1 -7569 7469 -1 -7470 7470 4 -7471 7470 -1 -7570 7470 -1 -7471 7471 4 -7472 7471 -1 -7571 7471 -1 -7472 7472 4 -7473 7472 -1 -7572 7472 -1 -7473 7473 4 -7474 7473 -1 -7573 7473 -1 -7474 7474 4 -7475 7474 -1 -7574 7474 -1 -7475 7475 4 -7476 7475 -1 -7575 7475 -1 -7476 7476 4 -7477 7476 -1 -7576 7476 -1 -7477 7477 4 -7478 7477 -1 -7577 7477 -1 -7478 7478 4 -7479 7478 -1 -7578 7478 -1 -7479 7479 4 -7480 7479 -1 -7579 7479 -1 -7480 7480 4 -7481 7480 -1 -7580 7480 -1 -7481 7481 4 -7482 7481 -1 -7581 7481 -1 -7482 7482 4 -7483 7482 -1 -7582 7482 -1 -7483 7483 4 -7484 7483 -1 -7583 7483 -1 -7484 7484 4 -7485 7484 -1 -7584 7484 -1 -7485 7485 4 -7486 7485 -1 -7585 7485 -1 -7486 7486 4 -7487 7486 -1 -7586 7486 -1 -7487 7487 4 -7488 7487 -1 -7587 7487 -1 -7488 7488 4 -7489 7488 -1 -7588 7488 -1 -7489 7489 4 -7490 7489 -1 -7589 7489 -1 -7490 7490 4 -7491 7490 -1 -7590 7490 -1 -7491 7491 4 -7492 7491 -1 -7591 7491 -1 -7492 7492 4 -7493 7492 -1 -7592 7492 -1 -7493 7493 4 -7494 7493 -1 -7593 7493 -1 -7494 7494 4 -7495 7494 -1 -7594 7494 -1 -7495 7495 4 -7496 7495 -1 -7595 7495 -1 -7496 7496 4 -7497 7496 -1 -7596 7496 -1 -7497 7497 4 -7498 7497 -1 -7597 7497 -1 -7498 7498 4 -7499 7498 -1 -7598 7498 -1 -7499 7499 4 -7500 7499 -1 -7599 7499 -1 -7500 7500 4 -7600 7500 -1 -7501 7501 4 -7502 7501 -1 -7601 7501 -1 -7502 7502 4 -7503 7502 -1 -7602 7502 -1 -7503 7503 4 -7504 7503 -1 -7603 7503 -1 -7504 7504 4 -7505 7504 -1 -7604 7504 -1 -7505 7505 4 -7506 7505 -1 -7605 7505 -1 -7506 7506 4 -7507 7506 -1 -7606 7506 -1 -7507 7507 4 -7508 7507 -1 -7607 7507 -1 -7508 7508 4 -7509 7508 -1 -7608 7508 -1 -7509 7509 4 -7510 7509 -1 -7609 7509 -1 -7510 7510 4 -7511 7510 -1 -7610 7510 -1 -7511 7511 4 -7512 7511 -1 -7611 7511 -1 -7512 7512 4 -7513 7512 -1 -7612 7512 -1 -7513 7513 4 -7514 7513 -1 -7613 7513 -1 -7514 7514 4 -7515 7514 -1 -7614 7514 -1 -7515 7515 4 -7516 7515 -1 -7615 7515 -1 -7516 7516 4 -7517 7516 -1 -7616 7516 -1 -7517 7517 4 -7518 7517 -1 -7617 7517 -1 -7518 7518 4 -7519 7518 -1 -7618 7518 -1 -7519 7519 4 -7520 7519 -1 -7619 7519 -1 -7520 7520 4 -7521 7520 -1 -7620 7520 -1 -7521 7521 4 -7522 7521 -1 -7621 7521 -1 -7522 7522 4 -7523 7522 -1 -7622 7522 -1 -7523 7523 4 -7524 7523 -1 -7623 7523 -1 -7524 7524 4 -7525 7524 -1 -7624 7524 -1 -7525 7525 4 -7526 7525 -1 -7625 7525 -1 -7526 7526 4 -7527 7526 -1 -7626 7526 -1 -7527 7527 4 -7528 7527 -1 -7627 7527 -1 -7528 7528 4 -7529 7528 -1 -7628 7528 -1 -7529 7529 4 -7530 7529 -1 -7629 7529 -1 -7530 7530 4 -7531 7530 -1 -7630 7530 -1 -7531 7531 4 -7532 7531 -1 -7631 7531 -1 -7532 7532 4 -7533 7532 -1 -7632 7532 -1 -7533 7533 4 -7534 7533 -1 -7633 7533 -1 -7534 7534 4 -7535 7534 -1 -7634 7534 -1 -7535 7535 4 -7536 7535 -1 -7635 7535 -1 -7536 7536 4 -7537 7536 -1 -7636 7536 -1 -7537 7537 4 -7538 7537 -1 -7637 7537 -1 -7538 7538 4 -7539 7538 -1 -7638 7538 -1 -7539 7539 4 -7540 7539 -1 -7639 7539 -1 -7540 7540 4 -7541 7540 -1 -7640 7540 -1 -7541 7541 4 -7542 7541 -1 -7641 7541 -1 -7542 7542 4 -7543 7542 -1 -7642 7542 -1 -7543 7543 4 -7544 7543 -1 -7643 7543 -1 -7544 7544 4 -7545 7544 -1 -7644 7544 -1 -7545 7545 4 -7546 7545 -1 -7645 7545 -1 -7546 7546 4 -7547 7546 -1 -7646 7546 -1 -7547 7547 4 -7548 7547 -1 -7647 7547 -1 -7548 7548 4 -7549 7548 -1 -7648 7548 -1 -7549 7549 4 -7550 7549 -1 -7649 7549 -1 -7550 7550 4 -7551 7550 -1 -7650 7550 -1 -7551 7551 4 -7552 7551 -1 -7651 7551 -1 -7552 7552 4 -7553 7552 -1 -7652 7552 -1 -7553 7553 4 -7554 7553 -1 -7653 7553 -1 -7554 7554 4 -7555 7554 -1 -7654 7554 -1 -7555 7555 4 -7556 7555 -1 -7655 7555 -1 -7556 7556 4 -7557 7556 -1 -7656 7556 -1 -7557 7557 4 -7558 7557 -1 -7657 7557 -1 -7558 7558 4 -7559 7558 -1 -7658 7558 -1 -7559 7559 4 -7560 7559 -1 -7659 7559 -1 -7560 7560 4 -7561 7560 -1 -7660 7560 -1 -7561 7561 4 -7562 7561 -1 -7661 7561 -1 -7562 7562 4 -7563 7562 -1 -7662 7562 -1 -7563 7563 4 -7564 7563 -1 -7663 7563 -1 -7564 7564 4 -7565 7564 -1 -7664 7564 -1 -7565 7565 4 -7566 7565 -1 -7665 7565 -1 -7566 7566 4 -7567 7566 -1 -7666 7566 -1 -7567 7567 4 -7568 7567 -1 -7667 7567 -1 -7568 7568 4 -7569 7568 -1 -7668 7568 -1 -7569 7569 4 -7570 7569 -1 -7669 7569 -1 -7570 7570 4 -7571 7570 -1 -7670 7570 -1 -7571 7571 4 -7572 7571 -1 -7671 7571 -1 -7572 7572 4 -7573 7572 -1 -7672 7572 -1 -7573 7573 4 -7574 7573 -1 -7673 7573 -1 -7574 7574 4 -7575 7574 -1 -7674 7574 -1 -7575 7575 4 -7576 7575 -1 -7675 7575 -1 -7576 7576 4 -7577 7576 -1 -7676 7576 -1 -7577 7577 4 -7578 7577 -1 -7677 7577 -1 -7578 7578 4 -7579 7578 -1 -7678 7578 -1 -7579 7579 4 -7580 7579 -1 -7679 7579 -1 -7580 7580 4 -7581 7580 -1 -7680 7580 -1 -7581 7581 4 -7582 7581 -1 -7681 7581 -1 -7582 7582 4 -7583 7582 -1 -7682 7582 -1 -7583 7583 4 -7584 7583 -1 -7683 7583 -1 -7584 7584 4 -7585 7584 -1 -7684 7584 -1 -7585 7585 4 -7586 7585 -1 -7685 7585 -1 -7586 7586 4 -7587 7586 -1 -7686 7586 -1 -7587 7587 4 -7588 7587 -1 -7687 7587 -1 -7588 7588 4 -7589 7588 -1 -7688 7588 -1 -7589 7589 4 -7590 7589 -1 -7689 7589 -1 -7590 7590 4 -7591 7590 -1 -7690 7590 -1 -7591 7591 4 -7592 7591 -1 -7691 7591 -1 -7592 7592 4 -7593 7592 -1 -7692 7592 -1 -7593 7593 4 -7594 7593 -1 -7693 7593 -1 -7594 7594 4 -7595 7594 -1 -7694 7594 -1 -7595 7595 4 -7596 7595 -1 -7695 7595 -1 -7596 7596 4 -7597 7596 -1 -7696 7596 -1 -7597 7597 4 -7598 7597 -1 -7697 7597 -1 -7598 7598 4 -7599 7598 -1 -7698 7598 -1 -7599 7599 4 -7600 7599 -1 -7699 7599 -1 -7600 7600 4 -7700 7600 -1 -7601 7601 4 -7602 7601 -1 -7701 7601 -1 -7602 7602 4 -7603 7602 -1 -7702 7602 -1 -7603 7603 4 -7604 7603 -1 -7703 7603 -1 -7604 7604 4 -7605 7604 -1 -7704 7604 -1 -7605 7605 4 -7606 7605 -1 -7705 7605 -1 -7606 7606 4 -7607 7606 -1 -7706 7606 -1 -7607 7607 4 -7608 7607 -1 -7707 7607 -1 -7608 7608 4 -7609 7608 -1 -7708 7608 -1 -7609 7609 4 -7610 7609 -1 -7709 7609 -1 -7610 7610 4 -7611 7610 -1 -7710 7610 -1 -7611 7611 4 -7612 7611 -1 -7711 7611 -1 -7612 7612 4 -7613 7612 -1 -7712 7612 -1 -7613 7613 4 -7614 7613 -1 -7713 7613 -1 -7614 7614 4 -7615 7614 -1 -7714 7614 -1 -7615 7615 4 -7616 7615 -1 -7715 7615 -1 -7616 7616 4 -7617 7616 -1 -7716 7616 -1 -7617 7617 4 -7618 7617 -1 -7717 7617 -1 -7618 7618 4 -7619 7618 -1 -7718 7618 -1 -7619 7619 4 -7620 7619 -1 -7719 7619 -1 -7620 7620 4 -7621 7620 -1 -7720 7620 -1 -7621 7621 4 -7622 7621 -1 -7721 7621 -1 -7622 7622 4 -7623 7622 -1 -7722 7622 -1 -7623 7623 4 -7624 7623 -1 -7723 7623 -1 -7624 7624 4 -7625 7624 -1 -7724 7624 -1 -7625 7625 4 -7626 7625 -1 -7725 7625 -1 -7626 7626 4 -7627 7626 -1 -7726 7626 -1 -7627 7627 4 -7628 7627 -1 -7727 7627 -1 -7628 7628 4 -7629 7628 -1 -7728 7628 -1 -7629 7629 4 -7630 7629 -1 -7729 7629 -1 -7630 7630 4 -7631 7630 -1 -7730 7630 -1 -7631 7631 4 -7632 7631 -1 -7731 7631 -1 -7632 7632 4 -7633 7632 -1 -7732 7632 -1 -7633 7633 4 -7634 7633 -1 -7733 7633 -1 -7634 7634 4 -7635 7634 -1 -7734 7634 -1 -7635 7635 4 -7636 7635 -1 -7735 7635 -1 -7636 7636 4 -7637 7636 -1 -7736 7636 -1 -7637 7637 4 -7638 7637 -1 -7737 7637 -1 -7638 7638 4 -7639 7638 -1 -7738 7638 -1 -7639 7639 4 -7640 7639 -1 -7739 7639 -1 -7640 7640 4 -7641 7640 -1 -7740 7640 -1 -7641 7641 4 -7642 7641 -1 -7741 7641 -1 -7642 7642 4 -7643 7642 -1 -7742 7642 -1 -7643 7643 4 -7644 7643 -1 -7743 7643 -1 -7644 7644 4 -7645 7644 -1 -7744 7644 -1 -7645 7645 4 -7646 7645 -1 -7745 7645 -1 -7646 7646 4 -7647 7646 -1 -7746 7646 -1 -7647 7647 4 -7648 7647 -1 -7747 7647 -1 -7648 7648 4 -7649 7648 -1 -7748 7648 -1 -7649 7649 4 -7650 7649 -1 -7749 7649 -1 -7650 7650 4 -7651 7650 -1 -7750 7650 -1 -7651 7651 4 -7652 7651 -1 -7751 7651 -1 -7652 7652 4 -7653 7652 -1 -7752 7652 -1 -7653 7653 4 -7654 7653 -1 -7753 7653 -1 -7654 7654 4 -7655 7654 -1 -7754 7654 -1 -7655 7655 4 -7656 7655 -1 -7755 7655 -1 -7656 7656 4 -7657 7656 -1 -7756 7656 -1 -7657 7657 4 -7658 7657 -1 -7757 7657 -1 -7658 7658 4 -7659 7658 -1 -7758 7658 -1 -7659 7659 4 -7660 7659 -1 -7759 7659 -1 -7660 7660 4 -7661 7660 -1 -7760 7660 -1 -7661 7661 4 -7662 7661 -1 -7761 7661 -1 -7662 7662 4 -7663 7662 -1 -7762 7662 -1 -7663 7663 4 -7664 7663 -1 -7763 7663 -1 -7664 7664 4 -7665 7664 -1 -7764 7664 -1 -7665 7665 4 -7666 7665 -1 -7765 7665 -1 -7666 7666 4 -7667 7666 -1 -7766 7666 -1 -7667 7667 4 -7668 7667 -1 -7767 7667 -1 -7668 7668 4 -7669 7668 -1 -7768 7668 -1 -7669 7669 4 -7670 7669 -1 -7769 7669 -1 -7670 7670 4 -7671 7670 -1 -7770 7670 -1 -7671 7671 4 -7672 7671 -1 -7771 7671 -1 -7672 7672 4 -7673 7672 -1 -7772 7672 -1 -7673 7673 4 -7674 7673 -1 -7773 7673 -1 -7674 7674 4 -7675 7674 -1 -7774 7674 -1 -7675 7675 4 -7676 7675 -1 -7775 7675 -1 -7676 7676 4 -7677 7676 -1 -7776 7676 -1 -7677 7677 4 -7678 7677 -1 -7777 7677 -1 -7678 7678 4 -7679 7678 -1 -7778 7678 -1 -7679 7679 4 -7680 7679 -1 -7779 7679 -1 -7680 7680 4 -7681 7680 -1 -7780 7680 -1 -7681 7681 4 -7682 7681 -1 -7781 7681 -1 -7682 7682 4 -7683 7682 -1 -7782 7682 -1 -7683 7683 4 -7684 7683 -1 -7783 7683 -1 -7684 7684 4 -7685 7684 -1 -7784 7684 -1 -7685 7685 4 -7686 7685 -1 -7785 7685 -1 -7686 7686 4 -7687 7686 -1 -7786 7686 -1 -7687 7687 4 -7688 7687 -1 -7787 7687 -1 -7688 7688 4 -7689 7688 -1 -7788 7688 -1 -7689 7689 4 -7690 7689 -1 -7789 7689 -1 -7690 7690 4 -7691 7690 -1 -7790 7690 -1 -7691 7691 4 -7692 7691 -1 -7791 7691 -1 -7692 7692 4 -7693 7692 -1 -7792 7692 -1 -7693 7693 4 -7694 7693 -1 -7793 7693 -1 -7694 7694 4 -7695 7694 -1 -7794 7694 -1 -7695 7695 4 -7696 7695 -1 -7795 7695 -1 -7696 7696 4 -7697 7696 -1 -7796 7696 -1 -7697 7697 4 -7698 7697 -1 -7797 7697 -1 -7698 7698 4 -7699 7698 -1 -7798 7698 -1 -7699 7699 4 -7700 7699 -1 -7799 7699 -1 -7700 7700 4 -7800 7700 -1 -7701 7701 4 -7702 7701 -1 -7801 7701 -1 -7702 7702 4 -7703 7702 -1 -7802 7702 -1 -7703 7703 4 -7704 7703 -1 -7803 7703 -1 -7704 7704 4 -7705 7704 -1 -7804 7704 -1 -7705 7705 4 -7706 7705 -1 -7805 7705 -1 -7706 7706 4 -7707 7706 -1 -7806 7706 -1 -7707 7707 4 -7708 7707 -1 -7807 7707 -1 -7708 7708 4 -7709 7708 -1 -7808 7708 -1 -7709 7709 4 -7710 7709 -1 -7809 7709 -1 -7710 7710 4 -7711 7710 -1 -7810 7710 -1 -7711 7711 4 -7712 7711 -1 -7811 7711 -1 -7712 7712 4 -7713 7712 -1 -7812 7712 -1 -7713 7713 4 -7714 7713 -1 -7813 7713 -1 -7714 7714 4 -7715 7714 -1 -7814 7714 -1 -7715 7715 4 -7716 7715 -1 -7815 7715 -1 -7716 7716 4 -7717 7716 -1 -7816 7716 -1 -7717 7717 4 -7718 7717 -1 -7817 7717 -1 -7718 7718 4 -7719 7718 -1 -7818 7718 -1 -7719 7719 4 -7720 7719 -1 -7819 7719 -1 -7720 7720 4 -7721 7720 -1 -7820 7720 -1 -7721 7721 4 -7722 7721 -1 -7821 7721 -1 -7722 7722 4 -7723 7722 -1 -7822 7722 -1 -7723 7723 4 -7724 7723 -1 -7823 7723 -1 -7724 7724 4 -7725 7724 -1 -7824 7724 -1 -7725 7725 4 -7726 7725 -1 -7825 7725 -1 -7726 7726 4 -7727 7726 -1 -7826 7726 -1 -7727 7727 4 -7728 7727 -1 -7827 7727 -1 -7728 7728 4 -7729 7728 -1 -7828 7728 -1 -7729 7729 4 -7730 7729 -1 -7829 7729 -1 -7730 7730 4 -7731 7730 -1 -7830 7730 -1 -7731 7731 4 -7732 7731 -1 -7831 7731 -1 -7732 7732 4 -7733 7732 -1 -7832 7732 -1 -7733 7733 4 -7734 7733 -1 -7833 7733 -1 -7734 7734 4 -7735 7734 -1 -7834 7734 -1 -7735 7735 4 -7736 7735 -1 -7835 7735 -1 -7736 7736 4 -7737 7736 -1 -7836 7736 -1 -7737 7737 4 -7738 7737 -1 -7837 7737 -1 -7738 7738 4 -7739 7738 -1 -7838 7738 -1 -7739 7739 4 -7740 7739 -1 -7839 7739 -1 -7740 7740 4 -7741 7740 -1 -7840 7740 -1 -7741 7741 4 -7742 7741 -1 -7841 7741 -1 -7742 7742 4 -7743 7742 -1 -7842 7742 -1 -7743 7743 4 -7744 7743 -1 -7843 7743 -1 -7744 7744 4 -7745 7744 -1 -7844 7744 -1 -7745 7745 4 -7746 7745 -1 -7845 7745 -1 -7746 7746 4 -7747 7746 -1 -7846 7746 -1 -7747 7747 4 -7748 7747 -1 -7847 7747 -1 -7748 7748 4 -7749 7748 -1 -7848 7748 -1 -7749 7749 4 -7750 7749 -1 -7849 7749 -1 -7750 7750 4 -7751 7750 -1 -7850 7750 -1 -7751 7751 4 -7752 7751 -1 -7851 7751 -1 -7752 7752 4 -7753 7752 -1 -7852 7752 -1 -7753 7753 4 -7754 7753 -1 -7853 7753 -1 -7754 7754 4 -7755 7754 -1 -7854 7754 -1 -7755 7755 4 -7756 7755 -1 -7855 7755 -1 -7756 7756 4 -7757 7756 -1 -7856 7756 -1 -7757 7757 4 -7758 7757 -1 -7857 7757 -1 -7758 7758 4 -7759 7758 -1 -7858 7758 -1 -7759 7759 4 -7760 7759 -1 -7859 7759 -1 -7760 7760 4 -7761 7760 -1 -7860 7760 -1 -7761 7761 4 -7762 7761 -1 -7861 7761 -1 -7762 7762 4 -7763 7762 -1 -7862 7762 -1 -7763 7763 4 -7764 7763 -1 -7863 7763 -1 -7764 7764 4 -7765 7764 -1 -7864 7764 -1 -7765 7765 4 -7766 7765 -1 -7865 7765 -1 -7766 7766 4 -7767 7766 -1 -7866 7766 -1 -7767 7767 4 -7768 7767 -1 -7867 7767 -1 -7768 7768 4 -7769 7768 -1 -7868 7768 -1 -7769 7769 4 -7770 7769 -1 -7869 7769 -1 -7770 7770 4 -7771 7770 -1 -7870 7770 -1 -7771 7771 4 -7772 7771 -1 -7871 7771 -1 -7772 7772 4 -7773 7772 -1 -7872 7772 -1 -7773 7773 4 -7774 7773 -1 -7873 7773 -1 -7774 7774 4 -7775 7774 -1 -7874 7774 -1 -7775 7775 4 -7776 7775 -1 -7875 7775 -1 -7776 7776 4 -7777 7776 -1 -7876 7776 -1 -7777 7777 4 -7778 7777 -1 -7877 7777 -1 -7778 7778 4 -7779 7778 -1 -7878 7778 -1 -7779 7779 4 -7780 7779 -1 -7879 7779 -1 -7780 7780 4 -7781 7780 -1 -7880 7780 -1 -7781 7781 4 -7782 7781 -1 -7881 7781 -1 -7782 7782 4 -7783 7782 -1 -7882 7782 -1 -7783 7783 4 -7784 7783 -1 -7883 7783 -1 -7784 7784 4 -7785 7784 -1 -7884 7784 -1 -7785 7785 4 -7786 7785 -1 -7885 7785 -1 -7786 7786 4 -7787 7786 -1 -7886 7786 -1 -7787 7787 4 -7788 7787 -1 -7887 7787 -1 -7788 7788 4 -7789 7788 -1 -7888 7788 -1 -7789 7789 4 -7790 7789 -1 -7889 7789 -1 -7790 7790 4 -7791 7790 -1 -7890 7790 -1 -7791 7791 4 -7792 7791 -1 -7891 7791 -1 -7792 7792 4 -7793 7792 -1 -7892 7792 -1 -7793 7793 4 -7794 7793 -1 -7893 7793 -1 -7794 7794 4 -7795 7794 -1 -7894 7794 -1 -7795 7795 4 -7796 7795 -1 -7895 7795 -1 -7796 7796 4 -7797 7796 -1 -7896 7796 -1 -7797 7797 4 -7798 7797 -1 -7897 7797 -1 -7798 7798 4 -7799 7798 -1 -7898 7798 -1 -7799 7799 4 -7800 7799 -1 -7899 7799 -1 -7800 7800 4 -7900 7800 -1 -7801 7801 4 -7802 7801 -1 -7901 7801 -1 -7802 7802 4 -7803 7802 -1 -7902 7802 -1 -7803 7803 4 -7804 7803 -1 -7903 7803 -1 -7804 7804 4 -7805 7804 -1 -7904 7804 -1 -7805 7805 4 -7806 7805 -1 -7905 7805 -1 -7806 7806 4 -7807 7806 -1 -7906 7806 -1 -7807 7807 4 -7808 7807 -1 -7907 7807 -1 -7808 7808 4 -7809 7808 -1 -7908 7808 -1 -7809 7809 4 -7810 7809 -1 -7909 7809 -1 -7810 7810 4 -7811 7810 -1 -7910 7810 -1 -7811 7811 4 -7812 7811 -1 -7911 7811 -1 -7812 7812 4 -7813 7812 -1 -7912 7812 -1 -7813 7813 4 -7814 7813 -1 -7913 7813 -1 -7814 7814 4 -7815 7814 -1 -7914 7814 -1 -7815 7815 4 -7816 7815 -1 -7915 7815 -1 -7816 7816 4 -7817 7816 -1 -7916 7816 -1 -7817 7817 4 -7818 7817 -1 -7917 7817 -1 -7818 7818 4 -7819 7818 -1 -7918 7818 -1 -7819 7819 4 -7820 7819 -1 -7919 7819 -1 -7820 7820 4 -7821 7820 -1 -7920 7820 -1 -7821 7821 4 -7822 7821 -1 -7921 7821 -1 -7822 7822 4 -7823 7822 -1 -7922 7822 -1 -7823 7823 4 -7824 7823 -1 -7923 7823 -1 -7824 7824 4 -7825 7824 -1 -7924 7824 -1 -7825 7825 4 -7826 7825 -1 -7925 7825 -1 -7826 7826 4 -7827 7826 -1 -7926 7826 -1 -7827 7827 4 -7828 7827 -1 -7927 7827 -1 -7828 7828 4 -7829 7828 -1 -7928 7828 -1 -7829 7829 4 -7830 7829 -1 -7929 7829 -1 -7830 7830 4 -7831 7830 -1 -7930 7830 -1 -7831 7831 4 -7832 7831 -1 -7931 7831 -1 -7832 7832 4 -7833 7832 -1 -7932 7832 -1 -7833 7833 4 -7834 7833 -1 -7933 7833 -1 -7834 7834 4 -7835 7834 -1 -7934 7834 -1 -7835 7835 4 -7836 7835 -1 -7935 7835 -1 -7836 7836 4 -7837 7836 -1 -7936 7836 -1 -7837 7837 4 -7838 7837 -1 -7937 7837 -1 -7838 7838 4 -7839 7838 -1 -7938 7838 -1 -7839 7839 4 -7840 7839 -1 -7939 7839 -1 -7840 7840 4 -7841 7840 -1 -7940 7840 -1 -7841 7841 4 -7842 7841 -1 -7941 7841 -1 -7842 7842 4 -7843 7842 -1 -7942 7842 -1 -7843 7843 4 -7844 7843 -1 -7943 7843 -1 -7844 7844 4 -7845 7844 -1 -7944 7844 -1 -7845 7845 4 -7846 7845 -1 -7945 7845 -1 -7846 7846 4 -7847 7846 -1 -7946 7846 -1 -7847 7847 4 -7848 7847 -1 -7947 7847 -1 -7848 7848 4 -7849 7848 -1 -7948 7848 -1 -7849 7849 4 -7850 7849 -1 -7949 7849 -1 -7850 7850 4 -7851 7850 -1 -7950 7850 -1 -7851 7851 4 -7852 7851 -1 -7951 7851 -1 -7852 7852 4 -7853 7852 -1 -7952 7852 -1 -7853 7853 4 -7854 7853 -1 -7953 7853 -1 -7854 7854 4 -7855 7854 -1 -7954 7854 -1 -7855 7855 4 -7856 7855 -1 -7955 7855 -1 -7856 7856 4 -7857 7856 -1 -7956 7856 -1 -7857 7857 4 -7858 7857 -1 -7957 7857 -1 -7858 7858 4 -7859 7858 -1 -7958 7858 -1 -7859 7859 4 -7860 7859 -1 -7959 7859 -1 -7860 7860 4 -7861 7860 -1 -7960 7860 -1 -7861 7861 4 -7862 7861 -1 -7961 7861 -1 -7862 7862 4 -7863 7862 -1 -7962 7862 -1 -7863 7863 4 -7864 7863 -1 -7963 7863 -1 -7864 7864 4 -7865 7864 -1 -7964 7864 -1 -7865 7865 4 -7866 7865 -1 -7965 7865 -1 -7866 7866 4 -7867 7866 -1 -7966 7866 -1 -7867 7867 4 -7868 7867 -1 -7967 7867 -1 -7868 7868 4 -7869 7868 -1 -7968 7868 -1 -7869 7869 4 -7870 7869 -1 -7969 7869 -1 -7870 7870 4 -7871 7870 -1 -7970 7870 -1 -7871 7871 4 -7872 7871 -1 -7971 7871 -1 -7872 7872 4 -7873 7872 -1 -7972 7872 -1 -7873 7873 4 -7874 7873 -1 -7973 7873 -1 -7874 7874 4 -7875 7874 -1 -7974 7874 -1 -7875 7875 4 -7876 7875 -1 -7975 7875 -1 -7876 7876 4 -7877 7876 -1 -7976 7876 -1 -7877 7877 4 -7878 7877 -1 -7977 7877 -1 -7878 7878 4 -7879 7878 -1 -7978 7878 -1 -7879 7879 4 -7880 7879 -1 -7979 7879 -1 -7880 7880 4 -7881 7880 -1 -7980 7880 -1 -7881 7881 4 -7882 7881 -1 -7981 7881 -1 -7882 7882 4 -7883 7882 -1 -7982 7882 -1 -7883 7883 4 -7884 7883 -1 -7983 7883 -1 -7884 7884 4 -7885 7884 -1 -7984 7884 -1 -7885 7885 4 -7886 7885 -1 -7985 7885 -1 -7886 7886 4 -7887 7886 -1 -7986 7886 -1 -7887 7887 4 -7888 7887 -1 -7987 7887 -1 -7888 7888 4 -7889 7888 -1 -7988 7888 -1 -7889 7889 4 -7890 7889 -1 -7989 7889 -1 -7890 7890 4 -7891 7890 -1 -7990 7890 -1 -7891 7891 4 -7892 7891 -1 -7991 7891 -1 -7892 7892 4 -7893 7892 -1 -7992 7892 -1 -7893 7893 4 -7894 7893 -1 -7993 7893 -1 -7894 7894 4 -7895 7894 -1 -7994 7894 -1 -7895 7895 4 -7896 7895 -1 -7995 7895 -1 -7896 7896 4 -7897 7896 -1 -7996 7896 -1 -7897 7897 4 -7898 7897 -1 -7997 7897 -1 -7898 7898 4 -7899 7898 -1 -7998 7898 -1 -7899 7899 4 -7900 7899 -1 -7999 7899 -1 -7900 7900 4 -8000 7900 -1 -7901 7901 4 -7902 7901 -1 -8001 7901 -1 -7902 7902 4 -7903 7902 -1 -8002 7902 -1 -7903 7903 4 -7904 7903 -1 -8003 7903 -1 -7904 7904 4 -7905 7904 -1 -8004 7904 -1 -7905 7905 4 -7906 7905 -1 -8005 7905 -1 -7906 7906 4 -7907 7906 -1 -8006 7906 -1 -7907 7907 4 -7908 7907 -1 -8007 7907 -1 -7908 7908 4 -7909 7908 -1 -8008 7908 -1 -7909 7909 4 -7910 7909 -1 -8009 7909 -1 -7910 7910 4 -7911 7910 -1 -8010 7910 -1 -7911 7911 4 -7912 7911 -1 -8011 7911 -1 -7912 7912 4 -7913 7912 -1 -8012 7912 -1 -7913 7913 4 -7914 7913 -1 -8013 7913 -1 -7914 7914 4 -7915 7914 -1 -8014 7914 -1 -7915 7915 4 -7916 7915 -1 -8015 7915 -1 -7916 7916 4 -7917 7916 -1 -8016 7916 -1 -7917 7917 4 -7918 7917 -1 -8017 7917 -1 -7918 7918 4 -7919 7918 -1 -8018 7918 -1 -7919 7919 4 -7920 7919 -1 -8019 7919 -1 -7920 7920 4 -7921 7920 -1 -8020 7920 -1 -7921 7921 4 -7922 7921 -1 -8021 7921 -1 -7922 7922 4 -7923 7922 -1 -8022 7922 -1 -7923 7923 4 -7924 7923 -1 -8023 7923 -1 -7924 7924 4 -7925 7924 -1 -8024 7924 -1 -7925 7925 4 -7926 7925 -1 -8025 7925 -1 -7926 7926 4 -7927 7926 -1 -8026 7926 -1 -7927 7927 4 -7928 7927 -1 -8027 7927 -1 -7928 7928 4 -7929 7928 -1 -8028 7928 -1 -7929 7929 4 -7930 7929 -1 -8029 7929 -1 -7930 7930 4 -7931 7930 -1 -8030 7930 -1 -7931 7931 4 -7932 7931 -1 -8031 7931 -1 -7932 7932 4 -7933 7932 -1 -8032 7932 -1 -7933 7933 4 -7934 7933 -1 -8033 7933 -1 -7934 7934 4 -7935 7934 -1 -8034 7934 -1 -7935 7935 4 -7936 7935 -1 -8035 7935 -1 -7936 7936 4 -7937 7936 -1 -8036 7936 -1 -7937 7937 4 -7938 7937 -1 -8037 7937 -1 -7938 7938 4 -7939 7938 -1 -8038 7938 -1 -7939 7939 4 -7940 7939 -1 -8039 7939 -1 -7940 7940 4 -7941 7940 -1 -8040 7940 -1 -7941 7941 4 -7942 7941 -1 -8041 7941 -1 -7942 7942 4 -7943 7942 -1 -8042 7942 -1 -7943 7943 4 -7944 7943 -1 -8043 7943 -1 -7944 7944 4 -7945 7944 -1 -8044 7944 -1 -7945 7945 4 -7946 7945 -1 -8045 7945 -1 -7946 7946 4 -7947 7946 -1 -8046 7946 -1 -7947 7947 4 -7948 7947 -1 -8047 7947 -1 -7948 7948 4 -7949 7948 -1 -8048 7948 -1 -7949 7949 4 -7950 7949 -1 -8049 7949 -1 -7950 7950 4 -7951 7950 -1 -8050 7950 -1 -7951 7951 4 -7952 7951 -1 -8051 7951 -1 -7952 7952 4 -7953 7952 -1 -8052 7952 -1 -7953 7953 4 -7954 7953 -1 -8053 7953 -1 -7954 7954 4 -7955 7954 -1 -8054 7954 -1 -7955 7955 4 -7956 7955 -1 -8055 7955 -1 -7956 7956 4 -7957 7956 -1 -8056 7956 -1 -7957 7957 4 -7958 7957 -1 -8057 7957 -1 -7958 7958 4 -7959 7958 -1 -8058 7958 -1 -7959 7959 4 -7960 7959 -1 -8059 7959 -1 -7960 7960 4 -7961 7960 -1 -8060 7960 -1 -7961 7961 4 -7962 7961 -1 -8061 7961 -1 -7962 7962 4 -7963 7962 -1 -8062 7962 -1 -7963 7963 4 -7964 7963 -1 -8063 7963 -1 -7964 7964 4 -7965 7964 -1 -8064 7964 -1 -7965 7965 4 -7966 7965 -1 -8065 7965 -1 -7966 7966 4 -7967 7966 -1 -8066 7966 -1 -7967 7967 4 -7968 7967 -1 -8067 7967 -1 -7968 7968 4 -7969 7968 -1 -8068 7968 -1 -7969 7969 4 -7970 7969 -1 -8069 7969 -1 -7970 7970 4 -7971 7970 -1 -8070 7970 -1 -7971 7971 4 -7972 7971 -1 -8071 7971 -1 -7972 7972 4 -7973 7972 -1 -8072 7972 -1 -7973 7973 4 -7974 7973 -1 -8073 7973 -1 -7974 7974 4 -7975 7974 -1 -8074 7974 -1 -7975 7975 4 -7976 7975 -1 -8075 7975 -1 -7976 7976 4 -7977 7976 -1 -8076 7976 -1 -7977 7977 4 -7978 7977 -1 -8077 7977 -1 -7978 7978 4 -7979 7978 -1 -8078 7978 -1 -7979 7979 4 -7980 7979 -1 -8079 7979 -1 -7980 7980 4 -7981 7980 -1 -8080 7980 -1 -7981 7981 4 -7982 7981 -1 -8081 7981 -1 -7982 7982 4 -7983 7982 -1 -8082 7982 -1 -7983 7983 4 -7984 7983 -1 -8083 7983 -1 -7984 7984 4 -7985 7984 -1 -8084 7984 -1 -7985 7985 4 -7986 7985 -1 -8085 7985 -1 -7986 7986 4 -7987 7986 -1 -8086 7986 -1 -7987 7987 4 -7988 7987 -1 -8087 7987 -1 -7988 7988 4 -7989 7988 -1 -8088 7988 -1 -7989 7989 4 -7990 7989 -1 -8089 7989 -1 -7990 7990 4 -7991 7990 -1 -8090 7990 -1 -7991 7991 4 -7992 7991 -1 -8091 7991 -1 -7992 7992 4 -7993 7992 -1 -8092 7992 -1 -7993 7993 4 -7994 7993 -1 -8093 7993 -1 -7994 7994 4 -7995 7994 -1 -8094 7994 -1 -7995 7995 4 -7996 7995 -1 -8095 7995 -1 -7996 7996 4 -7997 7996 -1 -8096 7996 -1 -7997 7997 4 -7998 7997 -1 -8097 7997 -1 -7998 7998 4 -7999 7998 -1 -8098 7998 -1 -7999 7999 4 -8000 7999 -1 -8099 7999 -1 -8000 8000 4 -8100 8000 -1 -8001 8001 4 -8002 8001 -1 -8101 8001 -1 -8002 8002 4 -8003 8002 -1 -8102 8002 -1 -8003 8003 4 -8004 8003 -1 -8103 8003 -1 -8004 8004 4 -8005 8004 -1 -8104 8004 -1 -8005 8005 4 -8006 8005 -1 -8105 8005 -1 -8006 8006 4 -8007 8006 -1 -8106 8006 -1 -8007 8007 4 -8008 8007 -1 -8107 8007 -1 -8008 8008 4 -8009 8008 -1 -8108 8008 -1 -8009 8009 4 -8010 8009 -1 -8109 8009 -1 -8010 8010 4 -8011 8010 -1 -8110 8010 -1 -8011 8011 4 -8012 8011 -1 -8111 8011 -1 -8012 8012 4 -8013 8012 -1 -8112 8012 -1 -8013 8013 4 -8014 8013 -1 -8113 8013 -1 -8014 8014 4 -8015 8014 -1 -8114 8014 -1 -8015 8015 4 -8016 8015 -1 -8115 8015 -1 -8016 8016 4 -8017 8016 -1 -8116 8016 -1 -8017 8017 4 -8018 8017 -1 -8117 8017 -1 -8018 8018 4 -8019 8018 -1 -8118 8018 -1 -8019 8019 4 -8020 8019 -1 -8119 8019 -1 -8020 8020 4 -8021 8020 -1 -8120 8020 -1 -8021 8021 4 -8022 8021 -1 -8121 8021 -1 -8022 8022 4 -8023 8022 -1 -8122 8022 -1 -8023 8023 4 -8024 8023 -1 -8123 8023 -1 -8024 8024 4 -8025 8024 -1 -8124 8024 -1 -8025 8025 4 -8026 8025 -1 -8125 8025 -1 -8026 8026 4 -8027 8026 -1 -8126 8026 -1 -8027 8027 4 -8028 8027 -1 -8127 8027 -1 -8028 8028 4 -8029 8028 -1 -8128 8028 -1 -8029 8029 4 -8030 8029 -1 -8129 8029 -1 -8030 8030 4 -8031 8030 -1 -8130 8030 -1 -8031 8031 4 -8032 8031 -1 -8131 8031 -1 -8032 8032 4 -8033 8032 -1 -8132 8032 -1 -8033 8033 4 -8034 8033 -1 -8133 8033 -1 -8034 8034 4 -8035 8034 -1 -8134 8034 -1 -8035 8035 4 -8036 8035 -1 -8135 8035 -1 -8036 8036 4 -8037 8036 -1 -8136 8036 -1 -8037 8037 4 -8038 8037 -1 -8137 8037 -1 -8038 8038 4 -8039 8038 -1 -8138 8038 -1 -8039 8039 4 -8040 8039 -1 -8139 8039 -1 -8040 8040 4 -8041 8040 -1 -8140 8040 -1 -8041 8041 4 -8042 8041 -1 -8141 8041 -1 -8042 8042 4 -8043 8042 -1 -8142 8042 -1 -8043 8043 4 -8044 8043 -1 -8143 8043 -1 -8044 8044 4 -8045 8044 -1 -8144 8044 -1 -8045 8045 4 -8046 8045 -1 -8145 8045 -1 -8046 8046 4 -8047 8046 -1 -8146 8046 -1 -8047 8047 4 -8048 8047 -1 -8147 8047 -1 -8048 8048 4 -8049 8048 -1 -8148 8048 -1 -8049 8049 4 -8050 8049 -1 -8149 8049 -1 -8050 8050 4 -8051 8050 -1 -8150 8050 -1 -8051 8051 4 -8052 8051 -1 -8151 8051 -1 -8052 8052 4 -8053 8052 -1 -8152 8052 -1 -8053 8053 4 -8054 8053 -1 -8153 8053 -1 -8054 8054 4 -8055 8054 -1 -8154 8054 -1 -8055 8055 4 -8056 8055 -1 -8155 8055 -1 -8056 8056 4 -8057 8056 -1 -8156 8056 -1 -8057 8057 4 -8058 8057 -1 -8157 8057 -1 -8058 8058 4 -8059 8058 -1 -8158 8058 -1 -8059 8059 4 -8060 8059 -1 -8159 8059 -1 -8060 8060 4 -8061 8060 -1 -8160 8060 -1 -8061 8061 4 -8062 8061 -1 -8161 8061 -1 -8062 8062 4 -8063 8062 -1 -8162 8062 -1 -8063 8063 4 -8064 8063 -1 -8163 8063 -1 -8064 8064 4 -8065 8064 -1 -8164 8064 -1 -8065 8065 4 -8066 8065 -1 -8165 8065 -1 -8066 8066 4 -8067 8066 -1 -8166 8066 -1 -8067 8067 4 -8068 8067 -1 -8167 8067 -1 -8068 8068 4 -8069 8068 -1 -8168 8068 -1 -8069 8069 4 -8070 8069 -1 -8169 8069 -1 -8070 8070 4 -8071 8070 -1 -8170 8070 -1 -8071 8071 4 -8072 8071 -1 -8171 8071 -1 -8072 8072 4 -8073 8072 -1 -8172 8072 -1 -8073 8073 4 -8074 8073 -1 -8173 8073 -1 -8074 8074 4 -8075 8074 -1 -8174 8074 -1 -8075 8075 4 -8076 8075 -1 -8175 8075 -1 -8076 8076 4 -8077 8076 -1 -8176 8076 -1 -8077 8077 4 -8078 8077 -1 -8177 8077 -1 -8078 8078 4 -8079 8078 -1 -8178 8078 -1 -8079 8079 4 -8080 8079 -1 -8179 8079 -1 -8080 8080 4 -8081 8080 -1 -8180 8080 -1 -8081 8081 4 -8082 8081 -1 -8181 8081 -1 -8082 8082 4 -8083 8082 -1 -8182 8082 -1 -8083 8083 4 -8084 8083 -1 -8183 8083 -1 -8084 8084 4 -8085 8084 -1 -8184 8084 -1 -8085 8085 4 -8086 8085 -1 -8185 8085 -1 -8086 8086 4 -8087 8086 -1 -8186 8086 -1 -8087 8087 4 -8088 8087 -1 -8187 8087 -1 -8088 8088 4 -8089 8088 -1 -8188 8088 -1 -8089 8089 4 -8090 8089 -1 -8189 8089 -1 -8090 8090 4 -8091 8090 -1 -8190 8090 -1 -8091 8091 4 -8092 8091 -1 -8191 8091 -1 -8092 8092 4 -8093 8092 -1 -8192 8092 -1 -8093 8093 4 -8094 8093 -1 -8193 8093 -1 -8094 8094 4 -8095 8094 -1 -8194 8094 -1 -8095 8095 4 -8096 8095 -1 -8195 8095 -1 -8096 8096 4 -8097 8096 -1 -8196 8096 -1 -8097 8097 4 -8098 8097 -1 -8197 8097 -1 -8098 8098 4 -8099 8098 -1 -8198 8098 -1 -8099 8099 4 -8100 8099 -1 -8199 8099 -1 -8100 8100 4 -8200 8100 -1 -8101 8101 4 -8102 8101 -1 -8201 8101 -1 -8102 8102 4 -8103 8102 -1 -8202 8102 -1 -8103 8103 4 -8104 8103 -1 -8203 8103 -1 -8104 8104 4 -8105 8104 -1 -8204 8104 -1 -8105 8105 4 -8106 8105 -1 -8205 8105 -1 -8106 8106 4 -8107 8106 -1 -8206 8106 -1 -8107 8107 4 -8108 8107 -1 -8207 8107 -1 -8108 8108 4 -8109 8108 -1 -8208 8108 -1 -8109 8109 4 -8110 8109 -1 -8209 8109 -1 -8110 8110 4 -8111 8110 -1 -8210 8110 -1 -8111 8111 4 -8112 8111 -1 -8211 8111 -1 -8112 8112 4 -8113 8112 -1 -8212 8112 -1 -8113 8113 4 -8114 8113 -1 -8213 8113 -1 -8114 8114 4 -8115 8114 -1 -8214 8114 -1 -8115 8115 4 -8116 8115 -1 -8215 8115 -1 -8116 8116 4 -8117 8116 -1 -8216 8116 -1 -8117 8117 4 -8118 8117 -1 -8217 8117 -1 -8118 8118 4 -8119 8118 -1 -8218 8118 -1 -8119 8119 4 -8120 8119 -1 -8219 8119 -1 -8120 8120 4 -8121 8120 -1 -8220 8120 -1 -8121 8121 4 -8122 8121 -1 -8221 8121 -1 -8122 8122 4 -8123 8122 -1 -8222 8122 -1 -8123 8123 4 -8124 8123 -1 -8223 8123 -1 -8124 8124 4 -8125 8124 -1 -8224 8124 -1 -8125 8125 4 -8126 8125 -1 -8225 8125 -1 -8126 8126 4 -8127 8126 -1 -8226 8126 -1 -8127 8127 4 -8128 8127 -1 -8227 8127 -1 -8128 8128 4 -8129 8128 -1 -8228 8128 -1 -8129 8129 4 -8130 8129 -1 -8229 8129 -1 -8130 8130 4 -8131 8130 -1 -8230 8130 -1 -8131 8131 4 -8132 8131 -1 -8231 8131 -1 -8132 8132 4 -8133 8132 -1 -8232 8132 -1 -8133 8133 4 -8134 8133 -1 -8233 8133 -1 -8134 8134 4 -8135 8134 -1 -8234 8134 -1 -8135 8135 4 -8136 8135 -1 -8235 8135 -1 -8136 8136 4 -8137 8136 -1 -8236 8136 -1 -8137 8137 4 -8138 8137 -1 -8237 8137 -1 -8138 8138 4 -8139 8138 -1 -8238 8138 -1 -8139 8139 4 -8140 8139 -1 -8239 8139 -1 -8140 8140 4 -8141 8140 -1 -8240 8140 -1 -8141 8141 4 -8142 8141 -1 -8241 8141 -1 -8142 8142 4 -8143 8142 -1 -8242 8142 -1 -8143 8143 4 -8144 8143 -1 -8243 8143 -1 -8144 8144 4 -8145 8144 -1 -8244 8144 -1 -8145 8145 4 -8146 8145 -1 -8245 8145 -1 -8146 8146 4 -8147 8146 -1 -8246 8146 -1 -8147 8147 4 -8148 8147 -1 -8247 8147 -1 -8148 8148 4 -8149 8148 -1 -8248 8148 -1 -8149 8149 4 -8150 8149 -1 -8249 8149 -1 -8150 8150 4 -8151 8150 -1 -8250 8150 -1 -8151 8151 4 -8152 8151 -1 -8251 8151 -1 -8152 8152 4 -8153 8152 -1 -8252 8152 -1 -8153 8153 4 -8154 8153 -1 -8253 8153 -1 -8154 8154 4 -8155 8154 -1 -8254 8154 -1 -8155 8155 4 -8156 8155 -1 -8255 8155 -1 -8156 8156 4 -8157 8156 -1 -8256 8156 -1 -8157 8157 4 -8158 8157 -1 -8257 8157 -1 -8158 8158 4 -8159 8158 -1 -8258 8158 -1 -8159 8159 4 -8160 8159 -1 -8259 8159 -1 -8160 8160 4 -8161 8160 -1 -8260 8160 -1 -8161 8161 4 -8162 8161 -1 -8261 8161 -1 -8162 8162 4 -8163 8162 -1 -8262 8162 -1 -8163 8163 4 -8164 8163 -1 -8263 8163 -1 -8164 8164 4 -8165 8164 -1 -8264 8164 -1 -8165 8165 4 -8166 8165 -1 -8265 8165 -1 -8166 8166 4 -8167 8166 -1 -8266 8166 -1 -8167 8167 4 -8168 8167 -1 -8267 8167 -1 -8168 8168 4 -8169 8168 -1 -8268 8168 -1 -8169 8169 4 -8170 8169 -1 -8269 8169 -1 -8170 8170 4 -8171 8170 -1 -8270 8170 -1 -8171 8171 4 -8172 8171 -1 -8271 8171 -1 -8172 8172 4 -8173 8172 -1 -8272 8172 -1 -8173 8173 4 -8174 8173 -1 -8273 8173 -1 -8174 8174 4 -8175 8174 -1 -8274 8174 -1 -8175 8175 4 -8176 8175 -1 -8275 8175 -1 -8176 8176 4 -8177 8176 -1 -8276 8176 -1 -8177 8177 4 -8178 8177 -1 -8277 8177 -1 -8178 8178 4 -8179 8178 -1 -8278 8178 -1 -8179 8179 4 -8180 8179 -1 -8279 8179 -1 -8180 8180 4 -8181 8180 -1 -8280 8180 -1 -8181 8181 4 -8182 8181 -1 -8281 8181 -1 -8182 8182 4 -8183 8182 -1 -8282 8182 -1 -8183 8183 4 -8184 8183 -1 -8283 8183 -1 -8184 8184 4 -8185 8184 -1 -8284 8184 -1 -8185 8185 4 -8186 8185 -1 -8285 8185 -1 -8186 8186 4 -8187 8186 -1 -8286 8186 -1 -8187 8187 4 -8188 8187 -1 -8287 8187 -1 -8188 8188 4 -8189 8188 -1 -8288 8188 -1 -8189 8189 4 -8190 8189 -1 -8289 8189 -1 -8190 8190 4 -8191 8190 -1 -8290 8190 -1 -8191 8191 4 -8192 8191 -1 -8291 8191 -1 -8192 8192 4 -8193 8192 -1 -8292 8192 -1 -8193 8193 4 -8194 8193 -1 -8293 8193 -1 -8194 8194 4 -8195 8194 -1 -8294 8194 -1 -8195 8195 4 -8196 8195 -1 -8295 8195 -1 -8196 8196 4 -8197 8196 -1 -8296 8196 -1 -8197 8197 4 -8198 8197 -1 -8297 8197 -1 -8198 8198 4 -8199 8198 -1 -8298 8198 -1 -8199 8199 4 -8200 8199 -1 -8299 8199 -1 -8200 8200 4 -8300 8200 -1 -8201 8201 4 -8202 8201 -1 -8301 8201 -1 -8202 8202 4 -8203 8202 -1 -8302 8202 -1 -8203 8203 4 -8204 8203 -1 -8303 8203 -1 -8204 8204 4 -8205 8204 -1 -8304 8204 -1 -8205 8205 4 -8206 8205 -1 -8305 8205 -1 -8206 8206 4 -8207 8206 -1 -8306 8206 -1 -8207 8207 4 -8208 8207 -1 -8307 8207 -1 -8208 8208 4 -8209 8208 -1 -8308 8208 -1 -8209 8209 4 -8210 8209 -1 -8309 8209 -1 -8210 8210 4 -8211 8210 -1 -8310 8210 -1 -8211 8211 4 -8212 8211 -1 -8311 8211 -1 -8212 8212 4 -8213 8212 -1 -8312 8212 -1 -8213 8213 4 -8214 8213 -1 -8313 8213 -1 -8214 8214 4 -8215 8214 -1 -8314 8214 -1 -8215 8215 4 -8216 8215 -1 -8315 8215 -1 -8216 8216 4 -8217 8216 -1 -8316 8216 -1 -8217 8217 4 -8218 8217 -1 -8317 8217 -1 -8218 8218 4 -8219 8218 -1 -8318 8218 -1 -8219 8219 4 -8220 8219 -1 -8319 8219 -1 -8220 8220 4 -8221 8220 -1 -8320 8220 -1 -8221 8221 4 -8222 8221 -1 -8321 8221 -1 -8222 8222 4 -8223 8222 -1 -8322 8222 -1 -8223 8223 4 -8224 8223 -1 -8323 8223 -1 -8224 8224 4 -8225 8224 -1 -8324 8224 -1 -8225 8225 4 -8226 8225 -1 -8325 8225 -1 -8226 8226 4 -8227 8226 -1 -8326 8226 -1 -8227 8227 4 -8228 8227 -1 -8327 8227 -1 -8228 8228 4 -8229 8228 -1 -8328 8228 -1 -8229 8229 4 -8230 8229 -1 -8329 8229 -1 -8230 8230 4 -8231 8230 -1 -8330 8230 -1 -8231 8231 4 -8232 8231 -1 -8331 8231 -1 -8232 8232 4 -8233 8232 -1 -8332 8232 -1 -8233 8233 4 -8234 8233 -1 -8333 8233 -1 -8234 8234 4 -8235 8234 -1 -8334 8234 -1 -8235 8235 4 -8236 8235 -1 -8335 8235 -1 -8236 8236 4 -8237 8236 -1 -8336 8236 -1 -8237 8237 4 -8238 8237 -1 -8337 8237 -1 -8238 8238 4 -8239 8238 -1 -8338 8238 -1 -8239 8239 4 -8240 8239 -1 -8339 8239 -1 -8240 8240 4 -8241 8240 -1 -8340 8240 -1 -8241 8241 4 -8242 8241 -1 -8341 8241 -1 -8242 8242 4 -8243 8242 -1 -8342 8242 -1 -8243 8243 4 -8244 8243 -1 -8343 8243 -1 -8244 8244 4 -8245 8244 -1 -8344 8244 -1 -8245 8245 4 -8246 8245 -1 -8345 8245 -1 -8246 8246 4 -8247 8246 -1 -8346 8246 -1 -8247 8247 4 -8248 8247 -1 -8347 8247 -1 -8248 8248 4 -8249 8248 -1 -8348 8248 -1 -8249 8249 4 -8250 8249 -1 -8349 8249 -1 -8250 8250 4 -8251 8250 -1 -8350 8250 -1 -8251 8251 4 -8252 8251 -1 -8351 8251 -1 -8252 8252 4 -8253 8252 -1 -8352 8252 -1 -8253 8253 4 -8254 8253 -1 -8353 8253 -1 -8254 8254 4 -8255 8254 -1 -8354 8254 -1 -8255 8255 4 -8256 8255 -1 -8355 8255 -1 -8256 8256 4 -8257 8256 -1 -8356 8256 -1 -8257 8257 4 -8258 8257 -1 -8357 8257 -1 -8258 8258 4 -8259 8258 -1 -8358 8258 -1 -8259 8259 4 -8260 8259 -1 -8359 8259 -1 -8260 8260 4 -8261 8260 -1 -8360 8260 -1 -8261 8261 4 -8262 8261 -1 -8361 8261 -1 -8262 8262 4 -8263 8262 -1 -8362 8262 -1 -8263 8263 4 -8264 8263 -1 -8363 8263 -1 -8264 8264 4 -8265 8264 -1 -8364 8264 -1 -8265 8265 4 -8266 8265 -1 -8365 8265 -1 -8266 8266 4 -8267 8266 -1 -8366 8266 -1 -8267 8267 4 -8268 8267 -1 -8367 8267 -1 -8268 8268 4 -8269 8268 -1 -8368 8268 -1 -8269 8269 4 -8270 8269 -1 -8369 8269 -1 -8270 8270 4 -8271 8270 -1 -8370 8270 -1 -8271 8271 4 -8272 8271 -1 -8371 8271 -1 -8272 8272 4 -8273 8272 -1 -8372 8272 -1 -8273 8273 4 -8274 8273 -1 -8373 8273 -1 -8274 8274 4 -8275 8274 -1 -8374 8274 -1 -8275 8275 4 -8276 8275 -1 -8375 8275 -1 -8276 8276 4 -8277 8276 -1 -8376 8276 -1 -8277 8277 4 -8278 8277 -1 -8377 8277 -1 -8278 8278 4 -8279 8278 -1 -8378 8278 -1 -8279 8279 4 -8280 8279 -1 -8379 8279 -1 -8280 8280 4 -8281 8280 -1 -8380 8280 -1 -8281 8281 4 -8282 8281 -1 -8381 8281 -1 -8282 8282 4 -8283 8282 -1 -8382 8282 -1 -8283 8283 4 -8284 8283 -1 -8383 8283 -1 -8284 8284 4 -8285 8284 -1 -8384 8284 -1 -8285 8285 4 -8286 8285 -1 -8385 8285 -1 -8286 8286 4 -8287 8286 -1 -8386 8286 -1 -8287 8287 4 -8288 8287 -1 -8387 8287 -1 -8288 8288 4 -8289 8288 -1 -8388 8288 -1 -8289 8289 4 -8290 8289 -1 -8389 8289 -1 -8290 8290 4 -8291 8290 -1 -8390 8290 -1 -8291 8291 4 -8292 8291 -1 -8391 8291 -1 -8292 8292 4 -8293 8292 -1 -8392 8292 -1 -8293 8293 4 -8294 8293 -1 -8393 8293 -1 -8294 8294 4 -8295 8294 -1 -8394 8294 -1 -8295 8295 4 -8296 8295 -1 -8395 8295 -1 -8296 8296 4 -8297 8296 -1 -8396 8296 -1 -8297 8297 4 -8298 8297 -1 -8397 8297 -1 -8298 8298 4 -8299 8298 -1 -8398 8298 -1 -8299 8299 4 -8300 8299 -1 -8399 8299 -1 -8300 8300 4 -8400 8300 -1 -8301 8301 4 -8302 8301 -1 -8401 8301 -1 -8302 8302 4 -8303 8302 -1 -8402 8302 -1 -8303 8303 4 -8304 8303 -1 -8403 8303 -1 -8304 8304 4 -8305 8304 -1 -8404 8304 -1 -8305 8305 4 -8306 8305 -1 -8405 8305 -1 -8306 8306 4 -8307 8306 -1 -8406 8306 -1 -8307 8307 4 -8308 8307 -1 -8407 8307 -1 -8308 8308 4 -8309 8308 -1 -8408 8308 -1 -8309 8309 4 -8310 8309 -1 -8409 8309 -1 -8310 8310 4 -8311 8310 -1 -8410 8310 -1 -8311 8311 4 -8312 8311 -1 -8411 8311 -1 -8312 8312 4 -8313 8312 -1 -8412 8312 -1 -8313 8313 4 -8314 8313 -1 -8413 8313 -1 -8314 8314 4 -8315 8314 -1 -8414 8314 -1 -8315 8315 4 -8316 8315 -1 -8415 8315 -1 -8316 8316 4 -8317 8316 -1 -8416 8316 -1 -8317 8317 4 -8318 8317 -1 -8417 8317 -1 -8318 8318 4 -8319 8318 -1 -8418 8318 -1 -8319 8319 4 -8320 8319 -1 -8419 8319 -1 -8320 8320 4 -8321 8320 -1 -8420 8320 -1 -8321 8321 4 -8322 8321 -1 -8421 8321 -1 -8322 8322 4 -8323 8322 -1 -8422 8322 -1 -8323 8323 4 -8324 8323 -1 -8423 8323 -1 -8324 8324 4 -8325 8324 -1 -8424 8324 -1 -8325 8325 4 -8326 8325 -1 -8425 8325 -1 -8326 8326 4 -8327 8326 -1 -8426 8326 -1 -8327 8327 4 -8328 8327 -1 -8427 8327 -1 -8328 8328 4 -8329 8328 -1 -8428 8328 -1 -8329 8329 4 -8330 8329 -1 -8429 8329 -1 -8330 8330 4 -8331 8330 -1 -8430 8330 -1 -8331 8331 4 -8332 8331 -1 -8431 8331 -1 -8332 8332 4 -8333 8332 -1 -8432 8332 -1 -8333 8333 4 -8334 8333 -1 -8433 8333 -1 -8334 8334 4 -8335 8334 -1 -8434 8334 -1 -8335 8335 4 -8336 8335 -1 -8435 8335 -1 -8336 8336 4 -8337 8336 -1 -8436 8336 -1 -8337 8337 4 -8338 8337 -1 -8437 8337 -1 -8338 8338 4 -8339 8338 -1 -8438 8338 -1 -8339 8339 4 -8340 8339 -1 -8439 8339 -1 -8340 8340 4 -8341 8340 -1 -8440 8340 -1 -8341 8341 4 -8342 8341 -1 -8441 8341 -1 -8342 8342 4 -8343 8342 -1 -8442 8342 -1 -8343 8343 4 -8344 8343 -1 -8443 8343 -1 -8344 8344 4 -8345 8344 -1 -8444 8344 -1 -8345 8345 4 -8346 8345 -1 -8445 8345 -1 -8346 8346 4 -8347 8346 -1 -8446 8346 -1 -8347 8347 4 -8348 8347 -1 -8447 8347 -1 -8348 8348 4 -8349 8348 -1 -8448 8348 -1 -8349 8349 4 -8350 8349 -1 -8449 8349 -1 -8350 8350 4 -8351 8350 -1 -8450 8350 -1 -8351 8351 4 -8352 8351 -1 -8451 8351 -1 -8352 8352 4 -8353 8352 -1 -8452 8352 -1 -8353 8353 4 -8354 8353 -1 -8453 8353 -1 -8354 8354 4 -8355 8354 -1 -8454 8354 -1 -8355 8355 4 -8356 8355 -1 -8455 8355 -1 -8356 8356 4 -8357 8356 -1 -8456 8356 -1 -8357 8357 4 -8358 8357 -1 -8457 8357 -1 -8358 8358 4 -8359 8358 -1 -8458 8358 -1 -8359 8359 4 -8360 8359 -1 -8459 8359 -1 -8360 8360 4 -8361 8360 -1 -8460 8360 -1 -8361 8361 4 -8362 8361 -1 -8461 8361 -1 -8362 8362 4 -8363 8362 -1 -8462 8362 -1 -8363 8363 4 -8364 8363 -1 -8463 8363 -1 -8364 8364 4 -8365 8364 -1 -8464 8364 -1 -8365 8365 4 -8366 8365 -1 -8465 8365 -1 -8366 8366 4 -8367 8366 -1 -8466 8366 -1 -8367 8367 4 -8368 8367 -1 -8467 8367 -1 -8368 8368 4 -8369 8368 -1 -8468 8368 -1 -8369 8369 4 -8370 8369 -1 -8469 8369 -1 -8370 8370 4 -8371 8370 -1 -8470 8370 -1 -8371 8371 4 -8372 8371 -1 -8471 8371 -1 -8372 8372 4 -8373 8372 -1 -8472 8372 -1 -8373 8373 4 -8374 8373 -1 -8473 8373 -1 -8374 8374 4 -8375 8374 -1 -8474 8374 -1 -8375 8375 4 -8376 8375 -1 -8475 8375 -1 -8376 8376 4 -8377 8376 -1 -8476 8376 -1 -8377 8377 4 -8378 8377 -1 -8477 8377 -1 -8378 8378 4 -8379 8378 -1 -8478 8378 -1 -8379 8379 4 -8380 8379 -1 -8479 8379 -1 -8380 8380 4 -8381 8380 -1 -8480 8380 -1 -8381 8381 4 -8382 8381 -1 -8481 8381 -1 -8382 8382 4 -8383 8382 -1 -8482 8382 -1 -8383 8383 4 -8384 8383 -1 -8483 8383 -1 -8384 8384 4 -8385 8384 -1 -8484 8384 -1 -8385 8385 4 -8386 8385 -1 -8485 8385 -1 -8386 8386 4 -8387 8386 -1 -8486 8386 -1 -8387 8387 4 -8388 8387 -1 -8487 8387 -1 -8388 8388 4 -8389 8388 -1 -8488 8388 -1 -8389 8389 4 -8390 8389 -1 -8489 8389 -1 -8390 8390 4 -8391 8390 -1 -8490 8390 -1 -8391 8391 4 -8392 8391 -1 -8491 8391 -1 -8392 8392 4 -8393 8392 -1 -8492 8392 -1 -8393 8393 4 -8394 8393 -1 -8493 8393 -1 -8394 8394 4 -8395 8394 -1 -8494 8394 -1 -8395 8395 4 -8396 8395 -1 -8495 8395 -1 -8396 8396 4 -8397 8396 -1 -8496 8396 -1 -8397 8397 4 -8398 8397 -1 -8497 8397 -1 -8398 8398 4 -8399 8398 -1 -8498 8398 -1 -8399 8399 4 -8400 8399 -1 -8499 8399 -1 -8400 8400 4 -8500 8400 -1 -8401 8401 4 -8402 8401 -1 -8501 8401 -1 -8402 8402 4 -8403 8402 -1 -8502 8402 -1 -8403 8403 4 -8404 8403 -1 -8503 8403 -1 -8404 8404 4 -8405 8404 -1 -8504 8404 -1 -8405 8405 4 -8406 8405 -1 -8505 8405 -1 -8406 8406 4 -8407 8406 -1 -8506 8406 -1 -8407 8407 4 -8408 8407 -1 -8507 8407 -1 -8408 8408 4 -8409 8408 -1 -8508 8408 -1 -8409 8409 4 -8410 8409 -1 -8509 8409 -1 -8410 8410 4 -8411 8410 -1 -8510 8410 -1 -8411 8411 4 -8412 8411 -1 -8511 8411 -1 -8412 8412 4 -8413 8412 -1 -8512 8412 -1 -8413 8413 4 -8414 8413 -1 -8513 8413 -1 -8414 8414 4 -8415 8414 -1 -8514 8414 -1 -8415 8415 4 -8416 8415 -1 -8515 8415 -1 -8416 8416 4 -8417 8416 -1 -8516 8416 -1 -8417 8417 4 -8418 8417 -1 -8517 8417 -1 -8418 8418 4 -8419 8418 -1 -8518 8418 -1 -8419 8419 4 -8420 8419 -1 -8519 8419 -1 -8420 8420 4 -8421 8420 -1 -8520 8420 -1 -8421 8421 4 -8422 8421 -1 -8521 8421 -1 -8422 8422 4 -8423 8422 -1 -8522 8422 -1 -8423 8423 4 -8424 8423 -1 -8523 8423 -1 -8424 8424 4 -8425 8424 -1 -8524 8424 -1 -8425 8425 4 -8426 8425 -1 -8525 8425 -1 -8426 8426 4 -8427 8426 -1 -8526 8426 -1 -8427 8427 4 -8428 8427 -1 -8527 8427 -1 -8428 8428 4 -8429 8428 -1 -8528 8428 -1 -8429 8429 4 -8430 8429 -1 -8529 8429 -1 -8430 8430 4 -8431 8430 -1 -8530 8430 -1 -8431 8431 4 -8432 8431 -1 -8531 8431 -1 -8432 8432 4 -8433 8432 -1 -8532 8432 -1 -8433 8433 4 -8434 8433 -1 -8533 8433 -1 -8434 8434 4 -8435 8434 -1 -8534 8434 -1 -8435 8435 4 -8436 8435 -1 -8535 8435 -1 -8436 8436 4 -8437 8436 -1 -8536 8436 -1 -8437 8437 4 -8438 8437 -1 -8537 8437 -1 -8438 8438 4 -8439 8438 -1 -8538 8438 -1 -8439 8439 4 -8440 8439 -1 -8539 8439 -1 -8440 8440 4 -8441 8440 -1 -8540 8440 -1 -8441 8441 4 -8442 8441 -1 -8541 8441 -1 -8442 8442 4 -8443 8442 -1 -8542 8442 -1 -8443 8443 4 -8444 8443 -1 -8543 8443 -1 -8444 8444 4 -8445 8444 -1 -8544 8444 -1 -8445 8445 4 -8446 8445 -1 -8545 8445 -1 -8446 8446 4 -8447 8446 -1 -8546 8446 -1 -8447 8447 4 -8448 8447 -1 -8547 8447 -1 -8448 8448 4 -8449 8448 -1 -8548 8448 -1 -8449 8449 4 -8450 8449 -1 -8549 8449 -1 -8450 8450 4 -8451 8450 -1 -8550 8450 -1 -8451 8451 4 -8452 8451 -1 -8551 8451 -1 -8452 8452 4 -8453 8452 -1 -8552 8452 -1 -8453 8453 4 -8454 8453 -1 -8553 8453 -1 -8454 8454 4 -8455 8454 -1 -8554 8454 -1 -8455 8455 4 -8456 8455 -1 -8555 8455 -1 -8456 8456 4 -8457 8456 -1 -8556 8456 -1 -8457 8457 4 -8458 8457 -1 -8557 8457 -1 -8458 8458 4 -8459 8458 -1 -8558 8458 -1 -8459 8459 4 -8460 8459 -1 -8559 8459 -1 -8460 8460 4 -8461 8460 -1 -8560 8460 -1 -8461 8461 4 -8462 8461 -1 -8561 8461 -1 -8462 8462 4 -8463 8462 -1 -8562 8462 -1 -8463 8463 4 -8464 8463 -1 -8563 8463 -1 -8464 8464 4 -8465 8464 -1 -8564 8464 -1 -8465 8465 4 -8466 8465 -1 -8565 8465 -1 -8466 8466 4 -8467 8466 -1 -8566 8466 -1 -8467 8467 4 -8468 8467 -1 -8567 8467 -1 -8468 8468 4 -8469 8468 -1 -8568 8468 -1 -8469 8469 4 -8470 8469 -1 -8569 8469 -1 -8470 8470 4 -8471 8470 -1 -8570 8470 -1 -8471 8471 4 -8472 8471 -1 -8571 8471 -1 -8472 8472 4 -8473 8472 -1 -8572 8472 -1 -8473 8473 4 -8474 8473 -1 -8573 8473 -1 -8474 8474 4 -8475 8474 -1 -8574 8474 -1 -8475 8475 4 -8476 8475 -1 -8575 8475 -1 -8476 8476 4 -8477 8476 -1 -8576 8476 -1 -8477 8477 4 -8478 8477 -1 -8577 8477 -1 -8478 8478 4 -8479 8478 -1 -8578 8478 -1 -8479 8479 4 -8480 8479 -1 -8579 8479 -1 -8480 8480 4 -8481 8480 -1 -8580 8480 -1 -8481 8481 4 -8482 8481 -1 -8581 8481 -1 -8482 8482 4 -8483 8482 -1 -8582 8482 -1 -8483 8483 4 -8484 8483 -1 -8583 8483 -1 -8484 8484 4 -8485 8484 -1 -8584 8484 -1 -8485 8485 4 -8486 8485 -1 -8585 8485 -1 -8486 8486 4 -8487 8486 -1 -8586 8486 -1 -8487 8487 4 -8488 8487 -1 -8587 8487 -1 -8488 8488 4 -8489 8488 -1 -8588 8488 -1 -8489 8489 4 -8490 8489 -1 -8589 8489 -1 -8490 8490 4 -8491 8490 -1 -8590 8490 -1 -8491 8491 4 -8492 8491 -1 -8591 8491 -1 -8492 8492 4 -8493 8492 -1 -8592 8492 -1 -8493 8493 4 -8494 8493 -1 -8593 8493 -1 -8494 8494 4 -8495 8494 -1 -8594 8494 -1 -8495 8495 4 -8496 8495 -1 -8595 8495 -1 -8496 8496 4 -8497 8496 -1 -8596 8496 -1 -8497 8497 4 -8498 8497 -1 -8597 8497 -1 -8498 8498 4 -8499 8498 -1 -8598 8498 -1 -8499 8499 4 -8500 8499 -1 -8599 8499 -1 -8500 8500 4 -8600 8500 -1 -8501 8501 4 -8502 8501 -1 -8601 8501 -1 -8502 8502 4 -8503 8502 -1 -8602 8502 -1 -8503 8503 4 -8504 8503 -1 -8603 8503 -1 -8504 8504 4 -8505 8504 -1 -8604 8504 -1 -8505 8505 4 -8506 8505 -1 -8605 8505 -1 -8506 8506 4 -8507 8506 -1 -8606 8506 -1 -8507 8507 4 -8508 8507 -1 -8607 8507 -1 -8508 8508 4 -8509 8508 -1 -8608 8508 -1 -8509 8509 4 -8510 8509 -1 -8609 8509 -1 -8510 8510 4 -8511 8510 -1 -8610 8510 -1 -8511 8511 4 -8512 8511 -1 -8611 8511 -1 -8512 8512 4 -8513 8512 -1 -8612 8512 -1 -8513 8513 4 -8514 8513 -1 -8613 8513 -1 -8514 8514 4 -8515 8514 -1 -8614 8514 -1 -8515 8515 4 -8516 8515 -1 -8615 8515 -1 -8516 8516 4 -8517 8516 -1 -8616 8516 -1 -8517 8517 4 -8518 8517 -1 -8617 8517 -1 -8518 8518 4 -8519 8518 -1 -8618 8518 -1 -8519 8519 4 -8520 8519 -1 -8619 8519 -1 -8520 8520 4 -8521 8520 -1 -8620 8520 -1 -8521 8521 4 -8522 8521 -1 -8621 8521 -1 -8522 8522 4 -8523 8522 -1 -8622 8522 -1 -8523 8523 4 -8524 8523 -1 -8623 8523 -1 -8524 8524 4 -8525 8524 -1 -8624 8524 -1 -8525 8525 4 -8526 8525 -1 -8625 8525 -1 -8526 8526 4 -8527 8526 -1 -8626 8526 -1 -8527 8527 4 -8528 8527 -1 -8627 8527 -1 -8528 8528 4 -8529 8528 -1 -8628 8528 -1 -8529 8529 4 -8530 8529 -1 -8629 8529 -1 -8530 8530 4 -8531 8530 -1 -8630 8530 -1 -8531 8531 4 -8532 8531 -1 -8631 8531 -1 -8532 8532 4 -8533 8532 -1 -8632 8532 -1 -8533 8533 4 -8534 8533 -1 -8633 8533 -1 -8534 8534 4 -8535 8534 -1 -8634 8534 -1 -8535 8535 4 -8536 8535 -1 -8635 8535 -1 -8536 8536 4 -8537 8536 -1 -8636 8536 -1 -8537 8537 4 -8538 8537 -1 -8637 8537 -1 -8538 8538 4 -8539 8538 -1 -8638 8538 -1 -8539 8539 4 -8540 8539 -1 -8639 8539 -1 -8540 8540 4 -8541 8540 -1 -8640 8540 -1 -8541 8541 4 -8542 8541 -1 -8641 8541 -1 -8542 8542 4 -8543 8542 -1 -8642 8542 -1 -8543 8543 4 -8544 8543 -1 -8643 8543 -1 -8544 8544 4 -8545 8544 -1 -8644 8544 -1 -8545 8545 4 -8546 8545 -1 -8645 8545 -1 -8546 8546 4 -8547 8546 -1 -8646 8546 -1 -8547 8547 4 -8548 8547 -1 -8647 8547 -1 -8548 8548 4 -8549 8548 -1 -8648 8548 -1 -8549 8549 4 -8550 8549 -1 -8649 8549 -1 -8550 8550 4 -8551 8550 -1 -8650 8550 -1 -8551 8551 4 -8552 8551 -1 -8651 8551 -1 -8552 8552 4 -8553 8552 -1 -8652 8552 -1 -8553 8553 4 -8554 8553 -1 -8653 8553 -1 -8554 8554 4 -8555 8554 -1 -8654 8554 -1 -8555 8555 4 -8556 8555 -1 -8655 8555 -1 -8556 8556 4 -8557 8556 -1 -8656 8556 -1 -8557 8557 4 -8558 8557 -1 -8657 8557 -1 -8558 8558 4 -8559 8558 -1 -8658 8558 -1 -8559 8559 4 -8560 8559 -1 -8659 8559 -1 -8560 8560 4 -8561 8560 -1 -8660 8560 -1 -8561 8561 4 -8562 8561 -1 -8661 8561 -1 -8562 8562 4 -8563 8562 -1 -8662 8562 -1 -8563 8563 4 -8564 8563 -1 -8663 8563 -1 -8564 8564 4 -8565 8564 -1 -8664 8564 -1 -8565 8565 4 -8566 8565 -1 -8665 8565 -1 -8566 8566 4 -8567 8566 -1 -8666 8566 -1 -8567 8567 4 -8568 8567 -1 -8667 8567 -1 -8568 8568 4 -8569 8568 -1 -8668 8568 -1 -8569 8569 4 -8570 8569 -1 -8669 8569 -1 -8570 8570 4 -8571 8570 -1 -8670 8570 -1 -8571 8571 4 -8572 8571 -1 -8671 8571 -1 -8572 8572 4 -8573 8572 -1 -8672 8572 -1 -8573 8573 4 -8574 8573 -1 -8673 8573 -1 -8574 8574 4 -8575 8574 -1 -8674 8574 -1 -8575 8575 4 -8576 8575 -1 -8675 8575 -1 -8576 8576 4 -8577 8576 -1 -8676 8576 -1 -8577 8577 4 -8578 8577 -1 -8677 8577 -1 -8578 8578 4 -8579 8578 -1 -8678 8578 -1 -8579 8579 4 -8580 8579 -1 -8679 8579 -1 -8580 8580 4 -8581 8580 -1 -8680 8580 -1 -8581 8581 4 -8582 8581 -1 -8681 8581 -1 -8582 8582 4 -8583 8582 -1 -8682 8582 -1 -8583 8583 4 -8584 8583 -1 -8683 8583 -1 -8584 8584 4 -8585 8584 -1 -8684 8584 -1 -8585 8585 4 -8586 8585 -1 -8685 8585 -1 -8586 8586 4 -8587 8586 -1 -8686 8586 -1 -8587 8587 4 -8588 8587 -1 -8687 8587 -1 -8588 8588 4 -8589 8588 -1 -8688 8588 -1 -8589 8589 4 -8590 8589 -1 -8689 8589 -1 -8590 8590 4 -8591 8590 -1 -8690 8590 -1 -8591 8591 4 -8592 8591 -1 -8691 8591 -1 -8592 8592 4 -8593 8592 -1 -8692 8592 -1 -8593 8593 4 -8594 8593 -1 -8693 8593 -1 -8594 8594 4 -8595 8594 -1 -8694 8594 -1 -8595 8595 4 -8596 8595 -1 -8695 8595 -1 -8596 8596 4 -8597 8596 -1 -8696 8596 -1 -8597 8597 4 -8598 8597 -1 -8697 8597 -1 -8598 8598 4 -8599 8598 -1 -8698 8598 -1 -8599 8599 4 -8600 8599 -1 -8699 8599 -1 -8600 8600 4 -8700 8600 -1 -8601 8601 4 -8602 8601 -1 -8701 8601 -1 -8602 8602 4 -8603 8602 -1 -8702 8602 -1 -8603 8603 4 -8604 8603 -1 -8703 8603 -1 -8604 8604 4 -8605 8604 -1 -8704 8604 -1 -8605 8605 4 -8606 8605 -1 -8705 8605 -1 -8606 8606 4 -8607 8606 -1 -8706 8606 -1 -8607 8607 4 -8608 8607 -1 -8707 8607 -1 -8608 8608 4 -8609 8608 -1 -8708 8608 -1 -8609 8609 4 -8610 8609 -1 -8709 8609 -1 -8610 8610 4 -8611 8610 -1 -8710 8610 -1 -8611 8611 4 -8612 8611 -1 -8711 8611 -1 -8612 8612 4 -8613 8612 -1 -8712 8612 -1 -8613 8613 4 -8614 8613 -1 -8713 8613 -1 -8614 8614 4 -8615 8614 -1 -8714 8614 -1 -8615 8615 4 -8616 8615 -1 -8715 8615 -1 -8616 8616 4 -8617 8616 -1 -8716 8616 -1 -8617 8617 4 -8618 8617 -1 -8717 8617 -1 -8618 8618 4 -8619 8618 -1 -8718 8618 -1 -8619 8619 4 -8620 8619 -1 -8719 8619 -1 -8620 8620 4 -8621 8620 -1 -8720 8620 -1 -8621 8621 4 -8622 8621 -1 -8721 8621 -1 -8622 8622 4 -8623 8622 -1 -8722 8622 -1 -8623 8623 4 -8624 8623 -1 -8723 8623 -1 -8624 8624 4 -8625 8624 -1 -8724 8624 -1 -8625 8625 4 -8626 8625 -1 -8725 8625 -1 -8626 8626 4 -8627 8626 -1 -8726 8626 -1 -8627 8627 4 -8628 8627 -1 -8727 8627 -1 -8628 8628 4 -8629 8628 -1 -8728 8628 -1 -8629 8629 4 -8630 8629 -1 -8729 8629 -1 -8630 8630 4 -8631 8630 -1 -8730 8630 -1 -8631 8631 4 -8632 8631 -1 -8731 8631 -1 -8632 8632 4 -8633 8632 -1 -8732 8632 -1 -8633 8633 4 -8634 8633 -1 -8733 8633 -1 -8634 8634 4 -8635 8634 -1 -8734 8634 -1 -8635 8635 4 -8636 8635 -1 -8735 8635 -1 -8636 8636 4 -8637 8636 -1 -8736 8636 -1 -8637 8637 4 -8638 8637 -1 -8737 8637 -1 -8638 8638 4 -8639 8638 -1 -8738 8638 -1 -8639 8639 4 -8640 8639 -1 -8739 8639 -1 -8640 8640 4 -8641 8640 -1 -8740 8640 -1 -8641 8641 4 -8642 8641 -1 -8741 8641 -1 -8642 8642 4 -8643 8642 -1 -8742 8642 -1 -8643 8643 4 -8644 8643 -1 -8743 8643 -1 -8644 8644 4 -8645 8644 -1 -8744 8644 -1 -8645 8645 4 -8646 8645 -1 -8745 8645 -1 -8646 8646 4 -8647 8646 -1 -8746 8646 -1 -8647 8647 4 -8648 8647 -1 -8747 8647 -1 -8648 8648 4 -8649 8648 -1 -8748 8648 -1 -8649 8649 4 -8650 8649 -1 -8749 8649 -1 -8650 8650 4 -8651 8650 -1 -8750 8650 -1 -8651 8651 4 -8652 8651 -1 -8751 8651 -1 -8652 8652 4 -8653 8652 -1 -8752 8652 -1 -8653 8653 4 -8654 8653 -1 -8753 8653 -1 -8654 8654 4 -8655 8654 -1 -8754 8654 -1 -8655 8655 4 -8656 8655 -1 -8755 8655 -1 -8656 8656 4 -8657 8656 -1 -8756 8656 -1 -8657 8657 4 -8658 8657 -1 -8757 8657 -1 -8658 8658 4 -8659 8658 -1 -8758 8658 -1 -8659 8659 4 -8660 8659 -1 -8759 8659 -1 -8660 8660 4 -8661 8660 -1 -8760 8660 -1 -8661 8661 4 -8662 8661 -1 -8761 8661 -1 -8662 8662 4 -8663 8662 -1 -8762 8662 -1 -8663 8663 4 -8664 8663 -1 -8763 8663 -1 -8664 8664 4 -8665 8664 -1 -8764 8664 -1 -8665 8665 4 -8666 8665 -1 -8765 8665 -1 -8666 8666 4 -8667 8666 -1 -8766 8666 -1 -8667 8667 4 -8668 8667 -1 -8767 8667 -1 -8668 8668 4 -8669 8668 -1 -8768 8668 -1 -8669 8669 4 -8670 8669 -1 -8769 8669 -1 -8670 8670 4 -8671 8670 -1 -8770 8670 -1 -8671 8671 4 -8672 8671 -1 -8771 8671 -1 -8672 8672 4 -8673 8672 -1 -8772 8672 -1 -8673 8673 4 -8674 8673 -1 -8773 8673 -1 -8674 8674 4 -8675 8674 -1 -8774 8674 -1 -8675 8675 4 -8676 8675 -1 -8775 8675 -1 -8676 8676 4 -8677 8676 -1 -8776 8676 -1 -8677 8677 4 -8678 8677 -1 -8777 8677 -1 -8678 8678 4 -8679 8678 -1 -8778 8678 -1 -8679 8679 4 -8680 8679 -1 -8779 8679 -1 -8680 8680 4 -8681 8680 -1 -8780 8680 -1 -8681 8681 4 -8682 8681 -1 -8781 8681 -1 -8682 8682 4 -8683 8682 -1 -8782 8682 -1 -8683 8683 4 -8684 8683 -1 -8783 8683 -1 -8684 8684 4 -8685 8684 -1 -8784 8684 -1 -8685 8685 4 -8686 8685 -1 -8785 8685 -1 -8686 8686 4 -8687 8686 -1 -8786 8686 -1 -8687 8687 4 -8688 8687 -1 -8787 8687 -1 -8688 8688 4 -8689 8688 -1 -8788 8688 -1 -8689 8689 4 -8690 8689 -1 -8789 8689 -1 -8690 8690 4 -8691 8690 -1 -8790 8690 -1 -8691 8691 4 -8692 8691 -1 -8791 8691 -1 -8692 8692 4 -8693 8692 -1 -8792 8692 -1 -8693 8693 4 -8694 8693 -1 -8793 8693 -1 -8694 8694 4 -8695 8694 -1 -8794 8694 -1 -8695 8695 4 -8696 8695 -1 -8795 8695 -1 -8696 8696 4 -8697 8696 -1 -8796 8696 -1 -8697 8697 4 -8698 8697 -1 -8797 8697 -1 -8698 8698 4 -8699 8698 -1 -8798 8698 -1 -8699 8699 4 -8700 8699 -1 -8799 8699 -1 -8700 8700 4 -8800 8700 -1 -8701 8701 4 -8702 8701 -1 -8801 8701 -1 -8702 8702 4 -8703 8702 -1 -8802 8702 -1 -8703 8703 4 -8704 8703 -1 -8803 8703 -1 -8704 8704 4 -8705 8704 -1 -8804 8704 -1 -8705 8705 4 -8706 8705 -1 -8805 8705 -1 -8706 8706 4 -8707 8706 -1 -8806 8706 -1 -8707 8707 4 -8708 8707 -1 -8807 8707 -1 -8708 8708 4 -8709 8708 -1 -8808 8708 -1 -8709 8709 4 -8710 8709 -1 -8809 8709 -1 -8710 8710 4 -8711 8710 -1 -8810 8710 -1 -8711 8711 4 -8712 8711 -1 -8811 8711 -1 -8712 8712 4 -8713 8712 -1 -8812 8712 -1 -8713 8713 4 -8714 8713 -1 -8813 8713 -1 -8714 8714 4 -8715 8714 -1 -8814 8714 -1 -8715 8715 4 -8716 8715 -1 -8815 8715 -1 -8716 8716 4 -8717 8716 -1 -8816 8716 -1 -8717 8717 4 -8718 8717 -1 -8817 8717 -1 -8718 8718 4 -8719 8718 -1 -8818 8718 -1 -8719 8719 4 -8720 8719 -1 -8819 8719 -1 -8720 8720 4 -8721 8720 -1 -8820 8720 -1 -8721 8721 4 -8722 8721 -1 -8821 8721 -1 -8722 8722 4 -8723 8722 -1 -8822 8722 -1 -8723 8723 4 -8724 8723 -1 -8823 8723 -1 -8724 8724 4 -8725 8724 -1 -8824 8724 -1 -8725 8725 4 -8726 8725 -1 -8825 8725 -1 -8726 8726 4 -8727 8726 -1 -8826 8726 -1 -8727 8727 4 -8728 8727 -1 -8827 8727 -1 -8728 8728 4 -8729 8728 -1 -8828 8728 -1 -8729 8729 4 -8730 8729 -1 -8829 8729 -1 -8730 8730 4 -8731 8730 -1 -8830 8730 -1 -8731 8731 4 -8732 8731 -1 -8831 8731 -1 -8732 8732 4 -8733 8732 -1 -8832 8732 -1 -8733 8733 4 -8734 8733 -1 -8833 8733 -1 -8734 8734 4 -8735 8734 -1 -8834 8734 -1 -8735 8735 4 -8736 8735 -1 -8835 8735 -1 -8736 8736 4 -8737 8736 -1 -8836 8736 -1 -8737 8737 4 -8738 8737 -1 -8837 8737 -1 -8738 8738 4 -8739 8738 -1 -8838 8738 -1 -8739 8739 4 -8740 8739 -1 -8839 8739 -1 -8740 8740 4 -8741 8740 -1 -8840 8740 -1 -8741 8741 4 -8742 8741 -1 -8841 8741 -1 -8742 8742 4 -8743 8742 -1 -8842 8742 -1 -8743 8743 4 -8744 8743 -1 -8843 8743 -1 -8744 8744 4 -8745 8744 -1 -8844 8744 -1 -8745 8745 4 -8746 8745 -1 -8845 8745 -1 -8746 8746 4 -8747 8746 -1 -8846 8746 -1 -8747 8747 4 -8748 8747 -1 -8847 8747 -1 -8748 8748 4 -8749 8748 -1 -8848 8748 -1 -8749 8749 4 -8750 8749 -1 -8849 8749 -1 -8750 8750 4 -8751 8750 -1 -8850 8750 -1 -8751 8751 4 -8752 8751 -1 -8851 8751 -1 -8752 8752 4 -8753 8752 -1 -8852 8752 -1 -8753 8753 4 -8754 8753 -1 -8853 8753 -1 -8754 8754 4 -8755 8754 -1 -8854 8754 -1 -8755 8755 4 -8756 8755 -1 -8855 8755 -1 -8756 8756 4 -8757 8756 -1 -8856 8756 -1 -8757 8757 4 -8758 8757 -1 -8857 8757 -1 -8758 8758 4 -8759 8758 -1 -8858 8758 -1 -8759 8759 4 -8760 8759 -1 -8859 8759 -1 -8760 8760 4 -8761 8760 -1 -8860 8760 -1 -8761 8761 4 -8762 8761 -1 -8861 8761 -1 -8762 8762 4 -8763 8762 -1 -8862 8762 -1 -8763 8763 4 -8764 8763 -1 -8863 8763 -1 -8764 8764 4 -8765 8764 -1 -8864 8764 -1 -8765 8765 4 -8766 8765 -1 -8865 8765 -1 -8766 8766 4 -8767 8766 -1 -8866 8766 -1 -8767 8767 4 -8768 8767 -1 -8867 8767 -1 -8768 8768 4 -8769 8768 -1 -8868 8768 -1 -8769 8769 4 -8770 8769 -1 -8869 8769 -1 -8770 8770 4 -8771 8770 -1 -8870 8770 -1 -8771 8771 4 -8772 8771 -1 -8871 8771 -1 -8772 8772 4 -8773 8772 -1 -8872 8772 -1 -8773 8773 4 -8774 8773 -1 -8873 8773 -1 -8774 8774 4 -8775 8774 -1 -8874 8774 -1 -8775 8775 4 -8776 8775 -1 -8875 8775 -1 -8776 8776 4 -8777 8776 -1 -8876 8776 -1 -8777 8777 4 -8778 8777 -1 -8877 8777 -1 -8778 8778 4 -8779 8778 -1 -8878 8778 -1 -8779 8779 4 -8780 8779 -1 -8879 8779 -1 -8780 8780 4 -8781 8780 -1 -8880 8780 -1 -8781 8781 4 -8782 8781 -1 -8881 8781 -1 -8782 8782 4 -8783 8782 -1 -8882 8782 -1 -8783 8783 4 -8784 8783 -1 -8883 8783 -1 -8784 8784 4 -8785 8784 -1 -8884 8784 -1 -8785 8785 4 -8786 8785 -1 -8885 8785 -1 -8786 8786 4 -8787 8786 -1 -8886 8786 -1 -8787 8787 4 -8788 8787 -1 -8887 8787 -1 -8788 8788 4 -8789 8788 -1 -8888 8788 -1 -8789 8789 4 -8790 8789 -1 -8889 8789 -1 -8790 8790 4 -8791 8790 -1 -8890 8790 -1 -8791 8791 4 -8792 8791 -1 -8891 8791 -1 -8792 8792 4 -8793 8792 -1 -8892 8792 -1 -8793 8793 4 -8794 8793 -1 -8893 8793 -1 -8794 8794 4 -8795 8794 -1 -8894 8794 -1 -8795 8795 4 -8796 8795 -1 -8895 8795 -1 -8796 8796 4 -8797 8796 -1 -8896 8796 -1 -8797 8797 4 -8798 8797 -1 -8897 8797 -1 -8798 8798 4 -8799 8798 -1 -8898 8798 -1 -8799 8799 4 -8800 8799 -1 -8899 8799 -1 -8800 8800 4 -8900 8800 -1 -8801 8801 4 -8802 8801 -1 -8901 8801 -1 -8802 8802 4 -8803 8802 -1 -8902 8802 -1 -8803 8803 4 -8804 8803 -1 -8903 8803 -1 -8804 8804 4 -8805 8804 -1 -8904 8804 -1 -8805 8805 4 -8806 8805 -1 -8905 8805 -1 -8806 8806 4 -8807 8806 -1 -8906 8806 -1 -8807 8807 4 -8808 8807 -1 -8907 8807 -1 -8808 8808 4 -8809 8808 -1 -8908 8808 -1 -8809 8809 4 -8810 8809 -1 -8909 8809 -1 -8810 8810 4 -8811 8810 -1 -8910 8810 -1 -8811 8811 4 -8812 8811 -1 -8911 8811 -1 -8812 8812 4 -8813 8812 -1 -8912 8812 -1 -8813 8813 4 -8814 8813 -1 -8913 8813 -1 -8814 8814 4 -8815 8814 -1 -8914 8814 -1 -8815 8815 4 -8816 8815 -1 -8915 8815 -1 -8816 8816 4 -8817 8816 -1 -8916 8816 -1 -8817 8817 4 -8818 8817 -1 -8917 8817 -1 -8818 8818 4 -8819 8818 -1 -8918 8818 -1 -8819 8819 4 -8820 8819 -1 -8919 8819 -1 -8820 8820 4 -8821 8820 -1 -8920 8820 -1 -8821 8821 4 -8822 8821 -1 -8921 8821 -1 -8822 8822 4 -8823 8822 -1 -8922 8822 -1 -8823 8823 4 -8824 8823 -1 -8923 8823 -1 -8824 8824 4 -8825 8824 -1 -8924 8824 -1 -8825 8825 4 -8826 8825 -1 -8925 8825 -1 -8826 8826 4 -8827 8826 -1 -8926 8826 -1 -8827 8827 4 -8828 8827 -1 -8927 8827 -1 -8828 8828 4 -8829 8828 -1 -8928 8828 -1 -8829 8829 4 -8830 8829 -1 -8929 8829 -1 -8830 8830 4 -8831 8830 -1 -8930 8830 -1 -8831 8831 4 -8832 8831 -1 -8931 8831 -1 -8832 8832 4 -8833 8832 -1 -8932 8832 -1 -8833 8833 4 -8834 8833 -1 -8933 8833 -1 -8834 8834 4 -8835 8834 -1 -8934 8834 -1 -8835 8835 4 -8836 8835 -1 -8935 8835 -1 -8836 8836 4 -8837 8836 -1 -8936 8836 -1 -8837 8837 4 -8838 8837 -1 -8937 8837 -1 -8838 8838 4 -8839 8838 -1 -8938 8838 -1 -8839 8839 4 -8840 8839 -1 -8939 8839 -1 -8840 8840 4 -8841 8840 -1 -8940 8840 -1 -8841 8841 4 -8842 8841 -1 -8941 8841 -1 -8842 8842 4 -8843 8842 -1 -8942 8842 -1 -8843 8843 4 -8844 8843 -1 -8943 8843 -1 -8844 8844 4 -8845 8844 -1 -8944 8844 -1 -8845 8845 4 -8846 8845 -1 -8945 8845 -1 -8846 8846 4 -8847 8846 -1 -8946 8846 -1 -8847 8847 4 -8848 8847 -1 -8947 8847 -1 -8848 8848 4 -8849 8848 -1 -8948 8848 -1 -8849 8849 4 -8850 8849 -1 -8949 8849 -1 -8850 8850 4 -8851 8850 -1 -8950 8850 -1 -8851 8851 4 -8852 8851 -1 -8951 8851 -1 -8852 8852 4 -8853 8852 -1 -8952 8852 -1 -8853 8853 4 -8854 8853 -1 -8953 8853 -1 -8854 8854 4 -8855 8854 -1 -8954 8854 -1 -8855 8855 4 -8856 8855 -1 -8955 8855 -1 -8856 8856 4 -8857 8856 -1 -8956 8856 -1 -8857 8857 4 -8858 8857 -1 -8957 8857 -1 -8858 8858 4 -8859 8858 -1 -8958 8858 -1 -8859 8859 4 -8860 8859 -1 -8959 8859 -1 -8860 8860 4 -8861 8860 -1 -8960 8860 -1 -8861 8861 4 -8862 8861 -1 -8961 8861 -1 -8862 8862 4 -8863 8862 -1 -8962 8862 -1 -8863 8863 4 -8864 8863 -1 -8963 8863 -1 -8864 8864 4 -8865 8864 -1 -8964 8864 -1 -8865 8865 4 -8866 8865 -1 -8965 8865 -1 -8866 8866 4 -8867 8866 -1 -8966 8866 -1 -8867 8867 4 -8868 8867 -1 -8967 8867 -1 -8868 8868 4 -8869 8868 -1 -8968 8868 -1 -8869 8869 4 -8870 8869 -1 -8969 8869 -1 -8870 8870 4 -8871 8870 -1 -8970 8870 -1 -8871 8871 4 -8872 8871 -1 -8971 8871 -1 -8872 8872 4 -8873 8872 -1 -8972 8872 -1 -8873 8873 4 -8874 8873 -1 -8973 8873 -1 -8874 8874 4 -8875 8874 -1 -8974 8874 -1 -8875 8875 4 -8876 8875 -1 -8975 8875 -1 -8876 8876 4 -8877 8876 -1 -8976 8876 -1 -8877 8877 4 -8878 8877 -1 -8977 8877 -1 -8878 8878 4 -8879 8878 -1 -8978 8878 -1 -8879 8879 4 -8880 8879 -1 -8979 8879 -1 -8880 8880 4 -8881 8880 -1 -8980 8880 -1 -8881 8881 4 -8882 8881 -1 -8981 8881 -1 -8882 8882 4 -8883 8882 -1 -8982 8882 -1 -8883 8883 4 -8884 8883 -1 -8983 8883 -1 -8884 8884 4 -8885 8884 -1 -8984 8884 -1 -8885 8885 4 -8886 8885 -1 -8985 8885 -1 -8886 8886 4 -8887 8886 -1 -8986 8886 -1 -8887 8887 4 -8888 8887 -1 -8987 8887 -1 -8888 8888 4 -8889 8888 -1 -8988 8888 -1 -8889 8889 4 -8890 8889 -1 -8989 8889 -1 -8890 8890 4 -8891 8890 -1 -8990 8890 -1 -8891 8891 4 -8892 8891 -1 -8991 8891 -1 -8892 8892 4 -8893 8892 -1 -8992 8892 -1 -8893 8893 4 -8894 8893 -1 -8993 8893 -1 -8894 8894 4 -8895 8894 -1 -8994 8894 -1 -8895 8895 4 -8896 8895 -1 -8995 8895 -1 -8896 8896 4 -8897 8896 -1 -8996 8896 -1 -8897 8897 4 -8898 8897 -1 -8997 8897 -1 -8898 8898 4 -8899 8898 -1 -8998 8898 -1 -8899 8899 4 -8900 8899 -1 -8999 8899 -1 -8900 8900 4 -9000 8900 -1 -8901 8901 4 -8902 8901 -1 -9001 8901 -1 -8902 8902 4 -8903 8902 -1 -9002 8902 -1 -8903 8903 4 -8904 8903 -1 -9003 8903 -1 -8904 8904 4 -8905 8904 -1 -9004 8904 -1 -8905 8905 4 -8906 8905 -1 -9005 8905 -1 -8906 8906 4 -8907 8906 -1 -9006 8906 -1 -8907 8907 4 -8908 8907 -1 -9007 8907 -1 -8908 8908 4 -8909 8908 -1 -9008 8908 -1 -8909 8909 4 -8910 8909 -1 -9009 8909 -1 -8910 8910 4 -8911 8910 -1 -9010 8910 -1 -8911 8911 4 -8912 8911 -1 -9011 8911 -1 -8912 8912 4 -8913 8912 -1 -9012 8912 -1 -8913 8913 4 -8914 8913 -1 -9013 8913 -1 -8914 8914 4 -8915 8914 -1 -9014 8914 -1 -8915 8915 4 -8916 8915 -1 -9015 8915 -1 -8916 8916 4 -8917 8916 -1 -9016 8916 -1 -8917 8917 4 -8918 8917 -1 -9017 8917 -1 -8918 8918 4 -8919 8918 -1 -9018 8918 -1 -8919 8919 4 -8920 8919 -1 -9019 8919 -1 -8920 8920 4 -8921 8920 -1 -9020 8920 -1 -8921 8921 4 -8922 8921 -1 -9021 8921 -1 -8922 8922 4 -8923 8922 -1 -9022 8922 -1 -8923 8923 4 -8924 8923 -1 -9023 8923 -1 -8924 8924 4 -8925 8924 -1 -9024 8924 -1 -8925 8925 4 -8926 8925 -1 -9025 8925 -1 -8926 8926 4 -8927 8926 -1 -9026 8926 -1 -8927 8927 4 -8928 8927 -1 -9027 8927 -1 -8928 8928 4 -8929 8928 -1 -9028 8928 -1 -8929 8929 4 -8930 8929 -1 -9029 8929 -1 -8930 8930 4 -8931 8930 -1 -9030 8930 -1 -8931 8931 4 -8932 8931 -1 -9031 8931 -1 -8932 8932 4 -8933 8932 -1 -9032 8932 -1 -8933 8933 4 -8934 8933 -1 -9033 8933 -1 -8934 8934 4 -8935 8934 -1 -9034 8934 -1 -8935 8935 4 -8936 8935 -1 -9035 8935 -1 -8936 8936 4 -8937 8936 -1 -9036 8936 -1 -8937 8937 4 -8938 8937 -1 -9037 8937 -1 -8938 8938 4 -8939 8938 -1 -9038 8938 -1 -8939 8939 4 -8940 8939 -1 -9039 8939 -1 -8940 8940 4 -8941 8940 -1 -9040 8940 -1 -8941 8941 4 -8942 8941 -1 -9041 8941 -1 -8942 8942 4 -8943 8942 -1 -9042 8942 -1 -8943 8943 4 -8944 8943 -1 -9043 8943 -1 -8944 8944 4 -8945 8944 -1 -9044 8944 -1 -8945 8945 4 -8946 8945 -1 -9045 8945 -1 -8946 8946 4 -8947 8946 -1 -9046 8946 -1 -8947 8947 4 -8948 8947 -1 -9047 8947 -1 -8948 8948 4 -8949 8948 -1 -9048 8948 -1 -8949 8949 4 -8950 8949 -1 -9049 8949 -1 -8950 8950 4 -8951 8950 -1 -9050 8950 -1 -8951 8951 4 -8952 8951 -1 -9051 8951 -1 -8952 8952 4 -8953 8952 -1 -9052 8952 -1 -8953 8953 4 -8954 8953 -1 -9053 8953 -1 -8954 8954 4 -8955 8954 -1 -9054 8954 -1 -8955 8955 4 -8956 8955 -1 -9055 8955 -1 -8956 8956 4 -8957 8956 -1 -9056 8956 -1 -8957 8957 4 -8958 8957 -1 -9057 8957 -1 -8958 8958 4 -8959 8958 -1 -9058 8958 -1 -8959 8959 4 -8960 8959 -1 -9059 8959 -1 -8960 8960 4 -8961 8960 -1 -9060 8960 -1 -8961 8961 4 -8962 8961 -1 -9061 8961 -1 -8962 8962 4 -8963 8962 -1 -9062 8962 -1 -8963 8963 4 -8964 8963 -1 -9063 8963 -1 -8964 8964 4 -8965 8964 -1 -9064 8964 -1 -8965 8965 4 -8966 8965 -1 -9065 8965 -1 -8966 8966 4 -8967 8966 -1 -9066 8966 -1 -8967 8967 4 -8968 8967 -1 -9067 8967 -1 -8968 8968 4 -8969 8968 -1 -9068 8968 -1 -8969 8969 4 -8970 8969 -1 -9069 8969 -1 -8970 8970 4 -8971 8970 -1 -9070 8970 -1 -8971 8971 4 -8972 8971 -1 -9071 8971 -1 -8972 8972 4 -8973 8972 -1 -9072 8972 -1 -8973 8973 4 -8974 8973 -1 -9073 8973 -1 -8974 8974 4 -8975 8974 -1 -9074 8974 -1 -8975 8975 4 -8976 8975 -1 -9075 8975 -1 -8976 8976 4 -8977 8976 -1 -9076 8976 -1 -8977 8977 4 -8978 8977 -1 -9077 8977 -1 -8978 8978 4 -8979 8978 -1 -9078 8978 -1 -8979 8979 4 -8980 8979 -1 -9079 8979 -1 -8980 8980 4 -8981 8980 -1 -9080 8980 -1 -8981 8981 4 -8982 8981 -1 -9081 8981 -1 -8982 8982 4 -8983 8982 -1 -9082 8982 -1 -8983 8983 4 -8984 8983 -1 -9083 8983 -1 -8984 8984 4 -8985 8984 -1 -9084 8984 -1 -8985 8985 4 -8986 8985 -1 -9085 8985 -1 -8986 8986 4 -8987 8986 -1 -9086 8986 -1 -8987 8987 4 -8988 8987 -1 -9087 8987 -1 -8988 8988 4 -8989 8988 -1 -9088 8988 -1 -8989 8989 4 -8990 8989 -1 -9089 8989 -1 -8990 8990 4 -8991 8990 -1 -9090 8990 -1 -8991 8991 4 -8992 8991 -1 -9091 8991 -1 -8992 8992 4 -8993 8992 -1 -9092 8992 -1 -8993 8993 4 -8994 8993 -1 -9093 8993 -1 -8994 8994 4 -8995 8994 -1 -9094 8994 -1 -8995 8995 4 -8996 8995 -1 -9095 8995 -1 -8996 8996 4 -8997 8996 -1 -9096 8996 -1 -8997 8997 4 -8998 8997 -1 -9097 8997 -1 -8998 8998 4 -8999 8998 -1 -9098 8998 -1 -8999 8999 4 -9000 8999 -1 -9099 8999 -1 -9000 9000 4 -9100 9000 -1 -9001 9001 4 -9002 9001 -1 -9101 9001 -1 -9002 9002 4 -9003 9002 -1 -9102 9002 -1 -9003 9003 4 -9004 9003 -1 -9103 9003 -1 -9004 9004 4 -9005 9004 -1 -9104 9004 -1 -9005 9005 4 -9006 9005 -1 -9105 9005 -1 -9006 9006 4 -9007 9006 -1 -9106 9006 -1 -9007 9007 4 -9008 9007 -1 -9107 9007 -1 -9008 9008 4 -9009 9008 -1 -9108 9008 -1 -9009 9009 4 -9010 9009 -1 -9109 9009 -1 -9010 9010 4 -9011 9010 -1 -9110 9010 -1 -9011 9011 4 -9012 9011 -1 -9111 9011 -1 -9012 9012 4 -9013 9012 -1 -9112 9012 -1 -9013 9013 4 -9014 9013 -1 -9113 9013 -1 -9014 9014 4 -9015 9014 -1 -9114 9014 -1 -9015 9015 4 -9016 9015 -1 -9115 9015 -1 -9016 9016 4 -9017 9016 -1 -9116 9016 -1 -9017 9017 4 -9018 9017 -1 -9117 9017 -1 -9018 9018 4 -9019 9018 -1 -9118 9018 -1 -9019 9019 4 -9020 9019 -1 -9119 9019 -1 -9020 9020 4 -9021 9020 -1 -9120 9020 -1 -9021 9021 4 -9022 9021 -1 -9121 9021 -1 -9022 9022 4 -9023 9022 -1 -9122 9022 -1 -9023 9023 4 -9024 9023 -1 -9123 9023 -1 -9024 9024 4 -9025 9024 -1 -9124 9024 -1 -9025 9025 4 -9026 9025 -1 -9125 9025 -1 -9026 9026 4 -9027 9026 -1 -9126 9026 -1 -9027 9027 4 -9028 9027 -1 -9127 9027 -1 -9028 9028 4 -9029 9028 -1 -9128 9028 -1 -9029 9029 4 -9030 9029 -1 -9129 9029 -1 -9030 9030 4 -9031 9030 -1 -9130 9030 -1 -9031 9031 4 -9032 9031 -1 -9131 9031 -1 -9032 9032 4 -9033 9032 -1 -9132 9032 -1 -9033 9033 4 -9034 9033 -1 -9133 9033 -1 -9034 9034 4 -9035 9034 -1 -9134 9034 -1 -9035 9035 4 -9036 9035 -1 -9135 9035 -1 -9036 9036 4 -9037 9036 -1 -9136 9036 -1 -9037 9037 4 -9038 9037 -1 -9137 9037 -1 -9038 9038 4 -9039 9038 -1 -9138 9038 -1 -9039 9039 4 -9040 9039 -1 -9139 9039 -1 -9040 9040 4 -9041 9040 -1 -9140 9040 -1 -9041 9041 4 -9042 9041 -1 -9141 9041 -1 -9042 9042 4 -9043 9042 -1 -9142 9042 -1 -9043 9043 4 -9044 9043 -1 -9143 9043 -1 -9044 9044 4 -9045 9044 -1 -9144 9044 -1 -9045 9045 4 -9046 9045 -1 -9145 9045 -1 -9046 9046 4 -9047 9046 -1 -9146 9046 -1 -9047 9047 4 -9048 9047 -1 -9147 9047 -1 -9048 9048 4 -9049 9048 -1 -9148 9048 -1 -9049 9049 4 -9050 9049 -1 -9149 9049 -1 -9050 9050 4 -9051 9050 -1 -9150 9050 -1 -9051 9051 4 -9052 9051 -1 -9151 9051 -1 -9052 9052 4 -9053 9052 -1 -9152 9052 -1 -9053 9053 4 -9054 9053 -1 -9153 9053 -1 -9054 9054 4 -9055 9054 -1 -9154 9054 -1 -9055 9055 4 -9056 9055 -1 -9155 9055 -1 -9056 9056 4 -9057 9056 -1 -9156 9056 -1 -9057 9057 4 -9058 9057 -1 -9157 9057 -1 -9058 9058 4 -9059 9058 -1 -9158 9058 -1 -9059 9059 4 -9060 9059 -1 -9159 9059 -1 -9060 9060 4 -9061 9060 -1 -9160 9060 -1 -9061 9061 4 -9062 9061 -1 -9161 9061 -1 -9062 9062 4 -9063 9062 -1 -9162 9062 -1 -9063 9063 4 -9064 9063 -1 -9163 9063 -1 -9064 9064 4 -9065 9064 -1 -9164 9064 -1 -9065 9065 4 -9066 9065 -1 -9165 9065 -1 -9066 9066 4 -9067 9066 -1 -9166 9066 -1 -9067 9067 4 -9068 9067 -1 -9167 9067 -1 -9068 9068 4 -9069 9068 -1 -9168 9068 -1 -9069 9069 4 -9070 9069 -1 -9169 9069 -1 -9070 9070 4 -9071 9070 -1 -9170 9070 -1 -9071 9071 4 -9072 9071 -1 -9171 9071 -1 -9072 9072 4 -9073 9072 -1 -9172 9072 -1 -9073 9073 4 -9074 9073 -1 -9173 9073 -1 -9074 9074 4 -9075 9074 -1 -9174 9074 -1 -9075 9075 4 -9076 9075 -1 -9175 9075 -1 -9076 9076 4 -9077 9076 -1 -9176 9076 -1 -9077 9077 4 -9078 9077 -1 -9177 9077 -1 -9078 9078 4 -9079 9078 -1 -9178 9078 -1 -9079 9079 4 -9080 9079 -1 -9179 9079 -1 -9080 9080 4 -9081 9080 -1 -9180 9080 -1 -9081 9081 4 -9082 9081 -1 -9181 9081 -1 -9082 9082 4 -9083 9082 -1 -9182 9082 -1 -9083 9083 4 -9084 9083 -1 -9183 9083 -1 -9084 9084 4 -9085 9084 -1 -9184 9084 -1 -9085 9085 4 -9086 9085 -1 -9185 9085 -1 -9086 9086 4 -9087 9086 -1 -9186 9086 -1 -9087 9087 4 -9088 9087 -1 -9187 9087 -1 -9088 9088 4 -9089 9088 -1 -9188 9088 -1 -9089 9089 4 -9090 9089 -1 -9189 9089 -1 -9090 9090 4 -9091 9090 -1 -9190 9090 -1 -9091 9091 4 -9092 9091 -1 -9191 9091 -1 -9092 9092 4 -9093 9092 -1 -9192 9092 -1 -9093 9093 4 -9094 9093 -1 -9193 9093 -1 -9094 9094 4 -9095 9094 -1 -9194 9094 -1 -9095 9095 4 -9096 9095 -1 -9195 9095 -1 -9096 9096 4 -9097 9096 -1 -9196 9096 -1 -9097 9097 4 -9098 9097 -1 -9197 9097 -1 -9098 9098 4 -9099 9098 -1 -9198 9098 -1 -9099 9099 4 -9100 9099 -1 -9199 9099 -1 -9100 9100 4 -9200 9100 -1 -9101 9101 4 -9102 9101 -1 -9201 9101 -1 -9102 9102 4 -9103 9102 -1 -9202 9102 -1 -9103 9103 4 -9104 9103 -1 -9203 9103 -1 -9104 9104 4 -9105 9104 -1 -9204 9104 -1 -9105 9105 4 -9106 9105 -1 -9205 9105 -1 -9106 9106 4 -9107 9106 -1 -9206 9106 -1 -9107 9107 4 -9108 9107 -1 -9207 9107 -1 -9108 9108 4 -9109 9108 -1 -9208 9108 -1 -9109 9109 4 -9110 9109 -1 -9209 9109 -1 -9110 9110 4 -9111 9110 -1 -9210 9110 -1 -9111 9111 4 -9112 9111 -1 -9211 9111 -1 -9112 9112 4 -9113 9112 -1 -9212 9112 -1 -9113 9113 4 -9114 9113 -1 -9213 9113 -1 -9114 9114 4 -9115 9114 -1 -9214 9114 -1 -9115 9115 4 -9116 9115 -1 -9215 9115 -1 -9116 9116 4 -9117 9116 -1 -9216 9116 -1 -9117 9117 4 -9118 9117 -1 -9217 9117 -1 -9118 9118 4 -9119 9118 -1 -9218 9118 -1 -9119 9119 4 -9120 9119 -1 -9219 9119 -1 -9120 9120 4 -9121 9120 -1 -9220 9120 -1 -9121 9121 4 -9122 9121 -1 -9221 9121 -1 -9122 9122 4 -9123 9122 -1 -9222 9122 -1 -9123 9123 4 -9124 9123 -1 -9223 9123 -1 -9124 9124 4 -9125 9124 -1 -9224 9124 -1 -9125 9125 4 -9126 9125 -1 -9225 9125 -1 -9126 9126 4 -9127 9126 -1 -9226 9126 -1 -9127 9127 4 -9128 9127 -1 -9227 9127 -1 -9128 9128 4 -9129 9128 -1 -9228 9128 -1 -9129 9129 4 -9130 9129 -1 -9229 9129 -1 -9130 9130 4 -9131 9130 -1 -9230 9130 -1 -9131 9131 4 -9132 9131 -1 -9231 9131 -1 -9132 9132 4 -9133 9132 -1 -9232 9132 -1 -9133 9133 4 -9134 9133 -1 -9233 9133 -1 -9134 9134 4 -9135 9134 -1 -9234 9134 -1 -9135 9135 4 -9136 9135 -1 -9235 9135 -1 -9136 9136 4 -9137 9136 -1 -9236 9136 -1 -9137 9137 4 -9138 9137 -1 -9237 9137 -1 -9138 9138 4 -9139 9138 -1 -9238 9138 -1 -9139 9139 4 -9140 9139 -1 -9239 9139 -1 -9140 9140 4 -9141 9140 -1 -9240 9140 -1 -9141 9141 4 -9142 9141 -1 -9241 9141 -1 -9142 9142 4 -9143 9142 -1 -9242 9142 -1 -9143 9143 4 -9144 9143 -1 -9243 9143 -1 -9144 9144 4 -9145 9144 -1 -9244 9144 -1 -9145 9145 4 -9146 9145 -1 -9245 9145 -1 -9146 9146 4 -9147 9146 -1 -9246 9146 -1 -9147 9147 4 -9148 9147 -1 -9247 9147 -1 -9148 9148 4 -9149 9148 -1 -9248 9148 -1 -9149 9149 4 -9150 9149 -1 -9249 9149 -1 -9150 9150 4 -9151 9150 -1 -9250 9150 -1 -9151 9151 4 -9152 9151 -1 -9251 9151 -1 -9152 9152 4 -9153 9152 -1 -9252 9152 -1 -9153 9153 4 -9154 9153 -1 -9253 9153 -1 -9154 9154 4 -9155 9154 -1 -9254 9154 -1 -9155 9155 4 -9156 9155 -1 -9255 9155 -1 -9156 9156 4 -9157 9156 -1 -9256 9156 -1 -9157 9157 4 -9158 9157 -1 -9257 9157 -1 -9158 9158 4 -9159 9158 -1 -9258 9158 -1 -9159 9159 4 -9160 9159 -1 -9259 9159 -1 -9160 9160 4 -9161 9160 -1 -9260 9160 -1 -9161 9161 4 -9162 9161 -1 -9261 9161 -1 -9162 9162 4 -9163 9162 -1 -9262 9162 -1 -9163 9163 4 -9164 9163 -1 -9263 9163 -1 -9164 9164 4 -9165 9164 -1 -9264 9164 -1 -9165 9165 4 -9166 9165 -1 -9265 9165 -1 -9166 9166 4 -9167 9166 -1 -9266 9166 -1 -9167 9167 4 -9168 9167 -1 -9267 9167 -1 -9168 9168 4 -9169 9168 -1 -9268 9168 -1 -9169 9169 4 -9170 9169 -1 -9269 9169 -1 -9170 9170 4 -9171 9170 -1 -9270 9170 -1 -9171 9171 4 -9172 9171 -1 -9271 9171 -1 -9172 9172 4 -9173 9172 -1 -9272 9172 -1 -9173 9173 4 -9174 9173 -1 -9273 9173 -1 -9174 9174 4 -9175 9174 -1 -9274 9174 -1 -9175 9175 4 -9176 9175 -1 -9275 9175 -1 -9176 9176 4 -9177 9176 -1 -9276 9176 -1 -9177 9177 4 -9178 9177 -1 -9277 9177 -1 -9178 9178 4 -9179 9178 -1 -9278 9178 -1 -9179 9179 4 -9180 9179 -1 -9279 9179 -1 -9180 9180 4 -9181 9180 -1 -9280 9180 -1 -9181 9181 4 -9182 9181 -1 -9281 9181 -1 -9182 9182 4 -9183 9182 -1 -9282 9182 -1 -9183 9183 4 -9184 9183 -1 -9283 9183 -1 -9184 9184 4 -9185 9184 -1 -9284 9184 -1 -9185 9185 4 -9186 9185 -1 -9285 9185 -1 -9186 9186 4 -9187 9186 -1 -9286 9186 -1 -9187 9187 4 -9188 9187 -1 -9287 9187 -1 -9188 9188 4 -9189 9188 -1 -9288 9188 -1 -9189 9189 4 -9190 9189 -1 -9289 9189 -1 -9190 9190 4 -9191 9190 -1 -9290 9190 -1 -9191 9191 4 -9192 9191 -1 -9291 9191 -1 -9192 9192 4 -9193 9192 -1 -9292 9192 -1 -9193 9193 4 -9194 9193 -1 -9293 9193 -1 -9194 9194 4 -9195 9194 -1 -9294 9194 -1 -9195 9195 4 -9196 9195 -1 -9295 9195 -1 -9196 9196 4 -9197 9196 -1 -9296 9196 -1 -9197 9197 4 -9198 9197 -1 -9297 9197 -1 -9198 9198 4 -9199 9198 -1 -9298 9198 -1 -9199 9199 4 -9200 9199 -1 -9299 9199 -1 -9200 9200 4 -9300 9200 -1 -9201 9201 4 -9202 9201 -1 -9301 9201 -1 -9202 9202 4 -9203 9202 -1 -9302 9202 -1 -9203 9203 4 -9204 9203 -1 -9303 9203 -1 -9204 9204 4 -9205 9204 -1 -9304 9204 -1 -9205 9205 4 -9206 9205 -1 -9305 9205 -1 -9206 9206 4 -9207 9206 -1 -9306 9206 -1 -9207 9207 4 -9208 9207 -1 -9307 9207 -1 -9208 9208 4 -9209 9208 -1 -9308 9208 -1 -9209 9209 4 -9210 9209 -1 -9309 9209 -1 -9210 9210 4 -9211 9210 -1 -9310 9210 -1 -9211 9211 4 -9212 9211 -1 -9311 9211 -1 -9212 9212 4 -9213 9212 -1 -9312 9212 -1 -9213 9213 4 -9214 9213 -1 -9313 9213 -1 -9214 9214 4 -9215 9214 -1 -9314 9214 -1 -9215 9215 4 -9216 9215 -1 -9315 9215 -1 -9216 9216 4 -9217 9216 -1 -9316 9216 -1 -9217 9217 4 -9218 9217 -1 -9317 9217 -1 -9218 9218 4 -9219 9218 -1 -9318 9218 -1 -9219 9219 4 -9220 9219 -1 -9319 9219 -1 -9220 9220 4 -9221 9220 -1 -9320 9220 -1 -9221 9221 4 -9222 9221 -1 -9321 9221 -1 -9222 9222 4 -9223 9222 -1 -9322 9222 -1 -9223 9223 4 -9224 9223 -1 -9323 9223 -1 -9224 9224 4 -9225 9224 -1 -9324 9224 -1 -9225 9225 4 -9226 9225 -1 -9325 9225 -1 -9226 9226 4 -9227 9226 -1 -9326 9226 -1 -9227 9227 4 -9228 9227 -1 -9327 9227 -1 -9228 9228 4 -9229 9228 -1 -9328 9228 -1 -9229 9229 4 -9230 9229 -1 -9329 9229 -1 -9230 9230 4 -9231 9230 -1 -9330 9230 -1 -9231 9231 4 -9232 9231 -1 -9331 9231 -1 -9232 9232 4 -9233 9232 -1 -9332 9232 -1 -9233 9233 4 -9234 9233 -1 -9333 9233 -1 -9234 9234 4 -9235 9234 -1 -9334 9234 -1 -9235 9235 4 -9236 9235 -1 -9335 9235 -1 -9236 9236 4 -9237 9236 -1 -9336 9236 -1 -9237 9237 4 -9238 9237 -1 -9337 9237 -1 -9238 9238 4 -9239 9238 -1 -9338 9238 -1 -9239 9239 4 -9240 9239 -1 -9339 9239 -1 -9240 9240 4 -9241 9240 -1 -9340 9240 -1 -9241 9241 4 -9242 9241 -1 -9341 9241 -1 -9242 9242 4 -9243 9242 -1 -9342 9242 -1 -9243 9243 4 -9244 9243 -1 -9343 9243 -1 -9244 9244 4 -9245 9244 -1 -9344 9244 -1 -9245 9245 4 -9246 9245 -1 -9345 9245 -1 -9246 9246 4 -9247 9246 -1 -9346 9246 -1 -9247 9247 4 -9248 9247 -1 -9347 9247 -1 -9248 9248 4 -9249 9248 -1 -9348 9248 -1 -9249 9249 4 -9250 9249 -1 -9349 9249 -1 -9250 9250 4 -9251 9250 -1 -9350 9250 -1 -9251 9251 4 -9252 9251 -1 -9351 9251 -1 -9252 9252 4 -9253 9252 -1 -9352 9252 -1 -9253 9253 4 -9254 9253 -1 -9353 9253 -1 -9254 9254 4 -9255 9254 -1 -9354 9254 -1 -9255 9255 4 -9256 9255 -1 -9355 9255 -1 -9256 9256 4 -9257 9256 -1 -9356 9256 -1 -9257 9257 4 -9258 9257 -1 -9357 9257 -1 -9258 9258 4 -9259 9258 -1 -9358 9258 -1 -9259 9259 4 -9260 9259 -1 -9359 9259 -1 -9260 9260 4 -9261 9260 -1 -9360 9260 -1 -9261 9261 4 -9262 9261 -1 -9361 9261 -1 -9262 9262 4 -9263 9262 -1 -9362 9262 -1 -9263 9263 4 -9264 9263 -1 -9363 9263 -1 -9264 9264 4 -9265 9264 -1 -9364 9264 -1 -9265 9265 4 -9266 9265 -1 -9365 9265 -1 -9266 9266 4 -9267 9266 -1 -9366 9266 -1 -9267 9267 4 -9268 9267 -1 -9367 9267 -1 -9268 9268 4 -9269 9268 -1 -9368 9268 -1 -9269 9269 4 -9270 9269 -1 -9369 9269 -1 -9270 9270 4 -9271 9270 -1 -9370 9270 -1 -9271 9271 4 -9272 9271 -1 -9371 9271 -1 -9272 9272 4 -9273 9272 -1 -9372 9272 -1 -9273 9273 4 -9274 9273 -1 -9373 9273 -1 -9274 9274 4 -9275 9274 -1 -9374 9274 -1 -9275 9275 4 -9276 9275 -1 -9375 9275 -1 -9276 9276 4 -9277 9276 -1 -9376 9276 -1 -9277 9277 4 -9278 9277 -1 -9377 9277 -1 -9278 9278 4 -9279 9278 -1 -9378 9278 -1 -9279 9279 4 -9280 9279 -1 -9379 9279 -1 -9280 9280 4 -9281 9280 -1 -9380 9280 -1 -9281 9281 4 -9282 9281 -1 -9381 9281 -1 -9282 9282 4 -9283 9282 -1 -9382 9282 -1 -9283 9283 4 -9284 9283 -1 -9383 9283 -1 -9284 9284 4 -9285 9284 -1 -9384 9284 -1 -9285 9285 4 -9286 9285 -1 -9385 9285 -1 -9286 9286 4 -9287 9286 -1 -9386 9286 -1 -9287 9287 4 -9288 9287 -1 -9387 9287 -1 -9288 9288 4 -9289 9288 -1 -9388 9288 -1 -9289 9289 4 -9290 9289 -1 -9389 9289 -1 -9290 9290 4 -9291 9290 -1 -9390 9290 -1 -9291 9291 4 -9292 9291 -1 -9391 9291 -1 -9292 9292 4 -9293 9292 -1 -9392 9292 -1 -9293 9293 4 -9294 9293 -1 -9393 9293 -1 -9294 9294 4 -9295 9294 -1 -9394 9294 -1 -9295 9295 4 -9296 9295 -1 -9395 9295 -1 -9296 9296 4 -9297 9296 -1 -9396 9296 -1 -9297 9297 4 -9298 9297 -1 -9397 9297 -1 -9298 9298 4 -9299 9298 -1 -9398 9298 -1 -9299 9299 4 -9300 9299 -1 -9399 9299 -1 -9300 9300 4 -9400 9300 -1 -9301 9301 4 -9302 9301 -1 -9401 9301 -1 -9302 9302 4 -9303 9302 -1 -9402 9302 -1 -9303 9303 4 -9304 9303 -1 -9403 9303 -1 -9304 9304 4 -9305 9304 -1 -9404 9304 -1 -9305 9305 4 -9306 9305 -1 -9405 9305 -1 -9306 9306 4 -9307 9306 -1 -9406 9306 -1 -9307 9307 4 -9308 9307 -1 -9407 9307 -1 -9308 9308 4 -9309 9308 -1 -9408 9308 -1 -9309 9309 4 -9310 9309 -1 -9409 9309 -1 -9310 9310 4 -9311 9310 -1 -9410 9310 -1 -9311 9311 4 -9312 9311 -1 -9411 9311 -1 -9312 9312 4 -9313 9312 -1 -9412 9312 -1 -9313 9313 4 -9314 9313 -1 -9413 9313 -1 -9314 9314 4 -9315 9314 -1 -9414 9314 -1 -9315 9315 4 -9316 9315 -1 -9415 9315 -1 -9316 9316 4 -9317 9316 -1 -9416 9316 -1 -9317 9317 4 -9318 9317 -1 -9417 9317 -1 -9318 9318 4 -9319 9318 -1 -9418 9318 -1 -9319 9319 4 -9320 9319 -1 -9419 9319 -1 -9320 9320 4 -9321 9320 -1 -9420 9320 -1 -9321 9321 4 -9322 9321 -1 -9421 9321 -1 -9322 9322 4 -9323 9322 -1 -9422 9322 -1 -9323 9323 4 -9324 9323 -1 -9423 9323 -1 -9324 9324 4 -9325 9324 -1 -9424 9324 -1 -9325 9325 4 -9326 9325 -1 -9425 9325 -1 -9326 9326 4 -9327 9326 -1 -9426 9326 -1 -9327 9327 4 -9328 9327 -1 -9427 9327 -1 -9328 9328 4 -9329 9328 -1 -9428 9328 -1 -9329 9329 4 -9330 9329 -1 -9429 9329 -1 -9330 9330 4 -9331 9330 -1 -9430 9330 -1 -9331 9331 4 -9332 9331 -1 -9431 9331 -1 -9332 9332 4 -9333 9332 -1 -9432 9332 -1 -9333 9333 4 -9334 9333 -1 -9433 9333 -1 -9334 9334 4 -9335 9334 -1 -9434 9334 -1 -9335 9335 4 -9336 9335 -1 -9435 9335 -1 -9336 9336 4 -9337 9336 -1 -9436 9336 -1 -9337 9337 4 -9338 9337 -1 -9437 9337 -1 -9338 9338 4 -9339 9338 -1 -9438 9338 -1 -9339 9339 4 -9340 9339 -1 -9439 9339 -1 -9340 9340 4 -9341 9340 -1 -9440 9340 -1 -9341 9341 4 -9342 9341 -1 -9441 9341 -1 -9342 9342 4 -9343 9342 -1 -9442 9342 -1 -9343 9343 4 -9344 9343 -1 -9443 9343 -1 -9344 9344 4 -9345 9344 -1 -9444 9344 -1 -9345 9345 4 -9346 9345 -1 -9445 9345 -1 -9346 9346 4 -9347 9346 -1 -9446 9346 -1 -9347 9347 4 -9348 9347 -1 -9447 9347 -1 -9348 9348 4 -9349 9348 -1 -9448 9348 -1 -9349 9349 4 -9350 9349 -1 -9449 9349 -1 -9350 9350 4 -9351 9350 -1 -9450 9350 -1 -9351 9351 4 -9352 9351 -1 -9451 9351 -1 -9352 9352 4 -9353 9352 -1 -9452 9352 -1 -9353 9353 4 -9354 9353 -1 -9453 9353 -1 -9354 9354 4 -9355 9354 -1 -9454 9354 -1 -9355 9355 4 -9356 9355 -1 -9455 9355 -1 -9356 9356 4 -9357 9356 -1 -9456 9356 -1 -9357 9357 4 -9358 9357 -1 -9457 9357 -1 -9358 9358 4 -9359 9358 -1 -9458 9358 -1 -9359 9359 4 -9360 9359 -1 -9459 9359 -1 -9360 9360 4 -9361 9360 -1 -9460 9360 -1 -9361 9361 4 -9362 9361 -1 -9461 9361 -1 -9362 9362 4 -9363 9362 -1 -9462 9362 -1 -9363 9363 4 -9364 9363 -1 -9463 9363 -1 -9364 9364 4 -9365 9364 -1 -9464 9364 -1 -9365 9365 4 -9366 9365 -1 -9465 9365 -1 -9366 9366 4 -9367 9366 -1 -9466 9366 -1 -9367 9367 4 -9368 9367 -1 -9467 9367 -1 -9368 9368 4 -9369 9368 -1 -9468 9368 -1 -9369 9369 4 -9370 9369 -1 -9469 9369 -1 -9370 9370 4 -9371 9370 -1 -9470 9370 -1 -9371 9371 4 -9372 9371 -1 -9471 9371 -1 -9372 9372 4 -9373 9372 -1 -9472 9372 -1 -9373 9373 4 -9374 9373 -1 -9473 9373 -1 -9374 9374 4 -9375 9374 -1 -9474 9374 -1 -9375 9375 4 -9376 9375 -1 -9475 9375 -1 -9376 9376 4 -9377 9376 -1 -9476 9376 -1 -9377 9377 4 -9378 9377 -1 -9477 9377 -1 -9378 9378 4 -9379 9378 -1 -9478 9378 -1 -9379 9379 4 -9380 9379 -1 -9479 9379 -1 -9380 9380 4 -9381 9380 -1 -9480 9380 -1 -9381 9381 4 -9382 9381 -1 -9481 9381 -1 -9382 9382 4 -9383 9382 -1 -9482 9382 -1 -9383 9383 4 -9384 9383 -1 -9483 9383 -1 -9384 9384 4 -9385 9384 -1 -9484 9384 -1 -9385 9385 4 -9386 9385 -1 -9485 9385 -1 -9386 9386 4 -9387 9386 -1 -9486 9386 -1 -9387 9387 4 -9388 9387 -1 -9487 9387 -1 -9388 9388 4 -9389 9388 -1 -9488 9388 -1 -9389 9389 4 -9390 9389 -1 -9489 9389 -1 -9390 9390 4 -9391 9390 -1 -9490 9390 -1 -9391 9391 4 -9392 9391 -1 -9491 9391 -1 -9392 9392 4 -9393 9392 -1 -9492 9392 -1 -9393 9393 4 -9394 9393 -1 -9493 9393 -1 -9394 9394 4 -9395 9394 -1 -9494 9394 -1 -9395 9395 4 -9396 9395 -1 -9495 9395 -1 -9396 9396 4 -9397 9396 -1 -9496 9396 -1 -9397 9397 4 -9398 9397 -1 -9497 9397 -1 -9398 9398 4 -9399 9398 -1 -9498 9398 -1 -9399 9399 4 -9400 9399 -1 -9499 9399 -1 -9400 9400 4 -9500 9400 -1 -9401 9401 4 -9402 9401 -1 -9501 9401 -1 -9402 9402 4 -9403 9402 -1 -9502 9402 -1 -9403 9403 4 -9404 9403 -1 -9503 9403 -1 -9404 9404 4 -9405 9404 -1 -9504 9404 -1 -9405 9405 4 -9406 9405 -1 -9505 9405 -1 -9406 9406 4 -9407 9406 -1 -9506 9406 -1 -9407 9407 4 -9408 9407 -1 -9507 9407 -1 -9408 9408 4 -9409 9408 -1 -9508 9408 -1 -9409 9409 4 -9410 9409 -1 -9509 9409 -1 -9410 9410 4 -9411 9410 -1 -9510 9410 -1 -9411 9411 4 -9412 9411 -1 -9511 9411 -1 -9412 9412 4 -9413 9412 -1 -9512 9412 -1 -9413 9413 4 -9414 9413 -1 -9513 9413 -1 -9414 9414 4 -9415 9414 -1 -9514 9414 -1 -9415 9415 4 -9416 9415 -1 -9515 9415 -1 -9416 9416 4 -9417 9416 -1 -9516 9416 -1 -9417 9417 4 -9418 9417 -1 -9517 9417 -1 -9418 9418 4 -9419 9418 -1 -9518 9418 -1 -9419 9419 4 -9420 9419 -1 -9519 9419 -1 -9420 9420 4 -9421 9420 -1 -9520 9420 -1 -9421 9421 4 -9422 9421 -1 -9521 9421 -1 -9422 9422 4 -9423 9422 -1 -9522 9422 -1 -9423 9423 4 -9424 9423 -1 -9523 9423 -1 -9424 9424 4 -9425 9424 -1 -9524 9424 -1 -9425 9425 4 -9426 9425 -1 -9525 9425 -1 -9426 9426 4 -9427 9426 -1 -9526 9426 -1 -9427 9427 4 -9428 9427 -1 -9527 9427 -1 -9428 9428 4 -9429 9428 -1 -9528 9428 -1 -9429 9429 4 -9430 9429 -1 -9529 9429 -1 -9430 9430 4 -9431 9430 -1 -9530 9430 -1 -9431 9431 4 -9432 9431 -1 -9531 9431 -1 -9432 9432 4 -9433 9432 -1 -9532 9432 -1 -9433 9433 4 -9434 9433 -1 -9533 9433 -1 -9434 9434 4 -9435 9434 -1 -9534 9434 -1 -9435 9435 4 -9436 9435 -1 -9535 9435 -1 -9436 9436 4 -9437 9436 -1 -9536 9436 -1 -9437 9437 4 -9438 9437 -1 -9537 9437 -1 -9438 9438 4 -9439 9438 -1 -9538 9438 -1 -9439 9439 4 -9440 9439 -1 -9539 9439 -1 -9440 9440 4 -9441 9440 -1 -9540 9440 -1 -9441 9441 4 -9442 9441 -1 -9541 9441 -1 -9442 9442 4 -9443 9442 -1 -9542 9442 -1 -9443 9443 4 -9444 9443 -1 -9543 9443 -1 -9444 9444 4 -9445 9444 -1 -9544 9444 -1 -9445 9445 4 -9446 9445 -1 -9545 9445 -1 -9446 9446 4 -9447 9446 -1 -9546 9446 -1 -9447 9447 4 -9448 9447 -1 -9547 9447 -1 -9448 9448 4 -9449 9448 -1 -9548 9448 -1 -9449 9449 4 -9450 9449 -1 -9549 9449 -1 -9450 9450 4 -9451 9450 -1 -9550 9450 -1 -9451 9451 4 -9452 9451 -1 -9551 9451 -1 -9452 9452 4 -9453 9452 -1 -9552 9452 -1 -9453 9453 4 -9454 9453 -1 -9553 9453 -1 -9454 9454 4 -9455 9454 -1 -9554 9454 -1 -9455 9455 4 -9456 9455 -1 -9555 9455 -1 -9456 9456 4 -9457 9456 -1 -9556 9456 -1 -9457 9457 4 -9458 9457 -1 -9557 9457 -1 -9458 9458 4 -9459 9458 -1 -9558 9458 -1 -9459 9459 4 -9460 9459 -1 -9559 9459 -1 -9460 9460 4 -9461 9460 -1 -9560 9460 -1 -9461 9461 4 -9462 9461 -1 -9561 9461 -1 -9462 9462 4 -9463 9462 -1 -9562 9462 -1 -9463 9463 4 -9464 9463 -1 -9563 9463 -1 -9464 9464 4 -9465 9464 -1 -9564 9464 -1 -9465 9465 4 -9466 9465 -1 -9565 9465 -1 -9466 9466 4 -9467 9466 -1 -9566 9466 -1 -9467 9467 4 -9468 9467 -1 -9567 9467 -1 -9468 9468 4 -9469 9468 -1 -9568 9468 -1 -9469 9469 4 -9470 9469 -1 -9569 9469 -1 -9470 9470 4 -9471 9470 -1 -9570 9470 -1 -9471 9471 4 -9472 9471 -1 -9571 9471 -1 -9472 9472 4 -9473 9472 -1 -9572 9472 -1 -9473 9473 4 -9474 9473 -1 -9573 9473 -1 -9474 9474 4 -9475 9474 -1 -9574 9474 -1 -9475 9475 4 -9476 9475 -1 -9575 9475 -1 -9476 9476 4 -9477 9476 -1 -9576 9476 -1 -9477 9477 4 -9478 9477 -1 -9577 9477 -1 -9478 9478 4 -9479 9478 -1 -9578 9478 -1 -9479 9479 4 -9480 9479 -1 -9579 9479 -1 -9480 9480 4 -9481 9480 -1 -9580 9480 -1 -9481 9481 4 -9482 9481 -1 -9581 9481 -1 -9482 9482 4 -9483 9482 -1 -9582 9482 -1 -9483 9483 4 -9484 9483 -1 -9583 9483 -1 -9484 9484 4 -9485 9484 -1 -9584 9484 -1 -9485 9485 4 -9486 9485 -1 -9585 9485 -1 -9486 9486 4 -9487 9486 -1 -9586 9486 -1 -9487 9487 4 -9488 9487 -1 -9587 9487 -1 -9488 9488 4 -9489 9488 -1 -9588 9488 -1 -9489 9489 4 -9490 9489 -1 -9589 9489 -1 -9490 9490 4 -9491 9490 -1 -9590 9490 -1 -9491 9491 4 -9492 9491 -1 -9591 9491 -1 -9492 9492 4 -9493 9492 -1 -9592 9492 -1 -9493 9493 4 -9494 9493 -1 -9593 9493 -1 -9494 9494 4 -9495 9494 -1 -9594 9494 -1 -9495 9495 4 -9496 9495 -1 -9595 9495 -1 -9496 9496 4 -9497 9496 -1 -9596 9496 -1 -9497 9497 4 -9498 9497 -1 -9597 9497 -1 -9498 9498 4 -9499 9498 -1 -9598 9498 -1 -9499 9499 4 -9500 9499 -1 -9599 9499 -1 -9500 9500 4 -9600 9500 -1 -9501 9501 4 -9502 9501 -1 -9601 9501 -1 -9502 9502 4 -9503 9502 -1 -9602 9502 -1 -9503 9503 4 -9504 9503 -1 -9603 9503 -1 -9504 9504 4 -9505 9504 -1 -9604 9504 -1 -9505 9505 4 -9506 9505 -1 -9605 9505 -1 -9506 9506 4 -9507 9506 -1 -9606 9506 -1 -9507 9507 4 -9508 9507 -1 -9607 9507 -1 -9508 9508 4 -9509 9508 -1 -9608 9508 -1 -9509 9509 4 -9510 9509 -1 -9609 9509 -1 -9510 9510 4 -9511 9510 -1 -9610 9510 -1 -9511 9511 4 -9512 9511 -1 -9611 9511 -1 -9512 9512 4 -9513 9512 -1 -9612 9512 -1 -9513 9513 4 -9514 9513 -1 -9613 9513 -1 -9514 9514 4 -9515 9514 -1 -9614 9514 -1 -9515 9515 4 -9516 9515 -1 -9615 9515 -1 -9516 9516 4 -9517 9516 -1 -9616 9516 -1 -9517 9517 4 -9518 9517 -1 -9617 9517 -1 -9518 9518 4 -9519 9518 -1 -9618 9518 -1 -9519 9519 4 -9520 9519 -1 -9619 9519 -1 -9520 9520 4 -9521 9520 -1 -9620 9520 -1 -9521 9521 4 -9522 9521 -1 -9621 9521 -1 -9522 9522 4 -9523 9522 -1 -9622 9522 -1 -9523 9523 4 -9524 9523 -1 -9623 9523 -1 -9524 9524 4 -9525 9524 -1 -9624 9524 -1 -9525 9525 4 -9526 9525 -1 -9625 9525 -1 -9526 9526 4 -9527 9526 -1 -9626 9526 -1 -9527 9527 4 -9528 9527 -1 -9627 9527 -1 -9528 9528 4 -9529 9528 -1 -9628 9528 -1 -9529 9529 4 -9530 9529 -1 -9629 9529 -1 -9530 9530 4 -9531 9530 -1 -9630 9530 -1 -9531 9531 4 -9532 9531 -1 -9631 9531 -1 -9532 9532 4 -9533 9532 -1 -9632 9532 -1 -9533 9533 4 -9534 9533 -1 -9633 9533 -1 -9534 9534 4 -9535 9534 -1 -9634 9534 -1 -9535 9535 4 -9536 9535 -1 -9635 9535 -1 -9536 9536 4 -9537 9536 -1 -9636 9536 -1 -9537 9537 4 -9538 9537 -1 -9637 9537 -1 -9538 9538 4 -9539 9538 -1 -9638 9538 -1 -9539 9539 4 -9540 9539 -1 -9639 9539 -1 -9540 9540 4 -9541 9540 -1 -9640 9540 -1 -9541 9541 4 -9542 9541 -1 -9641 9541 -1 -9542 9542 4 -9543 9542 -1 -9642 9542 -1 -9543 9543 4 -9544 9543 -1 -9643 9543 -1 -9544 9544 4 -9545 9544 -1 -9644 9544 -1 -9545 9545 4 -9546 9545 -1 -9645 9545 -1 -9546 9546 4 -9547 9546 -1 -9646 9546 -1 -9547 9547 4 -9548 9547 -1 -9647 9547 -1 -9548 9548 4 -9549 9548 -1 -9648 9548 -1 -9549 9549 4 -9550 9549 -1 -9649 9549 -1 -9550 9550 4 -9551 9550 -1 -9650 9550 -1 -9551 9551 4 -9552 9551 -1 -9651 9551 -1 -9552 9552 4 -9553 9552 -1 -9652 9552 -1 -9553 9553 4 -9554 9553 -1 -9653 9553 -1 -9554 9554 4 -9555 9554 -1 -9654 9554 -1 -9555 9555 4 -9556 9555 -1 -9655 9555 -1 -9556 9556 4 -9557 9556 -1 -9656 9556 -1 -9557 9557 4 -9558 9557 -1 -9657 9557 -1 -9558 9558 4 -9559 9558 -1 -9658 9558 -1 -9559 9559 4 -9560 9559 -1 -9659 9559 -1 -9560 9560 4 -9561 9560 -1 -9660 9560 -1 -9561 9561 4 -9562 9561 -1 -9661 9561 -1 -9562 9562 4 -9563 9562 -1 -9662 9562 -1 -9563 9563 4 -9564 9563 -1 -9663 9563 -1 -9564 9564 4 -9565 9564 -1 -9664 9564 -1 -9565 9565 4 -9566 9565 -1 -9665 9565 -1 -9566 9566 4 -9567 9566 -1 -9666 9566 -1 -9567 9567 4 -9568 9567 -1 -9667 9567 -1 -9568 9568 4 -9569 9568 -1 -9668 9568 -1 -9569 9569 4 -9570 9569 -1 -9669 9569 -1 -9570 9570 4 -9571 9570 -1 -9670 9570 -1 -9571 9571 4 -9572 9571 -1 -9671 9571 -1 -9572 9572 4 -9573 9572 -1 -9672 9572 -1 -9573 9573 4 -9574 9573 -1 -9673 9573 -1 -9574 9574 4 -9575 9574 -1 -9674 9574 -1 -9575 9575 4 -9576 9575 -1 -9675 9575 -1 -9576 9576 4 -9577 9576 -1 -9676 9576 -1 -9577 9577 4 -9578 9577 -1 -9677 9577 -1 -9578 9578 4 -9579 9578 -1 -9678 9578 -1 -9579 9579 4 -9580 9579 -1 -9679 9579 -1 -9580 9580 4 -9581 9580 -1 -9680 9580 -1 -9581 9581 4 -9582 9581 -1 -9681 9581 -1 -9582 9582 4 -9583 9582 -1 -9682 9582 -1 -9583 9583 4 -9584 9583 -1 -9683 9583 -1 -9584 9584 4 -9585 9584 -1 -9684 9584 -1 -9585 9585 4 -9586 9585 -1 -9685 9585 -1 -9586 9586 4 -9587 9586 -1 -9686 9586 -1 -9587 9587 4 -9588 9587 -1 -9687 9587 -1 -9588 9588 4 -9589 9588 -1 -9688 9588 -1 -9589 9589 4 -9590 9589 -1 -9689 9589 -1 -9590 9590 4 -9591 9590 -1 -9690 9590 -1 -9591 9591 4 -9592 9591 -1 -9691 9591 -1 -9592 9592 4 -9593 9592 -1 -9692 9592 -1 -9593 9593 4 -9594 9593 -1 -9693 9593 -1 -9594 9594 4 -9595 9594 -1 -9694 9594 -1 -9595 9595 4 -9596 9595 -1 -9695 9595 -1 -9596 9596 4 -9597 9596 -1 -9696 9596 -1 -9597 9597 4 -9598 9597 -1 -9697 9597 -1 -9598 9598 4 -9599 9598 -1 -9698 9598 -1 -9599 9599 4 -9600 9599 -1 -9699 9599 -1 -9600 9600 4 -9700 9600 -1 -9601 9601 4 -9602 9601 -1 -9701 9601 -1 -9602 9602 4 -9603 9602 -1 -9702 9602 -1 -9603 9603 4 -9604 9603 -1 -9703 9603 -1 -9604 9604 4 -9605 9604 -1 -9704 9604 -1 -9605 9605 4 -9606 9605 -1 -9705 9605 -1 -9606 9606 4 -9607 9606 -1 -9706 9606 -1 -9607 9607 4 -9608 9607 -1 -9707 9607 -1 -9608 9608 4 -9609 9608 -1 -9708 9608 -1 -9609 9609 4 -9610 9609 -1 -9709 9609 -1 -9610 9610 4 -9611 9610 -1 -9710 9610 -1 -9611 9611 4 -9612 9611 -1 -9711 9611 -1 -9612 9612 4 -9613 9612 -1 -9712 9612 -1 -9613 9613 4 -9614 9613 -1 -9713 9613 -1 -9614 9614 4 -9615 9614 -1 -9714 9614 -1 -9615 9615 4 -9616 9615 -1 -9715 9615 -1 -9616 9616 4 -9617 9616 -1 -9716 9616 -1 -9617 9617 4 -9618 9617 -1 -9717 9617 -1 -9618 9618 4 -9619 9618 -1 -9718 9618 -1 -9619 9619 4 -9620 9619 -1 -9719 9619 -1 -9620 9620 4 -9621 9620 -1 -9720 9620 -1 -9621 9621 4 -9622 9621 -1 -9721 9621 -1 -9622 9622 4 -9623 9622 -1 -9722 9622 -1 -9623 9623 4 -9624 9623 -1 -9723 9623 -1 -9624 9624 4 -9625 9624 -1 -9724 9624 -1 -9625 9625 4 -9626 9625 -1 -9725 9625 -1 -9626 9626 4 -9627 9626 -1 -9726 9626 -1 -9627 9627 4 -9628 9627 -1 -9727 9627 -1 -9628 9628 4 -9629 9628 -1 -9728 9628 -1 -9629 9629 4 -9630 9629 -1 -9729 9629 -1 -9630 9630 4 -9631 9630 -1 -9730 9630 -1 -9631 9631 4 -9632 9631 -1 -9731 9631 -1 -9632 9632 4 -9633 9632 -1 -9732 9632 -1 -9633 9633 4 -9634 9633 -1 -9733 9633 -1 -9634 9634 4 -9635 9634 -1 -9734 9634 -1 -9635 9635 4 -9636 9635 -1 -9735 9635 -1 -9636 9636 4 -9637 9636 -1 -9736 9636 -1 -9637 9637 4 -9638 9637 -1 -9737 9637 -1 -9638 9638 4 -9639 9638 -1 -9738 9638 -1 -9639 9639 4 -9640 9639 -1 -9739 9639 -1 -9640 9640 4 -9641 9640 -1 -9740 9640 -1 -9641 9641 4 -9642 9641 -1 -9741 9641 -1 -9642 9642 4 -9643 9642 -1 -9742 9642 -1 -9643 9643 4 -9644 9643 -1 -9743 9643 -1 -9644 9644 4 -9645 9644 -1 -9744 9644 -1 -9645 9645 4 -9646 9645 -1 -9745 9645 -1 -9646 9646 4 -9647 9646 -1 -9746 9646 -1 -9647 9647 4 -9648 9647 -1 -9747 9647 -1 -9648 9648 4 -9649 9648 -1 -9748 9648 -1 -9649 9649 4 -9650 9649 -1 -9749 9649 -1 -9650 9650 4 -9651 9650 -1 -9750 9650 -1 -9651 9651 4 -9652 9651 -1 -9751 9651 -1 -9652 9652 4 -9653 9652 -1 -9752 9652 -1 -9653 9653 4 -9654 9653 -1 -9753 9653 -1 -9654 9654 4 -9655 9654 -1 -9754 9654 -1 -9655 9655 4 -9656 9655 -1 -9755 9655 -1 -9656 9656 4 -9657 9656 -1 -9756 9656 -1 -9657 9657 4 -9658 9657 -1 -9757 9657 -1 -9658 9658 4 -9659 9658 -1 -9758 9658 -1 -9659 9659 4 -9660 9659 -1 -9759 9659 -1 -9660 9660 4 -9661 9660 -1 -9760 9660 -1 -9661 9661 4 -9662 9661 -1 -9761 9661 -1 -9662 9662 4 -9663 9662 -1 -9762 9662 -1 -9663 9663 4 -9664 9663 -1 -9763 9663 -1 -9664 9664 4 -9665 9664 -1 -9764 9664 -1 -9665 9665 4 -9666 9665 -1 -9765 9665 -1 -9666 9666 4 -9667 9666 -1 -9766 9666 -1 -9667 9667 4 -9668 9667 -1 -9767 9667 -1 -9668 9668 4 -9669 9668 -1 -9768 9668 -1 -9669 9669 4 -9670 9669 -1 -9769 9669 -1 -9670 9670 4 -9671 9670 -1 -9770 9670 -1 -9671 9671 4 -9672 9671 -1 -9771 9671 -1 -9672 9672 4 -9673 9672 -1 -9772 9672 -1 -9673 9673 4 -9674 9673 -1 -9773 9673 -1 -9674 9674 4 -9675 9674 -1 -9774 9674 -1 -9675 9675 4 -9676 9675 -1 -9775 9675 -1 -9676 9676 4 -9677 9676 -1 -9776 9676 -1 -9677 9677 4 -9678 9677 -1 -9777 9677 -1 -9678 9678 4 -9679 9678 -1 -9778 9678 -1 -9679 9679 4 -9680 9679 -1 -9779 9679 -1 -9680 9680 4 -9681 9680 -1 -9780 9680 -1 -9681 9681 4 -9682 9681 -1 -9781 9681 -1 -9682 9682 4 -9683 9682 -1 -9782 9682 -1 -9683 9683 4 -9684 9683 -1 -9783 9683 -1 -9684 9684 4 -9685 9684 -1 -9784 9684 -1 -9685 9685 4 -9686 9685 -1 -9785 9685 -1 -9686 9686 4 -9687 9686 -1 -9786 9686 -1 -9687 9687 4 -9688 9687 -1 -9787 9687 -1 -9688 9688 4 -9689 9688 -1 -9788 9688 -1 -9689 9689 4 -9690 9689 -1 -9789 9689 -1 -9690 9690 4 -9691 9690 -1 -9790 9690 -1 -9691 9691 4 -9692 9691 -1 -9791 9691 -1 -9692 9692 4 -9693 9692 -1 -9792 9692 -1 -9693 9693 4 -9694 9693 -1 -9793 9693 -1 -9694 9694 4 -9695 9694 -1 -9794 9694 -1 -9695 9695 4 -9696 9695 -1 -9795 9695 -1 -9696 9696 4 -9697 9696 -1 -9796 9696 -1 -9697 9697 4 -9698 9697 -1 -9797 9697 -1 -9698 9698 4 -9699 9698 -1 -9798 9698 -1 -9699 9699 4 -9700 9699 -1 -9799 9699 -1 -9700 9700 4 -9800 9700 -1 -9701 9701 4 -9702 9701 -1 -9801 9701 -1 -9702 9702 4 -9703 9702 -1 -9802 9702 -1 -9703 9703 4 -9704 9703 -1 -9803 9703 -1 -9704 9704 4 -9705 9704 -1 -9804 9704 -1 -9705 9705 4 -9706 9705 -1 -9805 9705 -1 -9706 9706 4 -9707 9706 -1 -9806 9706 -1 -9707 9707 4 -9708 9707 -1 -9807 9707 -1 -9708 9708 4 -9709 9708 -1 -9808 9708 -1 -9709 9709 4 -9710 9709 -1 -9809 9709 -1 -9710 9710 4 -9711 9710 -1 -9810 9710 -1 -9711 9711 4 -9712 9711 -1 -9811 9711 -1 -9712 9712 4 -9713 9712 -1 -9812 9712 -1 -9713 9713 4 -9714 9713 -1 -9813 9713 -1 -9714 9714 4 -9715 9714 -1 -9814 9714 -1 -9715 9715 4 -9716 9715 -1 -9815 9715 -1 -9716 9716 4 -9717 9716 -1 -9816 9716 -1 -9717 9717 4 -9718 9717 -1 -9817 9717 -1 -9718 9718 4 -9719 9718 -1 -9818 9718 -1 -9719 9719 4 -9720 9719 -1 -9819 9719 -1 -9720 9720 4 -9721 9720 -1 -9820 9720 -1 -9721 9721 4 -9722 9721 -1 -9821 9721 -1 -9722 9722 4 -9723 9722 -1 -9822 9722 -1 -9723 9723 4 -9724 9723 -1 -9823 9723 -1 -9724 9724 4 -9725 9724 -1 -9824 9724 -1 -9725 9725 4 -9726 9725 -1 -9825 9725 -1 -9726 9726 4 -9727 9726 -1 -9826 9726 -1 -9727 9727 4 -9728 9727 -1 -9827 9727 -1 -9728 9728 4 -9729 9728 -1 -9828 9728 -1 -9729 9729 4 -9730 9729 -1 -9829 9729 -1 -9730 9730 4 -9731 9730 -1 -9830 9730 -1 -9731 9731 4 -9732 9731 -1 -9831 9731 -1 -9732 9732 4 -9733 9732 -1 -9832 9732 -1 -9733 9733 4 -9734 9733 -1 -9833 9733 -1 -9734 9734 4 -9735 9734 -1 -9834 9734 -1 -9735 9735 4 -9736 9735 -1 -9835 9735 -1 -9736 9736 4 -9737 9736 -1 -9836 9736 -1 -9737 9737 4 -9738 9737 -1 -9837 9737 -1 -9738 9738 4 -9739 9738 -1 -9838 9738 -1 -9739 9739 4 -9740 9739 -1 -9839 9739 -1 -9740 9740 4 -9741 9740 -1 -9840 9740 -1 -9741 9741 4 -9742 9741 -1 -9841 9741 -1 -9742 9742 4 -9743 9742 -1 -9842 9742 -1 -9743 9743 4 -9744 9743 -1 -9843 9743 -1 -9744 9744 4 -9745 9744 -1 -9844 9744 -1 -9745 9745 4 -9746 9745 -1 -9845 9745 -1 -9746 9746 4 -9747 9746 -1 -9846 9746 -1 -9747 9747 4 -9748 9747 -1 -9847 9747 -1 -9748 9748 4 -9749 9748 -1 -9848 9748 -1 -9749 9749 4 -9750 9749 -1 -9849 9749 -1 -9750 9750 4 -9751 9750 -1 -9850 9750 -1 -9751 9751 4 -9752 9751 -1 -9851 9751 -1 -9752 9752 4 -9753 9752 -1 -9852 9752 -1 -9753 9753 4 -9754 9753 -1 -9853 9753 -1 -9754 9754 4 -9755 9754 -1 -9854 9754 -1 -9755 9755 4 -9756 9755 -1 -9855 9755 -1 -9756 9756 4 -9757 9756 -1 -9856 9756 -1 -9757 9757 4 -9758 9757 -1 -9857 9757 -1 -9758 9758 4 -9759 9758 -1 -9858 9758 -1 -9759 9759 4 -9760 9759 -1 -9859 9759 -1 -9760 9760 4 -9761 9760 -1 -9860 9760 -1 -9761 9761 4 -9762 9761 -1 -9861 9761 -1 -9762 9762 4 -9763 9762 -1 -9862 9762 -1 -9763 9763 4 -9764 9763 -1 -9863 9763 -1 -9764 9764 4 -9765 9764 -1 -9864 9764 -1 -9765 9765 4 -9766 9765 -1 -9865 9765 -1 -9766 9766 4 -9767 9766 -1 -9866 9766 -1 -9767 9767 4 -9768 9767 -1 -9867 9767 -1 -9768 9768 4 -9769 9768 -1 -9868 9768 -1 -9769 9769 4 -9770 9769 -1 -9869 9769 -1 -9770 9770 4 -9771 9770 -1 -9870 9770 -1 -9771 9771 4 -9772 9771 -1 -9871 9771 -1 -9772 9772 4 -9773 9772 -1 -9872 9772 -1 -9773 9773 4 -9774 9773 -1 -9873 9773 -1 -9774 9774 4 -9775 9774 -1 -9874 9774 -1 -9775 9775 4 -9776 9775 -1 -9875 9775 -1 -9776 9776 4 -9777 9776 -1 -9876 9776 -1 -9777 9777 4 -9778 9777 -1 -9877 9777 -1 -9778 9778 4 -9779 9778 -1 -9878 9778 -1 -9779 9779 4 -9780 9779 -1 -9879 9779 -1 -9780 9780 4 -9781 9780 -1 -9880 9780 -1 -9781 9781 4 -9782 9781 -1 -9881 9781 -1 -9782 9782 4 -9783 9782 -1 -9882 9782 -1 -9783 9783 4 -9784 9783 -1 -9883 9783 -1 -9784 9784 4 -9785 9784 -1 -9884 9784 -1 -9785 9785 4 -9786 9785 -1 -9885 9785 -1 -9786 9786 4 -9787 9786 -1 -9886 9786 -1 -9787 9787 4 -9788 9787 -1 -9887 9787 -1 -9788 9788 4 -9789 9788 -1 -9888 9788 -1 -9789 9789 4 -9790 9789 -1 -9889 9789 -1 -9790 9790 4 -9791 9790 -1 -9890 9790 -1 -9791 9791 4 -9792 9791 -1 -9891 9791 -1 -9792 9792 4 -9793 9792 -1 -9892 9792 -1 -9793 9793 4 -9794 9793 -1 -9893 9793 -1 -9794 9794 4 -9795 9794 -1 -9894 9794 -1 -9795 9795 4 -9796 9795 -1 -9895 9795 -1 -9796 9796 4 -9797 9796 -1 -9896 9796 -1 -9797 9797 4 -9798 9797 -1 -9897 9797 -1 -9798 9798 4 -9799 9798 -1 -9898 9798 -1 -9799 9799 4 -9800 9799 -1 -9899 9799 -1 -9800 9800 4 -9900 9800 -1 -9801 9801 4 -9802 9801 -1 -9901 9801 -1 -9802 9802 4 -9803 9802 -1 -9902 9802 -1 -9803 9803 4 -9804 9803 -1 -9903 9803 -1 -9804 9804 4 -9805 9804 -1 -9904 9804 -1 -9805 9805 4 -9806 9805 -1 -9905 9805 -1 -9806 9806 4 -9807 9806 -1 -9906 9806 -1 -9807 9807 4 -9808 9807 -1 -9907 9807 -1 -9808 9808 4 -9809 9808 -1 -9908 9808 -1 -9809 9809 4 -9810 9809 -1 -9909 9809 -1 -9810 9810 4 -9811 9810 -1 -9910 9810 -1 -9811 9811 4 -9812 9811 -1 -9911 9811 -1 -9812 9812 4 -9813 9812 -1 -9912 9812 -1 -9813 9813 4 -9814 9813 -1 -9913 9813 -1 -9814 9814 4 -9815 9814 -1 -9914 9814 -1 -9815 9815 4 -9816 9815 -1 -9915 9815 -1 -9816 9816 4 -9817 9816 -1 -9916 9816 -1 -9817 9817 4 -9818 9817 -1 -9917 9817 -1 -9818 9818 4 -9819 9818 -1 -9918 9818 -1 -9819 9819 4 -9820 9819 -1 -9919 9819 -1 -9820 9820 4 -9821 9820 -1 -9920 9820 -1 -9821 9821 4 -9822 9821 -1 -9921 9821 -1 -9822 9822 4 -9823 9822 -1 -9922 9822 -1 -9823 9823 4 -9824 9823 -1 -9923 9823 -1 -9824 9824 4 -9825 9824 -1 -9924 9824 -1 -9825 9825 4 -9826 9825 -1 -9925 9825 -1 -9826 9826 4 -9827 9826 -1 -9926 9826 -1 -9827 9827 4 -9828 9827 -1 -9927 9827 -1 -9828 9828 4 -9829 9828 -1 -9928 9828 -1 -9829 9829 4 -9830 9829 -1 -9929 9829 -1 -9830 9830 4 -9831 9830 -1 -9930 9830 -1 -9831 9831 4 -9832 9831 -1 -9931 9831 -1 -9832 9832 4 -9833 9832 -1 -9932 9832 -1 -9833 9833 4 -9834 9833 -1 -9933 9833 -1 -9834 9834 4 -9835 9834 -1 -9934 9834 -1 -9835 9835 4 -9836 9835 -1 -9935 9835 -1 -9836 9836 4 -9837 9836 -1 -9936 9836 -1 -9837 9837 4 -9838 9837 -1 -9937 9837 -1 -9838 9838 4 -9839 9838 -1 -9938 9838 -1 -9839 9839 4 -9840 9839 -1 -9939 9839 -1 -9840 9840 4 -9841 9840 -1 -9940 9840 -1 -9841 9841 4 -9842 9841 -1 -9941 9841 -1 -9842 9842 4 -9843 9842 -1 -9942 9842 -1 -9843 9843 4 -9844 9843 -1 -9943 9843 -1 -9844 9844 4 -9845 9844 -1 -9944 9844 -1 -9845 9845 4 -9846 9845 -1 -9945 9845 -1 -9846 9846 4 -9847 9846 -1 -9946 9846 -1 -9847 9847 4 -9848 9847 -1 -9947 9847 -1 -9848 9848 4 -9849 9848 -1 -9948 9848 -1 -9849 9849 4 -9850 9849 -1 -9949 9849 -1 -9850 9850 4 -9851 9850 -1 -9950 9850 -1 -9851 9851 4 -9852 9851 -1 -9951 9851 -1 -9852 9852 4 -9853 9852 -1 -9952 9852 -1 -9853 9853 4 -9854 9853 -1 -9953 9853 -1 -9854 9854 4 -9855 9854 -1 -9954 9854 -1 -9855 9855 4 -9856 9855 -1 -9955 9855 -1 -9856 9856 4 -9857 9856 -1 -9956 9856 -1 -9857 9857 4 -9858 9857 -1 -9957 9857 -1 -9858 9858 4 -9859 9858 -1 -9958 9858 -1 -9859 9859 4 -9860 9859 -1 -9959 9859 -1 -9860 9860 4 -9861 9860 -1 -9960 9860 -1 -9861 9861 4 -9862 9861 -1 -9961 9861 -1 -9862 9862 4 -9863 9862 -1 -9962 9862 -1 -9863 9863 4 -9864 9863 -1 -9963 9863 -1 -9864 9864 4 -9865 9864 -1 -9964 9864 -1 -9865 9865 4 -9866 9865 -1 -9965 9865 -1 -9866 9866 4 -9867 9866 -1 -9966 9866 -1 -9867 9867 4 -9868 9867 -1 -9967 9867 -1 -9868 9868 4 -9869 9868 -1 -9968 9868 -1 -9869 9869 4 -9870 9869 -1 -9969 9869 -1 -9870 9870 4 -9871 9870 -1 -9970 9870 -1 -9871 9871 4 -9872 9871 -1 -9971 9871 -1 -9872 9872 4 -9873 9872 -1 -9972 9872 -1 -9873 9873 4 -9874 9873 -1 -9973 9873 -1 -9874 9874 4 -9875 9874 -1 -9974 9874 -1 -9875 9875 4 -9876 9875 -1 -9975 9875 -1 -9876 9876 4 -9877 9876 -1 -9976 9876 -1 -9877 9877 4 -9878 9877 -1 -9977 9877 -1 -9878 9878 4 -9879 9878 -1 -9978 9878 -1 -9879 9879 4 -9880 9879 -1 -9979 9879 -1 -9880 9880 4 -9881 9880 -1 -9980 9880 -1 -9881 9881 4 -9882 9881 -1 -9981 9881 -1 -9882 9882 4 -9883 9882 -1 -9982 9882 -1 -9883 9883 4 -9884 9883 -1 -9983 9883 -1 -9884 9884 4 -9885 9884 -1 -9984 9884 -1 -9885 9885 4 -9886 9885 -1 -9985 9885 -1 -9886 9886 4 -9887 9886 -1 -9986 9886 -1 -9887 9887 4 -9888 9887 -1 -9987 9887 -1 -9888 9888 4 -9889 9888 -1 -9988 9888 -1 -9889 9889 4 -9890 9889 -1 -9989 9889 -1 -9890 9890 4 -9891 9890 -1 -9990 9890 -1 -9891 9891 4 -9892 9891 -1 -9991 9891 -1 -9892 9892 4 -9893 9892 -1 -9992 9892 -1 -9893 9893 4 -9894 9893 -1 -9993 9893 -1 -9894 9894 4 -9895 9894 -1 -9994 9894 -1 -9895 9895 4 -9896 9895 -1 -9995 9895 -1 -9896 9896 4 -9897 9896 -1 -9996 9896 -1 -9897 9897 4 -9898 9897 -1 -9997 9897 -1 -9898 9898 4 -9899 9898 -1 -9998 9898 -1 -9899 9899 4 -9900 9899 -1 -9999 9899 -1 -9900 9900 4 -10000 9900 -1 -9901 9901 4 -9902 9901 -1 -9902 9902 4 -9903 9902 -1 -9903 9903 4 -9904 9903 -1 -9904 9904 4 -9905 9904 -1 -9905 9905 4 -9906 9905 -1 -9906 9906 4 -9907 9906 -1 -9907 9907 4 -9908 9907 -1 -9908 9908 4 -9909 9908 -1 -9909 9909 4 -9910 9909 -1 -9910 9910 4 -9911 9910 -1 -9911 9911 4 -9912 9911 -1 -9912 9912 4 -9913 9912 -1 -9913 9913 4 -9914 9913 -1 -9914 9914 4 -9915 9914 -1 -9915 9915 4 -9916 9915 -1 -9916 9916 4 -9917 9916 -1 -9917 9917 4 -9918 9917 -1 -9918 9918 4 -9919 9918 -1 -9919 9919 4 -9920 9919 -1 -9920 9920 4 -9921 9920 -1 -9921 9921 4 -9922 9921 -1 -9922 9922 4 -9923 9922 -1 -9923 9923 4 -9924 9923 -1 -9924 9924 4 -9925 9924 -1 -9925 9925 4 -9926 9925 -1 -9926 9926 4 -9927 9926 -1 -9927 9927 4 -9928 9927 -1 -9928 9928 4 -9929 9928 -1 -9929 9929 4 -9930 9929 -1 -9930 9930 4 -9931 9930 -1 -9931 9931 4 -9932 9931 -1 -9932 9932 4 -9933 9932 -1 -9933 9933 4 -9934 9933 -1 -9934 9934 4 -9935 9934 -1 -9935 9935 4 -9936 9935 -1 -9936 9936 4 -9937 9936 -1 -9937 9937 4 -9938 9937 -1 -9938 9938 4 -9939 9938 -1 -9939 9939 4 -9940 9939 -1 -9940 9940 4 -9941 9940 -1 -9941 9941 4 -9942 9941 -1 -9942 9942 4 -9943 9942 -1 -9943 9943 4 -9944 9943 -1 -9944 9944 4 -9945 9944 -1 -9945 9945 4 -9946 9945 -1 -9946 9946 4 -9947 9946 -1 -9947 9947 4 -9948 9947 -1 -9948 9948 4 -9949 9948 -1 -9949 9949 4 -9950 9949 -1 -9950 9950 4 -9951 9950 -1 -9951 9951 4 -9952 9951 -1 -9952 9952 4 -9953 9952 -1 -9953 9953 4 -9954 9953 -1 -9954 9954 4 -9955 9954 -1 -9955 9955 4 -9956 9955 -1 -9956 9956 4 -9957 9956 -1 -9957 9957 4 -9958 9957 -1 -9958 9958 4 -9959 9958 -1 -9959 9959 4 -9960 9959 -1 -9960 9960 4 -9961 9960 -1 -9961 9961 4 -9962 9961 -1 -9962 9962 4 -9963 9962 -1 -9963 9963 4 -9964 9963 -1 -9964 9964 4 -9965 9964 -1 -9965 9965 4 -9966 9965 -1 -9966 9966 4 -9967 9966 -1 -9967 9967 4 -9968 9967 -1 -9968 9968 4 -9969 9968 -1 -9969 9969 4 -9970 9969 -1 -9970 9970 4 -9971 9970 -1 -9971 9971 4 -9972 9971 -1 -9972 9972 4 -9973 9972 -1 -9973 9973 4 -9974 9973 -1 -9974 9974 4 -9975 9974 -1 -9975 9975 4 -9976 9975 -1 -9976 9976 4 -9977 9976 -1 -9977 9977 4 -9978 9977 -1 -9978 9978 4 -9979 9978 -1 -9979 9979 4 -9980 9979 -1 -9980 9980 4 -9981 9980 -1 -9981 9981 4 -9982 9981 -1 -9982 9982 4 -9983 9982 -1 -9983 9983 4 -9984 9983 -1 -9984 9984 4 -9985 9984 -1 -9985 9985 4 -9986 9985 -1 -9986 9986 4 -9987 9986 -1 -9987 9987 4 -9988 9987 -1 -9988 9988 4 -9989 9988 -1 -9989 9989 4 -9990 9989 -1 -9990 9990 4 -9991 9990 -1 -9991 9991 4 -9992 9991 -1 -9992 9992 4 -9993 9992 -1 -9993 9993 4 -9994 9993 -1 -9994 9994 4 -9995 9994 -1 -9995 9995 4 -9996 9995 -1 -9996 9996 4 -9997 9996 -1 -9997 9997 4 -9998 9997 -1 -9998 9998 4 -9999 9998 -1 -9999 9999 4 -10000 9999 -1 -10000 10000 4 diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/lap3D_7pt_n20.mtx b/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/lap3D_7pt_n20.mtx deleted file mode 100644 index 29f4f69f..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/lap3D_7pt_n20.mtx +++ /dev/null @@ -1,30803 +0,0 @@ -%%MatrixMarket matrix coordinate real symmetric -% Generated 20-Nov-2014 -8000 8000 30800 -1 1 6 -2 1 -1 -21 1 -1 -401 1 -1 -2 2 6 -3 2 -1 -22 2 -1 -402 2 -1 -3 3 6 -4 3 -1 -23 3 -1 -403 3 -1 -4 4 6 -5 4 -1 -24 4 -1 -404 4 -1 -5 5 6 -6 5 -1 -25 5 -1 -405 5 -1 -6 6 6 -7 6 -1 -26 6 -1 -406 6 -1 -7 7 6 -8 7 -1 -27 7 -1 -407 7 -1 -8 8 6 -9 8 -1 -28 8 -1 -408 8 -1 -9 9 6 -10 9 -1 -29 9 -1 -409 9 -1 -10 10 6 -11 10 -1 -30 10 -1 -410 10 -1 -11 11 6 -12 11 -1 -31 11 -1 -411 11 -1 -12 12 6 -13 12 -1 -32 12 -1 -412 12 -1 -13 13 6 -14 13 -1 -33 13 -1 -413 13 -1 -14 14 6 -15 14 -1 -34 14 -1 -414 14 -1 -15 15 6 -16 15 -1 -35 15 -1 -415 15 -1 -16 16 6 -17 16 -1 -36 16 -1 -416 16 -1 -17 17 6 -18 17 -1 -37 17 -1 -417 17 -1 -18 18 6 -19 18 -1 -38 18 -1 -418 18 -1 -19 19 6 -20 19 -1 -39 19 -1 -419 19 -1 -20 20 6 -40 20 -1 -420 20 -1 -21 21 6 -22 21 -1 -41 21 -1 -421 21 -1 -22 22 6 -23 22 -1 -42 22 -1 -422 22 -1 -23 23 6 -24 23 -1 -43 23 -1 -423 23 -1 -24 24 6 -25 24 -1 -44 24 -1 -424 24 -1 -25 25 6 -26 25 -1 -45 25 -1 -425 25 -1 -26 26 6 -27 26 -1 -46 26 -1 -426 26 -1 -27 27 6 -28 27 -1 -47 27 -1 -427 27 -1 -28 28 6 -29 28 -1 -48 28 -1 -428 28 -1 -29 29 6 -30 29 -1 -49 29 -1 -429 29 -1 -30 30 6 -31 30 -1 -50 30 -1 -430 30 -1 -31 31 6 -32 31 -1 -51 31 -1 -431 31 -1 -32 32 6 -33 32 -1 -52 32 -1 -432 32 -1 -33 33 6 -34 33 -1 -53 33 -1 -433 33 -1 -34 34 6 -35 34 -1 -54 34 -1 -434 34 -1 -35 35 6 -36 35 -1 -55 35 -1 -435 35 -1 -36 36 6 -37 36 -1 -56 36 -1 -436 36 -1 -37 37 6 -38 37 -1 -57 37 -1 -437 37 -1 -38 38 6 -39 38 -1 -58 38 -1 -438 38 -1 -39 39 6 -40 39 -1 -59 39 -1 -439 39 -1 -40 40 6 -60 40 -1 -440 40 -1 -41 41 6 -42 41 -1 -61 41 -1 -441 41 -1 -42 42 6 -43 42 -1 -62 42 -1 -442 42 -1 -43 43 6 -44 43 -1 -63 43 -1 -443 43 -1 -44 44 6 -45 44 -1 -64 44 -1 -444 44 -1 -45 45 6 -46 45 -1 -65 45 -1 -445 45 -1 -46 46 6 -47 46 -1 -66 46 -1 -446 46 -1 -47 47 6 -48 47 -1 -67 47 -1 -447 47 -1 -48 48 6 -49 48 -1 -68 48 -1 -448 48 -1 -49 49 6 -50 49 -1 -69 49 -1 -449 49 -1 -50 50 6 -51 50 -1 -70 50 -1 -450 50 -1 -51 51 6 -52 51 -1 -71 51 -1 -451 51 -1 -52 52 6 -53 52 -1 -72 52 -1 -452 52 -1 -53 53 6 -54 53 -1 -73 53 -1 -453 53 -1 -54 54 6 -55 54 -1 -74 54 -1 -454 54 -1 -55 55 6 -56 55 -1 -75 55 -1 -455 55 -1 -56 56 6 -57 56 -1 -76 56 -1 -456 56 -1 -57 57 6 -58 57 -1 -77 57 -1 -457 57 -1 -58 58 6 -59 58 -1 -78 58 -1 -458 58 -1 -59 59 6 -60 59 -1 -79 59 -1 -459 59 -1 -60 60 6 -80 60 -1 -460 60 -1 -61 61 6 -62 61 -1 -81 61 -1 -461 61 -1 -62 62 6 -63 62 -1 -82 62 -1 -462 62 -1 -63 63 6 -64 63 -1 -83 63 -1 -463 63 -1 -64 64 6 -65 64 -1 -84 64 -1 -464 64 -1 -65 65 6 -66 65 -1 -85 65 -1 -465 65 -1 -66 66 6 -67 66 -1 -86 66 -1 -466 66 -1 -67 67 6 -68 67 -1 -87 67 -1 -467 67 -1 -68 68 6 -69 68 -1 -88 68 -1 -468 68 -1 -69 69 6 -70 69 -1 -89 69 -1 -469 69 -1 -70 70 6 -71 70 -1 -90 70 -1 -470 70 -1 -71 71 6 -72 71 -1 -91 71 -1 -471 71 -1 -72 72 6 -73 72 -1 -92 72 -1 -472 72 -1 -73 73 6 -74 73 -1 -93 73 -1 -473 73 -1 -74 74 6 -75 74 -1 -94 74 -1 -474 74 -1 -75 75 6 -76 75 -1 -95 75 -1 -475 75 -1 -76 76 6 -77 76 -1 -96 76 -1 -476 76 -1 -77 77 6 -78 77 -1 -97 77 -1 -477 77 -1 -78 78 6 -79 78 -1 -98 78 -1 -478 78 -1 -79 79 6 -80 79 -1 -99 79 -1 -479 79 -1 -80 80 6 -100 80 -1 -480 80 -1 -81 81 6 -82 81 -1 -101 81 -1 -481 81 -1 -82 82 6 -83 82 -1 -102 82 -1 -482 82 -1 -83 83 6 -84 83 -1 -103 83 -1 -483 83 -1 -84 84 6 -85 84 -1 -104 84 -1 -484 84 -1 -85 85 6 -86 85 -1 -105 85 -1 -485 85 -1 -86 86 6 -87 86 -1 -106 86 -1 -486 86 -1 -87 87 6 -88 87 -1 -107 87 -1 -487 87 -1 -88 88 6 -89 88 -1 -108 88 -1 -488 88 -1 -89 89 6 -90 89 -1 -109 89 -1 -489 89 -1 -90 90 6 -91 90 -1 -110 90 -1 -490 90 -1 -91 91 6 -92 91 -1 -111 91 -1 -491 91 -1 -92 92 6 -93 92 -1 -112 92 -1 -492 92 -1 -93 93 6 -94 93 -1 -113 93 -1 -493 93 -1 -94 94 6 -95 94 -1 -114 94 -1 -494 94 -1 -95 95 6 -96 95 -1 -115 95 -1 -495 95 -1 -96 96 6 -97 96 -1 -116 96 -1 -496 96 -1 -97 97 6 -98 97 -1 -117 97 -1 -497 97 -1 -98 98 6 -99 98 -1 -118 98 -1 -498 98 -1 -99 99 6 -100 99 -1 -119 99 -1 -499 99 -1 -100 100 6 -120 100 -1 -500 100 -1 -101 101 6 -102 101 -1 -121 101 -1 -501 101 -1 -102 102 6 -103 102 -1 -122 102 -1 -502 102 -1 -103 103 6 -104 103 -1 -123 103 -1 -503 103 -1 -104 104 6 -105 104 -1 -124 104 -1 -504 104 -1 -105 105 6 -106 105 -1 -125 105 -1 -505 105 -1 -106 106 6 -107 106 -1 -126 106 -1 -506 106 -1 -107 107 6 -108 107 -1 -127 107 -1 -507 107 -1 -108 108 6 -109 108 -1 -128 108 -1 -508 108 -1 -109 109 6 -110 109 -1 -129 109 -1 -509 109 -1 -110 110 6 -111 110 -1 -130 110 -1 -510 110 -1 -111 111 6 -112 111 -1 -131 111 -1 -511 111 -1 -112 112 6 -113 112 -1 -132 112 -1 -512 112 -1 -113 113 6 -114 113 -1 -133 113 -1 -513 113 -1 -114 114 6 -115 114 -1 -134 114 -1 -514 114 -1 -115 115 6 -116 115 -1 -135 115 -1 -515 115 -1 -116 116 6 -117 116 -1 -136 116 -1 -516 116 -1 -117 117 6 -118 117 -1 -137 117 -1 -517 117 -1 -118 118 6 -119 118 -1 -138 118 -1 -518 118 -1 -119 119 6 -120 119 -1 -139 119 -1 -519 119 -1 -120 120 6 -140 120 -1 -520 120 -1 -121 121 6 -122 121 -1 -141 121 -1 -521 121 -1 -122 122 6 -123 122 -1 -142 122 -1 -522 122 -1 -123 123 6 -124 123 -1 -143 123 -1 -523 123 -1 -124 124 6 -125 124 -1 -144 124 -1 -524 124 -1 -125 125 6 -126 125 -1 -145 125 -1 -525 125 -1 -126 126 6 -127 126 -1 -146 126 -1 -526 126 -1 -127 127 6 -128 127 -1 -147 127 -1 -527 127 -1 -128 128 6 -129 128 -1 -148 128 -1 -528 128 -1 -129 129 6 -130 129 -1 -149 129 -1 -529 129 -1 -130 130 6 -131 130 -1 -150 130 -1 -530 130 -1 -131 131 6 -132 131 -1 -151 131 -1 -531 131 -1 -132 132 6 -133 132 -1 -152 132 -1 -532 132 -1 -133 133 6 -134 133 -1 -153 133 -1 -533 133 -1 -134 134 6 -135 134 -1 -154 134 -1 -534 134 -1 -135 135 6 -136 135 -1 -155 135 -1 -535 135 -1 -136 136 6 -137 136 -1 -156 136 -1 -536 136 -1 -137 137 6 -138 137 -1 -157 137 -1 -537 137 -1 -138 138 6 -139 138 -1 -158 138 -1 -538 138 -1 -139 139 6 -140 139 -1 -159 139 -1 -539 139 -1 -140 140 6 -160 140 -1 -540 140 -1 -141 141 6 -142 141 -1 -161 141 -1 -541 141 -1 -142 142 6 -143 142 -1 -162 142 -1 -542 142 -1 -143 143 6 -144 143 -1 -163 143 -1 -543 143 -1 -144 144 6 -145 144 -1 -164 144 -1 -544 144 -1 -145 145 6 -146 145 -1 -165 145 -1 -545 145 -1 -146 146 6 -147 146 -1 -166 146 -1 -546 146 -1 -147 147 6 -148 147 -1 -167 147 -1 -547 147 -1 -148 148 6 -149 148 -1 -168 148 -1 -548 148 -1 -149 149 6 -150 149 -1 -169 149 -1 -549 149 -1 -150 150 6 -151 150 -1 -170 150 -1 -550 150 -1 -151 151 6 -152 151 -1 -171 151 -1 -551 151 -1 -152 152 6 -153 152 -1 -172 152 -1 -552 152 -1 -153 153 6 -154 153 -1 -173 153 -1 -553 153 -1 -154 154 6 -155 154 -1 -174 154 -1 -554 154 -1 -155 155 6 -156 155 -1 -175 155 -1 -555 155 -1 -156 156 6 -157 156 -1 -176 156 -1 -556 156 -1 -157 157 6 -158 157 -1 -177 157 -1 -557 157 -1 -158 158 6 -159 158 -1 -178 158 -1 -558 158 -1 -159 159 6 -160 159 -1 -179 159 -1 -559 159 -1 -160 160 6 -180 160 -1 -560 160 -1 -161 161 6 -162 161 -1 -181 161 -1 -561 161 -1 -162 162 6 -163 162 -1 -182 162 -1 -562 162 -1 -163 163 6 -164 163 -1 -183 163 -1 -563 163 -1 -164 164 6 -165 164 -1 -184 164 -1 -564 164 -1 -165 165 6 -166 165 -1 -185 165 -1 -565 165 -1 -166 166 6 -167 166 -1 -186 166 -1 -566 166 -1 -167 167 6 -168 167 -1 -187 167 -1 -567 167 -1 -168 168 6 -169 168 -1 -188 168 -1 -568 168 -1 -169 169 6 -170 169 -1 -189 169 -1 -569 169 -1 -170 170 6 -171 170 -1 -190 170 -1 -570 170 -1 -171 171 6 -172 171 -1 -191 171 -1 -571 171 -1 -172 172 6 -173 172 -1 -192 172 -1 -572 172 -1 -173 173 6 -174 173 -1 -193 173 -1 -573 173 -1 -174 174 6 -175 174 -1 -194 174 -1 -574 174 -1 -175 175 6 -176 175 -1 -195 175 -1 -575 175 -1 -176 176 6 -177 176 -1 -196 176 -1 -576 176 -1 -177 177 6 -178 177 -1 -197 177 -1 -577 177 -1 -178 178 6 -179 178 -1 -198 178 -1 -578 178 -1 -179 179 6 -180 179 -1 -199 179 -1 -579 179 -1 -180 180 6 -200 180 -1 -580 180 -1 -181 181 6 -182 181 -1 -201 181 -1 -581 181 -1 -182 182 6 -183 182 -1 -202 182 -1 -582 182 -1 -183 183 6 -184 183 -1 -203 183 -1 -583 183 -1 -184 184 6 -185 184 -1 -204 184 -1 -584 184 -1 -185 185 6 -186 185 -1 -205 185 -1 -585 185 -1 -186 186 6 -187 186 -1 -206 186 -1 -586 186 -1 -187 187 6 -188 187 -1 -207 187 -1 -587 187 -1 -188 188 6 -189 188 -1 -208 188 -1 -588 188 -1 -189 189 6 -190 189 -1 -209 189 -1 -589 189 -1 -190 190 6 -191 190 -1 -210 190 -1 -590 190 -1 -191 191 6 -192 191 -1 -211 191 -1 -591 191 -1 -192 192 6 -193 192 -1 -212 192 -1 -592 192 -1 -193 193 6 -194 193 -1 -213 193 -1 -593 193 -1 -194 194 6 -195 194 -1 -214 194 -1 -594 194 -1 -195 195 6 -196 195 -1 -215 195 -1 -595 195 -1 -196 196 6 -197 196 -1 -216 196 -1 -596 196 -1 -197 197 6 -198 197 -1 -217 197 -1 -597 197 -1 -198 198 6 -199 198 -1 -218 198 -1 -598 198 -1 -199 199 6 -200 199 -1 -219 199 -1 -599 199 -1 -200 200 6 -220 200 -1 -600 200 -1 -201 201 6 -202 201 -1 -221 201 -1 -601 201 -1 -202 202 6 -203 202 -1 -222 202 -1 -602 202 -1 -203 203 6 -204 203 -1 -223 203 -1 -603 203 -1 -204 204 6 -205 204 -1 -224 204 -1 -604 204 -1 -205 205 6 -206 205 -1 -225 205 -1 -605 205 -1 -206 206 6 -207 206 -1 -226 206 -1 -606 206 -1 -207 207 6 -208 207 -1 -227 207 -1 -607 207 -1 -208 208 6 -209 208 -1 -228 208 -1 -608 208 -1 -209 209 6 -210 209 -1 -229 209 -1 -609 209 -1 -210 210 6 -211 210 -1 -230 210 -1 -610 210 -1 -211 211 6 -212 211 -1 -231 211 -1 -611 211 -1 -212 212 6 -213 212 -1 -232 212 -1 -612 212 -1 -213 213 6 -214 213 -1 -233 213 -1 -613 213 -1 -214 214 6 -215 214 -1 -234 214 -1 -614 214 -1 -215 215 6 -216 215 -1 -235 215 -1 -615 215 -1 -216 216 6 -217 216 -1 -236 216 -1 -616 216 -1 -217 217 6 -218 217 -1 -237 217 -1 -617 217 -1 -218 218 6 -219 218 -1 -238 218 -1 -618 218 -1 -219 219 6 -220 219 -1 -239 219 -1 -619 219 -1 -220 220 6 -240 220 -1 -620 220 -1 -221 221 6 -222 221 -1 -241 221 -1 -621 221 -1 -222 222 6 -223 222 -1 -242 222 -1 -622 222 -1 -223 223 6 -224 223 -1 -243 223 -1 -623 223 -1 -224 224 6 -225 224 -1 -244 224 -1 -624 224 -1 -225 225 6 -226 225 -1 -245 225 -1 -625 225 -1 -226 226 6 -227 226 -1 -246 226 -1 -626 226 -1 -227 227 6 -228 227 -1 -247 227 -1 -627 227 -1 -228 228 6 -229 228 -1 -248 228 -1 -628 228 -1 -229 229 6 -230 229 -1 -249 229 -1 -629 229 -1 -230 230 6 -231 230 -1 -250 230 -1 -630 230 -1 -231 231 6 -232 231 -1 -251 231 -1 -631 231 -1 -232 232 6 -233 232 -1 -252 232 -1 -632 232 -1 -233 233 6 -234 233 -1 -253 233 -1 -633 233 -1 -234 234 6 -235 234 -1 -254 234 -1 -634 234 -1 -235 235 6 -236 235 -1 -255 235 -1 -635 235 -1 -236 236 6 -237 236 -1 -256 236 -1 -636 236 -1 -237 237 6 -238 237 -1 -257 237 -1 -637 237 -1 -238 238 6 -239 238 -1 -258 238 -1 -638 238 -1 -239 239 6 -240 239 -1 -259 239 -1 -639 239 -1 -240 240 6 -260 240 -1 -640 240 -1 -241 241 6 -242 241 -1 -261 241 -1 -641 241 -1 -242 242 6 -243 242 -1 -262 242 -1 -642 242 -1 -243 243 6 -244 243 -1 -263 243 -1 -643 243 -1 -244 244 6 -245 244 -1 -264 244 -1 -644 244 -1 -245 245 6 -246 245 -1 -265 245 -1 -645 245 -1 -246 246 6 -247 246 -1 -266 246 -1 -646 246 -1 -247 247 6 -248 247 -1 -267 247 -1 -647 247 -1 -248 248 6 -249 248 -1 -268 248 -1 -648 248 -1 -249 249 6 -250 249 -1 -269 249 -1 -649 249 -1 -250 250 6 -251 250 -1 -270 250 -1 -650 250 -1 -251 251 6 -252 251 -1 -271 251 -1 -651 251 -1 -252 252 6 -253 252 -1 -272 252 -1 -652 252 -1 -253 253 6 -254 253 -1 -273 253 -1 -653 253 -1 -254 254 6 -255 254 -1 -274 254 -1 -654 254 -1 -255 255 6 -256 255 -1 -275 255 -1 -655 255 -1 -256 256 6 -257 256 -1 -276 256 -1 -656 256 -1 -257 257 6 -258 257 -1 -277 257 -1 -657 257 -1 -258 258 6 -259 258 -1 -278 258 -1 -658 258 -1 -259 259 6 -260 259 -1 -279 259 -1 -659 259 -1 -260 260 6 -280 260 -1 -660 260 -1 -261 261 6 -262 261 -1 -281 261 -1 -661 261 -1 -262 262 6 -263 262 -1 -282 262 -1 -662 262 -1 -263 263 6 -264 263 -1 -283 263 -1 -663 263 -1 -264 264 6 -265 264 -1 -284 264 -1 -664 264 -1 -265 265 6 -266 265 -1 -285 265 -1 -665 265 -1 -266 266 6 -267 266 -1 -286 266 -1 -666 266 -1 -267 267 6 -268 267 -1 -287 267 -1 -667 267 -1 -268 268 6 -269 268 -1 -288 268 -1 -668 268 -1 -269 269 6 -270 269 -1 -289 269 -1 -669 269 -1 -270 270 6 -271 270 -1 -290 270 -1 -670 270 -1 -271 271 6 -272 271 -1 -291 271 -1 -671 271 -1 -272 272 6 -273 272 -1 -292 272 -1 -672 272 -1 -273 273 6 -274 273 -1 -293 273 -1 -673 273 -1 -274 274 6 -275 274 -1 -294 274 -1 -674 274 -1 -275 275 6 -276 275 -1 -295 275 -1 -675 275 -1 -276 276 6 -277 276 -1 -296 276 -1 -676 276 -1 -277 277 6 -278 277 -1 -297 277 -1 -677 277 -1 -278 278 6 -279 278 -1 -298 278 -1 -678 278 -1 -279 279 6 -280 279 -1 -299 279 -1 -679 279 -1 -280 280 6 -300 280 -1 -680 280 -1 -281 281 6 -282 281 -1 -301 281 -1 -681 281 -1 -282 282 6 -283 282 -1 -302 282 -1 -682 282 -1 -283 283 6 -284 283 -1 -303 283 -1 -683 283 -1 -284 284 6 -285 284 -1 -304 284 -1 -684 284 -1 -285 285 6 -286 285 -1 -305 285 -1 -685 285 -1 -286 286 6 -287 286 -1 -306 286 -1 -686 286 -1 -287 287 6 -288 287 -1 -307 287 -1 -687 287 -1 -288 288 6 -289 288 -1 -308 288 -1 -688 288 -1 -289 289 6 -290 289 -1 -309 289 -1 -689 289 -1 -290 290 6 -291 290 -1 -310 290 -1 -690 290 -1 -291 291 6 -292 291 -1 -311 291 -1 -691 291 -1 -292 292 6 -293 292 -1 -312 292 -1 -692 292 -1 -293 293 6 -294 293 -1 -313 293 -1 -693 293 -1 -294 294 6 -295 294 -1 -314 294 -1 -694 294 -1 -295 295 6 -296 295 -1 -315 295 -1 -695 295 -1 -296 296 6 -297 296 -1 -316 296 -1 -696 296 -1 -297 297 6 -298 297 -1 -317 297 -1 -697 297 -1 -298 298 6 -299 298 -1 -318 298 -1 -698 298 -1 -299 299 6 -300 299 -1 -319 299 -1 -699 299 -1 -300 300 6 -320 300 -1 -700 300 -1 -301 301 6 -302 301 -1 -321 301 -1 -701 301 -1 -302 302 6 -303 302 -1 -322 302 -1 -702 302 -1 -303 303 6 -304 303 -1 -323 303 -1 -703 303 -1 -304 304 6 -305 304 -1 -324 304 -1 -704 304 -1 -305 305 6 -306 305 -1 -325 305 -1 -705 305 -1 -306 306 6 -307 306 -1 -326 306 -1 -706 306 -1 -307 307 6 -308 307 -1 -327 307 -1 -707 307 -1 -308 308 6 -309 308 -1 -328 308 -1 -708 308 -1 -309 309 6 -310 309 -1 -329 309 -1 -709 309 -1 -310 310 6 -311 310 -1 -330 310 -1 -710 310 -1 -311 311 6 -312 311 -1 -331 311 -1 -711 311 -1 -312 312 6 -313 312 -1 -332 312 -1 -712 312 -1 -313 313 6 -314 313 -1 -333 313 -1 -713 313 -1 -314 314 6 -315 314 -1 -334 314 -1 -714 314 -1 -315 315 6 -316 315 -1 -335 315 -1 -715 315 -1 -316 316 6 -317 316 -1 -336 316 -1 -716 316 -1 -317 317 6 -318 317 -1 -337 317 -1 -717 317 -1 -318 318 6 -319 318 -1 -338 318 -1 -718 318 -1 -319 319 6 -320 319 -1 -339 319 -1 -719 319 -1 -320 320 6 -340 320 -1 -720 320 -1 -321 321 6 -322 321 -1 -341 321 -1 -721 321 -1 -322 322 6 -323 322 -1 -342 322 -1 -722 322 -1 -323 323 6 -324 323 -1 -343 323 -1 -723 323 -1 -324 324 6 -325 324 -1 -344 324 -1 -724 324 -1 -325 325 6 -326 325 -1 -345 325 -1 -725 325 -1 -326 326 6 -327 326 -1 -346 326 -1 -726 326 -1 -327 327 6 -328 327 -1 -347 327 -1 -727 327 -1 -328 328 6 -329 328 -1 -348 328 -1 -728 328 -1 -329 329 6 -330 329 -1 -349 329 -1 -729 329 -1 -330 330 6 -331 330 -1 -350 330 -1 -730 330 -1 -331 331 6 -332 331 -1 -351 331 -1 -731 331 -1 -332 332 6 -333 332 -1 -352 332 -1 -732 332 -1 -333 333 6 -334 333 -1 -353 333 -1 -733 333 -1 -334 334 6 -335 334 -1 -354 334 -1 -734 334 -1 -335 335 6 -336 335 -1 -355 335 -1 -735 335 -1 -336 336 6 -337 336 -1 -356 336 -1 -736 336 -1 -337 337 6 -338 337 -1 -357 337 -1 -737 337 -1 -338 338 6 -339 338 -1 -358 338 -1 -738 338 -1 -339 339 6 -340 339 -1 -359 339 -1 -739 339 -1 -340 340 6 -360 340 -1 -740 340 -1 -341 341 6 -342 341 -1 -361 341 -1 -741 341 -1 -342 342 6 -343 342 -1 -362 342 -1 -742 342 -1 -343 343 6 -344 343 -1 -363 343 -1 -743 343 -1 -344 344 6 -345 344 -1 -364 344 -1 -744 344 -1 -345 345 6 -346 345 -1 -365 345 -1 -745 345 -1 -346 346 6 -347 346 -1 -366 346 -1 -746 346 -1 -347 347 6 -348 347 -1 -367 347 -1 -747 347 -1 -348 348 6 -349 348 -1 -368 348 -1 -748 348 -1 -349 349 6 -350 349 -1 -369 349 -1 -749 349 -1 -350 350 6 -351 350 -1 -370 350 -1 -750 350 -1 -351 351 6 -352 351 -1 -371 351 -1 -751 351 -1 -352 352 6 -353 352 -1 -372 352 -1 -752 352 -1 -353 353 6 -354 353 -1 -373 353 -1 -753 353 -1 -354 354 6 -355 354 -1 -374 354 -1 -754 354 -1 -355 355 6 -356 355 -1 -375 355 -1 -755 355 -1 -356 356 6 -357 356 -1 -376 356 -1 -756 356 -1 -357 357 6 -358 357 -1 -377 357 -1 -757 357 -1 -358 358 6 -359 358 -1 -378 358 -1 -758 358 -1 -359 359 6 -360 359 -1 -379 359 -1 -759 359 -1 -360 360 6 -380 360 -1 -760 360 -1 -361 361 6 -362 361 -1 -381 361 -1 -761 361 -1 -362 362 6 -363 362 -1 -382 362 -1 -762 362 -1 -363 363 6 -364 363 -1 -383 363 -1 -763 363 -1 -364 364 6 -365 364 -1 -384 364 -1 -764 364 -1 -365 365 6 -366 365 -1 -385 365 -1 -765 365 -1 -366 366 6 -367 366 -1 -386 366 -1 -766 366 -1 -367 367 6 -368 367 -1 -387 367 -1 -767 367 -1 -368 368 6 -369 368 -1 -388 368 -1 -768 368 -1 -369 369 6 -370 369 -1 -389 369 -1 -769 369 -1 -370 370 6 -371 370 -1 -390 370 -1 -770 370 -1 -371 371 6 -372 371 -1 -391 371 -1 -771 371 -1 -372 372 6 -373 372 -1 -392 372 -1 -772 372 -1 -373 373 6 -374 373 -1 -393 373 -1 -773 373 -1 -374 374 6 -375 374 -1 -394 374 -1 -774 374 -1 -375 375 6 -376 375 -1 -395 375 -1 -775 375 -1 -376 376 6 -377 376 -1 -396 376 -1 -776 376 -1 -377 377 6 -378 377 -1 -397 377 -1 -777 377 -1 -378 378 6 -379 378 -1 -398 378 -1 -778 378 -1 -379 379 6 -380 379 -1 -399 379 -1 -779 379 -1 -380 380 6 -400 380 -1 -780 380 -1 -381 381 6 -382 381 -1 -781 381 -1 -382 382 6 -383 382 -1 -782 382 -1 -383 383 6 -384 383 -1 -783 383 -1 -384 384 6 -385 384 -1 -784 384 -1 -385 385 6 -386 385 -1 -785 385 -1 -386 386 6 -387 386 -1 -786 386 -1 -387 387 6 -388 387 -1 -787 387 -1 -388 388 6 -389 388 -1 -788 388 -1 -389 389 6 -390 389 -1 -789 389 -1 -390 390 6 -391 390 -1 -790 390 -1 -391 391 6 -392 391 -1 -791 391 -1 -392 392 6 -393 392 -1 -792 392 -1 -393 393 6 -394 393 -1 -793 393 -1 -394 394 6 -395 394 -1 -794 394 -1 -395 395 6 -396 395 -1 -795 395 -1 -396 396 6 -397 396 -1 -796 396 -1 -397 397 6 -398 397 -1 -797 397 -1 -398 398 6 -399 398 -1 -798 398 -1 -399 399 6 -400 399 -1 -799 399 -1 -400 400 6 -800 400 -1 -401 401 6 -402 401 -1 -421 401 -1 -801 401 -1 -402 402 6 -403 402 -1 -422 402 -1 -802 402 -1 -403 403 6 -404 403 -1 -423 403 -1 -803 403 -1 -404 404 6 -405 404 -1 -424 404 -1 -804 404 -1 -405 405 6 -406 405 -1 -425 405 -1 -805 405 -1 -406 406 6 -407 406 -1 -426 406 -1 -806 406 -1 -407 407 6 -408 407 -1 -427 407 -1 -807 407 -1 -408 408 6 -409 408 -1 -428 408 -1 -808 408 -1 -409 409 6 -410 409 -1 -429 409 -1 -809 409 -1 -410 410 6 -411 410 -1 -430 410 -1 -810 410 -1 -411 411 6 -412 411 -1 -431 411 -1 -811 411 -1 -412 412 6 -413 412 -1 -432 412 -1 -812 412 -1 -413 413 6 -414 413 -1 -433 413 -1 -813 413 -1 -414 414 6 -415 414 -1 -434 414 -1 -814 414 -1 -415 415 6 -416 415 -1 -435 415 -1 -815 415 -1 -416 416 6 -417 416 -1 -436 416 -1 -816 416 -1 -417 417 6 -418 417 -1 -437 417 -1 -817 417 -1 -418 418 6 -419 418 -1 -438 418 -1 -818 418 -1 -419 419 6 -420 419 -1 -439 419 -1 -819 419 -1 -420 420 6 -440 420 -1 -820 420 -1 -421 421 6 -422 421 -1 -441 421 -1 -821 421 -1 -422 422 6 -423 422 -1 -442 422 -1 -822 422 -1 -423 423 6 -424 423 -1 -443 423 -1 -823 423 -1 -424 424 6 -425 424 -1 -444 424 -1 -824 424 -1 -425 425 6 -426 425 -1 -445 425 -1 -825 425 -1 -426 426 6 -427 426 -1 -446 426 -1 -826 426 -1 -427 427 6 -428 427 -1 -447 427 -1 -827 427 -1 -428 428 6 -429 428 -1 -448 428 -1 -828 428 -1 -429 429 6 -430 429 -1 -449 429 -1 -829 429 -1 -430 430 6 -431 430 -1 -450 430 -1 -830 430 -1 -431 431 6 -432 431 -1 -451 431 -1 -831 431 -1 -432 432 6 -433 432 -1 -452 432 -1 -832 432 -1 -433 433 6 -434 433 -1 -453 433 -1 -833 433 -1 -434 434 6 -435 434 -1 -454 434 -1 -834 434 -1 -435 435 6 -436 435 -1 -455 435 -1 -835 435 -1 -436 436 6 -437 436 -1 -456 436 -1 -836 436 -1 -437 437 6 -438 437 -1 -457 437 -1 -837 437 -1 -438 438 6 -439 438 -1 -458 438 -1 -838 438 -1 -439 439 6 -440 439 -1 -459 439 -1 -839 439 -1 -440 440 6 -460 440 -1 -840 440 -1 -441 441 6 -442 441 -1 -461 441 -1 -841 441 -1 -442 442 6 -443 442 -1 -462 442 -1 -842 442 -1 -443 443 6 -444 443 -1 -463 443 -1 -843 443 -1 -444 444 6 -445 444 -1 -464 444 -1 -844 444 -1 -445 445 6 -446 445 -1 -465 445 -1 -845 445 -1 -446 446 6 -447 446 -1 -466 446 -1 -846 446 -1 -447 447 6 -448 447 -1 -467 447 -1 -847 447 -1 -448 448 6 -449 448 -1 -468 448 -1 -848 448 -1 -449 449 6 -450 449 -1 -469 449 -1 -849 449 -1 -450 450 6 -451 450 -1 -470 450 -1 -850 450 -1 -451 451 6 -452 451 -1 -471 451 -1 -851 451 -1 -452 452 6 -453 452 -1 -472 452 -1 -852 452 -1 -453 453 6 -454 453 -1 -473 453 -1 -853 453 -1 -454 454 6 -455 454 -1 -474 454 -1 -854 454 -1 -455 455 6 -456 455 -1 -475 455 -1 -855 455 -1 -456 456 6 -457 456 -1 -476 456 -1 -856 456 -1 -457 457 6 -458 457 -1 -477 457 -1 -857 457 -1 -458 458 6 -459 458 -1 -478 458 -1 -858 458 -1 -459 459 6 -460 459 -1 -479 459 -1 -859 459 -1 -460 460 6 -480 460 -1 -860 460 -1 -461 461 6 -462 461 -1 -481 461 -1 -861 461 -1 -462 462 6 -463 462 -1 -482 462 -1 -862 462 -1 -463 463 6 -464 463 -1 -483 463 -1 -863 463 -1 -464 464 6 -465 464 -1 -484 464 -1 -864 464 -1 -465 465 6 -466 465 -1 -485 465 -1 -865 465 -1 -466 466 6 -467 466 -1 -486 466 -1 -866 466 -1 -467 467 6 -468 467 -1 -487 467 -1 -867 467 -1 -468 468 6 -469 468 -1 -488 468 -1 -868 468 -1 -469 469 6 -470 469 -1 -489 469 -1 -869 469 -1 -470 470 6 -471 470 -1 -490 470 -1 -870 470 -1 -471 471 6 -472 471 -1 -491 471 -1 -871 471 -1 -472 472 6 -473 472 -1 -492 472 -1 -872 472 -1 -473 473 6 -474 473 -1 -493 473 -1 -873 473 -1 -474 474 6 -475 474 -1 -494 474 -1 -874 474 -1 -475 475 6 -476 475 -1 -495 475 -1 -875 475 -1 -476 476 6 -477 476 -1 -496 476 -1 -876 476 -1 -477 477 6 -478 477 -1 -497 477 -1 -877 477 -1 -478 478 6 -479 478 -1 -498 478 -1 -878 478 -1 -479 479 6 -480 479 -1 -499 479 -1 -879 479 -1 -480 480 6 -500 480 -1 -880 480 -1 -481 481 6 -482 481 -1 -501 481 -1 -881 481 -1 -482 482 6 -483 482 -1 -502 482 -1 -882 482 -1 -483 483 6 -484 483 -1 -503 483 -1 -883 483 -1 -484 484 6 -485 484 -1 -504 484 -1 -884 484 -1 -485 485 6 -486 485 -1 -505 485 -1 -885 485 -1 -486 486 6 -487 486 -1 -506 486 -1 -886 486 -1 -487 487 6 -488 487 -1 -507 487 -1 -887 487 -1 -488 488 6 -489 488 -1 -508 488 -1 -888 488 -1 -489 489 6 -490 489 -1 -509 489 -1 -889 489 -1 -490 490 6 -491 490 -1 -510 490 -1 -890 490 -1 -491 491 6 -492 491 -1 -511 491 -1 -891 491 -1 -492 492 6 -493 492 -1 -512 492 -1 -892 492 -1 -493 493 6 -494 493 -1 -513 493 -1 -893 493 -1 -494 494 6 -495 494 -1 -514 494 -1 -894 494 -1 -495 495 6 -496 495 -1 -515 495 -1 -895 495 -1 -496 496 6 -497 496 -1 -516 496 -1 -896 496 -1 -497 497 6 -498 497 -1 -517 497 -1 -897 497 -1 -498 498 6 -499 498 -1 -518 498 -1 -898 498 -1 -499 499 6 -500 499 -1 -519 499 -1 -899 499 -1 -500 500 6 -520 500 -1 -900 500 -1 -501 501 6 -502 501 -1 -521 501 -1 -901 501 -1 -502 502 6 -503 502 -1 -522 502 -1 -902 502 -1 -503 503 6 -504 503 -1 -523 503 -1 -903 503 -1 -504 504 6 -505 504 -1 -524 504 -1 -904 504 -1 -505 505 6 -506 505 -1 -525 505 -1 -905 505 -1 -506 506 6 -507 506 -1 -526 506 -1 -906 506 -1 -507 507 6 -508 507 -1 -527 507 -1 -907 507 -1 -508 508 6 -509 508 -1 -528 508 -1 -908 508 -1 -509 509 6 -510 509 -1 -529 509 -1 -909 509 -1 -510 510 6 -511 510 -1 -530 510 -1 -910 510 -1 -511 511 6 -512 511 -1 -531 511 -1 -911 511 -1 -512 512 6 -513 512 -1 -532 512 -1 -912 512 -1 -513 513 6 -514 513 -1 -533 513 -1 -913 513 -1 -514 514 6 -515 514 -1 -534 514 -1 -914 514 -1 -515 515 6 -516 515 -1 -535 515 -1 -915 515 -1 -516 516 6 -517 516 -1 -536 516 -1 -916 516 -1 -517 517 6 -518 517 -1 -537 517 -1 -917 517 -1 -518 518 6 -519 518 -1 -538 518 -1 -918 518 -1 -519 519 6 -520 519 -1 -539 519 -1 -919 519 -1 -520 520 6 -540 520 -1 -920 520 -1 -521 521 6 -522 521 -1 -541 521 -1 -921 521 -1 -522 522 6 -523 522 -1 -542 522 -1 -922 522 -1 -523 523 6 -524 523 -1 -543 523 -1 -923 523 -1 -524 524 6 -525 524 -1 -544 524 -1 -924 524 -1 -525 525 6 -526 525 -1 -545 525 -1 -925 525 -1 -526 526 6 -527 526 -1 -546 526 -1 -926 526 -1 -527 527 6 -528 527 -1 -547 527 -1 -927 527 -1 -528 528 6 -529 528 -1 -548 528 -1 -928 528 -1 -529 529 6 -530 529 -1 -549 529 -1 -929 529 -1 -530 530 6 -531 530 -1 -550 530 -1 -930 530 -1 -531 531 6 -532 531 -1 -551 531 -1 -931 531 -1 -532 532 6 -533 532 -1 -552 532 -1 -932 532 -1 -533 533 6 -534 533 -1 -553 533 -1 -933 533 -1 -534 534 6 -535 534 -1 -554 534 -1 -934 534 -1 -535 535 6 -536 535 -1 -555 535 -1 -935 535 -1 -536 536 6 -537 536 -1 -556 536 -1 -936 536 -1 -537 537 6 -538 537 -1 -557 537 -1 -937 537 -1 -538 538 6 -539 538 -1 -558 538 -1 -938 538 -1 -539 539 6 -540 539 -1 -559 539 -1 -939 539 -1 -540 540 6 -560 540 -1 -940 540 -1 -541 541 6 -542 541 -1 -561 541 -1 -941 541 -1 -542 542 6 -543 542 -1 -562 542 -1 -942 542 -1 -543 543 6 -544 543 -1 -563 543 -1 -943 543 -1 -544 544 6 -545 544 -1 -564 544 -1 -944 544 -1 -545 545 6 -546 545 -1 -565 545 -1 -945 545 -1 -546 546 6 -547 546 -1 -566 546 -1 -946 546 -1 -547 547 6 -548 547 -1 -567 547 -1 -947 547 -1 -548 548 6 -549 548 -1 -568 548 -1 -948 548 -1 -549 549 6 -550 549 -1 -569 549 -1 -949 549 -1 -550 550 6 -551 550 -1 -570 550 -1 -950 550 -1 -551 551 6 -552 551 -1 -571 551 -1 -951 551 -1 -552 552 6 -553 552 -1 -572 552 -1 -952 552 -1 -553 553 6 -554 553 -1 -573 553 -1 -953 553 -1 -554 554 6 -555 554 -1 -574 554 -1 -954 554 -1 -555 555 6 -556 555 -1 -575 555 -1 -955 555 -1 -556 556 6 -557 556 -1 -576 556 -1 -956 556 -1 -557 557 6 -558 557 -1 -577 557 -1 -957 557 -1 -558 558 6 -559 558 -1 -578 558 -1 -958 558 -1 -559 559 6 -560 559 -1 -579 559 -1 -959 559 -1 -560 560 6 -580 560 -1 -960 560 -1 -561 561 6 -562 561 -1 -581 561 -1 -961 561 -1 -562 562 6 -563 562 -1 -582 562 -1 -962 562 -1 -563 563 6 -564 563 -1 -583 563 -1 -963 563 -1 -564 564 6 -565 564 -1 -584 564 -1 -964 564 -1 -565 565 6 -566 565 -1 -585 565 -1 -965 565 -1 -566 566 6 -567 566 -1 -586 566 -1 -966 566 -1 -567 567 6 -568 567 -1 -587 567 -1 -967 567 -1 -568 568 6 -569 568 -1 -588 568 -1 -968 568 -1 -569 569 6 -570 569 -1 -589 569 -1 -969 569 -1 -570 570 6 -571 570 -1 -590 570 -1 -970 570 -1 -571 571 6 -572 571 -1 -591 571 -1 -971 571 -1 -572 572 6 -573 572 -1 -592 572 -1 -972 572 -1 -573 573 6 -574 573 -1 -593 573 -1 -973 573 -1 -574 574 6 -575 574 -1 -594 574 -1 -974 574 -1 -575 575 6 -576 575 -1 -595 575 -1 -975 575 -1 -576 576 6 -577 576 -1 -596 576 -1 -976 576 -1 -577 577 6 -578 577 -1 -597 577 -1 -977 577 -1 -578 578 6 -579 578 -1 -598 578 -1 -978 578 -1 -579 579 6 -580 579 -1 -599 579 -1 -979 579 -1 -580 580 6 -600 580 -1 -980 580 -1 -581 581 6 -582 581 -1 -601 581 -1 -981 581 -1 -582 582 6 -583 582 -1 -602 582 -1 -982 582 -1 -583 583 6 -584 583 -1 -603 583 -1 -983 583 -1 -584 584 6 -585 584 -1 -604 584 -1 -984 584 -1 -585 585 6 -586 585 -1 -605 585 -1 -985 585 -1 -586 586 6 -587 586 -1 -606 586 -1 -986 586 -1 -587 587 6 -588 587 -1 -607 587 -1 -987 587 -1 -588 588 6 -589 588 -1 -608 588 -1 -988 588 -1 -589 589 6 -590 589 -1 -609 589 -1 -989 589 -1 -590 590 6 -591 590 -1 -610 590 -1 -990 590 -1 -591 591 6 -592 591 -1 -611 591 -1 -991 591 -1 -592 592 6 -593 592 -1 -612 592 -1 -992 592 -1 -593 593 6 -594 593 -1 -613 593 -1 -993 593 -1 -594 594 6 -595 594 -1 -614 594 -1 -994 594 -1 -595 595 6 -596 595 -1 -615 595 -1 -995 595 -1 -596 596 6 -597 596 -1 -616 596 -1 -996 596 -1 -597 597 6 -598 597 -1 -617 597 -1 -997 597 -1 -598 598 6 -599 598 -1 -618 598 -1 -998 598 -1 -599 599 6 -600 599 -1 -619 599 -1 -999 599 -1 -600 600 6 -620 600 -1 -1000 600 -1 -601 601 6 -602 601 -1 -621 601 -1 -1001 601 -1 -602 602 6 -603 602 -1 -622 602 -1 -1002 602 -1 -603 603 6 -604 603 -1 -623 603 -1 -1003 603 -1 -604 604 6 -605 604 -1 -624 604 -1 -1004 604 -1 -605 605 6 -606 605 -1 -625 605 -1 -1005 605 -1 -606 606 6 -607 606 -1 -626 606 -1 -1006 606 -1 -607 607 6 -608 607 -1 -627 607 -1 -1007 607 -1 -608 608 6 -609 608 -1 -628 608 -1 -1008 608 -1 -609 609 6 -610 609 -1 -629 609 -1 -1009 609 -1 -610 610 6 -611 610 -1 -630 610 -1 -1010 610 -1 -611 611 6 -612 611 -1 -631 611 -1 -1011 611 -1 -612 612 6 -613 612 -1 -632 612 -1 -1012 612 -1 -613 613 6 -614 613 -1 -633 613 -1 -1013 613 -1 -614 614 6 -615 614 -1 -634 614 -1 -1014 614 -1 -615 615 6 -616 615 -1 -635 615 -1 -1015 615 -1 -616 616 6 -617 616 -1 -636 616 -1 -1016 616 -1 -617 617 6 -618 617 -1 -637 617 -1 -1017 617 -1 -618 618 6 -619 618 -1 -638 618 -1 -1018 618 -1 -619 619 6 -620 619 -1 -639 619 -1 -1019 619 -1 -620 620 6 -640 620 -1 -1020 620 -1 -621 621 6 -622 621 -1 -641 621 -1 -1021 621 -1 -622 622 6 -623 622 -1 -642 622 -1 -1022 622 -1 -623 623 6 -624 623 -1 -643 623 -1 -1023 623 -1 -624 624 6 -625 624 -1 -644 624 -1 -1024 624 -1 -625 625 6 -626 625 -1 -645 625 -1 -1025 625 -1 -626 626 6 -627 626 -1 -646 626 -1 -1026 626 -1 -627 627 6 -628 627 -1 -647 627 -1 -1027 627 -1 -628 628 6 -629 628 -1 -648 628 -1 -1028 628 -1 -629 629 6 -630 629 -1 -649 629 -1 -1029 629 -1 -630 630 6 -631 630 -1 -650 630 -1 -1030 630 -1 -631 631 6 -632 631 -1 -651 631 -1 -1031 631 -1 -632 632 6 -633 632 -1 -652 632 -1 -1032 632 -1 -633 633 6 -634 633 -1 -653 633 -1 -1033 633 -1 -634 634 6 -635 634 -1 -654 634 -1 -1034 634 -1 -635 635 6 -636 635 -1 -655 635 -1 -1035 635 -1 -636 636 6 -637 636 -1 -656 636 -1 -1036 636 -1 -637 637 6 -638 637 -1 -657 637 -1 -1037 637 -1 -638 638 6 -639 638 -1 -658 638 -1 -1038 638 -1 -639 639 6 -640 639 -1 -659 639 -1 -1039 639 -1 -640 640 6 -660 640 -1 -1040 640 -1 -641 641 6 -642 641 -1 -661 641 -1 -1041 641 -1 -642 642 6 -643 642 -1 -662 642 -1 -1042 642 -1 -643 643 6 -644 643 -1 -663 643 -1 -1043 643 -1 -644 644 6 -645 644 -1 -664 644 -1 -1044 644 -1 -645 645 6 -646 645 -1 -665 645 -1 -1045 645 -1 -646 646 6 -647 646 -1 -666 646 -1 -1046 646 -1 -647 647 6 -648 647 -1 -667 647 -1 -1047 647 -1 -648 648 6 -649 648 -1 -668 648 -1 -1048 648 -1 -649 649 6 -650 649 -1 -669 649 -1 -1049 649 -1 -650 650 6 -651 650 -1 -670 650 -1 -1050 650 -1 -651 651 6 -652 651 -1 -671 651 -1 -1051 651 -1 -652 652 6 -653 652 -1 -672 652 -1 -1052 652 -1 -653 653 6 -654 653 -1 -673 653 -1 -1053 653 -1 -654 654 6 -655 654 -1 -674 654 -1 -1054 654 -1 -655 655 6 -656 655 -1 -675 655 -1 -1055 655 -1 -656 656 6 -657 656 -1 -676 656 -1 -1056 656 -1 -657 657 6 -658 657 -1 -677 657 -1 -1057 657 -1 -658 658 6 -659 658 -1 -678 658 -1 -1058 658 -1 -659 659 6 -660 659 -1 -679 659 -1 -1059 659 -1 -660 660 6 -680 660 -1 -1060 660 -1 -661 661 6 -662 661 -1 -681 661 -1 -1061 661 -1 -662 662 6 -663 662 -1 -682 662 -1 -1062 662 -1 -663 663 6 -664 663 -1 -683 663 -1 -1063 663 -1 -664 664 6 -665 664 -1 -684 664 -1 -1064 664 -1 -665 665 6 -666 665 -1 -685 665 -1 -1065 665 -1 -666 666 6 -667 666 -1 -686 666 -1 -1066 666 -1 -667 667 6 -668 667 -1 -687 667 -1 -1067 667 -1 -668 668 6 -669 668 -1 -688 668 -1 -1068 668 -1 -669 669 6 -670 669 -1 -689 669 -1 -1069 669 -1 -670 670 6 -671 670 -1 -690 670 -1 -1070 670 -1 -671 671 6 -672 671 -1 -691 671 -1 -1071 671 -1 -672 672 6 -673 672 -1 -692 672 -1 -1072 672 -1 -673 673 6 -674 673 -1 -693 673 -1 -1073 673 -1 -674 674 6 -675 674 -1 -694 674 -1 -1074 674 -1 -675 675 6 -676 675 -1 -695 675 -1 -1075 675 -1 -676 676 6 -677 676 -1 -696 676 -1 -1076 676 -1 -677 677 6 -678 677 -1 -697 677 -1 -1077 677 -1 -678 678 6 -679 678 -1 -698 678 -1 -1078 678 -1 -679 679 6 -680 679 -1 -699 679 -1 -1079 679 -1 -680 680 6 -700 680 -1 -1080 680 -1 -681 681 6 -682 681 -1 -701 681 -1 -1081 681 -1 -682 682 6 -683 682 -1 -702 682 -1 -1082 682 -1 -683 683 6 -684 683 -1 -703 683 -1 -1083 683 -1 -684 684 6 -685 684 -1 -704 684 -1 -1084 684 -1 -685 685 6 -686 685 -1 -705 685 -1 -1085 685 -1 -686 686 6 -687 686 -1 -706 686 -1 -1086 686 -1 -687 687 6 -688 687 -1 -707 687 -1 -1087 687 -1 -688 688 6 -689 688 -1 -708 688 -1 -1088 688 -1 -689 689 6 -690 689 -1 -709 689 -1 -1089 689 -1 -690 690 6 -691 690 -1 -710 690 -1 -1090 690 -1 -691 691 6 -692 691 -1 -711 691 -1 -1091 691 -1 -692 692 6 -693 692 -1 -712 692 -1 -1092 692 -1 -693 693 6 -694 693 -1 -713 693 -1 -1093 693 -1 -694 694 6 -695 694 -1 -714 694 -1 -1094 694 -1 -695 695 6 -696 695 -1 -715 695 -1 -1095 695 -1 -696 696 6 -697 696 -1 -716 696 -1 -1096 696 -1 -697 697 6 -698 697 -1 -717 697 -1 -1097 697 -1 -698 698 6 -699 698 -1 -718 698 -1 -1098 698 -1 -699 699 6 -700 699 -1 -719 699 -1 -1099 699 -1 -700 700 6 -720 700 -1 -1100 700 -1 -701 701 6 -702 701 -1 -721 701 -1 -1101 701 -1 -702 702 6 -703 702 -1 -722 702 -1 -1102 702 -1 -703 703 6 -704 703 -1 -723 703 -1 -1103 703 -1 -704 704 6 -705 704 -1 -724 704 -1 -1104 704 -1 -705 705 6 -706 705 -1 -725 705 -1 -1105 705 -1 -706 706 6 -707 706 -1 -726 706 -1 -1106 706 -1 -707 707 6 -708 707 -1 -727 707 -1 -1107 707 -1 -708 708 6 -709 708 -1 -728 708 -1 -1108 708 -1 -709 709 6 -710 709 -1 -729 709 -1 -1109 709 -1 -710 710 6 -711 710 -1 -730 710 -1 -1110 710 -1 -711 711 6 -712 711 -1 -731 711 -1 -1111 711 -1 -712 712 6 -713 712 -1 -732 712 -1 -1112 712 -1 -713 713 6 -714 713 -1 -733 713 -1 -1113 713 -1 -714 714 6 -715 714 -1 -734 714 -1 -1114 714 -1 -715 715 6 -716 715 -1 -735 715 -1 -1115 715 -1 -716 716 6 -717 716 -1 -736 716 -1 -1116 716 -1 -717 717 6 -718 717 -1 -737 717 -1 -1117 717 -1 -718 718 6 -719 718 -1 -738 718 -1 -1118 718 -1 -719 719 6 -720 719 -1 -739 719 -1 -1119 719 -1 -720 720 6 -740 720 -1 -1120 720 -1 -721 721 6 -722 721 -1 -741 721 -1 -1121 721 -1 -722 722 6 -723 722 -1 -742 722 -1 -1122 722 -1 -723 723 6 -724 723 -1 -743 723 -1 -1123 723 -1 -724 724 6 -725 724 -1 -744 724 -1 -1124 724 -1 -725 725 6 -726 725 -1 -745 725 -1 -1125 725 -1 -726 726 6 -727 726 -1 -746 726 -1 -1126 726 -1 -727 727 6 -728 727 -1 -747 727 -1 -1127 727 -1 -728 728 6 -729 728 -1 -748 728 -1 -1128 728 -1 -729 729 6 -730 729 -1 -749 729 -1 -1129 729 -1 -730 730 6 -731 730 -1 -750 730 -1 -1130 730 -1 -731 731 6 -732 731 -1 -751 731 -1 -1131 731 -1 -732 732 6 -733 732 -1 -752 732 -1 -1132 732 -1 -733 733 6 -734 733 -1 -753 733 -1 -1133 733 -1 -734 734 6 -735 734 -1 -754 734 -1 -1134 734 -1 -735 735 6 -736 735 -1 -755 735 -1 -1135 735 -1 -736 736 6 -737 736 -1 -756 736 -1 -1136 736 -1 -737 737 6 -738 737 -1 -757 737 -1 -1137 737 -1 -738 738 6 -739 738 -1 -758 738 -1 -1138 738 -1 -739 739 6 -740 739 -1 -759 739 -1 -1139 739 -1 -740 740 6 -760 740 -1 -1140 740 -1 -741 741 6 -742 741 -1 -761 741 -1 -1141 741 -1 -742 742 6 -743 742 -1 -762 742 -1 -1142 742 -1 -743 743 6 -744 743 -1 -763 743 -1 -1143 743 -1 -744 744 6 -745 744 -1 -764 744 -1 -1144 744 -1 -745 745 6 -746 745 -1 -765 745 -1 -1145 745 -1 -746 746 6 -747 746 -1 -766 746 -1 -1146 746 -1 -747 747 6 -748 747 -1 -767 747 -1 -1147 747 -1 -748 748 6 -749 748 -1 -768 748 -1 -1148 748 -1 -749 749 6 -750 749 -1 -769 749 -1 -1149 749 -1 -750 750 6 -751 750 -1 -770 750 -1 -1150 750 -1 -751 751 6 -752 751 -1 -771 751 -1 -1151 751 -1 -752 752 6 -753 752 -1 -772 752 -1 -1152 752 -1 -753 753 6 -754 753 -1 -773 753 -1 -1153 753 -1 -754 754 6 -755 754 -1 -774 754 -1 -1154 754 -1 -755 755 6 -756 755 -1 -775 755 -1 -1155 755 -1 -756 756 6 -757 756 -1 -776 756 -1 -1156 756 -1 -757 757 6 -758 757 -1 -777 757 -1 -1157 757 -1 -758 758 6 -759 758 -1 -778 758 -1 -1158 758 -1 -759 759 6 -760 759 -1 -779 759 -1 -1159 759 -1 -760 760 6 -780 760 -1 -1160 760 -1 -761 761 6 -762 761 -1 -781 761 -1 -1161 761 -1 -762 762 6 -763 762 -1 -782 762 -1 -1162 762 -1 -763 763 6 -764 763 -1 -783 763 -1 -1163 763 -1 -764 764 6 -765 764 -1 -784 764 -1 -1164 764 -1 -765 765 6 -766 765 -1 -785 765 -1 -1165 765 -1 -766 766 6 -767 766 -1 -786 766 -1 -1166 766 -1 -767 767 6 -768 767 -1 -787 767 -1 -1167 767 -1 -768 768 6 -769 768 -1 -788 768 -1 -1168 768 -1 -769 769 6 -770 769 -1 -789 769 -1 -1169 769 -1 -770 770 6 -771 770 -1 -790 770 -1 -1170 770 -1 -771 771 6 -772 771 -1 -791 771 -1 -1171 771 -1 -772 772 6 -773 772 -1 -792 772 -1 -1172 772 -1 -773 773 6 -774 773 -1 -793 773 -1 -1173 773 -1 -774 774 6 -775 774 -1 -794 774 -1 -1174 774 -1 -775 775 6 -776 775 -1 -795 775 -1 -1175 775 -1 -776 776 6 -777 776 -1 -796 776 -1 -1176 776 -1 -777 777 6 -778 777 -1 -797 777 -1 -1177 777 -1 -778 778 6 -779 778 -1 -798 778 -1 -1178 778 -1 -779 779 6 -780 779 -1 -799 779 -1 -1179 779 -1 -780 780 6 -800 780 -1 -1180 780 -1 -781 781 6 -782 781 -1 -1181 781 -1 -782 782 6 -783 782 -1 -1182 782 -1 -783 783 6 -784 783 -1 -1183 783 -1 -784 784 6 -785 784 -1 -1184 784 -1 -785 785 6 -786 785 -1 -1185 785 -1 -786 786 6 -787 786 -1 -1186 786 -1 -787 787 6 -788 787 -1 -1187 787 -1 -788 788 6 -789 788 -1 -1188 788 -1 -789 789 6 -790 789 -1 -1189 789 -1 -790 790 6 -791 790 -1 -1190 790 -1 -791 791 6 -792 791 -1 -1191 791 -1 -792 792 6 -793 792 -1 -1192 792 -1 -793 793 6 -794 793 -1 -1193 793 -1 -794 794 6 -795 794 -1 -1194 794 -1 -795 795 6 -796 795 -1 -1195 795 -1 -796 796 6 -797 796 -1 -1196 796 -1 -797 797 6 -798 797 -1 -1197 797 -1 -798 798 6 -799 798 -1 -1198 798 -1 -799 799 6 -800 799 -1 -1199 799 -1 -800 800 6 -1200 800 -1 -801 801 6 -802 801 -1 -821 801 -1 -1201 801 -1 -802 802 6 -803 802 -1 -822 802 -1 -1202 802 -1 -803 803 6 -804 803 -1 -823 803 -1 -1203 803 -1 -804 804 6 -805 804 -1 -824 804 -1 -1204 804 -1 -805 805 6 -806 805 -1 -825 805 -1 -1205 805 -1 -806 806 6 -807 806 -1 -826 806 -1 -1206 806 -1 -807 807 6 -808 807 -1 -827 807 -1 -1207 807 -1 -808 808 6 -809 808 -1 -828 808 -1 -1208 808 -1 -809 809 6 -810 809 -1 -829 809 -1 -1209 809 -1 -810 810 6 -811 810 -1 -830 810 -1 -1210 810 -1 -811 811 6 -812 811 -1 -831 811 -1 -1211 811 -1 -812 812 6 -813 812 -1 -832 812 -1 -1212 812 -1 -813 813 6 -814 813 -1 -833 813 -1 -1213 813 -1 -814 814 6 -815 814 -1 -834 814 -1 -1214 814 -1 -815 815 6 -816 815 -1 -835 815 -1 -1215 815 -1 -816 816 6 -817 816 -1 -836 816 -1 -1216 816 -1 -817 817 6 -818 817 -1 -837 817 -1 -1217 817 -1 -818 818 6 -819 818 -1 -838 818 -1 -1218 818 -1 -819 819 6 -820 819 -1 -839 819 -1 -1219 819 -1 -820 820 6 -840 820 -1 -1220 820 -1 -821 821 6 -822 821 -1 -841 821 -1 -1221 821 -1 -822 822 6 -823 822 -1 -842 822 -1 -1222 822 -1 -823 823 6 -824 823 -1 -843 823 -1 -1223 823 -1 -824 824 6 -825 824 -1 -844 824 -1 -1224 824 -1 -825 825 6 -826 825 -1 -845 825 -1 -1225 825 -1 -826 826 6 -827 826 -1 -846 826 -1 -1226 826 -1 -827 827 6 -828 827 -1 -847 827 -1 -1227 827 -1 -828 828 6 -829 828 -1 -848 828 -1 -1228 828 -1 -829 829 6 -830 829 -1 -849 829 -1 -1229 829 -1 -830 830 6 -831 830 -1 -850 830 -1 -1230 830 -1 -831 831 6 -832 831 -1 -851 831 -1 -1231 831 -1 -832 832 6 -833 832 -1 -852 832 -1 -1232 832 -1 -833 833 6 -834 833 -1 -853 833 -1 -1233 833 -1 -834 834 6 -835 834 -1 -854 834 -1 -1234 834 -1 -835 835 6 -836 835 -1 -855 835 -1 -1235 835 -1 -836 836 6 -837 836 -1 -856 836 -1 -1236 836 -1 -837 837 6 -838 837 -1 -857 837 -1 -1237 837 -1 -838 838 6 -839 838 -1 -858 838 -1 -1238 838 -1 -839 839 6 -840 839 -1 -859 839 -1 -1239 839 -1 -840 840 6 -860 840 -1 -1240 840 -1 -841 841 6 -842 841 -1 -861 841 -1 -1241 841 -1 -842 842 6 -843 842 -1 -862 842 -1 -1242 842 -1 -843 843 6 -844 843 -1 -863 843 -1 -1243 843 -1 -844 844 6 -845 844 -1 -864 844 -1 -1244 844 -1 -845 845 6 -846 845 -1 -865 845 -1 -1245 845 -1 -846 846 6 -847 846 -1 -866 846 -1 -1246 846 -1 -847 847 6 -848 847 -1 -867 847 -1 -1247 847 -1 -848 848 6 -849 848 -1 -868 848 -1 -1248 848 -1 -849 849 6 -850 849 -1 -869 849 -1 -1249 849 -1 -850 850 6 -851 850 -1 -870 850 -1 -1250 850 -1 -851 851 6 -852 851 -1 -871 851 -1 -1251 851 -1 -852 852 6 -853 852 -1 -872 852 -1 -1252 852 -1 -853 853 6 -854 853 -1 -873 853 -1 -1253 853 -1 -854 854 6 -855 854 -1 -874 854 -1 -1254 854 -1 -855 855 6 -856 855 -1 -875 855 -1 -1255 855 -1 -856 856 6 -857 856 -1 -876 856 -1 -1256 856 -1 -857 857 6 -858 857 -1 -877 857 -1 -1257 857 -1 -858 858 6 -859 858 -1 -878 858 -1 -1258 858 -1 -859 859 6 -860 859 -1 -879 859 -1 -1259 859 -1 -860 860 6 -880 860 -1 -1260 860 -1 -861 861 6 -862 861 -1 -881 861 -1 -1261 861 -1 -862 862 6 -863 862 -1 -882 862 -1 -1262 862 -1 -863 863 6 -864 863 -1 -883 863 -1 -1263 863 -1 -864 864 6 -865 864 -1 -884 864 -1 -1264 864 -1 -865 865 6 -866 865 -1 -885 865 -1 -1265 865 -1 -866 866 6 -867 866 -1 -886 866 -1 -1266 866 -1 -867 867 6 -868 867 -1 -887 867 -1 -1267 867 -1 -868 868 6 -869 868 -1 -888 868 -1 -1268 868 -1 -869 869 6 -870 869 -1 -889 869 -1 -1269 869 -1 -870 870 6 -871 870 -1 -890 870 -1 -1270 870 -1 -871 871 6 -872 871 -1 -891 871 -1 -1271 871 -1 -872 872 6 -873 872 -1 -892 872 -1 -1272 872 -1 -873 873 6 -874 873 -1 -893 873 -1 -1273 873 -1 -874 874 6 -875 874 -1 -894 874 -1 -1274 874 -1 -875 875 6 -876 875 -1 -895 875 -1 -1275 875 -1 -876 876 6 -877 876 -1 -896 876 -1 -1276 876 -1 -877 877 6 -878 877 -1 -897 877 -1 -1277 877 -1 -878 878 6 -879 878 -1 -898 878 -1 -1278 878 -1 -879 879 6 -880 879 -1 -899 879 -1 -1279 879 -1 -880 880 6 -900 880 -1 -1280 880 -1 -881 881 6 -882 881 -1 -901 881 -1 -1281 881 -1 -882 882 6 -883 882 -1 -902 882 -1 -1282 882 -1 -883 883 6 -884 883 -1 -903 883 -1 -1283 883 -1 -884 884 6 -885 884 -1 -904 884 -1 -1284 884 -1 -885 885 6 -886 885 -1 -905 885 -1 -1285 885 -1 -886 886 6 -887 886 -1 -906 886 -1 -1286 886 -1 -887 887 6 -888 887 -1 -907 887 -1 -1287 887 -1 -888 888 6 -889 888 -1 -908 888 -1 -1288 888 -1 -889 889 6 -890 889 -1 -909 889 -1 -1289 889 -1 -890 890 6 -891 890 -1 -910 890 -1 -1290 890 -1 -891 891 6 -892 891 -1 -911 891 -1 -1291 891 -1 -892 892 6 -893 892 -1 -912 892 -1 -1292 892 -1 -893 893 6 -894 893 -1 -913 893 -1 -1293 893 -1 -894 894 6 -895 894 -1 -914 894 -1 -1294 894 -1 -895 895 6 -896 895 -1 -915 895 -1 -1295 895 -1 -896 896 6 -897 896 -1 -916 896 -1 -1296 896 -1 -897 897 6 -898 897 -1 -917 897 -1 -1297 897 -1 -898 898 6 -899 898 -1 -918 898 -1 -1298 898 -1 -899 899 6 -900 899 -1 -919 899 -1 -1299 899 -1 -900 900 6 -920 900 -1 -1300 900 -1 -901 901 6 -902 901 -1 -921 901 -1 -1301 901 -1 -902 902 6 -903 902 -1 -922 902 -1 -1302 902 -1 -903 903 6 -904 903 -1 -923 903 -1 -1303 903 -1 -904 904 6 -905 904 -1 -924 904 -1 -1304 904 -1 -905 905 6 -906 905 -1 -925 905 -1 -1305 905 -1 -906 906 6 -907 906 -1 -926 906 -1 -1306 906 -1 -907 907 6 -908 907 -1 -927 907 -1 -1307 907 -1 -908 908 6 -909 908 -1 -928 908 -1 -1308 908 -1 -909 909 6 -910 909 -1 -929 909 -1 -1309 909 -1 -910 910 6 -911 910 -1 -930 910 -1 -1310 910 -1 -911 911 6 -912 911 -1 -931 911 -1 -1311 911 -1 -912 912 6 -913 912 -1 -932 912 -1 -1312 912 -1 -913 913 6 -914 913 -1 -933 913 -1 -1313 913 -1 -914 914 6 -915 914 -1 -934 914 -1 -1314 914 -1 -915 915 6 -916 915 -1 -935 915 -1 -1315 915 -1 -916 916 6 -917 916 -1 -936 916 -1 -1316 916 -1 -917 917 6 -918 917 -1 -937 917 -1 -1317 917 -1 -918 918 6 -919 918 -1 -938 918 -1 -1318 918 -1 -919 919 6 -920 919 -1 -939 919 -1 -1319 919 -1 -920 920 6 -940 920 -1 -1320 920 -1 -921 921 6 -922 921 -1 -941 921 -1 -1321 921 -1 -922 922 6 -923 922 -1 -942 922 -1 -1322 922 -1 -923 923 6 -924 923 -1 -943 923 -1 -1323 923 -1 -924 924 6 -925 924 -1 -944 924 -1 -1324 924 -1 -925 925 6 -926 925 -1 -945 925 -1 -1325 925 -1 -926 926 6 -927 926 -1 -946 926 -1 -1326 926 -1 -927 927 6 -928 927 -1 -947 927 -1 -1327 927 -1 -928 928 6 -929 928 -1 -948 928 -1 -1328 928 -1 -929 929 6 -930 929 -1 -949 929 -1 -1329 929 -1 -930 930 6 -931 930 -1 -950 930 -1 -1330 930 -1 -931 931 6 -932 931 -1 -951 931 -1 -1331 931 -1 -932 932 6 -933 932 -1 -952 932 -1 -1332 932 -1 -933 933 6 -934 933 -1 -953 933 -1 -1333 933 -1 -934 934 6 -935 934 -1 -954 934 -1 -1334 934 -1 -935 935 6 -936 935 -1 -955 935 -1 -1335 935 -1 -936 936 6 -937 936 -1 -956 936 -1 -1336 936 -1 -937 937 6 -938 937 -1 -957 937 -1 -1337 937 -1 -938 938 6 -939 938 -1 -958 938 -1 -1338 938 -1 -939 939 6 -940 939 -1 -959 939 -1 -1339 939 -1 -940 940 6 -960 940 -1 -1340 940 -1 -941 941 6 -942 941 -1 -961 941 -1 -1341 941 -1 -942 942 6 -943 942 -1 -962 942 -1 -1342 942 -1 -943 943 6 -944 943 -1 -963 943 -1 -1343 943 -1 -944 944 6 -945 944 -1 -964 944 -1 -1344 944 -1 -945 945 6 -946 945 -1 -965 945 -1 -1345 945 -1 -946 946 6 -947 946 -1 -966 946 -1 -1346 946 -1 -947 947 6 -948 947 -1 -967 947 -1 -1347 947 -1 -948 948 6 -949 948 -1 -968 948 -1 -1348 948 -1 -949 949 6 -950 949 -1 -969 949 -1 -1349 949 -1 -950 950 6 -951 950 -1 -970 950 -1 -1350 950 -1 -951 951 6 -952 951 -1 -971 951 -1 -1351 951 -1 -952 952 6 -953 952 -1 -972 952 -1 -1352 952 -1 -953 953 6 -954 953 -1 -973 953 -1 -1353 953 -1 -954 954 6 -955 954 -1 -974 954 -1 -1354 954 -1 -955 955 6 -956 955 -1 -975 955 -1 -1355 955 -1 -956 956 6 -957 956 -1 -976 956 -1 -1356 956 -1 -957 957 6 -958 957 -1 -977 957 -1 -1357 957 -1 -958 958 6 -959 958 -1 -978 958 -1 -1358 958 -1 -959 959 6 -960 959 -1 -979 959 -1 -1359 959 -1 -960 960 6 -980 960 -1 -1360 960 -1 -961 961 6 -962 961 -1 -981 961 -1 -1361 961 -1 -962 962 6 -963 962 -1 -982 962 -1 -1362 962 -1 -963 963 6 -964 963 -1 -983 963 -1 -1363 963 -1 -964 964 6 -965 964 -1 -984 964 -1 -1364 964 -1 -965 965 6 -966 965 -1 -985 965 -1 -1365 965 -1 -966 966 6 -967 966 -1 -986 966 -1 -1366 966 -1 -967 967 6 -968 967 -1 -987 967 -1 -1367 967 -1 -968 968 6 -969 968 -1 -988 968 -1 -1368 968 -1 -969 969 6 -970 969 -1 -989 969 -1 -1369 969 -1 -970 970 6 -971 970 -1 -990 970 -1 -1370 970 -1 -971 971 6 -972 971 -1 -991 971 -1 -1371 971 -1 -972 972 6 -973 972 -1 -992 972 -1 -1372 972 -1 -973 973 6 -974 973 -1 -993 973 -1 -1373 973 -1 -974 974 6 -975 974 -1 -994 974 -1 -1374 974 -1 -975 975 6 -976 975 -1 -995 975 -1 -1375 975 -1 -976 976 6 -977 976 -1 -996 976 -1 -1376 976 -1 -977 977 6 -978 977 -1 -997 977 -1 -1377 977 -1 -978 978 6 -979 978 -1 -998 978 -1 -1378 978 -1 -979 979 6 -980 979 -1 -999 979 -1 -1379 979 -1 -980 980 6 -1000 980 -1 -1380 980 -1 -981 981 6 -982 981 -1 -1001 981 -1 -1381 981 -1 -982 982 6 -983 982 -1 -1002 982 -1 -1382 982 -1 -983 983 6 -984 983 -1 -1003 983 -1 -1383 983 -1 -984 984 6 -985 984 -1 -1004 984 -1 -1384 984 -1 -985 985 6 -986 985 -1 -1005 985 -1 -1385 985 -1 -986 986 6 -987 986 -1 -1006 986 -1 -1386 986 -1 -987 987 6 -988 987 -1 -1007 987 -1 -1387 987 -1 -988 988 6 -989 988 -1 -1008 988 -1 -1388 988 -1 -989 989 6 -990 989 -1 -1009 989 -1 -1389 989 -1 -990 990 6 -991 990 -1 -1010 990 -1 -1390 990 -1 -991 991 6 -992 991 -1 -1011 991 -1 -1391 991 -1 -992 992 6 -993 992 -1 -1012 992 -1 -1392 992 -1 -993 993 6 -994 993 -1 -1013 993 -1 -1393 993 -1 -994 994 6 -995 994 -1 -1014 994 -1 -1394 994 -1 -995 995 6 -996 995 -1 -1015 995 -1 -1395 995 -1 -996 996 6 -997 996 -1 -1016 996 -1 -1396 996 -1 -997 997 6 -998 997 -1 -1017 997 -1 -1397 997 -1 -998 998 6 -999 998 -1 -1018 998 -1 -1398 998 -1 -999 999 6 -1000 999 -1 -1019 999 -1 -1399 999 -1 -1000 1000 6 -1020 1000 -1 -1400 1000 -1 -1001 1001 6 -1002 1001 -1 -1021 1001 -1 -1401 1001 -1 -1002 1002 6 -1003 1002 -1 -1022 1002 -1 -1402 1002 -1 -1003 1003 6 -1004 1003 -1 -1023 1003 -1 -1403 1003 -1 -1004 1004 6 -1005 1004 -1 -1024 1004 -1 -1404 1004 -1 -1005 1005 6 -1006 1005 -1 -1025 1005 -1 -1405 1005 -1 -1006 1006 6 -1007 1006 -1 -1026 1006 -1 -1406 1006 -1 -1007 1007 6 -1008 1007 -1 -1027 1007 -1 -1407 1007 -1 -1008 1008 6 -1009 1008 -1 -1028 1008 -1 -1408 1008 -1 -1009 1009 6 -1010 1009 -1 -1029 1009 -1 -1409 1009 -1 -1010 1010 6 -1011 1010 -1 -1030 1010 -1 -1410 1010 -1 -1011 1011 6 -1012 1011 -1 -1031 1011 -1 -1411 1011 -1 -1012 1012 6 -1013 1012 -1 -1032 1012 -1 -1412 1012 -1 -1013 1013 6 -1014 1013 -1 -1033 1013 -1 -1413 1013 -1 -1014 1014 6 -1015 1014 -1 -1034 1014 -1 -1414 1014 -1 -1015 1015 6 -1016 1015 -1 -1035 1015 -1 -1415 1015 -1 -1016 1016 6 -1017 1016 -1 -1036 1016 -1 -1416 1016 -1 -1017 1017 6 -1018 1017 -1 -1037 1017 -1 -1417 1017 -1 -1018 1018 6 -1019 1018 -1 -1038 1018 -1 -1418 1018 -1 -1019 1019 6 -1020 1019 -1 -1039 1019 -1 -1419 1019 -1 -1020 1020 6 -1040 1020 -1 -1420 1020 -1 -1021 1021 6 -1022 1021 -1 -1041 1021 -1 -1421 1021 -1 -1022 1022 6 -1023 1022 -1 -1042 1022 -1 -1422 1022 -1 -1023 1023 6 -1024 1023 -1 -1043 1023 -1 -1423 1023 -1 -1024 1024 6 -1025 1024 -1 -1044 1024 -1 -1424 1024 -1 -1025 1025 6 -1026 1025 -1 -1045 1025 -1 -1425 1025 -1 -1026 1026 6 -1027 1026 -1 -1046 1026 -1 -1426 1026 -1 -1027 1027 6 -1028 1027 -1 -1047 1027 -1 -1427 1027 -1 -1028 1028 6 -1029 1028 -1 -1048 1028 -1 -1428 1028 -1 -1029 1029 6 -1030 1029 -1 -1049 1029 -1 -1429 1029 -1 -1030 1030 6 -1031 1030 -1 -1050 1030 -1 -1430 1030 -1 -1031 1031 6 -1032 1031 -1 -1051 1031 -1 -1431 1031 -1 -1032 1032 6 -1033 1032 -1 -1052 1032 -1 -1432 1032 -1 -1033 1033 6 -1034 1033 -1 -1053 1033 -1 -1433 1033 -1 -1034 1034 6 -1035 1034 -1 -1054 1034 -1 -1434 1034 -1 -1035 1035 6 -1036 1035 -1 -1055 1035 -1 -1435 1035 -1 -1036 1036 6 -1037 1036 -1 -1056 1036 -1 -1436 1036 -1 -1037 1037 6 -1038 1037 -1 -1057 1037 -1 -1437 1037 -1 -1038 1038 6 -1039 1038 -1 -1058 1038 -1 -1438 1038 -1 -1039 1039 6 -1040 1039 -1 -1059 1039 -1 -1439 1039 -1 -1040 1040 6 -1060 1040 -1 -1440 1040 -1 -1041 1041 6 -1042 1041 -1 -1061 1041 -1 -1441 1041 -1 -1042 1042 6 -1043 1042 -1 -1062 1042 -1 -1442 1042 -1 -1043 1043 6 -1044 1043 -1 -1063 1043 -1 -1443 1043 -1 -1044 1044 6 -1045 1044 -1 -1064 1044 -1 -1444 1044 -1 -1045 1045 6 -1046 1045 -1 -1065 1045 -1 -1445 1045 -1 -1046 1046 6 -1047 1046 -1 -1066 1046 -1 -1446 1046 -1 -1047 1047 6 -1048 1047 -1 -1067 1047 -1 -1447 1047 -1 -1048 1048 6 -1049 1048 -1 -1068 1048 -1 -1448 1048 -1 -1049 1049 6 -1050 1049 -1 -1069 1049 -1 -1449 1049 -1 -1050 1050 6 -1051 1050 -1 -1070 1050 -1 -1450 1050 -1 -1051 1051 6 -1052 1051 -1 -1071 1051 -1 -1451 1051 -1 -1052 1052 6 -1053 1052 -1 -1072 1052 -1 -1452 1052 -1 -1053 1053 6 -1054 1053 -1 -1073 1053 -1 -1453 1053 -1 -1054 1054 6 -1055 1054 -1 -1074 1054 -1 -1454 1054 -1 -1055 1055 6 -1056 1055 -1 -1075 1055 -1 -1455 1055 -1 -1056 1056 6 -1057 1056 -1 -1076 1056 -1 -1456 1056 -1 -1057 1057 6 -1058 1057 -1 -1077 1057 -1 -1457 1057 -1 -1058 1058 6 -1059 1058 -1 -1078 1058 -1 -1458 1058 -1 -1059 1059 6 -1060 1059 -1 -1079 1059 -1 -1459 1059 -1 -1060 1060 6 -1080 1060 -1 -1460 1060 -1 -1061 1061 6 -1062 1061 -1 -1081 1061 -1 -1461 1061 -1 -1062 1062 6 -1063 1062 -1 -1082 1062 -1 -1462 1062 -1 -1063 1063 6 -1064 1063 -1 -1083 1063 -1 -1463 1063 -1 -1064 1064 6 -1065 1064 -1 -1084 1064 -1 -1464 1064 -1 -1065 1065 6 -1066 1065 -1 -1085 1065 -1 -1465 1065 -1 -1066 1066 6 -1067 1066 -1 -1086 1066 -1 -1466 1066 -1 -1067 1067 6 -1068 1067 -1 -1087 1067 -1 -1467 1067 -1 -1068 1068 6 -1069 1068 -1 -1088 1068 -1 -1468 1068 -1 -1069 1069 6 -1070 1069 -1 -1089 1069 -1 -1469 1069 -1 -1070 1070 6 -1071 1070 -1 -1090 1070 -1 -1470 1070 -1 -1071 1071 6 -1072 1071 -1 -1091 1071 -1 -1471 1071 -1 -1072 1072 6 -1073 1072 -1 -1092 1072 -1 -1472 1072 -1 -1073 1073 6 -1074 1073 -1 -1093 1073 -1 -1473 1073 -1 -1074 1074 6 -1075 1074 -1 -1094 1074 -1 -1474 1074 -1 -1075 1075 6 -1076 1075 -1 -1095 1075 -1 -1475 1075 -1 -1076 1076 6 -1077 1076 -1 -1096 1076 -1 -1476 1076 -1 -1077 1077 6 -1078 1077 -1 -1097 1077 -1 -1477 1077 -1 -1078 1078 6 -1079 1078 -1 -1098 1078 -1 -1478 1078 -1 -1079 1079 6 -1080 1079 -1 -1099 1079 -1 -1479 1079 -1 -1080 1080 6 -1100 1080 -1 -1480 1080 -1 -1081 1081 6 -1082 1081 -1 -1101 1081 -1 -1481 1081 -1 -1082 1082 6 -1083 1082 -1 -1102 1082 -1 -1482 1082 -1 -1083 1083 6 -1084 1083 -1 -1103 1083 -1 -1483 1083 -1 -1084 1084 6 -1085 1084 -1 -1104 1084 -1 -1484 1084 -1 -1085 1085 6 -1086 1085 -1 -1105 1085 -1 -1485 1085 -1 -1086 1086 6 -1087 1086 -1 -1106 1086 -1 -1486 1086 -1 -1087 1087 6 -1088 1087 -1 -1107 1087 -1 -1487 1087 -1 -1088 1088 6 -1089 1088 -1 -1108 1088 -1 -1488 1088 -1 -1089 1089 6 -1090 1089 -1 -1109 1089 -1 -1489 1089 -1 -1090 1090 6 -1091 1090 -1 -1110 1090 -1 -1490 1090 -1 -1091 1091 6 -1092 1091 -1 -1111 1091 -1 -1491 1091 -1 -1092 1092 6 -1093 1092 -1 -1112 1092 -1 -1492 1092 -1 -1093 1093 6 -1094 1093 -1 -1113 1093 -1 -1493 1093 -1 -1094 1094 6 -1095 1094 -1 -1114 1094 -1 -1494 1094 -1 -1095 1095 6 -1096 1095 -1 -1115 1095 -1 -1495 1095 -1 -1096 1096 6 -1097 1096 -1 -1116 1096 -1 -1496 1096 -1 -1097 1097 6 -1098 1097 -1 -1117 1097 -1 -1497 1097 -1 -1098 1098 6 -1099 1098 -1 -1118 1098 -1 -1498 1098 -1 -1099 1099 6 -1100 1099 -1 -1119 1099 -1 -1499 1099 -1 -1100 1100 6 -1120 1100 -1 -1500 1100 -1 -1101 1101 6 -1102 1101 -1 -1121 1101 -1 -1501 1101 -1 -1102 1102 6 -1103 1102 -1 -1122 1102 -1 -1502 1102 -1 -1103 1103 6 -1104 1103 -1 -1123 1103 -1 -1503 1103 -1 -1104 1104 6 -1105 1104 -1 -1124 1104 -1 -1504 1104 -1 -1105 1105 6 -1106 1105 -1 -1125 1105 -1 -1505 1105 -1 -1106 1106 6 -1107 1106 -1 -1126 1106 -1 -1506 1106 -1 -1107 1107 6 -1108 1107 -1 -1127 1107 -1 -1507 1107 -1 -1108 1108 6 -1109 1108 -1 -1128 1108 -1 -1508 1108 -1 -1109 1109 6 -1110 1109 -1 -1129 1109 -1 -1509 1109 -1 -1110 1110 6 -1111 1110 -1 -1130 1110 -1 -1510 1110 -1 -1111 1111 6 -1112 1111 -1 -1131 1111 -1 -1511 1111 -1 -1112 1112 6 -1113 1112 -1 -1132 1112 -1 -1512 1112 -1 -1113 1113 6 -1114 1113 -1 -1133 1113 -1 -1513 1113 -1 -1114 1114 6 -1115 1114 -1 -1134 1114 -1 -1514 1114 -1 -1115 1115 6 -1116 1115 -1 -1135 1115 -1 -1515 1115 -1 -1116 1116 6 -1117 1116 -1 -1136 1116 -1 -1516 1116 -1 -1117 1117 6 -1118 1117 -1 -1137 1117 -1 -1517 1117 -1 -1118 1118 6 -1119 1118 -1 -1138 1118 -1 -1518 1118 -1 -1119 1119 6 -1120 1119 -1 -1139 1119 -1 -1519 1119 -1 -1120 1120 6 -1140 1120 -1 -1520 1120 -1 -1121 1121 6 -1122 1121 -1 -1141 1121 -1 -1521 1121 -1 -1122 1122 6 -1123 1122 -1 -1142 1122 -1 -1522 1122 -1 -1123 1123 6 -1124 1123 -1 -1143 1123 -1 -1523 1123 -1 -1124 1124 6 -1125 1124 -1 -1144 1124 -1 -1524 1124 -1 -1125 1125 6 -1126 1125 -1 -1145 1125 -1 -1525 1125 -1 -1126 1126 6 -1127 1126 -1 -1146 1126 -1 -1526 1126 -1 -1127 1127 6 -1128 1127 -1 -1147 1127 -1 -1527 1127 -1 -1128 1128 6 -1129 1128 -1 -1148 1128 -1 -1528 1128 -1 -1129 1129 6 -1130 1129 -1 -1149 1129 -1 -1529 1129 -1 -1130 1130 6 -1131 1130 -1 -1150 1130 -1 -1530 1130 -1 -1131 1131 6 -1132 1131 -1 -1151 1131 -1 -1531 1131 -1 -1132 1132 6 -1133 1132 -1 -1152 1132 -1 -1532 1132 -1 -1133 1133 6 -1134 1133 -1 -1153 1133 -1 -1533 1133 -1 -1134 1134 6 -1135 1134 -1 -1154 1134 -1 -1534 1134 -1 -1135 1135 6 -1136 1135 -1 -1155 1135 -1 -1535 1135 -1 -1136 1136 6 -1137 1136 -1 -1156 1136 -1 -1536 1136 -1 -1137 1137 6 -1138 1137 -1 -1157 1137 -1 -1537 1137 -1 -1138 1138 6 -1139 1138 -1 -1158 1138 -1 -1538 1138 -1 -1139 1139 6 -1140 1139 -1 -1159 1139 -1 -1539 1139 -1 -1140 1140 6 -1160 1140 -1 -1540 1140 -1 -1141 1141 6 -1142 1141 -1 -1161 1141 -1 -1541 1141 -1 -1142 1142 6 -1143 1142 -1 -1162 1142 -1 -1542 1142 -1 -1143 1143 6 -1144 1143 -1 -1163 1143 -1 -1543 1143 -1 -1144 1144 6 -1145 1144 -1 -1164 1144 -1 -1544 1144 -1 -1145 1145 6 -1146 1145 -1 -1165 1145 -1 -1545 1145 -1 -1146 1146 6 -1147 1146 -1 -1166 1146 -1 -1546 1146 -1 -1147 1147 6 -1148 1147 -1 -1167 1147 -1 -1547 1147 -1 -1148 1148 6 -1149 1148 -1 -1168 1148 -1 -1548 1148 -1 -1149 1149 6 -1150 1149 -1 -1169 1149 -1 -1549 1149 -1 -1150 1150 6 -1151 1150 -1 -1170 1150 -1 -1550 1150 -1 -1151 1151 6 -1152 1151 -1 -1171 1151 -1 -1551 1151 -1 -1152 1152 6 -1153 1152 -1 -1172 1152 -1 -1552 1152 -1 -1153 1153 6 -1154 1153 -1 -1173 1153 -1 -1553 1153 -1 -1154 1154 6 -1155 1154 -1 -1174 1154 -1 -1554 1154 -1 -1155 1155 6 -1156 1155 -1 -1175 1155 -1 -1555 1155 -1 -1156 1156 6 -1157 1156 -1 -1176 1156 -1 -1556 1156 -1 -1157 1157 6 -1158 1157 -1 -1177 1157 -1 -1557 1157 -1 -1158 1158 6 -1159 1158 -1 -1178 1158 -1 -1558 1158 -1 -1159 1159 6 -1160 1159 -1 -1179 1159 -1 -1559 1159 -1 -1160 1160 6 -1180 1160 -1 -1560 1160 -1 -1161 1161 6 -1162 1161 -1 -1181 1161 -1 -1561 1161 -1 -1162 1162 6 -1163 1162 -1 -1182 1162 -1 -1562 1162 -1 -1163 1163 6 -1164 1163 -1 -1183 1163 -1 -1563 1163 -1 -1164 1164 6 -1165 1164 -1 -1184 1164 -1 -1564 1164 -1 -1165 1165 6 -1166 1165 -1 -1185 1165 -1 -1565 1165 -1 -1166 1166 6 -1167 1166 -1 -1186 1166 -1 -1566 1166 -1 -1167 1167 6 -1168 1167 -1 -1187 1167 -1 -1567 1167 -1 -1168 1168 6 -1169 1168 -1 -1188 1168 -1 -1568 1168 -1 -1169 1169 6 -1170 1169 -1 -1189 1169 -1 -1569 1169 -1 -1170 1170 6 -1171 1170 -1 -1190 1170 -1 -1570 1170 -1 -1171 1171 6 -1172 1171 -1 -1191 1171 -1 -1571 1171 -1 -1172 1172 6 -1173 1172 -1 -1192 1172 -1 -1572 1172 -1 -1173 1173 6 -1174 1173 -1 -1193 1173 -1 -1573 1173 -1 -1174 1174 6 -1175 1174 -1 -1194 1174 -1 -1574 1174 -1 -1175 1175 6 -1176 1175 -1 -1195 1175 -1 -1575 1175 -1 -1176 1176 6 -1177 1176 -1 -1196 1176 -1 -1576 1176 -1 -1177 1177 6 -1178 1177 -1 -1197 1177 -1 -1577 1177 -1 -1178 1178 6 -1179 1178 -1 -1198 1178 -1 -1578 1178 -1 -1179 1179 6 -1180 1179 -1 -1199 1179 -1 -1579 1179 -1 -1180 1180 6 -1200 1180 -1 -1580 1180 -1 -1181 1181 6 -1182 1181 -1 -1581 1181 -1 -1182 1182 6 -1183 1182 -1 -1582 1182 -1 -1183 1183 6 -1184 1183 -1 -1583 1183 -1 -1184 1184 6 -1185 1184 -1 -1584 1184 -1 -1185 1185 6 -1186 1185 -1 -1585 1185 -1 -1186 1186 6 -1187 1186 -1 -1586 1186 -1 -1187 1187 6 -1188 1187 -1 -1587 1187 -1 -1188 1188 6 -1189 1188 -1 -1588 1188 -1 -1189 1189 6 -1190 1189 -1 -1589 1189 -1 -1190 1190 6 -1191 1190 -1 -1590 1190 -1 -1191 1191 6 -1192 1191 -1 -1591 1191 -1 -1192 1192 6 -1193 1192 -1 -1592 1192 -1 -1193 1193 6 -1194 1193 -1 -1593 1193 -1 -1194 1194 6 -1195 1194 -1 -1594 1194 -1 -1195 1195 6 -1196 1195 -1 -1595 1195 -1 -1196 1196 6 -1197 1196 -1 -1596 1196 -1 -1197 1197 6 -1198 1197 -1 -1597 1197 -1 -1198 1198 6 -1199 1198 -1 -1598 1198 -1 -1199 1199 6 -1200 1199 -1 -1599 1199 -1 -1200 1200 6 -1600 1200 -1 -1201 1201 6 -1202 1201 -1 -1221 1201 -1 -1601 1201 -1 -1202 1202 6 -1203 1202 -1 -1222 1202 -1 -1602 1202 -1 -1203 1203 6 -1204 1203 -1 -1223 1203 -1 -1603 1203 -1 -1204 1204 6 -1205 1204 -1 -1224 1204 -1 -1604 1204 -1 -1205 1205 6 -1206 1205 -1 -1225 1205 -1 -1605 1205 -1 -1206 1206 6 -1207 1206 -1 -1226 1206 -1 -1606 1206 -1 -1207 1207 6 -1208 1207 -1 -1227 1207 -1 -1607 1207 -1 -1208 1208 6 -1209 1208 -1 -1228 1208 -1 -1608 1208 -1 -1209 1209 6 -1210 1209 -1 -1229 1209 -1 -1609 1209 -1 -1210 1210 6 -1211 1210 -1 -1230 1210 -1 -1610 1210 -1 -1211 1211 6 -1212 1211 -1 -1231 1211 -1 -1611 1211 -1 -1212 1212 6 -1213 1212 -1 -1232 1212 -1 -1612 1212 -1 -1213 1213 6 -1214 1213 -1 -1233 1213 -1 -1613 1213 -1 -1214 1214 6 -1215 1214 -1 -1234 1214 -1 -1614 1214 -1 -1215 1215 6 -1216 1215 -1 -1235 1215 -1 -1615 1215 -1 -1216 1216 6 -1217 1216 -1 -1236 1216 -1 -1616 1216 -1 -1217 1217 6 -1218 1217 -1 -1237 1217 -1 -1617 1217 -1 -1218 1218 6 -1219 1218 -1 -1238 1218 -1 -1618 1218 -1 -1219 1219 6 -1220 1219 -1 -1239 1219 -1 -1619 1219 -1 -1220 1220 6 -1240 1220 -1 -1620 1220 -1 -1221 1221 6 -1222 1221 -1 -1241 1221 -1 -1621 1221 -1 -1222 1222 6 -1223 1222 -1 -1242 1222 -1 -1622 1222 -1 -1223 1223 6 -1224 1223 -1 -1243 1223 -1 -1623 1223 -1 -1224 1224 6 -1225 1224 -1 -1244 1224 -1 -1624 1224 -1 -1225 1225 6 -1226 1225 -1 -1245 1225 -1 -1625 1225 -1 -1226 1226 6 -1227 1226 -1 -1246 1226 -1 -1626 1226 -1 -1227 1227 6 -1228 1227 -1 -1247 1227 -1 -1627 1227 -1 -1228 1228 6 -1229 1228 -1 -1248 1228 -1 -1628 1228 -1 -1229 1229 6 -1230 1229 -1 -1249 1229 -1 -1629 1229 -1 -1230 1230 6 -1231 1230 -1 -1250 1230 -1 -1630 1230 -1 -1231 1231 6 -1232 1231 -1 -1251 1231 -1 -1631 1231 -1 -1232 1232 6 -1233 1232 -1 -1252 1232 -1 -1632 1232 -1 -1233 1233 6 -1234 1233 -1 -1253 1233 -1 -1633 1233 -1 -1234 1234 6 -1235 1234 -1 -1254 1234 -1 -1634 1234 -1 -1235 1235 6 -1236 1235 -1 -1255 1235 -1 -1635 1235 -1 -1236 1236 6 -1237 1236 -1 -1256 1236 -1 -1636 1236 -1 -1237 1237 6 -1238 1237 -1 -1257 1237 -1 -1637 1237 -1 -1238 1238 6 -1239 1238 -1 -1258 1238 -1 -1638 1238 -1 -1239 1239 6 -1240 1239 -1 -1259 1239 -1 -1639 1239 -1 -1240 1240 6 -1260 1240 -1 -1640 1240 -1 -1241 1241 6 -1242 1241 -1 -1261 1241 -1 -1641 1241 -1 -1242 1242 6 -1243 1242 -1 -1262 1242 -1 -1642 1242 -1 -1243 1243 6 -1244 1243 -1 -1263 1243 -1 -1643 1243 -1 -1244 1244 6 -1245 1244 -1 -1264 1244 -1 -1644 1244 -1 -1245 1245 6 -1246 1245 -1 -1265 1245 -1 -1645 1245 -1 -1246 1246 6 -1247 1246 -1 -1266 1246 -1 -1646 1246 -1 -1247 1247 6 -1248 1247 -1 -1267 1247 -1 -1647 1247 -1 -1248 1248 6 -1249 1248 -1 -1268 1248 -1 -1648 1248 -1 -1249 1249 6 -1250 1249 -1 -1269 1249 -1 -1649 1249 -1 -1250 1250 6 -1251 1250 -1 -1270 1250 -1 -1650 1250 -1 -1251 1251 6 -1252 1251 -1 -1271 1251 -1 -1651 1251 -1 -1252 1252 6 -1253 1252 -1 -1272 1252 -1 -1652 1252 -1 -1253 1253 6 -1254 1253 -1 -1273 1253 -1 -1653 1253 -1 -1254 1254 6 -1255 1254 -1 -1274 1254 -1 -1654 1254 -1 -1255 1255 6 -1256 1255 -1 -1275 1255 -1 -1655 1255 -1 -1256 1256 6 -1257 1256 -1 -1276 1256 -1 -1656 1256 -1 -1257 1257 6 -1258 1257 -1 -1277 1257 -1 -1657 1257 -1 -1258 1258 6 -1259 1258 -1 -1278 1258 -1 -1658 1258 -1 -1259 1259 6 -1260 1259 -1 -1279 1259 -1 -1659 1259 -1 -1260 1260 6 -1280 1260 -1 -1660 1260 -1 -1261 1261 6 -1262 1261 -1 -1281 1261 -1 -1661 1261 -1 -1262 1262 6 -1263 1262 -1 -1282 1262 -1 -1662 1262 -1 -1263 1263 6 -1264 1263 -1 -1283 1263 -1 -1663 1263 -1 -1264 1264 6 -1265 1264 -1 -1284 1264 -1 -1664 1264 -1 -1265 1265 6 -1266 1265 -1 -1285 1265 -1 -1665 1265 -1 -1266 1266 6 -1267 1266 -1 -1286 1266 -1 -1666 1266 -1 -1267 1267 6 -1268 1267 -1 -1287 1267 -1 -1667 1267 -1 -1268 1268 6 -1269 1268 -1 -1288 1268 -1 -1668 1268 -1 -1269 1269 6 -1270 1269 -1 -1289 1269 -1 -1669 1269 -1 -1270 1270 6 -1271 1270 -1 -1290 1270 -1 -1670 1270 -1 -1271 1271 6 -1272 1271 -1 -1291 1271 -1 -1671 1271 -1 -1272 1272 6 -1273 1272 -1 -1292 1272 -1 -1672 1272 -1 -1273 1273 6 -1274 1273 -1 -1293 1273 -1 -1673 1273 -1 -1274 1274 6 -1275 1274 -1 -1294 1274 -1 -1674 1274 -1 -1275 1275 6 -1276 1275 -1 -1295 1275 -1 -1675 1275 -1 -1276 1276 6 -1277 1276 -1 -1296 1276 -1 -1676 1276 -1 -1277 1277 6 -1278 1277 -1 -1297 1277 -1 -1677 1277 -1 -1278 1278 6 -1279 1278 -1 -1298 1278 -1 -1678 1278 -1 -1279 1279 6 -1280 1279 -1 -1299 1279 -1 -1679 1279 -1 -1280 1280 6 -1300 1280 -1 -1680 1280 -1 -1281 1281 6 -1282 1281 -1 -1301 1281 -1 -1681 1281 -1 -1282 1282 6 -1283 1282 -1 -1302 1282 -1 -1682 1282 -1 -1283 1283 6 -1284 1283 -1 -1303 1283 -1 -1683 1283 -1 -1284 1284 6 -1285 1284 -1 -1304 1284 -1 -1684 1284 -1 -1285 1285 6 -1286 1285 -1 -1305 1285 -1 -1685 1285 -1 -1286 1286 6 -1287 1286 -1 -1306 1286 -1 -1686 1286 -1 -1287 1287 6 -1288 1287 -1 -1307 1287 -1 -1687 1287 -1 -1288 1288 6 -1289 1288 -1 -1308 1288 -1 -1688 1288 -1 -1289 1289 6 -1290 1289 -1 -1309 1289 -1 -1689 1289 -1 -1290 1290 6 -1291 1290 -1 -1310 1290 -1 -1690 1290 -1 -1291 1291 6 -1292 1291 -1 -1311 1291 -1 -1691 1291 -1 -1292 1292 6 -1293 1292 -1 -1312 1292 -1 -1692 1292 -1 -1293 1293 6 -1294 1293 -1 -1313 1293 -1 -1693 1293 -1 -1294 1294 6 -1295 1294 -1 -1314 1294 -1 -1694 1294 -1 -1295 1295 6 -1296 1295 -1 -1315 1295 -1 -1695 1295 -1 -1296 1296 6 -1297 1296 -1 -1316 1296 -1 -1696 1296 -1 -1297 1297 6 -1298 1297 -1 -1317 1297 -1 -1697 1297 -1 -1298 1298 6 -1299 1298 -1 -1318 1298 -1 -1698 1298 -1 -1299 1299 6 -1300 1299 -1 -1319 1299 -1 -1699 1299 -1 -1300 1300 6 -1320 1300 -1 -1700 1300 -1 -1301 1301 6 -1302 1301 -1 -1321 1301 -1 -1701 1301 -1 -1302 1302 6 -1303 1302 -1 -1322 1302 -1 -1702 1302 -1 -1303 1303 6 -1304 1303 -1 -1323 1303 -1 -1703 1303 -1 -1304 1304 6 -1305 1304 -1 -1324 1304 -1 -1704 1304 -1 -1305 1305 6 -1306 1305 -1 -1325 1305 -1 -1705 1305 -1 -1306 1306 6 -1307 1306 -1 -1326 1306 -1 -1706 1306 -1 -1307 1307 6 -1308 1307 -1 -1327 1307 -1 -1707 1307 -1 -1308 1308 6 -1309 1308 -1 -1328 1308 -1 -1708 1308 -1 -1309 1309 6 -1310 1309 -1 -1329 1309 -1 -1709 1309 -1 -1310 1310 6 -1311 1310 -1 -1330 1310 -1 -1710 1310 -1 -1311 1311 6 -1312 1311 -1 -1331 1311 -1 -1711 1311 -1 -1312 1312 6 -1313 1312 -1 -1332 1312 -1 -1712 1312 -1 -1313 1313 6 -1314 1313 -1 -1333 1313 -1 -1713 1313 -1 -1314 1314 6 -1315 1314 -1 -1334 1314 -1 -1714 1314 -1 -1315 1315 6 -1316 1315 -1 -1335 1315 -1 -1715 1315 -1 -1316 1316 6 -1317 1316 -1 -1336 1316 -1 -1716 1316 -1 -1317 1317 6 -1318 1317 -1 -1337 1317 -1 -1717 1317 -1 -1318 1318 6 -1319 1318 -1 -1338 1318 -1 -1718 1318 -1 -1319 1319 6 -1320 1319 -1 -1339 1319 -1 -1719 1319 -1 -1320 1320 6 -1340 1320 -1 -1720 1320 -1 -1321 1321 6 -1322 1321 -1 -1341 1321 -1 -1721 1321 -1 -1322 1322 6 -1323 1322 -1 -1342 1322 -1 -1722 1322 -1 -1323 1323 6 -1324 1323 -1 -1343 1323 -1 -1723 1323 -1 -1324 1324 6 -1325 1324 -1 -1344 1324 -1 -1724 1324 -1 -1325 1325 6 -1326 1325 -1 -1345 1325 -1 -1725 1325 -1 -1326 1326 6 -1327 1326 -1 -1346 1326 -1 -1726 1326 -1 -1327 1327 6 -1328 1327 -1 -1347 1327 -1 -1727 1327 -1 -1328 1328 6 -1329 1328 -1 -1348 1328 -1 -1728 1328 -1 -1329 1329 6 -1330 1329 -1 -1349 1329 -1 -1729 1329 -1 -1330 1330 6 -1331 1330 -1 -1350 1330 -1 -1730 1330 -1 -1331 1331 6 -1332 1331 -1 -1351 1331 -1 -1731 1331 -1 -1332 1332 6 -1333 1332 -1 -1352 1332 -1 -1732 1332 -1 -1333 1333 6 -1334 1333 -1 -1353 1333 -1 -1733 1333 -1 -1334 1334 6 -1335 1334 -1 -1354 1334 -1 -1734 1334 -1 -1335 1335 6 -1336 1335 -1 -1355 1335 -1 -1735 1335 -1 -1336 1336 6 -1337 1336 -1 -1356 1336 -1 -1736 1336 -1 -1337 1337 6 -1338 1337 -1 -1357 1337 -1 -1737 1337 -1 -1338 1338 6 -1339 1338 -1 -1358 1338 -1 -1738 1338 -1 -1339 1339 6 -1340 1339 -1 -1359 1339 -1 -1739 1339 -1 -1340 1340 6 -1360 1340 -1 -1740 1340 -1 -1341 1341 6 -1342 1341 -1 -1361 1341 -1 -1741 1341 -1 -1342 1342 6 -1343 1342 -1 -1362 1342 -1 -1742 1342 -1 -1343 1343 6 -1344 1343 -1 -1363 1343 -1 -1743 1343 -1 -1344 1344 6 -1345 1344 -1 -1364 1344 -1 -1744 1344 -1 -1345 1345 6 -1346 1345 -1 -1365 1345 -1 -1745 1345 -1 -1346 1346 6 -1347 1346 -1 -1366 1346 -1 -1746 1346 -1 -1347 1347 6 -1348 1347 -1 -1367 1347 -1 -1747 1347 -1 -1348 1348 6 -1349 1348 -1 -1368 1348 -1 -1748 1348 -1 -1349 1349 6 -1350 1349 -1 -1369 1349 -1 -1749 1349 -1 -1350 1350 6 -1351 1350 -1 -1370 1350 -1 -1750 1350 -1 -1351 1351 6 -1352 1351 -1 -1371 1351 -1 -1751 1351 -1 -1352 1352 6 -1353 1352 -1 -1372 1352 -1 -1752 1352 -1 -1353 1353 6 -1354 1353 -1 -1373 1353 -1 -1753 1353 -1 -1354 1354 6 -1355 1354 -1 -1374 1354 -1 -1754 1354 -1 -1355 1355 6 -1356 1355 -1 -1375 1355 -1 -1755 1355 -1 -1356 1356 6 -1357 1356 -1 -1376 1356 -1 -1756 1356 -1 -1357 1357 6 -1358 1357 -1 -1377 1357 -1 -1757 1357 -1 -1358 1358 6 -1359 1358 -1 -1378 1358 -1 -1758 1358 -1 -1359 1359 6 -1360 1359 -1 -1379 1359 -1 -1759 1359 -1 -1360 1360 6 -1380 1360 -1 -1760 1360 -1 -1361 1361 6 -1362 1361 -1 -1381 1361 -1 -1761 1361 -1 -1362 1362 6 -1363 1362 -1 -1382 1362 -1 -1762 1362 -1 -1363 1363 6 -1364 1363 -1 -1383 1363 -1 -1763 1363 -1 -1364 1364 6 -1365 1364 -1 -1384 1364 -1 -1764 1364 -1 -1365 1365 6 -1366 1365 -1 -1385 1365 -1 -1765 1365 -1 -1366 1366 6 -1367 1366 -1 -1386 1366 -1 -1766 1366 -1 -1367 1367 6 -1368 1367 -1 -1387 1367 -1 -1767 1367 -1 -1368 1368 6 -1369 1368 -1 -1388 1368 -1 -1768 1368 -1 -1369 1369 6 -1370 1369 -1 -1389 1369 -1 -1769 1369 -1 -1370 1370 6 -1371 1370 -1 -1390 1370 -1 -1770 1370 -1 -1371 1371 6 -1372 1371 -1 -1391 1371 -1 -1771 1371 -1 -1372 1372 6 -1373 1372 -1 -1392 1372 -1 -1772 1372 -1 -1373 1373 6 -1374 1373 -1 -1393 1373 -1 -1773 1373 -1 -1374 1374 6 -1375 1374 -1 -1394 1374 -1 -1774 1374 -1 -1375 1375 6 -1376 1375 -1 -1395 1375 -1 -1775 1375 -1 -1376 1376 6 -1377 1376 -1 -1396 1376 -1 -1776 1376 -1 -1377 1377 6 -1378 1377 -1 -1397 1377 -1 -1777 1377 -1 -1378 1378 6 -1379 1378 -1 -1398 1378 -1 -1778 1378 -1 -1379 1379 6 -1380 1379 -1 -1399 1379 -1 -1779 1379 -1 -1380 1380 6 -1400 1380 -1 -1780 1380 -1 -1381 1381 6 -1382 1381 -1 -1401 1381 -1 -1781 1381 -1 -1382 1382 6 -1383 1382 -1 -1402 1382 -1 -1782 1382 -1 -1383 1383 6 -1384 1383 -1 -1403 1383 -1 -1783 1383 -1 -1384 1384 6 -1385 1384 -1 -1404 1384 -1 -1784 1384 -1 -1385 1385 6 -1386 1385 -1 -1405 1385 -1 -1785 1385 -1 -1386 1386 6 -1387 1386 -1 -1406 1386 -1 -1786 1386 -1 -1387 1387 6 -1388 1387 -1 -1407 1387 -1 -1787 1387 -1 -1388 1388 6 -1389 1388 -1 -1408 1388 -1 -1788 1388 -1 -1389 1389 6 -1390 1389 -1 -1409 1389 -1 -1789 1389 -1 -1390 1390 6 -1391 1390 -1 -1410 1390 -1 -1790 1390 -1 -1391 1391 6 -1392 1391 -1 -1411 1391 -1 -1791 1391 -1 -1392 1392 6 -1393 1392 -1 -1412 1392 -1 -1792 1392 -1 -1393 1393 6 -1394 1393 -1 -1413 1393 -1 -1793 1393 -1 -1394 1394 6 -1395 1394 -1 -1414 1394 -1 -1794 1394 -1 -1395 1395 6 -1396 1395 -1 -1415 1395 -1 -1795 1395 -1 -1396 1396 6 -1397 1396 -1 -1416 1396 -1 -1796 1396 -1 -1397 1397 6 -1398 1397 -1 -1417 1397 -1 -1797 1397 -1 -1398 1398 6 -1399 1398 -1 -1418 1398 -1 -1798 1398 -1 -1399 1399 6 -1400 1399 -1 -1419 1399 -1 -1799 1399 -1 -1400 1400 6 -1420 1400 -1 -1800 1400 -1 -1401 1401 6 -1402 1401 -1 -1421 1401 -1 -1801 1401 -1 -1402 1402 6 -1403 1402 -1 -1422 1402 -1 -1802 1402 -1 -1403 1403 6 -1404 1403 -1 -1423 1403 -1 -1803 1403 -1 -1404 1404 6 -1405 1404 -1 -1424 1404 -1 -1804 1404 -1 -1405 1405 6 -1406 1405 -1 -1425 1405 -1 -1805 1405 -1 -1406 1406 6 -1407 1406 -1 -1426 1406 -1 -1806 1406 -1 -1407 1407 6 -1408 1407 -1 -1427 1407 -1 -1807 1407 -1 -1408 1408 6 -1409 1408 -1 -1428 1408 -1 -1808 1408 -1 -1409 1409 6 -1410 1409 -1 -1429 1409 -1 -1809 1409 -1 -1410 1410 6 -1411 1410 -1 -1430 1410 -1 -1810 1410 -1 -1411 1411 6 -1412 1411 -1 -1431 1411 -1 -1811 1411 -1 -1412 1412 6 -1413 1412 -1 -1432 1412 -1 -1812 1412 -1 -1413 1413 6 -1414 1413 -1 -1433 1413 -1 -1813 1413 -1 -1414 1414 6 -1415 1414 -1 -1434 1414 -1 -1814 1414 -1 -1415 1415 6 -1416 1415 -1 -1435 1415 -1 -1815 1415 -1 -1416 1416 6 -1417 1416 -1 -1436 1416 -1 -1816 1416 -1 -1417 1417 6 -1418 1417 -1 -1437 1417 -1 -1817 1417 -1 -1418 1418 6 -1419 1418 -1 -1438 1418 -1 -1818 1418 -1 -1419 1419 6 -1420 1419 -1 -1439 1419 -1 -1819 1419 -1 -1420 1420 6 -1440 1420 -1 -1820 1420 -1 -1421 1421 6 -1422 1421 -1 -1441 1421 -1 -1821 1421 -1 -1422 1422 6 -1423 1422 -1 -1442 1422 -1 -1822 1422 -1 -1423 1423 6 -1424 1423 -1 -1443 1423 -1 -1823 1423 -1 -1424 1424 6 -1425 1424 -1 -1444 1424 -1 -1824 1424 -1 -1425 1425 6 -1426 1425 -1 -1445 1425 -1 -1825 1425 -1 -1426 1426 6 -1427 1426 -1 -1446 1426 -1 -1826 1426 -1 -1427 1427 6 -1428 1427 -1 -1447 1427 -1 -1827 1427 -1 -1428 1428 6 -1429 1428 -1 -1448 1428 -1 -1828 1428 -1 -1429 1429 6 -1430 1429 -1 -1449 1429 -1 -1829 1429 -1 -1430 1430 6 -1431 1430 -1 -1450 1430 -1 -1830 1430 -1 -1431 1431 6 -1432 1431 -1 -1451 1431 -1 -1831 1431 -1 -1432 1432 6 -1433 1432 -1 -1452 1432 -1 -1832 1432 -1 -1433 1433 6 -1434 1433 -1 -1453 1433 -1 -1833 1433 -1 -1434 1434 6 -1435 1434 -1 -1454 1434 -1 -1834 1434 -1 -1435 1435 6 -1436 1435 -1 -1455 1435 -1 -1835 1435 -1 -1436 1436 6 -1437 1436 -1 -1456 1436 -1 -1836 1436 -1 -1437 1437 6 -1438 1437 -1 -1457 1437 -1 -1837 1437 -1 -1438 1438 6 -1439 1438 -1 -1458 1438 -1 -1838 1438 -1 -1439 1439 6 -1440 1439 -1 -1459 1439 -1 -1839 1439 -1 -1440 1440 6 -1460 1440 -1 -1840 1440 -1 -1441 1441 6 -1442 1441 -1 -1461 1441 -1 -1841 1441 -1 -1442 1442 6 -1443 1442 -1 -1462 1442 -1 -1842 1442 -1 -1443 1443 6 -1444 1443 -1 -1463 1443 -1 -1843 1443 -1 -1444 1444 6 -1445 1444 -1 -1464 1444 -1 -1844 1444 -1 -1445 1445 6 -1446 1445 -1 -1465 1445 -1 -1845 1445 -1 -1446 1446 6 -1447 1446 -1 -1466 1446 -1 -1846 1446 -1 -1447 1447 6 -1448 1447 -1 -1467 1447 -1 -1847 1447 -1 -1448 1448 6 -1449 1448 -1 -1468 1448 -1 -1848 1448 -1 -1449 1449 6 -1450 1449 -1 -1469 1449 -1 -1849 1449 -1 -1450 1450 6 -1451 1450 -1 -1470 1450 -1 -1850 1450 -1 -1451 1451 6 -1452 1451 -1 -1471 1451 -1 -1851 1451 -1 -1452 1452 6 -1453 1452 -1 -1472 1452 -1 -1852 1452 -1 -1453 1453 6 -1454 1453 -1 -1473 1453 -1 -1853 1453 -1 -1454 1454 6 -1455 1454 -1 -1474 1454 -1 -1854 1454 -1 -1455 1455 6 -1456 1455 -1 -1475 1455 -1 -1855 1455 -1 -1456 1456 6 -1457 1456 -1 -1476 1456 -1 -1856 1456 -1 -1457 1457 6 -1458 1457 -1 -1477 1457 -1 -1857 1457 -1 -1458 1458 6 -1459 1458 -1 -1478 1458 -1 -1858 1458 -1 -1459 1459 6 -1460 1459 -1 -1479 1459 -1 -1859 1459 -1 -1460 1460 6 -1480 1460 -1 -1860 1460 -1 -1461 1461 6 -1462 1461 -1 -1481 1461 -1 -1861 1461 -1 -1462 1462 6 -1463 1462 -1 -1482 1462 -1 -1862 1462 -1 -1463 1463 6 -1464 1463 -1 -1483 1463 -1 -1863 1463 -1 -1464 1464 6 -1465 1464 -1 -1484 1464 -1 -1864 1464 -1 -1465 1465 6 -1466 1465 -1 -1485 1465 -1 -1865 1465 -1 -1466 1466 6 -1467 1466 -1 -1486 1466 -1 -1866 1466 -1 -1467 1467 6 -1468 1467 -1 -1487 1467 -1 -1867 1467 -1 -1468 1468 6 -1469 1468 -1 -1488 1468 -1 -1868 1468 -1 -1469 1469 6 -1470 1469 -1 -1489 1469 -1 -1869 1469 -1 -1470 1470 6 -1471 1470 -1 -1490 1470 -1 -1870 1470 -1 -1471 1471 6 -1472 1471 -1 -1491 1471 -1 -1871 1471 -1 -1472 1472 6 -1473 1472 -1 -1492 1472 -1 -1872 1472 -1 -1473 1473 6 -1474 1473 -1 -1493 1473 -1 -1873 1473 -1 -1474 1474 6 -1475 1474 -1 -1494 1474 -1 -1874 1474 -1 -1475 1475 6 -1476 1475 -1 -1495 1475 -1 -1875 1475 -1 -1476 1476 6 -1477 1476 -1 -1496 1476 -1 -1876 1476 -1 -1477 1477 6 -1478 1477 -1 -1497 1477 -1 -1877 1477 -1 -1478 1478 6 -1479 1478 -1 -1498 1478 -1 -1878 1478 -1 -1479 1479 6 -1480 1479 -1 -1499 1479 -1 -1879 1479 -1 -1480 1480 6 -1500 1480 -1 -1880 1480 -1 -1481 1481 6 -1482 1481 -1 -1501 1481 -1 -1881 1481 -1 -1482 1482 6 -1483 1482 -1 -1502 1482 -1 -1882 1482 -1 -1483 1483 6 -1484 1483 -1 -1503 1483 -1 -1883 1483 -1 -1484 1484 6 -1485 1484 -1 -1504 1484 -1 -1884 1484 -1 -1485 1485 6 -1486 1485 -1 -1505 1485 -1 -1885 1485 -1 -1486 1486 6 -1487 1486 -1 -1506 1486 -1 -1886 1486 -1 -1487 1487 6 -1488 1487 -1 -1507 1487 -1 -1887 1487 -1 -1488 1488 6 -1489 1488 -1 -1508 1488 -1 -1888 1488 -1 -1489 1489 6 -1490 1489 -1 -1509 1489 -1 -1889 1489 -1 -1490 1490 6 -1491 1490 -1 -1510 1490 -1 -1890 1490 -1 -1491 1491 6 -1492 1491 -1 -1511 1491 -1 -1891 1491 -1 -1492 1492 6 -1493 1492 -1 -1512 1492 -1 -1892 1492 -1 -1493 1493 6 -1494 1493 -1 -1513 1493 -1 -1893 1493 -1 -1494 1494 6 -1495 1494 -1 -1514 1494 -1 -1894 1494 -1 -1495 1495 6 -1496 1495 -1 -1515 1495 -1 -1895 1495 -1 -1496 1496 6 -1497 1496 -1 -1516 1496 -1 -1896 1496 -1 -1497 1497 6 -1498 1497 -1 -1517 1497 -1 -1897 1497 -1 -1498 1498 6 -1499 1498 -1 -1518 1498 -1 -1898 1498 -1 -1499 1499 6 -1500 1499 -1 -1519 1499 -1 -1899 1499 -1 -1500 1500 6 -1520 1500 -1 -1900 1500 -1 -1501 1501 6 -1502 1501 -1 -1521 1501 -1 -1901 1501 -1 -1502 1502 6 -1503 1502 -1 -1522 1502 -1 -1902 1502 -1 -1503 1503 6 -1504 1503 -1 -1523 1503 -1 -1903 1503 -1 -1504 1504 6 -1505 1504 -1 -1524 1504 -1 -1904 1504 -1 -1505 1505 6 -1506 1505 -1 -1525 1505 -1 -1905 1505 -1 -1506 1506 6 -1507 1506 -1 -1526 1506 -1 -1906 1506 -1 -1507 1507 6 -1508 1507 -1 -1527 1507 -1 -1907 1507 -1 -1508 1508 6 -1509 1508 -1 -1528 1508 -1 -1908 1508 -1 -1509 1509 6 -1510 1509 -1 -1529 1509 -1 -1909 1509 -1 -1510 1510 6 -1511 1510 -1 -1530 1510 -1 -1910 1510 -1 -1511 1511 6 -1512 1511 -1 -1531 1511 -1 -1911 1511 -1 -1512 1512 6 -1513 1512 -1 -1532 1512 -1 -1912 1512 -1 -1513 1513 6 -1514 1513 -1 -1533 1513 -1 -1913 1513 -1 -1514 1514 6 -1515 1514 -1 -1534 1514 -1 -1914 1514 -1 -1515 1515 6 -1516 1515 -1 -1535 1515 -1 -1915 1515 -1 -1516 1516 6 -1517 1516 -1 -1536 1516 -1 -1916 1516 -1 -1517 1517 6 -1518 1517 -1 -1537 1517 -1 -1917 1517 -1 -1518 1518 6 -1519 1518 -1 -1538 1518 -1 -1918 1518 -1 -1519 1519 6 -1520 1519 -1 -1539 1519 -1 -1919 1519 -1 -1520 1520 6 -1540 1520 -1 -1920 1520 -1 -1521 1521 6 -1522 1521 -1 -1541 1521 -1 -1921 1521 -1 -1522 1522 6 -1523 1522 -1 -1542 1522 -1 -1922 1522 -1 -1523 1523 6 -1524 1523 -1 -1543 1523 -1 -1923 1523 -1 -1524 1524 6 -1525 1524 -1 -1544 1524 -1 -1924 1524 -1 -1525 1525 6 -1526 1525 -1 -1545 1525 -1 -1925 1525 -1 -1526 1526 6 -1527 1526 -1 -1546 1526 -1 -1926 1526 -1 -1527 1527 6 -1528 1527 -1 -1547 1527 -1 -1927 1527 -1 -1528 1528 6 -1529 1528 -1 -1548 1528 -1 -1928 1528 -1 -1529 1529 6 -1530 1529 -1 -1549 1529 -1 -1929 1529 -1 -1530 1530 6 -1531 1530 -1 -1550 1530 -1 -1930 1530 -1 -1531 1531 6 -1532 1531 -1 -1551 1531 -1 -1931 1531 -1 -1532 1532 6 -1533 1532 -1 -1552 1532 -1 -1932 1532 -1 -1533 1533 6 -1534 1533 -1 -1553 1533 -1 -1933 1533 -1 -1534 1534 6 -1535 1534 -1 -1554 1534 -1 -1934 1534 -1 -1535 1535 6 -1536 1535 -1 -1555 1535 -1 -1935 1535 -1 -1536 1536 6 -1537 1536 -1 -1556 1536 -1 -1936 1536 -1 -1537 1537 6 -1538 1537 -1 -1557 1537 -1 -1937 1537 -1 -1538 1538 6 -1539 1538 -1 -1558 1538 -1 -1938 1538 -1 -1539 1539 6 -1540 1539 -1 -1559 1539 -1 -1939 1539 -1 -1540 1540 6 -1560 1540 -1 -1940 1540 -1 -1541 1541 6 -1542 1541 -1 -1561 1541 -1 -1941 1541 -1 -1542 1542 6 -1543 1542 -1 -1562 1542 -1 -1942 1542 -1 -1543 1543 6 -1544 1543 -1 -1563 1543 -1 -1943 1543 -1 -1544 1544 6 -1545 1544 -1 -1564 1544 -1 -1944 1544 -1 -1545 1545 6 -1546 1545 -1 -1565 1545 -1 -1945 1545 -1 -1546 1546 6 -1547 1546 -1 -1566 1546 -1 -1946 1546 -1 -1547 1547 6 -1548 1547 -1 -1567 1547 -1 -1947 1547 -1 -1548 1548 6 -1549 1548 -1 -1568 1548 -1 -1948 1548 -1 -1549 1549 6 -1550 1549 -1 -1569 1549 -1 -1949 1549 -1 -1550 1550 6 -1551 1550 -1 -1570 1550 -1 -1950 1550 -1 -1551 1551 6 -1552 1551 -1 -1571 1551 -1 -1951 1551 -1 -1552 1552 6 -1553 1552 -1 -1572 1552 -1 -1952 1552 -1 -1553 1553 6 -1554 1553 -1 -1573 1553 -1 -1953 1553 -1 -1554 1554 6 -1555 1554 -1 -1574 1554 -1 -1954 1554 -1 -1555 1555 6 -1556 1555 -1 -1575 1555 -1 -1955 1555 -1 -1556 1556 6 -1557 1556 -1 -1576 1556 -1 -1956 1556 -1 -1557 1557 6 -1558 1557 -1 -1577 1557 -1 -1957 1557 -1 -1558 1558 6 -1559 1558 -1 -1578 1558 -1 -1958 1558 -1 -1559 1559 6 -1560 1559 -1 -1579 1559 -1 -1959 1559 -1 -1560 1560 6 -1580 1560 -1 -1960 1560 -1 -1561 1561 6 -1562 1561 -1 -1581 1561 -1 -1961 1561 -1 -1562 1562 6 -1563 1562 -1 -1582 1562 -1 -1962 1562 -1 -1563 1563 6 -1564 1563 -1 -1583 1563 -1 -1963 1563 -1 -1564 1564 6 -1565 1564 -1 -1584 1564 -1 -1964 1564 -1 -1565 1565 6 -1566 1565 -1 -1585 1565 -1 -1965 1565 -1 -1566 1566 6 -1567 1566 -1 -1586 1566 -1 -1966 1566 -1 -1567 1567 6 -1568 1567 -1 -1587 1567 -1 -1967 1567 -1 -1568 1568 6 -1569 1568 -1 -1588 1568 -1 -1968 1568 -1 -1569 1569 6 -1570 1569 -1 -1589 1569 -1 -1969 1569 -1 -1570 1570 6 -1571 1570 -1 -1590 1570 -1 -1970 1570 -1 -1571 1571 6 -1572 1571 -1 -1591 1571 -1 -1971 1571 -1 -1572 1572 6 -1573 1572 -1 -1592 1572 -1 -1972 1572 -1 -1573 1573 6 -1574 1573 -1 -1593 1573 -1 -1973 1573 -1 -1574 1574 6 -1575 1574 -1 -1594 1574 -1 -1974 1574 -1 -1575 1575 6 -1576 1575 -1 -1595 1575 -1 -1975 1575 -1 -1576 1576 6 -1577 1576 -1 -1596 1576 -1 -1976 1576 -1 -1577 1577 6 -1578 1577 -1 -1597 1577 -1 -1977 1577 -1 -1578 1578 6 -1579 1578 -1 -1598 1578 -1 -1978 1578 -1 -1579 1579 6 -1580 1579 -1 -1599 1579 -1 -1979 1579 -1 -1580 1580 6 -1600 1580 -1 -1980 1580 -1 -1581 1581 6 -1582 1581 -1 -1981 1581 -1 -1582 1582 6 -1583 1582 -1 -1982 1582 -1 -1583 1583 6 -1584 1583 -1 -1983 1583 -1 -1584 1584 6 -1585 1584 -1 -1984 1584 -1 -1585 1585 6 -1586 1585 -1 -1985 1585 -1 -1586 1586 6 -1587 1586 -1 -1986 1586 -1 -1587 1587 6 -1588 1587 -1 -1987 1587 -1 -1588 1588 6 -1589 1588 -1 -1988 1588 -1 -1589 1589 6 -1590 1589 -1 -1989 1589 -1 -1590 1590 6 -1591 1590 -1 -1990 1590 -1 -1591 1591 6 -1592 1591 -1 -1991 1591 -1 -1592 1592 6 -1593 1592 -1 -1992 1592 -1 -1593 1593 6 -1594 1593 -1 -1993 1593 -1 -1594 1594 6 -1595 1594 -1 -1994 1594 -1 -1595 1595 6 -1596 1595 -1 -1995 1595 -1 -1596 1596 6 -1597 1596 -1 -1996 1596 -1 -1597 1597 6 -1598 1597 -1 -1997 1597 -1 -1598 1598 6 -1599 1598 -1 -1998 1598 -1 -1599 1599 6 -1600 1599 -1 -1999 1599 -1 -1600 1600 6 -2000 1600 -1 -1601 1601 6 -1602 1601 -1 -1621 1601 -1 -2001 1601 -1 -1602 1602 6 -1603 1602 -1 -1622 1602 -1 -2002 1602 -1 -1603 1603 6 -1604 1603 -1 -1623 1603 -1 -2003 1603 -1 -1604 1604 6 -1605 1604 -1 -1624 1604 -1 -2004 1604 -1 -1605 1605 6 -1606 1605 -1 -1625 1605 -1 -2005 1605 -1 -1606 1606 6 -1607 1606 -1 -1626 1606 -1 -2006 1606 -1 -1607 1607 6 -1608 1607 -1 -1627 1607 -1 -2007 1607 -1 -1608 1608 6 -1609 1608 -1 -1628 1608 -1 -2008 1608 -1 -1609 1609 6 -1610 1609 -1 -1629 1609 -1 -2009 1609 -1 -1610 1610 6 -1611 1610 -1 -1630 1610 -1 -2010 1610 -1 -1611 1611 6 -1612 1611 -1 -1631 1611 -1 -2011 1611 -1 -1612 1612 6 -1613 1612 -1 -1632 1612 -1 -2012 1612 -1 -1613 1613 6 -1614 1613 -1 -1633 1613 -1 -2013 1613 -1 -1614 1614 6 -1615 1614 -1 -1634 1614 -1 -2014 1614 -1 -1615 1615 6 -1616 1615 -1 -1635 1615 -1 -2015 1615 -1 -1616 1616 6 -1617 1616 -1 -1636 1616 -1 -2016 1616 -1 -1617 1617 6 -1618 1617 -1 -1637 1617 -1 -2017 1617 -1 -1618 1618 6 -1619 1618 -1 -1638 1618 -1 -2018 1618 -1 -1619 1619 6 -1620 1619 -1 -1639 1619 -1 -2019 1619 -1 -1620 1620 6 -1640 1620 -1 -2020 1620 -1 -1621 1621 6 -1622 1621 -1 -1641 1621 -1 -2021 1621 -1 -1622 1622 6 -1623 1622 -1 -1642 1622 -1 -2022 1622 -1 -1623 1623 6 -1624 1623 -1 -1643 1623 -1 -2023 1623 -1 -1624 1624 6 -1625 1624 -1 -1644 1624 -1 -2024 1624 -1 -1625 1625 6 -1626 1625 -1 -1645 1625 -1 -2025 1625 -1 -1626 1626 6 -1627 1626 -1 -1646 1626 -1 -2026 1626 -1 -1627 1627 6 -1628 1627 -1 -1647 1627 -1 -2027 1627 -1 -1628 1628 6 -1629 1628 -1 -1648 1628 -1 -2028 1628 -1 -1629 1629 6 -1630 1629 -1 -1649 1629 -1 -2029 1629 -1 -1630 1630 6 -1631 1630 -1 -1650 1630 -1 -2030 1630 -1 -1631 1631 6 -1632 1631 -1 -1651 1631 -1 -2031 1631 -1 -1632 1632 6 -1633 1632 -1 -1652 1632 -1 -2032 1632 -1 -1633 1633 6 -1634 1633 -1 -1653 1633 -1 -2033 1633 -1 -1634 1634 6 -1635 1634 -1 -1654 1634 -1 -2034 1634 -1 -1635 1635 6 -1636 1635 -1 -1655 1635 -1 -2035 1635 -1 -1636 1636 6 -1637 1636 -1 -1656 1636 -1 -2036 1636 -1 -1637 1637 6 -1638 1637 -1 -1657 1637 -1 -2037 1637 -1 -1638 1638 6 -1639 1638 -1 -1658 1638 -1 -2038 1638 -1 -1639 1639 6 -1640 1639 -1 -1659 1639 -1 -2039 1639 -1 -1640 1640 6 -1660 1640 -1 -2040 1640 -1 -1641 1641 6 -1642 1641 -1 -1661 1641 -1 -2041 1641 -1 -1642 1642 6 -1643 1642 -1 -1662 1642 -1 -2042 1642 -1 -1643 1643 6 -1644 1643 -1 -1663 1643 -1 -2043 1643 -1 -1644 1644 6 -1645 1644 -1 -1664 1644 -1 -2044 1644 -1 -1645 1645 6 -1646 1645 -1 -1665 1645 -1 -2045 1645 -1 -1646 1646 6 -1647 1646 -1 -1666 1646 -1 -2046 1646 -1 -1647 1647 6 -1648 1647 -1 -1667 1647 -1 -2047 1647 -1 -1648 1648 6 -1649 1648 -1 -1668 1648 -1 -2048 1648 -1 -1649 1649 6 -1650 1649 -1 -1669 1649 -1 -2049 1649 -1 -1650 1650 6 -1651 1650 -1 -1670 1650 -1 -2050 1650 -1 -1651 1651 6 -1652 1651 -1 -1671 1651 -1 -2051 1651 -1 -1652 1652 6 -1653 1652 -1 -1672 1652 -1 -2052 1652 -1 -1653 1653 6 -1654 1653 -1 -1673 1653 -1 -2053 1653 -1 -1654 1654 6 -1655 1654 -1 -1674 1654 -1 -2054 1654 -1 -1655 1655 6 -1656 1655 -1 -1675 1655 -1 -2055 1655 -1 -1656 1656 6 -1657 1656 -1 -1676 1656 -1 -2056 1656 -1 -1657 1657 6 -1658 1657 -1 -1677 1657 -1 -2057 1657 -1 -1658 1658 6 -1659 1658 -1 -1678 1658 -1 -2058 1658 -1 -1659 1659 6 -1660 1659 -1 -1679 1659 -1 -2059 1659 -1 -1660 1660 6 -1680 1660 -1 -2060 1660 -1 -1661 1661 6 -1662 1661 -1 -1681 1661 -1 -2061 1661 -1 -1662 1662 6 -1663 1662 -1 -1682 1662 -1 -2062 1662 -1 -1663 1663 6 -1664 1663 -1 -1683 1663 -1 -2063 1663 -1 -1664 1664 6 -1665 1664 -1 -1684 1664 -1 -2064 1664 -1 -1665 1665 6 -1666 1665 -1 -1685 1665 -1 -2065 1665 -1 -1666 1666 6 -1667 1666 -1 -1686 1666 -1 -2066 1666 -1 -1667 1667 6 -1668 1667 -1 -1687 1667 -1 -2067 1667 -1 -1668 1668 6 -1669 1668 -1 -1688 1668 -1 -2068 1668 -1 -1669 1669 6 -1670 1669 -1 -1689 1669 -1 -2069 1669 -1 -1670 1670 6 -1671 1670 -1 -1690 1670 -1 -2070 1670 -1 -1671 1671 6 -1672 1671 -1 -1691 1671 -1 -2071 1671 -1 -1672 1672 6 -1673 1672 -1 -1692 1672 -1 -2072 1672 -1 -1673 1673 6 -1674 1673 -1 -1693 1673 -1 -2073 1673 -1 -1674 1674 6 -1675 1674 -1 -1694 1674 -1 -2074 1674 -1 -1675 1675 6 -1676 1675 -1 -1695 1675 -1 -2075 1675 -1 -1676 1676 6 -1677 1676 -1 -1696 1676 -1 -2076 1676 -1 -1677 1677 6 -1678 1677 -1 -1697 1677 -1 -2077 1677 -1 -1678 1678 6 -1679 1678 -1 -1698 1678 -1 -2078 1678 -1 -1679 1679 6 -1680 1679 -1 -1699 1679 -1 -2079 1679 -1 -1680 1680 6 -1700 1680 -1 -2080 1680 -1 -1681 1681 6 -1682 1681 -1 -1701 1681 -1 -2081 1681 -1 -1682 1682 6 -1683 1682 -1 -1702 1682 -1 -2082 1682 -1 -1683 1683 6 -1684 1683 -1 -1703 1683 -1 -2083 1683 -1 -1684 1684 6 -1685 1684 -1 -1704 1684 -1 -2084 1684 -1 -1685 1685 6 -1686 1685 -1 -1705 1685 -1 -2085 1685 -1 -1686 1686 6 -1687 1686 -1 -1706 1686 -1 -2086 1686 -1 -1687 1687 6 -1688 1687 -1 -1707 1687 -1 -2087 1687 -1 -1688 1688 6 -1689 1688 -1 -1708 1688 -1 -2088 1688 -1 -1689 1689 6 -1690 1689 -1 -1709 1689 -1 -2089 1689 -1 -1690 1690 6 -1691 1690 -1 -1710 1690 -1 -2090 1690 -1 -1691 1691 6 -1692 1691 -1 -1711 1691 -1 -2091 1691 -1 -1692 1692 6 -1693 1692 -1 -1712 1692 -1 -2092 1692 -1 -1693 1693 6 -1694 1693 -1 -1713 1693 -1 -2093 1693 -1 -1694 1694 6 -1695 1694 -1 -1714 1694 -1 -2094 1694 -1 -1695 1695 6 -1696 1695 -1 -1715 1695 -1 -2095 1695 -1 -1696 1696 6 -1697 1696 -1 -1716 1696 -1 -2096 1696 -1 -1697 1697 6 -1698 1697 -1 -1717 1697 -1 -2097 1697 -1 -1698 1698 6 -1699 1698 -1 -1718 1698 -1 -2098 1698 -1 -1699 1699 6 -1700 1699 -1 -1719 1699 -1 -2099 1699 -1 -1700 1700 6 -1720 1700 -1 -2100 1700 -1 -1701 1701 6 -1702 1701 -1 -1721 1701 -1 -2101 1701 -1 -1702 1702 6 -1703 1702 -1 -1722 1702 -1 -2102 1702 -1 -1703 1703 6 -1704 1703 -1 -1723 1703 -1 -2103 1703 -1 -1704 1704 6 -1705 1704 -1 -1724 1704 -1 -2104 1704 -1 -1705 1705 6 -1706 1705 -1 -1725 1705 -1 -2105 1705 -1 -1706 1706 6 -1707 1706 -1 -1726 1706 -1 -2106 1706 -1 -1707 1707 6 -1708 1707 -1 -1727 1707 -1 -2107 1707 -1 -1708 1708 6 -1709 1708 -1 -1728 1708 -1 -2108 1708 -1 -1709 1709 6 -1710 1709 -1 -1729 1709 -1 -2109 1709 -1 -1710 1710 6 -1711 1710 -1 -1730 1710 -1 -2110 1710 -1 -1711 1711 6 -1712 1711 -1 -1731 1711 -1 -2111 1711 -1 -1712 1712 6 -1713 1712 -1 -1732 1712 -1 -2112 1712 -1 -1713 1713 6 -1714 1713 -1 -1733 1713 -1 -2113 1713 -1 -1714 1714 6 -1715 1714 -1 -1734 1714 -1 -2114 1714 -1 -1715 1715 6 -1716 1715 -1 -1735 1715 -1 -2115 1715 -1 -1716 1716 6 -1717 1716 -1 -1736 1716 -1 -2116 1716 -1 -1717 1717 6 -1718 1717 -1 -1737 1717 -1 -2117 1717 -1 -1718 1718 6 -1719 1718 -1 -1738 1718 -1 -2118 1718 -1 -1719 1719 6 -1720 1719 -1 -1739 1719 -1 -2119 1719 -1 -1720 1720 6 -1740 1720 -1 -2120 1720 -1 -1721 1721 6 -1722 1721 -1 -1741 1721 -1 -2121 1721 -1 -1722 1722 6 -1723 1722 -1 -1742 1722 -1 -2122 1722 -1 -1723 1723 6 -1724 1723 -1 -1743 1723 -1 -2123 1723 -1 -1724 1724 6 -1725 1724 -1 -1744 1724 -1 -2124 1724 -1 -1725 1725 6 -1726 1725 -1 -1745 1725 -1 -2125 1725 -1 -1726 1726 6 -1727 1726 -1 -1746 1726 -1 -2126 1726 -1 -1727 1727 6 -1728 1727 -1 -1747 1727 -1 -2127 1727 -1 -1728 1728 6 -1729 1728 -1 -1748 1728 -1 -2128 1728 -1 -1729 1729 6 -1730 1729 -1 -1749 1729 -1 -2129 1729 -1 -1730 1730 6 -1731 1730 -1 -1750 1730 -1 -2130 1730 -1 -1731 1731 6 -1732 1731 -1 -1751 1731 -1 -2131 1731 -1 -1732 1732 6 -1733 1732 -1 -1752 1732 -1 -2132 1732 -1 -1733 1733 6 -1734 1733 -1 -1753 1733 -1 -2133 1733 -1 -1734 1734 6 -1735 1734 -1 -1754 1734 -1 -2134 1734 -1 -1735 1735 6 -1736 1735 -1 -1755 1735 -1 -2135 1735 -1 -1736 1736 6 -1737 1736 -1 -1756 1736 -1 -2136 1736 -1 -1737 1737 6 -1738 1737 -1 -1757 1737 -1 -2137 1737 -1 -1738 1738 6 -1739 1738 -1 -1758 1738 -1 -2138 1738 -1 -1739 1739 6 -1740 1739 -1 -1759 1739 -1 -2139 1739 -1 -1740 1740 6 -1760 1740 -1 -2140 1740 -1 -1741 1741 6 -1742 1741 -1 -1761 1741 -1 -2141 1741 -1 -1742 1742 6 -1743 1742 -1 -1762 1742 -1 -2142 1742 -1 -1743 1743 6 -1744 1743 -1 -1763 1743 -1 -2143 1743 -1 -1744 1744 6 -1745 1744 -1 -1764 1744 -1 -2144 1744 -1 -1745 1745 6 -1746 1745 -1 -1765 1745 -1 -2145 1745 -1 -1746 1746 6 -1747 1746 -1 -1766 1746 -1 -2146 1746 -1 -1747 1747 6 -1748 1747 -1 -1767 1747 -1 -2147 1747 -1 -1748 1748 6 -1749 1748 -1 -1768 1748 -1 -2148 1748 -1 -1749 1749 6 -1750 1749 -1 -1769 1749 -1 -2149 1749 -1 -1750 1750 6 -1751 1750 -1 -1770 1750 -1 -2150 1750 -1 -1751 1751 6 -1752 1751 -1 -1771 1751 -1 -2151 1751 -1 -1752 1752 6 -1753 1752 -1 -1772 1752 -1 -2152 1752 -1 -1753 1753 6 -1754 1753 -1 -1773 1753 -1 -2153 1753 -1 -1754 1754 6 -1755 1754 -1 -1774 1754 -1 -2154 1754 -1 -1755 1755 6 -1756 1755 -1 -1775 1755 -1 -2155 1755 -1 -1756 1756 6 -1757 1756 -1 -1776 1756 -1 -2156 1756 -1 -1757 1757 6 -1758 1757 -1 -1777 1757 -1 -2157 1757 -1 -1758 1758 6 -1759 1758 -1 -1778 1758 -1 -2158 1758 -1 -1759 1759 6 -1760 1759 -1 -1779 1759 -1 -2159 1759 -1 -1760 1760 6 -1780 1760 -1 -2160 1760 -1 -1761 1761 6 -1762 1761 -1 -1781 1761 -1 -2161 1761 -1 -1762 1762 6 -1763 1762 -1 -1782 1762 -1 -2162 1762 -1 -1763 1763 6 -1764 1763 -1 -1783 1763 -1 -2163 1763 -1 -1764 1764 6 -1765 1764 -1 -1784 1764 -1 -2164 1764 -1 -1765 1765 6 -1766 1765 -1 -1785 1765 -1 -2165 1765 -1 -1766 1766 6 -1767 1766 -1 -1786 1766 -1 -2166 1766 -1 -1767 1767 6 -1768 1767 -1 -1787 1767 -1 -2167 1767 -1 -1768 1768 6 -1769 1768 -1 -1788 1768 -1 -2168 1768 -1 -1769 1769 6 -1770 1769 -1 -1789 1769 -1 -2169 1769 -1 -1770 1770 6 -1771 1770 -1 -1790 1770 -1 -2170 1770 -1 -1771 1771 6 -1772 1771 -1 -1791 1771 -1 -2171 1771 -1 -1772 1772 6 -1773 1772 -1 -1792 1772 -1 -2172 1772 -1 -1773 1773 6 -1774 1773 -1 -1793 1773 -1 -2173 1773 -1 -1774 1774 6 -1775 1774 -1 -1794 1774 -1 -2174 1774 -1 -1775 1775 6 -1776 1775 -1 -1795 1775 -1 -2175 1775 -1 -1776 1776 6 -1777 1776 -1 -1796 1776 -1 -2176 1776 -1 -1777 1777 6 -1778 1777 -1 -1797 1777 -1 -2177 1777 -1 -1778 1778 6 -1779 1778 -1 -1798 1778 -1 -2178 1778 -1 -1779 1779 6 -1780 1779 -1 -1799 1779 -1 -2179 1779 -1 -1780 1780 6 -1800 1780 -1 -2180 1780 -1 -1781 1781 6 -1782 1781 -1 -1801 1781 -1 -2181 1781 -1 -1782 1782 6 -1783 1782 -1 -1802 1782 -1 -2182 1782 -1 -1783 1783 6 -1784 1783 -1 -1803 1783 -1 -2183 1783 -1 -1784 1784 6 -1785 1784 -1 -1804 1784 -1 -2184 1784 -1 -1785 1785 6 -1786 1785 -1 -1805 1785 -1 -2185 1785 -1 -1786 1786 6 -1787 1786 -1 -1806 1786 -1 -2186 1786 -1 -1787 1787 6 -1788 1787 -1 -1807 1787 -1 -2187 1787 -1 -1788 1788 6 -1789 1788 -1 -1808 1788 -1 -2188 1788 -1 -1789 1789 6 -1790 1789 -1 -1809 1789 -1 -2189 1789 -1 -1790 1790 6 -1791 1790 -1 -1810 1790 -1 -2190 1790 -1 -1791 1791 6 -1792 1791 -1 -1811 1791 -1 -2191 1791 -1 -1792 1792 6 -1793 1792 -1 -1812 1792 -1 -2192 1792 -1 -1793 1793 6 -1794 1793 -1 -1813 1793 -1 -2193 1793 -1 -1794 1794 6 -1795 1794 -1 -1814 1794 -1 -2194 1794 -1 -1795 1795 6 -1796 1795 -1 -1815 1795 -1 -2195 1795 -1 -1796 1796 6 -1797 1796 -1 -1816 1796 -1 -2196 1796 -1 -1797 1797 6 -1798 1797 -1 -1817 1797 -1 -2197 1797 -1 -1798 1798 6 -1799 1798 -1 -1818 1798 -1 -2198 1798 -1 -1799 1799 6 -1800 1799 -1 -1819 1799 -1 -2199 1799 -1 -1800 1800 6 -1820 1800 -1 -2200 1800 -1 -1801 1801 6 -1802 1801 -1 -1821 1801 -1 -2201 1801 -1 -1802 1802 6 -1803 1802 -1 -1822 1802 -1 -2202 1802 -1 -1803 1803 6 -1804 1803 -1 -1823 1803 -1 -2203 1803 -1 -1804 1804 6 -1805 1804 -1 -1824 1804 -1 -2204 1804 -1 -1805 1805 6 -1806 1805 -1 -1825 1805 -1 -2205 1805 -1 -1806 1806 6 -1807 1806 -1 -1826 1806 -1 -2206 1806 -1 -1807 1807 6 -1808 1807 -1 -1827 1807 -1 -2207 1807 -1 -1808 1808 6 -1809 1808 -1 -1828 1808 -1 -2208 1808 -1 -1809 1809 6 -1810 1809 -1 -1829 1809 -1 -2209 1809 -1 -1810 1810 6 -1811 1810 -1 -1830 1810 -1 -2210 1810 -1 -1811 1811 6 -1812 1811 -1 -1831 1811 -1 -2211 1811 -1 -1812 1812 6 -1813 1812 -1 -1832 1812 -1 -2212 1812 -1 -1813 1813 6 -1814 1813 -1 -1833 1813 -1 -2213 1813 -1 -1814 1814 6 -1815 1814 -1 -1834 1814 -1 -2214 1814 -1 -1815 1815 6 -1816 1815 -1 -1835 1815 -1 -2215 1815 -1 -1816 1816 6 -1817 1816 -1 -1836 1816 -1 -2216 1816 -1 -1817 1817 6 -1818 1817 -1 -1837 1817 -1 -2217 1817 -1 -1818 1818 6 -1819 1818 -1 -1838 1818 -1 -2218 1818 -1 -1819 1819 6 -1820 1819 -1 -1839 1819 -1 -2219 1819 -1 -1820 1820 6 -1840 1820 -1 -2220 1820 -1 -1821 1821 6 -1822 1821 -1 -1841 1821 -1 -2221 1821 -1 -1822 1822 6 -1823 1822 -1 -1842 1822 -1 -2222 1822 -1 -1823 1823 6 -1824 1823 -1 -1843 1823 -1 -2223 1823 -1 -1824 1824 6 -1825 1824 -1 -1844 1824 -1 -2224 1824 -1 -1825 1825 6 -1826 1825 -1 -1845 1825 -1 -2225 1825 -1 -1826 1826 6 -1827 1826 -1 -1846 1826 -1 -2226 1826 -1 -1827 1827 6 -1828 1827 -1 -1847 1827 -1 -2227 1827 -1 -1828 1828 6 -1829 1828 -1 -1848 1828 -1 -2228 1828 -1 -1829 1829 6 -1830 1829 -1 -1849 1829 -1 -2229 1829 -1 -1830 1830 6 -1831 1830 -1 -1850 1830 -1 -2230 1830 -1 -1831 1831 6 -1832 1831 -1 -1851 1831 -1 -2231 1831 -1 -1832 1832 6 -1833 1832 -1 -1852 1832 -1 -2232 1832 -1 -1833 1833 6 -1834 1833 -1 -1853 1833 -1 -2233 1833 -1 -1834 1834 6 -1835 1834 -1 -1854 1834 -1 -2234 1834 -1 -1835 1835 6 -1836 1835 -1 -1855 1835 -1 -2235 1835 -1 -1836 1836 6 -1837 1836 -1 -1856 1836 -1 -2236 1836 -1 -1837 1837 6 -1838 1837 -1 -1857 1837 -1 -2237 1837 -1 -1838 1838 6 -1839 1838 -1 -1858 1838 -1 -2238 1838 -1 -1839 1839 6 -1840 1839 -1 -1859 1839 -1 -2239 1839 -1 -1840 1840 6 -1860 1840 -1 -2240 1840 -1 -1841 1841 6 -1842 1841 -1 -1861 1841 -1 -2241 1841 -1 -1842 1842 6 -1843 1842 -1 -1862 1842 -1 -2242 1842 -1 -1843 1843 6 -1844 1843 -1 -1863 1843 -1 -2243 1843 -1 -1844 1844 6 -1845 1844 -1 -1864 1844 -1 -2244 1844 -1 -1845 1845 6 -1846 1845 -1 -1865 1845 -1 -2245 1845 -1 -1846 1846 6 -1847 1846 -1 -1866 1846 -1 -2246 1846 -1 -1847 1847 6 -1848 1847 -1 -1867 1847 -1 -2247 1847 -1 -1848 1848 6 -1849 1848 -1 -1868 1848 -1 -2248 1848 -1 -1849 1849 6 -1850 1849 -1 -1869 1849 -1 -2249 1849 -1 -1850 1850 6 -1851 1850 -1 -1870 1850 -1 -2250 1850 -1 -1851 1851 6 -1852 1851 -1 -1871 1851 -1 -2251 1851 -1 -1852 1852 6 -1853 1852 -1 -1872 1852 -1 -2252 1852 -1 -1853 1853 6 -1854 1853 -1 -1873 1853 -1 -2253 1853 -1 -1854 1854 6 -1855 1854 -1 -1874 1854 -1 -2254 1854 -1 -1855 1855 6 -1856 1855 -1 -1875 1855 -1 -2255 1855 -1 -1856 1856 6 -1857 1856 -1 -1876 1856 -1 -2256 1856 -1 -1857 1857 6 -1858 1857 -1 -1877 1857 -1 -2257 1857 -1 -1858 1858 6 -1859 1858 -1 -1878 1858 -1 -2258 1858 -1 -1859 1859 6 -1860 1859 -1 -1879 1859 -1 -2259 1859 -1 -1860 1860 6 -1880 1860 -1 -2260 1860 -1 -1861 1861 6 -1862 1861 -1 -1881 1861 -1 -2261 1861 -1 -1862 1862 6 -1863 1862 -1 -1882 1862 -1 -2262 1862 -1 -1863 1863 6 -1864 1863 -1 -1883 1863 -1 -2263 1863 -1 -1864 1864 6 -1865 1864 -1 -1884 1864 -1 -2264 1864 -1 -1865 1865 6 -1866 1865 -1 -1885 1865 -1 -2265 1865 -1 -1866 1866 6 -1867 1866 -1 -1886 1866 -1 -2266 1866 -1 -1867 1867 6 -1868 1867 -1 -1887 1867 -1 -2267 1867 -1 -1868 1868 6 -1869 1868 -1 -1888 1868 -1 -2268 1868 -1 -1869 1869 6 -1870 1869 -1 -1889 1869 -1 -2269 1869 -1 -1870 1870 6 -1871 1870 -1 -1890 1870 -1 -2270 1870 -1 -1871 1871 6 -1872 1871 -1 -1891 1871 -1 -2271 1871 -1 -1872 1872 6 -1873 1872 -1 -1892 1872 -1 -2272 1872 -1 -1873 1873 6 -1874 1873 -1 -1893 1873 -1 -2273 1873 -1 -1874 1874 6 -1875 1874 -1 -1894 1874 -1 -2274 1874 -1 -1875 1875 6 -1876 1875 -1 -1895 1875 -1 -2275 1875 -1 -1876 1876 6 -1877 1876 -1 -1896 1876 -1 -2276 1876 -1 -1877 1877 6 -1878 1877 -1 -1897 1877 -1 -2277 1877 -1 -1878 1878 6 -1879 1878 -1 -1898 1878 -1 -2278 1878 -1 -1879 1879 6 -1880 1879 -1 -1899 1879 -1 -2279 1879 -1 -1880 1880 6 -1900 1880 -1 -2280 1880 -1 -1881 1881 6 -1882 1881 -1 -1901 1881 -1 -2281 1881 -1 -1882 1882 6 -1883 1882 -1 -1902 1882 -1 -2282 1882 -1 -1883 1883 6 -1884 1883 -1 -1903 1883 -1 -2283 1883 -1 -1884 1884 6 -1885 1884 -1 -1904 1884 -1 -2284 1884 -1 -1885 1885 6 -1886 1885 -1 -1905 1885 -1 -2285 1885 -1 -1886 1886 6 -1887 1886 -1 -1906 1886 -1 -2286 1886 -1 -1887 1887 6 -1888 1887 -1 -1907 1887 -1 -2287 1887 -1 -1888 1888 6 -1889 1888 -1 -1908 1888 -1 -2288 1888 -1 -1889 1889 6 -1890 1889 -1 -1909 1889 -1 -2289 1889 -1 -1890 1890 6 -1891 1890 -1 -1910 1890 -1 -2290 1890 -1 -1891 1891 6 -1892 1891 -1 -1911 1891 -1 -2291 1891 -1 -1892 1892 6 -1893 1892 -1 -1912 1892 -1 -2292 1892 -1 -1893 1893 6 -1894 1893 -1 -1913 1893 -1 -2293 1893 -1 -1894 1894 6 -1895 1894 -1 -1914 1894 -1 -2294 1894 -1 -1895 1895 6 -1896 1895 -1 -1915 1895 -1 -2295 1895 -1 -1896 1896 6 -1897 1896 -1 -1916 1896 -1 -2296 1896 -1 -1897 1897 6 -1898 1897 -1 -1917 1897 -1 -2297 1897 -1 -1898 1898 6 -1899 1898 -1 -1918 1898 -1 -2298 1898 -1 -1899 1899 6 -1900 1899 -1 -1919 1899 -1 -2299 1899 -1 -1900 1900 6 -1920 1900 -1 -2300 1900 -1 -1901 1901 6 -1902 1901 -1 -1921 1901 -1 -2301 1901 -1 -1902 1902 6 -1903 1902 -1 -1922 1902 -1 -2302 1902 -1 -1903 1903 6 -1904 1903 -1 -1923 1903 -1 -2303 1903 -1 -1904 1904 6 -1905 1904 -1 -1924 1904 -1 -2304 1904 -1 -1905 1905 6 -1906 1905 -1 -1925 1905 -1 -2305 1905 -1 -1906 1906 6 -1907 1906 -1 -1926 1906 -1 -2306 1906 -1 -1907 1907 6 -1908 1907 -1 -1927 1907 -1 -2307 1907 -1 -1908 1908 6 -1909 1908 -1 -1928 1908 -1 -2308 1908 -1 -1909 1909 6 -1910 1909 -1 -1929 1909 -1 -2309 1909 -1 -1910 1910 6 -1911 1910 -1 -1930 1910 -1 -2310 1910 -1 -1911 1911 6 -1912 1911 -1 -1931 1911 -1 -2311 1911 -1 -1912 1912 6 -1913 1912 -1 -1932 1912 -1 -2312 1912 -1 -1913 1913 6 -1914 1913 -1 -1933 1913 -1 -2313 1913 -1 -1914 1914 6 -1915 1914 -1 -1934 1914 -1 -2314 1914 -1 -1915 1915 6 -1916 1915 -1 -1935 1915 -1 -2315 1915 -1 -1916 1916 6 -1917 1916 -1 -1936 1916 -1 -2316 1916 -1 -1917 1917 6 -1918 1917 -1 -1937 1917 -1 -2317 1917 -1 -1918 1918 6 -1919 1918 -1 -1938 1918 -1 -2318 1918 -1 -1919 1919 6 -1920 1919 -1 -1939 1919 -1 -2319 1919 -1 -1920 1920 6 -1940 1920 -1 -2320 1920 -1 -1921 1921 6 -1922 1921 -1 -1941 1921 -1 -2321 1921 -1 -1922 1922 6 -1923 1922 -1 -1942 1922 -1 -2322 1922 -1 -1923 1923 6 -1924 1923 -1 -1943 1923 -1 -2323 1923 -1 -1924 1924 6 -1925 1924 -1 -1944 1924 -1 -2324 1924 -1 -1925 1925 6 -1926 1925 -1 -1945 1925 -1 -2325 1925 -1 -1926 1926 6 -1927 1926 -1 -1946 1926 -1 -2326 1926 -1 -1927 1927 6 -1928 1927 -1 -1947 1927 -1 -2327 1927 -1 -1928 1928 6 -1929 1928 -1 -1948 1928 -1 -2328 1928 -1 -1929 1929 6 -1930 1929 -1 -1949 1929 -1 -2329 1929 -1 -1930 1930 6 -1931 1930 -1 -1950 1930 -1 -2330 1930 -1 -1931 1931 6 -1932 1931 -1 -1951 1931 -1 -2331 1931 -1 -1932 1932 6 -1933 1932 -1 -1952 1932 -1 -2332 1932 -1 -1933 1933 6 -1934 1933 -1 -1953 1933 -1 -2333 1933 -1 -1934 1934 6 -1935 1934 -1 -1954 1934 -1 -2334 1934 -1 -1935 1935 6 -1936 1935 -1 -1955 1935 -1 -2335 1935 -1 -1936 1936 6 -1937 1936 -1 -1956 1936 -1 -2336 1936 -1 -1937 1937 6 -1938 1937 -1 -1957 1937 -1 -2337 1937 -1 -1938 1938 6 -1939 1938 -1 -1958 1938 -1 -2338 1938 -1 -1939 1939 6 -1940 1939 -1 -1959 1939 -1 -2339 1939 -1 -1940 1940 6 -1960 1940 -1 -2340 1940 -1 -1941 1941 6 -1942 1941 -1 -1961 1941 -1 -2341 1941 -1 -1942 1942 6 -1943 1942 -1 -1962 1942 -1 -2342 1942 -1 -1943 1943 6 -1944 1943 -1 -1963 1943 -1 -2343 1943 -1 -1944 1944 6 -1945 1944 -1 -1964 1944 -1 -2344 1944 -1 -1945 1945 6 -1946 1945 -1 -1965 1945 -1 -2345 1945 -1 -1946 1946 6 -1947 1946 -1 -1966 1946 -1 -2346 1946 -1 -1947 1947 6 -1948 1947 -1 -1967 1947 -1 -2347 1947 -1 -1948 1948 6 -1949 1948 -1 -1968 1948 -1 -2348 1948 -1 -1949 1949 6 -1950 1949 -1 -1969 1949 -1 -2349 1949 -1 -1950 1950 6 -1951 1950 -1 -1970 1950 -1 -2350 1950 -1 -1951 1951 6 -1952 1951 -1 -1971 1951 -1 -2351 1951 -1 -1952 1952 6 -1953 1952 -1 -1972 1952 -1 -2352 1952 -1 -1953 1953 6 -1954 1953 -1 -1973 1953 -1 -2353 1953 -1 -1954 1954 6 -1955 1954 -1 -1974 1954 -1 -2354 1954 -1 -1955 1955 6 -1956 1955 -1 -1975 1955 -1 -2355 1955 -1 -1956 1956 6 -1957 1956 -1 -1976 1956 -1 -2356 1956 -1 -1957 1957 6 -1958 1957 -1 -1977 1957 -1 -2357 1957 -1 -1958 1958 6 -1959 1958 -1 -1978 1958 -1 -2358 1958 -1 -1959 1959 6 -1960 1959 -1 -1979 1959 -1 -2359 1959 -1 -1960 1960 6 -1980 1960 -1 -2360 1960 -1 -1961 1961 6 -1962 1961 -1 -1981 1961 -1 -2361 1961 -1 -1962 1962 6 -1963 1962 -1 -1982 1962 -1 -2362 1962 -1 -1963 1963 6 -1964 1963 -1 -1983 1963 -1 -2363 1963 -1 -1964 1964 6 -1965 1964 -1 -1984 1964 -1 -2364 1964 -1 -1965 1965 6 -1966 1965 -1 -1985 1965 -1 -2365 1965 -1 -1966 1966 6 -1967 1966 -1 -1986 1966 -1 -2366 1966 -1 -1967 1967 6 -1968 1967 -1 -1987 1967 -1 -2367 1967 -1 -1968 1968 6 -1969 1968 -1 -1988 1968 -1 -2368 1968 -1 -1969 1969 6 -1970 1969 -1 -1989 1969 -1 -2369 1969 -1 -1970 1970 6 -1971 1970 -1 -1990 1970 -1 -2370 1970 -1 -1971 1971 6 -1972 1971 -1 -1991 1971 -1 -2371 1971 -1 -1972 1972 6 -1973 1972 -1 -1992 1972 -1 -2372 1972 -1 -1973 1973 6 -1974 1973 -1 -1993 1973 -1 -2373 1973 -1 -1974 1974 6 -1975 1974 -1 -1994 1974 -1 -2374 1974 -1 -1975 1975 6 -1976 1975 -1 -1995 1975 -1 -2375 1975 -1 -1976 1976 6 -1977 1976 -1 -1996 1976 -1 -2376 1976 -1 -1977 1977 6 -1978 1977 -1 -1997 1977 -1 -2377 1977 -1 -1978 1978 6 -1979 1978 -1 -1998 1978 -1 -2378 1978 -1 -1979 1979 6 -1980 1979 -1 -1999 1979 -1 -2379 1979 -1 -1980 1980 6 -2000 1980 -1 -2380 1980 -1 -1981 1981 6 -1982 1981 -1 -2381 1981 -1 -1982 1982 6 -1983 1982 -1 -2382 1982 -1 -1983 1983 6 -1984 1983 -1 -2383 1983 -1 -1984 1984 6 -1985 1984 -1 -2384 1984 -1 -1985 1985 6 -1986 1985 -1 -2385 1985 -1 -1986 1986 6 -1987 1986 -1 -2386 1986 -1 -1987 1987 6 -1988 1987 -1 -2387 1987 -1 -1988 1988 6 -1989 1988 -1 -2388 1988 -1 -1989 1989 6 -1990 1989 -1 -2389 1989 -1 -1990 1990 6 -1991 1990 -1 -2390 1990 -1 -1991 1991 6 -1992 1991 -1 -2391 1991 -1 -1992 1992 6 -1993 1992 -1 -2392 1992 -1 -1993 1993 6 -1994 1993 -1 -2393 1993 -1 -1994 1994 6 -1995 1994 -1 -2394 1994 -1 -1995 1995 6 -1996 1995 -1 -2395 1995 -1 -1996 1996 6 -1997 1996 -1 -2396 1996 -1 -1997 1997 6 -1998 1997 -1 -2397 1997 -1 -1998 1998 6 -1999 1998 -1 -2398 1998 -1 -1999 1999 6 -2000 1999 -1 -2399 1999 -1 -2000 2000 6 -2400 2000 -1 -2001 2001 6 -2002 2001 -1 -2021 2001 -1 -2401 2001 -1 -2002 2002 6 -2003 2002 -1 -2022 2002 -1 -2402 2002 -1 -2003 2003 6 -2004 2003 -1 -2023 2003 -1 -2403 2003 -1 -2004 2004 6 -2005 2004 -1 -2024 2004 -1 -2404 2004 -1 -2005 2005 6 -2006 2005 -1 -2025 2005 -1 -2405 2005 -1 -2006 2006 6 -2007 2006 -1 -2026 2006 -1 -2406 2006 -1 -2007 2007 6 -2008 2007 -1 -2027 2007 -1 -2407 2007 -1 -2008 2008 6 -2009 2008 -1 -2028 2008 -1 -2408 2008 -1 -2009 2009 6 -2010 2009 -1 -2029 2009 -1 -2409 2009 -1 -2010 2010 6 -2011 2010 -1 -2030 2010 -1 -2410 2010 -1 -2011 2011 6 -2012 2011 -1 -2031 2011 -1 -2411 2011 -1 -2012 2012 6 -2013 2012 -1 -2032 2012 -1 -2412 2012 -1 -2013 2013 6 -2014 2013 -1 -2033 2013 -1 -2413 2013 -1 -2014 2014 6 -2015 2014 -1 -2034 2014 -1 -2414 2014 -1 -2015 2015 6 -2016 2015 -1 -2035 2015 -1 -2415 2015 -1 -2016 2016 6 -2017 2016 -1 -2036 2016 -1 -2416 2016 -1 -2017 2017 6 -2018 2017 -1 -2037 2017 -1 -2417 2017 -1 -2018 2018 6 -2019 2018 -1 -2038 2018 -1 -2418 2018 -1 -2019 2019 6 -2020 2019 -1 -2039 2019 -1 -2419 2019 -1 -2020 2020 6 -2040 2020 -1 -2420 2020 -1 -2021 2021 6 -2022 2021 -1 -2041 2021 -1 -2421 2021 -1 -2022 2022 6 -2023 2022 -1 -2042 2022 -1 -2422 2022 -1 -2023 2023 6 -2024 2023 -1 -2043 2023 -1 -2423 2023 -1 -2024 2024 6 -2025 2024 -1 -2044 2024 -1 -2424 2024 -1 -2025 2025 6 -2026 2025 -1 -2045 2025 -1 -2425 2025 -1 -2026 2026 6 -2027 2026 -1 -2046 2026 -1 -2426 2026 -1 -2027 2027 6 -2028 2027 -1 -2047 2027 -1 -2427 2027 -1 -2028 2028 6 -2029 2028 -1 -2048 2028 -1 -2428 2028 -1 -2029 2029 6 -2030 2029 -1 -2049 2029 -1 -2429 2029 -1 -2030 2030 6 -2031 2030 -1 -2050 2030 -1 -2430 2030 -1 -2031 2031 6 -2032 2031 -1 -2051 2031 -1 -2431 2031 -1 -2032 2032 6 -2033 2032 -1 -2052 2032 -1 -2432 2032 -1 -2033 2033 6 -2034 2033 -1 -2053 2033 -1 -2433 2033 -1 -2034 2034 6 -2035 2034 -1 -2054 2034 -1 -2434 2034 -1 -2035 2035 6 -2036 2035 -1 -2055 2035 -1 -2435 2035 -1 -2036 2036 6 -2037 2036 -1 -2056 2036 -1 -2436 2036 -1 -2037 2037 6 -2038 2037 -1 -2057 2037 -1 -2437 2037 -1 -2038 2038 6 -2039 2038 -1 -2058 2038 -1 -2438 2038 -1 -2039 2039 6 -2040 2039 -1 -2059 2039 -1 -2439 2039 -1 -2040 2040 6 -2060 2040 -1 -2440 2040 -1 -2041 2041 6 -2042 2041 -1 -2061 2041 -1 -2441 2041 -1 -2042 2042 6 -2043 2042 -1 -2062 2042 -1 -2442 2042 -1 -2043 2043 6 -2044 2043 -1 -2063 2043 -1 -2443 2043 -1 -2044 2044 6 -2045 2044 -1 -2064 2044 -1 -2444 2044 -1 -2045 2045 6 -2046 2045 -1 -2065 2045 -1 -2445 2045 -1 -2046 2046 6 -2047 2046 -1 -2066 2046 -1 -2446 2046 -1 -2047 2047 6 -2048 2047 -1 -2067 2047 -1 -2447 2047 -1 -2048 2048 6 -2049 2048 -1 -2068 2048 -1 -2448 2048 -1 -2049 2049 6 -2050 2049 -1 -2069 2049 -1 -2449 2049 -1 -2050 2050 6 -2051 2050 -1 -2070 2050 -1 -2450 2050 -1 -2051 2051 6 -2052 2051 -1 -2071 2051 -1 -2451 2051 -1 -2052 2052 6 -2053 2052 -1 -2072 2052 -1 -2452 2052 -1 -2053 2053 6 -2054 2053 -1 -2073 2053 -1 -2453 2053 -1 -2054 2054 6 -2055 2054 -1 -2074 2054 -1 -2454 2054 -1 -2055 2055 6 -2056 2055 -1 -2075 2055 -1 -2455 2055 -1 -2056 2056 6 -2057 2056 -1 -2076 2056 -1 -2456 2056 -1 -2057 2057 6 -2058 2057 -1 -2077 2057 -1 -2457 2057 -1 -2058 2058 6 -2059 2058 -1 -2078 2058 -1 -2458 2058 -1 -2059 2059 6 -2060 2059 -1 -2079 2059 -1 -2459 2059 -1 -2060 2060 6 -2080 2060 -1 -2460 2060 -1 -2061 2061 6 -2062 2061 -1 -2081 2061 -1 -2461 2061 -1 -2062 2062 6 -2063 2062 -1 -2082 2062 -1 -2462 2062 -1 -2063 2063 6 -2064 2063 -1 -2083 2063 -1 -2463 2063 -1 -2064 2064 6 -2065 2064 -1 -2084 2064 -1 -2464 2064 -1 -2065 2065 6 -2066 2065 -1 -2085 2065 -1 -2465 2065 -1 -2066 2066 6 -2067 2066 -1 -2086 2066 -1 -2466 2066 -1 -2067 2067 6 -2068 2067 -1 -2087 2067 -1 -2467 2067 -1 -2068 2068 6 -2069 2068 -1 -2088 2068 -1 -2468 2068 -1 -2069 2069 6 -2070 2069 -1 -2089 2069 -1 -2469 2069 -1 -2070 2070 6 -2071 2070 -1 -2090 2070 -1 -2470 2070 -1 -2071 2071 6 -2072 2071 -1 -2091 2071 -1 -2471 2071 -1 -2072 2072 6 -2073 2072 -1 -2092 2072 -1 -2472 2072 -1 -2073 2073 6 -2074 2073 -1 -2093 2073 -1 -2473 2073 -1 -2074 2074 6 -2075 2074 -1 -2094 2074 -1 -2474 2074 -1 -2075 2075 6 -2076 2075 -1 -2095 2075 -1 -2475 2075 -1 -2076 2076 6 -2077 2076 -1 -2096 2076 -1 -2476 2076 -1 -2077 2077 6 -2078 2077 -1 -2097 2077 -1 -2477 2077 -1 -2078 2078 6 -2079 2078 -1 -2098 2078 -1 -2478 2078 -1 -2079 2079 6 -2080 2079 -1 -2099 2079 -1 -2479 2079 -1 -2080 2080 6 -2100 2080 -1 -2480 2080 -1 -2081 2081 6 -2082 2081 -1 -2101 2081 -1 -2481 2081 -1 -2082 2082 6 -2083 2082 -1 -2102 2082 -1 -2482 2082 -1 -2083 2083 6 -2084 2083 -1 -2103 2083 -1 -2483 2083 -1 -2084 2084 6 -2085 2084 -1 -2104 2084 -1 -2484 2084 -1 -2085 2085 6 -2086 2085 -1 -2105 2085 -1 -2485 2085 -1 -2086 2086 6 -2087 2086 -1 -2106 2086 -1 -2486 2086 -1 -2087 2087 6 -2088 2087 -1 -2107 2087 -1 -2487 2087 -1 -2088 2088 6 -2089 2088 -1 -2108 2088 -1 -2488 2088 -1 -2089 2089 6 -2090 2089 -1 -2109 2089 -1 -2489 2089 -1 -2090 2090 6 -2091 2090 -1 -2110 2090 -1 -2490 2090 -1 -2091 2091 6 -2092 2091 -1 -2111 2091 -1 -2491 2091 -1 -2092 2092 6 -2093 2092 -1 -2112 2092 -1 -2492 2092 -1 -2093 2093 6 -2094 2093 -1 -2113 2093 -1 -2493 2093 -1 -2094 2094 6 -2095 2094 -1 -2114 2094 -1 -2494 2094 -1 -2095 2095 6 -2096 2095 -1 -2115 2095 -1 -2495 2095 -1 -2096 2096 6 -2097 2096 -1 -2116 2096 -1 -2496 2096 -1 -2097 2097 6 -2098 2097 -1 -2117 2097 -1 -2497 2097 -1 -2098 2098 6 -2099 2098 -1 -2118 2098 -1 -2498 2098 -1 -2099 2099 6 -2100 2099 -1 -2119 2099 -1 -2499 2099 -1 -2100 2100 6 -2120 2100 -1 -2500 2100 -1 -2101 2101 6 -2102 2101 -1 -2121 2101 -1 -2501 2101 -1 -2102 2102 6 -2103 2102 -1 -2122 2102 -1 -2502 2102 -1 -2103 2103 6 -2104 2103 -1 -2123 2103 -1 -2503 2103 -1 -2104 2104 6 -2105 2104 -1 -2124 2104 -1 -2504 2104 -1 -2105 2105 6 -2106 2105 -1 -2125 2105 -1 -2505 2105 -1 -2106 2106 6 -2107 2106 -1 -2126 2106 -1 -2506 2106 -1 -2107 2107 6 -2108 2107 -1 -2127 2107 -1 -2507 2107 -1 -2108 2108 6 -2109 2108 -1 -2128 2108 -1 -2508 2108 -1 -2109 2109 6 -2110 2109 -1 -2129 2109 -1 -2509 2109 -1 -2110 2110 6 -2111 2110 -1 -2130 2110 -1 -2510 2110 -1 -2111 2111 6 -2112 2111 -1 -2131 2111 -1 -2511 2111 -1 -2112 2112 6 -2113 2112 -1 -2132 2112 -1 -2512 2112 -1 -2113 2113 6 -2114 2113 -1 -2133 2113 -1 -2513 2113 -1 -2114 2114 6 -2115 2114 -1 -2134 2114 -1 -2514 2114 -1 -2115 2115 6 -2116 2115 -1 -2135 2115 -1 -2515 2115 -1 -2116 2116 6 -2117 2116 -1 -2136 2116 -1 -2516 2116 -1 -2117 2117 6 -2118 2117 -1 -2137 2117 -1 -2517 2117 -1 -2118 2118 6 -2119 2118 -1 -2138 2118 -1 -2518 2118 -1 -2119 2119 6 -2120 2119 -1 -2139 2119 -1 -2519 2119 -1 -2120 2120 6 -2140 2120 -1 -2520 2120 -1 -2121 2121 6 -2122 2121 -1 -2141 2121 -1 -2521 2121 -1 -2122 2122 6 -2123 2122 -1 -2142 2122 -1 -2522 2122 -1 -2123 2123 6 -2124 2123 -1 -2143 2123 -1 -2523 2123 -1 -2124 2124 6 -2125 2124 -1 -2144 2124 -1 -2524 2124 -1 -2125 2125 6 -2126 2125 -1 -2145 2125 -1 -2525 2125 -1 -2126 2126 6 -2127 2126 -1 -2146 2126 -1 -2526 2126 -1 -2127 2127 6 -2128 2127 -1 -2147 2127 -1 -2527 2127 -1 -2128 2128 6 -2129 2128 -1 -2148 2128 -1 -2528 2128 -1 -2129 2129 6 -2130 2129 -1 -2149 2129 -1 -2529 2129 -1 -2130 2130 6 -2131 2130 -1 -2150 2130 -1 -2530 2130 -1 -2131 2131 6 -2132 2131 -1 -2151 2131 -1 -2531 2131 -1 -2132 2132 6 -2133 2132 -1 -2152 2132 -1 -2532 2132 -1 -2133 2133 6 -2134 2133 -1 -2153 2133 -1 -2533 2133 -1 -2134 2134 6 -2135 2134 -1 -2154 2134 -1 -2534 2134 -1 -2135 2135 6 -2136 2135 -1 -2155 2135 -1 -2535 2135 -1 -2136 2136 6 -2137 2136 -1 -2156 2136 -1 -2536 2136 -1 -2137 2137 6 -2138 2137 -1 -2157 2137 -1 -2537 2137 -1 -2138 2138 6 -2139 2138 -1 -2158 2138 -1 -2538 2138 -1 -2139 2139 6 -2140 2139 -1 -2159 2139 -1 -2539 2139 -1 -2140 2140 6 -2160 2140 -1 -2540 2140 -1 -2141 2141 6 -2142 2141 -1 -2161 2141 -1 -2541 2141 -1 -2142 2142 6 -2143 2142 -1 -2162 2142 -1 -2542 2142 -1 -2143 2143 6 -2144 2143 -1 -2163 2143 -1 -2543 2143 -1 -2144 2144 6 -2145 2144 -1 -2164 2144 -1 -2544 2144 -1 -2145 2145 6 -2146 2145 -1 -2165 2145 -1 -2545 2145 -1 -2146 2146 6 -2147 2146 -1 -2166 2146 -1 -2546 2146 -1 -2147 2147 6 -2148 2147 -1 -2167 2147 -1 -2547 2147 -1 -2148 2148 6 -2149 2148 -1 -2168 2148 -1 -2548 2148 -1 -2149 2149 6 -2150 2149 -1 -2169 2149 -1 -2549 2149 -1 -2150 2150 6 -2151 2150 -1 -2170 2150 -1 -2550 2150 -1 -2151 2151 6 -2152 2151 -1 -2171 2151 -1 -2551 2151 -1 -2152 2152 6 -2153 2152 -1 -2172 2152 -1 -2552 2152 -1 -2153 2153 6 -2154 2153 -1 -2173 2153 -1 -2553 2153 -1 -2154 2154 6 -2155 2154 -1 -2174 2154 -1 -2554 2154 -1 -2155 2155 6 -2156 2155 -1 -2175 2155 -1 -2555 2155 -1 -2156 2156 6 -2157 2156 -1 -2176 2156 -1 -2556 2156 -1 -2157 2157 6 -2158 2157 -1 -2177 2157 -1 -2557 2157 -1 -2158 2158 6 -2159 2158 -1 -2178 2158 -1 -2558 2158 -1 -2159 2159 6 -2160 2159 -1 -2179 2159 -1 -2559 2159 -1 -2160 2160 6 -2180 2160 -1 -2560 2160 -1 -2161 2161 6 -2162 2161 -1 -2181 2161 -1 -2561 2161 -1 -2162 2162 6 -2163 2162 -1 -2182 2162 -1 -2562 2162 -1 -2163 2163 6 -2164 2163 -1 -2183 2163 -1 -2563 2163 -1 -2164 2164 6 -2165 2164 -1 -2184 2164 -1 -2564 2164 -1 -2165 2165 6 -2166 2165 -1 -2185 2165 -1 -2565 2165 -1 -2166 2166 6 -2167 2166 -1 -2186 2166 -1 -2566 2166 -1 -2167 2167 6 -2168 2167 -1 -2187 2167 -1 -2567 2167 -1 -2168 2168 6 -2169 2168 -1 -2188 2168 -1 -2568 2168 -1 -2169 2169 6 -2170 2169 -1 -2189 2169 -1 -2569 2169 -1 -2170 2170 6 -2171 2170 -1 -2190 2170 -1 -2570 2170 -1 -2171 2171 6 -2172 2171 -1 -2191 2171 -1 -2571 2171 -1 -2172 2172 6 -2173 2172 -1 -2192 2172 -1 -2572 2172 -1 -2173 2173 6 -2174 2173 -1 -2193 2173 -1 -2573 2173 -1 -2174 2174 6 -2175 2174 -1 -2194 2174 -1 -2574 2174 -1 -2175 2175 6 -2176 2175 -1 -2195 2175 -1 -2575 2175 -1 -2176 2176 6 -2177 2176 -1 -2196 2176 -1 -2576 2176 -1 -2177 2177 6 -2178 2177 -1 -2197 2177 -1 -2577 2177 -1 -2178 2178 6 -2179 2178 -1 -2198 2178 -1 -2578 2178 -1 -2179 2179 6 -2180 2179 -1 -2199 2179 -1 -2579 2179 -1 -2180 2180 6 -2200 2180 -1 -2580 2180 -1 -2181 2181 6 -2182 2181 -1 -2201 2181 -1 -2581 2181 -1 -2182 2182 6 -2183 2182 -1 -2202 2182 -1 -2582 2182 -1 -2183 2183 6 -2184 2183 -1 -2203 2183 -1 -2583 2183 -1 -2184 2184 6 -2185 2184 -1 -2204 2184 -1 -2584 2184 -1 -2185 2185 6 -2186 2185 -1 -2205 2185 -1 -2585 2185 -1 -2186 2186 6 -2187 2186 -1 -2206 2186 -1 -2586 2186 -1 -2187 2187 6 -2188 2187 -1 -2207 2187 -1 -2587 2187 -1 -2188 2188 6 -2189 2188 -1 -2208 2188 -1 -2588 2188 -1 -2189 2189 6 -2190 2189 -1 -2209 2189 -1 -2589 2189 -1 -2190 2190 6 -2191 2190 -1 -2210 2190 -1 -2590 2190 -1 -2191 2191 6 -2192 2191 -1 -2211 2191 -1 -2591 2191 -1 -2192 2192 6 -2193 2192 -1 -2212 2192 -1 -2592 2192 -1 -2193 2193 6 -2194 2193 -1 -2213 2193 -1 -2593 2193 -1 -2194 2194 6 -2195 2194 -1 -2214 2194 -1 -2594 2194 -1 -2195 2195 6 -2196 2195 -1 -2215 2195 -1 -2595 2195 -1 -2196 2196 6 -2197 2196 -1 -2216 2196 -1 -2596 2196 -1 -2197 2197 6 -2198 2197 -1 -2217 2197 -1 -2597 2197 -1 -2198 2198 6 -2199 2198 -1 -2218 2198 -1 -2598 2198 -1 -2199 2199 6 -2200 2199 -1 -2219 2199 -1 -2599 2199 -1 -2200 2200 6 -2220 2200 -1 -2600 2200 -1 -2201 2201 6 -2202 2201 -1 -2221 2201 -1 -2601 2201 -1 -2202 2202 6 -2203 2202 -1 -2222 2202 -1 -2602 2202 -1 -2203 2203 6 -2204 2203 -1 -2223 2203 -1 -2603 2203 -1 -2204 2204 6 -2205 2204 -1 -2224 2204 -1 -2604 2204 -1 -2205 2205 6 -2206 2205 -1 -2225 2205 -1 -2605 2205 -1 -2206 2206 6 -2207 2206 -1 -2226 2206 -1 -2606 2206 -1 -2207 2207 6 -2208 2207 -1 -2227 2207 -1 -2607 2207 -1 -2208 2208 6 -2209 2208 -1 -2228 2208 -1 -2608 2208 -1 -2209 2209 6 -2210 2209 -1 -2229 2209 -1 -2609 2209 -1 -2210 2210 6 -2211 2210 -1 -2230 2210 -1 -2610 2210 -1 -2211 2211 6 -2212 2211 -1 -2231 2211 -1 -2611 2211 -1 -2212 2212 6 -2213 2212 -1 -2232 2212 -1 -2612 2212 -1 -2213 2213 6 -2214 2213 -1 -2233 2213 -1 -2613 2213 -1 -2214 2214 6 -2215 2214 -1 -2234 2214 -1 -2614 2214 -1 -2215 2215 6 -2216 2215 -1 -2235 2215 -1 -2615 2215 -1 -2216 2216 6 -2217 2216 -1 -2236 2216 -1 -2616 2216 -1 -2217 2217 6 -2218 2217 -1 -2237 2217 -1 -2617 2217 -1 -2218 2218 6 -2219 2218 -1 -2238 2218 -1 -2618 2218 -1 -2219 2219 6 -2220 2219 -1 -2239 2219 -1 -2619 2219 -1 -2220 2220 6 -2240 2220 -1 -2620 2220 -1 -2221 2221 6 -2222 2221 -1 -2241 2221 -1 -2621 2221 -1 -2222 2222 6 -2223 2222 -1 -2242 2222 -1 -2622 2222 -1 -2223 2223 6 -2224 2223 -1 -2243 2223 -1 -2623 2223 -1 -2224 2224 6 -2225 2224 -1 -2244 2224 -1 -2624 2224 -1 -2225 2225 6 -2226 2225 -1 -2245 2225 -1 -2625 2225 -1 -2226 2226 6 -2227 2226 -1 -2246 2226 -1 -2626 2226 -1 -2227 2227 6 -2228 2227 -1 -2247 2227 -1 -2627 2227 -1 -2228 2228 6 -2229 2228 -1 -2248 2228 -1 -2628 2228 -1 -2229 2229 6 -2230 2229 -1 -2249 2229 -1 -2629 2229 -1 -2230 2230 6 -2231 2230 -1 -2250 2230 -1 -2630 2230 -1 -2231 2231 6 -2232 2231 -1 -2251 2231 -1 -2631 2231 -1 -2232 2232 6 -2233 2232 -1 -2252 2232 -1 -2632 2232 -1 -2233 2233 6 -2234 2233 -1 -2253 2233 -1 -2633 2233 -1 -2234 2234 6 -2235 2234 -1 -2254 2234 -1 -2634 2234 -1 -2235 2235 6 -2236 2235 -1 -2255 2235 -1 -2635 2235 -1 -2236 2236 6 -2237 2236 -1 -2256 2236 -1 -2636 2236 -1 -2237 2237 6 -2238 2237 -1 -2257 2237 -1 -2637 2237 -1 -2238 2238 6 -2239 2238 -1 -2258 2238 -1 -2638 2238 -1 -2239 2239 6 -2240 2239 -1 -2259 2239 -1 -2639 2239 -1 -2240 2240 6 -2260 2240 -1 -2640 2240 -1 -2241 2241 6 -2242 2241 -1 -2261 2241 -1 -2641 2241 -1 -2242 2242 6 -2243 2242 -1 -2262 2242 -1 -2642 2242 -1 -2243 2243 6 -2244 2243 -1 -2263 2243 -1 -2643 2243 -1 -2244 2244 6 -2245 2244 -1 -2264 2244 -1 -2644 2244 -1 -2245 2245 6 -2246 2245 -1 -2265 2245 -1 -2645 2245 -1 -2246 2246 6 -2247 2246 -1 -2266 2246 -1 -2646 2246 -1 -2247 2247 6 -2248 2247 -1 -2267 2247 -1 -2647 2247 -1 -2248 2248 6 -2249 2248 -1 -2268 2248 -1 -2648 2248 -1 -2249 2249 6 -2250 2249 -1 -2269 2249 -1 -2649 2249 -1 -2250 2250 6 -2251 2250 -1 -2270 2250 -1 -2650 2250 -1 -2251 2251 6 -2252 2251 -1 -2271 2251 -1 -2651 2251 -1 -2252 2252 6 -2253 2252 -1 -2272 2252 -1 -2652 2252 -1 -2253 2253 6 -2254 2253 -1 -2273 2253 -1 -2653 2253 -1 -2254 2254 6 -2255 2254 -1 -2274 2254 -1 -2654 2254 -1 -2255 2255 6 -2256 2255 -1 -2275 2255 -1 -2655 2255 -1 -2256 2256 6 -2257 2256 -1 -2276 2256 -1 -2656 2256 -1 -2257 2257 6 -2258 2257 -1 -2277 2257 -1 -2657 2257 -1 -2258 2258 6 -2259 2258 -1 -2278 2258 -1 -2658 2258 -1 -2259 2259 6 -2260 2259 -1 -2279 2259 -1 -2659 2259 -1 -2260 2260 6 -2280 2260 -1 -2660 2260 -1 -2261 2261 6 -2262 2261 -1 -2281 2261 -1 -2661 2261 -1 -2262 2262 6 -2263 2262 -1 -2282 2262 -1 -2662 2262 -1 -2263 2263 6 -2264 2263 -1 -2283 2263 -1 -2663 2263 -1 -2264 2264 6 -2265 2264 -1 -2284 2264 -1 -2664 2264 -1 -2265 2265 6 -2266 2265 -1 -2285 2265 -1 -2665 2265 -1 -2266 2266 6 -2267 2266 -1 -2286 2266 -1 -2666 2266 -1 -2267 2267 6 -2268 2267 -1 -2287 2267 -1 -2667 2267 -1 -2268 2268 6 -2269 2268 -1 -2288 2268 -1 -2668 2268 -1 -2269 2269 6 -2270 2269 -1 -2289 2269 -1 -2669 2269 -1 -2270 2270 6 -2271 2270 -1 -2290 2270 -1 -2670 2270 -1 -2271 2271 6 -2272 2271 -1 -2291 2271 -1 -2671 2271 -1 -2272 2272 6 -2273 2272 -1 -2292 2272 -1 -2672 2272 -1 -2273 2273 6 -2274 2273 -1 -2293 2273 -1 -2673 2273 -1 -2274 2274 6 -2275 2274 -1 -2294 2274 -1 -2674 2274 -1 -2275 2275 6 -2276 2275 -1 -2295 2275 -1 -2675 2275 -1 -2276 2276 6 -2277 2276 -1 -2296 2276 -1 -2676 2276 -1 -2277 2277 6 -2278 2277 -1 -2297 2277 -1 -2677 2277 -1 -2278 2278 6 -2279 2278 -1 -2298 2278 -1 -2678 2278 -1 -2279 2279 6 -2280 2279 -1 -2299 2279 -1 -2679 2279 -1 -2280 2280 6 -2300 2280 -1 -2680 2280 -1 -2281 2281 6 -2282 2281 -1 -2301 2281 -1 -2681 2281 -1 -2282 2282 6 -2283 2282 -1 -2302 2282 -1 -2682 2282 -1 -2283 2283 6 -2284 2283 -1 -2303 2283 -1 -2683 2283 -1 -2284 2284 6 -2285 2284 -1 -2304 2284 -1 -2684 2284 -1 -2285 2285 6 -2286 2285 -1 -2305 2285 -1 -2685 2285 -1 -2286 2286 6 -2287 2286 -1 -2306 2286 -1 -2686 2286 -1 -2287 2287 6 -2288 2287 -1 -2307 2287 -1 -2687 2287 -1 -2288 2288 6 -2289 2288 -1 -2308 2288 -1 -2688 2288 -1 -2289 2289 6 -2290 2289 -1 -2309 2289 -1 -2689 2289 -1 -2290 2290 6 -2291 2290 -1 -2310 2290 -1 -2690 2290 -1 -2291 2291 6 -2292 2291 -1 -2311 2291 -1 -2691 2291 -1 -2292 2292 6 -2293 2292 -1 -2312 2292 -1 -2692 2292 -1 -2293 2293 6 -2294 2293 -1 -2313 2293 -1 -2693 2293 -1 -2294 2294 6 -2295 2294 -1 -2314 2294 -1 -2694 2294 -1 -2295 2295 6 -2296 2295 -1 -2315 2295 -1 -2695 2295 -1 -2296 2296 6 -2297 2296 -1 -2316 2296 -1 -2696 2296 -1 -2297 2297 6 -2298 2297 -1 -2317 2297 -1 -2697 2297 -1 -2298 2298 6 -2299 2298 -1 -2318 2298 -1 -2698 2298 -1 -2299 2299 6 -2300 2299 -1 -2319 2299 -1 -2699 2299 -1 -2300 2300 6 -2320 2300 -1 -2700 2300 -1 -2301 2301 6 -2302 2301 -1 -2321 2301 -1 -2701 2301 -1 -2302 2302 6 -2303 2302 -1 -2322 2302 -1 -2702 2302 -1 -2303 2303 6 -2304 2303 -1 -2323 2303 -1 -2703 2303 -1 -2304 2304 6 -2305 2304 -1 -2324 2304 -1 -2704 2304 -1 -2305 2305 6 -2306 2305 -1 -2325 2305 -1 -2705 2305 -1 -2306 2306 6 -2307 2306 -1 -2326 2306 -1 -2706 2306 -1 -2307 2307 6 -2308 2307 -1 -2327 2307 -1 -2707 2307 -1 -2308 2308 6 -2309 2308 -1 -2328 2308 -1 -2708 2308 -1 -2309 2309 6 -2310 2309 -1 -2329 2309 -1 -2709 2309 -1 -2310 2310 6 -2311 2310 -1 -2330 2310 -1 -2710 2310 -1 -2311 2311 6 -2312 2311 -1 -2331 2311 -1 -2711 2311 -1 -2312 2312 6 -2313 2312 -1 -2332 2312 -1 -2712 2312 -1 -2313 2313 6 -2314 2313 -1 -2333 2313 -1 -2713 2313 -1 -2314 2314 6 -2315 2314 -1 -2334 2314 -1 -2714 2314 -1 -2315 2315 6 -2316 2315 -1 -2335 2315 -1 -2715 2315 -1 -2316 2316 6 -2317 2316 -1 -2336 2316 -1 -2716 2316 -1 -2317 2317 6 -2318 2317 -1 -2337 2317 -1 -2717 2317 -1 -2318 2318 6 -2319 2318 -1 -2338 2318 -1 -2718 2318 -1 -2319 2319 6 -2320 2319 -1 -2339 2319 -1 -2719 2319 -1 -2320 2320 6 -2340 2320 -1 -2720 2320 -1 -2321 2321 6 -2322 2321 -1 -2341 2321 -1 -2721 2321 -1 -2322 2322 6 -2323 2322 -1 -2342 2322 -1 -2722 2322 -1 -2323 2323 6 -2324 2323 -1 -2343 2323 -1 -2723 2323 -1 -2324 2324 6 -2325 2324 -1 -2344 2324 -1 -2724 2324 -1 -2325 2325 6 -2326 2325 -1 -2345 2325 -1 -2725 2325 -1 -2326 2326 6 -2327 2326 -1 -2346 2326 -1 -2726 2326 -1 -2327 2327 6 -2328 2327 -1 -2347 2327 -1 -2727 2327 -1 -2328 2328 6 -2329 2328 -1 -2348 2328 -1 -2728 2328 -1 -2329 2329 6 -2330 2329 -1 -2349 2329 -1 -2729 2329 -1 -2330 2330 6 -2331 2330 -1 -2350 2330 -1 -2730 2330 -1 -2331 2331 6 -2332 2331 -1 -2351 2331 -1 -2731 2331 -1 -2332 2332 6 -2333 2332 -1 -2352 2332 -1 -2732 2332 -1 -2333 2333 6 -2334 2333 -1 -2353 2333 -1 -2733 2333 -1 -2334 2334 6 -2335 2334 -1 -2354 2334 -1 -2734 2334 -1 -2335 2335 6 -2336 2335 -1 -2355 2335 -1 -2735 2335 -1 -2336 2336 6 -2337 2336 -1 -2356 2336 -1 -2736 2336 -1 -2337 2337 6 -2338 2337 -1 -2357 2337 -1 -2737 2337 -1 -2338 2338 6 -2339 2338 -1 -2358 2338 -1 -2738 2338 -1 -2339 2339 6 -2340 2339 -1 -2359 2339 -1 -2739 2339 -1 -2340 2340 6 -2360 2340 -1 -2740 2340 -1 -2341 2341 6 -2342 2341 -1 -2361 2341 -1 -2741 2341 -1 -2342 2342 6 -2343 2342 -1 -2362 2342 -1 -2742 2342 -1 -2343 2343 6 -2344 2343 -1 -2363 2343 -1 -2743 2343 -1 -2344 2344 6 -2345 2344 -1 -2364 2344 -1 -2744 2344 -1 -2345 2345 6 -2346 2345 -1 -2365 2345 -1 -2745 2345 -1 -2346 2346 6 -2347 2346 -1 -2366 2346 -1 -2746 2346 -1 -2347 2347 6 -2348 2347 -1 -2367 2347 -1 -2747 2347 -1 -2348 2348 6 -2349 2348 -1 -2368 2348 -1 -2748 2348 -1 -2349 2349 6 -2350 2349 -1 -2369 2349 -1 -2749 2349 -1 -2350 2350 6 -2351 2350 -1 -2370 2350 -1 -2750 2350 -1 -2351 2351 6 -2352 2351 -1 -2371 2351 -1 -2751 2351 -1 -2352 2352 6 -2353 2352 -1 -2372 2352 -1 -2752 2352 -1 -2353 2353 6 -2354 2353 -1 -2373 2353 -1 -2753 2353 -1 -2354 2354 6 -2355 2354 -1 -2374 2354 -1 -2754 2354 -1 -2355 2355 6 -2356 2355 -1 -2375 2355 -1 -2755 2355 -1 -2356 2356 6 -2357 2356 -1 -2376 2356 -1 -2756 2356 -1 -2357 2357 6 -2358 2357 -1 -2377 2357 -1 -2757 2357 -1 -2358 2358 6 -2359 2358 -1 -2378 2358 -1 -2758 2358 -1 -2359 2359 6 -2360 2359 -1 -2379 2359 -1 -2759 2359 -1 -2360 2360 6 -2380 2360 -1 -2760 2360 -1 -2361 2361 6 -2362 2361 -1 -2381 2361 -1 -2761 2361 -1 -2362 2362 6 -2363 2362 -1 -2382 2362 -1 -2762 2362 -1 -2363 2363 6 -2364 2363 -1 -2383 2363 -1 -2763 2363 -1 -2364 2364 6 -2365 2364 -1 -2384 2364 -1 -2764 2364 -1 -2365 2365 6 -2366 2365 -1 -2385 2365 -1 -2765 2365 -1 -2366 2366 6 -2367 2366 -1 -2386 2366 -1 -2766 2366 -1 -2367 2367 6 -2368 2367 -1 -2387 2367 -1 -2767 2367 -1 -2368 2368 6 -2369 2368 -1 -2388 2368 -1 -2768 2368 -1 -2369 2369 6 -2370 2369 -1 -2389 2369 -1 -2769 2369 -1 -2370 2370 6 -2371 2370 -1 -2390 2370 -1 -2770 2370 -1 -2371 2371 6 -2372 2371 -1 -2391 2371 -1 -2771 2371 -1 -2372 2372 6 -2373 2372 -1 -2392 2372 -1 -2772 2372 -1 -2373 2373 6 -2374 2373 -1 -2393 2373 -1 -2773 2373 -1 -2374 2374 6 -2375 2374 -1 -2394 2374 -1 -2774 2374 -1 -2375 2375 6 -2376 2375 -1 -2395 2375 -1 -2775 2375 -1 -2376 2376 6 -2377 2376 -1 -2396 2376 -1 -2776 2376 -1 -2377 2377 6 -2378 2377 -1 -2397 2377 -1 -2777 2377 -1 -2378 2378 6 -2379 2378 -1 -2398 2378 -1 -2778 2378 -1 -2379 2379 6 -2380 2379 -1 -2399 2379 -1 -2779 2379 -1 -2380 2380 6 -2400 2380 -1 -2780 2380 -1 -2381 2381 6 -2382 2381 -1 -2781 2381 -1 -2382 2382 6 -2383 2382 -1 -2782 2382 -1 -2383 2383 6 -2384 2383 -1 -2783 2383 -1 -2384 2384 6 -2385 2384 -1 -2784 2384 -1 -2385 2385 6 -2386 2385 -1 -2785 2385 -1 -2386 2386 6 -2387 2386 -1 -2786 2386 -1 -2387 2387 6 -2388 2387 -1 -2787 2387 -1 -2388 2388 6 -2389 2388 -1 -2788 2388 -1 -2389 2389 6 -2390 2389 -1 -2789 2389 -1 -2390 2390 6 -2391 2390 -1 -2790 2390 -1 -2391 2391 6 -2392 2391 -1 -2791 2391 -1 -2392 2392 6 -2393 2392 -1 -2792 2392 -1 -2393 2393 6 -2394 2393 -1 -2793 2393 -1 -2394 2394 6 -2395 2394 -1 -2794 2394 -1 -2395 2395 6 -2396 2395 -1 -2795 2395 -1 -2396 2396 6 -2397 2396 -1 -2796 2396 -1 -2397 2397 6 -2398 2397 -1 -2797 2397 -1 -2398 2398 6 -2399 2398 -1 -2798 2398 -1 -2399 2399 6 -2400 2399 -1 -2799 2399 -1 -2400 2400 6 -2800 2400 -1 -2401 2401 6 -2402 2401 -1 -2421 2401 -1 -2801 2401 -1 -2402 2402 6 -2403 2402 -1 -2422 2402 -1 -2802 2402 -1 -2403 2403 6 -2404 2403 -1 -2423 2403 -1 -2803 2403 -1 -2404 2404 6 -2405 2404 -1 -2424 2404 -1 -2804 2404 -1 -2405 2405 6 -2406 2405 -1 -2425 2405 -1 -2805 2405 -1 -2406 2406 6 -2407 2406 -1 -2426 2406 -1 -2806 2406 -1 -2407 2407 6 -2408 2407 -1 -2427 2407 -1 -2807 2407 -1 -2408 2408 6 -2409 2408 -1 -2428 2408 -1 -2808 2408 -1 -2409 2409 6 -2410 2409 -1 -2429 2409 -1 -2809 2409 -1 -2410 2410 6 -2411 2410 -1 -2430 2410 -1 -2810 2410 -1 -2411 2411 6 -2412 2411 -1 -2431 2411 -1 -2811 2411 -1 -2412 2412 6 -2413 2412 -1 -2432 2412 -1 -2812 2412 -1 -2413 2413 6 -2414 2413 -1 -2433 2413 -1 -2813 2413 -1 -2414 2414 6 -2415 2414 -1 -2434 2414 -1 -2814 2414 -1 -2415 2415 6 -2416 2415 -1 -2435 2415 -1 -2815 2415 -1 -2416 2416 6 -2417 2416 -1 -2436 2416 -1 -2816 2416 -1 -2417 2417 6 -2418 2417 -1 -2437 2417 -1 -2817 2417 -1 -2418 2418 6 -2419 2418 -1 -2438 2418 -1 -2818 2418 -1 -2419 2419 6 -2420 2419 -1 -2439 2419 -1 -2819 2419 -1 -2420 2420 6 -2440 2420 -1 -2820 2420 -1 -2421 2421 6 -2422 2421 -1 -2441 2421 -1 -2821 2421 -1 -2422 2422 6 -2423 2422 -1 -2442 2422 -1 -2822 2422 -1 -2423 2423 6 -2424 2423 -1 -2443 2423 -1 -2823 2423 -1 -2424 2424 6 -2425 2424 -1 -2444 2424 -1 -2824 2424 -1 -2425 2425 6 -2426 2425 -1 -2445 2425 -1 -2825 2425 -1 -2426 2426 6 -2427 2426 -1 -2446 2426 -1 -2826 2426 -1 -2427 2427 6 -2428 2427 -1 -2447 2427 -1 -2827 2427 -1 -2428 2428 6 -2429 2428 -1 -2448 2428 -1 -2828 2428 -1 -2429 2429 6 -2430 2429 -1 -2449 2429 -1 -2829 2429 -1 -2430 2430 6 -2431 2430 -1 -2450 2430 -1 -2830 2430 -1 -2431 2431 6 -2432 2431 -1 -2451 2431 -1 -2831 2431 -1 -2432 2432 6 -2433 2432 -1 -2452 2432 -1 -2832 2432 -1 -2433 2433 6 -2434 2433 -1 -2453 2433 -1 -2833 2433 -1 -2434 2434 6 -2435 2434 -1 -2454 2434 -1 -2834 2434 -1 -2435 2435 6 -2436 2435 -1 -2455 2435 -1 -2835 2435 -1 -2436 2436 6 -2437 2436 -1 -2456 2436 -1 -2836 2436 -1 -2437 2437 6 -2438 2437 -1 -2457 2437 -1 -2837 2437 -1 -2438 2438 6 -2439 2438 -1 -2458 2438 -1 -2838 2438 -1 -2439 2439 6 -2440 2439 -1 -2459 2439 -1 -2839 2439 -1 -2440 2440 6 -2460 2440 -1 -2840 2440 -1 -2441 2441 6 -2442 2441 -1 -2461 2441 -1 -2841 2441 -1 -2442 2442 6 -2443 2442 -1 -2462 2442 -1 -2842 2442 -1 -2443 2443 6 -2444 2443 -1 -2463 2443 -1 -2843 2443 -1 -2444 2444 6 -2445 2444 -1 -2464 2444 -1 -2844 2444 -1 -2445 2445 6 -2446 2445 -1 -2465 2445 -1 -2845 2445 -1 -2446 2446 6 -2447 2446 -1 -2466 2446 -1 -2846 2446 -1 -2447 2447 6 -2448 2447 -1 -2467 2447 -1 -2847 2447 -1 -2448 2448 6 -2449 2448 -1 -2468 2448 -1 -2848 2448 -1 -2449 2449 6 -2450 2449 -1 -2469 2449 -1 -2849 2449 -1 -2450 2450 6 -2451 2450 -1 -2470 2450 -1 -2850 2450 -1 -2451 2451 6 -2452 2451 -1 -2471 2451 -1 -2851 2451 -1 -2452 2452 6 -2453 2452 -1 -2472 2452 -1 -2852 2452 -1 -2453 2453 6 -2454 2453 -1 -2473 2453 -1 -2853 2453 -1 -2454 2454 6 -2455 2454 -1 -2474 2454 -1 -2854 2454 -1 -2455 2455 6 -2456 2455 -1 -2475 2455 -1 -2855 2455 -1 -2456 2456 6 -2457 2456 -1 -2476 2456 -1 -2856 2456 -1 -2457 2457 6 -2458 2457 -1 -2477 2457 -1 -2857 2457 -1 -2458 2458 6 -2459 2458 -1 -2478 2458 -1 -2858 2458 -1 -2459 2459 6 -2460 2459 -1 -2479 2459 -1 -2859 2459 -1 -2460 2460 6 -2480 2460 -1 -2860 2460 -1 -2461 2461 6 -2462 2461 -1 -2481 2461 -1 -2861 2461 -1 -2462 2462 6 -2463 2462 -1 -2482 2462 -1 -2862 2462 -1 -2463 2463 6 -2464 2463 -1 -2483 2463 -1 -2863 2463 -1 -2464 2464 6 -2465 2464 -1 -2484 2464 -1 -2864 2464 -1 -2465 2465 6 -2466 2465 -1 -2485 2465 -1 -2865 2465 -1 -2466 2466 6 -2467 2466 -1 -2486 2466 -1 -2866 2466 -1 -2467 2467 6 -2468 2467 -1 -2487 2467 -1 -2867 2467 -1 -2468 2468 6 -2469 2468 -1 -2488 2468 -1 -2868 2468 -1 -2469 2469 6 -2470 2469 -1 -2489 2469 -1 -2869 2469 -1 -2470 2470 6 -2471 2470 -1 -2490 2470 -1 -2870 2470 -1 -2471 2471 6 -2472 2471 -1 -2491 2471 -1 -2871 2471 -1 -2472 2472 6 -2473 2472 -1 -2492 2472 -1 -2872 2472 -1 -2473 2473 6 -2474 2473 -1 -2493 2473 -1 -2873 2473 -1 -2474 2474 6 -2475 2474 -1 -2494 2474 -1 -2874 2474 -1 -2475 2475 6 -2476 2475 -1 -2495 2475 -1 -2875 2475 -1 -2476 2476 6 -2477 2476 -1 -2496 2476 -1 -2876 2476 -1 -2477 2477 6 -2478 2477 -1 -2497 2477 -1 -2877 2477 -1 -2478 2478 6 -2479 2478 -1 -2498 2478 -1 -2878 2478 -1 -2479 2479 6 -2480 2479 -1 -2499 2479 -1 -2879 2479 -1 -2480 2480 6 -2500 2480 -1 -2880 2480 -1 -2481 2481 6 -2482 2481 -1 -2501 2481 -1 -2881 2481 -1 -2482 2482 6 -2483 2482 -1 -2502 2482 -1 -2882 2482 -1 -2483 2483 6 -2484 2483 -1 -2503 2483 -1 -2883 2483 -1 -2484 2484 6 -2485 2484 -1 -2504 2484 -1 -2884 2484 -1 -2485 2485 6 -2486 2485 -1 -2505 2485 -1 -2885 2485 -1 -2486 2486 6 -2487 2486 -1 -2506 2486 -1 -2886 2486 -1 -2487 2487 6 -2488 2487 -1 -2507 2487 -1 -2887 2487 -1 -2488 2488 6 -2489 2488 -1 -2508 2488 -1 -2888 2488 -1 -2489 2489 6 -2490 2489 -1 -2509 2489 -1 -2889 2489 -1 -2490 2490 6 -2491 2490 -1 -2510 2490 -1 -2890 2490 -1 -2491 2491 6 -2492 2491 -1 -2511 2491 -1 -2891 2491 -1 -2492 2492 6 -2493 2492 -1 -2512 2492 -1 -2892 2492 -1 -2493 2493 6 -2494 2493 -1 -2513 2493 -1 -2893 2493 -1 -2494 2494 6 -2495 2494 -1 -2514 2494 -1 -2894 2494 -1 -2495 2495 6 -2496 2495 -1 -2515 2495 -1 -2895 2495 -1 -2496 2496 6 -2497 2496 -1 -2516 2496 -1 -2896 2496 -1 -2497 2497 6 -2498 2497 -1 -2517 2497 -1 -2897 2497 -1 -2498 2498 6 -2499 2498 -1 -2518 2498 -1 -2898 2498 -1 -2499 2499 6 -2500 2499 -1 -2519 2499 -1 -2899 2499 -1 -2500 2500 6 -2520 2500 -1 -2900 2500 -1 -2501 2501 6 -2502 2501 -1 -2521 2501 -1 -2901 2501 -1 -2502 2502 6 -2503 2502 -1 -2522 2502 -1 -2902 2502 -1 -2503 2503 6 -2504 2503 -1 -2523 2503 -1 -2903 2503 -1 -2504 2504 6 -2505 2504 -1 -2524 2504 -1 -2904 2504 -1 -2505 2505 6 -2506 2505 -1 -2525 2505 -1 -2905 2505 -1 -2506 2506 6 -2507 2506 -1 -2526 2506 -1 -2906 2506 -1 -2507 2507 6 -2508 2507 -1 -2527 2507 -1 -2907 2507 -1 -2508 2508 6 -2509 2508 -1 -2528 2508 -1 -2908 2508 -1 -2509 2509 6 -2510 2509 -1 -2529 2509 -1 -2909 2509 -1 -2510 2510 6 -2511 2510 -1 -2530 2510 -1 -2910 2510 -1 -2511 2511 6 -2512 2511 -1 -2531 2511 -1 -2911 2511 -1 -2512 2512 6 -2513 2512 -1 -2532 2512 -1 -2912 2512 -1 -2513 2513 6 -2514 2513 -1 -2533 2513 -1 -2913 2513 -1 -2514 2514 6 -2515 2514 -1 -2534 2514 -1 -2914 2514 -1 -2515 2515 6 -2516 2515 -1 -2535 2515 -1 -2915 2515 -1 -2516 2516 6 -2517 2516 -1 -2536 2516 -1 -2916 2516 -1 -2517 2517 6 -2518 2517 -1 -2537 2517 -1 -2917 2517 -1 -2518 2518 6 -2519 2518 -1 -2538 2518 -1 -2918 2518 -1 -2519 2519 6 -2520 2519 -1 -2539 2519 -1 -2919 2519 -1 -2520 2520 6 -2540 2520 -1 -2920 2520 -1 -2521 2521 6 -2522 2521 -1 -2541 2521 -1 -2921 2521 -1 -2522 2522 6 -2523 2522 -1 -2542 2522 -1 -2922 2522 -1 -2523 2523 6 -2524 2523 -1 -2543 2523 -1 -2923 2523 -1 -2524 2524 6 -2525 2524 -1 -2544 2524 -1 -2924 2524 -1 -2525 2525 6 -2526 2525 -1 -2545 2525 -1 -2925 2525 -1 -2526 2526 6 -2527 2526 -1 -2546 2526 -1 -2926 2526 -1 -2527 2527 6 -2528 2527 -1 -2547 2527 -1 -2927 2527 -1 -2528 2528 6 -2529 2528 -1 -2548 2528 -1 -2928 2528 -1 -2529 2529 6 -2530 2529 -1 -2549 2529 -1 -2929 2529 -1 -2530 2530 6 -2531 2530 -1 -2550 2530 -1 -2930 2530 -1 -2531 2531 6 -2532 2531 -1 -2551 2531 -1 -2931 2531 -1 -2532 2532 6 -2533 2532 -1 -2552 2532 -1 -2932 2532 -1 -2533 2533 6 -2534 2533 -1 -2553 2533 -1 -2933 2533 -1 -2534 2534 6 -2535 2534 -1 -2554 2534 -1 -2934 2534 -1 -2535 2535 6 -2536 2535 -1 -2555 2535 -1 -2935 2535 -1 -2536 2536 6 -2537 2536 -1 -2556 2536 -1 -2936 2536 -1 -2537 2537 6 -2538 2537 -1 -2557 2537 -1 -2937 2537 -1 -2538 2538 6 -2539 2538 -1 -2558 2538 -1 -2938 2538 -1 -2539 2539 6 -2540 2539 -1 -2559 2539 -1 -2939 2539 -1 -2540 2540 6 -2560 2540 -1 -2940 2540 -1 -2541 2541 6 -2542 2541 -1 -2561 2541 -1 -2941 2541 -1 -2542 2542 6 -2543 2542 -1 -2562 2542 -1 -2942 2542 -1 -2543 2543 6 -2544 2543 -1 -2563 2543 -1 -2943 2543 -1 -2544 2544 6 -2545 2544 -1 -2564 2544 -1 -2944 2544 -1 -2545 2545 6 -2546 2545 -1 -2565 2545 -1 -2945 2545 -1 -2546 2546 6 -2547 2546 -1 -2566 2546 -1 -2946 2546 -1 -2547 2547 6 -2548 2547 -1 -2567 2547 -1 -2947 2547 -1 -2548 2548 6 -2549 2548 -1 -2568 2548 -1 -2948 2548 -1 -2549 2549 6 -2550 2549 -1 -2569 2549 -1 -2949 2549 -1 -2550 2550 6 -2551 2550 -1 -2570 2550 -1 -2950 2550 -1 -2551 2551 6 -2552 2551 -1 -2571 2551 -1 -2951 2551 -1 -2552 2552 6 -2553 2552 -1 -2572 2552 -1 -2952 2552 -1 -2553 2553 6 -2554 2553 -1 -2573 2553 -1 -2953 2553 -1 -2554 2554 6 -2555 2554 -1 -2574 2554 -1 -2954 2554 -1 -2555 2555 6 -2556 2555 -1 -2575 2555 -1 -2955 2555 -1 -2556 2556 6 -2557 2556 -1 -2576 2556 -1 -2956 2556 -1 -2557 2557 6 -2558 2557 -1 -2577 2557 -1 -2957 2557 -1 -2558 2558 6 -2559 2558 -1 -2578 2558 -1 -2958 2558 -1 -2559 2559 6 -2560 2559 -1 -2579 2559 -1 -2959 2559 -1 -2560 2560 6 -2580 2560 -1 -2960 2560 -1 -2561 2561 6 -2562 2561 -1 -2581 2561 -1 -2961 2561 -1 -2562 2562 6 -2563 2562 -1 -2582 2562 -1 -2962 2562 -1 -2563 2563 6 -2564 2563 -1 -2583 2563 -1 -2963 2563 -1 -2564 2564 6 -2565 2564 -1 -2584 2564 -1 -2964 2564 -1 -2565 2565 6 -2566 2565 -1 -2585 2565 -1 -2965 2565 -1 -2566 2566 6 -2567 2566 -1 -2586 2566 -1 -2966 2566 -1 -2567 2567 6 -2568 2567 -1 -2587 2567 -1 -2967 2567 -1 -2568 2568 6 -2569 2568 -1 -2588 2568 -1 -2968 2568 -1 -2569 2569 6 -2570 2569 -1 -2589 2569 -1 -2969 2569 -1 -2570 2570 6 -2571 2570 -1 -2590 2570 -1 -2970 2570 -1 -2571 2571 6 -2572 2571 -1 -2591 2571 -1 -2971 2571 -1 -2572 2572 6 -2573 2572 -1 -2592 2572 -1 -2972 2572 -1 -2573 2573 6 -2574 2573 -1 -2593 2573 -1 -2973 2573 -1 -2574 2574 6 -2575 2574 -1 -2594 2574 -1 -2974 2574 -1 -2575 2575 6 -2576 2575 -1 -2595 2575 -1 -2975 2575 -1 -2576 2576 6 -2577 2576 -1 -2596 2576 -1 -2976 2576 -1 -2577 2577 6 -2578 2577 -1 -2597 2577 -1 -2977 2577 -1 -2578 2578 6 -2579 2578 -1 -2598 2578 -1 -2978 2578 -1 -2579 2579 6 -2580 2579 -1 -2599 2579 -1 -2979 2579 -1 -2580 2580 6 -2600 2580 -1 -2980 2580 -1 -2581 2581 6 -2582 2581 -1 -2601 2581 -1 -2981 2581 -1 -2582 2582 6 -2583 2582 -1 -2602 2582 -1 -2982 2582 -1 -2583 2583 6 -2584 2583 -1 -2603 2583 -1 -2983 2583 -1 -2584 2584 6 -2585 2584 -1 -2604 2584 -1 -2984 2584 -1 -2585 2585 6 -2586 2585 -1 -2605 2585 -1 -2985 2585 -1 -2586 2586 6 -2587 2586 -1 -2606 2586 -1 -2986 2586 -1 -2587 2587 6 -2588 2587 -1 -2607 2587 -1 -2987 2587 -1 -2588 2588 6 -2589 2588 -1 -2608 2588 -1 -2988 2588 -1 -2589 2589 6 -2590 2589 -1 -2609 2589 -1 -2989 2589 -1 -2590 2590 6 -2591 2590 -1 -2610 2590 -1 -2990 2590 -1 -2591 2591 6 -2592 2591 -1 -2611 2591 -1 -2991 2591 -1 -2592 2592 6 -2593 2592 -1 -2612 2592 -1 -2992 2592 -1 -2593 2593 6 -2594 2593 -1 -2613 2593 -1 -2993 2593 -1 -2594 2594 6 -2595 2594 -1 -2614 2594 -1 -2994 2594 -1 -2595 2595 6 -2596 2595 -1 -2615 2595 -1 -2995 2595 -1 -2596 2596 6 -2597 2596 -1 -2616 2596 -1 -2996 2596 -1 -2597 2597 6 -2598 2597 -1 -2617 2597 -1 -2997 2597 -1 -2598 2598 6 -2599 2598 -1 -2618 2598 -1 -2998 2598 -1 -2599 2599 6 -2600 2599 -1 -2619 2599 -1 -2999 2599 -1 -2600 2600 6 -2620 2600 -1 -3000 2600 -1 -2601 2601 6 -2602 2601 -1 -2621 2601 -1 -3001 2601 -1 -2602 2602 6 -2603 2602 -1 -2622 2602 -1 -3002 2602 -1 -2603 2603 6 -2604 2603 -1 -2623 2603 -1 -3003 2603 -1 -2604 2604 6 -2605 2604 -1 -2624 2604 -1 -3004 2604 -1 -2605 2605 6 -2606 2605 -1 -2625 2605 -1 -3005 2605 -1 -2606 2606 6 -2607 2606 -1 -2626 2606 -1 -3006 2606 -1 -2607 2607 6 -2608 2607 -1 -2627 2607 -1 -3007 2607 -1 -2608 2608 6 -2609 2608 -1 -2628 2608 -1 -3008 2608 -1 -2609 2609 6 -2610 2609 -1 -2629 2609 -1 -3009 2609 -1 -2610 2610 6 -2611 2610 -1 -2630 2610 -1 -3010 2610 -1 -2611 2611 6 -2612 2611 -1 -2631 2611 -1 -3011 2611 -1 -2612 2612 6 -2613 2612 -1 -2632 2612 -1 -3012 2612 -1 -2613 2613 6 -2614 2613 -1 -2633 2613 -1 -3013 2613 -1 -2614 2614 6 -2615 2614 -1 -2634 2614 -1 -3014 2614 -1 -2615 2615 6 -2616 2615 -1 -2635 2615 -1 -3015 2615 -1 -2616 2616 6 -2617 2616 -1 -2636 2616 -1 -3016 2616 -1 -2617 2617 6 -2618 2617 -1 -2637 2617 -1 -3017 2617 -1 -2618 2618 6 -2619 2618 -1 -2638 2618 -1 -3018 2618 -1 -2619 2619 6 -2620 2619 -1 -2639 2619 -1 -3019 2619 -1 -2620 2620 6 -2640 2620 -1 -3020 2620 -1 -2621 2621 6 -2622 2621 -1 -2641 2621 -1 -3021 2621 -1 -2622 2622 6 -2623 2622 -1 -2642 2622 -1 -3022 2622 -1 -2623 2623 6 -2624 2623 -1 -2643 2623 -1 -3023 2623 -1 -2624 2624 6 -2625 2624 -1 -2644 2624 -1 -3024 2624 -1 -2625 2625 6 -2626 2625 -1 -2645 2625 -1 -3025 2625 -1 -2626 2626 6 -2627 2626 -1 -2646 2626 -1 -3026 2626 -1 -2627 2627 6 -2628 2627 -1 -2647 2627 -1 -3027 2627 -1 -2628 2628 6 -2629 2628 -1 -2648 2628 -1 -3028 2628 -1 -2629 2629 6 -2630 2629 -1 -2649 2629 -1 -3029 2629 -1 -2630 2630 6 -2631 2630 -1 -2650 2630 -1 -3030 2630 -1 -2631 2631 6 -2632 2631 -1 -2651 2631 -1 -3031 2631 -1 -2632 2632 6 -2633 2632 -1 -2652 2632 -1 -3032 2632 -1 -2633 2633 6 -2634 2633 -1 -2653 2633 -1 -3033 2633 -1 -2634 2634 6 -2635 2634 -1 -2654 2634 -1 -3034 2634 -1 -2635 2635 6 -2636 2635 -1 -2655 2635 -1 -3035 2635 -1 -2636 2636 6 -2637 2636 -1 -2656 2636 -1 -3036 2636 -1 -2637 2637 6 -2638 2637 -1 -2657 2637 -1 -3037 2637 -1 -2638 2638 6 -2639 2638 -1 -2658 2638 -1 -3038 2638 -1 -2639 2639 6 -2640 2639 -1 -2659 2639 -1 -3039 2639 -1 -2640 2640 6 -2660 2640 -1 -3040 2640 -1 -2641 2641 6 -2642 2641 -1 -2661 2641 -1 -3041 2641 -1 -2642 2642 6 -2643 2642 -1 -2662 2642 -1 -3042 2642 -1 -2643 2643 6 -2644 2643 -1 -2663 2643 -1 -3043 2643 -1 -2644 2644 6 -2645 2644 -1 -2664 2644 -1 -3044 2644 -1 -2645 2645 6 -2646 2645 -1 -2665 2645 -1 -3045 2645 -1 -2646 2646 6 -2647 2646 -1 -2666 2646 -1 -3046 2646 -1 -2647 2647 6 -2648 2647 -1 -2667 2647 -1 -3047 2647 -1 -2648 2648 6 -2649 2648 -1 -2668 2648 -1 -3048 2648 -1 -2649 2649 6 -2650 2649 -1 -2669 2649 -1 -3049 2649 -1 -2650 2650 6 -2651 2650 -1 -2670 2650 -1 -3050 2650 -1 -2651 2651 6 -2652 2651 -1 -2671 2651 -1 -3051 2651 -1 -2652 2652 6 -2653 2652 -1 -2672 2652 -1 -3052 2652 -1 -2653 2653 6 -2654 2653 -1 -2673 2653 -1 -3053 2653 -1 -2654 2654 6 -2655 2654 -1 -2674 2654 -1 -3054 2654 -1 -2655 2655 6 -2656 2655 -1 -2675 2655 -1 -3055 2655 -1 -2656 2656 6 -2657 2656 -1 -2676 2656 -1 -3056 2656 -1 -2657 2657 6 -2658 2657 -1 -2677 2657 -1 -3057 2657 -1 -2658 2658 6 -2659 2658 -1 -2678 2658 -1 -3058 2658 -1 -2659 2659 6 -2660 2659 -1 -2679 2659 -1 -3059 2659 -1 -2660 2660 6 -2680 2660 -1 -3060 2660 -1 -2661 2661 6 -2662 2661 -1 -2681 2661 -1 -3061 2661 -1 -2662 2662 6 -2663 2662 -1 -2682 2662 -1 -3062 2662 -1 -2663 2663 6 -2664 2663 -1 -2683 2663 -1 -3063 2663 -1 -2664 2664 6 -2665 2664 -1 -2684 2664 -1 -3064 2664 -1 -2665 2665 6 -2666 2665 -1 -2685 2665 -1 -3065 2665 -1 -2666 2666 6 -2667 2666 -1 -2686 2666 -1 -3066 2666 -1 -2667 2667 6 -2668 2667 -1 -2687 2667 -1 -3067 2667 -1 -2668 2668 6 -2669 2668 -1 -2688 2668 -1 -3068 2668 -1 -2669 2669 6 -2670 2669 -1 -2689 2669 -1 -3069 2669 -1 -2670 2670 6 -2671 2670 -1 -2690 2670 -1 -3070 2670 -1 -2671 2671 6 -2672 2671 -1 -2691 2671 -1 -3071 2671 -1 -2672 2672 6 -2673 2672 -1 -2692 2672 -1 -3072 2672 -1 -2673 2673 6 -2674 2673 -1 -2693 2673 -1 -3073 2673 -1 -2674 2674 6 -2675 2674 -1 -2694 2674 -1 -3074 2674 -1 -2675 2675 6 -2676 2675 -1 -2695 2675 -1 -3075 2675 -1 -2676 2676 6 -2677 2676 -1 -2696 2676 -1 -3076 2676 -1 -2677 2677 6 -2678 2677 -1 -2697 2677 -1 -3077 2677 -1 -2678 2678 6 -2679 2678 -1 -2698 2678 -1 -3078 2678 -1 -2679 2679 6 -2680 2679 -1 -2699 2679 -1 -3079 2679 -1 -2680 2680 6 -2700 2680 -1 -3080 2680 -1 -2681 2681 6 -2682 2681 -1 -2701 2681 -1 -3081 2681 -1 -2682 2682 6 -2683 2682 -1 -2702 2682 -1 -3082 2682 -1 -2683 2683 6 -2684 2683 -1 -2703 2683 -1 -3083 2683 -1 -2684 2684 6 -2685 2684 -1 -2704 2684 -1 -3084 2684 -1 -2685 2685 6 -2686 2685 -1 -2705 2685 -1 -3085 2685 -1 -2686 2686 6 -2687 2686 -1 -2706 2686 -1 -3086 2686 -1 -2687 2687 6 -2688 2687 -1 -2707 2687 -1 -3087 2687 -1 -2688 2688 6 -2689 2688 -1 -2708 2688 -1 -3088 2688 -1 -2689 2689 6 -2690 2689 -1 -2709 2689 -1 -3089 2689 -1 -2690 2690 6 -2691 2690 -1 -2710 2690 -1 -3090 2690 -1 -2691 2691 6 -2692 2691 -1 -2711 2691 -1 -3091 2691 -1 -2692 2692 6 -2693 2692 -1 -2712 2692 -1 -3092 2692 -1 -2693 2693 6 -2694 2693 -1 -2713 2693 -1 -3093 2693 -1 -2694 2694 6 -2695 2694 -1 -2714 2694 -1 -3094 2694 -1 -2695 2695 6 -2696 2695 -1 -2715 2695 -1 -3095 2695 -1 -2696 2696 6 -2697 2696 -1 -2716 2696 -1 -3096 2696 -1 -2697 2697 6 -2698 2697 -1 -2717 2697 -1 -3097 2697 -1 -2698 2698 6 -2699 2698 -1 -2718 2698 -1 -3098 2698 -1 -2699 2699 6 -2700 2699 -1 -2719 2699 -1 -3099 2699 -1 -2700 2700 6 -2720 2700 -1 -3100 2700 -1 -2701 2701 6 -2702 2701 -1 -2721 2701 -1 -3101 2701 -1 -2702 2702 6 -2703 2702 -1 -2722 2702 -1 -3102 2702 -1 -2703 2703 6 -2704 2703 -1 -2723 2703 -1 -3103 2703 -1 -2704 2704 6 -2705 2704 -1 -2724 2704 -1 -3104 2704 -1 -2705 2705 6 -2706 2705 -1 -2725 2705 -1 -3105 2705 -1 -2706 2706 6 -2707 2706 -1 -2726 2706 -1 -3106 2706 -1 -2707 2707 6 -2708 2707 -1 -2727 2707 -1 -3107 2707 -1 -2708 2708 6 -2709 2708 -1 -2728 2708 -1 -3108 2708 -1 -2709 2709 6 -2710 2709 -1 -2729 2709 -1 -3109 2709 -1 -2710 2710 6 -2711 2710 -1 -2730 2710 -1 -3110 2710 -1 -2711 2711 6 -2712 2711 -1 -2731 2711 -1 -3111 2711 -1 -2712 2712 6 -2713 2712 -1 -2732 2712 -1 -3112 2712 -1 -2713 2713 6 -2714 2713 -1 -2733 2713 -1 -3113 2713 -1 -2714 2714 6 -2715 2714 -1 -2734 2714 -1 -3114 2714 -1 -2715 2715 6 -2716 2715 -1 -2735 2715 -1 -3115 2715 -1 -2716 2716 6 -2717 2716 -1 -2736 2716 -1 -3116 2716 -1 -2717 2717 6 -2718 2717 -1 -2737 2717 -1 -3117 2717 -1 -2718 2718 6 -2719 2718 -1 -2738 2718 -1 -3118 2718 -1 -2719 2719 6 -2720 2719 -1 -2739 2719 -1 -3119 2719 -1 -2720 2720 6 -2740 2720 -1 -3120 2720 -1 -2721 2721 6 -2722 2721 -1 -2741 2721 -1 -3121 2721 -1 -2722 2722 6 -2723 2722 -1 -2742 2722 -1 -3122 2722 -1 -2723 2723 6 -2724 2723 -1 -2743 2723 -1 -3123 2723 -1 -2724 2724 6 -2725 2724 -1 -2744 2724 -1 -3124 2724 -1 -2725 2725 6 -2726 2725 -1 -2745 2725 -1 -3125 2725 -1 -2726 2726 6 -2727 2726 -1 -2746 2726 -1 -3126 2726 -1 -2727 2727 6 -2728 2727 -1 -2747 2727 -1 -3127 2727 -1 -2728 2728 6 -2729 2728 -1 -2748 2728 -1 -3128 2728 -1 -2729 2729 6 -2730 2729 -1 -2749 2729 -1 -3129 2729 -1 -2730 2730 6 -2731 2730 -1 -2750 2730 -1 -3130 2730 -1 -2731 2731 6 -2732 2731 -1 -2751 2731 -1 -3131 2731 -1 -2732 2732 6 -2733 2732 -1 -2752 2732 -1 -3132 2732 -1 -2733 2733 6 -2734 2733 -1 -2753 2733 -1 -3133 2733 -1 -2734 2734 6 -2735 2734 -1 -2754 2734 -1 -3134 2734 -1 -2735 2735 6 -2736 2735 -1 -2755 2735 -1 -3135 2735 -1 -2736 2736 6 -2737 2736 -1 -2756 2736 -1 -3136 2736 -1 -2737 2737 6 -2738 2737 -1 -2757 2737 -1 -3137 2737 -1 -2738 2738 6 -2739 2738 -1 -2758 2738 -1 -3138 2738 -1 -2739 2739 6 -2740 2739 -1 -2759 2739 -1 -3139 2739 -1 -2740 2740 6 -2760 2740 -1 -3140 2740 -1 -2741 2741 6 -2742 2741 -1 -2761 2741 -1 -3141 2741 -1 -2742 2742 6 -2743 2742 -1 -2762 2742 -1 -3142 2742 -1 -2743 2743 6 -2744 2743 -1 -2763 2743 -1 -3143 2743 -1 -2744 2744 6 -2745 2744 -1 -2764 2744 -1 -3144 2744 -1 -2745 2745 6 -2746 2745 -1 -2765 2745 -1 -3145 2745 -1 -2746 2746 6 -2747 2746 -1 -2766 2746 -1 -3146 2746 -1 -2747 2747 6 -2748 2747 -1 -2767 2747 -1 -3147 2747 -1 -2748 2748 6 -2749 2748 -1 -2768 2748 -1 -3148 2748 -1 -2749 2749 6 -2750 2749 -1 -2769 2749 -1 -3149 2749 -1 -2750 2750 6 -2751 2750 -1 -2770 2750 -1 -3150 2750 -1 -2751 2751 6 -2752 2751 -1 -2771 2751 -1 -3151 2751 -1 -2752 2752 6 -2753 2752 -1 -2772 2752 -1 -3152 2752 -1 -2753 2753 6 -2754 2753 -1 -2773 2753 -1 -3153 2753 -1 -2754 2754 6 -2755 2754 -1 -2774 2754 -1 -3154 2754 -1 -2755 2755 6 -2756 2755 -1 -2775 2755 -1 -3155 2755 -1 -2756 2756 6 -2757 2756 -1 -2776 2756 -1 -3156 2756 -1 -2757 2757 6 -2758 2757 -1 -2777 2757 -1 -3157 2757 -1 -2758 2758 6 -2759 2758 -1 -2778 2758 -1 -3158 2758 -1 -2759 2759 6 -2760 2759 -1 -2779 2759 -1 -3159 2759 -1 -2760 2760 6 -2780 2760 -1 -3160 2760 -1 -2761 2761 6 -2762 2761 -1 -2781 2761 -1 -3161 2761 -1 -2762 2762 6 -2763 2762 -1 -2782 2762 -1 -3162 2762 -1 -2763 2763 6 -2764 2763 -1 -2783 2763 -1 -3163 2763 -1 -2764 2764 6 -2765 2764 -1 -2784 2764 -1 -3164 2764 -1 -2765 2765 6 -2766 2765 -1 -2785 2765 -1 -3165 2765 -1 -2766 2766 6 -2767 2766 -1 -2786 2766 -1 -3166 2766 -1 -2767 2767 6 -2768 2767 -1 -2787 2767 -1 -3167 2767 -1 -2768 2768 6 -2769 2768 -1 -2788 2768 -1 -3168 2768 -1 -2769 2769 6 -2770 2769 -1 -2789 2769 -1 -3169 2769 -1 -2770 2770 6 -2771 2770 -1 -2790 2770 -1 -3170 2770 -1 -2771 2771 6 -2772 2771 -1 -2791 2771 -1 -3171 2771 -1 -2772 2772 6 -2773 2772 -1 -2792 2772 -1 -3172 2772 -1 -2773 2773 6 -2774 2773 -1 -2793 2773 -1 -3173 2773 -1 -2774 2774 6 -2775 2774 -1 -2794 2774 -1 -3174 2774 -1 -2775 2775 6 -2776 2775 -1 -2795 2775 -1 -3175 2775 -1 -2776 2776 6 -2777 2776 -1 -2796 2776 -1 -3176 2776 -1 -2777 2777 6 -2778 2777 -1 -2797 2777 -1 -3177 2777 -1 -2778 2778 6 -2779 2778 -1 -2798 2778 -1 -3178 2778 -1 -2779 2779 6 -2780 2779 -1 -2799 2779 -1 -3179 2779 -1 -2780 2780 6 -2800 2780 -1 -3180 2780 -1 -2781 2781 6 -2782 2781 -1 -3181 2781 -1 -2782 2782 6 -2783 2782 -1 -3182 2782 -1 -2783 2783 6 -2784 2783 -1 -3183 2783 -1 -2784 2784 6 -2785 2784 -1 -3184 2784 -1 -2785 2785 6 -2786 2785 -1 -3185 2785 -1 -2786 2786 6 -2787 2786 -1 -3186 2786 -1 -2787 2787 6 -2788 2787 -1 -3187 2787 -1 -2788 2788 6 -2789 2788 -1 -3188 2788 -1 -2789 2789 6 -2790 2789 -1 -3189 2789 -1 -2790 2790 6 -2791 2790 -1 -3190 2790 -1 -2791 2791 6 -2792 2791 -1 -3191 2791 -1 -2792 2792 6 -2793 2792 -1 -3192 2792 -1 -2793 2793 6 -2794 2793 -1 -3193 2793 -1 -2794 2794 6 -2795 2794 -1 -3194 2794 -1 -2795 2795 6 -2796 2795 -1 -3195 2795 -1 -2796 2796 6 -2797 2796 -1 -3196 2796 -1 -2797 2797 6 -2798 2797 -1 -3197 2797 -1 -2798 2798 6 -2799 2798 -1 -3198 2798 -1 -2799 2799 6 -2800 2799 -1 -3199 2799 -1 -2800 2800 6 -3200 2800 -1 -2801 2801 6 -2802 2801 -1 -2821 2801 -1 -3201 2801 -1 -2802 2802 6 -2803 2802 -1 -2822 2802 -1 -3202 2802 -1 -2803 2803 6 -2804 2803 -1 -2823 2803 -1 -3203 2803 -1 -2804 2804 6 -2805 2804 -1 -2824 2804 -1 -3204 2804 -1 -2805 2805 6 -2806 2805 -1 -2825 2805 -1 -3205 2805 -1 -2806 2806 6 -2807 2806 -1 -2826 2806 -1 -3206 2806 -1 -2807 2807 6 -2808 2807 -1 -2827 2807 -1 -3207 2807 -1 -2808 2808 6 -2809 2808 -1 -2828 2808 -1 -3208 2808 -1 -2809 2809 6 -2810 2809 -1 -2829 2809 -1 -3209 2809 -1 -2810 2810 6 -2811 2810 -1 -2830 2810 -1 -3210 2810 -1 -2811 2811 6 -2812 2811 -1 -2831 2811 -1 -3211 2811 -1 -2812 2812 6 -2813 2812 -1 -2832 2812 -1 -3212 2812 -1 -2813 2813 6 -2814 2813 -1 -2833 2813 -1 -3213 2813 -1 -2814 2814 6 -2815 2814 -1 -2834 2814 -1 -3214 2814 -1 -2815 2815 6 -2816 2815 -1 -2835 2815 -1 -3215 2815 -1 -2816 2816 6 -2817 2816 -1 -2836 2816 -1 -3216 2816 -1 -2817 2817 6 -2818 2817 -1 -2837 2817 -1 -3217 2817 -1 -2818 2818 6 -2819 2818 -1 -2838 2818 -1 -3218 2818 -1 -2819 2819 6 -2820 2819 -1 -2839 2819 -1 -3219 2819 -1 -2820 2820 6 -2840 2820 -1 -3220 2820 -1 -2821 2821 6 -2822 2821 -1 -2841 2821 -1 -3221 2821 -1 -2822 2822 6 -2823 2822 -1 -2842 2822 -1 -3222 2822 -1 -2823 2823 6 -2824 2823 -1 -2843 2823 -1 -3223 2823 -1 -2824 2824 6 -2825 2824 -1 -2844 2824 -1 -3224 2824 -1 -2825 2825 6 -2826 2825 -1 -2845 2825 -1 -3225 2825 -1 -2826 2826 6 -2827 2826 -1 -2846 2826 -1 -3226 2826 -1 -2827 2827 6 -2828 2827 -1 -2847 2827 -1 -3227 2827 -1 -2828 2828 6 -2829 2828 -1 -2848 2828 -1 -3228 2828 -1 -2829 2829 6 -2830 2829 -1 -2849 2829 -1 -3229 2829 -1 -2830 2830 6 -2831 2830 -1 -2850 2830 -1 -3230 2830 -1 -2831 2831 6 -2832 2831 -1 -2851 2831 -1 -3231 2831 -1 -2832 2832 6 -2833 2832 -1 -2852 2832 -1 -3232 2832 -1 -2833 2833 6 -2834 2833 -1 -2853 2833 -1 -3233 2833 -1 -2834 2834 6 -2835 2834 -1 -2854 2834 -1 -3234 2834 -1 -2835 2835 6 -2836 2835 -1 -2855 2835 -1 -3235 2835 -1 -2836 2836 6 -2837 2836 -1 -2856 2836 -1 -3236 2836 -1 -2837 2837 6 -2838 2837 -1 -2857 2837 -1 -3237 2837 -1 -2838 2838 6 -2839 2838 -1 -2858 2838 -1 -3238 2838 -1 -2839 2839 6 -2840 2839 -1 -2859 2839 -1 -3239 2839 -1 -2840 2840 6 -2860 2840 -1 -3240 2840 -1 -2841 2841 6 -2842 2841 -1 -2861 2841 -1 -3241 2841 -1 -2842 2842 6 -2843 2842 -1 -2862 2842 -1 -3242 2842 -1 -2843 2843 6 -2844 2843 -1 -2863 2843 -1 -3243 2843 -1 -2844 2844 6 -2845 2844 -1 -2864 2844 -1 -3244 2844 -1 -2845 2845 6 -2846 2845 -1 -2865 2845 -1 -3245 2845 -1 -2846 2846 6 -2847 2846 -1 -2866 2846 -1 -3246 2846 -1 -2847 2847 6 -2848 2847 -1 -2867 2847 -1 -3247 2847 -1 -2848 2848 6 -2849 2848 -1 -2868 2848 -1 -3248 2848 -1 -2849 2849 6 -2850 2849 -1 -2869 2849 -1 -3249 2849 -1 -2850 2850 6 -2851 2850 -1 -2870 2850 -1 -3250 2850 -1 -2851 2851 6 -2852 2851 -1 -2871 2851 -1 -3251 2851 -1 -2852 2852 6 -2853 2852 -1 -2872 2852 -1 -3252 2852 -1 -2853 2853 6 -2854 2853 -1 -2873 2853 -1 -3253 2853 -1 -2854 2854 6 -2855 2854 -1 -2874 2854 -1 -3254 2854 -1 -2855 2855 6 -2856 2855 -1 -2875 2855 -1 -3255 2855 -1 -2856 2856 6 -2857 2856 -1 -2876 2856 -1 -3256 2856 -1 -2857 2857 6 -2858 2857 -1 -2877 2857 -1 -3257 2857 -1 -2858 2858 6 -2859 2858 -1 -2878 2858 -1 -3258 2858 -1 -2859 2859 6 -2860 2859 -1 -2879 2859 -1 -3259 2859 -1 -2860 2860 6 -2880 2860 -1 -3260 2860 -1 -2861 2861 6 -2862 2861 -1 -2881 2861 -1 -3261 2861 -1 -2862 2862 6 -2863 2862 -1 -2882 2862 -1 -3262 2862 -1 -2863 2863 6 -2864 2863 -1 -2883 2863 -1 -3263 2863 -1 -2864 2864 6 -2865 2864 -1 -2884 2864 -1 -3264 2864 -1 -2865 2865 6 -2866 2865 -1 -2885 2865 -1 -3265 2865 -1 -2866 2866 6 -2867 2866 -1 -2886 2866 -1 -3266 2866 -1 -2867 2867 6 -2868 2867 -1 -2887 2867 -1 -3267 2867 -1 -2868 2868 6 -2869 2868 -1 -2888 2868 -1 -3268 2868 -1 -2869 2869 6 -2870 2869 -1 -2889 2869 -1 -3269 2869 -1 -2870 2870 6 -2871 2870 -1 -2890 2870 -1 -3270 2870 -1 -2871 2871 6 -2872 2871 -1 -2891 2871 -1 -3271 2871 -1 -2872 2872 6 -2873 2872 -1 -2892 2872 -1 -3272 2872 -1 -2873 2873 6 -2874 2873 -1 -2893 2873 -1 -3273 2873 -1 -2874 2874 6 -2875 2874 -1 -2894 2874 -1 -3274 2874 -1 -2875 2875 6 -2876 2875 -1 -2895 2875 -1 -3275 2875 -1 -2876 2876 6 -2877 2876 -1 -2896 2876 -1 -3276 2876 -1 -2877 2877 6 -2878 2877 -1 -2897 2877 -1 -3277 2877 -1 -2878 2878 6 -2879 2878 -1 -2898 2878 -1 -3278 2878 -1 -2879 2879 6 -2880 2879 -1 -2899 2879 -1 -3279 2879 -1 -2880 2880 6 -2900 2880 -1 -3280 2880 -1 -2881 2881 6 -2882 2881 -1 -2901 2881 -1 -3281 2881 -1 -2882 2882 6 -2883 2882 -1 -2902 2882 -1 -3282 2882 -1 -2883 2883 6 -2884 2883 -1 -2903 2883 -1 -3283 2883 -1 -2884 2884 6 -2885 2884 -1 -2904 2884 -1 -3284 2884 -1 -2885 2885 6 -2886 2885 -1 -2905 2885 -1 -3285 2885 -1 -2886 2886 6 -2887 2886 -1 -2906 2886 -1 -3286 2886 -1 -2887 2887 6 -2888 2887 -1 -2907 2887 -1 -3287 2887 -1 -2888 2888 6 -2889 2888 -1 -2908 2888 -1 -3288 2888 -1 -2889 2889 6 -2890 2889 -1 -2909 2889 -1 -3289 2889 -1 -2890 2890 6 -2891 2890 -1 -2910 2890 -1 -3290 2890 -1 -2891 2891 6 -2892 2891 -1 -2911 2891 -1 -3291 2891 -1 -2892 2892 6 -2893 2892 -1 -2912 2892 -1 -3292 2892 -1 -2893 2893 6 -2894 2893 -1 -2913 2893 -1 -3293 2893 -1 -2894 2894 6 -2895 2894 -1 -2914 2894 -1 -3294 2894 -1 -2895 2895 6 -2896 2895 -1 -2915 2895 -1 -3295 2895 -1 -2896 2896 6 -2897 2896 -1 -2916 2896 -1 -3296 2896 -1 -2897 2897 6 -2898 2897 -1 -2917 2897 -1 -3297 2897 -1 -2898 2898 6 -2899 2898 -1 -2918 2898 -1 -3298 2898 -1 -2899 2899 6 -2900 2899 -1 -2919 2899 -1 -3299 2899 -1 -2900 2900 6 -2920 2900 -1 -3300 2900 -1 -2901 2901 6 -2902 2901 -1 -2921 2901 -1 -3301 2901 -1 -2902 2902 6 -2903 2902 -1 -2922 2902 -1 -3302 2902 -1 -2903 2903 6 -2904 2903 -1 -2923 2903 -1 -3303 2903 -1 -2904 2904 6 -2905 2904 -1 -2924 2904 -1 -3304 2904 -1 -2905 2905 6 -2906 2905 -1 -2925 2905 -1 -3305 2905 -1 -2906 2906 6 -2907 2906 -1 -2926 2906 -1 -3306 2906 -1 -2907 2907 6 -2908 2907 -1 -2927 2907 -1 -3307 2907 -1 -2908 2908 6 -2909 2908 -1 -2928 2908 -1 -3308 2908 -1 -2909 2909 6 -2910 2909 -1 -2929 2909 -1 -3309 2909 -1 -2910 2910 6 -2911 2910 -1 -2930 2910 -1 -3310 2910 -1 -2911 2911 6 -2912 2911 -1 -2931 2911 -1 -3311 2911 -1 -2912 2912 6 -2913 2912 -1 -2932 2912 -1 -3312 2912 -1 -2913 2913 6 -2914 2913 -1 -2933 2913 -1 -3313 2913 -1 -2914 2914 6 -2915 2914 -1 -2934 2914 -1 -3314 2914 -1 -2915 2915 6 -2916 2915 -1 -2935 2915 -1 -3315 2915 -1 -2916 2916 6 -2917 2916 -1 -2936 2916 -1 -3316 2916 -1 -2917 2917 6 -2918 2917 -1 -2937 2917 -1 -3317 2917 -1 -2918 2918 6 -2919 2918 -1 -2938 2918 -1 -3318 2918 -1 -2919 2919 6 -2920 2919 -1 -2939 2919 -1 -3319 2919 -1 -2920 2920 6 -2940 2920 -1 -3320 2920 -1 -2921 2921 6 -2922 2921 -1 -2941 2921 -1 -3321 2921 -1 -2922 2922 6 -2923 2922 -1 -2942 2922 -1 -3322 2922 -1 -2923 2923 6 -2924 2923 -1 -2943 2923 -1 -3323 2923 -1 -2924 2924 6 -2925 2924 -1 -2944 2924 -1 -3324 2924 -1 -2925 2925 6 -2926 2925 -1 -2945 2925 -1 -3325 2925 -1 -2926 2926 6 -2927 2926 -1 -2946 2926 -1 -3326 2926 -1 -2927 2927 6 -2928 2927 -1 -2947 2927 -1 -3327 2927 -1 -2928 2928 6 -2929 2928 -1 -2948 2928 -1 -3328 2928 -1 -2929 2929 6 -2930 2929 -1 -2949 2929 -1 -3329 2929 -1 -2930 2930 6 -2931 2930 -1 -2950 2930 -1 -3330 2930 -1 -2931 2931 6 -2932 2931 -1 -2951 2931 -1 -3331 2931 -1 -2932 2932 6 -2933 2932 -1 -2952 2932 -1 -3332 2932 -1 -2933 2933 6 -2934 2933 -1 -2953 2933 -1 -3333 2933 -1 -2934 2934 6 -2935 2934 -1 -2954 2934 -1 -3334 2934 -1 -2935 2935 6 -2936 2935 -1 -2955 2935 -1 -3335 2935 -1 -2936 2936 6 -2937 2936 -1 -2956 2936 -1 -3336 2936 -1 -2937 2937 6 -2938 2937 -1 -2957 2937 -1 -3337 2937 -1 -2938 2938 6 -2939 2938 -1 -2958 2938 -1 -3338 2938 -1 -2939 2939 6 -2940 2939 -1 -2959 2939 -1 -3339 2939 -1 -2940 2940 6 -2960 2940 -1 -3340 2940 -1 -2941 2941 6 -2942 2941 -1 -2961 2941 -1 -3341 2941 -1 -2942 2942 6 -2943 2942 -1 -2962 2942 -1 -3342 2942 -1 -2943 2943 6 -2944 2943 -1 -2963 2943 -1 -3343 2943 -1 -2944 2944 6 -2945 2944 -1 -2964 2944 -1 -3344 2944 -1 -2945 2945 6 -2946 2945 -1 -2965 2945 -1 -3345 2945 -1 -2946 2946 6 -2947 2946 -1 -2966 2946 -1 -3346 2946 -1 -2947 2947 6 -2948 2947 -1 -2967 2947 -1 -3347 2947 -1 -2948 2948 6 -2949 2948 -1 -2968 2948 -1 -3348 2948 -1 -2949 2949 6 -2950 2949 -1 -2969 2949 -1 -3349 2949 -1 -2950 2950 6 -2951 2950 -1 -2970 2950 -1 -3350 2950 -1 -2951 2951 6 -2952 2951 -1 -2971 2951 -1 -3351 2951 -1 -2952 2952 6 -2953 2952 -1 -2972 2952 -1 -3352 2952 -1 -2953 2953 6 -2954 2953 -1 -2973 2953 -1 -3353 2953 -1 -2954 2954 6 -2955 2954 -1 -2974 2954 -1 -3354 2954 -1 -2955 2955 6 -2956 2955 -1 -2975 2955 -1 -3355 2955 -1 -2956 2956 6 -2957 2956 -1 -2976 2956 -1 -3356 2956 -1 -2957 2957 6 -2958 2957 -1 -2977 2957 -1 -3357 2957 -1 -2958 2958 6 -2959 2958 -1 -2978 2958 -1 -3358 2958 -1 -2959 2959 6 -2960 2959 -1 -2979 2959 -1 -3359 2959 -1 -2960 2960 6 -2980 2960 -1 -3360 2960 -1 -2961 2961 6 -2962 2961 -1 -2981 2961 -1 -3361 2961 -1 -2962 2962 6 -2963 2962 -1 -2982 2962 -1 -3362 2962 -1 -2963 2963 6 -2964 2963 -1 -2983 2963 -1 -3363 2963 -1 -2964 2964 6 -2965 2964 -1 -2984 2964 -1 -3364 2964 -1 -2965 2965 6 -2966 2965 -1 -2985 2965 -1 -3365 2965 -1 -2966 2966 6 -2967 2966 -1 -2986 2966 -1 -3366 2966 -1 -2967 2967 6 -2968 2967 -1 -2987 2967 -1 -3367 2967 -1 -2968 2968 6 -2969 2968 -1 -2988 2968 -1 -3368 2968 -1 -2969 2969 6 -2970 2969 -1 -2989 2969 -1 -3369 2969 -1 -2970 2970 6 -2971 2970 -1 -2990 2970 -1 -3370 2970 -1 -2971 2971 6 -2972 2971 -1 -2991 2971 -1 -3371 2971 -1 -2972 2972 6 -2973 2972 -1 -2992 2972 -1 -3372 2972 -1 -2973 2973 6 -2974 2973 -1 -2993 2973 -1 -3373 2973 -1 -2974 2974 6 -2975 2974 -1 -2994 2974 -1 -3374 2974 -1 -2975 2975 6 -2976 2975 -1 -2995 2975 -1 -3375 2975 -1 -2976 2976 6 -2977 2976 -1 -2996 2976 -1 -3376 2976 -1 -2977 2977 6 -2978 2977 -1 -2997 2977 -1 -3377 2977 -1 -2978 2978 6 -2979 2978 -1 -2998 2978 -1 -3378 2978 -1 -2979 2979 6 -2980 2979 -1 -2999 2979 -1 -3379 2979 -1 -2980 2980 6 -3000 2980 -1 -3380 2980 -1 -2981 2981 6 -2982 2981 -1 -3001 2981 -1 -3381 2981 -1 -2982 2982 6 -2983 2982 -1 -3002 2982 -1 -3382 2982 -1 -2983 2983 6 -2984 2983 -1 -3003 2983 -1 -3383 2983 -1 -2984 2984 6 -2985 2984 -1 -3004 2984 -1 -3384 2984 -1 -2985 2985 6 -2986 2985 -1 -3005 2985 -1 -3385 2985 -1 -2986 2986 6 -2987 2986 -1 -3006 2986 -1 -3386 2986 -1 -2987 2987 6 -2988 2987 -1 -3007 2987 -1 -3387 2987 -1 -2988 2988 6 -2989 2988 -1 -3008 2988 -1 -3388 2988 -1 -2989 2989 6 -2990 2989 -1 -3009 2989 -1 -3389 2989 -1 -2990 2990 6 -2991 2990 -1 -3010 2990 -1 -3390 2990 -1 -2991 2991 6 -2992 2991 -1 -3011 2991 -1 -3391 2991 -1 -2992 2992 6 -2993 2992 -1 -3012 2992 -1 -3392 2992 -1 -2993 2993 6 -2994 2993 -1 -3013 2993 -1 -3393 2993 -1 -2994 2994 6 -2995 2994 -1 -3014 2994 -1 -3394 2994 -1 -2995 2995 6 -2996 2995 -1 -3015 2995 -1 -3395 2995 -1 -2996 2996 6 -2997 2996 -1 -3016 2996 -1 -3396 2996 -1 -2997 2997 6 -2998 2997 -1 -3017 2997 -1 -3397 2997 -1 -2998 2998 6 -2999 2998 -1 -3018 2998 -1 -3398 2998 -1 -2999 2999 6 -3000 2999 -1 -3019 2999 -1 -3399 2999 -1 -3000 3000 6 -3020 3000 -1 -3400 3000 -1 -3001 3001 6 -3002 3001 -1 -3021 3001 -1 -3401 3001 -1 -3002 3002 6 -3003 3002 -1 -3022 3002 -1 -3402 3002 -1 -3003 3003 6 -3004 3003 -1 -3023 3003 -1 -3403 3003 -1 -3004 3004 6 -3005 3004 -1 -3024 3004 -1 -3404 3004 -1 -3005 3005 6 -3006 3005 -1 -3025 3005 -1 -3405 3005 -1 -3006 3006 6 -3007 3006 -1 -3026 3006 -1 -3406 3006 -1 -3007 3007 6 -3008 3007 -1 -3027 3007 -1 -3407 3007 -1 -3008 3008 6 -3009 3008 -1 -3028 3008 -1 -3408 3008 -1 -3009 3009 6 -3010 3009 -1 -3029 3009 -1 -3409 3009 -1 -3010 3010 6 -3011 3010 -1 -3030 3010 -1 -3410 3010 -1 -3011 3011 6 -3012 3011 -1 -3031 3011 -1 -3411 3011 -1 -3012 3012 6 -3013 3012 -1 -3032 3012 -1 -3412 3012 -1 -3013 3013 6 -3014 3013 -1 -3033 3013 -1 -3413 3013 -1 -3014 3014 6 -3015 3014 -1 -3034 3014 -1 -3414 3014 -1 -3015 3015 6 -3016 3015 -1 -3035 3015 -1 -3415 3015 -1 -3016 3016 6 -3017 3016 -1 -3036 3016 -1 -3416 3016 -1 -3017 3017 6 -3018 3017 -1 -3037 3017 -1 -3417 3017 -1 -3018 3018 6 -3019 3018 -1 -3038 3018 -1 -3418 3018 -1 -3019 3019 6 -3020 3019 -1 -3039 3019 -1 -3419 3019 -1 -3020 3020 6 -3040 3020 -1 -3420 3020 -1 -3021 3021 6 -3022 3021 -1 -3041 3021 -1 -3421 3021 -1 -3022 3022 6 -3023 3022 -1 -3042 3022 -1 -3422 3022 -1 -3023 3023 6 -3024 3023 -1 -3043 3023 -1 -3423 3023 -1 -3024 3024 6 -3025 3024 -1 -3044 3024 -1 -3424 3024 -1 -3025 3025 6 -3026 3025 -1 -3045 3025 -1 -3425 3025 -1 -3026 3026 6 -3027 3026 -1 -3046 3026 -1 -3426 3026 -1 -3027 3027 6 -3028 3027 -1 -3047 3027 -1 -3427 3027 -1 -3028 3028 6 -3029 3028 -1 -3048 3028 -1 -3428 3028 -1 -3029 3029 6 -3030 3029 -1 -3049 3029 -1 -3429 3029 -1 -3030 3030 6 -3031 3030 -1 -3050 3030 -1 -3430 3030 -1 -3031 3031 6 -3032 3031 -1 -3051 3031 -1 -3431 3031 -1 -3032 3032 6 -3033 3032 -1 -3052 3032 -1 -3432 3032 -1 -3033 3033 6 -3034 3033 -1 -3053 3033 -1 -3433 3033 -1 -3034 3034 6 -3035 3034 -1 -3054 3034 -1 -3434 3034 -1 -3035 3035 6 -3036 3035 -1 -3055 3035 -1 -3435 3035 -1 -3036 3036 6 -3037 3036 -1 -3056 3036 -1 -3436 3036 -1 -3037 3037 6 -3038 3037 -1 -3057 3037 -1 -3437 3037 -1 -3038 3038 6 -3039 3038 -1 -3058 3038 -1 -3438 3038 -1 -3039 3039 6 -3040 3039 -1 -3059 3039 -1 -3439 3039 -1 -3040 3040 6 -3060 3040 -1 -3440 3040 -1 -3041 3041 6 -3042 3041 -1 -3061 3041 -1 -3441 3041 -1 -3042 3042 6 -3043 3042 -1 -3062 3042 -1 -3442 3042 -1 -3043 3043 6 -3044 3043 -1 -3063 3043 -1 -3443 3043 -1 -3044 3044 6 -3045 3044 -1 -3064 3044 -1 -3444 3044 -1 -3045 3045 6 -3046 3045 -1 -3065 3045 -1 -3445 3045 -1 -3046 3046 6 -3047 3046 -1 -3066 3046 -1 -3446 3046 -1 -3047 3047 6 -3048 3047 -1 -3067 3047 -1 -3447 3047 -1 -3048 3048 6 -3049 3048 -1 -3068 3048 -1 -3448 3048 -1 -3049 3049 6 -3050 3049 -1 -3069 3049 -1 -3449 3049 -1 -3050 3050 6 -3051 3050 -1 -3070 3050 -1 -3450 3050 -1 -3051 3051 6 -3052 3051 -1 -3071 3051 -1 -3451 3051 -1 -3052 3052 6 -3053 3052 -1 -3072 3052 -1 -3452 3052 -1 -3053 3053 6 -3054 3053 -1 -3073 3053 -1 -3453 3053 -1 -3054 3054 6 -3055 3054 -1 -3074 3054 -1 -3454 3054 -1 -3055 3055 6 -3056 3055 -1 -3075 3055 -1 -3455 3055 -1 -3056 3056 6 -3057 3056 -1 -3076 3056 -1 -3456 3056 -1 -3057 3057 6 -3058 3057 -1 -3077 3057 -1 -3457 3057 -1 -3058 3058 6 -3059 3058 -1 -3078 3058 -1 -3458 3058 -1 -3059 3059 6 -3060 3059 -1 -3079 3059 -1 -3459 3059 -1 -3060 3060 6 -3080 3060 -1 -3460 3060 -1 -3061 3061 6 -3062 3061 -1 -3081 3061 -1 -3461 3061 -1 -3062 3062 6 -3063 3062 -1 -3082 3062 -1 -3462 3062 -1 -3063 3063 6 -3064 3063 -1 -3083 3063 -1 -3463 3063 -1 -3064 3064 6 -3065 3064 -1 -3084 3064 -1 -3464 3064 -1 -3065 3065 6 -3066 3065 -1 -3085 3065 -1 -3465 3065 -1 -3066 3066 6 -3067 3066 -1 -3086 3066 -1 -3466 3066 -1 -3067 3067 6 -3068 3067 -1 -3087 3067 -1 -3467 3067 -1 -3068 3068 6 -3069 3068 -1 -3088 3068 -1 -3468 3068 -1 -3069 3069 6 -3070 3069 -1 -3089 3069 -1 -3469 3069 -1 -3070 3070 6 -3071 3070 -1 -3090 3070 -1 -3470 3070 -1 -3071 3071 6 -3072 3071 -1 -3091 3071 -1 -3471 3071 -1 -3072 3072 6 -3073 3072 -1 -3092 3072 -1 -3472 3072 -1 -3073 3073 6 -3074 3073 -1 -3093 3073 -1 -3473 3073 -1 -3074 3074 6 -3075 3074 -1 -3094 3074 -1 -3474 3074 -1 -3075 3075 6 -3076 3075 -1 -3095 3075 -1 -3475 3075 -1 -3076 3076 6 -3077 3076 -1 -3096 3076 -1 -3476 3076 -1 -3077 3077 6 -3078 3077 -1 -3097 3077 -1 -3477 3077 -1 -3078 3078 6 -3079 3078 -1 -3098 3078 -1 -3478 3078 -1 -3079 3079 6 -3080 3079 -1 -3099 3079 -1 -3479 3079 -1 -3080 3080 6 -3100 3080 -1 -3480 3080 -1 -3081 3081 6 -3082 3081 -1 -3101 3081 -1 -3481 3081 -1 -3082 3082 6 -3083 3082 -1 -3102 3082 -1 -3482 3082 -1 -3083 3083 6 -3084 3083 -1 -3103 3083 -1 -3483 3083 -1 -3084 3084 6 -3085 3084 -1 -3104 3084 -1 -3484 3084 -1 -3085 3085 6 -3086 3085 -1 -3105 3085 -1 -3485 3085 -1 -3086 3086 6 -3087 3086 -1 -3106 3086 -1 -3486 3086 -1 -3087 3087 6 -3088 3087 -1 -3107 3087 -1 -3487 3087 -1 -3088 3088 6 -3089 3088 -1 -3108 3088 -1 -3488 3088 -1 -3089 3089 6 -3090 3089 -1 -3109 3089 -1 -3489 3089 -1 -3090 3090 6 -3091 3090 -1 -3110 3090 -1 -3490 3090 -1 -3091 3091 6 -3092 3091 -1 -3111 3091 -1 -3491 3091 -1 -3092 3092 6 -3093 3092 -1 -3112 3092 -1 -3492 3092 -1 -3093 3093 6 -3094 3093 -1 -3113 3093 -1 -3493 3093 -1 -3094 3094 6 -3095 3094 -1 -3114 3094 -1 -3494 3094 -1 -3095 3095 6 -3096 3095 -1 -3115 3095 -1 -3495 3095 -1 -3096 3096 6 -3097 3096 -1 -3116 3096 -1 -3496 3096 -1 -3097 3097 6 -3098 3097 -1 -3117 3097 -1 -3497 3097 -1 -3098 3098 6 -3099 3098 -1 -3118 3098 -1 -3498 3098 -1 -3099 3099 6 -3100 3099 -1 -3119 3099 -1 -3499 3099 -1 -3100 3100 6 -3120 3100 -1 -3500 3100 -1 -3101 3101 6 -3102 3101 -1 -3121 3101 -1 -3501 3101 -1 -3102 3102 6 -3103 3102 -1 -3122 3102 -1 -3502 3102 -1 -3103 3103 6 -3104 3103 -1 -3123 3103 -1 -3503 3103 -1 -3104 3104 6 -3105 3104 -1 -3124 3104 -1 -3504 3104 -1 -3105 3105 6 -3106 3105 -1 -3125 3105 -1 -3505 3105 -1 -3106 3106 6 -3107 3106 -1 -3126 3106 -1 -3506 3106 -1 -3107 3107 6 -3108 3107 -1 -3127 3107 -1 -3507 3107 -1 -3108 3108 6 -3109 3108 -1 -3128 3108 -1 -3508 3108 -1 -3109 3109 6 -3110 3109 -1 -3129 3109 -1 -3509 3109 -1 -3110 3110 6 -3111 3110 -1 -3130 3110 -1 -3510 3110 -1 -3111 3111 6 -3112 3111 -1 -3131 3111 -1 -3511 3111 -1 -3112 3112 6 -3113 3112 -1 -3132 3112 -1 -3512 3112 -1 -3113 3113 6 -3114 3113 -1 -3133 3113 -1 -3513 3113 -1 -3114 3114 6 -3115 3114 -1 -3134 3114 -1 -3514 3114 -1 -3115 3115 6 -3116 3115 -1 -3135 3115 -1 -3515 3115 -1 -3116 3116 6 -3117 3116 -1 -3136 3116 -1 -3516 3116 -1 -3117 3117 6 -3118 3117 -1 -3137 3117 -1 -3517 3117 -1 -3118 3118 6 -3119 3118 -1 -3138 3118 -1 -3518 3118 -1 -3119 3119 6 -3120 3119 -1 -3139 3119 -1 -3519 3119 -1 -3120 3120 6 -3140 3120 -1 -3520 3120 -1 -3121 3121 6 -3122 3121 -1 -3141 3121 -1 -3521 3121 -1 -3122 3122 6 -3123 3122 -1 -3142 3122 -1 -3522 3122 -1 -3123 3123 6 -3124 3123 -1 -3143 3123 -1 -3523 3123 -1 -3124 3124 6 -3125 3124 -1 -3144 3124 -1 -3524 3124 -1 -3125 3125 6 -3126 3125 -1 -3145 3125 -1 -3525 3125 -1 -3126 3126 6 -3127 3126 -1 -3146 3126 -1 -3526 3126 -1 -3127 3127 6 -3128 3127 -1 -3147 3127 -1 -3527 3127 -1 -3128 3128 6 -3129 3128 -1 -3148 3128 -1 -3528 3128 -1 -3129 3129 6 -3130 3129 -1 -3149 3129 -1 -3529 3129 -1 -3130 3130 6 -3131 3130 -1 -3150 3130 -1 -3530 3130 -1 -3131 3131 6 -3132 3131 -1 -3151 3131 -1 -3531 3131 -1 -3132 3132 6 -3133 3132 -1 -3152 3132 -1 -3532 3132 -1 -3133 3133 6 -3134 3133 -1 -3153 3133 -1 -3533 3133 -1 -3134 3134 6 -3135 3134 -1 -3154 3134 -1 -3534 3134 -1 -3135 3135 6 -3136 3135 -1 -3155 3135 -1 -3535 3135 -1 -3136 3136 6 -3137 3136 -1 -3156 3136 -1 -3536 3136 -1 -3137 3137 6 -3138 3137 -1 -3157 3137 -1 -3537 3137 -1 -3138 3138 6 -3139 3138 -1 -3158 3138 -1 -3538 3138 -1 -3139 3139 6 -3140 3139 -1 -3159 3139 -1 -3539 3139 -1 -3140 3140 6 -3160 3140 -1 -3540 3140 -1 -3141 3141 6 -3142 3141 -1 -3161 3141 -1 -3541 3141 -1 -3142 3142 6 -3143 3142 -1 -3162 3142 -1 -3542 3142 -1 -3143 3143 6 -3144 3143 -1 -3163 3143 -1 -3543 3143 -1 -3144 3144 6 -3145 3144 -1 -3164 3144 -1 -3544 3144 -1 -3145 3145 6 -3146 3145 -1 -3165 3145 -1 -3545 3145 -1 -3146 3146 6 -3147 3146 -1 -3166 3146 -1 -3546 3146 -1 -3147 3147 6 -3148 3147 -1 -3167 3147 -1 -3547 3147 -1 -3148 3148 6 -3149 3148 -1 -3168 3148 -1 -3548 3148 -1 -3149 3149 6 -3150 3149 -1 -3169 3149 -1 -3549 3149 -1 -3150 3150 6 -3151 3150 -1 -3170 3150 -1 -3550 3150 -1 -3151 3151 6 -3152 3151 -1 -3171 3151 -1 -3551 3151 -1 -3152 3152 6 -3153 3152 -1 -3172 3152 -1 -3552 3152 -1 -3153 3153 6 -3154 3153 -1 -3173 3153 -1 -3553 3153 -1 -3154 3154 6 -3155 3154 -1 -3174 3154 -1 -3554 3154 -1 -3155 3155 6 -3156 3155 -1 -3175 3155 -1 -3555 3155 -1 -3156 3156 6 -3157 3156 -1 -3176 3156 -1 -3556 3156 -1 -3157 3157 6 -3158 3157 -1 -3177 3157 -1 -3557 3157 -1 -3158 3158 6 -3159 3158 -1 -3178 3158 -1 -3558 3158 -1 -3159 3159 6 -3160 3159 -1 -3179 3159 -1 -3559 3159 -1 -3160 3160 6 -3180 3160 -1 -3560 3160 -1 -3161 3161 6 -3162 3161 -1 -3181 3161 -1 -3561 3161 -1 -3162 3162 6 -3163 3162 -1 -3182 3162 -1 -3562 3162 -1 -3163 3163 6 -3164 3163 -1 -3183 3163 -1 -3563 3163 -1 -3164 3164 6 -3165 3164 -1 -3184 3164 -1 -3564 3164 -1 -3165 3165 6 -3166 3165 -1 -3185 3165 -1 -3565 3165 -1 -3166 3166 6 -3167 3166 -1 -3186 3166 -1 -3566 3166 -1 -3167 3167 6 -3168 3167 -1 -3187 3167 -1 -3567 3167 -1 -3168 3168 6 -3169 3168 -1 -3188 3168 -1 -3568 3168 -1 -3169 3169 6 -3170 3169 -1 -3189 3169 -1 -3569 3169 -1 -3170 3170 6 -3171 3170 -1 -3190 3170 -1 -3570 3170 -1 -3171 3171 6 -3172 3171 -1 -3191 3171 -1 -3571 3171 -1 -3172 3172 6 -3173 3172 -1 -3192 3172 -1 -3572 3172 -1 -3173 3173 6 -3174 3173 -1 -3193 3173 -1 -3573 3173 -1 -3174 3174 6 -3175 3174 -1 -3194 3174 -1 -3574 3174 -1 -3175 3175 6 -3176 3175 -1 -3195 3175 -1 -3575 3175 -1 -3176 3176 6 -3177 3176 -1 -3196 3176 -1 -3576 3176 -1 -3177 3177 6 -3178 3177 -1 -3197 3177 -1 -3577 3177 -1 -3178 3178 6 -3179 3178 -1 -3198 3178 -1 -3578 3178 -1 -3179 3179 6 -3180 3179 -1 -3199 3179 -1 -3579 3179 -1 -3180 3180 6 -3200 3180 -1 -3580 3180 -1 -3181 3181 6 -3182 3181 -1 -3581 3181 -1 -3182 3182 6 -3183 3182 -1 -3582 3182 -1 -3183 3183 6 -3184 3183 -1 -3583 3183 -1 -3184 3184 6 -3185 3184 -1 -3584 3184 -1 -3185 3185 6 -3186 3185 -1 -3585 3185 -1 -3186 3186 6 -3187 3186 -1 -3586 3186 -1 -3187 3187 6 -3188 3187 -1 -3587 3187 -1 -3188 3188 6 -3189 3188 -1 -3588 3188 -1 -3189 3189 6 -3190 3189 -1 -3589 3189 -1 -3190 3190 6 -3191 3190 -1 -3590 3190 -1 -3191 3191 6 -3192 3191 -1 -3591 3191 -1 -3192 3192 6 -3193 3192 -1 -3592 3192 -1 -3193 3193 6 -3194 3193 -1 -3593 3193 -1 -3194 3194 6 -3195 3194 -1 -3594 3194 -1 -3195 3195 6 -3196 3195 -1 -3595 3195 -1 -3196 3196 6 -3197 3196 -1 -3596 3196 -1 -3197 3197 6 -3198 3197 -1 -3597 3197 -1 -3198 3198 6 -3199 3198 -1 -3598 3198 -1 -3199 3199 6 -3200 3199 -1 -3599 3199 -1 -3200 3200 6 -3600 3200 -1 -3201 3201 6 -3202 3201 -1 -3221 3201 -1 -3601 3201 -1 -3202 3202 6 -3203 3202 -1 -3222 3202 -1 -3602 3202 -1 -3203 3203 6 -3204 3203 -1 -3223 3203 -1 -3603 3203 -1 -3204 3204 6 -3205 3204 -1 -3224 3204 -1 -3604 3204 -1 -3205 3205 6 -3206 3205 -1 -3225 3205 -1 -3605 3205 -1 -3206 3206 6 -3207 3206 -1 -3226 3206 -1 -3606 3206 -1 -3207 3207 6 -3208 3207 -1 -3227 3207 -1 -3607 3207 -1 -3208 3208 6 -3209 3208 -1 -3228 3208 -1 -3608 3208 -1 -3209 3209 6 -3210 3209 -1 -3229 3209 -1 -3609 3209 -1 -3210 3210 6 -3211 3210 -1 -3230 3210 -1 -3610 3210 -1 -3211 3211 6 -3212 3211 -1 -3231 3211 -1 -3611 3211 -1 -3212 3212 6 -3213 3212 -1 -3232 3212 -1 -3612 3212 -1 -3213 3213 6 -3214 3213 -1 -3233 3213 -1 -3613 3213 -1 -3214 3214 6 -3215 3214 -1 -3234 3214 -1 -3614 3214 -1 -3215 3215 6 -3216 3215 -1 -3235 3215 -1 -3615 3215 -1 -3216 3216 6 -3217 3216 -1 -3236 3216 -1 -3616 3216 -1 -3217 3217 6 -3218 3217 -1 -3237 3217 -1 -3617 3217 -1 -3218 3218 6 -3219 3218 -1 -3238 3218 -1 -3618 3218 -1 -3219 3219 6 -3220 3219 -1 -3239 3219 -1 -3619 3219 -1 -3220 3220 6 -3240 3220 -1 -3620 3220 -1 -3221 3221 6 -3222 3221 -1 -3241 3221 -1 -3621 3221 -1 -3222 3222 6 -3223 3222 -1 -3242 3222 -1 -3622 3222 -1 -3223 3223 6 -3224 3223 -1 -3243 3223 -1 -3623 3223 -1 -3224 3224 6 -3225 3224 -1 -3244 3224 -1 -3624 3224 -1 -3225 3225 6 -3226 3225 -1 -3245 3225 -1 -3625 3225 -1 -3226 3226 6 -3227 3226 -1 -3246 3226 -1 -3626 3226 -1 -3227 3227 6 -3228 3227 -1 -3247 3227 -1 -3627 3227 -1 -3228 3228 6 -3229 3228 -1 -3248 3228 -1 -3628 3228 -1 -3229 3229 6 -3230 3229 -1 -3249 3229 -1 -3629 3229 -1 -3230 3230 6 -3231 3230 -1 -3250 3230 -1 -3630 3230 -1 -3231 3231 6 -3232 3231 -1 -3251 3231 -1 -3631 3231 -1 -3232 3232 6 -3233 3232 -1 -3252 3232 -1 -3632 3232 -1 -3233 3233 6 -3234 3233 -1 -3253 3233 -1 -3633 3233 -1 -3234 3234 6 -3235 3234 -1 -3254 3234 -1 -3634 3234 -1 -3235 3235 6 -3236 3235 -1 -3255 3235 -1 -3635 3235 -1 -3236 3236 6 -3237 3236 -1 -3256 3236 -1 -3636 3236 -1 -3237 3237 6 -3238 3237 -1 -3257 3237 -1 -3637 3237 -1 -3238 3238 6 -3239 3238 -1 -3258 3238 -1 -3638 3238 -1 -3239 3239 6 -3240 3239 -1 -3259 3239 -1 -3639 3239 -1 -3240 3240 6 -3260 3240 -1 -3640 3240 -1 -3241 3241 6 -3242 3241 -1 -3261 3241 -1 -3641 3241 -1 -3242 3242 6 -3243 3242 -1 -3262 3242 -1 -3642 3242 -1 -3243 3243 6 -3244 3243 -1 -3263 3243 -1 -3643 3243 -1 -3244 3244 6 -3245 3244 -1 -3264 3244 -1 -3644 3244 -1 -3245 3245 6 -3246 3245 -1 -3265 3245 -1 -3645 3245 -1 -3246 3246 6 -3247 3246 -1 -3266 3246 -1 -3646 3246 -1 -3247 3247 6 -3248 3247 -1 -3267 3247 -1 -3647 3247 -1 -3248 3248 6 -3249 3248 -1 -3268 3248 -1 -3648 3248 -1 -3249 3249 6 -3250 3249 -1 -3269 3249 -1 -3649 3249 -1 -3250 3250 6 -3251 3250 -1 -3270 3250 -1 -3650 3250 -1 -3251 3251 6 -3252 3251 -1 -3271 3251 -1 -3651 3251 -1 -3252 3252 6 -3253 3252 -1 -3272 3252 -1 -3652 3252 -1 -3253 3253 6 -3254 3253 -1 -3273 3253 -1 -3653 3253 -1 -3254 3254 6 -3255 3254 -1 -3274 3254 -1 -3654 3254 -1 -3255 3255 6 -3256 3255 -1 -3275 3255 -1 -3655 3255 -1 -3256 3256 6 -3257 3256 -1 -3276 3256 -1 -3656 3256 -1 -3257 3257 6 -3258 3257 -1 -3277 3257 -1 -3657 3257 -1 -3258 3258 6 -3259 3258 -1 -3278 3258 -1 -3658 3258 -1 -3259 3259 6 -3260 3259 -1 -3279 3259 -1 -3659 3259 -1 -3260 3260 6 -3280 3260 -1 -3660 3260 -1 -3261 3261 6 -3262 3261 -1 -3281 3261 -1 -3661 3261 -1 -3262 3262 6 -3263 3262 -1 -3282 3262 -1 -3662 3262 -1 -3263 3263 6 -3264 3263 -1 -3283 3263 -1 -3663 3263 -1 -3264 3264 6 -3265 3264 -1 -3284 3264 -1 -3664 3264 -1 -3265 3265 6 -3266 3265 -1 -3285 3265 -1 -3665 3265 -1 -3266 3266 6 -3267 3266 -1 -3286 3266 -1 -3666 3266 -1 -3267 3267 6 -3268 3267 -1 -3287 3267 -1 -3667 3267 -1 -3268 3268 6 -3269 3268 -1 -3288 3268 -1 -3668 3268 -1 -3269 3269 6 -3270 3269 -1 -3289 3269 -1 -3669 3269 -1 -3270 3270 6 -3271 3270 -1 -3290 3270 -1 -3670 3270 -1 -3271 3271 6 -3272 3271 -1 -3291 3271 -1 -3671 3271 -1 -3272 3272 6 -3273 3272 -1 -3292 3272 -1 -3672 3272 -1 -3273 3273 6 -3274 3273 -1 -3293 3273 -1 -3673 3273 -1 -3274 3274 6 -3275 3274 -1 -3294 3274 -1 -3674 3274 -1 -3275 3275 6 -3276 3275 -1 -3295 3275 -1 -3675 3275 -1 -3276 3276 6 -3277 3276 -1 -3296 3276 -1 -3676 3276 -1 -3277 3277 6 -3278 3277 -1 -3297 3277 -1 -3677 3277 -1 -3278 3278 6 -3279 3278 -1 -3298 3278 -1 -3678 3278 -1 -3279 3279 6 -3280 3279 -1 -3299 3279 -1 -3679 3279 -1 -3280 3280 6 -3300 3280 -1 -3680 3280 -1 -3281 3281 6 -3282 3281 -1 -3301 3281 -1 -3681 3281 -1 -3282 3282 6 -3283 3282 -1 -3302 3282 -1 -3682 3282 -1 -3283 3283 6 -3284 3283 -1 -3303 3283 -1 -3683 3283 -1 -3284 3284 6 -3285 3284 -1 -3304 3284 -1 -3684 3284 -1 -3285 3285 6 -3286 3285 -1 -3305 3285 -1 -3685 3285 -1 -3286 3286 6 -3287 3286 -1 -3306 3286 -1 -3686 3286 -1 -3287 3287 6 -3288 3287 -1 -3307 3287 -1 -3687 3287 -1 -3288 3288 6 -3289 3288 -1 -3308 3288 -1 -3688 3288 -1 -3289 3289 6 -3290 3289 -1 -3309 3289 -1 -3689 3289 -1 -3290 3290 6 -3291 3290 -1 -3310 3290 -1 -3690 3290 -1 -3291 3291 6 -3292 3291 -1 -3311 3291 -1 -3691 3291 -1 -3292 3292 6 -3293 3292 -1 -3312 3292 -1 -3692 3292 -1 -3293 3293 6 -3294 3293 -1 -3313 3293 -1 -3693 3293 -1 -3294 3294 6 -3295 3294 -1 -3314 3294 -1 -3694 3294 -1 -3295 3295 6 -3296 3295 -1 -3315 3295 -1 -3695 3295 -1 -3296 3296 6 -3297 3296 -1 -3316 3296 -1 -3696 3296 -1 -3297 3297 6 -3298 3297 -1 -3317 3297 -1 -3697 3297 -1 -3298 3298 6 -3299 3298 -1 -3318 3298 -1 -3698 3298 -1 -3299 3299 6 -3300 3299 -1 -3319 3299 -1 -3699 3299 -1 -3300 3300 6 -3320 3300 -1 -3700 3300 -1 -3301 3301 6 -3302 3301 -1 -3321 3301 -1 -3701 3301 -1 -3302 3302 6 -3303 3302 -1 -3322 3302 -1 -3702 3302 -1 -3303 3303 6 -3304 3303 -1 -3323 3303 -1 -3703 3303 -1 -3304 3304 6 -3305 3304 -1 -3324 3304 -1 -3704 3304 -1 -3305 3305 6 -3306 3305 -1 -3325 3305 -1 -3705 3305 -1 -3306 3306 6 -3307 3306 -1 -3326 3306 -1 -3706 3306 -1 -3307 3307 6 -3308 3307 -1 -3327 3307 -1 -3707 3307 -1 -3308 3308 6 -3309 3308 -1 -3328 3308 -1 -3708 3308 -1 -3309 3309 6 -3310 3309 -1 -3329 3309 -1 -3709 3309 -1 -3310 3310 6 -3311 3310 -1 -3330 3310 -1 -3710 3310 -1 -3311 3311 6 -3312 3311 -1 -3331 3311 -1 -3711 3311 -1 -3312 3312 6 -3313 3312 -1 -3332 3312 -1 -3712 3312 -1 -3313 3313 6 -3314 3313 -1 -3333 3313 -1 -3713 3313 -1 -3314 3314 6 -3315 3314 -1 -3334 3314 -1 -3714 3314 -1 -3315 3315 6 -3316 3315 -1 -3335 3315 -1 -3715 3315 -1 -3316 3316 6 -3317 3316 -1 -3336 3316 -1 -3716 3316 -1 -3317 3317 6 -3318 3317 -1 -3337 3317 -1 -3717 3317 -1 -3318 3318 6 -3319 3318 -1 -3338 3318 -1 -3718 3318 -1 -3319 3319 6 -3320 3319 -1 -3339 3319 -1 -3719 3319 -1 -3320 3320 6 -3340 3320 -1 -3720 3320 -1 -3321 3321 6 -3322 3321 -1 -3341 3321 -1 -3721 3321 -1 -3322 3322 6 -3323 3322 -1 -3342 3322 -1 -3722 3322 -1 -3323 3323 6 -3324 3323 -1 -3343 3323 -1 -3723 3323 -1 -3324 3324 6 -3325 3324 -1 -3344 3324 -1 -3724 3324 -1 -3325 3325 6 -3326 3325 -1 -3345 3325 -1 -3725 3325 -1 -3326 3326 6 -3327 3326 -1 -3346 3326 -1 -3726 3326 -1 -3327 3327 6 -3328 3327 -1 -3347 3327 -1 -3727 3327 -1 -3328 3328 6 -3329 3328 -1 -3348 3328 -1 -3728 3328 -1 -3329 3329 6 -3330 3329 -1 -3349 3329 -1 -3729 3329 -1 -3330 3330 6 -3331 3330 -1 -3350 3330 -1 -3730 3330 -1 -3331 3331 6 -3332 3331 -1 -3351 3331 -1 -3731 3331 -1 -3332 3332 6 -3333 3332 -1 -3352 3332 -1 -3732 3332 -1 -3333 3333 6 -3334 3333 -1 -3353 3333 -1 -3733 3333 -1 -3334 3334 6 -3335 3334 -1 -3354 3334 -1 -3734 3334 -1 -3335 3335 6 -3336 3335 -1 -3355 3335 -1 -3735 3335 -1 -3336 3336 6 -3337 3336 -1 -3356 3336 -1 -3736 3336 -1 -3337 3337 6 -3338 3337 -1 -3357 3337 -1 -3737 3337 -1 -3338 3338 6 -3339 3338 -1 -3358 3338 -1 -3738 3338 -1 -3339 3339 6 -3340 3339 -1 -3359 3339 -1 -3739 3339 -1 -3340 3340 6 -3360 3340 -1 -3740 3340 -1 -3341 3341 6 -3342 3341 -1 -3361 3341 -1 -3741 3341 -1 -3342 3342 6 -3343 3342 -1 -3362 3342 -1 -3742 3342 -1 -3343 3343 6 -3344 3343 -1 -3363 3343 -1 -3743 3343 -1 -3344 3344 6 -3345 3344 -1 -3364 3344 -1 -3744 3344 -1 -3345 3345 6 -3346 3345 -1 -3365 3345 -1 -3745 3345 -1 -3346 3346 6 -3347 3346 -1 -3366 3346 -1 -3746 3346 -1 -3347 3347 6 -3348 3347 -1 -3367 3347 -1 -3747 3347 -1 -3348 3348 6 -3349 3348 -1 -3368 3348 -1 -3748 3348 -1 -3349 3349 6 -3350 3349 -1 -3369 3349 -1 -3749 3349 -1 -3350 3350 6 -3351 3350 -1 -3370 3350 -1 -3750 3350 -1 -3351 3351 6 -3352 3351 -1 -3371 3351 -1 -3751 3351 -1 -3352 3352 6 -3353 3352 -1 -3372 3352 -1 -3752 3352 -1 -3353 3353 6 -3354 3353 -1 -3373 3353 -1 -3753 3353 -1 -3354 3354 6 -3355 3354 -1 -3374 3354 -1 -3754 3354 -1 -3355 3355 6 -3356 3355 -1 -3375 3355 -1 -3755 3355 -1 -3356 3356 6 -3357 3356 -1 -3376 3356 -1 -3756 3356 -1 -3357 3357 6 -3358 3357 -1 -3377 3357 -1 -3757 3357 -1 -3358 3358 6 -3359 3358 -1 -3378 3358 -1 -3758 3358 -1 -3359 3359 6 -3360 3359 -1 -3379 3359 -1 -3759 3359 -1 -3360 3360 6 -3380 3360 -1 -3760 3360 -1 -3361 3361 6 -3362 3361 -1 -3381 3361 -1 -3761 3361 -1 -3362 3362 6 -3363 3362 -1 -3382 3362 -1 -3762 3362 -1 -3363 3363 6 -3364 3363 -1 -3383 3363 -1 -3763 3363 -1 -3364 3364 6 -3365 3364 -1 -3384 3364 -1 -3764 3364 -1 -3365 3365 6 -3366 3365 -1 -3385 3365 -1 -3765 3365 -1 -3366 3366 6 -3367 3366 -1 -3386 3366 -1 -3766 3366 -1 -3367 3367 6 -3368 3367 -1 -3387 3367 -1 -3767 3367 -1 -3368 3368 6 -3369 3368 -1 -3388 3368 -1 -3768 3368 -1 -3369 3369 6 -3370 3369 -1 -3389 3369 -1 -3769 3369 -1 -3370 3370 6 -3371 3370 -1 -3390 3370 -1 -3770 3370 -1 -3371 3371 6 -3372 3371 -1 -3391 3371 -1 -3771 3371 -1 -3372 3372 6 -3373 3372 -1 -3392 3372 -1 -3772 3372 -1 -3373 3373 6 -3374 3373 -1 -3393 3373 -1 -3773 3373 -1 -3374 3374 6 -3375 3374 -1 -3394 3374 -1 -3774 3374 -1 -3375 3375 6 -3376 3375 -1 -3395 3375 -1 -3775 3375 -1 -3376 3376 6 -3377 3376 -1 -3396 3376 -1 -3776 3376 -1 -3377 3377 6 -3378 3377 -1 -3397 3377 -1 -3777 3377 -1 -3378 3378 6 -3379 3378 -1 -3398 3378 -1 -3778 3378 -1 -3379 3379 6 -3380 3379 -1 -3399 3379 -1 -3779 3379 -1 -3380 3380 6 -3400 3380 -1 -3780 3380 -1 -3381 3381 6 -3382 3381 -1 -3401 3381 -1 -3781 3381 -1 -3382 3382 6 -3383 3382 -1 -3402 3382 -1 -3782 3382 -1 -3383 3383 6 -3384 3383 -1 -3403 3383 -1 -3783 3383 -1 -3384 3384 6 -3385 3384 -1 -3404 3384 -1 -3784 3384 -1 -3385 3385 6 -3386 3385 -1 -3405 3385 -1 -3785 3385 -1 -3386 3386 6 -3387 3386 -1 -3406 3386 -1 -3786 3386 -1 -3387 3387 6 -3388 3387 -1 -3407 3387 -1 -3787 3387 -1 -3388 3388 6 -3389 3388 -1 -3408 3388 -1 -3788 3388 -1 -3389 3389 6 -3390 3389 -1 -3409 3389 -1 -3789 3389 -1 -3390 3390 6 -3391 3390 -1 -3410 3390 -1 -3790 3390 -1 -3391 3391 6 -3392 3391 -1 -3411 3391 -1 -3791 3391 -1 -3392 3392 6 -3393 3392 -1 -3412 3392 -1 -3792 3392 -1 -3393 3393 6 -3394 3393 -1 -3413 3393 -1 -3793 3393 -1 -3394 3394 6 -3395 3394 -1 -3414 3394 -1 -3794 3394 -1 -3395 3395 6 -3396 3395 -1 -3415 3395 -1 -3795 3395 -1 -3396 3396 6 -3397 3396 -1 -3416 3396 -1 -3796 3396 -1 -3397 3397 6 -3398 3397 -1 -3417 3397 -1 -3797 3397 -1 -3398 3398 6 -3399 3398 -1 -3418 3398 -1 -3798 3398 -1 -3399 3399 6 -3400 3399 -1 -3419 3399 -1 -3799 3399 -1 -3400 3400 6 -3420 3400 -1 -3800 3400 -1 -3401 3401 6 -3402 3401 -1 -3421 3401 -1 -3801 3401 -1 -3402 3402 6 -3403 3402 -1 -3422 3402 -1 -3802 3402 -1 -3403 3403 6 -3404 3403 -1 -3423 3403 -1 -3803 3403 -1 -3404 3404 6 -3405 3404 -1 -3424 3404 -1 -3804 3404 -1 -3405 3405 6 -3406 3405 -1 -3425 3405 -1 -3805 3405 -1 -3406 3406 6 -3407 3406 -1 -3426 3406 -1 -3806 3406 -1 -3407 3407 6 -3408 3407 -1 -3427 3407 -1 -3807 3407 -1 -3408 3408 6 -3409 3408 -1 -3428 3408 -1 -3808 3408 -1 -3409 3409 6 -3410 3409 -1 -3429 3409 -1 -3809 3409 -1 -3410 3410 6 -3411 3410 -1 -3430 3410 -1 -3810 3410 -1 -3411 3411 6 -3412 3411 -1 -3431 3411 -1 -3811 3411 -1 -3412 3412 6 -3413 3412 -1 -3432 3412 -1 -3812 3412 -1 -3413 3413 6 -3414 3413 -1 -3433 3413 -1 -3813 3413 -1 -3414 3414 6 -3415 3414 -1 -3434 3414 -1 -3814 3414 -1 -3415 3415 6 -3416 3415 -1 -3435 3415 -1 -3815 3415 -1 -3416 3416 6 -3417 3416 -1 -3436 3416 -1 -3816 3416 -1 -3417 3417 6 -3418 3417 -1 -3437 3417 -1 -3817 3417 -1 -3418 3418 6 -3419 3418 -1 -3438 3418 -1 -3818 3418 -1 -3419 3419 6 -3420 3419 -1 -3439 3419 -1 -3819 3419 -1 -3420 3420 6 -3440 3420 -1 -3820 3420 -1 -3421 3421 6 -3422 3421 -1 -3441 3421 -1 -3821 3421 -1 -3422 3422 6 -3423 3422 -1 -3442 3422 -1 -3822 3422 -1 -3423 3423 6 -3424 3423 -1 -3443 3423 -1 -3823 3423 -1 -3424 3424 6 -3425 3424 -1 -3444 3424 -1 -3824 3424 -1 -3425 3425 6 -3426 3425 -1 -3445 3425 -1 -3825 3425 -1 -3426 3426 6 -3427 3426 -1 -3446 3426 -1 -3826 3426 -1 -3427 3427 6 -3428 3427 -1 -3447 3427 -1 -3827 3427 -1 -3428 3428 6 -3429 3428 -1 -3448 3428 -1 -3828 3428 -1 -3429 3429 6 -3430 3429 -1 -3449 3429 -1 -3829 3429 -1 -3430 3430 6 -3431 3430 -1 -3450 3430 -1 -3830 3430 -1 -3431 3431 6 -3432 3431 -1 -3451 3431 -1 -3831 3431 -1 -3432 3432 6 -3433 3432 -1 -3452 3432 -1 -3832 3432 -1 -3433 3433 6 -3434 3433 -1 -3453 3433 -1 -3833 3433 -1 -3434 3434 6 -3435 3434 -1 -3454 3434 -1 -3834 3434 -1 -3435 3435 6 -3436 3435 -1 -3455 3435 -1 -3835 3435 -1 -3436 3436 6 -3437 3436 -1 -3456 3436 -1 -3836 3436 -1 -3437 3437 6 -3438 3437 -1 -3457 3437 -1 -3837 3437 -1 -3438 3438 6 -3439 3438 -1 -3458 3438 -1 -3838 3438 -1 -3439 3439 6 -3440 3439 -1 -3459 3439 -1 -3839 3439 -1 -3440 3440 6 -3460 3440 -1 -3840 3440 -1 -3441 3441 6 -3442 3441 -1 -3461 3441 -1 -3841 3441 -1 -3442 3442 6 -3443 3442 -1 -3462 3442 -1 -3842 3442 -1 -3443 3443 6 -3444 3443 -1 -3463 3443 -1 -3843 3443 -1 -3444 3444 6 -3445 3444 -1 -3464 3444 -1 -3844 3444 -1 -3445 3445 6 -3446 3445 -1 -3465 3445 -1 -3845 3445 -1 -3446 3446 6 -3447 3446 -1 -3466 3446 -1 -3846 3446 -1 -3447 3447 6 -3448 3447 -1 -3467 3447 -1 -3847 3447 -1 -3448 3448 6 -3449 3448 -1 -3468 3448 -1 -3848 3448 -1 -3449 3449 6 -3450 3449 -1 -3469 3449 -1 -3849 3449 -1 -3450 3450 6 -3451 3450 -1 -3470 3450 -1 -3850 3450 -1 -3451 3451 6 -3452 3451 -1 -3471 3451 -1 -3851 3451 -1 -3452 3452 6 -3453 3452 -1 -3472 3452 -1 -3852 3452 -1 -3453 3453 6 -3454 3453 -1 -3473 3453 -1 -3853 3453 -1 -3454 3454 6 -3455 3454 -1 -3474 3454 -1 -3854 3454 -1 -3455 3455 6 -3456 3455 -1 -3475 3455 -1 -3855 3455 -1 -3456 3456 6 -3457 3456 -1 -3476 3456 -1 -3856 3456 -1 -3457 3457 6 -3458 3457 -1 -3477 3457 -1 -3857 3457 -1 -3458 3458 6 -3459 3458 -1 -3478 3458 -1 -3858 3458 -1 -3459 3459 6 -3460 3459 -1 -3479 3459 -1 -3859 3459 -1 -3460 3460 6 -3480 3460 -1 -3860 3460 -1 -3461 3461 6 -3462 3461 -1 -3481 3461 -1 -3861 3461 -1 -3462 3462 6 -3463 3462 -1 -3482 3462 -1 -3862 3462 -1 -3463 3463 6 -3464 3463 -1 -3483 3463 -1 -3863 3463 -1 -3464 3464 6 -3465 3464 -1 -3484 3464 -1 -3864 3464 -1 -3465 3465 6 -3466 3465 -1 -3485 3465 -1 -3865 3465 -1 -3466 3466 6 -3467 3466 -1 -3486 3466 -1 -3866 3466 -1 -3467 3467 6 -3468 3467 -1 -3487 3467 -1 -3867 3467 -1 -3468 3468 6 -3469 3468 -1 -3488 3468 -1 -3868 3468 -1 -3469 3469 6 -3470 3469 -1 -3489 3469 -1 -3869 3469 -1 -3470 3470 6 -3471 3470 -1 -3490 3470 -1 -3870 3470 -1 -3471 3471 6 -3472 3471 -1 -3491 3471 -1 -3871 3471 -1 -3472 3472 6 -3473 3472 -1 -3492 3472 -1 -3872 3472 -1 -3473 3473 6 -3474 3473 -1 -3493 3473 -1 -3873 3473 -1 -3474 3474 6 -3475 3474 -1 -3494 3474 -1 -3874 3474 -1 -3475 3475 6 -3476 3475 -1 -3495 3475 -1 -3875 3475 -1 -3476 3476 6 -3477 3476 -1 -3496 3476 -1 -3876 3476 -1 -3477 3477 6 -3478 3477 -1 -3497 3477 -1 -3877 3477 -1 -3478 3478 6 -3479 3478 -1 -3498 3478 -1 -3878 3478 -1 -3479 3479 6 -3480 3479 -1 -3499 3479 -1 -3879 3479 -1 -3480 3480 6 -3500 3480 -1 -3880 3480 -1 -3481 3481 6 -3482 3481 -1 -3501 3481 -1 -3881 3481 -1 -3482 3482 6 -3483 3482 -1 -3502 3482 -1 -3882 3482 -1 -3483 3483 6 -3484 3483 -1 -3503 3483 -1 -3883 3483 -1 -3484 3484 6 -3485 3484 -1 -3504 3484 -1 -3884 3484 -1 -3485 3485 6 -3486 3485 -1 -3505 3485 -1 -3885 3485 -1 -3486 3486 6 -3487 3486 -1 -3506 3486 -1 -3886 3486 -1 -3487 3487 6 -3488 3487 -1 -3507 3487 -1 -3887 3487 -1 -3488 3488 6 -3489 3488 -1 -3508 3488 -1 -3888 3488 -1 -3489 3489 6 -3490 3489 -1 -3509 3489 -1 -3889 3489 -1 -3490 3490 6 -3491 3490 -1 -3510 3490 -1 -3890 3490 -1 -3491 3491 6 -3492 3491 -1 -3511 3491 -1 -3891 3491 -1 -3492 3492 6 -3493 3492 -1 -3512 3492 -1 -3892 3492 -1 -3493 3493 6 -3494 3493 -1 -3513 3493 -1 -3893 3493 -1 -3494 3494 6 -3495 3494 -1 -3514 3494 -1 -3894 3494 -1 -3495 3495 6 -3496 3495 -1 -3515 3495 -1 -3895 3495 -1 -3496 3496 6 -3497 3496 -1 -3516 3496 -1 -3896 3496 -1 -3497 3497 6 -3498 3497 -1 -3517 3497 -1 -3897 3497 -1 -3498 3498 6 -3499 3498 -1 -3518 3498 -1 -3898 3498 -1 -3499 3499 6 -3500 3499 -1 -3519 3499 -1 -3899 3499 -1 -3500 3500 6 -3520 3500 -1 -3900 3500 -1 -3501 3501 6 -3502 3501 -1 -3521 3501 -1 -3901 3501 -1 -3502 3502 6 -3503 3502 -1 -3522 3502 -1 -3902 3502 -1 -3503 3503 6 -3504 3503 -1 -3523 3503 -1 -3903 3503 -1 -3504 3504 6 -3505 3504 -1 -3524 3504 -1 -3904 3504 -1 -3505 3505 6 -3506 3505 -1 -3525 3505 -1 -3905 3505 -1 -3506 3506 6 -3507 3506 -1 -3526 3506 -1 -3906 3506 -1 -3507 3507 6 -3508 3507 -1 -3527 3507 -1 -3907 3507 -1 -3508 3508 6 -3509 3508 -1 -3528 3508 -1 -3908 3508 -1 -3509 3509 6 -3510 3509 -1 -3529 3509 -1 -3909 3509 -1 -3510 3510 6 -3511 3510 -1 -3530 3510 -1 -3910 3510 -1 -3511 3511 6 -3512 3511 -1 -3531 3511 -1 -3911 3511 -1 -3512 3512 6 -3513 3512 -1 -3532 3512 -1 -3912 3512 -1 -3513 3513 6 -3514 3513 -1 -3533 3513 -1 -3913 3513 -1 -3514 3514 6 -3515 3514 -1 -3534 3514 -1 -3914 3514 -1 -3515 3515 6 -3516 3515 -1 -3535 3515 -1 -3915 3515 -1 -3516 3516 6 -3517 3516 -1 -3536 3516 -1 -3916 3516 -1 -3517 3517 6 -3518 3517 -1 -3537 3517 -1 -3917 3517 -1 -3518 3518 6 -3519 3518 -1 -3538 3518 -1 -3918 3518 -1 -3519 3519 6 -3520 3519 -1 -3539 3519 -1 -3919 3519 -1 -3520 3520 6 -3540 3520 -1 -3920 3520 -1 -3521 3521 6 -3522 3521 -1 -3541 3521 -1 -3921 3521 -1 -3522 3522 6 -3523 3522 -1 -3542 3522 -1 -3922 3522 -1 -3523 3523 6 -3524 3523 -1 -3543 3523 -1 -3923 3523 -1 -3524 3524 6 -3525 3524 -1 -3544 3524 -1 -3924 3524 -1 -3525 3525 6 -3526 3525 -1 -3545 3525 -1 -3925 3525 -1 -3526 3526 6 -3527 3526 -1 -3546 3526 -1 -3926 3526 -1 -3527 3527 6 -3528 3527 -1 -3547 3527 -1 -3927 3527 -1 -3528 3528 6 -3529 3528 -1 -3548 3528 -1 -3928 3528 -1 -3529 3529 6 -3530 3529 -1 -3549 3529 -1 -3929 3529 -1 -3530 3530 6 -3531 3530 -1 -3550 3530 -1 -3930 3530 -1 -3531 3531 6 -3532 3531 -1 -3551 3531 -1 -3931 3531 -1 -3532 3532 6 -3533 3532 -1 -3552 3532 -1 -3932 3532 -1 -3533 3533 6 -3534 3533 -1 -3553 3533 -1 -3933 3533 -1 -3534 3534 6 -3535 3534 -1 -3554 3534 -1 -3934 3534 -1 -3535 3535 6 -3536 3535 -1 -3555 3535 -1 -3935 3535 -1 -3536 3536 6 -3537 3536 -1 -3556 3536 -1 -3936 3536 -1 -3537 3537 6 -3538 3537 -1 -3557 3537 -1 -3937 3537 -1 -3538 3538 6 -3539 3538 -1 -3558 3538 -1 -3938 3538 -1 -3539 3539 6 -3540 3539 -1 -3559 3539 -1 -3939 3539 -1 -3540 3540 6 -3560 3540 -1 -3940 3540 -1 -3541 3541 6 -3542 3541 -1 -3561 3541 -1 -3941 3541 -1 -3542 3542 6 -3543 3542 -1 -3562 3542 -1 -3942 3542 -1 -3543 3543 6 -3544 3543 -1 -3563 3543 -1 -3943 3543 -1 -3544 3544 6 -3545 3544 -1 -3564 3544 -1 -3944 3544 -1 -3545 3545 6 -3546 3545 -1 -3565 3545 -1 -3945 3545 -1 -3546 3546 6 -3547 3546 -1 -3566 3546 -1 -3946 3546 -1 -3547 3547 6 -3548 3547 -1 -3567 3547 -1 -3947 3547 -1 -3548 3548 6 -3549 3548 -1 -3568 3548 -1 -3948 3548 -1 -3549 3549 6 -3550 3549 -1 -3569 3549 -1 -3949 3549 -1 -3550 3550 6 -3551 3550 -1 -3570 3550 -1 -3950 3550 -1 -3551 3551 6 -3552 3551 -1 -3571 3551 -1 -3951 3551 -1 -3552 3552 6 -3553 3552 -1 -3572 3552 -1 -3952 3552 -1 -3553 3553 6 -3554 3553 -1 -3573 3553 -1 -3953 3553 -1 -3554 3554 6 -3555 3554 -1 -3574 3554 -1 -3954 3554 -1 -3555 3555 6 -3556 3555 -1 -3575 3555 -1 -3955 3555 -1 -3556 3556 6 -3557 3556 -1 -3576 3556 -1 -3956 3556 -1 -3557 3557 6 -3558 3557 -1 -3577 3557 -1 -3957 3557 -1 -3558 3558 6 -3559 3558 -1 -3578 3558 -1 -3958 3558 -1 -3559 3559 6 -3560 3559 -1 -3579 3559 -1 -3959 3559 -1 -3560 3560 6 -3580 3560 -1 -3960 3560 -1 -3561 3561 6 -3562 3561 -1 -3581 3561 -1 -3961 3561 -1 -3562 3562 6 -3563 3562 -1 -3582 3562 -1 -3962 3562 -1 -3563 3563 6 -3564 3563 -1 -3583 3563 -1 -3963 3563 -1 -3564 3564 6 -3565 3564 -1 -3584 3564 -1 -3964 3564 -1 -3565 3565 6 -3566 3565 -1 -3585 3565 -1 -3965 3565 -1 -3566 3566 6 -3567 3566 -1 -3586 3566 -1 -3966 3566 -1 -3567 3567 6 -3568 3567 -1 -3587 3567 -1 -3967 3567 -1 -3568 3568 6 -3569 3568 -1 -3588 3568 -1 -3968 3568 -1 -3569 3569 6 -3570 3569 -1 -3589 3569 -1 -3969 3569 -1 -3570 3570 6 -3571 3570 -1 -3590 3570 -1 -3970 3570 -1 -3571 3571 6 -3572 3571 -1 -3591 3571 -1 -3971 3571 -1 -3572 3572 6 -3573 3572 -1 -3592 3572 -1 -3972 3572 -1 -3573 3573 6 -3574 3573 -1 -3593 3573 -1 -3973 3573 -1 -3574 3574 6 -3575 3574 -1 -3594 3574 -1 -3974 3574 -1 -3575 3575 6 -3576 3575 -1 -3595 3575 -1 -3975 3575 -1 -3576 3576 6 -3577 3576 -1 -3596 3576 -1 -3976 3576 -1 -3577 3577 6 -3578 3577 -1 -3597 3577 -1 -3977 3577 -1 -3578 3578 6 -3579 3578 -1 -3598 3578 -1 -3978 3578 -1 -3579 3579 6 -3580 3579 -1 -3599 3579 -1 -3979 3579 -1 -3580 3580 6 -3600 3580 -1 -3980 3580 -1 -3581 3581 6 -3582 3581 -1 -3981 3581 -1 -3582 3582 6 -3583 3582 -1 -3982 3582 -1 -3583 3583 6 -3584 3583 -1 -3983 3583 -1 -3584 3584 6 -3585 3584 -1 -3984 3584 -1 -3585 3585 6 -3586 3585 -1 -3985 3585 -1 -3586 3586 6 -3587 3586 -1 -3986 3586 -1 -3587 3587 6 -3588 3587 -1 -3987 3587 -1 -3588 3588 6 -3589 3588 -1 -3988 3588 -1 -3589 3589 6 -3590 3589 -1 -3989 3589 -1 -3590 3590 6 -3591 3590 -1 -3990 3590 -1 -3591 3591 6 -3592 3591 -1 -3991 3591 -1 -3592 3592 6 -3593 3592 -1 -3992 3592 -1 -3593 3593 6 -3594 3593 -1 -3993 3593 -1 -3594 3594 6 -3595 3594 -1 -3994 3594 -1 -3595 3595 6 -3596 3595 -1 -3995 3595 -1 -3596 3596 6 -3597 3596 -1 -3996 3596 -1 -3597 3597 6 -3598 3597 -1 -3997 3597 -1 -3598 3598 6 -3599 3598 -1 -3998 3598 -1 -3599 3599 6 -3600 3599 -1 -3999 3599 -1 -3600 3600 6 -4000 3600 -1 -3601 3601 6 -3602 3601 -1 -3621 3601 -1 -4001 3601 -1 -3602 3602 6 -3603 3602 -1 -3622 3602 -1 -4002 3602 -1 -3603 3603 6 -3604 3603 -1 -3623 3603 -1 -4003 3603 -1 -3604 3604 6 -3605 3604 -1 -3624 3604 -1 -4004 3604 -1 -3605 3605 6 -3606 3605 -1 -3625 3605 -1 -4005 3605 -1 -3606 3606 6 -3607 3606 -1 -3626 3606 -1 -4006 3606 -1 -3607 3607 6 -3608 3607 -1 -3627 3607 -1 -4007 3607 -1 -3608 3608 6 -3609 3608 -1 -3628 3608 -1 -4008 3608 -1 -3609 3609 6 -3610 3609 -1 -3629 3609 -1 -4009 3609 -1 -3610 3610 6 -3611 3610 -1 -3630 3610 -1 -4010 3610 -1 -3611 3611 6 -3612 3611 -1 -3631 3611 -1 -4011 3611 -1 -3612 3612 6 -3613 3612 -1 -3632 3612 -1 -4012 3612 -1 -3613 3613 6 -3614 3613 -1 -3633 3613 -1 -4013 3613 -1 -3614 3614 6 -3615 3614 -1 -3634 3614 -1 -4014 3614 -1 -3615 3615 6 -3616 3615 -1 -3635 3615 -1 -4015 3615 -1 -3616 3616 6 -3617 3616 -1 -3636 3616 -1 -4016 3616 -1 -3617 3617 6 -3618 3617 -1 -3637 3617 -1 -4017 3617 -1 -3618 3618 6 -3619 3618 -1 -3638 3618 -1 -4018 3618 -1 -3619 3619 6 -3620 3619 -1 -3639 3619 -1 -4019 3619 -1 -3620 3620 6 -3640 3620 -1 -4020 3620 -1 -3621 3621 6 -3622 3621 -1 -3641 3621 -1 -4021 3621 -1 -3622 3622 6 -3623 3622 -1 -3642 3622 -1 -4022 3622 -1 -3623 3623 6 -3624 3623 -1 -3643 3623 -1 -4023 3623 -1 -3624 3624 6 -3625 3624 -1 -3644 3624 -1 -4024 3624 -1 -3625 3625 6 -3626 3625 -1 -3645 3625 -1 -4025 3625 -1 -3626 3626 6 -3627 3626 -1 -3646 3626 -1 -4026 3626 -1 -3627 3627 6 -3628 3627 -1 -3647 3627 -1 -4027 3627 -1 -3628 3628 6 -3629 3628 -1 -3648 3628 -1 -4028 3628 -1 -3629 3629 6 -3630 3629 -1 -3649 3629 -1 -4029 3629 -1 -3630 3630 6 -3631 3630 -1 -3650 3630 -1 -4030 3630 -1 -3631 3631 6 -3632 3631 -1 -3651 3631 -1 -4031 3631 -1 -3632 3632 6 -3633 3632 -1 -3652 3632 -1 -4032 3632 -1 -3633 3633 6 -3634 3633 -1 -3653 3633 -1 -4033 3633 -1 -3634 3634 6 -3635 3634 -1 -3654 3634 -1 -4034 3634 -1 -3635 3635 6 -3636 3635 -1 -3655 3635 -1 -4035 3635 -1 -3636 3636 6 -3637 3636 -1 -3656 3636 -1 -4036 3636 -1 -3637 3637 6 -3638 3637 -1 -3657 3637 -1 -4037 3637 -1 -3638 3638 6 -3639 3638 -1 -3658 3638 -1 -4038 3638 -1 -3639 3639 6 -3640 3639 -1 -3659 3639 -1 -4039 3639 -1 -3640 3640 6 -3660 3640 -1 -4040 3640 -1 -3641 3641 6 -3642 3641 -1 -3661 3641 -1 -4041 3641 -1 -3642 3642 6 -3643 3642 -1 -3662 3642 -1 -4042 3642 -1 -3643 3643 6 -3644 3643 -1 -3663 3643 -1 -4043 3643 -1 -3644 3644 6 -3645 3644 -1 -3664 3644 -1 -4044 3644 -1 -3645 3645 6 -3646 3645 -1 -3665 3645 -1 -4045 3645 -1 -3646 3646 6 -3647 3646 -1 -3666 3646 -1 -4046 3646 -1 -3647 3647 6 -3648 3647 -1 -3667 3647 -1 -4047 3647 -1 -3648 3648 6 -3649 3648 -1 -3668 3648 -1 -4048 3648 -1 -3649 3649 6 -3650 3649 -1 -3669 3649 -1 -4049 3649 -1 -3650 3650 6 -3651 3650 -1 -3670 3650 -1 -4050 3650 -1 -3651 3651 6 -3652 3651 -1 -3671 3651 -1 -4051 3651 -1 -3652 3652 6 -3653 3652 -1 -3672 3652 -1 -4052 3652 -1 -3653 3653 6 -3654 3653 -1 -3673 3653 -1 -4053 3653 -1 -3654 3654 6 -3655 3654 -1 -3674 3654 -1 -4054 3654 -1 -3655 3655 6 -3656 3655 -1 -3675 3655 -1 -4055 3655 -1 -3656 3656 6 -3657 3656 -1 -3676 3656 -1 -4056 3656 -1 -3657 3657 6 -3658 3657 -1 -3677 3657 -1 -4057 3657 -1 -3658 3658 6 -3659 3658 -1 -3678 3658 -1 -4058 3658 -1 -3659 3659 6 -3660 3659 -1 -3679 3659 -1 -4059 3659 -1 -3660 3660 6 -3680 3660 -1 -4060 3660 -1 -3661 3661 6 -3662 3661 -1 -3681 3661 -1 -4061 3661 -1 -3662 3662 6 -3663 3662 -1 -3682 3662 -1 -4062 3662 -1 -3663 3663 6 -3664 3663 -1 -3683 3663 -1 -4063 3663 -1 -3664 3664 6 -3665 3664 -1 -3684 3664 -1 -4064 3664 -1 -3665 3665 6 -3666 3665 -1 -3685 3665 -1 -4065 3665 -1 -3666 3666 6 -3667 3666 -1 -3686 3666 -1 -4066 3666 -1 -3667 3667 6 -3668 3667 -1 -3687 3667 -1 -4067 3667 -1 -3668 3668 6 -3669 3668 -1 -3688 3668 -1 -4068 3668 -1 -3669 3669 6 -3670 3669 -1 -3689 3669 -1 -4069 3669 -1 -3670 3670 6 -3671 3670 -1 -3690 3670 -1 -4070 3670 -1 -3671 3671 6 -3672 3671 -1 -3691 3671 -1 -4071 3671 -1 -3672 3672 6 -3673 3672 -1 -3692 3672 -1 -4072 3672 -1 -3673 3673 6 -3674 3673 -1 -3693 3673 -1 -4073 3673 -1 -3674 3674 6 -3675 3674 -1 -3694 3674 -1 -4074 3674 -1 -3675 3675 6 -3676 3675 -1 -3695 3675 -1 -4075 3675 -1 -3676 3676 6 -3677 3676 -1 -3696 3676 -1 -4076 3676 -1 -3677 3677 6 -3678 3677 -1 -3697 3677 -1 -4077 3677 -1 -3678 3678 6 -3679 3678 -1 -3698 3678 -1 -4078 3678 -1 -3679 3679 6 -3680 3679 -1 -3699 3679 -1 -4079 3679 -1 -3680 3680 6 -3700 3680 -1 -4080 3680 -1 -3681 3681 6 -3682 3681 -1 -3701 3681 -1 -4081 3681 -1 -3682 3682 6 -3683 3682 -1 -3702 3682 -1 -4082 3682 -1 -3683 3683 6 -3684 3683 -1 -3703 3683 -1 -4083 3683 -1 -3684 3684 6 -3685 3684 -1 -3704 3684 -1 -4084 3684 -1 -3685 3685 6 -3686 3685 -1 -3705 3685 -1 -4085 3685 -1 -3686 3686 6 -3687 3686 -1 -3706 3686 -1 -4086 3686 -1 -3687 3687 6 -3688 3687 -1 -3707 3687 -1 -4087 3687 -1 -3688 3688 6 -3689 3688 -1 -3708 3688 -1 -4088 3688 -1 -3689 3689 6 -3690 3689 -1 -3709 3689 -1 -4089 3689 -1 -3690 3690 6 -3691 3690 -1 -3710 3690 -1 -4090 3690 -1 -3691 3691 6 -3692 3691 -1 -3711 3691 -1 -4091 3691 -1 -3692 3692 6 -3693 3692 -1 -3712 3692 -1 -4092 3692 -1 -3693 3693 6 -3694 3693 -1 -3713 3693 -1 -4093 3693 -1 -3694 3694 6 -3695 3694 -1 -3714 3694 -1 -4094 3694 -1 -3695 3695 6 -3696 3695 -1 -3715 3695 -1 -4095 3695 -1 -3696 3696 6 -3697 3696 -1 -3716 3696 -1 -4096 3696 -1 -3697 3697 6 -3698 3697 -1 -3717 3697 -1 -4097 3697 -1 -3698 3698 6 -3699 3698 -1 -3718 3698 -1 -4098 3698 -1 -3699 3699 6 -3700 3699 -1 -3719 3699 -1 -4099 3699 -1 -3700 3700 6 -3720 3700 -1 -4100 3700 -1 -3701 3701 6 -3702 3701 -1 -3721 3701 -1 -4101 3701 -1 -3702 3702 6 -3703 3702 -1 -3722 3702 -1 -4102 3702 -1 -3703 3703 6 -3704 3703 -1 -3723 3703 -1 -4103 3703 -1 -3704 3704 6 -3705 3704 -1 -3724 3704 -1 -4104 3704 -1 -3705 3705 6 -3706 3705 -1 -3725 3705 -1 -4105 3705 -1 -3706 3706 6 -3707 3706 -1 -3726 3706 -1 -4106 3706 -1 -3707 3707 6 -3708 3707 -1 -3727 3707 -1 -4107 3707 -1 -3708 3708 6 -3709 3708 -1 -3728 3708 -1 -4108 3708 -1 -3709 3709 6 -3710 3709 -1 -3729 3709 -1 -4109 3709 -1 -3710 3710 6 -3711 3710 -1 -3730 3710 -1 -4110 3710 -1 -3711 3711 6 -3712 3711 -1 -3731 3711 -1 -4111 3711 -1 -3712 3712 6 -3713 3712 -1 -3732 3712 -1 -4112 3712 -1 -3713 3713 6 -3714 3713 -1 -3733 3713 -1 -4113 3713 -1 -3714 3714 6 -3715 3714 -1 -3734 3714 -1 -4114 3714 -1 -3715 3715 6 -3716 3715 -1 -3735 3715 -1 -4115 3715 -1 -3716 3716 6 -3717 3716 -1 -3736 3716 -1 -4116 3716 -1 -3717 3717 6 -3718 3717 -1 -3737 3717 -1 -4117 3717 -1 -3718 3718 6 -3719 3718 -1 -3738 3718 -1 -4118 3718 -1 -3719 3719 6 -3720 3719 -1 -3739 3719 -1 -4119 3719 -1 -3720 3720 6 -3740 3720 -1 -4120 3720 -1 -3721 3721 6 -3722 3721 -1 -3741 3721 -1 -4121 3721 -1 -3722 3722 6 -3723 3722 -1 -3742 3722 -1 -4122 3722 -1 -3723 3723 6 -3724 3723 -1 -3743 3723 -1 -4123 3723 -1 -3724 3724 6 -3725 3724 -1 -3744 3724 -1 -4124 3724 -1 -3725 3725 6 -3726 3725 -1 -3745 3725 -1 -4125 3725 -1 -3726 3726 6 -3727 3726 -1 -3746 3726 -1 -4126 3726 -1 -3727 3727 6 -3728 3727 -1 -3747 3727 -1 -4127 3727 -1 -3728 3728 6 -3729 3728 -1 -3748 3728 -1 -4128 3728 -1 -3729 3729 6 -3730 3729 -1 -3749 3729 -1 -4129 3729 -1 -3730 3730 6 -3731 3730 -1 -3750 3730 -1 -4130 3730 -1 -3731 3731 6 -3732 3731 -1 -3751 3731 -1 -4131 3731 -1 -3732 3732 6 -3733 3732 -1 -3752 3732 -1 -4132 3732 -1 -3733 3733 6 -3734 3733 -1 -3753 3733 -1 -4133 3733 -1 -3734 3734 6 -3735 3734 -1 -3754 3734 -1 -4134 3734 -1 -3735 3735 6 -3736 3735 -1 -3755 3735 -1 -4135 3735 -1 -3736 3736 6 -3737 3736 -1 -3756 3736 -1 -4136 3736 -1 -3737 3737 6 -3738 3737 -1 -3757 3737 -1 -4137 3737 -1 -3738 3738 6 -3739 3738 -1 -3758 3738 -1 -4138 3738 -1 -3739 3739 6 -3740 3739 -1 -3759 3739 -1 -4139 3739 -1 -3740 3740 6 -3760 3740 -1 -4140 3740 -1 -3741 3741 6 -3742 3741 -1 -3761 3741 -1 -4141 3741 -1 -3742 3742 6 -3743 3742 -1 -3762 3742 -1 -4142 3742 -1 -3743 3743 6 -3744 3743 -1 -3763 3743 -1 -4143 3743 -1 -3744 3744 6 -3745 3744 -1 -3764 3744 -1 -4144 3744 -1 -3745 3745 6 -3746 3745 -1 -3765 3745 -1 -4145 3745 -1 -3746 3746 6 -3747 3746 -1 -3766 3746 -1 -4146 3746 -1 -3747 3747 6 -3748 3747 -1 -3767 3747 -1 -4147 3747 -1 -3748 3748 6 -3749 3748 -1 -3768 3748 -1 -4148 3748 -1 -3749 3749 6 -3750 3749 -1 -3769 3749 -1 -4149 3749 -1 -3750 3750 6 -3751 3750 -1 -3770 3750 -1 -4150 3750 -1 -3751 3751 6 -3752 3751 -1 -3771 3751 -1 -4151 3751 -1 -3752 3752 6 -3753 3752 -1 -3772 3752 -1 -4152 3752 -1 -3753 3753 6 -3754 3753 -1 -3773 3753 -1 -4153 3753 -1 -3754 3754 6 -3755 3754 -1 -3774 3754 -1 -4154 3754 -1 -3755 3755 6 -3756 3755 -1 -3775 3755 -1 -4155 3755 -1 -3756 3756 6 -3757 3756 -1 -3776 3756 -1 -4156 3756 -1 -3757 3757 6 -3758 3757 -1 -3777 3757 -1 -4157 3757 -1 -3758 3758 6 -3759 3758 -1 -3778 3758 -1 -4158 3758 -1 -3759 3759 6 -3760 3759 -1 -3779 3759 -1 -4159 3759 -1 -3760 3760 6 -3780 3760 -1 -4160 3760 -1 -3761 3761 6 -3762 3761 -1 -3781 3761 -1 -4161 3761 -1 -3762 3762 6 -3763 3762 -1 -3782 3762 -1 -4162 3762 -1 -3763 3763 6 -3764 3763 -1 -3783 3763 -1 -4163 3763 -1 -3764 3764 6 -3765 3764 -1 -3784 3764 -1 -4164 3764 -1 -3765 3765 6 -3766 3765 -1 -3785 3765 -1 -4165 3765 -1 -3766 3766 6 -3767 3766 -1 -3786 3766 -1 -4166 3766 -1 -3767 3767 6 -3768 3767 -1 -3787 3767 -1 -4167 3767 -1 -3768 3768 6 -3769 3768 -1 -3788 3768 -1 -4168 3768 -1 -3769 3769 6 -3770 3769 -1 -3789 3769 -1 -4169 3769 -1 -3770 3770 6 -3771 3770 -1 -3790 3770 -1 -4170 3770 -1 -3771 3771 6 -3772 3771 -1 -3791 3771 -1 -4171 3771 -1 -3772 3772 6 -3773 3772 -1 -3792 3772 -1 -4172 3772 -1 -3773 3773 6 -3774 3773 -1 -3793 3773 -1 -4173 3773 -1 -3774 3774 6 -3775 3774 -1 -3794 3774 -1 -4174 3774 -1 -3775 3775 6 -3776 3775 -1 -3795 3775 -1 -4175 3775 -1 -3776 3776 6 -3777 3776 -1 -3796 3776 -1 -4176 3776 -1 -3777 3777 6 -3778 3777 -1 -3797 3777 -1 -4177 3777 -1 -3778 3778 6 -3779 3778 -1 -3798 3778 -1 -4178 3778 -1 -3779 3779 6 -3780 3779 -1 -3799 3779 -1 -4179 3779 -1 -3780 3780 6 -3800 3780 -1 -4180 3780 -1 -3781 3781 6 -3782 3781 -1 -3801 3781 -1 -4181 3781 -1 -3782 3782 6 -3783 3782 -1 -3802 3782 -1 -4182 3782 -1 -3783 3783 6 -3784 3783 -1 -3803 3783 -1 -4183 3783 -1 -3784 3784 6 -3785 3784 -1 -3804 3784 -1 -4184 3784 -1 -3785 3785 6 -3786 3785 -1 -3805 3785 -1 -4185 3785 -1 -3786 3786 6 -3787 3786 -1 -3806 3786 -1 -4186 3786 -1 -3787 3787 6 -3788 3787 -1 -3807 3787 -1 -4187 3787 -1 -3788 3788 6 -3789 3788 -1 -3808 3788 -1 -4188 3788 -1 -3789 3789 6 -3790 3789 -1 -3809 3789 -1 -4189 3789 -1 -3790 3790 6 -3791 3790 -1 -3810 3790 -1 -4190 3790 -1 -3791 3791 6 -3792 3791 -1 -3811 3791 -1 -4191 3791 -1 -3792 3792 6 -3793 3792 -1 -3812 3792 -1 -4192 3792 -1 -3793 3793 6 -3794 3793 -1 -3813 3793 -1 -4193 3793 -1 -3794 3794 6 -3795 3794 -1 -3814 3794 -1 -4194 3794 -1 -3795 3795 6 -3796 3795 -1 -3815 3795 -1 -4195 3795 -1 -3796 3796 6 -3797 3796 -1 -3816 3796 -1 -4196 3796 -1 -3797 3797 6 -3798 3797 -1 -3817 3797 -1 -4197 3797 -1 -3798 3798 6 -3799 3798 -1 -3818 3798 -1 -4198 3798 -1 -3799 3799 6 -3800 3799 -1 -3819 3799 -1 -4199 3799 -1 -3800 3800 6 -3820 3800 -1 -4200 3800 -1 -3801 3801 6 -3802 3801 -1 -3821 3801 -1 -4201 3801 -1 -3802 3802 6 -3803 3802 -1 -3822 3802 -1 -4202 3802 -1 -3803 3803 6 -3804 3803 -1 -3823 3803 -1 -4203 3803 -1 -3804 3804 6 -3805 3804 -1 -3824 3804 -1 -4204 3804 -1 -3805 3805 6 -3806 3805 -1 -3825 3805 -1 -4205 3805 -1 -3806 3806 6 -3807 3806 -1 -3826 3806 -1 -4206 3806 -1 -3807 3807 6 -3808 3807 -1 -3827 3807 -1 -4207 3807 -1 -3808 3808 6 -3809 3808 -1 -3828 3808 -1 -4208 3808 -1 -3809 3809 6 -3810 3809 -1 -3829 3809 -1 -4209 3809 -1 -3810 3810 6 -3811 3810 -1 -3830 3810 -1 -4210 3810 -1 -3811 3811 6 -3812 3811 -1 -3831 3811 -1 -4211 3811 -1 -3812 3812 6 -3813 3812 -1 -3832 3812 -1 -4212 3812 -1 -3813 3813 6 -3814 3813 -1 -3833 3813 -1 -4213 3813 -1 -3814 3814 6 -3815 3814 -1 -3834 3814 -1 -4214 3814 -1 -3815 3815 6 -3816 3815 -1 -3835 3815 -1 -4215 3815 -1 -3816 3816 6 -3817 3816 -1 -3836 3816 -1 -4216 3816 -1 -3817 3817 6 -3818 3817 -1 -3837 3817 -1 -4217 3817 -1 -3818 3818 6 -3819 3818 -1 -3838 3818 -1 -4218 3818 -1 -3819 3819 6 -3820 3819 -1 -3839 3819 -1 -4219 3819 -1 -3820 3820 6 -3840 3820 -1 -4220 3820 -1 -3821 3821 6 -3822 3821 -1 -3841 3821 -1 -4221 3821 -1 -3822 3822 6 -3823 3822 -1 -3842 3822 -1 -4222 3822 -1 -3823 3823 6 -3824 3823 -1 -3843 3823 -1 -4223 3823 -1 -3824 3824 6 -3825 3824 -1 -3844 3824 -1 -4224 3824 -1 -3825 3825 6 -3826 3825 -1 -3845 3825 -1 -4225 3825 -1 -3826 3826 6 -3827 3826 -1 -3846 3826 -1 -4226 3826 -1 -3827 3827 6 -3828 3827 -1 -3847 3827 -1 -4227 3827 -1 -3828 3828 6 -3829 3828 -1 -3848 3828 -1 -4228 3828 -1 -3829 3829 6 -3830 3829 -1 -3849 3829 -1 -4229 3829 -1 -3830 3830 6 -3831 3830 -1 -3850 3830 -1 -4230 3830 -1 -3831 3831 6 -3832 3831 -1 -3851 3831 -1 -4231 3831 -1 -3832 3832 6 -3833 3832 -1 -3852 3832 -1 -4232 3832 -1 -3833 3833 6 -3834 3833 -1 -3853 3833 -1 -4233 3833 -1 -3834 3834 6 -3835 3834 -1 -3854 3834 -1 -4234 3834 -1 -3835 3835 6 -3836 3835 -1 -3855 3835 -1 -4235 3835 -1 -3836 3836 6 -3837 3836 -1 -3856 3836 -1 -4236 3836 -1 -3837 3837 6 -3838 3837 -1 -3857 3837 -1 -4237 3837 -1 -3838 3838 6 -3839 3838 -1 -3858 3838 -1 -4238 3838 -1 -3839 3839 6 -3840 3839 -1 -3859 3839 -1 -4239 3839 -1 -3840 3840 6 -3860 3840 -1 -4240 3840 -1 -3841 3841 6 -3842 3841 -1 -3861 3841 -1 -4241 3841 -1 -3842 3842 6 -3843 3842 -1 -3862 3842 -1 -4242 3842 -1 -3843 3843 6 -3844 3843 -1 -3863 3843 -1 -4243 3843 -1 -3844 3844 6 -3845 3844 -1 -3864 3844 -1 -4244 3844 -1 -3845 3845 6 -3846 3845 -1 -3865 3845 -1 -4245 3845 -1 -3846 3846 6 -3847 3846 -1 -3866 3846 -1 -4246 3846 -1 -3847 3847 6 -3848 3847 -1 -3867 3847 -1 -4247 3847 -1 -3848 3848 6 -3849 3848 -1 -3868 3848 -1 -4248 3848 -1 -3849 3849 6 -3850 3849 -1 -3869 3849 -1 -4249 3849 -1 -3850 3850 6 -3851 3850 -1 -3870 3850 -1 -4250 3850 -1 -3851 3851 6 -3852 3851 -1 -3871 3851 -1 -4251 3851 -1 -3852 3852 6 -3853 3852 -1 -3872 3852 -1 -4252 3852 -1 -3853 3853 6 -3854 3853 -1 -3873 3853 -1 -4253 3853 -1 -3854 3854 6 -3855 3854 -1 -3874 3854 -1 -4254 3854 -1 -3855 3855 6 -3856 3855 -1 -3875 3855 -1 -4255 3855 -1 -3856 3856 6 -3857 3856 -1 -3876 3856 -1 -4256 3856 -1 -3857 3857 6 -3858 3857 -1 -3877 3857 -1 -4257 3857 -1 -3858 3858 6 -3859 3858 -1 -3878 3858 -1 -4258 3858 -1 -3859 3859 6 -3860 3859 -1 -3879 3859 -1 -4259 3859 -1 -3860 3860 6 -3880 3860 -1 -4260 3860 -1 -3861 3861 6 -3862 3861 -1 -3881 3861 -1 -4261 3861 -1 -3862 3862 6 -3863 3862 -1 -3882 3862 -1 -4262 3862 -1 -3863 3863 6 -3864 3863 -1 -3883 3863 -1 -4263 3863 -1 -3864 3864 6 -3865 3864 -1 -3884 3864 -1 -4264 3864 -1 -3865 3865 6 -3866 3865 -1 -3885 3865 -1 -4265 3865 -1 -3866 3866 6 -3867 3866 -1 -3886 3866 -1 -4266 3866 -1 -3867 3867 6 -3868 3867 -1 -3887 3867 -1 -4267 3867 -1 -3868 3868 6 -3869 3868 -1 -3888 3868 -1 -4268 3868 -1 -3869 3869 6 -3870 3869 -1 -3889 3869 -1 -4269 3869 -1 -3870 3870 6 -3871 3870 -1 -3890 3870 -1 -4270 3870 -1 -3871 3871 6 -3872 3871 -1 -3891 3871 -1 -4271 3871 -1 -3872 3872 6 -3873 3872 -1 -3892 3872 -1 -4272 3872 -1 -3873 3873 6 -3874 3873 -1 -3893 3873 -1 -4273 3873 -1 -3874 3874 6 -3875 3874 -1 -3894 3874 -1 -4274 3874 -1 -3875 3875 6 -3876 3875 -1 -3895 3875 -1 -4275 3875 -1 -3876 3876 6 -3877 3876 -1 -3896 3876 -1 -4276 3876 -1 -3877 3877 6 -3878 3877 -1 -3897 3877 -1 -4277 3877 -1 -3878 3878 6 -3879 3878 -1 -3898 3878 -1 -4278 3878 -1 -3879 3879 6 -3880 3879 -1 -3899 3879 -1 -4279 3879 -1 -3880 3880 6 -3900 3880 -1 -4280 3880 -1 -3881 3881 6 -3882 3881 -1 -3901 3881 -1 -4281 3881 -1 -3882 3882 6 -3883 3882 -1 -3902 3882 -1 -4282 3882 -1 -3883 3883 6 -3884 3883 -1 -3903 3883 -1 -4283 3883 -1 -3884 3884 6 -3885 3884 -1 -3904 3884 -1 -4284 3884 -1 -3885 3885 6 -3886 3885 -1 -3905 3885 -1 -4285 3885 -1 -3886 3886 6 -3887 3886 -1 -3906 3886 -1 -4286 3886 -1 -3887 3887 6 -3888 3887 -1 -3907 3887 -1 -4287 3887 -1 -3888 3888 6 -3889 3888 -1 -3908 3888 -1 -4288 3888 -1 -3889 3889 6 -3890 3889 -1 -3909 3889 -1 -4289 3889 -1 -3890 3890 6 -3891 3890 -1 -3910 3890 -1 -4290 3890 -1 -3891 3891 6 -3892 3891 -1 -3911 3891 -1 -4291 3891 -1 -3892 3892 6 -3893 3892 -1 -3912 3892 -1 -4292 3892 -1 -3893 3893 6 -3894 3893 -1 -3913 3893 -1 -4293 3893 -1 -3894 3894 6 -3895 3894 -1 -3914 3894 -1 -4294 3894 -1 -3895 3895 6 -3896 3895 -1 -3915 3895 -1 -4295 3895 -1 -3896 3896 6 -3897 3896 -1 -3916 3896 -1 -4296 3896 -1 -3897 3897 6 -3898 3897 -1 -3917 3897 -1 -4297 3897 -1 -3898 3898 6 -3899 3898 -1 -3918 3898 -1 -4298 3898 -1 -3899 3899 6 -3900 3899 -1 -3919 3899 -1 -4299 3899 -1 -3900 3900 6 -3920 3900 -1 -4300 3900 -1 -3901 3901 6 -3902 3901 -1 -3921 3901 -1 -4301 3901 -1 -3902 3902 6 -3903 3902 -1 -3922 3902 -1 -4302 3902 -1 -3903 3903 6 -3904 3903 -1 -3923 3903 -1 -4303 3903 -1 -3904 3904 6 -3905 3904 -1 -3924 3904 -1 -4304 3904 -1 -3905 3905 6 -3906 3905 -1 -3925 3905 -1 -4305 3905 -1 -3906 3906 6 -3907 3906 -1 -3926 3906 -1 -4306 3906 -1 -3907 3907 6 -3908 3907 -1 -3927 3907 -1 -4307 3907 -1 -3908 3908 6 -3909 3908 -1 -3928 3908 -1 -4308 3908 -1 -3909 3909 6 -3910 3909 -1 -3929 3909 -1 -4309 3909 -1 -3910 3910 6 -3911 3910 -1 -3930 3910 -1 -4310 3910 -1 -3911 3911 6 -3912 3911 -1 -3931 3911 -1 -4311 3911 -1 -3912 3912 6 -3913 3912 -1 -3932 3912 -1 -4312 3912 -1 -3913 3913 6 -3914 3913 -1 -3933 3913 -1 -4313 3913 -1 -3914 3914 6 -3915 3914 -1 -3934 3914 -1 -4314 3914 -1 -3915 3915 6 -3916 3915 -1 -3935 3915 -1 -4315 3915 -1 -3916 3916 6 -3917 3916 -1 -3936 3916 -1 -4316 3916 -1 -3917 3917 6 -3918 3917 -1 -3937 3917 -1 -4317 3917 -1 -3918 3918 6 -3919 3918 -1 -3938 3918 -1 -4318 3918 -1 -3919 3919 6 -3920 3919 -1 -3939 3919 -1 -4319 3919 -1 -3920 3920 6 -3940 3920 -1 -4320 3920 -1 -3921 3921 6 -3922 3921 -1 -3941 3921 -1 -4321 3921 -1 -3922 3922 6 -3923 3922 -1 -3942 3922 -1 -4322 3922 -1 -3923 3923 6 -3924 3923 -1 -3943 3923 -1 -4323 3923 -1 -3924 3924 6 -3925 3924 -1 -3944 3924 -1 -4324 3924 -1 -3925 3925 6 -3926 3925 -1 -3945 3925 -1 -4325 3925 -1 -3926 3926 6 -3927 3926 -1 -3946 3926 -1 -4326 3926 -1 -3927 3927 6 -3928 3927 -1 -3947 3927 -1 -4327 3927 -1 -3928 3928 6 -3929 3928 -1 -3948 3928 -1 -4328 3928 -1 -3929 3929 6 -3930 3929 -1 -3949 3929 -1 -4329 3929 -1 -3930 3930 6 -3931 3930 -1 -3950 3930 -1 -4330 3930 -1 -3931 3931 6 -3932 3931 -1 -3951 3931 -1 -4331 3931 -1 -3932 3932 6 -3933 3932 -1 -3952 3932 -1 -4332 3932 -1 -3933 3933 6 -3934 3933 -1 -3953 3933 -1 -4333 3933 -1 -3934 3934 6 -3935 3934 -1 -3954 3934 -1 -4334 3934 -1 -3935 3935 6 -3936 3935 -1 -3955 3935 -1 -4335 3935 -1 -3936 3936 6 -3937 3936 -1 -3956 3936 -1 -4336 3936 -1 -3937 3937 6 -3938 3937 -1 -3957 3937 -1 -4337 3937 -1 -3938 3938 6 -3939 3938 -1 -3958 3938 -1 -4338 3938 -1 -3939 3939 6 -3940 3939 -1 -3959 3939 -1 -4339 3939 -1 -3940 3940 6 -3960 3940 -1 -4340 3940 -1 -3941 3941 6 -3942 3941 -1 -3961 3941 -1 -4341 3941 -1 -3942 3942 6 -3943 3942 -1 -3962 3942 -1 -4342 3942 -1 -3943 3943 6 -3944 3943 -1 -3963 3943 -1 -4343 3943 -1 -3944 3944 6 -3945 3944 -1 -3964 3944 -1 -4344 3944 -1 -3945 3945 6 -3946 3945 -1 -3965 3945 -1 -4345 3945 -1 -3946 3946 6 -3947 3946 -1 -3966 3946 -1 -4346 3946 -1 -3947 3947 6 -3948 3947 -1 -3967 3947 -1 -4347 3947 -1 -3948 3948 6 -3949 3948 -1 -3968 3948 -1 -4348 3948 -1 -3949 3949 6 -3950 3949 -1 -3969 3949 -1 -4349 3949 -1 -3950 3950 6 -3951 3950 -1 -3970 3950 -1 -4350 3950 -1 -3951 3951 6 -3952 3951 -1 -3971 3951 -1 -4351 3951 -1 -3952 3952 6 -3953 3952 -1 -3972 3952 -1 -4352 3952 -1 -3953 3953 6 -3954 3953 -1 -3973 3953 -1 -4353 3953 -1 -3954 3954 6 -3955 3954 -1 -3974 3954 -1 -4354 3954 -1 -3955 3955 6 -3956 3955 -1 -3975 3955 -1 -4355 3955 -1 -3956 3956 6 -3957 3956 -1 -3976 3956 -1 -4356 3956 -1 -3957 3957 6 -3958 3957 -1 -3977 3957 -1 -4357 3957 -1 -3958 3958 6 -3959 3958 -1 -3978 3958 -1 -4358 3958 -1 -3959 3959 6 -3960 3959 -1 -3979 3959 -1 -4359 3959 -1 -3960 3960 6 -3980 3960 -1 -4360 3960 -1 -3961 3961 6 -3962 3961 -1 -3981 3961 -1 -4361 3961 -1 -3962 3962 6 -3963 3962 -1 -3982 3962 -1 -4362 3962 -1 -3963 3963 6 -3964 3963 -1 -3983 3963 -1 -4363 3963 -1 -3964 3964 6 -3965 3964 -1 -3984 3964 -1 -4364 3964 -1 -3965 3965 6 -3966 3965 -1 -3985 3965 -1 -4365 3965 -1 -3966 3966 6 -3967 3966 -1 -3986 3966 -1 -4366 3966 -1 -3967 3967 6 -3968 3967 -1 -3987 3967 -1 -4367 3967 -1 -3968 3968 6 -3969 3968 -1 -3988 3968 -1 -4368 3968 -1 -3969 3969 6 -3970 3969 -1 -3989 3969 -1 -4369 3969 -1 -3970 3970 6 -3971 3970 -1 -3990 3970 -1 -4370 3970 -1 -3971 3971 6 -3972 3971 -1 -3991 3971 -1 -4371 3971 -1 -3972 3972 6 -3973 3972 -1 -3992 3972 -1 -4372 3972 -1 -3973 3973 6 -3974 3973 -1 -3993 3973 -1 -4373 3973 -1 -3974 3974 6 -3975 3974 -1 -3994 3974 -1 -4374 3974 -1 -3975 3975 6 -3976 3975 -1 -3995 3975 -1 -4375 3975 -1 -3976 3976 6 -3977 3976 -1 -3996 3976 -1 -4376 3976 -1 -3977 3977 6 -3978 3977 -1 -3997 3977 -1 -4377 3977 -1 -3978 3978 6 -3979 3978 -1 -3998 3978 -1 -4378 3978 -1 -3979 3979 6 -3980 3979 -1 -3999 3979 -1 -4379 3979 -1 -3980 3980 6 -4000 3980 -1 -4380 3980 -1 -3981 3981 6 -3982 3981 -1 -4381 3981 -1 -3982 3982 6 -3983 3982 -1 -4382 3982 -1 -3983 3983 6 -3984 3983 -1 -4383 3983 -1 -3984 3984 6 -3985 3984 -1 -4384 3984 -1 -3985 3985 6 -3986 3985 -1 -4385 3985 -1 -3986 3986 6 -3987 3986 -1 -4386 3986 -1 -3987 3987 6 -3988 3987 -1 -4387 3987 -1 -3988 3988 6 -3989 3988 -1 -4388 3988 -1 -3989 3989 6 -3990 3989 -1 -4389 3989 -1 -3990 3990 6 -3991 3990 -1 -4390 3990 -1 -3991 3991 6 -3992 3991 -1 -4391 3991 -1 -3992 3992 6 -3993 3992 -1 -4392 3992 -1 -3993 3993 6 -3994 3993 -1 -4393 3993 -1 -3994 3994 6 -3995 3994 -1 -4394 3994 -1 -3995 3995 6 -3996 3995 -1 -4395 3995 -1 -3996 3996 6 -3997 3996 -1 -4396 3996 -1 -3997 3997 6 -3998 3997 -1 -4397 3997 -1 -3998 3998 6 -3999 3998 -1 -4398 3998 -1 -3999 3999 6 -4000 3999 -1 -4399 3999 -1 -4000 4000 6 -4400 4000 -1 -4001 4001 6 -4002 4001 -1 -4021 4001 -1 -4401 4001 -1 -4002 4002 6 -4003 4002 -1 -4022 4002 -1 -4402 4002 -1 -4003 4003 6 -4004 4003 -1 -4023 4003 -1 -4403 4003 -1 -4004 4004 6 -4005 4004 -1 -4024 4004 -1 -4404 4004 -1 -4005 4005 6 -4006 4005 -1 -4025 4005 -1 -4405 4005 -1 -4006 4006 6 -4007 4006 -1 -4026 4006 -1 -4406 4006 -1 -4007 4007 6 -4008 4007 -1 -4027 4007 -1 -4407 4007 -1 -4008 4008 6 -4009 4008 -1 -4028 4008 -1 -4408 4008 -1 -4009 4009 6 -4010 4009 -1 -4029 4009 -1 -4409 4009 -1 -4010 4010 6 -4011 4010 -1 -4030 4010 -1 -4410 4010 -1 -4011 4011 6 -4012 4011 -1 -4031 4011 -1 -4411 4011 -1 -4012 4012 6 -4013 4012 -1 -4032 4012 -1 -4412 4012 -1 -4013 4013 6 -4014 4013 -1 -4033 4013 -1 -4413 4013 -1 -4014 4014 6 -4015 4014 -1 -4034 4014 -1 -4414 4014 -1 -4015 4015 6 -4016 4015 -1 -4035 4015 -1 -4415 4015 -1 -4016 4016 6 -4017 4016 -1 -4036 4016 -1 -4416 4016 -1 -4017 4017 6 -4018 4017 -1 -4037 4017 -1 -4417 4017 -1 -4018 4018 6 -4019 4018 -1 -4038 4018 -1 -4418 4018 -1 -4019 4019 6 -4020 4019 -1 -4039 4019 -1 -4419 4019 -1 -4020 4020 6 -4040 4020 -1 -4420 4020 -1 -4021 4021 6 -4022 4021 -1 -4041 4021 -1 -4421 4021 -1 -4022 4022 6 -4023 4022 -1 -4042 4022 -1 -4422 4022 -1 -4023 4023 6 -4024 4023 -1 -4043 4023 -1 -4423 4023 -1 -4024 4024 6 -4025 4024 -1 -4044 4024 -1 -4424 4024 -1 -4025 4025 6 -4026 4025 -1 -4045 4025 -1 -4425 4025 -1 -4026 4026 6 -4027 4026 -1 -4046 4026 -1 -4426 4026 -1 -4027 4027 6 -4028 4027 -1 -4047 4027 -1 -4427 4027 -1 -4028 4028 6 -4029 4028 -1 -4048 4028 -1 -4428 4028 -1 -4029 4029 6 -4030 4029 -1 -4049 4029 -1 -4429 4029 -1 -4030 4030 6 -4031 4030 -1 -4050 4030 -1 -4430 4030 -1 -4031 4031 6 -4032 4031 -1 -4051 4031 -1 -4431 4031 -1 -4032 4032 6 -4033 4032 -1 -4052 4032 -1 -4432 4032 -1 -4033 4033 6 -4034 4033 -1 -4053 4033 -1 -4433 4033 -1 -4034 4034 6 -4035 4034 -1 -4054 4034 -1 -4434 4034 -1 -4035 4035 6 -4036 4035 -1 -4055 4035 -1 -4435 4035 -1 -4036 4036 6 -4037 4036 -1 -4056 4036 -1 -4436 4036 -1 -4037 4037 6 -4038 4037 -1 -4057 4037 -1 -4437 4037 -1 -4038 4038 6 -4039 4038 -1 -4058 4038 -1 -4438 4038 -1 -4039 4039 6 -4040 4039 -1 -4059 4039 -1 -4439 4039 -1 -4040 4040 6 -4060 4040 -1 -4440 4040 -1 -4041 4041 6 -4042 4041 -1 -4061 4041 -1 -4441 4041 -1 -4042 4042 6 -4043 4042 -1 -4062 4042 -1 -4442 4042 -1 -4043 4043 6 -4044 4043 -1 -4063 4043 -1 -4443 4043 -1 -4044 4044 6 -4045 4044 -1 -4064 4044 -1 -4444 4044 -1 -4045 4045 6 -4046 4045 -1 -4065 4045 -1 -4445 4045 -1 -4046 4046 6 -4047 4046 -1 -4066 4046 -1 -4446 4046 -1 -4047 4047 6 -4048 4047 -1 -4067 4047 -1 -4447 4047 -1 -4048 4048 6 -4049 4048 -1 -4068 4048 -1 -4448 4048 -1 -4049 4049 6 -4050 4049 -1 -4069 4049 -1 -4449 4049 -1 -4050 4050 6 -4051 4050 -1 -4070 4050 -1 -4450 4050 -1 -4051 4051 6 -4052 4051 -1 -4071 4051 -1 -4451 4051 -1 -4052 4052 6 -4053 4052 -1 -4072 4052 -1 -4452 4052 -1 -4053 4053 6 -4054 4053 -1 -4073 4053 -1 -4453 4053 -1 -4054 4054 6 -4055 4054 -1 -4074 4054 -1 -4454 4054 -1 -4055 4055 6 -4056 4055 -1 -4075 4055 -1 -4455 4055 -1 -4056 4056 6 -4057 4056 -1 -4076 4056 -1 -4456 4056 -1 -4057 4057 6 -4058 4057 -1 -4077 4057 -1 -4457 4057 -1 -4058 4058 6 -4059 4058 -1 -4078 4058 -1 -4458 4058 -1 -4059 4059 6 -4060 4059 -1 -4079 4059 -1 -4459 4059 -1 -4060 4060 6 -4080 4060 -1 -4460 4060 -1 -4061 4061 6 -4062 4061 -1 -4081 4061 -1 -4461 4061 -1 -4062 4062 6 -4063 4062 -1 -4082 4062 -1 -4462 4062 -1 -4063 4063 6 -4064 4063 -1 -4083 4063 -1 -4463 4063 -1 -4064 4064 6 -4065 4064 -1 -4084 4064 -1 -4464 4064 -1 -4065 4065 6 -4066 4065 -1 -4085 4065 -1 -4465 4065 -1 -4066 4066 6 -4067 4066 -1 -4086 4066 -1 -4466 4066 -1 -4067 4067 6 -4068 4067 -1 -4087 4067 -1 -4467 4067 -1 -4068 4068 6 -4069 4068 -1 -4088 4068 -1 -4468 4068 -1 -4069 4069 6 -4070 4069 -1 -4089 4069 -1 -4469 4069 -1 -4070 4070 6 -4071 4070 -1 -4090 4070 -1 -4470 4070 -1 -4071 4071 6 -4072 4071 -1 -4091 4071 -1 -4471 4071 -1 -4072 4072 6 -4073 4072 -1 -4092 4072 -1 -4472 4072 -1 -4073 4073 6 -4074 4073 -1 -4093 4073 -1 -4473 4073 -1 -4074 4074 6 -4075 4074 -1 -4094 4074 -1 -4474 4074 -1 -4075 4075 6 -4076 4075 -1 -4095 4075 -1 -4475 4075 -1 -4076 4076 6 -4077 4076 -1 -4096 4076 -1 -4476 4076 -1 -4077 4077 6 -4078 4077 -1 -4097 4077 -1 -4477 4077 -1 -4078 4078 6 -4079 4078 -1 -4098 4078 -1 -4478 4078 -1 -4079 4079 6 -4080 4079 -1 -4099 4079 -1 -4479 4079 -1 -4080 4080 6 -4100 4080 -1 -4480 4080 -1 -4081 4081 6 -4082 4081 -1 -4101 4081 -1 -4481 4081 -1 -4082 4082 6 -4083 4082 -1 -4102 4082 -1 -4482 4082 -1 -4083 4083 6 -4084 4083 -1 -4103 4083 -1 -4483 4083 -1 -4084 4084 6 -4085 4084 -1 -4104 4084 -1 -4484 4084 -1 -4085 4085 6 -4086 4085 -1 -4105 4085 -1 -4485 4085 -1 -4086 4086 6 -4087 4086 -1 -4106 4086 -1 -4486 4086 -1 -4087 4087 6 -4088 4087 -1 -4107 4087 -1 -4487 4087 -1 -4088 4088 6 -4089 4088 -1 -4108 4088 -1 -4488 4088 -1 -4089 4089 6 -4090 4089 -1 -4109 4089 -1 -4489 4089 -1 -4090 4090 6 -4091 4090 -1 -4110 4090 -1 -4490 4090 -1 -4091 4091 6 -4092 4091 -1 -4111 4091 -1 -4491 4091 -1 -4092 4092 6 -4093 4092 -1 -4112 4092 -1 -4492 4092 -1 -4093 4093 6 -4094 4093 -1 -4113 4093 -1 -4493 4093 -1 -4094 4094 6 -4095 4094 -1 -4114 4094 -1 -4494 4094 -1 -4095 4095 6 -4096 4095 -1 -4115 4095 -1 -4495 4095 -1 -4096 4096 6 -4097 4096 -1 -4116 4096 -1 -4496 4096 -1 -4097 4097 6 -4098 4097 -1 -4117 4097 -1 -4497 4097 -1 -4098 4098 6 -4099 4098 -1 -4118 4098 -1 -4498 4098 -1 -4099 4099 6 -4100 4099 -1 -4119 4099 -1 -4499 4099 -1 -4100 4100 6 -4120 4100 -1 -4500 4100 -1 -4101 4101 6 -4102 4101 -1 -4121 4101 -1 -4501 4101 -1 -4102 4102 6 -4103 4102 -1 -4122 4102 -1 -4502 4102 -1 -4103 4103 6 -4104 4103 -1 -4123 4103 -1 -4503 4103 -1 -4104 4104 6 -4105 4104 -1 -4124 4104 -1 -4504 4104 -1 -4105 4105 6 -4106 4105 -1 -4125 4105 -1 -4505 4105 -1 -4106 4106 6 -4107 4106 -1 -4126 4106 -1 -4506 4106 -1 -4107 4107 6 -4108 4107 -1 -4127 4107 -1 -4507 4107 -1 -4108 4108 6 -4109 4108 -1 -4128 4108 -1 -4508 4108 -1 -4109 4109 6 -4110 4109 -1 -4129 4109 -1 -4509 4109 -1 -4110 4110 6 -4111 4110 -1 -4130 4110 -1 -4510 4110 -1 -4111 4111 6 -4112 4111 -1 -4131 4111 -1 -4511 4111 -1 -4112 4112 6 -4113 4112 -1 -4132 4112 -1 -4512 4112 -1 -4113 4113 6 -4114 4113 -1 -4133 4113 -1 -4513 4113 -1 -4114 4114 6 -4115 4114 -1 -4134 4114 -1 -4514 4114 -1 -4115 4115 6 -4116 4115 -1 -4135 4115 -1 -4515 4115 -1 -4116 4116 6 -4117 4116 -1 -4136 4116 -1 -4516 4116 -1 -4117 4117 6 -4118 4117 -1 -4137 4117 -1 -4517 4117 -1 -4118 4118 6 -4119 4118 -1 -4138 4118 -1 -4518 4118 -1 -4119 4119 6 -4120 4119 -1 -4139 4119 -1 -4519 4119 -1 -4120 4120 6 -4140 4120 -1 -4520 4120 -1 -4121 4121 6 -4122 4121 -1 -4141 4121 -1 -4521 4121 -1 -4122 4122 6 -4123 4122 -1 -4142 4122 -1 -4522 4122 -1 -4123 4123 6 -4124 4123 -1 -4143 4123 -1 -4523 4123 -1 -4124 4124 6 -4125 4124 -1 -4144 4124 -1 -4524 4124 -1 -4125 4125 6 -4126 4125 -1 -4145 4125 -1 -4525 4125 -1 -4126 4126 6 -4127 4126 -1 -4146 4126 -1 -4526 4126 -1 -4127 4127 6 -4128 4127 -1 -4147 4127 -1 -4527 4127 -1 -4128 4128 6 -4129 4128 -1 -4148 4128 -1 -4528 4128 -1 -4129 4129 6 -4130 4129 -1 -4149 4129 -1 -4529 4129 -1 -4130 4130 6 -4131 4130 -1 -4150 4130 -1 -4530 4130 -1 -4131 4131 6 -4132 4131 -1 -4151 4131 -1 -4531 4131 -1 -4132 4132 6 -4133 4132 -1 -4152 4132 -1 -4532 4132 -1 -4133 4133 6 -4134 4133 -1 -4153 4133 -1 -4533 4133 -1 -4134 4134 6 -4135 4134 -1 -4154 4134 -1 -4534 4134 -1 -4135 4135 6 -4136 4135 -1 -4155 4135 -1 -4535 4135 -1 -4136 4136 6 -4137 4136 -1 -4156 4136 -1 -4536 4136 -1 -4137 4137 6 -4138 4137 -1 -4157 4137 -1 -4537 4137 -1 -4138 4138 6 -4139 4138 -1 -4158 4138 -1 -4538 4138 -1 -4139 4139 6 -4140 4139 -1 -4159 4139 -1 -4539 4139 -1 -4140 4140 6 -4160 4140 -1 -4540 4140 -1 -4141 4141 6 -4142 4141 -1 -4161 4141 -1 -4541 4141 -1 -4142 4142 6 -4143 4142 -1 -4162 4142 -1 -4542 4142 -1 -4143 4143 6 -4144 4143 -1 -4163 4143 -1 -4543 4143 -1 -4144 4144 6 -4145 4144 -1 -4164 4144 -1 -4544 4144 -1 -4145 4145 6 -4146 4145 -1 -4165 4145 -1 -4545 4145 -1 -4146 4146 6 -4147 4146 -1 -4166 4146 -1 -4546 4146 -1 -4147 4147 6 -4148 4147 -1 -4167 4147 -1 -4547 4147 -1 -4148 4148 6 -4149 4148 -1 -4168 4148 -1 -4548 4148 -1 -4149 4149 6 -4150 4149 -1 -4169 4149 -1 -4549 4149 -1 -4150 4150 6 -4151 4150 -1 -4170 4150 -1 -4550 4150 -1 -4151 4151 6 -4152 4151 -1 -4171 4151 -1 -4551 4151 -1 -4152 4152 6 -4153 4152 -1 -4172 4152 -1 -4552 4152 -1 -4153 4153 6 -4154 4153 -1 -4173 4153 -1 -4553 4153 -1 -4154 4154 6 -4155 4154 -1 -4174 4154 -1 -4554 4154 -1 -4155 4155 6 -4156 4155 -1 -4175 4155 -1 -4555 4155 -1 -4156 4156 6 -4157 4156 -1 -4176 4156 -1 -4556 4156 -1 -4157 4157 6 -4158 4157 -1 -4177 4157 -1 -4557 4157 -1 -4158 4158 6 -4159 4158 -1 -4178 4158 -1 -4558 4158 -1 -4159 4159 6 -4160 4159 -1 -4179 4159 -1 -4559 4159 -1 -4160 4160 6 -4180 4160 -1 -4560 4160 -1 -4161 4161 6 -4162 4161 -1 -4181 4161 -1 -4561 4161 -1 -4162 4162 6 -4163 4162 -1 -4182 4162 -1 -4562 4162 -1 -4163 4163 6 -4164 4163 -1 -4183 4163 -1 -4563 4163 -1 -4164 4164 6 -4165 4164 -1 -4184 4164 -1 -4564 4164 -1 -4165 4165 6 -4166 4165 -1 -4185 4165 -1 -4565 4165 -1 -4166 4166 6 -4167 4166 -1 -4186 4166 -1 -4566 4166 -1 -4167 4167 6 -4168 4167 -1 -4187 4167 -1 -4567 4167 -1 -4168 4168 6 -4169 4168 -1 -4188 4168 -1 -4568 4168 -1 -4169 4169 6 -4170 4169 -1 -4189 4169 -1 -4569 4169 -1 -4170 4170 6 -4171 4170 -1 -4190 4170 -1 -4570 4170 -1 -4171 4171 6 -4172 4171 -1 -4191 4171 -1 -4571 4171 -1 -4172 4172 6 -4173 4172 -1 -4192 4172 -1 -4572 4172 -1 -4173 4173 6 -4174 4173 -1 -4193 4173 -1 -4573 4173 -1 -4174 4174 6 -4175 4174 -1 -4194 4174 -1 -4574 4174 -1 -4175 4175 6 -4176 4175 -1 -4195 4175 -1 -4575 4175 -1 -4176 4176 6 -4177 4176 -1 -4196 4176 -1 -4576 4176 -1 -4177 4177 6 -4178 4177 -1 -4197 4177 -1 -4577 4177 -1 -4178 4178 6 -4179 4178 -1 -4198 4178 -1 -4578 4178 -1 -4179 4179 6 -4180 4179 -1 -4199 4179 -1 -4579 4179 -1 -4180 4180 6 -4200 4180 -1 -4580 4180 -1 -4181 4181 6 -4182 4181 -1 -4201 4181 -1 -4581 4181 -1 -4182 4182 6 -4183 4182 -1 -4202 4182 -1 -4582 4182 -1 -4183 4183 6 -4184 4183 -1 -4203 4183 -1 -4583 4183 -1 -4184 4184 6 -4185 4184 -1 -4204 4184 -1 -4584 4184 -1 -4185 4185 6 -4186 4185 -1 -4205 4185 -1 -4585 4185 -1 -4186 4186 6 -4187 4186 -1 -4206 4186 -1 -4586 4186 -1 -4187 4187 6 -4188 4187 -1 -4207 4187 -1 -4587 4187 -1 -4188 4188 6 -4189 4188 -1 -4208 4188 -1 -4588 4188 -1 -4189 4189 6 -4190 4189 -1 -4209 4189 -1 -4589 4189 -1 -4190 4190 6 -4191 4190 -1 -4210 4190 -1 -4590 4190 -1 -4191 4191 6 -4192 4191 -1 -4211 4191 -1 -4591 4191 -1 -4192 4192 6 -4193 4192 -1 -4212 4192 -1 -4592 4192 -1 -4193 4193 6 -4194 4193 -1 -4213 4193 -1 -4593 4193 -1 -4194 4194 6 -4195 4194 -1 -4214 4194 -1 -4594 4194 -1 -4195 4195 6 -4196 4195 -1 -4215 4195 -1 -4595 4195 -1 -4196 4196 6 -4197 4196 -1 -4216 4196 -1 -4596 4196 -1 -4197 4197 6 -4198 4197 -1 -4217 4197 -1 -4597 4197 -1 -4198 4198 6 -4199 4198 -1 -4218 4198 -1 -4598 4198 -1 -4199 4199 6 -4200 4199 -1 -4219 4199 -1 -4599 4199 -1 -4200 4200 6 -4220 4200 -1 -4600 4200 -1 -4201 4201 6 -4202 4201 -1 -4221 4201 -1 -4601 4201 -1 -4202 4202 6 -4203 4202 -1 -4222 4202 -1 -4602 4202 -1 -4203 4203 6 -4204 4203 -1 -4223 4203 -1 -4603 4203 -1 -4204 4204 6 -4205 4204 -1 -4224 4204 -1 -4604 4204 -1 -4205 4205 6 -4206 4205 -1 -4225 4205 -1 -4605 4205 -1 -4206 4206 6 -4207 4206 -1 -4226 4206 -1 -4606 4206 -1 -4207 4207 6 -4208 4207 -1 -4227 4207 -1 -4607 4207 -1 -4208 4208 6 -4209 4208 -1 -4228 4208 -1 -4608 4208 -1 -4209 4209 6 -4210 4209 -1 -4229 4209 -1 -4609 4209 -1 -4210 4210 6 -4211 4210 -1 -4230 4210 -1 -4610 4210 -1 -4211 4211 6 -4212 4211 -1 -4231 4211 -1 -4611 4211 -1 -4212 4212 6 -4213 4212 -1 -4232 4212 -1 -4612 4212 -1 -4213 4213 6 -4214 4213 -1 -4233 4213 -1 -4613 4213 -1 -4214 4214 6 -4215 4214 -1 -4234 4214 -1 -4614 4214 -1 -4215 4215 6 -4216 4215 -1 -4235 4215 -1 -4615 4215 -1 -4216 4216 6 -4217 4216 -1 -4236 4216 -1 -4616 4216 -1 -4217 4217 6 -4218 4217 -1 -4237 4217 -1 -4617 4217 -1 -4218 4218 6 -4219 4218 -1 -4238 4218 -1 -4618 4218 -1 -4219 4219 6 -4220 4219 -1 -4239 4219 -1 -4619 4219 -1 -4220 4220 6 -4240 4220 -1 -4620 4220 -1 -4221 4221 6 -4222 4221 -1 -4241 4221 -1 -4621 4221 -1 -4222 4222 6 -4223 4222 -1 -4242 4222 -1 -4622 4222 -1 -4223 4223 6 -4224 4223 -1 -4243 4223 -1 -4623 4223 -1 -4224 4224 6 -4225 4224 -1 -4244 4224 -1 -4624 4224 -1 -4225 4225 6 -4226 4225 -1 -4245 4225 -1 -4625 4225 -1 -4226 4226 6 -4227 4226 -1 -4246 4226 -1 -4626 4226 -1 -4227 4227 6 -4228 4227 -1 -4247 4227 -1 -4627 4227 -1 -4228 4228 6 -4229 4228 -1 -4248 4228 -1 -4628 4228 -1 -4229 4229 6 -4230 4229 -1 -4249 4229 -1 -4629 4229 -1 -4230 4230 6 -4231 4230 -1 -4250 4230 -1 -4630 4230 -1 -4231 4231 6 -4232 4231 -1 -4251 4231 -1 -4631 4231 -1 -4232 4232 6 -4233 4232 -1 -4252 4232 -1 -4632 4232 -1 -4233 4233 6 -4234 4233 -1 -4253 4233 -1 -4633 4233 -1 -4234 4234 6 -4235 4234 -1 -4254 4234 -1 -4634 4234 -1 -4235 4235 6 -4236 4235 -1 -4255 4235 -1 -4635 4235 -1 -4236 4236 6 -4237 4236 -1 -4256 4236 -1 -4636 4236 -1 -4237 4237 6 -4238 4237 -1 -4257 4237 -1 -4637 4237 -1 -4238 4238 6 -4239 4238 -1 -4258 4238 -1 -4638 4238 -1 -4239 4239 6 -4240 4239 -1 -4259 4239 -1 -4639 4239 -1 -4240 4240 6 -4260 4240 -1 -4640 4240 -1 -4241 4241 6 -4242 4241 -1 -4261 4241 -1 -4641 4241 -1 -4242 4242 6 -4243 4242 -1 -4262 4242 -1 -4642 4242 -1 -4243 4243 6 -4244 4243 -1 -4263 4243 -1 -4643 4243 -1 -4244 4244 6 -4245 4244 -1 -4264 4244 -1 -4644 4244 -1 -4245 4245 6 -4246 4245 -1 -4265 4245 -1 -4645 4245 -1 -4246 4246 6 -4247 4246 -1 -4266 4246 -1 -4646 4246 -1 -4247 4247 6 -4248 4247 -1 -4267 4247 -1 -4647 4247 -1 -4248 4248 6 -4249 4248 -1 -4268 4248 -1 -4648 4248 -1 -4249 4249 6 -4250 4249 -1 -4269 4249 -1 -4649 4249 -1 -4250 4250 6 -4251 4250 -1 -4270 4250 -1 -4650 4250 -1 -4251 4251 6 -4252 4251 -1 -4271 4251 -1 -4651 4251 -1 -4252 4252 6 -4253 4252 -1 -4272 4252 -1 -4652 4252 -1 -4253 4253 6 -4254 4253 -1 -4273 4253 -1 -4653 4253 -1 -4254 4254 6 -4255 4254 -1 -4274 4254 -1 -4654 4254 -1 -4255 4255 6 -4256 4255 -1 -4275 4255 -1 -4655 4255 -1 -4256 4256 6 -4257 4256 -1 -4276 4256 -1 -4656 4256 -1 -4257 4257 6 -4258 4257 -1 -4277 4257 -1 -4657 4257 -1 -4258 4258 6 -4259 4258 -1 -4278 4258 -1 -4658 4258 -1 -4259 4259 6 -4260 4259 -1 -4279 4259 -1 -4659 4259 -1 -4260 4260 6 -4280 4260 -1 -4660 4260 -1 -4261 4261 6 -4262 4261 -1 -4281 4261 -1 -4661 4261 -1 -4262 4262 6 -4263 4262 -1 -4282 4262 -1 -4662 4262 -1 -4263 4263 6 -4264 4263 -1 -4283 4263 -1 -4663 4263 -1 -4264 4264 6 -4265 4264 -1 -4284 4264 -1 -4664 4264 -1 -4265 4265 6 -4266 4265 -1 -4285 4265 -1 -4665 4265 -1 -4266 4266 6 -4267 4266 -1 -4286 4266 -1 -4666 4266 -1 -4267 4267 6 -4268 4267 -1 -4287 4267 -1 -4667 4267 -1 -4268 4268 6 -4269 4268 -1 -4288 4268 -1 -4668 4268 -1 -4269 4269 6 -4270 4269 -1 -4289 4269 -1 -4669 4269 -1 -4270 4270 6 -4271 4270 -1 -4290 4270 -1 -4670 4270 -1 -4271 4271 6 -4272 4271 -1 -4291 4271 -1 -4671 4271 -1 -4272 4272 6 -4273 4272 -1 -4292 4272 -1 -4672 4272 -1 -4273 4273 6 -4274 4273 -1 -4293 4273 -1 -4673 4273 -1 -4274 4274 6 -4275 4274 -1 -4294 4274 -1 -4674 4274 -1 -4275 4275 6 -4276 4275 -1 -4295 4275 -1 -4675 4275 -1 -4276 4276 6 -4277 4276 -1 -4296 4276 -1 -4676 4276 -1 -4277 4277 6 -4278 4277 -1 -4297 4277 -1 -4677 4277 -1 -4278 4278 6 -4279 4278 -1 -4298 4278 -1 -4678 4278 -1 -4279 4279 6 -4280 4279 -1 -4299 4279 -1 -4679 4279 -1 -4280 4280 6 -4300 4280 -1 -4680 4280 -1 -4281 4281 6 -4282 4281 -1 -4301 4281 -1 -4681 4281 -1 -4282 4282 6 -4283 4282 -1 -4302 4282 -1 -4682 4282 -1 -4283 4283 6 -4284 4283 -1 -4303 4283 -1 -4683 4283 -1 -4284 4284 6 -4285 4284 -1 -4304 4284 -1 -4684 4284 -1 -4285 4285 6 -4286 4285 -1 -4305 4285 -1 -4685 4285 -1 -4286 4286 6 -4287 4286 -1 -4306 4286 -1 -4686 4286 -1 -4287 4287 6 -4288 4287 -1 -4307 4287 -1 -4687 4287 -1 -4288 4288 6 -4289 4288 -1 -4308 4288 -1 -4688 4288 -1 -4289 4289 6 -4290 4289 -1 -4309 4289 -1 -4689 4289 -1 -4290 4290 6 -4291 4290 -1 -4310 4290 -1 -4690 4290 -1 -4291 4291 6 -4292 4291 -1 -4311 4291 -1 -4691 4291 -1 -4292 4292 6 -4293 4292 -1 -4312 4292 -1 -4692 4292 -1 -4293 4293 6 -4294 4293 -1 -4313 4293 -1 -4693 4293 -1 -4294 4294 6 -4295 4294 -1 -4314 4294 -1 -4694 4294 -1 -4295 4295 6 -4296 4295 -1 -4315 4295 -1 -4695 4295 -1 -4296 4296 6 -4297 4296 -1 -4316 4296 -1 -4696 4296 -1 -4297 4297 6 -4298 4297 -1 -4317 4297 -1 -4697 4297 -1 -4298 4298 6 -4299 4298 -1 -4318 4298 -1 -4698 4298 -1 -4299 4299 6 -4300 4299 -1 -4319 4299 -1 -4699 4299 -1 -4300 4300 6 -4320 4300 -1 -4700 4300 -1 -4301 4301 6 -4302 4301 -1 -4321 4301 -1 -4701 4301 -1 -4302 4302 6 -4303 4302 -1 -4322 4302 -1 -4702 4302 -1 -4303 4303 6 -4304 4303 -1 -4323 4303 -1 -4703 4303 -1 -4304 4304 6 -4305 4304 -1 -4324 4304 -1 -4704 4304 -1 -4305 4305 6 -4306 4305 -1 -4325 4305 -1 -4705 4305 -1 -4306 4306 6 -4307 4306 -1 -4326 4306 -1 -4706 4306 -1 -4307 4307 6 -4308 4307 -1 -4327 4307 -1 -4707 4307 -1 -4308 4308 6 -4309 4308 -1 -4328 4308 -1 -4708 4308 -1 -4309 4309 6 -4310 4309 -1 -4329 4309 -1 -4709 4309 -1 -4310 4310 6 -4311 4310 -1 -4330 4310 -1 -4710 4310 -1 -4311 4311 6 -4312 4311 -1 -4331 4311 -1 -4711 4311 -1 -4312 4312 6 -4313 4312 -1 -4332 4312 -1 -4712 4312 -1 -4313 4313 6 -4314 4313 -1 -4333 4313 -1 -4713 4313 -1 -4314 4314 6 -4315 4314 -1 -4334 4314 -1 -4714 4314 -1 -4315 4315 6 -4316 4315 -1 -4335 4315 -1 -4715 4315 -1 -4316 4316 6 -4317 4316 -1 -4336 4316 -1 -4716 4316 -1 -4317 4317 6 -4318 4317 -1 -4337 4317 -1 -4717 4317 -1 -4318 4318 6 -4319 4318 -1 -4338 4318 -1 -4718 4318 -1 -4319 4319 6 -4320 4319 -1 -4339 4319 -1 -4719 4319 -1 -4320 4320 6 -4340 4320 -1 -4720 4320 -1 -4321 4321 6 -4322 4321 -1 -4341 4321 -1 -4721 4321 -1 -4322 4322 6 -4323 4322 -1 -4342 4322 -1 -4722 4322 -1 -4323 4323 6 -4324 4323 -1 -4343 4323 -1 -4723 4323 -1 -4324 4324 6 -4325 4324 -1 -4344 4324 -1 -4724 4324 -1 -4325 4325 6 -4326 4325 -1 -4345 4325 -1 -4725 4325 -1 -4326 4326 6 -4327 4326 -1 -4346 4326 -1 -4726 4326 -1 -4327 4327 6 -4328 4327 -1 -4347 4327 -1 -4727 4327 -1 -4328 4328 6 -4329 4328 -1 -4348 4328 -1 -4728 4328 -1 -4329 4329 6 -4330 4329 -1 -4349 4329 -1 -4729 4329 -1 -4330 4330 6 -4331 4330 -1 -4350 4330 -1 -4730 4330 -1 -4331 4331 6 -4332 4331 -1 -4351 4331 -1 -4731 4331 -1 -4332 4332 6 -4333 4332 -1 -4352 4332 -1 -4732 4332 -1 -4333 4333 6 -4334 4333 -1 -4353 4333 -1 -4733 4333 -1 -4334 4334 6 -4335 4334 -1 -4354 4334 -1 -4734 4334 -1 -4335 4335 6 -4336 4335 -1 -4355 4335 -1 -4735 4335 -1 -4336 4336 6 -4337 4336 -1 -4356 4336 -1 -4736 4336 -1 -4337 4337 6 -4338 4337 -1 -4357 4337 -1 -4737 4337 -1 -4338 4338 6 -4339 4338 -1 -4358 4338 -1 -4738 4338 -1 -4339 4339 6 -4340 4339 -1 -4359 4339 -1 -4739 4339 -1 -4340 4340 6 -4360 4340 -1 -4740 4340 -1 -4341 4341 6 -4342 4341 -1 -4361 4341 -1 -4741 4341 -1 -4342 4342 6 -4343 4342 -1 -4362 4342 -1 -4742 4342 -1 -4343 4343 6 -4344 4343 -1 -4363 4343 -1 -4743 4343 -1 -4344 4344 6 -4345 4344 -1 -4364 4344 -1 -4744 4344 -1 -4345 4345 6 -4346 4345 -1 -4365 4345 -1 -4745 4345 -1 -4346 4346 6 -4347 4346 -1 -4366 4346 -1 -4746 4346 -1 -4347 4347 6 -4348 4347 -1 -4367 4347 -1 -4747 4347 -1 -4348 4348 6 -4349 4348 -1 -4368 4348 -1 -4748 4348 -1 -4349 4349 6 -4350 4349 -1 -4369 4349 -1 -4749 4349 -1 -4350 4350 6 -4351 4350 -1 -4370 4350 -1 -4750 4350 -1 -4351 4351 6 -4352 4351 -1 -4371 4351 -1 -4751 4351 -1 -4352 4352 6 -4353 4352 -1 -4372 4352 -1 -4752 4352 -1 -4353 4353 6 -4354 4353 -1 -4373 4353 -1 -4753 4353 -1 -4354 4354 6 -4355 4354 -1 -4374 4354 -1 -4754 4354 -1 -4355 4355 6 -4356 4355 -1 -4375 4355 -1 -4755 4355 -1 -4356 4356 6 -4357 4356 -1 -4376 4356 -1 -4756 4356 -1 -4357 4357 6 -4358 4357 -1 -4377 4357 -1 -4757 4357 -1 -4358 4358 6 -4359 4358 -1 -4378 4358 -1 -4758 4358 -1 -4359 4359 6 -4360 4359 -1 -4379 4359 -1 -4759 4359 -1 -4360 4360 6 -4380 4360 -1 -4760 4360 -1 -4361 4361 6 -4362 4361 -1 -4381 4361 -1 -4761 4361 -1 -4362 4362 6 -4363 4362 -1 -4382 4362 -1 -4762 4362 -1 -4363 4363 6 -4364 4363 -1 -4383 4363 -1 -4763 4363 -1 -4364 4364 6 -4365 4364 -1 -4384 4364 -1 -4764 4364 -1 -4365 4365 6 -4366 4365 -1 -4385 4365 -1 -4765 4365 -1 -4366 4366 6 -4367 4366 -1 -4386 4366 -1 -4766 4366 -1 -4367 4367 6 -4368 4367 -1 -4387 4367 -1 -4767 4367 -1 -4368 4368 6 -4369 4368 -1 -4388 4368 -1 -4768 4368 -1 -4369 4369 6 -4370 4369 -1 -4389 4369 -1 -4769 4369 -1 -4370 4370 6 -4371 4370 -1 -4390 4370 -1 -4770 4370 -1 -4371 4371 6 -4372 4371 -1 -4391 4371 -1 -4771 4371 -1 -4372 4372 6 -4373 4372 -1 -4392 4372 -1 -4772 4372 -1 -4373 4373 6 -4374 4373 -1 -4393 4373 -1 -4773 4373 -1 -4374 4374 6 -4375 4374 -1 -4394 4374 -1 -4774 4374 -1 -4375 4375 6 -4376 4375 -1 -4395 4375 -1 -4775 4375 -1 -4376 4376 6 -4377 4376 -1 -4396 4376 -1 -4776 4376 -1 -4377 4377 6 -4378 4377 -1 -4397 4377 -1 -4777 4377 -1 -4378 4378 6 -4379 4378 -1 -4398 4378 -1 -4778 4378 -1 -4379 4379 6 -4380 4379 -1 -4399 4379 -1 -4779 4379 -1 -4380 4380 6 -4400 4380 -1 -4780 4380 -1 -4381 4381 6 -4382 4381 -1 -4781 4381 -1 -4382 4382 6 -4383 4382 -1 -4782 4382 -1 -4383 4383 6 -4384 4383 -1 -4783 4383 -1 -4384 4384 6 -4385 4384 -1 -4784 4384 -1 -4385 4385 6 -4386 4385 -1 -4785 4385 -1 -4386 4386 6 -4387 4386 -1 -4786 4386 -1 -4387 4387 6 -4388 4387 -1 -4787 4387 -1 -4388 4388 6 -4389 4388 -1 -4788 4388 -1 -4389 4389 6 -4390 4389 -1 -4789 4389 -1 -4390 4390 6 -4391 4390 -1 -4790 4390 -1 -4391 4391 6 -4392 4391 -1 -4791 4391 -1 -4392 4392 6 -4393 4392 -1 -4792 4392 -1 -4393 4393 6 -4394 4393 -1 -4793 4393 -1 -4394 4394 6 -4395 4394 -1 -4794 4394 -1 -4395 4395 6 -4396 4395 -1 -4795 4395 -1 -4396 4396 6 -4397 4396 -1 -4796 4396 -1 -4397 4397 6 -4398 4397 -1 -4797 4397 -1 -4398 4398 6 -4399 4398 -1 -4798 4398 -1 -4399 4399 6 -4400 4399 -1 -4799 4399 -1 -4400 4400 6 -4800 4400 -1 -4401 4401 6 -4402 4401 -1 -4421 4401 -1 -4801 4401 -1 -4402 4402 6 -4403 4402 -1 -4422 4402 -1 -4802 4402 -1 -4403 4403 6 -4404 4403 -1 -4423 4403 -1 -4803 4403 -1 -4404 4404 6 -4405 4404 -1 -4424 4404 -1 -4804 4404 -1 -4405 4405 6 -4406 4405 -1 -4425 4405 -1 -4805 4405 -1 -4406 4406 6 -4407 4406 -1 -4426 4406 -1 -4806 4406 -1 -4407 4407 6 -4408 4407 -1 -4427 4407 -1 -4807 4407 -1 -4408 4408 6 -4409 4408 -1 -4428 4408 -1 -4808 4408 -1 -4409 4409 6 -4410 4409 -1 -4429 4409 -1 -4809 4409 -1 -4410 4410 6 -4411 4410 -1 -4430 4410 -1 -4810 4410 -1 -4411 4411 6 -4412 4411 -1 -4431 4411 -1 -4811 4411 -1 -4412 4412 6 -4413 4412 -1 -4432 4412 -1 -4812 4412 -1 -4413 4413 6 -4414 4413 -1 -4433 4413 -1 -4813 4413 -1 -4414 4414 6 -4415 4414 -1 -4434 4414 -1 -4814 4414 -1 -4415 4415 6 -4416 4415 -1 -4435 4415 -1 -4815 4415 -1 -4416 4416 6 -4417 4416 -1 -4436 4416 -1 -4816 4416 -1 -4417 4417 6 -4418 4417 -1 -4437 4417 -1 -4817 4417 -1 -4418 4418 6 -4419 4418 -1 -4438 4418 -1 -4818 4418 -1 -4419 4419 6 -4420 4419 -1 -4439 4419 -1 -4819 4419 -1 -4420 4420 6 -4440 4420 -1 -4820 4420 -1 -4421 4421 6 -4422 4421 -1 -4441 4421 -1 -4821 4421 -1 -4422 4422 6 -4423 4422 -1 -4442 4422 -1 -4822 4422 -1 -4423 4423 6 -4424 4423 -1 -4443 4423 -1 -4823 4423 -1 -4424 4424 6 -4425 4424 -1 -4444 4424 -1 -4824 4424 -1 -4425 4425 6 -4426 4425 -1 -4445 4425 -1 -4825 4425 -1 -4426 4426 6 -4427 4426 -1 -4446 4426 -1 -4826 4426 -1 -4427 4427 6 -4428 4427 -1 -4447 4427 -1 -4827 4427 -1 -4428 4428 6 -4429 4428 -1 -4448 4428 -1 -4828 4428 -1 -4429 4429 6 -4430 4429 -1 -4449 4429 -1 -4829 4429 -1 -4430 4430 6 -4431 4430 -1 -4450 4430 -1 -4830 4430 -1 -4431 4431 6 -4432 4431 -1 -4451 4431 -1 -4831 4431 -1 -4432 4432 6 -4433 4432 -1 -4452 4432 -1 -4832 4432 -1 -4433 4433 6 -4434 4433 -1 -4453 4433 -1 -4833 4433 -1 -4434 4434 6 -4435 4434 -1 -4454 4434 -1 -4834 4434 -1 -4435 4435 6 -4436 4435 -1 -4455 4435 -1 -4835 4435 -1 -4436 4436 6 -4437 4436 -1 -4456 4436 -1 -4836 4436 -1 -4437 4437 6 -4438 4437 -1 -4457 4437 -1 -4837 4437 -1 -4438 4438 6 -4439 4438 -1 -4458 4438 -1 -4838 4438 -1 -4439 4439 6 -4440 4439 -1 -4459 4439 -1 -4839 4439 -1 -4440 4440 6 -4460 4440 -1 -4840 4440 -1 -4441 4441 6 -4442 4441 -1 -4461 4441 -1 -4841 4441 -1 -4442 4442 6 -4443 4442 -1 -4462 4442 -1 -4842 4442 -1 -4443 4443 6 -4444 4443 -1 -4463 4443 -1 -4843 4443 -1 -4444 4444 6 -4445 4444 -1 -4464 4444 -1 -4844 4444 -1 -4445 4445 6 -4446 4445 -1 -4465 4445 -1 -4845 4445 -1 -4446 4446 6 -4447 4446 -1 -4466 4446 -1 -4846 4446 -1 -4447 4447 6 -4448 4447 -1 -4467 4447 -1 -4847 4447 -1 -4448 4448 6 -4449 4448 -1 -4468 4448 -1 -4848 4448 -1 -4449 4449 6 -4450 4449 -1 -4469 4449 -1 -4849 4449 -1 -4450 4450 6 -4451 4450 -1 -4470 4450 -1 -4850 4450 -1 -4451 4451 6 -4452 4451 -1 -4471 4451 -1 -4851 4451 -1 -4452 4452 6 -4453 4452 -1 -4472 4452 -1 -4852 4452 -1 -4453 4453 6 -4454 4453 -1 -4473 4453 -1 -4853 4453 -1 -4454 4454 6 -4455 4454 -1 -4474 4454 -1 -4854 4454 -1 -4455 4455 6 -4456 4455 -1 -4475 4455 -1 -4855 4455 -1 -4456 4456 6 -4457 4456 -1 -4476 4456 -1 -4856 4456 -1 -4457 4457 6 -4458 4457 -1 -4477 4457 -1 -4857 4457 -1 -4458 4458 6 -4459 4458 -1 -4478 4458 -1 -4858 4458 -1 -4459 4459 6 -4460 4459 -1 -4479 4459 -1 -4859 4459 -1 -4460 4460 6 -4480 4460 -1 -4860 4460 -1 -4461 4461 6 -4462 4461 -1 -4481 4461 -1 -4861 4461 -1 -4462 4462 6 -4463 4462 -1 -4482 4462 -1 -4862 4462 -1 -4463 4463 6 -4464 4463 -1 -4483 4463 -1 -4863 4463 -1 -4464 4464 6 -4465 4464 -1 -4484 4464 -1 -4864 4464 -1 -4465 4465 6 -4466 4465 -1 -4485 4465 -1 -4865 4465 -1 -4466 4466 6 -4467 4466 -1 -4486 4466 -1 -4866 4466 -1 -4467 4467 6 -4468 4467 -1 -4487 4467 -1 -4867 4467 -1 -4468 4468 6 -4469 4468 -1 -4488 4468 -1 -4868 4468 -1 -4469 4469 6 -4470 4469 -1 -4489 4469 -1 -4869 4469 -1 -4470 4470 6 -4471 4470 -1 -4490 4470 -1 -4870 4470 -1 -4471 4471 6 -4472 4471 -1 -4491 4471 -1 -4871 4471 -1 -4472 4472 6 -4473 4472 -1 -4492 4472 -1 -4872 4472 -1 -4473 4473 6 -4474 4473 -1 -4493 4473 -1 -4873 4473 -1 -4474 4474 6 -4475 4474 -1 -4494 4474 -1 -4874 4474 -1 -4475 4475 6 -4476 4475 -1 -4495 4475 -1 -4875 4475 -1 -4476 4476 6 -4477 4476 -1 -4496 4476 -1 -4876 4476 -1 -4477 4477 6 -4478 4477 -1 -4497 4477 -1 -4877 4477 -1 -4478 4478 6 -4479 4478 -1 -4498 4478 -1 -4878 4478 -1 -4479 4479 6 -4480 4479 -1 -4499 4479 -1 -4879 4479 -1 -4480 4480 6 -4500 4480 -1 -4880 4480 -1 -4481 4481 6 -4482 4481 -1 -4501 4481 -1 -4881 4481 -1 -4482 4482 6 -4483 4482 -1 -4502 4482 -1 -4882 4482 -1 -4483 4483 6 -4484 4483 -1 -4503 4483 -1 -4883 4483 -1 -4484 4484 6 -4485 4484 -1 -4504 4484 -1 -4884 4484 -1 -4485 4485 6 -4486 4485 -1 -4505 4485 -1 -4885 4485 -1 -4486 4486 6 -4487 4486 -1 -4506 4486 -1 -4886 4486 -1 -4487 4487 6 -4488 4487 -1 -4507 4487 -1 -4887 4487 -1 -4488 4488 6 -4489 4488 -1 -4508 4488 -1 -4888 4488 -1 -4489 4489 6 -4490 4489 -1 -4509 4489 -1 -4889 4489 -1 -4490 4490 6 -4491 4490 -1 -4510 4490 -1 -4890 4490 -1 -4491 4491 6 -4492 4491 -1 -4511 4491 -1 -4891 4491 -1 -4492 4492 6 -4493 4492 -1 -4512 4492 -1 -4892 4492 -1 -4493 4493 6 -4494 4493 -1 -4513 4493 -1 -4893 4493 -1 -4494 4494 6 -4495 4494 -1 -4514 4494 -1 -4894 4494 -1 -4495 4495 6 -4496 4495 -1 -4515 4495 -1 -4895 4495 -1 -4496 4496 6 -4497 4496 -1 -4516 4496 -1 -4896 4496 -1 -4497 4497 6 -4498 4497 -1 -4517 4497 -1 -4897 4497 -1 -4498 4498 6 -4499 4498 -1 -4518 4498 -1 -4898 4498 -1 -4499 4499 6 -4500 4499 -1 -4519 4499 -1 -4899 4499 -1 -4500 4500 6 -4520 4500 -1 -4900 4500 -1 -4501 4501 6 -4502 4501 -1 -4521 4501 -1 -4901 4501 -1 -4502 4502 6 -4503 4502 -1 -4522 4502 -1 -4902 4502 -1 -4503 4503 6 -4504 4503 -1 -4523 4503 -1 -4903 4503 -1 -4504 4504 6 -4505 4504 -1 -4524 4504 -1 -4904 4504 -1 -4505 4505 6 -4506 4505 -1 -4525 4505 -1 -4905 4505 -1 -4506 4506 6 -4507 4506 -1 -4526 4506 -1 -4906 4506 -1 -4507 4507 6 -4508 4507 -1 -4527 4507 -1 -4907 4507 -1 -4508 4508 6 -4509 4508 -1 -4528 4508 -1 -4908 4508 -1 -4509 4509 6 -4510 4509 -1 -4529 4509 -1 -4909 4509 -1 -4510 4510 6 -4511 4510 -1 -4530 4510 -1 -4910 4510 -1 -4511 4511 6 -4512 4511 -1 -4531 4511 -1 -4911 4511 -1 -4512 4512 6 -4513 4512 -1 -4532 4512 -1 -4912 4512 -1 -4513 4513 6 -4514 4513 -1 -4533 4513 -1 -4913 4513 -1 -4514 4514 6 -4515 4514 -1 -4534 4514 -1 -4914 4514 -1 -4515 4515 6 -4516 4515 -1 -4535 4515 -1 -4915 4515 -1 -4516 4516 6 -4517 4516 -1 -4536 4516 -1 -4916 4516 -1 -4517 4517 6 -4518 4517 -1 -4537 4517 -1 -4917 4517 -1 -4518 4518 6 -4519 4518 -1 -4538 4518 -1 -4918 4518 -1 -4519 4519 6 -4520 4519 -1 -4539 4519 -1 -4919 4519 -1 -4520 4520 6 -4540 4520 -1 -4920 4520 -1 -4521 4521 6 -4522 4521 -1 -4541 4521 -1 -4921 4521 -1 -4522 4522 6 -4523 4522 -1 -4542 4522 -1 -4922 4522 -1 -4523 4523 6 -4524 4523 -1 -4543 4523 -1 -4923 4523 -1 -4524 4524 6 -4525 4524 -1 -4544 4524 -1 -4924 4524 -1 -4525 4525 6 -4526 4525 -1 -4545 4525 -1 -4925 4525 -1 -4526 4526 6 -4527 4526 -1 -4546 4526 -1 -4926 4526 -1 -4527 4527 6 -4528 4527 -1 -4547 4527 -1 -4927 4527 -1 -4528 4528 6 -4529 4528 -1 -4548 4528 -1 -4928 4528 -1 -4529 4529 6 -4530 4529 -1 -4549 4529 -1 -4929 4529 -1 -4530 4530 6 -4531 4530 -1 -4550 4530 -1 -4930 4530 -1 -4531 4531 6 -4532 4531 -1 -4551 4531 -1 -4931 4531 -1 -4532 4532 6 -4533 4532 -1 -4552 4532 -1 -4932 4532 -1 -4533 4533 6 -4534 4533 -1 -4553 4533 -1 -4933 4533 -1 -4534 4534 6 -4535 4534 -1 -4554 4534 -1 -4934 4534 -1 -4535 4535 6 -4536 4535 -1 -4555 4535 -1 -4935 4535 -1 -4536 4536 6 -4537 4536 -1 -4556 4536 -1 -4936 4536 -1 -4537 4537 6 -4538 4537 -1 -4557 4537 -1 -4937 4537 -1 -4538 4538 6 -4539 4538 -1 -4558 4538 -1 -4938 4538 -1 -4539 4539 6 -4540 4539 -1 -4559 4539 -1 -4939 4539 -1 -4540 4540 6 -4560 4540 -1 -4940 4540 -1 -4541 4541 6 -4542 4541 -1 -4561 4541 -1 -4941 4541 -1 -4542 4542 6 -4543 4542 -1 -4562 4542 -1 -4942 4542 -1 -4543 4543 6 -4544 4543 -1 -4563 4543 -1 -4943 4543 -1 -4544 4544 6 -4545 4544 -1 -4564 4544 -1 -4944 4544 -1 -4545 4545 6 -4546 4545 -1 -4565 4545 -1 -4945 4545 -1 -4546 4546 6 -4547 4546 -1 -4566 4546 -1 -4946 4546 -1 -4547 4547 6 -4548 4547 -1 -4567 4547 -1 -4947 4547 -1 -4548 4548 6 -4549 4548 -1 -4568 4548 -1 -4948 4548 -1 -4549 4549 6 -4550 4549 -1 -4569 4549 -1 -4949 4549 -1 -4550 4550 6 -4551 4550 -1 -4570 4550 -1 -4950 4550 -1 -4551 4551 6 -4552 4551 -1 -4571 4551 -1 -4951 4551 -1 -4552 4552 6 -4553 4552 -1 -4572 4552 -1 -4952 4552 -1 -4553 4553 6 -4554 4553 -1 -4573 4553 -1 -4953 4553 -1 -4554 4554 6 -4555 4554 -1 -4574 4554 -1 -4954 4554 -1 -4555 4555 6 -4556 4555 -1 -4575 4555 -1 -4955 4555 -1 -4556 4556 6 -4557 4556 -1 -4576 4556 -1 -4956 4556 -1 -4557 4557 6 -4558 4557 -1 -4577 4557 -1 -4957 4557 -1 -4558 4558 6 -4559 4558 -1 -4578 4558 -1 -4958 4558 -1 -4559 4559 6 -4560 4559 -1 -4579 4559 -1 -4959 4559 -1 -4560 4560 6 -4580 4560 -1 -4960 4560 -1 -4561 4561 6 -4562 4561 -1 -4581 4561 -1 -4961 4561 -1 -4562 4562 6 -4563 4562 -1 -4582 4562 -1 -4962 4562 -1 -4563 4563 6 -4564 4563 -1 -4583 4563 -1 -4963 4563 -1 -4564 4564 6 -4565 4564 -1 -4584 4564 -1 -4964 4564 -1 -4565 4565 6 -4566 4565 -1 -4585 4565 -1 -4965 4565 -1 -4566 4566 6 -4567 4566 -1 -4586 4566 -1 -4966 4566 -1 -4567 4567 6 -4568 4567 -1 -4587 4567 -1 -4967 4567 -1 -4568 4568 6 -4569 4568 -1 -4588 4568 -1 -4968 4568 -1 -4569 4569 6 -4570 4569 -1 -4589 4569 -1 -4969 4569 -1 -4570 4570 6 -4571 4570 -1 -4590 4570 -1 -4970 4570 -1 -4571 4571 6 -4572 4571 -1 -4591 4571 -1 -4971 4571 -1 -4572 4572 6 -4573 4572 -1 -4592 4572 -1 -4972 4572 -1 -4573 4573 6 -4574 4573 -1 -4593 4573 -1 -4973 4573 -1 -4574 4574 6 -4575 4574 -1 -4594 4574 -1 -4974 4574 -1 -4575 4575 6 -4576 4575 -1 -4595 4575 -1 -4975 4575 -1 -4576 4576 6 -4577 4576 -1 -4596 4576 -1 -4976 4576 -1 -4577 4577 6 -4578 4577 -1 -4597 4577 -1 -4977 4577 -1 -4578 4578 6 -4579 4578 -1 -4598 4578 -1 -4978 4578 -1 -4579 4579 6 -4580 4579 -1 -4599 4579 -1 -4979 4579 -1 -4580 4580 6 -4600 4580 -1 -4980 4580 -1 -4581 4581 6 -4582 4581 -1 -4601 4581 -1 -4981 4581 -1 -4582 4582 6 -4583 4582 -1 -4602 4582 -1 -4982 4582 -1 -4583 4583 6 -4584 4583 -1 -4603 4583 -1 -4983 4583 -1 -4584 4584 6 -4585 4584 -1 -4604 4584 -1 -4984 4584 -1 -4585 4585 6 -4586 4585 -1 -4605 4585 -1 -4985 4585 -1 -4586 4586 6 -4587 4586 -1 -4606 4586 -1 -4986 4586 -1 -4587 4587 6 -4588 4587 -1 -4607 4587 -1 -4987 4587 -1 -4588 4588 6 -4589 4588 -1 -4608 4588 -1 -4988 4588 -1 -4589 4589 6 -4590 4589 -1 -4609 4589 -1 -4989 4589 -1 -4590 4590 6 -4591 4590 -1 -4610 4590 -1 -4990 4590 -1 -4591 4591 6 -4592 4591 -1 -4611 4591 -1 -4991 4591 -1 -4592 4592 6 -4593 4592 -1 -4612 4592 -1 -4992 4592 -1 -4593 4593 6 -4594 4593 -1 -4613 4593 -1 -4993 4593 -1 -4594 4594 6 -4595 4594 -1 -4614 4594 -1 -4994 4594 -1 -4595 4595 6 -4596 4595 -1 -4615 4595 -1 -4995 4595 -1 -4596 4596 6 -4597 4596 -1 -4616 4596 -1 -4996 4596 -1 -4597 4597 6 -4598 4597 -1 -4617 4597 -1 -4997 4597 -1 -4598 4598 6 -4599 4598 -1 -4618 4598 -1 -4998 4598 -1 -4599 4599 6 -4600 4599 -1 -4619 4599 -1 -4999 4599 -1 -4600 4600 6 -4620 4600 -1 -5000 4600 -1 -4601 4601 6 -4602 4601 -1 -4621 4601 -1 -5001 4601 -1 -4602 4602 6 -4603 4602 -1 -4622 4602 -1 -5002 4602 -1 -4603 4603 6 -4604 4603 -1 -4623 4603 -1 -5003 4603 -1 -4604 4604 6 -4605 4604 -1 -4624 4604 -1 -5004 4604 -1 -4605 4605 6 -4606 4605 -1 -4625 4605 -1 -5005 4605 -1 -4606 4606 6 -4607 4606 -1 -4626 4606 -1 -5006 4606 -1 -4607 4607 6 -4608 4607 -1 -4627 4607 -1 -5007 4607 -1 -4608 4608 6 -4609 4608 -1 -4628 4608 -1 -5008 4608 -1 -4609 4609 6 -4610 4609 -1 -4629 4609 -1 -5009 4609 -1 -4610 4610 6 -4611 4610 -1 -4630 4610 -1 -5010 4610 -1 -4611 4611 6 -4612 4611 -1 -4631 4611 -1 -5011 4611 -1 -4612 4612 6 -4613 4612 -1 -4632 4612 -1 -5012 4612 -1 -4613 4613 6 -4614 4613 -1 -4633 4613 -1 -5013 4613 -1 -4614 4614 6 -4615 4614 -1 -4634 4614 -1 -5014 4614 -1 -4615 4615 6 -4616 4615 -1 -4635 4615 -1 -5015 4615 -1 -4616 4616 6 -4617 4616 -1 -4636 4616 -1 -5016 4616 -1 -4617 4617 6 -4618 4617 -1 -4637 4617 -1 -5017 4617 -1 -4618 4618 6 -4619 4618 -1 -4638 4618 -1 -5018 4618 -1 -4619 4619 6 -4620 4619 -1 -4639 4619 -1 -5019 4619 -1 -4620 4620 6 -4640 4620 -1 -5020 4620 -1 -4621 4621 6 -4622 4621 -1 -4641 4621 -1 -5021 4621 -1 -4622 4622 6 -4623 4622 -1 -4642 4622 -1 -5022 4622 -1 -4623 4623 6 -4624 4623 -1 -4643 4623 -1 -5023 4623 -1 -4624 4624 6 -4625 4624 -1 -4644 4624 -1 -5024 4624 -1 -4625 4625 6 -4626 4625 -1 -4645 4625 -1 -5025 4625 -1 -4626 4626 6 -4627 4626 -1 -4646 4626 -1 -5026 4626 -1 -4627 4627 6 -4628 4627 -1 -4647 4627 -1 -5027 4627 -1 -4628 4628 6 -4629 4628 -1 -4648 4628 -1 -5028 4628 -1 -4629 4629 6 -4630 4629 -1 -4649 4629 -1 -5029 4629 -1 -4630 4630 6 -4631 4630 -1 -4650 4630 -1 -5030 4630 -1 -4631 4631 6 -4632 4631 -1 -4651 4631 -1 -5031 4631 -1 -4632 4632 6 -4633 4632 -1 -4652 4632 -1 -5032 4632 -1 -4633 4633 6 -4634 4633 -1 -4653 4633 -1 -5033 4633 -1 -4634 4634 6 -4635 4634 -1 -4654 4634 -1 -5034 4634 -1 -4635 4635 6 -4636 4635 -1 -4655 4635 -1 -5035 4635 -1 -4636 4636 6 -4637 4636 -1 -4656 4636 -1 -5036 4636 -1 -4637 4637 6 -4638 4637 -1 -4657 4637 -1 -5037 4637 -1 -4638 4638 6 -4639 4638 -1 -4658 4638 -1 -5038 4638 -1 -4639 4639 6 -4640 4639 -1 -4659 4639 -1 -5039 4639 -1 -4640 4640 6 -4660 4640 -1 -5040 4640 -1 -4641 4641 6 -4642 4641 -1 -4661 4641 -1 -5041 4641 -1 -4642 4642 6 -4643 4642 -1 -4662 4642 -1 -5042 4642 -1 -4643 4643 6 -4644 4643 -1 -4663 4643 -1 -5043 4643 -1 -4644 4644 6 -4645 4644 -1 -4664 4644 -1 -5044 4644 -1 -4645 4645 6 -4646 4645 -1 -4665 4645 -1 -5045 4645 -1 -4646 4646 6 -4647 4646 -1 -4666 4646 -1 -5046 4646 -1 -4647 4647 6 -4648 4647 -1 -4667 4647 -1 -5047 4647 -1 -4648 4648 6 -4649 4648 -1 -4668 4648 -1 -5048 4648 -1 -4649 4649 6 -4650 4649 -1 -4669 4649 -1 -5049 4649 -1 -4650 4650 6 -4651 4650 -1 -4670 4650 -1 -5050 4650 -1 -4651 4651 6 -4652 4651 -1 -4671 4651 -1 -5051 4651 -1 -4652 4652 6 -4653 4652 -1 -4672 4652 -1 -5052 4652 -1 -4653 4653 6 -4654 4653 -1 -4673 4653 -1 -5053 4653 -1 -4654 4654 6 -4655 4654 -1 -4674 4654 -1 -5054 4654 -1 -4655 4655 6 -4656 4655 -1 -4675 4655 -1 -5055 4655 -1 -4656 4656 6 -4657 4656 -1 -4676 4656 -1 -5056 4656 -1 -4657 4657 6 -4658 4657 -1 -4677 4657 -1 -5057 4657 -1 -4658 4658 6 -4659 4658 -1 -4678 4658 -1 -5058 4658 -1 -4659 4659 6 -4660 4659 -1 -4679 4659 -1 -5059 4659 -1 -4660 4660 6 -4680 4660 -1 -5060 4660 -1 -4661 4661 6 -4662 4661 -1 -4681 4661 -1 -5061 4661 -1 -4662 4662 6 -4663 4662 -1 -4682 4662 -1 -5062 4662 -1 -4663 4663 6 -4664 4663 -1 -4683 4663 -1 -5063 4663 -1 -4664 4664 6 -4665 4664 -1 -4684 4664 -1 -5064 4664 -1 -4665 4665 6 -4666 4665 -1 -4685 4665 -1 -5065 4665 -1 -4666 4666 6 -4667 4666 -1 -4686 4666 -1 -5066 4666 -1 -4667 4667 6 -4668 4667 -1 -4687 4667 -1 -5067 4667 -1 -4668 4668 6 -4669 4668 -1 -4688 4668 -1 -5068 4668 -1 -4669 4669 6 -4670 4669 -1 -4689 4669 -1 -5069 4669 -1 -4670 4670 6 -4671 4670 -1 -4690 4670 -1 -5070 4670 -1 -4671 4671 6 -4672 4671 -1 -4691 4671 -1 -5071 4671 -1 -4672 4672 6 -4673 4672 -1 -4692 4672 -1 -5072 4672 -1 -4673 4673 6 -4674 4673 -1 -4693 4673 -1 -5073 4673 -1 -4674 4674 6 -4675 4674 -1 -4694 4674 -1 -5074 4674 -1 -4675 4675 6 -4676 4675 -1 -4695 4675 -1 -5075 4675 -1 -4676 4676 6 -4677 4676 -1 -4696 4676 -1 -5076 4676 -1 -4677 4677 6 -4678 4677 -1 -4697 4677 -1 -5077 4677 -1 -4678 4678 6 -4679 4678 -1 -4698 4678 -1 -5078 4678 -1 -4679 4679 6 -4680 4679 -1 -4699 4679 -1 -5079 4679 -1 -4680 4680 6 -4700 4680 -1 -5080 4680 -1 -4681 4681 6 -4682 4681 -1 -4701 4681 -1 -5081 4681 -1 -4682 4682 6 -4683 4682 -1 -4702 4682 -1 -5082 4682 -1 -4683 4683 6 -4684 4683 -1 -4703 4683 -1 -5083 4683 -1 -4684 4684 6 -4685 4684 -1 -4704 4684 -1 -5084 4684 -1 -4685 4685 6 -4686 4685 -1 -4705 4685 -1 -5085 4685 -1 -4686 4686 6 -4687 4686 -1 -4706 4686 -1 -5086 4686 -1 -4687 4687 6 -4688 4687 -1 -4707 4687 -1 -5087 4687 -1 -4688 4688 6 -4689 4688 -1 -4708 4688 -1 -5088 4688 -1 -4689 4689 6 -4690 4689 -1 -4709 4689 -1 -5089 4689 -1 -4690 4690 6 -4691 4690 -1 -4710 4690 -1 -5090 4690 -1 -4691 4691 6 -4692 4691 -1 -4711 4691 -1 -5091 4691 -1 -4692 4692 6 -4693 4692 -1 -4712 4692 -1 -5092 4692 -1 -4693 4693 6 -4694 4693 -1 -4713 4693 -1 -5093 4693 -1 -4694 4694 6 -4695 4694 -1 -4714 4694 -1 -5094 4694 -1 -4695 4695 6 -4696 4695 -1 -4715 4695 -1 -5095 4695 -1 -4696 4696 6 -4697 4696 -1 -4716 4696 -1 -5096 4696 -1 -4697 4697 6 -4698 4697 -1 -4717 4697 -1 -5097 4697 -1 -4698 4698 6 -4699 4698 -1 -4718 4698 -1 -5098 4698 -1 -4699 4699 6 -4700 4699 -1 -4719 4699 -1 -5099 4699 -1 -4700 4700 6 -4720 4700 -1 -5100 4700 -1 -4701 4701 6 -4702 4701 -1 -4721 4701 -1 -5101 4701 -1 -4702 4702 6 -4703 4702 -1 -4722 4702 -1 -5102 4702 -1 -4703 4703 6 -4704 4703 -1 -4723 4703 -1 -5103 4703 -1 -4704 4704 6 -4705 4704 -1 -4724 4704 -1 -5104 4704 -1 -4705 4705 6 -4706 4705 -1 -4725 4705 -1 -5105 4705 -1 -4706 4706 6 -4707 4706 -1 -4726 4706 -1 -5106 4706 -1 -4707 4707 6 -4708 4707 -1 -4727 4707 -1 -5107 4707 -1 -4708 4708 6 -4709 4708 -1 -4728 4708 -1 -5108 4708 -1 -4709 4709 6 -4710 4709 -1 -4729 4709 -1 -5109 4709 -1 -4710 4710 6 -4711 4710 -1 -4730 4710 -1 -5110 4710 -1 -4711 4711 6 -4712 4711 -1 -4731 4711 -1 -5111 4711 -1 -4712 4712 6 -4713 4712 -1 -4732 4712 -1 -5112 4712 -1 -4713 4713 6 -4714 4713 -1 -4733 4713 -1 -5113 4713 -1 -4714 4714 6 -4715 4714 -1 -4734 4714 -1 -5114 4714 -1 -4715 4715 6 -4716 4715 -1 -4735 4715 -1 -5115 4715 -1 -4716 4716 6 -4717 4716 -1 -4736 4716 -1 -5116 4716 -1 -4717 4717 6 -4718 4717 -1 -4737 4717 -1 -5117 4717 -1 -4718 4718 6 -4719 4718 -1 -4738 4718 -1 -5118 4718 -1 -4719 4719 6 -4720 4719 -1 -4739 4719 -1 -5119 4719 -1 -4720 4720 6 -4740 4720 -1 -5120 4720 -1 -4721 4721 6 -4722 4721 -1 -4741 4721 -1 -5121 4721 -1 -4722 4722 6 -4723 4722 -1 -4742 4722 -1 -5122 4722 -1 -4723 4723 6 -4724 4723 -1 -4743 4723 -1 -5123 4723 -1 -4724 4724 6 -4725 4724 -1 -4744 4724 -1 -5124 4724 -1 -4725 4725 6 -4726 4725 -1 -4745 4725 -1 -5125 4725 -1 -4726 4726 6 -4727 4726 -1 -4746 4726 -1 -5126 4726 -1 -4727 4727 6 -4728 4727 -1 -4747 4727 -1 -5127 4727 -1 -4728 4728 6 -4729 4728 -1 -4748 4728 -1 -5128 4728 -1 -4729 4729 6 -4730 4729 -1 -4749 4729 -1 -5129 4729 -1 -4730 4730 6 -4731 4730 -1 -4750 4730 -1 -5130 4730 -1 -4731 4731 6 -4732 4731 -1 -4751 4731 -1 -5131 4731 -1 -4732 4732 6 -4733 4732 -1 -4752 4732 -1 -5132 4732 -1 -4733 4733 6 -4734 4733 -1 -4753 4733 -1 -5133 4733 -1 -4734 4734 6 -4735 4734 -1 -4754 4734 -1 -5134 4734 -1 -4735 4735 6 -4736 4735 -1 -4755 4735 -1 -5135 4735 -1 -4736 4736 6 -4737 4736 -1 -4756 4736 -1 -5136 4736 -1 -4737 4737 6 -4738 4737 -1 -4757 4737 -1 -5137 4737 -1 -4738 4738 6 -4739 4738 -1 -4758 4738 -1 -5138 4738 -1 -4739 4739 6 -4740 4739 -1 -4759 4739 -1 -5139 4739 -1 -4740 4740 6 -4760 4740 -1 -5140 4740 -1 -4741 4741 6 -4742 4741 -1 -4761 4741 -1 -5141 4741 -1 -4742 4742 6 -4743 4742 -1 -4762 4742 -1 -5142 4742 -1 -4743 4743 6 -4744 4743 -1 -4763 4743 -1 -5143 4743 -1 -4744 4744 6 -4745 4744 -1 -4764 4744 -1 -5144 4744 -1 -4745 4745 6 -4746 4745 -1 -4765 4745 -1 -5145 4745 -1 -4746 4746 6 -4747 4746 -1 -4766 4746 -1 -5146 4746 -1 -4747 4747 6 -4748 4747 -1 -4767 4747 -1 -5147 4747 -1 -4748 4748 6 -4749 4748 -1 -4768 4748 -1 -5148 4748 -1 -4749 4749 6 -4750 4749 -1 -4769 4749 -1 -5149 4749 -1 -4750 4750 6 -4751 4750 -1 -4770 4750 -1 -5150 4750 -1 -4751 4751 6 -4752 4751 -1 -4771 4751 -1 -5151 4751 -1 -4752 4752 6 -4753 4752 -1 -4772 4752 -1 -5152 4752 -1 -4753 4753 6 -4754 4753 -1 -4773 4753 -1 -5153 4753 -1 -4754 4754 6 -4755 4754 -1 -4774 4754 -1 -5154 4754 -1 -4755 4755 6 -4756 4755 -1 -4775 4755 -1 -5155 4755 -1 -4756 4756 6 -4757 4756 -1 -4776 4756 -1 -5156 4756 -1 -4757 4757 6 -4758 4757 -1 -4777 4757 -1 -5157 4757 -1 -4758 4758 6 -4759 4758 -1 -4778 4758 -1 -5158 4758 -1 -4759 4759 6 -4760 4759 -1 -4779 4759 -1 -5159 4759 -1 -4760 4760 6 -4780 4760 -1 -5160 4760 -1 -4761 4761 6 -4762 4761 -1 -4781 4761 -1 -5161 4761 -1 -4762 4762 6 -4763 4762 -1 -4782 4762 -1 -5162 4762 -1 -4763 4763 6 -4764 4763 -1 -4783 4763 -1 -5163 4763 -1 -4764 4764 6 -4765 4764 -1 -4784 4764 -1 -5164 4764 -1 -4765 4765 6 -4766 4765 -1 -4785 4765 -1 -5165 4765 -1 -4766 4766 6 -4767 4766 -1 -4786 4766 -1 -5166 4766 -1 -4767 4767 6 -4768 4767 -1 -4787 4767 -1 -5167 4767 -1 -4768 4768 6 -4769 4768 -1 -4788 4768 -1 -5168 4768 -1 -4769 4769 6 -4770 4769 -1 -4789 4769 -1 -5169 4769 -1 -4770 4770 6 -4771 4770 -1 -4790 4770 -1 -5170 4770 -1 -4771 4771 6 -4772 4771 -1 -4791 4771 -1 -5171 4771 -1 -4772 4772 6 -4773 4772 -1 -4792 4772 -1 -5172 4772 -1 -4773 4773 6 -4774 4773 -1 -4793 4773 -1 -5173 4773 -1 -4774 4774 6 -4775 4774 -1 -4794 4774 -1 -5174 4774 -1 -4775 4775 6 -4776 4775 -1 -4795 4775 -1 -5175 4775 -1 -4776 4776 6 -4777 4776 -1 -4796 4776 -1 -5176 4776 -1 -4777 4777 6 -4778 4777 -1 -4797 4777 -1 -5177 4777 -1 -4778 4778 6 -4779 4778 -1 -4798 4778 -1 -5178 4778 -1 -4779 4779 6 -4780 4779 -1 -4799 4779 -1 -5179 4779 -1 -4780 4780 6 -4800 4780 -1 -5180 4780 -1 -4781 4781 6 -4782 4781 -1 -5181 4781 -1 -4782 4782 6 -4783 4782 -1 -5182 4782 -1 -4783 4783 6 -4784 4783 -1 -5183 4783 -1 -4784 4784 6 -4785 4784 -1 -5184 4784 -1 -4785 4785 6 -4786 4785 -1 -5185 4785 -1 -4786 4786 6 -4787 4786 -1 -5186 4786 -1 -4787 4787 6 -4788 4787 -1 -5187 4787 -1 -4788 4788 6 -4789 4788 -1 -5188 4788 -1 -4789 4789 6 -4790 4789 -1 -5189 4789 -1 -4790 4790 6 -4791 4790 -1 -5190 4790 -1 -4791 4791 6 -4792 4791 -1 -5191 4791 -1 -4792 4792 6 -4793 4792 -1 -5192 4792 -1 -4793 4793 6 -4794 4793 -1 -5193 4793 -1 -4794 4794 6 -4795 4794 -1 -5194 4794 -1 -4795 4795 6 -4796 4795 -1 -5195 4795 -1 -4796 4796 6 -4797 4796 -1 -5196 4796 -1 -4797 4797 6 -4798 4797 -1 -5197 4797 -1 -4798 4798 6 -4799 4798 -1 -5198 4798 -1 -4799 4799 6 -4800 4799 -1 -5199 4799 -1 -4800 4800 6 -5200 4800 -1 -4801 4801 6 -4802 4801 -1 -4821 4801 -1 -5201 4801 -1 -4802 4802 6 -4803 4802 -1 -4822 4802 -1 -5202 4802 -1 -4803 4803 6 -4804 4803 -1 -4823 4803 -1 -5203 4803 -1 -4804 4804 6 -4805 4804 -1 -4824 4804 -1 -5204 4804 -1 -4805 4805 6 -4806 4805 -1 -4825 4805 -1 -5205 4805 -1 -4806 4806 6 -4807 4806 -1 -4826 4806 -1 -5206 4806 -1 -4807 4807 6 -4808 4807 -1 -4827 4807 -1 -5207 4807 -1 -4808 4808 6 -4809 4808 -1 -4828 4808 -1 -5208 4808 -1 -4809 4809 6 -4810 4809 -1 -4829 4809 -1 -5209 4809 -1 -4810 4810 6 -4811 4810 -1 -4830 4810 -1 -5210 4810 -1 -4811 4811 6 -4812 4811 -1 -4831 4811 -1 -5211 4811 -1 -4812 4812 6 -4813 4812 -1 -4832 4812 -1 -5212 4812 -1 -4813 4813 6 -4814 4813 -1 -4833 4813 -1 -5213 4813 -1 -4814 4814 6 -4815 4814 -1 -4834 4814 -1 -5214 4814 -1 -4815 4815 6 -4816 4815 -1 -4835 4815 -1 -5215 4815 -1 -4816 4816 6 -4817 4816 -1 -4836 4816 -1 -5216 4816 -1 -4817 4817 6 -4818 4817 -1 -4837 4817 -1 -5217 4817 -1 -4818 4818 6 -4819 4818 -1 -4838 4818 -1 -5218 4818 -1 -4819 4819 6 -4820 4819 -1 -4839 4819 -1 -5219 4819 -1 -4820 4820 6 -4840 4820 -1 -5220 4820 -1 -4821 4821 6 -4822 4821 -1 -4841 4821 -1 -5221 4821 -1 -4822 4822 6 -4823 4822 -1 -4842 4822 -1 -5222 4822 -1 -4823 4823 6 -4824 4823 -1 -4843 4823 -1 -5223 4823 -1 -4824 4824 6 -4825 4824 -1 -4844 4824 -1 -5224 4824 -1 -4825 4825 6 -4826 4825 -1 -4845 4825 -1 -5225 4825 -1 -4826 4826 6 -4827 4826 -1 -4846 4826 -1 -5226 4826 -1 -4827 4827 6 -4828 4827 -1 -4847 4827 -1 -5227 4827 -1 -4828 4828 6 -4829 4828 -1 -4848 4828 -1 -5228 4828 -1 -4829 4829 6 -4830 4829 -1 -4849 4829 -1 -5229 4829 -1 -4830 4830 6 -4831 4830 -1 -4850 4830 -1 -5230 4830 -1 -4831 4831 6 -4832 4831 -1 -4851 4831 -1 -5231 4831 -1 -4832 4832 6 -4833 4832 -1 -4852 4832 -1 -5232 4832 -1 -4833 4833 6 -4834 4833 -1 -4853 4833 -1 -5233 4833 -1 -4834 4834 6 -4835 4834 -1 -4854 4834 -1 -5234 4834 -1 -4835 4835 6 -4836 4835 -1 -4855 4835 -1 -5235 4835 -1 -4836 4836 6 -4837 4836 -1 -4856 4836 -1 -5236 4836 -1 -4837 4837 6 -4838 4837 -1 -4857 4837 -1 -5237 4837 -1 -4838 4838 6 -4839 4838 -1 -4858 4838 -1 -5238 4838 -1 -4839 4839 6 -4840 4839 -1 -4859 4839 -1 -5239 4839 -1 -4840 4840 6 -4860 4840 -1 -5240 4840 -1 -4841 4841 6 -4842 4841 -1 -4861 4841 -1 -5241 4841 -1 -4842 4842 6 -4843 4842 -1 -4862 4842 -1 -5242 4842 -1 -4843 4843 6 -4844 4843 -1 -4863 4843 -1 -5243 4843 -1 -4844 4844 6 -4845 4844 -1 -4864 4844 -1 -5244 4844 -1 -4845 4845 6 -4846 4845 -1 -4865 4845 -1 -5245 4845 -1 -4846 4846 6 -4847 4846 -1 -4866 4846 -1 -5246 4846 -1 -4847 4847 6 -4848 4847 -1 -4867 4847 -1 -5247 4847 -1 -4848 4848 6 -4849 4848 -1 -4868 4848 -1 -5248 4848 -1 -4849 4849 6 -4850 4849 -1 -4869 4849 -1 -5249 4849 -1 -4850 4850 6 -4851 4850 -1 -4870 4850 -1 -5250 4850 -1 -4851 4851 6 -4852 4851 -1 -4871 4851 -1 -5251 4851 -1 -4852 4852 6 -4853 4852 -1 -4872 4852 -1 -5252 4852 -1 -4853 4853 6 -4854 4853 -1 -4873 4853 -1 -5253 4853 -1 -4854 4854 6 -4855 4854 -1 -4874 4854 -1 -5254 4854 -1 -4855 4855 6 -4856 4855 -1 -4875 4855 -1 -5255 4855 -1 -4856 4856 6 -4857 4856 -1 -4876 4856 -1 -5256 4856 -1 -4857 4857 6 -4858 4857 -1 -4877 4857 -1 -5257 4857 -1 -4858 4858 6 -4859 4858 -1 -4878 4858 -1 -5258 4858 -1 -4859 4859 6 -4860 4859 -1 -4879 4859 -1 -5259 4859 -1 -4860 4860 6 -4880 4860 -1 -5260 4860 -1 -4861 4861 6 -4862 4861 -1 -4881 4861 -1 -5261 4861 -1 -4862 4862 6 -4863 4862 -1 -4882 4862 -1 -5262 4862 -1 -4863 4863 6 -4864 4863 -1 -4883 4863 -1 -5263 4863 -1 -4864 4864 6 -4865 4864 -1 -4884 4864 -1 -5264 4864 -1 -4865 4865 6 -4866 4865 -1 -4885 4865 -1 -5265 4865 -1 -4866 4866 6 -4867 4866 -1 -4886 4866 -1 -5266 4866 -1 -4867 4867 6 -4868 4867 -1 -4887 4867 -1 -5267 4867 -1 -4868 4868 6 -4869 4868 -1 -4888 4868 -1 -5268 4868 -1 -4869 4869 6 -4870 4869 -1 -4889 4869 -1 -5269 4869 -1 -4870 4870 6 -4871 4870 -1 -4890 4870 -1 -5270 4870 -1 -4871 4871 6 -4872 4871 -1 -4891 4871 -1 -5271 4871 -1 -4872 4872 6 -4873 4872 -1 -4892 4872 -1 -5272 4872 -1 -4873 4873 6 -4874 4873 -1 -4893 4873 -1 -5273 4873 -1 -4874 4874 6 -4875 4874 -1 -4894 4874 -1 -5274 4874 -1 -4875 4875 6 -4876 4875 -1 -4895 4875 -1 -5275 4875 -1 -4876 4876 6 -4877 4876 -1 -4896 4876 -1 -5276 4876 -1 -4877 4877 6 -4878 4877 -1 -4897 4877 -1 -5277 4877 -1 -4878 4878 6 -4879 4878 -1 -4898 4878 -1 -5278 4878 -1 -4879 4879 6 -4880 4879 -1 -4899 4879 -1 -5279 4879 -1 -4880 4880 6 -4900 4880 -1 -5280 4880 -1 -4881 4881 6 -4882 4881 -1 -4901 4881 -1 -5281 4881 -1 -4882 4882 6 -4883 4882 -1 -4902 4882 -1 -5282 4882 -1 -4883 4883 6 -4884 4883 -1 -4903 4883 -1 -5283 4883 -1 -4884 4884 6 -4885 4884 -1 -4904 4884 -1 -5284 4884 -1 -4885 4885 6 -4886 4885 -1 -4905 4885 -1 -5285 4885 -1 -4886 4886 6 -4887 4886 -1 -4906 4886 -1 -5286 4886 -1 -4887 4887 6 -4888 4887 -1 -4907 4887 -1 -5287 4887 -1 -4888 4888 6 -4889 4888 -1 -4908 4888 -1 -5288 4888 -1 -4889 4889 6 -4890 4889 -1 -4909 4889 -1 -5289 4889 -1 -4890 4890 6 -4891 4890 -1 -4910 4890 -1 -5290 4890 -1 -4891 4891 6 -4892 4891 -1 -4911 4891 -1 -5291 4891 -1 -4892 4892 6 -4893 4892 -1 -4912 4892 -1 -5292 4892 -1 -4893 4893 6 -4894 4893 -1 -4913 4893 -1 -5293 4893 -1 -4894 4894 6 -4895 4894 -1 -4914 4894 -1 -5294 4894 -1 -4895 4895 6 -4896 4895 -1 -4915 4895 -1 -5295 4895 -1 -4896 4896 6 -4897 4896 -1 -4916 4896 -1 -5296 4896 -1 -4897 4897 6 -4898 4897 -1 -4917 4897 -1 -5297 4897 -1 -4898 4898 6 -4899 4898 -1 -4918 4898 -1 -5298 4898 -1 -4899 4899 6 -4900 4899 -1 -4919 4899 -1 -5299 4899 -1 -4900 4900 6 -4920 4900 -1 -5300 4900 -1 -4901 4901 6 -4902 4901 -1 -4921 4901 -1 -5301 4901 -1 -4902 4902 6 -4903 4902 -1 -4922 4902 -1 -5302 4902 -1 -4903 4903 6 -4904 4903 -1 -4923 4903 -1 -5303 4903 -1 -4904 4904 6 -4905 4904 -1 -4924 4904 -1 -5304 4904 -1 -4905 4905 6 -4906 4905 -1 -4925 4905 -1 -5305 4905 -1 -4906 4906 6 -4907 4906 -1 -4926 4906 -1 -5306 4906 -1 -4907 4907 6 -4908 4907 -1 -4927 4907 -1 -5307 4907 -1 -4908 4908 6 -4909 4908 -1 -4928 4908 -1 -5308 4908 -1 -4909 4909 6 -4910 4909 -1 -4929 4909 -1 -5309 4909 -1 -4910 4910 6 -4911 4910 -1 -4930 4910 -1 -5310 4910 -1 -4911 4911 6 -4912 4911 -1 -4931 4911 -1 -5311 4911 -1 -4912 4912 6 -4913 4912 -1 -4932 4912 -1 -5312 4912 -1 -4913 4913 6 -4914 4913 -1 -4933 4913 -1 -5313 4913 -1 -4914 4914 6 -4915 4914 -1 -4934 4914 -1 -5314 4914 -1 -4915 4915 6 -4916 4915 -1 -4935 4915 -1 -5315 4915 -1 -4916 4916 6 -4917 4916 -1 -4936 4916 -1 -5316 4916 -1 -4917 4917 6 -4918 4917 -1 -4937 4917 -1 -5317 4917 -1 -4918 4918 6 -4919 4918 -1 -4938 4918 -1 -5318 4918 -1 -4919 4919 6 -4920 4919 -1 -4939 4919 -1 -5319 4919 -1 -4920 4920 6 -4940 4920 -1 -5320 4920 -1 -4921 4921 6 -4922 4921 -1 -4941 4921 -1 -5321 4921 -1 -4922 4922 6 -4923 4922 -1 -4942 4922 -1 -5322 4922 -1 -4923 4923 6 -4924 4923 -1 -4943 4923 -1 -5323 4923 -1 -4924 4924 6 -4925 4924 -1 -4944 4924 -1 -5324 4924 -1 -4925 4925 6 -4926 4925 -1 -4945 4925 -1 -5325 4925 -1 -4926 4926 6 -4927 4926 -1 -4946 4926 -1 -5326 4926 -1 -4927 4927 6 -4928 4927 -1 -4947 4927 -1 -5327 4927 -1 -4928 4928 6 -4929 4928 -1 -4948 4928 -1 -5328 4928 -1 -4929 4929 6 -4930 4929 -1 -4949 4929 -1 -5329 4929 -1 -4930 4930 6 -4931 4930 -1 -4950 4930 -1 -5330 4930 -1 -4931 4931 6 -4932 4931 -1 -4951 4931 -1 -5331 4931 -1 -4932 4932 6 -4933 4932 -1 -4952 4932 -1 -5332 4932 -1 -4933 4933 6 -4934 4933 -1 -4953 4933 -1 -5333 4933 -1 -4934 4934 6 -4935 4934 -1 -4954 4934 -1 -5334 4934 -1 -4935 4935 6 -4936 4935 -1 -4955 4935 -1 -5335 4935 -1 -4936 4936 6 -4937 4936 -1 -4956 4936 -1 -5336 4936 -1 -4937 4937 6 -4938 4937 -1 -4957 4937 -1 -5337 4937 -1 -4938 4938 6 -4939 4938 -1 -4958 4938 -1 -5338 4938 -1 -4939 4939 6 -4940 4939 -1 -4959 4939 -1 -5339 4939 -1 -4940 4940 6 -4960 4940 -1 -5340 4940 -1 -4941 4941 6 -4942 4941 -1 -4961 4941 -1 -5341 4941 -1 -4942 4942 6 -4943 4942 -1 -4962 4942 -1 -5342 4942 -1 -4943 4943 6 -4944 4943 -1 -4963 4943 -1 -5343 4943 -1 -4944 4944 6 -4945 4944 -1 -4964 4944 -1 -5344 4944 -1 -4945 4945 6 -4946 4945 -1 -4965 4945 -1 -5345 4945 -1 -4946 4946 6 -4947 4946 -1 -4966 4946 -1 -5346 4946 -1 -4947 4947 6 -4948 4947 -1 -4967 4947 -1 -5347 4947 -1 -4948 4948 6 -4949 4948 -1 -4968 4948 -1 -5348 4948 -1 -4949 4949 6 -4950 4949 -1 -4969 4949 -1 -5349 4949 -1 -4950 4950 6 -4951 4950 -1 -4970 4950 -1 -5350 4950 -1 -4951 4951 6 -4952 4951 -1 -4971 4951 -1 -5351 4951 -1 -4952 4952 6 -4953 4952 -1 -4972 4952 -1 -5352 4952 -1 -4953 4953 6 -4954 4953 -1 -4973 4953 -1 -5353 4953 -1 -4954 4954 6 -4955 4954 -1 -4974 4954 -1 -5354 4954 -1 -4955 4955 6 -4956 4955 -1 -4975 4955 -1 -5355 4955 -1 -4956 4956 6 -4957 4956 -1 -4976 4956 -1 -5356 4956 -1 -4957 4957 6 -4958 4957 -1 -4977 4957 -1 -5357 4957 -1 -4958 4958 6 -4959 4958 -1 -4978 4958 -1 -5358 4958 -1 -4959 4959 6 -4960 4959 -1 -4979 4959 -1 -5359 4959 -1 -4960 4960 6 -4980 4960 -1 -5360 4960 -1 -4961 4961 6 -4962 4961 -1 -4981 4961 -1 -5361 4961 -1 -4962 4962 6 -4963 4962 -1 -4982 4962 -1 -5362 4962 -1 -4963 4963 6 -4964 4963 -1 -4983 4963 -1 -5363 4963 -1 -4964 4964 6 -4965 4964 -1 -4984 4964 -1 -5364 4964 -1 -4965 4965 6 -4966 4965 -1 -4985 4965 -1 -5365 4965 -1 -4966 4966 6 -4967 4966 -1 -4986 4966 -1 -5366 4966 -1 -4967 4967 6 -4968 4967 -1 -4987 4967 -1 -5367 4967 -1 -4968 4968 6 -4969 4968 -1 -4988 4968 -1 -5368 4968 -1 -4969 4969 6 -4970 4969 -1 -4989 4969 -1 -5369 4969 -1 -4970 4970 6 -4971 4970 -1 -4990 4970 -1 -5370 4970 -1 -4971 4971 6 -4972 4971 -1 -4991 4971 -1 -5371 4971 -1 -4972 4972 6 -4973 4972 -1 -4992 4972 -1 -5372 4972 -1 -4973 4973 6 -4974 4973 -1 -4993 4973 -1 -5373 4973 -1 -4974 4974 6 -4975 4974 -1 -4994 4974 -1 -5374 4974 -1 -4975 4975 6 -4976 4975 -1 -4995 4975 -1 -5375 4975 -1 -4976 4976 6 -4977 4976 -1 -4996 4976 -1 -5376 4976 -1 -4977 4977 6 -4978 4977 -1 -4997 4977 -1 -5377 4977 -1 -4978 4978 6 -4979 4978 -1 -4998 4978 -1 -5378 4978 -1 -4979 4979 6 -4980 4979 -1 -4999 4979 -1 -5379 4979 -1 -4980 4980 6 -5000 4980 -1 -5380 4980 -1 -4981 4981 6 -4982 4981 -1 -5001 4981 -1 -5381 4981 -1 -4982 4982 6 -4983 4982 -1 -5002 4982 -1 -5382 4982 -1 -4983 4983 6 -4984 4983 -1 -5003 4983 -1 -5383 4983 -1 -4984 4984 6 -4985 4984 -1 -5004 4984 -1 -5384 4984 -1 -4985 4985 6 -4986 4985 -1 -5005 4985 -1 -5385 4985 -1 -4986 4986 6 -4987 4986 -1 -5006 4986 -1 -5386 4986 -1 -4987 4987 6 -4988 4987 -1 -5007 4987 -1 -5387 4987 -1 -4988 4988 6 -4989 4988 -1 -5008 4988 -1 -5388 4988 -1 -4989 4989 6 -4990 4989 -1 -5009 4989 -1 -5389 4989 -1 -4990 4990 6 -4991 4990 -1 -5010 4990 -1 -5390 4990 -1 -4991 4991 6 -4992 4991 -1 -5011 4991 -1 -5391 4991 -1 -4992 4992 6 -4993 4992 -1 -5012 4992 -1 -5392 4992 -1 -4993 4993 6 -4994 4993 -1 -5013 4993 -1 -5393 4993 -1 -4994 4994 6 -4995 4994 -1 -5014 4994 -1 -5394 4994 -1 -4995 4995 6 -4996 4995 -1 -5015 4995 -1 -5395 4995 -1 -4996 4996 6 -4997 4996 -1 -5016 4996 -1 -5396 4996 -1 -4997 4997 6 -4998 4997 -1 -5017 4997 -1 -5397 4997 -1 -4998 4998 6 -4999 4998 -1 -5018 4998 -1 -5398 4998 -1 -4999 4999 6 -5000 4999 -1 -5019 4999 -1 -5399 4999 -1 -5000 5000 6 -5020 5000 -1 -5400 5000 -1 -5001 5001 6 -5002 5001 -1 -5021 5001 -1 -5401 5001 -1 -5002 5002 6 -5003 5002 -1 -5022 5002 -1 -5402 5002 -1 -5003 5003 6 -5004 5003 -1 -5023 5003 -1 -5403 5003 -1 -5004 5004 6 -5005 5004 -1 -5024 5004 -1 -5404 5004 -1 -5005 5005 6 -5006 5005 -1 -5025 5005 -1 -5405 5005 -1 -5006 5006 6 -5007 5006 -1 -5026 5006 -1 -5406 5006 -1 -5007 5007 6 -5008 5007 -1 -5027 5007 -1 -5407 5007 -1 -5008 5008 6 -5009 5008 -1 -5028 5008 -1 -5408 5008 -1 -5009 5009 6 -5010 5009 -1 -5029 5009 -1 -5409 5009 -1 -5010 5010 6 -5011 5010 -1 -5030 5010 -1 -5410 5010 -1 -5011 5011 6 -5012 5011 -1 -5031 5011 -1 -5411 5011 -1 -5012 5012 6 -5013 5012 -1 -5032 5012 -1 -5412 5012 -1 -5013 5013 6 -5014 5013 -1 -5033 5013 -1 -5413 5013 -1 -5014 5014 6 -5015 5014 -1 -5034 5014 -1 -5414 5014 -1 -5015 5015 6 -5016 5015 -1 -5035 5015 -1 -5415 5015 -1 -5016 5016 6 -5017 5016 -1 -5036 5016 -1 -5416 5016 -1 -5017 5017 6 -5018 5017 -1 -5037 5017 -1 -5417 5017 -1 -5018 5018 6 -5019 5018 -1 -5038 5018 -1 -5418 5018 -1 -5019 5019 6 -5020 5019 -1 -5039 5019 -1 -5419 5019 -1 -5020 5020 6 -5040 5020 -1 -5420 5020 -1 -5021 5021 6 -5022 5021 -1 -5041 5021 -1 -5421 5021 -1 -5022 5022 6 -5023 5022 -1 -5042 5022 -1 -5422 5022 -1 -5023 5023 6 -5024 5023 -1 -5043 5023 -1 -5423 5023 -1 -5024 5024 6 -5025 5024 -1 -5044 5024 -1 -5424 5024 -1 -5025 5025 6 -5026 5025 -1 -5045 5025 -1 -5425 5025 -1 -5026 5026 6 -5027 5026 -1 -5046 5026 -1 -5426 5026 -1 -5027 5027 6 -5028 5027 -1 -5047 5027 -1 -5427 5027 -1 -5028 5028 6 -5029 5028 -1 -5048 5028 -1 -5428 5028 -1 -5029 5029 6 -5030 5029 -1 -5049 5029 -1 -5429 5029 -1 -5030 5030 6 -5031 5030 -1 -5050 5030 -1 -5430 5030 -1 -5031 5031 6 -5032 5031 -1 -5051 5031 -1 -5431 5031 -1 -5032 5032 6 -5033 5032 -1 -5052 5032 -1 -5432 5032 -1 -5033 5033 6 -5034 5033 -1 -5053 5033 -1 -5433 5033 -1 -5034 5034 6 -5035 5034 -1 -5054 5034 -1 -5434 5034 -1 -5035 5035 6 -5036 5035 -1 -5055 5035 -1 -5435 5035 -1 -5036 5036 6 -5037 5036 -1 -5056 5036 -1 -5436 5036 -1 -5037 5037 6 -5038 5037 -1 -5057 5037 -1 -5437 5037 -1 -5038 5038 6 -5039 5038 -1 -5058 5038 -1 -5438 5038 -1 -5039 5039 6 -5040 5039 -1 -5059 5039 -1 -5439 5039 -1 -5040 5040 6 -5060 5040 -1 -5440 5040 -1 -5041 5041 6 -5042 5041 -1 -5061 5041 -1 -5441 5041 -1 -5042 5042 6 -5043 5042 -1 -5062 5042 -1 -5442 5042 -1 -5043 5043 6 -5044 5043 -1 -5063 5043 -1 -5443 5043 -1 -5044 5044 6 -5045 5044 -1 -5064 5044 -1 -5444 5044 -1 -5045 5045 6 -5046 5045 -1 -5065 5045 -1 -5445 5045 -1 -5046 5046 6 -5047 5046 -1 -5066 5046 -1 -5446 5046 -1 -5047 5047 6 -5048 5047 -1 -5067 5047 -1 -5447 5047 -1 -5048 5048 6 -5049 5048 -1 -5068 5048 -1 -5448 5048 -1 -5049 5049 6 -5050 5049 -1 -5069 5049 -1 -5449 5049 -1 -5050 5050 6 -5051 5050 -1 -5070 5050 -1 -5450 5050 -1 -5051 5051 6 -5052 5051 -1 -5071 5051 -1 -5451 5051 -1 -5052 5052 6 -5053 5052 -1 -5072 5052 -1 -5452 5052 -1 -5053 5053 6 -5054 5053 -1 -5073 5053 -1 -5453 5053 -1 -5054 5054 6 -5055 5054 -1 -5074 5054 -1 -5454 5054 -1 -5055 5055 6 -5056 5055 -1 -5075 5055 -1 -5455 5055 -1 -5056 5056 6 -5057 5056 -1 -5076 5056 -1 -5456 5056 -1 -5057 5057 6 -5058 5057 -1 -5077 5057 -1 -5457 5057 -1 -5058 5058 6 -5059 5058 -1 -5078 5058 -1 -5458 5058 -1 -5059 5059 6 -5060 5059 -1 -5079 5059 -1 -5459 5059 -1 -5060 5060 6 -5080 5060 -1 -5460 5060 -1 -5061 5061 6 -5062 5061 -1 -5081 5061 -1 -5461 5061 -1 -5062 5062 6 -5063 5062 -1 -5082 5062 -1 -5462 5062 -1 -5063 5063 6 -5064 5063 -1 -5083 5063 -1 -5463 5063 -1 -5064 5064 6 -5065 5064 -1 -5084 5064 -1 -5464 5064 -1 -5065 5065 6 -5066 5065 -1 -5085 5065 -1 -5465 5065 -1 -5066 5066 6 -5067 5066 -1 -5086 5066 -1 -5466 5066 -1 -5067 5067 6 -5068 5067 -1 -5087 5067 -1 -5467 5067 -1 -5068 5068 6 -5069 5068 -1 -5088 5068 -1 -5468 5068 -1 -5069 5069 6 -5070 5069 -1 -5089 5069 -1 -5469 5069 -1 -5070 5070 6 -5071 5070 -1 -5090 5070 -1 -5470 5070 -1 -5071 5071 6 -5072 5071 -1 -5091 5071 -1 -5471 5071 -1 -5072 5072 6 -5073 5072 -1 -5092 5072 -1 -5472 5072 -1 -5073 5073 6 -5074 5073 -1 -5093 5073 -1 -5473 5073 -1 -5074 5074 6 -5075 5074 -1 -5094 5074 -1 -5474 5074 -1 -5075 5075 6 -5076 5075 -1 -5095 5075 -1 -5475 5075 -1 -5076 5076 6 -5077 5076 -1 -5096 5076 -1 -5476 5076 -1 -5077 5077 6 -5078 5077 -1 -5097 5077 -1 -5477 5077 -1 -5078 5078 6 -5079 5078 -1 -5098 5078 -1 -5478 5078 -1 -5079 5079 6 -5080 5079 -1 -5099 5079 -1 -5479 5079 -1 -5080 5080 6 -5100 5080 -1 -5480 5080 -1 -5081 5081 6 -5082 5081 -1 -5101 5081 -1 -5481 5081 -1 -5082 5082 6 -5083 5082 -1 -5102 5082 -1 -5482 5082 -1 -5083 5083 6 -5084 5083 -1 -5103 5083 -1 -5483 5083 -1 -5084 5084 6 -5085 5084 -1 -5104 5084 -1 -5484 5084 -1 -5085 5085 6 -5086 5085 -1 -5105 5085 -1 -5485 5085 -1 -5086 5086 6 -5087 5086 -1 -5106 5086 -1 -5486 5086 -1 -5087 5087 6 -5088 5087 -1 -5107 5087 -1 -5487 5087 -1 -5088 5088 6 -5089 5088 -1 -5108 5088 -1 -5488 5088 -1 -5089 5089 6 -5090 5089 -1 -5109 5089 -1 -5489 5089 -1 -5090 5090 6 -5091 5090 -1 -5110 5090 -1 -5490 5090 -1 -5091 5091 6 -5092 5091 -1 -5111 5091 -1 -5491 5091 -1 -5092 5092 6 -5093 5092 -1 -5112 5092 -1 -5492 5092 -1 -5093 5093 6 -5094 5093 -1 -5113 5093 -1 -5493 5093 -1 -5094 5094 6 -5095 5094 -1 -5114 5094 -1 -5494 5094 -1 -5095 5095 6 -5096 5095 -1 -5115 5095 -1 -5495 5095 -1 -5096 5096 6 -5097 5096 -1 -5116 5096 -1 -5496 5096 -1 -5097 5097 6 -5098 5097 -1 -5117 5097 -1 -5497 5097 -1 -5098 5098 6 -5099 5098 -1 -5118 5098 -1 -5498 5098 -1 -5099 5099 6 -5100 5099 -1 -5119 5099 -1 -5499 5099 -1 -5100 5100 6 -5120 5100 -1 -5500 5100 -1 -5101 5101 6 -5102 5101 -1 -5121 5101 -1 -5501 5101 -1 -5102 5102 6 -5103 5102 -1 -5122 5102 -1 -5502 5102 -1 -5103 5103 6 -5104 5103 -1 -5123 5103 -1 -5503 5103 -1 -5104 5104 6 -5105 5104 -1 -5124 5104 -1 -5504 5104 -1 -5105 5105 6 -5106 5105 -1 -5125 5105 -1 -5505 5105 -1 -5106 5106 6 -5107 5106 -1 -5126 5106 -1 -5506 5106 -1 -5107 5107 6 -5108 5107 -1 -5127 5107 -1 -5507 5107 -1 -5108 5108 6 -5109 5108 -1 -5128 5108 -1 -5508 5108 -1 -5109 5109 6 -5110 5109 -1 -5129 5109 -1 -5509 5109 -1 -5110 5110 6 -5111 5110 -1 -5130 5110 -1 -5510 5110 -1 -5111 5111 6 -5112 5111 -1 -5131 5111 -1 -5511 5111 -1 -5112 5112 6 -5113 5112 -1 -5132 5112 -1 -5512 5112 -1 -5113 5113 6 -5114 5113 -1 -5133 5113 -1 -5513 5113 -1 -5114 5114 6 -5115 5114 -1 -5134 5114 -1 -5514 5114 -1 -5115 5115 6 -5116 5115 -1 -5135 5115 -1 -5515 5115 -1 -5116 5116 6 -5117 5116 -1 -5136 5116 -1 -5516 5116 -1 -5117 5117 6 -5118 5117 -1 -5137 5117 -1 -5517 5117 -1 -5118 5118 6 -5119 5118 -1 -5138 5118 -1 -5518 5118 -1 -5119 5119 6 -5120 5119 -1 -5139 5119 -1 -5519 5119 -1 -5120 5120 6 -5140 5120 -1 -5520 5120 -1 -5121 5121 6 -5122 5121 -1 -5141 5121 -1 -5521 5121 -1 -5122 5122 6 -5123 5122 -1 -5142 5122 -1 -5522 5122 -1 -5123 5123 6 -5124 5123 -1 -5143 5123 -1 -5523 5123 -1 -5124 5124 6 -5125 5124 -1 -5144 5124 -1 -5524 5124 -1 -5125 5125 6 -5126 5125 -1 -5145 5125 -1 -5525 5125 -1 -5126 5126 6 -5127 5126 -1 -5146 5126 -1 -5526 5126 -1 -5127 5127 6 -5128 5127 -1 -5147 5127 -1 -5527 5127 -1 -5128 5128 6 -5129 5128 -1 -5148 5128 -1 -5528 5128 -1 -5129 5129 6 -5130 5129 -1 -5149 5129 -1 -5529 5129 -1 -5130 5130 6 -5131 5130 -1 -5150 5130 -1 -5530 5130 -1 -5131 5131 6 -5132 5131 -1 -5151 5131 -1 -5531 5131 -1 -5132 5132 6 -5133 5132 -1 -5152 5132 -1 -5532 5132 -1 -5133 5133 6 -5134 5133 -1 -5153 5133 -1 -5533 5133 -1 -5134 5134 6 -5135 5134 -1 -5154 5134 -1 -5534 5134 -1 -5135 5135 6 -5136 5135 -1 -5155 5135 -1 -5535 5135 -1 -5136 5136 6 -5137 5136 -1 -5156 5136 -1 -5536 5136 -1 -5137 5137 6 -5138 5137 -1 -5157 5137 -1 -5537 5137 -1 -5138 5138 6 -5139 5138 -1 -5158 5138 -1 -5538 5138 -1 -5139 5139 6 -5140 5139 -1 -5159 5139 -1 -5539 5139 -1 -5140 5140 6 -5160 5140 -1 -5540 5140 -1 -5141 5141 6 -5142 5141 -1 -5161 5141 -1 -5541 5141 -1 -5142 5142 6 -5143 5142 -1 -5162 5142 -1 -5542 5142 -1 -5143 5143 6 -5144 5143 -1 -5163 5143 -1 -5543 5143 -1 -5144 5144 6 -5145 5144 -1 -5164 5144 -1 -5544 5144 -1 -5145 5145 6 -5146 5145 -1 -5165 5145 -1 -5545 5145 -1 -5146 5146 6 -5147 5146 -1 -5166 5146 -1 -5546 5146 -1 -5147 5147 6 -5148 5147 -1 -5167 5147 -1 -5547 5147 -1 -5148 5148 6 -5149 5148 -1 -5168 5148 -1 -5548 5148 -1 -5149 5149 6 -5150 5149 -1 -5169 5149 -1 -5549 5149 -1 -5150 5150 6 -5151 5150 -1 -5170 5150 -1 -5550 5150 -1 -5151 5151 6 -5152 5151 -1 -5171 5151 -1 -5551 5151 -1 -5152 5152 6 -5153 5152 -1 -5172 5152 -1 -5552 5152 -1 -5153 5153 6 -5154 5153 -1 -5173 5153 -1 -5553 5153 -1 -5154 5154 6 -5155 5154 -1 -5174 5154 -1 -5554 5154 -1 -5155 5155 6 -5156 5155 -1 -5175 5155 -1 -5555 5155 -1 -5156 5156 6 -5157 5156 -1 -5176 5156 -1 -5556 5156 -1 -5157 5157 6 -5158 5157 -1 -5177 5157 -1 -5557 5157 -1 -5158 5158 6 -5159 5158 -1 -5178 5158 -1 -5558 5158 -1 -5159 5159 6 -5160 5159 -1 -5179 5159 -1 -5559 5159 -1 -5160 5160 6 -5180 5160 -1 -5560 5160 -1 -5161 5161 6 -5162 5161 -1 -5181 5161 -1 -5561 5161 -1 -5162 5162 6 -5163 5162 -1 -5182 5162 -1 -5562 5162 -1 -5163 5163 6 -5164 5163 -1 -5183 5163 -1 -5563 5163 -1 -5164 5164 6 -5165 5164 -1 -5184 5164 -1 -5564 5164 -1 -5165 5165 6 -5166 5165 -1 -5185 5165 -1 -5565 5165 -1 -5166 5166 6 -5167 5166 -1 -5186 5166 -1 -5566 5166 -1 -5167 5167 6 -5168 5167 -1 -5187 5167 -1 -5567 5167 -1 -5168 5168 6 -5169 5168 -1 -5188 5168 -1 -5568 5168 -1 -5169 5169 6 -5170 5169 -1 -5189 5169 -1 -5569 5169 -1 -5170 5170 6 -5171 5170 -1 -5190 5170 -1 -5570 5170 -1 -5171 5171 6 -5172 5171 -1 -5191 5171 -1 -5571 5171 -1 -5172 5172 6 -5173 5172 -1 -5192 5172 -1 -5572 5172 -1 -5173 5173 6 -5174 5173 -1 -5193 5173 -1 -5573 5173 -1 -5174 5174 6 -5175 5174 -1 -5194 5174 -1 -5574 5174 -1 -5175 5175 6 -5176 5175 -1 -5195 5175 -1 -5575 5175 -1 -5176 5176 6 -5177 5176 -1 -5196 5176 -1 -5576 5176 -1 -5177 5177 6 -5178 5177 -1 -5197 5177 -1 -5577 5177 -1 -5178 5178 6 -5179 5178 -1 -5198 5178 -1 -5578 5178 -1 -5179 5179 6 -5180 5179 -1 -5199 5179 -1 -5579 5179 -1 -5180 5180 6 -5200 5180 -1 -5580 5180 -1 -5181 5181 6 -5182 5181 -1 -5581 5181 -1 -5182 5182 6 -5183 5182 -1 -5582 5182 -1 -5183 5183 6 -5184 5183 -1 -5583 5183 -1 -5184 5184 6 -5185 5184 -1 -5584 5184 -1 -5185 5185 6 -5186 5185 -1 -5585 5185 -1 -5186 5186 6 -5187 5186 -1 -5586 5186 -1 -5187 5187 6 -5188 5187 -1 -5587 5187 -1 -5188 5188 6 -5189 5188 -1 -5588 5188 -1 -5189 5189 6 -5190 5189 -1 -5589 5189 -1 -5190 5190 6 -5191 5190 -1 -5590 5190 -1 -5191 5191 6 -5192 5191 -1 -5591 5191 -1 -5192 5192 6 -5193 5192 -1 -5592 5192 -1 -5193 5193 6 -5194 5193 -1 -5593 5193 -1 -5194 5194 6 -5195 5194 -1 -5594 5194 -1 -5195 5195 6 -5196 5195 -1 -5595 5195 -1 -5196 5196 6 -5197 5196 -1 -5596 5196 -1 -5197 5197 6 -5198 5197 -1 -5597 5197 -1 -5198 5198 6 -5199 5198 -1 -5598 5198 -1 -5199 5199 6 -5200 5199 -1 -5599 5199 -1 -5200 5200 6 -5600 5200 -1 -5201 5201 6 -5202 5201 -1 -5221 5201 -1 -5601 5201 -1 -5202 5202 6 -5203 5202 -1 -5222 5202 -1 -5602 5202 -1 -5203 5203 6 -5204 5203 -1 -5223 5203 -1 -5603 5203 -1 -5204 5204 6 -5205 5204 -1 -5224 5204 -1 -5604 5204 -1 -5205 5205 6 -5206 5205 -1 -5225 5205 -1 -5605 5205 -1 -5206 5206 6 -5207 5206 -1 -5226 5206 -1 -5606 5206 -1 -5207 5207 6 -5208 5207 -1 -5227 5207 -1 -5607 5207 -1 -5208 5208 6 -5209 5208 -1 -5228 5208 -1 -5608 5208 -1 -5209 5209 6 -5210 5209 -1 -5229 5209 -1 -5609 5209 -1 -5210 5210 6 -5211 5210 -1 -5230 5210 -1 -5610 5210 -1 -5211 5211 6 -5212 5211 -1 -5231 5211 -1 -5611 5211 -1 -5212 5212 6 -5213 5212 -1 -5232 5212 -1 -5612 5212 -1 -5213 5213 6 -5214 5213 -1 -5233 5213 -1 -5613 5213 -1 -5214 5214 6 -5215 5214 -1 -5234 5214 -1 -5614 5214 -1 -5215 5215 6 -5216 5215 -1 -5235 5215 -1 -5615 5215 -1 -5216 5216 6 -5217 5216 -1 -5236 5216 -1 -5616 5216 -1 -5217 5217 6 -5218 5217 -1 -5237 5217 -1 -5617 5217 -1 -5218 5218 6 -5219 5218 -1 -5238 5218 -1 -5618 5218 -1 -5219 5219 6 -5220 5219 -1 -5239 5219 -1 -5619 5219 -1 -5220 5220 6 -5240 5220 -1 -5620 5220 -1 -5221 5221 6 -5222 5221 -1 -5241 5221 -1 -5621 5221 -1 -5222 5222 6 -5223 5222 -1 -5242 5222 -1 -5622 5222 -1 -5223 5223 6 -5224 5223 -1 -5243 5223 -1 -5623 5223 -1 -5224 5224 6 -5225 5224 -1 -5244 5224 -1 -5624 5224 -1 -5225 5225 6 -5226 5225 -1 -5245 5225 -1 -5625 5225 -1 -5226 5226 6 -5227 5226 -1 -5246 5226 -1 -5626 5226 -1 -5227 5227 6 -5228 5227 -1 -5247 5227 -1 -5627 5227 -1 -5228 5228 6 -5229 5228 -1 -5248 5228 -1 -5628 5228 -1 -5229 5229 6 -5230 5229 -1 -5249 5229 -1 -5629 5229 -1 -5230 5230 6 -5231 5230 -1 -5250 5230 -1 -5630 5230 -1 -5231 5231 6 -5232 5231 -1 -5251 5231 -1 -5631 5231 -1 -5232 5232 6 -5233 5232 -1 -5252 5232 -1 -5632 5232 -1 -5233 5233 6 -5234 5233 -1 -5253 5233 -1 -5633 5233 -1 -5234 5234 6 -5235 5234 -1 -5254 5234 -1 -5634 5234 -1 -5235 5235 6 -5236 5235 -1 -5255 5235 -1 -5635 5235 -1 -5236 5236 6 -5237 5236 -1 -5256 5236 -1 -5636 5236 -1 -5237 5237 6 -5238 5237 -1 -5257 5237 -1 -5637 5237 -1 -5238 5238 6 -5239 5238 -1 -5258 5238 -1 -5638 5238 -1 -5239 5239 6 -5240 5239 -1 -5259 5239 -1 -5639 5239 -1 -5240 5240 6 -5260 5240 -1 -5640 5240 -1 -5241 5241 6 -5242 5241 -1 -5261 5241 -1 -5641 5241 -1 -5242 5242 6 -5243 5242 -1 -5262 5242 -1 -5642 5242 -1 -5243 5243 6 -5244 5243 -1 -5263 5243 -1 -5643 5243 -1 -5244 5244 6 -5245 5244 -1 -5264 5244 -1 -5644 5244 -1 -5245 5245 6 -5246 5245 -1 -5265 5245 -1 -5645 5245 -1 -5246 5246 6 -5247 5246 -1 -5266 5246 -1 -5646 5246 -1 -5247 5247 6 -5248 5247 -1 -5267 5247 -1 -5647 5247 -1 -5248 5248 6 -5249 5248 -1 -5268 5248 -1 -5648 5248 -1 -5249 5249 6 -5250 5249 -1 -5269 5249 -1 -5649 5249 -1 -5250 5250 6 -5251 5250 -1 -5270 5250 -1 -5650 5250 -1 -5251 5251 6 -5252 5251 -1 -5271 5251 -1 -5651 5251 -1 -5252 5252 6 -5253 5252 -1 -5272 5252 -1 -5652 5252 -1 -5253 5253 6 -5254 5253 -1 -5273 5253 -1 -5653 5253 -1 -5254 5254 6 -5255 5254 -1 -5274 5254 -1 -5654 5254 -1 -5255 5255 6 -5256 5255 -1 -5275 5255 -1 -5655 5255 -1 -5256 5256 6 -5257 5256 -1 -5276 5256 -1 -5656 5256 -1 -5257 5257 6 -5258 5257 -1 -5277 5257 -1 -5657 5257 -1 -5258 5258 6 -5259 5258 -1 -5278 5258 -1 -5658 5258 -1 -5259 5259 6 -5260 5259 -1 -5279 5259 -1 -5659 5259 -1 -5260 5260 6 -5280 5260 -1 -5660 5260 -1 -5261 5261 6 -5262 5261 -1 -5281 5261 -1 -5661 5261 -1 -5262 5262 6 -5263 5262 -1 -5282 5262 -1 -5662 5262 -1 -5263 5263 6 -5264 5263 -1 -5283 5263 -1 -5663 5263 -1 -5264 5264 6 -5265 5264 -1 -5284 5264 -1 -5664 5264 -1 -5265 5265 6 -5266 5265 -1 -5285 5265 -1 -5665 5265 -1 -5266 5266 6 -5267 5266 -1 -5286 5266 -1 -5666 5266 -1 -5267 5267 6 -5268 5267 -1 -5287 5267 -1 -5667 5267 -1 -5268 5268 6 -5269 5268 -1 -5288 5268 -1 -5668 5268 -1 -5269 5269 6 -5270 5269 -1 -5289 5269 -1 -5669 5269 -1 -5270 5270 6 -5271 5270 -1 -5290 5270 -1 -5670 5270 -1 -5271 5271 6 -5272 5271 -1 -5291 5271 -1 -5671 5271 -1 -5272 5272 6 -5273 5272 -1 -5292 5272 -1 -5672 5272 -1 -5273 5273 6 -5274 5273 -1 -5293 5273 -1 -5673 5273 -1 -5274 5274 6 -5275 5274 -1 -5294 5274 -1 -5674 5274 -1 -5275 5275 6 -5276 5275 -1 -5295 5275 -1 -5675 5275 -1 -5276 5276 6 -5277 5276 -1 -5296 5276 -1 -5676 5276 -1 -5277 5277 6 -5278 5277 -1 -5297 5277 -1 -5677 5277 -1 -5278 5278 6 -5279 5278 -1 -5298 5278 -1 -5678 5278 -1 -5279 5279 6 -5280 5279 -1 -5299 5279 -1 -5679 5279 -1 -5280 5280 6 -5300 5280 -1 -5680 5280 -1 -5281 5281 6 -5282 5281 -1 -5301 5281 -1 -5681 5281 -1 -5282 5282 6 -5283 5282 -1 -5302 5282 -1 -5682 5282 -1 -5283 5283 6 -5284 5283 -1 -5303 5283 -1 -5683 5283 -1 -5284 5284 6 -5285 5284 -1 -5304 5284 -1 -5684 5284 -1 -5285 5285 6 -5286 5285 -1 -5305 5285 -1 -5685 5285 -1 -5286 5286 6 -5287 5286 -1 -5306 5286 -1 -5686 5286 -1 -5287 5287 6 -5288 5287 -1 -5307 5287 -1 -5687 5287 -1 -5288 5288 6 -5289 5288 -1 -5308 5288 -1 -5688 5288 -1 -5289 5289 6 -5290 5289 -1 -5309 5289 -1 -5689 5289 -1 -5290 5290 6 -5291 5290 -1 -5310 5290 -1 -5690 5290 -1 -5291 5291 6 -5292 5291 -1 -5311 5291 -1 -5691 5291 -1 -5292 5292 6 -5293 5292 -1 -5312 5292 -1 -5692 5292 -1 -5293 5293 6 -5294 5293 -1 -5313 5293 -1 -5693 5293 -1 -5294 5294 6 -5295 5294 -1 -5314 5294 -1 -5694 5294 -1 -5295 5295 6 -5296 5295 -1 -5315 5295 -1 -5695 5295 -1 -5296 5296 6 -5297 5296 -1 -5316 5296 -1 -5696 5296 -1 -5297 5297 6 -5298 5297 -1 -5317 5297 -1 -5697 5297 -1 -5298 5298 6 -5299 5298 -1 -5318 5298 -1 -5698 5298 -1 -5299 5299 6 -5300 5299 -1 -5319 5299 -1 -5699 5299 -1 -5300 5300 6 -5320 5300 -1 -5700 5300 -1 -5301 5301 6 -5302 5301 -1 -5321 5301 -1 -5701 5301 -1 -5302 5302 6 -5303 5302 -1 -5322 5302 -1 -5702 5302 -1 -5303 5303 6 -5304 5303 -1 -5323 5303 -1 -5703 5303 -1 -5304 5304 6 -5305 5304 -1 -5324 5304 -1 -5704 5304 -1 -5305 5305 6 -5306 5305 -1 -5325 5305 -1 -5705 5305 -1 -5306 5306 6 -5307 5306 -1 -5326 5306 -1 -5706 5306 -1 -5307 5307 6 -5308 5307 -1 -5327 5307 -1 -5707 5307 -1 -5308 5308 6 -5309 5308 -1 -5328 5308 -1 -5708 5308 -1 -5309 5309 6 -5310 5309 -1 -5329 5309 -1 -5709 5309 -1 -5310 5310 6 -5311 5310 -1 -5330 5310 -1 -5710 5310 -1 -5311 5311 6 -5312 5311 -1 -5331 5311 -1 -5711 5311 -1 -5312 5312 6 -5313 5312 -1 -5332 5312 -1 -5712 5312 -1 -5313 5313 6 -5314 5313 -1 -5333 5313 -1 -5713 5313 -1 -5314 5314 6 -5315 5314 -1 -5334 5314 -1 -5714 5314 -1 -5315 5315 6 -5316 5315 -1 -5335 5315 -1 -5715 5315 -1 -5316 5316 6 -5317 5316 -1 -5336 5316 -1 -5716 5316 -1 -5317 5317 6 -5318 5317 -1 -5337 5317 -1 -5717 5317 -1 -5318 5318 6 -5319 5318 -1 -5338 5318 -1 -5718 5318 -1 -5319 5319 6 -5320 5319 -1 -5339 5319 -1 -5719 5319 -1 -5320 5320 6 -5340 5320 -1 -5720 5320 -1 -5321 5321 6 -5322 5321 -1 -5341 5321 -1 -5721 5321 -1 -5322 5322 6 -5323 5322 -1 -5342 5322 -1 -5722 5322 -1 -5323 5323 6 -5324 5323 -1 -5343 5323 -1 -5723 5323 -1 -5324 5324 6 -5325 5324 -1 -5344 5324 -1 -5724 5324 -1 -5325 5325 6 -5326 5325 -1 -5345 5325 -1 -5725 5325 -1 -5326 5326 6 -5327 5326 -1 -5346 5326 -1 -5726 5326 -1 -5327 5327 6 -5328 5327 -1 -5347 5327 -1 -5727 5327 -1 -5328 5328 6 -5329 5328 -1 -5348 5328 -1 -5728 5328 -1 -5329 5329 6 -5330 5329 -1 -5349 5329 -1 -5729 5329 -1 -5330 5330 6 -5331 5330 -1 -5350 5330 -1 -5730 5330 -1 -5331 5331 6 -5332 5331 -1 -5351 5331 -1 -5731 5331 -1 -5332 5332 6 -5333 5332 -1 -5352 5332 -1 -5732 5332 -1 -5333 5333 6 -5334 5333 -1 -5353 5333 -1 -5733 5333 -1 -5334 5334 6 -5335 5334 -1 -5354 5334 -1 -5734 5334 -1 -5335 5335 6 -5336 5335 -1 -5355 5335 -1 -5735 5335 -1 -5336 5336 6 -5337 5336 -1 -5356 5336 -1 -5736 5336 -1 -5337 5337 6 -5338 5337 -1 -5357 5337 -1 -5737 5337 -1 -5338 5338 6 -5339 5338 -1 -5358 5338 -1 -5738 5338 -1 -5339 5339 6 -5340 5339 -1 -5359 5339 -1 -5739 5339 -1 -5340 5340 6 -5360 5340 -1 -5740 5340 -1 -5341 5341 6 -5342 5341 -1 -5361 5341 -1 -5741 5341 -1 -5342 5342 6 -5343 5342 -1 -5362 5342 -1 -5742 5342 -1 -5343 5343 6 -5344 5343 -1 -5363 5343 -1 -5743 5343 -1 -5344 5344 6 -5345 5344 -1 -5364 5344 -1 -5744 5344 -1 -5345 5345 6 -5346 5345 -1 -5365 5345 -1 -5745 5345 -1 -5346 5346 6 -5347 5346 -1 -5366 5346 -1 -5746 5346 -1 -5347 5347 6 -5348 5347 -1 -5367 5347 -1 -5747 5347 -1 -5348 5348 6 -5349 5348 -1 -5368 5348 -1 -5748 5348 -1 -5349 5349 6 -5350 5349 -1 -5369 5349 -1 -5749 5349 -1 -5350 5350 6 -5351 5350 -1 -5370 5350 -1 -5750 5350 -1 -5351 5351 6 -5352 5351 -1 -5371 5351 -1 -5751 5351 -1 -5352 5352 6 -5353 5352 -1 -5372 5352 -1 -5752 5352 -1 -5353 5353 6 -5354 5353 -1 -5373 5353 -1 -5753 5353 -1 -5354 5354 6 -5355 5354 -1 -5374 5354 -1 -5754 5354 -1 -5355 5355 6 -5356 5355 -1 -5375 5355 -1 -5755 5355 -1 -5356 5356 6 -5357 5356 -1 -5376 5356 -1 -5756 5356 -1 -5357 5357 6 -5358 5357 -1 -5377 5357 -1 -5757 5357 -1 -5358 5358 6 -5359 5358 -1 -5378 5358 -1 -5758 5358 -1 -5359 5359 6 -5360 5359 -1 -5379 5359 -1 -5759 5359 -1 -5360 5360 6 -5380 5360 -1 -5760 5360 -1 -5361 5361 6 -5362 5361 -1 -5381 5361 -1 -5761 5361 -1 -5362 5362 6 -5363 5362 -1 -5382 5362 -1 -5762 5362 -1 -5363 5363 6 -5364 5363 -1 -5383 5363 -1 -5763 5363 -1 -5364 5364 6 -5365 5364 -1 -5384 5364 -1 -5764 5364 -1 -5365 5365 6 -5366 5365 -1 -5385 5365 -1 -5765 5365 -1 -5366 5366 6 -5367 5366 -1 -5386 5366 -1 -5766 5366 -1 -5367 5367 6 -5368 5367 -1 -5387 5367 -1 -5767 5367 -1 -5368 5368 6 -5369 5368 -1 -5388 5368 -1 -5768 5368 -1 -5369 5369 6 -5370 5369 -1 -5389 5369 -1 -5769 5369 -1 -5370 5370 6 -5371 5370 -1 -5390 5370 -1 -5770 5370 -1 -5371 5371 6 -5372 5371 -1 -5391 5371 -1 -5771 5371 -1 -5372 5372 6 -5373 5372 -1 -5392 5372 -1 -5772 5372 -1 -5373 5373 6 -5374 5373 -1 -5393 5373 -1 -5773 5373 -1 -5374 5374 6 -5375 5374 -1 -5394 5374 -1 -5774 5374 -1 -5375 5375 6 -5376 5375 -1 -5395 5375 -1 -5775 5375 -1 -5376 5376 6 -5377 5376 -1 -5396 5376 -1 -5776 5376 -1 -5377 5377 6 -5378 5377 -1 -5397 5377 -1 -5777 5377 -1 -5378 5378 6 -5379 5378 -1 -5398 5378 -1 -5778 5378 -1 -5379 5379 6 -5380 5379 -1 -5399 5379 -1 -5779 5379 -1 -5380 5380 6 -5400 5380 -1 -5780 5380 -1 -5381 5381 6 -5382 5381 -1 -5401 5381 -1 -5781 5381 -1 -5382 5382 6 -5383 5382 -1 -5402 5382 -1 -5782 5382 -1 -5383 5383 6 -5384 5383 -1 -5403 5383 -1 -5783 5383 -1 -5384 5384 6 -5385 5384 -1 -5404 5384 -1 -5784 5384 -1 -5385 5385 6 -5386 5385 -1 -5405 5385 -1 -5785 5385 -1 -5386 5386 6 -5387 5386 -1 -5406 5386 -1 -5786 5386 -1 -5387 5387 6 -5388 5387 -1 -5407 5387 -1 -5787 5387 -1 -5388 5388 6 -5389 5388 -1 -5408 5388 -1 -5788 5388 -1 -5389 5389 6 -5390 5389 -1 -5409 5389 -1 -5789 5389 -1 -5390 5390 6 -5391 5390 -1 -5410 5390 -1 -5790 5390 -1 -5391 5391 6 -5392 5391 -1 -5411 5391 -1 -5791 5391 -1 -5392 5392 6 -5393 5392 -1 -5412 5392 -1 -5792 5392 -1 -5393 5393 6 -5394 5393 -1 -5413 5393 -1 -5793 5393 -1 -5394 5394 6 -5395 5394 -1 -5414 5394 -1 -5794 5394 -1 -5395 5395 6 -5396 5395 -1 -5415 5395 -1 -5795 5395 -1 -5396 5396 6 -5397 5396 -1 -5416 5396 -1 -5796 5396 -1 -5397 5397 6 -5398 5397 -1 -5417 5397 -1 -5797 5397 -1 -5398 5398 6 -5399 5398 -1 -5418 5398 -1 -5798 5398 -1 -5399 5399 6 -5400 5399 -1 -5419 5399 -1 -5799 5399 -1 -5400 5400 6 -5420 5400 -1 -5800 5400 -1 -5401 5401 6 -5402 5401 -1 -5421 5401 -1 -5801 5401 -1 -5402 5402 6 -5403 5402 -1 -5422 5402 -1 -5802 5402 -1 -5403 5403 6 -5404 5403 -1 -5423 5403 -1 -5803 5403 -1 -5404 5404 6 -5405 5404 -1 -5424 5404 -1 -5804 5404 -1 -5405 5405 6 -5406 5405 -1 -5425 5405 -1 -5805 5405 -1 -5406 5406 6 -5407 5406 -1 -5426 5406 -1 -5806 5406 -1 -5407 5407 6 -5408 5407 -1 -5427 5407 -1 -5807 5407 -1 -5408 5408 6 -5409 5408 -1 -5428 5408 -1 -5808 5408 -1 -5409 5409 6 -5410 5409 -1 -5429 5409 -1 -5809 5409 -1 -5410 5410 6 -5411 5410 -1 -5430 5410 -1 -5810 5410 -1 -5411 5411 6 -5412 5411 -1 -5431 5411 -1 -5811 5411 -1 -5412 5412 6 -5413 5412 -1 -5432 5412 -1 -5812 5412 -1 -5413 5413 6 -5414 5413 -1 -5433 5413 -1 -5813 5413 -1 -5414 5414 6 -5415 5414 -1 -5434 5414 -1 -5814 5414 -1 -5415 5415 6 -5416 5415 -1 -5435 5415 -1 -5815 5415 -1 -5416 5416 6 -5417 5416 -1 -5436 5416 -1 -5816 5416 -1 -5417 5417 6 -5418 5417 -1 -5437 5417 -1 -5817 5417 -1 -5418 5418 6 -5419 5418 -1 -5438 5418 -1 -5818 5418 -1 -5419 5419 6 -5420 5419 -1 -5439 5419 -1 -5819 5419 -1 -5420 5420 6 -5440 5420 -1 -5820 5420 -1 -5421 5421 6 -5422 5421 -1 -5441 5421 -1 -5821 5421 -1 -5422 5422 6 -5423 5422 -1 -5442 5422 -1 -5822 5422 -1 -5423 5423 6 -5424 5423 -1 -5443 5423 -1 -5823 5423 -1 -5424 5424 6 -5425 5424 -1 -5444 5424 -1 -5824 5424 -1 -5425 5425 6 -5426 5425 -1 -5445 5425 -1 -5825 5425 -1 -5426 5426 6 -5427 5426 -1 -5446 5426 -1 -5826 5426 -1 -5427 5427 6 -5428 5427 -1 -5447 5427 -1 -5827 5427 -1 -5428 5428 6 -5429 5428 -1 -5448 5428 -1 -5828 5428 -1 -5429 5429 6 -5430 5429 -1 -5449 5429 -1 -5829 5429 -1 -5430 5430 6 -5431 5430 -1 -5450 5430 -1 -5830 5430 -1 -5431 5431 6 -5432 5431 -1 -5451 5431 -1 -5831 5431 -1 -5432 5432 6 -5433 5432 -1 -5452 5432 -1 -5832 5432 -1 -5433 5433 6 -5434 5433 -1 -5453 5433 -1 -5833 5433 -1 -5434 5434 6 -5435 5434 -1 -5454 5434 -1 -5834 5434 -1 -5435 5435 6 -5436 5435 -1 -5455 5435 -1 -5835 5435 -1 -5436 5436 6 -5437 5436 -1 -5456 5436 -1 -5836 5436 -1 -5437 5437 6 -5438 5437 -1 -5457 5437 -1 -5837 5437 -1 -5438 5438 6 -5439 5438 -1 -5458 5438 -1 -5838 5438 -1 -5439 5439 6 -5440 5439 -1 -5459 5439 -1 -5839 5439 -1 -5440 5440 6 -5460 5440 -1 -5840 5440 -1 -5441 5441 6 -5442 5441 -1 -5461 5441 -1 -5841 5441 -1 -5442 5442 6 -5443 5442 -1 -5462 5442 -1 -5842 5442 -1 -5443 5443 6 -5444 5443 -1 -5463 5443 -1 -5843 5443 -1 -5444 5444 6 -5445 5444 -1 -5464 5444 -1 -5844 5444 -1 -5445 5445 6 -5446 5445 -1 -5465 5445 -1 -5845 5445 -1 -5446 5446 6 -5447 5446 -1 -5466 5446 -1 -5846 5446 -1 -5447 5447 6 -5448 5447 -1 -5467 5447 -1 -5847 5447 -1 -5448 5448 6 -5449 5448 -1 -5468 5448 -1 -5848 5448 -1 -5449 5449 6 -5450 5449 -1 -5469 5449 -1 -5849 5449 -1 -5450 5450 6 -5451 5450 -1 -5470 5450 -1 -5850 5450 -1 -5451 5451 6 -5452 5451 -1 -5471 5451 -1 -5851 5451 -1 -5452 5452 6 -5453 5452 -1 -5472 5452 -1 -5852 5452 -1 -5453 5453 6 -5454 5453 -1 -5473 5453 -1 -5853 5453 -1 -5454 5454 6 -5455 5454 -1 -5474 5454 -1 -5854 5454 -1 -5455 5455 6 -5456 5455 -1 -5475 5455 -1 -5855 5455 -1 -5456 5456 6 -5457 5456 -1 -5476 5456 -1 -5856 5456 -1 -5457 5457 6 -5458 5457 -1 -5477 5457 -1 -5857 5457 -1 -5458 5458 6 -5459 5458 -1 -5478 5458 -1 -5858 5458 -1 -5459 5459 6 -5460 5459 -1 -5479 5459 -1 -5859 5459 -1 -5460 5460 6 -5480 5460 -1 -5860 5460 -1 -5461 5461 6 -5462 5461 -1 -5481 5461 -1 -5861 5461 -1 -5462 5462 6 -5463 5462 -1 -5482 5462 -1 -5862 5462 -1 -5463 5463 6 -5464 5463 -1 -5483 5463 -1 -5863 5463 -1 -5464 5464 6 -5465 5464 -1 -5484 5464 -1 -5864 5464 -1 -5465 5465 6 -5466 5465 -1 -5485 5465 -1 -5865 5465 -1 -5466 5466 6 -5467 5466 -1 -5486 5466 -1 -5866 5466 -1 -5467 5467 6 -5468 5467 -1 -5487 5467 -1 -5867 5467 -1 -5468 5468 6 -5469 5468 -1 -5488 5468 -1 -5868 5468 -1 -5469 5469 6 -5470 5469 -1 -5489 5469 -1 -5869 5469 -1 -5470 5470 6 -5471 5470 -1 -5490 5470 -1 -5870 5470 -1 -5471 5471 6 -5472 5471 -1 -5491 5471 -1 -5871 5471 -1 -5472 5472 6 -5473 5472 -1 -5492 5472 -1 -5872 5472 -1 -5473 5473 6 -5474 5473 -1 -5493 5473 -1 -5873 5473 -1 -5474 5474 6 -5475 5474 -1 -5494 5474 -1 -5874 5474 -1 -5475 5475 6 -5476 5475 -1 -5495 5475 -1 -5875 5475 -1 -5476 5476 6 -5477 5476 -1 -5496 5476 -1 -5876 5476 -1 -5477 5477 6 -5478 5477 -1 -5497 5477 -1 -5877 5477 -1 -5478 5478 6 -5479 5478 -1 -5498 5478 -1 -5878 5478 -1 -5479 5479 6 -5480 5479 -1 -5499 5479 -1 -5879 5479 -1 -5480 5480 6 -5500 5480 -1 -5880 5480 -1 -5481 5481 6 -5482 5481 -1 -5501 5481 -1 -5881 5481 -1 -5482 5482 6 -5483 5482 -1 -5502 5482 -1 -5882 5482 -1 -5483 5483 6 -5484 5483 -1 -5503 5483 -1 -5883 5483 -1 -5484 5484 6 -5485 5484 -1 -5504 5484 -1 -5884 5484 -1 -5485 5485 6 -5486 5485 -1 -5505 5485 -1 -5885 5485 -1 -5486 5486 6 -5487 5486 -1 -5506 5486 -1 -5886 5486 -1 -5487 5487 6 -5488 5487 -1 -5507 5487 -1 -5887 5487 -1 -5488 5488 6 -5489 5488 -1 -5508 5488 -1 -5888 5488 -1 -5489 5489 6 -5490 5489 -1 -5509 5489 -1 -5889 5489 -1 -5490 5490 6 -5491 5490 -1 -5510 5490 -1 -5890 5490 -1 -5491 5491 6 -5492 5491 -1 -5511 5491 -1 -5891 5491 -1 -5492 5492 6 -5493 5492 -1 -5512 5492 -1 -5892 5492 -1 -5493 5493 6 -5494 5493 -1 -5513 5493 -1 -5893 5493 -1 -5494 5494 6 -5495 5494 -1 -5514 5494 -1 -5894 5494 -1 -5495 5495 6 -5496 5495 -1 -5515 5495 -1 -5895 5495 -1 -5496 5496 6 -5497 5496 -1 -5516 5496 -1 -5896 5496 -1 -5497 5497 6 -5498 5497 -1 -5517 5497 -1 -5897 5497 -1 -5498 5498 6 -5499 5498 -1 -5518 5498 -1 -5898 5498 -1 -5499 5499 6 -5500 5499 -1 -5519 5499 -1 -5899 5499 -1 -5500 5500 6 -5520 5500 -1 -5900 5500 -1 -5501 5501 6 -5502 5501 -1 -5521 5501 -1 -5901 5501 -1 -5502 5502 6 -5503 5502 -1 -5522 5502 -1 -5902 5502 -1 -5503 5503 6 -5504 5503 -1 -5523 5503 -1 -5903 5503 -1 -5504 5504 6 -5505 5504 -1 -5524 5504 -1 -5904 5504 -1 -5505 5505 6 -5506 5505 -1 -5525 5505 -1 -5905 5505 -1 -5506 5506 6 -5507 5506 -1 -5526 5506 -1 -5906 5506 -1 -5507 5507 6 -5508 5507 -1 -5527 5507 -1 -5907 5507 -1 -5508 5508 6 -5509 5508 -1 -5528 5508 -1 -5908 5508 -1 -5509 5509 6 -5510 5509 -1 -5529 5509 -1 -5909 5509 -1 -5510 5510 6 -5511 5510 -1 -5530 5510 -1 -5910 5510 -1 -5511 5511 6 -5512 5511 -1 -5531 5511 -1 -5911 5511 -1 -5512 5512 6 -5513 5512 -1 -5532 5512 -1 -5912 5512 -1 -5513 5513 6 -5514 5513 -1 -5533 5513 -1 -5913 5513 -1 -5514 5514 6 -5515 5514 -1 -5534 5514 -1 -5914 5514 -1 -5515 5515 6 -5516 5515 -1 -5535 5515 -1 -5915 5515 -1 -5516 5516 6 -5517 5516 -1 -5536 5516 -1 -5916 5516 -1 -5517 5517 6 -5518 5517 -1 -5537 5517 -1 -5917 5517 -1 -5518 5518 6 -5519 5518 -1 -5538 5518 -1 -5918 5518 -1 -5519 5519 6 -5520 5519 -1 -5539 5519 -1 -5919 5519 -1 -5520 5520 6 -5540 5520 -1 -5920 5520 -1 -5521 5521 6 -5522 5521 -1 -5541 5521 -1 -5921 5521 -1 -5522 5522 6 -5523 5522 -1 -5542 5522 -1 -5922 5522 -1 -5523 5523 6 -5524 5523 -1 -5543 5523 -1 -5923 5523 -1 -5524 5524 6 -5525 5524 -1 -5544 5524 -1 -5924 5524 -1 -5525 5525 6 -5526 5525 -1 -5545 5525 -1 -5925 5525 -1 -5526 5526 6 -5527 5526 -1 -5546 5526 -1 -5926 5526 -1 -5527 5527 6 -5528 5527 -1 -5547 5527 -1 -5927 5527 -1 -5528 5528 6 -5529 5528 -1 -5548 5528 -1 -5928 5528 -1 -5529 5529 6 -5530 5529 -1 -5549 5529 -1 -5929 5529 -1 -5530 5530 6 -5531 5530 -1 -5550 5530 -1 -5930 5530 -1 -5531 5531 6 -5532 5531 -1 -5551 5531 -1 -5931 5531 -1 -5532 5532 6 -5533 5532 -1 -5552 5532 -1 -5932 5532 -1 -5533 5533 6 -5534 5533 -1 -5553 5533 -1 -5933 5533 -1 -5534 5534 6 -5535 5534 -1 -5554 5534 -1 -5934 5534 -1 -5535 5535 6 -5536 5535 -1 -5555 5535 -1 -5935 5535 -1 -5536 5536 6 -5537 5536 -1 -5556 5536 -1 -5936 5536 -1 -5537 5537 6 -5538 5537 -1 -5557 5537 -1 -5937 5537 -1 -5538 5538 6 -5539 5538 -1 -5558 5538 -1 -5938 5538 -1 -5539 5539 6 -5540 5539 -1 -5559 5539 -1 -5939 5539 -1 -5540 5540 6 -5560 5540 -1 -5940 5540 -1 -5541 5541 6 -5542 5541 -1 -5561 5541 -1 -5941 5541 -1 -5542 5542 6 -5543 5542 -1 -5562 5542 -1 -5942 5542 -1 -5543 5543 6 -5544 5543 -1 -5563 5543 -1 -5943 5543 -1 -5544 5544 6 -5545 5544 -1 -5564 5544 -1 -5944 5544 -1 -5545 5545 6 -5546 5545 -1 -5565 5545 -1 -5945 5545 -1 -5546 5546 6 -5547 5546 -1 -5566 5546 -1 -5946 5546 -1 -5547 5547 6 -5548 5547 -1 -5567 5547 -1 -5947 5547 -1 -5548 5548 6 -5549 5548 -1 -5568 5548 -1 -5948 5548 -1 -5549 5549 6 -5550 5549 -1 -5569 5549 -1 -5949 5549 -1 -5550 5550 6 -5551 5550 -1 -5570 5550 -1 -5950 5550 -1 -5551 5551 6 -5552 5551 -1 -5571 5551 -1 -5951 5551 -1 -5552 5552 6 -5553 5552 -1 -5572 5552 -1 -5952 5552 -1 -5553 5553 6 -5554 5553 -1 -5573 5553 -1 -5953 5553 -1 -5554 5554 6 -5555 5554 -1 -5574 5554 -1 -5954 5554 -1 -5555 5555 6 -5556 5555 -1 -5575 5555 -1 -5955 5555 -1 -5556 5556 6 -5557 5556 -1 -5576 5556 -1 -5956 5556 -1 -5557 5557 6 -5558 5557 -1 -5577 5557 -1 -5957 5557 -1 -5558 5558 6 -5559 5558 -1 -5578 5558 -1 -5958 5558 -1 -5559 5559 6 -5560 5559 -1 -5579 5559 -1 -5959 5559 -1 -5560 5560 6 -5580 5560 -1 -5960 5560 -1 -5561 5561 6 -5562 5561 -1 -5581 5561 -1 -5961 5561 -1 -5562 5562 6 -5563 5562 -1 -5582 5562 -1 -5962 5562 -1 -5563 5563 6 -5564 5563 -1 -5583 5563 -1 -5963 5563 -1 -5564 5564 6 -5565 5564 -1 -5584 5564 -1 -5964 5564 -1 -5565 5565 6 -5566 5565 -1 -5585 5565 -1 -5965 5565 -1 -5566 5566 6 -5567 5566 -1 -5586 5566 -1 -5966 5566 -1 -5567 5567 6 -5568 5567 -1 -5587 5567 -1 -5967 5567 -1 -5568 5568 6 -5569 5568 -1 -5588 5568 -1 -5968 5568 -1 -5569 5569 6 -5570 5569 -1 -5589 5569 -1 -5969 5569 -1 -5570 5570 6 -5571 5570 -1 -5590 5570 -1 -5970 5570 -1 -5571 5571 6 -5572 5571 -1 -5591 5571 -1 -5971 5571 -1 -5572 5572 6 -5573 5572 -1 -5592 5572 -1 -5972 5572 -1 -5573 5573 6 -5574 5573 -1 -5593 5573 -1 -5973 5573 -1 -5574 5574 6 -5575 5574 -1 -5594 5574 -1 -5974 5574 -1 -5575 5575 6 -5576 5575 -1 -5595 5575 -1 -5975 5575 -1 -5576 5576 6 -5577 5576 -1 -5596 5576 -1 -5976 5576 -1 -5577 5577 6 -5578 5577 -1 -5597 5577 -1 -5977 5577 -1 -5578 5578 6 -5579 5578 -1 -5598 5578 -1 -5978 5578 -1 -5579 5579 6 -5580 5579 -1 -5599 5579 -1 -5979 5579 -1 -5580 5580 6 -5600 5580 -1 -5980 5580 -1 -5581 5581 6 -5582 5581 -1 -5981 5581 -1 -5582 5582 6 -5583 5582 -1 -5982 5582 -1 -5583 5583 6 -5584 5583 -1 -5983 5583 -1 -5584 5584 6 -5585 5584 -1 -5984 5584 -1 -5585 5585 6 -5586 5585 -1 -5985 5585 -1 -5586 5586 6 -5587 5586 -1 -5986 5586 -1 -5587 5587 6 -5588 5587 -1 -5987 5587 -1 -5588 5588 6 -5589 5588 -1 -5988 5588 -1 -5589 5589 6 -5590 5589 -1 -5989 5589 -1 -5590 5590 6 -5591 5590 -1 -5990 5590 -1 -5591 5591 6 -5592 5591 -1 -5991 5591 -1 -5592 5592 6 -5593 5592 -1 -5992 5592 -1 -5593 5593 6 -5594 5593 -1 -5993 5593 -1 -5594 5594 6 -5595 5594 -1 -5994 5594 -1 -5595 5595 6 -5596 5595 -1 -5995 5595 -1 -5596 5596 6 -5597 5596 -1 -5996 5596 -1 -5597 5597 6 -5598 5597 -1 -5997 5597 -1 -5598 5598 6 -5599 5598 -1 -5998 5598 -1 -5599 5599 6 -5600 5599 -1 -5999 5599 -1 -5600 5600 6 -6000 5600 -1 -5601 5601 6 -5602 5601 -1 -5621 5601 -1 -6001 5601 -1 -5602 5602 6 -5603 5602 -1 -5622 5602 -1 -6002 5602 -1 -5603 5603 6 -5604 5603 -1 -5623 5603 -1 -6003 5603 -1 -5604 5604 6 -5605 5604 -1 -5624 5604 -1 -6004 5604 -1 -5605 5605 6 -5606 5605 -1 -5625 5605 -1 -6005 5605 -1 -5606 5606 6 -5607 5606 -1 -5626 5606 -1 -6006 5606 -1 -5607 5607 6 -5608 5607 -1 -5627 5607 -1 -6007 5607 -1 -5608 5608 6 -5609 5608 -1 -5628 5608 -1 -6008 5608 -1 -5609 5609 6 -5610 5609 -1 -5629 5609 -1 -6009 5609 -1 -5610 5610 6 -5611 5610 -1 -5630 5610 -1 -6010 5610 -1 -5611 5611 6 -5612 5611 -1 -5631 5611 -1 -6011 5611 -1 -5612 5612 6 -5613 5612 -1 -5632 5612 -1 -6012 5612 -1 -5613 5613 6 -5614 5613 -1 -5633 5613 -1 -6013 5613 -1 -5614 5614 6 -5615 5614 -1 -5634 5614 -1 -6014 5614 -1 -5615 5615 6 -5616 5615 -1 -5635 5615 -1 -6015 5615 -1 -5616 5616 6 -5617 5616 -1 -5636 5616 -1 -6016 5616 -1 -5617 5617 6 -5618 5617 -1 -5637 5617 -1 -6017 5617 -1 -5618 5618 6 -5619 5618 -1 -5638 5618 -1 -6018 5618 -1 -5619 5619 6 -5620 5619 -1 -5639 5619 -1 -6019 5619 -1 -5620 5620 6 -5640 5620 -1 -6020 5620 -1 -5621 5621 6 -5622 5621 -1 -5641 5621 -1 -6021 5621 -1 -5622 5622 6 -5623 5622 -1 -5642 5622 -1 -6022 5622 -1 -5623 5623 6 -5624 5623 -1 -5643 5623 -1 -6023 5623 -1 -5624 5624 6 -5625 5624 -1 -5644 5624 -1 -6024 5624 -1 -5625 5625 6 -5626 5625 -1 -5645 5625 -1 -6025 5625 -1 -5626 5626 6 -5627 5626 -1 -5646 5626 -1 -6026 5626 -1 -5627 5627 6 -5628 5627 -1 -5647 5627 -1 -6027 5627 -1 -5628 5628 6 -5629 5628 -1 -5648 5628 -1 -6028 5628 -1 -5629 5629 6 -5630 5629 -1 -5649 5629 -1 -6029 5629 -1 -5630 5630 6 -5631 5630 -1 -5650 5630 -1 -6030 5630 -1 -5631 5631 6 -5632 5631 -1 -5651 5631 -1 -6031 5631 -1 -5632 5632 6 -5633 5632 -1 -5652 5632 -1 -6032 5632 -1 -5633 5633 6 -5634 5633 -1 -5653 5633 -1 -6033 5633 -1 -5634 5634 6 -5635 5634 -1 -5654 5634 -1 -6034 5634 -1 -5635 5635 6 -5636 5635 -1 -5655 5635 -1 -6035 5635 -1 -5636 5636 6 -5637 5636 -1 -5656 5636 -1 -6036 5636 -1 -5637 5637 6 -5638 5637 -1 -5657 5637 -1 -6037 5637 -1 -5638 5638 6 -5639 5638 -1 -5658 5638 -1 -6038 5638 -1 -5639 5639 6 -5640 5639 -1 -5659 5639 -1 -6039 5639 -1 -5640 5640 6 -5660 5640 -1 -6040 5640 -1 -5641 5641 6 -5642 5641 -1 -5661 5641 -1 -6041 5641 -1 -5642 5642 6 -5643 5642 -1 -5662 5642 -1 -6042 5642 -1 -5643 5643 6 -5644 5643 -1 -5663 5643 -1 -6043 5643 -1 -5644 5644 6 -5645 5644 -1 -5664 5644 -1 -6044 5644 -1 -5645 5645 6 -5646 5645 -1 -5665 5645 -1 -6045 5645 -1 -5646 5646 6 -5647 5646 -1 -5666 5646 -1 -6046 5646 -1 -5647 5647 6 -5648 5647 -1 -5667 5647 -1 -6047 5647 -1 -5648 5648 6 -5649 5648 -1 -5668 5648 -1 -6048 5648 -1 -5649 5649 6 -5650 5649 -1 -5669 5649 -1 -6049 5649 -1 -5650 5650 6 -5651 5650 -1 -5670 5650 -1 -6050 5650 -1 -5651 5651 6 -5652 5651 -1 -5671 5651 -1 -6051 5651 -1 -5652 5652 6 -5653 5652 -1 -5672 5652 -1 -6052 5652 -1 -5653 5653 6 -5654 5653 -1 -5673 5653 -1 -6053 5653 -1 -5654 5654 6 -5655 5654 -1 -5674 5654 -1 -6054 5654 -1 -5655 5655 6 -5656 5655 -1 -5675 5655 -1 -6055 5655 -1 -5656 5656 6 -5657 5656 -1 -5676 5656 -1 -6056 5656 -1 -5657 5657 6 -5658 5657 -1 -5677 5657 -1 -6057 5657 -1 -5658 5658 6 -5659 5658 -1 -5678 5658 -1 -6058 5658 -1 -5659 5659 6 -5660 5659 -1 -5679 5659 -1 -6059 5659 -1 -5660 5660 6 -5680 5660 -1 -6060 5660 -1 -5661 5661 6 -5662 5661 -1 -5681 5661 -1 -6061 5661 -1 -5662 5662 6 -5663 5662 -1 -5682 5662 -1 -6062 5662 -1 -5663 5663 6 -5664 5663 -1 -5683 5663 -1 -6063 5663 -1 -5664 5664 6 -5665 5664 -1 -5684 5664 -1 -6064 5664 -1 -5665 5665 6 -5666 5665 -1 -5685 5665 -1 -6065 5665 -1 -5666 5666 6 -5667 5666 -1 -5686 5666 -1 -6066 5666 -1 -5667 5667 6 -5668 5667 -1 -5687 5667 -1 -6067 5667 -1 -5668 5668 6 -5669 5668 -1 -5688 5668 -1 -6068 5668 -1 -5669 5669 6 -5670 5669 -1 -5689 5669 -1 -6069 5669 -1 -5670 5670 6 -5671 5670 -1 -5690 5670 -1 -6070 5670 -1 -5671 5671 6 -5672 5671 -1 -5691 5671 -1 -6071 5671 -1 -5672 5672 6 -5673 5672 -1 -5692 5672 -1 -6072 5672 -1 -5673 5673 6 -5674 5673 -1 -5693 5673 -1 -6073 5673 -1 -5674 5674 6 -5675 5674 -1 -5694 5674 -1 -6074 5674 -1 -5675 5675 6 -5676 5675 -1 -5695 5675 -1 -6075 5675 -1 -5676 5676 6 -5677 5676 -1 -5696 5676 -1 -6076 5676 -1 -5677 5677 6 -5678 5677 -1 -5697 5677 -1 -6077 5677 -1 -5678 5678 6 -5679 5678 -1 -5698 5678 -1 -6078 5678 -1 -5679 5679 6 -5680 5679 -1 -5699 5679 -1 -6079 5679 -1 -5680 5680 6 -5700 5680 -1 -6080 5680 -1 -5681 5681 6 -5682 5681 -1 -5701 5681 -1 -6081 5681 -1 -5682 5682 6 -5683 5682 -1 -5702 5682 -1 -6082 5682 -1 -5683 5683 6 -5684 5683 -1 -5703 5683 -1 -6083 5683 -1 -5684 5684 6 -5685 5684 -1 -5704 5684 -1 -6084 5684 -1 -5685 5685 6 -5686 5685 -1 -5705 5685 -1 -6085 5685 -1 -5686 5686 6 -5687 5686 -1 -5706 5686 -1 -6086 5686 -1 -5687 5687 6 -5688 5687 -1 -5707 5687 -1 -6087 5687 -1 -5688 5688 6 -5689 5688 -1 -5708 5688 -1 -6088 5688 -1 -5689 5689 6 -5690 5689 -1 -5709 5689 -1 -6089 5689 -1 -5690 5690 6 -5691 5690 -1 -5710 5690 -1 -6090 5690 -1 -5691 5691 6 -5692 5691 -1 -5711 5691 -1 -6091 5691 -1 -5692 5692 6 -5693 5692 -1 -5712 5692 -1 -6092 5692 -1 -5693 5693 6 -5694 5693 -1 -5713 5693 -1 -6093 5693 -1 -5694 5694 6 -5695 5694 -1 -5714 5694 -1 -6094 5694 -1 -5695 5695 6 -5696 5695 -1 -5715 5695 -1 -6095 5695 -1 -5696 5696 6 -5697 5696 -1 -5716 5696 -1 -6096 5696 -1 -5697 5697 6 -5698 5697 -1 -5717 5697 -1 -6097 5697 -1 -5698 5698 6 -5699 5698 -1 -5718 5698 -1 -6098 5698 -1 -5699 5699 6 -5700 5699 -1 -5719 5699 -1 -6099 5699 -1 -5700 5700 6 -5720 5700 -1 -6100 5700 -1 -5701 5701 6 -5702 5701 -1 -5721 5701 -1 -6101 5701 -1 -5702 5702 6 -5703 5702 -1 -5722 5702 -1 -6102 5702 -1 -5703 5703 6 -5704 5703 -1 -5723 5703 -1 -6103 5703 -1 -5704 5704 6 -5705 5704 -1 -5724 5704 -1 -6104 5704 -1 -5705 5705 6 -5706 5705 -1 -5725 5705 -1 -6105 5705 -1 -5706 5706 6 -5707 5706 -1 -5726 5706 -1 -6106 5706 -1 -5707 5707 6 -5708 5707 -1 -5727 5707 -1 -6107 5707 -1 -5708 5708 6 -5709 5708 -1 -5728 5708 -1 -6108 5708 -1 -5709 5709 6 -5710 5709 -1 -5729 5709 -1 -6109 5709 -1 -5710 5710 6 -5711 5710 -1 -5730 5710 -1 -6110 5710 -1 -5711 5711 6 -5712 5711 -1 -5731 5711 -1 -6111 5711 -1 -5712 5712 6 -5713 5712 -1 -5732 5712 -1 -6112 5712 -1 -5713 5713 6 -5714 5713 -1 -5733 5713 -1 -6113 5713 -1 -5714 5714 6 -5715 5714 -1 -5734 5714 -1 -6114 5714 -1 -5715 5715 6 -5716 5715 -1 -5735 5715 -1 -6115 5715 -1 -5716 5716 6 -5717 5716 -1 -5736 5716 -1 -6116 5716 -1 -5717 5717 6 -5718 5717 -1 -5737 5717 -1 -6117 5717 -1 -5718 5718 6 -5719 5718 -1 -5738 5718 -1 -6118 5718 -1 -5719 5719 6 -5720 5719 -1 -5739 5719 -1 -6119 5719 -1 -5720 5720 6 -5740 5720 -1 -6120 5720 -1 -5721 5721 6 -5722 5721 -1 -5741 5721 -1 -6121 5721 -1 -5722 5722 6 -5723 5722 -1 -5742 5722 -1 -6122 5722 -1 -5723 5723 6 -5724 5723 -1 -5743 5723 -1 -6123 5723 -1 -5724 5724 6 -5725 5724 -1 -5744 5724 -1 -6124 5724 -1 -5725 5725 6 -5726 5725 -1 -5745 5725 -1 -6125 5725 -1 -5726 5726 6 -5727 5726 -1 -5746 5726 -1 -6126 5726 -1 -5727 5727 6 -5728 5727 -1 -5747 5727 -1 -6127 5727 -1 -5728 5728 6 -5729 5728 -1 -5748 5728 -1 -6128 5728 -1 -5729 5729 6 -5730 5729 -1 -5749 5729 -1 -6129 5729 -1 -5730 5730 6 -5731 5730 -1 -5750 5730 -1 -6130 5730 -1 -5731 5731 6 -5732 5731 -1 -5751 5731 -1 -6131 5731 -1 -5732 5732 6 -5733 5732 -1 -5752 5732 -1 -6132 5732 -1 -5733 5733 6 -5734 5733 -1 -5753 5733 -1 -6133 5733 -1 -5734 5734 6 -5735 5734 -1 -5754 5734 -1 -6134 5734 -1 -5735 5735 6 -5736 5735 -1 -5755 5735 -1 -6135 5735 -1 -5736 5736 6 -5737 5736 -1 -5756 5736 -1 -6136 5736 -1 -5737 5737 6 -5738 5737 -1 -5757 5737 -1 -6137 5737 -1 -5738 5738 6 -5739 5738 -1 -5758 5738 -1 -6138 5738 -1 -5739 5739 6 -5740 5739 -1 -5759 5739 -1 -6139 5739 -1 -5740 5740 6 -5760 5740 -1 -6140 5740 -1 -5741 5741 6 -5742 5741 -1 -5761 5741 -1 -6141 5741 -1 -5742 5742 6 -5743 5742 -1 -5762 5742 -1 -6142 5742 -1 -5743 5743 6 -5744 5743 -1 -5763 5743 -1 -6143 5743 -1 -5744 5744 6 -5745 5744 -1 -5764 5744 -1 -6144 5744 -1 -5745 5745 6 -5746 5745 -1 -5765 5745 -1 -6145 5745 -1 -5746 5746 6 -5747 5746 -1 -5766 5746 -1 -6146 5746 -1 -5747 5747 6 -5748 5747 -1 -5767 5747 -1 -6147 5747 -1 -5748 5748 6 -5749 5748 -1 -5768 5748 -1 -6148 5748 -1 -5749 5749 6 -5750 5749 -1 -5769 5749 -1 -6149 5749 -1 -5750 5750 6 -5751 5750 -1 -5770 5750 -1 -6150 5750 -1 -5751 5751 6 -5752 5751 -1 -5771 5751 -1 -6151 5751 -1 -5752 5752 6 -5753 5752 -1 -5772 5752 -1 -6152 5752 -1 -5753 5753 6 -5754 5753 -1 -5773 5753 -1 -6153 5753 -1 -5754 5754 6 -5755 5754 -1 -5774 5754 -1 -6154 5754 -1 -5755 5755 6 -5756 5755 -1 -5775 5755 -1 -6155 5755 -1 -5756 5756 6 -5757 5756 -1 -5776 5756 -1 -6156 5756 -1 -5757 5757 6 -5758 5757 -1 -5777 5757 -1 -6157 5757 -1 -5758 5758 6 -5759 5758 -1 -5778 5758 -1 -6158 5758 -1 -5759 5759 6 -5760 5759 -1 -5779 5759 -1 -6159 5759 -1 -5760 5760 6 -5780 5760 -1 -6160 5760 -1 -5761 5761 6 -5762 5761 -1 -5781 5761 -1 -6161 5761 -1 -5762 5762 6 -5763 5762 -1 -5782 5762 -1 -6162 5762 -1 -5763 5763 6 -5764 5763 -1 -5783 5763 -1 -6163 5763 -1 -5764 5764 6 -5765 5764 -1 -5784 5764 -1 -6164 5764 -1 -5765 5765 6 -5766 5765 -1 -5785 5765 -1 -6165 5765 -1 -5766 5766 6 -5767 5766 -1 -5786 5766 -1 -6166 5766 -1 -5767 5767 6 -5768 5767 -1 -5787 5767 -1 -6167 5767 -1 -5768 5768 6 -5769 5768 -1 -5788 5768 -1 -6168 5768 -1 -5769 5769 6 -5770 5769 -1 -5789 5769 -1 -6169 5769 -1 -5770 5770 6 -5771 5770 -1 -5790 5770 -1 -6170 5770 -1 -5771 5771 6 -5772 5771 -1 -5791 5771 -1 -6171 5771 -1 -5772 5772 6 -5773 5772 -1 -5792 5772 -1 -6172 5772 -1 -5773 5773 6 -5774 5773 -1 -5793 5773 -1 -6173 5773 -1 -5774 5774 6 -5775 5774 -1 -5794 5774 -1 -6174 5774 -1 -5775 5775 6 -5776 5775 -1 -5795 5775 -1 -6175 5775 -1 -5776 5776 6 -5777 5776 -1 -5796 5776 -1 -6176 5776 -1 -5777 5777 6 -5778 5777 -1 -5797 5777 -1 -6177 5777 -1 -5778 5778 6 -5779 5778 -1 -5798 5778 -1 -6178 5778 -1 -5779 5779 6 -5780 5779 -1 -5799 5779 -1 -6179 5779 -1 -5780 5780 6 -5800 5780 -1 -6180 5780 -1 -5781 5781 6 -5782 5781 -1 -5801 5781 -1 -6181 5781 -1 -5782 5782 6 -5783 5782 -1 -5802 5782 -1 -6182 5782 -1 -5783 5783 6 -5784 5783 -1 -5803 5783 -1 -6183 5783 -1 -5784 5784 6 -5785 5784 -1 -5804 5784 -1 -6184 5784 -1 -5785 5785 6 -5786 5785 -1 -5805 5785 -1 -6185 5785 -1 -5786 5786 6 -5787 5786 -1 -5806 5786 -1 -6186 5786 -1 -5787 5787 6 -5788 5787 -1 -5807 5787 -1 -6187 5787 -1 -5788 5788 6 -5789 5788 -1 -5808 5788 -1 -6188 5788 -1 -5789 5789 6 -5790 5789 -1 -5809 5789 -1 -6189 5789 -1 -5790 5790 6 -5791 5790 -1 -5810 5790 -1 -6190 5790 -1 -5791 5791 6 -5792 5791 -1 -5811 5791 -1 -6191 5791 -1 -5792 5792 6 -5793 5792 -1 -5812 5792 -1 -6192 5792 -1 -5793 5793 6 -5794 5793 -1 -5813 5793 -1 -6193 5793 -1 -5794 5794 6 -5795 5794 -1 -5814 5794 -1 -6194 5794 -1 -5795 5795 6 -5796 5795 -1 -5815 5795 -1 -6195 5795 -1 -5796 5796 6 -5797 5796 -1 -5816 5796 -1 -6196 5796 -1 -5797 5797 6 -5798 5797 -1 -5817 5797 -1 -6197 5797 -1 -5798 5798 6 -5799 5798 -1 -5818 5798 -1 -6198 5798 -1 -5799 5799 6 -5800 5799 -1 -5819 5799 -1 -6199 5799 -1 -5800 5800 6 -5820 5800 -1 -6200 5800 -1 -5801 5801 6 -5802 5801 -1 -5821 5801 -1 -6201 5801 -1 -5802 5802 6 -5803 5802 -1 -5822 5802 -1 -6202 5802 -1 -5803 5803 6 -5804 5803 -1 -5823 5803 -1 -6203 5803 -1 -5804 5804 6 -5805 5804 -1 -5824 5804 -1 -6204 5804 -1 -5805 5805 6 -5806 5805 -1 -5825 5805 -1 -6205 5805 -1 -5806 5806 6 -5807 5806 -1 -5826 5806 -1 -6206 5806 -1 -5807 5807 6 -5808 5807 -1 -5827 5807 -1 -6207 5807 -1 -5808 5808 6 -5809 5808 -1 -5828 5808 -1 -6208 5808 -1 -5809 5809 6 -5810 5809 -1 -5829 5809 -1 -6209 5809 -1 -5810 5810 6 -5811 5810 -1 -5830 5810 -1 -6210 5810 -1 -5811 5811 6 -5812 5811 -1 -5831 5811 -1 -6211 5811 -1 -5812 5812 6 -5813 5812 -1 -5832 5812 -1 -6212 5812 -1 -5813 5813 6 -5814 5813 -1 -5833 5813 -1 -6213 5813 -1 -5814 5814 6 -5815 5814 -1 -5834 5814 -1 -6214 5814 -1 -5815 5815 6 -5816 5815 -1 -5835 5815 -1 -6215 5815 -1 -5816 5816 6 -5817 5816 -1 -5836 5816 -1 -6216 5816 -1 -5817 5817 6 -5818 5817 -1 -5837 5817 -1 -6217 5817 -1 -5818 5818 6 -5819 5818 -1 -5838 5818 -1 -6218 5818 -1 -5819 5819 6 -5820 5819 -1 -5839 5819 -1 -6219 5819 -1 -5820 5820 6 -5840 5820 -1 -6220 5820 -1 -5821 5821 6 -5822 5821 -1 -5841 5821 -1 -6221 5821 -1 -5822 5822 6 -5823 5822 -1 -5842 5822 -1 -6222 5822 -1 -5823 5823 6 -5824 5823 -1 -5843 5823 -1 -6223 5823 -1 -5824 5824 6 -5825 5824 -1 -5844 5824 -1 -6224 5824 -1 -5825 5825 6 -5826 5825 -1 -5845 5825 -1 -6225 5825 -1 -5826 5826 6 -5827 5826 -1 -5846 5826 -1 -6226 5826 -1 -5827 5827 6 -5828 5827 -1 -5847 5827 -1 -6227 5827 -1 -5828 5828 6 -5829 5828 -1 -5848 5828 -1 -6228 5828 -1 -5829 5829 6 -5830 5829 -1 -5849 5829 -1 -6229 5829 -1 -5830 5830 6 -5831 5830 -1 -5850 5830 -1 -6230 5830 -1 -5831 5831 6 -5832 5831 -1 -5851 5831 -1 -6231 5831 -1 -5832 5832 6 -5833 5832 -1 -5852 5832 -1 -6232 5832 -1 -5833 5833 6 -5834 5833 -1 -5853 5833 -1 -6233 5833 -1 -5834 5834 6 -5835 5834 -1 -5854 5834 -1 -6234 5834 -1 -5835 5835 6 -5836 5835 -1 -5855 5835 -1 -6235 5835 -1 -5836 5836 6 -5837 5836 -1 -5856 5836 -1 -6236 5836 -1 -5837 5837 6 -5838 5837 -1 -5857 5837 -1 -6237 5837 -1 -5838 5838 6 -5839 5838 -1 -5858 5838 -1 -6238 5838 -1 -5839 5839 6 -5840 5839 -1 -5859 5839 -1 -6239 5839 -1 -5840 5840 6 -5860 5840 -1 -6240 5840 -1 -5841 5841 6 -5842 5841 -1 -5861 5841 -1 -6241 5841 -1 -5842 5842 6 -5843 5842 -1 -5862 5842 -1 -6242 5842 -1 -5843 5843 6 -5844 5843 -1 -5863 5843 -1 -6243 5843 -1 -5844 5844 6 -5845 5844 -1 -5864 5844 -1 -6244 5844 -1 -5845 5845 6 -5846 5845 -1 -5865 5845 -1 -6245 5845 -1 -5846 5846 6 -5847 5846 -1 -5866 5846 -1 -6246 5846 -1 -5847 5847 6 -5848 5847 -1 -5867 5847 -1 -6247 5847 -1 -5848 5848 6 -5849 5848 -1 -5868 5848 -1 -6248 5848 -1 -5849 5849 6 -5850 5849 -1 -5869 5849 -1 -6249 5849 -1 -5850 5850 6 -5851 5850 -1 -5870 5850 -1 -6250 5850 -1 -5851 5851 6 -5852 5851 -1 -5871 5851 -1 -6251 5851 -1 -5852 5852 6 -5853 5852 -1 -5872 5852 -1 -6252 5852 -1 -5853 5853 6 -5854 5853 -1 -5873 5853 -1 -6253 5853 -1 -5854 5854 6 -5855 5854 -1 -5874 5854 -1 -6254 5854 -1 -5855 5855 6 -5856 5855 -1 -5875 5855 -1 -6255 5855 -1 -5856 5856 6 -5857 5856 -1 -5876 5856 -1 -6256 5856 -1 -5857 5857 6 -5858 5857 -1 -5877 5857 -1 -6257 5857 -1 -5858 5858 6 -5859 5858 -1 -5878 5858 -1 -6258 5858 -1 -5859 5859 6 -5860 5859 -1 -5879 5859 -1 -6259 5859 -1 -5860 5860 6 -5880 5860 -1 -6260 5860 -1 -5861 5861 6 -5862 5861 -1 -5881 5861 -1 -6261 5861 -1 -5862 5862 6 -5863 5862 -1 -5882 5862 -1 -6262 5862 -1 -5863 5863 6 -5864 5863 -1 -5883 5863 -1 -6263 5863 -1 -5864 5864 6 -5865 5864 -1 -5884 5864 -1 -6264 5864 -1 -5865 5865 6 -5866 5865 -1 -5885 5865 -1 -6265 5865 -1 -5866 5866 6 -5867 5866 -1 -5886 5866 -1 -6266 5866 -1 -5867 5867 6 -5868 5867 -1 -5887 5867 -1 -6267 5867 -1 -5868 5868 6 -5869 5868 -1 -5888 5868 -1 -6268 5868 -1 -5869 5869 6 -5870 5869 -1 -5889 5869 -1 -6269 5869 -1 -5870 5870 6 -5871 5870 -1 -5890 5870 -1 -6270 5870 -1 -5871 5871 6 -5872 5871 -1 -5891 5871 -1 -6271 5871 -1 -5872 5872 6 -5873 5872 -1 -5892 5872 -1 -6272 5872 -1 -5873 5873 6 -5874 5873 -1 -5893 5873 -1 -6273 5873 -1 -5874 5874 6 -5875 5874 -1 -5894 5874 -1 -6274 5874 -1 -5875 5875 6 -5876 5875 -1 -5895 5875 -1 -6275 5875 -1 -5876 5876 6 -5877 5876 -1 -5896 5876 -1 -6276 5876 -1 -5877 5877 6 -5878 5877 -1 -5897 5877 -1 -6277 5877 -1 -5878 5878 6 -5879 5878 -1 -5898 5878 -1 -6278 5878 -1 -5879 5879 6 -5880 5879 -1 -5899 5879 -1 -6279 5879 -1 -5880 5880 6 -5900 5880 -1 -6280 5880 -1 -5881 5881 6 -5882 5881 -1 -5901 5881 -1 -6281 5881 -1 -5882 5882 6 -5883 5882 -1 -5902 5882 -1 -6282 5882 -1 -5883 5883 6 -5884 5883 -1 -5903 5883 -1 -6283 5883 -1 -5884 5884 6 -5885 5884 -1 -5904 5884 -1 -6284 5884 -1 -5885 5885 6 -5886 5885 -1 -5905 5885 -1 -6285 5885 -1 -5886 5886 6 -5887 5886 -1 -5906 5886 -1 -6286 5886 -1 -5887 5887 6 -5888 5887 -1 -5907 5887 -1 -6287 5887 -1 -5888 5888 6 -5889 5888 -1 -5908 5888 -1 -6288 5888 -1 -5889 5889 6 -5890 5889 -1 -5909 5889 -1 -6289 5889 -1 -5890 5890 6 -5891 5890 -1 -5910 5890 -1 -6290 5890 -1 -5891 5891 6 -5892 5891 -1 -5911 5891 -1 -6291 5891 -1 -5892 5892 6 -5893 5892 -1 -5912 5892 -1 -6292 5892 -1 -5893 5893 6 -5894 5893 -1 -5913 5893 -1 -6293 5893 -1 -5894 5894 6 -5895 5894 -1 -5914 5894 -1 -6294 5894 -1 -5895 5895 6 -5896 5895 -1 -5915 5895 -1 -6295 5895 -1 -5896 5896 6 -5897 5896 -1 -5916 5896 -1 -6296 5896 -1 -5897 5897 6 -5898 5897 -1 -5917 5897 -1 -6297 5897 -1 -5898 5898 6 -5899 5898 -1 -5918 5898 -1 -6298 5898 -1 -5899 5899 6 -5900 5899 -1 -5919 5899 -1 -6299 5899 -1 -5900 5900 6 -5920 5900 -1 -6300 5900 -1 -5901 5901 6 -5902 5901 -1 -5921 5901 -1 -6301 5901 -1 -5902 5902 6 -5903 5902 -1 -5922 5902 -1 -6302 5902 -1 -5903 5903 6 -5904 5903 -1 -5923 5903 -1 -6303 5903 -1 -5904 5904 6 -5905 5904 -1 -5924 5904 -1 -6304 5904 -1 -5905 5905 6 -5906 5905 -1 -5925 5905 -1 -6305 5905 -1 -5906 5906 6 -5907 5906 -1 -5926 5906 -1 -6306 5906 -1 -5907 5907 6 -5908 5907 -1 -5927 5907 -1 -6307 5907 -1 -5908 5908 6 -5909 5908 -1 -5928 5908 -1 -6308 5908 -1 -5909 5909 6 -5910 5909 -1 -5929 5909 -1 -6309 5909 -1 -5910 5910 6 -5911 5910 -1 -5930 5910 -1 -6310 5910 -1 -5911 5911 6 -5912 5911 -1 -5931 5911 -1 -6311 5911 -1 -5912 5912 6 -5913 5912 -1 -5932 5912 -1 -6312 5912 -1 -5913 5913 6 -5914 5913 -1 -5933 5913 -1 -6313 5913 -1 -5914 5914 6 -5915 5914 -1 -5934 5914 -1 -6314 5914 -1 -5915 5915 6 -5916 5915 -1 -5935 5915 -1 -6315 5915 -1 -5916 5916 6 -5917 5916 -1 -5936 5916 -1 -6316 5916 -1 -5917 5917 6 -5918 5917 -1 -5937 5917 -1 -6317 5917 -1 -5918 5918 6 -5919 5918 -1 -5938 5918 -1 -6318 5918 -1 -5919 5919 6 -5920 5919 -1 -5939 5919 -1 -6319 5919 -1 -5920 5920 6 -5940 5920 -1 -6320 5920 -1 -5921 5921 6 -5922 5921 -1 -5941 5921 -1 -6321 5921 -1 -5922 5922 6 -5923 5922 -1 -5942 5922 -1 -6322 5922 -1 -5923 5923 6 -5924 5923 -1 -5943 5923 -1 -6323 5923 -1 -5924 5924 6 -5925 5924 -1 -5944 5924 -1 -6324 5924 -1 -5925 5925 6 -5926 5925 -1 -5945 5925 -1 -6325 5925 -1 -5926 5926 6 -5927 5926 -1 -5946 5926 -1 -6326 5926 -1 -5927 5927 6 -5928 5927 -1 -5947 5927 -1 -6327 5927 -1 -5928 5928 6 -5929 5928 -1 -5948 5928 -1 -6328 5928 -1 -5929 5929 6 -5930 5929 -1 -5949 5929 -1 -6329 5929 -1 -5930 5930 6 -5931 5930 -1 -5950 5930 -1 -6330 5930 -1 -5931 5931 6 -5932 5931 -1 -5951 5931 -1 -6331 5931 -1 -5932 5932 6 -5933 5932 -1 -5952 5932 -1 -6332 5932 -1 -5933 5933 6 -5934 5933 -1 -5953 5933 -1 -6333 5933 -1 -5934 5934 6 -5935 5934 -1 -5954 5934 -1 -6334 5934 -1 -5935 5935 6 -5936 5935 -1 -5955 5935 -1 -6335 5935 -1 -5936 5936 6 -5937 5936 -1 -5956 5936 -1 -6336 5936 -1 -5937 5937 6 -5938 5937 -1 -5957 5937 -1 -6337 5937 -1 -5938 5938 6 -5939 5938 -1 -5958 5938 -1 -6338 5938 -1 -5939 5939 6 -5940 5939 -1 -5959 5939 -1 -6339 5939 -1 -5940 5940 6 -5960 5940 -1 -6340 5940 -1 -5941 5941 6 -5942 5941 -1 -5961 5941 -1 -6341 5941 -1 -5942 5942 6 -5943 5942 -1 -5962 5942 -1 -6342 5942 -1 -5943 5943 6 -5944 5943 -1 -5963 5943 -1 -6343 5943 -1 -5944 5944 6 -5945 5944 -1 -5964 5944 -1 -6344 5944 -1 -5945 5945 6 -5946 5945 -1 -5965 5945 -1 -6345 5945 -1 -5946 5946 6 -5947 5946 -1 -5966 5946 -1 -6346 5946 -1 -5947 5947 6 -5948 5947 -1 -5967 5947 -1 -6347 5947 -1 -5948 5948 6 -5949 5948 -1 -5968 5948 -1 -6348 5948 -1 -5949 5949 6 -5950 5949 -1 -5969 5949 -1 -6349 5949 -1 -5950 5950 6 -5951 5950 -1 -5970 5950 -1 -6350 5950 -1 -5951 5951 6 -5952 5951 -1 -5971 5951 -1 -6351 5951 -1 -5952 5952 6 -5953 5952 -1 -5972 5952 -1 -6352 5952 -1 -5953 5953 6 -5954 5953 -1 -5973 5953 -1 -6353 5953 -1 -5954 5954 6 -5955 5954 -1 -5974 5954 -1 -6354 5954 -1 -5955 5955 6 -5956 5955 -1 -5975 5955 -1 -6355 5955 -1 -5956 5956 6 -5957 5956 -1 -5976 5956 -1 -6356 5956 -1 -5957 5957 6 -5958 5957 -1 -5977 5957 -1 -6357 5957 -1 -5958 5958 6 -5959 5958 -1 -5978 5958 -1 -6358 5958 -1 -5959 5959 6 -5960 5959 -1 -5979 5959 -1 -6359 5959 -1 -5960 5960 6 -5980 5960 -1 -6360 5960 -1 -5961 5961 6 -5962 5961 -1 -5981 5961 -1 -6361 5961 -1 -5962 5962 6 -5963 5962 -1 -5982 5962 -1 -6362 5962 -1 -5963 5963 6 -5964 5963 -1 -5983 5963 -1 -6363 5963 -1 -5964 5964 6 -5965 5964 -1 -5984 5964 -1 -6364 5964 -1 -5965 5965 6 -5966 5965 -1 -5985 5965 -1 -6365 5965 -1 -5966 5966 6 -5967 5966 -1 -5986 5966 -1 -6366 5966 -1 -5967 5967 6 -5968 5967 -1 -5987 5967 -1 -6367 5967 -1 -5968 5968 6 -5969 5968 -1 -5988 5968 -1 -6368 5968 -1 -5969 5969 6 -5970 5969 -1 -5989 5969 -1 -6369 5969 -1 -5970 5970 6 -5971 5970 -1 -5990 5970 -1 -6370 5970 -1 -5971 5971 6 -5972 5971 -1 -5991 5971 -1 -6371 5971 -1 -5972 5972 6 -5973 5972 -1 -5992 5972 -1 -6372 5972 -1 -5973 5973 6 -5974 5973 -1 -5993 5973 -1 -6373 5973 -1 -5974 5974 6 -5975 5974 -1 -5994 5974 -1 -6374 5974 -1 -5975 5975 6 -5976 5975 -1 -5995 5975 -1 -6375 5975 -1 -5976 5976 6 -5977 5976 -1 -5996 5976 -1 -6376 5976 -1 -5977 5977 6 -5978 5977 -1 -5997 5977 -1 -6377 5977 -1 -5978 5978 6 -5979 5978 -1 -5998 5978 -1 -6378 5978 -1 -5979 5979 6 -5980 5979 -1 -5999 5979 -1 -6379 5979 -1 -5980 5980 6 -6000 5980 -1 -6380 5980 -1 -5981 5981 6 -5982 5981 -1 -6381 5981 -1 -5982 5982 6 -5983 5982 -1 -6382 5982 -1 -5983 5983 6 -5984 5983 -1 -6383 5983 -1 -5984 5984 6 -5985 5984 -1 -6384 5984 -1 -5985 5985 6 -5986 5985 -1 -6385 5985 -1 -5986 5986 6 -5987 5986 -1 -6386 5986 -1 -5987 5987 6 -5988 5987 -1 -6387 5987 -1 -5988 5988 6 -5989 5988 -1 -6388 5988 -1 -5989 5989 6 -5990 5989 -1 -6389 5989 -1 -5990 5990 6 -5991 5990 -1 -6390 5990 -1 -5991 5991 6 -5992 5991 -1 -6391 5991 -1 -5992 5992 6 -5993 5992 -1 -6392 5992 -1 -5993 5993 6 -5994 5993 -1 -6393 5993 -1 -5994 5994 6 -5995 5994 -1 -6394 5994 -1 -5995 5995 6 -5996 5995 -1 -6395 5995 -1 -5996 5996 6 -5997 5996 -1 -6396 5996 -1 -5997 5997 6 -5998 5997 -1 -6397 5997 -1 -5998 5998 6 -5999 5998 -1 -6398 5998 -1 -5999 5999 6 -6000 5999 -1 -6399 5999 -1 -6000 6000 6 -6400 6000 -1 -6001 6001 6 -6002 6001 -1 -6021 6001 -1 -6401 6001 -1 -6002 6002 6 -6003 6002 -1 -6022 6002 -1 -6402 6002 -1 -6003 6003 6 -6004 6003 -1 -6023 6003 -1 -6403 6003 -1 -6004 6004 6 -6005 6004 -1 -6024 6004 -1 -6404 6004 -1 -6005 6005 6 -6006 6005 -1 -6025 6005 -1 -6405 6005 -1 -6006 6006 6 -6007 6006 -1 -6026 6006 -1 -6406 6006 -1 -6007 6007 6 -6008 6007 -1 -6027 6007 -1 -6407 6007 -1 -6008 6008 6 -6009 6008 -1 -6028 6008 -1 -6408 6008 -1 -6009 6009 6 -6010 6009 -1 -6029 6009 -1 -6409 6009 -1 -6010 6010 6 -6011 6010 -1 -6030 6010 -1 -6410 6010 -1 -6011 6011 6 -6012 6011 -1 -6031 6011 -1 -6411 6011 -1 -6012 6012 6 -6013 6012 -1 -6032 6012 -1 -6412 6012 -1 -6013 6013 6 -6014 6013 -1 -6033 6013 -1 -6413 6013 -1 -6014 6014 6 -6015 6014 -1 -6034 6014 -1 -6414 6014 -1 -6015 6015 6 -6016 6015 -1 -6035 6015 -1 -6415 6015 -1 -6016 6016 6 -6017 6016 -1 -6036 6016 -1 -6416 6016 -1 -6017 6017 6 -6018 6017 -1 -6037 6017 -1 -6417 6017 -1 -6018 6018 6 -6019 6018 -1 -6038 6018 -1 -6418 6018 -1 -6019 6019 6 -6020 6019 -1 -6039 6019 -1 -6419 6019 -1 -6020 6020 6 -6040 6020 -1 -6420 6020 -1 -6021 6021 6 -6022 6021 -1 -6041 6021 -1 -6421 6021 -1 -6022 6022 6 -6023 6022 -1 -6042 6022 -1 -6422 6022 -1 -6023 6023 6 -6024 6023 -1 -6043 6023 -1 -6423 6023 -1 -6024 6024 6 -6025 6024 -1 -6044 6024 -1 -6424 6024 -1 -6025 6025 6 -6026 6025 -1 -6045 6025 -1 -6425 6025 -1 -6026 6026 6 -6027 6026 -1 -6046 6026 -1 -6426 6026 -1 -6027 6027 6 -6028 6027 -1 -6047 6027 -1 -6427 6027 -1 -6028 6028 6 -6029 6028 -1 -6048 6028 -1 -6428 6028 -1 -6029 6029 6 -6030 6029 -1 -6049 6029 -1 -6429 6029 -1 -6030 6030 6 -6031 6030 -1 -6050 6030 -1 -6430 6030 -1 -6031 6031 6 -6032 6031 -1 -6051 6031 -1 -6431 6031 -1 -6032 6032 6 -6033 6032 -1 -6052 6032 -1 -6432 6032 -1 -6033 6033 6 -6034 6033 -1 -6053 6033 -1 -6433 6033 -1 -6034 6034 6 -6035 6034 -1 -6054 6034 -1 -6434 6034 -1 -6035 6035 6 -6036 6035 -1 -6055 6035 -1 -6435 6035 -1 -6036 6036 6 -6037 6036 -1 -6056 6036 -1 -6436 6036 -1 -6037 6037 6 -6038 6037 -1 -6057 6037 -1 -6437 6037 -1 -6038 6038 6 -6039 6038 -1 -6058 6038 -1 -6438 6038 -1 -6039 6039 6 -6040 6039 -1 -6059 6039 -1 -6439 6039 -1 -6040 6040 6 -6060 6040 -1 -6440 6040 -1 -6041 6041 6 -6042 6041 -1 -6061 6041 -1 -6441 6041 -1 -6042 6042 6 -6043 6042 -1 -6062 6042 -1 -6442 6042 -1 -6043 6043 6 -6044 6043 -1 -6063 6043 -1 -6443 6043 -1 -6044 6044 6 -6045 6044 -1 -6064 6044 -1 -6444 6044 -1 -6045 6045 6 -6046 6045 -1 -6065 6045 -1 -6445 6045 -1 -6046 6046 6 -6047 6046 -1 -6066 6046 -1 -6446 6046 -1 -6047 6047 6 -6048 6047 -1 -6067 6047 -1 -6447 6047 -1 -6048 6048 6 -6049 6048 -1 -6068 6048 -1 -6448 6048 -1 -6049 6049 6 -6050 6049 -1 -6069 6049 -1 -6449 6049 -1 -6050 6050 6 -6051 6050 -1 -6070 6050 -1 -6450 6050 -1 -6051 6051 6 -6052 6051 -1 -6071 6051 -1 -6451 6051 -1 -6052 6052 6 -6053 6052 -1 -6072 6052 -1 -6452 6052 -1 -6053 6053 6 -6054 6053 -1 -6073 6053 -1 -6453 6053 -1 -6054 6054 6 -6055 6054 -1 -6074 6054 -1 -6454 6054 -1 -6055 6055 6 -6056 6055 -1 -6075 6055 -1 -6455 6055 -1 -6056 6056 6 -6057 6056 -1 -6076 6056 -1 -6456 6056 -1 -6057 6057 6 -6058 6057 -1 -6077 6057 -1 -6457 6057 -1 -6058 6058 6 -6059 6058 -1 -6078 6058 -1 -6458 6058 -1 -6059 6059 6 -6060 6059 -1 -6079 6059 -1 -6459 6059 -1 -6060 6060 6 -6080 6060 -1 -6460 6060 -1 -6061 6061 6 -6062 6061 -1 -6081 6061 -1 -6461 6061 -1 -6062 6062 6 -6063 6062 -1 -6082 6062 -1 -6462 6062 -1 -6063 6063 6 -6064 6063 -1 -6083 6063 -1 -6463 6063 -1 -6064 6064 6 -6065 6064 -1 -6084 6064 -1 -6464 6064 -1 -6065 6065 6 -6066 6065 -1 -6085 6065 -1 -6465 6065 -1 -6066 6066 6 -6067 6066 -1 -6086 6066 -1 -6466 6066 -1 -6067 6067 6 -6068 6067 -1 -6087 6067 -1 -6467 6067 -1 -6068 6068 6 -6069 6068 -1 -6088 6068 -1 -6468 6068 -1 -6069 6069 6 -6070 6069 -1 -6089 6069 -1 -6469 6069 -1 -6070 6070 6 -6071 6070 -1 -6090 6070 -1 -6470 6070 -1 -6071 6071 6 -6072 6071 -1 -6091 6071 -1 -6471 6071 -1 -6072 6072 6 -6073 6072 -1 -6092 6072 -1 -6472 6072 -1 -6073 6073 6 -6074 6073 -1 -6093 6073 -1 -6473 6073 -1 -6074 6074 6 -6075 6074 -1 -6094 6074 -1 -6474 6074 -1 -6075 6075 6 -6076 6075 -1 -6095 6075 -1 -6475 6075 -1 -6076 6076 6 -6077 6076 -1 -6096 6076 -1 -6476 6076 -1 -6077 6077 6 -6078 6077 -1 -6097 6077 -1 -6477 6077 -1 -6078 6078 6 -6079 6078 -1 -6098 6078 -1 -6478 6078 -1 -6079 6079 6 -6080 6079 -1 -6099 6079 -1 -6479 6079 -1 -6080 6080 6 -6100 6080 -1 -6480 6080 -1 -6081 6081 6 -6082 6081 -1 -6101 6081 -1 -6481 6081 -1 -6082 6082 6 -6083 6082 -1 -6102 6082 -1 -6482 6082 -1 -6083 6083 6 -6084 6083 -1 -6103 6083 -1 -6483 6083 -1 -6084 6084 6 -6085 6084 -1 -6104 6084 -1 -6484 6084 -1 -6085 6085 6 -6086 6085 -1 -6105 6085 -1 -6485 6085 -1 -6086 6086 6 -6087 6086 -1 -6106 6086 -1 -6486 6086 -1 -6087 6087 6 -6088 6087 -1 -6107 6087 -1 -6487 6087 -1 -6088 6088 6 -6089 6088 -1 -6108 6088 -1 -6488 6088 -1 -6089 6089 6 -6090 6089 -1 -6109 6089 -1 -6489 6089 -1 -6090 6090 6 -6091 6090 -1 -6110 6090 -1 -6490 6090 -1 -6091 6091 6 -6092 6091 -1 -6111 6091 -1 -6491 6091 -1 -6092 6092 6 -6093 6092 -1 -6112 6092 -1 -6492 6092 -1 -6093 6093 6 -6094 6093 -1 -6113 6093 -1 -6493 6093 -1 -6094 6094 6 -6095 6094 -1 -6114 6094 -1 -6494 6094 -1 -6095 6095 6 -6096 6095 -1 -6115 6095 -1 -6495 6095 -1 -6096 6096 6 -6097 6096 -1 -6116 6096 -1 -6496 6096 -1 -6097 6097 6 -6098 6097 -1 -6117 6097 -1 -6497 6097 -1 -6098 6098 6 -6099 6098 -1 -6118 6098 -1 -6498 6098 -1 -6099 6099 6 -6100 6099 -1 -6119 6099 -1 -6499 6099 -1 -6100 6100 6 -6120 6100 -1 -6500 6100 -1 -6101 6101 6 -6102 6101 -1 -6121 6101 -1 -6501 6101 -1 -6102 6102 6 -6103 6102 -1 -6122 6102 -1 -6502 6102 -1 -6103 6103 6 -6104 6103 -1 -6123 6103 -1 -6503 6103 -1 -6104 6104 6 -6105 6104 -1 -6124 6104 -1 -6504 6104 -1 -6105 6105 6 -6106 6105 -1 -6125 6105 -1 -6505 6105 -1 -6106 6106 6 -6107 6106 -1 -6126 6106 -1 -6506 6106 -1 -6107 6107 6 -6108 6107 -1 -6127 6107 -1 -6507 6107 -1 -6108 6108 6 -6109 6108 -1 -6128 6108 -1 -6508 6108 -1 -6109 6109 6 -6110 6109 -1 -6129 6109 -1 -6509 6109 -1 -6110 6110 6 -6111 6110 -1 -6130 6110 -1 -6510 6110 -1 -6111 6111 6 -6112 6111 -1 -6131 6111 -1 -6511 6111 -1 -6112 6112 6 -6113 6112 -1 -6132 6112 -1 -6512 6112 -1 -6113 6113 6 -6114 6113 -1 -6133 6113 -1 -6513 6113 -1 -6114 6114 6 -6115 6114 -1 -6134 6114 -1 -6514 6114 -1 -6115 6115 6 -6116 6115 -1 -6135 6115 -1 -6515 6115 -1 -6116 6116 6 -6117 6116 -1 -6136 6116 -1 -6516 6116 -1 -6117 6117 6 -6118 6117 -1 -6137 6117 -1 -6517 6117 -1 -6118 6118 6 -6119 6118 -1 -6138 6118 -1 -6518 6118 -1 -6119 6119 6 -6120 6119 -1 -6139 6119 -1 -6519 6119 -1 -6120 6120 6 -6140 6120 -1 -6520 6120 -1 -6121 6121 6 -6122 6121 -1 -6141 6121 -1 -6521 6121 -1 -6122 6122 6 -6123 6122 -1 -6142 6122 -1 -6522 6122 -1 -6123 6123 6 -6124 6123 -1 -6143 6123 -1 -6523 6123 -1 -6124 6124 6 -6125 6124 -1 -6144 6124 -1 -6524 6124 -1 -6125 6125 6 -6126 6125 -1 -6145 6125 -1 -6525 6125 -1 -6126 6126 6 -6127 6126 -1 -6146 6126 -1 -6526 6126 -1 -6127 6127 6 -6128 6127 -1 -6147 6127 -1 -6527 6127 -1 -6128 6128 6 -6129 6128 -1 -6148 6128 -1 -6528 6128 -1 -6129 6129 6 -6130 6129 -1 -6149 6129 -1 -6529 6129 -1 -6130 6130 6 -6131 6130 -1 -6150 6130 -1 -6530 6130 -1 -6131 6131 6 -6132 6131 -1 -6151 6131 -1 -6531 6131 -1 -6132 6132 6 -6133 6132 -1 -6152 6132 -1 -6532 6132 -1 -6133 6133 6 -6134 6133 -1 -6153 6133 -1 -6533 6133 -1 -6134 6134 6 -6135 6134 -1 -6154 6134 -1 -6534 6134 -1 -6135 6135 6 -6136 6135 -1 -6155 6135 -1 -6535 6135 -1 -6136 6136 6 -6137 6136 -1 -6156 6136 -1 -6536 6136 -1 -6137 6137 6 -6138 6137 -1 -6157 6137 -1 -6537 6137 -1 -6138 6138 6 -6139 6138 -1 -6158 6138 -1 -6538 6138 -1 -6139 6139 6 -6140 6139 -1 -6159 6139 -1 -6539 6139 -1 -6140 6140 6 -6160 6140 -1 -6540 6140 -1 -6141 6141 6 -6142 6141 -1 -6161 6141 -1 -6541 6141 -1 -6142 6142 6 -6143 6142 -1 -6162 6142 -1 -6542 6142 -1 -6143 6143 6 -6144 6143 -1 -6163 6143 -1 -6543 6143 -1 -6144 6144 6 -6145 6144 -1 -6164 6144 -1 -6544 6144 -1 -6145 6145 6 -6146 6145 -1 -6165 6145 -1 -6545 6145 -1 -6146 6146 6 -6147 6146 -1 -6166 6146 -1 -6546 6146 -1 -6147 6147 6 -6148 6147 -1 -6167 6147 -1 -6547 6147 -1 -6148 6148 6 -6149 6148 -1 -6168 6148 -1 -6548 6148 -1 -6149 6149 6 -6150 6149 -1 -6169 6149 -1 -6549 6149 -1 -6150 6150 6 -6151 6150 -1 -6170 6150 -1 -6550 6150 -1 -6151 6151 6 -6152 6151 -1 -6171 6151 -1 -6551 6151 -1 -6152 6152 6 -6153 6152 -1 -6172 6152 -1 -6552 6152 -1 -6153 6153 6 -6154 6153 -1 -6173 6153 -1 -6553 6153 -1 -6154 6154 6 -6155 6154 -1 -6174 6154 -1 -6554 6154 -1 -6155 6155 6 -6156 6155 -1 -6175 6155 -1 -6555 6155 -1 -6156 6156 6 -6157 6156 -1 -6176 6156 -1 -6556 6156 -1 -6157 6157 6 -6158 6157 -1 -6177 6157 -1 -6557 6157 -1 -6158 6158 6 -6159 6158 -1 -6178 6158 -1 -6558 6158 -1 -6159 6159 6 -6160 6159 -1 -6179 6159 -1 -6559 6159 -1 -6160 6160 6 -6180 6160 -1 -6560 6160 -1 -6161 6161 6 -6162 6161 -1 -6181 6161 -1 -6561 6161 -1 -6162 6162 6 -6163 6162 -1 -6182 6162 -1 -6562 6162 -1 -6163 6163 6 -6164 6163 -1 -6183 6163 -1 -6563 6163 -1 -6164 6164 6 -6165 6164 -1 -6184 6164 -1 -6564 6164 -1 -6165 6165 6 -6166 6165 -1 -6185 6165 -1 -6565 6165 -1 -6166 6166 6 -6167 6166 -1 -6186 6166 -1 -6566 6166 -1 -6167 6167 6 -6168 6167 -1 -6187 6167 -1 -6567 6167 -1 -6168 6168 6 -6169 6168 -1 -6188 6168 -1 -6568 6168 -1 -6169 6169 6 -6170 6169 -1 -6189 6169 -1 -6569 6169 -1 -6170 6170 6 -6171 6170 -1 -6190 6170 -1 -6570 6170 -1 -6171 6171 6 -6172 6171 -1 -6191 6171 -1 -6571 6171 -1 -6172 6172 6 -6173 6172 -1 -6192 6172 -1 -6572 6172 -1 -6173 6173 6 -6174 6173 -1 -6193 6173 -1 -6573 6173 -1 -6174 6174 6 -6175 6174 -1 -6194 6174 -1 -6574 6174 -1 -6175 6175 6 -6176 6175 -1 -6195 6175 -1 -6575 6175 -1 -6176 6176 6 -6177 6176 -1 -6196 6176 -1 -6576 6176 -1 -6177 6177 6 -6178 6177 -1 -6197 6177 -1 -6577 6177 -1 -6178 6178 6 -6179 6178 -1 -6198 6178 -1 -6578 6178 -1 -6179 6179 6 -6180 6179 -1 -6199 6179 -1 -6579 6179 -1 -6180 6180 6 -6200 6180 -1 -6580 6180 -1 -6181 6181 6 -6182 6181 -1 -6201 6181 -1 -6581 6181 -1 -6182 6182 6 -6183 6182 -1 -6202 6182 -1 -6582 6182 -1 -6183 6183 6 -6184 6183 -1 -6203 6183 -1 -6583 6183 -1 -6184 6184 6 -6185 6184 -1 -6204 6184 -1 -6584 6184 -1 -6185 6185 6 -6186 6185 -1 -6205 6185 -1 -6585 6185 -1 -6186 6186 6 -6187 6186 -1 -6206 6186 -1 -6586 6186 -1 -6187 6187 6 -6188 6187 -1 -6207 6187 -1 -6587 6187 -1 -6188 6188 6 -6189 6188 -1 -6208 6188 -1 -6588 6188 -1 -6189 6189 6 -6190 6189 -1 -6209 6189 -1 -6589 6189 -1 -6190 6190 6 -6191 6190 -1 -6210 6190 -1 -6590 6190 -1 -6191 6191 6 -6192 6191 -1 -6211 6191 -1 -6591 6191 -1 -6192 6192 6 -6193 6192 -1 -6212 6192 -1 -6592 6192 -1 -6193 6193 6 -6194 6193 -1 -6213 6193 -1 -6593 6193 -1 -6194 6194 6 -6195 6194 -1 -6214 6194 -1 -6594 6194 -1 -6195 6195 6 -6196 6195 -1 -6215 6195 -1 -6595 6195 -1 -6196 6196 6 -6197 6196 -1 -6216 6196 -1 -6596 6196 -1 -6197 6197 6 -6198 6197 -1 -6217 6197 -1 -6597 6197 -1 -6198 6198 6 -6199 6198 -1 -6218 6198 -1 -6598 6198 -1 -6199 6199 6 -6200 6199 -1 -6219 6199 -1 -6599 6199 -1 -6200 6200 6 -6220 6200 -1 -6600 6200 -1 -6201 6201 6 -6202 6201 -1 -6221 6201 -1 -6601 6201 -1 -6202 6202 6 -6203 6202 -1 -6222 6202 -1 -6602 6202 -1 -6203 6203 6 -6204 6203 -1 -6223 6203 -1 -6603 6203 -1 -6204 6204 6 -6205 6204 -1 -6224 6204 -1 -6604 6204 -1 -6205 6205 6 -6206 6205 -1 -6225 6205 -1 -6605 6205 -1 -6206 6206 6 -6207 6206 -1 -6226 6206 -1 -6606 6206 -1 -6207 6207 6 -6208 6207 -1 -6227 6207 -1 -6607 6207 -1 -6208 6208 6 -6209 6208 -1 -6228 6208 -1 -6608 6208 -1 -6209 6209 6 -6210 6209 -1 -6229 6209 -1 -6609 6209 -1 -6210 6210 6 -6211 6210 -1 -6230 6210 -1 -6610 6210 -1 -6211 6211 6 -6212 6211 -1 -6231 6211 -1 -6611 6211 -1 -6212 6212 6 -6213 6212 -1 -6232 6212 -1 -6612 6212 -1 -6213 6213 6 -6214 6213 -1 -6233 6213 -1 -6613 6213 -1 -6214 6214 6 -6215 6214 -1 -6234 6214 -1 -6614 6214 -1 -6215 6215 6 -6216 6215 -1 -6235 6215 -1 -6615 6215 -1 -6216 6216 6 -6217 6216 -1 -6236 6216 -1 -6616 6216 -1 -6217 6217 6 -6218 6217 -1 -6237 6217 -1 -6617 6217 -1 -6218 6218 6 -6219 6218 -1 -6238 6218 -1 -6618 6218 -1 -6219 6219 6 -6220 6219 -1 -6239 6219 -1 -6619 6219 -1 -6220 6220 6 -6240 6220 -1 -6620 6220 -1 -6221 6221 6 -6222 6221 -1 -6241 6221 -1 -6621 6221 -1 -6222 6222 6 -6223 6222 -1 -6242 6222 -1 -6622 6222 -1 -6223 6223 6 -6224 6223 -1 -6243 6223 -1 -6623 6223 -1 -6224 6224 6 -6225 6224 -1 -6244 6224 -1 -6624 6224 -1 -6225 6225 6 -6226 6225 -1 -6245 6225 -1 -6625 6225 -1 -6226 6226 6 -6227 6226 -1 -6246 6226 -1 -6626 6226 -1 -6227 6227 6 -6228 6227 -1 -6247 6227 -1 -6627 6227 -1 -6228 6228 6 -6229 6228 -1 -6248 6228 -1 -6628 6228 -1 -6229 6229 6 -6230 6229 -1 -6249 6229 -1 -6629 6229 -1 -6230 6230 6 -6231 6230 -1 -6250 6230 -1 -6630 6230 -1 -6231 6231 6 -6232 6231 -1 -6251 6231 -1 -6631 6231 -1 -6232 6232 6 -6233 6232 -1 -6252 6232 -1 -6632 6232 -1 -6233 6233 6 -6234 6233 -1 -6253 6233 -1 -6633 6233 -1 -6234 6234 6 -6235 6234 -1 -6254 6234 -1 -6634 6234 -1 -6235 6235 6 -6236 6235 -1 -6255 6235 -1 -6635 6235 -1 -6236 6236 6 -6237 6236 -1 -6256 6236 -1 -6636 6236 -1 -6237 6237 6 -6238 6237 -1 -6257 6237 -1 -6637 6237 -1 -6238 6238 6 -6239 6238 -1 -6258 6238 -1 -6638 6238 -1 -6239 6239 6 -6240 6239 -1 -6259 6239 -1 -6639 6239 -1 -6240 6240 6 -6260 6240 -1 -6640 6240 -1 -6241 6241 6 -6242 6241 -1 -6261 6241 -1 -6641 6241 -1 -6242 6242 6 -6243 6242 -1 -6262 6242 -1 -6642 6242 -1 -6243 6243 6 -6244 6243 -1 -6263 6243 -1 -6643 6243 -1 -6244 6244 6 -6245 6244 -1 -6264 6244 -1 -6644 6244 -1 -6245 6245 6 -6246 6245 -1 -6265 6245 -1 -6645 6245 -1 -6246 6246 6 -6247 6246 -1 -6266 6246 -1 -6646 6246 -1 -6247 6247 6 -6248 6247 -1 -6267 6247 -1 -6647 6247 -1 -6248 6248 6 -6249 6248 -1 -6268 6248 -1 -6648 6248 -1 -6249 6249 6 -6250 6249 -1 -6269 6249 -1 -6649 6249 -1 -6250 6250 6 -6251 6250 -1 -6270 6250 -1 -6650 6250 -1 -6251 6251 6 -6252 6251 -1 -6271 6251 -1 -6651 6251 -1 -6252 6252 6 -6253 6252 -1 -6272 6252 -1 -6652 6252 -1 -6253 6253 6 -6254 6253 -1 -6273 6253 -1 -6653 6253 -1 -6254 6254 6 -6255 6254 -1 -6274 6254 -1 -6654 6254 -1 -6255 6255 6 -6256 6255 -1 -6275 6255 -1 -6655 6255 -1 -6256 6256 6 -6257 6256 -1 -6276 6256 -1 -6656 6256 -1 -6257 6257 6 -6258 6257 -1 -6277 6257 -1 -6657 6257 -1 -6258 6258 6 -6259 6258 -1 -6278 6258 -1 -6658 6258 -1 -6259 6259 6 -6260 6259 -1 -6279 6259 -1 -6659 6259 -1 -6260 6260 6 -6280 6260 -1 -6660 6260 -1 -6261 6261 6 -6262 6261 -1 -6281 6261 -1 -6661 6261 -1 -6262 6262 6 -6263 6262 -1 -6282 6262 -1 -6662 6262 -1 -6263 6263 6 -6264 6263 -1 -6283 6263 -1 -6663 6263 -1 -6264 6264 6 -6265 6264 -1 -6284 6264 -1 -6664 6264 -1 -6265 6265 6 -6266 6265 -1 -6285 6265 -1 -6665 6265 -1 -6266 6266 6 -6267 6266 -1 -6286 6266 -1 -6666 6266 -1 -6267 6267 6 -6268 6267 -1 -6287 6267 -1 -6667 6267 -1 -6268 6268 6 -6269 6268 -1 -6288 6268 -1 -6668 6268 -1 -6269 6269 6 -6270 6269 -1 -6289 6269 -1 -6669 6269 -1 -6270 6270 6 -6271 6270 -1 -6290 6270 -1 -6670 6270 -1 -6271 6271 6 -6272 6271 -1 -6291 6271 -1 -6671 6271 -1 -6272 6272 6 -6273 6272 -1 -6292 6272 -1 -6672 6272 -1 -6273 6273 6 -6274 6273 -1 -6293 6273 -1 -6673 6273 -1 -6274 6274 6 -6275 6274 -1 -6294 6274 -1 -6674 6274 -1 -6275 6275 6 -6276 6275 -1 -6295 6275 -1 -6675 6275 -1 -6276 6276 6 -6277 6276 -1 -6296 6276 -1 -6676 6276 -1 -6277 6277 6 -6278 6277 -1 -6297 6277 -1 -6677 6277 -1 -6278 6278 6 -6279 6278 -1 -6298 6278 -1 -6678 6278 -1 -6279 6279 6 -6280 6279 -1 -6299 6279 -1 -6679 6279 -1 -6280 6280 6 -6300 6280 -1 -6680 6280 -1 -6281 6281 6 -6282 6281 -1 -6301 6281 -1 -6681 6281 -1 -6282 6282 6 -6283 6282 -1 -6302 6282 -1 -6682 6282 -1 -6283 6283 6 -6284 6283 -1 -6303 6283 -1 -6683 6283 -1 -6284 6284 6 -6285 6284 -1 -6304 6284 -1 -6684 6284 -1 -6285 6285 6 -6286 6285 -1 -6305 6285 -1 -6685 6285 -1 -6286 6286 6 -6287 6286 -1 -6306 6286 -1 -6686 6286 -1 -6287 6287 6 -6288 6287 -1 -6307 6287 -1 -6687 6287 -1 -6288 6288 6 -6289 6288 -1 -6308 6288 -1 -6688 6288 -1 -6289 6289 6 -6290 6289 -1 -6309 6289 -1 -6689 6289 -1 -6290 6290 6 -6291 6290 -1 -6310 6290 -1 -6690 6290 -1 -6291 6291 6 -6292 6291 -1 -6311 6291 -1 -6691 6291 -1 -6292 6292 6 -6293 6292 -1 -6312 6292 -1 -6692 6292 -1 -6293 6293 6 -6294 6293 -1 -6313 6293 -1 -6693 6293 -1 -6294 6294 6 -6295 6294 -1 -6314 6294 -1 -6694 6294 -1 -6295 6295 6 -6296 6295 -1 -6315 6295 -1 -6695 6295 -1 -6296 6296 6 -6297 6296 -1 -6316 6296 -1 -6696 6296 -1 -6297 6297 6 -6298 6297 -1 -6317 6297 -1 -6697 6297 -1 -6298 6298 6 -6299 6298 -1 -6318 6298 -1 -6698 6298 -1 -6299 6299 6 -6300 6299 -1 -6319 6299 -1 -6699 6299 -1 -6300 6300 6 -6320 6300 -1 -6700 6300 -1 -6301 6301 6 -6302 6301 -1 -6321 6301 -1 -6701 6301 -1 -6302 6302 6 -6303 6302 -1 -6322 6302 -1 -6702 6302 -1 -6303 6303 6 -6304 6303 -1 -6323 6303 -1 -6703 6303 -1 -6304 6304 6 -6305 6304 -1 -6324 6304 -1 -6704 6304 -1 -6305 6305 6 -6306 6305 -1 -6325 6305 -1 -6705 6305 -1 -6306 6306 6 -6307 6306 -1 -6326 6306 -1 -6706 6306 -1 -6307 6307 6 -6308 6307 -1 -6327 6307 -1 -6707 6307 -1 -6308 6308 6 -6309 6308 -1 -6328 6308 -1 -6708 6308 -1 -6309 6309 6 -6310 6309 -1 -6329 6309 -1 -6709 6309 -1 -6310 6310 6 -6311 6310 -1 -6330 6310 -1 -6710 6310 -1 -6311 6311 6 -6312 6311 -1 -6331 6311 -1 -6711 6311 -1 -6312 6312 6 -6313 6312 -1 -6332 6312 -1 -6712 6312 -1 -6313 6313 6 -6314 6313 -1 -6333 6313 -1 -6713 6313 -1 -6314 6314 6 -6315 6314 -1 -6334 6314 -1 -6714 6314 -1 -6315 6315 6 -6316 6315 -1 -6335 6315 -1 -6715 6315 -1 -6316 6316 6 -6317 6316 -1 -6336 6316 -1 -6716 6316 -1 -6317 6317 6 -6318 6317 -1 -6337 6317 -1 -6717 6317 -1 -6318 6318 6 -6319 6318 -1 -6338 6318 -1 -6718 6318 -1 -6319 6319 6 -6320 6319 -1 -6339 6319 -1 -6719 6319 -1 -6320 6320 6 -6340 6320 -1 -6720 6320 -1 -6321 6321 6 -6322 6321 -1 -6341 6321 -1 -6721 6321 -1 -6322 6322 6 -6323 6322 -1 -6342 6322 -1 -6722 6322 -1 -6323 6323 6 -6324 6323 -1 -6343 6323 -1 -6723 6323 -1 -6324 6324 6 -6325 6324 -1 -6344 6324 -1 -6724 6324 -1 -6325 6325 6 -6326 6325 -1 -6345 6325 -1 -6725 6325 -1 -6326 6326 6 -6327 6326 -1 -6346 6326 -1 -6726 6326 -1 -6327 6327 6 -6328 6327 -1 -6347 6327 -1 -6727 6327 -1 -6328 6328 6 -6329 6328 -1 -6348 6328 -1 -6728 6328 -1 -6329 6329 6 -6330 6329 -1 -6349 6329 -1 -6729 6329 -1 -6330 6330 6 -6331 6330 -1 -6350 6330 -1 -6730 6330 -1 -6331 6331 6 -6332 6331 -1 -6351 6331 -1 -6731 6331 -1 -6332 6332 6 -6333 6332 -1 -6352 6332 -1 -6732 6332 -1 -6333 6333 6 -6334 6333 -1 -6353 6333 -1 -6733 6333 -1 -6334 6334 6 -6335 6334 -1 -6354 6334 -1 -6734 6334 -1 -6335 6335 6 -6336 6335 -1 -6355 6335 -1 -6735 6335 -1 -6336 6336 6 -6337 6336 -1 -6356 6336 -1 -6736 6336 -1 -6337 6337 6 -6338 6337 -1 -6357 6337 -1 -6737 6337 -1 -6338 6338 6 -6339 6338 -1 -6358 6338 -1 -6738 6338 -1 -6339 6339 6 -6340 6339 -1 -6359 6339 -1 -6739 6339 -1 -6340 6340 6 -6360 6340 -1 -6740 6340 -1 -6341 6341 6 -6342 6341 -1 -6361 6341 -1 -6741 6341 -1 -6342 6342 6 -6343 6342 -1 -6362 6342 -1 -6742 6342 -1 -6343 6343 6 -6344 6343 -1 -6363 6343 -1 -6743 6343 -1 -6344 6344 6 -6345 6344 -1 -6364 6344 -1 -6744 6344 -1 -6345 6345 6 -6346 6345 -1 -6365 6345 -1 -6745 6345 -1 -6346 6346 6 -6347 6346 -1 -6366 6346 -1 -6746 6346 -1 -6347 6347 6 -6348 6347 -1 -6367 6347 -1 -6747 6347 -1 -6348 6348 6 -6349 6348 -1 -6368 6348 -1 -6748 6348 -1 -6349 6349 6 -6350 6349 -1 -6369 6349 -1 -6749 6349 -1 -6350 6350 6 -6351 6350 -1 -6370 6350 -1 -6750 6350 -1 -6351 6351 6 -6352 6351 -1 -6371 6351 -1 -6751 6351 -1 -6352 6352 6 -6353 6352 -1 -6372 6352 -1 -6752 6352 -1 -6353 6353 6 -6354 6353 -1 -6373 6353 -1 -6753 6353 -1 -6354 6354 6 -6355 6354 -1 -6374 6354 -1 -6754 6354 -1 -6355 6355 6 -6356 6355 -1 -6375 6355 -1 -6755 6355 -1 -6356 6356 6 -6357 6356 -1 -6376 6356 -1 -6756 6356 -1 -6357 6357 6 -6358 6357 -1 -6377 6357 -1 -6757 6357 -1 -6358 6358 6 -6359 6358 -1 -6378 6358 -1 -6758 6358 -1 -6359 6359 6 -6360 6359 -1 -6379 6359 -1 -6759 6359 -1 -6360 6360 6 -6380 6360 -1 -6760 6360 -1 -6361 6361 6 -6362 6361 -1 -6381 6361 -1 -6761 6361 -1 -6362 6362 6 -6363 6362 -1 -6382 6362 -1 -6762 6362 -1 -6363 6363 6 -6364 6363 -1 -6383 6363 -1 -6763 6363 -1 -6364 6364 6 -6365 6364 -1 -6384 6364 -1 -6764 6364 -1 -6365 6365 6 -6366 6365 -1 -6385 6365 -1 -6765 6365 -1 -6366 6366 6 -6367 6366 -1 -6386 6366 -1 -6766 6366 -1 -6367 6367 6 -6368 6367 -1 -6387 6367 -1 -6767 6367 -1 -6368 6368 6 -6369 6368 -1 -6388 6368 -1 -6768 6368 -1 -6369 6369 6 -6370 6369 -1 -6389 6369 -1 -6769 6369 -1 -6370 6370 6 -6371 6370 -1 -6390 6370 -1 -6770 6370 -1 -6371 6371 6 -6372 6371 -1 -6391 6371 -1 -6771 6371 -1 -6372 6372 6 -6373 6372 -1 -6392 6372 -1 -6772 6372 -1 -6373 6373 6 -6374 6373 -1 -6393 6373 -1 -6773 6373 -1 -6374 6374 6 -6375 6374 -1 -6394 6374 -1 -6774 6374 -1 -6375 6375 6 -6376 6375 -1 -6395 6375 -1 -6775 6375 -1 -6376 6376 6 -6377 6376 -1 -6396 6376 -1 -6776 6376 -1 -6377 6377 6 -6378 6377 -1 -6397 6377 -1 -6777 6377 -1 -6378 6378 6 -6379 6378 -1 -6398 6378 -1 -6778 6378 -1 -6379 6379 6 -6380 6379 -1 -6399 6379 -1 -6779 6379 -1 -6380 6380 6 -6400 6380 -1 -6780 6380 -1 -6381 6381 6 -6382 6381 -1 -6781 6381 -1 -6382 6382 6 -6383 6382 -1 -6782 6382 -1 -6383 6383 6 -6384 6383 -1 -6783 6383 -1 -6384 6384 6 -6385 6384 -1 -6784 6384 -1 -6385 6385 6 -6386 6385 -1 -6785 6385 -1 -6386 6386 6 -6387 6386 -1 -6786 6386 -1 -6387 6387 6 -6388 6387 -1 -6787 6387 -1 -6388 6388 6 -6389 6388 -1 -6788 6388 -1 -6389 6389 6 -6390 6389 -1 -6789 6389 -1 -6390 6390 6 -6391 6390 -1 -6790 6390 -1 -6391 6391 6 -6392 6391 -1 -6791 6391 -1 -6392 6392 6 -6393 6392 -1 -6792 6392 -1 -6393 6393 6 -6394 6393 -1 -6793 6393 -1 -6394 6394 6 -6395 6394 -1 -6794 6394 -1 -6395 6395 6 -6396 6395 -1 -6795 6395 -1 -6396 6396 6 -6397 6396 -1 -6796 6396 -1 -6397 6397 6 -6398 6397 -1 -6797 6397 -1 -6398 6398 6 -6399 6398 -1 -6798 6398 -1 -6399 6399 6 -6400 6399 -1 -6799 6399 -1 -6400 6400 6 -6800 6400 -1 -6401 6401 6 -6402 6401 -1 -6421 6401 -1 -6801 6401 -1 -6402 6402 6 -6403 6402 -1 -6422 6402 -1 -6802 6402 -1 -6403 6403 6 -6404 6403 -1 -6423 6403 -1 -6803 6403 -1 -6404 6404 6 -6405 6404 -1 -6424 6404 -1 -6804 6404 -1 -6405 6405 6 -6406 6405 -1 -6425 6405 -1 -6805 6405 -1 -6406 6406 6 -6407 6406 -1 -6426 6406 -1 -6806 6406 -1 -6407 6407 6 -6408 6407 -1 -6427 6407 -1 -6807 6407 -1 -6408 6408 6 -6409 6408 -1 -6428 6408 -1 -6808 6408 -1 -6409 6409 6 -6410 6409 -1 -6429 6409 -1 -6809 6409 -1 -6410 6410 6 -6411 6410 -1 -6430 6410 -1 -6810 6410 -1 -6411 6411 6 -6412 6411 -1 -6431 6411 -1 -6811 6411 -1 -6412 6412 6 -6413 6412 -1 -6432 6412 -1 -6812 6412 -1 -6413 6413 6 -6414 6413 -1 -6433 6413 -1 -6813 6413 -1 -6414 6414 6 -6415 6414 -1 -6434 6414 -1 -6814 6414 -1 -6415 6415 6 -6416 6415 -1 -6435 6415 -1 -6815 6415 -1 -6416 6416 6 -6417 6416 -1 -6436 6416 -1 -6816 6416 -1 -6417 6417 6 -6418 6417 -1 -6437 6417 -1 -6817 6417 -1 -6418 6418 6 -6419 6418 -1 -6438 6418 -1 -6818 6418 -1 -6419 6419 6 -6420 6419 -1 -6439 6419 -1 -6819 6419 -1 -6420 6420 6 -6440 6420 -1 -6820 6420 -1 -6421 6421 6 -6422 6421 -1 -6441 6421 -1 -6821 6421 -1 -6422 6422 6 -6423 6422 -1 -6442 6422 -1 -6822 6422 -1 -6423 6423 6 -6424 6423 -1 -6443 6423 -1 -6823 6423 -1 -6424 6424 6 -6425 6424 -1 -6444 6424 -1 -6824 6424 -1 -6425 6425 6 -6426 6425 -1 -6445 6425 -1 -6825 6425 -1 -6426 6426 6 -6427 6426 -1 -6446 6426 -1 -6826 6426 -1 -6427 6427 6 -6428 6427 -1 -6447 6427 -1 -6827 6427 -1 -6428 6428 6 -6429 6428 -1 -6448 6428 -1 -6828 6428 -1 -6429 6429 6 -6430 6429 -1 -6449 6429 -1 -6829 6429 -1 -6430 6430 6 -6431 6430 -1 -6450 6430 -1 -6830 6430 -1 -6431 6431 6 -6432 6431 -1 -6451 6431 -1 -6831 6431 -1 -6432 6432 6 -6433 6432 -1 -6452 6432 -1 -6832 6432 -1 -6433 6433 6 -6434 6433 -1 -6453 6433 -1 -6833 6433 -1 -6434 6434 6 -6435 6434 -1 -6454 6434 -1 -6834 6434 -1 -6435 6435 6 -6436 6435 -1 -6455 6435 -1 -6835 6435 -1 -6436 6436 6 -6437 6436 -1 -6456 6436 -1 -6836 6436 -1 -6437 6437 6 -6438 6437 -1 -6457 6437 -1 -6837 6437 -1 -6438 6438 6 -6439 6438 -1 -6458 6438 -1 -6838 6438 -1 -6439 6439 6 -6440 6439 -1 -6459 6439 -1 -6839 6439 -1 -6440 6440 6 -6460 6440 -1 -6840 6440 -1 -6441 6441 6 -6442 6441 -1 -6461 6441 -1 -6841 6441 -1 -6442 6442 6 -6443 6442 -1 -6462 6442 -1 -6842 6442 -1 -6443 6443 6 -6444 6443 -1 -6463 6443 -1 -6843 6443 -1 -6444 6444 6 -6445 6444 -1 -6464 6444 -1 -6844 6444 -1 -6445 6445 6 -6446 6445 -1 -6465 6445 -1 -6845 6445 -1 -6446 6446 6 -6447 6446 -1 -6466 6446 -1 -6846 6446 -1 -6447 6447 6 -6448 6447 -1 -6467 6447 -1 -6847 6447 -1 -6448 6448 6 -6449 6448 -1 -6468 6448 -1 -6848 6448 -1 -6449 6449 6 -6450 6449 -1 -6469 6449 -1 -6849 6449 -1 -6450 6450 6 -6451 6450 -1 -6470 6450 -1 -6850 6450 -1 -6451 6451 6 -6452 6451 -1 -6471 6451 -1 -6851 6451 -1 -6452 6452 6 -6453 6452 -1 -6472 6452 -1 -6852 6452 -1 -6453 6453 6 -6454 6453 -1 -6473 6453 -1 -6853 6453 -1 -6454 6454 6 -6455 6454 -1 -6474 6454 -1 -6854 6454 -1 -6455 6455 6 -6456 6455 -1 -6475 6455 -1 -6855 6455 -1 -6456 6456 6 -6457 6456 -1 -6476 6456 -1 -6856 6456 -1 -6457 6457 6 -6458 6457 -1 -6477 6457 -1 -6857 6457 -1 -6458 6458 6 -6459 6458 -1 -6478 6458 -1 -6858 6458 -1 -6459 6459 6 -6460 6459 -1 -6479 6459 -1 -6859 6459 -1 -6460 6460 6 -6480 6460 -1 -6860 6460 -1 -6461 6461 6 -6462 6461 -1 -6481 6461 -1 -6861 6461 -1 -6462 6462 6 -6463 6462 -1 -6482 6462 -1 -6862 6462 -1 -6463 6463 6 -6464 6463 -1 -6483 6463 -1 -6863 6463 -1 -6464 6464 6 -6465 6464 -1 -6484 6464 -1 -6864 6464 -1 -6465 6465 6 -6466 6465 -1 -6485 6465 -1 -6865 6465 -1 -6466 6466 6 -6467 6466 -1 -6486 6466 -1 -6866 6466 -1 -6467 6467 6 -6468 6467 -1 -6487 6467 -1 -6867 6467 -1 -6468 6468 6 -6469 6468 -1 -6488 6468 -1 -6868 6468 -1 -6469 6469 6 -6470 6469 -1 -6489 6469 -1 -6869 6469 -1 -6470 6470 6 -6471 6470 -1 -6490 6470 -1 -6870 6470 -1 -6471 6471 6 -6472 6471 -1 -6491 6471 -1 -6871 6471 -1 -6472 6472 6 -6473 6472 -1 -6492 6472 -1 -6872 6472 -1 -6473 6473 6 -6474 6473 -1 -6493 6473 -1 -6873 6473 -1 -6474 6474 6 -6475 6474 -1 -6494 6474 -1 -6874 6474 -1 -6475 6475 6 -6476 6475 -1 -6495 6475 -1 -6875 6475 -1 -6476 6476 6 -6477 6476 -1 -6496 6476 -1 -6876 6476 -1 -6477 6477 6 -6478 6477 -1 -6497 6477 -1 -6877 6477 -1 -6478 6478 6 -6479 6478 -1 -6498 6478 -1 -6878 6478 -1 -6479 6479 6 -6480 6479 -1 -6499 6479 -1 -6879 6479 -1 -6480 6480 6 -6500 6480 -1 -6880 6480 -1 -6481 6481 6 -6482 6481 -1 -6501 6481 -1 -6881 6481 -1 -6482 6482 6 -6483 6482 -1 -6502 6482 -1 -6882 6482 -1 -6483 6483 6 -6484 6483 -1 -6503 6483 -1 -6883 6483 -1 -6484 6484 6 -6485 6484 -1 -6504 6484 -1 -6884 6484 -1 -6485 6485 6 -6486 6485 -1 -6505 6485 -1 -6885 6485 -1 -6486 6486 6 -6487 6486 -1 -6506 6486 -1 -6886 6486 -1 -6487 6487 6 -6488 6487 -1 -6507 6487 -1 -6887 6487 -1 -6488 6488 6 -6489 6488 -1 -6508 6488 -1 -6888 6488 -1 -6489 6489 6 -6490 6489 -1 -6509 6489 -1 -6889 6489 -1 -6490 6490 6 -6491 6490 -1 -6510 6490 -1 -6890 6490 -1 -6491 6491 6 -6492 6491 -1 -6511 6491 -1 -6891 6491 -1 -6492 6492 6 -6493 6492 -1 -6512 6492 -1 -6892 6492 -1 -6493 6493 6 -6494 6493 -1 -6513 6493 -1 -6893 6493 -1 -6494 6494 6 -6495 6494 -1 -6514 6494 -1 -6894 6494 -1 -6495 6495 6 -6496 6495 -1 -6515 6495 -1 -6895 6495 -1 -6496 6496 6 -6497 6496 -1 -6516 6496 -1 -6896 6496 -1 -6497 6497 6 -6498 6497 -1 -6517 6497 -1 -6897 6497 -1 -6498 6498 6 -6499 6498 -1 -6518 6498 -1 -6898 6498 -1 -6499 6499 6 -6500 6499 -1 -6519 6499 -1 -6899 6499 -1 -6500 6500 6 -6520 6500 -1 -6900 6500 -1 -6501 6501 6 -6502 6501 -1 -6521 6501 -1 -6901 6501 -1 -6502 6502 6 -6503 6502 -1 -6522 6502 -1 -6902 6502 -1 -6503 6503 6 -6504 6503 -1 -6523 6503 -1 -6903 6503 -1 -6504 6504 6 -6505 6504 -1 -6524 6504 -1 -6904 6504 -1 -6505 6505 6 -6506 6505 -1 -6525 6505 -1 -6905 6505 -1 -6506 6506 6 -6507 6506 -1 -6526 6506 -1 -6906 6506 -1 -6507 6507 6 -6508 6507 -1 -6527 6507 -1 -6907 6507 -1 -6508 6508 6 -6509 6508 -1 -6528 6508 -1 -6908 6508 -1 -6509 6509 6 -6510 6509 -1 -6529 6509 -1 -6909 6509 -1 -6510 6510 6 -6511 6510 -1 -6530 6510 -1 -6910 6510 -1 -6511 6511 6 -6512 6511 -1 -6531 6511 -1 -6911 6511 -1 -6512 6512 6 -6513 6512 -1 -6532 6512 -1 -6912 6512 -1 -6513 6513 6 -6514 6513 -1 -6533 6513 -1 -6913 6513 -1 -6514 6514 6 -6515 6514 -1 -6534 6514 -1 -6914 6514 -1 -6515 6515 6 -6516 6515 -1 -6535 6515 -1 -6915 6515 -1 -6516 6516 6 -6517 6516 -1 -6536 6516 -1 -6916 6516 -1 -6517 6517 6 -6518 6517 -1 -6537 6517 -1 -6917 6517 -1 -6518 6518 6 -6519 6518 -1 -6538 6518 -1 -6918 6518 -1 -6519 6519 6 -6520 6519 -1 -6539 6519 -1 -6919 6519 -1 -6520 6520 6 -6540 6520 -1 -6920 6520 -1 -6521 6521 6 -6522 6521 -1 -6541 6521 -1 -6921 6521 -1 -6522 6522 6 -6523 6522 -1 -6542 6522 -1 -6922 6522 -1 -6523 6523 6 -6524 6523 -1 -6543 6523 -1 -6923 6523 -1 -6524 6524 6 -6525 6524 -1 -6544 6524 -1 -6924 6524 -1 -6525 6525 6 -6526 6525 -1 -6545 6525 -1 -6925 6525 -1 -6526 6526 6 -6527 6526 -1 -6546 6526 -1 -6926 6526 -1 -6527 6527 6 -6528 6527 -1 -6547 6527 -1 -6927 6527 -1 -6528 6528 6 -6529 6528 -1 -6548 6528 -1 -6928 6528 -1 -6529 6529 6 -6530 6529 -1 -6549 6529 -1 -6929 6529 -1 -6530 6530 6 -6531 6530 -1 -6550 6530 -1 -6930 6530 -1 -6531 6531 6 -6532 6531 -1 -6551 6531 -1 -6931 6531 -1 -6532 6532 6 -6533 6532 -1 -6552 6532 -1 -6932 6532 -1 -6533 6533 6 -6534 6533 -1 -6553 6533 -1 -6933 6533 -1 -6534 6534 6 -6535 6534 -1 -6554 6534 -1 -6934 6534 -1 -6535 6535 6 -6536 6535 -1 -6555 6535 -1 -6935 6535 -1 -6536 6536 6 -6537 6536 -1 -6556 6536 -1 -6936 6536 -1 -6537 6537 6 -6538 6537 -1 -6557 6537 -1 -6937 6537 -1 -6538 6538 6 -6539 6538 -1 -6558 6538 -1 -6938 6538 -1 -6539 6539 6 -6540 6539 -1 -6559 6539 -1 -6939 6539 -1 -6540 6540 6 -6560 6540 -1 -6940 6540 -1 -6541 6541 6 -6542 6541 -1 -6561 6541 -1 -6941 6541 -1 -6542 6542 6 -6543 6542 -1 -6562 6542 -1 -6942 6542 -1 -6543 6543 6 -6544 6543 -1 -6563 6543 -1 -6943 6543 -1 -6544 6544 6 -6545 6544 -1 -6564 6544 -1 -6944 6544 -1 -6545 6545 6 -6546 6545 -1 -6565 6545 -1 -6945 6545 -1 -6546 6546 6 -6547 6546 -1 -6566 6546 -1 -6946 6546 -1 -6547 6547 6 -6548 6547 -1 -6567 6547 -1 -6947 6547 -1 -6548 6548 6 -6549 6548 -1 -6568 6548 -1 -6948 6548 -1 -6549 6549 6 -6550 6549 -1 -6569 6549 -1 -6949 6549 -1 -6550 6550 6 -6551 6550 -1 -6570 6550 -1 -6950 6550 -1 -6551 6551 6 -6552 6551 -1 -6571 6551 -1 -6951 6551 -1 -6552 6552 6 -6553 6552 -1 -6572 6552 -1 -6952 6552 -1 -6553 6553 6 -6554 6553 -1 -6573 6553 -1 -6953 6553 -1 -6554 6554 6 -6555 6554 -1 -6574 6554 -1 -6954 6554 -1 -6555 6555 6 -6556 6555 -1 -6575 6555 -1 -6955 6555 -1 -6556 6556 6 -6557 6556 -1 -6576 6556 -1 -6956 6556 -1 -6557 6557 6 -6558 6557 -1 -6577 6557 -1 -6957 6557 -1 -6558 6558 6 -6559 6558 -1 -6578 6558 -1 -6958 6558 -1 -6559 6559 6 -6560 6559 -1 -6579 6559 -1 -6959 6559 -1 -6560 6560 6 -6580 6560 -1 -6960 6560 -1 -6561 6561 6 -6562 6561 -1 -6581 6561 -1 -6961 6561 -1 -6562 6562 6 -6563 6562 -1 -6582 6562 -1 -6962 6562 -1 -6563 6563 6 -6564 6563 -1 -6583 6563 -1 -6963 6563 -1 -6564 6564 6 -6565 6564 -1 -6584 6564 -1 -6964 6564 -1 -6565 6565 6 -6566 6565 -1 -6585 6565 -1 -6965 6565 -1 -6566 6566 6 -6567 6566 -1 -6586 6566 -1 -6966 6566 -1 -6567 6567 6 -6568 6567 -1 -6587 6567 -1 -6967 6567 -1 -6568 6568 6 -6569 6568 -1 -6588 6568 -1 -6968 6568 -1 -6569 6569 6 -6570 6569 -1 -6589 6569 -1 -6969 6569 -1 -6570 6570 6 -6571 6570 -1 -6590 6570 -1 -6970 6570 -1 -6571 6571 6 -6572 6571 -1 -6591 6571 -1 -6971 6571 -1 -6572 6572 6 -6573 6572 -1 -6592 6572 -1 -6972 6572 -1 -6573 6573 6 -6574 6573 -1 -6593 6573 -1 -6973 6573 -1 -6574 6574 6 -6575 6574 -1 -6594 6574 -1 -6974 6574 -1 -6575 6575 6 -6576 6575 -1 -6595 6575 -1 -6975 6575 -1 -6576 6576 6 -6577 6576 -1 -6596 6576 -1 -6976 6576 -1 -6577 6577 6 -6578 6577 -1 -6597 6577 -1 -6977 6577 -1 -6578 6578 6 -6579 6578 -1 -6598 6578 -1 -6978 6578 -1 -6579 6579 6 -6580 6579 -1 -6599 6579 -1 -6979 6579 -1 -6580 6580 6 -6600 6580 -1 -6980 6580 -1 -6581 6581 6 -6582 6581 -1 -6601 6581 -1 -6981 6581 -1 -6582 6582 6 -6583 6582 -1 -6602 6582 -1 -6982 6582 -1 -6583 6583 6 -6584 6583 -1 -6603 6583 -1 -6983 6583 -1 -6584 6584 6 -6585 6584 -1 -6604 6584 -1 -6984 6584 -1 -6585 6585 6 -6586 6585 -1 -6605 6585 -1 -6985 6585 -1 -6586 6586 6 -6587 6586 -1 -6606 6586 -1 -6986 6586 -1 -6587 6587 6 -6588 6587 -1 -6607 6587 -1 -6987 6587 -1 -6588 6588 6 -6589 6588 -1 -6608 6588 -1 -6988 6588 -1 -6589 6589 6 -6590 6589 -1 -6609 6589 -1 -6989 6589 -1 -6590 6590 6 -6591 6590 -1 -6610 6590 -1 -6990 6590 -1 -6591 6591 6 -6592 6591 -1 -6611 6591 -1 -6991 6591 -1 -6592 6592 6 -6593 6592 -1 -6612 6592 -1 -6992 6592 -1 -6593 6593 6 -6594 6593 -1 -6613 6593 -1 -6993 6593 -1 -6594 6594 6 -6595 6594 -1 -6614 6594 -1 -6994 6594 -1 -6595 6595 6 -6596 6595 -1 -6615 6595 -1 -6995 6595 -1 -6596 6596 6 -6597 6596 -1 -6616 6596 -1 -6996 6596 -1 -6597 6597 6 -6598 6597 -1 -6617 6597 -1 -6997 6597 -1 -6598 6598 6 -6599 6598 -1 -6618 6598 -1 -6998 6598 -1 -6599 6599 6 -6600 6599 -1 -6619 6599 -1 -6999 6599 -1 -6600 6600 6 -6620 6600 -1 -7000 6600 -1 -6601 6601 6 -6602 6601 -1 -6621 6601 -1 -7001 6601 -1 -6602 6602 6 -6603 6602 -1 -6622 6602 -1 -7002 6602 -1 -6603 6603 6 -6604 6603 -1 -6623 6603 -1 -7003 6603 -1 -6604 6604 6 -6605 6604 -1 -6624 6604 -1 -7004 6604 -1 -6605 6605 6 -6606 6605 -1 -6625 6605 -1 -7005 6605 -1 -6606 6606 6 -6607 6606 -1 -6626 6606 -1 -7006 6606 -1 -6607 6607 6 -6608 6607 -1 -6627 6607 -1 -7007 6607 -1 -6608 6608 6 -6609 6608 -1 -6628 6608 -1 -7008 6608 -1 -6609 6609 6 -6610 6609 -1 -6629 6609 -1 -7009 6609 -1 -6610 6610 6 -6611 6610 -1 -6630 6610 -1 -7010 6610 -1 -6611 6611 6 -6612 6611 -1 -6631 6611 -1 -7011 6611 -1 -6612 6612 6 -6613 6612 -1 -6632 6612 -1 -7012 6612 -1 -6613 6613 6 -6614 6613 -1 -6633 6613 -1 -7013 6613 -1 -6614 6614 6 -6615 6614 -1 -6634 6614 -1 -7014 6614 -1 -6615 6615 6 -6616 6615 -1 -6635 6615 -1 -7015 6615 -1 -6616 6616 6 -6617 6616 -1 -6636 6616 -1 -7016 6616 -1 -6617 6617 6 -6618 6617 -1 -6637 6617 -1 -7017 6617 -1 -6618 6618 6 -6619 6618 -1 -6638 6618 -1 -7018 6618 -1 -6619 6619 6 -6620 6619 -1 -6639 6619 -1 -7019 6619 -1 -6620 6620 6 -6640 6620 -1 -7020 6620 -1 -6621 6621 6 -6622 6621 -1 -6641 6621 -1 -7021 6621 -1 -6622 6622 6 -6623 6622 -1 -6642 6622 -1 -7022 6622 -1 -6623 6623 6 -6624 6623 -1 -6643 6623 -1 -7023 6623 -1 -6624 6624 6 -6625 6624 -1 -6644 6624 -1 -7024 6624 -1 -6625 6625 6 -6626 6625 -1 -6645 6625 -1 -7025 6625 -1 -6626 6626 6 -6627 6626 -1 -6646 6626 -1 -7026 6626 -1 -6627 6627 6 -6628 6627 -1 -6647 6627 -1 -7027 6627 -1 -6628 6628 6 -6629 6628 -1 -6648 6628 -1 -7028 6628 -1 -6629 6629 6 -6630 6629 -1 -6649 6629 -1 -7029 6629 -1 -6630 6630 6 -6631 6630 -1 -6650 6630 -1 -7030 6630 -1 -6631 6631 6 -6632 6631 -1 -6651 6631 -1 -7031 6631 -1 -6632 6632 6 -6633 6632 -1 -6652 6632 -1 -7032 6632 -1 -6633 6633 6 -6634 6633 -1 -6653 6633 -1 -7033 6633 -1 -6634 6634 6 -6635 6634 -1 -6654 6634 -1 -7034 6634 -1 -6635 6635 6 -6636 6635 -1 -6655 6635 -1 -7035 6635 -1 -6636 6636 6 -6637 6636 -1 -6656 6636 -1 -7036 6636 -1 -6637 6637 6 -6638 6637 -1 -6657 6637 -1 -7037 6637 -1 -6638 6638 6 -6639 6638 -1 -6658 6638 -1 -7038 6638 -1 -6639 6639 6 -6640 6639 -1 -6659 6639 -1 -7039 6639 -1 -6640 6640 6 -6660 6640 -1 -7040 6640 -1 -6641 6641 6 -6642 6641 -1 -6661 6641 -1 -7041 6641 -1 -6642 6642 6 -6643 6642 -1 -6662 6642 -1 -7042 6642 -1 -6643 6643 6 -6644 6643 -1 -6663 6643 -1 -7043 6643 -1 -6644 6644 6 -6645 6644 -1 -6664 6644 -1 -7044 6644 -1 -6645 6645 6 -6646 6645 -1 -6665 6645 -1 -7045 6645 -1 -6646 6646 6 -6647 6646 -1 -6666 6646 -1 -7046 6646 -1 -6647 6647 6 -6648 6647 -1 -6667 6647 -1 -7047 6647 -1 -6648 6648 6 -6649 6648 -1 -6668 6648 -1 -7048 6648 -1 -6649 6649 6 -6650 6649 -1 -6669 6649 -1 -7049 6649 -1 -6650 6650 6 -6651 6650 -1 -6670 6650 -1 -7050 6650 -1 -6651 6651 6 -6652 6651 -1 -6671 6651 -1 -7051 6651 -1 -6652 6652 6 -6653 6652 -1 -6672 6652 -1 -7052 6652 -1 -6653 6653 6 -6654 6653 -1 -6673 6653 -1 -7053 6653 -1 -6654 6654 6 -6655 6654 -1 -6674 6654 -1 -7054 6654 -1 -6655 6655 6 -6656 6655 -1 -6675 6655 -1 -7055 6655 -1 -6656 6656 6 -6657 6656 -1 -6676 6656 -1 -7056 6656 -1 -6657 6657 6 -6658 6657 -1 -6677 6657 -1 -7057 6657 -1 -6658 6658 6 -6659 6658 -1 -6678 6658 -1 -7058 6658 -1 -6659 6659 6 -6660 6659 -1 -6679 6659 -1 -7059 6659 -1 -6660 6660 6 -6680 6660 -1 -7060 6660 -1 -6661 6661 6 -6662 6661 -1 -6681 6661 -1 -7061 6661 -1 -6662 6662 6 -6663 6662 -1 -6682 6662 -1 -7062 6662 -1 -6663 6663 6 -6664 6663 -1 -6683 6663 -1 -7063 6663 -1 -6664 6664 6 -6665 6664 -1 -6684 6664 -1 -7064 6664 -1 -6665 6665 6 -6666 6665 -1 -6685 6665 -1 -7065 6665 -1 -6666 6666 6 -6667 6666 -1 -6686 6666 -1 -7066 6666 -1 -6667 6667 6 -6668 6667 -1 -6687 6667 -1 -7067 6667 -1 -6668 6668 6 -6669 6668 -1 -6688 6668 -1 -7068 6668 -1 -6669 6669 6 -6670 6669 -1 -6689 6669 -1 -7069 6669 -1 -6670 6670 6 -6671 6670 -1 -6690 6670 -1 -7070 6670 -1 -6671 6671 6 -6672 6671 -1 -6691 6671 -1 -7071 6671 -1 -6672 6672 6 -6673 6672 -1 -6692 6672 -1 -7072 6672 -1 -6673 6673 6 -6674 6673 -1 -6693 6673 -1 -7073 6673 -1 -6674 6674 6 -6675 6674 -1 -6694 6674 -1 -7074 6674 -1 -6675 6675 6 -6676 6675 -1 -6695 6675 -1 -7075 6675 -1 -6676 6676 6 -6677 6676 -1 -6696 6676 -1 -7076 6676 -1 -6677 6677 6 -6678 6677 -1 -6697 6677 -1 -7077 6677 -1 -6678 6678 6 -6679 6678 -1 -6698 6678 -1 -7078 6678 -1 -6679 6679 6 -6680 6679 -1 -6699 6679 -1 -7079 6679 -1 -6680 6680 6 -6700 6680 -1 -7080 6680 -1 -6681 6681 6 -6682 6681 -1 -6701 6681 -1 -7081 6681 -1 -6682 6682 6 -6683 6682 -1 -6702 6682 -1 -7082 6682 -1 -6683 6683 6 -6684 6683 -1 -6703 6683 -1 -7083 6683 -1 -6684 6684 6 -6685 6684 -1 -6704 6684 -1 -7084 6684 -1 -6685 6685 6 -6686 6685 -1 -6705 6685 -1 -7085 6685 -1 -6686 6686 6 -6687 6686 -1 -6706 6686 -1 -7086 6686 -1 -6687 6687 6 -6688 6687 -1 -6707 6687 -1 -7087 6687 -1 -6688 6688 6 -6689 6688 -1 -6708 6688 -1 -7088 6688 -1 -6689 6689 6 -6690 6689 -1 -6709 6689 -1 -7089 6689 -1 -6690 6690 6 -6691 6690 -1 -6710 6690 -1 -7090 6690 -1 -6691 6691 6 -6692 6691 -1 -6711 6691 -1 -7091 6691 -1 -6692 6692 6 -6693 6692 -1 -6712 6692 -1 -7092 6692 -1 -6693 6693 6 -6694 6693 -1 -6713 6693 -1 -7093 6693 -1 -6694 6694 6 -6695 6694 -1 -6714 6694 -1 -7094 6694 -1 -6695 6695 6 -6696 6695 -1 -6715 6695 -1 -7095 6695 -1 -6696 6696 6 -6697 6696 -1 -6716 6696 -1 -7096 6696 -1 -6697 6697 6 -6698 6697 -1 -6717 6697 -1 -7097 6697 -1 -6698 6698 6 -6699 6698 -1 -6718 6698 -1 -7098 6698 -1 -6699 6699 6 -6700 6699 -1 -6719 6699 -1 -7099 6699 -1 -6700 6700 6 -6720 6700 -1 -7100 6700 -1 -6701 6701 6 -6702 6701 -1 -6721 6701 -1 -7101 6701 -1 -6702 6702 6 -6703 6702 -1 -6722 6702 -1 -7102 6702 -1 -6703 6703 6 -6704 6703 -1 -6723 6703 -1 -7103 6703 -1 -6704 6704 6 -6705 6704 -1 -6724 6704 -1 -7104 6704 -1 -6705 6705 6 -6706 6705 -1 -6725 6705 -1 -7105 6705 -1 -6706 6706 6 -6707 6706 -1 -6726 6706 -1 -7106 6706 -1 -6707 6707 6 -6708 6707 -1 -6727 6707 -1 -7107 6707 -1 -6708 6708 6 -6709 6708 -1 -6728 6708 -1 -7108 6708 -1 -6709 6709 6 -6710 6709 -1 -6729 6709 -1 -7109 6709 -1 -6710 6710 6 -6711 6710 -1 -6730 6710 -1 -7110 6710 -1 -6711 6711 6 -6712 6711 -1 -6731 6711 -1 -7111 6711 -1 -6712 6712 6 -6713 6712 -1 -6732 6712 -1 -7112 6712 -1 -6713 6713 6 -6714 6713 -1 -6733 6713 -1 -7113 6713 -1 -6714 6714 6 -6715 6714 -1 -6734 6714 -1 -7114 6714 -1 -6715 6715 6 -6716 6715 -1 -6735 6715 -1 -7115 6715 -1 -6716 6716 6 -6717 6716 -1 -6736 6716 -1 -7116 6716 -1 -6717 6717 6 -6718 6717 -1 -6737 6717 -1 -7117 6717 -1 -6718 6718 6 -6719 6718 -1 -6738 6718 -1 -7118 6718 -1 -6719 6719 6 -6720 6719 -1 -6739 6719 -1 -7119 6719 -1 -6720 6720 6 -6740 6720 -1 -7120 6720 -1 -6721 6721 6 -6722 6721 -1 -6741 6721 -1 -7121 6721 -1 -6722 6722 6 -6723 6722 -1 -6742 6722 -1 -7122 6722 -1 -6723 6723 6 -6724 6723 -1 -6743 6723 -1 -7123 6723 -1 -6724 6724 6 -6725 6724 -1 -6744 6724 -1 -7124 6724 -1 -6725 6725 6 -6726 6725 -1 -6745 6725 -1 -7125 6725 -1 -6726 6726 6 -6727 6726 -1 -6746 6726 -1 -7126 6726 -1 -6727 6727 6 -6728 6727 -1 -6747 6727 -1 -7127 6727 -1 -6728 6728 6 -6729 6728 -1 -6748 6728 -1 -7128 6728 -1 -6729 6729 6 -6730 6729 -1 -6749 6729 -1 -7129 6729 -1 -6730 6730 6 -6731 6730 -1 -6750 6730 -1 -7130 6730 -1 -6731 6731 6 -6732 6731 -1 -6751 6731 -1 -7131 6731 -1 -6732 6732 6 -6733 6732 -1 -6752 6732 -1 -7132 6732 -1 -6733 6733 6 -6734 6733 -1 -6753 6733 -1 -7133 6733 -1 -6734 6734 6 -6735 6734 -1 -6754 6734 -1 -7134 6734 -1 -6735 6735 6 -6736 6735 -1 -6755 6735 -1 -7135 6735 -1 -6736 6736 6 -6737 6736 -1 -6756 6736 -1 -7136 6736 -1 -6737 6737 6 -6738 6737 -1 -6757 6737 -1 -7137 6737 -1 -6738 6738 6 -6739 6738 -1 -6758 6738 -1 -7138 6738 -1 -6739 6739 6 -6740 6739 -1 -6759 6739 -1 -7139 6739 -1 -6740 6740 6 -6760 6740 -1 -7140 6740 -1 -6741 6741 6 -6742 6741 -1 -6761 6741 -1 -7141 6741 -1 -6742 6742 6 -6743 6742 -1 -6762 6742 -1 -7142 6742 -1 -6743 6743 6 -6744 6743 -1 -6763 6743 -1 -7143 6743 -1 -6744 6744 6 -6745 6744 -1 -6764 6744 -1 -7144 6744 -1 -6745 6745 6 -6746 6745 -1 -6765 6745 -1 -7145 6745 -1 -6746 6746 6 -6747 6746 -1 -6766 6746 -1 -7146 6746 -1 -6747 6747 6 -6748 6747 -1 -6767 6747 -1 -7147 6747 -1 -6748 6748 6 -6749 6748 -1 -6768 6748 -1 -7148 6748 -1 -6749 6749 6 -6750 6749 -1 -6769 6749 -1 -7149 6749 -1 -6750 6750 6 -6751 6750 -1 -6770 6750 -1 -7150 6750 -1 -6751 6751 6 -6752 6751 -1 -6771 6751 -1 -7151 6751 -1 -6752 6752 6 -6753 6752 -1 -6772 6752 -1 -7152 6752 -1 -6753 6753 6 -6754 6753 -1 -6773 6753 -1 -7153 6753 -1 -6754 6754 6 -6755 6754 -1 -6774 6754 -1 -7154 6754 -1 -6755 6755 6 -6756 6755 -1 -6775 6755 -1 -7155 6755 -1 -6756 6756 6 -6757 6756 -1 -6776 6756 -1 -7156 6756 -1 -6757 6757 6 -6758 6757 -1 -6777 6757 -1 -7157 6757 -1 -6758 6758 6 -6759 6758 -1 -6778 6758 -1 -7158 6758 -1 -6759 6759 6 -6760 6759 -1 -6779 6759 -1 -7159 6759 -1 -6760 6760 6 -6780 6760 -1 -7160 6760 -1 -6761 6761 6 -6762 6761 -1 -6781 6761 -1 -7161 6761 -1 -6762 6762 6 -6763 6762 -1 -6782 6762 -1 -7162 6762 -1 -6763 6763 6 -6764 6763 -1 -6783 6763 -1 -7163 6763 -1 -6764 6764 6 -6765 6764 -1 -6784 6764 -1 -7164 6764 -1 -6765 6765 6 -6766 6765 -1 -6785 6765 -1 -7165 6765 -1 -6766 6766 6 -6767 6766 -1 -6786 6766 -1 -7166 6766 -1 -6767 6767 6 -6768 6767 -1 -6787 6767 -1 -7167 6767 -1 -6768 6768 6 -6769 6768 -1 -6788 6768 -1 -7168 6768 -1 -6769 6769 6 -6770 6769 -1 -6789 6769 -1 -7169 6769 -1 -6770 6770 6 -6771 6770 -1 -6790 6770 -1 -7170 6770 -1 -6771 6771 6 -6772 6771 -1 -6791 6771 -1 -7171 6771 -1 -6772 6772 6 -6773 6772 -1 -6792 6772 -1 -7172 6772 -1 -6773 6773 6 -6774 6773 -1 -6793 6773 -1 -7173 6773 -1 -6774 6774 6 -6775 6774 -1 -6794 6774 -1 -7174 6774 -1 -6775 6775 6 -6776 6775 -1 -6795 6775 -1 -7175 6775 -1 -6776 6776 6 -6777 6776 -1 -6796 6776 -1 -7176 6776 -1 -6777 6777 6 -6778 6777 -1 -6797 6777 -1 -7177 6777 -1 -6778 6778 6 -6779 6778 -1 -6798 6778 -1 -7178 6778 -1 -6779 6779 6 -6780 6779 -1 -6799 6779 -1 -7179 6779 -1 -6780 6780 6 -6800 6780 -1 -7180 6780 -1 -6781 6781 6 -6782 6781 -1 -7181 6781 -1 -6782 6782 6 -6783 6782 -1 -7182 6782 -1 -6783 6783 6 -6784 6783 -1 -7183 6783 -1 -6784 6784 6 -6785 6784 -1 -7184 6784 -1 -6785 6785 6 -6786 6785 -1 -7185 6785 -1 -6786 6786 6 -6787 6786 -1 -7186 6786 -1 -6787 6787 6 -6788 6787 -1 -7187 6787 -1 -6788 6788 6 -6789 6788 -1 -7188 6788 -1 -6789 6789 6 -6790 6789 -1 -7189 6789 -1 -6790 6790 6 -6791 6790 -1 -7190 6790 -1 -6791 6791 6 -6792 6791 -1 -7191 6791 -1 -6792 6792 6 -6793 6792 -1 -7192 6792 -1 -6793 6793 6 -6794 6793 -1 -7193 6793 -1 -6794 6794 6 -6795 6794 -1 -7194 6794 -1 -6795 6795 6 -6796 6795 -1 -7195 6795 -1 -6796 6796 6 -6797 6796 -1 -7196 6796 -1 -6797 6797 6 -6798 6797 -1 -7197 6797 -1 -6798 6798 6 -6799 6798 -1 -7198 6798 -1 -6799 6799 6 -6800 6799 -1 -7199 6799 -1 -6800 6800 6 -7200 6800 -1 -6801 6801 6 -6802 6801 -1 -6821 6801 -1 -7201 6801 -1 -6802 6802 6 -6803 6802 -1 -6822 6802 -1 -7202 6802 -1 -6803 6803 6 -6804 6803 -1 -6823 6803 -1 -7203 6803 -1 -6804 6804 6 -6805 6804 -1 -6824 6804 -1 -7204 6804 -1 -6805 6805 6 -6806 6805 -1 -6825 6805 -1 -7205 6805 -1 -6806 6806 6 -6807 6806 -1 -6826 6806 -1 -7206 6806 -1 -6807 6807 6 -6808 6807 -1 -6827 6807 -1 -7207 6807 -1 -6808 6808 6 -6809 6808 -1 -6828 6808 -1 -7208 6808 -1 -6809 6809 6 -6810 6809 -1 -6829 6809 -1 -7209 6809 -1 -6810 6810 6 -6811 6810 -1 -6830 6810 -1 -7210 6810 -1 -6811 6811 6 -6812 6811 -1 -6831 6811 -1 -7211 6811 -1 -6812 6812 6 -6813 6812 -1 -6832 6812 -1 -7212 6812 -1 -6813 6813 6 -6814 6813 -1 -6833 6813 -1 -7213 6813 -1 -6814 6814 6 -6815 6814 -1 -6834 6814 -1 -7214 6814 -1 -6815 6815 6 -6816 6815 -1 -6835 6815 -1 -7215 6815 -1 -6816 6816 6 -6817 6816 -1 -6836 6816 -1 -7216 6816 -1 -6817 6817 6 -6818 6817 -1 -6837 6817 -1 -7217 6817 -1 -6818 6818 6 -6819 6818 -1 -6838 6818 -1 -7218 6818 -1 -6819 6819 6 -6820 6819 -1 -6839 6819 -1 -7219 6819 -1 -6820 6820 6 -6840 6820 -1 -7220 6820 -1 -6821 6821 6 -6822 6821 -1 -6841 6821 -1 -7221 6821 -1 -6822 6822 6 -6823 6822 -1 -6842 6822 -1 -7222 6822 -1 -6823 6823 6 -6824 6823 -1 -6843 6823 -1 -7223 6823 -1 -6824 6824 6 -6825 6824 -1 -6844 6824 -1 -7224 6824 -1 -6825 6825 6 -6826 6825 -1 -6845 6825 -1 -7225 6825 -1 -6826 6826 6 -6827 6826 -1 -6846 6826 -1 -7226 6826 -1 -6827 6827 6 -6828 6827 -1 -6847 6827 -1 -7227 6827 -1 -6828 6828 6 -6829 6828 -1 -6848 6828 -1 -7228 6828 -1 -6829 6829 6 -6830 6829 -1 -6849 6829 -1 -7229 6829 -1 -6830 6830 6 -6831 6830 -1 -6850 6830 -1 -7230 6830 -1 -6831 6831 6 -6832 6831 -1 -6851 6831 -1 -7231 6831 -1 -6832 6832 6 -6833 6832 -1 -6852 6832 -1 -7232 6832 -1 -6833 6833 6 -6834 6833 -1 -6853 6833 -1 -7233 6833 -1 -6834 6834 6 -6835 6834 -1 -6854 6834 -1 -7234 6834 -1 -6835 6835 6 -6836 6835 -1 -6855 6835 -1 -7235 6835 -1 -6836 6836 6 -6837 6836 -1 -6856 6836 -1 -7236 6836 -1 -6837 6837 6 -6838 6837 -1 -6857 6837 -1 -7237 6837 -1 -6838 6838 6 -6839 6838 -1 -6858 6838 -1 -7238 6838 -1 -6839 6839 6 -6840 6839 -1 -6859 6839 -1 -7239 6839 -1 -6840 6840 6 -6860 6840 -1 -7240 6840 -1 -6841 6841 6 -6842 6841 -1 -6861 6841 -1 -7241 6841 -1 -6842 6842 6 -6843 6842 -1 -6862 6842 -1 -7242 6842 -1 -6843 6843 6 -6844 6843 -1 -6863 6843 -1 -7243 6843 -1 -6844 6844 6 -6845 6844 -1 -6864 6844 -1 -7244 6844 -1 -6845 6845 6 -6846 6845 -1 -6865 6845 -1 -7245 6845 -1 -6846 6846 6 -6847 6846 -1 -6866 6846 -1 -7246 6846 -1 -6847 6847 6 -6848 6847 -1 -6867 6847 -1 -7247 6847 -1 -6848 6848 6 -6849 6848 -1 -6868 6848 -1 -7248 6848 -1 -6849 6849 6 -6850 6849 -1 -6869 6849 -1 -7249 6849 -1 -6850 6850 6 -6851 6850 -1 -6870 6850 -1 -7250 6850 -1 -6851 6851 6 -6852 6851 -1 -6871 6851 -1 -7251 6851 -1 -6852 6852 6 -6853 6852 -1 -6872 6852 -1 -7252 6852 -1 -6853 6853 6 -6854 6853 -1 -6873 6853 -1 -7253 6853 -1 -6854 6854 6 -6855 6854 -1 -6874 6854 -1 -7254 6854 -1 -6855 6855 6 -6856 6855 -1 -6875 6855 -1 -7255 6855 -1 -6856 6856 6 -6857 6856 -1 -6876 6856 -1 -7256 6856 -1 -6857 6857 6 -6858 6857 -1 -6877 6857 -1 -7257 6857 -1 -6858 6858 6 -6859 6858 -1 -6878 6858 -1 -7258 6858 -1 -6859 6859 6 -6860 6859 -1 -6879 6859 -1 -7259 6859 -1 -6860 6860 6 -6880 6860 -1 -7260 6860 -1 -6861 6861 6 -6862 6861 -1 -6881 6861 -1 -7261 6861 -1 -6862 6862 6 -6863 6862 -1 -6882 6862 -1 -7262 6862 -1 -6863 6863 6 -6864 6863 -1 -6883 6863 -1 -7263 6863 -1 -6864 6864 6 -6865 6864 -1 -6884 6864 -1 -7264 6864 -1 -6865 6865 6 -6866 6865 -1 -6885 6865 -1 -7265 6865 -1 -6866 6866 6 -6867 6866 -1 -6886 6866 -1 -7266 6866 -1 -6867 6867 6 -6868 6867 -1 -6887 6867 -1 -7267 6867 -1 -6868 6868 6 -6869 6868 -1 -6888 6868 -1 -7268 6868 -1 -6869 6869 6 -6870 6869 -1 -6889 6869 -1 -7269 6869 -1 -6870 6870 6 -6871 6870 -1 -6890 6870 -1 -7270 6870 -1 -6871 6871 6 -6872 6871 -1 -6891 6871 -1 -7271 6871 -1 -6872 6872 6 -6873 6872 -1 -6892 6872 -1 -7272 6872 -1 -6873 6873 6 -6874 6873 -1 -6893 6873 -1 -7273 6873 -1 -6874 6874 6 -6875 6874 -1 -6894 6874 -1 -7274 6874 -1 -6875 6875 6 -6876 6875 -1 -6895 6875 -1 -7275 6875 -1 -6876 6876 6 -6877 6876 -1 -6896 6876 -1 -7276 6876 -1 -6877 6877 6 -6878 6877 -1 -6897 6877 -1 -7277 6877 -1 -6878 6878 6 -6879 6878 -1 -6898 6878 -1 -7278 6878 -1 -6879 6879 6 -6880 6879 -1 -6899 6879 -1 -7279 6879 -1 -6880 6880 6 -6900 6880 -1 -7280 6880 -1 -6881 6881 6 -6882 6881 -1 -6901 6881 -1 -7281 6881 -1 -6882 6882 6 -6883 6882 -1 -6902 6882 -1 -7282 6882 -1 -6883 6883 6 -6884 6883 -1 -6903 6883 -1 -7283 6883 -1 -6884 6884 6 -6885 6884 -1 -6904 6884 -1 -7284 6884 -1 -6885 6885 6 -6886 6885 -1 -6905 6885 -1 -7285 6885 -1 -6886 6886 6 -6887 6886 -1 -6906 6886 -1 -7286 6886 -1 -6887 6887 6 -6888 6887 -1 -6907 6887 -1 -7287 6887 -1 -6888 6888 6 -6889 6888 -1 -6908 6888 -1 -7288 6888 -1 -6889 6889 6 -6890 6889 -1 -6909 6889 -1 -7289 6889 -1 -6890 6890 6 -6891 6890 -1 -6910 6890 -1 -7290 6890 -1 -6891 6891 6 -6892 6891 -1 -6911 6891 -1 -7291 6891 -1 -6892 6892 6 -6893 6892 -1 -6912 6892 -1 -7292 6892 -1 -6893 6893 6 -6894 6893 -1 -6913 6893 -1 -7293 6893 -1 -6894 6894 6 -6895 6894 -1 -6914 6894 -1 -7294 6894 -1 -6895 6895 6 -6896 6895 -1 -6915 6895 -1 -7295 6895 -1 -6896 6896 6 -6897 6896 -1 -6916 6896 -1 -7296 6896 -1 -6897 6897 6 -6898 6897 -1 -6917 6897 -1 -7297 6897 -1 -6898 6898 6 -6899 6898 -1 -6918 6898 -1 -7298 6898 -1 -6899 6899 6 -6900 6899 -1 -6919 6899 -1 -7299 6899 -1 -6900 6900 6 -6920 6900 -1 -7300 6900 -1 -6901 6901 6 -6902 6901 -1 -6921 6901 -1 -7301 6901 -1 -6902 6902 6 -6903 6902 -1 -6922 6902 -1 -7302 6902 -1 -6903 6903 6 -6904 6903 -1 -6923 6903 -1 -7303 6903 -1 -6904 6904 6 -6905 6904 -1 -6924 6904 -1 -7304 6904 -1 -6905 6905 6 -6906 6905 -1 -6925 6905 -1 -7305 6905 -1 -6906 6906 6 -6907 6906 -1 -6926 6906 -1 -7306 6906 -1 -6907 6907 6 -6908 6907 -1 -6927 6907 -1 -7307 6907 -1 -6908 6908 6 -6909 6908 -1 -6928 6908 -1 -7308 6908 -1 -6909 6909 6 -6910 6909 -1 -6929 6909 -1 -7309 6909 -1 -6910 6910 6 -6911 6910 -1 -6930 6910 -1 -7310 6910 -1 -6911 6911 6 -6912 6911 -1 -6931 6911 -1 -7311 6911 -1 -6912 6912 6 -6913 6912 -1 -6932 6912 -1 -7312 6912 -1 -6913 6913 6 -6914 6913 -1 -6933 6913 -1 -7313 6913 -1 -6914 6914 6 -6915 6914 -1 -6934 6914 -1 -7314 6914 -1 -6915 6915 6 -6916 6915 -1 -6935 6915 -1 -7315 6915 -1 -6916 6916 6 -6917 6916 -1 -6936 6916 -1 -7316 6916 -1 -6917 6917 6 -6918 6917 -1 -6937 6917 -1 -7317 6917 -1 -6918 6918 6 -6919 6918 -1 -6938 6918 -1 -7318 6918 -1 -6919 6919 6 -6920 6919 -1 -6939 6919 -1 -7319 6919 -1 -6920 6920 6 -6940 6920 -1 -7320 6920 -1 -6921 6921 6 -6922 6921 -1 -6941 6921 -1 -7321 6921 -1 -6922 6922 6 -6923 6922 -1 -6942 6922 -1 -7322 6922 -1 -6923 6923 6 -6924 6923 -1 -6943 6923 -1 -7323 6923 -1 -6924 6924 6 -6925 6924 -1 -6944 6924 -1 -7324 6924 -1 -6925 6925 6 -6926 6925 -1 -6945 6925 -1 -7325 6925 -1 -6926 6926 6 -6927 6926 -1 -6946 6926 -1 -7326 6926 -1 -6927 6927 6 -6928 6927 -1 -6947 6927 -1 -7327 6927 -1 -6928 6928 6 -6929 6928 -1 -6948 6928 -1 -7328 6928 -1 -6929 6929 6 -6930 6929 -1 -6949 6929 -1 -7329 6929 -1 -6930 6930 6 -6931 6930 -1 -6950 6930 -1 -7330 6930 -1 -6931 6931 6 -6932 6931 -1 -6951 6931 -1 -7331 6931 -1 -6932 6932 6 -6933 6932 -1 -6952 6932 -1 -7332 6932 -1 -6933 6933 6 -6934 6933 -1 -6953 6933 -1 -7333 6933 -1 -6934 6934 6 -6935 6934 -1 -6954 6934 -1 -7334 6934 -1 -6935 6935 6 -6936 6935 -1 -6955 6935 -1 -7335 6935 -1 -6936 6936 6 -6937 6936 -1 -6956 6936 -1 -7336 6936 -1 -6937 6937 6 -6938 6937 -1 -6957 6937 -1 -7337 6937 -1 -6938 6938 6 -6939 6938 -1 -6958 6938 -1 -7338 6938 -1 -6939 6939 6 -6940 6939 -1 -6959 6939 -1 -7339 6939 -1 -6940 6940 6 -6960 6940 -1 -7340 6940 -1 -6941 6941 6 -6942 6941 -1 -6961 6941 -1 -7341 6941 -1 -6942 6942 6 -6943 6942 -1 -6962 6942 -1 -7342 6942 -1 -6943 6943 6 -6944 6943 -1 -6963 6943 -1 -7343 6943 -1 -6944 6944 6 -6945 6944 -1 -6964 6944 -1 -7344 6944 -1 -6945 6945 6 -6946 6945 -1 -6965 6945 -1 -7345 6945 -1 -6946 6946 6 -6947 6946 -1 -6966 6946 -1 -7346 6946 -1 -6947 6947 6 -6948 6947 -1 -6967 6947 -1 -7347 6947 -1 -6948 6948 6 -6949 6948 -1 -6968 6948 -1 -7348 6948 -1 -6949 6949 6 -6950 6949 -1 -6969 6949 -1 -7349 6949 -1 -6950 6950 6 -6951 6950 -1 -6970 6950 -1 -7350 6950 -1 -6951 6951 6 -6952 6951 -1 -6971 6951 -1 -7351 6951 -1 -6952 6952 6 -6953 6952 -1 -6972 6952 -1 -7352 6952 -1 -6953 6953 6 -6954 6953 -1 -6973 6953 -1 -7353 6953 -1 -6954 6954 6 -6955 6954 -1 -6974 6954 -1 -7354 6954 -1 -6955 6955 6 -6956 6955 -1 -6975 6955 -1 -7355 6955 -1 -6956 6956 6 -6957 6956 -1 -6976 6956 -1 -7356 6956 -1 -6957 6957 6 -6958 6957 -1 -6977 6957 -1 -7357 6957 -1 -6958 6958 6 -6959 6958 -1 -6978 6958 -1 -7358 6958 -1 -6959 6959 6 -6960 6959 -1 -6979 6959 -1 -7359 6959 -1 -6960 6960 6 -6980 6960 -1 -7360 6960 -1 -6961 6961 6 -6962 6961 -1 -6981 6961 -1 -7361 6961 -1 -6962 6962 6 -6963 6962 -1 -6982 6962 -1 -7362 6962 -1 -6963 6963 6 -6964 6963 -1 -6983 6963 -1 -7363 6963 -1 -6964 6964 6 -6965 6964 -1 -6984 6964 -1 -7364 6964 -1 -6965 6965 6 -6966 6965 -1 -6985 6965 -1 -7365 6965 -1 -6966 6966 6 -6967 6966 -1 -6986 6966 -1 -7366 6966 -1 -6967 6967 6 -6968 6967 -1 -6987 6967 -1 -7367 6967 -1 -6968 6968 6 -6969 6968 -1 -6988 6968 -1 -7368 6968 -1 -6969 6969 6 -6970 6969 -1 -6989 6969 -1 -7369 6969 -1 -6970 6970 6 -6971 6970 -1 -6990 6970 -1 -7370 6970 -1 -6971 6971 6 -6972 6971 -1 -6991 6971 -1 -7371 6971 -1 -6972 6972 6 -6973 6972 -1 -6992 6972 -1 -7372 6972 -1 -6973 6973 6 -6974 6973 -1 -6993 6973 -1 -7373 6973 -1 -6974 6974 6 -6975 6974 -1 -6994 6974 -1 -7374 6974 -1 -6975 6975 6 -6976 6975 -1 -6995 6975 -1 -7375 6975 -1 -6976 6976 6 -6977 6976 -1 -6996 6976 -1 -7376 6976 -1 -6977 6977 6 -6978 6977 -1 -6997 6977 -1 -7377 6977 -1 -6978 6978 6 -6979 6978 -1 -6998 6978 -1 -7378 6978 -1 -6979 6979 6 -6980 6979 -1 -6999 6979 -1 -7379 6979 -1 -6980 6980 6 -7000 6980 -1 -7380 6980 -1 -6981 6981 6 -6982 6981 -1 -7001 6981 -1 -7381 6981 -1 -6982 6982 6 -6983 6982 -1 -7002 6982 -1 -7382 6982 -1 -6983 6983 6 -6984 6983 -1 -7003 6983 -1 -7383 6983 -1 -6984 6984 6 -6985 6984 -1 -7004 6984 -1 -7384 6984 -1 -6985 6985 6 -6986 6985 -1 -7005 6985 -1 -7385 6985 -1 -6986 6986 6 -6987 6986 -1 -7006 6986 -1 -7386 6986 -1 -6987 6987 6 -6988 6987 -1 -7007 6987 -1 -7387 6987 -1 -6988 6988 6 -6989 6988 -1 -7008 6988 -1 -7388 6988 -1 -6989 6989 6 -6990 6989 -1 -7009 6989 -1 -7389 6989 -1 -6990 6990 6 -6991 6990 -1 -7010 6990 -1 -7390 6990 -1 -6991 6991 6 -6992 6991 -1 -7011 6991 -1 -7391 6991 -1 -6992 6992 6 -6993 6992 -1 -7012 6992 -1 -7392 6992 -1 -6993 6993 6 -6994 6993 -1 -7013 6993 -1 -7393 6993 -1 -6994 6994 6 -6995 6994 -1 -7014 6994 -1 -7394 6994 -1 -6995 6995 6 -6996 6995 -1 -7015 6995 -1 -7395 6995 -1 -6996 6996 6 -6997 6996 -1 -7016 6996 -1 -7396 6996 -1 -6997 6997 6 -6998 6997 -1 -7017 6997 -1 -7397 6997 -1 -6998 6998 6 -6999 6998 -1 -7018 6998 -1 -7398 6998 -1 -6999 6999 6 -7000 6999 -1 -7019 6999 -1 -7399 6999 -1 -7000 7000 6 -7020 7000 -1 -7400 7000 -1 -7001 7001 6 -7002 7001 -1 -7021 7001 -1 -7401 7001 -1 -7002 7002 6 -7003 7002 -1 -7022 7002 -1 -7402 7002 -1 -7003 7003 6 -7004 7003 -1 -7023 7003 -1 -7403 7003 -1 -7004 7004 6 -7005 7004 -1 -7024 7004 -1 -7404 7004 -1 -7005 7005 6 -7006 7005 -1 -7025 7005 -1 -7405 7005 -1 -7006 7006 6 -7007 7006 -1 -7026 7006 -1 -7406 7006 -1 -7007 7007 6 -7008 7007 -1 -7027 7007 -1 -7407 7007 -1 -7008 7008 6 -7009 7008 -1 -7028 7008 -1 -7408 7008 -1 -7009 7009 6 -7010 7009 -1 -7029 7009 -1 -7409 7009 -1 -7010 7010 6 -7011 7010 -1 -7030 7010 -1 -7410 7010 -1 -7011 7011 6 -7012 7011 -1 -7031 7011 -1 -7411 7011 -1 -7012 7012 6 -7013 7012 -1 -7032 7012 -1 -7412 7012 -1 -7013 7013 6 -7014 7013 -1 -7033 7013 -1 -7413 7013 -1 -7014 7014 6 -7015 7014 -1 -7034 7014 -1 -7414 7014 -1 -7015 7015 6 -7016 7015 -1 -7035 7015 -1 -7415 7015 -1 -7016 7016 6 -7017 7016 -1 -7036 7016 -1 -7416 7016 -1 -7017 7017 6 -7018 7017 -1 -7037 7017 -1 -7417 7017 -1 -7018 7018 6 -7019 7018 -1 -7038 7018 -1 -7418 7018 -1 -7019 7019 6 -7020 7019 -1 -7039 7019 -1 -7419 7019 -1 -7020 7020 6 -7040 7020 -1 -7420 7020 -1 -7021 7021 6 -7022 7021 -1 -7041 7021 -1 -7421 7021 -1 -7022 7022 6 -7023 7022 -1 -7042 7022 -1 -7422 7022 -1 -7023 7023 6 -7024 7023 -1 -7043 7023 -1 -7423 7023 -1 -7024 7024 6 -7025 7024 -1 -7044 7024 -1 -7424 7024 -1 -7025 7025 6 -7026 7025 -1 -7045 7025 -1 -7425 7025 -1 -7026 7026 6 -7027 7026 -1 -7046 7026 -1 -7426 7026 -1 -7027 7027 6 -7028 7027 -1 -7047 7027 -1 -7427 7027 -1 -7028 7028 6 -7029 7028 -1 -7048 7028 -1 -7428 7028 -1 -7029 7029 6 -7030 7029 -1 -7049 7029 -1 -7429 7029 -1 -7030 7030 6 -7031 7030 -1 -7050 7030 -1 -7430 7030 -1 -7031 7031 6 -7032 7031 -1 -7051 7031 -1 -7431 7031 -1 -7032 7032 6 -7033 7032 -1 -7052 7032 -1 -7432 7032 -1 -7033 7033 6 -7034 7033 -1 -7053 7033 -1 -7433 7033 -1 -7034 7034 6 -7035 7034 -1 -7054 7034 -1 -7434 7034 -1 -7035 7035 6 -7036 7035 -1 -7055 7035 -1 -7435 7035 -1 -7036 7036 6 -7037 7036 -1 -7056 7036 -1 -7436 7036 -1 -7037 7037 6 -7038 7037 -1 -7057 7037 -1 -7437 7037 -1 -7038 7038 6 -7039 7038 -1 -7058 7038 -1 -7438 7038 -1 -7039 7039 6 -7040 7039 -1 -7059 7039 -1 -7439 7039 -1 -7040 7040 6 -7060 7040 -1 -7440 7040 -1 -7041 7041 6 -7042 7041 -1 -7061 7041 -1 -7441 7041 -1 -7042 7042 6 -7043 7042 -1 -7062 7042 -1 -7442 7042 -1 -7043 7043 6 -7044 7043 -1 -7063 7043 -1 -7443 7043 -1 -7044 7044 6 -7045 7044 -1 -7064 7044 -1 -7444 7044 -1 -7045 7045 6 -7046 7045 -1 -7065 7045 -1 -7445 7045 -1 -7046 7046 6 -7047 7046 -1 -7066 7046 -1 -7446 7046 -1 -7047 7047 6 -7048 7047 -1 -7067 7047 -1 -7447 7047 -1 -7048 7048 6 -7049 7048 -1 -7068 7048 -1 -7448 7048 -1 -7049 7049 6 -7050 7049 -1 -7069 7049 -1 -7449 7049 -1 -7050 7050 6 -7051 7050 -1 -7070 7050 -1 -7450 7050 -1 -7051 7051 6 -7052 7051 -1 -7071 7051 -1 -7451 7051 -1 -7052 7052 6 -7053 7052 -1 -7072 7052 -1 -7452 7052 -1 -7053 7053 6 -7054 7053 -1 -7073 7053 -1 -7453 7053 -1 -7054 7054 6 -7055 7054 -1 -7074 7054 -1 -7454 7054 -1 -7055 7055 6 -7056 7055 -1 -7075 7055 -1 -7455 7055 -1 -7056 7056 6 -7057 7056 -1 -7076 7056 -1 -7456 7056 -1 -7057 7057 6 -7058 7057 -1 -7077 7057 -1 -7457 7057 -1 -7058 7058 6 -7059 7058 -1 -7078 7058 -1 -7458 7058 -1 -7059 7059 6 -7060 7059 -1 -7079 7059 -1 -7459 7059 -1 -7060 7060 6 -7080 7060 -1 -7460 7060 -1 -7061 7061 6 -7062 7061 -1 -7081 7061 -1 -7461 7061 -1 -7062 7062 6 -7063 7062 -1 -7082 7062 -1 -7462 7062 -1 -7063 7063 6 -7064 7063 -1 -7083 7063 -1 -7463 7063 -1 -7064 7064 6 -7065 7064 -1 -7084 7064 -1 -7464 7064 -1 -7065 7065 6 -7066 7065 -1 -7085 7065 -1 -7465 7065 -1 -7066 7066 6 -7067 7066 -1 -7086 7066 -1 -7466 7066 -1 -7067 7067 6 -7068 7067 -1 -7087 7067 -1 -7467 7067 -1 -7068 7068 6 -7069 7068 -1 -7088 7068 -1 -7468 7068 -1 -7069 7069 6 -7070 7069 -1 -7089 7069 -1 -7469 7069 -1 -7070 7070 6 -7071 7070 -1 -7090 7070 -1 -7470 7070 -1 -7071 7071 6 -7072 7071 -1 -7091 7071 -1 -7471 7071 -1 -7072 7072 6 -7073 7072 -1 -7092 7072 -1 -7472 7072 -1 -7073 7073 6 -7074 7073 -1 -7093 7073 -1 -7473 7073 -1 -7074 7074 6 -7075 7074 -1 -7094 7074 -1 -7474 7074 -1 -7075 7075 6 -7076 7075 -1 -7095 7075 -1 -7475 7075 -1 -7076 7076 6 -7077 7076 -1 -7096 7076 -1 -7476 7076 -1 -7077 7077 6 -7078 7077 -1 -7097 7077 -1 -7477 7077 -1 -7078 7078 6 -7079 7078 -1 -7098 7078 -1 -7478 7078 -1 -7079 7079 6 -7080 7079 -1 -7099 7079 -1 -7479 7079 -1 -7080 7080 6 -7100 7080 -1 -7480 7080 -1 -7081 7081 6 -7082 7081 -1 -7101 7081 -1 -7481 7081 -1 -7082 7082 6 -7083 7082 -1 -7102 7082 -1 -7482 7082 -1 -7083 7083 6 -7084 7083 -1 -7103 7083 -1 -7483 7083 -1 -7084 7084 6 -7085 7084 -1 -7104 7084 -1 -7484 7084 -1 -7085 7085 6 -7086 7085 -1 -7105 7085 -1 -7485 7085 -1 -7086 7086 6 -7087 7086 -1 -7106 7086 -1 -7486 7086 -1 -7087 7087 6 -7088 7087 -1 -7107 7087 -1 -7487 7087 -1 -7088 7088 6 -7089 7088 -1 -7108 7088 -1 -7488 7088 -1 -7089 7089 6 -7090 7089 -1 -7109 7089 -1 -7489 7089 -1 -7090 7090 6 -7091 7090 -1 -7110 7090 -1 -7490 7090 -1 -7091 7091 6 -7092 7091 -1 -7111 7091 -1 -7491 7091 -1 -7092 7092 6 -7093 7092 -1 -7112 7092 -1 -7492 7092 -1 -7093 7093 6 -7094 7093 -1 -7113 7093 -1 -7493 7093 -1 -7094 7094 6 -7095 7094 -1 -7114 7094 -1 -7494 7094 -1 -7095 7095 6 -7096 7095 -1 -7115 7095 -1 -7495 7095 -1 -7096 7096 6 -7097 7096 -1 -7116 7096 -1 -7496 7096 -1 -7097 7097 6 -7098 7097 -1 -7117 7097 -1 -7497 7097 -1 -7098 7098 6 -7099 7098 -1 -7118 7098 -1 -7498 7098 -1 -7099 7099 6 -7100 7099 -1 -7119 7099 -1 -7499 7099 -1 -7100 7100 6 -7120 7100 -1 -7500 7100 -1 -7101 7101 6 -7102 7101 -1 -7121 7101 -1 -7501 7101 -1 -7102 7102 6 -7103 7102 -1 -7122 7102 -1 -7502 7102 -1 -7103 7103 6 -7104 7103 -1 -7123 7103 -1 -7503 7103 -1 -7104 7104 6 -7105 7104 -1 -7124 7104 -1 -7504 7104 -1 -7105 7105 6 -7106 7105 -1 -7125 7105 -1 -7505 7105 -1 -7106 7106 6 -7107 7106 -1 -7126 7106 -1 -7506 7106 -1 -7107 7107 6 -7108 7107 -1 -7127 7107 -1 -7507 7107 -1 -7108 7108 6 -7109 7108 -1 -7128 7108 -1 -7508 7108 -1 -7109 7109 6 -7110 7109 -1 -7129 7109 -1 -7509 7109 -1 -7110 7110 6 -7111 7110 -1 -7130 7110 -1 -7510 7110 -1 -7111 7111 6 -7112 7111 -1 -7131 7111 -1 -7511 7111 -1 -7112 7112 6 -7113 7112 -1 -7132 7112 -1 -7512 7112 -1 -7113 7113 6 -7114 7113 -1 -7133 7113 -1 -7513 7113 -1 -7114 7114 6 -7115 7114 -1 -7134 7114 -1 -7514 7114 -1 -7115 7115 6 -7116 7115 -1 -7135 7115 -1 -7515 7115 -1 -7116 7116 6 -7117 7116 -1 -7136 7116 -1 -7516 7116 -1 -7117 7117 6 -7118 7117 -1 -7137 7117 -1 -7517 7117 -1 -7118 7118 6 -7119 7118 -1 -7138 7118 -1 -7518 7118 -1 -7119 7119 6 -7120 7119 -1 -7139 7119 -1 -7519 7119 -1 -7120 7120 6 -7140 7120 -1 -7520 7120 -1 -7121 7121 6 -7122 7121 -1 -7141 7121 -1 -7521 7121 -1 -7122 7122 6 -7123 7122 -1 -7142 7122 -1 -7522 7122 -1 -7123 7123 6 -7124 7123 -1 -7143 7123 -1 -7523 7123 -1 -7124 7124 6 -7125 7124 -1 -7144 7124 -1 -7524 7124 -1 -7125 7125 6 -7126 7125 -1 -7145 7125 -1 -7525 7125 -1 -7126 7126 6 -7127 7126 -1 -7146 7126 -1 -7526 7126 -1 -7127 7127 6 -7128 7127 -1 -7147 7127 -1 -7527 7127 -1 -7128 7128 6 -7129 7128 -1 -7148 7128 -1 -7528 7128 -1 -7129 7129 6 -7130 7129 -1 -7149 7129 -1 -7529 7129 -1 -7130 7130 6 -7131 7130 -1 -7150 7130 -1 -7530 7130 -1 -7131 7131 6 -7132 7131 -1 -7151 7131 -1 -7531 7131 -1 -7132 7132 6 -7133 7132 -1 -7152 7132 -1 -7532 7132 -1 -7133 7133 6 -7134 7133 -1 -7153 7133 -1 -7533 7133 -1 -7134 7134 6 -7135 7134 -1 -7154 7134 -1 -7534 7134 -1 -7135 7135 6 -7136 7135 -1 -7155 7135 -1 -7535 7135 -1 -7136 7136 6 -7137 7136 -1 -7156 7136 -1 -7536 7136 -1 -7137 7137 6 -7138 7137 -1 -7157 7137 -1 -7537 7137 -1 -7138 7138 6 -7139 7138 -1 -7158 7138 -1 -7538 7138 -1 -7139 7139 6 -7140 7139 -1 -7159 7139 -1 -7539 7139 -1 -7140 7140 6 -7160 7140 -1 -7540 7140 -1 -7141 7141 6 -7142 7141 -1 -7161 7141 -1 -7541 7141 -1 -7142 7142 6 -7143 7142 -1 -7162 7142 -1 -7542 7142 -1 -7143 7143 6 -7144 7143 -1 -7163 7143 -1 -7543 7143 -1 -7144 7144 6 -7145 7144 -1 -7164 7144 -1 -7544 7144 -1 -7145 7145 6 -7146 7145 -1 -7165 7145 -1 -7545 7145 -1 -7146 7146 6 -7147 7146 -1 -7166 7146 -1 -7546 7146 -1 -7147 7147 6 -7148 7147 -1 -7167 7147 -1 -7547 7147 -1 -7148 7148 6 -7149 7148 -1 -7168 7148 -1 -7548 7148 -1 -7149 7149 6 -7150 7149 -1 -7169 7149 -1 -7549 7149 -1 -7150 7150 6 -7151 7150 -1 -7170 7150 -1 -7550 7150 -1 -7151 7151 6 -7152 7151 -1 -7171 7151 -1 -7551 7151 -1 -7152 7152 6 -7153 7152 -1 -7172 7152 -1 -7552 7152 -1 -7153 7153 6 -7154 7153 -1 -7173 7153 -1 -7553 7153 -1 -7154 7154 6 -7155 7154 -1 -7174 7154 -1 -7554 7154 -1 -7155 7155 6 -7156 7155 -1 -7175 7155 -1 -7555 7155 -1 -7156 7156 6 -7157 7156 -1 -7176 7156 -1 -7556 7156 -1 -7157 7157 6 -7158 7157 -1 -7177 7157 -1 -7557 7157 -1 -7158 7158 6 -7159 7158 -1 -7178 7158 -1 -7558 7158 -1 -7159 7159 6 -7160 7159 -1 -7179 7159 -1 -7559 7159 -1 -7160 7160 6 -7180 7160 -1 -7560 7160 -1 -7161 7161 6 -7162 7161 -1 -7181 7161 -1 -7561 7161 -1 -7162 7162 6 -7163 7162 -1 -7182 7162 -1 -7562 7162 -1 -7163 7163 6 -7164 7163 -1 -7183 7163 -1 -7563 7163 -1 -7164 7164 6 -7165 7164 -1 -7184 7164 -1 -7564 7164 -1 -7165 7165 6 -7166 7165 -1 -7185 7165 -1 -7565 7165 -1 -7166 7166 6 -7167 7166 -1 -7186 7166 -1 -7566 7166 -1 -7167 7167 6 -7168 7167 -1 -7187 7167 -1 -7567 7167 -1 -7168 7168 6 -7169 7168 -1 -7188 7168 -1 -7568 7168 -1 -7169 7169 6 -7170 7169 -1 -7189 7169 -1 -7569 7169 -1 -7170 7170 6 -7171 7170 -1 -7190 7170 -1 -7570 7170 -1 -7171 7171 6 -7172 7171 -1 -7191 7171 -1 -7571 7171 -1 -7172 7172 6 -7173 7172 -1 -7192 7172 -1 -7572 7172 -1 -7173 7173 6 -7174 7173 -1 -7193 7173 -1 -7573 7173 -1 -7174 7174 6 -7175 7174 -1 -7194 7174 -1 -7574 7174 -1 -7175 7175 6 -7176 7175 -1 -7195 7175 -1 -7575 7175 -1 -7176 7176 6 -7177 7176 -1 -7196 7176 -1 -7576 7176 -1 -7177 7177 6 -7178 7177 -1 -7197 7177 -1 -7577 7177 -1 -7178 7178 6 -7179 7178 -1 -7198 7178 -1 -7578 7178 -1 -7179 7179 6 -7180 7179 -1 -7199 7179 -1 -7579 7179 -1 -7180 7180 6 -7200 7180 -1 -7580 7180 -1 -7181 7181 6 -7182 7181 -1 -7581 7181 -1 -7182 7182 6 -7183 7182 -1 -7582 7182 -1 -7183 7183 6 -7184 7183 -1 -7583 7183 -1 -7184 7184 6 -7185 7184 -1 -7584 7184 -1 -7185 7185 6 -7186 7185 -1 -7585 7185 -1 -7186 7186 6 -7187 7186 -1 -7586 7186 -1 -7187 7187 6 -7188 7187 -1 -7587 7187 -1 -7188 7188 6 -7189 7188 -1 -7588 7188 -1 -7189 7189 6 -7190 7189 -1 -7589 7189 -1 -7190 7190 6 -7191 7190 -1 -7590 7190 -1 -7191 7191 6 -7192 7191 -1 -7591 7191 -1 -7192 7192 6 -7193 7192 -1 -7592 7192 -1 -7193 7193 6 -7194 7193 -1 -7593 7193 -1 -7194 7194 6 -7195 7194 -1 -7594 7194 -1 -7195 7195 6 -7196 7195 -1 -7595 7195 -1 -7196 7196 6 -7197 7196 -1 -7596 7196 -1 -7197 7197 6 -7198 7197 -1 -7597 7197 -1 -7198 7198 6 -7199 7198 -1 -7598 7198 -1 -7199 7199 6 -7200 7199 -1 -7599 7199 -1 -7200 7200 6 -7600 7200 -1 -7201 7201 6 -7202 7201 -1 -7221 7201 -1 -7601 7201 -1 -7202 7202 6 -7203 7202 -1 -7222 7202 -1 -7602 7202 -1 -7203 7203 6 -7204 7203 -1 -7223 7203 -1 -7603 7203 -1 -7204 7204 6 -7205 7204 -1 -7224 7204 -1 -7604 7204 -1 -7205 7205 6 -7206 7205 -1 -7225 7205 -1 -7605 7205 -1 -7206 7206 6 -7207 7206 -1 -7226 7206 -1 -7606 7206 -1 -7207 7207 6 -7208 7207 -1 -7227 7207 -1 -7607 7207 -1 -7208 7208 6 -7209 7208 -1 -7228 7208 -1 -7608 7208 -1 -7209 7209 6 -7210 7209 -1 -7229 7209 -1 -7609 7209 -1 -7210 7210 6 -7211 7210 -1 -7230 7210 -1 -7610 7210 -1 -7211 7211 6 -7212 7211 -1 -7231 7211 -1 -7611 7211 -1 -7212 7212 6 -7213 7212 -1 -7232 7212 -1 -7612 7212 -1 -7213 7213 6 -7214 7213 -1 -7233 7213 -1 -7613 7213 -1 -7214 7214 6 -7215 7214 -1 -7234 7214 -1 -7614 7214 -1 -7215 7215 6 -7216 7215 -1 -7235 7215 -1 -7615 7215 -1 -7216 7216 6 -7217 7216 -1 -7236 7216 -1 -7616 7216 -1 -7217 7217 6 -7218 7217 -1 -7237 7217 -1 -7617 7217 -1 -7218 7218 6 -7219 7218 -1 -7238 7218 -1 -7618 7218 -1 -7219 7219 6 -7220 7219 -1 -7239 7219 -1 -7619 7219 -1 -7220 7220 6 -7240 7220 -1 -7620 7220 -1 -7221 7221 6 -7222 7221 -1 -7241 7221 -1 -7621 7221 -1 -7222 7222 6 -7223 7222 -1 -7242 7222 -1 -7622 7222 -1 -7223 7223 6 -7224 7223 -1 -7243 7223 -1 -7623 7223 -1 -7224 7224 6 -7225 7224 -1 -7244 7224 -1 -7624 7224 -1 -7225 7225 6 -7226 7225 -1 -7245 7225 -1 -7625 7225 -1 -7226 7226 6 -7227 7226 -1 -7246 7226 -1 -7626 7226 -1 -7227 7227 6 -7228 7227 -1 -7247 7227 -1 -7627 7227 -1 -7228 7228 6 -7229 7228 -1 -7248 7228 -1 -7628 7228 -1 -7229 7229 6 -7230 7229 -1 -7249 7229 -1 -7629 7229 -1 -7230 7230 6 -7231 7230 -1 -7250 7230 -1 -7630 7230 -1 -7231 7231 6 -7232 7231 -1 -7251 7231 -1 -7631 7231 -1 -7232 7232 6 -7233 7232 -1 -7252 7232 -1 -7632 7232 -1 -7233 7233 6 -7234 7233 -1 -7253 7233 -1 -7633 7233 -1 -7234 7234 6 -7235 7234 -1 -7254 7234 -1 -7634 7234 -1 -7235 7235 6 -7236 7235 -1 -7255 7235 -1 -7635 7235 -1 -7236 7236 6 -7237 7236 -1 -7256 7236 -1 -7636 7236 -1 -7237 7237 6 -7238 7237 -1 -7257 7237 -1 -7637 7237 -1 -7238 7238 6 -7239 7238 -1 -7258 7238 -1 -7638 7238 -1 -7239 7239 6 -7240 7239 -1 -7259 7239 -1 -7639 7239 -1 -7240 7240 6 -7260 7240 -1 -7640 7240 -1 -7241 7241 6 -7242 7241 -1 -7261 7241 -1 -7641 7241 -1 -7242 7242 6 -7243 7242 -1 -7262 7242 -1 -7642 7242 -1 -7243 7243 6 -7244 7243 -1 -7263 7243 -1 -7643 7243 -1 -7244 7244 6 -7245 7244 -1 -7264 7244 -1 -7644 7244 -1 -7245 7245 6 -7246 7245 -1 -7265 7245 -1 -7645 7245 -1 -7246 7246 6 -7247 7246 -1 -7266 7246 -1 -7646 7246 -1 -7247 7247 6 -7248 7247 -1 -7267 7247 -1 -7647 7247 -1 -7248 7248 6 -7249 7248 -1 -7268 7248 -1 -7648 7248 -1 -7249 7249 6 -7250 7249 -1 -7269 7249 -1 -7649 7249 -1 -7250 7250 6 -7251 7250 -1 -7270 7250 -1 -7650 7250 -1 -7251 7251 6 -7252 7251 -1 -7271 7251 -1 -7651 7251 -1 -7252 7252 6 -7253 7252 -1 -7272 7252 -1 -7652 7252 -1 -7253 7253 6 -7254 7253 -1 -7273 7253 -1 -7653 7253 -1 -7254 7254 6 -7255 7254 -1 -7274 7254 -1 -7654 7254 -1 -7255 7255 6 -7256 7255 -1 -7275 7255 -1 -7655 7255 -1 -7256 7256 6 -7257 7256 -1 -7276 7256 -1 -7656 7256 -1 -7257 7257 6 -7258 7257 -1 -7277 7257 -1 -7657 7257 -1 -7258 7258 6 -7259 7258 -1 -7278 7258 -1 -7658 7258 -1 -7259 7259 6 -7260 7259 -1 -7279 7259 -1 -7659 7259 -1 -7260 7260 6 -7280 7260 -1 -7660 7260 -1 -7261 7261 6 -7262 7261 -1 -7281 7261 -1 -7661 7261 -1 -7262 7262 6 -7263 7262 -1 -7282 7262 -1 -7662 7262 -1 -7263 7263 6 -7264 7263 -1 -7283 7263 -1 -7663 7263 -1 -7264 7264 6 -7265 7264 -1 -7284 7264 -1 -7664 7264 -1 -7265 7265 6 -7266 7265 -1 -7285 7265 -1 -7665 7265 -1 -7266 7266 6 -7267 7266 -1 -7286 7266 -1 -7666 7266 -1 -7267 7267 6 -7268 7267 -1 -7287 7267 -1 -7667 7267 -1 -7268 7268 6 -7269 7268 -1 -7288 7268 -1 -7668 7268 -1 -7269 7269 6 -7270 7269 -1 -7289 7269 -1 -7669 7269 -1 -7270 7270 6 -7271 7270 -1 -7290 7270 -1 -7670 7270 -1 -7271 7271 6 -7272 7271 -1 -7291 7271 -1 -7671 7271 -1 -7272 7272 6 -7273 7272 -1 -7292 7272 -1 -7672 7272 -1 -7273 7273 6 -7274 7273 -1 -7293 7273 -1 -7673 7273 -1 -7274 7274 6 -7275 7274 -1 -7294 7274 -1 -7674 7274 -1 -7275 7275 6 -7276 7275 -1 -7295 7275 -1 -7675 7275 -1 -7276 7276 6 -7277 7276 -1 -7296 7276 -1 -7676 7276 -1 -7277 7277 6 -7278 7277 -1 -7297 7277 -1 -7677 7277 -1 -7278 7278 6 -7279 7278 -1 -7298 7278 -1 -7678 7278 -1 -7279 7279 6 -7280 7279 -1 -7299 7279 -1 -7679 7279 -1 -7280 7280 6 -7300 7280 -1 -7680 7280 -1 -7281 7281 6 -7282 7281 -1 -7301 7281 -1 -7681 7281 -1 -7282 7282 6 -7283 7282 -1 -7302 7282 -1 -7682 7282 -1 -7283 7283 6 -7284 7283 -1 -7303 7283 -1 -7683 7283 -1 -7284 7284 6 -7285 7284 -1 -7304 7284 -1 -7684 7284 -1 -7285 7285 6 -7286 7285 -1 -7305 7285 -1 -7685 7285 -1 -7286 7286 6 -7287 7286 -1 -7306 7286 -1 -7686 7286 -1 -7287 7287 6 -7288 7287 -1 -7307 7287 -1 -7687 7287 -1 -7288 7288 6 -7289 7288 -1 -7308 7288 -1 -7688 7288 -1 -7289 7289 6 -7290 7289 -1 -7309 7289 -1 -7689 7289 -1 -7290 7290 6 -7291 7290 -1 -7310 7290 -1 -7690 7290 -1 -7291 7291 6 -7292 7291 -1 -7311 7291 -1 -7691 7291 -1 -7292 7292 6 -7293 7292 -1 -7312 7292 -1 -7692 7292 -1 -7293 7293 6 -7294 7293 -1 -7313 7293 -1 -7693 7293 -1 -7294 7294 6 -7295 7294 -1 -7314 7294 -1 -7694 7294 -1 -7295 7295 6 -7296 7295 -1 -7315 7295 -1 -7695 7295 -1 -7296 7296 6 -7297 7296 -1 -7316 7296 -1 -7696 7296 -1 -7297 7297 6 -7298 7297 -1 -7317 7297 -1 -7697 7297 -1 -7298 7298 6 -7299 7298 -1 -7318 7298 -1 -7698 7298 -1 -7299 7299 6 -7300 7299 -1 -7319 7299 -1 -7699 7299 -1 -7300 7300 6 -7320 7300 -1 -7700 7300 -1 -7301 7301 6 -7302 7301 -1 -7321 7301 -1 -7701 7301 -1 -7302 7302 6 -7303 7302 -1 -7322 7302 -1 -7702 7302 -1 -7303 7303 6 -7304 7303 -1 -7323 7303 -1 -7703 7303 -1 -7304 7304 6 -7305 7304 -1 -7324 7304 -1 -7704 7304 -1 -7305 7305 6 -7306 7305 -1 -7325 7305 -1 -7705 7305 -1 -7306 7306 6 -7307 7306 -1 -7326 7306 -1 -7706 7306 -1 -7307 7307 6 -7308 7307 -1 -7327 7307 -1 -7707 7307 -1 -7308 7308 6 -7309 7308 -1 -7328 7308 -1 -7708 7308 -1 -7309 7309 6 -7310 7309 -1 -7329 7309 -1 -7709 7309 -1 -7310 7310 6 -7311 7310 -1 -7330 7310 -1 -7710 7310 -1 -7311 7311 6 -7312 7311 -1 -7331 7311 -1 -7711 7311 -1 -7312 7312 6 -7313 7312 -1 -7332 7312 -1 -7712 7312 -1 -7313 7313 6 -7314 7313 -1 -7333 7313 -1 -7713 7313 -1 -7314 7314 6 -7315 7314 -1 -7334 7314 -1 -7714 7314 -1 -7315 7315 6 -7316 7315 -1 -7335 7315 -1 -7715 7315 -1 -7316 7316 6 -7317 7316 -1 -7336 7316 -1 -7716 7316 -1 -7317 7317 6 -7318 7317 -1 -7337 7317 -1 -7717 7317 -1 -7318 7318 6 -7319 7318 -1 -7338 7318 -1 -7718 7318 -1 -7319 7319 6 -7320 7319 -1 -7339 7319 -1 -7719 7319 -1 -7320 7320 6 -7340 7320 -1 -7720 7320 -1 -7321 7321 6 -7322 7321 -1 -7341 7321 -1 -7721 7321 -1 -7322 7322 6 -7323 7322 -1 -7342 7322 -1 -7722 7322 -1 -7323 7323 6 -7324 7323 -1 -7343 7323 -1 -7723 7323 -1 -7324 7324 6 -7325 7324 -1 -7344 7324 -1 -7724 7324 -1 -7325 7325 6 -7326 7325 -1 -7345 7325 -1 -7725 7325 -1 -7326 7326 6 -7327 7326 -1 -7346 7326 -1 -7726 7326 -1 -7327 7327 6 -7328 7327 -1 -7347 7327 -1 -7727 7327 -1 -7328 7328 6 -7329 7328 -1 -7348 7328 -1 -7728 7328 -1 -7329 7329 6 -7330 7329 -1 -7349 7329 -1 -7729 7329 -1 -7330 7330 6 -7331 7330 -1 -7350 7330 -1 -7730 7330 -1 -7331 7331 6 -7332 7331 -1 -7351 7331 -1 -7731 7331 -1 -7332 7332 6 -7333 7332 -1 -7352 7332 -1 -7732 7332 -1 -7333 7333 6 -7334 7333 -1 -7353 7333 -1 -7733 7333 -1 -7334 7334 6 -7335 7334 -1 -7354 7334 -1 -7734 7334 -1 -7335 7335 6 -7336 7335 -1 -7355 7335 -1 -7735 7335 -1 -7336 7336 6 -7337 7336 -1 -7356 7336 -1 -7736 7336 -1 -7337 7337 6 -7338 7337 -1 -7357 7337 -1 -7737 7337 -1 -7338 7338 6 -7339 7338 -1 -7358 7338 -1 -7738 7338 -1 -7339 7339 6 -7340 7339 -1 -7359 7339 -1 -7739 7339 -1 -7340 7340 6 -7360 7340 -1 -7740 7340 -1 -7341 7341 6 -7342 7341 -1 -7361 7341 -1 -7741 7341 -1 -7342 7342 6 -7343 7342 -1 -7362 7342 -1 -7742 7342 -1 -7343 7343 6 -7344 7343 -1 -7363 7343 -1 -7743 7343 -1 -7344 7344 6 -7345 7344 -1 -7364 7344 -1 -7744 7344 -1 -7345 7345 6 -7346 7345 -1 -7365 7345 -1 -7745 7345 -1 -7346 7346 6 -7347 7346 -1 -7366 7346 -1 -7746 7346 -1 -7347 7347 6 -7348 7347 -1 -7367 7347 -1 -7747 7347 -1 -7348 7348 6 -7349 7348 -1 -7368 7348 -1 -7748 7348 -1 -7349 7349 6 -7350 7349 -1 -7369 7349 -1 -7749 7349 -1 -7350 7350 6 -7351 7350 -1 -7370 7350 -1 -7750 7350 -1 -7351 7351 6 -7352 7351 -1 -7371 7351 -1 -7751 7351 -1 -7352 7352 6 -7353 7352 -1 -7372 7352 -1 -7752 7352 -1 -7353 7353 6 -7354 7353 -1 -7373 7353 -1 -7753 7353 -1 -7354 7354 6 -7355 7354 -1 -7374 7354 -1 -7754 7354 -1 -7355 7355 6 -7356 7355 -1 -7375 7355 -1 -7755 7355 -1 -7356 7356 6 -7357 7356 -1 -7376 7356 -1 -7756 7356 -1 -7357 7357 6 -7358 7357 -1 -7377 7357 -1 -7757 7357 -1 -7358 7358 6 -7359 7358 -1 -7378 7358 -1 -7758 7358 -1 -7359 7359 6 -7360 7359 -1 -7379 7359 -1 -7759 7359 -1 -7360 7360 6 -7380 7360 -1 -7760 7360 -1 -7361 7361 6 -7362 7361 -1 -7381 7361 -1 -7761 7361 -1 -7362 7362 6 -7363 7362 -1 -7382 7362 -1 -7762 7362 -1 -7363 7363 6 -7364 7363 -1 -7383 7363 -1 -7763 7363 -1 -7364 7364 6 -7365 7364 -1 -7384 7364 -1 -7764 7364 -1 -7365 7365 6 -7366 7365 -1 -7385 7365 -1 -7765 7365 -1 -7366 7366 6 -7367 7366 -1 -7386 7366 -1 -7766 7366 -1 -7367 7367 6 -7368 7367 -1 -7387 7367 -1 -7767 7367 -1 -7368 7368 6 -7369 7368 -1 -7388 7368 -1 -7768 7368 -1 -7369 7369 6 -7370 7369 -1 -7389 7369 -1 -7769 7369 -1 -7370 7370 6 -7371 7370 -1 -7390 7370 -1 -7770 7370 -1 -7371 7371 6 -7372 7371 -1 -7391 7371 -1 -7771 7371 -1 -7372 7372 6 -7373 7372 -1 -7392 7372 -1 -7772 7372 -1 -7373 7373 6 -7374 7373 -1 -7393 7373 -1 -7773 7373 -1 -7374 7374 6 -7375 7374 -1 -7394 7374 -1 -7774 7374 -1 -7375 7375 6 -7376 7375 -1 -7395 7375 -1 -7775 7375 -1 -7376 7376 6 -7377 7376 -1 -7396 7376 -1 -7776 7376 -1 -7377 7377 6 -7378 7377 -1 -7397 7377 -1 -7777 7377 -1 -7378 7378 6 -7379 7378 -1 -7398 7378 -1 -7778 7378 -1 -7379 7379 6 -7380 7379 -1 -7399 7379 -1 -7779 7379 -1 -7380 7380 6 -7400 7380 -1 -7780 7380 -1 -7381 7381 6 -7382 7381 -1 -7401 7381 -1 -7781 7381 -1 -7382 7382 6 -7383 7382 -1 -7402 7382 -1 -7782 7382 -1 -7383 7383 6 -7384 7383 -1 -7403 7383 -1 -7783 7383 -1 -7384 7384 6 -7385 7384 -1 -7404 7384 -1 -7784 7384 -1 -7385 7385 6 -7386 7385 -1 -7405 7385 -1 -7785 7385 -1 -7386 7386 6 -7387 7386 -1 -7406 7386 -1 -7786 7386 -1 -7387 7387 6 -7388 7387 -1 -7407 7387 -1 -7787 7387 -1 -7388 7388 6 -7389 7388 -1 -7408 7388 -1 -7788 7388 -1 -7389 7389 6 -7390 7389 -1 -7409 7389 -1 -7789 7389 -1 -7390 7390 6 -7391 7390 -1 -7410 7390 -1 -7790 7390 -1 -7391 7391 6 -7392 7391 -1 -7411 7391 -1 -7791 7391 -1 -7392 7392 6 -7393 7392 -1 -7412 7392 -1 -7792 7392 -1 -7393 7393 6 -7394 7393 -1 -7413 7393 -1 -7793 7393 -1 -7394 7394 6 -7395 7394 -1 -7414 7394 -1 -7794 7394 -1 -7395 7395 6 -7396 7395 -1 -7415 7395 -1 -7795 7395 -1 -7396 7396 6 -7397 7396 -1 -7416 7396 -1 -7796 7396 -1 -7397 7397 6 -7398 7397 -1 -7417 7397 -1 -7797 7397 -1 -7398 7398 6 -7399 7398 -1 -7418 7398 -1 -7798 7398 -1 -7399 7399 6 -7400 7399 -1 -7419 7399 -1 -7799 7399 -1 -7400 7400 6 -7420 7400 -1 -7800 7400 -1 -7401 7401 6 -7402 7401 -1 -7421 7401 -1 -7801 7401 -1 -7402 7402 6 -7403 7402 -1 -7422 7402 -1 -7802 7402 -1 -7403 7403 6 -7404 7403 -1 -7423 7403 -1 -7803 7403 -1 -7404 7404 6 -7405 7404 -1 -7424 7404 -1 -7804 7404 -1 -7405 7405 6 -7406 7405 -1 -7425 7405 -1 -7805 7405 -1 -7406 7406 6 -7407 7406 -1 -7426 7406 -1 -7806 7406 -1 -7407 7407 6 -7408 7407 -1 -7427 7407 -1 -7807 7407 -1 -7408 7408 6 -7409 7408 -1 -7428 7408 -1 -7808 7408 -1 -7409 7409 6 -7410 7409 -1 -7429 7409 -1 -7809 7409 -1 -7410 7410 6 -7411 7410 -1 -7430 7410 -1 -7810 7410 -1 -7411 7411 6 -7412 7411 -1 -7431 7411 -1 -7811 7411 -1 -7412 7412 6 -7413 7412 -1 -7432 7412 -1 -7812 7412 -1 -7413 7413 6 -7414 7413 -1 -7433 7413 -1 -7813 7413 -1 -7414 7414 6 -7415 7414 -1 -7434 7414 -1 -7814 7414 -1 -7415 7415 6 -7416 7415 -1 -7435 7415 -1 -7815 7415 -1 -7416 7416 6 -7417 7416 -1 -7436 7416 -1 -7816 7416 -1 -7417 7417 6 -7418 7417 -1 -7437 7417 -1 -7817 7417 -1 -7418 7418 6 -7419 7418 -1 -7438 7418 -1 -7818 7418 -1 -7419 7419 6 -7420 7419 -1 -7439 7419 -1 -7819 7419 -1 -7420 7420 6 -7440 7420 -1 -7820 7420 -1 -7421 7421 6 -7422 7421 -1 -7441 7421 -1 -7821 7421 -1 -7422 7422 6 -7423 7422 -1 -7442 7422 -1 -7822 7422 -1 -7423 7423 6 -7424 7423 -1 -7443 7423 -1 -7823 7423 -1 -7424 7424 6 -7425 7424 -1 -7444 7424 -1 -7824 7424 -1 -7425 7425 6 -7426 7425 -1 -7445 7425 -1 -7825 7425 -1 -7426 7426 6 -7427 7426 -1 -7446 7426 -1 -7826 7426 -1 -7427 7427 6 -7428 7427 -1 -7447 7427 -1 -7827 7427 -1 -7428 7428 6 -7429 7428 -1 -7448 7428 -1 -7828 7428 -1 -7429 7429 6 -7430 7429 -1 -7449 7429 -1 -7829 7429 -1 -7430 7430 6 -7431 7430 -1 -7450 7430 -1 -7830 7430 -1 -7431 7431 6 -7432 7431 -1 -7451 7431 -1 -7831 7431 -1 -7432 7432 6 -7433 7432 -1 -7452 7432 -1 -7832 7432 -1 -7433 7433 6 -7434 7433 -1 -7453 7433 -1 -7833 7433 -1 -7434 7434 6 -7435 7434 -1 -7454 7434 -1 -7834 7434 -1 -7435 7435 6 -7436 7435 -1 -7455 7435 -1 -7835 7435 -1 -7436 7436 6 -7437 7436 -1 -7456 7436 -1 -7836 7436 -1 -7437 7437 6 -7438 7437 -1 -7457 7437 -1 -7837 7437 -1 -7438 7438 6 -7439 7438 -1 -7458 7438 -1 -7838 7438 -1 -7439 7439 6 -7440 7439 -1 -7459 7439 -1 -7839 7439 -1 -7440 7440 6 -7460 7440 -1 -7840 7440 -1 -7441 7441 6 -7442 7441 -1 -7461 7441 -1 -7841 7441 -1 -7442 7442 6 -7443 7442 -1 -7462 7442 -1 -7842 7442 -1 -7443 7443 6 -7444 7443 -1 -7463 7443 -1 -7843 7443 -1 -7444 7444 6 -7445 7444 -1 -7464 7444 -1 -7844 7444 -1 -7445 7445 6 -7446 7445 -1 -7465 7445 -1 -7845 7445 -1 -7446 7446 6 -7447 7446 -1 -7466 7446 -1 -7846 7446 -1 -7447 7447 6 -7448 7447 -1 -7467 7447 -1 -7847 7447 -1 -7448 7448 6 -7449 7448 -1 -7468 7448 -1 -7848 7448 -1 -7449 7449 6 -7450 7449 -1 -7469 7449 -1 -7849 7449 -1 -7450 7450 6 -7451 7450 -1 -7470 7450 -1 -7850 7450 -1 -7451 7451 6 -7452 7451 -1 -7471 7451 -1 -7851 7451 -1 -7452 7452 6 -7453 7452 -1 -7472 7452 -1 -7852 7452 -1 -7453 7453 6 -7454 7453 -1 -7473 7453 -1 -7853 7453 -1 -7454 7454 6 -7455 7454 -1 -7474 7454 -1 -7854 7454 -1 -7455 7455 6 -7456 7455 -1 -7475 7455 -1 -7855 7455 -1 -7456 7456 6 -7457 7456 -1 -7476 7456 -1 -7856 7456 -1 -7457 7457 6 -7458 7457 -1 -7477 7457 -1 -7857 7457 -1 -7458 7458 6 -7459 7458 -1 -7478 7458 -1 -7858 7458 -1 -7459 7459 6 -7460 7459 -1 -7479 7459 -1 -7859 7459 -1 -7460 7460 6 -7480 7460 -1 -7860 7460 -1 -7461 7461 6 -7462 7461 -1 -7481 7461 -1 -7861 7461 -1 -7462 7462 6 -7463 7462 -1 -7482 7462 -1 -7862 7462 -1 -7463 7463 6 -7464 7463 -1 -7483 7463 -1 -7863 7463 -1 -7464 7464 6 -7465 7464 -1 -7484 7464 -1 -7864 7464 -1 -7465 7465 6 -7466 7465 -1 -7485 7465 -1 -7865 7465 -1 -7466 7466 6 -7467 7466 -1 -7486 7466 -1 -7866 7466 -1 -7467 7467 6 -7468 7467 -1 -7487 7467 -1 -7867 7467 -1 -7468 7468 6 -7469 7468 -1 -7488 7468 -1 -7868 7468 -1 -7469 7469 6 -7470 7469 -1 -7489 7469 -1 -7869 7469 -1 -7470 7470 6 -7471 7470 -1 -7490 7470 -1 -7870 7470 -1 -7471 7471 6 -7472 7471 -1 -7491 7471 -1 -7871 7471 -1 -7472 7472 6 -7473 7472 -1 -7492 7472 -1 -7872 7472 -1 -7473 7473 6 -7474 7473 -1 -7493 7473 -1 -7873 7473 -1 -7474 7474 6 -7475 7474 -1 -7494 7474 -1 -7874 7474 -1 -7475 7475 6 -7476 7475 -1 -7495 7475 -1 -7875 7475 -1 -7476 7476 6 -7477 7476 -1 -7496 7476 -1 -7876 7476 -1 -7477 7477 6 -7478 7477 -1 -7497 7477 -1 -7877 7477 -1 -7478 7478 6 -7479 7478 -1 -7498 7478 -1 -7878 7478 -1 -7479 7479 6 -7480 7479 -1 -7499 7479 -1 -7879 7479 -1 -7480 7480 6 -7500 7480 -1 -7880 7480 -1 -7481 7481 6 -7482 7481 -1 -7501 7481 -1 -7881 7481 -1 -7482 7482 6 -7483 7482 -1 -7502 7482 -1 -7882 7482 -1 -7483 7483 6 -7484 7483 -1 -7503 7483 -1 -7883 7483 -1 -7484 7484 6 -7485 7484 -1 -7504 7484 -1 -7884 7484 -1 -7485 7485 6 -7486 7485 -1 -7505 7485 -1 -7885 7485 -1 -7486 7486 6 -7487 7486 -1 -7506 7486 -1 -7886 7486 -1 -7487 7487 6 -7488 7487 -1 -7507 7487 -1 -7887 7487 -1 -7488 7488 6 -7489 7488 -1 -7508 7488 -1 -7888 7488 -1 -7489 7489 6 -7490 7489 -1 -7509 7489 -1 -7889 7489 -1 -7490 7490 6 -7491 7490 -1 -7510 7490 -1 -7890 7490 -1 -7491 7491 6 -7492 7491 -1 -7511 7491 -1 -7891 7491 -1 -7492 7492 6 -7493 7492 -1 -7512 7492 -1 -7892 7492 -1 -7493 7493 6 -7494 7493 -1 -7513 7493 -1 -7893 7493 -1 -7494 7494 6 -7495 7494 -1 -7514 7494 -1 -7894 7494 -1 -7495 7495 6 -7496 7495 -1 -7515 7495 -1 -7895 7495 -1 -7496 7496 6 -7497 7496 -1 -7516 7496 -1 -7896 7496 -1 -7497 7497 6 -7498 7497 -1 -7517 7497 -1 -7897 7497 -1 -7498 7498 6 -7499 7498 -1 -7518 7498 -1 -7898 7498 -1 -7499 7499 6 -7500 7499 -1 -7519 7499 -1 -7899 7499 -1 -7500 7500 6 -7520 7500 -1 -7900 7500 -1 -7501 7501 6 -7502 7501 -1 -7521 7501 -1 -7901 7501 -1 -7502 7502 6 -7503 7502 -1 -7522 7502 -1 -7902 7502 -1 -7503 7503 6 -7504 7503 -1 -7523 7503 -1 -7903 7503 -1 -7504 7504 6 -7505 7504 -1 -7524 7504 -1 -7904 7504 -1 -7505 7505 6 -7506 7505 -1 -7525 7505 -1 -7905 7505 -1 -7506 7506 6 -7507 7506 -1 -7526 7506 -1 -7906 7506 -1 -7507 7507 6 -7508 7507 -1 -7527 7507 -1 -7907 7507 -1 -7508 7508 6 -7509 7508 -1 -7528 7508 -1 -7908 7508 -1 -7509 7509 6 -7510 7509 -1 -7529 7509 -1 -7909 7509 -1 -7510 7510 6 -7511 7510 -1 -7530 7510 -1 -7910 7510 -1 -7511 7511 6 -7512 7511 -1 -7531 7511 -1 -7911 7511 -1 -7512 7512 6 -7513 7512 -1 -7532 7512 -1 -7912 7512 -1 -7513 7513 6 -7514 7513 -1 -7533 7513 -1 -7913 7513 -1 -7514 7514 6 -7515 7514 -1 -7534 7514 -1 -7914 7514 -1 -7515 7515 6 -7516 7515 -1 -7535 7515 -1 -7915 7515 -1 -7516 7516 6 -7517 7516 -1 -7536 7516 -1 -7916 7516 -1 -7517 7517 6 -7518 7517 -1 -7537 7517 -1 -7917 7517 -1 -7518 7518 6 -7519 7518 -1 -7538 7518 -1 -7918 7518 -1 -7519 7519 6 -7520 7519 -1 -7539 7519 -1 -7919 7519 -1 -7520 7520 6 -7540 7520 -1 -7920 7520 -1 -7521 7521 6 -7522 7521 -1 -7541 7521 -1 -7921 7521 -1 -7522 7522 6 -7523 7522 -1 -7542 7522 -1 -7922 7522 -1 -7523 7523 6 -7524 7523 -1 -7543 7523 -1 -7923 7523 -1 -7524 7524 6 -7525 7524 -1 -7544 7524 -1 -7924 7524 -1 -7525 7525 6 -7526 7525 -1 -7545 7525 -1 -7925 7525 -1 -7526 7526 6 -7527 7526 -1 -7546 7526 -1 -7926 7526 -1 -7527 7527 6 -7528 7527 -1 -7547 7527 -1 -7927 7527 -1 -7528 7528 6 -7529 7528 -1 -7548 7528 -1 -7928 7528 -1 -7529 7529 6 -7530 7529 -1 -7549 7529 -1 -7929 7529 -1 -7530 7530 6 -7531 7530 -1 -7550 7530 -1 -7930 7530 -1 -7531 7531 6 -7532 7531 -1 -7551 7531 -1 -7931 7531 -1 -7532 7532 6 -7533 7532 -1 -7552 7532 -1 -7932 7532 -1 -7533 7533 6 -7534 7533 -1 -7553 7533 -1 -7933 7533 -1 -7534 7534 6 -7535 7534 -1 -7554 7534 -1 -7934 7534 -1 -7535 7535 6 -7536 7535 -1 -7555 7535 -1 -7935 7535 -1 -7536 7536 6 -7537 7536 -1 -7556 7536 -1 -7936 7536 -1 -7537 7537 6 -7538 7537 -1 -7557 7537 -1 -7937 7537 -1 -7538 7538 6 -7539 7538 -1 -7558 7538 -1 -7938 7538 -1 -7539 7539 6 -7540 7539 -1 -7559 7539 -1 -7939 7539 -1 -7540 7540 6 -7560 7540 -1 -7940 7540 -1 -7541 7541 6 -7542 7541 -1 -7561 7541 -1 -7941 7541 -1 -7542 7542 6 -7543 7542 -1 -7562 7542 -1 -7942 7542 -1 -7543 7543 6 -7544 7543 -1 -7563 7543 -1 -7943 7543 -1 -7544 7544 6 -7545 7544 -1 -7564 7544 -1 -7944 7544 -1 -7545 7545 6 -7546 7545 -1 -7565 7545 -1 -7945 7545 -1 -7546 7546 6 -7547 7546 -1 -7566 7546 -1 -7946 7546 -1 -7547 7547 6 -7548 7547 -1 -7567 7547 -1 -7947 7547 -1 -7548 7548 6 -7549 7548 -1 -7568 7548 -1 -7948 7548 -1 -7549 7549 6 -7550 7549 -1 -7569 7549 -1 -7949 7549 -1 -7550 7550 6 -7551 7550 -1 -7570 7550 -1 -7950 7550 -1 -7551 7551 6 -7552 7551 -1 -7571 7551 -1 -7951 7551 -1 -7552 7552 6 -7553 7552 -1 -7572 7552 -1 -7952 7552 -1 -7553 7553 6 -7554 7553 -1 -7573 7553 -1 -7953 7553 -1 -7554 7554 6 -7555 7554 -1 -7574 7554 -1 -7954 7554 -1 -7555 7555 6 -7556 7555 -1 -7575 7555 -1 -7955 7555 -1 -7556 7556 6 -7557 7556 -1 -7576 7556 -1 -7956 7556 -1 -7557 7557 6 -7558 7557 -1 -7577 7557 -1 -7957 7557 -1 -7558 7558 6 -7559 7558 -1 -7578 7558 -1 -7958 7558 -1 -7559 7559 6 -7560 7559 -1 -7579 7559 -1 -7959 7559 -1 -7560 7560 6 -7580 7560 -1 -7960 7560 -1 -7561 7561 6 -7562 7561 -1 -7581 7561 -1 -7961 7561 -1 -7562 7562 6 -7563 7562 -1 -7582 7562 -1 -7962 7562 -1 -7563 7563 6 -7564 7563 -1 -7583 7563 -1 -7963 7563 -1 -7564 7564 6 -7565 7564 -1 -7584 7564 -1 -7964 7564 -1 -7565 7565 6 -7566 7565 -1 -7585 7565 -1 -7965 7565 -1 -7566 7566 6 -7567 7566 -1 -7586 7566 -1 -7966 7566 -1 -7567 7567 6 -7568 7567 -1 -7587 7567 -1 -7967 7567 -1 -7568 7568 6 -7569 7568 -1 -7588 7568 -1 -7968 7568 -1 -7569 7569 6 -7570 7569 -1 -7589 7569 -1 -7969 7569 -1 -7570 7570 6 -7571 7570 -1 -7590 7570 -1 -7970 7570 -1 -7571 7571 6 -7572 7571 -1 -7591 7571 -1 -7971 7571 -1 -7572 7572 6 -7573 7572 -1 -7592 7572 -1 -7972 7572 -1 -7573 7573 6 -7574 7573 -1 -7593 7573 -1 -7973 7573 -1 -7574 7574 6 -7575 7574 -1 -7594 7574 -1 -7974 7574 -1 -7575 7575 6 -7576 7575 -1 -7595 7575 -1 -7975 7575 -1 -7576 7576 6 -7577 7576 -1 -7596 7576 -1 -7976 7576 -1 -7577 7577 6 -7578 7577 -1 -7597 7577 -1 -7977 7577 -1 -7578 7578 6 -7579 7578 -1 -7598 7578 -1 -7978 7578 -1 -7579 7579 6 -7580 7579 -1 -7599 7579 -1 -7979 7579 -1 -7580 7580 6 -7600 7580 -1 -7980 7580 -1 -7581 7581 6 -7582 7581 -1 -7981 7581 -1 -7582 7582 6 -7583 7582 -1 -7982 7582 -1 -7583 7583 6 -7584 7583 -1 -7983 7583 -1 -7584 7584 6 -7585 7584 -1 -7984 7584 -1 -7585 7585 6 -7586 7585 -1 -7985 7585 -1 -7586 7586 6 -7587 7586 -1 -7986 7586 -1 -7587 7587 6 -7588 7587 -1 -7987 7587 -1 -7588 7588 6 -7589 7588 -1 -7988 7588 -1 -7589 7589 6 -7590 7589 -1 -7989 7589 -1 -7590 7590 6 -7591 7590 -1 -7990 7590 -1 -7591 7591 6 -7592 7591 -1 -7991 7591 -1 -7592 7592 6 -7593 7592 -1 -7992 7592 -1 -7593 7593 6 -7594 7593 -1 -7993 7593 -1 -7594 7594 6 -7595 7594 -1 -7994 7594 -1 -7595 7595 6 -7596 7595 -1 -7995 7595 -1 -7596 7596 6 -7597 7596 -1 -7996 7596 -1 -7597 7597 6 -7598 7597 -1 -7997 7597 -1 -7598 7598 6 -7599 7598 -1 -7998 7598 -1 -7599 7599 6 -7600 7599 -1 -7999 7599 -1 -7600 7600 6 -8000 7600 -1 -7601 7601 6 -7602 7601 -1 -7621 7601 -1 -7602 7602 6 -7603 7602 -1 -7622 7602 -1 -7603 7603 6 -7604 7603 -1 -7623 7603 -1 -7604 7604 6 -7605 7604 -1 -7624 7604 -1 -7605 7605 6 -7606 7605 -1 -7625 7605 -1 -7606 7606 6 -7607 7606 -1 -7626 7606 -1 -7607 7607 6 -7608 7607 -1 -7627 7607 -1 -7608 7608 6 -7609 7608 -1 -7628 7608 -1 -7609 7609 6 -7610 7609 -1 -7629 7609 -1 -7610 7610 6 -7611 7610 -1 -7630 7610 -1 -7611 7611 6 -7612 7611 -1 -7631 7611 -1 -7612 7612 6 -7613 7612 -1 -7632 7612 -1 -7613 7613 6 -7614 7613 -1 -7633 7613 -1 -7614 7614 6 -7615 7614 -1 -7634 7614 -1 -7615 7615 6 -7616 7615 -1 -7635 7615 -1 -7616 7616 6 -7617 7616 -1 -7636 7616 -1 -7617 7617 6 -7618 7617 -1 -7637 7617 -1 -7618 7618 6 -7619 7618 -1 -7638 7618 -1 -7619 7619 6 -7620 7619 -1 -7639 7619 -1 -7620 7620 6 -7640 7620 -1 -7621 7621 6 -7622 7621 -1 -7641 7621 -1 -7622 7622 6 -7623 7622 -1 -7642 7622 -1 -7623 7623 6 -7624 7623 -1 -7643 7623 -1 -7624 7624 6 -7625 7624 -1 -7644 7624 -1 -7625 7625 6 -7626 7625 -1 -7645 7625 -1 -7626 7626 6 -7627 7626 -1 -7646 7626 -1 -7627 7627 6 -7628 7627 -1 -7647 7627 -1 -7628 7628 6 -7629 7628 -1 -7648 7628 -1 -7629 7629 6 -7630 7629 -1 -7649 7629 -1 -7630 7630 6 -7631 7630 -1 -7650 7630 -1 -7631 7631 6 -7632 7631 -1 -7651 7631 -1 -7632 7632 6 -7633 7632 -1 -7652 7632 -1 -7633 7633 6 -7634 7633 -1 -7653 7633 -1 -7634 7634 6 -7635 7634 -1 -7654 7634 -1 -7635 7635 6 -7636 7635 -1 -7655 7635 -1 -7636 7636 6 -7637 7636 -1 -7656 7636 -1 -7637 7637 6 -7638 7637 -1 -7657 7637 -1 -7638 7638 6 -7639 7638 -1 -7658 7638 -1 -7639 7639 6 -7640 7639 -1 -7659 7639 -1 -7640 7640 6 -7660 7640 -1 -7641 7641 6 -7642 7641 -1 -7661 7641 -1 -7642 7642 6 -7643 7642 -1 -7662 7642 -1 -7643 7643 6 -7644 7643 -1 -7663 7643 -1 -7644 7644 6 -7645 7644 -1 -7664 7644 -1 -7645 7645 6 -7646 7645 -1 -7665 7645 -1 -7646 7646 6 -7647 7646 -1 -7666 7646 -1 -7647 7647 6 -7648 7647 -1 -7667 7647 -1 -7648 7648 6 -7649 7648 -1 -7668 7648 -1 -7649 7649 6 -7650 7649 -1 -7669 7649 -1 -7650 7650 6 -7651 7650 -1 -7670 7650 -1 -7651 7651 6 -7652 7651 -1 -7671 7651 -1 -7652 7652 6 -7653 7652 -1 -7672 7652 -1 -7653 7653 6 -7654 7653 -1 -7673 7653 -1 -7654 7654 6 -7655 7654 -1 -7674 7654 -1 -7655 7655 6 -7656 7655 -1 -7675 7655 -1 -7656 7656 6 -7657 7656 -1 -7676 7656 -1 -7657 7657 6 -7658 7657 -1 -7677 7657 -1 -7658 7658 6 -7659 7658 -1 -7678 7658 -1 -7659 7659 6 -7660 7659 -1 -7679 7659 -1 -7660 7660 6 -7680 7660 -1 -7661 7661 6 -7662 7661 -1 -7681 7661 -1 -7662 7662 6 -7663 7662 -1 -7682 7662 -1 -7663 7663 6 -7664 7663 -1 -7683 7663 -1 -7664 7664 6 -7665 7664 -1 -7684 7664 -1 -7665 7665 6 -7666 7665 -1 -7685 7665 -1 -7666 7666 6 -7667 7666 -1 -7686 7666 -1 -7667 7667 6 -7668 7667 -1 -7687 7667 -1 -7668 7668 6 -7669 7668 -1 -7688 7668 -1 -7669 7669 6 -7670 7669 -1 -7689 7669 -1 -7670 7670 6 -7671 7670 -1 -7690 7670 -1 -7671 7671 6 -7672 7671 -1 -7691 7671 -1 -7672 7672 6 -7673 7672 -1 -7692 7672 -1 -7673 7673 6 -7674 7673 -1 -7693 7673 -1 -7674 7674 6 -7675 7674 -1 -7694 7674 -1 -7675 7675 6 -7676 7675 -1 -7695 7675 -1 -7676 7676 6 -7677 7676 -1 -7696 7676 -1 -7677 7677 6 -7678 7677 -1 -7697 7677 -1 -7678 7678 6 -7679 7678 -1 -7698 7678 -1 -7679 7679 6 -7680 7679 -1 -7699 7679 -1 -7680 7680 6 -7700 7680 -1 -7681 7681 6 -7682 7681 -1 -7701 7681 -1 -7682 7682 6 -7683 7682 -1 -7702 7682 -1 -7683 7683 6 -7684 7683 -1 -7703 7683 -1 -7684 7684 6 -7685 7684 -1 -7704 7684 -1 -7685 7685 6 -7686 7685 -1 -7705 7685 -1 -7686 7686 6 -7687 7686 -1 -7706 7686 -1 -7687 7687 6 -7688 7687 -1 -7707 7687 -1 -7688 7688 6 -7689 7688 -1 -7708 7688 -1 -7689 7689 6 -7690 7689 -1 -7709 7689 -1 -7690 7690 6 -7691 7690 -1 -7710 7690 -1 -7691 7691 6 -7692 7691 -1 -7711 7691 -1 -7692 7692 6 -7693 7692 -1 -7712 7692 -1 -7693 7693 6 -7694 7693 -1 -7713 7693 -1 -7694 7694 6 -7695 7694 -1 -7714 7694 -1 -7695 7695 6 -7696 7695 -1 -7715 7695 -1 -7696 7696 6 -7697 7696 -1 -7716 7696 -1 -7697 7697 6 -7698 7697 -1 -7717 7697 -1 -7698 7698 6 -7699 7698 -1 -7718 7698 -1 -7699 7699 6 -7700 7699 -1 -7719 7699 -1 -7700 7700 6 -7720 7700 -1 -7701 7701 6 -7702 7701 -1 -7721 7701 -1 -7702 7702 6 -7703 7702 -1 -7722 7702 -1 -7703 7703 6 -7704 7703 -1 -7723 7703 -1 -7704 7704 6 -7705 7704 -1 -7724 7704 -1 -7705 7705 6 -7706 7705 -1 -7725 7705 -1 -7706 7706 6 -7707 7706 -1 -7726 7706 -1 -7707 7707 6 -7708 7707 -1 -7727 7707 -1 -7708 7708 6 -7709 7708 -1 -7728 7708 -1 -7709 7709 6 -7710 7709 -1 -7729 7709 -1 -7710 7710 6 -7711 7710 -1 -7730 7710 -1 -7711 7711 6 -7712 7711 -1 -7731 7711 -1 -7712 7712 6 -7713 7712 -1 -7732 7712 -1 -7713 7713 6 -7714 7713 -1 -7733 7713 -1 -7714 7714 6 -7715 7714 -1 -7734 7714 -1 -7715 7715 6 -7716 7715 -1 -7735 7715 -1 -7716 7716 6 -7717 7716 -1 -7736 7716 -1 -7717 7717 6 -7718 7717 -1 -7737 7717 -1 -7718 7718 6 -7719 7718 -1 -7738 7718 -1 -7719 7719 6 -7720 7719 -1 -7739 7719 -1 -7720 7720 6 -7740 7720 -1 -7721 7721 6 -7722 7721 -1 -7741 7721 -1 -7722 7722 6 -7723 7722 -1 -7742 7722 -1 -7723 7723 6 -7724 7723 -1 -7743 7723 -1 -7724 7724 6 -7725 7724 -1 -7744 7724 -1 -7725 7725 6 -7726 7725 -1 -7745 7725 -1 -7726 7726 6 -7727 7726 -1 -7746 7726 -1 -7727 7727 6 -7728 7727 -1 -7747 7727 -1 -7728 7728 6 -7729 7728 -1 -7748 7728 -1 -7729 7729 6 -7730 7729 -1 -7749 7729 -1 -7730 7730 6 -7731 7730 -1 -7750 7730 -1 -7731 7731 6 -7732 7731 -1 -7751 7731 -1 -7732 7732 6 -7733 7732 -1 -7752 7732 -1 -7733 7733 6 -7734 7733 -1 -7753 7733 -1 -7734 7734 6 -7735 7734 -1 -7754 7734 -1 -7735 7735 6 -7736 7735 -1 -7755 7735 -1 -7736 7736 6 -7737 7736 -1 -7756 7736 -1 -7737 7737 6 -7738 7737 -1 -7757 7737 -1 -7738 7738 6 -7739 7738 -1 -7758 7738 -1 -7739 7739 6 -7740 7739 -1 -7759 7739 -1 -7740 7740 6 -7760 7740 -1 -7741 7741 6 -7742 7741 -1 -7761 7741 -1 -7742 7742 6 -7743 7742 -1 -7762 7742 -1 -7743 7743 6 -7744 7743 -1 -7763 7743 -1 -7744 7744 6 -7745 7744 -1 -7764 7744 -1 -7745 7745 6 -7746 7745 -1 -7765 7745 -1 -7746 7746 6 -7747 7746 -1 -7766 7746 -1 -7747 7747 6 -7748 7747 -1 -7767 7747 -1 -7748 7748 6 -7749 7748 -1 -7768 7748 -1 -7749 7749 6 -7750 7749 -1 -7769 7749 -1 -7750 7750 6 -7751 7750 -1 -7770 7750 -1 -7751 7751 6 -7752 7751 -1 -7771 7751 -1 -7752 7752 6 -7753 7752 -1 -7772 7752 -1 -7753 7753 6 -7754 7753 -1 -7773 7753 -1 -7754 7754 6 -7755 7754 -1 -7774 7754 -1 -7755 7755 6 -7756 7755 -1 -7775 7755 -1 -7756 7756 6 -7757 7756 -1 -7776 7756 -1 -7757 7757 6 -7758 7757 -1 -7777 7757 -1 -7758 7758 6 -7759 7758 -1 -7778 7758 -1 -7759 7759 6 -7760 7759 -1 -7779 7759 -1 -7760 7760 6 -7780 7760 -1 -7761 7761 6 -7762 7761 -1 -7781 7761 -1 -7762 7762 6 -7763 7762 -1 -7782 7762 -1 -7763 7763 6 -7764 7763 -1 -7783 7763 -1 -7764 7764 6 -7765 7764 -1 -7784 7764 -1 -7765 7765 6 -7766 7765 -1 -7785 7765 -1 -7766 7766 6 -7767 7766 -1 -7786 7766 -1 -7767 7767 6 -7768 7767 -1 -7787 7767 -1 -7768 7768 6 -7769 7768 -1 -7788 7768 -1 -7769 7769 6 -7770 7769 -1 -7789 7769 -1 -7770 7770 6 -7771 7770 -1 -7790 7770 -1 -7771 7771 6 -7772 7771 -1 -7791 7771 -1 -7772 7772 6 -7773 7772 -1 -7792 7772 -1 -7773 7773 6 -7774 7773 -1 -7793 7773 -1 -7774 7774 6 -7775 7774 -1 -7794 7774 -1 -7775 7775 6 -7776 7775 -1 -7795 7775 -1 -7776 7776 6 -7777 7776 -1 -7796 7776 -1 -7777 7777 6 -7778 7777 -1 -7797 7777 -1 -7778 7778 6 -7779 7778 -1 -7798 7778 -1 -7779 7779 6 -7780 7779 -1 -7799 7779 -1 -7780 7780 6 -7800 7780 -1 -7781 7781 6 -7782 7781 -1 -7801 7781 -1 -7782 7782 6 -7783 7782 -1 -7802 7782 -1 -7783 7783 6 -7784 7783 -1 -7803 7783 -1 -7784 7784 6 -7785 7784 -1 -7804 7784 -1 -7785 7785 6 -7786 7785 -1 -7805 7785 -1 -7786 7786 6 -7787 7786 -1 -7806 7786 -1 -7787 7787 6 -7788 7787 -1 -7807 7787 -1 -7788 7788 6 -7789 7788 -1 -7808 7788 -1 -7789 7789 6 -7790 7789 -1 -7809 7789 -1 -7790 7790 6 -7791 7790 -1 -7810 7790 -1 -7791 7791 6 -7792 7791 -1 -7811 7791 -1 -7792 7792 6 -7793 7792 -1 -7812 7792 -1 -7793 7793 6 -7794 7793 -1 -7813 7793 -1 -7794 7794 6 -7795 7794 -1 -7814 7794 -1 -7795 7795 6 -7796 7795 -1 -7815 7795 -1 -7796 7796 6 -7797 7796 -1 -7816 7796 -1 -7797 7797 6 -7798 7797 -1 -7817 7797 -1 -7798 7798 6 -7799 7798 -1 -7818 7798 -1 -7799 7799 6 -7800 7799 -1 -7819 7799 -1 -7800 7800 6 -7820 7800 -1 -7801 7801 6 -7802 7801 -1 -7821 7801 -1 -7802 7802 6 -7803 7802 -1 -7822 7802 -1 -7803 7803 6 -7804 7803 -1 -7823 7803 -1 -7804 7804 6 -7805 7804 -1 -7824 7804 -1 -7805 7805 6 -7806 7805 -1 -7825 7805 -1 -7806 7806 6 -7807 7806 -1 -7826 7806 -1 -7807 7807 6 -7808 7807 -1 -7827 7807 -1 -7808 7808 6 -7809 7808 -1 -7828 7808 -1 -7809 7809 6 -7810 7809 -1 -7829 7809 -1 -7810 7810 6 -7811 7810 -1 -7830 7810 -1 -7811 7811 6 -7812 7811 -1 -7831 7811 -1 -7812 7812 6 -7813 7812 -1 -7832 7812 -1 -7813 7813 6 -7814 7813 -1 -7833 7813 -1 -7814 7814 6 -7815 7814 -1 -7834 7814 -1 -7815 7815 6 -7816 7815 -1 -7835 7815 -1 -7816 7816 6 -7817 7816 -1 -7836 7816 -1 -7817 7817 6 -7818 7817 -1 -7837 7817 -1 -7818 7818 6 -7819 7818 -1 -7838 7818 -1 -7819 7819 6 -7820 7819 -1 -7839 7819 -1 -7820 7820 6 -7840 7820 -1 -7821 7821 6 -7822 7821 -1 -7841 7821 -1 -7822 7822 6 -7823 7822 -1 -7842 7822 -1 -7823 7823 6 -7824 7823 -1 -7843 7823 -1 -7824 7824 6 -7825 7824 -1 -7844 7824 -1 -7825 7825 6 -7826 7825 -1 -7845 7825 -1 -7826 7826 6 -7827 7826 -1 -7846 7826 -1 -7827 7827 6 -7828 7827 -1 -7847 7827 -1 -7828 7828 6 -7829 7828 -1 -7848 7828 -1 -7829 7829 6 -7830 7829 -1 -7849 7829 -1 -7830 7830 6 -7831 7830 -1 -7850 7830 -1 -7831 7831 6 -7832 7831 -1 -7851 7831 -1 -7832 7832 6 -7833 7832 -1 -7852 7832 -1 -7833 7833 6 -7834 7833 -1 -7853 7833 -1 -7834 7834 6 -7835 7834 -1 -7854 7834 -1 -7835 7835 6 -7836 7835 -1 -7855 7835 -1 -7836 7836 6 -7837 7836 -1 -7856 7836 -1 -7837 7837 6 -7838 7837 -1 -7857 7837 -1 -7838 7838 6 -7839 7838 -1 -7858 7838 -1 -7839 7839 6 -7840 7839 -1 -7859 7839 -1 -7840 7840 6 -7860 7840 -1 -7841 7841 6 -7842 7841 -1 -7861 7841 -1 -7842 7842 6 -7843 7842 -1 -7862 7842 -1 -7843 7843 6 -7844 7843 -1 -7863 7843 -1 -7844 7844 6 -7845 7844 -1 -7864 7844 -1 -7845 7845 6 -7846 7845 -1 -7865 7845 -1 -7846 7846 6 -7847 7846 -1 -7866 7846 -1 -7847 7847 6 -7848 7847 -1 -7867 7847 -1 -7848 7848 6 -7849 7848 -1 -7868 7848 -1 -7849 7849 6 -7850 7849 -1 -7869 7849 -1 -7850 7850 6 -7851 7850 -1 -7870 7850 -1 -7851 7851 6 -7852 7851 -1 -7871 7851 -1 -7852 7852 6 -7853 7852 -1 -7872 7852 -1 -7853 7853 6 -7854 7853 -1 -7873 7853 -1 -7854 7854 6 -7855 7854 -1 -7874 7854 -1 -7855 7855 6 -7856 7855 -1 -7875 7855 -1 -7856 7856 6 -7857 7856 -1 -7876 7856 -1 -7857 7857 6 -7858 7857 -1 -7877 7857 -1 -7858 7858 6 -7859 7858 -1 -7878 7858 -1 -7859 7859 6 -7860 7859 -1 -7879 7859 -1 -7860 7860 6 -7880 7860 -1 -7861 7861 6 -7862 7861 -1 -7881 7861 -1 -7862 7862 6 -7863 7862 -1 -7882 7862 -1 -7863 7863 6 -7864 7863 -1 -7883 7863 -1 -7864 7864 6 -7865 7864 -1 -7884 7864 -1 -7865 7865 6 -7866 7865 -1 -7885 7865 -1 -7866 7866 6 -7867 7866 -1 -7886 7866 -1 -7867 7867 6 -7868 7867 -1 -7887 7867 -1 -7868 7868 6 -7869 7868 -1 -7888 7868 -1 -7869 7869 6 -7870 7869 -1 -7889 7869 -1 -7870 7870 6 -7871 7870 -1 -7890 7870 -1 -7871 7871 6 -7872 7871 -1 -7891 7871 -1 -7872 7872 6 -7873 7872 -1 -7892 7872 -1 -7873 7873 6 -7874 7873 -1 -7893 7873 -1 -7874 7874 6 -7875 7874 -1 -7894 7874 -1 -7875 7875 6 -7876 7875 -1 -7895 7875 -1 -7876 7876 6 -7877 7876 -1 -7896 7876 -1 -7877 7877 6 -7878 7877 -1 -7897 7877 -1 -7878 7878 6 -7879 7878 -1 -7898 7878 -1 -7879 7879 6 -7880 7879 -1 -7899 7879 -1 -7880 7880 6 -7900 7880 -1 -7881 7881 6 -7882 7881 -1 -7901 7881 -1 -7882 7882 6 -7883 7882 -1 -7902 7882 -1 -7883 7883 6 -7884 7883 -1 -7903 7883 -1 -7884 7884 6 -7885 7884 -1 -7904 7884 -1 -7885 7885 6 -7886 7885 -1 -7905 7885 -1 -7886 7886 6 -7887 7886 -1 -7906 7886 -1 -7887 7887 6 -7888 7887 -1 -7907 7887 -1 -7888 7888 6 -7889 7888 -1 -7908 7888 -1 -7889 7889 6 -7890 7889 -1 -7909 7889 -1 -7890 7890 6 -7891 7890 -1 -7910 7890 -1 -7891 7891 6 -7892 7891 -1 -7911 7891 -1 -7892 7892 6 -7893 7892 -1 -7912 7892 -1 -7893 7893 6 -7894 7893 -1 -7913 7893 -1 -7894 7894 6 -7895 7894 -1 -7914 7894 -1 -7895 7895 6 -7896 7895 -1 -7915 7895 -1 -7896 7896 6 -7897 7896 -1 -7916 7896 -1 -7897 7897 6 -7898 7897 -1 -7917 7897 -1 -7898 7898 6 -7899 7898 -1 -7918 7898 -1 -7899 7899 6 -7900 7899 -1 -7919 7899 -1 -7900 7900 6 -7920 7900 -1 -7901 7901 6 -7902 7901 -1 -7921 7901 -1 -7902 7902 6 -7903 7902 -1 -7922 7902 -1 -7903 7903 6 -7904 7903 -1 -7923 7903 -1 -7904 7904 6 -7905 7904 -1 -7924 7904 -1 -7905 7905 6 -7906 7905 -1 -7925 7905 -1 -7906 7906 6 -7907 7906 -1 -7926 7906 -1 -7907 7907 6 -7908 7907 -1 -7927 7907 -1 -7908 7908 6 -7909 7908 -1 -7928 7908 -1 -7909 7909 6 -7910 7909 -1 -7929 7909 -1 -7910 7910 6 -7911 7910 -1 -7930 7910 -1 -7911 7911 6 -7912 7911 -1 -7931 7911 -1 -7912 7912 6 -7913 7912 -1 -7932 7912 -1 -7913 7913 6 -7914 7913 -1 -7933 7913 -1 -7914 7914 6 -7915 7914 -1 -7934 7914 -1 -7915 7915 6 -7916 7915 -1 -7935 7915 -1 -7916 7916 6 -7917 7916 -1 -7936 7916 -1 -7917 7917 6 -7918 7917 -1 -7937 7917 -1 -7918 7918 6 -7919 7918 -1 -7938 7918 -1 -7919 7919 6 -7920 7919 -1 -7939 7919 -1 -7920 7920 6 -7940 7920 -1 -7921 7921 6 -7922 7921 -1 -7941 7921 -1 -7922 7922 6 -7923 7922 -1 -7942 7922 -1 -7923 7923 6 -7924 7923 -1 -7943 7923 -1 -7924 7924 6 -7925 7924 -1 -7944 7924 -1 -7925 7925 6 -7926 7925 -1 -7945 7925 -1 -7926 7926 6 -7927 7926 -1 -7946 7926 -1 -7927 7927 6 -7928 7927 -1 -7947 7927 -1 -7928 7928 6 -7929 7928 -1 -7948 7928 -1 -7929 7929 6 -7930 7929 -1 -7949 7929 -1 -7930 7930 6 -7931 7930 -1 -7950 7930 -1 -7931 7931 6 -7932 7931 -1 -7951 7931 -1 -7932 7932 6 -7933 7932 -1 -7952 7932 -1 -7933 7933 6 -7934 7933 -1 -7953 7933 -1 -7934 7934 6 -7935 7934 -1 -7954 7934 -1 -7935 7935 6 -7936 7935 -1 -7955 7935 -1 -7936 7936 6 -7937 7936 -1 -7956 7936 -1 -7937 7937 6 -7938 7937 -1 -7957 7937 -1 -7938 7938 6 -7939 7938 -1 -7958 7938 -1 -7939 7939 6 -7940 7939 -1 -7959 7939 -1 -7940 7940 6 -7960 7940 -1 -7941 7941 6 -7942 7941 -1 -7961 7941 -1 -7942 7942 6 -7943 7942 -1 -7962 7942 -1 -7943 7943 6 -7944 7943 -1 -7963 7943 -1 -7944 7944 6 -7945 7944 -1 -7964 7944 -1 -7945 7945 6 -7946 7945 -1 -7965 7945 -1 -7946 7946 6 -7947 7946 -1 -7966 7946 -1 -7947 7947 6 -7948 7947 -1 -7967 7947 -1 -7948 7948 6 -7949 7948 -1 -7968 7948 -1 -7949 7949 6 -7950 7949 -1 -7969 7949 -1 -7950 7950 6 -7951 7950 -1 -7970 7950 -1 -7951 7951 6 -7952 7951 -1 -7971 7951 -1 -7952 7952 6 -7953 7952 -1 -7972 7952 -1 -7953 7953 6 -7954 7953 -1 -7973 7953 -1 -7954 7954 6 -7955 7954 -1 -7974 7954 -1 -7955 7955 6 -7956 7955 -1 -7975 7955 -1 -7956 7956 6 -7957 7956 -1 -7976 7956 -1 -7957 7957 6 -7958 7957 -1 -7977 7957 -1 -7958 7958 6 -7959 7958 -1 -7978 7958 -1 -7959 7959 6 -7960 7959 -1 -7979 7959 -1 -7960 7960 6 -7980 7960 -1 -7961 7961 6 -7962 7961 -1 -7981 7961 -1 -7962 7962 6 -7963 7962 -1 -7982 7962 -1 -7963 7963 6 -7964 7963 -1 -7983 7963 -1 -7964 7964 6 -7965 7964 -1 -7984 7964 -1 -7965 7965 6 -7966 7965 -1 -7985 7965 -1 -7966 7966 6 -7967 7966 -1 -7986 7966 -1 -7967 7967 6 -7968 7967 -1 -7987 7967 -1 -7968 7968 6 -7969 7968 -1 -7988 7968 -1 -7969 7969 6 -7970 7969 -1 -7989 7969 -1 -7970 7970 6 -7971 7970 -1 -7990 7970 -1 -7971 7971 6 -7972 7971 -1 -7991 7971 -1 -7972 7972 6 -7973 7972 -1 -7992 7972 -1 -7973 7973 6 -7974 7973 -1 -7993 7973 -1 -7974 7974 6 -7975 7974 -1 -7994 7974 -1 -7975 7975 6 -7976 7975 -1 -7995 7975 -1 -7976 7976 6 -7977 7976 -1 -7996 7976 -1 -7977 7977 6 -7978 7977 -1 -7997 7977 -1 -7978 7978 6 -7979 7978 -1 -7998 7978 -1 -7979 7979 6 -7980 7979 -1 -7999 7979 -1 -7980 7980 6 -8000 7980 -1 -7981 7981 6 -7982 7981 -1 -7982 7982 6 -7983 7982 -1 -7983 7983 6 -7984 7983 -1 -7984 7984 6 -7985 7984 -1 -7985 7985 6 -7986 7985 -1 -7986 7986 6 -7987 7986 -1 -7987 7987 6 -7988 7987 -1 -7988 7988 6 -7989 7988 -1 -7989 7989 6 -7990 7989 -1 -7990 7990 6 -7991 7990 -1 -7991 7991 6 -7992 7991 -1 -7992 7992 6 -7993 7992 -1 -7993 7993 6 -7994 7993 -1 -7994 7994 6 -7995 7994 -1 -7995 7995 6 -7996 7995 -1 -7996 7996 6 -7997 7996 -1 -7997 7997 6 -7998 7997 -1 -7998 7998 6 -7999 7998 -1 -7999 7999 6 -8000 7999 -1 -8000 8000 6 diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/mmio.c b/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/mmio.c deleted file mode 100644 index 7ecf9c2c..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/mmio.c +++ /dev/null @@ -1,477 +0,0 @@ -/* - * Matrix Market I/O library for ANSI C - * - * See http://math.nist.gov/MatrixMarket for details. - * - * - */ - -/* avoid Windows warnings (for example: strcpy, fscanf, etc.) */ -#if defined(_WIN32) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "mmio.h" - -#include -#include -#include -#include - -int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_) -{ - FILE *f; - MM_typecode matcode; - int M, N, nz; - int i; - double *val; - int *I, *J; - - if ((f = fopen(fname, "r")) == NULL) - return -1; - - - if (mm_read_banner(f, &matcode) != 0) { - printf("mm_read_unsymetric: Could not process Matrix Market banner "); - printf(" in file [%s]\n", fname); - return -1; - } - - - if (!(mm_is_real(matcode) && mm_is_matrix(matcode) && mm_is_sparse(matcode))) { - fprintf(stderr, "Sorry, this application does not support "); - fprintf(stderr, "Market Market type: [%s]\n", mm_typecode_to_str(matcode)); - return -1; - } - - /* find out size of sparse matrix: M, N, nz .... */ - - if (mm_read_mtx_crd_size(f, &M, &N, &nz) != 0) { - fprintf(stderr, "read_unsymmetric_sparse(): could not parse matrix size.\n"); - return -1; - } - - *M_ = M; - *N_ = N; - *nz_ = nz; - - /* reserve memory for matrices */ - - I = (int *)malloc(nz * sizeof(int)); - J = (int *)malloc(nz * sizeof(int)); - val = (double *)malloc(nz * sizeof(double)); - - *val_ = val; - *I_ = I; - *J_ = J; - - /* NOTE: when reading in doubles, ANSI C requires the use of the "l" */ - /* specifier as in "%lg", "%lf", "%le", otherwise errors will occur */ - /* (ANSI C X3.159-1989, Sec. 4.9.6.2, p. 136 lines 13-15) */ - - for (i = 0; i < nz; i++) { - if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3) { - return -1; - } - I[i]--; /* adjust from 1-based to 0-based */ - J[i]--; - } - fclose(f); - - return 0; -} - -int mm_is_valid(MM_typecode matcode) -{ - if (!mm_is_matrix(matcode)) - return 0; - if (mm_is_dense(matcode) && mm_is_pattern(matcode)) - return 0; - if (mm_is_real(matcode) && mm_is_hermitian(matcode)) - return 0; - if (mm_is_pattern(matcode) && (mm_is_hermitian(matcode) || mm_is_skew(matcode))) - return 0; - return 1; -} - -int mm_read_banner(FILE *f, MM_typecode *matcode) -{ - char line[MM_MAX_LINE_LENGTH]; - char banner[MM_MAX_TOKEN_LENGTH]; - char mtx[MM_MAX_TOKEN_LENGTH]; - char crd[MM_MAX_TOKEN_LENGTH]; - char data_type[MM_MAX_TOKEN_LENGTH]; - char storage_scheme[MM_MAX_TOKEN_LENGTH]; - char *p; - - - mm_clear_typecode(matcode); - - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - - if (sscanf(line, "%s %s %s %s %s", banner, mtx, crd, data_type, storage_scheme) != 5) - return MM_PREMATURE_EOF; - - for (p = mtx; *p != '\0'; *p = tolower(*p), p++) - ; /* convert to lower case */ - for (p = crd; *p != '\0'; *p = tolower(*p), p++) - ; - for (p = data_type; *p != '\0'; *p = tolower(*p), p++) - ; - for (p = storage_scheme; *p != '\0'; *p = tolower(*p), p++) - ; - - /* check for banner */ - if (strncmp(banner, MatrixMarketBanner, strlen(MatrixMarketBanner)) != 0) - return MM_NO_HEADER; - - /* first field should be "mtx" */ - if (strcmp(mtx, MM_MTX_STR) != 0) - return MM_UNSUPPORTED_TYPE; - mm_set_matrix(matcode); - - - /* second field describes whether this is a sparse matrix (in coordinate - storage) or a dense array */ - - - if (strcmp(crd, MM_SPARSE_STR) == 0) - mm_set_sparse(matcode); - else if (strcmp(crd, MM_DENSE_STR) == 0) - mm_set_dense(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - /* third field */ - - if (strcmp(data_type, MM_REAL_STR) == 0) - mm_set_real(matcode); - else if (strcmp(data_type, MM_COMPLEX_STR) == 0) - mm_set_complex(matcode); - else if (strcmp(data_type, MM_PATTERN_STR) == 0) - mm_set_pattern(matcode); - else if (strcmp(data_type, MM_INT_STR) == 0) - mm_set_integer(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - /* fourth field */ - - if (strcmp(storage_scheme, MM_GENERAL_STR) == 0) - mm_set_general(matcode); - else if (strcmp(storage_scheme, MM_SYMM_STR) == 0) - mm_set_symmetric(matcode); - else if (strcmp(storage_scheme, MM_HERM_STR) == 0) - mm_set_hermitian(matcode); - else if (strcmp(storage_scheme, MM_SKEW_STR) == 0) - mm_set_skew(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - return 0; -} - -int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz) -{ - if (fprintf(f, "%d %d %d\n", M, N, nz) != 3) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - -int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz) -{ - char line[MM_MAX_LINE_LENGTH]; - int num_items_read; - - /* set return null parameter values, in case we exit with errors */ - *M = *N = *nz = 0; - - /* now continue scanning until you reach the end-of-comments */ - do { - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - } while (line[0] == '%'); - - /* line[] is either blank or has M,N, nz */ - if (sscanf(line, "%d %d %d", M, N, nz) == 3) - return 0; - - else - do { - num_items_read = fscanf(f, "%d %d %d", M, N, nz); - if (num_items_read == EOF) - return MM_PREMATURE_EOF; - } while (num_items_read != 3); - - return 0; -} - - -int mm_read_mtx_array_size(FILE *f, int *M, int *N) -{ - char line[MM_MAX_LINE_LENGTH]; - int num_items_read; - /* set return null parameter values, in case we exit with errors */ - *M = *N = 0; - - /* now continue scanning until you reach the end-of-comments */ - do { - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - } while (line[0] == '%'); - - /* line[] is either blank or has M,N, nz */ - if (sscanf(line, "%d %d", M, N) == 2) - return 0; - - else /* we have a blank line */ - do { - num_items_read = fscanf(f, "%d %d", M, N); - if (num_items_read == EOF) - return MM_PREMATURE_EOF; - } while (num_items_read != 2); - - return 0; -} - -int mm_write_mtx_array_size(FILE *f, int M, int N) -{ - if (fprintf(f, "%d %d\n", M, N) != 2) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - - -/*-------------------------------------------------------------------------*/ - -/******************************************************************/ -/* use when I[], J[], and val[]J, and val[] are already allocated */ -/******************************************************************/ - -int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode) -{ - int i; - if (mm_is_complex(matcode)) { - for (i = 0; i < nz; i++) - if (fscanf(f, "%d %d %lg %lg", &I[i], &J[i], &val[2 * i], &val[2 * i + 1]) != 4) - return MM_PREMATURE_EOF; - } - else if (mm_is_real(matcode) || mm_is_integer(matcode)) { - for (i = 0; i < nz; i++) { - if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3) - return MM_PREMATURE_EOF; - } - } - - else if (mm_is_pattern(matcode)) { - for (i = 0; i < nz; i++) - if (fscanf(f, "%d %d", &I[i], &J[i]) != 2) - return MM_PREMATURE_EOF; - } - else - return MM_UNSUPPORTED_TYPE; - - return 0; -} - -int mm_read_mtx_crd_entry(FILE *f, int *I, int *J, double *real, double *imag, MM_typecode matcode) -{ - if (mm_is_complex(matcode)) { - if (fscanf(f, "%d %d %lg %lg", I, J, real, imag) != 4) - return MM_PREMATURE_EOF; - } - else if (mm_is_real(matcode) || mm_is_integer(matcode)) { - if (fscanf(f, "%d %d %lg\n", I, J, real) != 3) - return MM_PREMATURE_EOF; - } - - else if (mm_is_pattern(matcode)) { - if (fscanf(f, "%d %d", I, J) != 2) - return MM_PREMATURE_EOF; - } - else - return MM_UNSUPPORTED_TYPE; - - return 0; -} - - -/************************************************************************ - mm_read_mtx_crd() fills M, N, nz, array of values, and return - type code, e.g. 'MCRS' - - if matrix is complex, values[] is of size 2*nz, - (nz pairs of real/imaginary values) -************************************************************************/ - -int mm_read_mtx_crd(char *fname, int *M, int *N, int *nz, int **I, int **J, double **val, MM_typecode *matcode) -{ - int ret_code; - FILE *f; - - if (strcmp(fname, "stdin") == 0) - f = stdin; - else if ((f = fopen(fname, "r")) == NULL) - return MM_COULD_NOT_READ_FILE; - - - if ((ret_code = mm_read_banner(f, matcode)) != 0) - return ret_code; - - if (!(mm_is_valid(*matcode) && mm_is_sparse(*matcode) && mm_is_matrix(*matcode))) - return MM_UNSUPPORTED_TYPE; - - if ((ret_code = mm_read_mtx_crd_size(f, M, N, nz)) != 0) - return ret_code; - - - *I = (int *)malloc(*nz * sizeof(int)); - *J = (int *)malloc(*nz * sizeof(int)); - *val = NULL; - - if (mm_is_complex(*matcode)) { - *val = (double *)malloc(*nz * 2 * sizeof(double)); - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - else if (mm_is_real(*matcode) || mm_is_integer(*matcode)) { - *val = (double *)malloc(*nz * sizeof(double)); - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - - else if (mm_is_pattern(*matcode)) { - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - - if (f != stdin) - fclose(f); - return 0; -} - -int mm_write_banner(FILE *f, MM_typecode matcode) -{ - char *str = mm_typecode_to_str(matcode); - int ret_code; - - ret_code = fprintf(f, "%s %s\n", MatrixMarketBanner, str); - free(str); - if (ret_code != 2) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - -int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode) -{ - FILE *f; - int i; - - if (strcmp(fname, "stdout") == 0) - f = stdout; - else if ((f = fopen(fname, "w")) == NULL) - return MM_COULD_NOT_WRITE_FILE; - - /* print banner followed by typecode */ - fprintf(f, "%s ", MatrixMarketBanner); - fprintf(f, "%s\n", mm_typecode_to_str(matcode)); - - /* print matrix sizes and nonzeros */ - fprintf(f, "%d %d %d\n", M, N, nz); - - /* print values */ - if (mm_is_pattern(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d\n", I[i], J[i]); - else if (mm_is_integer(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %d\n", I[i], J[i], (int)val[i]); - else if (mm_is_real(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %20.16g\n", I[i], J[i], val[i]); - else if (mm_is_complex(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %20.16g %20.16g\n", I[i], J[i], val[2 * i], val[2 * i + 1]); - else { - if (f != stdout) - fclose(f); - return MM_UNSUPPORTED_TYPE; - } - - if (f != stdout) - fclose(f); - - return 0; -} - -/** - * Create a new copy of a string s. mm_strdup() is a common routine, but - * not part of ANSI C, so it is included here. Used by mm_typecode_to_str(). - * - */ -static char *mm_strdup(const char *s) -{ - size_t len = strlen(s); - char *s2 = (char *)malloc((len + 1) * sizeof(char)); - return strcpy(s2, s); -} - -char *mm_typecode_to_str(MM_typecode matcode) -{ - char buffer[MM_MAX_LINE_LENGTH]; - char *types[4]; - // char *mm_strdup(const char *); - // int error =0; - - /* check for MTX type */ - if (mm_is_matrix(matcode)) - types[0] = MM_MTX_STR; - else - return NULL; // error=1; - - /* check for CRD or ARR matrix */ - if (mm_is_sparse(matcode)) - types[1] = MM_SPARSE_STR; - else if (mm_is_dense(matcode)) - types[1] = MM_DENSE_STR; - else - return NULL; - - /* check for element data type */ - if (mm_is_real(matcode)) - types[2] = MM_REAL_STR; - else if (mm_is_complex(matcode)) - types[2] = MM_COMPLEX_STR; - else if (mm_is_pattern(matcode)) - types[2] = MM_PATTERN_STR; - else if (mm_is_integer(matcode)) - types[2] = MM_INT_STR; - else - return NULL; - - - /* check for symmetry type */ - if (mm_is_general(matcode)) - types[3] = MM_GENERAL_STR; - else if (mm_is_symmetric(matcode)) - types[3] = MM_SYMM_STR; - else if (mm_is_hermitian(matcode)) - types[3] = MM_HERM_STR; - else if (mm_is_skew(matcode)) - types[3] = MM_SKEW_STR; - else - return NULL; - - sprintf(buffer, "%s %s %s %s", types[0], types[1], types[2], types[3]); - return mm_strdup(buffer); -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/mmio.h b/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/mmio.h deleted file mode 100644 index a05f6063..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/mmio.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Matrix Market I/O library for ANSI C - * - * See http://math.nist.gov/MatrixMarket for details. - * - * - */ - -#ifndef MM_IO_H -#define MM_IO_H - -#include - -#if defined(__cplusplus) -extern "C" -{ -#endif /* __cplusplus */ - -#define MM_MAX_LINE_LENGTH 1025 -#define MatrixMarketBanner "%%MatrixMarket" -#define MM_MAX_TOKEN_LENGTH 64 - - typedef char MM_typecode[4]; - - char *mm_typecode_to_str(MM_typecode matcode); - - int mm_read_banner(FILE *f, MM_typecode *matcode); - int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz); - int mm_read_mtx_array_size(FILE *f, int *M, int *N); - - int mm_write_banner(FILE *f, MM_typecode matcode); - int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz); - int mm_write_mtx_array_size(FILE *f, int M, int N); - - - /********************* MM_typecode query fucntions ***************************/ - -#define mm_is_matrix(typecode) ((typecode)[0] == 'M') - -#define mm_is_sparse(typecode) ((typecode)[1] == 'C') -#define mm_is_coordinate(typecode) ((typecode)[1] == 'C') -#define mm_is_dense(typecode) ((typecode)[1] == 'A') -#define mm_is_array(typecode) ((typecode)[1] == 'A') - -#define mm_is_complex(typecode) ((typecode)[2] == 'C') -#define mm_is_real(typecode) ((typecode)[2] == 'R') -#define mm_is_pattern(typecode) ((typecode)[2] == 'P') -#define mm_is_integer(typecode) ((typecode)[2] == 'I') - -#define mm_is_symmetric(typecode) ((typecode)[3] == 'S') -#define mm_is_general(typecode) ((typecode)[3] == 'G') -#define mm_is_skew(typecode) ((typecode)[3] == 'K') -#define mm_is_hermitian(typecode) ((typecode)[3] == 'H') - - int mm_is_valid(MM_typecode matcode); /* too complex for a macro */ - - - /********************* MM_typecode modify fucntions ***************************/ - -#define mm_set_matrix(typecode) ((*typecode)[0] = 'M') -#define mm_set_coordinate(typecode) ((*typecode)[1] = 'C') -#define mm_set_array(typecode) ((*typecode)[1] = 'A') -#define mm_set_dense(typecode) mm_set_array(typecode) -#define mm_set_sparse(typecode) mm_set_coordinate(typecode) - -#define mm_set_complex(typecode) ((*typecode)[2] = 'C') -#define mm_set_real(typecode) ((*typecode)[2] = 'R') -#define mm_set_pattern(typecode) ((*typecode)[2] = 'P') -#define mm_set_integer(typecode) ((*typecode)[2] = 'I') - - -#define mm_set_symmetric(typecode) ((*typecode)[3] = 'S') -#define mm_set_general(typecode) ((*typecode)[3] = 'G') -#define mm_set_skew(typecode) ((*typecode)[3] = 'K') -#define mm_set_hermitian(typecode) ((*typecode)[3] = 'H') - -#define mm_clear_typecode(typecode) ((*typecode)[0] = (*typecode)[1] = (*typecode)[2] = ' ', (*typecode)[3] = 'G') - -#define mm_initialize_typecode(typecode) mm_clear_typecode(typecode) - - - /********************* Matrix Market error codes ***************************/ - - -#define MM_COULD_NOT_READ_FILE 11 -#define MM_PREMATURE_EOF 12 -#define MM_NOT_MTX 13 -#define MM_NO_HEADER 14 -#define MM_UNSUPPORTED_TYPE 15 -#define MM_LINE_TOO_LONG 16 -#define MM_COULD_NOT_WRITE_FILE 17 - - - /******************** Matrix Market internal definitions ******************** - - MM_matrix_typecode: 4-character sequence - - ojbect sparse/ data storage - dense type scheme - - string position: [0] [1] [2] [3] - - Matrix typecode: M(atrix) C(oord) R(eal) G(eneral) - A(array) C(omplex) H(ermitian) - P(attern) S(ymmetric) - I(nteger) K(kew) - - ***********************************************************************/ - -#define MM_MTX_STR "matrix" -#define MM_ARRAY_STR "array" -#define MM_DENSE_STR "array" -#define MM_COORDINATE_STR "coordinate" -#define MM_SPARSE_STR "coordinate" -#define MM_COMPLEX_STR "complex" -#define MM_REAL_STR "real" -#define MM_INT_STR "integer" -#define MM_GENERAL_STR "general" -#define MM_SYMM_STR "symmetric" -#define MM_HERM_STR "hermitian" -#define MM_SKEW_STR "skew-symmetric" -#define MM_PATTERN_STR "pattern" - - - /* high level routines */ - int mm_read_mtx_crd(char *fname, int *M, int *N, int *nz, int **I, int **J, double **val, MM_typecode *matcode); - - int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode); - int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode); - int mm_read_mtx_crd_entry(FILE *f, int *I, int *J, double *real, double *img, MM_typecode matcode); - - int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_); - -#if defined(__cplusplus) -} -#endif /* __cplusplus */ - -#endif diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/mmio_wrapper.cpp b/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/mmio_wrapper.cpp deleted file mode 100644 index f6f6c8e4..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LinearSolver/mmio_wrapper.cpp +++ /dev/null @@ -1,473 +0,0 @@ - -#include -#include -#include -#include - -#include "mmio.h" - -/* avoid Windows warnings (for example: strcpy, fscanf, etc.) */ -#if defined(_WIN32) -#define _CRT_SECURE_NO_WARNINGS -#endif - -/* various __inline__ __device__ function to initialize a T_ELEM */ -template __inline__ T_ELEM cuGet(int); -template <> __inline__ float cuGet(int x) { return float(x); } - -template <> __inline__ double cuGet(int x) { return double(x); } - -template <> __inline__ cuComplex cuGet(int x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(int x) { return (make_cuDoubleComplex(double(x), 0.0)); } - - -template __inline__ T_ELEM cuGet(int, int); -template <> __inline__ float cuGet(int x, int y) { return float(x); } - -template <> __inline__ double cuGet(int x, int y) { return double(x); } - -template <> __inline__ cuComplex cuGet(int x, int y) { return make_cuComplex(float(x), float(y)); } - -template <> __inline__ cuDoubleComplex cuGet(int x, int y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - - -template __inline__ T_ELEM cuGet(float); -template <> __inline__ float cuGet(float x) { return float(x); } - -template <> __inline__ double cuGet(float x) { return double(x); } - -template <> __inline__ cuComplex cuGet(float x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(float x) -{ - return (make_cuDoubleComplex(double(x), 0.0)); -} - - -template __inline__ T_ELEM cuGet(float, float); -template <> __inline__ float cuGet(float x, float y) { return float(x); } - -template <> __inline__ double cuGet(float x, float y) { return double(x); } - -template <> __inline__ cuComplex cuGet(float x, float y) { return (make_cuComplex(float(x), float(y))); } - -template <> __inline__ cuDoubleComplex cuGet(float x, float y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - - -template __inline__ T_ELEM cuGet(double); -template <> __inline__ float cuGet(double x) { return float(x); } - -template <> __inline__ double cuGet(double x) { return double(x); } - -template <> __inline__ cuComplex cuGet(double x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(double x) -{ - return (make_cuDoubleComplex(double(x), 0.0)); -} - - -template __inline__ T_ELEM cuGet(double, double); -template <> __inline__ float cuGet(double x, double y) { return float(x); } - -template <> __inline__ double cuGet(double x, double y) { return double(x); } - -template <> __inline__ cuComplex cuGet(double x, double y) { return (make_cuComplex(float(x), float(y))); } - -template <> __inline__ cuDoubleComplex cuGet(double x, double y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - - -static void compress_index(const int *Ind, int nnz, int m, int *Ptr, int base) -{ - int i; - - /* initialize everything to zero */ - for (i = 0; i < m + 1; i++) { - Ptr[i] = 0; - } - /* count elements in every row */ - Ptr[0] = base; - for (i = 0; i < nnz; i++) { - Ptr[Ind[i] + (1 - base)]++; - } - /* add all the values */ - for (i = 0; i < m; i++) { - Ptr[i + 1] += Ptr[i]; - } -} - - -struct cooFormat -{ - int i; - int j; - int p; // permutation -}; - - -int cmp_cooFormat_csr(struct cooFormat *s, struct cooFormat *t) -{ - if (s->i < t->i) { - return -1; - } - else if (s->i > t->i) { - return 1; - } - else { - return s->j - t->j; - } -} - -int cmp_cooFormat_csc(struct cooFormat *s, struct cooFormat *t) -{ - if (s->j < t->j) { - return -1; - } - else if (s->j > t->j) { - return 1; - } - else { - return s->i - t->i; - } -} - -typedef int (*FUNPTR)(const void *, const void *); -typedef int (*FUNPTR2)(struct cooFormat *s, struct cooFormat *t); - -static FUNPTR2 fptr_array[2] = { - cmp_cooFormat_csr, - cmp_cooFormat_csc, -}; - - -static int verify_pattern(int m, int nnz, int *csrRowPtr, int *csrColInd) -{ - int i, col, start, end, base_index; - int error_found = 0; - - if (nnz != (csrRowPtr[m] - csrRowPtr[0])) { - fprintf(stderr, - "Error (nnz check failed): (csrRowPtr[%d]=%d - csrRowPtr[%d]=%d) != (nnz=%d)\n", - 0, - csrRowPtr[0], - m, - csrRowPtr[m], - nnz); - error_found = 1; - } - - base_index = csrRowPtr[0]; - if ((0 != base_index) && (1 != base_index)) { - fprintf(stderr, "Error (base index check failed): base index = %d\n", base_index); - error_found = 1; - } - - for (i = 0; (!error_found) && (i < m); i++) { - start = csrRowPtr[i] - base_index; - end = csrRowPtr[i + 1] - base_index; - if (start > end) { - fprintf(stderr, - "Error (corrupted row): csrRowPtr[%d] (=%d) > csrRowPtr[%d] (=%d)\n", - i, - start + base_index, - i + 1, - end + base_index); - error_found = 1; - } - for (col = start; col < end; col++) { - if (csrColInd[col] < base_index) { - fprintf(stderr, "Error (column vs. base index check failed): csrColInd[%d] < %d\n", col, base_index); - error_found = 1; - } - if ((col < (end - 1)) && (csrColInd[col] >= csrColInd[col + 1])) { - fprintf( - stderr, - "Error (sorting of the column indecis check failed): (csrColInd[%d]=%d) >= (csrColInd[%d]=%d)\n", - col, - csrColInd[col], - col + 1, - csrColInd[col + 1]); - error_found = 1; - } - } - } - return error_found; -} - - -template -int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - T_ELEM **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix) -{ - MM_typecode matcode; - double *tempVal; - int *tempRowInd, *tempColInd; - double *tval; - int *trow, *tcol; - int *csrRowPtr, *cscColPtr; - int i, j, error, base, count; - struct cooFormat *work; - - /* read the matrix */ - error = mm_read_mtx_crd(filename, m, n, nnz, &trow, &tcol, &tval, &matcode); - if (error) { - fprintf(stderr, "!!!! can not open file: '%s'\n", filename); - return 1; - } - - /* start error checking */ - if (mm_is_complex(matcode) && ((elem_type != 'z') && (elem_type != 'c'))) { - fprintf(stderr, "!!!! complex matrix requires type 'z' or 'c'\n"); - return 1; - } - - if (mm_is_dense(matcode) || mm_is_array(matcode) || mm_is_pattern(matcode) /*|| mm_is_integer(matcode)*/) { - fprintf(stderr, "!!!! dense, array, pattern and integer matrices are not supported\n"); - return 1; - } - - /* if necessary symmetrize the pattern (transform from triangular to full) */ - if ((extendSymMatrix) && (mm_is_symmetric(matcode) || mm_is_hermitian(matcode) || mm_is_skew(matcode))) { - // count number of non-diagonal elements - count = 0; - for (i = 0; i < (*nnz); i++) { - if (trow[i] != tcol[i]) { - count++; - } - } - // allocate space for the symmetrized matrix - tempRowInd = (int *)malloc((*nnz + count) * sizeof(int)); - tempColInd = (int *)malloc((*nnz + count) * sizeof(int)); - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - tempVal = (double *)malloc((*nnz + count) * sizeof(double)); - } - else { - tempVal = (double *)malloc(2 * (*nnz + count) * sizeof(double)); - } - // copy the elements regular and transposed locations - for (j = 0, i = 0; i < (*nnz); i++) { - tempRowInd[j] = trow[i]; - tempColInd[j] = tcol[i]; - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - tempVal[j] = tval[i]; - } - else { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = tval[2 * i + 1]; - } - j++; - if (trow[i] != tcol[i]) { - tempRowInd[j] = tcol[i]; - tempColInd[j] = trow[i]; - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - if (mm_is_skew(matcode)) { - tempVal[j] = -tval[i]; - } - else { - tempVal[j] = tval[i]; - } - } - else { - if (mm_is_hermitian(matcode)) { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = -tval[2 * i + 1]; - } - else { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = tval[2 * i + 1]; - } - } - j++; - } - } - (*nnz) += count; - // free temporary storage - free(trow); - free(tcol); - free(tval); - } - else { - tempRowInd = trow; - tempColInd = tcol; - tempVal = tval; - } - // life time of (trow, tcol, tval) is over. - // please use COO format (tempRowInd, tempColInd, tempVal) - - // use qsort to sort COO format - work = (struct cooFormat *)malloc(sizeof(struct cooFormat) * (*nnz)); - if (NULL == work) { - fprintf(stderr, "!!!! allocation error, malloc failed\n"); - return 1; - } - for (i = 0; i < (*nnz); i++) { - work[i].i = tempRowInd[i]; - work[i].j = tempColInd[i]; - work[i].p = i; // permutation is identity - } - - if (csrFormat) { - /* create row-major ordering of indices (sorted by row and within each row by column) */ - qsort(work, *nnz, sizeof(struct cooFormat), (FUNPTR)fptr_array[0]); - } - else { - /* create column-major ordering of indices (sorted by column and within each column by row) */ - qsort(work, *nnz, sizeof(struct cooFormat), (FUNPTR)fptr_array[1]); - } - - // (tempRowInd, tempColInd) is sorted either by row-major or by col-major - for (i = 0; i < (*nnz); i++) { - tempRowInd[i] = work[i].i; - tempColInd[i] = work[i].j; - } - - // setup base - // check if there is any row/col 0, if so base-0 - // check if there is any row/col equal to matrix dimension m/n, if so base-1 - int base0 = 0; - int base1 = 0; - for (i = 0; i < (*nnz); i++) { - const int row = tempRowInd[i]; - const int col = tempColInd[i]; - if ((0 == row) || (0 == col)) { - base0 = 1; - } - if ((*m == row) || (*n == col)) { - base1 = 1; - } - } - if (base0 && base1) { - printf("Error: input matrix is base-0 and base-1 \n"); - return 1; - } - - base = 0; - if (base1) { - base = 1; - } - - /* compress the appropriate indices */ - if (csrFormat) { - /* CSR format (assuming row-major format) */ - csrRowPtr = (int *)malloc(((*m) + 1) * sizeof(csrRowPtr[0])); - if (!csrRowPtr) - return 1; - compress_index(tempRowInd, *nnz, *m, csrRowPtr, base); - - *aRowInd = csrRowPtr; - *aColInd = (int *)malloc((*nnz) * sizeof(int)); - } - else { - /* CSC format (assuming column-major format) */ - cscColPtr = (int *)malloc(((*n) + 1) * sizeof(cscColPtr[0])); - if (!cscColPtr) - return 1; - compress_index(tempColInd, *nnz, *n, cscColPtr, base); - - *aColInd = cscColPtr; - *aRowInd = (int *)malloc((*nnz) * sizeof(int)); - } - - /* transfrom the matrix values of type double into one of the cusparse library types */ - *aVal = (T_ELEM *)malloc((*nnz) * sizeof(T_ELEM)); - - for (i = 0; i < (*nnz); i++) { - if (csrFormat) { - (*aColInd)[i] = tempColInd[i]; - } - else { - (*aRowInd)[i] = tempRowInd[i]; - } - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - (*aVal)[i] = cuGet(tempVal[work[i].p]); - } - else { - (*aVal)[i] = cuGet(tempVal[2 * work[i].p], tempVal[2 * work[i].p + 1]); - } - } - - /* check for corruption */ - int error_found; - if (csrFormat) { - error_found = verify_pattern(*m, *nnz, *aRowInd, *aColInd); - } - else { - error_found = verify_pattern(*n, *nnz, *aColInd, *aRowInd); - } - if (error_found) { - fprintf(stderr, "!!!! verify_pattern failed\n"); - return 1; - } - - /* cleanup and exit */ - free(work); - free(tempVal); - free(tempColInd); - free(tempRowInd); - - return 0; -} - - -/* specific instantiation */ -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - float **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - double **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - cuComplex **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - cuDoubleComplex **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/.vscode/extensions.json b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/CMakeLists.txt b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/CMakeLists.txt deleted file mode 100644 index 60f1b9ca..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/CMakeLists.txt +++ /dev/null @@ -1,58 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(cuSolverSp_LowlevelCholesky LANGUAGES C CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for cuSolverSp_LowlevelCholesky -add_executable(cuSolverSp_LowlevelCholesky cuSolverSp_LowlevelCholesky.cpp mmio.c mmio_wrapper.cpp) - -target_compile_options(cuSolverSp_LowlevelCholesky PRIVATE $<$:--extended-lambda>) - -target_compile_features(cuSolverSp_LowlevelCholesky PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(cuSolverSp_LowlevelCholesky PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(cuSolverSp_LowlevelCholesky PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(cuSolverSp_LowlevelCholesky PRIVATE - CUDA::cudart - CUDA::cublas - CUDA::cusolver -) - -# Copy data files to output directory -add_custom_command(TARGET cuSolverSp_LowlevelCholesky POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lap2D_5pt_n100.mtx - ${CMAKE_CURRENT_BINARY_DIR} -) - -# Copy data files to output directory -add_custom_command(TARGET cuSolverSp_LowlevelCholesky POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lap3D_7pt_n20.mtx - ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/README.md b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/README.md deleted file mode 100644 index 623227d9..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# cuSolverSp_LowlevelCholesky - cuSolverSp LowlevelCholesky Solver - -## Description - -A CUDA Sample that demonstrates Cholesky factorization using cuSolverSP's low level APIs. - -## Key Concepts - -Linear Algebra, CUSOLVER Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuDoubleComplex, cuComplex - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaStreamDestroy, cudaFree, cudaMalloc, cudaStreamCreate - -## Dependencies needed to build/run -[CUSOLVER](../../../README.md#cusolver), [CUSPARSE](../../../README.md#cusparse) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/cuSolverSp_LowlevelCholesky.cpp b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/cuSolverSp_LowlevelCholesky.cpp deleted file mode 100644 index baee4342..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/cuSolverSp_LowlevelCholesky.cpp +++ /dev/null @@ -1,446 +0,0 @@ -/* - * Copyright 2015 NVIDIA Corporation. All rights reserved. - * - * Please refer to the NVIDIA end user license agreement (EULA) associated - * with this source code for terms and conditions that govern your use of - * this software. Any use, reproduction, disclosure, or distribution of - * this software and related documentation outside the terms of the EULA - * is strictly prohibited. - * - */ - -#include -#include -#include -#include -#include -#include - -#include "cusolverSp.h" -#include "cusolverSp_LOWLEVEL_PREVIEW.h" -#include "helper_cuda.h" -#include "helper_cusolver.h" - -template -int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - T_ELEM **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -void UsageSP(void) -{ - printf("\n"); - printf("-h : display this help\n"); - printf("-file= : filename containing a matrix in MM format\n"); - printf("-device= : if want to run on specific GPU\n"); - - exit(0); -} - -void parseCommandLineArguments(int argc, char *argv[], struct testOpts &opts) -{ - memset(&opts, 0, sizeof(opts)); - - if (checkCmdLineFlag(argc, (const char **)argv, "-h")) { - UsageSP(); - } - - if (checkCmdLineFlag(argc, (const char **)argv, "file")) { - char *fileName = 0; - getCmdLineArgumentString(argc, (const char **)argv, "file", &fileName); - - if (fileName) { - opts.sparse_mat_filename = fileName; - } - else { - printf("\nIncorrect filename passed to -file \n "); - UsageSP(); - } - } -} - - -int main(int argc, char *argv[]) -{ - struct testOpts opts; - cusolverSpHandle_t cusolverSpH = NULL; // reordering, permutation and 1st LU factorization - cusparseHandle_t cusparseH = NULL; // residual evaluation - cudaStream_t stream = NULL; - cusparseMatDescr_t descrA = NULL; // A is a base-0 general matrix - - csrcholInfoHost_t h_info = NULL; // opaque info structure for LU with parital pivoting - csrcholInfo_t d_info = NULL; // opaque info structure for LU with parital pivoting - - int rowsA = 0; // number of rows of A - int colsA = 0; // number of columns of A - int nnzA = 0; // number of nonzeros of A - int baseA = 0; // base index in CSR format - - // CSR(A) from I/O - int *h_csrRowPtrA = NULL; // n+1 - int *h_csrColIndA = NULL; // nnzA - double *h_csrValA = NULL; // nnzA - - double *h_x = NULL; // n, x = A \ b - double *h_b = NULL; // n, b = ones(m,1) - double *h_r = NULL; // n, r = b - A*x - - size_t size_internal = 0; - size_t size_chol = 0; // size of working space for csrlu - void *buffer_cpu = NULL; // working space for Cholesky - void *buffer_gpu = NULL; // working space for Cholesky - - int *d_csrRowPtrA = NULL; // n+1 - int *d_csrColIndA = NULL; // nnzA - double *d_csrValA = NULL; // nnzA - double *d_x = NULL; // n, x = A \ b - double *d_b = NULL; // n, a copy of h_b - double *d_r = NULL; // n, r = b - A*x - - // the constants used in residual evaluation, r = b - A*x - const double minus_one = -1.0; - const double one = 1.0; - // the constant used in cusolverSp - // singularity is -1 if A is invertible under tol - // tol determines the condition of singularity - int singularity = 0; - const double tol = 1.e-14; - - double x_inf = 0.0; // |x| - double r_inf = 0.0; // |r| - double A_inf = 0.0; // |A| - int errors = 0; - - parseCommandLineArguments(argc, argv, opts); - - findCudaDevice(argc, (const char **)argv); - - if (opts.sparse_mat_filename == NULL) { - opts.sparse_mat_filename = sdkFindFilePath("lap2D_5pt_n100.mtx", argv[0]); - if (opts.sparse_mat_filename != NULL) - printf("Using default input file [%s]\n", opts.sparse_mat_filename); - else - printf("Could not find lap2D_5pt_n100.mtx\n"); - } - else { - printf("Using input file [%s]\n", opts.sparse_mat_filename); - } - - printf("step 1: read matrix market format\n"); - - if (opts.sparse_mat_filename) { - if (loadMMSparseMatrix(opts.sparse_mat_filename, - 'd', - true, - &rowsA, - &colsA, - &nnzA, - &h_csrValA, - &h_csrRowPtrA, - &h_csrColIndA, - true)) { - return 1; - } - baseA = h_csrRowPtrA[0]; // baseA = {0,1} - } - else { - fprintf(stderr, "Error: input matrix is not provided\n"); - return 1; - } - - if (rowsA != colsA) { - fprintf(stderr, "Error: only support square matrix\n"); - return 1; - } - - printf("sparse matrix A is %d x %d with %d nonzeros, base=%d\n", rowsA, colsA, nnzA, baseA); - - checkCudaErrors(cusolverSpCreate(&cusolverSpH)); - - checkCudaErrors(cusparseCreate(&cusparseH)); - - checkCudaErrors(cudaStreamCreate(&stream)); - - checkCudaErrors(cusolverSpSetStream(cusolverSpH, stream)); - - checkCudaErrors(cusparseSetStream(cusparseH, stream)); - - checkCudaErrors(cusparseCreateMatDescr(&descrA)); - - checkCudaErrors(cusparseSetMatType(descrA, CUSPARSE_MATRIX_TYPE_GENERAL)); - if (baseA) { - checkCudaErrors(cusparseSetMatIndexBase(descrA, CUSPARSE_INDEX_BASE_ONE)); - } - else { - checkCudaErrors(cusparseSetMatIndexBase(descrA, CUSPARSE_INDEX_BASE_ZERO)); - } - - h_x = (double *)malloc(sizeof(double) * colsA); - h_b = (double *)malloc(sizeof(double) * rowsA); - h_r = (double *)malloc(sizeof(double) * rowsA); - - assert(NULL != h_x); - assert(NULL != h_b); - assert(NULL != h_r); - - checkCudaErrors(cudaMalloc((void **)&d_csrRowPtrA, sizeof(int) * (rowsA + 1))); - checkCudaErrors(cudaMalloc((void **)&d_csrColIndA, sizeof(int) * nnzA)); - checkCudaErrors(cudaMalloc((void **)&d_csrValA, sizeof(double) * nnzA)); - checkCudaErrors(cudaMalloc((void **)&d_x, sizeof(double) * colsA)); - checkCudaErrors(cudaMalloc((void **)&d_b, sizeof(double) * rowsA)); - checkCudaErrors(cudaMalloc((void **)&d_r, sizeof(double) * rowsA)); - - for (int row = 0; row < rowsA; row++) { - h_b[row] = 1.0; - } - - printf("step 2: create opaque info structure\n"); - checkCudaErrors(cusolverSpCreateCsrcholInfoHost(&h_info)); - - printf("step 3: analyze chol(A) to know structure of L\n"); - checkCudaErrors( - cusolverSpXcsrcholAnalysisHost(cusolverSpH, rowsA, nnzA, descrA, h_csrRowPtrA, h_csrColIndA, h_info)); - - printf("step 4: workspace for chol(A)\n"); - checkCudaErrors(cusolverSpDcsrcholBufferInfoHost( - cusolverSpH, rowsA, nnzA, descrA, h_csrValA, h_csrRowPtrA, h_csrColIndA, h_info, &size_internal, &size_chol)); - - if (buffer_cpu) { - free(buffer_cpu); - } - buffer_cpu = (void *)malloc(sizeof(char) * size_chol); - assert(NULL != buffer_cpu); - - printf("step 5: compute A = L*L^T \n"); - checkCudaErrors(cusolverSpDcsrcholFactorHost( - cusolverSpH, rowsA, nnzA, descrA, h_csrValA, h_csrRowPtrA, h_csrColIndA, h_info, buffer_cpu)); - - printf("step 6: check if the matrix is singular \n"); - checkCudaErrors(cusolverSpDcsrcholZeroPivotHost(cusolverSpH, h_info, tol, &singularity)); - - if (0 <= singularity) { - fprintf(stderr, "Error: A is not invertible, singularity=%d\n", singularity); - return 1; - } - - printf("step 7: solve A*x = b \n"); - checkCudaErrors(cusolverSpDcsrcholSolveHost(cusolverSpH, rowsA, h_b, h_x, h_info, buffer_cpu)); - - printf("step 8: evaluate residual r = b - A*x (result on CPU)\n"); - // use GPU gemv to compute r = b - A*x - checkCudaErrors(cudaMemcpy(d_csrRowPtrA, h_csrRowPtrA, sizeof(int) * (rowsA + 1), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrColIndA, h_csrColIndA, sizeof(int) * nnzA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrValA, h_csrValA, sizeof(double) * nnzA, cudaMemcpyHostToDevice)); - - checkCudaErrors(cudaMemcpy(d_r, h_b, sizeof(double) * rowsA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_x, h_x, sizeof(double) * colsA, cudaMemcpyHostToDevice)); - - /* Wrap raw data into cuSPARSE generic API objects */ - cusparseSpMatDescr_t matA = NULL; - if (baseA) { - checkCudaErrors(cusparseCreateCsr(&matA, - rowsA, - colsA, - nnzA, - d_csrRowPtrA, - d_csrColIndA, - d_csrValA, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ONE, - CUDA_R_64F)); - } - else { - checkCudaErrors(cusparseCreateCsr(&matA, - rowsA, - colsA, - nnzA, - d_csrRowPtrA, - d_csrColIndA, - d_csrValA, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ZERO, - CUDA_R_64F)); - } - - cusparseDnVecDescr_t vecx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecx, colsA, d_x, CUDA_R_64F)); - cusparseDnVecDescr_t vecAx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecAx, rowsA, d_r, CUDA_R_64F)); - - /* Allocate workspace for cuSPARSE */ - size_t bufferSize = 0; - checkCudaErrors(cusparseSpMV_bufferSize(cusparseH, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - &bufferSize)); - void *buffer = NULL; - checkCudaErrors(cudaMalloc(&buffer, bufferSize)); - - checkCudaErrors(cusparseSpMV(cusparseH, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - - checkCudaErrors(cudaMemcpy(h_r, d_r, sizeof(double) * rowsA, cudaMemcpyDeviceToHost)); - - x_inf = vec_norminf(colsA, h_x); - r_inf = vec_norminf(rowsA, h_r); - A_inf = csr_mat_norminf(rowsA, colsA, nnzA, descrA, h_csrValA, h_csrRowPtrA, h_csrColIndA); - - printf("(CPU) |b - A*x| = %E \n", r_inf); - printf("(CPU) |A| = %E \n", A_inf); - printf("(CPU) |x| = %E \n", x_inf); - printf("(CPU) |b - A*x|/(|A|*|x|) = %E \n", r_inf / (A_inf * x_inf)); - - printf("step 9: create opaque info structure\n"); - checkCudaErrors(cusolverSpCreateCsrcholInfo(&d_info)); - - checkCudaErrors(cudaMemcpy(d_csrRowPtrA, h_csrRowPtrA, sizeof(int) * (rowsA + 1), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrColIndA, h_csrColIndA, sizeof(int) * nnzA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrValA, h_csrValA, sizeof(double) * nnzA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_b, h_b, sizeof(double) * rowsA, cudaMemcpyHostToDevice)); - - printf("step 10: analyze chol(A) to know structure of L\n"); - checkCudaErrors(cusolverSpXcsrcholAnalysis(cusolverSpH, rowsA, nnzA, descrA, d_csrRowPtrA, d_csrColIndA, d_info)); - - printf("step 11: workspace for chol(A)\n"); - checkCudaErrors(cusolverSpDcsrcholBufferInfo( - cusolverSpH, rowsA, nnzA, descrA, d_csrValA, d_csrRowPtrA, d_csrColIndA, d_info, &size_internal, &size_chol)); - - if (buffer_gpu) { - checkCudaErrors(cudaFree(buffer_gpu)); - } - checkCudaErrors(cudaMalloc(&buffer_gpu, sizeof(char) * size_chol)); - - printf("step 12: compute A = L*L^T \n"); - checkCudaErrors(cusolverSpDcsrcholFactor( - cusolverSpH, rowsA, nnzA, descrA, d_csrValA, d_csrRowPtrA, d_csrColIndA, d_info, buffer_gpu)); - - printf("step 13: check if the matrix is singular \n"); - checkCudaErrors(cusolverSpDcsrcholZeroPivot(cusolverSpH, d_info, tol, &singularity)); - - if (0 <= singularity) { - fprintf(stderr, "Error: A is not invertible, singularity=%d\n", singularity); - return 1; - } - - printf("step 14: solve A*x = b \n"); - checkCudaErrors(cusolverSpDcsrcholSolve(cusolverSpH, rowsA, d_b, d_x, d_info, buffer_gpu)); - - checkCudaErrors(cudaMemcpy(d_r, h_b, sizeof(double) * rowsA, cudaMemcpyHostToDevice)); - - checkCudaErrors(cusparseSpMV(cusparseH, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - - checkCudaErrors(cudaMemcpy(h_r, d_r, sizeof(double) * rowsA, cudaMemcpyDeviceToHost)); - - r_inf = vec_norminf(rowsA, h_r); - - printf("(GPU) |b - A*x| = %E \n", r_inf); - printf("(GPU) |b - A*x|/(|A|*|x|) = %E \n", r_inf / (A_inf * x_inf)); - - - if (cusolverSpH) { - checkCudaErrors(cusolverSpDestroy(cusolverSpH)); - } - if (cusparseH) { - checkCudaErrors(cusparseDestroy(cusparseH)); - } - if (stream) { - checkCudaErrors(cudaStreamDestroy(stream)); - } - if (descrA) { - checkCudaErrors(cusparseDestroyMatDescr(descrA)); - } - if (h_info) { - checkCudaErrors(cusolverSpDestroyCsrcholInfoHost(h_info)); - } - if (d_info) { - checkCudaErrors(cusolverSpDestroyCsrcholInfo(d_info)); - } - if (matA) { - checkCudaErrors(cusparseDestroySpMat(matA)); - } - if (vecx) { - checkCudaErrors(cusparseDestroyDnVec(vecx)); - } - if (vecAx) { - checkCudaErrors(cusparseDestroyDnVec(vecAx)); - } - - if (h_csrValA) { - free(h_csrValA); - } - if (h_csrRowPtrA) { - free(h_csrRowPtrA); - } - if (h_csrColIndA) { - free(h_csrColIndA); - } - - if (h_x) { - free(h_x); - } - if (h_b) { - free(h_b); - } - if (h_r) { - free(h_r); - } - - if (buffer_cpu) { - free(buffer_cpu); - } - if (buffer_gpu) { - checkCudaErrors(cudaFree(buffer_gpu)); - } - - if (d_csrValA) { - checkCudaErrors(cudaFree(d_csrValA)); - } - if (d_csrRowPtrA) { - checkCudaErrors(cudaFree(d_csrRowPtrA)); - } - if (d_csrColIndA) { - checkCudaErrors(cudaFree(d_csrColIndA)); - } - if (d_x) { - checkCudaErrors(cudaFree(d_x)); - } - if (d_b) { - checkCudaErrors(cudaFree(d_b)); - } - if (d_r) { - checkCudaErrors(cudaFree(d_r)); - } - - return 0; -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/lap2D_5pt_n100.mtx b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/lap2D_5pt_n100.mtx deleted file mode 100644 index dae3c1eb..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/lap2D_5pt_n100.mtx +++ /dev/null @@ -1,29803 +0,0 @@ -%%MatrixMarket matrix coordinate real symmetric -% Generated 20-Nov-2014 -10000 10000 29800 -1 1 4 -2 1 -1 -101 1 -1 -2 2 4 -3 2 -1 -102 2 -1 -3 3 4 -4 3 -1 -103 3 -1 -4 4 4 -5 4 -1 -104 4 -1 -5 5 4 -6 5 -1 -105 5 -1 -6 6 4 -7 6 -1 -106 6 -1 -7 7 4 -8 7 -1 -107 7 -1 -8 8 4 -9 8 -1 -108 8 -1 -9 9 4 -10 9 -1 -109 9 -1 -10 10 4 -11 10 -1 -110 10 -1 -11 11 4 -12 11 -1 -111 11 -1 -12 12 4 -13 12 -1 -112 12 -1 -13 13 4 -14 13 -1 -113 13 -1 -14 14 4 -15 14 -1 -114 14 -1 -15 15 4 -16 15 -1 -115 15 -1 -16 16 4 -17 16 -1 -116 16 -1 -17 17 4 -18 17 -1 -117 17 -1 -18 18 4 -19 18 -1 -118 18 -1 -19 19 4 -20 19 -1 -119 19 -1 -20 20 4 -21 20 -1 -120 20 -1 -21 21 4 -22 21 -1 -121 21 -1 -22 22 4 -23 22 -1 -122 22 -1 -23 23 4 -24 23 -1 -123 23 -1 -24 24 4 -25 24 -1 -124 24 -1 -25 25 4 -26 25 -1 -125 25 -1 -26 26 4 -27 26 -1 -126 26 -1 -27 27 4 -28 27 -1 -127 27 -1 -28 28 4 -29 28 -1 -128 28 -1 -29 29 4 -30 29 -1 -129 29 -1 -30 30 4 -31 30 -1 -130 30 -1 -31 31 4 -32 31 -1 -131 31 -1 -32 32 4 -33 32 -1 -132 32 -1 -33 33 4 -34 33 -1 -133 33 -1 -34 34 4 -35 34 -1 -134 34 -1 -35 35 4 -36 35 -1 -135 35 -1 -36 36 4 -37 36 -1 -136 36 -1 -37 37 4 -38 37 -1 -137 37 -1 -38 38 4 -39 38 -1 -138 38 -1 -39 39 4 -40 39 -1 -139 39 -1 -40 40 4 -41 40 -1 -140 40 -1 -41 41 4 -42 41 -1 -141 41 -1 -42 42 4 -43 42 -1 -142 42 -1 -43 43 4 -44 43 -1 -143 43 -1 -44 44 4 -45 44 -1 -144 44 -1 -45 45 4 -46 45 -1 -145 45 -1 -46 46 4 -47 46 -1 -146 46 -1 -47 47 4 -48 47 -1 -147 47 -1 -48 48 4 -49 48 -1 -148 48 -1 -49 49 4 -50 49 -1 -149 49 -1 -50 50 4 -51 50 -1 -150 50 -1 -51 51 4 -52 51 -1 -151 51 -1 -52 52 4 -53 52 -1 -152 52 -1 -53 53 4 -54 53 -1 -153 53 -1 -54 54 4 -55 54 -1 -154 54 -1 -55 55 4 -56 55 -1 -155 55 -1 -56 56 4 -57 56 -1 -156 56 -1 -57 57 4 -58 57 -1 -157 57 -1 -58 58 4 -59 58 -1 -158 58 -1 -59 59 4 -60 59 -1 -159 59 -1 -60 60 4 -61 60 -1 -160 60 -1 -61 61 4 -62 61 -1 -161 61 -1 -62 62 4 -63 62 -1 -162 62 -1 -63 63 4 -64 63 -1 -163 63 -1 -64 64 4 -65 64 -1 -164 64 -1 -65 65 4 -66 65 -1 -165 65 -1 -66 66 4 -67 66 -1 -166 66 -1 -67 67 4 -68 67 -1 -167 67 -1 -68 68 4 -69 68 -1 -168 68 -1 -69 69 4 -70 69 -1 -169 69 -1 -70 70 4 -71 70 -1 -170 70 -1 -71 71 4 -72 71 -1 -171 71 -1 -72 72 4 -73 72 -1 -172 72 -1 -73 73 4 -74 73 -1 -173 73 -1 -74 74 4 -75 74 -1 -174 74 -1 -75 75 4 -76 75 -1 -175 75 -1 -76 76 4 -77 76 -1 -176 76 -1 -77 77 4 -78 77 -1 -177 77 -1 -78 78 4 -79 78 -1 -178 78 -1 -79 79 4 -80 79 -1 -179 79 -1 -80 80 4 -81 80 -1 -180 80 -1 -81 81 4 -82 81 -1 -181 81 -1 -82 82 4 -83 82 -1 -182 82 -1 -83 83 4 -84 83 -1 -183 83 -1 -84 84 4 -85 84 -1 -184 84 -1 -85 85 4 -86 85 -1 -185 85 -1 -86 86 4 -87 86 -1 -186 86 -1 -87 87 4 -88 87 -1 -187 87 -1 -88 88 4 -89 88 -1 -188 88 -1 -89 89 4 -90 89 -1 -189 89 -1 -90 90 4 -91 90 -1 -190 90 -1 -91 91 4 -92 91 -1 -191 91 -1 -92 92 4 -93 92 -1 -192 92 -1 -93 93 4 -94 93 -1 -193 93 -1 -94 94 4 -95 94 -1 -194 94 -1 -95 95 4 -96 95 -1 -195 95 -1 -96 96 4 -97 96 -1 -196 96 -1 -97 97 4 -98 97 -1 -197 97 -1 -98 98 4 -99 98 -1 -198 98 -1 -99 99 4 -100 99 -1 -199 99 -1 -100 100 4 -200 100 -1 -101 101 4 -102 101 -1 -201 101 -1 -102 102 4 -103 102 -1 -202 102 -1 -103 103 4 -104 103 -1 -203 103 -1 -104 104 4 -105 104 -1 -204 104 -1 -105 105 4 -106 105 -1 -205 105 -1 -106 106 4 -107 106 -1 -206 106 -1 -107 107 4 -108 107 -1 -207 107 -1 -108 108 4 -109 108 -1 -208 108 -1 -109 109 4 -110 109 -1 -209 109 -1 -110 110 4 -111 110 -1 -210 110 -1 -111 111 4 -112 111 -1 -211 111 -1 -112 112 4 -113 112 -1 -212 112 -1 -113 113 4 -114 113 -1 -213 113 -1 -114 114 4 -115 114 -1 -214 114 -1 -115 115 4 -116 115 -1 -215 115 -1 -116 116 4 -117 116 -1 -216 116 -1 -117 117 4 -118 117 -1 -217 117 -1 -118 118 4 -119 118 -1 -218 118 -1 -119 119 4 -120 119 -1 -219 119 -1 -120 120 4 -121 120 -1 -220 120 -1 -121 121 4 -122 121 -1 -221 121 -1 -122 122 4 -123 122 -1 -222 122 -1 -123 123 4 -124 123 -1 -223 123 -1 -124 124 4 -125 124 -1 -224 124 -1 -125 125 4 -126 125 -1 -225 125 -1 -126 126 4 -127 126 -1 -226 126 -1 -127 127 4 -128 127 -1 -227 127 -1 -128 128 4 -129 128 -1 -228 128 -1 -129 129 4 -130 129 -1 -229 129 -1 -130 130 4 -131 130 -1 -230 130 -1 -131 131 4 -132 131 -1 -231 131 -1 -132 132 4 -133 132 -1 -232 132 -1 -133 133 4 -134 133 -1 -233 133 -1 -134 134 4 -135 134 -1 -234 134 -1 -135 135 4 -136 135 -1 -235 135 -1 -136 136 4 -137 136 -1 -236 136 -1 -137 137 4 -138 137 -1 -237 137 -1 -138 138 4 -139 138 -1 -238 138 -1 -139 139 4 -140 139 -1 -239 139 -1 -140 140 4 -141 140 -1 -240 140 -1 -141 141 4 -142 141 -1 -241 141 -1 -142 142 4 -143 142 -1 -242 142 -1 -143 143 4 -144 143 -1 -243 143 -1 -144 144 4 -145 144 -1 -244 144 -1 -145 145 4 -146 145 -1 -245 145 -1 -146 146 4 -147 146 -1 -246 146 -1 -147 147 4 -148 147 -1 -247 147 -1 -148 148 4 -149 148 -1 -248 148 -1 -149 149 4 -150 149 -1 -249 149 -1 -150 150 4 -151 150 -1 -250 150 -1 -151 151 4 -152 151 -1 -251 151 -1 -152 152 4 -153 152 -1 -252 152 -1 -153 153 4 -154 153 -1 -253 153 -1 -154 154 4 -155 154 -1 -254 154 -1 -155 155 4 -156 155 -1 -255 155 -1 -156 156 4 -157 156 -1 -256 156 -1 -157 157 4 -158 157 -1 -257 157 -1 -158 158 4 -159 158 -1 -258 158 -1 -159 159 4 -160 159 -1 -259 159 -1 -160 160 4 -161 160 -1 -260 160 -1 -161 161 4 -162 161 -1 -261 161 -1 -162 162 4 -163 162 -1 -262 162 -1 -163 163 4 -164 163 -1 -263 163 -1 -164 164 4 -165 164 -1 -264 164 -1 -165 165 4 -166 165 -1 -265 165 -1 -166 166 4 -167 166 -1 -266 166 -1 -167 167 4 -168 167 -1 -267 167 -1 -168 168 4 -169 168 -1 -268 168 -1 -169 169 4 -170 169 -1 -269 169 -1 -170 170 4 -171 170 -1 -270 170 -1 -171 171 4 -172 171 -1 -271 171 -1 -172 172 4 -173 172 -1 -272 172 -1 -173 173 4 -174 173 -1 -273 173 -1 -174 174 4 -175 174 -1 -274 174 -1 -175 175 4 -176 175 -1 -275 175 -1 -176 176 4 -177 176 -1 -276 176 -1 -177 177 4 -178 177 -1 -277 177 -1 -178 178 4 -179 178 -1 -278 178 -1 -179 179 4 -180 179 -1 -279 179 -1 -180 180 4 -181 180 -1 -280 180 -1 -181 181 4 -182 181 -1 -281 181 -1 -182 182 4 -183 182 -1 -282 182 -1 -183 183 4 -184 183 -1 -283 183 -1 -184 184 4 -185 184 -1 -284 184 -1 -185 185 4 -186 185 -1 -285 185 -1 -186 186 4 -187 186 -1 -286 186 -1 -187 187 4 -188 187 -1 -287 187 -1 -188 188 4 -189 188 -1 -288 188 -1 -189 189 4 -190 189 -1 -289 189 -1 -190 190 4 -191 190 -1 -290 190 -1 -191 191 4 -192 191 -1 -291 191 -1 -192 192 4 -193 192 -1 -292 192 -1 -193 193 4 -194 193 -1 -293 193 -1 -194 194 4 -195 194 -1 -294 194 -1 -195 195 4 -196 195 -1 -295 195 -1 -196 196 4 -197 196 -1 -296 196 -1 -197 197 4 -198 197 -1 -297 197 -1 -198 198 4 -199 198 -1 -298 198 -1 -199 199 4 -200 199 -1 -299 199 -1 -200 200 4 -300 200 -1 -201 201 4 -202 201 -1 -301 201 -1 -202 202 4 -203 202 -1 -302 202 -1 -203 203 4 -204 203 -1 -303 203 -1 -204 204 4 -205 204 -1 -304 204 -1 -205 205 4 -206 205 -1 -305 205 -1 -206 206 4 -207 206 -1 -306 206 -1 -207 207 4 -208 207 -1 -307 207 -1 -208 208 4 -209 208 -1 -308 208 -1 -209 209 4 -210 209 -1 -309 209 -1 -210 210 4 -211 210 -1 -310 210 -1 -211 211 4 -212 211 -1 -311 211 -1 -212 212 4 -213 212 -1 -312 212 -1 -213 213 4 -214 213 -1 -313 213 -1 -214 214 4 -215 214 -1 -314 214 -1 -215 215 4 -216 215 -1 -315 215 -1 -216 216 4 -217 216 -1 -316 216 -1 -217 217 4 -218 217 -1 -317 217 -1 -218 218 4 -219 218 -1 -318 218 -1 -219 219 4 -220 219 -1 -319 219 -1 -220 220 4 -221 220 -1 -320 220 -1 -221 221 4 -222 221 -1 -321 221 -1 -222 222 4 -223 222 -1 -322 222 -1 -223 223 4 -224 223 -1 -323 223 -1 -224 224 4 -225 224 -1 -324 224 -1 -225 225 4 -226 225 -1 -325 225 -1 -226 226 4 -227 226 -1 -326 226 -1 -227 227 4 -228 227 -1 -327 227 -1 -228 228 4 -229 228 -1 -328 228 -1 -229 229 4 -230 229 -1 -329 229 -1 -230 230 4 -231 230 -1 -330 230 -1 -231 231 4 -232 231 -1 -331 231 -1 -232 232 4 -233 232 -1 -332 232 -1 -233 233 4 -234 233 -1 -333 233 -1 -234 234 4 -235 234 -1 -334 234 -1 -235 235 4 -236 235 -1 -335 235 -1 -236 236 4 -237 236 -1 -336 236 -1 -237 237 4 -238 237 -1 -337 237 -1 -238 238 4 -239 238 -1 -338 238 -1 -239 239 4 -240 239 -1 -339 239 -1 -240 240 4 -241 240 -1 -340 240 -1 -241 241 4 -242 241 -1 -341 241 -1 -242 242 4 -243 242 -1 -342 242 -1 -243 243 4 -244 243 -1 -343 243 -1 -244 244 4 -245 244 -1 -344 244 -1 -245 245 4 -246 245 -1 -345 245 -1 -246 246 4 -247 246 -1 -346 246 -1 -247 247 4 -248 247 -1 -347 247 -1 -248 248 4 -249 248 -1 -348 248 -1 -249 249 4 -250 249 -1 -349 249 -1 -250 250 4 -251 250 -1 -350 250 -1 -251 251 4 -252 251 -1 -351 251 -1 -252 252 4 -253 252 -1 -352 252 -1 -253 253 4 -254 253 -1 -353 253 -1 -254 254 4 -255 254 -1 -354 254 -1 -255 255 4 -256 255 -1 -355 255 -1 -256 256 4 -257 256 -1 -356 256 -1 -257 257 4 -258 257 -1 -357 257 -1 -258 258 4 -259 258 -1 -358 258 -1 -259 259 4 -260 259 -1 -359 259 -1 -260 260 4 -261 260 -1 -360 260 -1 -261 261 4 -262 261 -1 -361 261 -1 -262 262 4 -263 262 -1 -362 262 -1 -263 263 4 -264 263 -1 -363 263 -1 -264 264 4 -265 264 -1 -364 264 -1 -265 265 4 -266 265 -1 -365 265 -1 -266 266 4 -267 266 -1 -366 266 -1 -267 267 4 -268 267 -1 -367 267 -1 -268 268 4 -269 268 -1 -368 268 -1 -269 269 4 -270 269 -1 -369 269 -1 -270 270 4 -271 270 -1 -370 270 -1 -271 271 4 -272 271 -1 -371 271 -1 -272 272 4 -273 272 -1 -372 272 -1 -273 273 4 -274 273 -1 -373 273 -1 -274 274 4 -275 274 -1 -374 274 -1 -275 275 4 -276 275 -1 -375 275 -1 -276 276 4 -277 276 -1 -376 276 -1 -277 277 4 -278 277 -1 -377 277 -1 -278 278 4 -279 278 -1 -378 278 -1 -279 279 4 -280 279 -1 -379 279 -1 -280 280 4 -281 280 -1 -380 280 -1 -281 281 4 -282 281 -1 -381 281 -1 -282 282 4 -283 282 -1 -382 282 -1 -283 283 4 -284 283 -1 -383 283 -1 -284 284 4 -285 284 -1 -384 284 -1 -285 285 4 -286 285 -1 -385 285 -1 -286 286 4 -287 286 -1 -386 286 -1 -287 287 4 -288 287 -1 -387 287 -1 -288 288 4 -289 288 -1 -388 288 -1 -289 289 4 -290 289 -1 -389 289 -1 -290 290 4 -291 290 -1 -390 290 -1 -291 291 4 -292 291 -1 -391 291 -1 -292 292 4 -293 292 -1 -392 292 -1 -293 293 4 -294 293 -1 -393 293 -1 -294 294 4 -295 294 -1 -394 294 -1 -295 295 4 -296 295 -1 -395 295 -1 -296 296 4 -297 296 -1 -396 296 -1 -297 297 4 -298 297 -1 -397 297 -1 -298 298 4 -299 298 -1 -398 298 -1 -299 299 4 -300 299 -1 -399 299 -1 -300 300 4 -400 300 -1 -301 301 4 -302 301 -1 -401 301 -1 -302 302 4 -303 302 -1 -402 302 -1 -303 303 4 -304 303 -1 -403 303 -1 -304 304 4 -305 304 -1 -404 304 -1 -305 305 4 -306 305 -1 -405 305 -1 -306 306 4 -307 306 -1 -406 306 -1 -307 307 4 -308 307 -1 -407 307 -1 -308 308 4 -309 308 -1 -408 308 -1 -309 309 4 -310 309 -1 -409 309 -1 -310 310 4 -311 310 -1 -410 310 -1 -311 311 4 -312 311 -1 -411 311 -1 -312 312 4 -313 312 -1 -412 312 -1 -313 313 4 -314 313 -1 -413 313 -1 -314 314 4 -315 314 -1 -414 314 -1 -315 315 4 -316 315 -1 -415 315 -1 -316 316 4 -317 316 -1 -416 316 -1 -317 317 4 -318 317 -1 -417 317 -1 -318 318 4 -319 318 -1 -418 318 -1 -319 319 4 -320 319 -1 -419 319 -1 -320 320 4 -321 320 -1 -420 320 -1 -321 321 4 -322 321 -1 -421 321 -1 -322 322 4 -323 322 -1 -422 322 -1 -323 323 4 -324 323 -1 -423 323 -1 -324 324 4 -325 324 -1 -424 324 -1 -325 325 4 -326 325 -1 -425 325 -1 -326 326 4 -327 326 -1 -426 326 -1 -327 327 4 -328 327 -1 -427 327 -1 -328 328 4 -329 328 -1 -428 328 -1 -329 329 4 -330 329 -1 -429 329 -1 -330 330 4 -331 330 -1 -430 330 -1 -331 331 4 -332 331 -1 -431 331 -1 -332 332 4 -333 332 -1 -432 332 -1 -333 333 4 -334 333 -1 -433 333 -1 -334 334 4 -335 334 -1 -434 334 -1 -335 335 4 -336 335 -1 -435 335 -1 -336 336 4 -337 336 -1 -436 336 -1 -337 337 4 -338 337 -1 -437 337 -1 -338 338 4 -339 338 -1 -438 338 -1 -339 339 4 -340 339 -1 -439 339 -1 -340 340 4 -341 340 -1 -440 340 -1 -341 341 4 -342 341 -1 -441 341 -1 -342 342 4 -343 342 -1 -442 342 -1 -343 343 4 -344 343 -1 -443 343 -1 -344 344 4 -345 344 -1 -444 344 -1 -345 345 4 -346 345 -1 -445 345 -1 -346 346 4 -347 346 -1 -446 346 -1 -347 347 4 -348 347 -1 -447 347 -1 -348 348 4 -349 348 -1 -448 348 -1 -349 349 4 -350 349 -1 -449 349 -1 -350 350 4 -351 350 -1 -450 350 -1 -351 351 4 -352 351 -1 -451 351 -1 -352 352 4 -353 352 -1 -452 352 -1 -353 353 4 -354 353 -1 -453 353 -1 -354 354 4 -355 354 -1 -454 354 -1 -355 355 4 -356 355 -1 -455 355 -1 -356 356 4 -357 356 -1 -456 356 -1 -357 357 4 -358 357 -1 -457 357 -1 -358 358 4 -359 358 -1 -458 358 -1 -359 359 4 -360 359 -1 -459 359 -1 -360 360 4 -361 360 -1 -460 360 -1 -361 361 4 -362 361 -1 -461 361 -1 -362 362 4 -363 362 -1 -462 362 -1 -363 363 4 -364 363 -1 -463 363 -1 -364 364 4 -365 364 -1 -464 364 -1 -365 365 4 -366 365 -1 -465 365 -1 -366 366 4 -367 366 -1 -466 366 -1 -367 367 4 -368 367 -1 -467 367 -1 -368 368 4 -369 368 -1 -468 368 -1 -369 369 4 -370 369 -1 -469 369 -1 -370 370 4 -371 370 -1 -470 370 -1 -371 371 4 -372 371 -1 -471 371 -1 -372 372 4 -373 372 -1 -472 372 -1 -373 373 4 -374 373 -1 -473 373 -1 -374 374 4 -375 374 -1 -474 374 -1 -375 375 4 -376 375 -1 -475 375 -1 -376 376 4 -377 376 -1 -476 376 -1 -377 377 4 -378 377 -1 -477 377 -1 -378 378 4 -379 378 -1 -478 378 -1 -379 379 4 -380 379 -1 -479 379 -1 -380 380 4 -381 380 -1 -480 380 -1 -381 381 4 -382 381 -1 -481 381 -1 -382 382 4 -383 382 -1 -482 382 -1 -383 383 4 -384 383 -1 -483 383 -1 -384 384 4 -385 384 -1 -484 384 -1 -385 385 4 -386 385 -1 -485 385 -1 -386 386 4 -387 386 -1 -486 386 -1 -387 387 4 -388 387 -1 -487 387 -1 -388 388 4 -389 388 -1 -488 388 -1 -389 389 4 -390 389 -1 -489 389 -1 -390 390 4 -391 390 -1 -490 390 -1 -391 391 4 -392 391 -1 -491 391 -1 -392 392 4 -393 392 -1 -492 392 -1 -393 393 4 -394 393 -1 -493 393 -1 -394 394 4 -395 394 -1 -494 394 -1 -395 395 4 -396 395 -1 -495 395 -1 -396 396 4 -397 396 -1 -496 396 -1 -397 397 4 -398 397 -1 -497 397 -1 -398 398 4 -399 398 -1 -498 398 -1 -399 399 4 -400 399 -1 -499 399 -1 -400 400 4 -500 400 -1 -401 401 4 -402 401 -1 -501 401 -1 -402 402 4 -403 402 -1 -502 402 -1 -403 403 4 -404 403 -1 -503 403 -1 -404 404 4 -405 404 -1 -504 404 -1 -405 405 4 -406 405 -1 -505 405 -1 -406 406 4 -407 406 -1 -506 406 -1 -407 407 4 -408 407 -1 -507 407 -1 -408 408 4 -409 408 -1 -508 408 -1 -409 409 4 -410 409 -1 -509 409 -1 -410 410 4 -411 410 -1 -510 410 -1 -411 411 4 -412 411 -1 -511 411 -1 -412 412 4 -413 412 -1 -512 412 -1 -413 413 4 -414 413 -1 -513 413 -1 -414 414 4 -415 414 -1 -514 414 -1 -415 415 4 -416 415 -1 -515 415 -1 -416 416 4 -417 416 -1 -516 416 -1 -417 417 4 -418 417 -1 -517 417 -1 -418 418 4 -419 418 -1 -518 418 -1 -419 419 4 -420 419 -1 -519 419 -1 -420 420 4 -421 420 -1 -520 420 -1 -421 421 4 -422 421 -1 -521 421 -1 -422 422 4 -423 422 -1 -522 422 -1 -423 423 4 -424 423 -1 -523 423 -1 -424 424 4 -425 424 -1 -524 424 -1 -425 425 4 -426 425 -1 -525 425 -1 -426 426 4 -427 426 -1 -526 426 -1 -427 427 4 -428 427 -1 -527 427 -1 -428 428 4 -429 428 -1 -528 428 -1 -429 429 4 -430 429 -1 -529 429 -1 -430 430 4 -431 430 -1 -530 430 -1 -431 431 4 -432 431 -1 -531 431 -1 -432 432 4 -433 432 -1 -532 432 -1 -433 433 4 -434 433 -1 -533 433 -1 -434 434 4 -435 434 -1 -534 434 -1 -435 435 4 -436 435 -1 -535 435 -1 -436 436 4 -437 436 -1 -536 436 -1 -437 437 4 -438 437 -1 -537 437 -1 -438 438 4 -439 438 -1 -538 438 -1 -439 439 4 -440 439 -1 -539 439 -1 -440 440 4 -441 440 -1 -540 440 -1 -441 441 4 -442 441 -1 -541 441 -1 -442 442 4 -443 442 -1 -542 442 -1 -443 443 4 -444 443 -1 -543 443 -1 -444 444 4 -445 444 -1 -544 444 -1 -445 445 4 -446 445 -1 -545 445 -1 -446 446 4 -447 446 -1 -546 446 -1 -447 447 4 -448 447 -1 -547 447 -1 -448 448 4 -449 448 -1 -548 448 -1 -449 449 4 -450 449 -1 -549 449 -1 -450 450 4 -451 450 -1 -550 450 -1 -451 451 4 -452 451 -1 -551 451 -1 -452 452 4 -453 452 -1 -552 452 -1 -453 453 4 -454 453 -1 -553 453 -1 -454 454 4 -455 454 -1 -554 454 -1 -455 455 4 -456 455 -1 -555 455 -1 -456 456 4 -457 456 -1 -556 456 -1 -457 457 4 -458 457 -1 -557 457 -1 -458 458 4 -459 458 -1 -558 458 -1 -459 459 4 -460 459 -1 -559 459 -1 -460 460 4 -461 460 -1 -560 460 -1 -461 461 4 -462 461 -1 -561 461 -1 -462 462 4 -463 462 -1 -562 462 -1 -463 463 4 -464 463 -1 -563 463 -1 -464 464 4 -465 464 -1 -564 464 -1 -465 465 4 -466 465 -1 -565 465 -1 -466 466 4 -467 466 -1 -566 466 -1 -467 467 4 -468 467 -1 -567 467 -1 -468 468 4 -469 468 -1 -568 468 -1 -469 469 4 -470 469 -1 -569 469 -1 -470 470 4 -471 470 -1 -570 470 -1 -471 471 4 -472 471 -1 -571 471 -1 -472 472 4 -473 472 -1 -572 472 -1 -473 473 4 -474 473 -1 -573 473 -1 -474 474 4 -475 474 -1 -574 474 -1 -475 475 4 -476 475 -1 -575 475 -1 -476 476 4 -477 476 -1 -576 476 -1 -477 477 4 -478 477 -1 -577 477 -1 -478 478 4 -479 478 -1 -578 478 -1 -479 479 4 -480 479 -1 -579 479 -1 -480 480 4 -481 480 -1 -580 480 -1 -481 481 4 -482 481 -1 -581 481 -1 -482 482 4 -483 482 -1 -582 482 -1 -483 483 4 -484 483 -1 -583 483 -1 -484 484 4 -485 484 -1 -584 484 -1 -485 485 4 -486 485 -1 -585 485 -1 -486 486 4 -487 486 -1 -586 486 -1 -487 487 4 -488 487 -1 -587 487 -1 -488 488 4 -489 488 -1 -588 488 -1 -489 489 4 -490 489 -1 -589 489 -1 -490 490 4 -491 490 -1 -590 490 -1 -491 491 4 -492 491 -1 -591 491 -1 -492 492 4 -493 492 -1 -592 492 -1 -493 493 4 -494 493 -1 -593 493 -1 -494 494 4 -495 494 -1 -594 494 -1 -495 495 4 -496 495 -1 -595 495 -1 -496 496 4 -497 496 -1 -596 496 -1 -497 497 4 -498 497 -1 -597 497 -1 -498 498 4 -499 498 -1 -598 498 -1 -499 499 4 -500 499 -1 -599 499 -1 -500 500 4 -600 500 -1 -501 501 4 -502 501 -1 -601 501 -1 -502 502 4 -503 502 -1 -602 502 -1 -503 503 4 -504 503 -1 -603 503 -1 -504 504 4 -505 504 -1 -604 504 -1 -505 505 4 -506 505 -1 -605 505 -1 -506 506 4 -507 506 -1 -606 506 -1 -507 507 4 -508 507 -1 -607 507 -1 -508 508 4 -509 508 -1 -608 508 -1 -509 509 4 -510 509 -1 -609 509 -1 -510 510 4 -511 510 -1 -610 510 -1 -511 511 4 -512 511 -1 -611 511 -1 -512 512 4 -513 512 -1 -612 512 -1 -513 513 4 -514 513 -1 -613 513 -1 -514 514 4 -515 514 -1 -614 514 -1 -515 515 4 -516 515 -1 -615 515 -1 -516 516 4 -517 516 -1 -616 516 -1 -517 517 4 -518 517 -1 -617 517 -1 -518 518 4 -519 518 -1 -618 518 -1 -519 519 4 -520 519 -1 -619 519 -1 -520 520 4 -521 520 -1 -620 520 -1 -521 521 4 -522 521 -1 -621 521 -1 -522 522 4 -523 522 -1 -622 522 -1 -523 523 4 -524 523 -1 -623 523 -1 -524 524 4 -525 524 -1 -624 524 -1 -525 525 4 -526 525 -1 -625 525 -1 -526 526 4 -527 526 -1 -626 526 -1 -527 527 4 -528 527 -1 -627 527 -1 -528 528 4 -529 528 -1 -628 528 -1 -529 529 4 -530 529 -1 -629 529 -1 -530 530 4 -531 530 -1 -630 530 -1 -531 531 4 -532 531 -1 -631 531 -1 -532 532 4 -533 532 -1 -632 532 -1 -533 533 4 -534 533 -1 -633 533 -1 -534 534 4 -535 534 -1 -634 534 -1 -535 535 4 -536 535 -1 -635 535 -1 -536 536 4 -537 536 -1 -636 536 -1 -537 537 4 -538 537 -1 -637 537 -1 -538 538 4 -539 538 -1 -638 538 -1 -539 539 4 -540 539 -1 -639 539 -1 -540 540 4 -541 540 -1 -640 540 -1 -541 541 4 -542 541 -1 -641 541 -1 -542 542 4 -543 542 -1 -642 542 -1 -543 543 4 -544 543 -1 -643 543 -1 -544 544 4 -545 544 -1 -644 544 -1 -545 545 4 -546 545 -1 -645 545 -1 -546 546 4 -547 546 -1 -646 546 -1 -547 547 4 -548 547 -1 -647 547 -1 -548 548 4 -549 548 -1 -648 548 -1 -549 549 4 -550 549 -1 -649 549 -1 -550 550 4 -551 550 -1 -650 550 -1 -551 551 4 -552 551 -1 -651 551 -1 -552 552 4 -553 552 -1 -652 552 -1 -553 553 4 -554 553 -1 -653 553 -1 -554 554 4 -555 554 -1 -654 554 -1 -555 555 4 -556 555 -1 -655 555 -1 -556 556 4 -557 556 -1 -656 556 -1 -557 557 4 -558 557 -1 -657 557 -1 -558 558 4 -559 558 -1 -658 558 -1 -559 559 4 -560 559 -1 -659 559 -1 -560 560 4 -561 560 -1 -660 560 -1 -561 561 4 -562 561 -1 -661 561 -1 -562 562 4 -563 562 -1 -662 562 -1 -563 563 4 -564 563 -1 -663 563 -1 -564 564 4 -565 564 -1 -664 564 -1 -565 565 4 -566 565 -1 -665 565 -1 -566 566 4 -567 566 -1 -666 566 -1 -567 567 4 -568 567 -1 -667 567 -1 -568 568 4 -569 568 -1 -668 568 -1 -569 569 4 -570 569 -1 -669 569 -1 -570 570 4 -571 570 -1 -670 570 -1 -571 571 4 -572 571 -1 -671 571 -1 -572 572 4 -573 572 -1 -672 572 -1 -573 573 4 -574 573 -1 -673 573 -1 -574 574 4 -575 574 -1 -674 574 -1 -575 575 4 -576 575 -1 -675 575 -1 -576 576 4 -577 576 -1 -676 576 -1 -577 577 4 -578 577 -1 -677 577 -1 -578 578 4 -579 578 -1 -678 578 -1 -579 579 4 -580 579 -1 -679 579 -1 -580 580 4 -581 580 -1 -680 580 -1 -581 581 4 -582 581 -1 -681 581 -1 -582 582 4 -583 582 -1 -682 582 -1 -583 583 4 -584 583 -1 -683 583 -1 -584 584 4 -585 584 -1 -684 584 -1 -585 585 4 -586 585 -1 -685 585 -1 -586 586 4 -587 586 -1 -686 586 -1 -587 587 4 -588 587 -1 -687 587 -1 -588 588 4 -589 588 -1 -688 588 -1 -589 589 4 -590 589 -1 -689 589 -1 -590 590 4 -591 590 -1 -690 590 -1 -591 591 4 -592 591 -1 -691 591 -1 -592 592 4 -593 592 -1 -692 592 -1 -593 593 4 -594 593 -1 -693 593 -1 -594 594 4 -595 594 -1 -694 594 -1 -595 595 4 -596 595 -1 -695 595 -1 -596 596 4 -597 596 -1 -696 596 -1 -597 597 4 -598 597 -1 -697 597 -1 -598 598 4 -599 598 -1 -698 598 -1 -599 599 4 -600 599 -1 -699 599 -1 -600 600 4 -700 600 -1 -601 601 4 -602 601 -1 -701 601 -1 -602 602 4 -603 602 -1 -702 602 -1 -603 603 4 -604 603 -1 -703 603 -1 -604 604 4 -605 604 -1 -704 604 -1 -605 605 4 -606 605 -1 -705 605 -1 -606 606 4 -607 606 -1 -706 606 -1 -607 607 4 -608 607 -1 -707 607 -1 -608 608 4 -609 608 -1 -708 608 -1 -609 609 4 -610 609 -1 -709 609 -1 -610 610 4 -611 610 -1 -710 610 -1 -611 611 4 -612 611 -1 -711 611 -1 -612 612 4 -613 612 -1 -712 612 -1 -613 613 4 -614 613 -1 -713 613 -1 -614 614 4 -615 614 -1 -714 614 -1 -615 615 4 -616 615 -1 -715 615 -1 -616 616 4 -617 616 -1 -716 616 -1 -617 617 4 -618 617 -1 -717 617 -1 -618 618 4 -619 618 -1 -718 618 -1 -619 619 4 -620 619 -1 -719 619 -1 -620 620 4 -621 620 -1 -720 620 -1 -621 621 4 -622 621 -1 -721 621 -1 -622 622 4 -623 622 -1 -722 622 -1 -623 623 4 -624 623 -1 -723 623 -1 -624 624 4 -625 624 -1 -724 624 -1 -625 625 4 -626 625 -1 -725 625 -1 -626 626 4 -627 626 -1 -726 626 -1 -627 627 4 -628 627 -1 -727 627 -1 -628 628 4 -629 628 -1 -728 628 -1 -629 629 4 -630 629 -1 -729 629 -1 -630 630 4 -631 630 -1 -730 630 -1 -631 631 4 -632 631 -1 -731 631 -1 -632 632 4 -633 632 -1 -732 632 -1 -633 633 4 -634 633 -1 -733 633 -1 -634 634 4 -635 634 -1 -734 634 -1 -635 635 4 -636 635 -1 -735 635 -1 -636 636 4 -637 636 -1 -736 636 -1 -637 637 4 -638 637 -1 -737 637 -1 -638 638 4 -639 638 -1 -738 638 -1 -639 639 4 -640 639 -1 -739 639 -1 -640 640 4 -641 640 -1 -740 640 -1 -641 641 4 -642 641 -1 -741 641 -1 -642 642 4 -643 642 -1 -742 642 -1 -643 643 4 -644 643 -1 -743 643 -1 -644 644 4 -645 644 -1 -744 644 -1 -645 645 4 -646 645 -1 -745 645 -1 -646 646 4 -647 646 -1 -746 646 -1 -647 647 4 -648 647 -1 -747 647 -1 -648 648 4 -649 648 -1 -748 648 -1 -649 649 4 -650 649 -1 -749 649 -1 -650 650 4 -651 650 -1 -750 650 -1 -651 651 4 -652 651 -1 -751 651 -1 -652 652 4 -653 652 -1 -752 652 -1 -653 653 4 -654 653 -1 -753 653 -1 -654 654 4 -655 654 -1 -754 654 -1 -655 655 4 -656 655 -1 -755 655 -1 -656 656 4 -657 656 -1 -756 656 -1 -657 657 4 -658 657 -1 -757 657 -1 -658 658 4 -659 658 -1 -758 658 -1 -659 659 4 -660 659 -1 -759 659 -1 -660 660 4 -661 660 -1 -760 660 -1 -661 661 4 -662 661 -1 -761 661 -1 -662 662 4 -663 662 -1 -762 662 -1 -663 663 4 -664 663 -1 -763 663 -1 -664 664 4 -665 664 -1 -764 664 -1 -665 665 4 -666 665 -1 -765 665 -1 -666 666 4 -667 666 -1 -766 666 -1 -667 667 4 -668 667 -1 -767 667 -1 -668 668 4 -669 668 -1 -768 668 -1 -669 669 4 -670 669 -1 -769 669 -1 -670 670 4 -671 670 -1 -770 670 -1 -671 671 4 -672 671 -1 -771 671 -1 -672 672 4 -673 672 -1 -772 672 -1 -673 673 4 -674 673 -1 -773 673 -1 -674 674 4 -675 674 -1 -774 674 -1 -675 675 4 -676 675 -1 -775 675 -1 -676 676 4 -677 676 -1 -776 676 -1 -677 677 4 -678 677 -1 -777 677 -1 -678 678 4 -679 678 -1 -778 678 -1 -679 679 4 -680 679 -1 -779 679 -1 -680 680 4 -681 680 -1 -780 680 -1 -681 681 4 -682 681 -1 -781 681 -1 -682 682 4 -683 682 -1 -782 682 -1 -683 683 4 -684 683 -1 -783 683 -1 -684 684 4 -685 684 -1 -784 684 -1 -685 685 4 -686 685 -1 -785 685 -1 -686 686 4 -687 686 -1 -786 686 -1 -687 687 4 -688 687 -1 -787 687 -1 -688 688 4 -689 688 -1 -788 688 -1 -689 689 4 -690 689 -1 -789 689 -1 -690 690 4 -691 690 -1 -790 690 -1 -691 691 4 -692 691 -1 -791 691 -1 -692 692 4 -693 692 -1 -792 692 -1 -693 693 4 -694 693 -1 -793 693 -1 -694 694 4 -695 694 -1 -794 694 -1 -695 695 4 -696 695 -1 -795 695 -1 -696 696 4 -697 696 -1 -796 696 -1 -697 697 4 -698 697 -1 -797 697 -1 -698 698 4 -699 698 -1 -798 698 -1 -699 699 4 -700 699 -1 -799 699 -1 -700 700 4 -800 700 -1 -701 701 4 -702 701 -1 -801 701 -1 -702 702 4 -703 702 -1 -802 702 -1 -703 703 4 -704 703 -1 -803 703 -1 -704 704 4 -705 704 -1 -804 704 -1 -705 705 4 -706 705 -1 -805 705 -1 -706 706 4 -707 706 -1 -806 706 -1 -707 707 4 -708 707 -1 -807 707 -1 -708 708 4 -709 708 -1 -808 708 -1 -709 709 4 -710 709 -1 -809 709 -1 -710 710 4 -711 710 -1 -810 710 -1 -711 711 4 -712 711 -1 -811 711 -1 -712 712 4 -713 712 -1 -812 712 -1 -713 713 4 -714 713 -1 -813 713 -1 -714 714 4 -715 714 -1 -814 714 -1 -715 715 4 -716 715 -1 -815 715 -1 -716 716 4 -717 716 -1 -816 716 -1 -717 717 4 -718 717 -1 -817 717 -1 -718 718 4 -719 718 -1 -818 718 -1 -719 719 4 -720 719 -1 -819 719 -1 -720 720 4 -721 720 -1 -820 720 -1 -721 721 4 -722 721 -1 -821 721 -1 -722 722 4 -723 722 -1 -822 722 -1 -723 723 4 -724 723 -1 -823 723 -1 -724 724 4 -725 724 -1 -824 724 -1 -725 725 4 -726 725 -1 -825 725 -1 -726 726 4 -727 726 -1 -826 726 -1 -727 727 4 -728 727 -1 -827 727 -1 -728 728 4 -729 728 -1 -828 728 -1 -729 729 4 -730 729 -1 -829 729 -1 -730 730 4 -731 730 -1 -830 730 -1 -731 731 4 -732 731 -1 -831 731 -1 -732 732 4 -733 732 -1 -832 732 -1 -733 733 4 -734 733 -1 -833 733 -1 -734 734 4 -735 734 -1 -834 734 -1 -735 735 4 -736 735 -1 -835 735 -1 -736 736 4 -737 736 -1 -836 736 -1 -737 737 4 -738 737 -1 -837 737 -1 -738 738 4 -739 738 -1 -838 738 -1 -739 739 4 -740 739 -1 -839 739 -1 -740 740 4 -741 740 -1 -840 740 -1 -741 741 4 -742 741 -1 -841 741 -1 -742 742 4 -743 742 -1 -842 742 -1 -743 743 4 -744 743 -1 -843 743 -1 -744 744 4 -745 744 -1 -844 744 -1 -745 745 4 -746 745 -1 -845 745 -1 -746 746 4 -747 746 -1 -846 746 -1 -747 747 4 -748 747 -1 -847 747 -1 -748 748 4 -749 748 -1 -848 748 -1 -749 749 4 -750 749 -1 -849 749 -1 -750 750 4 -751 750 -1 -850 750 -1 -751 751 4 -752 751 -1 -851 751 -1 -752 752 4 -753 752 -1 -852 752 -1 -753 753 4 -754 753 -1 -853 753 -1 -754 754 4 -755 754 -1 -854 754 -1 -755 755 4 -756 755 -1 -855 755 -1 -756 756 4 -757 756 -1 -856 756 -1 -757 757 4 -758 757 -1 -857 757 -1 -758 758 4 -759 758 -1 -858 758 -1 -759 759 4 -760 759 -1 -859 759 -1 -760 760 4 -761 760 -1 -860 760 -1 -761 761 4 -762 761 -1 -861 761 -1 -762 762 4 -763 762 -1 -862 762 -1 -763 763 4 -764 763 -1 -863 763 -1 -764 764 4 -765 764 -1 -864 764 -1 -765 765 4 -766 765 -1 -865 765 -1 -766 766 4 -767 766 -1 -866 766 -1 -767 767 4 -768 767 -1 -867 767 -1 -768 768 4 -769 768 -1 -868 768 -1 -769 769 4 -770 769 -1 -869 769 -1 -770 770 4 -771 770 -1 -870 770 -1 -771 771 4 -772 771 -1 -871 771 -1 -772 772 4 -773 772 -1 -872 772 -1 -773 773 4 -774 773 -1 -873 773 -1 -774 774 4 -775 774 -1 -874 774 -1 -775 775 4 -776 775 -1 -875 775 -1 -776 776 4 -777 776 -1 -876 776 -1 -777 777 4 -778 777 -1 -877 777 -1 -778 778 4 -779 778 -1 -878 778 -1 -779 779 4 -780 779 -1 -879 779 -1 -780 780 4 -781 780 -1 -880 780 -1 -781 781 4 -782 781 -1 -881 781 -1 -782 782 4 -783 782 -1 -882 782 -1 -783 783 4 -784 783 -1 -883 783 -1 -784 784 4 -785 784 -1 -884 784 -1 -785 785 4 -786 785 -1 -885 785 -1 -786 786 4 -787 786 -1 -886 786 -1 -787 787 4 -788 787 -1 -887 787 -1 -788 788 4 -789 788 -1 -888 788 -1 -789 789 4 -790 789 -1 -889 789 -1 -790 790 4 -791 790 -1 -890 790 -1 -791 791 4 -792 791 -1 -891 791 -1 -792 792 4 -793 792 -1 -892 792 -1 -793 793 4 -794 793 -1 -893 793 -1 -794 794 4 -795 794 -1 -894 794 -1 -795 795 4 -796 795 -1 -895 795 -1 -796 796 4 -797 796 -1 -896 796 -1 -797 797 4 -798 797 -1 -897 797 -1 -798 798 4 -799 798 -1 -898 798 -1 -799 799 4 -800 799 -1 -899 799 -1 -800 800 4 -900 800 -1 -801 801 4 -802 801 -1 -901 801 -1 -802 802 4 -803 802 -1 -902 802 -1 -803 803 4 -804 803 -1 -903 803 -1 -804 804 4 -805 804 -1 -904 804 -1 -805 805 4 -806 805 -1 -905 805 -1 -806 806 4 -807 806 -1 -906 806 -1 -807 807 4 -808 807 -1 -907 807 -1 -808 808 4 -809 808 -1 -908 808 -1 -809 809 4 -810 809 -1 -909 809 -1 -810 810 4 -811 810 -1 -910 810 -1 -811 811 4 -812 811 -1 -911 811 -1 -812 812 4 -813 812 -1 -912 812 -1 -813 813 4 -814 813 -1 -913 813 -1 -814 814 4 -815 814 -1 -914 814 -1 -815 815 4 -816 815 -1 -915 815 -1 -816 816 4 -817 816 -1 -916 816 -1 -817 817 4 -818 817 -1 -917 817 -1 -818 818 4 -819 818 -1 -918 818 -1 -819 819 4 -820 819 -1 -919 819 -1 -820 820 4 -821 820 -1 -920 820 -1 -821 821 4 -822 821 -1 -921 821 -1 -822 822 4 -823 822 -1 -922 822 -1 -823 823 4 -824 823 -1 -923 823 -1 -824 824 4 -825 824 -1 -924 824 -1 -825 825 4 -826 825 -1 -925 825 -1 -826 826 4 -827 826 -1 -926 826 -1 -827 827 4 -828 827 -1 -927 827 -1 -828 828 4 -829 828 -1 -928 828 -1 -829 829 4 -830 829 -1 -929 829 -1 -830 830 4 -831 830 -1 -930 830 -1 -831 831 4 -832 831 -1 -931 831 -1 -832 832 4 -833 832 -1 -932 832 -1 -833 833 4 -834 833 -1 -933 833 -1 -834 834 4 -835 834 -1 -934 834 -1 -835 835 4 -836 835 -1 -935 835 -1 -836 836 4 -837 836 -1 -936 836 -1 -837 837 4 -838 837 -1 -937 837 -1 -838 838 4 -839 838 -1 -938 838 -1 -839 839 4 -840 839 -1 -939 839 -1 -840 840 4 -841 840 -1 -940 840 -1 -841 841 4 -842 841 -1 -941 841 -1 -842 842 4 -843 842 -1 -942 842 -1 -843 843 4 -844 843 -1 -943 843 -1 -844 844 4 -845 844 -1 -944 844 -1 -845 845 4 -846 845 -1 -945 845 -1 -846 846 4 -847 846 -1 -946 846 -1 -847 847 4 -848 847 -1 -947 847 -1 -848 848 4 -849 848 -1 -948 848 -1 -849 849 4 -850 849 -1 -949 849 -1 -850 850 4 -851 850 -1 -950 850 -1 -851 851 4 -852 851 -1 -951 851 -1 -852 852 4 -853 852 -1 -952 852 -1 -853 853 4 -854 853 -1 -953 853 -1 -854 854 4 -855 854 -1 -954 854 -1 -855 855 4 -856 855 -1 -955 855 -1 -856 856 4 -857 856 -1 -956 856 -1 -857 857 4 -858 857 -1 -957 857 -1 -858 858 4 -859 858 -1 -958 858 -1 -859 859 4 -860 859 -1 -959 859 -1 -860 860 4 -861 860 -1 -960 860 -1 -861 861 4 -862 861 -1 -961 861 -1 -862 862 4 -863 862 -1 -962 862 -1 -863 863 4 -864 863 -1 -963 863 -1 -864 864 4 -865 864 -1 -964 864 -1 -865 865 4 -866 865 -1 -965 865 -1 -866 866 4 -867 866 -1 -966 866 -1 -867 867 4 -868 867 -1 -967 867 -1 -868 868 4 -869 868 -1 -968 868 -1 -869 869 4 -870 869 -1 -969 869 -1 -870 870 4 -871 870 -1 -970 870 -1 -871 871 4 -872 871 -1 -971 871 -1 -872 872 4 -873 872 -1 -972 872 -1 -873 873 4 -874 873 -1 -973 873 -1 -874 874 4 -875 874 -1 -974 874 -1 -875 875 4 -876 875 -1 -975 875 -1 -876 876 4 -877 876 -1 -976 876 -1 -877 877 4 -878 877 -1 -977 877 -1 -878 878 4 -879 878 -1 -978 878 -1 -879 879 4 -880 879 -1 -979 879 -1 -880 880 4 -881 880 -1 -980 880 -1 -881 881 4 -882 881 -1 -981 881 -1 -882 882 4 -883 882 -1 -982 882 -1 -883 883 4 -884 883 -1 -983 883 -1 -884 884 4 -885 884 -1 -984 884 -1 -885 885 4 -886 885 -1 -985 885 -1 -886 886 4 -887 886 -1 -986 886 -1 -887 887 4 -888 887 -1 -987 887 -1 -888 888 4 -889 888 -1 -988 888 -1 -889 889 4 -890 889 -1 -989 889 -1 -890 890 4 -891 890 -1 -990 890 -1 -891 891 4 -892 891 -1 -991 891 -1 -892 892 4 -893 892 -1 -992 892 -1 -893 893 4 -894 893 -1 -993 893 -1 -894 894 4 -895 894 -1 -994 894 -1 -895 895 4 -896 895 -1 -995 895 -1 -896 896 4 -897 896 -1 -996 896 -1 -897 897 4 -898 897 -1 -997 897 -1 -898 898 4 -899 898 -1 -998 898 -1 -899 899 4 -900 899 -1 -999 899 -1 -900 900 4 -1000 900 -1 -901 901 4 -902 901 -1 -1001 901 -1 -902 902 4 -903 902 -1 -1002 902 -1 -903 903 4 -904 903 -1 -1003 903 -1 -904 904 4 -905 904 -1 -1004 904 -1 -905 905 4 -906 905 -1 -1005 905 -1 -906 906 4 -907 906 -1 -1006 906 -1 -907 907 4 -908 907 -1 -1007 907 -1 -908 908 4 -909 908 -1 -1008 908 -1 -909 909 4 -910 909 -1 -1009 909 -1 -910 910 4 -911 910 -1 -1010 910 -1 -911 911 4 -912 911 -1 -1011 911 -1 -912 912 4 -913 912 -1 -1012 912 -1 -913 913 4 -914 913 -1 -1013 913 -1 -914 914 4 -915 914 -1 -1014 914 -1 -915 915 4 -916 915 -1 -1015 915 -1 -916 916 4 -917 916 -1 -1016 916 -1 -917 917 4 -918 917 -1 -1017 917 -1 -918 918 4 -919 918 -1 -1018 918 -1 -919 919 4 -920 919 -1 -1019 919 -1 -920 920 4 -921 920 -1 -1020 920 -1 -921 921 4 -922 921 -1 -1021 921 -1 -922 922 4 -923 922 -1 -1022 922 -1 -923 923 4 -924 923 -1 -1023 923 -1 -924 924 4 -925 924 -1 -1024 924 -1 -925 925 4 -926 925 -1 -1025 925 -1 -926 926 4 -927 926 -1 -1026 926 -1 -927 927 4 -928 927 -1 -1027 927 -1 -928 928 4 -929 928 -1 -1028 928 -1 -929 929 4 -930 929 -1 -1029 929 -1 -930 930 4 -931 930 -1 -1030 930 -1 -931 931 4 -932 931 -1 -1031 931 -1 -932 932 4 -933 932 -1 -1032 932 -1 -933 933 4 -934 933 -1 -1033 933 -1 -934 934 4 -935 934 -1 -1034 934 -1 -935 935 4 -936 935 -1 -1035 935 -1 -936 936 4 -937 936 -1 -1036 936 -1 -937 937 4 -938 937 -1 -1037 937 -1 -938 938 4 -939 938 -1 -1038 938 -1 -939 939 4 -940 939 -1 -1039 939 -1 -940 940 4 -941 940 -1 -1040 940 -1 -941 941 4 -942 941 -1 -1041 941 -1 -942 942 4 -943 942 -1 -1042 942 -1 -943 943 4 -944 943 -1 -1043 943 -1 -944 944 4 -945 944 -1 -1044 944 -1 -945 945 4 -946 945 -1 -1045 945 -1 -946 946 4 -947 946 -1 -1046 946 -1 -947 947 4 -948 947 -1 -1047 947 -1 -948 948 4 -949 948 -1 -1048 948 -1 -949 949 4 -950 949 -1 -1049 949 -1 -950 950 4 -951 950 -1 -1050 950 -1 -951 951 4 -952 951 -1 -1051 951 -1 -952 952 4 -953 952 -1 -1052 952 -1 -953 953 4 -954 953 -1 -1053 953 -1 -954 954 4 -955 954 -1 -1054 954 -1 -955 955 4 -956 955 -1 -1055 955 -1 -956 956 4 -957 956 -1 -1056 956 -1 -957 957 4 -958 957 -1 -1057 957 -1 -958 958 4 -959 958 -1 -1058 958 -1 -959 959 4 -960 959 -1 -1059 959 -1 -960 960 4 -961 960 -1 -1060 960 -1 -961 961 4 -962 961 -1 -1061 961 -1 -962 962 4 -963 962 -1 -1062 962 -1 -963 963 4 -964 963 -1 -1063 963 -1 -964 964 4 -965 964 -1 -1064 964 -1 -965 965 4 -966 965 -1 -1065 965 -1 -966 966 4 -967 966 -1 -1066 966 -1 -967 967 4 -968 967 -1 -1067 967 -1 -968 968 4 -969 968 -1 -1068 968 -1 -969 969 4 -970 969 -1 -1069 969 -1 -970 970 4 -971 970 -1 -1070 970 -1 -971 971 4 -972 971 -1 -1071 971 -1 -972 972 4 -973 972 -1 -1072 972 -1 -973 973 4 -974 973 -1 -1073 973 -1 -974 974 4 -975 974 -1 -1074 974 -1 -975 975 4 -976 975 -1 -1075 975 -1 -976 976 4 -977 976 -1 -1076 976 -1 -977 977 4 -978 977 -1 -1077 977 -1 -978 978 4 -979 978 -1 -1078 978 -1 -979 979 4 -980 979 -1 -1079 979 -1 -980 980 4 -981 980 -1 -1080 980 -1 -981 981 4 -982 981 -1 -1081 981 -1 -982 982 4 -983 982 -1 -1082 982 -1 -983 983 4 -984 983 -1 -1083 983 -1 -984 984 4 -985 984 -1 -1084 984 -1 -985 985 4 -986 985 -1 -1085 985 -1 -986 986 4 -987 986 -1 -1086 986 -1 -987 987 4 -988 987 -1 -1087 987 -1 -988 988 4 -989 988 -1 -1088 988 -1 -989 989 4 -990 989 -1 -1089 989 -1 -990 990 4 -991 990 -1 -1090 990 -1 -991 991 4 -992 991 -1 -1091 991 -1 -992 992 4 -993 992 -1 -1092 992 -1 -993 993 4 -994 993 -1 -1093 993 -1 -994 994 4 -995 994 -1 -1094 994 -1 -995 995 4 -996 995 -1 -1095 995 -1 -996 996 4 -997 996 -1 -1096 996 -1 -997 997 4 -998 997 -1 -1097 997 -1 -998 998 4 -999 998 -1 -1098 998 -1 -999 999 4 -1000 999 -1 -1099 999 -1 -1000 1000 4 -1100 1000 -1 -1001 1001 4 -1002 1001 -1 -1101 1001 -1 -1002 1002 4 -1003 1002 -1 -1102 1002 -1 -1003 1003 4 -1004 1003 -1 -1103 1003 -1 -1004 1004 4 -1005 1004 -1 -1104 1004 -1 -1005 1005 4 -1006 1005 -1 -1105 1005 -1 -1006 1006 4 -1007 1006 -1 -1106 1006 -1 -1007 1007 4 -1008 1007 -1 -1107 1007 -1 -1008 1008 4 -1009 1008 -1 -1108 1008 -1 -1009 1009 4 -1010 1009 -1 -1109 1009 -1 -1010 1010 4 -1011 1010 -1 -1110 1010 -1 -1011 1011 4 -1012 1011 -1 -1111 1011 -1 -1012 1012 4 -1013 1012 -1 -1112 1012 -1 -1013 1013 4 -1014 1013 -1 -1113 1013 -1 -1014 1014 4 -1015 1014 -1 -1114 1014 -1 -1015 1015 4 -1016 1015 -1 -1115 1015 -1 -1016 1016 4 -1017 1016 -1 -1116 1016 -1 -1017 1017 4 -1018 1017 -1 -1117 1017 -1 -1018 1018 4 -1019 1018 -1 -1118 1018 -1 -1019 1019 4 -1020 1019 -1 -1119 1019 -1 -1020 1020 4 -1021 1020 -1 -1120 1020 -1 -1021 1021 4 -1022 1021 -1 -1121 1021 -1 -1022 1022 4 -1023 1022 -1 -1122 1022 -1 -1023 1023 4 -1024 1023 -1 -1123 1023 -1 -1024 1024 4 -1025 1024 -1 -1124 1024 -1 -1025 1025 4 -1026 1025 -1 -1125 1025 -1 -1026 1026 4 -1027 1026 -1 -1126 1026 -1 -1027 1027 4 -1028 1027 -1 -1127 1027 -1 -1028 1028 4 -1029 1028 -1 -1128 1028 -1 -1029 1029 4 -1030 1029 -1 -1129 1029 -1 -1030 1030 4 -1031 1030 -1 -1130 1030 -1 -1031 1031 4 -1032 1031 -1 -1131 1031 -1 -1032 1032 4 -1033 1032 -1 -1132 1032 -1 -1033 1033 4 -1034 1033 -1 -1133 1033 -1 -1034 1034 4 -1035 1034 -1 -1134 1034 -1 -1035 1035 4 -1036 1035 -1 -1135 1035 -1 -1036 1036 4 -1037 1036 -1 -1136 1036 -1 -1037 1037 4 -1038 1037 -1 -1137 1037 -1 -1038 1038 4 -1039 1038 -1 -1138 1038 -1 -1039 1039 4 -1040 1039 -1 -1139 1039 -1 -1040 1040 4 -1041 1040 -1 -1140 1040 -1 -1041 1041 4 -1042 1041 -1 -1141 1041 -1 -1042 1042 4 -1043 1042 -1 -1142 1042 -1 -1043 1043 4 -1044 1043 -1 -1143 1043 -1 -1044 1044 4 -1045 1044 -1 -1144 1044 -1 -1045 1045 4 -1046 1045 -1 -1145 1045 -1 -1046 1046 4 -1047 1046 -1 -1146 1046 -1 -1047 1047 4 -1048 1047 -1 -1147 1047 -1 -1048 1048 4 -1049 1048 -1 -1148 1048 -1 -1049 1049 4 -1050 1049 -1 -1149 1049 -1 -1050 1050 4 -1051 1050 -1 -1150 1050 -1 -1051 1051 4 -1052 1051 -1 -1151 1051 -1 -1052 1052 4 -1053 1052 -1 -1152 1052 -1 -1053 1053 4 -1054 1053 -1 -1153 1053 -1 -1054 1054 4 -1055 1054 -1 -1154 1054 -1 -1055 1055 4 -1056 1055 -1 -1155 1055 -1 -1056 1056 4 -1057 1056 -1 -1156 1056 -1 -1057 1057 4 -1058 1057 -1 -1157 1057 -1 -1058 1058 4 -1059 1058 -1 -1158 1058 -1 -1059 1059 4 -1060 1059 -1 -1159 1059 -1 -1060 1060 4 -1061 1060 -1 -1160 1060 -1 -1061 1061 4 -1062 1061 -1 -1161 1061 -1 -1062 1062 4 -1063 1062 -1 -1162 1062 -1 -1063 1063 4 -1064 1063 -1 -1163 1063 -1 -1064 1064 4 -1065 1064 -1 -1164 1064 -1 -1065 1065 4 -1066 1065 -1 -1165 1065 -1 -1066 1066 4 -1067 1066 -1 -1166 1066 -1 -1067 1067 4 -1068 1067 -1 -1167 1067 -1 -1068 1068 4 -1069 1068 -1 -1168 1068 -1 -1069 1069 4 -1070 1069 -1 -1169 1069 -1 -1070 1070 4 -1071 1070 -1 -1170 1070 -1 -1071 1071 4 -1072 1071 -1 -1171 1071 -1 -1072 1072 4 -1073 1072 -1 -1172 1072 -1 -1073 1073 4 -1074 1073 -1 -1173 1073 -1 -1074 1074 4 -1075 1074 -1 -1174 1074 -1 -1075 1075 4 -1076 1075 -1 -1175 1075 -1 -1076 1076 4 -1077 1076 -1 -1176 1076 -1 -1077 1077 4 -1078 1077 -1 -1177 1077 -1 -1078 1078 4 -1079 1078 -1 -1178 1078 -1 -1079 1079 4 -1080 1079 -1 -1179 1079 -1 -1080 1080 4 -1081 1080 -1 -1180 1080 -1 -1081 1081 4 -1082 1081 -1 -1181 1081 -1 -1082 1082 4 -1083 1082 -1 -1182 1082 -1 -1083 1083 4 -1084 1083 -1 -1183 1083 -1 -1084 1084 4 -1085 1084 -1 -1184 1084 -1 -1085 1085 4 -1086 1085 -1 -1185 1085 -1 -1086 1086 4 -1087 1086 -1 -1186 1086 -1 -1087 1087 4 -1088 1087 -1 -1187 1087 -1 -1088 1088 4 -1089 1088 -1 -1188 1088 -1 -1089 1089 4 -1090 1089 -1 -1189 1089 -1 -1090 1090 4 -1091 1090 -1 -1190 1090 -1 -1091 1091 4 -1092 1091 -1 -1191 1091 -1 -1092 1092 4 -1093 1092 -1 -1192 1092 -1 -1093 1093 4 -1094 1093 -1 -1193 1093 -1 -1094 1094 4 -1095 1094 -1 -1194 1094 -1 -1095 1095 4 -1096 1095 -1 -1195 1095 -1 -1096 1096 4 -1097 1096 -1 -1196 1096 -1 -1097 1097 4 -1098 1097 -1 -1197 1097 -1 -1098 1098 4 -1099 1098 -1 -1198 1098 -1 -1099 1099 4 -1100 1099 -1 -1199 1099 -1 -1100 1100 4 -1200 1100 -1 -1101 1101 4 -1102 1101 -1 -1201 1101 -1 -1102 1102 4 -1103 1102 -1 -1202 1102 -1 -1103 1103 4 -1104 1103 -1 -1203 1103 -1 -1104 1104 4 -1105 1104 -1 -1204 1104 -1 -1105 1105 4 -1106 1105 -1 -1205 1105 -1 -1106 1106 4 -1107 1106 -1 -1206 1106 -1 -1107 1107 4 -1108 1107 -1 -1207 1107 -1 -1108 1108 4 -1109 1108 -1 -1208 1108 -1 -1109 1109 4 -1110 1109 -1 -1209 1109 -1 -1110 1110 4 -1111 1110 -1 -1210 1110 -1 -1111 1111 4 -1112 1111 -1 -1211 1111 -1 -1112 1112 4 -1113 1112 -1 -1212 1112 -1 -1113 1113 4 -1114 1113 -1 -1213 1113 -1 -1114 1114 4 -1115 1114 -1 -1214 1114 -1 -1115 1115 4 -1116 1115 -1 -1215 1115 -1 -1116 1116 4 -1117 1116 -1 -1216 1116 -1 -1117 1117 4 -1118 1117 -1 -1217 1117 -1 -1118 1118 4 -1119 1118 -1 -1218 1118 -1 -1119 1119 4 -1120 1119 -1 -1219 1119 -1 -1120 1120 4 -1121 1120 -1 -1220 1120 -1 -1121 1121 4 -1122 1121 -1 -1221 1121 -1 -1122 1122 4 -1123 1122 -1 -1222 1122 -1 -1123 1123 4 -1124 1123 -1 -1223 1123 -1 -1124 1124 4 -1125 1124 -1 -1224 1124 -1 -1125 1125 4 -1126 1125 -1 -1225 1125 -1 -1126 1126 4 -1127 1126 -1 -1226 1126 -1 -1127 1127 4 -1128 1127 -1 -1227 1127 -1 -1128 1128 4 -1129 1128 -1 -1228 1128 -1 -1129 1129 4 -1130 1129 -1 -1229 1129 -1 -1130 1130 4 -1131 1130 -1 -1230 1130 -1 -1131 1131 4 -1132 1131 -1 -1231 1131 -1 -1132 1132 4 -1133 1132 -1 -1232 1132 -1 -1133 1133 4 -1134 1133 -1 -1233 1133 -1 -1134 1134 4 -1135 1134 -1 -1234 1134 -1 -1135 1135 4 -1136 1135 -1 -1235 1135 -1 -1136 1136 4 -1137 1136 -1 -1236 1136 -1 -1137 1137 4 -1138 1137 -1 -1237 1137 -1 -1138 1138 4 -1139 1138 -1 -1238 1138 -1 -1139 1139 4 -1140 1139 -1 -1239 1139 -1 -1140 1140 4 -1141 1140 -1 -1240 1140 -1 -1141 1141 4 -1142 1141 -1 -1241 1141 -1 -1142 1142 4 -1143 1142 -1 -1242 1142 -1 -1143 1143 4 -1144 1143 -1 -1243 1143 -1 -1144 1144 4 -1145 1144 -1 -1244 1144 -1 -1145 1145 4 -1146 1145 -1 -1245 1145 -1 -1146 1146 4 -1147 1146 -1 -1246 1146 -1 -1147 1147 4 -1148 1147 -1 -1247 1147 -1 -1148 1148 4 -1149 1148 -1 -1248 1148 -1 -1149 1149 4 -1150 1149 -1 -1249 1149 -1 -1150 1150 4 -1151 1150 -1 -1250 1150 -1 -1151 1151 4 -1152 1151 -1 -1251 1151 -1 -1152 1152 4 -1153 1152 -1 -1252 1152 -1 -1153 1153 4 -1154 1153 -1 -1253 1153 -1 -1154 1154 4 -1155 1154 -1 -1254 1154 -1 -1155 1155 4 -1156 1155 -1 -1255 1155 -1 -1156 1156 4 -1157 1156 -1 -1256 1156 -1 -1157 1157 4 -1158 1157 -1 -1257 1157 -1 -1158 1158 4 -1159 1158 -1 -1258 1158 -1 -1159 1159 4 -1160 1159 -1 -1259 1159 -1 -1160 1160 4 -1161 1160 -1 -1260 1160 -1 -1161 1161 4 -1162 1161 -1 -1261 1161 -1 -1162 1162 4 -1163 1162 -1 -1262 1162 -1 -1163 1163 4 -1164 1163 -1 -1263 1163 -1 -1164 1164 4 -1165 1164 -1 -1264 1164 -1 -1165 1165 4 -1166 1165 -1 -1265 1165 -1 -1166 1166 4 -1167 1166 -1 -1266 1166 -1 -1167 1167 4 -1168 1167 -1 -1267 1167 -1 -1168 1168 4 -1169 1168 -1 -1268 1168 -1 -1169 1169 4 -1170 1169 -1 -1269 1169 -1 -1170 1170 4 -1171 1170 -1 -1270 1170 -1 -1171 1171 4 -1172 1171 -1 -1271 1171 -1 -1172 1172 4 -1173 1172 -1 -1272 1172 -1 -1173 1173 4 -1174 1173 -1 -1273 1173 -1 -1174 1174 4 -1175 1174 -1 -1274 1174 -1 -1175 1175 4 -1176 1175 -1 -1275 1175 -1 -1176 1176 4 -1177 1176 -1 -1276 1176 -1 -1177 1177 4 -1178 1177 -1 -1277 1177 -1 -1178 1178 4 -1179 1178 -1 -1278 1178 -1 -1179 1179 4 -1180 1179 -1 -1279 1179 -1 -1180 1180 4 -1181 1180 -1 -1280 1180 -1 -1181 1181 4 -1182 1181 -1 -1281 1181 -1 -1182 1182 4 -1183 1182 -1 -1282 1182 -1 -1183 1183 4 -1184 1183 -1 -1283 1183 -1 -1184 1184 4 -1185 1184 -1 -1284 1184 -1 -1185 1185 4 -1186 1185 -1 -1285 1185 -1 -1186 1186 4 -1187 1186 -1 -1286 1186 -1 -1187 1187 4 -1188 1187 -1 -1287 1187 -1 -1188 1188 4 -1189 1188 -1 -1288 1188 -1 -1189 1189 4 -1190 1189 -1 -1289 1189 -1 -1190 1190 4 -1191 1190 -1 -1290 1190 -1 -1191 1191 4 -1192 1191 -1 -1291 1191 -1 -1192 1192 4 -1193 1192 -1 -1292 1192 -1 -1193 1193 4 -1194 1193 -1 -1293 1193 -1 -1194 1194 4 -1195 1194 -1 -1294 1194 -1 -1195 1195 4 -1196 1195 -1 -1295 1195 -1 -1196 1196 4 -1197 1196 -1 -1296 1196 -1 -1197 1197 4 -1198 1197 -1 -1297 1197 -1 -1198 1198 4 -1199 1198 -1 -1298 1198 -1 -1199 1199 4 -1200 1199 -1 -1299 1199 -1 -1200 1200 4 -1300 1200 -1 -1201 1201 4 -1202 1201 -1 -1301 1201 -1 -1202 1202 4 -1203 1202 -1 -1302 1202 -1 -1203 1203 4 -1204 1203 -1 -1303 1203 -1 -1204 1204 4 -1205 1204 -1 -1304 1204 -1 -1205 1205 4 -1206 1205 -1 -1305 1205 -1 -1206 1206 4 -1207 1206 -1 -1306 1206 -1 -1207 1207 4 -1208 1207 -1 -1307 1207 -1 -1208 1208 4 -1209 1208 -1 -1308 1208 -1 -1209 1209 4 -1210 1209 -1 -1309 1209 -1 -1210 1210 4 -1211 1210 -1 -1310 1210 -1 -1211 1211 4 -1212 1211 -1 -1311 1211 -1 -1212 1212 4 -1213 1212 -1 -1312 1212 -1 -1213 1213 4 -1214 1213 -1 -1313 1213 -1 -1214 1214 4 -1215 1214 -1 -1314 1214 -1 -1215 1215 4 -1216 1215 -1 -1315 1215 -1 -1216 1216 4 -1217 1216 -1 -1316 1216 -1 -1217 1217 4 -1218 1217 -1 -1317 1217 -1 -1218 1218 4 -1219 1218 -1 -1318 1218 -1 -1219 1219 4 -1220 1219 -1 -1319 1219 -1 -1220 1220 4 -1221 1220 -1 -1320 1220 -1 -1221 1221 4 -1222 1221 -1 -1321 1221 -1 -1222 1222 4 -1223 1222 -1 -1322 1222 -1 -1223 1223 4 -1224 1223 -1 -1323 1223 -1 -1224 1224 4 -1225 1224 -1 -1324 1224 -1 -1225 1225 4 -1226 1225 -1 -1325 1225 -1 -1226 1226 4 -1227 1226 -1 -1326 1226 -1 -1227 1227 4 -1228 1227 -1 -1327 1227 -1 -1228 1228 4 -1229 1228 -1 -1328 1228 -1 -1229 1229 4 -1230 1229 -1 -1329 1229 -1 -1230 1230 4 -1231 1230 -1 -1330 1230 -1 -1231 1231 4 -1232 1231 -1 -1331 1231 -1 -1232 1232 4 -1233 1232 -1 -1332 1232 -1 -1233 1233 4 -1234 1233 -1 -1333 1233 -1 -1234 1234 4 -1235 1234 -1 -1334 1234 -1 -1235 1235 4 -1236 1235 -1 -1335 1235 -1 -1236 1236 4 -1237 1236 -1 -1336 1236 -1 -1237 1237 4 -1238 1237 -1 -1337 1237 -1 -1238 1238 4 -1239 1238 -1 -1338 1238 -1 -1239 1239 4 -1240 1239 -1 -1339 1239 -1 -1240 1240 4 -1241 1240 -1 -1340 1240 -1 -1241 1241 4 -1242 1241 -1 -1341 1241 -1 -1242 1242 4 -1243 1242 -1 -1342 1242 -1 -1243 1243 4 -1244 1243 -1 -1343 1243 -1 -1244 1244 4 -1245 1244 -1 -1344 1244 -1 -1245 1245 4 -1246 1245 -1 -1345 1245 -1 -1246 1246 4 -1247 1246 -1 -1346 1246 -1 -1247 1247 4 -1248 1247 -1 -1347 1247 -1 -1248 1248 4 -1249 1248 -1 -1348 1248 -1 -1249 1249 4 -1250 1249 -1 -1349 1249 -1 -1250 1250 4 -1251 1250 -1 -1350 1250 -1 -1251 1251 4 -1252 1251 -1 -1351 1251 -1 -1252 1252 4 -1253 1252 -1 -1352 1252 -1 -1253 1253 4 -1254 1253 -1 -1353 1253 -1 -1254 1254 4 -1255 1254 -1 -1354 1254 -1 -1255 1255 4 -1256 1255 -1 -1355 1255 -1 -1256 1256 4 -1257 1256 -1 -1356 1256 -1 -1257 1257 4 -1258 1257 -1 -1357 1257 -1 -1258 1258 4 -1259 1258 -1 -1358 1258 -1 -1259 1259 4 -1260 1259 -1 -1359 1259 -1 -1260 1260 4 -1261 1260 -1 -1360 1260 -1 -1261 1261 4 -1262 1261 -1 -1361 1261 -1 -1262 1262 4 -1263 1262 -1 -1362 1262 -1 -1263 1263 4 -1264 1263 -1 -1363 1263 -1 -1264 1264 4 -1265 1264 -1 -1364 1264 -1 -1265 1265 4 -1266 1265 -1 -1365 1265 -1 -1266 1266 4 -1267 1266 -1 -1366 1266 -1 -1267 1267 4 -1268 1267 -1 -1367 1267 -1 -1268 1268 4 -1269 1268 -1 -1368 1268 -1 -1269 1269 4 -1270 1269 -1 -1369 1269 -1 -1270 1270 4 -1271 1270 -1 -1370 1270 -1 -1271 1271 4 -1272 1271 -1 -1371 1271 -1 -1272 1272 4 -1273 1272 -1 -1372 1272 -1 -1273 1273 4 -1274 1273 -1 -1373 1273 -1 -1274 1274 4 -1275 1274 -1 -1374 1274 -1 -1275 1275 4 -1276 1275 -1 -1375 1275 -1 -1276 1276 4 -1277 1276 -1 -1376 1276 -1 -1277 1277 4 -1278 1277 -1 -1377 1277 -1 -1278 1278 4 -1279 1278 -1 -1378 1278 -1 -1279 1279 4 -1280 1279 -1 -1379 1279 -1 -1280 1280 4 -1281 1280 -1 -1380 1280 -1 -1281 1281 4 -1282 1281 -1 -1381 1281 -1 -1282 1282 4 -1283 1282 -1 -1382 1282 -1 -1283 1283 4 -1284 1283 -1 -1383 1283 -1 -1284 1284 4 -1285 1284 -1 -1384 1284 -1 -1285 1285 4 -1286 1285 -1 -1385 1285 -1 -1286 1286 4 -1287 1286 -1 -1386 1286 -1 -1287 1287 4 -1288 1287 -1 -1387 1287 -1 -1288 1288 4 -1289 1288 -1 -1388 1288 -1 -1289 1289 4 -1290 1289 -1 -1389 1289 -1 -1290 1290 4 -1291 1290 -1 -1390 1290 -1 -1291 1291 4 -1292 1291 -1 -1391 1291 -1 -1292 1292 4 -1293 1292 -1 -1392 1292 -1 -1293 1293 4 -1294 1293 -1 -1393 1293 -1 -1294 1294 4 -1295 1294 -1 -1394 1294 -1 -1295 1295 4 -1296 1295 -1 -1395 1295 -1 -1296 1296 4 -1297 1296 -1 -1396 1296 -1 -1297 1297 4 -1298 1297 -1 -1397 1297 -1 -1298 1298 4 -1299 1298 -1 -1398 1298 -1 -1299 1299 4 -1300 1299 -1 -1399 1299 -1 -1300 1300 4 -1400 1300 -1 -1301 1301 4 -1302 1301 -1 -1401 1301 -1 -1302 1302 4 -1303 1302 -1 -1402 1302 -1 -1303 1303 4 -1304 1303 -1 -1403 1303 -1 -1304 1304 4 -1305 1304 -1 -1404 1304 -1 -1305 1305 4 -1306 1305 -1 -1405 1305 -1 -1306 1306 4 -1307 1306 -1 -1406 1306 -1 -1307 1307 4 -1308 1307 -1 -1407 1307 -1 -1308 1308 4 -1309 1308 -1 -1408 1308 -1 -1309 1309 4 -1310 1309 -1 -1409 1309 -1 -1310 1310 4 -1311 1310 -1 -1410 1310 -1 -1311 1311 4 -1312 1311 -1 -1411 1311 -1 -1312 1312 4 -1313 1312 -1 -1412 1312 -1 -1313 1313 4 -1314 1313 -1 -1413 1313 -1 -1314 1314 4 -1315 1314 -1 -1414 1314 -1 -1315 1315 4 -1316 1315 -1 -1415 1315 -1 -1316 1316 4 -1317 1316 -1 -1416 1316 -1 -1317 1317 4 -1318 1317 -1 -1417 1317 -1 -1318 1318 4 -1319 1318 -1 -1418 1318 -1 -1319 1319 4 -1320 1319 -1 -1419 1319 -1 -1320 1320 4 -1321 1320 -1 -1420 1320 -1 -1321 1321 4 -1322 1321 -1 -1421 1321 -1 -1322 1322 4 -1323 1322 -1 -1422 1322 -1 -1323 1323 4 -1324 1323 -1 -1423 1323 -1 -1324 1324 4 -1325 1324 -1 -1424 1324 -1 -1325 1325 4 -1326 1325 -1 -1425 1325 -1 -1326 1326 4 -1327 1326 -1 -1426 1326 -1 -1327 1327 4 -1328 1327 -1 -1427 1327 -1 -1328 1328 4 -1329 1328 -1 -1428 1328 -1 -1329 1329 4 -1330 1329 -1 -1429 1329 -1 -1330 1330 4 -1331 1330 -1 -1430 1330 -1 -1331 1331 4 -1332 1331 -1 -1431 1331 -1 -1332 1332 4 -1333 1332 -1 -1432 1332 -1 -1333 1333 4 -1334 1333 -1 -1433 1333 -1 -1334 1334 4 -1335 1334 -1 -1434 1334 -1 -1335 1335 4 -1336 1335 -1 -1435 1335 -1 -1336 1336 4 -1337 1336 -1 -1436 1336 -1 -1337 1337 4 -1338 1337 -1 -1437 1337 -1 -1338 1338 4 -1339 1338 -1 -1438 1338 -1 -1339 1339 4 -1340 1339 -1 -1439 1339 -1 -1340 1340 4 -1341 1340 -1 -1440 1340 -1 -1341 1341 4 -1342 1341 -1 -1441 1341 -1 -1342 1342 4 -1343 1342 -1 -1442 1342 -1 -1343 1343 4 -1344 1343 -1 -1443 1343 -1 -1344 1344 4 -1345 1344 -1 -1444 1344 -1 -1345 1345 4 -1346 1345 -1 -1445 1345 -1 -1346 1346 4 -1347 1346 -1 -1446 1346 -1 -1347 1347 4 -1348 1347 -1 -1447 1347 -1 -1348 1348 4 -1349 1348 -1 -1448 1348 -1 -1349 1349 4 -1350 1349 -1 -1449 1349 -1 -1350 1350 4 -1351 1350 -1 -1450 1350 -1 -1351 1351 4 -1352 1351 -1 -1451 1351 -1 -1352 1352 4 -1353 1352 -1 -1452 1352 -1 -1353 1353 4 -1354 1353 -1 -1453 1353 -1 -1354 1354 4 -1355 1354 -1 -1454 1354 -1 -1355 1355 4 -1356 1355 -1 -1455 1355 -1 -1356 1356 4 -1357 1356 -1 -1456 1356 -1 -1357 1357 4 -1358 1357 -1 -1457 1357 -1 -1358 1358 4 -1359 1358 -1 -1458 1358 -1 -1359 1359 4 -1360 1359 -1 -1459 1359 -1 -1360 1360 4 -1361 1360 -1 -1460 1360 -1 -1361 1361 4 -1362 1361 -1 -1461 1361 -1 -1362 1362 4 -1363 1362 -1 -1462 1362 -1 -1363 1363 4 -1364 1363 -1 -1463 1363 -1 -1364 1364 4 -1365 1364 -1 -1464 1364 -1 -1365 1365 4 -1366 1365 -1 -1465 1365 -1 -1366 1366 4 -1367 1366 -1 -1466 1366 -1 -1367 1367 4 -1368 1367 -1 -1467 1367 -1 -1368 1368 4 -1369 1368 -1 -1468 1368 -1 -1369 1369 4 -1370 1369 -1 -1469 1369 -1 -1370 1370 4 -1371 1370 -1 -1470 1370 -1 -1371 1371 4 -1372 1371 -1 -1471 1371 -1 -1372 1372 4 -1373 1372 -1 -1472 1372 -1 -1373 1373 4 -1374 1373 -1 -1473 1373 -1 -1374 1374 4 -1375 1374 -1 -1474 1374 -1 -1375 1375 4 -1376 1375 -1 -1475 1375 -1 -1376 1376 4 -1377 1376 -1 -1476 1376 -1 -1377 1377 4 -1378 1377 -1 -1477 1377 -1 -1378 1378 4 -1379 1378 -1 -1478 1378 -1 -1379 1379 4 -1380 1379 -1 -1479 1379 -1 -1380 1380 4 -1381 1380 -1 -1480 1380 -1 -1381 1381 4 -1382 1381 -1 -1481 1381 -1 -1382 1382 4 -1383 1382 -1 -1482 1382 -1 -1383 1383 4 -1384 1383 -1 -1483 1383 -1 -1384 1384 4 -1385 1384 -1 -1484 1384 -1 -1385 1385 4 -1386 1385 -1 -1485 1385 -1 -1386 1386 4 -1387 1386 -1 -1486 1386 -1 -1387 1387 4 -1388 1387 -1 -1487 1387 -1 -1388 1388 4 -1389 1388 -1 -1488 1388 -1 -1389 1389 4 -1390 1389 -1 -1489 1389 -1 -1390 1390 4 -1391 1390 -1 -1490 1390 -1 -1391 1391 4 -1392 1391 -1 -1491 1391 -1 -1392 1392 4 -1393 1392 -1 -1492 1392 -1 -1393 1393 4 -1394 1393 -1 -1493 1393 -1 -1394 1394 4 -1395 1394 -1 -1494 1394 -1 -1395 1395 4 -1396 1395 -1 -1495 1395 -1 -1396 1396 4 -1397 1396 -1 -1496 1396 -1 -1397 1397 4 -1398 1397 -1 -1497 1397 -1 -1398 1398 4 -1399 1398 -1 -1498 1398 -1 -1399 1399 4 -1400 1399 -1 -1499 1399 -1 -1400 1400 4 -1500 1400 -1 -1401 1401 4 -1402 1401 -1 -1501 1401 -1 -1402 1402 4 -1403 1402 -1 -1502 1402 -1 -1403 1403 4 -1404 1403 -1 -1503 1403 -1 -1404 1404 4 -1405 1404 -1 -1504 1404 -1 -1405 1405 4 -1406 1405 -1 -1505 1405 -1 -1406 1406 4 -1407 1406 -1 -1506 1406 -1 -1407 1407 4 -1408 1407 -1 -1507 1407 -1 -1408 1408 4 -1409 1408 -1 -1508 1408 -1 -1409 1409 4 -1410 1409 -1 -1509 1409 -1 -1410 1410 4 -1411 1410 -1 -1510 1410 -1 -1411 1411 4 -1412 1411 -1 -1511 1411 -1 -1412 1412 4 -1413 1412 -1 -1512 1412 -1 -1413 1413 4 -1414 1413 -1 -1513 1413 -1 -1414 1414 4 -1415 1414 -1 -1514 1414 -1 -1415 1415 4 -1416 1415 -1 -1515 1415 -1 -1416 1416 4 -1417 1416 -1 -1516 1416 -1 -1417 1417 4 -1418 1417 -1 -1517 1417 -1 -1418 1418 4 -1419 1418 -1 -1518 1418 -1 -1419 1419 4 -1420 1419 -1 -1519 1419 -1 -1420 1420 4 -1421 1420 -1 -1520 1420 -1 -1421 1421 4 -1422 1421 -1 -1521 1421 -1 -1422 1422 4 -1423 1422 -1 -1522 1422 -1 -1423 1423 4 -1424 1423 -1 -1523 1423 -1 -1424 1424 4 -1425 1424 -1 -1524 1424 -1 -1425 1425 4 -1426 1425 -1 -1525 1425 -1 -1426 1426 4 -1427 1426 -1 -1526 1426 -1 -1427 1427 4 -1428 1427 -1 -1527 1427 -1 -1428 1428 4 -1429 1428 -1 -1528 1428 -1 -1429 1429 4 -1430 1429 -1 -1529 1429 -1 -1430 1430 4 -1431 1430 -1 -1530 1430 -1 -1431 1431 4 -1432 1431 -1 -1531 1431 -1 -1432 1432 4 -1433 1432 -1 -1532 1432 -1 -1433 1433 4 -1434 1433 -1 -1533 1433 -1 -1434 1434 4 -1435 1434 -1 -1534 1434 -1 -1435 1435 4 -1436 1435 -1 -1535 1435 -1 -1436 1436 4 -1437 1436 -1 -1536 1436 -1 -1437 1437 4 -1438 1437 -1 -1537 1437 -1 -1438 1438 4 -1439 1438 -1 -1538 1438 -1 -1439 1439 4 -1440 1439 -1 -1539 1439 -1 -1440 1440 4 -1441 1440 -1 -1540 1440 -1 -1441 1441 4 -1442 1441 -1 -1541 1441 -1 -1442 1442 4 -1443 1442 -1 -1542 1442 -1 -1443 1443 4 -1444 1443 -1 -1543 1443 -1 -1444 1444 4 -1445 1444 -1 -1544 1444 -1 -1445 1445 4 -1446 1445 -1 -1545 1445 -1 -1446 1446 4 -1447 1446 -1 -1546 1446 -1 -1447 1447 4 -1448 1447 -1 -1547 1447 -1 -1448 1448 4 -1449 1448 -1 -1548 1448 -1 -1449 1449 4 -1450 1449 -1 -1549 1449 -1 -1450 1450 4 -1451 1450 -1 -1550 1450 -1 -1451 1451 4 -1452 1451 -1 -1551 1451 -1 -1452 1452 4 -1453 1452 -1 -1552 1452 -1 -1453 1453 4 -1454 1453 -1 -1553 1453 -1 -1454 1454 4 -1455 1454 -1 -1554 1454 -1 -1455 1455 4 -1456 1455 -1 -1555 1455 -1 -1456 1456 4 -1457 1456 -1 -1556 1456 -1 -1457 1457 4 -1458 1457 -1 -1557 1457 -1 -1458 1458 4 -1459 1458 -1 -1558 1458 -1 -1459 1459 4 -1460 1459 -1 -1559 1459 -1 -1460 1460 4 -1461 1460 -1 -1560 1460 -1 -1461 1461 4 -1462 1461 -1 -1561 1461 -1 -1462 1462 4 -1463 1462 -1 -1562 1462 -1 -1463 1463 4 -1464 1463 -1 -1563 1463 -1 -1464 1464 4 -1465 1464 -1 -1564 1464 -1 -1465 1465 4 -1466 1465 -1 -1565 1465 -1 -1466 1466 4 -1467 1466 -1 -1566 1466 -1 -1467 1467 4 -1468 1467 -1 -1567 1467 -1 -1468 1468 4 -1469 1468 -1 -1568 1468 -1 -1469 1469 4 -1470 1469 -1 -1569 1469 -1 -1470 1470 4 -1471 1470 -1 -1570 1470 -1 -1471 1471 4 -1472 1471 -1 -1571 1471 -1 -1472 1472 4 -1473 1472 -1 -1572 1472 -1 -1473 1473 4 -1474 1473 -1 -1573 1473 -1 -1474 1474 4 -1475 1474 -1 -1574 1474 -1 -1475 1475 4 -1476 1475 -1 -1575 1475 -1 -1476 1476 4 -1477 1476 -1 -1576 1476 -1 -1477 1477 4 -1478 1477 -1 -1577 1477 -1 -1478 1478 4 -1479 1478 -1 -1578 1478 -1 -1479 1479 4 -1480 1479 -1 -1579 1479 -1 -1480 1480 4 -1481 1480 -1 -1580 1480 -1 -1481 1481 4 -1482 1481 -1 -1581 1481 -1 -1482 1482 4 -1483 1482 -1 -1582 1482 -1 -1483 1483 4 -1484 1483 -1 -1583 1483 -1 -1484 1484 4 -1485 1484 -1 -1584 1484 -1 -1485 1485 4 -1486 1485 -1 -1585 1485 -1 -1486 1486 4 -1487 1486 -1 -1586 1486 -1 -1487 1487 4 -1488 1487 -1 -1587 1487 -1 -1488 1488 4 -1489 1488 -1 -1588 1488 -1 -1489 1489 4 -1490 1489 -1 -1589 1489 -1 -1490 1490 4 -1491 1490 -1 -1590 1490 -1 -1491 1491 4 -1492 1491 -1 -1591 1491 -1 -1492 1492 4 -1493 1492 -1 -1592 1492 -1 -1493 1493 4 -1494 1493 -1 -1593 1493 -1 -1494 1494 4 -1495 1494 -1 -1594 1494 -1 -1495 1495 4 -1496 1495 -1 -1595 1495 -1 -1496 1496 4 -1497 1496 -1 -1596 1496 -1 -1497 1497 4 -1498 1497 -1 -1597 1497 -1 -1498 1498 4 -1499 1498 -1 -1598 1498 -1 -1499 1499 4 -1500 1499 -1 -1599 1499 -1 -1500 1500 4 -1600 1500 -1 -1501 1501 4 -1502 1501 -1 -1601 1501 -1 -1502 1502 4 -1503 1502 -1 -1602 1502 -1 -1503 1503 4 -1504 1503 -1 -1603 1503 -1 -1504 1504 4 -1505 1504 -1 -1604 1504 -1 -1505 1505 4 -1506 1505 -1 -1605 1505 -1 -1506 1506 4 -1507 1506 -1 -1606 1506 -1 -1507 1507 4 -1508 1507 -1 -1607 1507 -1 -1508 1508 4 -1509 1508 -1 -1608 1508 -1 -1509 1509 4 -1510 1509 -1 -1609 1509 -1 -1510 1510 4 -1511 1510 -1 -1610 1510 -1 -1511 1511 4 -1512 1511 -1 -1611 1511 -1 -1512 1512 4 -1513 1512 -1 -1612 1512 -1 -1513 1513 4 -1514 1513 -1 -1613 1513 -1 -1514 1514 4 -1515 1514 -1 -1614 1514 -1 -1515 1515 4 -1516 1515 -1 -1615 1515 -1 -1516 1516 4 -1517 1516 -1 -1616 1516 -1 -1517 1517 4 -1518 1517 -1 -1617 1517 -1 -1518 1518 4 -1519 1518 -1 -1618 1518 -1 -1519 1519 4 -1520 1519 -1 -1619 1519 -1 -1520 1520 4 -1521 1520 -1 -1620 1520 -1 -1521 1521 4 -1522 1521 -1 -1621 1521 -1 -1522 1522 4 -1523 1522 -1 -1622 1522 -1 -1523 1523 4 -1524 1523 -1 -1623 1523 -1 -1524 1524 4 -1525 1524 -1 -1624 1524 -1 -1525 1525 4 -1526 1525 -1 -1625 1525 -1 -1526 1526 4 -1527 1526 -1 -1626 1526 -1 -1527 1527 4 -1528 1527 -1 -1627 1527 -1 -1528 1528 4 -1529 1528 -1 -1628 1528 -1 -1529 1529 4 -1530 1529 -1 -1629 1529 -1 -1530 1530 4 -1531 1530 -1 -1630 1530 -1 -1531 1531 4 -1532 1531 -1 -1631 1531 -1 -1532 1532 4 -1533 1532 -1 -1632 1532 -1 -1533 1533 4 -1534 1533 -1 -1633 1533 -1 -1534 1534 4 -1535 1534 -1 -1634 1534 -1 -1535 1535 4 -1536 1535 -1 -1635 1535 -1 -1536 1536 4 -1537 1536 -1 -1636 1536 -1 -1537 1537 4 -1538 1537 -1 -1637 1537 -1 -1538 1538 4 -1539 1538 -1 -1638 1538 -1 -1539 1539 4 -1540 1539 -1 -1639 1539 -1 -1540 1540 4 -1541 1540 -1 -1640 1540 -1 -1541 1541 4 -1542 1541 -1 -1641 1541 -1 -1542 1542 4 -1543 1542 -1 -1642 1542 -1 -1543 1543 4 -1544 1543 -1 -1643 1543 -1 -1544 1544 4 -1545 1544 -1 -1644 1544 -1 -1545 1545 4 -1546 1545 -1 -1645 1545 -1 -1546 1546 4 -1547 1546 -1 -1646 1546 -1 -1547 1547 4 -1548 1547 -1 -1647 1547 -1 -1548 1548 4 -1549 1548 -1 -1648 1548 -1 -1549 1549 4 -1550 1549 -1 -1649 1549 -1 -1550 1550 4 -1551 1550 -1 -1650 1550 -1 -1551 1551 4 -1552 1551 -1 -1651 1551 -1 -1552 1552 4 -1553 1552 -1 -1652 1552 -1 -1553 1553 4 -1554 1553 -1 -1653 1553 -1 -1554 1554 4 -1555 1554 -1 -1654 1554 -1 -1555 1555 4 -1556 1555 -1 -1655 1555 -1 -1556 1556 4 -1557 1556 -1 -1656 1556 -1 -1557 1557 4 -1558 1557 -1 -1657 1557 -1 -1558 1558 4 -1559 1558 -1 -1658 1558 -1 -1559 1559 4 -1560 1559 -1 -1659 1559 -1 -1560 1560 4 -1561 1560 -1 -1660 1560 -1 -1561 1561 4 -1562 1561 -1 -1661 1561 -1 -1562 1562 4 -1563 1562 -1 -1662 1562 -1 -1563 1563 4 -1564 1563 -1 -1663 1563 -1 -1564 1564 4 -1565 1564 -1 -1664 1564 -1 -1565 1565 4 -1566 1565 -1 -1665 1565 -1 -1566 1566 4 -1567 1566 -1 -1666 1566 -1 -1567 1567 4 -1568 1567 -1 -1667 1567 -1 -1568 1568 4 -1569 1568 -1 -1668 1568 -1 -1569 1569 4 -1570 1569 -1 -1669 1569 -1 -1570 1570 4 -1571 1570 -1 -1670 1570 -1 -1571 1571 4 -1572 1571 -1 -1671 1571 -1 -1572 1572 4 -1573 1572 -1 -1672 1572 -1 -1573 1573 4 -1574 1573 -1 -1673 1573 -1 -1574 1574 4 -1575 1574 -1 -1674 1574 -1 -1575 1575 4 -1576 1575 -1 -1675 1575 -1 -1576 1576 4 -1577 1576 -1 -1676 1576 -1 -1577 1577 4 -1578 1577 -1 -1677 1577 -1 -1578 1578 4 -1579 1578 -1 -1678 1578 -1 -1579 1579 4 -1580 1579 -1 -1679 1579 -1 -1580 1580 4 -1581 1580 -1 -1680 1580 -1 -1581 1581 4 -1582 1581 -1 -1681 1581 -1 -1582 1582 4 -1583 1582 -1 -1682 1582 -1 -1583 1583 4 -1584 1583 -1 -1683 1583 -1 -1584 1584 4 -1585 1584 -1 -1684 1584 -1 -1585 1585 4 -1586 1585 -1 -1685 1585 -1 -1586 1586 4 -1587 1586 -1 -1686 1586 -1 -1587 1587 4 -1588 1587 -1 -1687 1587 -1 -1588 1588 4 -1589 1588 -1 -1688 1588 -1 -1589 1589 4 -1590 1589 -1 -1689 1589 -1 -1590 1590 4 -1591 1590 -1 -1690 1590 -1 -1591 1591 4 -1592 1591 -1 -1691 1591 -1 -1592 1592 4 -1593 1592 -1 -1692 1592 -1 -1593 1593 4 -1594 1593 -1 -1693 1593 -1 -1594 1594 4 -1595 1594 -1 -1694 1594 -1 -1595 1595 4 -1596 1595 -1 -1695 1595 -1 -1596 1596 4 -1597 1596 -1 -1696 1596 -1 -1597 1597 4 -1598 1597 -1 -1697 1597 -1 -1598 1598 4 -1599 1598 -1 -1698 1598 -1 -1599 1599 4 -1600 1599 -1 -1699 1599 -1 -1600 1600 4 -1700 1600 -1 -1601 1601 4 -1602 1601 -1 -1701 1601 -1 -1602 1602 4 -1603 1602 -1 -1702 1602 -1 -1603 1603 4 -1604 1603 -1 -1703 1603 -1 -1604 1604 4 -1605 1604 -1 -1704 1604 -1 -1605 1605 4 -1606 1605 -1 -1705 1605 -1 -1606 1606 4 -1607 1606 -1 -1706 1606 -1 -1607 1607 4 -1608 1607 -1 -1707 1607 -1 -1608 1608 4 -1609 1608 -1 -1708 1608 -1 -1609 1609 4 -1610 1609 -1 -1709 1609 -1 -1610 1610 4 -1611 1610 -1 -1710 1610 -1 -1611 1611 4 -1612 1611 -1 -1711 1611 -1 -1612 1612 4 -1613 1612 -1 -1712 1612 -1 -1613 1613 4 -1614 1613 -1 -1713 1613 -1 -1614 1614 4 -1615 1614 -1 -1714 1614 -1 -1615 1615 4 -1616 1615 -1 -1715 1615 -1 -1616 1616 4 -1617 1616 -1 -1716 1616 -1 -1617 1617 4 -1618 1617 -1 -1717 1617 -1 -1618 1618 4 -1619 1618 -1 -1718 1618 -1 -1619 1619 4 -1620 1619 -1 -1719 1619 -1 -1620 1620 4 -1621 1620 -1 -1720 1620 -1 -1621 1621 4 -1622 1621 -1 -1721 1621 -1 -1622 1622 4 -1623 1622 -1 -1722 1622 -1 -1623 1623 4 -1624 1623 -1 -1723 1623 -1 -1624 1624 4 -1625 1624 -1 -1724 1624 -1 -1625 1625 4 -1626 1625 -1 -1725 1625 -1 -1626 1626 4 -1627 1626 -1 -1726 1626 -1 -1627 1627 4 -1628 1627 -1 -1727 1627 -1 -1628 1628 4 -1629 1628 -1 -1728 1628 -1 -1629 1629 4 -1630 1629 -1 -1729 1629 -1 -1630 1630 4 -1631 1630 -1 -1730 1630 -1 -1631 1631 4 -1632 1631 -1 -1731 1631 -1 -1632 1632 4 -1633 1632 -1 -1732 1632 -1 -1633 1633 4 -1634 1633 -1 -1733 1633 -1 -1634 1634 4 -1635 1634 -1 -1734 1634 -1 -1635 1635 4 -1636 1635 -1 -1735 1635 -1 -1636 1636 4 -1637 1636 -1 -1736 1636 -1 -1637 1637 4 -1638 1637 -1 -1737 1637 -1 -1638 1638 4 -1639 1638 -1 -1738 1638 -1 -1639 1639 4 -1640 1639 -1 -1739 1639 -1 -1640 1640 4 -1641 1640 -1 -1740 1640 -1 -1641 1641 4 -1642 1641 -1 -1741 1641 -1 -1642 1642 4 -1643 1642 -1 -1742 1642 -1 -1643 1643 4 -1644 1643 -1 -1743 1643 -1 -1644 1644 4 -1645 1644 -1 -1744 1644 -1 -1645 1645 4 -1646 1645 -1 -1745 1645 -1 -1646 1646 4 -1647 1646 -1 -1746 1646 -1 -1647 1647 4 -1648 1647 -1 -1747 1647 -1 -1648 1648 4 -1649 1648 -1 -1748 1648 -1 -1649 1649 4 -1650 1649 -1 -1749 1649 -1 -1650 1650 4 -1651 1650 -1 -1750 1650 -1 -1651 1651 4 -1652 1651 -1 -1751 1651 -1 -1652 1652 4 -1653 1652 -1 -1752 1652 -1 -1653 1653 4 -1654 1653 -1 -1753 1653 -1 -1654 1654 4 -1655 1654 -1 -1754 1654 -1 -1655 1655 4 -1656 1655 -1 -1755 1655 -1 -1656 1656 4 -1657 1656 -1 -1756 1656 -1 -1657 1657 4 -1658 1657 -1 -1757 1657 -1 -1658 1658 4 -1659 1658 -1 -1758 1658 -1 -1659 1659 4 -1660 1659 -1 -1759 1659 -1 -1660 1660 4 -1661 1660 -1 -1760 1660 -1 -1661 1661 4 -1662 1661 -1 -1761 1661 -1 -1662 1662 4 -1663 1662 -1 -1762 1662 -1 -1663 1663 4 -1664 1663 -1 -1763 1663 -1 -1664 1664 4 -1665 1664 -1 -1764 1664 -1 -1665 1665 4 -1666 1665 -1 -1765 1665 -1 -1666 1666 4 -1667 1666 -1 -1766 1666 -1 -1667 1667 4 -1668 1667 -1 -1767 1667 -1 -1668 1668 4 -1669 1668 -1 -1768 1668 -1 -1669 1669 4 -1670 1669 -1 -1769 1669 -1 -1670 1670 4 -1671 1670 -1 -1770 1670 -1 -1671 1671 4 -1672 1671 -1 -1771 1671 -1 -1672 1672 4 -1673 1672 -1 -1772 1672 -1 -1673 1673 4 -1674 1673 -1 -1773 1673 -1 -1674 1674 4 -1675 1674 -1 -1774 1674 -1 -1675 1675 4 -1676 1675 -1 -1775 1675 -1 -1676 1676 4 -1677 1676 -1 -1776 1676 -1 -1677 1677 4 -1678 1677 -1 -1777 1677 -1 -1678 1678 4 -1679 1678 -1 -1778 1678 -1 -1679 1679 4 -1680 1679 -1 -1779 1679 -1 -1680 1680 4 -1681 1680 -1 -1780 1680 -1 -1681 1681 4 -1682 1681 -1 -1781 1681 -1 -1682 1682 4 -1683 1682 -1 -1782 1682 -1 -1683 1683 4 -1684 1683 -1 -1783 1683 -1 -1684 1684 4 -1685 1684 -1 -1784 1684 -1 -1685 1685 4 -1686 1685 -1 -1785 1685 -1 -1686 1686 4 -1687 1686 -1 -1786 1686 -1 -1687 1687 4 -1688 1687 -1 -1787 1687 -1 -1688 1688 4 -1689 1688 -1 -1788 1688 -1 -1689 1689 4 -1690 1689 -1 -1789 1689 -1 -1690 1690 4 -1691 1690 -1 -1790 1690 -1 -1691 1691 4 -1692 1691 -1 -1791 1691 -1 -1692 1692 4 -1693 1692 -1 -1792 1692 -1 -1693 1693 4 -1694 1693 -1 -1793 1693 -1 -1694 1694 4 -1695 1694 -1 -1794 1694 -1 -1695 1695 4 -1696 1695 -1 -1795 1695 -1 -1696 1696 4 -1697 1696 -1 -1796 1696 -1 -1697 1697 4 -1698 1697 -1 -1797 1697 -1 -1698 1698 4 -1699 1698 -1 -1798 1698 -1 -1699 1699 4 -1700 1699 -1 -1799 1699 -1 -1700 1700 4 -1800 1700 -1 -1701 1701 4 -1702 1701 -1 -1801 1701 -1 -1702 1702 4 -1703 1702 -1 -1802 1702 -1 -1703 1703 4 -1704 1703 -1 -1803 1703 -1 -1704 1704 4 -1705 1704 -1 -1804 1704 -1 -1705 1705 4 -1706 1705 -1 -1805 1705 -1 -1706 1706 4 -1707 1706 -1 -1806 1706 -1 -1707 1707 4 -1708 1707 -1 -1807 1707 -1 -1708 1708 4 -1709 1708 -1 -1808 1708 -1 -1709 1709 4 -1710 1709 -1 -1809 1709 -1 -1710 1710 4 -1711 1710 -1 -1810 1710 -1 -1711 1711 4 -1712 1711 -1 -1811 1711 -1 -1712 1712 4 -1713 1712 -1 -1812 1712 -1 -1713 1713 4 -1714 1713 -1 -1813 1713 -1 -1714 1714 4 -1715 1714 -1 -1814 1714 -1 -1715 1715 4 -1716 1715 -1 -1815 1715 -1 -1716 1716 4 -1717 1716 -1 -1816 1716 -1 -1717 1717 4 -1718 1717 -1 -1817 1717 -1 -1718 1718 4 -1719 1718 -1 -1818 1718 -1 -1719 1719 4 -1720 1719 -1 -1819 1719 -1 -1720 1720 4 -1721 1720 -1 -1820 1720 -1 -1721 1721 4 -1722 1721 -1 -1821 1721 -1 -1722 1722 4 -1723 1722 -1 -1822 1722 -1 -1723 1723 4 -1724 1723 -1 -1823 1723 -1 -1724 1724 4 -1725 1724 -1 -1824 1724 -1 -1725 1725 4 -1726 1725 -1 -1825 1725 -1 -1726 1726 4 -1727 1726 -1 -1826 1726 -1 -1727 1727 4 -1728 1727 -1 -1827 1727 -1 -1728 1728 4 -1729 1728 -1 -1828 1728 -1 -1729 1729 4 -1730 1729 -1 -1829 1729 -1 -1730 1730 4 -1731 1730 -1 -1830 1730 -1 -1731 1731 4 -1732 1731 -1 -1831 1731 -1 -1732 1732 4 -1733 1732 -1 -1832 1732 -1 -1733 1733 4 -1734 1733 -1 -1833 1733 -1 -1734 1734 4 -1735 1734 -1 -1834 1734 -1 -1735 1735 4 -1736 1735 -1 -1835 1735 -1 -1736 1736 4 -1737 1736 -1 -1836 1736 -1 -1737 1737 4 -1738 1737 -1 -1837 1737 -1 -1738 1738 4 -1739 1738 -1 -1838 1738 -1 -1739 1739 4 -1740 1739 -1 -1839 1739 -1 -1740 1740 4 -1741 1740 -1 -1840 1740 -1 -1741 1741 4 -1742 1741 -1 -1841 1741 -1 -1742 1742 4 -1743 1742 -1 -1842 1742 -1 -1743 1743 4 -1744 1743 -1 -1843 1743 -1 -1744 1744 4 -1745 1744 -1 -1844 1744 -1 -1745 1745 4 -1746 1745 -1 -1845 1745 -1 -1746 1746 4 -1747 1746 -1 -1846 1746 -1 -1747 1747 4 -1748 1747 -1 -1847 1747 -1 -1748 1748 4 -1749 1748 -1 -1848 1748 -1 -1749 1749 4 -1750 1749 -1 -1849 1749 -1 -1750 1750 4 -1751 1750 -1 -1850 1750 -1 -1751 1751 4 -1752 1751 -1 -1851 1751 -1 -1752 1752 4 -1753 1752 -1 -1852 1752 -1 -1753 1753 4 -1754 1753 -1 -1853 1753 -1 -1754 1754 4 -1755 1754 -1 -1854 1754 -1 -1755 1755 4 -1756 1755 -1 -1855 1755 -1 -1756 1756 4 -1757 1756 -1 -1856 1756 -1 -1757 1757 4 -1758 1757 -1 -1857 1757 -1 -1758 1758 4 -1759 1758 -1 -1858 1758 -1 -1759 1759 4 -1760 1759 -1 -1859 1759 -1 -1760 1760 4 -1761 1760 -1 -1860 1760 -1 -1761 1761 4 -1762 1761 -1 -1861 1761 -1 -1762 1762 4 -1763 1762 -1 -1862 1762 -1 -1763 1763 4 -1764 1763 -1 -1863 1763 -1 -1764 1764 4 -1765 1764 -1 -1864 1764 -1 -1765 1765 4 -1766 1765 -1 -1865 1765 -1 -1766 1766 4 -1767 1766 -1 -1866 1766 -1 -1767 1767 4 -1768 1767 -1 -1867 1767 -1 -1768 1768 4 -1769 1768 -1 -1868 1768 -1 -1769 1769 4 -1770 1769 -1 -1869 1769 -1 -1770 1770 4 -1771 1770 -1 -1870 1770 -1 -1771 1771 4 -1772 1771 -1 -1871 1771 -1 -1772 1772 4 -1773 1772 -1 -1872 1772 -1 -1773 1773 4 -1774 1773 -1 -1873 1773 -1 -1774 1774 4 -1775 1774 -1 -1874 1774 -1 -1775 1775 4 -1776 1775 -1 -1875 1775 -1 -1776 1776 4 -1777 1776 -1 -1876 1776 -1 -1777 1777 4 -1778 1777 -1 -1877 1777 -1 -1778 1778 4 -1779 1778 -1 -1878 1778 -1 -1779 1779 4 -1780 1779 -1 -1879 1779 -1 -1780 1780 4 -1781 1780 -1 -1880 1780 -1 -1781 1781 4 -1782 1781 -1 -1881 1781 -1 -1782 1782 4 -1783 1782 -1 -1882 1782 -1 -1783 1783 4 -1784 1783 -1 -1883 1783 -1 -1784 1784 4 -1785 1784 -1 -1884 1784 -1 -1785 1785 4 -1786 1785 -1 -1885 1785 -1 -1786 1786 4 -1787 1786 -1 -1886 1786 -1 -1787 1787 4 -1788 1787 -1 -1887 1787 -1 -1788 1788 4 -1789 1788 -1 -1888 1788 -1 -1789 1789 4 -1790 1789 -1 -1889 1789 -1 -1790 1790 4 -1791 1790 -1 -1890 1790 -1 -1791 1791 4 -1792 1791 -1 -1891 1791 -1 -1792 1792 4 -1793 1792 -1 -1892 1792 -1 -1793 1793 4 -1794 1793 -1 -1893 1793 -1 -1794 1794 4 -1795 1794 -1 -1894 1794 -1 -1795 1795 4 -1796 1795 -1 -1895 1795 -1 -1796 1796 4 -1797 1796 -1 -1896 1796 -1 -1797 1797 4 -1798 1797 -1 -1897 1797 -1 -1798 1798 4 -1799 1798 -1 -1898 1798 -1 -1799 1799 4 -1800 1799 -1 -1899 1799 -1 -1800 1800 4 -1900 1800 -1 -1801 1801 4 -1802 1801 -1 -1901 1801 -1 -1802 1802 4 -1803 1802 -1 -1902 1802 -1 -1803 1803 4 -1804 1803 -1 -1903 1803 -1 -1804 1804 4 -1805 1804 -1 -1904 1804 -1 -1805 1805 4 -1806 1805 -1 -1905 1805 -1 -1806 1806 4 -1807 1806 -1 -1906 1806 -1 -1807 1807 4 -1808 1807 -1 -1907 1807 -1 -1808 1808 4 -1809 1808 -1 -1908 1808 -1 -1809 1809 4 -1810 1809 -1 -1909 1809 -1 -1810 1810 4 -1811 1810 -1 -1910 1810 -1 -1811 1811 4 -1812 1811 -1 -1911 1811 -1 -1812 1812 4 -1813 1812 -1 -1912 1812 -1 -1813 1813 4 -1814 1813 -1 -1913 1813 -1 -1814 1814 4 -1815 1814 -1 -1914 1814 -1 -1815 1815 4 -1816 1815 -1 -1915 1815 -1 -1816 1816 4 -1817 1816 -1 -1916 1816 -1 -1817 1817 4 -1818 1817 -1 -1917 1817 -1 -1818 1818 4 -1819 1818 -1 -1918 1818 -1 -1819 1819 4 -1820 1819 -1 -1919 1819 -1 -1820 1820 4 -1821 1820 -1 -1920 1820 -1 -1821 1821 4 -1822 1821 -1 -1921 1821 -1 -1822 1822 4 -1823 1822 -1 -1922 1822 -1 -1823 1823 4 -1824 1823 -1 -1923 1823 -1 -1824 1824 4 -1825 1824 -1 -1924 1824 -1 -1825 1825 4 -1826 1825 -1 -1925 1825 -1 -1826 1826 4 -1827 1826 -1 -1926 1826 -1 -1827 1827 4 -1828 1827 -1 -1927 1827 -1 -1828 1828 4 -1829 1828 -1 -1928 1828 -1 -1829 1829 4 -1830 1829 -1 -1929 1829 -1 -1830 1830 4 -1831 1830 -1 -1930 1830 -1 -1831 1831 4 -1832 1831 -1 -1931 1831 -1 -1832 1832 4 -1833 1832 -1 -1932 1832 -1 -1833 1833 4 -1834 1833 -1 -1933 1833 -1 -1834 1834 4 -1835 1834 -1 -1934 1834 -1 -1835 1835 4 -1836 1835 -1 -1935 1835 -1 -1836 1836 4 -1837 1836 -1 -1936 1836 -1 -1837 1837 4 -1838 1837 -1 -1937 1837 -1 -1838 1838 4 -1839 1838 -1 -1938 1838 -1 -1839 1839 4 -1840 1839 -1 -1939 1839 -1 -1840 1840 4 -1841 1840 -1 -1940 1840 -1 -1841 1841 4 -1842 1841 -1 -1941 1841 -1 -1842 1842 4 -1843 1842 -1 -1942 1842 -1 -1843 1843 4 -1844 1843 -1 -1943 1843 -1 -1844 1844 4 -1845 1844 -1 -1944 1844 -1 -1845 1845 4 -1846 1845 -1 -1945 1845 -1 -1846 1846 4 -1847 1846 -1 -1946 1846 -1 -1847 1847 4 -1848 1847 -1 -1947 1847 -1 -1848 1848 4 -1849 1848 -1 -1948 1848 -1 -1849 1849 4 -1850 1849 -1 -1949 1849 -1 -1850 1850 4 -1851 1850 -1 -1950 1850 -1 -1851 1851 4 -1852 1851 -1 -1951 1851 -1 -1852 1852 4 -1853 1852 -1 -1952 1852 -1 -1853 1853 4 -1854 1853 -1 -1953 1853 -1 -1854 1854 4 -1855 1854 -1 -1954 1854 -1 -1855 1855 4 -1856 1855 -1 -1955 1855 -1 -1856 1856 4 -1857 1856 -1 -1956 1856 -1 -1857 1857 4 -1858 1857 -1 -1957 1857 -1 -1858 1858 4 -1859 1858 -1 -1958 1858 -1 -1859 1859 4 -1860 1859 -1 -1959 1859 -1 -1860 1860 4 -1861 1860 -1 -1960 1860 -1 -1861 1861 4 -1862 1861 -1 -1961 1861 -1 -1862 1862 4 -1863 1862 -1 -1962 1862 -1 -1863 1863 4 -1864 1863 -1 -1963 1863 -1 -1864 1864 4 -1865 1864 -1 -1964 1864 -1 -1865 1865 4 -1866 1865 -1 -1965 1865 -1 -1866 1866 4 -1867 1866 -1 -1966 1866 -1 -1867 1867 4 -1868 1867 -1 -1967 1867 -1 -1868 1868 4 -1869 1868 -1 -1968 1868 -1 -1869 1869 4 -1870 1869 -1 -1969 1869 -1 -1870 1870 4 -1871 1870 -1 -1970 1870 -1 -1871 1871 4 -1872 1871 -1 -1971 1871 -1 -1872 1872 4 -1873 1872 -1 -1972 1872 -1 -1873 1873 4 -1874 1873 -1 -1973 1873 -1 -1874 1874 4 -1875 1874 -1 -1974 1874 -1 -1875 1875 4 -1876 1875 -1 -1975 1875 -1 -1876 1876 4 -1877 1876 -1 -1976 1876 -1 -1877 1877 4 -1878 1877 -1 -1977 1877 -1 -1878 1878 4 -1879 1878 -1 -1978 1878 -1 -1879 1879 4 -1880 1879 -1 -1979 1879 -1 -1880 1880 4 -1881 1880 -1 -1980 1880 -1 -1881 1881 4 -1882 1881 -1 -1981 1881 -1 -1882 1882 4 -1883 1882 -1 -1982 1882 -1 -1883 1883 4 -1884 1883 -1 -1983 1883 -1 -1884 1884 4 -1885 1884 -1 -1984 1884 -1 -1885 1885 4 -1886 1885 -1 -1985 1885 -1 -1886 1886 4 -1887 1886 -1 -1986 1886 -1 -1887 1887 4 -1888 1887 -1 -1987 1887 -1 -1888 1888 4 -1889 1888 -1 -1988 1888 -1 -1889 1889 4 -1890 1889 -1 -1989 1889 -1 -1890 1890 4 -1891 1890 -1 -1990 1890 -1 -1891 1891 4 -1892 1891 -1 -1991 1891 -1 -1892 1892 4 -1893 1892 -1 -1992 1892 -1 -1893 1893 4 -1894 1893 -1 -1993 1893 -1 -1894 1894 4 -1895 1894 -1 -1994 1894 -1 -1895 1895 4 -1896 1895 -1 -1995 1895 -1 -1896 1896 4 -1897 1896 -1 -1996 1896 -1 -1897 1897 4 -1898 1897 -1 -1997 1897 -1 -1898 1898 4 -1899 1898 -1 -1998 1898 -1 -1899 1899 4 -1900 1899 -1 -1999 1899 -1 -1900 1900 4 -2000 1900 -1 -1901 1901 4 -1902 1901 -1 -2001 1901 -1 -1902 1902 4 -1903 1902 -1 -2002 1902 -1 -1903 1903 4 -1904 1903 -1 -2003 1903 -1 -1904 1904 4 -1905 1904 -1 -2004 1904 -1 -1905 1905 4 -1906 1905 -1 -2005 1905 -1 -1906 1906 4 -1907 1906 -1 -2006 1906 -1 -1907 1907 4 -1908 1907 -1 -2007 1907 -1 -1908 1908 4 -1909 1908 -1 -2008 1908 -1 -1909 1909 4 -1910 1909 -1 -2009 1909 -1 -1910 1910 4 -1911 1910 -1 -2010 1910 -1 -1911 1911 4 -1912 1911 -1 -2011 1911 -1 -1912 1912 4 -1913 1912 -1 -2012 1912 -1 -1913 1913 4 -1914 1913 -1 -2013 1913 -1 -1914 1914 4 -1915 1914 -1 -2014 1914 -1 -1915 1915 4 -1916 1915 -1 -2015 1915 -1 -1916 1916 4 -1917 1916 -1 -2016 1916 -1 -1917 1917 4 -1918 1917 -1 -2017 1917 -1 -1918 1918 4 -1919 1918 -1 -2018 1918 -1 -1919 1919 4 -1920 1919 -1 -2019 1919 -1 -1920 1920 4 -1921 1920 -1 -2020 1920 -1 -1921 1921 4 -1922 1921 -1 -2021 1921 -1 -1922 1922 4 -1923 1922 -1 -2022 1922 -1 -1923 1923 4 -1924 1923 -1 -2023 1923 -1 -1924 1924 4 -1925 1924 -1 -2024 1924 -1 -1925 1925 4 -1926 1925 -1 -2025 1925 -1 -1926 1926 4 -1927 1926 -1 -2026 1926 -1 -1927 1927 4 -1928 1927 -1 -2027 1927 -1 -1928 1928 4 -1929 1928 -1 -2028 1928 -1 -1929 1929 4 -1930 1929 -1 -2029 1929 -1 -1930 1930 4 -1931 1930 -1 -2030 1930 -1 -1931 1931 4 -1932 1931 -1 -2031 1931 -1 -1932 1932 4 -1933 1932 -1 -2032 1932 -1 -1933 1933 4 -1934 1933 -1 -2033 1933 -1 -1934 1934 4 -1935 1934 -1 -2034 1934 -1 -1935 1935 4 -1936 1935 -1 -2035 1935 -1 -1936 1936 4 -1937 1936 -1 -2036 1936 -1 -1937 1937 4 -1938 1937 -1 -2037 1937 -1 -1938 1938 4 -1939 1938 -1 -2038 1938 -1 -1939 1939 4 -1940 1939 -1 -2039 1939 -1 -1940 1940 4 -1941 1940 -1 -2040 1940 -1 -1941 1941 4 -1942 1941 -1 -2041 1941 -1 -1942 1942 4 -1943 1942 -1 -2042 1942 -1 -1943 1943 4 -1944 1943 -1 -2043 1943 -1 -1944 1944 4 -1945 1944 -1 -2044 1944 -1 -1945 1945 4 -1946 1945 -1 -2045 1945 -1 -1946 1946 4 -1947 1946 -1 -2046 1946 -1 -1947 1947 4 -1948 1947 -1 -2047 1947 -1 -1948 1948 4 -1949 1948 -1 -2048 1948 -1 -1949 1949 4 -1950 1949 -1 -2049 1949 -1 -1950 1950 4 -1951 1950 -1 -2050 1950 -1 -1951 1951 4 -1952 1951 -1 -2051 1951 -1 -1952 1952 4 -1953 1952 -1 -2052 1952 -1 -1953 1953 4 -1954 1953 -1 -2053 1953 -1 -1954 1954 4 -1955 1954 -1 -2054 1954 -1 -1955 1955 4 -1956 1955 -1 -2055 1955 -1 -1956 1956 4 -1957 1956 -1 -2056 1956 -1 -1957 1957 4 -1958 1957 -1 -2057 1957 -1 -1958 1958 4 -1959 1958 -1 -2058 1958 -1 -1959 1959 4 -1960 1959 -1 -2059 1959 -1 -1960 1960 4 -1961 1960 -1 -2060 1960 -1 -1961 1961 4 -1962 1961 -1 -2061 1961 -1 -1962 1962 4 -1963 1962 -1 -2062 1962 -1 -1963 1963 4 -1964 1963 -1 -2063 1963 -1 -1964 1964 4 -1965 1964 -1 -2064 1964 -1 -1965 1965 4 -1966 1965 -1 -2065 1965 -1 -1966 1966 4 -1967 1966 -1 -2066 1966 -1 -1967 1967 4 -1968 1967 -1 -2067 1967 -1 -1968 1968 4 -1969 1968 -1 -2068 1968 -1 -1969 1969 4 -1970 1969 -1 -2069 1969 -1 -1970 1970 4 -1971 1970 -1 -2070 1970 -1 -1971 1971 4 -1972 1971 -1 -2071 1971 -1 -1972 1972 4 -1973 1972 -1 -2072 1972 -1 -1973 1973 4 -1974 1973 -1 -2073 1973 -1 -1974 1974 4 -1975 1974 -1 -2074 1974 -1 -1975 1975 4 -1976 1975 -1 -2075 1975 -1 -1976 1976 4 -1977 1976 -1 -2076 1976 -1 -1977 1977 4 -1978 1977 -1 -2077 1977 -1 -1978 1978 4 -1979 1978 -1 -2078 1978 -1 -1979 1979 4 -1980 1979 -1 -2079 1979 -1 -1980 1980 4 -1981 1980 -1 -2080 1980 -1 -1981 1981 4 -1982 1981 -1 -2081 1981 -1 -1982 1982 4 -1983 1982 -1 -2082 1982 -1 -1983 1983 4 -1984 1983 -1 -2083 1983 -1 -1984 1984 4 -1985 1984 -1 -2084 1984 -1 -1985 1985 4 -1986 1985 -1 -2085 1985 -1 -1986 1986 4 -1987 1986 -1 -2086 1986 -1 -1987 1987 4 -1988 1987 -1 -2087 1987 -1 -1988 1988 4 -1989 1988 -1 -2088 1988 -1 -1989 1989 4 -1990 1989 -1 -2089 1989 -1 -1990 1990 4 -1991 1990 -1 -2090 1990 -1 -1991 1991 4 -1992 1991 -1 -2091 1991 -1 -1992 1992 4 -1993 1992 -1 -2092 1992 -1 -1993 1993 4 -1994 1993 -1 -2093 1993 -1 -1994 1994 4 -1995 1994 -1 -2094 1994 -1 -1995 1995 4 -1996 1995 -1 -2095 1995 -1 -1996 1996 4 -1997 1996 -1 -2096 1996 -1 -1997 1997 4 -1998 1997 -1 -2097 1997 -1 -1998 1998 4 -1999 1998 -1 -2098 1998 -1 -1999 1999 4 -2000 1999 -1 -2099 1999 -1 -2000 2000 4 -2100 2000 -1 -2001 2001 4 -2002 2001 -1 -2101 2001 -1 -2002 2002 4 -2003 2002 -1 -2102 2002 -1 -2003 2003 4 -2004 2003 -1 -2103 2003 -1 -2004 2004 4 -2005 2004 -1 -2104 2004 -1 -2005 2005 4 -2006 2005 -1 -2105 2005 -1 -2006 2006 4 -2007 2006 -1 -2106 2006 -1 -2007 2007 4 -2008 2007 -1 -2107 2007 -1 -2008 2008 4 -2009 2008 -1 -2108 2008 -1 -2009 2009 4 -2010 2009 -1 -2109 2009 -1 -2010 2010 4 -2011 2010 -1 -2110 2010 -1 -2011 2011 4 -2012 2011 -1 -2111 2011 -1 -2012 2012 4 -2013 2012 -1 -2112 2012 -1 -2013 2013 4 -2014 2013 -1 -2113 2013 -1 -2014 2014 4 -2015 2014 -1 -2114 2014 -1 -2015 2015 4 -2016 2015 -1 -2115 2015 -1 -2016 2016 4 -2017 2016 -1 -2116 2016 -1 -2017 2017 4 -2018 2017 -1 -2117 2017 -1 -2018 2018 4 -2019 2018 -1 -2118 2018 -1 -2019 2019 4 -2020 2019 -1 -2119 2019 -1 -2020 2020 4 -2021 2020 -1 -2120 2020 -1 -2021 2021 4 -2022 2021 -1 -2121 2021 -1 -2022 2022 4 -2023 2022 -1 -2122 2022 -1 -2023 2023 4 -2024 2023 -1 -2123 2023 -1 -2024 2024 4 -2025 2024 -1 -2124 2024 -1 -2025 2025 4 -2026 2025 -1 -2125 2025 -1 -2026 2026 4 -2027 2026 -1 -2126 2026 -1 -2027 2027 4 -2028 2027 -1 -2127 2027 -1 -2028 2028 4 -2029 2028 -1 -2128 2028 -1 -2029 2029 4 -2030 2029 -1 -2129 2029 -1 -2030 2030 4 -2031 2030 -1 -2130 2030 -1 -2031 2031 4 -2032 2031 -1 -2131 2031 -1 -2032 2032 4 -2033 2032 -1 -2132 2032 -1 -2033 2033 4 -2034 2033 -1 -2133 2033 -1 -2034 2034 4 -2035 2034 -1 -2134 2034 -1 -2035 2035 4 -2036 2035 -1 -2135 2035 -1 -2036 2036 4 -2037 2036 -1 -2136 2036 -1 -2037 2037 4 -2038 2037 -1 -2137 2037 -1 -2038 2038 4 -2039 2038 -1 -2138 2038 -1 -2039 2039 4 -2040 2039 -1 -2139 2039 -1 -2040 2040 4 -2041 2040 -1 -2140 2040 -1 -2041 2041 4 -2042 2041 -1 -2141 2041 -1 -2042 2042 4 -2043 2042 -1 -2142 2042 -1 -2043 2043 4 -2044 2043 -1 -2143 2043 -1 -2044 2044 4 -2045 2044 -1 -2144 2044 -1 -2045 2045 4 -2046 2045 -1 -2145 2045 -1 -2046 2046 4 -2047 2046 -1 -2146 2046 -1 -2047 2047 4 -2048 2047 -1 -2147 2047 -1 -2048 2048 4 -2049 2048 -1 -2148 2048 -1 -2049 2049 4 -2050 2049 -1 -2149 2049 -1 -2050 2050 4 -2051 2050 -1 -2150 2050 -1 -2051 2051 4 -2052 2051 -1 -2151 2051 -1 -2052 2052 4 -2053 2052 -1 -2152 2052 -1 -2053 2053 4 -2054 2053 -1 -2153 2053 -1 -2054 2054 4 -2055 2054 -1 -2154 2054 -1 -2055 2055 4 -2056 2055 -1 -2155 2055 -1 -2056 2056 4 -2057 2056 -1 -2156 2056 -1 -2057 2057 4 -2058 2057 -1 -2157 2057 -1 -2058 2058 4 -2059 2058 -1 -2158 2058 -1 -2059 2059 4 -2060 2059 -1 -2159 2059 -1 -2060 2060 4 -2061 2060 -1 -2160 2060 -1 -2061 2061 4 -2062 2061 -1 -2161 2061 -1 -2062 2062 4 -2063 2062 -1 -2162 2062 -1 -2063 2063 4 -2064 2063 -1 -2163 2063 -1 -2064 2064 4 -2065 2064 -1 -2164 2064 -1 -2065 2065 4 -2066 2065 -1 -2165 2065 -1 -2066 2066 4 -2067 2066 -1 -2166 2066 -1 -2067 2067 4 -2068 2067 -1 -2167 2067 -1 -2068 2068 4 -2069 2068 -1 -2168 2068 -1 -2069 2069 4 -2070 2069 -1 -2169 2069 -1 -2070 2070 4 -2071 2070 -1 -2170 2070 -1 -2071 2071 4 -2072 2071 -1 -2171 2071 -1 -2072 2072 4 -2073 2072 -1 -2172 2072 -1 -2073 2073 4 -2074 2073 -1 -2173 2073 -1 -2074 2074 4 -2075 2074 -1 -2174 2074 -1 -2075 2075 4 -2076 2075 -1 -2175 2075 -1 -2076 2076 4 -2077 2076 -1 -2176 2076 -1 -2077 2077 4 -2078 2077 -1 -2177 2077 -1 -2078 2078 4 -2079 2078 -1 -2178 2078 -1 -2079 2079 4 -2080 2079 -1 -2179 2079 -1 -2080 2080 4 -2081 2080 -1 -2180 2080 -1 -2081 2081 4 -2082 2081 -1 -2181 2081 -1 -2082 2082 4 -2083 2082 -1 -2182 2082 -1 -2083 2083 4 -2084 2083 -1 -2183 2083 -1 -2084 2084 4 -2085 2084 -1 -2184 2084 -1 -2085 2085 4 -2086 2085 -1 -2185 2085 -1 -2086 2086 4 -2087 2086 -1 -2186 2086 -1 -2087 2087 4 -2088 2087 -1 -2187 2087 -1 -2088 2088 4 -2089 2088 -1 -2188 2088 -1 -2089 2089 4 -2090 2089 -1 -2189 2089 -1 -2090 2090 4 -2091 2090 -1 -2190 2090 -1 -2091 2091 4 -2092 2091 -1 -2191 2091 -1 -2092 2092 4 -2093 2092 -1 -2192 2092 -1 -2093 2093 4 -2094 2093 -1 -2193 2093 -1 -2094 2094 4 -2095 2094 -1 -2194 2094 -1 -2095 2095 4 -2096 2095 -1 -2195 2095 -1 -2096 2096 4 -2097 2096 -1 -2196 2096 -1 -2097 2097 4 -2098 2097 -1 -2197 2097 -1 -2098 2098 4 -2099 2098 -1 -2198 2098 -1 -2099 2099 4 -2100 2099 -1 -2199 2099 -1 -2100 2100 4 -2200 2100 -1 -2101 2101 4 -2102 2101 -1 -2201 2101 -1 -2102 2102 4 -2103 2102 -1 -2202 2102 -1 -2103 2103 4 -2104 2103 -1 -2203 2103 -1 -2104 2104 4 -2105 2104 -1 -2204 2104 -1 -2105 2105 4 -2106 2105 -1 -2205 2105 -1 -2106 2106 4 -2107 2106 -1 -2206 2106 -1 -2107 2107 4 -2108 2107 -1 -2207 2107 -1 -2108 2108 4 -2109 2108 -1 -2208 2108 -1 -2109 2109 4 -2110 2109 -1 -2209 2109 -1 -2110 2110 4 -2111 2110 -1 -2210 2110 -1 -2111 2111 4 -2112 2111 -1 -2211 2111 -1 -2112 2112 4 -2113 2112 -1 -2212 2112 -1 -2113 2113 4 -2114 2113 -1 -2213 2113 -1 -2114 2114 4 -2115 2114 -1 -2214 2114 -1 -2115 2115 4 -2116 2115 -1 -2215 2115 -1 -2116 2116 4 -2117 2116 -1 -2216 2116 -1 -2117 2117 4 -2118 2117 -1 -2217 2117 -1 -2118 2118 4 -2119 2118 -1 -2218 2118 -1 -2119 2119 4 -2120 2119 -1 -2219 2119 -1 -2120 2120 4 -2121 2120 -1 -2220 2120 -1 -2121 2121 4 -2122 2121 -1 -2221 2121 -1 -2122 2122 4 -2123 2122 -1 -2222 2122 -1 -2123 2123 4 -2124 2123 -1 -2223 2123 -1 -2124 2124 4 -2125 2124 -1 -2224 2124 -1 -2125 2125 4 -2126 2125 -1 -2225 2125 -1 -2126 2126 4 -2127 2126 -1 -2226 2126 -1 -2127 2127 4 -2128 2127 -1 -2227 2127 -1 -2128 2128 4 -2129 2128 -1 -2228 2128 -1 -2129 2129 4 -2130 2129 -1 -2229 2129 -1 -2130 2130 4 -2131 2130 -1 -2230 2130 -1 -2131 2131 4 -2132 2131 -1 -2231 2131 -1 -2132 2132 4 -2133 2132 -1 -2232 2132 -1 -2133 2133 4 -2134 2133 -1 -2233 2133 -1 -2134 2134 4 -2135 2134 -1 -2234 2134 -1 -2135 2135 4 -2136 2135 -1 -2235 2135 -1 -2136 2136 4 -2137 2136 -1 -2236 2136 -1 -2137 2137 4 -2138 2137 -1 -2237 2137 -1 -2138 2138 4 -2139 2138 -1 -2238 2138 -1 -2139 2139 4 -2140 2139 -1 -2239 2139 -1 -2140 2140 4 -2141 2140 -1 -2240 2140 -1 -2141 2141 4 -2142 2141 -1 -2241 2141 -1 -2142 2142 4 -2143 2142 -1 -2242 2142 -1 -2143 2143 4 -2144 2143 -1 -2243 2143 -1 -2144 2144 4 -2145 2144 -1 -2244 2144 -1 -2145 2145 4 -2146 2145 -1 -2245 2145 -1 -2146 2146 4 -2147 2146 -1 -2246 2146 -1 -2147 2147 4 -2148 2147 -1 -2247 2147 -1 -2148 2148 4 -2149 2148 -1 -2248 2148 -1 -2149 2149 4 -2150 2149 -1 -2249 2149 -1 -2150 2150 4 -2151 2150 -1 -2250 2150 -1 -2151 2151 4 -2152 2151 -1 -2251 2151 -1 -2152 2152 4 -2153 2152 -1 -2252 2152 -1 -2153 2153 4 -2154 2153 -1 -2253 2153 -1 -2154 2154 4 -2155 2154 -1 -2254 2154 -1 -2155 2155 4 -2156 2155 -1 -2255 2155 -1 -2156 2156 4 -2157 2156 -1 -2256 2156 -1 -2157 2157 4 -2158 2157 -1 -2257 2157 -1 -2158 2158 4 -2159 2158 -1 -2258 2158 -1 -2159 2159 4 -2160 2159 -1 -2259 2159 -1 -2160 2160 4 -2161 2160 -1 -2260 2160 -1 -2161 2161 4 -2162 2161 -1 -2261 2161 -1 -2162 2162 4 -2163 2162 -1 -2262 2162 -1 -2163 2163 4 -2164 2163 -1 -2263 2163 -1 -2164 2164 4 -2165 2164 -1 -2264 2164 -1 -2165 2165 4 -2166 2165 -1 -2265 2165 -1 -2166 2166 4 -2167 2166 -1 -2266 2166 -1 -2167 2167 4 -2168 2167 -1 -2267 2167 -1 -2168 2168 4 -2169 2168 -1 -2268 2168 -1 -2169 2169 4 -2170 2169 -1 -2269 2169 -1 -2170 2170 4 -2171 2170 -1 -2270 2170 -1 -2171 2171 4 -2172 2171 -1 -2271 2171 -1 -2172 2172 4 -2173 2172 -1 -2272 2172 -1 -2173 2173 4 -2174 2173 -1 -2273 2173 -1 -2174 2174 4 -2175 2174 -1 -2274 2174 -1 -2175 2175 4 -2176 2175 -1 -2275 2175 -1 -2176 2176 4 -2177 2176 -1 -2276 2176 -1 -2177 2177 4 -2178 2177 -1 -2277 2177 -1 -2178 2178 4 -2179 2178 -1 -2278 2178 -1 -2179 2179 4 -2180 2179 -1 -2279 2179 -1 -2180 2180 4 -2181 2180 -1 -2280 2180 -1 -2181 2181 4 -2182 2181 -1 -2281 2181 -1 -2182 2182 4 -2183 2182 -1 -2282 2182 -1 -2183 2183 4 -2184 2183 -1 -2283 2183 -1 -2184 2184 4 -2185 2184 -1 -2284 2184 -1 -2185 2185 4 -2186 2185 -1 -2285 2185 -1 -2186 2186 4 -2187 2186 -1 -2286 2186 -1 -2187 2187 4 -2188 2187 -1 -2287 2187 -1 -2188 2188 4 -2189 2188 -1 -2288 2188 -1 -2189 2189 4 -2190 2189 -1 -2289 2189 -1 -2190 2190 4 -2191 2190 -1 -2290 2190 -1 -2191 2191 4 -2192 2191 -1 -2291 2191 -1 -2192 2192 4 -2193 2192 -1 -2292 2192 -1 -2193 2193 4 -2194 2193 -1 -2293 2193 -1 -2194 2194 4 -2195 2194 -1 -2294 2194 -1 -2195 2195 4 -2196 2195 -1 -2295 2195 -1 -2196 2196 4 -2197 2196 -1 -2296 2196 -1 -2197 2197 4 -2198 2197 -1 -2297 2197 -1 -2198 2198 4 -2199 2198 -1 -2298 2198 -1 -2199 2199 4 -2200 2199 -1 -2299 2199 -1 -2200 2200 4 -2300 2200 -1 -2201 2201 4 -2202 2201 -1 -2301 2201 -1 -2202 2202 4 -2203 2202 -1 -2302 2202 -1 -2203 2203 4 -2204 2203 -1 -2303 2203 -1 -2204 2204 4 -2205 2204 -1 -2304 2204 -1 -2205 2205 4 -2206 2205 -1 -2305 2205 -1 -2206 2206 4 -2207 2206 -1 -2306 2206 -1 -2207 2207 4 -2208 2207 -1 -2307 2207 -1 -2208 2208 4 -2209 2208 -1 -2308 2208 -1 -2209 2209 4 -2210 2209 -1 -2309 2209 -1 -2210 2210 4 -2211 2210 -1 -2310 2210 -1 -2211 2211 4 -2212 2211 -1 -2311 2211 -1 -2212 2212 4 -2213 2212 -1 -2312 2212 -1 -2213 2213 4 -2214 2213 -1 -2313 2213 -1 -2214 2214 4 -2215 2214 -1 -2314 2214 -1 -2215 2215 4 -2216 2215 -1 -2315 2215 -1 -2216 2216 4 -2217 2216 -1 -2316 2216 -1 -2217 2217 4 -2218 2217 -1 -2317 2217 -1 -2218 2218 4 -2219 2218 -1 -2318 2218 -1 -2219 2219 4 -2220 2219 -1 -2319 2219 -1 -2220 2220 4 -2221 2220 -1 -2320 2220 -1 -2221 2221 4 -2222 2221 -1 -2321 2221 -1 -2222 2222 4 -2223 2222 -1 -2322 2222 -1 -2223 2223 4 -2224 2223 -1 -2323 2223 -1 -2224 2224 4 -2225 2224 -1 -2324 2224 -1 -2225 2225 4 -2226 2225 -1 -2325 2225 -1 -2226 2226 4 -2227 2226 -1 -2326 2226 -1 -2227 2227 4 -2228 2227 -1 -2327 2227 -1 -2228 2228 4 -2229 2228 -1 -2328 2228 -1 -2229 2229 4 -2230 2229 -1 -2329 2229 -1 -2230 2230 4 -2231 2230 -1 -2330 2230 -1 -2231 2231 4 -2232 2231 -1 -2331 2231 -1 -2232 2232 4 -2233 2232 -1 -2332 2232 -1 -2233 2233 4 -2234 2233 -1 -2333 2233 -1 -2234 2234 4 -2235 2234 -1 -2334 2234 -1 -2235 2235 4 -2236 2235 -1 -2335 2235 -1 -2236 2236 4 -2237 2236 -1 -2336 2236 -1 -2237 2237 4 -2238 2237 -1 -2337 2237 -1 -2238 2238 4 -2239 2238 -1 -2338 2238 -1 -2239 2239 4 -2240 2239 -1 -2339 2239 -1 -2240 2240 4 -2241 2240 -1 -2340 2240 -1 -2241 2241 4 -2242 2241 -1 -2341 2241 -1 -2242 2242 4 -2243 2242 -1 -2342 2242 -1 -2243 2243 4 -2244 2243 -1 -2343 2243 -1 -2244 2244 4 -2245 2244 -1 -2344 2244 -1 -2245 2245 4 -2246 2245 -1 -2345 2245 -1 -2246 2246 4 -2247 2246 -1 -2346 2246 -1 -2247 2247 4 -2248 2247 -1 -2347 2247 -1 -2248 2248 4 -2249 2248 -1 -2348 2248 -1 -2249 2249 4 -2250 2249 -1 -2349 2249 -1 -2250 2250 4 -2251 2250 -1 -2350 2250 -1 -2251 2251 4 -2252 2251 -1 -2351 2251 -1 -2252 2252 4 -2253 2252 -1 -2352 2252 -1 -2253 2253 4 -2254 2253 -1 -2353 2253 -1 -2254 2254 4 -2255 2254 -1 -2354 2254 -1 -2255 2255 4 -2256 2255 -1 -2355 2255 -1 -2256 2256 4 -2257 2256 -1 -2356 2256 -1 -2257 2257 4 -2258 2257 -1 -2357 2257 -1 -2258 2258 4 -2259 2258 -1 -2358 2258 -1 -2259 2259 4 -2260 2259 -1 -2359 2259 -1 -2260 2260 4 -2261 2260 -1 -2360 2260 -1 -2261 2261 4 -2262 2261 -1 -2361 2261 -1 -2262 2262 4 -2263 2262 -1 -2362 2262 -1 -2263 2263 4 -2264 2263 -1 -2363 2263 -1 -2264 2264 4 -2265 2264 -1 -2364 2264 -1 -2265 2265 4 -2266 2265 -1 -2365 2265 -1 -2266 2266 4 -2267 2266 -1 -2366 2266 -1 -2267 2267 4 -2268 2267 -1 -2367 2267 -1 -2268 2268 4 -2269 2268 -1 -2368 2268 -1 -2269 2269 4 -2270 2269 -1 -2369 2269 -1 -2270 2270 4 -2271 2270 -1 -2370 2270 -1 -2271 2271 4 -2272 2271 -1 -2371 2271 -1 -2272 2272 4 -2273 2272 -1 -2372 2272 -1 -2273 2273 4 -2274 2273 -1 -2373 2273 -1 -2274 2274 4 -2275 2274 -1 -2374 2274 -1 -2275 2275 4 -2276 2275 -1 -2375 2275 -1 -2276 2276 4 -2277 2276 -1 -2376 2276 -1 -2277 2277 4 -2278 2277 -1 -2377 2277 -1 -2278 2278 4 -2279 2278 -1 -2378 2278 -1 -2279 2279 4 -2280 2279 -1 -2379 2279 -1 -2280 2280 4 -2281 2280 -1 -2380 2280 -1 -2281 2281 4 -2282 2281 -1 -2381 2281 -1 -2282 2282 4 -2283 2282 -1 -2382 2282 -1 -2283 2283 4 -2284 2283 -1 -2383 2283 -1 -2284 2284 4 -2285 2284 -1 -2384 2284 -1 -2285 2285 4 -2286 2285 -1 -2385 2285 -1 -2286 2286 4 -2287 2286 -1 -2386 2286 -1 -2287 2287 4 -2288 2287 -1 -2387 2287 -1 -2288 2288 4 -2289 2288 -1 -2388 2288 -1 -2289 2289 4 -2290 2289 -1 -2389 2289 -1 -2290 2290 4 -2291 2290 -1 -2390 2290 -1 -2291 2291 4 -2292 2291 -1 -2391 2291 -1 -2292 2292 4 -2293 2292 -1 -2392 2292 -1 -2293 2293 4 -2294 2293 -1 -2393 2293 -1 -2294 2294 4 -2295 2294 -1 -2394 2294 -1 -2295 2295 4 -2296 2295 -1 -2395 2295 -1 -2296 2296 4 -2297 2296 -1 -2396 2296 -1 -2297 2297 4 -2298 2297 -1 -2397 2297 -1 -2298 2298 4 -2299 2298 -1 -2398 2298 -1 -2299 2299 4 -2300 2299 -1 -2399 2299 -1 -2300 2300 4 -2400 2300 -1 -2301 2301 4 -2302 2301 -1 -2401 2301 -1 -2302 2302 4 -2303 2302 -1 -2402 2302 -1 -2303 2303 4 -2304 2303 -1 -2403 2303 -1 -2304 2304 4 -2305 2304 -1 -2404 2304 -1 -2305 2305 4 -2306 2305 -1 -2405 2305 -1 -2306 2306 4 -2307 2306 -1 -2406 2306 -1 -2307 2307 4 -2308 2307 -1 -2407 2307 -1 -2308 2308 4 -2309 2308 -1 -2408 2308 -1 -2309 2309 4 -2310 2309 -1 -2409 2309 -1 -2310 2310 4 -2311 2310 -1 -2410 2310 -1 -2311 2311 4 -2312 2311 -1 -2411 2311 -1 -2312 2312 4 -2313 2312 -1 -2412 2312 -1 -2313 2313 4 -2314 2313 -1 -2413 2313 -1 -2314 2314 4 -2315 2314 -1 -2414 2314 -1 -2315 2315 4 -2316 2315 -1 -2415 2315 -1 -2316 2316 4 -2317 2316 -1 -2416 2316 -1 -2317 2317 4 -2318 2317 -1 -2417 2317 -1 -2318 2318 4 -2319 2318 -1 -2418 2318 -1 -2319 2319 4 -2320 2319 -1 -2419 2319 -1 -2320 2320 4 -2321 2320 -1 -2420 2320 -1 -2321 2321 4 -2322 2321 -1 -2421 2321 -1 -2322 2322 4 -2323 2322 -1 -2422 2322 -1 -2323 2323 4 -2324 2323 -1 -2423 2323 -1 -2324 2324 4 -2325 2324 -1 -2424 2324 -1 -2325 2325 4 -2326 2325 -1 -2425 2325 -1 -2326 2326 4 -2327 2326 -1 -2426 2326 -1 -2327 2327 4 -2328 2327 -1 -2427 2327 -1 -2328 2328 4 -2329 2328 -1 -2428 2328 -1 -2329 2329 4 -2330 2329 -1 -2429 2329 -1 -2330 2330 4 -2331 2330 -1 -2430 2330 -1 -2331 2331 4 -2332 2331 -1 -2431 2331 -1 -2332 2332 4 -2333 2332 -1 -2432 2332 -1 -2333 2333 4 -2334 2333 -1 -2433 2333 -1 -2334 2334 4 -2335 2334 -1 -2434 2334 -1 -2335 2335 4 -2336 2335 -1 -2435 2335 -1 -2336 2336 4 -2337 2336 -1 -2436 2336 -1 -2337 2337 4 -2338 2337 -1 -2437 2337 -1 -2338 2338 4 -2339 2338 -1 -2438 2338 -1 -2339 2339 4 -2340 2339 -1 -2439 2339 -1 -2340 2340 4 -2341 2340 -1 -2440 2340 -1 -2341 2341 4 -2342 2341 -1 -2441 2341 -1 -2342 2342 4 -2343 2342 -1 -2442 2342 -1 -2343 2343 4 -2344 2343 -1 -2443 2343 -1 -2344 2344 4 -2345 2344 -1 -2444 2344 -1 -2345 2345 4 -2346 2345 -1 -2445 2345 -1 -2346 2346 4 -2347 2346 -1 -2446 2346 -1 -2347 2347 4 -2348 2347 -1 -2447 2347 -1 -2348 2348 4 -2349 2348 -1 -2448 2348 -1 -2349 2349 4 -2350 2349 -1 -2449 2349 -1 -2350 2350 4 -2351 2350 -1 -2450 2350 -1 -2351 2351 4 -2352 2351 -1 -2451 2351 -1 -2352 2352 4 -2353 2352 -1 -2452 2352 -1 -2353 2353 4 -2354 2353 -1 -2453 2353 -1 -2354 2354 4 -2355 2354 -1 -2454 2354 -1 -2355 2355 4 -2356 2355 -1 -2455 2355 -1 -2356 2356 4 -2357 2356 -1 -2456 2356 -1 -2357 2357 4 -2358 2357 -1 -2457 2357 -1 -2358 2358 4 -2359 2358 -1 -2458 2358 -1 -2359 2359 4 -2360 2359 -1 -2459 2359 -1 -2360 2360 4 -2361 2360 -1 -2460 2360 -1 -2361 2361 4 -2362 2361 -1 -2461 2361 -1 -2362 2362 4 -2363 2362 -1 -2462 2362 -1 -2363 2363 4 -2364 2363 -1 -2463 2363 -1 -2364 2364 4 -2365 2364 -1 -2464 2364 -1 -2365 2365 4 -2366 2365 -1 -2465 2365 -1 -2366 2366 4 -2367 2366 -1 -2466 2366 -1 -2367 2367 4 -2368 2367 -1 -2467 2367 -1 -2368 2368 4 -2369 2368 -1 -2468 2368 -1 -2369 2369 4 -2370 2369 -1 -2469 2369 -1 -2370 2370 4 -2371 2370 -1 -2470 2370 -1 -2371 2371 4 -2372 2371 -1 -2471 2371 -1 -2372 2372 4 -2373 2372 -1 -2472 2372 -1 -2373 2373 4 -2374 2373 -1 -2473 2373 -1 -2374 2374 4 -2375 2374 -1 -2474 2374 -1 -2375 2375 4 -2376 2375 -1 -2475 2375 -1 -2376 2376 4 -2377 2376 -1 -2476 2376 -1 -2377 2377 4 -2378 2377 -1 -2477 2377 -1 -2378 2378 4 -2379 2378 -1 -2478 2378 -1 -2379 2379 4 -2380 2379 -1 -2479 2379 -1 -2380 2380 4 -2381 2380 -1 -2480 2380 -1 -2381 2381 4 -2382 2381 -1 -2481 2381 -1 -2382 2382 4 -2383 2382 -1 -2482 2382 -1 -2383 2383 4 -2384 2383 -1 -2483 2383 -1 -2384 2384 4 -2385 2384 -1 -2484 2384 -1 -2385 2385 4 -2386 2385 -1 -2485 2385 -1 -2386 2386 4 -2387 2386 -1 -2486 2386 -1 -2387 2387 4 -2388 2387 -1 -2487 2387 -1 -2388 2388 4 -2389 2388 -1 -2488 2388 -1 -2389 2389 4 -2390 2389 -1 -2489 2389 -1 -2390 2390 4 -2391 2390 -1 -2490 2390 -1 -2391 2391 4 -2392 2391 -1 -2491 2391 -1 -2392 2392 4 -2393 2392 -1 -2492 2392 -1 -2393 2393 4 -2394 2393 -1 -2493 2393 -1 -2394 2394 4 -2395 2394 -1 -2494 2394 -1 -2395 2395 4 -2396 2395 -1 -2495 2395 -1 -2396 2396 4 -2397 2396 -1 -2496 2396 -1 -2397 2397 4 -2398 2397 -1 -2497 2397 -1 -2398 2398 4 -2399 2398 -1 -2498 2398 -1 -2399 2399 4 -2400 2399 -1 -2499 2399 -1 -2400 2400 4 -2500 2400 -1 -2401 2401 4 -2402 2401 -1 -2501 2401 -1 -2402 2402 4 -2403 2402 -1 -2502 2402 -1 -2403 2403 4 -2404 2403 -1 -2503 2403 -1 -2404 2404 4 -2405 2404 -1 -2504 2404 -1 -2405 2405 4 -2406 2405 -1 -2505 2405 -1 -2406 2406 4 -2407 2406 -1 -2506 2406 -1 -2407 2407 4 -2408 2407 -1 -2507 2407 -1 -2408 2408 4 -2409 2408 -1 -2508 2408 -1 -2409 2409 4 -2410 2409 -1 -2509 2409 -1 -2410 2410 4 -2411 2410 -1 -2510 2410 -1 -2411 2411 4 -2412 2411 -1 -2511 2411 -1 -2412 2412 4 -2413 2412 -1 -2512 2412 -1 -2413 2413 4 -2414 2413 -1 -2513 2413 -1 -2414 2414 4 -2415 2414 -1 -2514 2414 -1 -2415 2415 4 -2416 2415 -1 -2515 2415 -1 -2416 2416 4 -2417 2416 -1 -2516 2416 -1 -2417 2417 4 -2418 2417 -1 -2517 2417 -1 -2418 2418 4 -2419 2418 -1 -2518 2418 -1 -2419 2419 4 -2420 2419 -1 -2519 2419 -1 -2420 2420 4 -2421 2420 -1 -2520 2420 -1 -2421 2421 4 -2422 2421 -1 -2521 2421 -1 -2422 2422 4 -2423 2422 -1 -2522 2422 -1 -2423 2423 4 -2424 2423 -1 -2523 2423 -1 -2424 2424 4 -2425 2424 -1 -2524 2424 -1 -2425 2425 4 -2426 2425 -1 -2525 2425 -1 -2426 2426 4 -2427 2426 -1 -2526 2426 -1 -2427 2427 4 -2428 2427 -1 -2527 2427 -1 -2428 2428 4 -2429 2428 -1 -2528 2428 -1 -2429 2429 4 -2430 2429 -1 -2529 2429 -1 -2430 2430 4 -2431 2430 -1 -2530 2430 -1 -2431 2431 4 -2432 2431 -1 -2531 2431 -1 -2432 2432 4 -2433 2432 -1 -2532 2432 -1 -2433 2433 4 -2434 2433 -1 -2533 2433 -1 -2434 2434 4 -2435 2434 -1 -2534 2434 -1 -2435 2435 4 -2436 2435 -1 -2535 2435 -1 -2436 2436 4 -2437 2436 -1 -2536 2436 -1 -2437 2437 4 -2438 2437 -1 -2537 2437 -1 -2438 2438 4 -2439 2438 -1 -2538 2438 -1 -2439 2439 4 -2440 2439 -1 -2539 2439 -1 -2440 2440 4 -2441 2440 -1 -2540 2440 -1 -2441 2441 4 -2442 2441 -1 -2541 2441 -1 -2442 2442 4 -2443 2442 -1 -2542 2442 -1 -2443 2443 4 -2444 2443 -1 -2543 2443 -1 -2444 2444 4 -2445 2444 -1 -2544 2444 -1 -2445 2445 4 -2446 2445 -1 -2545 2445 -1 -2446 2446 4 -2447 2446 -1 -2546 2446 -1 -2447 2447 4 -2448 2447 -1 -2547 2447 -1 -2448 2448 4 -2449 2448 -1 -2548 2448 -1 -2449 2449 4 -2450 2449 -1 -2549 2449 -1 -2450 2450 4 -2451 2450 -1 -2550 2450 -1 -2451 2451 4 -2452 2451 -1 -2551 2451 -1 -2452 2452 4 -2453 2452 -1 -2552 2452 -1 -2453 2453 4 -2454 2453 -1 -2553 2453 -1 -2454 2454 4 -2455 2454 -1 -2554 2454 -1 -2455 2455 4 -2456 2455 -1 -2555 2455 -1 -2456 2456 4 -2457 2456 -1 -2556 2456 -1 -2457 2457 4 -2458 2457 -1 -2557 2457 -1 -2458 2458 4 -2459 2458 -1 -2558 2458 -1 -2459 2459 4 -2460 2459 -1 -2559 2459 -1 -2460 2460 4 -2461 2460 -1 -2560 2460 -1 -2461 2461 4 -2462 2461 -1 -2561 2461 -1 -2462 2462 4 -2463 2462 -1 -2562 2462 -1 -2463 2463 4 -2464 2463 -1 -2563 2463 -1 -2464 2464 4 -2465 2464 -1 -2564 2464 -1 -2465 2465 4 -2466 2465 -1 -2565 2465 -1 -2466 2466 4 -2467 2466 -1 -2566 2466 -1 -2467 2467 4 -2468 2467 -1 -2567 2467 -1 -2468 2468 4 -2469 2468 -1 -2568 2468 -1 -2469 2469 4 -2470 2469 -1 -2569 2469 -1 -2470 2470 4 -2471 2470 -1 -2570 2470 -1 -2471 2471 4 -2472 2471 -1 -2571 2471 -1 -2472 2472 4 -2473 2472 -1 -2572 2472 -1 -2473 2473 4 -2474 2473 -1 -2573 2473 -1 -2474 2474 4 -2475 2474 -1 -2574 2474 -1 -2475 2475 4 -2476 2475 -1 -2575 2475 -1 -2476 2476 4 -2477 2476 -1 -2576 2476 -1 -2477 2477 4 -2478 2477 -1 -2577 2477 -1 -2478 2478 4 -2479 2478 -1 -2578 2478 -1 -2479 2479 4 -2480 2479 -1 -2579 2479 -1 -2480 2480 4 -2481 2480 -1 -2580 2480 -1 -2481 2481 4 -2482 2481 -1 -2581 2481 -1 -2482 2482 4 -2483 2482 -1 -2582 2482 -1 -2483 2483 4 -2484 2483 -1 -2583 2483 -1 -2484 2484 4 -2485 2484 -1 -2584 2484 -1 -2485 2485 4 -2486 2485 -1 -2585 2485 -1 -2486 2486 4 -2487 2486 -1 -2586 2486 -1 -2487 2487 4 -2488 2487 -1 -2587 2487 -1 -2488 2488 4 -2489 2488 -1 -2588 2488 -1 -2489 2489 4 -2490 2489 -1 -2589 2489 -1 -2490 2490 4 -2491 2490 -1 -2590 2490 -1 -2491 2491 4 -2492 2491 -1 -2591 2491 -1 -2492 2492 4 -2493 2492 -1 -2592 2492 -1 -2493 2493 4 -2494 2493 -1 -2593 2493 -1 -2494 2494 4 -2495 2494 -1 -2594 2494 -1 -2495 2495 4 -2496 2495 -1 -2595 2495 -1 -2496 2496 4 -2497 2496 -1 -2596 2496 -1 -2497 2497 4 -2498 2497 -1 -2597 2497 -1 -2498 2498 4 -2499 2498 -1 -2598 2498 -1 -2499 2499 4 -2500 2499 -1 -2599 2499 -1 -2500 2500 4 -2600 2500 -1 -2501 2501 4 -2502 2501 -1 -2601 2501 -1 -2502 2502 4 -2503 2502 -1 -2602 2502 -1 -2503 2503 4 -2504 2503 -1 -2603 2503 -1 -2504 2504 4 -2505 2504 -1 -2604 2504 -1 -2505 2505 4 -2506 2505 -1 -2605 2505 -1 -2506 2506 4 -2507 2506 -1 -2606 2506 -1 -2507 2507 4 -2508 2507 -1 -2607 2507 -1 -2508 2508 4 -2509 2508 -1 -2608 2508 -1 -2509 2509 4 -2510 2509 -1 -2609 2509 -1 -2510 2510 4 -2511 2510 -1 -2610 2510 -1 -2511 2511 4 -2512 2511 -1 -2611 2511 -1 -2512 2512 4 -2513 2512 -1 -2612 2512 -1 -2513 2513 4 -2514 2513 -1 -2613 2513 -1 -2514 2514 4 -2515 2514 -1 -2614 2514 -1 -2515 2515 4 -2516 2515 -1 -2615 2515 -1 -2516 2516 4 -2517 2516 -1 -2616 2516 -1 -2517 2517 4 -2518 2517 -1 -2617 2517 -1 -2518 2518 4 -2519 2518 -1 -2618 2518 -1 -2519 2519 4 -2520 2519 -1 -2619 2519 -1 -2520 2520 4 -2521 2520 -1 -2620 2520 -1 -2521 2521 4 -2522 2521 -1 -2621 2521 -1 -2522 2522 4 -2523 2522 -1 -2622 2522 -1 -2523 2523 4 -2524 2523 -1 -2623 2523 -1 -2524 2524 4 -2525 2524 -1 -2624 2524 -1 -2525 2525 4 -2526 2525 -1 -2625 2525 -1 -2526 2526 4 -2527 2526 -1 -2626 2526 -1 -2527 2527 4 -2528 2527 -1 -2627 2527 -1 -2528 2528 4 -2529 2528 -1 -2628 2528 -1 -2529 2529 4 -2530 2529 -1 -2629 2529 -1 -2530 2530 4 -2531 2530 -1 -2630 2530 -1 -2531 2531 4 -2532 2531 -1 -2631 2531 -1 -2532 2532 4 -2533 2532 -1 -2632 2532 -1 -2533 2533 4 -2534 2533 -1 -2633 2533 -1 -2534 2534 4 -2535 2534 -1 -2634 2534 -1 -2535 2535 4 -2536 2535 -1 -2635 2535 -1 -2536 2536 4 -2537 2536 -1 -2636 2536 -1 -2537 2537 4 -2538 2537 -1 -2637 2537 -1 -2538 2538 4 -2539 2538 -1 -2638 2538 -1 -2539 2539 4 -2540 2539 -1 -2639 2539 -1 -2540 2540 4 -2541 2540 -1 -2640 2540 -1 -2541 2541 4 -2542 2541 -1 -2641 2541 -1 -2542 2542 4 -2543 2542 -1 -2642 2542 -1 -2543 2543 4 -2544 2543 -1 -2643 2543 -1 -2544 2544 4 -2545 2544 -1 -2644 2544 -1 -2545 2545 4 -2546 2545 -1 -2645 2545 -1 -2546 2546 4 -2547 2546 -1 -2646 2546 -1 -2547 2547 4 -2548 2547 -1 -2647 2547 -1 -2548 2548 4 -2549 2548 -1 -2648 2548 -1 -2549 2549 4 -2550 2549 -1 -2649 2549 -1 -2550 2550 4 -2551 2550 -1 -2650 2550 -1 -2551 2551 4 -2552 2551 -1 -2651 2551 -1 -2552 2552 4 -2553 2552 -1 -2652 2552 -1 -2553 2553 4 -2554 2553 -1 -2653 2553 -1 -2554 2554 4 -2555 2554 -1 -2654 2554 -1 -2555 2555 4 -2556 2555 -1 -2655 2555 -1 -2556 2556 4 -2557 2556 -1 -2656 2556 -1 -2557 2557 4 -2558 2557 -1 -2657 2557 -1 -2558 2558 4 -2559 2558 -1 -2658 2558 -1 -2559 2559 4 -2560 2559 -1 -2659 2559 -1 -2560 2560 4 -2561 2560 -1 -2660 2560 -1 -2561 2561 4 -2562 2561 -1 -2661 2561 -1 -2562 2562 4 -2563 2562 -1 -2662 2562 -1 -2563 2563 4 -2564 2563 -1 -2663 2563 -1 -2564 2564 4 -2565 2564 -1 -2664 2564 -1 -2565 2565 4 -2566 2565 -1 -2665 2565 -1 -2566 2566 4 -2567 2566 -1 -2666 2566 -1 -2567 2567 4 -2568 2567 -1 -2667 2567 -1 -2568 2568 4 -2569 2568 -1 -2668 2568 -1 -2569 2569 4 -2570 2569 -1 -2669 2569 -1 -2570 2570 4 -2571 2570 -1 -2670 2570 -1 -2571 2571 4 -2572 2571 -1 -2671 2571 -1 -2572 2572 4 -2573 2572 -1 -2672 2572 -1 -2573 2573 4 -2574 2573 -1 -2673 2573 -1 -2574 2574 4 -2575 2574 -1 -2674 2574 -1 -2575 2575 4 -2576 2575 -1 -2675 2575 -1 -2576 2576 4 -2577 2576 -1 -2676 2576 -1 -2577 2577 4 -2578 2577 -1 -2677 2577 -1 -2578 2578 4 -2579 2578 -1 -2678 2578 -1 -2579 2579 4 -2580 2579 -1 -2679 2579 -1 -2580 2580 4 -2581 2580 -1 -2680 2580 -1 -2581 2581 4 -2582 2581 -1 -2681 2581 -1 -2582 2582 4 -2583 2582 -1 -2682 2582 -1 -2583 2583 4 -2584 2583 -1 -2683 2583 -1 -2584 2584 4 -2585 2584 -1 -2684 2584 -1 -2585 2585 4 -2586 2585 -1 -2685 2585 -1 -2586 2586 4 -2587 2586 -1 -2686 2586 -1 -2587 2587 4 -2588 2587 -1 -2687 2587 -1 -2588 2588 4 -2589 2588 -1 -2688 2588 -1 -2589 2589 4 -2590 2589 -1 -2689 2589 -1 -2590 2590 4 -2591 2590 -1 -2690 2590 -1 -2591 2591 4 -2592 2591 -1 -2691 2591 -1 -2592 2592 4 -2593 2592 -1 -2692 2592 -1 -2593 2593 4 -2594 2593 -1 -2693 2593 -1 -2594 2594 4 -2595 2594 -1 -2694 2594 -1 -2595 2595 4 -2596 2595 -1 -2695 2595 -1 -2596 2596 4 -2597 2596 -1 -2696 2596 -1 -2597 2597 4 -2598 2597 -1 -2697 2597 -1 -2598 2598 4 -2599 2598 -1 -2698 2598 -1 -2599 2599 4 -2600 2599 -1 -2699 2599 -1 -2600 2600 4 -2700 2600 -1 -2601 2601 4 -2602 2601 -1 -2701 2601 -1 -2602 2602 4 -2603 2602 -1 -2702 2602 -1 -2603 2603 4 -2604 2603 -1 -2703 2603 -1 -2604 2604 4 -2605 2604 -1 -2704 2604 -1 -2605 2605 4 -2606 2605 -1 -2705 2605 -1 -2606 2606 4 -2607 2606 -1 -2706 2606 -1 -2607 2607 4 -2608 2607 -1 -2707 2607 -1 -2608 2608 4 -2609 2608 -1 -2708 2608 -1 -2609 2609 4 -2610 2609 -1 -2709 2609 -1 -2610 2610 4 -2611 2610 -1 -2710 2610 -1 -2611 2611 4 -2612 2611 -1 -2711 2611 -1 -2612 2612 4 -2613 2612 -1 -2712 2612 -1 -2613 2613 4 -2614 2613 -1 -2713 2613 -1 -2614 2614 4 -2615 2614 -1 -2714 2614 -1 -2615 2615 4 -2616 2615 -1 -2715 2615 -1 -2616 2616 4 -2617 2616 -1 -2716 2616 -1 -2617 2617 4 -2618 2617 -1 -2717 2617 -1 -2618 2618 4 -2619 2618 -1 -2718 2618 -1 -2619 2619 4 -2620 2619 -1 -2719 2619 -1 -2620 2620 4 -2621 2620 -1 -2720 2620 -1 -2621 2621 4 -2622 2621 -1 -2721 2621 -1 -2622 2622 4 -2623 2622 -1 -2722 2622 -1 -2623 2623 4 -2624 2623 -1 -2723 2623 -1 -2624 2624 4 -2625 2624 -1 -2724 2624 -1 -2625 2625 4 -2626 2625 -1 -2725 2625 -1 -2626 2626 4 -2627 2626 -1 -2726 2626 -1 -2627 2627 4 -2628 2627 -1 -2727 2627 -1 -2628 2628 4 -2629 2628 -1 -2728 2628 -1 -2629 2629 4 -2630 2629 -1 -2729 2629 -1 -2630 2630 4 -2631 2630 -1 -2730 2630 -1 -2631 2631 4 -2632 2631 -1 -2731 2631 -1 -2632 2632 4 -2633 2632 -1 -2732 2632 -1 -2633 2633 4 -2634 2633 -1 -2733 2633 -1 -2634 2634 4 -2635 2634 -1 -2734 2634 -1 -2635 2635 4 -2636 2635 -1 -2735 2635 -1 -2636 2636 4 -2637 2636 -1 -2736 2636 -1 -2637 2637 4 -2638 2637 -1 -2737 2637 -1 -2638 2638 4 -2639 2638 -1 -2738 2638 -1 -2639 2639 4 -2640 2639 -1 -2739 2639 -1 -2640 2640 4 -2641 2640 -1 -2740 2640 -1 -2641 2641 4 -2642 2641 -1 -2741 2641 -1 -2642 2642 4 -2643 2642 -1 -2742 2642 -1 -2643 2643 4 -2644 2643 -1 -2743 2643 -1 -2644 2644 4 -2645 2644 -1 -2744 2644 -1 -2645 2645 4 -2646 2645 -1 -2745 2645 -1 -2646 2646 4 -2647 2646 -1 -2746 2646 -1 -2647 2647 4 -2648 2647 -1 -2747 2647 -1 -2648 2648 4 -2649 2648 -1 -2748 2648 -1 -2649 2649 4 -2650 2649 -1 -2749 2649 -1 -2650 2650 4 -2651 2650 -1 -2750 2650 -1 -2651 2651 4 -2652 2651 -1 -2751 2651 -1 -2652 2652 4 -2653 2652 -1 -2752 2652 -1 -2653 2653 4 -2654 2653 -1 -2753 2653 -1 -2654 2654 4 -2655 2654 -1 -2754 2654 -1 -2655 2655 4 -2656 2655 -1 -2755 2655 -1 -2656 2656 4 -2657 2656 -1 -2756 2656 -1 -2657 2657 4 -2658 2657 -1 -2757 2657 -1 -2658 2658 4 -2659 2658 -1 -2758 2658 -1 -2659 2659 4 -2660 2659 -1 -2759 2659 -1 -2660 2660 4 -2661 2660 -1 -2760 2660 -1 -2661 2661 4 -2662 2661 -1 -2761 2661 -1 -2662 2662 4 -2663 2662 -1 -2762 2662 -1 -2663 2663 4 -2664 2663 -1 -2763 2663 -1 -2664 2664 4 -2665 2664 -1 -2764 2664 -1 -2665 2665 4 -2666 2665 -1 -2765 2665 -1 -2666 2666 4 -2667 2666 -1 -2766 2666 -1 -2667 2667 4 -2668 2667 -1 -2767 2667 -1 -2668 2668 4 -2669 2668 -1 -2768 2668 -1 -2669 2669 4 -2670 2669 -1 -2769 2669 -1 -2670 2670 4 -2671 2670 -1 -2770 2670 -1 -2671 2671 4 -2672 2671 -1 -2771 2671 -1 -2672 2672 4 -2673 2672 -1 -2772 2672 -1 -2673 2673 4 -2674 2673 -1 -2773 2673 -1 -2674 2674 4 -2675 2674 -1 -2774 2674 -1 -2675 2675 4 -2676 2675 -1 -2775 2675 -1 -2676 2676 4 -2677 2676 -1 -2776 2676 -1 -2677 2677 4 -2678 2677 -1 -2777 2677 -1 -2678 2678 4 -2679 2678 -1 -2778 2678 -1 -2679 2679 4 -2680 2679 -1 -2779 2679 -1 -2680 2680 4 -2681 2680 -1 -2780 2680 -1 -2681 2681 4 -2682 2681 -1 -2781 2681 -1 -2682 2682 4 -2683 2682 -1 -2782 2682 -1 -2683 2683 4 -2684 2683 -1 -2783 2683 -1 -2684 2684 4 -2685 2684 -1 -2784 2684 -1 -2685 2685 4 -2686 2685 -1 -2785 2685 -1 -2686 2686 4 -2687 2686 -1 -2786 2686 -1 -2687 2687 4 -2688 2687 -1 -2787 2687 -1 -2688 2688 4 -2689 2688 -1 -2788 2688 -1 -2689 2689 4 -2690 2689 -1 -2789 2689 -1 -2690 2690 4 -2691 2690 -1 -2790 2690 -1 -2691 2691 4 -2692 2691 -1 -2791 2691 -1 -2692 2692 4 -2693 2692 -1 -2792 2692 -1 -2693 2693 4 -2694 2693 -1 -2793 2693 -1 -2694 2694 4 -2695 2694 -1 -2794 2694 -1 -2695 2695 4 -2696 2695 -1 -2795 2695 -1 -2696 2696 4 -2697 2696 -1 -2796 2696 -1 -2697 2697 4 -2698 2697 -1 -2797 2697 -1 -2698 2698 4 -2699 2698 -1 -2798 2698 -1 -2699 2699 4 -2700 2699 -1 -2799 2699 -1 -2700 2700 4 -2800 2700 -1 -2701 2701 4 -2702 2701 -1 -2801 2701 -1 -2702 2702 4 -2703 2702 -1 -2802 2702 -1 -2703 2703 4 -2704 2703 -1 -2803 2703 -1 -2704 2704 4 -2705 2704 -1 -2804 2704 -1 -2705 2705 4 -2706 2705 -1 -2805 2705 -1 -2706 2706 4 -2707 2706 -1 -2806 2706 -1 -2707 2707 4 -2708 2707 -1 -2807 2707 -1 -2708 2708 4 -2709 2708 -1 -2808 2708 -1 -2709 2709 4 -2710 2709 -1 -2809 2709 -1 -2710 2710 4 -2711 2710 -1 -2810 2710 -1 -2711 2711 4 -2712 2711 -1 -2811 2711 -1 -2712 2712 4 -2713 2712 -1 -2812 2712 -1 -2713 2713 4 -2714 2713 -1 -2813 2713 -1 -2714 2714 4 -2715 2714 -1 -2814 2714 -1 -2715 2715 4 -2716 2715 -1 -2815 2715 -1 -2716 2716 4 -2717 2716 -1 -2816 2716 -1 -2717 2717 4 -2718 2717 -1 -2817 2717 -1 -2718 2718 4 -2719 2718 -1 -2818 2718 -1 -2719 2719 4 -2720 2719 -1 -2819 2719 -1 -2720 2720 4 -2721 2720 -1 -2820 2720 -1 -2721 2721 4 -2722 2721 -1 -2821 2721 -1 -2722 2722 4 -2723 2722 -1 -2822 2722 -1 -2723 2723 4 -2724 2723 -1 -2823 2723 -1 -2724 2724 4 -2725 2724 -1 -2824 2724 -1 -2725 2725 4 -2726 2725 -1 -2825 2725 -1 -2726 2726 4 -2727 2726 -1 -2826 2726 -1 -2727 2727 4 -2728 2727 -1 -2827 2727 -1 -2728 2728 4 -2729 2728 -1 -2828 2728 -1 -2729 2729 4 -2730 2729 -1 -2829 2729 -1 -2730 2730 4 -2731 2730 -1 -2830 2730 -1 -2731 2731 4 -2732 2731 -1 -2831 2731 -1 -2732 2732 4 -2733 2732 -1 -2832 2732 -1 -2733 2733 4 -2734 2733 -1 -2833 2733 -1 -2734 2734 4 -2735 2734 -1 -2834 2734 -1 -2735 2735 4 -2736 2735 -1 -2835 2735 -1 -2736 2736 4 -2737 2736 -1 -2836 2736 -1 -2737 2737 4 -2738 2737 -1 -2837 2737 -1 -2738 2738 4 -2739 2738 -1 -2838 2738 -1 -2739 2739 4 -2740 2739 -1 -2839 2739 -1 -2740 2740 4 -2741 2740 -1 -2840 2740 -1 -2741 2741 4 -2742 2741 -1 -2841 2741 -1 -2742 2742 4 -2743 2742 -1 -2842 2742 -1 -2743 2743 4 -2744 2743 -1 -2843 2743 -1 -2744 2744 4 -2745 2744 -1 -2844 2744 -1 -2745 2745 4 -2746 2745 -1 -2845 2745 -1 -2746 2746 4 -2747 2746 -1 -2846 2746 -1 -2747 2747 4 -2748 2747 -1 -2847 2747 -1 -2748 2748 4 -2749 2748 -1 -2848 2748 -1 -2749 2749 4 -2750 2749 -1 -2849 2749 -1 -2750 2750 4 -2751 2750 -1 -2850 2750 -1 -2751 2751 4 -2752 2751 -1 -2851 2751 -1 -2752 2752 4 -2753 2752 -1 -2852 2752 -1 -2753 2753 4 -2754 2753 -1 -2853 2753 -1 -2754 2754 4 -2755 2754 -1 -2854 2754 -1 -2755 2755 4 -2756 2755 -1 -2855 2755 -1 -2756 2756 4 -2757 2756 -1 -2856 2756 -1 -2757 2757 4 -2758 2757 -1 -2857 2757 -1 -2758 2758 4 -2759 2758 -1 -2858 2758 -1 -2759 2759 4 -2760 2759 -1 -2859 2759 -1 -2760 2760 4 -2761 2760 -1 -2860 2760 -1 -2761 2761 4 -2762 2761 -1 -2861 2761 -1 -2762 2762 4 -2763 2762 -1 -2862 2762 -1 -2763 2763 4 -2764 2763 -1 -2863 2763 -1 -2764 2764 4 -2765 2764 -1 -2864 2764 -1 -2765 2765 4 -2766 2765 -1 -2865 2765 -1 -2766 2766 4 -2767 2766 -1 -2866 2766 -1 -2767 2767 4 -2768 2767 -1 -2867 2767 -1 -2768 2768 4 -2769 2768 -1 -2868 2768 -1 -2769 2769 4 -2770 2769 -1 -2869 2769 -1 -2770 2770 4 -2771 2770 -1 -2870 2770 -1 -2771 2771 4 -2772 2771 -1 -2871 2771 -1 -2772 2772 4 -2773 2772 -1 -2872 2772 -1 -2773 2773 4 -2774 2773 -1 -2873 2773 -1 -2774 2774 4 -2775 2774 -1 -2874 2774 -1 -2775 2775 4 -2776 2775 -1 -2875 2775 -1 -2776 2776 4 -2777 2776 -1 -2876 2776 -1 -2777 2777 4 -2778 2777 -1 -2877 2777 -1 -2778 2778 4 -2779 2778 -1 -2878 2778 -1 -2779 2779 4 -2780 2779 -1 -2879 2779 -1 -2780 2780 4 -2781 2780 -1 -2880 2780 -1 -2781 2781 4 -2782 2781 -1 -2881 2781 -1 -2782 2782 4 -2783 2782 -1 -2882 2782 -1 -2783 2783 4 -2784 2783 -1 -2883 2783 -1 -2784 2784 4 -2785 2784 -1 -2884 2784 -1 -2785 2785 4 -2786 2785 -1 -2885 2785 -1 -2786 2786 4 -2787 2786 -1 -2886 2786 -1 -2787 2787 4 -2788 2787 -1 -2887 2787 -1 -2788 2788 4 -2789 2788 -1 -2888 2788 -1 -2789 2789 4 -2790 2789 -1 -2889 2789 -1 -2790 2790 4 -2791 2790 -1 -2890 2790 -1 -2791 2791 4 -2792 2791 -1 -2891 2791 -1 -2792 2792 4 -2793 2792 -1 -2892 2792 -1 -2793 2793 4 -2794 2793 -1 -2893 2793 -1 -2794 2794 4 -2795 2794 -1 -2894 2794 -1 -2795 2795 4 -2796 2795 -1 -2895 2795 -1 -2796 2796 4 -2797 2796 -1 -2896 2796 -1 -2797 2797 4 -2798 2797 -1 -2897 2797 -1 -2798 2798 4 -2799 2798 -1 -2898 2798 -1 -2799 2799 4 -2800 2799 -1 -2899 2799 -1 -2800 2800 4 -2900 2800 -1 -2801 2801 4 -2802 2801 -1 -2901 2801 -1 -2802 2802 4 -2803 2802 -1 -2902 2802 -1 -2803 2803 4 -2804 2803 -1 -2903 2803 -1 -2804 2804 4 -2805 2804 -1 -2904 2804 -1 -2805 2805 4 -2806 2805 -1 -2905 2805 -1 -2806 2806 4 -2807 2806 -1 -2906 2806 -1 -2807 2807 4 -2808 2807 -1 -2907 2807 -1 -2808 2808 4 -2809 2808 -1 -2908 2808 -1 -2809 2809 4 -2810 2809 -1 -2909 2809 -1 -2810 2810 4 -2811 2810 -1 -2910 2810 -1 -2811 2811 4 -2812 2811 -1 -2911 2811 -1 -2812 2812 4 -2813 2812 -1 -2912 2812 -1 -2813 2813 4 -2814 2813 -1 -2913 2813 -1 -2814 2814 4 -2815 2814 -1 -2914 2814 -1 -2815 2815 4 -2816 2815 -1 -2915 2815 -1 -2816 2816 4 -2817 2816 -1 -2916 2816 -1 -2817 2817 4 -2818 2817 -1 -2917 2817 -1 -2818 2818 4 -2819 2818 -1 -2918 2818 -1 -2819 2819 4 -2820 2819 -1 -2919 2819 -1 -2820 2820 4 -2821 2820 -1 -2920 2820 -1 -2821 2821 4 -2822 2821 -1 -2921 2821 -1 -2822 2822 4 -2823 2822 -1 -2922 2822 -1 -2823 2823 4 -2824 2823 -1 -2923 2823 -1 -2824 2824 4 -2825 2824 -1 -2924 2824 -1 -2825 2825 4 -2826 2825 -1 -2925 2825 -1 -2826 2826 4 -2827 2826 -1 -2926 2826 -1 -2827 2827 4 -2828 2827 -1 -2927 2827 -1 -2828 2828 4 -2829 2828 -1 -2928 2828 -1 -2829 2829 4 -2830 2829 -1 -2929 2829 -1 -2830 2830 4 -2831 2830 -1 -2930 2830 -1 -2831 2831 4 -2832 2831 -1 -2931 2831 -1 -2832 2832 4 -2833 2832 -1 -2932 2832 -1 -2833 2833 4 -2834 2833 -1 -2933 2833 -1 -2834 2834 4 -2835 2834 -1 -2934 2834 -1 -2835 2835 4 -2836 2835 -1 -2935 2835 -1 -2836 2836 4 -2837 2836 -1 -2936 2836 -1 -2837 2837 4 -2838 2837 -1 -2937 2837 -1 -2838 2838 4 -2839 2838 -1 -2938 2838 -1 -2839 2839 4 -2840 2839 -1 -2939 2839 -1 -2840 2840 4 -2841 2840 -1 -2940 2840 -1 -2841 2841 4 -2842 2841 -1 -2941 2841 -1 -2842 2842 4 -2843 2842 -1 -2942 2842 -1 -2843 2843 4 -2844 2843 -1 -2943 2843 -1 -2844 2844 4 -2845 2844 -1 -2944 2844 -1 -2845 2845 4 -2846 2845 -1 -2945 2845 -1 -2846 2846 4 -2847 2846 -1 -2946 2846 -1 -2847 2847 4 -2848 2847 -1 -2947 2847 -1 -2848 2848 4 -2849 2848 -1 -2948 2848 -1 -2849 2849 4 -2850 2849 -1 -2949 2849 -1 -2850 2850 4 -2851 2850 -1 -2950 2850 -1 -2851 2851 4 -2852 2851 -1 -2951 2851 -1 -2852 2852 4 -2853 2852 -1 -2952 2852 -1 -2853 2853 4 -2854 2853 -1 -2953 2853 -1 -2854 2854 4 -2855 2854 -1 -2954 2854 -1 -2855 2855 4 -2856 2855 -1 -2955 2855 -1 -2856 2856 4 -2857 2856 -1 -2956 2856 -1 -2857 2857 4 -2858 2857 -1 -2957 2857 -1 -2858 2858 4 -2859 2858 -1 -2958 2858 -1 -2859 2859 4 -2860 2859 -1 -2959 2859 -1 -2860 2860 4 -2861 2860 -1 -2960 2860 -1 -2861 2861 4 -2862 2861 -1 -2961 2861 -1 -2862 2862 4 -2863 2862 -1 -2962 2862 -1 -2863 2863 4 -2864 2863 -1 -2963 2863 -1 -2864 2864 4 -2865 2864 -1 -2964 2864 -1 -2865 2865 4 -2866 2865 -1 -2965 2865 -1 -2866 2866 4 -2867 2866 -1 -2966 2866 -1 -2867 2867 4 -2868 2867 -1 -2967 2867 -1 -2868 2868 4 -2869 2868 -1 -2968 2868 -1 -2869 2869 4 -2870 2869 -1 -2969 2869 -1 -2870 2870 4 -2871 2870 -1 -2970 2870 -1 -2871 2871 4 -2872 2871 -1 -2971 2871 -1 -2872 2872 4 -2873 2872 -1 -2972 2872 -1 -2873 2873 4 -2874 2873 -1 -2973 2873 -1 -2874 2874 4 -2875 2874 -1 -2974 2874 -1 -2875 2875 4 -2876 2875 -1 -2975 2875 -1 -2876 2876 4 -2877 2876 -1 -2976 2876 -1 -2877 2877 4 -2878 2877 -1 -2977 2877 -1 -2878 2878 4 -2879 2878 -1 -2978 2878 -1 -2879 2879 4 -2880 2879 -1 -2979 2879 -1 -2880 2880 4 -2881 2880 -1 -2980 2880 -1 -2881 2881 4 -2882 2881 -1 -2981 2881 -1 -2882 2882 4 -2883 2882 -1 -2982 2882 -1 -2883 2883 4 -2884 2883 -1 -2983 2883 -1 -2884 2884 4 -2885 2884 -1 -2984 2884 -1 -2885 2885 4 -2886 2885 -1 -2985 2885 -1 -2886 2886 4 -2887 2886 -1 -2986 2886 -1 -2887 2887 4 -2888 2887 -1 -2987 2887 -1 -2888 2888 4 -2889 2888 -1 -2988 2888 -1 -2889 2889 4 -2890 2889 -1 -2989 2889 -1 -2890 2890 4 -2891 2890 -1 -2990 2890 -1 -2891 2891 4 -2892 2891 -1 -2991 2891 -1 -2892 2892 4 -2893 2892 -1 -2992 2892 -1 -2893 2893 4 -2894 2893 -1 -2993 2893 -1 -2894 2894 4 -2895 2894 -1 -2994 2894 -1 -2895 2895 4 -2896 2895 -1 -2995 2895 -1 -2896 2896 4 -2897 2896 -1 -2996 2896 -1 -2897 2897 4 -2898 2897 -1 -2997 2897 -1 -2898 2898 4 -2899 2898 -1 -2998 2898 -1 -2899 2899 4 -2900 2899 -1 -2999 2899 -1 -2900 2900 4 -3000 2900 -1 -2901 2901 4 -2902 2901 -1 -3001 2901 -1 -2902 2902 4 -2903 2902 -1 -3002 2902 -1 -2903 2903 4 -2904 2903 -1 -3003 2903 -1 -2904 2904 4 -2905 2904 -1 -3004 2904 -1 -2905 2905 4 -2906 2905 -1 -3005 2905 -1 -2906 2906 4 -2907 2906 -1 -3006 2906 -1 -2907 2907 4 -2908 2907 -1 -3007 2907 -1 -2908 2908 4 -2909 2908 -1 -3008 2908 -1 -2909 2909 4 -2910 2909 -1 -3009 2909 -1 -2910 2910 4 -2911 2910 -1 -3010 2910 -1 -2911 2911 4 -2912 2911 -1 -3011 2911 -1 -2912 2912 4 -2913 2912 -1 -3012 2912 -1 -2913 2913 4 -2914 2913 -1 -3013 2913 -1 -2914 2914 4 -2915 2914 -1 -3014 2914 -1 -2915 2915 4 -2916 2915 -1 -3015 2915 -1 -2916 2916 4 -2917 2916 -1 -3016 2916 -1 -2917 2917 4 -2918 2917 -1 -3017 2917 -1 -2918 2918 4 -2919 2918 -1 -3018 2918 -1 -2919 2919 4 -2920 2919 -1 -3019 2919 -1 -2920 2920 4 -2921 2920 -1 -3020 2920 -1 -2921 2921 4 -2922 2921 -1 -3021 2921 -1 -2922 2922 4 -2923 2922 -1 -3022 2922 -1 -2923 2923 4 -2924 2923 -1 -3023 2923 -1 -2924 2924 4 -2925 2924 -1 -3024 2924 -1 -2925 2925 4 -2926 2925 -1 -3025 2925 -1 -2926 2926 4 -2927 2926 -1 -3026 2926 -1 -2927 2927 4 -2928 2927 -1 -3027 2927 -1 -2928 2928 4 -2929 2928 -1 -3028 2928 -1 -2929 2929 4 -2930 2929 -1 -3029 2929 -1 -2930 2930 4 -2931 2930 -1 -3030 2930 -1 -2931 2931 4 -2932 2931 -1 -3031 2931 -1 -2932 2932 4 -2933 2932 -1 -3032 2932 -1 -2933 2933 4 -2934 2933 -1 -3033 2933 -1 -2934 2934 4 -2935 2934 -1 -3034 2934 -1 -2935 2935 4 -2936 2935 -1 -3035 2935 -1 -2936 2936 4 -2937 2936 -1 -3036 2936 -1 -2937 2937 4 -2938 2937 -1 -3037 2937 -1 -2938 2938 4 -2939 2938 -1 -3038 2938 -1 -2939 2939 4 -2940 2939 -1 -3039 2939 -1 -2940 2940 4 -2941 2940 -1 -3040 2940 -1 -2941 2941 4 -2942 2941 -1 -3041 2941 -1 -2942 2942 4 -2943 2942 -1 -3042 2942 -1 -2943 2943 4 -2944 2943 -1 -3043 2943 -1 -2944 2944 4 -2945 2944 -1 -3044 2944 -1 -2945 2945 4 -2946 2945 -1 -3045 2945 -1 -2946 2946 4 -2947 2946 -1 -3046 2946 -1 -2947 2947 4 -2948 2947 -1 -3047 2947 -1 -2948 2948 4 -2949 2948 -1 -3048 2948 -1 -2949 2949 4 -2950 2949 -1 -3049 2949 -1 -2950 2950 4 -2951 2950 -1 -3050 2950 -1 -2951 2951 4 -2952 2951 -1 -3051 2951 -1 -2952 2952 4 -2953 2952 -1 -3052 2952 -1 -2953 2953 4 -2954 2953 -1 -3053 2953 -1 -2954 2954 4 -2955 2954 -1 -3054 2954 -1 -2955 2955 4 -2956 2955 -1 -3055 2955 -1 -2956 2956 4 -2957 2956 -1 -3056 2956 -1 -2957 2957 4 -2958 2957 -1 -3057 2957 -1 -2958 2958 4 -2959 2958 -1 -3058 2958 -1 -2959 2959 4 -2960 2959 -1 -3059 2959 -1 -2960 2960 4 -2961 2960 -1 -3060 2960 -1 -2961 2961 4 -2962 2961 -1 -3061 2961 -1 -2962 2962 4 -2963 2962 -1 -3062 2962 -1 -2963 2963 4 -2964 2963 -1 -3063 2963 -1 -2964 2964 4 -2965 2964 -1 -3064 2964 -1 -2965 2965 4 -2966 2965 -1 -3065 2965 -1 -2966 2966 4 -2967 2966 -1 -3066 2966 -1 -2967 2967 4 -2968 2967 -1 -3067 2967 -1 -2968 2968 4 -2969 2968 -1 -3068 2968 -1 -2969 2969 4 -2970 2969 -1 -3069 2969 -1 -2970 2970 4 -2971 2970 -1 -3070 2970 -1 -2971 2971 4 -2972 2971 -1 -3071 2971 -1 -2972 2972 4 -2973 2972 -1 -3072 2972 -1 -2973 2973 4 -2974 2973 -1 -3073 2973 -1 -2974 2974 4 -2975 2974 -1 -3074 2974 -1 -2975 2975 4 -2976 2975 -1 -3075 2975 -1 -2976 2976 4 -2977 2976 -1 -3076 2976 -1 -2977 2977 4 -2978 2977 -1 -3077 2977 -1 -2978 2978 4 -2979 2978 -1 -3078 2978 -1 -2979 2979 4 -2980 2979 -1 -3079 2979 -1 -2980 2980 4 -2981 2980 -1 -3080 2980 -1 -2981 2981 4 -2982 2981 -1 -3081 2981 -1 -2982 2982 4 -2983 2982 -1 -3082 2982 -1 -2983 2983 4 -2984 2983 -1 -3083 2983 -1 -2984 2984 4 -2985 2984 -1 -3084 2984 -1 -2985 2985 4 -2986 2985 -1 -3085 2985 -1 -2986 2986 4 -2987 2986 -1 -3086 2986 -1 -2987 2987 4 -2988 2987 -1 -3087 2987 -1 -2988 2988 4 -2989 2988 -1 -3088 2988 -1 -2989 2989 4 -2990 2989 -1 -3089 2989 -1 -2990 2990 4 -2991 2990 -1 -3090 2990 -1 -2991 2991 4 -2992 2991 -1 -3091 2991 -1 -2992 2992 4 -2993 2992 -1 -3092 2992 -1 -2993 2993 4 -2994 2993 -1 -3093 2993 -1 -2994 2994 4 -2995 2994 -1 -3094 2994 -1 -2995 2995 4 -2996 2995 -1 -3095 2995 -1 -2996 2996 4 -2997 2996 -1 -3096 2996 -1 -2997 2997 4 -2998 2997 -1 -3097 2997 -1 -2998 2998 4 -2999 2998 -1 -3098 2998 -1 -2999 2999 4 -3000 2999 -1 -3099 2999 -1 -3000 3000 4 -3100 3000 -1 -3001 3001 4 -3002 3001 -1 -3101 3001 -1 -3002 3002 4 -3003 3002 -1 -3102 3002 -1 -3003 3003 4 -3004 3003 -1 -3103 3003 -1 -3004 3004 4 -3005 3004 -1 -3104 3004 -1 -3005 3005 4 -3006 3005 -1 -3105 3005 -1 -3006 3006 4 -3007 3006 -1 -3106 3006 -1 -3007 3007 4 -3008 3007 -1 -3107 3007 -1 -3008 3008 4 -3009 3008 -1 -3108 3008 -1 -3009 3009 4 -3010 3009 -1 -3109 3009 -1 -3010 3010 4 -3011 3010 -1 -3110 3010 -1 -3011 3011 4 -3012 3011 -1 -3111 3011 -1 -3012 3012 4 -3013 3012 -1 -3112 3012 -1 -3013 3013 4 -3014 3013 -1 -3113 3013 -1 -3014 3014 4 -3015 3014 -1 -3114 3014 -1 -3015 3015 4 -3016 3015 -1 -3115 3015 -1 -3016 3016 4 -3017 3016 -1 -3116 3016 -1 -3017 3017 4 -3018 3017 -1 -3117 3017 -1 -3018 3018 4 -3019 3018 -1 -3118 3018 -1 -3019 3019 4 -3020 3019 -1 -3119 3019 -1 -3020 3020 4 -3021 3020 -1 -3120 3020 -1 -3021 3021 4 -3022 3021 -1 -3121 3021 -1 -3022 3022 4 -3023 3022 -1 -3122 3022 -1 -3023 3023 4 -3024 3023 -1 -3123 3023 -1 -3024 3024 4 -3025 3024 -1 -3124 3024 -1 -3025 3025 4 -3026 3025 -1 -3125 3025 -1 -3026 3026 4 -3027 3026 -1 -3126 3026 -1 -3027 3027 4 -3028 3027 -1 -3127 3027 -1 -3028 3028 4 -3029 3028 -1 -3128 3028 -1 -3029 3029 4 -3030 3029 -1 -3129 3029 -1 -3030 3030 4 -3031 3030 -1 -3130 3030 -1 -3031 3031 4 -3032 3031 -1 -3131 3031 -1 -3032 3032 4 -3033 3032 -1 -3132 3032 -1 -3033 3033 4 -3034 3033 -1 -3133 3033 -1 -3034 3034 4 -3035 3034 -1 -3134 3034 -1 -3035 3035 4 -3036 3035 -1 -3135 3035 -1 -3036 3036 4 -3037 3036 -1 -3136 3036 -1 -3037 3037 4 -3038 3037 -1 -3137 3037 -1 -3038 3038 4 -3039 3038 -1 -3138 3038 -1 -3039 3039 4 -3040 3039 -1 -3139 3039 -1 -3040 3040 4 -3041 3040 -1 -3140 3040 -1 -3041 3041 4 -3042 3041 -1 -3141 3041 -1 -3042 3042 4 -3043 3042 -1 -3142 3042 -1 -3043 3043 4 -3044 3043 -1 -3143 3043 -1 -3044 3044 4 -3045 3044 -1 -3144 3044 -1 -3045 3045 4 -3046 3045 -1 -3145 3045 -1 -3046 3046 4 -3047 3046 -1 -3146 3046 -1 -3047 3047 4 -3048 3047 -1 -3147 3047 -1 -3048 3048 4 -3049 3048 -1 -3148 3048 -1 -3049 3049 4 -3050 3049 -1 -3149 3049 -1 -3050 3050 4 -3051 3050 -1 -3150 3050 -1 -3051 3051 4 -3052 3051 -1 -3151 3051 -1 -3052 3052 4 -3053 3052 -1 -3152 3052 -1 -3053 3053 4 -3054 3053 -1 -3153 3053 -1 -3054 3054 4 -3055 3054 -1 -3154 3054 -1 -3055 3055 4 -3056 3055 -1 -3155 3055 -1 -3056 3056 4 -3057 3056 -1 -3156 3056 -1 -3057 3057 4 -3058 3057 -1 -3157 3057 -1 -3058 3058 4 -3059 3058 -1 -3158 3058 -1 -3059 3059 4 -3060 3059 -1 -3159 3059 -1 -3060 3060 4 -3061 3060 -1 -3160 3060 -1 -3061 3061 4 -3062 3061 -1 -3161 3061 -1 -3062 3062 4 -3063 3062 -1 -3162 3062 -1 -3063 3063 4 -3064 3063 -1 -3163 3063 -1 -3064 3064 4 -3065 3064 -1 -3164 3064 -1 -3065 3065 4 -3066 3065 -1 -3165 3065 -1 -3066 3066 4 -3067 3066 -1 -3166 3066 -1 -3067 3067 4 -3068 3067 -1 -3167 3067 -1 -3068 3068 4 -3069 3068 -1 -3168 3068 -1 -3069 3069 4 -3070 3069 -1 -3169 3069 -1 -3070 3070 4 -3071 3070 -1 -3170 3070 -1 -3071 3071 4 -3072 3071 -1 -3171 3071 -1 -3072 3072 4 -3073 3072 -1 -3172 3072 -1 -3073 3073 4 -3074 3073 -1 -3173 3073 -1 -3074 3074 4 -3075 3074 -1 -3174 3074 -1 -3075 3075 4 -3076 3075 -1 -3175 3075 -1 -3076 3076 4 -3077 3076 -1 -3176 3076 -1 -3077 3077 4 -3078 3077 -1 -3177 3077 -1 -3078 3078 4 -3079 3078 -1 -3178 3078 -1 -3079 3079 4 -3080 3079 -1 -3179 3079 -1 -3080 3080 4 -3081 3080 -1 -3180 3080 -1 -3081 3081 4 -3082 3081 -1 -3181 3081 -1 -3082 3082 4 -3083 3082 -1 -3182 3082 -1 -3083 3083 4 -3084 3083 -1 -3183 3083 -1 -3084 3084 4 -3085 3084 -1 -3184 3084 -1 -3085 3085 4 -3086 3085 -1 -3185 3085 -1 -3086 3086 4 -3087 3086 -1 -3186 3086 -1 -3087 3087 4 -3088 3087 -1 -3187 3087 -1 -3088 3088 4 -3089 3088 -1 -3188 3088 -1 -3089 3089 4 -3090 3089 -1 -3189 3089 -1 -3090 3090 4 -3091 3090 -1 -3190 3090 -1 -3091 3091 4 -3092 3091 -1 -3191 3091 -1 -3092 3092 4 -3093 3092 -1 -3192 3092 -1 -3093 3093 4 -3094 3093 -1 -3193 3093 -1 -3094 3094 4 -3095 3094 -1 -3194 3094 -1 -3095 3095 4 -3096 3095 -1 -3195 3095 -1 -3096 3096 4 -3097 3096 -1 -3196 3096 -1 -3097 3097 4 -3098 3097 -1 -3197 3097 -1 -3098 3098 4 -3099 3098 -1 -3198 3098 -1 -3099 3099 4 -3100 3099 -1 -3199 3099 -1 -3100 3100 4 -3200 3100 -1 -3101 3101 4 -3102 3101 -1 -3201 3101 -1 -3102 3102 4 -3103 3102 -1 -3202 3102 -1 -3103 3103 4 -3104 3103 -1 -3203 3103 -1 -3104 3104 4 -3105 3104 -1 -3204 3104 -1 -3105 3105 4 -3106 3105 -1 -3205 3105 -1 -3106 3106 4 -3107 3106 -1 -3206 3106 -1 -3107 3107 4 -3108 3107 -1 -3207 3107 -1 -3108 3108 4 -3109 3108 -1 -3208 3108 -1 -3109 3109 4 -3110 3109 -1 -3209 3109 -1 -3110 3110 4 -3111 3110 -1 -3210 3110 -1 -3111 3111 4 -3112 3111 -1 -3211 3111 -1 -3112 3112 4 -3113 3112 -1 -3212 3112 -1 -3113 3113 4 -3114 3113 -1 -3213 3113 -1 -3114 3114 4 -3115 3114 -1 -3214 3114 -1 -3115 3115 4 -3116 3115 -1 -3215 3115 -1 -3116 3116 4 -3117 3116 -1 -3216 3116 -1 -3117 3117 4 -3118 3117 -1 -3217 3117 -1 -3118 3118 4 -3119 3118 -1 -3218 3118 -1 -3119 3119 4 -3120 3119 -1 -3219 3119 -1 -3120 3120 4 -3121 3120 -1 -3220 3120 -1 -3121 3121 4 -3122 3121 -1 -3221 3121 -1 -3122 3122 4 -3123 3122 -1 -3222 3122 -1 -3123 3123 4 -3124 3123 -1 -3223 3123 -1 -3124 3124 4 -3125 3124 -1 -3224 3124 -1 -3125 3125 4 -3126 3125 -1 -3225 3125 -1 -3126 3126 4 -3127 3126 -1 -3226 3126 -1 -3127 3127 4 -3128 3127 -1 -3227 3127 -1 -3128 3128 4 -3129 3128 -1 -3228 3128 -1 -3129 3129 4 -3130 3129 -1 -3229 3129 -1 -3130 3130 4 -3131 3130 -1 -3230 3130 -1 -3131 3131 4 -3132 3131 -1 -3231 3131 -1 -3132 3132 4 -3133 3132 -1 -3232 3132 -1 -3133 3133 4 -3134 3133 -1 -3233 3133 -1 -3134 3134 4 -3135 3134 -1 -3234 3134 -1 -3135 3135 4 -3136 3135 -1 -3235 3135 -1 -3136 3136 4 -3137 3136 -1 -3236 3136 -1 -3137 3137 4 -3138 3137 -1 -3237 3137 -1 -3138 3138 4 -3139 3138 -1 -3238 3138 -1 -3139 3139 4 -3140 3139 -1 -3239 3139 -1 -3140 3140 4 -3141 3140 -1 -3240 3140 -1 -3141 3141 4 -3142 3141 -1 -3241 3141 -1 -3142 3142 4 -3143 3142 -1 -3242 3142 -1 -3143 3143 4 -3144 3143 -1 -3243 3143 -1 -3144 3144 4 -3145 3144 -1 -3244 3144 -1 -3145 3145 4 -3146 3145 -1 -3245 3145 -1 -3146 3146 4 -3147 3146 -1 -3246 3146 -1 -3147 3147 4 -3148 3147 -1 -3247 3147 -1 -3148 3148 4 -3149 3148 -1 -3248 3148 -1 -3149 3149 4 -3150 3149 -1 -3249 3149 -1 -3150 3150 4 -3151 3150 -1 -3250 3150 -1 -3151 3151 4 -3152 3151 -1 -3251 3151 -1 -3152 3152 4 -3153 3152 -1 -3252 3152 -1 -3153 3153 4 -3154 3153 -1 -3253 3153 -1 -3154 3154 4 -3155 3154 -1 -3254 3154 -1 -3155 3155 4 -3156 3155 -1 -3255 3155 -1 -3156 3156 4 -3157 3156 -1 -3256 3156 -1 -3157 3157 4 -3158 3157 -1 -3257 3157 -1 -3158 3158 4 -3159 3158 -1 -3258 3158 -1 -3159 3159 4 -3160 3159 -1 -3259 3159 -1 -3160 3160 4 -3161 3160 -1 -3260 3160 -1 -3161 3161 4 -3162 3161 -1 -3261 3161 -1 -3162 3162 4 -3163 3162 -1 -3262 3162 -1 -3163 3163 4 -3164 3163 -1 -3263 3163 -1 -3164 3164 4 -3165 3164 -1 -3264 3164 -1 -3165 3165 4 -3166 3165 -1 -3265 3165 -1 -3166 3166 4 -3167 3166 -1 -3266 3166 -1 -3167 3167 4 -3168 3167 -1 -3267 3167 -1 -3168 3168 4 -3169 3168 -1 -3268 3168 -1 -3169 3169 4 -3170 3169 -1 -3269 3169 -1 -3170 3170 4 -3171 3170 -1 -3270 3170 -1 -3171 3171 4 -3172 3171 -1 -3271 3171 -1 -3172 3172 4 -3173 3172 -1 -3272 3172 -1 -3173 3173 4 -3174 3173 -1 -3273 3173 -1 -3174 3174 4 -3175 3174 -1 -3274 3174 -1 -3175 3175 4 -3176 3175 -1 -3275 3175 -1 -3176 3176 4 -3177 3176 -1 -3276 3176 -1 -3177 3177 4 -3178 3177 -1 -3277 3177 -1 -3178 3178 4 -3179 3178 -1 -3278 3178 -1 -3179 3179 4 -3180 3179 -1 -3279 3179 -1 -3180 3180 4 -3181 3180 -1 -3280 3180 -1 -3181 3181 4 -3182 3181 -1 -3281 3181 -1 -3182 3182 4 -3183 3182 -1 -3282 3182 -1 -3183 3183 4 -3184 3183 -1 -3283 3183 -1 -3184 3184 4 -3185 3184 -1 -3284 3184 -1 -3185 3185 4 -3186 3185 -1 -3285 3185 -1 -3186 3186 4 -3187 3186 -1 -3286 3186 -1 -3187 3187 4 -3188 3187 -1 -3287 3187 -1 -3188 3188 4 -3189 3188 -1 -3288 3188 -1 -3189 3189 4 -3190 3189 -1 -3289 3189 -1 -3190 3190 4 -3191 3190 -1 -3290 3190 -1 -3191 3191 4 -3192 3191 -1 -3291 3191 -1 -3192 3192 4 -3193 3192 -1 -3292 3192 -1 -3193 3193 4 -3194 3193 -1 -3293 3193 -1 -3194 3194 4 -3195 3194 -1 -3294 3194 -1 -3195 3195 4 -3196 3195 -1 -3295 3195 -1 -3196 3196 4 -3197 3196 -1 -3296 3196 -1 -3197 3197 4 -3198 3197 -1 -3297 3197 -1 -3198 3198 4 -3199 3198 -1 -3298 3198 -1 -3199 3199 4 -3200 3199 -1 -3299 3199 -1 -3200 3200 4 -3300 3200 -1 -3201 3201 4 -3202 3201 -1 -3301 3201 -1 -3202 3202 4 -3203 3202 -1 -3302 3202 -1 -3203 3203 4 -3204 3203 -1 -3303 3203 -1 -3204 3204 4 -3205 3204 -1 -3304 3204 -1 -3205 3205 4 -3206 3205 -1 -3305 3205 -1 -3206 3206 4 -3207 3206 -1 -3306 3206 -1 -3207 3207 4 -3208 3207 -1 -3307 3207 -1 -3208 3208 4 -3209 3208 -1 -3308 3208 -1 -3209 3209 4 -3210 3209 -1 -3309 3209 -1 -3210 3210 4 -3211 3210 -1 -3310 3210 -1 -3211 3211 4 -3212 3211 -1 -3311 3211 -1 -3212 3212 4 -3213 3212 -1 -3312 3212 -1 -3213 3213 4 -3214 3213 -1 -3313 3213 -1 -3214 3214 4 -3215 3214 -1 -3314 3214 -1 -3215 3215 4 -3216 3215 -1 -3315 3215 -1 -3216 3216 4 -3217 3216 -1 -3316 3216 -1 -3217 3217 4 -3218 3217 -1 -3317 3217 -1 -3218 3218 4 -3219 3218 -1 -3318 3218 -1 -3219 3219 4 -3220 3219 -1 -3319 3219 -1 -3220 3220 4 -3221 3220 -1 -3320 3220 -1 -3221 3221 4 -3222 3221 -1 -3321 3221 -1 -3222 3222 4 -3223 3222 -1 -3322 3222 -1 -3223 3223 4 -3224 3223 -1 -3323 3223 -1 -3224 3224 4 -3225 3224 -1 -3324 3224 -1 -3225 3225 4 -3226 3225 -1 -3325 3225 -1 -3226 3226 4 -3227 3226 -1 -3326 3226 -1 -3227 3227 4 -3228 3227 -1 -3327 3227 -1 -3228 3228 4 -3229 3228 -1 -3328 3228 -1 -3229 3229 4 -3230 3229 -1 -3329 3229 -1 -3230 3230 4 -3231 3230 -1 -3330 3230 -1 -3231 3231 4 -3232 3231 -1 -3331 3231 -1 -3232 3232 4 -3233 3232 -1 -3332 3232 -1 -3233 3233 4 -3234 3233 -1 -3333 3233 -1 -3234 3234 4 -3235 3234 -1 -3334 3234 -1 -3235 3235 4 -3236 3235 -1 -3335 3235 -1 -3236 3236 4 -3237 3236 -1 -3336 3236 -1 -3237 3237 4 -3238 3237 -1 -3337 3237 -1 -3238 3238 4 -3239 3238 -1 -3338 3238 -1 -3239 3239 4 -3240 3239 -1 -3339 3239 -1 -3240 3240 4 -3241 3240 -1 -3340 3240 -1 -3241 3241 4 -3242 3241 -1 -3341 3241 -1 -3242 3242 4 -3243 3242 -1 -3342 3242 -1 -3243 3243 4 -3244 3243 -1 -3343 3243 -1 -3244 3244 4 -3245 3244 -1 -3344 3244 -1 -3245 3245 4 -3246 3245 -1 -3345 3245 -1 -3246 3246 4 -3247 3246 -1 -3346 3246 -1 -3247 3247 4 -3248 3247 -1 -3347 3247 -1 -3248 3248 4 -3249 3248 -1 -3348 3248 -1 -3249 3249 4 -3250 3249 -1 -3349 3249 -1 -3250 3250 4 -3251 3250 -1 -3350 3250 -1 -3251 3251 4 -3252 3251 -1 -3351 3251 -1 -3252 3252 4 -3253 3252 -1 -3352 3252 -1 -3253 3253 4 -3254 3253 -1 -3353 3253 -1 -3254 3254 4 -3255 3254 -1 -3354 3254 -1 -3255 3255 4 -3256 3255 -1 -3355 3255 -1 -3256 3256 4 -3257 3256 -1 -3356 3256 -1 -3257 3257 4 -3258 3257 -1 -3357 3257 -1 -3258 3258 4 -3259 3258 -1 -3358 3258 -1 -3259 3259 4 -3260 3259 -1 -3359 3259 -1 -3260 3260 4 -3261 3260 -1 -3360 3260 -1 -3261 3261 4 -3262 3261 -1 -3361 3261 -1 -3262 3262 4 -3263 3262 -1 -3362 3262 -1 -3263 3263 4 -3264 3263 -1 -3363 3263 -1 -3264 3264 4 -3265 3264 -1 -3364 3264 -1 -3265 3265 4 -3266 3265 -1 -3365 3265 -1 -3266 3266 4 -3267 3266 -1 -3366 3266 -1 -3267 3267 4 -3268 3267 -1 -3367 3267 -1 -3268 3268 4 -3269 3268 -1 -3368 3268 -1 -3269 3269 4 -3270 3269 -1 -3369 3269 -1 -3270 3270 4 -3271 3270 -1 -3370 3270 -1 -3271 3271 4 -3272 3271 -1 -3371 3271 -1 -3272 3272 4 -3273 3272 -1 -3372 3272 -1 -3273 3273 4 -3274 3273 -1 -3373 3273 -1 -3274 3274 4 -3275 3274 -1 -3374 3274 -1 -3275 3275 4 -3276 3275 -1 -3375 3275 -1 -3276 3276 4 -3277 3276 -1 -3376 3276 -1 -3277 3277 4 -3278 3277 -1 -3377 3277 -1 -3278 3278 4 -3279 3278 -1 -3378 3278 -1 -3279 3279 4 -3280 3279 -1 -3379 3279 -1 -3280 3280 4 -3281 3280 -1 -3380 3280 -1 -3281 3281 4 -3282 3281 -1 -3381 3281 -1 -3282 3282 4 -3283 3282 -1 -3382 3282 -1 -3283 3283 4 -3284 3283 -1 -3383 3283 -1 -3284 3284 4 -3285 3284 -1 -3384 3284 -1 -3285 3285 4 -3286 3285 -1 -3385 3285 -1 -3286 3286 4 -3287 3286 -1 -3386 3286 -1 -3287 3287 4 -3288 3287 -1 -3387 3287 -1 -3288 3288 4 -3289 3288 -1 -3388 3288 -1 -3289 3289 4 -3290 3289 -1 -3389 3289 -1 -3290 3290 4 -3291 3290 -1 -3390 3290 -1 -3291 3291 4 -3292 3291 -1 -3391 3291 -1 -3292 3292 4 -3293 3292 -1 -3392 3292 -1 -3293 3293 4 -3294 3293 -1 -3393 3293 -1 -3294 3294 4 -3295 3294 -1 -3394 3294 -1 -3295 3295 4 -3296 3295 -1 -3395 3295 -1 -3296 3296 4 -3297 3296 -1 -3396 3296 -1 -3297 3297 4 -3298 3297 -1 -3397 3297 -1 -3298 3298 4 -3299 3298 -1 -3398 3298 -1 -3299 3299 4 -3300 3299 -1 -3399 3299 -1 -3300 3300 4 -3400 3300 -1 -3301 3301 4 -3302 3301 -1 -3401 3301 -1 -3302 3302 4 -3303 3302 -1 -3402 3302 -1 -3303 3303 4 -3304 3303 -1 -3403 3303 -1 -3304 3304 4 -3305 3304 -1 -3404 3304 -1 -3305 3305 4 -3306 3305 -1 -3405 3305 -1 -3306 3306 4 -3307 3306 -1 -3406 3306 -1 -3307 3307 4 -3308 3307 -1 -3407 3307 -1 -3308 3308 4 -3309 3308 -1 -3408 3308 -1 -3309 3309 4 -3310 3309 -1 -3409 3309 -1 -3310 3310 4 -3311 3310 -1 -3410 3310 -1 -3311 3311 4 -3312 3311 -1 -3411 3311 -1 -3312 3312 4 -3313 3312 -1 -3412 3312 -1 -3313 3313 4 -3314 3313 -1 -3413 3313 -1 -3314 3314 4 -3315 3314 -1 -3414 3314 -1 -3315 3315 4 -3316 3315 -1 -3415 3315 -1 -3316 3316 4 -3317 3316 -1 -3416 3316 -1 -3317 3317 4 -3318 3317 -1 -3417 3317 -1 -3318 3318 4 -3319 3318 -1 -3418 3318 -1 -3319 3319 4 -3320 3319 -1 -3419 3319 -1 -3320 3320 4 -3321 3320 -1 -3420 3320 -1 -3321 3321 4 -3322 3321 -1 -3421 3321 -1 -3322 3322 4 -3323 3322 -1 -3422 3322 -1 -3323 3323 4 -3324 3323 -1 -3423 3323 -1 -3324 3324 4 -3325 3324 -1 -3424 3324 -1 -3325 3325 4 -3326 3325 -1 -3425 3325 -1 -3326 3326 4 -3327 3326 -1 -3426 3326 -1 -3327 3327 4 -3328 3327 -1 -3427 3327 -1 -3328 3328 4 -3329 3328 -1 -3428 3328 -1 -3329 3329 4 -3330 3329 -1 -3429 3329 -1 -3330 3330 4 -3331 3330 -1 -3430 3330 -1 -3331 3331 4 -3332 3331 -1 -3431 3331 -1 -3332 3332 4 -3333 3332 -1 -3432 3332 -1 -3333 3333 4 -3334 3333 -1 -3433 3333 -1 -3334 3334 4 -3335 3334 -1 -3434 3334 -1 -3335 3335 4 -3336 3335 -1 -3435 3335 -1 -3336 3336 4 -3337 3336 -1 -3436 3336 -1 -3337 3337 4 -3338 3337 -1 -3437 3337 -1 -3338 3338 4 -3339 3338 -1 -3438 3338 -1 -3339 3339 4 -3340 3339 -1 -3439 3339 -1 -3340 3340 4 -3341 3340 -1 -3440 3340 -1 -3341 3341 4 -3342 3341 -1 -3441 3341 -1 -3342 3342 4 -3343 3342 -1 -3442 3342 -1 -3343 3343 4 -3344 3343 -1 -3443 3343 -1 -3344 3344 4 -3345 3344 -1 -3444 3344 -1 -3345 3345 4 -3346 3345 -1 -3445 3345 -1 -3346 3346 4 -3347 3346 -1 -3446 3346 -1 -3347 3347 4 -3348 3347 -1 -3447 3347 -1 -3348 3348 4 -3349 3348 -1 -3448 3348 -1 -3349 3349 4 -3350 3349 -1 -3449 3349 -1 -3350 3350 4 -3351 3350 -1 -3450 3350 -1 -3351 3351 4 -3352 3351 -1 -3451 3351 -1 -3352 3352 4 -3353 3352 -1 -3452 3352 -1 -3353 3353 4 -3354 3353 -1 -3453 3353 -1 -3354 3354 4 -3355 3354 -1 -3454 3354 -1 -3355 3355 4 -3356 3355 -1 -3455 3355 -1 -3356 3356 4 -3357 3356 -1 -3456 3356 -1 -3357 3357 4 -3358 3357 -1 -3457 3357 -1 -3358 3358 4 -3359 3358 -1 -3458 3358 -1 -3359 3359 4 -3360 3359 -1 -3459 3359 -1 -3360 3360 4 -3361 3360 -1 -3460 3360 -1 -3361 3361 4 -3362 3361 -1 -3461 3361 -1 -3362 3362 4 -3363 3362 -1 -3462 3362 -1 -3363 3363 4 -3364 3363 -1 -3463 3363 -1 -3364 3364 4 -3365 3364 -1 -3464 3364 -1 -3365 3365 4 -3366 3365 -1 -3465 3365 -1 -3366 3366 4 -3367 3366 -1 -3466 3366 -1 -3367 3367 4 -3368 3367 -1 -3467 3367 -1 -3368 3368 4 -3369 3368 -1 -3468 3368 -1 -3369 3369 4 -3370 3369 -1 -3469 3369 -1 -3370 3370 4 -3371 3370 -1 -3470 3370 -1 -3371 3371 4 -3372 3371 -1 -3471 3371 -1 -3372 3372 4 -3373 3372 -1 -3472 3372 -1 -3373 3373 4 -3374 3373 -1 -3473 3373 -1 -3374 3374 4 -3375 3374 -1 -3474 3374 -1 -3375 3375 4 -3376 3375 -1 -3475 3375 -1 -3376 3376 4 -3377 3376 -1 -3476 3376 -1 -3377 3377 4 -3378 3377 -1 -3477 3377 -1 -3378 3378 4 -3379 3378 -1 -3478 3378 -1 -3379 3379 4 -3380 3379 -1 -3479 3379 -1 -3380 3380 4 -3381 3380 -1 -3480 3380 -1 -3381 3381 4 -3382 3381 -1 -3481 3381 -1 -3382 3382 4 -3383 3382 -1 -3482 3382 -1 -3383 3383 4 -3384 3383 -1 -3483 3383 -1 -3384 3384 4 -3385 3384 -1 -3484 3384 -1 -3385 3385 4 -3386 3385 -1 -3485 3385 -1 -3386 3386 4 -3387 3386 -1 -3486 3386 -1 -3387 3387 4 -3388 3387 -1 -3487 3387 -1 -3388 3388 4 -3389 3388 -1 -3488 3388 -1 -3389 3389 4 -3390 3389 -1 -3489 3389 -1 -3390 3390 4 -3391 3390 -1 -3490 3390 -1 -3391 3391 4 -3392 3391 -1 -3491 3391 -1 -3392 3392 4 -3393 3392 -1 -3492 3392 -1 -3393 3393 4 -3394 3393 -1 -3493 3393 -1 -3394 3394 4 -3395 3394 -1 -3494 3394 -1 -3395 3395 4 -3396 3395 -1 -3495 3395 -1 -3396 3396 4 -3397 3396 -1 -3496 3396 -1 -3397 3397 4 -3398 3397 -1 -3497 3397 -1 -3398 3398 4 -3399 3398 -1 -3498 3398 -1 -3399 3399 4 -3400 3399 -1 -3499 3399 -1 -3400 3400 4 -3500 3400 -1 -3401 3401 4 -3402 3401 -1 -3501 3401 -1 -3402 3402 4 -3403 3402 -1 -3502 3402 -1 -3403 3403 4 -3404 3403 -1 -3503 3403 -1 -3404 3404 4 -3405 3404 -1 -3504 3404 -1 -3405 3405 4 -3406 3405 -1 -3505 3405 -1 -3406 3406 4 -3407 3406 -1 -3506 3406 -1 -3407 3407 4 -3408 3407 -1 -3507 3407 -1 -3408 3408 4 -3409 3408 -1 -3508 3408 -1 -3409 3409 4 -3410 3409 -1 -3509 3409 -1 -3410 3410 4 -3411 3410 -1 -3510 3410 -1 -3411 3411 4 -3412 3411 -1 -3511 3411 -1 -3412 3412 4 -3413 3412 -1 -3512 3412 -1 -3413 3413 4 -3414 3413 -1 -3513 3413 -1 -3414 3414 4 -3415 3414 -1 -3514 3414 -1 -3415 3415 4 -3416 3415 -1 -3515 3415 -1 -3416 3416 4 -3417 3416 -1 -3516 3416 -1 -3417 3417 4 -3418 3417 -1 -3517 3417 -1 -3418 3418 4 -3419 3418 -1 -3518 3418 -1 -3419 3419 4 -3420 3419 -1 -3519 3419 -1 -3420 3420 4 -3421 3420 -1 -3520 3420 -1 -3421 3421 4 -3422 3421 -1 -3521 3421 -1 -3422 3422 4 -3423 3422 -1 -3522 3422 -1 -3423 3423 4 -3424 3423 -1 -3523 3423 -1 -3424 3424 4 -3425 3424 -1 -3524 3424 -1 -3425 3425 4 -3426 3425 -1 -3525 3425 -1 -3426 3426 4 -3427 3426 -1 -3526 3426 -1 -3427 3427 4 -3428 3427 -1 -3527 3427 -1 -3428 3428 4 -3429 3428 -1 -3528 3428 -1 -3429 3429 4 -3430 3429 -1 -3529 3429 -1 -3430 3430 4 -3431 3430 -1 -3530 3430 -1 -3431 3431 4 -3432 3431 -1 -3531 3431 -1 -3432 3432 4 -3433 3432 -1 -3532 3432 -1 -3433 3433 4 -3434 3433 -1 -3533 3433 -1 -3434 3434 4 -3435 3434 -1 -3534 3434 -1 -3435 3435 4 -3436 3435 -1 -3535 3435 -1 -3436 3436 4 -3437 3436 -1 -3536 3436 -1 -3437 3437 4 -3438 3437 -1 -3537 3437 -1 -3438 3438 4 -3439 3438 -1 -3538 3438 -1 -3439 3439 4 -3440 3439 -1 -3539 3439 -1 -3440 3440 4 -3441 3440 -1 -3540 3440 -1 -3441 3441 4 -3442 3441 -1 -3541 3441 -1 -3442 3442 4 -3443 3442 -1 -3542 3442 -1 -3443 3443 4 -3444 3443 -1 -3543 3443 -1 -3444 3444 4 -3445 3444 -1 -3544 3444 -1 -3445 3445 4 -3446 3445 -1 -3545 3445 -1 -3446 3446 4 -3447 3446 -1 -3546 3446 -1 -3447 3447 4 -3448 3447 -1 -3547 3447 -1 -3448 3448 4 -3449 3448 -1 -3548 3448 -1 -3449 3449 4 -3450 3449 -1 -3549 3449 -1 -3450 3450 4 -3451 3450 -1 -3550 3450 -1 -3451 3451 4 -3452 3451 -1 -3551 3451 -1 -3452 3452 4 -3453 3452 -1 -3552 3452 -1 -3453 3453 4 -3454 3453 -1 -3553 3453 -1 -3454 3454 4 -3455 3454 -1 -3554 3454 -1 -3455 3455 4 -3456 3455 -1 -3555 3455 -1 -3456 3456 4 -3457 3456 -1 -3556 3456 -1 -3457 3457 4 -3458 3457 -1 -3557 3457 -1 -3458 3458 4 -3459 3458 -1 -3558 3458 -1 -3459 3459 4 -3460 3459 -1 -3559 3459 -1 -3460 3460 4 -3461 3460 -1 -3560 3460 -1 -3461 3461 4 -3462 3461 -1 -3561 3461 -1 -3462 3462 4 -3463 3462 -1 -3562 3462 -1 -3463 3463 4 -3464 3463 -1 -3563 3463 -1 -3464 3464 4 -3465 3464 -1 -3564 3464 -1 -3465 3465 4 -3466 3465 -1 -3565 3465 -1 -3466 3466 4 -3467 3466 -1 -3566 3466 -1 -3467 3467 4 -3468 3467 -1 -3567 3467 -1 -3468 3468 4 -3469 3468 -1 -3568 3468 -1 -3469 3469 4 -3470 3469 -1 -3569 3469 -1 -3470 3470 4 -3471 3470 -1 -3570 3470 -1 -3471 3471 4 -3472 3471 -1 -3571 3471 -1 -3472 3472 4 -3473 3472 -1 -3572 3472 -1 -3473 3473 4 -3474 3473 -1 -3573 3473 -1 -3474 3474 4 -3475 3474 -1 -3574 3474 -1 -3475 3475 4 -3476 3475 -1 -3575 3475 -1 -3476 3476 4 -3477 3476 -1 -3576 3476 -1 -3477 3477 4 -3478 3477 -1 -3577 3477 -1 -3478 3478 4 -3479 3478 -1 -3578 3478 -1 -3479 3479 4 -3480 3479 -1 -3579 3479 -1 -3480 3480 4 -3481 3480 -1 -3580 3480 -1 -3481 3481 4 -3482 3481 -1 -3581 3481 -1 -3482 3482 4 -3483 3482 -1 -3582 3482 -1 -3483 3483 4 -3484 3483 -1 -3583 3483 -1 -3484 3484 4 -3485 3484 -1 -3584 3484 -1 -3485 3485 4 -3486 3485 -1 -3585 3485 -1 -3486 3486 4 -3487 3486 -1 -3586 3486 -1 -3487 3487 4 -3488 3487 -1 -3587 3487 -1 -3488 3488 4 -3489 3488 -1 -3588 3488 -1 -3489 3489 4 -3490 3489 -1 -3589 3489 -1 -3490 3490 4 -3491 3490 -1 -3590 3490 -1 -3491 3491 4 -3492 3491 -1 -3591 3491 -1 -3492 3492 4 -3493 3492 -1 -3592 3492 -1 -3493 3493 4 -3494 3493 -1 -3593 3493 -1 -3494 3494 4 -3495 3494 -1 -3594 3494 -1 -3495 3495 4 -3496 3495 -1 -3595 3495 -1 -3496 3496 4 -3497 3496 -1 -3596 3496 -1 -3497 3497 4 -3498 3497 -1 -3597 3497 -1 -3498 3498 4 -3499 3498 -1 -3598 3498 -1 -3499 3499 4 -3500 3499 -1 -3599 3499 -1 -3500 3500 4 -3600 3500 -1 -3501 3501 4 -3502 3501 -1 -3601 3501 -1 -3502 3502 4 -3503 3502 -1 -3602 3502 -1 -3503 3503 4 -3504 3503 -1 -3603 3503 -1 -3504 3504 4 -3505 3504 -1 -3604 3504 -1 -3505 3505 4 -3506 3505 -1 -3605 3505 -1 -3506 3506 4 -3507 3506 -1 -3606 3506 -1 -3507 3507 4 -3508 3507 -1 -3607 3507 -1 -3508 3508 4 -3509 3508 -1 -3608 3508 -1 -3509 3509 4 -3510 3509 -1 -3609 3509 -1 -3510 3510 4 -3511 3510 -1 -3610 3510 -1 -3511 3511 4 -3512 3511 -1 -3611 3511 -1 -3512 3512 4 -3513 3512 -1 -3612 3512 -1 -3513 3513 4 -3514 3513 -1 -3613 3513 -1 -3514 3514 4 -3515 3514 -1 -3614 3514 -1 -3515 3515 4 -3516 3515 -1 -3615 3515 -1 -3516 3516 4 -3517 3516 -1 -3616 3516 -1 -3517 3517 4 -3518 3517 -1 -3617 3517 -1 -3518 3518 4 -3519 3518 -1 -3618 3518 -1 -3519 3519 4 -3520 3519 -1 -3619 3519 -1 -3520 3520 4 -3521 3520 -1 -3620 3520 -1 -3521 3521 4 -3522 3521 -1 -3621 3521 -1 -3522 3522 4 -3523 3522 -1 -3622 3522 -1 -3523 3523 4 -3524 3523 -1 -3623 3523 -1 -3524 3524 4 -3525 3524 -1 -3624 3524 -1 -3525 3525 4 -3526 3525 -1 -3625 3525 -1 -3526 3526 4 -3527 3526 -1 -3626 3526 -1 -3527 3527 4 -3528 3527 -1 -3627 3527 -1 -3528 3528 4 -3529 3528 -1 -3628 3528 -1 -3529 3529 4 -3530 3529 -1 -3629 3529 -1 -3530 3530 4 -3531 3530 -1 -3630 3530 -1 -3531 3531 4 -3532 3531 -1 -3631 3531 -1 -3532 3532 4 -3533 3532 -1 -3632 3532 -1 -3533 3533 4 -3534 3533 -1 -3633 3533 -1 -3534 3534 4 -3535 3534 -1 -3634 3534 -1 -3535 3535 4 -3536 3535 -1 -3635 3535 -1 -3536 3536 4 -3537 3536 -1 -3636 3536 -1 -3537 3537 4 -3538 3537 -1 -3637 3537 -1 -3538 3538 4 -3539 3538 -1 -3638 3538 -1 -3539 3539 4 -3540 3539 -1 -3639 3539 -1 -3540 3540 4 -3541 3540 -1 -3640 3540 -1 -3541 3541 4 -3542 3541 -1 -3641 3541 -1 -3542 3542 4 -3543 3542 -1 -3642 3542 -1 -3543 3543 4 -3544 3543 -1 -3643 3543 -1 -3544 3544 4 -3545 3544 -1 -3644 3544 -1 -3545 3545 4 -3546 3545 -1 -3645 3545 -1 -3546 3546 4 -3547 3546 -1 -3646 3546 -1 -3547 3547 4 -3548 3547 -1 -3647 3547 -1 -3548 3548 4 -3549 3548 -1 -3648 3548 -1 -3549 3549 4 -3550 3549 -1 -3649 3549 -1 -3550 3550 4 -3551 3550 -1 -3650 3550 -1 -3551 3551 4 -3552 3551 -1 -3651 3551 -1 -3552 3552 4 -3553 3552 -1 -3652 3552 -1 -3553 3553 4 -3554 3553 -1 -3653 3553 -1 -3554 3554 4 -3555 3554 -1 -3654 3554 -1 -3555 3555 4 -3556 3555 -1 -3655 3555 -1 -3556 3556 4 -3557 3556 -1 -3656 3556 -1 -3557 3557 4 -3558 3557 -1 -3657 3557 -1 -3558 3558 4 -3559 3558 -1 -3658 3558 -1 -3559 3559 4 -3560 3559 -1 -3659 3559 -1 -3560 3560 4 -3561 3560 -1 -3660 3560 -1 -3561 3561 4 -3562 3561 -1 -3661 3561 -1 -3562 3562 4 -3563 3562 -1 -3662 3562 -1 -3563 3563 4 -3564 3563 -1 -3663 3563 -1 -3564 3564 4 -3565 3564 -1 -3664 3564 -1 -3565 3565 4 -3566 3565 -1 -3665 3565 -1 -3566 3566 4 -3567 3566 -1 -3666 3566 -1 -3567 3567 4 -3568 3567 -1 -3667 3567 -1 -3568 3568 4 -3569 3568 -1 -3668 3568 -1 -3569 3569 4 -3570 3569 -1 -3669 3569 -1 -3570 3570 4 -3571 3570 -1 -3670 3570 -1 -3571 3571 4 -3572 3571 -1 -3671 3571 -1 -3572 3572 4 -3573 3572 -1 -3672 3572 -1 -3573 3573 4 -3574 3573 -1 -3673 3573 -1 -3574 3574 4 -3575 3574 -1 -3674 3574 -1 -3575 3575 4 -3576 3575 -1 -3675 3575 -1 -3576 3576 4 -3577 3576 -1 -3676 3576 -1 -3577 3577 4 -3578 3577 -1 -3677 3577 -1 -3578 3578 4 -3579 3578 -1 -3678 3578 -1 -3579 3579 4 -3580 3579 -1 -3679 3579 -1 -3580 3580 4 -3581 3580 -1 -3680 3580 -1 -3581 3581 4 -3582 3581 -1 -3681 3581 -1 -3582 3582 4 -3583 3582 -1 -3682 3582 -1 -3583 3583 4 -3584 3583 -1 -3683 3583 -1 -3584 3584 4 -3585 3584 -1 -3684 3584 -1 -3585 3585 4 -3586 3585 -1 -3685 3585 -1 -3586 3586 4 -3587 3586 -1 -3686 3586 -1 -3587 3587 4 -3588 3587 -1 -3687 3587 -1 -3588 3588 4 -3589 3588 -1 -3688 3588 -1 -3589 3589 4 -3590 3589 -1 -3689 3589 -1 -3590 3590 4 -3591 3590 -1 -3690 3590 -1 -3591 3591 4 -3592 3591 -1 -3691 3591 -1 -3592 3592 4 -3593 3592 -1 -3692 3592 -1 -3593 3593 4 -3594 3593 -1 -3693 3593 -1 -3594 3594 4 -3595 3594 -1 -3694 3594 -1 -3595 3595 4 -3596 3595 -1 -3695 3595 -1 -3596 3596 4 -3597 3596 -1 -3696 3596 -1 -3597 3597 4 -3598 3597 -1 -3697 3597 -1 -3598 3598 4 -3599 3598 -1 -3698 3598 -1 -3599 3599 4 -3600 3599 -1 -3699 3599 -1 -3600 3600 4 -3700 3600 -1 -3601 3601 4 -3602 3601 -1 -3701 3601 -1 -3602 3602 4 -3603 3602 -1 -3702 3602 -1 -3603 3603 4 -3604 3603 -1 -3703 3603 -1 -3604 3604 4 -3605 3604 -1 -3704 3604 -1 -3605 3605 4 -3606 3605 -1 -3705 3605 -1 -3606 3606 4 -3607 3606 -1 -3706 3606 -1 -3607 3607 4 -3608 3607 -1 -3707 3607 -1 -3608 3608 4 -3609 3608 -1 -3708 3608 -1 -3609 3609 4 -3610 3609 -1 -3709 3609 -1 -3610 3610 4 -3611 3610 -1 -3710 3610 -1 -3611 3611 4 -3612 3611 -1 -3711 3611 -1 -3612 3612 4 -3613 3612 -1 -3712 3612 -1 -3613 3613 4 -3614 3613 -1 -3713 3613 -1 -3614 3614 4 -3615 3614 -1 -3714 3614 -1 -3615 3615 4 -3616 3615 -1 -3715 3615 -1 -3616 3616 4 -3617 3616 -1 -3716 3616 -1 -3617 3617 4 -3618 3617 -1 -3717 3617 -1 -3618 3618 4 -3619 3618 -1 -3718 3618 -1 -3619 3619 4 -3620 3619 -1 -3719 3619 -1 -3620 3620 4 -3621 3620 -1 -3720 3620 -1 -3621 3621 4 -3622 3621 -1 -3721 3621 -1 -3622 3622 4 -3623 3622 -1 -3722 3622 -1 -3623 3623 4 -3624 3623 -1 -3723 3623 -1 -3624 3624 4 -3625 3624 -1 -3724 3624 -1 -3625 3625 4 -3626 3625 -1 -3725 3625 -1 -3626 3626 4 -3627 3626 -1 -3726 3626 -1 -3627 3627 4 -3628 3627 -1 -3727 3627 -1 -3628 3628 4 -3629 3628 -1 -3728 3628 -1 -3629 3629 4 -3630 3629 -1 -3729 3629 -1 -3630 3630 4 -3631 3630 -1 -3730 3630 -1 -3631 3631 4 -3632 3631 -1 -3731 3631 -1 -3632 3632 4 -3633 3632 -1 -3732 3632 -1 -3633 3633 4 -3634 3633 -1 -3733 3633 -1 -3634 3634 4 -3635 3634 -1 -3734 3634 -1 -3635 3635 4 -3636 3635 -1 -3735 3635 -1 -3636 3636 4 -3637 3636 -1 -3736 3636 -1 -3637 3637 4 -3638 3637 -1 -3737 3637 -1 -3638 3638 4 -3639 3638 -1 -3738 3638 -1 -3639 3639 4 -3640 3639 -1 -3739 3639 -1 -3640 3640 4 -3641 3640 -1 -3740 3640 -1 -3641 3641 4 -3642 3641 -1 -3741 3641 -1 -3642 3642 4 -3643 3642 -1 -3742 3642 -1 -3643 3643 4 -3644 3643 -1 -3743 3643 -1 -3644 3644 4 -3645 3644 -1 -3744 3644 -1 -3645 3645 4 -3646 3645 -1 -3745 3645 -1 -3646 3646 4 -3647 3646 -1 -3746 3646 -1 -3647 3647 4 -3648 3647 -1 -3747 3647 -1 -3648 3648 4 -3649 3648 -1 -3748 3648 -1 -3649 3649 4 -3650 3649 -1 -3749 3649 -1 -3650 3650 4 -3651 3650 -1 -3750 3650 -1 -3651 3651 4 -3652 3651 -1 -3751 3651 -1 -3652 3652 4 -3653 3652 -1 -3752 3652 -1 -3653 3653 4 -3654 3653 -1 -3753 3653 -1 -3654 3654 4 -3655 3654 -1 -3754 3654 -1 -3655 3655 4 -3656 3655 -1 -3755 3655 -1 -3656 3656 4 -3657 3656 -1 -3756 3656 -1 -3657 3657 4 -3658 3657 -1 -3757 3657 -1 -3658 3658 4 -3659 3658 -1 -3758 3658 -1 -3659 3659 4 -3660 3659 -1 -3759 3659 -1 -3660 3660 4 -3661 3660 -1 -3760 3660 -1 -3661 3661 4 -3662 3661 -1 -3761 3661 -1 -3662 3662 4 -3663 3662 -1 -3762 3662 -1 -3663 3663 4 -3664 3663 -1 -3763 3663 -1 -3664 3664 4 -3665 3664 -1 -3764 3664 -1 -3665 3665 4 -3666 3665 -1 -3765 3665 -1 -3666 3666 4 -3667 3666 -1 -3766 3666 -1 -3667 3667 4 -3668 3667 -1 -3767 3667 -1 -3668 3668 4 -3669 3668 -1 -3768 3668 -1 -3669 3669 4 -3670 3669 -1 -3769 3669 -1 -3670 3670 4 -3671 3670 -1 -3770 3670 -1 -3671 3671 4 -3672 3671 -1 -3771 3671 -1 -3672 3672 4 -3673 3672 -1 -3772 3672 -1 -3673 3673 4 -3674 3673 -1 -3773 3673 -1 -3674 3674 4 -3675 3674 -1 -3774 3674 -1 -3675 3675 4 -3676 3675 -1 -3775 3675 -1 -3676 3676 4 -3677 3676 -1 -3776 3676 -1 -3677 3677 4 -3678 3677 -1 -3777 3677 -1 -3678 3678 4 -3679 3678 -1 -3778 3678 -1 -3679 3679 4 -3680 3679 -1 -3779 3679 -1 -3680 3680 4 -3681 3680 -1 -3780 3680 -1 -3681 3681 4 -3682 3681 -1 -3781 3681 -1 -3682 3682 4 -3683 3682 -1 -3782 3682 -1 -3683 3683 4 -3684 3683 -1 -3783 3683 -1 -3684 3684 4 -3685 3684 -1 -3784 3684 -1 -3685 3685 4 -3686 3685 -1 -3785 3685 -1 -3686 3686 4 -3687 3686 -1 -3786 3686 -1 -3687 3687 4 -3688 3687 -1 -3787 3687 -1 -3688 3688 4 -3689 3688 -1 -3788 3688 -1 -3689 3689 4 -3690 3689 -1 -3789 3689 -1 -3690 3690 4 -3691 3690 -1 -3790 3690 -1 -3691 3691 4 -3692 3691 -1 -3791 3691 -1 -3692 3692 4 -3693 3692 -1 -3792 3692 -1 -3693 3693 4 -3694 3693 -1 -3793 3693 -1 -3694 3694 4 -3695 3694 -1 -3794 3694 -1 -3695 3695 4 -3696 3695 -1 -3795 3695 -1 -3696 3696 4 -3697 3696 -1 -3796 3696 -1 -3697 3697 4 -3698 3697 -1 -3797 3697 -1 -3698 3698 4 -3699 3698 -1 -3798 3698 -1 -3699 3699 4 -3700 3699 -1 -3799 3699 -1 -3700 3700 4 -3800 3700 -1 -3701 3701 4 -3702 3701 -1 -3801 3701 -1 -3702 3702 4 -3703 3702 -1 -3802 3702 -1 -3703 3703 4 -3704 3703 -1 -3803 3703 -1 -3704 3704 4 -3705 3704 -1 -3804 3704 -1 -3705 3705 4 -3706 3705 -1 -3805 3705 -1 -3706 3706 4 -3707 3706 -1 -3806 3706 -1 -3707 3707 4 -3708 3707 -1 -3807 3707 -1 -3708 3708 4 -3709 3708 -1 -3808 3708 -1 -3709 3709 4 -3710 3709 -1 -3809 3709 -1 -3710 3710 4 -3711 3710 -1 -3810 3710 -1 -3711 3711 4 -3712 3711 -1 -3811 3711 -1 -3712 3712 4 -3713 3712 -1 -3812 3712 -1 -3713 3713 4 -3714 3713 -1 -3813 3713 -1 -3714 3714 4 -3715 3714 -1 -3814 3714 -1 -3715 3715 4 -3716 3715 -1 -3815 3715 -1 -3716 3716 4 -3717 3716 -1 -3816 3716 -1 -3717 3717 4 -3718 3717 -1 -3817 3717 -1 -3718 3718 4 -3719 3718 -1 -3818 3718 -1 -3719 3719 4 -3720 3719 -1 -3819 3719 -1 -3720 3720 4 -3721 3720 -1 -3820 3720 -1 -3721 3721 4 -3722 3721 -1 -3821 3721 -1 -3722 3722 4 -3723 3722 -1 -3822 3722 -1 -3723 3723 4 -3724 3723 -1 -3823 3723 -1 -3724 3724 4 -3725 3724 -1 -3824 3724 -1 -3725 3725 4 -3726 3725 -1 -3825 3725 -1 -3726 3726 4 -3727 3726 -1 -3826 3726 -1 -3727 3727 4 -3728 3727 -1 -3827 3727 -1 -3728 3728 4 -3729 3728 -1 -3828 3728 -1 -3729 3729 4 -3730 3729 -1 -3829 3729 -1 -3730 3730 4 -3731 3730 -1 -3830 3730 -1 -3731 3731 4 -3732 3731 -1 -3831 3731 -1 -3732 3732 4 -3733 3732 -1 -3832 3732 -1 -3733 3733 4 -3734 3733 -1 -3833 3733 -1 -3734 3734 4 -3735 3734 -1 -3834 3734 -1 -3735 3735 4 -3736 3735 -1 -3835 3735 -1 -3736 3736 4 -3737 3736 -1 -3836 3736 -1 -3737 3737 4 -3738 3737 -1 -3837 3737 -1 -3738 3738 4 -3739 3738 -1 -3838 3738 -1 -3739 3739 4 -3740 3739 -1 -3839 3739 -1 -3740 3740 4 -3741 3740 -1 -3840 3740 -1 -3741 3741 4 -3742 3741 -1 -3841 3741 -1 -3742 3742 4 -3743 3742 -1 -3842 3742 -1 -3743 3743 4 -3744 3743 -1 -3843 3743 -1 -3744 3744 4 -3745 3744 -1 -3844 3744 -1 -3745 3745 4 -3746 3745 -1 -3845 3745 -1 -3746 3746 4 -3747 3746 -1 -3846 3746 -1 -3747 3747 4 -3748 3747 -1 -3847 3747 -1 -3748 3748 4 -3749 3748 -1 -3848 3748 -1 -3749 3749 4 -3750 3749 -1 -3849 3749 -1 -3750 3750 4 -3751 3750 -1 -3850 3750 -1 -3751 3751 4 -3752 3751 -1 -3851 3751 -1 -3752 3752 4 -3753 3752 -1 -3852 3752 -1 -3753 3753 4 -3754 3753 -1 -3853 3753 -1 -3754 3754 4 -3755 3754 -1 -3854 3754 -1 -3755 3755 4 -3756 3755 -1 -3855 3755 -1 -3756 3756 4 -3757 3756 -1 -3856 3756 -1 -3757 3757 4 -3758 3757 -1 -3857 3757 -1 -3758 3758 4 -3759 3758 -1 -3858 3758 -1 -3759 3759 4 -3760 3759 -1 -3859 3759 -1 -3760 3760 4 -3761 3760 -1 -3860 3760 -1 -3761 3761 4 -3762 3761 -1 -3861 3761 -1 -3762 3762 4 -3763 3762 -1 -3862 3762 -1 -3763 3763 4 -3764 3763 -1 -3863 3763 -1 -3764 3764 4 -3765 3764 -1 -3864 3764 -1 -3765 3765 4 -3766 3765 -1 -3865 3765 -1 -3766 3766 4 -3767 3766 -1 -3866 3766 -1 -3767 3767 4 -3768 3767 -1 -3867 3767 -1 -3768 3768 4 -3769 3768 -1 -3868 3768 -1 -3769 3769 4 -3770 3769 -1 -3869 3769 -1 -3770 3770 4 -3771 3770 -1 -3870 3770 -1 -3771 3771 4 -3772 3771 -1 -3871 3771 -1 -3772 3772 4 -3773 3772 -1 -3872 3772 -1 -3773 3773 4 -3774 3773 -1 -3873 3773 -1 -3774 3774 4 -3775 3774 -1 -3874 3774 -1 -3775 3775 4 -3776 3775 -1 -3875 3775 -1 -3776 3776 4 -3777 3776 -1 -3876 3776 -1 -3777 3777 4 -3778 3777 -1 -3877 3777 -1 -3778 3778 4 -3779 3778 -1 -3878 3778 -1 -3779 3779 4 -3780 3779 -1 -3879 3779 -1 -3780 3780 4 -3781 3780 -1 -3880 3780 -1 -3781 3781 4 -3782 3781 -1 -3881 3781 -1 -3782 3782 4 -3783 3782 -1 -3882 3782 -1 -3783 3783 4 -3784 3783 -1 -3883 3783 -1 -3784 3784 4 -3785 3784 -1 -3884 3784 -1 -3785 3785 4 -3786 3785 -1 -3885 3785 -1 -3786 3786 4 -3787 3786 -1 -3886 3786 -1 -3787 3787 4 -3788 3787 -1 -3887 3787 -1 -3788 3788 4 -3789 3788 -1 -3888 3788 -1 -3789 3789 4 -3790 3789 -1 -3889 3789 -1 -3790 3790 4 -3791 3790 -1 -3890 3790 -1 -3791 3791 4 -3792 3791 -1 -3891 3791 -1 -3792 3792 4 -3793 3792 -1 -3892 3792 -1 -3793 3793 4 -3794 3793 -1 -3893 3793 -1 -3794 3794 4 -3795 3794 -1 -3894 3794 -1 -3795 3795 4 -3796 3795 -1 -3895 3795 -1 -3796 3796 4 -3797 3796 -1 -3896 3796 -1 -3797 3797 4 -3798 3797 -1 -3897 3797 -1 -3798 3798 4 -3799 3798 -1 -3898 3798 -1 -3799 3799 4 -3800 3799 -1 -3899 3799 -1 -3800 3800 4 -3900 3800 -1 -3801 3801 4 -3802 3801 -1 -3901 3801 -1 -3802 3802 4 -3803 3802 -1 -3902 3802 -1 -3803 3803 4 -3804 3803 -1 -3903 3803 -1 -3804 3804 4 -3805 3804 -1 -3904 3804 -1 -3805 3805 4 -3806 3805 -1 -3905 3805 -1 -3806 3806 4 -3807 3806 -1 -3906 3806 -1 -3807 3807 4 -3808 3807 -1 -3907 3807 -1 -3808 3808 4 -3809 3808 -1 -3908 3808 -1 -3809 3809 4 -3810 3809 -1 -3909 3809 -1 -3810 3810 4 -3811 3810 -1 -3910 3810 -1 -3811 3811 4 -3812 3811 -1 -3911 3811 -1 -3812 3812 4 -3813 3812 -1 -3912 3812 -1 -3813 3813 4 -3814 3813 -1 -3913 3813 -1 -3814 3814 4 -3815 3814 -1 -3914 3814 -1 -3815 3815 4 -3816 3815 -1 -3915 3815 -1 -3816 3816 4 -3817 3816 -1 -3916 3816 -1 -3817 3817 4 -3818 3817 -1 -3917 3817 -1 -3818 3818 4 -3819 3818 -1 -3918 3818 -1 -3819 3819 4 -3820 3819 -1 -3919 3819 -1 -3820 3820 4 -3821 3820 -1 -3920 3820 -1 -3821 3821 4 -3822 3821 -1 -3921 3821 -1 -3822 3822 4 -3823 3822 -1 -3922 3822 -1 -3823 3823 4 -3824 3823 -1 -3923 3823 -1 -3824 3824 4 -3825 3824 -1 -3924 3824 -1 -3825 3825 4 -3826 3825 -1 -3925 3825 -1 -3826 3826 4 -3827 3826 -1 -3926 3826 -1 -3827 3827 4 -3828 3827 -1 -3927 3827 -1 -3828 3828 4 -3829 3828 -1 -3928 3828 -1 -3829 3829 4 -3830 3829 -1 -3929 3829 -1 -3830 3830 4 -3831 3830 -1 -3930 3830 -1 -3831 3831 4 -3832 3831 -1 -3931 3831 -1 -3832 3832 4 -3833 3832 -1 -3932 3832 -1 -3833 3833 4 -3834 3833 -1 -3933 3833 -1 -3834 3834 4 -3835 3834 -1 -3934 3834 -1 -3835 3835 4 -3836 3835 -1 -3935 3835 -1 -3836 3836 4 -3837 3836 -1 -3936 3836 -1 -3837 3837 4 -3838 3837 -1 -3937 3837 -1 -3838 3838 4 -3839 3838 -1 -3938 3838 -1 -3839 3839 4 -3840 3839 -1 -3939 3839 -1 -3840 3840 4 -3841 3840 -1 -3940 3840 -1 -3841 3841 4 -3842 3841 -1 -3941 3841 -1 -3842 3842 4 -3843 3842 -1 -3942 3842 -1 -3843 3843 4 -3844 3843 -1 -3943 3843 -1 -3844 3844 4 -3845 3844 -1 -3944 3844 -1 -3845 3845 4 -3846 3845 -1 -3945 3845 -1 -3846 3846 4 -3847 3846 -1 -3946 3846 -1 -3847 3847 4 -3848 3847 -1 -3947 3847 -1 -3848 3848 4 -3849 3848 -1 -3948 3848 -1 -3849 3849 4 -3850 3849 -1 -3949 3849 -1 -3850 3850 4 -3851 3850 -1 -3950 3850 -1 -3851 3851 4 -3852 3851 -1 -3951 3851 -1 -3852 3852 4 -3853 3852 -1 -3952 3852 -1 -3853 3853 4 -3854 3853 -1 -3953 3853 -1 -3854 3854 4 -3855 3854 -1 -3954 3854 -1 -3855 3855 4 -3856 3855 -1 -3955 3855 -1 -3856 3856 4 -3857 3856 -1 -3956 3856 -1 -3857 3857 4 -3858 3857 -1 -3957 3857 -1 -3858 3858 4 -3859 3858 -1 -3958 3858 -1 -3859 3859 4 -3860 3859 -1 -3959 3859 -1 -3860 3860 4 -3861 3860 -1 -3960 3860 -1 -3861 3861 4 -3862 3861 -1 -3961 3861 -1 -3862 3862 4 -3863 3862 -1 -3962 3862 -1 -3863 3863 4 -3864 3863 -1 -3963 3863 -1 -3864 3864 4 -3865 3864 -1 -3964 3864 -1 -3865 3865 4 -3866 3865 -1 -3965 3865 -1 -3866 3866 4 -3867 3866 -1 -3966 3866 -1 -3867 3867 4 -3868 3867 -1 -3967 3867 -1 -3868 3868 4 -3869 3868 -1 -3968 3868 -1 -3869 3869 4 -3870 3869 -1 -3969 3869 -1 -3870 3870 4 -3871 3870 -1 -3970 3870 -1 -3871 3871 4 -3872 3871 -1 -3971 3871 -1 -3872 3872 4 -3873 3872 -1 -3972 3872 -1 -3873 3873 4 -3874 3873 -1 -3973 3873 -1 -3874 3874 4 -3875 3874 -1 -3974 3874 -1 -3875 3875 4 -3876 3875 -1 -3975 3875 -1 -3876 3876 4 -3877 3876 -1 -3976 3876 -1 -3877 3877 4 -3878 3877 -1 -3977 3877 -1 -3878 3878 4 -3879 3878 -1 -3978 3878 -1 -3879 3879 4 -3880 3879 -1 -3979 3879 -1 -3880 3880 4 -3881 3880 -1 -3980 3880 -1 -3881 3881 4 -3882 3881 -1 -3981 3881 -1 -3882 3882 4 -3883 3882 -1 -3982 3882 -1 -3883 3883 4 -3884 3883 -1 -3983 3883 -1 -3884 3884 4 -3885 3884 -1 -3984 3884 -1 -3885 3885 4 -3886 3885 -1 -3985 3885 -1 -3886 3886 4 -3887 3886 -1 -3986 3886 -1 -3887 3887 4 -3888 3887 -1 -3987 3887 -1 -3888 3888 4 -3889 3888 -1 -3988 3888 -1 -3889 3889 4 -3890 3889 -1 -3989 3889 -1 -3890 3890 4 -3891 3890 -1 -3990 3890 -1 -3891 3891 4 -3892 3891 -1 -3991 3891 -1 -3892 3892 4 -3893 3892 -1 -3992 3892 -1 -3893 3893 4 -3894 3893 -1 -3993 3893 -1 -3894 3894 4 -3895 3894 -1 -3994 3894 -1 -3895 3895 4 -3896 3895 -1 -3995 3895 -1 -3896 3896 4 -3897 3896 -1 -3996 3896 -1 -3897 3897 4 -3898 3897 -1 -3997 3897 -1 -3898 3898 4 -3899 3898 -1 -3998 3898 -1 -3899 3899 4 -3900 3899 -1 -3999 3899 -1 -3900 3900 4 -4000 3900 -1 -3901 3901 4 -3902 3901 -1 -4001 3901 -1 -3902 3902 4 -3903 3902 -1 -4002 3902 -1 -3903 3903 4 -3904 3903 -1 -4003 3903 -1 -3904 3904 4 -3905 3904 -1 -4004 3904 -1 -3905 3905 4 -3906 3905 -1 -4005 3905 -1 -3906 3906 4 -3907 3906 -1 -4006 3906 -1 -3907 3907 4 -3908 3907 -1 -4007 3907 -1 -3908 3908 4 -3909 3908 -1 -4008 3908 -1 -3909 3909 4 -3910 3909 -1 -4009 3909 -1 -3910 3910 4 -3911 3910 -1 -4010 3910 -1 -3911 3911 4 -3912 3911 -1 -4011 3911 -1 -3912 3912 4 -3913 3912 -1 -4012 3912 -1 -3913 3913 4 -3914 3913 -1 -4013 3913 -1 -3914 3914 4 -3915 3914 -1 -4014 3914 -1 -3915 3915 4 -3916 3915 -1 -4015 3915 -1 -3916 3916 4 -3917 3916 -1 -4016 3916 -1 -3917 3917 4 -3918 3917 -1 -4017 3917 -1 -3918 3918 4 -3919 3918 -1 -4018 3918 -1 -3919 3919 4 -3920 3919 -1 -4019 3919 -1 -3920 3920 4 -3921 3920 -1 -4020 3920 -1 -3921 3921 4 -3922 3921 -1 -4021 3921 -1 -3922 3922 4 -3923 3922 -1 -4022 3922 -1 -3923 3923 4 -3924 3923 -1 -4023 3923 -1 -3924 3924 4 -3925 3924 -1 -4024 3924 -1 -3925 3925 4 -3926 3925 -1 -4025 3925 -1 -3926 3926 4 -3927 3926 -1 -4026 3926 -1 -3927 3927 4 -3928 3927 -1 -4027 3927 -1 -3928 3928 4 -3929 3928 -1 -4028 3928 -1 -3929 3929 4 -3930 3929 -1 -4029 3929 -1 -3930 3930 4 -3931 3930 -1 -4030 3930 -1 -3931 3931 4 -3932 3931 -1 -4031 3931 -1 -3932 3932 4 -3933 3932 -1 -4032 3932 -1 -3933 3933 4 -3934 3933 -1 -4033 3933 -1 -3934 3934 4 -3935 3934 -1 -4034 3934 -1 -3935 3935 4 -3936 3935 -1 -4035 3935 -1 -3936 3936 4 -3937 3936 -1 -4036 3936 -1 -3937 3937 4 -3938 3937 -1 -4037 3937 -1 -3938 3938 4 -3939 3938 -1 -4038 3938 -1 -3939 3939 4 -3940 3939 -1 -4039 3939 -1 -3940 3940 4 -3941 3940 -1 -4040 3940 -1 -3941 3941 4 -3942 3941 -1 -4041 3941 -1 -3942 3942 4 -3943 3942 -1 -4042 3942 -1 -3943 3943 4 -3944 3943 -1 -4043 3943 -1 -3944 3944 4 -3945 3944 -1 -4044 3944 -1 -3945 3945 4 -3946 3945 -1 -4045 3945 -1 -3946 3946 4 -3947 3946 -1 -4046 3946 -1 -3947 3947 4 -3948 3947 -1 -4047 3947 -1 -3948 3948 4 -3949 3948 -1 -4048 3948 -1 -3949 3949 4 -3950 3949 -1 -4049 3949 -1 -3950 3950 4 -3951 3950 -1 -4050 3950 -1 -3951 3951 4 -3952 3951 -1 -4051 3951 -1 -3952 3952 4 -3953 3952 -1 -4052 3952 -1 -3953 3953 4 -3954 3953 -1 -4053 3953 -1 -3954 3954 4 -3955 3954 -1 -4054 3954 -1 -3955 3955 4 -3956 3955 -1 -4055 3955 -1 -3956 3956 4 -3957 3956 -1 -4056 3956 -1 -3957 3957 4 -3958 3957 -1 -4057 3957 -1 -3958 3958 4 -3959 3958 -1 -4058 3958 -1 -3959 3959 4 -3960 3959 -1 -4059 3959 -1 -3960 3960 4 -3961 3960 -1 -4060 3960 -1 -3961 3961 4 -3962 3961 -1 -4061 3961 -1 -3962 3962 4 -3963 3962 -1 -4062 3962 -1 -3963 3963 4 -3964 3963 -1 -4063 3963 -1 -3964 3964 4 -3965 3964 -1 -4064 3964 -1 -3965 3965 4 -3966 3965 -1 -4065 3965 -1 -3966 3966 4 -3967 3966 -1 -4066 3966 -1 -3967 3967 4 -3968 3967 -1 -4067 3967 -1 -3968 3968 4 -3969 3968 -1 -4068 3968 -1 -3969 3969 4 -3970 3969 -1 -4069 3969 -1 -3970 3970 4 -3971 3970 -1 -4070 3970 -1 -3971 3971 4 -3972 3971 -1 -4071 3971 -1 -3972 3972 4 -3973 3972 -1 -4072 3972 -1 -3973 3973 4 -3974 3973 -1 -4073 3973 -1 -3974 3974 4 -3975 3974 -1 -4074 3974 -1 -3975 3975 4 -3976 3975 -1 -4075 3975 -1 -3976 3976 4 -3977 3976 -1 -4076 3976 -1 -3977 3977 4 -3978 3977 -1 -4077 3977 -1 -3978 3978 4 -3979 3978 -1 -4078 3978 -1 -3979 3979 4 -3980 3979 -1 -4079 3979 -1 -3980 3980 4 -3981 3980 -1 -4080 3980 -1 -3981 3981 4 -3982 3981 -1 -4081 3981 -1 -3982 3982 4 -3983 3982 -1 -4082 3982 -1 -3983 3983 4 -3984 3983 -1 -4083 3983 -1 -3984 3984 4 -3985 3984 -1 -4084 3984 -1 -3985 3985 4 -3986 3985 -1 -4085 3985 -1 -3986 3986 4 -3987 3986 -1 -4086 3986 -1 -3987 3987 4 -3988 3987 -1 -4087 3987 -1 -3988 3988 4 -3989 3988 -1 -4088 3988 -1 -3989 3989 4 -3990 3989 -1 -4089 3989 -1 -3990 3990 4 -3991 3990 -1 -4090 3990 -1 -3991 3991 4 -3992 3991 -1 -4091 3991 -1 -3992 3992 4 -3993 3992 -1 -4092 3992 -1 -3993 3993 4 -3994 3993 -1 -4093 3993 -1 -3994 3994 4 -3995 3994 -1 -4094 3994 -1 -3995 3995 4 -3996 3995 -1 -4095 3995 -1 -3996 3996 4 -3997 3996 -1 -4096 3996 -1 -3997 3997 4 -3998 3997 -1 -4097 3997 -1 -3998 3998 4 -3999 3998 -1 -4098 3998 -1 -3999 3999 4 -4000 3999 -1 -4099 3999 -1 -4000 4000 4 -4100 4000 -1 -4001 4001 4 -4002 4001 -1 -4101 4001 -1 -4002 4002 4 -4003 4002 -1 -4102 4002 -1 -4003 4003 4 -4004 4003 -1 -4103 4003 -1 -4004 4004 4 -4005 4004 -1 -4104 4004 -1 -4005 4005 4 -4006 4005 -1 -4105 4005 -1 -4006 4006 4 -4007 4006 -1 -4106 4006 -1 -4007 4007 4 -4008 4007 -1 -4107 4007 -1 -4008 4008 4 -4009 4008 -1 -4108 4008 -1 -4009 4009 4 -4010 4009 -1 -4109 4009 -1 -4010 4010 4 -4011 4010 -1 -4110 4010 -1 -4011 4011 4 -4012 4011 -1 -4111 4011 -1 -4012 4012 4 -4013 4012 -1 -4112 4012 -1 -4013 4013 4 -4014 4013 -1 -4113 4013 -1 -4014 4014 4 -4015 4014 -1 -4114 4014 -1 -4015 4015 4 -4016 4015 -1 -4115 4015 -1 -4016 4016 4 -4017 4016 -1 -4116 4016 -1 -4017 4017 4 -4018 4017 -1 -4117 4017 -1 -4018 4018 4 -4019 4018 -1 -4118 4018 -1 -4019 4019 4 -4020 4019 -1 -4119 4019 -1 -4020 4020 4 -4021 4020 -1 -4120 4020 -1 -4021 4021 4 -4022 4021 -1 -4121 4021 -1 -4022 4022 4 -4023 4022 -1 -4122 4022 -1 -4023 4023 4 -4024 4023 -1 -4123 4023 -1 -4024 4024 4 -4025 4024 -1 -4124 4024 -1 -4025 4025 4 -4026 4025 -1 -4125 4025 -1 -4026 4026 4 -4027 4026 -1 -4126 4026 -1 -4027 4027 4 -4028 4027 -1 -4127 4027 -1 -4028 4028 4 -4029 4028 -1 -4128 4028 -1 -4029 4029 4 -4030 4029 -1 -4129 4029 -1 -4030 4030 4 -4031 4030 -1 -4130 4030 -1 -4031 4031 4 -4032 4031 -1 -4131 4031 -1 -4032 4032 4 -4033 4032 -1 -4132 4032 -1 -4033 4033 4 -4034 4033 -1 -4133 4033 -1 -4034 4034 4 -4035 4034 -1 -4134 4034 -1 -4035 4035 4 -4036 4035 -1 -4135 4035 -1 -4036 4036 4 -4037 4036 -1 -4136 4036 -1 -4037 4037 4 -4038 4037 -1 -4137 4037 -1 -4038 4038 4 -4039 4038 -1 -4138 4038 -1 -4039 4039 4 -4040 4039 -1 -4139 4039 -1 -4040 4040 4 -4041 4040 -1 -4140 4040 -1 -4041 4041 4 -4042 4041 -1 -4141 4041 -1 -4042 4042 4 -4043 4042 -1 -4142 4042 -1 -4043 4043 4 -4044 4043 -1 -4143 4043 -1 -4044 4044 4 -4045 4044 -1 -4144 4044 -1 -4045 4045 4 -4046 4045 -1 -4145 4045 -1 -4046 4046 4 -4047 4046 -1 -4146 4046 -1 -4047 4047 4 -4048 4047 -1 -4147 4047 -1 -4048 4048 4 -4049 4048 -1 -4148 4048 -1 -4049 4049 4 -4050 4049 -1 -4149 4049 -1 -4050 4050 4 -4051 4050 -1 -4150 4050 -1 -4051 4051 4 -4052 4051 -1 -4151 4051 -1 -4052 4052 4 -4053 4052 -1 -4152 4052 -1 -4053 4053 4 -4054 4053 -1 -4153 4053 -1 -4054 4054 4 -4055 4054 -1 -4154 4054 -1 -4055 4055 4 -4056 4055 -1 -4155 4055 -1 -4056 4056 4 -4057 4056 -1 -4156 4056 -1 -4057 4057 4 -4058 4057 -1 -4157 4057 -1 -4058 4058 4 -4059 4058 -1 -4158 4058 -1 -4059 4059 4 -4060 4059 -1 -4159 4059 -1 -4060 4060 4 -4061 4060 -1 -4160 4060 -1 -4061 4061 4 -4062 4061 -1 -4161 4061 -1 -4062 4062 4 -4063 4062 -1 -4162 4062 -1 -4063 4063 4 -4064 4063 -1 -4163 4063 -1 -4064 4064 4 -4065 4064 -1 -4164 4064 -1 -4065 4065 4 -4066 4065 -1 -4165 4065 -1 -4066 4066 4 -4067 4066 -1 -4166 4066 -1 -4067 4067 4 -4068 4067 -1 -4167 4067 -1 -4068 4068 4 -4069 4068 -1 -4168 4068 -1 -4069 4069 4 -4070 4069 -1 -4169 4069 -1 -4070 4070 4 -4071 4070 -1 -4170 4070 -1 -4071 4071 4 -4072 4071 -1 -4171 4071 -1 -4072 4072 4 -4073 4072 -1 -4172 4072 -1 -4073 4073 4 -4074 4073 -1 -4173 4073 -1 -4074 4074 4 -4075 4074 -1 -4174 4074 -1 -4075 4075 4 -4076 4075 -1 -4175 4075 -1 -4076 4076 4 -4077 4076 -1 -4176 4076 -1 -4077 4077 4 -4078 4077 -1 -4177 4077 -1 -4078 4078 4 -4079 4078 -1 -4178 4078 -1 -4079 4079 4 -4080 4079 -1 -4179 4079 -1 -4080 4080 4 -4081 4080 -1 -4180 4080 -1 -4081 4081 4 -4082 4081 -1 -4181 4081 -1 -4082 4082 4 -4083 4082 -1 -4182 4082 -1 -4083 4083 4 -4084 4083 -1 -4183 4083 -1 -4084 4084 4 -4085 4084 -1 -4184 4084 -1 -4085 4085 4 -4086 4085 -1 -4185 4085 -1 -4086 4086 4 -4087 4086 -1 -4186 4086 -1 -4087 4087 4 -4088 4087 -1 -4187 4087 -1 -4088 4088 4 -4089 4088 -1 -4188 4088 -1 -4089 4089 4 -4090 4089 -1 -4189 4089 -1 -4090 4090 4 -4091 4090 -1 -4190 4090 -1 -4091 4091 4 -4092 4091 -1 -4191 4091 -1 -4092 4092 4 -4093 4092 -1 -4192 4092 -1 -4093 4093 4 -4094 4093 -1 -4193 4093 -1 -4094 4094 4 -4095 4094 -1 -4194 4094 -1 -4095 4095 4 -4096 4095 -1 -4195 4095 -1 -4096 4096 4 -4097 4096 -1 -4196 4096 -1 -4097 4097 4 -4098 4097 -1 -4197 4097 -1 -4098 4098 4 -4099 4098 -1 -4198 4098 -1 -4099 4099 4 -4100 4099 -1 -4199 4099 -1 -4100 4100 4 -4200 4100 -1 -4101 4101 4 -4102 4101 -1 -4201 4101 -1 -4102 4102 4 -4103 4102 -1 -4202 4102 -1 -4103 4103 4 -4104 4103 -1 -4203 4103 -1 -4104 4104 4 -4105 4104 -1 -4204 4104 -1 -4105 4105 4 -4106 4105 -1 -4205 4105 -1 -4106 4106 4 -4107 4106 -1 -4206 4106 -1 -4107 4107 4 -4108 4107 -1 -4207 4107 -1 -4108 4108 4 -4109 4108 -1 -4208 4108 -1 -4109 4109 4 -4110 4109 -1 -4209 4109 -1 -4110 4110 4 -4111 4110 -1 -4210 4110 -1 -4111 4111 4 -4112 4111 -1 -4211 4111 -1 -4112 4112 4 -4113 4112 -1 -4212 4112 -1 -4113 4113 4 -4114 4113 -1 -4213 4113 -1 -4114 4114 4 -4115 4114 -1 -4214 4114 -1 -4115 4115 4 -4116 4115 -1 -4215 4115 -1 -4116 4116 4 -4117 4116 -1 -4216 4116 -1 -4117 4117 4 -4118 4117 -1 -4217 4117 -1 -4118 4118 4 -4119 4118 -1 -4218 4118 -1 -4119 4119 4 -4120 4119 -1 -4219 4119 -1 -4120 4120 4 -4121 4120 -1 -4220 4120 -1 -4121 4121 4 -4122 4121 -1 -4221 4121 -1 -4122 4122 4 -4123 4122 -1 -4222 4122 -1 -4123 4123 4 -4124 4123 -1 -4223 4123 -1 -4124 4124 4 -4125 4124 -1 -4224 4124 -1 -4125 4125 4 -4126 4125 -1 -4225 4125 -1 -4126 4126 4 -4127 4126 -1 -4226 4126 -1 -4127 4127 4 -4128 4127 -1 -4227 4127 -1 -4128 4128 4 -4129 4128 -1 -4228 4128 -1 -4129 4129 4 -4130 4129 -1 -4229 4129 -1 -4130 4130 4 -4131 4130 -1 -4230 4130 -1 -4131 4131 4 -4132 4131 -1 -4231 4131 -1 -4132 4132 4 -4133 4132 -1 -4232 4132 -1 -4133 4133 4 -4134 4133 -1 -4233 4133 -1 -4134 4134 4 -4135 4134 -1 -4234 4134 -1 -4135 4135 4 -4136 4135 -1 -4235 4135 -1 -4136 4136 4 -4137 4136 -1 -4236 4136 -1 -4137 4137 4 -4138 4137 -1 -4237 4137 -1 -4138 4138 4 -4139 4138 -1 -4238 4138 -1 -4139 4139 4 -4140 4139 -1 -4239 4139 -1 -4140 4140 4 -4141 4140 -1 -4240 4140 -1 -4141 4141 4 -4142 4141 -1 -4241 4141 -1 -4142 4142 4 -4143 4142 -1 -4242 4142 -1 -4143 4143 4 -4144 4143 -1 -4243 4143 -1 -4144 4144 4 -4145 4144 -1 -4244 4144 -1 -4145 4145 4 -4146 4145 -1 -4245 4145 -1 -4146 4146 4 -4147 4146 -1 -4246 4146 -1 -4147 4147 4 -4148 4147 -1 -4247 4147 -1 -4148 4148 4 -4149 4148 -1 -4248 4148 -1 -4149 4149 4 -4150 4149 -1 -4249 4149 -1 -4150 4150 4 -4151 4150 -1 -4250 4150 -1 -4151 4151 4 -4152 4151 -1 -4251 4151 -1 -4152 4152 4 -4153 4152 -1 -4252 4152 -1 -4153 4153 4 -4154 4153 -1 -4253 4153 -1 -4154 4154 4 -4155 4154 -1 -4254 4154 -1 -4155 4155 4 -4156 4155 -1 -4255 4155 -1 -4156 4156 4 -4157 4156 -1 -4256 4156 -1 -4157 4157 4 -4158 4157 -1 -4257 4157 -1 -4158 4158 4 -4159 4158 -1 -4258 4158 -1 -4159 4159 4 -4160 4159 -1 -4259 4159 -1 -4160 4160 4 -4161 4160 -1 -4260 4160 -1 -4161 4161 4 -4162 4161 -1 -4261 4161 -1 -4162 4162 4 -4163 4162 -1 -4262 4162 -1 -4163 4163 4 -4164 4163 -1 -4263 4163 -1 -4164 4164 4 -4165 4164 -1 -4264 4164 -1 -4165 4165 4 -4166 4165 -1 -4265 4165 -1 -4166 4166 4 -4167 4166 -1 -4266 4166 -1 -4167 4167 4 -4168 4167 -1 -4267 4167 -1 -4168 4168 4 -4169 4168 -1 -4268 4168 -1 -4169 4169 4 -4170 4169 -1 -4269 4169 -1 -4170 4170 4 -4171 4170 -1 -4270 4170 -1 -4171 4171 4 -4172 4171 -1 -4271 4171 -1 -4172 4172 4 -4173 4172 -1 -4272 4172 -1 -4173 4173 4 -4174 4173 -1 -4273 4173 -1 -4174 4174 4 -4175 4174 -1 -4274 4174 -1 -4175 4175 4 -4176 4175 -1 -4275 4175 -1 -4176 4176 4 -4177 4176 -1 -4276 4176 -1 -4177 4177 4 -4178 4177 -1 -4277 4177 -1 -4178 4178 4 -4179 4178 -1 -4278 4178 -1 -4179 4179 4 -4180 4179 -1 -4279 4179 -1 -4180 4180 4 -4181 4180 -1 -4280 4180 -1 -4181 4181 4 -4182 4181 -1 -4281 4181 -1 -4182 4182 4 -4183 4182 -1 -4282 4182 -1 -4183 4183 4 -4184 4183 -1 -4283 4183 -1 -4184 4184 4 -4185 4184 -1 -4284 4184 -1 -4185 4185 4 -4186 4185 -1 -4285 4185 -1 -4186 4186 4 -4187 4186 -1 -4286 4186 -1 -4187 4187 4 -4188 4187 -1 -4287 4187 -1 -4188 4188 4 -4189 4188 -1 -4288 4188 -1 -4189 4189 4 -4190 4189 -1 -4289 4189 -1 -4190 4190 4 -4191 4190 -1 -4290 4190 -1 -4191 4191 4 -4192 4191 -1 -4291 4191 -1 -4192 4192 4 -4193 4192 -1 -4292 4192 -1 -4193 4193 4 -4194 4193 -1 -4293 4193 -1 -4194 4194 4 -4195 4194 -1 -4294 4194 -1 -4195 4195 4 -4196 4195 -1 -4295 4195 -1 -4196 4196 4 -4197 4196 -1 -4296 4196 -1 -4197 4197 4 -4198 4197 -1 -4297 4197 -1 -4198 4198 4 -4199 4198 -1 -4298 4198 -1 -4199 4199 4 -4200 4199 -1 -4299 4199 -1 -4200 4200 4 -4300 4200 -1 -4201 4201 4 -4202 4201 -1 -4301 4201 -1 -4202 4202 4 -4203 4202 -1 -4302 4202 -1 -4203 4203 4 -4204 4203 -1 -4303 4203 -1 -4204 4204 4 -4205 4204 -1 -4304 4204 -1 -4205 4205 4 -4206 4205 -1 -4305 4205 -1 -4206 4206 4 -4207 4206 -1 -4306 4206 -1 -4207 4207 4 -4208 4207 -1 -4307 4207 -1 -4208 4208 4 -4209 4208 -1 -4308 4208 -1 -4209 4209 4 -4210 4209 -1 -4309 4209 -1 -4210 4210 4 -4211 4210 -1 -4310 4210 -1 -4211 4211 4 -4212 4211 -1 -4311 4211 -1 -4212 4212 4 -4213 4212 -1 -4312 4212 -1 -4213 4213 4 -4214 4213 -1 -4313 4213 -1 -4214 4214 4 -4215 4214 -1 -4314 4214 -1 -4215 4215 4 -4216 4215 -1 -4315 4215 -1 -4216 4216 4 -4217 4216 -1 -4316 4216 -1 -4217 4217 4 -4218 4217 -1 -4317 4217 -1 -4218 4218 4 -4219 4218 -1 -4318 4218 -1 -4219 4219 4 -4220 4219 -1 -4319 4219 -1 -4220 4220 4 -4221 4220 -1 -4320 4220 -1 -4221 4221 4 -4222 4221 -1 -4321 4221 -1 -4222 4222 4 -4223 4222 -1 -4322 4222 -1 -4223 4223 4 -4224 4223 -1 -4323 4223 -1 -4224 4224 4 -4225 4224 -1 -4324 4224 -1 -4225 4225 4 -4226 4225 -1 -4325 4225 -1 -4226 4226 4 -4227 4226 -1 -4326 4226 -1 -4227 4227 4 -4228 4227 -1 -4327 4227 -1 -4228 4228 4 -4229 4228 -1 -4328 4228 -1 -4229 4229 4 -4230 4229 -1 -4329 4229 -1 -4230 4230 4 -4231 4230 -1 -4330 4230 -1 -4231 4231 4 -4232 4231 -1 -4331 4231 -1 -4232 4232 4 -4233 4232 -1 -4332 4232 -1 -4233 4233 4 -4234 4233 -1 -4333 4233 -1 -4234 4234 4 -4235 4234 -1 -4334 4234 -1 -4235 4235 4 -4236 4235 -1 -4335 4235 -1 -4236 4236 4 -4237 4236 -1 -4336 4236 -1 -4237 4237 4 -4238 4237 -1 -4337 4237 -1 -4238 4238 4 -4239 4238 -1 -4338 4238 -1 -4239 4239 4 -4240 4239 -1 -4339 4239 -1 -4240 4240 4 -4241 4240 -1 -4340 4240 -1 -4241 4241 4 -4242 4241 -1 -4341 4241 -1 -4242 4242 4 -4243 4242 -1 -4342 4242 -1 -4243 4243 4 -4244 4243 -1 -4343 4243 -1 -4244 4244 4 -4245 4244 -1 -4344 4244 -1 -4245 4245 4 -4246 4245 -1 -4345 4245 -1 -4246 4246 4 -4247 4246 -1 -4346 4246 -1 -4247 4247 4 -4248 4247 -1 -4347 4247 -1 -4248 4248 4 -4249 4248 -1 -4348 4248 -1 -4249 4249 4 -4250 4249 -1 -4349 4249 -1 -4250 4250 4 -4251 4250 -1 -4350 4250 -1 -4251 4251 4 -4252 4251 -1 -4351 4251 -1 -4252 4252 4 -4253 4252 -1 -4352 4252 -1 -4253 4253 4 -4254 4253 -1 -4353 4253 -1 -4254 4254 4 -4255 4254 -1 -4354 4254 -1 -4255 4255 4 -4256 4255 -1 -4355 4255 -1 -4256 4256 4 -4257 4256 -1 -4356 4256 -1 -4257 4257 4 -4258 4257 -1 -4357 4257 -1 -4258 4258 4 -4259 4258 -1 -4358 4258 -1 -4259 4259 4 -4260 4259 -1 -4359 4259 -1 -4260 4260 4 -4261 4260 -1 -4360 4260 -1 -4261 4261 4 -4262 4261 -1 -4361 4261 -1 -4262 4262 4 -4263 4262 -1 -4362 4262 -1 -4263 4263 4 -4264 4263 -1 -4363 4263 -1 -4264 4264 4 -4265 4264 -1 -4364 4264 -1 -4265 4265 4 -4266 4265 -1 -4365 4265 -1 -4266 4266 4 -4267 4266 -1 -4366 4266 -1 -4267 4267 4 -4268 4267 -1 -4367 4267 -1 -4268 4268 4 -4269 4268 -1 -4368 4268 -1 -4269 4269 4 -4270 4269 -1 -4369 4269 -1 -4270 4270 4 -4271 4270 -1 -4370 4270 -1 -4271 4271 4 -4272 4271 -1 -4371 4271 -1 -4272 4272 4 -4273 4272 -1 -4372 4272 -1 -4273 4273 4 -4274 4273 -1 -4373 4273 -1 -4274 4274 4 -4275 4274 -1 -4374 4274 -1 -4275 4275 4 -4276 4275 -1 -4375 4275 -1 -4276 4276 4 -4277 4276 -1 -4376 4276 -1 -4277 4277 4 -4278 4277 -1 -4377 4277 -1 -4278 4278 4 -4279 4278 -1 -4378 4278 -1 -4279 4279 4 -4280 4279 -1 -4379 4279 -1 -4280 4280 4 -4281 4280 -1 -4380 4280 -1 -4281 4281 4 -4282 4281 -1 -4381 4281 -1 -4282 4282 4 -4283 4282 -1 -4382 4282 -1 -4283 4283 4 -4284 4283 -1 -4383 4283 -1 -4284 4284 4 -4285 4284 -1 -4384 4284 -1 -4285 4285 4 -4286 4285 -1 -4385 4285 -1 -4286 4286 4 -4287 4286 -1 -4386 4286 -1 -4287 4287 4 -4288 4287 -1 -4387 4287 -1 -4288 4288 4 -4289 4288 -1 -4388 4288 -1 -4289 4289 4 -4290 4289 -1 -4389 4289 -1 -4290 4290 4 -4291 4290 -1 -4390 4290 -1 -4291 4291 4 -4292 4291 -1 -4391 4291 -1 -4292 4292 4 -4293 4292 -1 -4392 4292 -1 -4293 4293 4 -4294 4293 -1 -4393 4293 -1 -4294 4294 4 -4295 4294 -1 -4394 4294 -1 -4295 4295 4 -4296 4295 -1 -4395 4295 -1 -4296 4296 4 -4297 4296 -1 -4396 4296 -1 -4297 4297 4 -4298 4297 -1 -4397 4297 -1 -4298 4298 4 -4299 4298 -1 -4398 4298 -1 -4299 4299 4 -4300 4299 -1 -4399 4299 -1 -4300 4300 4 -4400 4300 -1 -4301 4301 4 -4302 4301 -1 -4401 4301 -1 -4302 4302 4 -4303 4302 -1 -4402 4302 -1 -4303 4303 4 -4304 4303 -1 -4403 4303 -1 -4304 4304 4 -4305 4304 -1 -4404 4304 -1 -4305 4305 4 -4306 4305 -1 -4405 4305 -1 -4306 4306 4 -4307 4306 -1 -4406 4306 -1 -4307 4307 4 -4308 4307 -1 -4407 4307 -1 -4308 4308 4 -4309 4308 -1 -4408 4308 -1 -4309 4309 4 -4310 4309 -1 -4409 4309 -1 -4310 4310 4 -4311 4310 -1 -4410 4310 -1 -4311 4311 4 -4312 4311 -1 -4411 4311 -1 -4312 4312 4 -4313 4312 -1 -4412 4312 -1 -4313 4313 4 -4314 4313 -1 -4413 4313 -1 -4314 4314 4 -4315 4314 -1 -4414 4314 -1 -4315 4315 4 -4316 4315 -1 -4415 4315 -1 -4316 4316 4 -4317 4316 -1 -4416 4316 -1 -4317 4317 4 -4318 4317 -1 -4417 4317 -1 -4318 4318 4 -4319 4318 -1 -4418 4318 -1 -4319 4319 4 -4320 4319 -1 -4419 4319 -1 -4320 4320 4 -4321 4320 -1 -4420 4320 -1 -4321 4321 4 -4322 4321 -1 -4421 4321 -1 -4322 4322 4 -4323 4322 -1 -4422 4322 -1 -4323 4323 4 -4324 4323 -1 -4423 4323 -1 -4324 4324 4 -4325 4324 -1 -4424 4324 -1 -4325 4325 4 -4326 4325 -1 -4425 4325 -1 -4326 4326 4 -4327 4326 -1 -4426 4326 -1 -4327 4327 4 -4328 4327 -1 -4427 4327 -1 -4328 4328 4 -4329 4328 -1 -4428 4328 -1 -4329 4329 4 -4330 4329 -1 -4429 4329 -1 -4330 4330 4 -4331 4330 -1 -4430 4330 -1 -4331 4331 4 -4332 4331 -1 -4431 4331 -1 -4332 4332 4 -4333 4332 -1 -4432 4332 -1 -4333 4333 4 -4334 4333 -1 -4433 4333 -1 -4334 4334 4 -4335 4334 -1 -4434 4334 -1 -4335 4335 4 -4336 4335 -1 -4435 4335 -1 -4336 4336 4 -4337 4336 -1 -4436 4336 -1 -4337 4337 4 -4338 4337 -1 -4437 4337 -1 -4338 4338 4 -4339 4338 -1 -4438 4338 -1 -4339 4339 4 -4340 4339 -1 -4439 4339 -1 -4340 4340 4 -4341 4340 -1 -4440 4340 -1 -4341 4341 4 -4342 4341 -1 -4441 4341 -1 -4342 4342 4 -4343 4342 -1 -4442 4342 -1 -4343 4343 4 -4344 4343 -1 -4443 4343 -1 -4344 4344 4 -4345 4344 -1 -4444 4344 -1 -4345 4345 4 -4346 4345 -1 -4445 4345 -1 -4346 4346 4 -4347 4346 -1 -4446 4346 -1 -4347 4347 4 -4348 4347 -1 -4447 4347 -1 -4348 4348 4 -4349 4348 -1 -4448 4348 -1 -4349 4349 4 -4350 4349 -1 -4449 4349 -1 -4350 4350 4 -4351 4350 -1 -4450 4350 -1 -4351 4351 4 -4352 4351 -1 -4451 4351 -1 -4352 4352 4 -4353 4352 -1 -4452 4352 -1 -4353 4353 4 -4354 4353 -1 -4453 4353 -1 -4354 4354 4 -4355 4354 -1 -4454 4354 -1 -4355 4355 4 -4356 4355 -1 -4455 4355 -1 -4356 4356 4 -4357 4356 -1 -4456 4356 -1 -4357 4357 4 -4358 4357 -1 -4457 4357 -1 -4358 4358 4 -4359 4358 -1 -4458 4358 -1 -4359 4359 4 -4360 4359 -1 -4459 4359 -1 -4360 4360 4 -4361 4360 -1 -4460 4360 -1 -4361 4361 4 -4362 4361 -1 -4461 4361 -1 -4362 4362 4 -4363 4362 -1 -4462 4362 -1 -4363 4363 4 -4364 4363 -1 -4463 4363 -1 -4364 4364 4 -4365 4364 -1 -4464 4364 -1 -4365 4365 4 -4366 4365 -1 -4465 4365 -1 -4366 4366 4 -4367 4366 -1 -4466 4366 -1 -4367 4367 4 -4368 4367 -1 -4467 4367 -1 -4368 4368 4 -4369 4368 -1 -4468 4368 -1 -4369 4369 4 -4370 4369 -1 -4469 4369 -1 -4370 4370 4 -4371 4370 -1 -4470 4370 -1 -4371 4371 4 -4372 4371 -1 -4471 4371 -1 -4372 4372 4 -4373 4372 -1 -4472 4372 -1 -4373 4373 4 -4374 4373 -1 -4473 4373 -1 -4374 4374 4 -4375 4374 -1 -4474 4374 -1 -4375 4375 4 -4376 4375 -1 -4475 4375 -1 -4376 4376 4 -4377 4376 -1 -4476 4376 -1 -4377 4377 4 -4378 4377 -1 -4477 4377 -1 -4378 4378 4 -4379 4378 -1 -4478 4378 -1 -4379 4379 4 -4380 4379 -1 -4479 4379 -1 -4380 4380 4 -4381 4380 -1 -4480 4380 -1 -4381 4381 4 -4382 4381 -1 -4481 4381 -1 -4382 4382 4 -4383 4382 -1 -4482 4382 -1 -4383 4383 4 -4384 4383 -1 -4483 4383 -1 -4384 4384 4 -4385 4384 -1 -4484 4384 -1 -4385 4385 4 -4386 4385 -1 -4485 4385 -1 -4386 4386 4 -4387 4386 -1 -4486 4386 -1 -4387 4387 4 -4388 4387 -1 -4487 4387 -1 -4388 4388 4 -4389 4388 -1 -4488 4388 -1 -4389 4389 4 -4390 4389 -1 -4489 4389 -1 -4390 4390 4 -4391 4390 -1 -4490 4390 -1 -4391 4391 4 -4392 4391 -1 -4491 4391 -1 -4392 4392 4 -4393 4392 -1 -4492 4392 -1 -4393 4393 4 -4394 4393 -1 -4493 4393 -1 -4394 4394 4 -4395 4394 -1 -4494 4394 -1 -4395 4395 4 -4396 4395 -1 -4495 4395 -1 -4396 4396 4 -4397 4396 -1 -4496 4396 -1 -4397 4397 4 -4398 4397 -1 -4497 4397 -1 -4398 4398 4 -4399 4398 -1 -4498 4398 -1 -4399 4399 4 -4400 4399 -1 -4499 4399 -1 -4400 4400 4 -4500 4400 -1 -4401 4401 4 -4402 4401 -1 -4501 4401 -1 -4402 4402 4 -4403 4402 -1 -4502 4402 -1 -4403 4403 4 -4404 4403 -1 -4503 4403 -1 -4404 4404 4 -4405 4404 -1 -4504 4404 -1 -4405 4405 4 -4406 4405 -1 -4505 4405 -1 -4406 4406 4 -4407 4406 -1 -4506 4406 -1 -4407 4407 4 -4408 4407 -1 -4507 4407 -1 -4408 4408 4 -4409 4408 -1 -4508 4408 -1 -4409 4409 4 -4410 4409 -1 -4509 4409 -1 -4410 4410 4 -4411 4410 -1 -4510 4410 -1 -4411 4411 4 -4412 4411 -1 -4511 4411 -1 -4412 4412 4 -4413 4412 -1 -4512 4412 -1 -4413 4413 4 -4414 4413 -1 -4513 4413 -1 -4414 4414 4 -4415 4414 -1 -4514 4414 -1 -4415 4415 4 -4416 4415 -1 -4515 4415 -1 -4416 4416 4 -4417 4416 -1 -4516 4416 -1 -4417 4417 4 -4418 4417 -1 -4517 4417 -1 -4418 4418 4 -4419 4418 -1 -4518 4418 -1 -4419 4419 4 -4420 4419 -1 -4519 4419 -1 -4420 4420 4 -4421 4420 -1 -4520 4420 -1 -4421 4421 4 -4422 4421 -1 -4521 4421 -1 -4422 4422 4 -4423 4422 -1 -4522 4422 -1 -4423 4423 4 -4424 4423 -1 -4523 4423 -1 -4424 4424 4 -4425 4424 -1 -4524 4424 -1 -4425 4425 4 -4426 4425 -1 -4525 4425 -1 -4426 4426 4 -4427 4426 -1 -4526 4426 -1 -4427 4427 4 -4428 4427 -1 -4527 4427 -1 -4428 4428 4 -4429 4428 -1 -4528 4428 -1 -4429 4429 4 -4430 4429 -1 -4529 4429 -1 -4430 4430 4 -4431 4430 -1 -4530 4430 -1 -4431 4431 4 -4432 4431 -1 -4531 4431 -1 -4432 4432 4 -4433 4432 -1 -4532 4432 -1 -4433 4433 4 -4434 4433 -1 -4533 4433 -1 -4434 4434 4 -4435 4434 -1 -4534 4434 -1 -4435 4435 4 -4436 4435 -1 -4535 4435 -1 -4436 4436 4 -4437 4436 -1 -4536 4436 -1 -4437 4437 4 -4438 4437 -1 -4537 4437 -1 -4438 4438 4 -4439 4438 -1 -4538 4438 -1 -4439 4439 4 -4440 4439 -1 -4539 4439 -1 -4440 4440 4 -4441 4440 -1 -4540 4440 -1 -4441 4441 4 -4442 4441 -1 -4541 4441 -1 -4442 4442 4 -4443 4442 -1 -4542 4442 -1 -4443 4443 4 -4444 4443 -1 -4543 4443 -1 -4444 4444 4 -4445 4444 -1 -4544 4444 -1 -4445 4445 4 -4446 4445 -1 -4545 4445 -1 -4446 4446 4 -4447 4446 -1 -4546 4446 -1 -4447 4447 4 -4448 4447 -1 -4547 4447 -1 -4448 4448 4 -4449 4448 -1 -4548 4448 -1 -4449 4449 4 -4450 4449 -1 -4549 4449 -1 -4450 4450 4 -4451 4450 -1 -4550 4450 -1 -4451 4451 4 -4452 4451 -1 -4551 4451 -1 -4452 4452 4 -4453 4452 -1 -4552 4452 -1 -4453 4453 4 -4454 4453 -1 -4553 4453 -1 -4454 4454 4 -4455 4454 -1 -4554 4454 -1 -4455 4455 4 -4456 4455 -1 -4555 4455 -1 -4456 4456 4 -4457 4456 -1 -4556 4456 -1 -4457 4457 4 -4458 4457 -1 -4557 4457 -1 -4458 4458 4 -4459 4458 -1 -4558 4458 -1 -4459 4459 4 -4460 4459 -1 -4559 4459 -1 -4460 4460 4 -4461 4460 -1 -4560 4460 -1 -4461 4461 4 -4462 4461 -1 -4561 4461 -1 -4462 4462 4 -4463 4462 -1 -4562 4462 -1 -4463 4463 4 -4464 4463 -1 -4563 4463 -1 -4464 4464 4 -4465 4464 -1 -4564 4464 -1 -4465 4465 4 -4466 4465 -1 -4565 4465 -1 -4466 4466 4 -4467 4466 -1 -4566 4466 -1 -4467 4467 4 -4468 4467 -1 -4567 4467 -1 -4468 4468 4 -4469 4468 -1 -4568 4468 -1 -4469 4469 4 -4470 4469 -1 -4569 4469 -1 -4470 4470 4 -4471 4470 -1 -4570 4470 -1 -4471 4471 4 -4472 4471 -1 -4571 4471 -1 -4472 4472 4 -4473 4472 -1 -4572 4472 -1 -4473 4473 4 -4474 4473 -1 -4573 4473 -1 -4474 4474 4 -4475 4474 -1 -4574 4474 -1 -4475 4475 4 -4476 4475 -1 -4575 4475 -1 -4476 4476 4 -4477 4476 -1 -4576 4476 -1 -4477 4477 4 -4478 4477 -1 -4577 4477 -1 -4478 4478 4 -4479 4478 -1 -4578 4478 -1 -4479 4479 4 -4480 4479 -1 -4579 4479 -1 -4480 4480 4 -4481 4480 -1 -4580 4480 -1 -4481 4481 4 -4482 4481 -1 -4581 4481 -1 -4482 4482 4 -4483 4482 -1 -4582 4482 -1 -4483 4483 4 -4484 4483 -1 -4583 4483 -1 -4484 4484 4 -4485 4484 -1 -4584 4484 -1 -4485 4485 4 -4486 4485 -1 -4585 4485 -1 -4486 4486 4 -4487 4486 -1 -4586 4486 -1 -4487 4487 4 -4488 4487 -1 -4587 4487 -1 -4488 4488 4 -4489 4488 -1 -4588 4488 -1 -4489 4489 4 -4490 4489 -1 -4589 4489 -1 -4490 4490 4 -4491 4490 -1 -4590 4490 -1 -4491 4491 4 -4492 4491 -1 -4591 4491 -1 -4492 4492 4 -4493 4492 -1 -4592 4492 -1 -4493 4493 4 -4494 4493 -1 -4593 4493 -1 -4494 4494 4 -4495 4494 -1 -4594 4494 -1 -4495 4495 4 -4496 4495 -1 -4595 4495 -1 -4496 4496 4 -4497 4496 -1 -4596 4496 -1 -4497 4497 4 -4498 4497 -1 -4597 4497 -1 -4498 4498 4 -4499 4498 -1 -4598 4498 -1 -4499 4499 4 -4500 4499 -1 -4599 4499 -1 -4500 4500 4 -4600 4500 -1 -4501 4501 4 -4502 4501 -1 -4601 4501 -1 -4502 4502 4 -4503 4502 -1 -4602 4502 -1 -4503 4503 4 -4504 4503 -1 -4603 4503 -1 -4504 4504 4 -4505 4504 -1 -4604 4504 -1 -4505 4505 4 -4506 4505 -1 -4605 4505 -1 -4506 4506 4 -4507 4506 -1 -4606 4506 -1 -4507 4507 4 -4508 4507 -1 -4607 4507 -1 -4508 4508 4 -4509 4508 -1 -4608 4508 -1 -4509 4509 4 -4510 4509 -1 -4609 4509 -1 -4510 4510 4 -4511 4510 -1 -4610 4510 -1 -4511 4511 4 -4512 4511 -1 -4611 4511 -1 -4512 4512 4 -4513 4512 -1 -4612 4512 -1 -4513 4513 4 -4514 4513 -1 -4613 4513 -1 -4514 4514 4 -4515 4514 -1 -4614 4514 -1 -4515 4515 4 -4516 4515 -1 -4615 4515 -1 -4516 4516 4 -4517 4516 -1 -4616 4516 -1 -4517 4517 4 -4518 4517 -1 -4617 4517 -1 -4518 4518 4 -4519 4518 -1 -4618 4518 -1 -4519 4519 4 -4520 4519 -1 -4619 4519 -1 -4520 4520 4 -4521 4520 -1 -4620 4520 -1 -4521 4521 4 -4522 4521 -1 -4621 4521 -1 -4522 4522 4 -4523 4522 -1 -4622 4522 -1 -4523 4523 4 -4524 4523 -1 -4623 4523 -1 -4524 4524 4 -4525 4524 -1 -4624 4524 -1 -4525 4525 4 -4526 4525 -1 -4625 4525 -1 -4526 4526 4 -4527 4526 -1 -4626 4526 -1 -4527 4527 4 -4528 4527 -1 -4627 4527 -1 -4528 4528 4 -4529 4528 -1 -4628 4528 -1 -4529 4529 4 -4530 4529 -1 -4629 4529 -1 -4530 4530 4 -4531 4530 -1 -4630 4530 -1 -4531 4531 4 -4532 4531 -1 -4631 4531 -1 -4532 4532 4 -4533 4532 -1 -4632 4532 -1 -4533 4533 4 -4534 4533 -1 -4633 4533 -1 -4534 4534 4 -4535 4534 -1 -4634 4534 -1 -4535 4535 4 -4536 4535 -1 -4635 4535 -1 -4536 4536 4 -4537 4536 -1 -4636 4536 -1 -4537 4537 4 -4538 4537 -1 -4637 4537 -1 -4538 4538 4 -4539 4538 -1 -4638 4538 -1 -4539 4539 4 -4540 4539 -1 -4639 4539 -1 -4540 4540 4 -4541 4540 -1 -4640 4540 -1 -4541 4541 4 -4542 4541 -1 -4641 4541 -1 -4542 4542 4 -4543 4542 -1 -4642 4542 -1 -4543 4543 4 -4544 4543 -1 -4643 4543 -1 -4544 4544 4 -4545 4544 -1 -4644 4544 -1 -4545 4545 4 -4546 4545 -1 -4645 4545 -1 -4546 4546 4 -4547 4546 -1 -4646 4546 -1 -4547 4547 4 -4548 4547 -1 -4647 4547 -1 -4548 4548 4 -4549 4548 -1 -4648 4548 -1 -4549 4549 4 -4550 4549 -1 -4649 4549 -1 -4550 4550 4 -4551 4550 -1 -4650 4550 -1 -4551 4551 4 -4552 4551 -1 -4651 4551 -1 -4552 4552 4 -4553 4552 -1 -4652 4552 -1 -4553 4553 4 -4554 4553 -1 -4653 4553 -1 -4554 4554 4 -4555 4554 -1 -4654 4554 -1 -4555 4555 4 -4556 4555 -1 -4655 4555 -1 -4556 4556 4 -4557 4556 -1 -4656 4556 -1 -4557 4557 4 -4558 4557 -1 -4657 4557 -1 -4558 4558 4 -4559 4558 -1 -4658 4558 -1 -4559 4559 4 -4560 4559 -1 -4659 4559 -1 -4560 4560 4 -4561 4560 -1 -4660 4560 -1 -4561 4561 4 -4562 4561 -1 -4661 4561 -1 -4562 4562 4 -4563 4562 -1 -4662 4562 -1 -4563 4563 4 -4564 4563 -1 -4663 4563 -1 -4564 4564 4 -4565 4564 -1 -4664 4564 -1 -4565 4565 4 -4566 4565 -1 -4665 4565 -1 -4566 4566 4 -4567 4566 -1 -4666 4566 -1 -4567 4567 4 -4568 4567 -1 -4667 4567 -1 -4568 4568 4 -4569 4568 -1 -4668 4568 -1 -4569 4569 4 -4570 4569 -1 -4669 4569 -1 -4570 4570 4 -4571 4570 -1 -4670 4570 -1 -4571 4571 4 -4572 4571 -1 -4671 4571 -1 -4572 4572 4 -4573 4572 -1 -4672 4572 -1 -4573 4573 4 -4574 4573 -1 -4673 4573 -1 -4574 4574 4 -4575 4574 -1 -4674 4574 -1 -4575 4575 4 -4576 4575 -1 -4675 4575 -1 -4576 4576 4 -4577 4576 -1 -4676 4576 -1 -4577 4577 4 -4578 4577 -1 -4677 4577 -1 -4578 4578 4 -4579 4578 -1 -4678 4578 -1 -4579 4579 4 -4580 4579 -1 -4679 4579 -1 -4580 4580 4 -4581 4580 -1 -4680 4580 -1 -4581 4581 4 -4582 4581 -1 -4681 4581 -1 -4582 4582 4 -4583 4582 -1 -4682 4582 -1 -4583 4583 4 -4584 4583 -1 -4683 4583 -1 -4584 4584 4 -4585 4584 -1 -4684 4584 -1 -4585 4585 4 -4586 4585 -1 -4685 4585 -1 -4586 4586 4 -4587 4586 -1 -4686 4586 -1 -4587 4587 4 -4588 4587 -1 -4687 4587 -1 -4588 4588 4 -4589 4588 -1 -4688 4588 -1 -4589 4589 4 -4590 4589 -1 -4689 4589 -1 -4590 4590 4 -4591 4590 -1 -4690 4590 -1 -4591 4591 4 -4592 4591 -1 -4691 4591 -1 -4592 4592 4 -4593 4592 -1 -4692 4592 -1 -4593 4593 4 -4594 4593 -1 -4693 4593 -1 -4594 4594 4 -4595 4594 -1 -4694 4594 -1 -4595 4595 4 -4596 4595 -1 -4695 4595 -1 -4596 4596 4 -4597 4596 -1 -4696 4596 -1 -4597 4597 4 -4598 4597 -1 -4697 4597 -1 -4598 4598 4 -4599 4598 -1 -4698 4598 -1 -4599 4599 4 -4600 4599 -1 -4699 4599 -1 -4600 4600 4 -4700 4600 -1 -4601 4601 4 -4602 4601 -1 -4701 4601 -1 -4602 4602 4 -4603 4602 -1 -4702 4602 -1 -4603 4603 4 -4604 4603 -1 -4703 4603 -1 -4604 4604 4 -4605 4604 -1 -4704 4604 -1 -4605 4605 4 -4606 4605 -1 -4705 4605 -1 -4606 4606 4 -4607 4606 -1 -4706 4606 -1 -4607 4607 4 -4608 4607 -1 -4707 4607 -1 -4608 4608 4 -4609 4608 -1 -4708 4608 -1 -4609 4609 4 -4610 4609 -1 -4709 4609 -1 -4610 4610 4 -4611 4610 -1 -4710 4610 -1 -4611 4611 4 -4612 4611 -1 -4711 4611 -1 -4612 4612 4 -4613 4612 -1 -4712 4612 -1 -4613 4613 4 -4614 4613 -1 -4713 4613 -1 -4614 4614 4 -4615 4614 -1 -4714 4614 -1 -4615 4615 4 -4616 4615 -1 -4715 4615 -1 -4616 4616 4 -4617 4616 -1 -4716 4616 -1 -4617 4617 4 -4618 4617 -1 -4717 4617 -1 -4618 4618 4 -4619 4618 -1 -4718 4618 -1 -4619 4619 4 -4620 4619 -1 -4719 4619 -1 -4620 4620 4 -4621 4620 -1 -4720 4620 -1 -4621 4621 4 -4622 4621 -1 -4721 4621 -1 -4622 4622 4 -4623 4622 -1 -4722 4622 -1 -4623 4623 4 -4624 4623 -1 -4723 4623 -1 -4624 4624 4 -4625 4624 -1 -4724 4624 -1 -4625 4625 4 -4626 4625 -1 -4725 4625 -1 -4626 4626 4 -4627 4626 -1 -4726 4626 -1 -4627 4627 4 -4628 4627 -1 -4727 4627 -1 -4628 4628 4 -4629 4628 -1 -4728 4628 -1 -4629 4629 4 -4630 4629 -1 -4729 4629 -1 -4630 4630 4 -4631 4630 -1 -4730 4630 -1 -4631 4631 4 -4632 4631 -1 -4731 4631 -1 -4632 4632 4 -4633 4632 -1 -4732 4632 -1 -4633 4633 4 -4634 4633 -1 -4733 4633 -1 -4634 4634 4 -4635 4634 -1 -4734 4634 -1 -4635 4635 4 -4636 4635 -1 -4735 4635 -1 -4636 4636 4 -4637 4636 -1 -4736 4636 -1 -4637 4637 4 -4638 4637 -1 -4737 4637 -1 -4638 4638 4 -4639 4638 -1 -4738 4638 -1 -4639 4639 4 -4640 4639 -1 -4739 4639 -1 -4640 4640 4 -4641 4640 -1 -4740 4640 -1 -4641 4641 4 -4642 4641 -1 -4741 4641 -1 -4642 4642 4 -4643 4642 -1 -4742 4642 -1 -4643 4643 4 -4644 4643 -1 -4743 4643 -1 -4644 4644 4 -4645 4644 -1 -4744 4644 -1 -4645 4645 4 -4646 4645 -1 -4745 4645 -1 -4646 4646 4 -4647 4646 -1 -4746 4646 -1 -4647 4647 4 -4648 4647 -1 -4747 4647 -1 -4648 4648 4 -4649 4648 -1 -4748 4648 -1 -4649 4649 4 -4650 4649 -1 -4749 4649 -1 -4650 4650 4 -4651 4650 -1 -4750 4650 -1 -4651 4651 4 -4652 4651 -1 -4751 4651 -1 -4652 4652 4 -4653 4652 -1 -4752 4652 -1 -4653 4653 4 -4654 4653 -1 -4753 4653 -1 -4654 4654 4 -4655 4654 -1 -4754 4654 -1 -4655 4655 4 -4656 4655 -1 -4755 4655 -1 -4656 4656 4 -4657 4656 -1 -4756 4656 -1 -4657 4657 4 -4658 4657 -1 -4757 4657 -1 -4658 4658 4 -4659 4658 -1 -4758 4658 -1 -4659 4659 4 -4660 4659 -1 -4759 4659 -1 -4660 4660 4 -4661 4660 -1 -4760 4660 -1 -4661 4661 4 -4662 4661 -1 -4761 4661 -1 -4662 4662 4 -4663 4662 -1 -4762 4662 -1 -4663 4663 4 -4664 4663 -1 -4763 4663 -1 -4664 4664 4 -4665 4664 -1 -4764 4664 -1 -4665 4665 4 -4666 4665 -1 -4765 4665 -1 -4666 4666 4 -4667 4666 -1 -4766 4666 -1 -4667 4667 4 -4668 4667 -1 -4767 4667 -1 -4668 4668 4 -4669 4668 -1 -4768 4668 -1 -4669 4669 4 -4670 4669 -1 -4769 4669 -1 -4670 4670 4 -4671 4670 -1 -4770 4670 -1 -4671 4671 4 -4672 4671 -1 -4771 4671 -1 -4672 4672 4 -4673 4672 -1 -4772 4672 -1 -4673 4673 4 -4674 4673 -1 -4773 4673 -1 -4674 4674 4 -4675 4674 -1 -4774 4674 -1 -4675 4675 4 -4676 4675 -1 -4775 4675 -1 -4676 4676 4 -4677 4676 -1 -4776 4676 -1 -4677 4677 4 -4678 4677 -1 -4777 4677 -1 -4678 4678 4 -4679 4678 -1 -4778 4678 -1 -4679 4679 4 -4680 4679 -1 -4779 4679 -1 -4680 4680 4 -4681 4680 -1 -4780 4680 -1 -4681 4681 4 -4682 4681 -1 -4781 4681 -1 -4682 4682 4 -4683 4682 -1 -4782 4682 -1 -4683 4683 4 -4684 4683 -1 -4783 4683 -1 -4684 4684 4 -4685 4684 -1 -4784 4684 -1 -4685 4685 4 -4686 4685 -1 -4785 4685 -1 -4686 4686 4 -4687 4686 -1 -4786 4686 -1 -4687 4687 4 -4688 4687 -1 -4787 4687 -1 -4688 4688 4 -4689 4688 -1 -4788 4688 -1 -4689 4689 4 -4690 4689 -1 -4789 4689 -1 -4690 4690 4 -4691 4690 -1 -4790 4690 -1 -4691 4691 4 -4692 4691 -1 -4791 4691 -1 -4692 4692 4 -4693 4692 -1 -4792 4692 -1 -4693 4693 4 -4694 4693 -1 -4793 4693 -1 -4694 4694 4 -4695 4694 -1 -4794 4694 -1 -4695 4695 4 -4696 4695 -1 -4795 4695 -1 -4696 4696 4 -4697 4696 -1 -4796 4696 -1 -4697 4697 4 -4698 4697 -1 -4797 4697 -1 -4698 4698 4 -4699 4698 -1 -4798 4698 -1 -4699 4699 4 -4700 4699 -1 -4799 4699 -1 -4700 4700 4 -4800 4700 -1 -4701 4701 4 -4702 4701 -1 -4801 4701 -1 -4702 4702 4 -4703 4702 -1 -4802 4702 -1 -4703 4703 4 -4704 4703 -1 -4803 4703 -1 -4704 4704 4 -4705 4704 -1 -4804 4704 -1 -4705 4705 4 -4706 4705 -1 -4805 4705 -1 -4706 4706 4 -4707 4706 -1 -4806 4706 -1 -4707 4707 4 -4708 4707 -1 -4807 4707 -1 -4708 4708 4 -4709 4708 -1 -4808 4708 -1 -4709 4709 4 -4710 4709 -1 -4809 4709 -1 -4710 4710 4 -4711 4710 -1 -4810 4710 -1 -4711 4711 4 -4712 4711 -1 -4811 4711 -1 -4712 4712 4 -4713 4712 -1 -4812 4712 -1 -4713 4713 4 -4714 4713 -1 -4813 4713 -1 -4714 4714 4 -4715 4714 -1 -4814 4714 -1 -4715 4715 4 -4716 4715 -1 -4815 4715 -1 -4716 4716 4 -4717 4716 -1 -4816 4716 -1 -4717 4717 4 -4718 4717 -1 -4817 4717 -1 -4718 4718 4 -4719 4718 -1 -4818 4718 -1 -4719 4719 4 -4720 4719 -1 -4819 4719 -1 -4720 4720 4 -4721 4720 -1 -4820 4720 -1 -4721 4721 4 -4722 4721 -1 -4821 4721 -1 -4722 4722 4 -4723 4722 -1 -4822 4722 -1 -4723 4723 4 -4724 4723 -1 -4823 4723 -1 -4724 4724 4 -4725 4724 -1 -4824 4724 -1 -4725 4725 4 -4726 4725 -1 -4825 4725 -1 -4726 4726 4 -4727 4726 -1 -4826 4726 -1 -4727 4727 4 -4728 4727 -1 -4827 4727 -1 -4728 4728 4 -4729 4728 -1 -4828 4728 -1 -4729 4729 4 -4730 4729 -1 -4829 4729 -1 -4730 4730 4 -4731 4730 -1 -4830 4730 -1 -4731 4731 4 -4732 4731 -1 -4831 4731 -1 -4732 4732 4 -4733 4732 -1 -4832 4732 -1 -4733 4733 4 -4734 4733 -1 -4833 4733 -1 -4734 4734 4 -4735 4734 -1 -4834 4734 -1 -4735 4735 4 -4736 4735 -1 -4835 4735 -1 -4736 4736 4 -4737 4736 -1 -4836 4736 -1 -4737 4737 4 -4738 4737 -1 -4837 4737 -1 -4738 4738 4 -4739 4738 -1 -4838 4738 -1 -4739 4739 4 -4740 4739 -1 -4839 4739 -1 -4740 4740 4 -4741 4740 -1 -4840 4740 -1 -4741 4741 4 -4742 4741 -1 -4841 4741 -1 -4742 4742 4 -4743 4742 -1 -4842 4742 -1 -4743 4743 4 -4744 4743 -1 -4843 4743 -1 -4744 4744 4 -4745 4744 -1 -4844 4744 -1 -4745 4745 4 -4746 4745 -1 -4845 4745 -1 -4746 4746 4 -4747 4746 -1 -4846 4746 -1 -4747 4747 4 -4748 4747 -1 -4847 4747 -1 -4748 4748 4 -4749 4748 -1 -4848 4748 -1 -4749 4749 4 -4750 4749 -1 -4849 4749 -1 -4750 4750 4 -4751 4750 -1 -4850 4750 -1 -4751 4751 4 -4752 4751 -1 -4851 4751 -1 -4752 4752 4 -4753 4752 -1 -4852 4752 -1 -4753 4753 4 -4754 4753 -1 -4853 4753 -1 -4754 4754 4 -4755 4754 -1 -4854 4754 -1 -4755 4755 4 -4756 4755 -1 -4855 4755 -1 -4756 4756 4 -4757 4756 -1 -4856 4756 -1 -4757 4757 4 -4758 4757 -1 -4857 4757 -1 -4758 4758 4 -4759 4758 -1 -4858 4758 -1 -4759 4759 4 -4760 4759 -1 -4859 4759 -1 -4760 4760 4 -4761 4760 -1 -4860 4760 -1 -4761 4761 4 -4762 4761 -1 -4861 4761 -1 -4762 4762 4 -4763 4762 -1 -4862 4762 -1 -4763 4763 4 -4764 4763 -1 -4863 4763 -1 -4764 4764 4 -4765 4764 -1 -4864 4764 -1 -4765 4765 4 -4766 4765 -1 -4865 4765 -1 -4766 4766 4 -4767 4766 -1 -4866 4766 -1 -4767 4767 4 -4768 4767 -1 -4867 4767 -1 -4768 4768 4 -4769 4768 -1 -4868 4768 -1 -4769 4769 4 -4770 4769 -1 -4869 4769 -1 -4770 4770 4 -4771 4770 -1 -4870 4770 -1 -4771 4771 4 -4772 4771 -1 -4871 4771 -1 -4772 4772 4 -4773 4772 -1 -4872 4772 -1 -4773 4773 4 -4774 4773 -1 -4873 4773 -1 -4774 4774 4 -4775 4774 -1 -4874 4774 -1 -4775 4775 4 -4776 4775 -1 -4875 4775 -1 -4776 4776 4 -4777 4776 -1 -4876 4776 -1 -4777 4777 4 -4778 4777 -1 -4877 4777 -1 -4778 4778 4 -4779 4778 -1 -4878 4778 -1 -4779 4779 4 -4780 4779 -1 -4879 4779 -1 -4780 4780 4 -4781 4780 -1 -4880 4780 -1 -4781 4781 4 -4782 4781 -1 -4881 4781 -1 -4782 4782 4 -4783 4782 -1 -4882 4782 -1 -4783 4783 4 -4784 4783 -1 -4883 4783 -1 -4784 4784 4 -4785 4784 -1 -4884 4784 -1 -4785 4785 4 -4786 4785 -1 -4885 4785 -1 -4786 4786 4 -4787 4786 -1 -4886 4786 -1 -4787 4787 4 -4788 4787 -1 -4887 4787 -1 -4788 4788 4 -4789 4788 -1 -4888 4788 -1 -4789 4789 4 -4790 4789 -1 -4889 4789 -1 -4790 4790 4 -4791 4790 -1 -4890 4790 -1 -4791 4791 4 -4792 4791 -1 -4891 4791 -1 -4792 4792 4 -4793 4792 -1 -4892 4792 -1 -4793 4793 4 -4794 4793 -1 -4893 4793 -1 -4794 4794 4 -4795 4794 -1 -4894 4794 -1 -4795 4795 4 -4796 4795 -1 -4895 4795 -1 -4796 4796 4 -4797 4796 -1 -4896 4796 -1 -4797 4797 4 -4798 4797 -1 -4897 4797 -1 -4798 4798 4 -4799 4798 -1 -4898 4798 -1 -4799 4799 4 -4800 4799 -1 -4899 4799 -1 -4800 4800 4 -4900 4800 -1 -4801 4801 4 -4802 4801 -1 -4901 4801 -1 -4802 4802 4 -4803 4802 -1 -4902 4802 -1 -4803 4803 4 -4804 4803 -1 -4903 4803 -1 -4804 4804 4 -4805 4804 -1 -4904 4804 -1 -4805 4805 4 -4806 4805 -1 -4905 4805 -1 -4806 4806 4 -4807 4806 -1 -4906 4806 -1 -4807 4807 4 -4808 4807 -1 -4907 4807 -1 -4808 4808 4 -4809 4808 -1 -4908 4808 -1 -4809 4809 4 -4810 4809 -1 -4909 4809 -1 -4810 4810 4 -4811 4810 -1 -4910 4810 -1 -4811 4811 4 -4812 4811 -1 -4911 4811 -1 -4812 4812 4 -4813 4812 -1 -4912 4812 -1 -4813 4813 4 -4814 4813 -1 -4913 4813 -1 -4814 4814 4 -4815 4814 -1 -4914 4814 -1 -4815 4815 4 -4816 4815 -1 -4915 4815 -1 -4816 4816 4 -4817 4816 -1 -4916 4816 -1 -4817 4817 4 -4818 4817 -1 -4917 4817 -1 -4818 4818 4 -4819 4818 -1 -4918 4818 -1 -4819 4819 4 -4820 4819 -1 -4919 4819 -1 -4820 4820 4 -4821 4820 -1 -4920 4820 -1 -4821 4821 4 -4822 4821 -1 -4921 4821 -1 -4822 4822 4 -4823 4822 -1 -4922 4822 -1 -4823 4823 4 -4824 4823 -1 -4923 4823 -1 -4824 4824 4 -4825 4824 -1 -4924 4824 -1 -4825 4825 4 -4826 4825 -1 -4925 4825 -1 -4826 4826 4 -4827 4826 -1 -4926 4826 -1 -4827 4827 4 -4828 4827 -1 -4927 4827 -1 -4828 4828 4 -4829 4828 -1 -4928 4828 -1 -4829 4829 4 -4830 4829 -1 -4929 4829 -1 -4830 4830 4 -4831 4830 -1 -4930 4830 -1 -4831 4831 4 -4832 4831 -1 -4931 4831 -1 -4832 4832 4 -4833 4832 -1 -4932 4832 -1 -4833 4833 4 -4834 4833 -1 -4933 4833 -1 -4834 4834 4 -4835 4834 -1 -4934 4834 -1 -4835 4835 4 -4836 4835 -1 -4935 4835 -1 -4836 4836 4 -4837 4836 -1 -4936 4836 -1 -4837 4837 4 -4838 4837 -1 -4937 4837 -1 -4838 4838 4 -4839 4838 -1 -4938 4838 -1 -4839 4839 4 -4840 4839 -1 -4939 4839 -1 -4840 4840 4 -4841 4840 -1 -4940 4840 -1 -4841 4841 4 -4842 4841 -1 -4941 4841 -1 -4842 4842 4 -4843 4842 -1 -4942 4842 -1 -4843 4843 4 -4844 4843 -1 -4943 4843 -1 -4844 4844 4 -4845 4844 -1 -4944 4844 -1 -4845 4845 4 -4846 4845 -1 -4945 4845 -1 -4846 4846 4 -4847 4846 -1 -4946 4846 -1 -4847 4847 4 -4848 4847 -1 -4947 4847 -1 -4848 4848 4 -4849 4848 -1 -4948 4848 -1 -4849 4849 4 -4850 4849 -1 -4949 4849 -1 -4850 4850 4 -4851 4850 -1 -4950 4850 -1 -4851 4851 4 -4852 4851 -1 -4951 4851 -1 -4852 4852 4 -4853 4852 -1 -4952 4852 -1 -4853 4853 4 -4854 4853 -1 -4953 4853 -1 -4854 4854 4 -4855 4854 -1 -4954 4854 -1 -4855 4855 4 -4856 4855 -1 -4955 4855 -1 -4856 4856 4 -4857 4856 -1 -4956 4856 -1 -4857 4857 4 -4858 4857 -1 -4957 4857 -1 -4858 4858 4 -4859 4858 -1 -4958 4858 -1 -4859 4859 4 -4860 4859 -1 -4959 4859 -1 -4860 4860 4 -4861 4860 -1 -4960 4860 -1 -4861 4861 4 -4862 4861 -1 -4961 4861 -1 -4862 4862 4 -4863 4862 -1 -4962 4862 -1 -4863 4863 4 -4864 4863 -1 -4963 4863 -1 -4864 4864 4 -4865 4864 -1 -4964 4864 -1 -4865 4865 4 -4866 4865 -1 -4965 4865 -1 -4866 4866 4 -4867 4866 -1 -4966 4866 -1 -4867 4867 4 -4868 4867 -1 -4967 4867 -1 -4868 4868 4 -4869 4868 -1 -4968 4868 -1 -4869 4869 4 -4870 4869 -1 -4969 4869 -1 -4870 4870 4 -4871 4870 -1 -4970 4870 -1 -4871 4871 4 -4872 4871 -1 -4971 4871 -1 -4872 4872 4 -4873 4872 -1 -4972 4872 -1 -4873 4873 4 -4874 4873 -1 -4973 4873 -1 -4874 4874 4 -4875 4874 -1 -4974 4874 -1 -4875 4875 4 -4876 4875 -1 -4975 4875 -1 -4876 4876 4 -4877 4876 -1 -4976 4876 -1 -4877 4877 4 -4878 4877 -1 -4977 4877 -1 -4878 4878 4 -4879 4878 -1 -4978 4878 -1 -4879 4879 4 -4880 4879 -1 -4979 4879 -1 -4880 4880 4 -4881 4880 -1 -4980 4880 -1 -4881 4881 4 -4882 4881 -1 -4981 4881 -1 -4882 4882 4 -4883 4882 -1 -4982 4882 -1 -4883 4883 4 -4884 4883 -1 -4983 4883 -1 -4884 4884 4 -4885 4884 -1 -4984 4884 -1 -4885 4885 4 -4886 4885 -1 -4985 4885 -1 -4886 4886 4 -4887 4886 -1 -4986 4886 -1 -4887 4887 4 -4888 4887 -1 -4987 4887 -1 -4888 4888 4 -4889 4888 -1 -4988 4888 -1 -4889 4889 4 -4890 4889 -1 -4989 4889 -1 -4890 4890 4 -4891 4890 -1 -4990 4890 -1 -4891 4891 4 -4892 4891 -1 -4991 4891 -1 -4892 4892 4 -4893 4892 -1 -4992 4892 -1 -4893 4893 4 -4894 4893 -1 -4993 4893 -1 -4894 4894 4 -4895 4894 -1 -4994 4894 -1 -4895 4895 4 -4896 4895 -1 -4995 4895 -1 -4896 4896 4 -4897 4896 -1 -4996 4896 -1 -4897 4897 4 -4898 4897 -1 -4997 4897 -1 -4898 4898 4 -4899 4898 -1 -4998 4898 -1 -4899 4899 4 -4900 4899 -1 -4999 4899 -1 -4900 4900 4 -5000 4900 -1 -4901 4901 4 -4902 4901 -1 -5001 4901 -1 -4902 4902 4 -4903 4902 -1 -5002 4902 -1 -4903 4903 4 -4904 4903 -1 -5003 4903 -1 -4904 4904 4 -4905 4904 -1 -5004 4904 -1 -4905 4905 4 -4906 4905 -1 -5005 4905 -1 -4906 4906 4 -4907 4906 -1 -5006 4906 -1 -4907 4907 4 -4908 4907 -1 -5007 4907 -1 -4908 4908 4 -4909 4908 -1 -5008 4908 -1 -4909 4909 4 -4910 4909 -1 -5009 4909 -1 -4910 4910 4 -4911 4910 -1 -5010 4910 -1 -4911 4911 4 -4912 4911 -1 -5011 4911 -1 -4912 4912 4 -4913 4912 -1 -5012 4912 -1 -4913 4913 4 -4914 4913 -1 -5013 4913 -1 -4914 4914 4 -4915 4914 -1 -5014 4914 -1 -4915 4915 4 -4916 4915 -1 -5015 4915 -1 -4916 4916 4 -4917 4916 -1 -5016 4916 -1 -4917 4917 4 -4918 4917 -1 -5017 4917 -1 -4918 4918 4 -4919 4918 -1 -5018 4918 -1 -4919 4919 4 -4920 4919 -1 -5019 4919 -1 -4920 4920 4 -4921 4920 -1 -5020 4920 -1 -4921 4921 4 -4922 4921 -1 -5021 4921 -1 -4922 4922 4 -4923 4922 -1 -5022 4922 -1 -4923 4923 4 -4924 4923 -1 -5023 4923 -1 -4924 4924 4 -4925 4924 -1 -5024 4924 -1 -4925 4925 4 -4926 4925 -1 -5025 4925 -1 -4926 4926 4 -4927 4926 -1 -5026 4926 -1 -4927 4927 4 -4928 4927 -1 -5027 4927 -1 -4928 4928 4 -4929 4928 -1 -5028 4928 -1 -4929 4929 4 -4930 4929 -1 -5029 4929 -1 -4930 4930 4 -4931 4930 -1 -5030 4930 -1 -4931 4931 4 -4932 4931 -1 -5031 4931 -1 -4932 4932 4 -4933 4932 -1 -5032 4932 -1 -4933 4933 4 -4934 4933 -1 -5033 4933 -1 -4934 4934 4 -4935 4934 -1 -5034 4934 -1 -4935 4935 4 -4936 4935 -1 -5035 4935 -1 -4936 4936 4 -4937 4936 -1 -5036 4936 -1 -4937 4937 4 -4938 4937 -1 -5037 4937 -1 -4938 4938 4 -4939 4938 -1 -5038 4938 -1 -4939 4939 4 -4940 4939 -1 -5039 4939 -1 -4940 4940 4 -4941 4940 -1 -5040 4940 -1 -4941 4941 4 -4942 4941 -1 -5041 4941 -1 -4942 4942 4 -4943 4942 -1 -5042 4942 -1 -4943 4943 4 -4944 4943 -1 -5043 4943 -1 -4944 4944 4 -4945 4944 -1 -5044 4944 -1 -4945 4945 4 -4946 4945 -1 -5045 4945 -1 -4946 4946 4 -4947 4946 -1 -5046 4946 -1 -4947 4947 4 -4948 4947 -1 -5047 4947 -1 -4948 4948 4 -4949 4948 -1 -5048 4948 -1 -4949 4949 4 -4950 4949 -1 -5049 4949 -1 -4950 4950 4 -4951 4950 -1 -5050 4950 -1 -4951 4951 4 -4952 4951 -1 -5051 4951 -1 -4952 4952 4 -4953 4952 -1 -5052 4952 -1 -4953 4953 4 -4954 4953 -1 -5053 4953 -1 -4954 4954 4 -4955 4954 -1 -5054 4954 -1 -4955 4955 4 -4956 4955 -1 -5055 4955 -1 -4956 4956 4 -4957 4956 -1 -5056 4956 -1 -4957 4957 4 -4958 4957 -1 -5057 4957 -1 -4958 4958 4 -4959 4958 -1 -5058 4958 -1 -4959 4959 4 -4960 4959 -1 -5059 4959 -1 -4960 4960 4 -4961 4960 -1 -5060 4960 -1 -4961 4961 4 -4962 4961 -1 -5061 4961 -1 -4962 4962 4 -4963 4962 -1 -5062 4962 -1 -4963 4963 4 -4964 4963 -1 -5063 4963 -1 -4964 4964 4 -4965 4964 -1 -5064 4964 -1 -4965 4965 4 -4966 4965 -1 -5065 4965 -1 -4966 4966 4 -4967 4966 -1 -5066 4966 -1 -4967 4967 4 -4968 4967 -1 -5067 4967 -1 -4968 4968 4 -4969 4968 -1 -5068 4968 -1 -4969 4969 4 -4970 4969 -1 -5069 4969 -1 -4970 4970 4 -4971 4970 -1 -5070 4970 -1 -4971 4971 4 -4972 4971 -1 -5071 4971 -1 -4972 4972 4 -4973 4972 -1 -5072 4972 -1 -4973 4973 4 -4974 4973 -1 -5073 4973 -1 -4974 4974 4 -4975 4974 -1 -5074 4974 -1 -4975 4975 4 -4976 4975 -1 -5075 4975 -1 -4976 4976 4 -4977 4976 -1 -5076 4976 -1 -4977 4977 4 -4978 4977 -1 -5077 4977 -1 -4978 4978 4 -4979 4978 -1 -5078 4978 -1 -4979 4979 4 -4980 4979 -1 -5079 4979 -1 -4980 4980 4 -4981 4980 -1 -5080 4980 -1 -4981 4981 4 -4982 4981 -1 -5081 4981 -1 -4982 4982 4 -4983 4982 -1 -5082 4982 -1 -4983 4983 4 -4984 4983 -1 -5083 4983 -1 -4984 4984 4 -4985 4984 -1 -5084 4984 -1 -4985 4985 4 -4986 4985 -1 -5085 4985 -1 -4986 4986 4 -4987 4986 -1 -5086 4986 -1 -4987 4987 4 -4988 4987 -1 -5087 4987 -1 -4988 4988 4 -4989 4988 -1 -5088 4988 -1 -4989 4989 4 -4990 4989 -1 -5089 4989 -1 -4990 4990 4 -4991 4990 -1 -5090 4990 -1 -4991 4991 4 -4992 4991 -1 -5091 4991 -1 -4992 4992 4 -4993 4992 -1 -5092 4992 -1 -4993 4993 4 -4994 4993 -1 -5093 4993 -1 -4994 4994 4 -4995 4994 -1 -5094 4994 -1 -4995 4995 4 -4996 4995 -1 -5095 4995 -1 -4996 4996 4 -4997 4996 -1 -5096 4996 -1 -4997 4997 4 -4998 4997 -1 -5097 4997 -1 -4998 4998 4 -4999 4998 -1 -5098 4998 -1 -4999 4999 4 -5000 4999 -1 -5099 4999 -1 -5000 5000 4 -5100 5000 -1 -5001 5001 4 -5002 5001 -1 -5101 5001 -1 -5002 5002 4 -5003 5002 -1 -5102 5002 -1 -5003 5003 4 -5004 5003 -1 -5103 5003 -1 -5004 5004 4 -5005 5004 -1 -5104 5004 -1 -5005 5005 4 -5006 5005 -1 -5105 5005 -1 -5006 5006 4 -5007 5006 -1 -5106 5006 -1 -5007 5007 4 -5008 5007 -1 -5107 5007 -1 -5008 5008 4 -5009 5008 -1 -5108 5008 -1 -5009 5009 4 -5010 5009 -1 -5109 5009 -1 -5010 5010 4 -5011 5010 -1 -5110 5010 -1 -5011 5011 4 -5012 5011 -1 -5111 5011 -1 -5012 5012 4 -5013 5012 -1 -5112 5012 -1 -5013 5013 4 -5014 5013 -1 -5113 5013 -1 -5014 5014 4 -5015 5014 -1 -5114 5014 -1 -5015 5015 4 -5016 5015 -1 -5115 5015 -1 -5016 5016 4 -5017 5016 -1 -5116 5016 -1 -5017 5017 4 -5018 5017 -1 -5117 5017 -1 -5018 5018 4 -5019 5018 -1 -5118 5018 -1 -5019 5019 4 -5020 5019 -1 -5119 5019 -1 -5020 5020 4 -5021 5020 -1 -5120 5020 -1 -5021 5021 4 -5022 5021 -1 -5121 5021 -1 -5022 5022 4 -5023 5022 -1 -5122 5022 -1 -5023 5023 4 -5024 5023 -1 -5123 5023 -1 -5024 5024 4 -5025 5024 -1 -5124 5024 -1 -5025 5025 4 -5026 5025 -1 -5125 5025 -1 -5026 5026 4 -5027 5026 -1 -5126 5026 -1 -5027 5027 4 -5028 5027 -1 -5127 5027 -1 -5028 5028 4 -5029 5028 -1 -5128 5028 -1 -5029 5029 4 -5030 5029 -1 -5129 5029 -1 -5030 5030 4 -5031 5030 -1 -5130 5030 -1 -5031 5031 4 -5032 5031 -1 -5131 5031 -1 -5032 5032 4 -5033 5032 -1 -5132 5032 -1 -5033 5033 4 -5034 5033 -1 -5133 5033 -1 -5034 5034 4 -5035 5034 -1 -5134 5034 -1 -5035 5035 4 -5036 5035 -1 -5135 5035 -1 -5036 5036 4 -5037 5036 -1 -5136 5036 -1 -5037 5037 4 -5038 5037 -1 -5137 5037 -1 -5038 5038 4 -5039 5038 -1 -5138 5038 -1 -5039 5039 4 -5040 5039 -1 -5139 5039 -1 -5040 5040 4 -5041 5040 -1 -5140 5040 -1 -5041 5041 4 -5042 5041 -1 -5141 5041 -1 -5042 5042 4 -5043 5042 -1 -5142 5042 -1 -5043 5043 4 -5044 5043 -1 -5143 5043 -1 -5044 5044 4 -5045 5044 -1 -5144 5044 -1 -5045 5045 4 -5046 5045 -1 -5145 5045 -1 -5046 5046 4 -5047 5046 -1 -5146 5046 -1 -5047 5047 4 -5048 5047 -1 -5147 5047 -1 -5048 5048 4 -5049 5048 -1 -5148 5048 -1 -5049 5049 4 -5050 5049 -1 -5149 5049 -1 -5050 5050 4 -5051 5050 -1 -5150 5050 -1 -5051 5051 4 -5052 5051 -1 -5151 5051 -1 -5052 5052 4 -5053 5052 -1 -5152 5052 -1 -5053 5053 4 -5054 5053 -1 -5153 5053 -1 -5054 5054 4 -5055 5054 -1 -5154 5054 -1 -5055 5055 4 -5056 5055 -1 -5155 5055 -1 -5056 5056 4 -5057 5056 -1 -5156 5056 -1 -5057 5057 4 -5058 5057 -1 -5157 5057 -1 -5058 5058 4 -5059 5058 -1 -5158 5058 -1 -5059 5059 4 -5060 5059 -1 -5159 5059 -1 -5060 5060 4 -5061 5060 -1 -5160 5060 -1 -5061 5061 4 -5062 5061 -1 -5161 5061 -1 -5062 5062 4 -5063 5062 -1 -5162 5062 -1 -5063 5063 4 -5064 5063 -1 -5163 5063 -1 -5064 5064 4 -5065 5064 -1 -5164 5064 -1 -5065 5065 4 -5066 5065 -1 -5165 5065 -1 -5066 5066 4 -5067 5066 -1 -5166 5066 -1 -5067 5067 4 -5068 5067 -1 -5167 5067 -1 -5068 5068 4 -5069 5068 -1 -5168 5068 -1 -5069 5069 4 -5070 5069 -1 -5169 5069 -1 -5070 5070 4 -5071 5070 -1 -5170 5070 -1 -5071 5071 4 -5072 5071 -1 -5171 5071 -1 -5072 5072 4 -5073 5072 -1 -5172 5072 -1 -5073 5073 4 -5074 5073 -1 -5173 5073 -1 -5074 5074 4 -5075 5074 -1 -5174 5074 -1 -5075 5075 4 -5076 5075 -1 -5175 5075 -1 -5076 5076 4 -5077 5076 -1 -5176 5076 -1 -5077 5077 4 -5078 5077 -1 -5177 5077 -1 -5078 5078 4 -5079 5078 -1 -5178 5078 -1 -5079 5079 4 -5080 5079 -1 -5179 5079 -1 -5080 5080 4 -5081 5080 -1 -5180 5080 -1 -5081 5081 4 -5082 5081 -1 -5181 5081 -1 -5082 5082 4 -5083 5082 -1 -5182 5082 -1 -5083 5083 4 -5084 5083 -1 -5183 5083 -1 -5084 5084 4 -5085 5084 -1 -5184 5084 -1 -5085 5085 4 -5086 5085 -1 -5185 5085 -1 -5086 5086 4 -5087 5086 -1 -5186 5086 -1 -5087 5087 4 -5088 5087 -1 -5187 5087 -1 -5088 5088 4 -5089 5088 -1 -5188 5088 -1 -5089 5089 4 -5090 5089 -1 -5189 5089 -1 -5090 5090 4 -5091 5090 -1 -5190 5090 -1 -5091 5091 4 -5092 5091 -1 -5191 5091 -1 -5092 5092 4 -5093 5092 -1 -5192 5092 -1 -5093 5093 4 -5094 5093 -1 -5193 5093 -1 -5094 5094 4 -5095 5094 -1 -5194 5094 -1 -5095 5095 4 -5096 5095 -1 -5195 5095 -1 -5096 5096 4 -5097 5096 -1 -5196 5096 -1 -5097 5097 4 -5098 5097 -1 -5197 5097 -1 -5098 5098 4 -5099 5098 -1 -5198 5098 -1 -5099 5099 4 -5100 5099 -1 -5199 5099 -1 -5100 5100 4 -5200 5100 -1 -5101 5101 4 -5102 5101 -1 -5201 5101 -1 -5102 5102 4 -5103 5102 -1 -5202 5102 -1 -5103 5103 4 -5104 5103 -1 -5203 5103 -1 -5104 5104 4 -5105 5104 -1 -5204 5104 -1 -5105 5105 4 -5106 5105 -1 -5205 5105 -1 -5106 5106 4 -5107 5106 -1 -5206 5106 -1 -5107 5107 4 -5108 5107 -1 -5207 5107 -1 -5108 5108 4 -5109 5108 -1 -5208 5108 -1 -5109 5109 4 -5110 5109 -1 -5209 5109 -1 -5110 5110 4 -5111 5110 -1 -5210 5110 -1 -5111 5111 4 -5112 5111 -1 -5211 5111 -1 -5112 5112 4 -5113 5112 -1 -5212 5112 -1 -5113 5113 4 -5114 5113 -1 -5213 5113 -1 -5114 5114 4 -5115 5114 -1 -5214 5114 -1 -5115 5115 4 -5116 5115 -1 -5215 5115 -1 -5116 5116 4 -5117 5116 -1 -5216 5116 -1 -5117 5117 4 -5118 5117 -1 -5217 5117 -1 -5118 5118 4 -5119 5118 -1 -5218 5118 -1 -5119 5119 4 -5120 5119 -1 -5219 5119 -1 -5120 5120 4 -5121 5120 -1 -5220 5120 -1 -5121 5121 4 -5122 5121 -1 -5221 5121 -1 -5122 5122 4 -5123 5122 -1 -5222 5122 -1 -5123 5123 4 -5124 5123 -1 -5223 5123 -1 -5124 5124 4 -5125 5124 -1 -5224 5124 -1 -5125 5125 4 -5126 5125 -1 -5225 5125 -1 -5126 5126 4 -5127 5126 -1 -5226 5126 -1 -5127 5127 4 -5128 5127 -1 -5227 5127 -1 -5128 5128 4 -5129 5128 -1 -5228 5128 -1 -5129 5129 4 -5130 5129 -1 -5229 5129 -1 -5130 5130 4 -5131 5130 -1 -5230 5130 -1 -5131 5131 4 -5132 5131 -1 -5231 5131 -1 -5132 5132 4 -5133 5132 -1 -5232 5132 -1 -5133 5133 4 -5134 5133 -1 -5233 5133 -1 -5134 5134 4 -5135 5134 -1 -5234 5134 -1 -5135 5135 4 -5136 5135 -1 -5235 5135 -1 -5136 5136 4 -5137 5136 -1 -5236 5136 -1 -5137 5137 4 -5138 5137 -1 -5237 5137 -1 -5138 5138 4 -5139 5138 -1 -5238 5138 -1 -5139 5139 4 -5140 5139 -1 -5239 5139 -1 -5140 5140 4 -5141 5140 -1 -5240 5140 -1 -5141 5141 4 -5142 5141 -1 -5241 5141 -1 -5142 5142 4 -5143 5142 -1 -5242 5142 -1 -5143 5143 4 -5144 5143 -1 -5243 5143 -1 -5144 5144 4 -5145 5144 -1 -5244 5144 -1 -5145 5145 4 -5146 5145 -1 -5245 5145 -1 -5146 5146 4 -5147 5146 -1 -5246 5146 -1 -5147 5147 4 -5148 5147 -1 -5247 5147 -1 -5148 5148 4 -5149 5148 -1 -5248 5148 -1 -5149 5149 4 -5150 5149 -1 -5249 5149 -1 -5150 5150 4 -5151 5150 -1 -5250 5150 -1 -5151 5151 4 -5152 5151 -1 -5251 5151 -1 -5152 5152 4 -5153 5152 -1 -5252 5152 -1 -5153 5153 4 -5154 5153 -1 -5253 5153 -1 -5154 5154 4 -5155 5154 -1 -5254 5154 -1 -5155 5155 4 -5156 5155 -1 -5255 5155 -1 -5156 5156 4 -5157 5156 -1 -5256 5156 -1 -5157 5157 4 -5158 5157 -1 -5257 5157 -1 -5158 5158 4 -5159 5158 -1 -5258 5158 -1 -5159 5159 4 -5160 5159 -1 -5259 5159 -1 -5160 5160 4 -5161 5160 -1 -5260 5160 -1 -5161 5161 4 -5162 5161 -1 -5261 5161 -1 -5162 5162 4 -5163 5162 -1 -5262 5162 -1 -5163 5163 4 -5164 5163 -1 -5263 5163 -1 -5164 5164 4 -5165 5164 -1 -5264 5164 -1 -5165 5165 4 -5166 5165 -1 -5265 5165 -1 -5166 5166 4 -5167 5166 -1 -5266 5166 -1 -5167 5167 4 -5168 5167 -1 -5267 5167 -1 -5168 5168 4 -5169 5168 -1 -5268 5168 -1 -5169 5169 4 -5170 5169 -1 -5269 5169 -1 -5170 5170 4 -5171 5170 -1 -5270 5170 -1 -5171 5171 4 -5172 5171 -1 -5271 5171 -1 -5172 5172 4 -5173 5172 -1 -5272 5172 -1 -5173 5173 4 -5174 5173 -1 -5273 5173 -1 -5174 5174 4 -5175 5174 -1 -5274 5174 -1 -5175 5175 4 -5176 5175 -1 -5275 5175 -1 -5176 5176 4 -5177 5176 -1 -5276 5176 -1 -5177 5177 4 -5178 5177 -1 -5277 5177 -1 -5178 5178 4 -5179 5178 -1 -5278 5178 -1 -5179 5179 4 -5180 5179 -1 -5279 5179 -1 -5180 5180 4 -5181 5180 -1 -5280 5180 -1 -5181 5181 4 -5182 5181 -1 -5281 5181 -1 -5182 5182 4 -5183 5182 -1 -5282 5182 -1 -5183 5183 4 -5184 5183 -1 -5283 5183 -1 -5184 5184 4 -5185 5184 -1 -5284 5184 -1 -5185 5185 4 -5186 5185 -1 -5285 5185 -1 -5186 5186 4 -5187 5186 -1 -5286 5186 -1 -5187 5187 4 -5188 5187 -1 -5287 5187 -1 -5188 5188 4 -5189 5188 -1 -5288 5188 -1 -5189 5189 4 -5190 5189 -1 -5289 5189 -1 -5190 5190 4 -5191 5190 -1 -5290 5190 -1 -5191 5191 4 -5192 5191 -1 -5291 5191 -1 -5192 5192 4 -5193 5192 -1 -5292 5192 -1 -5193 5193 4 -5194 5193 -1 -5293 5193 -1 -5194 5194 4 -5195 5194 -1 -5294 5194 -1 -5195 5195 4 -5196 5195 -1 -5295 5195 -1 -5196 5196 4 -5197 5196 -1 -5296 5196 -1 -5197 5197 4 -5198 5197 -1 -5297 5197 -1 -5198 5198 4 -5199 5198 -1 -5298 5198 -1 -5199 5199 4 -5200 5199 -1 -5299 5199 -1 -5200 5200 4 -5300 5200 -1 -5201 5201 4 -5202 5201 -1 -5301 5201 -1 -5202 5202 4 -5203 5202 -1 -5302 5202 -1 -5203 5203 4 -5204 5203 -1 -5303 5203 -1 -5204 5204 4 -5205 5204 -1 -5304 5204 -1 -5205 5205 4 -5206 5205 -1 -5305 5205 -1 -5206 5206 4 -5207 5206 -1 -5306 5206 -1 -5207 5207 4 -5208 5207 -1 -5307 5207 -1 -5208 5208 4 -5209 5208 -1 -5308 5208 -1 -5209 5209 4 -5210 5209 -1 -5309 5209 -1 -5210 5210 4 -5211 5210 -1 -5310 5210 -1 -5211 5211 4 -5212 5211 -1 -5311 5211 -1 -5212 5212 4 -5213 5212 -1 -5312 5212 -1 -5213 5213 4 -5214 5213 -1 -5313 5213 -1 -5214 5214 4 -5215 5214 -1 -5314 5214 -1 -5215 5215 4 -5216 5215 -1 -5315 5215 -1 -5216 5216 4 -5217 5216 -1 -5316 5216 -1 -5217 5217 4 -5218 5217 -1 -5317 5217 -1 -5218 5218 4 -5219 5218 -1 -5318 5218 -1 -5219 5219 4 -5220 5219 -1 -5319 5219 -1 -5220 5220 4 -5221 5220 -1 -5320 5220 -1 -5221 5221 4 -5222 5221 -1 -5321 5221 -1 -5222 5222 4 -5223 5222 -1 -5322 5222 -1 -5223 5223 4 -5224 5223 -1 -5323 5223 -1 -5224 5224 4 -5225 5224 -1 -5324 5224 -1 -5225 5225 4 -5226 5225 -1 -5325 5225 -1 -5226 5226 4 -5227 5226 -1 -5326 5226 -1 -5227 5227 4 -5228 5227 -1 -5327 5227 -1 -5228 5228 4 -5229 5228 -1 -5328 5228 -1 -5229 5229 4 -5230 5229 -1 -5329 5229 -1 -5230 5230 4 -5231 5230 -1 -5330 5230 -1 -5231 5231 4 -5232 5231 -1 -5331 5231 -1 -5232 5232 4 -5233 5232 -1 -5332 5232 -1 -5233 5233 4 -5234 5233 -1 -5333 5233 -1 -5234 5234 4 -5235 5234 -1 -5334 5234 -1 -5235 5235 4 -5236 5235 -1 -5335 5235 -1 -5236 5236 4 -5237 5236 -1 -5336 5236 -1 -5237 5237 4 -5238 5237 -1 -5337 5237 -1 -5238 5238 4 -5239 5238 -1 -5338 5238 -1 -5239 5239 4 -5240 5239 -1 -5339 5239 -1 -5240 5240 4 -5241 5240 -1 -5340 5240 -1 -5241 5241 4 -5242 5241 -1 -5341 5241 -1 -5242 5242 4 -5243 5242 -1 -5342 5242 -1 -5243 5243 4 -5244 5243 -1 -5343 5243 -1 -5244 5244 4 -5245 5244 -1 -5344 5244 -1 -5245 5245 4 -5246 5245 -1 -5345 5245 -1 -5246 5246 4 -5247 5246 -1 -5346 5246 -1 -5247 5247 4 -5248 5247 -1 -5347 5247 -1 -5248 5248 4 -5249 5248 -1 -5348 5248 -1 -5249 5249 4 -5250 5249 -1 -5349 5249 -1 -5250 5250 4 -5251 5250 -1 -5350 5250 -1 -5251 5251 4 -5252 5251 -1 -5351 5251 -1 -5252 5252 4 -5253 5252 -1 -5352 5252 -1 -5253 5253 4 -5254 5253 -1 -5353 5253 -1 -5254 5254 4 -5255 5254 -1 -5354 5254 -1 -5255 5255 4 -5256 5255 -1 -5355 5255 -1 -5256 5256 4 -5257 5256 -1 -5356 5256 -1 -5257 5257 4 -5258 5257 -1 -5357 5257 -1 -5258 5258 4 -5259 5258 -1 -5358 5258 -1 -5259 5259 4 -5260 5259 -1 -5359 5259 -1 -5260 5260 4 -5261 5260 -1 -5360 5260 -1 -5261 5261 4 -5262 5261 -1 -5361 5261 -1 -5262 5262 4 -5263 5262 -1 -5362 5262 -1 -5263 5263 4 -5264 5263 -1 -5363 5263 -1 -5264 5264 4 -5265 5264 -1 -5364 5264 -1 -5265 5265 4 -5266 5265 -1 -5365 5265 -1 -5266 5266 4 -5267 5266 -1 -5366 5266 -1 -5267 5267 4 -5268 5267 -1 -5367 5267 -1 -5268 5268 4 -5269 5268 -1 -5368 5268 -1 -5269 5269 4 -5270 5269 -1 -5369 5269 -1 -5270 5270 4 -5271 5270 -1 -5370 5270 -1 -5271 5271 4 -5272 5271 -1 -5371 5271 -1 -5272 5272 4 -5273 5272 -1 -5372 5272 -1 -5273 5273 4 -5274 5273 -1 -5373 5273 -1 -5274 5274 4 -5275 5274 -1 -5374 5274 -1 -5275 5275 4 -5276 5275 -1 -5375 5275 -1 -5276 5276 4 -5277 5276 -1 -5376 5276 -1 -5277 5277 4 -5278 5277 -1 -5377 5277 -1 -5278 5278 4 -5279 5278 -1 -5378 5278 -1 -5279 5279 4 -5280 5279 -1 -5379 5279 -1 -5280 5280 4 -5281 5280 -1 -5380 5280 -1 -5281 5281 4 -5282 5281 -1 -5381 5281 -1 -5282 5282 4 -5283 5282 -1 -5382 5282 -1 -5283 5283 4 -5284 5283 -1 -5383 5283 -1 -5284 5284 4 -5285 5284 -1 -5384 5284 -1 -5285 5285 4 -5286 5285 -1 -5385 5285 -1 -5286 5286 4 -5287 5286 -1 -5386 5286 -1 -5287 5287 4 -5288 5287 -1 -5387 5287 -1 -5288 5288 4 -5289 5288 -1 -5388 5288 -1 -5289 5289 4 -5290 5289 -1 -5389 5289 -1 -5290 5290 4 -5291 5290 -1 -5390 5290 -1 -5291 5291 4 -5292 5291 -1 -5391 5291 -1 -5292 5292 4 -5293 5292 -1 -5392 5292 -1 -5293 5293 4 -5294 5293 -1 -5393 5293 -1 -5294 5294 4 -5295 5294 -1 -5394 5294 -1 -5295 5295 4 -5296 5295 -1 -5395 5295 -1 -5296 5296 4 -5297 5296 -1 -5396 5296 -1 -5297 5297 4 -5298 5297 -1 -5397 5297 -1 -5298 5298 4 -5299 5298 -1 -5398 5298 -1 -5299 5299 4 -5300 5299 -1 -5399 5299 -1 -5300 5300 4 -5400 5300 -1 -5301 5301 4 -5302 5301 -1 -5401 5301 -1 -5302 5302 4 -5303 5302 -1 -5402 5302 -1 -5303 5303 4 -5304 5303 -1 -5403 5303 -1 -5304 5304 4 -5305 5304 -1 -5404 5304 -1 -5305 5305 4 -5306 5305 -1 -5405 5305 -1 -5306 5306 4 -5307 5306 -1 -5406 5306 -1 -5307 5307 4 -5308 5307 -1 -5407 5307 -1 -5308 5308 4 -5309 5308 -1 -5408 5308 -1 -5309 5309 4 -5310 5309 -1 -5409 5309 -1 -5310 5310 4 -5311 5310 -1 -5410 5310 -1 -5311 5311 4 -5312 5311 -1 -5411 5311 -1 -5312 5312 4 -5313 5312 -1 -5412 5312 -1 -5313 5313 4 -5314 5313 -1 -5413 5313 -1 -5314 5314 4 -5315 5314 -1 -5414 5314 -1 -5315 5315 4 -5316 5315 -1 -5415 5315 -1 -5316 5316 4 -5317 5316 -1 -5416 5316 -1 -5317 5317 4 -5318 5317 -1 -5417 5317 -1 -5318 5318 4 -5319 5318 -1 -5418 5318 -1 -5319 5319 4 -5320 5319 -1 -5419 5319 -1 -5320 5320 4 -5321 5320 -1 -5420 5320 -1 -5321 5321 4 -5322 5321 -1 -5421 5321 -1 -5322 5322 4 -5323 5322 -1 -5422 5322 -1 -5323 5323 4 -5324 5323 -1 -5423 5323 -1 -5324 5324 4 -5325 5324 -1 -5424 5324 -1 -5325 5325 4 -5326 5325 -1 -5425 5325 -1 -5326 5326 4 -5327 5326 -1 -5426 5326 -1 -5327 5327 4 -5328 5327 -1 -5427 5327 -1 -5328 5328 4 -5329 5328 -1 -5428 5328 -1 -5329 5329 4 -5330 5329 -1 -5429 5329 -1 -5330 5330 4 -5331 5330 -1 -5430 5330 -1 -5331 5331 4 -5332 5331 -1 -5431 5331 -1 -5332 5332 4 -5333 5332 -1 -5432 5332 -1 -5333 5333 4 -5334 5333 -1 -5433 5333 -1 -5334 5334 4 -5335 5334 -1 -5434 5334 -1 -5335 5335 4 -5336 5335 -1 -5435 5335 -1 -5336 5336 4 -5337 5336 -1 -5436 5336 -1 -5337 5337 4 -5338 5337 -1 -5437 5337 -1 -5338 5338 4 -5339 5338 -1 -5438 5338 -1 -5339 5339 4 -5340 5339 -1 -5439 5339 -1 -5340 5340 4 -5341 5340 -1 -5440 5340 -1 -5341 5341 4 -5342 5341 -1 -5441 5341 -1 -5342 5342 4 -5343 5342 -1 -5442 5342 -1 -5343 5343 4 -5344 5343 -1 -5443 5343 -1 -5344 5344 4 -5345 5344 -1 -5444 5344 -1 -5345 5345 4 -5346 5345 -1 -5445 5345 -1 -5346 5346 4 -5347 5346 -1 -5446 5346 -1 -5347 5347 4 -5348 5347 -1 -5447 5347 -1 -5348 5348 4 -5349 5348 -1 -5448 5348 -1 -5349 5349 4 -5350 5349 -1 -5449 5349 -1 -5350 5350 4 -5351 5350 -1 -5450 5350 -1 -5351 5351 4 -5352 5351 -1 -5451 5351 -1 -5352 5352 4 -5353 5352 -1 -5452 5352 -1 -5353 5353 4 -5354 5353 -1 -5453 5353 -1 -5354 5354 4 -5355 5354 -1 -5454 5354 -1 -5355 5355 4 -5356 5355 -1 -5455 5355 -1 -5356 5356 4 -5357 5356 -1 -5456 5356 -1 -5357 5357 4 -5358 5357 -1 -5457 5357 -1 -5358 5358 4 -5359 5358 -1 -5458 5358 -1 -5359 5359 4 -5360 5359 -1 -5459 5359 -1 -5360 5360 4 -5361 5360 -1 -5460 5360 -1 -5361 5361 4 -5362 5361 -1 -5461 5361 -1 -5362 5362 4 -5363 5362 -1 -5462 5362 -1 -5363 5363 4 -5364 5363 -1 -5463 5363 -1 -5364 5364 4 -5365 5364 -1 -5464 5364 -1 -5365 5365 4 -5366 5365 -1 -5465 5365 -1 -5366 5366 4 -5367 5366 -1 -5466 5366 -1 -5367 5367 4 -5368 5367 -1 -5467 5367 -1 -5368 5368 4 -5369 5368 -1 -5468 5368 -1 -5369 5369 4 -5370 5369 -1 -5469 5369 -1 -5370 5370 4 -5371 5370 -1 -5470 5370 -1 -5371 5371 4 -5372 5371 -1 -5471 5371 -1 -5372 5372 4 -5373 5372 -1 -5472 5372 -1 -5373 5373 4 -5374 5373 -1 -5473 5373 -1 -5374 5374 4 -5375 5374 -1 -5474 5374 -1 -5375 5375 4 -5376 5375 -1 -5475 5375 -1 -5376 5376 4 -5377 5376 -1 -5476 5376 -1 -5377 5377 4 -5378 5377 -1 -5477 5377 -1 -5378 5378 4 -5379 5378 -1 -5478 5378 -1 -5379 5379 4 -5380 5379 -1 -5479 5379 -1 -5380 5380 4 -5381 5380 -1 -5480 5380 -1 -5381 5381 4 -5382 5381 -1 -5481 5381 -1 -5382 5382 4 -5383 5382 -1 -5482 5382 -1 -5383 5383 4 -5384 5383 -1 -5483 5383 -1 -5384 5384 4 -5385 5384 -1 -5484 5384 -1 -5385 5385 4 -5386 5385 -1 -5485 5385 -1 -5386 5386 4 -5387 5386 -1 -5486 5386 -1 -5387 5387 4 -5388 5387 -1 -5487 5387 -1 -5388 5388 4 -5389 5388 -1 -5488 5388 -1 -5389 5389 4 -5390 5389 -1 -5489 5389 -1 -5390 5390 4 -5391 5390 -1 -5490 5390 -1 -5391 5391 4 -5392 5391 -1 -5491 5391 -1 -5392 5392 4 -5393 5392 -1 -5492 5392 -1 -5393 5393 4 -5394 5393 -1 -5493 5393 -1 -5394 5394 4 -5395 5394 -1 -5494 5394 -1 -5395 5395 4 -5396 5395 -1 -5495 5395 -1 -5396 5396 4 -5397 5396 -1 -5496 5396 -1 -5397 5397 4 -5398 5397 -1 -5497 5397 -1 -5398 5398 4 -5399 5398 -1 -5498 5398 -1 -5399 5399 4 -5400 5399 -1 -5499 5399 -1 -5400 5400 4 -5500 5400 -1 -5401 5401 4 -5402 5401 -1 -5501 5401 -1 -5402 5402 4 -5403 5402 -1 -5502 5402 -1 -5403 5403 4 -5404 5403 -1 -5503 5403 -1 -5404 5404 4 -5405 5404 -1 -5504 5404 -1 -5405 5405 4 -5406 5405 -1 -5505 5405 -1 -5406 5406 4 -5407 5406 -1 -5506 5406 -1 -5407 5407 4 -5408 5407 -1 -5507 5407 -1 -5408 5408 4 -5409 5408 -1 -5508 5408 -1 -5409 5409 4 -5410 5409 -1 -5509 5409 -1 -5410 5410 4 -5411 5410 -1 -5510 5410 -1 -5411 5411 4 -5412 5411 -1 -5511 5411 -1 -5412 5412 4 -5413 5412 -1 -5512 5412 -1 -5413 5413 4 -5414 5413 -1 -5513 5413 -1 -5414 5414 4 -5415 5414 -1 -5514 5414 -1 -5415 5415 4 -5416 5415 -1 -5515 5415 -1 -5416 5416 4 -5417 5416 -1 -5516 5416 -1 -5417 5417 4 -5418 5417 -1 -5517 5417 -1 -5418 5418 4 -5419 5418 -1 -5518 5418 -1 -5419 5419 4 -5420 5419 -1 -5519 5419 -1 -5420 5420 4 -5421 5420 -1 -5520 5420 -1 -5421 5421 4 -5422 5421 -1 -5521 5421 -1 -5422 5422 4 -5423 5422 -1 -5522 5422 -1 -5423 5423 4 -5424 5423 -1 -5523 5423 -1 -5424 5424 4 -5425 5424 -1 -5524 5424 -1 -5425 5425 4 -5426 5425 -1 -5525 5425 -1 -5426 5426 4 -5427 5426 -1 -5526 5426 -1 -5427 5427 4 -5428 5427 -1 -5527 5427 -1 -5428 5428 4 -5429 5428 -1 -5528 5428 -1 -5429 5429 4 -5430 5429 -1 -5529 5429 -1 -5430 5430 4 -5431 5430 -1 -5530 5430 -1 -5431 5431 4 -5432 5431 -1 -5531 5431 -1 -5432 5432 4 -5433 5432 -1 -5532 5432 -1 -5433 5433 4 -5434 5433 -1 -5533 5433 -1 -5434 5434 4 -5435 5434 -1 -5534 5434 -1 -5435 5435 4 -5436 5435 -1 -5535 5435 -1 -5436 5436 4 -5437 5436 -1 -5536 5436 -1 -5437 5437 4 -5438 5437 -1 -5537 5437 -1 -5438 5438 4 -5439 5438 -1 -5538 5438 -1 -5439 5439 4 -5440 5439 -1 -5539 5439 -1 -5440 5440 4 -5441 5440 -1 -5540 5440 -1 -5441 5441 4 -5442 5441 -1 -5541 5441 -1 -5442 5442 4 -5443 5442 -1 -5542 5442 -1 -5443 5443 4 -5444 5443 -1 -5543 5443 -1 -5444 5444 4 -5445 5444 -1 -5544 5444 -1 -5445 5445 4 -5446 5445 -1 -5545 5445 -1 -5446 5446 4 -5447 5446 -1 -5546 5446 -1 -5447 5447 4 -5448 5447 -1 -5547 5447 -1 -5448 5448 4 -5449 5448 -1 -5548 5448 -1 -5449 5449 4 -5450 5449 -1 -5549 5449 -1 -5450 5450 4 -5451 5450 -1 -5550 5450 -1 -5451 5451 4 -5452 5451 -1 -5551 5451 -1 -5452 5452 4 -5453 5452 -1 -5552 5452 -1 -5453 5453 4 -5454 5453 -1 -5553 5453 -1 -5454 5454 4 -5455 5454 -1 -5554 5454 -1 -5455 5455 4 -5456 5455 -1 -5555 5455 -1 -5456 5456 4 -5457 5456 -1 -5556 5456 -1 -5457 5457 4 -5458 5457 -1 -5557 5457 -1 -5458 5458 4 -5459 5458 -1 -5558 5458 -1 -5459 5459 4 -5460 5459 -1 -5559 5459 -1 -5460 5460 4 -5461 5460 -1 -5560 5460 -1 -5461 5461 4 -5462 5461 -1 -5561 5461 -1 -5462 5462 4 -5463 5462 -1 -5562 5462 -1 -5463 5463 4 -5464 5463 -1 -5563 5463 -1 -5464 5464 4 -5465 5464 -1 -5564 5464 -1 -5465 5465 4 -5466 5465 -1 -5565 5465 -1 -5466 5466 4 -5467 5466 -1 -5566 5466 -1 -5467 5467 4 -5468 5467 -1 -5567 5467 -1 -5468 5468 4 -5469 5468 -1 -5568 5468 -1 -5469 5469 4 -5470 5469 -1 -5569 5469 -1 -5470 5470 4 -5471 5470 -1 -5570 5470 -1 -5471 5471 4 -5472 5471 -1 -5571 5471 -1 -5472 5472 4 -5473 5472 -1 -5572 5472 -1 -5473 5473 4 -5474 5473 -1 -5573 5473 -1 -5474 5474 4 -5475 5474 -1 -5574 5474 -1 -5475 5475 4 -5476 5475 -1 -5575 5475 -1 -5476 5476 4 -5477 5476 -1 -5576 5476 -1 -5477 5477 4 -5478 5477 -1 -5577 5477 -1 -5478 5478 4 -5479 5478 -1 -5578 5478 -1 -5479 5479 4 -5480 5479 -1 -5579 5479 -1 -5480 5480 4 -5481 5480 -1 -5580 5480 -1 -5481 5481 4 -5482 5481 -1 -5581 5481 -1 -5482 5482 4 -5483 5482 -1 -5582 5482 -1 -5483 5483 4 -5484 5483 -1 -5583 5483 -1 -5484 5484 4 -5485 5484 -1 -5584 5484 -1 -5485 5485 4 -5486 5485 -1 -5585 5485 -1 -5486 5486 4 -5487 5486 -1 -5586 5486 -1 -5487 5487 4 -5488 5487 -1 -5587 5487 -1 -5488 5488 4 -5489 5488 -1 -5588 5488 -1 -5489 5489 4 -5490 5489 -1 -5589 5489 -1 -5490 5490 4 -5491 5490 -1 -5590 5490 -1 -5491 5491 4 -5492 5491 -1 -5591 5491 -1 -5492 5492 4 -5493 5492 -1 -5592 5492 -1 -5493 5493 4 -5494 5493 -1 -5593 5493 -1 -5494 5494 4 -5495 5494 -1 -5594 5494 -1 -5495 5495 4 -5496 5495 -1 -5595 5495 -1 -5496 5496 4 -5497 5496 -1 -5596 5496 -1 -5497 5497 4 -5498 5497 -1 -5597 5497 -1 -5498 5498 4 -5499 5498 -1 -5598 5498 -1 -5499 5499 4 -5500 5499 -1 -5599 5499 -1 -5500 5500 4 -5600 5500 -1 -5501 5501 4 -5502 5501 -1 -5601 5501 -1 -5502 5502 4 -5503 5502 -1 -5602 5502 -1 -5503 5503 4 -5504 5503 -1 -5603 5503 -1 -5504 5504 4 -5505 5504 -1 -5604 5504 -1 -5505 5505 4 -5506 5505 -1 -5605 5505 -1 -5506 5506 4 -5507 5506 -1 -5606 5506 -1 -5507 5507 4 -5508 5507 -1 -5607 5507 -1 -5508 5508 4 -5509 5508 -1 -5608 5508 -1 -5509 5509 4 -5510 5509 -1 -5609 5509 -1 -5510 5510 4 -5511 5510 -1 -5610 5510 -1 -5511 5511 4 -5512 5511 -1 -5611 5511 -1 -5512 5512 4 -5513 5512 -1 -5612 5512 -1 -5513 5513 4 -5514 5513 -1 -5613 5513 -1 -5514 5514 4 -5515 5514 -1 -5614 5514 -1 -5515 5515 4 -5516 5515 -1 -5615 5515 -1 -5516 5516 4 -5517 5516 -1 -5616 5516 -1 -5517 5517 4 -5518 5517 -1 -5617 5517 -1 -5518 5518 4 -5519 5518 -1 -5618 5518 -1 -5519 5519 4 -5520 5519 -1 -5619 5519 -1 -5520 5520 4 -5521 5520 -1 -5620 5520 -1 -5521 5521 4 -5522 5521 -1 -5621 5521 -1 -5522 5522 4 -5523 5522 -1 -5622 5522 -1 -5523 5523 4 -5524 5523 -1 -5623 5523 -1 -5524 5524 4 -5525 5524 -1 -5624 5524 -1 -5525 5525 4 -5526 5525 -1 -5625 5525 -1 -5526 5526 4 -5527 5526 -1 -5626 5526 -1 -5527 5527 4 -5528 5527 -1 -5627 5527 -1 -5528 5528 4 -5529 5528 -1 -5628 5528 -1 -5529 5529 4 -5530 5529 -1 -5629 5529 -1 -5530 5530 4 -5531 5530 -1 -5630 5530 -1 -5531 5531 4 -5532 5531 -1 -5631 5531 -1 -5532 5532 4 -5533 5532 -1 -5632 5532 -1 -5533 5533 4 -5534 5533 -1 -5633 5533 -1 -5534 5534 4 -5535 5534 -1 -5634 5534 -1 -5535 5535 4 -5536 5535 -1 -5635 5535 -1 -5536 5536 4 -5537 5536 -1 -5636 5536 -1 -5537 5537 4 -5538 5537 -1 -5637 5537 -1 -5538 5538 4 -5539 5538 -1 -5638 5538 -1 -5539 5539 4 -5540 5539 -1 -5639 5539 -1 -5540 5540 4 -5541 5540 -1 -5640 5540 -1 -5541 5541 4 -5542 5541 -1 -5641 5541 -1 -5542 5542 4 -5543 5542 -1 -5642 5542 -1 -5543 5543 4 -5544 5543 -1 -5643 5543 -1 -5544 5544 4 -5545 5544 -1 -5644 5544 -1 -5545 5545 4 -5546 5545 -1 -5645 5545 -1 -5546 5546 4 -5547 5546 -1 -5646 5546 -1 -5547 5547 4 -5548 5547 -1 -5647 5547 -1 -5548 5548 4 -5549 5548 -1 -5648 5548 -1 -5549 5549 4 -5550 5549 -1 -5649 5549 -1 -5550 5550 4 -5551 5550 -1 -5650 5550 -1 -5551 5551 4 -5552 5551 -1 -5651 5551 -1 -5552 5552 4 -5553 5552 -1 -5652 5552 -1 -5553 5553 4 -5554 5553 -1 -5653 5553 -1 -5554 5554 4 -5555 5554 -1 -5654 5554 -1 -5555 5555 4 -5556 5555 -1 -5655 5555 -1 -5556 5556 4 -5557 5556 -1 -5656 5556 -1 -5557 5557 4 -5558 5557 -1 -5657 5557 -1 -5558 5558 4 -5559 5558 -1 -5658 5558 -1 -5559 5559 4 -5560 5559 -1 -5659 5559 -1 -5560 5560 4 -5561 5560 -1 -5660 5560 -1 -5561 5561 4 -5562 5561 -1 -5661 5561 -1 -5562 5562 4 -5563 5562 -1 -5662 5562 -1 -5563 5563 4 -5564 5563 -1 -5663 5563 -1 -5564 5564 4 -5565 5564 -1 -5664 5564 -1 -5565 5565 4 -5566 5565 -1 -5665 5565 -1 -5566 5566 4 -5567 5566 -1 -5666 5566 -1 -5567 5567 4 -5568 5567 -1 -5667 5567 -1 -5568 5568 4 -5569 5568 -1 -5668 5568 -1 -5569 5569 4 -5570 5569 -1 -5669 5569 -1 -5570 5570 4 -5571 5570 -1 -5670 5570 -1 -5571 5571 4 -5572 5571 -1 -5671 5571 -1 -5572 5572 4 -5573 5572 -1 -5672 5572 -1 -5573 5573 4 -5574 5573 -1 -5673 5573 -1 -5574 5574 4 -5575 5574 -1 -5674 5574 -1 -5575 5575 4 -5576 5575 -1 -5675 5575 -1 -5576 5576 4 -5577 5576 -1 -5676 5576 -1 -5577 5577 4 -5578 5577 -1 -5677 5577 -1 -5578 5578 4 -5579 5578 -1 -5678 5578 -1 -5579 5579 4 -5580 5579 -1 -5679 5579 -1 -5580 5580 4 -5581 5580 -1 -5680 5580 -1 -5581 5581 4 -5582 5581 -1 -5681 5581 -1 -5582 5582 4 -5583 5582 -1 -5682 5582 -1 -5583 5583 4 -5584 5583 -1 -5683 5583 -1 -5584 5584 4 -5585 5584 -1 -5684 5584 -1 -5585 5585 4 -5586 5585 -1 -5685 5585 -1 -5586 5586 4 -5587 5586 -1 -5686 5586 -1 -5587 5587 4 -5588 5587 -1 -5687 5587 -1 -5588 5588 4 -5589 5588 -1 -5688 5588 -1 -5589 5589 4 -5590 5589 -1 -5689 5589 -1 -5590 5590 4 -5591 5590 -1 -5690 5590 -1 -5591 5591 4 -5592 5591 -1 -5691 5591 -1 -5592 5592 4 -5593 5592 -1 -5692 5592 -1 -5593 5593 4 -5594 5593 -1 -5693 5593 -1 -5594 5594 4 -5595 5594 -1 -5694 5594 -1 -5595 5595 4 -5596 5595 -1 -5695 5595 -1 -5596 5596 4 -5597 5596 -1 -5696 5596 -1 -5597 5597 4 -5598 5597 -1 -5697 5597 -1 -5598 5598 4 -5599 5598 -1 -5698 5598 -1 -5599 5599 4 -5600 5599 -1 -5699 5599 -1 -5600 5600 4 -5700 5600 -1 -5601 5601 4 -5602 5601 -1 -5701 5601 -1 -5602 5602 4 -5603 5602 -1 -5702 5602 -1 -5603 5603 4 -5604 5603 -1 -5703 5603 -1 -5604 5604 4 -5605 5604 -1 -5704 5604 -1 -5605 5605 4 -5606 5605 -1 -5705 5605 -1 -5606 5606 4 -5607 5606 -1 -5706 5606 -1 -5607 5607 4 -5608 5607 -1 -5707 5607 -1 -5608 5608 4 -5609 5608 -1 -5708 5608 -1 -5609 5609 4 -5610 5609 -1 -5709 5609 -1 -5610 5610 4 -5611 5610 -1 -5710 5610 -1 -5611 5611 4 -5612 5611 -1 -5711 5611 -1 -5612 5612 4 -5613 5612 -1 -5712 5612 -1 -5613 5613 4 -5614 5613 -1 -5713 5613 -1 -5614 5614 4 -5615 5614 -1 -5714 5614 -1 -5615 5615 4 -5616 5615 -1 -5715 5615 -1 -5616 5616 4 -5617 5616 -1 -5716 5616 -1 -5617 5617 4 -5618 5617 -1 -5717 5617 -1 -5618 5618 4 -5619 5618 -1 -5718 5618 -1 -5619 5619 4 -5620 5619 -1 -5719 5619 -1 -5620 5620 4 -5621 5620 -1 -5720 5620 -1 -5621 5621 4 -5622 5621 -1 -5721 5621 -1 -5622 5622 4 -5623 5622 -1 -5722 5622 -1 -5623 5623 4 -5624 5623 -1 -5723 5623 -1 -5624 5624 4 -5625 5624 -1 -5724 5624 -1 -5625 5625 4 -5626 5625 -1 -5725 5625 -1 -5626 5626 4 -5627 5626 -1 -5726 5626 -1 -5627 5627 4 -5628 5627 -1 -5727 5627 -1 -5628 5628 4 -5629 5628 -1 -5728 5628 -1 -5629 5629 4 -5630 5629 -1 -5729 5629 -1 -5630 5630 4 -5631 5630 -1 -5730 5630 -1 -5631 5631 4 -5632 5631 -1 -5731 5631 -1 -5632 5632 4 -5633 5632 -1 -5732 5632 -1 -5633 5633 4 -5634 5633 -1 -5733 5633 -1 -5634 5634 4 -5635 5634 -1 -5734 5634 -1 -5635 5635 4 -5636 5635 -1 -5735 5635 -1 -5636 5636 4 -5637 5636 -1 -5736 5636 -1 -5637 5637 4 -5638 5637 -1 -5737 5637 -1 -5638 5638 4 -5639 5638 -1 -5738 5638 -1 -5639 5639 4 -5640 5639 -1 -5739 5639 -1 -5640 5640 4 -5641 5640 -1 -5740 5640 -1 -5641 5641 4 -5642 5641 -1 -5741 5641 -1 -5642 5642 4 -5643 5642 -1 -5742 5642 -1 -5643 5643 4 -5644 5643 -1 -5743 5643 -1 -5644 5644 4 -5645 5644 -1 -5744 5644 -1 -5645 5645 4 -5646 5645 -1 -5745 5645 -1 -5646 5646 4 -5647 5646 -1 -5746 5646 -1 -5647 5647 4 -5648 5647 -1 -5747 5647 -1 -5648 5648 4 -5649 5648 -1 -5748 5648 -1 -5649 5649 4 -5650 5649 -1 -5749 5649 -1 -5650 5650 4 -5651 5650 -1 -5750 5650 -1 -5651 5651 4 -5652 5651 -1 -5751 5651 -1 -5652 5652 4 -5653 5652 -1 -5752 5652 -1 -5653 5653 4 -5654 5653 -1 -5753 5653 -1 -5654 5654 4 -5655 5654 -1 -5754 5654 -1 -5655 5655 4 -5656 5655 -1 -5755 5655 -1 -5656 5656 4 -5657 5656 -1 -5756 5656 -1 -5657 5657 4 -5658 5657 -1 -5757 5657 -1 -5658 5658 4 -5659 5658 -1 -5758 5658 -1 -5659 5659 4 -5660 5659 -1 -5759 5659 -1 -5660 5660 4 -5661 5660 -1 -5760 5660 -1 -5661 5661 4 -5662 5661 -1 -5761 5661 -1 -5662 5662 4 -5663 5662 -1 -5762 5662 -1 -5663 5663 4 -5664 5663 -1 -5763 5663 -1 -5664 5664 4 -5665 5664 -1 -5764 5664 -1 -5665 5665 4 -5666 5665 -1 -5765 5665 -1 -5666 5666 4 -5667 5666 -1 -5766 5666 -1 -5667 5667 4 -5668 5667 -1 -5767 5667 -1 -5668 5668 4 -5669 5668 -1 -5768 5668 -1 -5669 5669 4 -5670 5669 -1 -5769 5669 -1 -5670 5670 4 -5671 5670 -1 -5770 5670 -1 -5671 5671 4 -5672 5671 -1 -5771 5671 -1 -5672 5672 4 -5673 5672 -1 -5772 5672 -1 -5673 5673 4 -5674 5673 -1 -5773 5673 -1 -5674 5674 4 -5675 5674 -1 -5774 5674 -1 -5675 5675 4 -5676 5675 -1 -5775 5675 -1 -5676 5676 4 -5677 5676 -1 -5776 5676 -1 -5677 5677 4 -5678 5677 -1 -5777 5677 -1 -5678 5678 4 -5679 5678 -1 -5778 5678 -1 -5679 5679 4 -5680 5679 -1 -5779 5679 -1 -5680 5680 4 -5681 5680 -1 -5780 5680 -1 -5681 5681 4 -5682 5681 -1 -5781 5681 -1 -5682 5682 4 -5683 5682 -1 -5782 5682 -1 -5683 5683 4 -5684 5683 -1 -5783 5683 -1 -5684 5684 4 -5685 5684 -1 -5784 5684 -1 -5685 5685 4 -5686 5685 -1 -5785 5685 -1 -5686 5686 4 -5687 5686 -1 -5786 5686 -1 -5687 5687 4 -5688 5687 -1 -5787 5687 -1 -5688 5688 4 -5689 5688 -1 -5788 5688 -1 -5689 5689 4 -5690 5689 -1 -5789 5689 -1 -5690 5690 4 -5691 5690 -1 -5790 5690 -1 -5691 5691 4 -5692 5691 -1 -5791 5691 -1 -5692 5692 4 -5693 5692 -1 -5792 5692 -1 -5693 5693 4 -5694 5693 -1 -5793 5693 -1 -5694 5694 4 -5695 5694 -1 -5794 5694 -1 -5695 5695 4 -5696 5695 -1 -5795 5695 -1 -5696 5696 4 -5697 5696 -1 -5796 5696 -1 -5697 5697 4 -5698 5697 -1 -5797 5697 -1 -5698 5698 4 -5699 5698 -1 -5798 5698 -1 -5699 5699 4 -5700 5699 -1 -5799 5699 -1 -5700 5700 4 -5800 5700 -1 -5701 5701 4 -5702 5701 -1 -5801 5701 -1 -5702 5702 4 -5703 5702 -1 -5802 5702 -1 -5703 5703 4 -5704 5703 -1 -5803 5703 -1 -5704 5704 4 -5705 5704 -1 -5804 5704 -1 -5705 5705 4 -5706 5705 -1 -5805 5705 -1 -5706 5706 4 -5707 5706 -1 -5806 5706 -1 -5707 5707 4 -5708 5707 -1 -5807 5707 -1 -5708 5708 4 -5709 5708 -1 -5808 5708 -1 -5709 5709 4 -5710 5709 -1 -5809 5709 -1 -5710 5710 4 -5711 5710 -1 -5810 5710 -1 -5711 5711 4 -5712 5711 -1 -5811 5711 -1 -5712 5712 4 -5713 5712 -1 -5812 5712 -1 -5713 5713 4 -5714 5713 -1 -5813 5713 -1 -5714 5714 4 -5715 5714 -1 -5814 5714 -1 -5715 5715 4 -5716 5715 -1 -5815 5715 -1 -5716 5716 4 -5717 5716 -1 -5816 5716 -1 -5717 5717 4 -5718 5717 -1 -5817 5717 -1 -5718 5718 4 -5719 5718 -1 -5818 5718 -1 -5719 5719 4 -5720 5719 -1 -5819 5719 -1 -5720 5720 4 -5721 5720 -1 -5820 5720 -1 -5721 5721 4 -5722 5721 -1 -5821 5721 -1 -5722 5722 4 -5723 5722 -1 -5822 5722 -1 -5723 5723 4 -5724 5723 -1 -5823 5723 -1 -5724 5724 4 -5725 5724 -1 -5824 5724 -1 -5725 5725 4 -5726 5725 -1 -5825 5725 -1 -5726 5726 4 -5727 5726 -1 -5826 5726 -1 -5727 5727 4 -5728 5727 -1 -5827 5727 -1 -5728 5728 4 -5729 5728 -1 -5828 5728 -1 -5729 5729 4 -5730 5729 -1 -5829 5729 -1 -5730 5730 4 -5731 5730 -1 -5830 5730 -1 -5731 5731 4 -5732 5731 -1 -5831 5731 -1 -5732 5732 4 -5733 5732 -1 -5832 5732 -1 -5733 5733 4 -5734 5733 -1 -5833 5733 -1 -5734 5734 4 -5735 5734 -1 -5834 5734 -1 -5735 5735 4 -5736 5735 -1 -5835 5735 -1 -5736 5736 4 -5737 5736 -1 -5836 5736 -1 -5737 5737 4 -5738 5737 -1 -5837 5737 -1 -5738 5738 4 -5739 5738 -1 -5838 5738 -1 -5739 5739 4 -5740 5739 -1 -5839 5739 -1 -5740 5740 4 -5741 5740 -1 -5840 5740 -1 -5741 5741 4 -5742 5741 -1 -5841 5741 -1 -5742 5742 4 -5743 5742 -1 -5842 5742 -1 -5743 5743 4 -5744 5743 -1 -5843 5743 -1 -5744 5744 4 -5745 5744 -1 -5844 5744 -1 -5745 5745 4 -5746 5745 -1 -5845 5745 -1 -5746 5746 4 -5747 5746 -1 -5846 5746 -1 -5747 5747 4 -5748 5747 -1 -5847 5747 -1 -5748 5748 4 -5749 5748 -1 -5848 5748 -1 -5749 5749 4 -5750 5749 -1 -5849 5749 -1 -5750 5750 4 -5751 5750 -1 -5850 5750 -1 -5751 5751 4 -5752 5751 -1 -5851 5751 -1 -5752 5752 4 -5753 5752 -1 -5852 5752 -1 -5753 5753 4 -5754 5753 -1 -5853 5753 -1 -5754 5754 4 -5755 5754 -1 -5854 5754 -1 -5755 5755 4 -5756 5755 -1 -5855 5755 -1 -5756 5756 4 -5757 5756 -1 -5856 5756 -1 -5757 5757 4 -5758 5757 -1 -5857 5757 -1 -5758 5758 4 -5759 5758 -1 -5858 5758 -1 -5759 5759 4 -5760 5759 -1 -5859 5759 -1 -5760 5760 4 -5761 5760 -1 -5860 5760 -1 -5761 5761 4 -5762 5761 -1 -5861 5761 -1 -5762 5762 4 -5763 5762 -1 -5862 5762 -1 -5763 5763 4 -5764 5763 -1 -5863 5763 -1 -5764 5764 4 -5765 5764 -1 -5864 5764 -1 -5765 5765 4 -5766 5765 -1 -5865 5765 -1 -5766 5766 4 -5767 5766 -1 -5866 5766 -1 -5767 5767 4 -5768 5767 -1 -5867 5767 -1 -5768 5768 4 -5769 5768 -1 -5868 5768 -1 -5769 5769 4 -5770 5769 -1 -5869 5769 -1 -5770 5770 4 -5771 5770 -1 -5870 5770 -1 -5771 5771 4 -5772 5771 -1 -5871 5771 -1 -5772 5772 4 -5773 5772 -1 -5872 5772 -1 -5773 5773 4 -5774 5773 -1 -5873 5773 -1 -5774 5774 4 -5775 5774 -1 -5874 5774 -1 -5775 5775 4 -5776 5775 -1 -5875 5775 -1 -5776 5776 4 -5777 5776 -1 -5876 5776 -1 -5777 5777 4 -5778 5777 -1 -5877 5777 -1 -5778 5778 4 -5779 5778 -1 -5878 5778 -1 -5779 5779 4 -5780 5779 -1 -5879 5779 -1 -5780 5780 4 -5781 5780 -1 -5880 5780 -1 -5781 5781 4 -5782 5781 -1 -5881 5781 -1 -5782 5782 4 -5783 5782 -1 -5882 5782 -1 -5783 5783 4 -5784 5783 -1 -5883 5783 -1 -5784 5784 4 -5785 5784 -1 -5884 5784 -1 -5785 5785 4 -5786 5785 -1 -5885 5785 -1 -5786 5786 4 -5787 5786 -1 -5886 5786 -1 -5787 5787 4 -5788 5787 -1 -5887 5787 -1 -5788 5788 4 -5789 5788 -1 -5888 5788 -1 -5789 5789 4 -5790 5789 -1 -5889 5789 -1 -5790 5790 4 -5791 5790 -1 -5890 5790 -1 -5791 5791 4 -5792 5791 -1 -5891 5791 -1 -5792 5792 4 -5793 5792 -1 -5892 5792 -1 -5793 5793 4 -5794 5793 -1 -5893 5793 -1 -5794 5794 4 -5795 5794 -1 -5894 5794 -1 -5795 5795 4 -5796 5795 -1 -5895 5795 -1 -5796 5796 4 -5797 5796 -1 -5896 5796 -1 -5797 5797 4 -5798 5797 -1 -5897 5797 -1 -5798 5798 4 -5799 5798 -1 -5898 5798 -1 -5799 5799 4 -5800 5799 -1 -5899 5799 -1 -5800 5800 4 -5900 5800 -1 -5801 5801 4 -5802 5801 -1 -5901 5801 -1 -5802 5802 4 -5803 5802 -1 -5902 5802 -1 -5803 5803 4 -5804 5803 -1 -5903 5803 -1 -5804 5804 4 -5805 5804 -1 -5904 5804 -1 -5805 5805 4 -5806 5805 -1 -5905 5805 -1 -5806 5806 4 -5807 5806 -1 -5906 5806 -1 -5807 5807 4 -5808 5807 -1 -5907 5807 -1 -5808 5808 4 -5809 5808 -1 -5908 5808 -1 -5809 5809 4 -5810 5809 -1 -5909 5809 -1 -5810 5810 4 -5811 5810 -1 -5910 5810 -1 -5811 5811 4 -5812 5811 -1 -5911 5811 -1 -5812 5812 4 -5813 5812 -1 -5912 5812 -1 -5813 5813 4 -5814 5813 -1 -5913 5813 -1 -5814 5814 4 -5815 5814 -1 -5914 5814 -1 -5815 5815 4 -5816 5815 -1 -5915 5815 -1 -5816 5816 4 -5817 5816 -1 -5916 5816 -1 -5817 5817 4 -5818 5817 -1 -5917 5817 -1 -5818 5818 4 -5819 5818 -1 -5918 5818 -1 -5819 5819 4 -5820 5819 -1 -5919 5819 -1 -5820 5820 4 -5821 5820 -1 -5920 5820 -1 -5821 5821 4 -5822 5821 -1 -5921 5821 -1 -5822 5822 4 -5823 5822 -1 -5922 5822 -1 -5823 5823 4 -5824 5823 -1 -5923 5823 -1 -5824 5824 4 -5825 5824 -1 -5924 5824 -1 -5825 5825 4 -5826 5825 -1 -5925 5825 -1 -5826 5826 4 -5827 5826 -1 -5926 5826 -1 -5827 5827 4 -5828 5827 -1 -5927 5827 -1 -5828 5828 4 -5829 5828 -1 -5928 5828 -1 -5829 5829 4 -5830 5829 -1 -5929 5829 -1 -5830 5830 4 -5831 5830 -1 -5930 5830 -1 -5831 5831 4 -5832 5831 -1 -5931 5831 -1 -5832 5832 4 -5833 5832 -1 -5932 5832 -1 -5833 5833 4 -5834 5833 -1 -5933 5833 -1 -5834 5834 4 -5835 5834 -1 -5934 5834 -1 -5835 5835 4 -5836 5835 -1 -5935 5835 -1 -5836 5836 4 -5837 5836 -1 -5936 5836 -1 -5837 5837 4 -5838 5837 -1 -5937 5837 -1 -5838 5838 4 -5839 5838 -1 -5938 5838 -1 -5839 5839 4 -5840 5839 -1 -5939 5839 -1 -5840 5840 4 -5841 5840 -1 -5940 5840 -1 -5841 5841 4 -5842 5841 -1 -5941 5841 -1 -5842 5842 4 -5843 5842 -1 -5942 5842 -1 -5843 5843 4 -5844 5843 -1 -5943 5843 -1 -5844 5844 4 -5845 5844 -1 -5944 5844 -1 -5845 5845 4 -5846 5845 -1 -5945 5845 -1 -5846 5846 4 -5847 5846 -1 -5946 5846 -1 -5847 5847 4 -5848 5847 -1 -5947 5847 -1 -5848 5848 4 -5849 5848 -1 -5948 5848 -1 -5849 5849 4 -5850 5849 -1 -5949 5849 -1 -5850 5850 4 -5851 5850 -1 -5950 5850 -1 -5851 5851 4 -5852 5851 -1 -5951 5851 -1 -5852 5852 4 -5853 5852 -1 -5952 5852 -1 -5853 5853 4 -5854 5853 -1 -5953 5853 -1 -5854 5854 4 -5855 5854 -1 -5954 5854 -1 -5855 5855 4 -5856 5855 -1 -5955 5855 -1 -5856 5856 4 -5857 5856 -1 -5956 5856 -1 -5857 5857 4 -5858 5857 -1 -5957 5857 -1 -5858 5858 4 -5859 5858 -1 -5958 5858 -1 -5859 5859 4 -5860 5859 -1 -5959 5859 -1 -5860 5860 4 -5861 5860 -1 -5960 5860 -1 -5861 5861 4 -5862 5861 -1 -5961 5861 -1 -5862 5862 4 -5863 5862 -1 -5962 5862 -1 -5863 5863 4 -5864 5863 -1 -5963 5863 -1 -5864 5864 4 -5865 5864 -1 -5964 5864 -1 -5865 5865 4 -5866 5865 -1 -5965 5865 -1 -5866 5866 4 -5867 5866 -1 -5966 5866 -1 -5867 5867 4 -5868 5867 -1 -5967 5867 -1 -5868 5868 4 -5869 5868 -1 -5968 5868 -1 -5869 5869 4 -5870 5869 -1 -5969 5869 -1 -5870 5870 4 -5871 5870 -1 -5970 5870 -1 -5871 5871 4 -5872 5871 -1 -5971 5871 -1 -5872 5872 4 -5873 5872 -1 -5972 5872 -1 -5873 5873 4 -5874 5873 -1 -5973 5873 -1 -5874 5874 4 -5875 5874 -1 -5974 5874 -1 -5875 5875 4 -5876 5875 -1 -5975 5875 -1 -5876 5876 4 -5877 5876 -1 -5976 5876 -1 -5877 5877 4 -5878 5877 -1 -5977 5877 -1 -5878 5878 4 -5879 5878 -1 -5978 5878 -1 -5879 5879 4 -5880 5879 -1 -5979 5879 -1 -5880 5880 4 -5881 5880 -1 -5980 5880 -1 -5881 5881 4 -5882 5881 -1 -5981 5881 -1 -5882 5882 4 -5883 5882 -1 -5982 5882 -1 -5883 5883 4 -5884 5883 -1 -5983 5883 -1 -5884 5884 4 -5885 5884 -1 -5984 5884 -1 -5885 5885 4 -5886 5885 -1 -5985 5885 -1 -5886 5886 4 -5887 5886 -1 -5986 5886 -1 -5887 5887 4 -5888 5887 -1 -5987 5887 -1 -5888 5888 4 -5889 5888 -1 -5988 5888 -1 -5889 5889 4 -5890 5889 -1 -5989 5889 -1 -5890 5890 4 -5891 5890 -1 -5990 5890 -1 -5891 5891 4 -5892 5891 -1 -5991 5891 -1 -5892 5892 4 -5893 5892 -1 -5992 5892 -1 -5893 5893 4 -5894 5893 -1 -5993 5893 -1 -5894 5894 4 -5895 5894 -1 -5994 5894 -1 -5895 5895 4 -5896 5895 -1 -5995 5895 -1 -5896 5896 4 -5897 5896 -1 -5996 5896 -1 -5897 5897 4 -5898 5897 -1 -5997 5897 -1 -5898 5898 4 -5899 5898 -1 -5998 5898 -1 -5899 5899 4 -5900 5899 -1 -5999 5899 -1 -5900 5900 4 -6000 5900 -1 -5901 5901 4 -5902 5901 -1 -6001 5901 -1 -5902 5902 4 -5903 5902 -1 -6002 5902 -1 -5903 5903 4 -5904 5903 -1 -6003 5903 -1 -5904 5904 4 -5905 5904 -1 -6004 5904 -1 -5905 5905 4 -5906 5905 -1 -6005 5905 -1 -5906 5906 4 -5907 5906 -1 -6006 5906 -1 -5907 5907 4 -5908 5907 -1 -6007 5907 -1 -5908 5908 4 -5909 5908 -1 -6008 5908 -1 -5909 5909 4 -5910 5909 -1 -6009 5909 -1 -5910 5910 4 -5911 5910 -1 -6010 5910 -1 -5911 5911 4 -5912 5911 -1 -6011 5911 -1 -5912 5912 4 -5913 5912 -1 -6012 5912 -1 -5913 5913 4 -5914 5913 -1 -6013 5913 -1 -5914 5914 4 -5915 5914 -1 -6014 5914 -1 -5915 5915 4 -5916 5915 -1 -6015 5915 -1 -5916 5916 4 -5917 5916 -1 -6016 5916 -1 -5917 5917 4 -5918 5917 -1 -6017 5917 -1 -5918 5918 4 -5919 5918 -1 -6018 5918 -1 -5919 5919 4 -5920 5919 -1 -6019 5919 -1 -5920 5920 4 -5921 5920 -1 -6020 5920 -1 -5921 5921 4 -5922 5921 -1 -6021 5921 -1 -5922 5922 4 -5923 5922 -1 -6022 5922 -1 -5923 5923 4 -5924 5923 -1 -6023 5923 -1 -5924 5924 4 -5925 5924 -1 -6024 5924 -1 -5925 5925 4 -5926 5925 -1 -6025 5925 -1 -5926 5926 4 -5927 5926 -1 -6026 5926 -1 -5927 5927 4 -5928 5927 -1 -6027 5927 -1 -5928 5928 4 -5929 5928 -1 -6028 5928 -1 -5929 5929 4 -5930 5929 -1 -6029 5929 -1 -5930 5930 4 -5931 5930 -1 -6030 5930 -1 -5931 5931 4 -5932 5931 -1 -6031 5931 -1 -5932 5932 4 -5933 5932 -1 -6032 5932 -1 -5933 5933 4 -5934 5933 -1 -6033 5933 -1 -5934 5934 4 -5935 5934 -1 -6034 5934 -1 -5935 5935 4 -5936 5935 -1 -6035 5935 -1 -5936 5936 4 -5937 5936 -1 -6036 5936 -1 -5937 5937 4 -5938 5937 -1 -6037 5937 -1 -5938 5938 4 -5939 5938 -1 -6038 5938 -1 -5939 5939 4 -5940 5939 -1 -6039 5939 -1 -5940 5940 4 -5941 5940 -1 -6040 5940 -1 -5941 5941 4 -5942 5941 -1 -6041 5941 -1 -5942 5942 4 -5943 5942 -1 -6042 5942 -1 -5943 5943 4 -5944 5943 -1 -6043 5943 -1 -5944 5944 4 -5945 5944 -1 -6044 5944 -1 -5945 5945 4 -5946 5945 -1 -6045 5945 -1 -5946 5946 4 -5947 5946 -1 -6046 5946 -1 -5947 5947 4 -5948 5947 -1 -6047 5947 -1 -5948 5948 4 -5949 5948 -1 -6048 5948 -1 -5949 5949 4 -5950 5949 -1 -6049 5949 -1 -5950 5950 4 -5951 5950 -1 -6050 5950 -1 -5951 5951 4 -5952 5951 -1 -6051 5951 -1 -5952 5952 4 -5953 5952 -1 -6052 5952 -1 -5953 5953 4 -5954 5953 -1 -6053 5953 -1 -5954 5954 4 -5955 5954 -1 -6054 5954 -1 -5955 5955 4 -5956 5955 -1 -6055 5955 -1 -5956 5956 4 -5957 5956 -1 -6056 5956 -1 -5957 5957 4 -5958 5957 -1 -6057 5957 -1 -5958 5958 4 -5959 5958 -1 -6058 5958 -1 -5959 5959 4 -5960 5959 -1 -6059 5959 -1 -5960 5960 4 -5961 5960 -1 -6060 5960 -1 -5961 5961 4 -5962 5961 -1 -6061 5961 -1 -5962 5962 4 -5963 5962 -1 -6062 5962 -1 -5963 5963 4 -5964 5963 -1 -6063 5963 -1 -5964 5964 4 -5965 5964 -1 -6064 5964 -1 -5965 5965 4 -5966 5965 -1 -6065 5965 -1 -5966 5966 4 -5967 5966 -1 -6066 5966 -1 -5967 5967 4 -5968 5967 -1 -6067 5967 -1 -5968 5968 4 -5969 5968 -1 -6068 5968 -1 -5969 5969 4 -5970 5969 -1 -6069 5969 -1 -5970 5970 4 -5971 5970 -1 -6070 5970 -1 -5971 5971 4 -5972 5971 -1 -6071 5971 -1 -5972 5972 4 -5973 5972 -1 -6072 5972 -1 -5973 5973 4 -5974 5973 -1 -6073 5973 -1 -5974 5974 4 -5975 5974 -1 -6074 5974 -1 -5975 5975 4 -5976 5975 -1 -6075 5975 -1 -5976 5976 4 -5977 5976 -1 -6076 5976 -1 -5977 5977 4 -5978 5977 -1 -6077 5977 -1 -5978 5978 4 -5979 5978 -1 -6078 5978 -1 -5979 5979 4 -5980 5979 -1 -6079 5979 -1 -5980 5980 4 -5981 5980 -1 -6080 5980 -1 -5981 5981 4 -5982 5981 -1 -6081 5981 -1 -5982 5982 4 -5983 5982 -1 -6082 5982 -1 -5983 5983 4 -5984 5983 -1 -6083 5983 -1 -5984 5984 4 -5985 5984 -1 -6084 5984 -1 -5985 5985 4 -5986 5985 -1 -6085 5985 -1 -5986 5986 4 -5987 5986 -1 -6086 5986 -1 -5987 5987 4 -5988 5987 -1 -6087 5987 -1 -5988 5988 4 -5989 5988 -1 -6088 5988 -1 -5989 5989 4 -5990 5989 -1 -6089 5989 -1 -5990 5990 4 -5991 5990 -1 -6090 5990 -1 -5991 5991 4 -5992 5991 -1 -6091 5991 -1 -5992 5992 4 -5993 5992 -1 -6092 5992 -1 -5993 5993 4 -5994 5993 -1 -6093 5993 -1 -5994 5994 4 -5995 5994 -1 -6094 5994 -1 -5995 5995 4 -5996 5995 -1 -6095 5995 -1 -5996 5996 4 -5997 5996 -1 -6096 5996 -1 -5997 5997 4 -5998 5997 -1 -6097 5997 -1 -5998 5998 4 -5999 5998 -1 -6098 5998 -1 -5999 5999 4 -6000 5999 -1 -6099 5999 -1 -6000 6000 4 -6100 6000 -1 -6001 6001 4 -6002 6001 -1 -6101 6001 -1 -6002 6002 4 -6003 6002 -1 -6102 6002 -1 -6003 6003 4 -6004 6003 -1 -6103 6003 -1 -6004 6004 4 -6005 6004 -1 -6104 6004 -1 -6005 6005 4 -6006 6005 -1 -6105 6005 -1 -6006 6006 4 -6007 6006 -1 -6106 6006 -1 -6007 6007 4 -6008 6007 -1 -6107 6007 -1 -6008 6008 4 -6009 6008 -1 -6108 6008 -1 -6009 6009 4 -6010 6009 -1 -6109 6009 -1 -6010 6010 4 -6011 6010 -1 -6110 6010 -1 -6011 6011 4 -6012 6011 -1 -6111 6011 -1 -6012 6012 4 -6013 6012 -1 -6112 6012 -1 -6013 6013 4 -6014 6013 -1 -6113 6013 -1 -6014 6014 4 -6015 6014 -1 -6114 6014 -1 -6015 6015 4 -6016 6015 -1 -6115 6015 -1 -6016 6016 4 -6017 6016 -1 -6116 6016 -1 -6017 6017 4 -6018 6017 -1 -6117 6017 -1 -6018 6018 4 -6019 6018 -1 -6118 6018 -1 -6019 6019 4 -6020 6019 -1 -6119 6019 -1 -6020 6020 4 -6021 6020 -1 -6120 6020 -1 -6021 6021 4 -6022 6021 -1 -6121 6021 -1 -6022 6022 4 -6023 6022 -1 -6122 6022 -1 -6023 6023 4 -6024 6023 -1 -6123 6023 -1 -6024 6024 4 -6025 6024 -1 -6124 6024 -1 -6025 6025 4 -6026 6025 -1 -6125 6025 -1 -6026 6026 4 -6027 6026 -1 -6126 6026 -1 -6027 6027 4 -6028 6027 -1 -6127 6027 -1 -6028 6028 4 -6029 6028 -1 -6128 6028 -1 -6029 6029 4 -6030 6029 -1 -6129 6029 -1 -6030 6030 4 -6031 6030 -1 -6130 6030 -1 -6031 6031 4 -6032 6031 -1 -6131 6031 -1 -6032 6032 4 -6033 6032 -1 -6132 6032 -1 -6033 6033 4 -6034 6033 -1 -6133 6033 -1 -6034 6034 4 -6035 6034 -1 -6134 6034 -1 -6035 6035 4 -6036 6035 -1 -6135 6035 -1 -6036 6036 4 -6037 6036 -1 -6136 6036 -1 -6037 6037 4 -6038 6037 -1 -6137 6037 -1 -6038 6038 4 -6039 6038 -1 -6138 6038 -1 -6039 6039 4 -6040 6039 -1 -6139 6039 -1 -6040 6040 4 -6041 6040 -1 -6140 6040 -1 -6041 6041 4 -6042 6041 -1 -6141 6041 -1 -6042 6042 4 -6043 6042 -1 -6142 6042 -1 -6043 6043 4 -6044 6043 -1 -6143 6043 -1 -6044 6044 4 -6045 6044 -1 -6144 6044 -1 -6045 6045 4 -6046 6045 -1 -6145 6045 -1 -6046 6046 4 -6047 6046 -1 -6146 6046 -1 -6047 6047 4 -6048 6047 -1 -6147 6047 -1 -6048 6048 4 -6049 6048 -1 -6148 6048 -1 -6049 6049 4 -6050 6049 -1 -6149 6049 -1 -6050 6050 4 -6051 6050 -1 -6150 6050 -1 -6051 6051 4 -6052 6051 -1 -6151 6051 -1 -6052 6052 4 -6053 6052 -1 -6152 6052 -1 -6053 6053 4 -6054 6053 -1 -6153 6053 -1 -6054 6054 4 -6055 6054 -1 -6154 6054 -1 -6055 6055 4 -6056 6055 -1 -6155 6055 -1 -6056 6056 4 -6057 6056 -1 -6156 6056 -1 -6057 6057 4 -6058 6057 -1 -6157 6057 -1 -6058 6058 4 -6059 6058 -1 -6158 6058 -1 -6059 6059 4 -6060 6059 -1 -6159 6059 -1 -6060 6060 4 -6061 6060 -1 -6160 6060 -1 -6061 6061 4 -6062 6061 -1 -6161 6061 -1 -6062 6062 4 -6063 6062 -1 -6162 6062 -1 -6063 6063 4 -6064 6063 -1 -6163 6063 -1 -6064 6064 4 -6065 6064 -1 -6164 6064 -1 -6065 6065 4 -6066 6065 -1 -6165 6065 -1 -6066 6066 4 -6067 6066 -1 -6166 6066 -1 -6067 6067 4 -6068 6067 -1 -6167 6067 -1 -6068 6068 4 -6069 6068 -1 -6168 6068 -1 -6069 6069 4 -6070 6069 -1 -6169 6069 -1 -6070 6070 4 -6071 6070 -1 -6170 6070 -1 -6071 6071 4 -6072 6071 -1 -6171 6071 -1 -6072 6072 4 -6073 6072 -1 -6172 6072 -1 -6073 6073 4 -6074 6073 -1 -6173 6073 -1 -6074 6074 4 -6075 6074 -1 -6174 6074 -1 -6075 6075 4 -6076 6075 -1 -6175 6075 -1 -6076 6076 4 -6077 6076 -1 -6176 6076 -1 -6077 6077 4 -6078 6077 -1 -6177 6077 -1 -6078 6078 4 -6079 6078 -1 -6178 6078 -1 -6079 6079 4 -6080 6079 -1 -6179 6079 -1 -6080 6080 4 -6081 6080 -1 -6180 6080 -1 -6081 6081 4 -6082 6081 -1 -6181 6081 -1 -6082 6082 4 -6083 6082 -1 -6182 6082 -1 -6083 6083 4 -6084 6083 -1 -6183 6083 -1 -6084 6084 4 -6085 6084 -1 -6184 6084 -1 -6085 6085 4 -6086 6085 -1 -6185 6085 -1 -6086 6086 4 -6087 6086 -1 -6186 6086 -1 -6087 6087 4 -6088 6087 -1 -6187 6087 -1 -6088 6088 4 -6089 6088 -1 -6188 6088 -1 -6089 6089 4 -6090 6089 -1 -6189 6089 -1 -6090 6090 4 -6091 6090 -1 -6190 6090 -1 -6091 6091 4 -6092 6091 -1 -6191 6091 -1 -6092 6092 4 -6093 6092 -1 -6192 6092 -1 -6093 6093 4 -6094 6093 -1 -6193 6093 -1 -6094 6094 4 -6095 6094 -1 -6194 6094 -1 -6095 6095 4 -6096 6095 -1 -6195 6095 -1 -6096 6096 4 -6097 6096 -1 -6196 6096 -1 -6097 6097 4 -6098 6097 -1 -6197 6097 -1 -6098 6098 4 -6099 6098 -1 -6198 6098 -1 -6099 6099 4 -6100 6099 -1 -6199 6099 -1 -6100 6100 4 -6200 6100 -1 -6101 6101 4 -6102 6101 -1 -6201 6101 -1 -6102 6102 4 -6103 6102 -1 -6202 6102 -1 -6103 6103 4 -6104 6103 -1 -6203 6103 -1 -6104 6104 4 -6105 6104 -1 -6204 6104 -1 -6105 6105 4 -6106 6105 -1 -6205 6105 -1 -6106 6106 4 -6107 6106 -1 -6206 6106 -1 -6107 6107 4 -6108 6107 -1 -6207 6107 -1 -6108 6108 4 -6109 6108 -1 -6208 6108 -1 -6109 6109 4 -6110 6109 -1 -6209 6109 -1 -6110 6110 4 -6111 6110 -1 -6210 6110 -1 -6111 6111 4 -6112 6111 -1 -6211 6111 -1 -6112 6112 4 -6113 6112 -1 -6212 6112 -1 -6113 6113 4 -6114 6113 -1 -6213 6113 -1 -6114 6114 4 -6115 6114 -1 -6214 6114 -1 -6115 6115 4 -6116 6115 -1 -6215 6115 -1 -6116 6116 4 -6117 6116 -1 -6216 6116 -1 -6117 6117 4 -6118 6117 -1 -6217 6117 -1 -6118 6118 4 -6119 6118 -1 -6218 6118 -1 -6119 6119 4 -6120 6119 -1 -6219 6119 -1 -6120 6120 4 -6121 6120 -1 -6220 6120 -1 -6121 6121 4 -6122 6121 -1 -6221 6121 -1 -6122 6122 4 -6123 6122 -1 -6222 6122 -1 -6123 6123 4 -6124 6123 -1 -6223 6123 -1 -6124 6124 4 -6125 6124 -1 -6224 6124 -1 -6125 6125 4 -6126 6125 -1 -6225 6125 -1 -6126 6126 4 -6127 6126 -1 -6226 6126 -1 -6127 6127 4 -6128 6127 -1 -6227 6127 -1 -6128 6128 4 -6129 6128 -1 -6228 6128 -1 -6129 6129 4 -6130 6129 -1 -6229 6129 -1 -6130 6130 4 -6131 6130 -1 -6230 6130 -1 -6131 6131 4 -6132 6131 -1 -6231 6131 -1 -6132 6132 4 -6133 6132 -1 -6232 6132 -1 -6133 6133 4 -6134 6133 -1 -6233 6133 -1 -6134 6134 4 -6135 6134 -1 -6234 6134 -1 -6135 6135 4 -6136 6135 -1 -6235 6135 -1 -6136 6136 4 -6137 6136 -1 -6236 6136 -1 -6137 6137 4 -6138 6137 -1 -6237 6137 -1 -6138 6138 4 -6139 6138 -1 -6238 6138 -1 -6139 6139 4 -6140 6139 -1 -6239 6139 -1 -6140 6140 4 -6141 6140 -1 -6240 6140 -1 -6141 6141 4 -6142 6141 -1 -6241 6141 -1 -6142 6142 4 -6143 6142 -1 -6242 6142 -1 -6143 6143 4 -6144 6143 -1 -6243 6143 -1 -6144 6144 4 -6145 6144 -1 -6244 6144 -1 -6145 6145 4 -6146 6145 -1 -6245 6145 -1 -6146 6146 4 -6147 6146 -1 -6246 6146 -1 -6147 6147 4 -6148 6147 -1 -6247 6147 -1 -6148 6148 4 -6149 6148 -1 -6248 6148 -1 -6149 6149 4 -6150 6149 -1 -6249 6149 -1 -6150 6150 4 -6151 6150 -1 -6250 6150 -1 -6151 6151 4 -6152 6151 -1 -6251 6151 -1 -6152 6152 4 -6153 6152 -1 -6252 6152 -1 -6153 6153 4 -6154 6153 -1 -6253 6153 -1 -6154 6154 4 -6155 6154 -1 -6254 6154 -1 -6155 6155 4 -6156 6155 -1 -6255 6155 -1 -6156 6156 4 -6157 6156 -1 -6256 6156 -1 -6157 6157 4 -6158 6157 -1 -6257 6157 -1 -6158 6158 4 -6159 6158 -1 -6258 6158 -1 -6159 6159 4 -6160 6159 -1 -6259 6159 -1 -6160 6160 4 -6161 6160 -1 -6260 6160 -1 -6161 6161 4 -6162 6161 -1 -6261 6161 -1 -6162 6162 4 -6163 6162 -1 -6262 6162 -1 -6163 6163 4 -6164 6163 -1 -6263 6163 -1 -6164 6164 4 -6165 6164 -1 -6264 6164 -1 -6165 6165 4 -6166 6165 -1 -6265 6165 -1 -6166 6166 4 -6167 6166 -1 -6266 6166 -1 -6167 6167 4 -6168 6167 -1 -6267 6167 -1 -6168 6168 4 -6169 6168 -1 -6268 6168 -1 -6169 6169 4 -6170 6169 -1 -6269 6169 -1 -6170 6170 4 -6171 6170 -1 -6270 6170 -1 -6171 6171 4 -6172 6171 -1 -6271 6171 -1 -6172 6172 4 -6173 6172 -1 -6272 6172 -1 -6173 6173 4 -6174 6173 -1 -6273 6173 -1 -6174 6174 4 -6175 6174 -1 -6274 6174 -1 -6175 6175 4 -6176 6175 -1 -6275 6175 -1 -6176 6176 4 -6177 6176 -1 -6276 6176 -1 -6177 6177 4 -6178 6177 -1 -6277 6177 -1 -6178 6178 4 -6179 6178 -1 -6278 6178 -1 -6179 6179 4 -6180 6179 -1 -6279 6179 -1 -6180 6180 4 -6181 6180 -1 -6280 6180 -1 -6181 6181 4 -6182 6181 -1 -6281 6181 -1 -6182 6182 4 -6183 6182 -1 -6282 6182 -1 -6183 6183 4 -6184 6183 -1 -6283 6183 -1 -6184 6184 4 -6185 6184 -1 -6284 6184 -1 -6185 6185 4 -6186 6185 -1 -6285 6185 -1 -6186 6186 4 -6187 6186 -1 -6286 6186 -1 -6187 6187 4 -6188 6187 -1 -6287 6187 -1 -6188 6188 4 -6189 6188 -1 -6288 6188 -1 -6189 6189 4 -6190 6189 -1 -6289 6189 -1 -6190 6190 4 -6191 6190 -1 -6290 6190 -1 -6191 6191 4 -6192 6191 -1 -6291 6191 -1 -6192 6192 4 -6193 6192 -1 -6292 6192 -1 -6193 6193 4 -6194 6193 -1 -6293 6193 -1 -6194 6194 4 -6195 6194 -1 -6294 6194 -1 -6195 6195 4 -6196 6195 -1 -6295 6195 -1 -6196 6196 4 -6197 6196 -1 -6296 6196 -1 -6197 6197 4 -6198 6197 -1 -6297 6197 -1 -6198 6198 4 -6199 6198 -1 -6298 6198 -1 -6199 6199 4 -6200 6199 -1 -6299 6199 -1 -6200 6200 4 -6300 6200 -1 -6201 6201 4 -6202 6201 -1 -6301 6201 -1 -6202 6202 4 -6203 6202 -1 -6302 6202 -1 -6203 6203 4 -6204 6203 -1 -6303 6203 -1 -6204 6204 4 -6205 6204 -1 -6304 6204 -1 -6205 6205 4 -6206 6205 -1 -6305 6205 -1 -6206 6206 4 -6207 6206 -1 -6306 6206 -1 -6207 6207 4 -6208 6207 -1 -6307 6207 -1 -6208 6208 4 -6209 6208 -1 -6308 6208 -1 -6209 6209 4 -6210 6209 -1 -6309 6209 -1 -6210 6210 4 -6211 6210 -1 -6310 6210 -1 -6211 6211 4 -6212 6211 -1 -6311 6211 -1 -6212 6212 4 -6213 6212 -1 -6312 6212 -1 -6213 6213 4 -6214 6213 -1 -6313 6213 -1 -6214 6214 4 -6215 6214 -1 -6314 6214 -1 -6215 6215 4 -6216 6215 -1 -6315 6215 -1 -6216 6216 4 -6217 6216 -1 -6316 6216 -1 -6217 6217 4 -6218 6217 -1 -6317 6217 -1 -6218 6218 4 -6219 6218 -1 -6318 6218 -1 -6219 6219 4 -6220 6219 -1 -6319 6219 -1 -6220 6220 4 -6221 6220 -1 -6320 6220 -1 -6221 6221 4 -6222 6221 -1 -6321 6221 -1 -6222 6222 4 -6223 6222 -1 -6322 6222 -1 -6223 6223 4 -6224 6223 -1 -6323 6223 -1 -6224 6224 4 -6225 6224 -1 -6324 6224 -1 -6225 6225 4 -6226 6225 -1 -6325 6225 -1 -6226 6226 4 -6227 6226 -1 -6326 6226 -1 -6227 6227 4 -6228 6227 -1 -6327 6227 -1 -6228 6228 4 -6229 6228 -1 -6328 6228 -1 -6229 6229 4 -6230 6229 -1 -6329 6229 -1 -6230 6230 4 -6231 6230 -1 -6330 6230 -1 -6231 6231 4 -6232 6231 -1 -6331 6231 -1 -6232 6232 4 -6233 6232 -1 -6332 6232 -1 -6233 6233 4 -6234 6233 -1 -6333 6233 -1 -6234 6234 4 -6235 6234 -1 -6334 6234 -1 -6235 6235 4 -6236 6235 -1 -6335 6235 -1 -6236 6236 4 -6237 6236 -1 -6336 6236 -1 -6237 6237 4 -6238 6237 -1 -6337 6237 -1 -6238 6238 4 -6239 6238 -1 -6338 6238 -1 -6239 6239 4 -6240 6239 -1 -6339 6239 -1 -6240 6240 4 -6241 6240 -1 -6340 6240 -1 -6241 6241 4 -6242 6241 -1 -6341 6241 -1 -6242 6242 4 -6243 6242 -1 -6342 6242 -1 -6243 6243 4 -6244 6243 -1 -6343 6243 -1 -6244 6244 4 -6245 6244 -1 -6344 6244 -1 -6245 6245 4 -6246 6245 -1 -6345 6245 -1 -6246 6246 4 -6247 6246 -1 -6346 6246 -1 -6247 6247 4 -6248 6247 -1 -6347 6247 -1 -6248 6248 4 -6249 6248 -1 -6348 6248 -1 -6249 6249 4 -6250 6249 -1 -6349 6249 -1 -6250 6250 4 -6251 6250 -1 -6350 6250 -1 -6251 6251 4 -6252 6251 -1 -6351 6251 -1 -6252 6252 4 -6253 6252 -1 -6352 6252 -1 -6253 6253 4 -6254 6253 -1 -6353 6253 -1 -6254 6254 4 -6255 6254 -1 -6354 6254 -1 -6255 6255 4 -6256 6255 -1 -6355 6255 -1 -6256 6256 4 -6257 6256 -1 -6356 6256 -1 -6257 6257 4 -6258 6257 -1 -6357 6257 -1 -6258 6258 4 -6259 6258 -1 -6358 6258 -1 -6259 6259 4 -6260 6259 -1 -6359 6259 -1 -6260 6260 4 -6261 6260 -1 -6360 6260 -1 -6261 6261 4 -6262 6261 -1 -6361 6261 -1 -6262 6262 4 -6263 6262 -1 -6362 6262 -1 -6263 6263 4 -6264 6263 -1 -6363 6263 -1 -6264 6264 4 -6265 6264 -1 -6364 6264 -1 -6265 6265 4 -6266 6265 -1 -6365 6265 -1 -6266 6266 4 -6267 6266 -1 -6366 6266 -1 -6267 6267 4 -6268 6267 -1 -6367 6267 -1 -6268 6268 4 -6269 6268 -1 -6368 6268 -1 -6269 6269 4 -6270 6269 -1 -6369 6269 -1 -6270 6270 4 -6271 6270 -1 -6370 6270 -1 -6271 6271 4 -6272 6271 -1 -6371 6271 -1 -6272 6272 4 -6273 6272 -1 -6372 6272 -1 -6273 6273 4 -6274 6273 -1 -6373 6273 -1 -6274 6274 4 -6275 6274 -1 -6374 6274 -1 -6275 6275 4 -6276 6275 -1 -6375 6275 -1 -6276 6276 4 -6277 6276 -1 -6376 6276 -1 -6277 6277 4 -6278 6277 -1 -6377 6277 -1 -6278 6278 4 -6279 6278 -1 -6378 6278 -1 -6279 6279 4 -6280 6279 -1 -6379 6279 -1 -6280 6280 4 -6281 6280 -1 -6380 6280 -1 -6281 6281 4 -6282 6281 -1 -6381 6281 -1 -6282 6282 4 -6283 6282 -1 -6382 6282 -1 -6283 6283 4 -6284 6283 -1 -6383 6283 -1 -6284 6284 4 -6285 6284 -1 -6384 6284 -1 -6285 6285 4 -6286 6285 -1 -6385 6285 -1 -6286 6286 4 -6287 6286 -1 -6386 6286 -1 -6287 6287 4 -6288 6287 -1 -6387 6287 -1 -6288 6288 4 -6289 6288 -1 -6388 6288 -1 -6289 6289 4 -6290 6289 -1 -6389 6289 -1 -6290 6290 4 -6291 6290 -1 -6390 6290 -1 -6291 6291 4 -6292 6291 -1 -6391 6291 -1 -6292 6292 4 -6293 6292 -1 -6392 6292 -1 -6293 6293 4 -6294 6293 -1 -6393 6293 -1 -6294 6294 4 -6295 6294 -1 -6394 6294 -1 -6295 6295 4 -6296 6295 -1 -6395 6295 -1 -6296 6296 4 -6297 6296 -1 -6396 6296 -1 -6297 6297 4 -6298 6297 -1 -6397 6297 -1 -6298 6298 4 -6299 6298 -1 -6398 6298 -1 -6299 6299 4 -6300 6299 -1 -6399 6299 -1 -6300 6300 4 -6400 6300 -1 -6301 6301 4 -6302 6301 -1 -6401 6301 -1 -6302 6302 4 -6303 6302 -1 -6402 6302 -1 -6303 6303 4 -6304 6303 -1 -6403 6303 -1 -6304 6304 4 -6305 6304 -1 -6404 6304 -1 -6305 6305 4 -6306 6305 -1 -6405 6305 -1 -6306 6306 4 -6307 6306 -1 -6406 6306 -1 -6307 6307 4 -6308 6307 -1 -6407 6307 -1 -6308 6308 4 -6309 6308 -1 -6408 6308 -1 -6309 6309 4 -6310 6309 -1 -6409 6309 -1 -6310 6310 4 -6311 6310 -1 -6410 6310 -1 -6311 6311 4 -6312 6311 -1 -6411 6311 -1 -6312 6312 4 -6313 6312 -1 -6412 6312 -1 -6313 6313 4 -6314 6313 -1 -6413 6313 -1 -6314 6314 4 -6315 6314 -1 -6414 6314 -1 -6315 6315 4 -6316 6315 -1 -6415 6315 -1 -6316 6316 4 -6317 6316 -1 -6416 6316 -1 -6317 6317 4 -6318 6317 -1 -6417 6317 -1 -6318 6318 4 -6319 6318 -1 -6418 6318 -1 -6319 6319 4 -6320 6319 -1 -6419 6319 -1 -6320 6320 4 -6321 6320 -1 -6420 6320 -1 -6321 6321 4 -6322 6321 -1 -6421 6321 -1 -6322 6322 4 -6323 6322 -1 -6422 6322 -1 -6323 6323 4 -6324 6323 -1 -6423 6323 -1 -6324 6324 4 -6325 6324 -1 -6424 6324 -1 -6325 6325 4 -6326 6325 -1 -6425 6325 -1 -6326 6326 4 -6327 6326 -1 -6426 6326 -1 -6327 6327 4 -6328 6327 -1 -6427 6327 -1 -6328 6328 4 -6329 6328 -1 -6428 6328 -1 -6329 6329 4 -6330 6329 -1 -6429 6329 -1 -6330 6330 4 -6331 6330 -1 -6430 6330 -1 -6331 6331 4 -6332 6331 -1 -6431 6331 -1 -6332 6332 4 -6333 6332 -1 -6432 6332 -1 -6333 6333 4 -6334 6333 -1 -6433 6333 -1 -6334 6334 4 -6335 6334 -1 -6434 6334 -1 -6335 6335 4 -6336 6335 -1 -6435 6335 -1 -6336 6336 4 -6337 6336 -1 -6436 6336 -1 -6337 6337 4 -6338 6337 -1 -6437 6337 -1 -6338 6338 4 -6339 6338 -1 -6438 6338 -1 -6339 6339 4 -6340 6339 -1 -6439 6339 -1 -6340 6340 4 -6341 6340 -1 -6440 6340 -1 -6341 6341 4 -6342 6341 -1 -6441 6341 -1 -6342 6342 4 -6343 6342 -1 -6442 6342 -1 -6343 6343 4 -6344 6343 -1 -6443 6343 -1 -6344 6344 4 -6345 6344 -1 -6444 6344 -1 -6345 6345 4 -6346 6345 -1 -6445 6345 -1 -6346 6346 4 -6347 6346 -1 -6446 6346 -1 -6347 6347 4 -6348 6347 -1 -6447 6347 -1 -6348 6348 4 -6349 6348 -1 -6448 6348 -1 -6349 6349 4 -6350 6349 -1 -6449 6349 -1 -6350 6350 4 -6351 6350 -1 -6450 6350 -1 -6351 6351 4 -6352 6351 -1 -6451 6351 -1 -6352 6352 4 -6353 6352 -1 -6452 6352 -1 -6353 6353 4 -6354 6353 -1 -6453 6353 -1 -6354 6354 4 -6355 6354 -1 -6454 6354 -1 -6355 6355 4 -6356 6355 -1 -6455 6355 -1 -6356 6356 4 -6357 6356 -1 -6456 6356 -1 -6357 6357 4 -6358 6357 -1 -6457 6357 -1 -6358 6358 4 -6359 6358 -1 -6458 6358 -1 -6359 6359 4 -6360 6359 -1 -6459 6359 -1 -6360 6360 4 -6361 6360 -1 -6460 6360 -1 -6361 6361 4 -6362 6361 -1 -6461 6361 -1 -6362 6362 4 -6363 6362 -1 -6462 6362 -1 -6363 6363 4 -6364 6363 -1 -6463 6363 -1 -6364 6364 4 -6365 6364 -1 -6464 6364 -1 -6365 6365 4 -6366 6365 -1 -6465 6365 -1 -6366 6366 4 -6367 6366 -1 -6466 6366 -1 -6367 6367 4 -6368 6367 -1 -6467 6367 -1 -6368 6368 4 -6369 6368 -1 -6468 6368 -1 -6369 6369 4 -6370 6369 -1 -6469 6369 -1 -6370 6370 4 -6371 6370 -1 -6470 6370 -1 -6371 6371 4 -6372 6371 -1 -6471 6371 -1 -6372 6372 4 -6373 6372 -1 -6472 6372 -1 -6373 6373 4 -6374 6373 -1 -6473 6373 -1 -6374 6374 4 -6375 6374 -1 -6474 6374 -1 -6375 6375 4 -6376 6375 -1 -6475 6375 -1 -6376 6376 4 -6377 6376 -1 -6476 6376 -1 -6377 6377 4 -6378 6377 -1 -6477 6377 -1 -6378 6378 4 -6379 6378 -1 -6478 6378 -1 -6379 6379 4 -6380 6379 -1 -6479 6379 -1 -6380 6380 4 -6381 6380 -1 -6480 6380 -1 -6381 6381 4 -6382 6381 -1 -6481 6381 -1 -6382 6382 4 -6383 6382 -1 -6482 6382 -1 -6383 6383 4 -6384 6383 -1 -6483 6383 -1 -6384 6384 4 -6385 6384 -1 -6484 6384 -1 -6385 6385 4 -6386 6385 -1 -6485 6385 -1 -6386 6386 4 -6387 6386 -1 -6486 6386 -1 -6387 6387 4 -6388 6387 -1 -6487 6387 -1 -6388 6388 4 -6389 6388 -1 -6488 6388 -1 -6389 6389 4 -6390 6389 -1 -6489 6389 -1 -6390 6390 4 -6391 6390 -1 -6490 6390 -1 -6391 6391 4 -6392 6391 -1 -6491 6391 -1 -6392 6392 4 -6393 6392 -1 -6492 6392 -1 -6393 6393 4 -6394 6393 -1 -6493 6393 -1 -6394 6394 4 -6395 6394 -1 -6494 6394 -1 -6395 6395 4 -6396 6395 -1 -6495 6395 -1 -6396 6396 4 -6397 6396 -1 -6496 6396 -1 -6397 6397 4 -6398 6397 -1 -6497 6397 -1 -6398 6398 4 -6399 6398 -1 -6498 6398 -1 -6399 6399 4 -6400 6399 -1 -6499 6399 -1 -6400 6400 4 -6500 6400 -1 -6401 6401 4 -6402 6401 -1 -6501 6401 -1 -6402 6402 4 -6403 6402 -1 -6502 6402 -1 -6403 6403 4 -6404 6403 -1 -6503 6403 -1 -6404 6404 4 -6405 6404 -1 -6504 6404 -1 -6405 6405 4 -6406 6405 -1 -6505 6405 -1 -6406 6406 4 -6407 6406 -1 -6506 6406 -1 -6407 6407 4 -6408 6407 -1 -6507 6407 -1 -6408 6408 4 -6409 6408 -1 -6508 6408 -1 -6409 6409 4 -6410 6409 -1 -6509 6409 -1 -6410 6410 4 -6411 6410 -1 -6510 6410 -1 -6411 6411 4 -6412 6411 -1 -6511 6411 -1 -6412 6412 4 -6413 6412 -1 -6512 6412 -1 -6413 6413 4 -6414 6413 -1 -6513 6413 -1 -6414 6414 4 -6415 6414 -1 -6514 6414 -1 -6415 6415 4 -6416 6415 -1 -6515 6415 -1 -6416 6416 4 -6417 6416 -1 -6516 6416 -1 -6417 6417 4 -6418 6417 -1 -6517 6417 -1 -6418 6418 4 -6419 6418 -1 -6518 6418 -1 -6419 6419 4 -6420 6419 -1 -6519 6419 -1 -6420 6420 4 -6421 6420 -1 -6520 6420 -1 -6421 6421 4 -6422 6421 -1 -6521 6421 -1 -6422 6422 4 -6423 6422 -1 -6522 6422 -1 -6423 6423 4 -6424 6423 -1 -6523 6423 -1 -6424 6424 4 -6425 6424 -1 -6524 6424 -1 -6425 6425 4 -6426 6425 -1 -6525 6425 -1 -6426 6426 4 -6427 6426 -1 -6526 6426 -1 -6427 6427 4 -6428 6427 -1 -6527 6427 -1 -6428 6428 4 -6429 6428 -1 -6528 6428 -1 -6429 6429 4 -6430 6429 -1 -6529 6429 -1 -6430 6430 4 -6431 6430 -1 -6530 6430 -1 -6431 6431 4 -6432 6431 -1 -6531 6431 -1 -6432 6432 4 -6433 6432 -1 -6532 6432 -1 -6433 6433 4 -6434 6433 -1 -6533 6433 -1 -6434 6434 4 -6435 6434 -1 -6534 6434 -1 -6435 6435 4 -6436 6435 -1 -6535 6435 -1 -6436 6436 4 -6437 6436 -1 -6536 6436 -1 -6437 6437 4 -6438 6437 -1 -6537 6437 -1 -6438 6438 4 -6439 6438 -1 -6538 6438 -1 -6439 6439 4 -6440 6439 -1 -6539 6439 -1 -6440 6440 4 -6441 6440 -1 -6540 6440 -1 -6441 6441 4 -6442 6441 -1 -6541 6441 -1 -6442 6442 4 -6443 6442 -1 -6542 6442 -1 -6443 6443 4 -6444 6443 -1 -6543 6443 -1 -6444 6444 4 -6445 6444 -1 -6544 6444 -1 -6445 6445 4 -6446 6445 -1 -6545 6445 -1 -6446 6446 4 -6447 6446 -1 -6546 6446 -1 -6447 6447 4 -6448 6447 -1 -6547 6447 -1 -6448 6448 4 -6449 6448 -1 -6548 6448 -1 -6449 6449 4 -6450 6449 -1 -6549 6449 -1 -6450 6450 4 -6451 6450 -1 -6550 6450 -1 -6451 6451 4 -6452 6451 -1 -6551 6451 -1 -6452 6452 4 -6453 6452 -1 -6552 6452 -1 -6453 6453 4 -6454 6453 -1 -6553 6453 -1 -6454 6454 4 -6455 6454 -1 -6554 6454 -1 -6455 6455 4 -6456 6455 -1 -6555 6455 -1 -6456 6456 4 -6457 6456 -1 -6556 6456 -1 -6457 6457 4 -6458 6457 -1 -6557 6457 -1 -6458 6458 4 -6459 6458 -1 -6558 6458 -1 -6459 6459 4 -6460 6459 -1 -6559 6459 -1 -6460 6460 4 -6461 6460 -1 -6560 6460 -1 -6461 6461 4 -6462 6461 -1 -6561 6461 -1 -6462 6462 4 -6463 6462 -1 -6562 6462 -1 -6463 6463 4 -6464 6463 -1 -6563 6463 -1 -6464 6464 4 -6465 6464 -1 -6564 6464 -1 -6465 6465 4 -6466 6465 -1 -6565 6465 -1 -6466 6466 4 -6467 6466 -1 -6566 6466 -1 -6467 6467 4 -6468 6467 -1 -6567 6467 -1 -6468 6468 4 -6469 6468 -1 -6568 6468 -1 -6469 6469 4 -6470 6469 -1 -6569 6469 -1 -6470 6470 4 -6471 6470 -1 -6570 6470 -1 -6471 6471 4 -6472 6471 -1 -6571 6471 -1 -6472 6472 4 -6473 6472 -1 -6572 6472 -1 -6473 6473 4 -6474 6473 -1 -6573 6473 -1 -6474 6474 4 -6475 6474 -1 -6574 6474 -1 -6475 6475 4 -6476 6475 -1 -6575 6475 -1 -6476 6476 4 -6477 6476 -1 -6576 6476 -1 -6477 6477 4 -6478 6477 -1 -6577 6477 -1 -6478 6478 4 -6479 6478 -1 -6578 6478 -1 -6479 6479 4 -6480 6479 -1 -6579 6479 -1 -6480 6480 4 -6481 6480 -1 -6580 6480 -1 -6481 6481 4 -6482 6481 -1 -6581 6481 -1 -6482 6482 4 -6483 6482 -1 -6582 6482 -1 -6483 6483 4 -6484 6483 -1 -6583 6483 -1 -6484 6484 4 -6485 6484 -1 -6584 6484 -1 -6485 6485 4 -6486 6485 -1 -6585 6485 -1 -6486 6486 4 -6487 6486 -1 -6586 6486 -1 -6487 6487 4 -6488 6487 -1 -6587 6487 -1 -6488 6488 4 -6489 6488 -1 -6588 6488 -1 -6489 6489 4 -6490 6489 -1 -6589 6489 -1 -6490 6490 4 -6491 6490 -1 -6590 6490 -1 -6491 6491 4 -6492 6491 -1 -6591 6491 -1 -6492 6492 4 -6493 6492 -1 -6592 6492 -1 -6493 6493 4 -6494 6493 -1 -6593 6493 -1 -6494 6494 4 -6495 6494 -1 -6594 6494 -1 -6495 6495 4 -6496 6495 -1 -6595 6495 -1 -6496 6496 4 -6497 6496 -1 -6596 6496 -1 -6497 6497 4 -6498 6497 -1 -6597 6497 -1 -6498 6498 4 -6499 6498 -1 -6598 6498 -1 -6499 6499 4 -6500 6499 -1 -6599 6499 -1 -6500 6500 4 -6600 6500 -1 -6501 6501 4 -6502 6501 -1 -6601 6501 -1 -6502 6502 4 -6503 6502 -1 -6602 6502 -1 -6503 6503 4 -6504 6503 -1 -6603 6503 -1 -6504 6504 4 -6505 6504 -1 -6604 6504 -1 -6505 6505 4 -6506 6505 -1 -6605 6505 -1 -6506 6506 4 -6507 6506 -1 -6606 6506 -1 -6507 6507 4 -6508 6507 -1 -6607 6507 -1 -6508 6508 4 -6509 6508 -1 -6608 6508 -1 -6509 6509 4 -6510 6509 -1 -6609 6509 -1 -6510 6510 4 -6511 6510 -1 -6610 6510 -1 -6511 6511 4 -6512 6511 -1 -6611 6511 -1 -6512 6512 4 -6513 6512 -1 -6612 6512 -1 -6513 6513 4 -6514 6513 -1 -6613 6513 -1 -6514 6514 4 -6515 6514 -1 -6614 6514 -1 -6515 6515 4 -6516 6515 -1 -6615 6515 -1 -6516 6516 4 -6517 6516 -1 -6616 6516 -1 -6517 6517 4 -6518 6517 -1 -6617 6517 -1 -6518 6518 4 -6519 6518 -1 -6618 6518 -1 -6519 6519 4 -6520 6519 -1 -6619 6519 -1 -6520 6520 4 -6521 6520 -1 -6620 6520 -1 -6521 6521 4 -6522 6521 -1 -6621 6521 -1 -6522 6522 4 -6523 6522 -1 -6622 6522 -1 -6523 6523 4 -6524 6523 -1 -6623 6523 -1 -6524 6524 4 -6525 6524 -1 -6624 6524 -1 -6525 6525 4 -6526 6525 -1 -6625 6525 -1 -6526 6526 4 -6527 6526 -1 -6626 6526 -1 -6527 6527 4 -6528 6527 -1 -6627 6527 -1 -6528 6528 4 -6529 6528 -1 -6628 6528 -1 -6529 6529 4 -6530 6529 -1 -6629 6529 -1 -6530 6530 4 -6531 6530 -1 -6630 6530 -1 -6531 6531 4 -6532 6531 -1 -6631 6531 -1 -6532 6532 4 -6533 6532 -1 -6632 6532 -1 -6533 6533 4 -6534 6533 -1 -6633 6533 -1 -6534 6534 4 -6535 6534 -1 -6634 6534 -1 -6535 6535 4 -6536 6535 -1 -6635 6535 -1 -6536 6536 4 -6537 6536 -1 -6636 6536 -1 -6537 6537 4 -6538 6537 -1 -6637 6537 -1 -6538 6538 4 -6539 6538 -1 -6638 6538 -1 -6539 6539 4 -6540 6539 -1 -6639 6539 -1 -6540 6540 4 -6541 6540 -1 -6640 6540 -1 -6541 6541 4 -6542 6541 -1 -6641 6541 -1 -6542 6542 4 -6543 6542 -1 -6642 6542 -1 -6543 6543 4 -6544 6543 -1 -6643 6543 -1 -6544 6544 4 -6545 6544 -1 -6644 6544 -1 -6545 6545 4 -6546 6545 -1 -6645 6545 -1 -6546 6546 4 -6547 6546 -1 -6646 6546 -1 -6547 6547 4 -6548 6547 -1 -6647 6547 -1 -6548 6548 4 -6549 6548 -1 -6648 6548 -1 -6549 6549 4 -6550 6549 -1 -6649 6549 -1 -6550 6550 4 -6551 6550 -1 -6650 6550 -1 -6551 6551 4 -6552 6551 -1 -6651 6551 -1 -6552 6552 4 -6553 6552 -1 -6652 6552 -1 -6553 6553 4 -6554 6553 -1 -6653 6553 -1 -6554 6554 4 -6555 6554 -1 -6654 6554 -1 -6555 6555 4 -6556 6555 -1 -6655 6555 -1 -6556 6556 4 -6557 6556 -1 -6656 6556 -1 -6557 6557 4 -6558 6557 -1 -6657 6557 -1 -6558 6558 4 -6559 6558 -1 -6658 6558 -1 -6559 6559 4 -6560 6559 -1 -6659 6559 -1 -6560 6560 4 -6561 6560 -1 -6660 6560 -1 -6561 6561 4 -6562 6561 -1 -6661 6561 -1 -6562 6562 4 -6563 6562 -1 -6662 6562 -1 -6563 6563 4 -6564 6563 -1 -6663 6563 -1 -6564 6564 4 -6565 6564 -1 -6664 6564 -1 -6565 6565 4 -6566 6565 -1 -6665 6565 -1 -6566 6566 4 -6567 6566 -1 -6666 6566 -1 -6567 6567 4 -6568 6567 -1 -6667 6567 -1 -6568 6568 4 -6569 6568 -1 -6668 6568 -1 -6569 6569 4 -6570 6569 -1 -6669 6569 -1 -6570 6570 4 -6571 6570 -1 -6670 6570 -1 -6571 6571 4 -6572 6571 -1 -6671 6571 -1 -6572 6572 4 -6573 6572 -1 -6672 6572 -1 -6573 6573 4 -6574 6573 -1 -6673 6573 -1 -6574 6574 4 -6575 6574 -1 -6674 6574 -1 -6575 6575 4 -6576 6575 -1 -6675 6575 -1 -6576 6576 4 -6577 6576 -1 -6676 6576 -1 -6577 6577 4 -6578 6577 -1 -6677 6577 -1 -6578 6578 4 -6579 6578 -1 -6678 6578 -1 -6579 6579 4 -6580 6579 -1 -6679 6579 -1 -6580 6580 4 -6581 6580 -1 -6680 6580 -1 -6581 6581 4 -6582 6581 -1 -6681 6581 -1 -6582 6582 4 -6583 6582 -1 -6682 6582 -1 -6583 6583 4 -6584 6583 -1 -6683 6583 -1 -6584 6584 4 -6585 6584 -1 -6684 6584 -1 -6585 6585 4 -6586 6585 -1 -6685 6585 -1 -6586 6586 4 -6587 6586 -1 -6686 6586 -1 -6587 6587 4 -6588 6587 -1 -6687 6587 -1 -6588 6588 4 -6589 6588 -1 -6688 6588 -1 -6589 6589 4 -6590 6589 -1 -6689 6589 -1 -6590 6590 4 -6591 6590 -1 -6690 6590 -1 -6591 6591 4 -6592 6591 -1 -6691 6591 -1 -6592 6592 4 -6593 6592 -1 -6692 6592 -1 -6593 6593 4 -6594 6593 -1 -6693 6593 -1 -6594 6594 4 -6595 6594 -1 -6694 6594 -1 -6595 6595 4 -6596 6595 -1 -6695 6595 -1 -6596 6596 4 -6597 6596 -1 -6696 6596 -1 -6597 6597 4 -6598 6597 -1 -6697 6597 -1 -6598 6598 4 -6599 6598 -1 -6698 6598 -1 -6599 6599 4 -6600 6599 -1 -6699 6599 -1 -6600 6600 4 -6700 6600 -1 -6601 6601 4 -6602 6601 -1 -6701 6601 -1 -6602 6602 4 -6603 6602 -1 -6702 6602 -1 -6603 6603 4 -6604 6603 -1 -6703 6603 -1 -6604 6604 4 -6605 6604 -1 -6704 6604 -1 -6605 6605 4 -6606 6605 -1 -6705 6605 -1 -6606 6606 4 -6607 6606 -1 -6706 6606 -1 -6607 6607 4 -6608 6607 -1 -6707 6607 -1 -6608 6608 4 -6609 6608 -1 -6708 6608 -1 -6609 6609 4 -6610 6609 -1 -6709 6609 -1 -6610 6610 4 -6611 6610 -1 -6710 6610 -1 -6611 6611 4 -6612 6611 -1 -6711 6611 -1 -6612 6612 4 -6613 6612 -1 -6712 6612 -1 -6613 6613 4 -6614 6613 -1 -6713 6613 -1 -6614 6614 4 -6615 6614 -1 -6714 6614 -1 -6615 6615 4 -6616 6615 -1 -6715 6615 -1 -6616 6616 4 -6617 6616 -1 -6716 6616 -1 -6617 6617 4 -6618 6617 -1 -6717 6617 -1 -6618 6618 4 -6619 6618 -1 -6718 6618 -1 -6619 6619 4 -6620 6619 -1 -6719 6619 -1 -6620 6620 4 -6621 6620 -1 -6720 6620 -1 -6621 6621 4 -6622 6621 -1 -6721 6621 -1 -6622 6622 4 -6623 6622 -1 -6722 6622 -1 -6623 6623 4 -6624 6623 -1 -6723 6623 -1 -6624 6624 4 -6625 6624 -1 -6724 6624 -1 -6625 6625 4 -6626 6625 -1 -6725 6625 -1 -6626 6626 4 -6627 6626 -1 -6726 6626 -1 -6627 6627 4 -6628 6627 -1 -6727 6627 -1 -6628 6628 4 -6629 6628 -1 -6728 6628 -1 -6629 6629 4 -6630 6629 -1 -6729 6629 -1 -6630 6630 4 -6631 6630 -1 -6730 6630 -1 -6631 6631 4 -6632 6631 -1 -6731 6631 -1 -6632 6632 4 -6633 6632 -1 -6732 6632 -1 -6633 6633 4 -6634 6633 -1 -6733 6633 -1 -6634 6634 4 -6635 6634 -1 -6734 6634 -1 -6635 6635 4 -6636 6635 -1 -6735 6635 -1 -6636 6636 4 -6637 6636 -1 -6736 6636 -1 -6637 6637 4 -6638 6637 -1 -6737 6637 -1 -6638 6638 4 -6639 6638 -1 -6738 6638 -1 -6639 6639 4 -6640 6639 -1 -6739 6639 -1 -6640 6640 4 -6641 6640 -1 -6740 6640 -1 -6641 6641 4 -6642 6641 -1 -6741 6641 -1 -6642 6642 4 -6643 6642 -1 -6742 6642 -1 -6643 6643 4 -6644 6643 -1 -6743 6643 -1 -6644 6644 4 -6645 6644 -1 -6744 6644 -1 -6645 6645 4 -6646 6645 -1 -6745 6645 -1 -6646 6646 4 -6647 6646 -1 -6746 6646 -1 -6647 6647 4 -6648 6647 -1 -6747 6647 -1 -6648 6648 4 -6649 6648 -1 -6748 6648 -1 -6649 6649 4 -6650 6649 -1 -6749 6649 -1 -6650 6650 4 -6651 6650 -1 -6750 6650 -1 -6651 6651 4 -6652 6651 -1 -6751 6651 -1 -6652 6652 4 -6653 6652 -1 -6752 6652 -1 -6653 6653 4 -6654 6653 -1 -6753 6653 -1 -6654 6654 4 -6655 6654 -1 -6754 6654 -1 -6655 6655 4 -6656 6655 -1 -6755 6655 -1 -6656 6656 4 -6657 6656 -1 -6756 6656 -1 -6657 6657 4 -6658 6657 -1 -6757 6657 -1 -6658 6658 4 -6659 6658 -1 -6758 6658 -1 -6659 6659 4 -6660 6659 -1 -6759 6659 -1 -6660 6660 4 -6661 6660 -1 -6760 6660 -1 -6661 6661 4 -6662 6661 -1 -6761 6661 -1 -6662 6662 4 -6663 6662 -1 -6762 6662 -1 -6663 6663 4 -6664 6663 -1 -6763 6663 -1 -6664 6664 4 -6665 6664 -1 -6764 6664 -1 -6665 6665 4 -6666 6665 -1 -6765 6665 -1 -6666 6666 4 -6667 6666 -1 -6766 6666 -1 -6667 6667 4 -6668 6667 -1 -6767 6667 -1 -6668 6668 4 -6669 6668 -1 -6768 6668 -1 -6669 6669 4 -6670 6669 -1 -6769 6669 -1 -6670 6670 4 -6671 6670 -1 -6770 6670 -1 -6671 6671 4 -6672 6671 -1 -6771 6671 -1 -6672 6672 4 -6673 6672 -1 -6772 6672 -1 -6673 6673 4 -6674 6673 -1 -6773 6673 -1 -6674 6674 4 -6675 6674 -1 -6774 6674 -1 -6675 6675 4 -6676 6675 -1 -6775 6675 -1 -6676 6676 4 -6677 6676 -1 -6776 6676 -1 -6677 6677 4 -6678 6677 -1 -6777 6677 -1 -6678 6678 4 -6679 6678 -1 -6778 6678 -1 -6679 6679 4 -6680 6679 -1 -6779 6679 -1 -6680 6680 4 -6681 6680 -1 -6780 6680 -1 -6681 6681 4 -6682 6681 -1 -6781 6681 -1 -6682 6682 4 -6683 6682 -1 -6782 6682 -1 -6683 6683 4 -6684 6683 -1 -6783 6683 -1 -6684 6684 4 -6685 6684 -1 -6784 6684 -1 -6685 6685 4 -6686 6685 -1 -6785 6685 -1 -6686 6686 4 -6687 6686 -1 -6786 6686 -1 -6687 6687 4 -6688 6687 -1 -6787 6687 -1 -6688 6688 4 -6689 6688 -1 -6788 6688 -1 -6689 6689 4 -6690 6689 -1 -6789 6689 -1 -6690 6690 4 -6691 6690 -1 -6790 6690 -1 -6691 6691 4 -6692 6691 -1 -6791 6691 -1 -6692 6692 4 -6693 6692 -1 -6792 6692 -1 -6693 6693 4 -6694 6693 -1 -6793 6693 -1 -6694 6694 4 -6695 6694 -1 -6794 6694 -1 -6695 6695 4 -6696 6695 -1 -6795 6695 -1 -6696 6696 4 -6697 6696 -1 -6796 6696 -1 -6697 6697 4 -6698 6697 -1 -6797 6697 -1 -6698 6698 4 -6699 6698 -1 -6798 6698 -1 -6699 6699 4 -6700 6699 -1 -6799 6699 -1 -6700 6700 4 -6800 6700 -1 -6701 6701 4 -6702 6701 -1 -6801 6701 -1 -6702 6702 4 -6703 6702 -1 -6802 6702 -1 -6703 6703 4 -6704 6703 -1 -6803 6703 -1 -6704 6704 4 -6705 6704 -1 -6804 6704 -1 -6705 6705 4 -6706 6705 -1 -6805 6705 -1 -6706 6706 4 -6707 6706 -1 -6806 6706 -1 -6707 6707 4 -6708 6707 -1 -6807 6707 -1 -6708 6708 4 -6709 6708 -1 -6808 6708 -1 -6709 6709 4 -6710 6709 -1 -6809 6709 -1 -6710 6710 4 -6711 6710 -1 -6810 6710 -1 -6711 6711 4 -6712 6711 -1 -6811 6711 -1 -6712 6712 4 -6713 6712 -1 -6812 6712 -1 -6713 6713 4 -6714 6713 -1 -6813 6713 -1 -6714 6714 4 -6715 6714 -1 -6814 6714 -1 -6715 6715 4 -6716 6715 -1 -6815 6715 -1 -6716 6716 4 -6717 6716 -1 -6816 6716 -1 -6717 6717 4 -6718 6717 -1 -6817 6717 -1 -6718 6718 4 -6719 6718 -1 -6818 6718 -1 -6719 6719 4 -6720 6719 -1 -6819 6719 -1 -6720 6720 4 -6721 6720 -1 -6820 6720 -1 -6721 6721 4 -6722 6721 -1 -6821 6721 -1 -6722 6722 4 -6723 6722 -1 -6822 6722 -1 -6723 6723 4 -6724 6723 -1 -6823 6723 -1 -6724 6724 4 -6725 6724 -1 -6824 6724 -1 -6725 6725 4 -6726 6725 -1 -6825 6725 -1 -6726 6726 4 -6727 6726 -1 -6826 6726 -1 -6727 6727 4 -6728 6727 -1 -6827 6727 -1 -6728 6728 4 -6729 6728 -1 -6828 6728 -1 -6729 6729 4 -6730 6729 -1 -6829 6729 -1 -6730 6730 4 -6731 6730 -1 -6830 6730 -1 -6731 6731 4 -6732 6731 -1 -6831 6731 -1 -6732 6732 4 -6733 6732 -1 -6832 6732 -1 -6733 6733 4 -6734 6733 -1 -6833 6733 -1 -6734 6734 4 -6735 6734 -1 -6834 6734 -1 -6735 6735 4 -6736 6735 -1 -6835 6735 -1 -6736 6736 4 -6737 6736 -1 -6836 6736 -1 -6737 6737 4 -6738 6737 -1 -6837 6737 -1 -6738 6738 4 -6739 6738 -1 -6838 6738 -1 -6739 6739 4 -6740 6739 -1 -6839 6739 -1 -6740 6740 4 -6741 6740 -1 -6840 6740 -1 -6741 6741 4 -6742 6741 -1 -6841 6741 -1 -6742 6742 4 -6743 6742 -1 -6842 6742 -1 -6743 6743 4 -6744 6743 -1 -6843 6743 -1 -6744 6744 4 -6745 6744 -1 -6844 6744 -1 -6745 6745 4 -6746 6745 -1 -6845 6745 -1 -6746 6746 4 -6747 6746 -1 -6846 6746 -1 -6747 6747 4 -6748 6747 -1 -6847 6747 -1 -6748 6748 4 -6749 6748 -1 -6848 6748 -1 -6749 6749 4 -6750 6749 -1 -6849 6749 -1 -6750 6750 4 -6751 6750 -1 -6850 6750 -1 -6751 6751 4 -6752 6751 -1 -6851 6751 -1 -6752 6752 4 -6753 6752 -1 -6852 6752 -1 -6753 6753 4 -6754 6753 -1 -6853 6753 -1 -6754 6754 4 -6755 6754 -1 -6854 6754 -1 -6755 6755 4 -6756 6755 -1 -6855 6755 -1 -6756 6756 4 -6757 6756 -1 -6856 6756 -1 -6757 6757 4 -6758 6757 -1 -6857 6757 -1 -6758 6758 4 -6759 6758 -1 -6858 6758 -1 -6759 6759 4 -6760 6759 -1 -6859 6759 -1 -6760 6760 4 -6761 6760 -1 -6860 6760 -1 -6761 6761 4 -6762 6761 -1 -6861 6761 -1 -6762 6762 4 -6763 6762 -1 -6862 6762 -1 -6763 6763 4 -6764 6763 -1 -6863 6763 -1 -6764 6764 4 -6765 6764 -1 -6864 6764 -1 -6765 6765 4 -6766 6765 -1 -6865 6765 -1 -6766 6766 4 -6767 6766 -1 -6866 6766 -1 -6767 6767 4 -6768 6767 -1 -6867 6767 -1 -6768 6768 4 -6769 6768 -1 -6868 6768 -1 -6769 6769 4 -6770 6769 -1 -6869 6769 -1 -6770 6770 4 -6771 6770 -1 -6870 6770 -1 -6771 6771 4 -6772 6771 -1 -6871 6771 -1 -6772 6772 4 -6773 6772 -1 -6872 6772 -1 -6773 6773 4 -6774 6773 -1 -6873 6773 -1 -6774 6774 4 -6775 6774 -1 -6874 6774 -1 -6775 6775 4 -6776 6775 -1 -6875 6775 -1 -6776 6776 4 -6777 6776 -1 -6876 6776 -1 -6777 6777 4 -6778 6777 -1 -6877 6777 -1 -6778 6778 4 -6779 6778 -1 -6878 6778 -1 -6779 6779 4 -6780 6779 -1 -6879 6779 -1 -6780 6780 4 -6781 6780 -1 -6880 6780 -1 -6781 6781 4 -6782 6781 -1 -6881 6781 -1 -6782 6782 4 -6783 6782 -1 -6882 6782 -1 -6783 6783 4 -6784 6783 -1 -6883 6783 -1 -6784 6784 4 -6785 6784 -1 -6884 6784 -1 -6785 6785 4 -6786 6785 -1 -6885 6785 -1 -6786 6786 4 -6787 6786 -1 -6886 6786 -1 -6787 6787 4 -6788 6787 -1 -6887 6787 -1 -6788 6788 4 -6789 6788 -1 -6888 6788 -1 -6789 6789 4 -6790 6789 -1 -6889 6789 -1 -6790 6790 4 -6791 6790 -1 -6890 6790 -1 -6791 6791 4 -6792 6791 -1 -6891 6791 -1 -6792 6792 4 -6793 6792 -1 -6892 6792 -1 -6793 6793 4 -6794 6793 -1 -6893 6793 -1 -6794 6794 4 -6795 6794 -1 -6894 6794 -1 -6795 6795 4 -6796 6795 -1 -6895 6795 -1 -6796 6796 4 -6797 6796 -1 -6896 6796 -1 -6797 6797 4 -6798 6797 -1 -6897 6797 -1 -6798 6798 4 -6799 6798 -1 -6898 6798 -1 -6799 6799 4 -6800 6799 -1 -6899 6799 -1 -6800 6800 4 -6900 6800 -1 -6801 6801 4 -6802 6801 -1 -6901 6801 -1 -6802 6802 4 -6803 6802 -1 -6902 6802 -1 -6803 6803 4 -6804 6803 -1 -6903 6803 -1 -6804 6804 4 -6805 6804 -1 -6904 6804 -1 -6805 6805 4 -6806 6805 -1 -6905 6805 -1 -6806 6806 4 -6807 6806 -1 -6906 6806 -1 -6807 6807 4 -6808 6807 -1 -6907 6807 -1 -6808 6808 4 -6809 6808 -1 -6908 6808 -1 -6809 6809 4 -6810 6809 -1 -6909 6809 -1 -6810 6810 4 -6811 6810 -1 -6910 6810 -1 -6811 6811 4 -6812 6811 -1 -6911 6811 -1 -6812 6812 4 -6813 6812 -1 -6912 6812 -1 -6813 6813 4 -6814 6813 -1 -6913 6813 -1 -6814 6814 4 -6815 6814 -1 -6914 6814 -1 -6815 6815 4 -6816 6815 -1 -6915 6815 -1 -6816 6816 4 -6817 6816 -1 -6916 6816 -1 -6817 6817 4 -6818 6817 -1 -6917 6817 -1 -6818 6818 4 -6819 6818 -1 -6918 6818 -1 -6819 6819 4 -6820 6819 -1 -6919 6819 -1 -6820 6820 4 -6821 6820 -1 -6920 6820 -1 -6821 6821 4 -6822 6821 -1 -6921 6821 -1 -6822 6822 4 -6823 6822 -1 -6922 6822 -1 -6823 6823 4 -6824 6823 -1 -6923 6823 -1 -6824 6824 4 -6825 6824 -1 -6924 6824 -1 -6825 6825 4 -6826 6825 -1 -6925 6825 -1 -6826 6826 4 -6827 6826 -1 -6926 6826 -1 -6827 6827 4 -6828 6827 -1 -6927 6827 -1 -6828 6828 4 -6829 6828 -1 -6928 6828 -1 -6829 6829 4 -6830 6829 -1 -6929 6829 -1 -6830 6830 4 -6831 6830 -1 -6930 6830 -1 -6831 6831 4 -6832 6831 -1 -6931 6831 -1 -6832 6832 4 -6833 6832 -1 -6932 6832 -1 -6833 6833 4 -6834 6833 -1 -6933 6833 -1 -6834 6834 4 -6835 6834 -1 -6934 6834 -1 -6835 6835 4 -6836 6835 -1 -6935 6835 -1 -6836 6836 4 -6837 6836 -1 -6936 6836 -1 -6837 6837 4 -6838 6837 -1 -6937 6837 -1 -6838 6838 4 -6839 6838 -1 -6938 6838 -1 -6839 6839 4 -6840 6839 -1 -6939 6839 -1 -6840 6840 4 -6841 6840 -1 -6940 6840 -1 -6841 6841 4 -6842 6841 -1 -6941 6841 -1 -6842 6842 4 -6843 6842 -1 -6942 6842 -1 -6843 6843 4 -6844 6843 -1 -6943 6843 -1 -6844 6844 4 -6845 6844 -1 -6944 6844 -1 -6845 6845 4 -6846 6845 -1 -6945 6845 -1 -6846 6846 4 -6847 6846 -1 -6946 6846 -1 -6847 6847 4 -6848 6847 -1 -6947 6847 -1 -6848 6848 4 -6849 6848 -1 -6948 6848 -1 -6849 6849 4 -6850 6849 -1 -6949 6849 -1 -6850 6850 4 -6851 6850 -1 -6950 6850 -1 -6851 6851 4 -6852 6851 -1 -6951 6851 -1 -6852 6852 4 -6853 6852 -1 -6952 6852 -1 -6853 6853 4 -6854 6853 -1 -6953 6853 -1 -6854 6854 4 -6855 6854 -1 -6954 6854 -1 -6855 6855 4 -6856 6855 -1 -6955 6855 -1 -6856 6856 4 -6857 6856 -1 -6956 6856 -1 -6857 6857 4 -6858 6857 -1 -6957 6857 -1 -6858 6858 4 -6859 6858 -1 -6958 6858 -1 -6859 6859 4 -6860 6859 -1 -6959 6859 -1 -6860 6860 4 -6861 6860 -1 -6960 6860 -1 -6861 6861 4 -6862 6861 -1 -6961 6861 -1 -6862 6862 4 -6863 6862 -1 -6962 6862 -1 -6863 6863 4 -6864 6863 -1 -6963 6863 -1 -6864 6864 4 -6865 6864 -1 -6964 6864 -1 -6865 6865 4 -6866 6865 -1 -6965 6865 -1 -6866 6866 4 -6867 6866 -1 -6966 6866 -1 -6867 6867 4 -6868 6867 -1 -6967 6867 -1 -6868 6868 4 -6869 6868 -1 -6968 6868 -1 -6869 6869 4 -6870 6869 -1 -6969 6869 -1 -6870 6870 4 -6871 6870 -1 -6970 6870 -1 -6871 6871 4 -6872 6871 -1 -6971 6871 -1 -6872 6872 4 -6873 6872 -1 -6972 6872 -1 -6873 6873 4 -6874 6873 -1 -6973 6873 -1 -6874 6874 4 -6875 6874 -1 -6974 6874 -1 -6875 6875 4 -6876 6875 -1 -6975 6875 -1 -6876 6876 4 -6877 6876 -1 -6976 6876 -1 -6877 6877 4 -6878 6877 -1 -6977 6877 -1 -6878 6878 4 -6879 6878 -1 -6978 6878 -1 -6879 6879 4 -6880 6879 -1 -6979 6879 -1 -6880 6880 4 -6881 6880 -1 -6980 6880 -1 -6881 6881 4 -6882 6881 -1 -6981 6881 -1 -6882 6882 4 -6883 6882 -1 -6982 6882 -1 -6883 6883 4 -6884 6883 -1 -6983 6883 -1 -6884 6884 4 -6885 6884 -1 -6984 6884 -1 -6885 6885 4 -6886 6885 -1 -6985 6885 -1 -6886 6886 4 -6887 6886 -1 -6986 6886 -1 -6887 6887 4 -6888 6887 -1 -6987 6887 -1 -6888 6888 4 -6889 6888 -1 -6988 6888 -1 -6889 6889 4 -6890 6889 -1 -6989 6889 -1 -6890 6890 4 -6891 6890 -1 -6990 6890 -1 -6891 6891 4 -6892 6891 -1 -6991 6891 -1 -6892 6892 4 -6893 6892 -1 -6992 6892 -1 -6893 6893 4 -6894 6893 -1 -6993 6893 -1 -6894 6894 4 -6895 6894 -1 -6994 6894 -1 -6895 6895 4 -6896 6895 -1 -6995 6895 -1 -6896 6896 4 -6897 6896 -1 -6996 6896 -1 -6897 6897 4 -6898 6897 -1 -6997 6897 -1 -6898 6898 4 -6899 6898 -1 -6998 6898 -1 -6899 6899 4 -6900 6899 -1 -6999 6899 -1 -6900 6900 4 -7000 6900 -1 -6901 6901 4 -6902 6901 -1 -7001 6901 -1 -6902 6902 4 -6903 6902 -1 -7002 6902 -1 -6903 6903 4 -6904 6903 -1 -7003 6903 -1 -6904 6904 4 -6905 6904 -1 -7004 6904 -1 -6905 6905 4 -6906 6905 -1 -7005 6905 -1 -6906 6906 4 -6907 6906 -1 -7006 6906 -1 -6907 6907 4 -6908 6907 -1 -7007 6907 -1 -6908 6908 4 -6909 6908 -1 -7008 6908 -1 -6909 6909 4 -6910 6909 -1 -7009 6909 -1 -6910 6910 4 -6911 6910 -1 -7010 6910 -1 -6911 6911 4 -6912 6911 -1 -7011 6911 -1 -6912 6912 4 -6913 6912 -1 -7012 6912 -1 -6913 6913 4 -6914 6913 -1 -7013 6913 -1 -6914 6914 4 -6915 6914 -1 -7014 6914 -1 -6915 6915 4 -6916 6915 -1 -7015 6915 -1 -6916 6916 4 -6917 6916 -1 -7016 6916 -1 -6917 6917 4 -6918 6917 -1 -7017 6917 -1 -6918 6918 4 -6919 6918 -1 -7018 6918 -1 -6919 6919 4 -6920 6919 -1 -7019 6919 -1 -6920 6920 4 -6921 6920 -1 -7020 6920 -1 -6921 6921 4 -6922 6921 -1 -7021 6921 -1 -6922 6922 4 -6923 6922 -1 -7022 6922 -1 -6923 6923 4 -6924 6923 -1 -7023 6923 -1 -6924 6924 4 -6925 6924 -1 -7024 6924 -1 -6925 6925 4 -6926 6925 -1 -7025 6925 -1 -6926 6926 4 -6927 6926 -1 -7026 6926 -1 -6927 6927 4 -6928 6927 -1 -7027 6927 -1 -6928 6928 4 -6929 6928 -1 -7028 6928 -1 -6929 6929 4 -6930 6929 -1 -7029 6929 -1 -6930 6930 4 -6931 6930 -1 -7030 6930 -1 -6931 6931 4 -6932 6931 -1 -7031 6931 -1 -6932 6932 4 -6933 6932 -1 -7032 6932 -1 -6933 6933 4 -6934 6933 -1 -7033 6933 -1 -6934 6934 4 -6935 6934 -1 -7034 6934 -1 -6935 6935 4 -6936 6935 -1 -7035 6935 -1 -6936 6936 4 -6937 6936 -1 -7036 6936 -1 -6937 6937 4 -6938 6937 -1 -7037 6937 -1 -6938 6938 4 -6939 6938 -1 -7038 6938 -1 -6939 6939 4 -6940 6939 -1 -7039 6939 -1 -6940 6940 4 -6941 6940 -1 -7040 6940 -1 -6941 6941 4 -6942 6941 -1 -7041 6941 -1 -6942 6942 4 -6943 6942 -1 -7042 6942 -1 -6943 6943 4 -6944 6943 -1 -7043 6943 -1 -6944 6944 4 -6945 6944 -1 -7044 6944 -1 -6945 6945 4 -6946 6945 -1 -7045 6945 -1 -6946 6946 4 -6947 6946 -1 -7046 6946 -1 -6947 6947 4 -6948 6947 -1 -7047 6947 -1 -6948 6948 4 -6949 6948 -1 -7048 6948 -1 -6949 6949 4 -6950 6949 -1 -7049 6949 -1 -6950 6950 4 -6951 6950 -1 -7050 6950 -1 -6951 6951 4 -6952 6951 -1 -7051 6951 -1 -6952 6952 4 -6953 6952 -1 -7052 6952 -1 -6953 6953 4 -6954 6953 -1 -7053 6953 -1 -6954 6954 4 -6955 6954 -1 -7054 6954 -1 -6955 6955 4 -6956 6955 -1 -7055 6955 -1 -6956 6956 4 -6957 6956 -1 -7056 6956 -1 -6957 6957 4 -6958 6957 -1 -7057 6957 -1 -6958 6958 4 -6959 6958 -1 -7058 6958 -1 -6959 6959 4 -6960 6959 -1 -7059 6959 -1 -6960 6960 4 -6961 6960 -1 -7060 6960 -1 -6961 6961 4 -6962 6961 -1 -7061 6961 -1 -6962 6962 4 -6963 6962 -1 -7062 6962 -1 -6963 6963 4 -6964 6963 -1 -7063 6963 -1 -6964 6964 4 -6965 6964 -1 -7064 6964 -1 -6965 6965 4 -6966 6965 -1 -7065 6965 -1 -6966 6966 4 -6967 6966 -1 -7066 6966 -1 -6967 6967 4 -6968 6967 -1 -7067 6967 -1 -6968 6968 4 -6969 6968 -1 -7068 6968 -1 -6969 6969 4 -6970 6969 -1 -7069 6969 -1 -6970 6970 4 -6971 6970 -1 -7070 6970 -1 -6971 6971 4 -6972 6971 -1 -7071 6971 -1 -6972 6972 4 -6973 6972 -1 -7072 6972 -1 -6973 6973 4 -6974 6973 -1 -7073 6973 -1 -6974 6974 4 -6975 6974 -1 -7074 6974 -1 -6975 6975 4 -6976 6975 -1 -7075 6975 -1 -6976 6976 4 -6977 6976 -1 -7076 6976 -1 -6977 6977 4 -6978 6977 -1 -7077 6977 -1 -6978 6978 4 -6979 6978 -1 -7078 6978 -1 -6979 6979 4 -6980 6979 -1 -7079 6979 -1 -6980 6980 4 -6981 6980 -1 -7080 6980 -1 -6981 6981 4 -6982 6981 -1 -7081 6981 -1 -6982 6982 4 -6983 6982 -1 -7082 6982 -1 -6983 6983 4 -6984 6983 -1 -7083 6983 -1 -6984 6984 4 -6985 6984 -1 -7084 6984 -1 -6985 6985 4 -6986 6985 -1 -7085 6985 -1 -6986 6986 4 -6987 6986 -1 -7086 6986 -1 -6987 6987 4 -6988 6987 -1 -7087 6987 -1 -6988 6988 4 -6989 6988 -1 -7088 6988 -1 -6989 6989 4 -6990 6989 -1 -7089 6989 -1 -6990 6990 4 -6991 6990 -1 -7090 6990 -1 -6991 6991 4 -6992 6991 -1 -7091 6991 -1 -6992 6992 4 -6993 6992 -1 -7092 6992 -1 -6993 6993 4 -6994 6993 -1 -7093 6993 -1 -6994 6994 4 -6995 6994 -1 -7094 6994 -1 -6995 6995 4 -6996 6995 -1 -7095 6995 -1 -6996 6996 4 -6997 6996 -1 -7096 6996 -1 -6997 6997 4 -6998 6997 -1 -7097 6997 -1 -6998 6998 4 -6999 6998 -1 -7098 6998 -1 -6999 6999 4 -7000 6999 -1 -7099 6999 -1 -7000 7000 4 -7100 7000 -1 -7001 7001 4 -7002 7001 -1 -7101 7001 -1 -7002 7002 4 -7003 7002 -1 -7102 7002 -1 -7003 7003 4 -7004 7003 -1 -7103 7003 -1 -7004 7004 4 -7005 7004 -1 -7104 7004 -1 -7005 7005 4 -7006 7005 -1 -7105 7005 -1 -7006 7006 4 -7007 7006 -1 -7106 7006 -1 -7007 7007 4 -7008 7007 -1 -7107 7007 -1 -7008 7008 4 -7009 7008 -1 -7108 7008 -1 -7009 7009 4 -7010 7009 -1 -7109 7009 -1 -7010 7010 4 -7011 7010 -1 -7110 7010 -1 -7011 7011 4 -7012 7011 -1 -7111 7011 -1 -7012 7012 4 -7013 7012 -1 -7112 7012 -1 -7013 7013 4 -7014 7013 -1 -7113 7013 -1 -7014 7014 4 -7015 7014 -1 -7114 7014 -1 -7015 7015 4 -7016 7015 -1 -7115 7015 -1 -7016 7016 4 -7017 7016 -1 -7116 7016 -1 -7017 7017 4 -7018 7017 -1 -7117 7017 -1 -7018 7018 4 -7019 7018 -1 -7118 7018 -1 -7019 7019 4 -7020 7019 -1 -7119 7019 -1 -7020 7020 4 -7021 7020 -1 -7120 7020 -1 -7021 7021 4 -7022 7021 -1 -7121 7021 -1 -7022 7022 4 -7023 7022 -1 -7122 7022 -1 -7023 7023 4 -7024 7023 -1 -7123 7023 -1 -7024 7024 4 -7025 7024 -1 -7124 7024 -1 -7025 7025 4 -7026 7025 -1 -7125 7025 -1 -7026 7026 4 -7027 7026 -1 -7126 7026 -1 -7027 7027 4 -7028 7027 -1 -7127 7027 -1 -7028 7028 4 -7029 7028 -1 -7128 7028 -1 -7029 7029 4 -7030 7029 -1 -7129 7029 -1 -7030 7030 4 -7031 7030 -1 -7130 7030 -1 -7031 7031 4 -7032 7031 -1 -7131 7031 -1 -7032 7032 4 -7033 7032 -1 -7132 7032 -1 -7033 7033 4 -7034 7033 -1 -7133 7033 -1 -7034 7034 4 -7035 7034 -1 -7134 7034 -1 -7035 7035 4 -7036 7035 -1 -7135 7035 -1 -7036 7036 4 -7037 7036 -1 -7136 7036 -1 -7037 7037 4 -7038 7037 -1 -7137 7037 -1 -7038 7038 4 -7039 7038 -1 -7138 7038 -1 -7039 7039 4 -7040 7039 -1 -7139 7039 -1 -7040 7040 4 -7041 7040 -1 -7140 7040 -1 -7041 7041 4 -7042 7041 -1 -7141 7041 -1 -7042 7042 4 -7043 7042 -1 -7142 7042 -1 -7043 7043 4 -7044 7043 -1 -7143 7043 -1 -7044 7044 4 -7045 7044 -1 -7144 7044 -1 -7045 7045 4 -7046 7045 -1 -7145 7045 -1 -7046 7046 4 -7047 7046 -1 -7146 7046 -1 -7047 7047 4 -7048 7047 -1 -7147 7047 -1 -7048 7048 4 -7049 7048 -1 -7148 7048 -1 -7049 7049 4 -7050 7049 -1 -7149 7049 -1 -7050 7050 4 -7051 7050 -1 -7150 7050 -1 -7051 7051 4 -7052 7051 -1 -7151 7051 -1 -7052 7052 4 -7053 7052 -1 -7152 7052 -1 -7053 7053 4 -7054 7053 -1 -7153 7053 -1 -7054 7054 4 -7055 7054 -1 -7154 7054 -1 -7055 7055 4 -7056 7055 -1 -7155 7055 -1 -7056 7056 4 -7057 7056 -1 -7156 7056 -1 -7057 7057 4 -7058 7057 -1 -7157 7057 -1 -7058 7058 4 -7059 7058 -1 -7158 7058 -1 -7059 7059 4 -7060 7059 -1 -7159 7059 -1 -7060 7060 4 -7061 7060 -1 -7160 7060 -1 -7061 7061 4 -7062 7061 -1 -7161 7061 -1 -7062 7062 4 -7063 7062 -1 -7162 7062 -1 -7063 7063 4 -7064 7063 -1 -7163 7063 -1 -7064 7064 4 -7065 7064 -1 -7164 7064 -1 -7065 7065 4 -7066 7065 -1 -7165 7065 -1 -7066 7066 4 -7067 7066 -1 -7166 7066 -1 -7067 7067 4 -7068 7067 -1 -7167 7067 -1 -7068 7068 4 -7069 7068 -1 -7168 7068 -1 -7069 7069 4 -7070 7069 -1 -7169 7069 -1 -7070 7070 4 -7071 7070 -1 -7170 7070 -1 -7071 7071 4 -7072 7071 -1 -7171 7071 -1 -7072 7072 4 -7073 7072 -1 -7172 7072 -1 -7073 7073 4 -7074 7073 -1 -7173 7073 -1 -7074 7074 4 -7075 7074 -1 -7174 7074 -1 -7075 7075 4 -7076 7075 -1 -7175 7075 -1 -7076 7076 4 -7077 7076 -1 -7176 7076 -1 -7077 7077 4 -7078 7077 -1 -7177 7077 -1 -7078 7078 4 -7079 7078 -1 -7178 7078 -1 -7079 7079 4 -7080 7079 -1 -7179 7079 -1 -7080 7080 4 -7081 7080 -1 -7180 7080 -1 -7081 7081 4 -7082 7081 -1 -7181 7081 -1 -7082 7082 4 -7083 7082 -1 -7182 7082 -1 -7083 7083 4 -7084 7083 -1 -7183 7083 -1 -7084 7084 4 -7085 7084 -1 -7184 7084 -1 -7085 7085 4 -7086 7085 -1 -7185 7085 -1 -7086 7086 4 -7087 7086 -1 -7186 7086 -1 -7087 7087 4 -7088 7087 -1 -7187 7087 -1 -7088 7088 4 -7089 7088 -1 -7188 7088 -1 -7089 7089 4 -7090 7089 -1 -7189 7089 -1 -7090 7090 4 -7091 7090 -1 -7190 7090 -1 -7091 7091 4 -7092 7091 -1 -7191 7091 -1 -7092 7092 4 -7093 7092 -1 -7192 7092 -1 -7093 7093 4 -7094 7093 -1 -7193 7093 -1 -7094 7094 4 -7095 7094 -1 -7194 7094 -1 -7095 7095 4 -7096 7095 -1 -7195 7095 -1 -7096 7096 4 -7097 7096 -1 -7196 7096 -1 -7097 7097 4 -7098 7097 -1 -7197 7097 -1 -7098 7098 4 -7099 7098 -1 -7198 7098 -1 -7099 7099 4 -7100 7099 -1 -7199 7099 -1 -7100 7100 4 -7200 7100 -1 -7101 7101 4 -7102 7101 -1 -7201 7101 -1 -7102 7102 4 -7103 7102 -1 -7202 7102 -1 -7103 7103 4 -7104 7103 -1 -7203 7103 -1 -7104 7104 4 -7105 7104 -1 -7204 7104 -1 -7105 7105 4 -7106 7105 -1 -7205 7105 -1 -7106 7106 4 -7107 7106 -1 -7206 7106 -1 -7107 7107 4 -7108 7107 -1 -7207 7107 -1 -7108 7108 4 -7109 7108 -1 -7208 7108 -1 -7109 7109 4 -7110 7109 -1 -7209 7109 -1 -7110 7110 4 -7111 7110 -1 -7210 7110 -1 -7111 7111 4 -7112 7111 -1 -7211 7111 -1 -7112 7112 4 -7113 7112 -1 -7212 7112 -1 -7113 7113 4 -7114 7113 -1 -7213 7113 -1 -7114 7114 4 -7115 7114 -1 -7214 7114 -1 -7115 7115 4 -7116 7115 -1 -7215 7115 -1 -7116 7116 4 -7117 7116 -1 -7216 7116 -1 -7117 7117 4 -7118 7117 -1 -7217 7117 -1 -7118 7118 4 -7119 7118 -1 -7218 7118 -1 -7119 7119 4 -7120 7119 -1 -7219 7119 -1 -7120 7120 4 -7121 7120 -1 -7220 7120 -1 -7121 7121 4 -7122 7121 -1 -7221 7121 -1 -7122 7122 4 -7123 7122 -1 -7222 7122 -1 -7123 7123 4 -7124 7123 -1 -7223 7123 -1 -7124 7124 4 -7125 7124 -1 -7224 7124 -1 -7125 7125 4 -7126 7125 -1 -7225 7125 -1 -7126 7126 4 -7127 7126 -1 -7226 7126 -1 -7127 7127 4 -7128 7127 -1 -7227 7127 -1 -7128 7128 4 -7129 7128 -1 -7228 7128 -1 -7129 7129 4 -7130 7129 -1 -7229 7129 -1 -7130 7130 4 -7131 7130 -1 -7230 7130 -1 -7131 7131 4 -7132 7131 -1 -7231 7131 -1 -7132 7132 4 -7133 7132 -1 -7232 7132 -1 -7133 7133 4 -7134 7133 -1 -7233 7133 -1 -7134 7134 4 -7135 7134 -1 -7234 7134 -1 -7135 7135 4 -7136 7135 -1 -7235 7135 -1 -7136 7136 4 -7137 7136 -1 -7236 7136 -1 -7137 7137 4 -7138 7137 -1 -7237 7137 -1 -7138 7138 4 -7139 7138 -1 -7238 7138 -1 -7139 7139 4 -7140 7139 -1 -7239 7139 -1 -7140 7140 4 -7141 7140 -1 -7240 7140 -1 -7141 7141 4 -7142 7141 -1 -7241 7141 -1 -7142 7142 4 -7143 7142 -1 -7242 7142 -1 -7143 7143 4 -7144 7143 -1 -7243 7143 -1 -7144 7144 4 -7145 7144 -1 -7244 7144 -1 -7145 7145 4 -7146 7145 -1 -7245 7145 -1 -7146 7146 4 -7147 7146 -1 -7246 7146 -1 -7147 7147 4 -7148 7147 -1 -7247 7147 -1 -7148 7148 4 -7149 7148 -1 -7248 7148 -1 -7149 7149 4 -7150 7149 -1 -7249 7149 -1 -7150 7150 4 -7151 7150 -1 -7250 7150 -1 -7151 7151 4 -7152 7151 -1 -7251 7151 -1 -7152 7152 4 -7153 7152 -1 -7252 7152 -1 -7153 7153 4 -7154 7153 -1 -7253 7153 -1 -7154 7154 4 -7155 7154 -1 -7254 7154 -1 -7155 7155 4 -7156 7155 -1 -7255 7155 -1 -7156 7156 4 -7157 7156 -1 -7256 7156 -1 -7157 7157 4 -7158 7157 -1 -7257 7157 -1 -7158 7158 4 -7159 7158 -1 -7258 7158 -1 -7159 7159 4 -7160 7159 -1 -7259 7159 -1 -7160 7160 4 -7161 7160 -1 -7260 7160 -1 -7161 7161 4 -7162 7161 -1 -7261 7161 -1 -7162 7162 4 -7163 7162 -1 -7262 7162 -1 -7163 7163 4 -7164 7163 -1 -7263 7163 -1 -7164 7164 4 -7165 7164 -1 -7264 7164 -1 -7165 7165 4 -7166 7165 -1 -7265 7165 -1 -7166 7166 4 -7167 7166 -1 -7266 7166 -1 -7167 7167 4 -7168 7167 -1 -7267 7167 -1 -7168 7168 4 -7169 7168 -1 -7268 7168 -1 -7169 7169 4 -7170 7169 -1 -7269 7169 -1 -7170 7170 4 -7171 7170 -1 -7270 7170 -1 -7171 7171 4 -7172 7171 -1 -7271 7171 -1 -7172 7172 4 -7173 7172 -1 -7272 7172 -1 -7173 7173 4 -7174 7173 -1 -7273 7173 -1 -7174 7174 4 -7175 7174 -1 -7274 7174 -1 -7175 7175 4 -7176 7175 -1 -7275 7175 -1 -7176 7176 4 -7177 7176 -1 -7276 7176 -1 -7177 7177 4 -7178 7177 -1 -7277 7177 -1 -7178 7178 4 -7179 7178 -1 -7278 7178 -1 -7179 7179 4 -7180 7179 -1 -7279 7179 -1 -7180 7180 4 -7181 7180 -1 -7280 7180 -1 -7181 7181 4 -7182 7181 -1 -7281 7181 -1 -7182 7182 4 -7183 7182 -1 -7282 7182 -1 -7183 7183 4 -7184 7183 -1 -7283 7183 -1 -7184 7184 4 -7185 7184 -1 -7284 7184 -1 -7185 7185 4 -7186 7185 -1 -7285 7185 -1 -7186 7186 4 -7187 7186 -1 -7286 7186 -1 -7187 7187 4 -7188 7187 -1 -7287 7187 -1 -7188 7188 4 -7189 7188 -1 -7288 7188 -1 -7189 7189 4 -7190 7189 -1 -7289 7189 -1 -7190 7190 4 -7191 7190 -1 -7290 7190 -1 -7191 7191 4 -7192 7191 -1 -7291 7191 -1 -7192 7192 4 -7193 7192 -1 -7292 7192 -1 -7193 7193 4 -7194 7193 -1 -7293 7193 -1 -7194 7194 4 -7195 7194 -1 -7294 7194 -1 -7195 7195 4 -7196 7195 -1 -7295 7195 -1 -7196 7196 4 -7197 7196 -1 -7296 7196 -1 -7197 7197 4 -7198 7197 -1 -7297 7197 -1 -7198 7198 4 -7199 7198 -1 -7298 7198 -1 -7199 7199 4 -7200 7199 -1 -7299 7199 -1 -7200 7200 4 -7300 7200 -1 -7201 7201 4 -7202 7201 -1 -7301 7201 -1 -7202 7202 4 -7203 7202 -1 -7302 7202 -1 -7203 7203 4 -7204 7203 -1 -7303 7203 -1 -7204 7204 4 -7205 7204 -1 -7304 7204 -1 -7205 7205 4 -7206 7205 -1 -7305 7205 -1 -7206 7206 4 -7207 7206 -1 -7306 7206 -1 -7207 7207 4 -7208 7207 -1 -7307 7207 -1 -7208 7208 4 -7209 7208 -1 -7308 7208 -1 -7209 7209 4 -7210 7209 -1 -7309 7209 -1 -7210 7210 4 -7211 7210 -1 -7310 7210 -1 -7211 7211 4 -7212 7211 -1 -7311 7211 -1 -7212 7212 4 -7213 7212 -1 -7312 7212 -1 -7213 7213 4 -7214 7213 -1 -7313 7213 -1 -7214 7214 4 -7215 7214 -1 -7314 7214 -1 -7215 7215 4 -7216 7215 -1 -7315 7215 -1 -7216 7216 4 -7217 7216 -1 -7316 7216 -1 -7217 7217 4 -7218 7217 -1 -7317 7217 -1 -7218 7218 4 -7219 7218 -1 -7318 7218 -1 -7219 7219 4 -7220 7219 -1 -7319 7219 -1 -7220 7220 4 -7221 7220 -1 -7320 7220 -1 -7221 7221 4 -7222 7221 -1 -7321 7221 -1 -7222 7222 4 -7223 7222 -1 -7322 7222 -1 -7223 7223 4 -7224 7223 -1 -7323 7223 -1 -7224 7224 4 -7225 7224 -1 -7324 7224 -1 -7225 7225 4 -7226 7225 -1 -7325 7225 -1 -7226 7226 4 -7227 7226 -1 -7326 7226 -1 -7227 7227 4 -7228 7227 -1 -7327 7227 -1 -7228 7228 4 -7229 7228 -1 -7328 7228 -1 -7229 7229 4 -7230 7229 -1 -7329 7229 -1 -7230 7230 4 -7231 7230 -1 -7330 7230 -1 -7231 7231 4 -7232 7231 -1 -7331 7231 -1 -7232 7232 4 -7233 7232 -1 -7332 7232 -1 -7233 7233 4 -7234 7233 -1 -7333 7233 -1 -7234 7234 4 -7235 7234 -1 -7334 7234 -1 -7235 7235 4 -7236 7235 -1 -7335 7235 -1 -7236 7236 4 -7237 7236 -1 -7336 7236 -1 -7237 7237 4 -7238 7237 -1 -7337 7237 -1 -7238 7238 4 -7239 7238 -1 -7338 7238 -1 -7239 7239 4 -7240 7239 -1 -7339 7239 -1 -7240 7240 4 -7241 7240 -1 -7340 7240 -1 -7241 7241 4 -7242 7241 -1 -7341 7241 -1 -7242 7242 4 -7243 7242 -1 -7342 7242 -1 -7243 7243 4 -7244 7243 -1 -7343 7243 -1 -7244 7244 4 -7245 7244 -1 -7344 7244 -1 -7245 7245 4 -7246 7245 -1 -7345 7245 -1 -7246 7246 4 -7247 7246 -1 -7346 7246 -1 -7247 7247 4 -7248 7247 -1 -7347 7247 -1 -7248 7248 4 -7249 7248 -1 -7348 7248 -1 -7249 7249 4 -7250 7249 -1 -7349 7249 -1 -7250 7250 4 -7251 7250 -1 -7350 7250 -1 -7251 7251 4 -7252 7251 -1 -7351 7251 -1 -7252 7252 4 -7253 7252 -1 -7352 7252 -1 -7253 7253 4 -7254 7253 -1 -7353 7253 -1 -7254 7254 4 -7255 7254 -1 -7354 7254 -1 -7255 7255 4 -7256 7255 -1 -7355 7255 -1 -7256 7256 4 -7257 7256 -1 -7356 7256 -1 -7257 7257 4 -7258 7257 -1 -7357 7257 -1 -7258 7258 4 -7259 7258 -1 -7358 7258 -1 -7259 7259 4 -7260 7259 -1 -7359 7259 -1 -7260 7260 4 -7261 7260 -1 -7360 7260 -1 -7261 7261 4 -7262 7261 -1 -7361 7261 -1 -7262 7262 4 -7263 7262 -1 -7362 7262 -1 -7263 7263 4 -7264 7263 -1 -7363 7263 -1 -7264 7264 4 -7265 7264 -1 -7364 7264 -1 -7265 7265 4 -7266 7265 -1 -7365 7265 -1 -7266 7266 4 -7267 7266 -1 -7366 7266 -1 -7267 7267 4 -7268 7267 -1 -7367 7267 -1 -7268 7268 4 -7269 7268 -1 -7368 7268 -1 -7269 7269 4 -7270 7269 -1 -7369 7269 -1 -7270 7270 4 -7271 7270 -1 -7370 7270 -1 -7271 7271 4 -7272 7271 -1 -7371 7271 -1 -7272 7272 4 -7273 7272 -1 -7372 7272 -1 -7273 7273 4 -7274 7273 -1 -7373 7273 -1 -7274 7274 4 -7275 7274 -1 -7374 7274 -1 -7275 7275 4 -7276 7275 -1 -7375 7275 -1 -7276 7276 4 -7277 7276 -1 -7376 7276 -1 -7277 7277 4 -7278 7277 -1 -7377 7277 -1 -7278 7278 4 -7279 7278 -1 -7378 7278 -1 -7279 7279 4 -7280 7279 -1 -7379 7279 -1 -7280 7280 4 -7281 7280 -1 -7380 7280 -1 -7281 7281 4 -7282 7281 -1 -7381 7281 -1 -7282 7282 4 -7283 7282 -1 -7382 7282 -1 -7283 7283 4 -7284 7283 -1 -7383 7283 -1 -7284 7284 4 -7285 7284 -1 -7384 7284 -1 -7285 7285 4 -7286 7285 -1 -7385 7285 -1 -7286 7286 4 -7287 7286 -1 -7386 7286 -1 -7287 7287 4 -7288 7287 -1 -7387 7287 -1 -7288 7288 4 -7289 7288 -1 -7388 7288 -1 -7289 7289 4 -7290 7289 -1 -7389 7289 -1 -7290 7290 4 -7291 7290 -1 -7390 7290 -1 -7291 7291 4 -7292 7291 -1 -7391 7291 -1 -7292 7292 4 -7293 7292 -1 -7392 7292 -1 -7293 7293 4 -7294 7293 -1 -7393 7293 -1 -7294 7294 4 -7295 7294 -1 -7394 7294 -1 -7295 7295 4 -7296 7295 -1 -7395 7295 -1 -7296 7296 4 -7297 7296 -1 -7396 7296 -1 -7297 7297 4 -7298 7297 -1 -7397 7297 -1 -7298 7298 4 -7299 7298 -1 -7398 7298 -1 -7299 7299 4 -7300 7299 -1 -7399 7299 -1 -7300 7300 4 -7400 7300 -1 -7301 7301 4 -7302 7301 -1 -7401 7301 -1 -7302 7302 4 -7303 7302 -1 -7402 7302 -1 -7303 7303 4 -7304 7303 -1 -7403 7303 -1 -7304 7304 4 -7305 7304 -1 -7404 7304 -1 -7305 7305 4 -7306 7305 -1 -7405 7305 -1 -7306 7306 4 -7307 7306 -1 -7406 7306 -1 -7307 7307 4 -7308 7307 -1 -7407 7307 -1 -7308 7308 4 -7309 7308 -1 -7408 7308 -1 -7309 7309 4 -7310 7309 -1 -7409 7309 -1 -7310 7310 4 -7311 7310 -1 -7410 7310 -1 -7311 7311 4 -7312 7311 -1 -7411 7311 -1 -7312 7312 4 -7313 7312 -1 -7412 7312 -1 -7313 7313 4 -7314 7313 -1 -7413 7313 -1 -7314 7314 4 -7315 7314 -1 -7414 7314 -1 -7315 7315 4 -7316 7315 -1 -7415 7315 -1 -7316 7316 4 -7317 7316 -1 -7416 7316 -1 -7317 7317 4 -7318 7317 -1 -7417 7317 -1 -7318 7318 4 -7319 7318 -1 -7418 7318 -1 -7319 7319 4 -7320 7319 -1 -7419 7319 -1 -7320 7320 4 -7321 7320 -1 -7420 7320 -1 -7321 7321 4 -7322 7321 -1 -7421 7321 -1 -7322 7322 4 -7323 7322 -1 -7422 7322 -1 -7323 7323 4 -7324 7323 -1 -7423 7323 -1 -7324 7324 4 -7325 7324 -1 -7424 7324 -1 -7325 7325 4 -7326 7325 -1 -7425 7325 -1 -7326 7326 4 -7327 7326 -1 -7426 7326 -1 -7327 7327 4 -7328 7327 -1 -7427 7327 -1 -7328 7328 4 -7329 7328 -1 -7428 7328 -1 -7329 7329 4 -7330 7329 -1 -7429 7329 -1 -7330 7330 4 -7331 7330 -1 -7430 7330 -1 -7331 7331 4 -7332 7331 -1 -7431 7331 -1 -7332 7332 4 -7333 7332 -1 -7432 7332 -1 -7333 7333 4 -7334 7333 -1 -7433 7333 -1 -7334 7334 4 -7335 7334 -1 -7434 7334 -1 -7335 7335 4 -7336 7335 -1 -7435 7335 -1 -7336 7336 4 -7337 7336 -1 -7436 7336 -1 -7337 7337 4 -7338 7337 -1 -7437 7337 -1 -7338 7338 4 -7339 7338 -1 -7438 7338 -1 -7339 7339 4 -7340 7339 -1 -7439 7339 -1 -7340 7340 4 -7341 7340 -1 -7440 7340 -1 -7341 7341 4 -7342 7341 -1 -7441 7341 -1 -7342 7342 4 -7343 7342 -1 -7442 7342 -1 -7343 7343 4 -7344 7343 -1 -7443 7343 -1 -7344 7344 4 -7345 7344 -1 -7444 7344 -1 -7345 7345 4 -7346 7345 -1 -7445 7345 -1 -7346 7346 4 -7347 7346 -1 -7446 7346 -1 -7347 7347 4 -7348 7347 -1 -7447 7347 -1 -7348 7348 4 -7349 7348 -1 -7448 7348 -1 -7349 7349 4 -7350 7349 -1 -7449 7349 -1 -7350 7350 4 -7351 7350 -1 -7450 7350 -1 -7351 7351 4 -7352 7351 -1 -7451 7351 -1 -7352 7352 4 -7353 7352 -1 -7452 7352 -1 -7353 7353 4 -7354 7353 -1 -7453 7353 -1 -7354 7354 4 -7355 7354 -1 -7454 7354 -1 -7355 7355 4 -7356 7355 -1 -7455 7355 -1 -7356 7356 4 -7357 7356 -1 -7456 7356 -1 -7357 7357 4 -7358 7357 -1 -7457 7357 -1 -7358 7358 4 -7359 7358 -1 -7458 7358 -1 -7359 7359 4 -7360 7359 -1 -7459 7359 -1 -7360 7360 4 -7361 7360 -1 -7460 7360 -1 -7361 7361 4 -7362 7361 -1 -7461 7361 -1 -7362 7362 4 -7363 7362 -1 -7462 7362 -1 -7363 7363 4 -7364 7363 -1 -7463 7363 -1 -7364 7364 4 -7365 7364 -1 -7464 7364 -1 -7365 7365 4 -7366 7365 -1 -7465 7365 -1 -7366 7366 4 -7367 7366 -1 -7466 7366 -1 -7367 7367 4 -7368 7367 -1 -7467 7367 -1 -7368 7368 4 -7369 7368 -1 -7468 7368 -1 -7369 7369 4 -7370 7369 -1 -7469 7369 -1 -7370 7370 4 -7371 7370 -1 -7470 7370 -1 -7371 7371 4 -7372 7371 -1 -7471 7371 -1 -7372 7372 4 -7373 7372 -1 -7472 7372 -1 -7373 7373 4 -7374 7373 -1 -7473 7373 -1 -7374 7374 4 -7375 7374 -1 -7474 7374 -1 -7375 7375 4 -7376 7375 -1 -7475 7375 -1 -7376 7376 4 -7377 7376 -1 -7476 7376 -1 -7377 7377 4 -7378 7377 -1 -7477 7377 -1 -7378 7378 4 -7379 7378 -1 -7478 7378 -1 -7379 7379 4 -7380 7379 -1 -7479 7379 -1 -7380 7380 4 -7381 7380 -1 -7480 7380 -1 -7381 7381 4 -7382 7381 -1 -7481 7381 -1 -7382 7382 4 -7383 7382 -1 -7482 7382 -1 -7383 7383 4 -7384 7383 -1 -7483 7383 -1 -7384 7384 4 -7385 7384 -1 -7484 7384 -1 -7385 7385 4 -7386 7385 -1 -7485 7385 -1 -7386 7386 4 -7387 7386 -1 -7486 7386 -1 -7387 7387 4 -7388 7387 -1 -7487 7387 -1 -7388 7388 4 -7389 7388 -1 -7488 7388 -1 -7389 7389 4 -7390 7389 -1 -7489 7389 -1 -7390 7390 4 -7391 7390 -1 -7490 7390 -1 -7391 7391 4 -7392 7391 -1 -7491 7391 -1 -7392 7392 4 -7393 7392 -1 -7492 7392 -1 -7393 7393 4 -7394 7393 -1 -7493 7393 -1 -7394 7394 4 -7395 7394 -1 -7494 7394 -1 -7395 7395 4 -7396 7395 -1 -7495 7395 -1 -7396 7396 4 -7397 7396 -1 -7496 7396 -1 -7397 7397 4 -7398 7397 -1 -7497 7397 -1 -7398 7398 4 -7399 7398 -1 -7498 7398 -1 -7399 7399 4 -7400 7399 -1 -7499 7399 -1 -7400 7400 4 -7500 7400 -1 -7401 7401 4 -7402 7401 -1 -7501 7401 -1 -7402 7402 4 -7403 7402 -1 -7502 7402 -1 -7403 7403 4 -7404 7403 -1 -7503 7403 -1 -7404 7404 4 -7405 7404 -1 -7504 7404 -1 -7405 7405 4 -7406 7405 -1 -7505 7405 -1 -7406 7406 4 -7407 7406 -1 -7506 7406 -1 -7407 7407 4 -7408 7407 -1 -7507 7407 -1 -7408 7408 4 -7409 7408 -1 -7508 7408 -1 -7409 7409 4 -7410 7409 -1 -7509 7409 -1 -7410 7410 4 -7411 7410 -1 -7510 7410 -1 -7411 7411 4 -7412 7411 -1 -7511 7411 -1 -7412 7412 4 -7413 7412 -1 -7512 7412 -1 -7413 7413 4 -7414 7413 -1 -7513 7413 -1 -7414 7414 4 -7415 7414 -1 -7514 7414 -1 -7415 7415 4 -7416 7415 -1 -7515 7415 -1 -7416 7416 4 -7417 7416 -1 -7516 7416 -1 -7417 7417 4 -7418 7417 -1 -7517 7417 -1 -7418 7418 4 -7419 7418 -1 -7518 7418 -1 -7419 7419 4 -7420 7419 -1 -7519 7419 -1 -7420 7420 4 -7421 7420 -1 -7520 7420 -1 -7421 7421 4 -7422 7421 -1 -7521 7421 -1 -7422 7422 4 -7423 7422 -1 -7522 7422 -1 -7423 7423 4 -7424 7423 -1 -7523 7423 -1 -7424 7424 4 -7425 7424 -1 -7524 7424 -1 -7425 7425 4 -7426 7425 -1 -7525 7425 -1 -7426 7426 4 -7427 7426 -1 -7526 7426 -1 -7427 7427 4 -7428 7427 -1 -7527 7427 -1 -7428 7428 4 -7429 7428 -1 -7528 7428 -1 -7429 7429 4 -7430 7429 -1 -7529 7429 -1 -7430 7430 4 -7431 7430 -1 -7530 7430 -1 -7431 7431 4 -7432 7431 -1 -7531 7431 -1 -7432 7432 4 -7433 7432 -1 -7532 7432 -1 -7433 7433 4 -7434 7433 -1 -7533 7433 -1 -7434 7434 4 -7435 7434 -1 -7534 7434 -1 -7435 7435 4 -7436 7435 -1 -7535 7435 -1 -7436 7436 4 -7437 7436 -1 -7536 7436 -1 -7437 7437 4 -7438 7437 -1 -7537 7437 -1 -7438 7438 4 -7439 7438 -1 -7538 7438 -1 -7439 7439 4 -7440 7439 -1 -7539 7439 -1 -7440 7440 4 -7441 7440 -1 -7540 7440 -1 -7441 7441 4 -7442 7441 -1 -7541 7441 -1 -7442 7442 4 -7443 7442 -1 -7542 7442 -1 -7443 7443 4 -7444 7443 -1 -7543 7443 -1 -7444 7444 4 -7445 7444 -1 -7544 7444 -1 -7445 7445 4 -7446 7445 -1 -7545 7445 -1 -7446 7446 4 -7447 7446 -1 -7546 7446 -1 -7447 7447 4 -7448 7447 -1 -7547 7447 -1 -7448 7448 4 -7449 7448 -1 -7548 7448 -1 -7449 7449 4 -7450 7449 -1 -7549 7449 -1 -7450 7450 4 -7451 7450 -1 -7550 7450 -1 -7451 7451 4 -7452 7451 -1 -7551 7451 -1 -7452 7452 4 -7453 7452 -1 -7552 7452 -1 -7453 7453 4 -7454 7453 -1 -7553 7453 -1 -7454 7454 4 -7455 7454 -1 -7554 7454 -1 -7455 7455 4 -7456 7455 -1 -7555 7455 -1 -7456 7456 4 -7457 7456 -1 -7556 7456 -1 -7457 7457 4 -7458 7457 -1 -7557 7457 -1 -7458 7458 4 -7459 7458 -1 -7558 7458 -1 -7459 7459 4 -7460 7459 -1 -7559 7459 -1 -7460 7460 4 -7461 7460 -1 -7560 7460 -1 -7461 7461 4 -7462 7461 -1 -7561 7461 -1 -7462 7462 4 -7463 7462 -1 -7562 7462 -1 -7463 7463 4 -7464 7463 -1 -7563 7463 -1 -7464 7464 4 -7465 7464 -1 -7564 7464 -1 -7465 7465 4 -7466 7465 -1 -7565 7465 -1 -7466 7466 4 -7467 7466 -1 -7566 7466 -1 -7467 7467 4 -7468 7467 -1 -7567 7467 -1 -7468 7468 4 -7469 7468 -1 -7568 7468 -1 -7469 7469 4 -7470 7469 -1 -7569 7469 -1 -7470 7470 4 -7471 7470 -1 -7570 7470 -1 -7471 7471 4 -7472 7471 -1 -7571 7471 -1 -7472 7472 4 -7473 7472 -1 -7572 7472 -1 -7473 7473 4 -7474 7473 -1 -7573 7473 -1 -7474 7474 4 -7475 7474 -1 -7574 7474 -1 -7475 7475 4 -7476 7475 -1 -7575 7475 -1 -7476 7476 4 -7477 7476 -1 -7576 7476 -1 -7477 7477 4 -7478 7477 -1 -7577 7477 -1 -7478 7478 4 -7479 7478 -1 -7578 7478 -1 -7479 7479 4 -7480 7479 -1 -7579 7479 -1 -7480 7480 4 -7481 7480 -1 -7580 7480 -1 -7481 7481 4 -7482 7481 -1 -7581 7481 -1 -7482 7482 4 -7483 7482 -1 -7582 7482 -1 -7483 7483 4 -7484 7483 -1 -7583 7483 -1 -7484 7484 4 -7485 7484 -1 -7584 7484 -1 -7485 7485 4 -7486 7485 -1 -7585 7485 -1 -7486 7486 4 -7487 7486 -1 -7586 7486 -1 -7487 7487 4 -7488 7487 -1 -7587 7487 -1 -7488 7488 4 -7489 7488 -1 -7588 7488 -1 -7489 7489 4 -7490 7489 -1 -7589 7489 -1 -7490 7490 4 -7491 7490 -1 -7590 7490 -1 -7491 7491 4 -7492 7491 -1 -7591 7491 -1 -7492 7492 4 -7493 7492 -1 -7592 7492 -1 -7493 7493 4 -7494 7493 -1 -7593 7493 -1 -7494 7494 4 -7495 7494 -1 -7594 7494 -1 -7495 7495 4 -7496 7495 -1 -7595 7495 -1 -7496 7496 4 -7497 7496 -1 -7596 7496 -1 -7497 7497 4 -7498 7497 -1 -7597 7497 -1 -7498 7498 4 -7499 7498 -1 -7598 7498 -1 -7499 7499 4 -7500 7499 -1 -7599 7499 -1 -7500 7500 4 -7600 7500 -1 -7501 7501 4 -7502 7501 -1 -7601 7501 -1 -7502 7502 4 -7503 7502 -1 -7602 7502 -1 -7503 7503 4 -7504 7503 -1 -7603 7503 -1 -7504 7504 4 -7505 7504 -1 -7604 7504 -1 -7505 7505 4 -7506 7505 -1 -7605 7505 -1 -7506 7506 4 -7507 7506 -1 -7606 7506 -1 -7507 7507 4 -7508 7507 -1 -7607 7507 -1 -7508 7508 4 -7509 7508 -1 -7608 7508 -1 -7509 7509 4 -7510 7509 -1 -7609 7509 -1 -7510 7510 4 -7511 7510 -1 -7610 7510 -1 -7511 7511 4 -7512 7511 -1 -7611 7511 -1 -7512 7512 4 -7513 7512 -1 -7612 7512 -1 -7513 7513 4 -7514 7513 -1 -7613 7513 -1 -7514 7514 4 -7515 7514 -1 -7614 7514 -1 -7515 7515 4 -7516 7515 -1 -7615 7515 -1 -7516 7516 4 -7517 7516 -1 -7616 7516 -1 -7517 7517 4 -7518 7517 -1 -7617 7517 -1 -7518 7518 4 -7519 7518 -1 -7618 7518 -1 -7519 7519 4 -7520 7519 -1 -7619 7519 -1 -7520 7520 4 -7521 7520 -1 -7620 7520 -1 -7521 7521 4 -7522 7521 -1 -7621 7521 -1 -7522 7522 4 -7523 7522 -1 -7622 7522 -1 -7523 7523 4 -7524 7523 -1 -7623 7523 -1 -7524 7524 4 -7525 7524 -1 -7624 7524 -1 -7525 7525 4 -7526 7525 -1 -7625 7525 -1 -7526 7526 4 -7527 7526 -1 -7626 7526 -1 -7527 7527 4 -7528 7527 -1 -7627 7527 -1 -7528 7528 4 -7529 7528 -1 -7628 7528 -1 -7529 7529 4 -7530 7529 -1 -7629 7529 -1 -7530 7530 4 -7531 7530 -1 -7630 7530 -1 -7531 7531 4 -7532 7531 -1 -7631 7531 -1 -7532 7532 4 -7533 7532 -1 -7632 7532 -1 -7533 7533 4 -7534 7533 -1 -7633 7533 -1 -7534 7534 4 -7535 7534 -1 -7634 7534 -1 -7535 7535 4 -7536 7535 -1 -7635 7535 -1 -7536 7536 4 -7537 7536 -1 -7636 7536 -1 -7537 7537 4 -7538 7537 -1 -7637 7537 -1 -7538 7538 4 -7539 7538 -1 -7638 7538 -1 -7539 7539 4 -7540 7539 -1 -7639 7539 -1 -7540 7540 4 -7541 7540 -1 -7640 7540 -1 -7541 7541 4 -7542 7541 -1 -7641 7541 -1 -7542 7542 4 -7543 7542 -1 -7642 7542 -1 -7543 7543 4 -7544 7543 -1 -7643 7543 -1 -7544 7544 4 -7545 7544 -1 -7644 7544 -1 -7545 7545 4 -7546 7545 -1 -7645 7545 -1 -7546 7546 4 -7547 7546 -1 -7646 7546 -1 -7547 7547 4 -7548 7547 -1 -7647 7547 -1 -7548 7548 4 -7549 7548 -1 -7648 7548 -1 -7549 7549 4 -7550 7549 -1 -7649 7549 -1 -7550 7550 4 -7551 7550 -1 -7650 7550 -1 -7551 7551 4 -7552 7551 -1 -7651 7551 -1 -7552 7552 4 -7553 7552 -1 -7652 7552 -1 -7553 7553 4 -7554 7553 -1 -7653 7553 -1 -7554 7554 4 -7555 7554 -1 -7654 7554 -1 -7555 7555 4 -7556 7555 -1 -7655 7555 -1 -7556 7556 4 -7557 7556 -1 -7656 7556 -1 -7557 7557 4 -7558 7557 -1 -7657 7557 -1 -7558 7558 4 -7559 7558 -1 -7658 7558 -1 -7559 7559 4 -7560 7559 -1 -7659 7559 -1 -7560 7560 4 -7561 7560 -1 -7660 7560 -1 -7561 7561 4 -7562 7561 -1 -7661 7561 -1 -7562 7562 4 -7563 7562 -1 -7662 7562 -1 -7563 7563 4 -7564 7563 -1 -7663 7563 -1 -7564 7564 4 -7565 7564 -1 -7664 7564 -1 -7565 7565 4 -7566 7565 -1 -7665 7565 -1 -7566 7566 4 -7567 7566 -1 -7666 7566 -1 -7567 7567 4 -7568 7567 -1 -7667 7567 -1 -7568 7568 4 -7569 7568 -1 -7668 7568 -1 -7569 7569 4 -7570 7569 -1 -7669 7569 -1 -7570 7570 4 -7571 7570 -1 -7670 7570 -1 -7571 7571 4 -7572 7571 -1 -7671 7571 -1 -7572 7572 4 -7573 7572 -1 -7672 7572 -1 -7573 7573 4 -7574 7573 -1 -7673 7573 -1 -7574 7574 4 -7575 7574 -1 -7674 7574 -1 -7575 7575 4 -7576 7575 -1 -7675 7575 -1 -7576 7576 4 -7577 7576 -1 -7676 7576 -1 -7577 7577 4 -7578 7577 -1 -7677 7577 -1 -7578 7578 4 -7579 7578 -1 -7678 7578 -1 -7579 7579 4 -7580 7579 -1 -7679 7579 -1 -7580 7580 4 -7581 7580 -1 -7680 7580 -1 -7581 7581 4 -7582 7581 -1 -7681 7581 -1 -7582 7582 4 -7583 7582 -1 -7682 7582 -1 -7583 7583 4 -7584 7583 -1 -7683 7583 -1 -7584 7584 4 -7585 7584 -1 -7684 7584 -1 -7585 7585 4 -7586 7585 -1 -7685 7585 -1 -7586 7586 4 -7587 7586 -1 -7686 7586 -1 -7587 7587 4 -7588 7587 -1 -7687 7587 -1 -7588 7588 4 -7589 7588 -1 -7688 7588 -1 -7589 7589 4 -7590 7589 -1 -7689 7589 -1 -7590 7590 4 -7591 7590 -1 -7690 7590 -1 -7591 7591 4 -7592 7591 -1 -7691 7591 -1 -7592 7592 4 -7593 7592 -1 -7692 7592 -1 -7593 7593 4 -7594 7593 -1 -7693 7593 -1 -7594 7594 4 -7595 7594 -1 -7694 7594 -1 -7595 7595 4 -7596 7595 -1 -7695 7595 -1 -7596 7596 4 -7597 7596 -1 -7696 7596 -1 -7597 7597 4 -7598 7597 -1 -7697 7597 -1 -7598 7598 4 -7599 7598 -1 -7698 7598 -1 -7599 7599 4 -7600 7599 -1 -7699 7599 -1 -7600 7600 4 -7700 7600 -1 -7601 7601 4 -7602 7601 -1 -7701 7601 -1 -7602 7602 4 -7603 7602 -1 -7702 7602 -1 -7603 7603 4 -7604 7603 -1 -7703 7603 -1 -7604 7604 4 -7605 7604 -1 -7704 7604 -1 -7605 7605 4 -7606 7605 -1 -7705 7605 -1 -7606 7606 4 -7607 7606 -1 -7706 7606 -1 -7607 7607 4 -7608 7607 -1 -7707 7607 -1 -7608 7608 4 -7609 7608 -1 -7708 7608 -1 -7609 7609 4 -7610 7609 -1 -7709 7609 -1 -7610 7610 4 -7611 7610 -1 -7710 7610 -1 -7611 7611 4 -7612 7611 -1 -7711 7611 -1 -7612 7612 4 -7613 7612 -1 -7712 7612 -1 -7613 7613 4 -7614 7613 -1 -7713 7613 -1 -7614 7614 4 -7615 7614 -1 -7714 7614 -1 -7615 7615 4 -7616 7615 -1 -7715 7615 -1 -7616 7616 4 -7617 7616 -1 -7716 7616 -1 -7617 7617 4 -7618 7617 -1 -7717 7617 -1 -7618 7618 4 -7619 7618 -1 -7718 7618 -1 -7619 7619 4 -7620 7619 -1 -7719 7619 -1 -7620 7620 4 -7621 7620 -1 -7720 7620 -1 -7621 7621 4 -7622 7621 -1 -7721 7621 -1 -7622 7622 4 -7623 7622 -1 -7722 7622 -1 -7623 7623 4 -7624 7623 -1 -7723 7623 -1 -7624 7624 4 -7625 7624 -1 -7724 7624 -1 -7625 7625 4 -7626 7625 -1 -7725 7625 -1 -7626 7626 4 -7627 7626 -1 -7726 7626 -1 -7627 7627 4 -7628 7627 -1 -7727 7627 -1 -7628 7628 4 -7629 7628 -1 -7728 7628 -1 -7629 7629 4 -7630 7629 -1 -7729 7629 -1 -7630 7630 4 -7631 7630 -1 -7730 7630 -1 -7631 7631 4 -7632 7631 -1 -7731 7631 -1 -7632 7632 4 -7633 7632 -1 -7732 7632 -1 -7633 7633 4 -7634 7633 -1 -7733 7633 -1 -7634 7634 4 -7635 7634 -1 -7734 7634 -1 -7635 7635 4 -7636 7635 -1 -7735 7635 -1 -7636 7636 4 -7637 7636 -1 -7736 7636 -1 -7637 7637 4 -7638 7637 -1 -7737 7637 -1 -7638 7638 4 -7639 7638 -1 -7738 7638 -1 -7639 7639 4 -7640 7639 -1 -7739 7639 -1 -7640 7640 4 -7641 7640 -1 -7740 7640 -1 -7641 7641 4 -7642 7641 -1 -7741 7641 -1 -7642 7642 4 -7643 7642 -1 -7742 7642 -1 -7643 7643 4 -7644 7643 -1 -7743 7643 -1 -7644 7644 4 -7645 7644 -1 -7744 7644 -1 -7645 7645 4 -7646 7645 -1 -7745 7645 -1 -7646 7646 4 -7647 7646 -1 -7746 7646 -1 -7647 7647 4 -7648 7647 -1 -7747 7647 -1 -7648 7648 4 -7649 7648 -1 -7748 7648 -1 -7649 7649 4 -7650 7649 -1 -7749 7649 -1 -7650 7650 4 -7651 7650 -1 -7750 7650 -1 -7651 7651 4 -7652 7651 -1 -7751 7651 -1 -7652 7652 4 -7653 7652 -1 -7752 7652 -1 -7653 7653 4 -7654 7653 -1 -7753 7653 -1 -7654 7654 4 -7655 7654 -1 -7754 7654 -1 -7655 7655 4 -7656 7655 -1 -7755 7655 -1 -7656 7656 4 -7657 7656 -1 -7756 7656 -1 -7657 7657 4 -7658 7657 -1 -7757 7657 -1 -7658 7658 4 -7659 7658 -1 -7758 7658 -1 -7659 7659 4 -7660 7659 -1 -7759 7659 -1 -7660 7660 4 -7661 7660 -1 -7760 7660 -1 -7661 7661 4 -7662 7661 -1 -7761 7661 -1 -7662 7662 4 -7663 7662 -1 -7762 7662 -1 -7663 7663 4 -7664 7663 -1 -7763 7663 -1 -7664 7664 4 -7665 7664 -1 -7764 7664 -1 -7665 7665 4 -7666 7665 -1 -7765 7665 -1 -7666 7666 4 -7667 7666 -1 -7766 7666 -1 -7667 7667 4 -7668 7667 -1 -7767 7667 -1 -7668 7668 4 -7669 7668 -1 -7768 7668 -1 -7669 7669 4 -7670 7669 -1 -7769 7669 -1 -7670 7670 4 -7671 7670 -1 -7770 7670 -1 -7671 7671 4 -7672 7671 -1 -7771 7671 -1 -7672 7672 4 -7673 7672 -1 -7772 7672 -1 -7673 7673 4 -7674 7673 -1 -7773 7673 -1 -7674 7674 4 -7675 7674 -1 -7774 7674 -1 -7675 7675 4 -7676 7675 -1 -7775 7675 -1 -7676 7676 4 -7677 7676 -1 -7776 7676 -1 -7677 7677 4 -7678 7677 -1 -7777 7677 -1 -7678 7678 4 -7679 7678 -1 -7778 7678 -1 -7679 7679 4 -7680 7679 -1 -7779 7679 -1 -7680 7680 4 -7681 7680 -1 -7780 7680 -1 -7681 7681 4 -7682 7681 -1 -7781 7681 -1 -7682 7682 4 -7683 7682 -1 -7782 7682 -1 -7683 7683 4 -7684 7683 -1 -7783 7683 -1 -7684 7684 4 -7685 7684 -1 -7784 7684 -1 -7685 7685 4 -7686 7685 -1 -7785 7685 -1 -7686 7686 4 -7687 7686 -1 -7786 7686 -1 -7687 7687 4 -7688 7687 -1 -7787 7687 -1 -7688 7688 4 -7689 7688 -1 -7788 7688 -1 -7689 7689 4 -7690 7689 -1 -7789 7689 -1 -7690 7690 4 -7691 7690 -1 -7790 7690 -1 -7691 7691 4 -7692 7691 -1 -7791 7691 -1 -7692 7692 4 -7693 7692 -1 -7792 7692 -1 -7693 7693 4 -7694 7693 -1 -7793 7693 -1 -7694 7694 4 -7695 7694 -1 -7794 7694 -1 -7695 7695 4 -7696 7695 -1 -7795 7695 -1 -7696 7696 4 -7697 7696 -1 -7796 7696 -1 -7697 7697 4 -7698 7697 -1 -7797 7697 -1 -7698 7698 4 -7699 7698 -1 -7798 7698 -1 -7699 7699 4 -7700 7699 -1 -7799 7699 -1 -7700 7700 4 -7800 7700 -1 -7701 7701 4 -7702 7701 -1 -7801 7701 -1 -7702 7702 4 -7703 7702 -1 -7802 7702 -1 -7703 7703 4 -7704 7703 -1 -7803 7703 -1 -7704 7704 4 -7705 7704 -1 -7804 7704 -1 -7705 7705 4 -7706 7705 -1 -7805 7705 -1 -7706 7706 4 -7707 7706 -1 -7806 7706 -1 -7707 7707 4 -7708 7707 -1 -7807 7707 -1 -7708 7708 4 -7709 7708 -1 -7808 7708 -1 -7709 7709 4 -7710 7709 -1 -7809 7709 -1 -7710 7710 4 -7711 7710 -1 -7810 7710 -1 -7711 7711 4 -7712 7711 -1 -7811 7711 -1 -7712 7712 4 -7713 7712 -1 -7812 7712 -1 -7713 7713 4 -7714 7713 -1 -7813 7713 -1 -7714 7714 4 -7715 7714 -1 -7814 7714 -1 -7715 7715 4 -7716 7715 -1 -7815 7715 -1 -7716 7716 4 -7717 7716 -1 -7816 7716 -1 -7717 7717 4 -7718 7717 -1 -7817 7717 -1 -7718 7718 4 -7719 7718 -1 -7818 7718 -1 -7719 7719 4 -7720 7719 -1 -7819 7719 -1 -7720 7720 4 -7721 7720 -1 -7820 7720 -1 -7721 7721 4 -7722 7721 -1 -7821 7721 -1 -7722 7722 4 -7723 7722 -1 -7822 7722 -1 -7723 7723 4 -7724 7723 -1 -7823 7723 -1 -7724 7724 4 -7725 7724 -1 -7824 7724 -1 -7725 7725 4 -7726 7725 -1 -7825 7725 -1 -7726 7726 4 -7727 7726 -1 -7826 7726 -1 -7727 7727 4 -7728 7727 -1 -7827 7727 -1 -7728 7728 4 -7729 7728 -1 -7828 7728 -1 -7729 7729 4 -7730 7729 -1 -7829 7729 -1 -7730 7730 4 -7731 7730 -1 -7830 7730 -1 -7731 7731 4 -7732 7731 -1 -7831 7731 -1 -7732 7732 4 -7733 7732 -1 -7832 7732 -1 -7733 7733 4 -7734 7733 -1 -7833 7733 -1 -7734 7734 4 -7735 7734 -1 -7834 7734 -1 -7735 7735 4 -7736 7735 -1 -7835 7735 -1 -7736 7736 4 -7737 7736 -1 -7836 7736 -1 -7737 7737 4 -7738 7737 -1 -7837 7737 -1 -7738 7738 4 -7739 7738 -1 -7838 7738 -1 -7739 7739 4 -7740 7739 -1 -7839 7739 -1 -7740 7740 4 -7741 7740 -1 -7840 7740 -1 -7741 7741 4 -7742 7741 -1 -7841 7741 -1 -7742 7742 4 -7743 7742 -1 -7842 7742 -1 -7743 7743 4 -7744 7743 -1 -7843 7743 -1 -7744 7744 4 -7745 7744 -1 -7844 7744 -1 -7745 7745 4 -7746 7745 -1 -7845 7745 -1 -7746 7746 4 -7747 7746 -1 -7846 7746 -1 -7747 7747 4 -7748 7747 -1 -7847 7747 -1 -7748 7748 4 -7749 7748 -1 -7848 7748 -1 -7749 7749 4 -7750 7749 -1 -7849 7749 -1 -7750 7750 4 -7751 7750 -1 -7850 7750 -1 -7751 7751 4 -7752 7751 -1 -7851 7751 -1 -7752 7752 4 -7753 7752 -1 -7852 7752 -1 -7753 7753 4 -7754 7753 -1 -7853 7753 -1 -7754 7754 4 -7755 7754 -1 -7854 7754 -1 -7755 7755 4 -7756 7755 -1 -7855 7755 -1 -7756 7756 4 -7757 7756 -1 -7856 7756 -1 -7757 7757 4 -7758 7757 -1 -7857 7757 -1 -7758 7758 4 -7759 7758 -1 -7858 7758 -1 -7759 7759 4 -7760 7759 -1 -7859 7759 -1 -7760 7760 4 -7761 7760 -1 -7860 7760 -1 -7761 7761 4 -7762 7761 -1 -7861 7761 -1 -7762 7762 4 -7763 7762 -1 -7862 7762 -1 -7763 7763 4 -7764 7763 -1 -7863 7763 -1 -7764 7764 4 -7765 7764 -1 -7864 7764 -1 -7765 7765 4 -7766 7765 -1 -7865 7765 -1 -7766 7766 4 -7767 7766 -1 -7866 7766 -1 -7767 7767 4 -7768 7767 -1 -7867 7767 -1 -7768 7768 4 -7769 7768 -1 -7868 7768 -1 -7769 7769 4 -7770 7769 -1 -7869 7769 -1 -7770 7770 4 -7771 7770 -1 -7870 7770 -1 -7771 7771 4 -7772 7771 -1 -7871 7771 -1 -7772 7772 4 -7773 7772 -1 -7872 7772 -1 -7773 7773 4 -7774 7773 -1 -7873 7773 -1 -7774 7774 4 -7775 7774 -1 -7874 7774 -1 -7775 7775 4 -7776 7775 -1 -7875 7775 -1 -7776 7776 4 -7777 7776 -1 -7876 7776 -1 -7777 7777 4 -7778 7777 -1 -7877 7777 -1 -7778 7778 4 -7779 7778 -1 -7878 7778 -1 -7779 7779 4 -7780 7779 -1 -7879 7779 -1 -7780 7780 4 -7781 7780 -1 -7880 7780 -1 -7781 7781 4 -7782 7781 -1 -7881 7781 -1 -7782 7782 4 -7783 7782 -1 -7882 7782 -1 -7783 7783 4 -7784 7783 -1 -7883 7783 -1 -7784 7784 4 -7785 7784 -1 -7884 7784 -1 -7785 7785 4 -7786 7785 -1 -7885 7785 -1 -7786 7786 4 -7787 7786 -1 -7886 7786 -1 -7787 7787 4 -7788 7787 -1 -7887 7787 -1 -7788 7788 4 -7789 7788 -1 -7888 7788 -1 -7789 7789 4 -7790 7789 -1 -7889 7789 -1 -7790 7790 4 -7791 7790 -1 -7890 7790 -1 -7791 7791 4 -7792 7791 -1 -7891 7791 -1 -7792 7792 4 -7793 7792 -1 -7892 7792 -1 -7793 7793 4 -7794 7793 -1 -7893 7793 -1 -7794 7794 4 -7795 7794 -1 -7894 7794 -1 -7795 7795 4 -7796 7795 -1 -7895 7795 -1 -7796 7796 4 -7797 7796 -1 -7896 7796 -1 -7797 7797 4 -7798 7797 -1 -7897 7797 -1 -7798 7798 4 -7799 7798 -1 -7898 7798 -1 -7799 7799 4 -7800 7799 -1 -7899 7799 -1 -7800 7800 4 -7900 7800 -1 -7801 7801 4 -7802 7801 -1 -7901 7801 -1 -7802 7802 4 -7803 7802 -1 -7902 7802 -1 -7803 7803 4 -7804 7803 -1 -7903 7803 -1 -7804 7804 4 -7805 7804 -1 -7904 7804 -1 -7805 7805 4 -7806 7805 -1 -7905 7805 -1 -7806 7806 4 -7807 7806 -1 -7906 7806 -1 -7807 7807 4 -7808 7807 -1 -7907 7807 -1 -7808 7808 4 -7809 7808 -1 -7908 7808 -1 -7809 7809 4 -7810 7809 -1 -7909 7809 -1 -7810 7810 4 -7811 7810 -1 -7910 7810 -1 -7811 7811 4 -7812 7811 -1 -7911 7811 -1 -7812 7812 4 -7813 7812 -1 -7912 7812 -1 -7813 7813 4 -7814 7813 -1 -7913 7813 -1 -7814 7814 4 -7815 7814 -1 -7914 7814 -1 -7815 7815 4 -7816 7815 -1 -7915 7815 -1 -7816 7816 4 -7817 7816 -1 -7916 7816 -1 -7817 7817 4 -7818 7817 -1 -7917 7817 -1 -7818 7818 4 -7819 7818 -1 -7918 7818 -1 -7819 7819 4 -7820 7819 -1 -7919 7819 -1 -7820 7820 4 -7821 7820 -1 -7920 7820 -1 -7821 7821 4 -7822 7821 -1 -7921 7821 -1 -7822 7822 4 -7823 7822 -1 -7922 7822 -1 -7823 7823 4 -7824 7823 -1 -7923 7823 -1 -7824 7824 4 -7825 7824 -1 -7924 7824 -1 -7825 7825 4 -7826 7825 -1 -7925 7825 -1 -7826 7826 4 -7827 7826 -1 -7926 7826 -1 -7827 7827 4 -7828 7827 -1 -7927 7827 -1 -7828 7828 4 -7829 7828 -1 -7928 7828 -1 -7829 7829 4 -7830 7829 -1 -7929 7829 -1 -7830 7830 4 -7831 7830 -1 -7930 7830 -1 -7831 7831 4 -7832 7831 -1 -7931 7831 -1 -7832 7832 4 -7833 7832 -1 -7932 7832 -1 -7833 7833 4 -7834 7833 -1 -7933 7833 -1 -7834 7834 4 -7835 7834 -1 -7934 7834 -1 -7835 7835 4 -7836 7835 -1 -7935 7835 -1 -7836 7836 4 -7837 7836 -1 -7936 7836 -1 -7837 7837 4 -7838 7837 -1 -7937 7837 -1 -7838 7838 4 -7839 7838 -1 -7938 7838 -1 -7839 7839 4 -7840 7839 -1 -7939 7839 -1 -7840 7840 4 -7841 7840 -1 -7940 7840 -1 -7841 7841 4 -7842 7841 -1 -7941 7841 -1 -7842 7842 4 -7843 7842 -1 -7942 7842 -1 -7843 7843 4 -7844 7843 -1 -7943 7843 -1 -7844 7844 4 -7845 7844 -1 -7944 7844 -1 -7845 7845 4 -7846 7845 -1 -7945 7845 -1 -7846 7846 4 -7847 7846 -1 -7946 7846 -1 -7847 7847 4 -7848 7847 -1 -7947 7847 -1 -7848 7848 4 -7849 7848 -1 -7948 7848 -1 -7849 7849 4 -7850 7849 -1 -7949 7849 -1 -7850 7850 4 -7851 7850 -1 -7950 7850 -1 -7851 7851 4 -7852 7851 -1 -7951 7851 -1 -7852 7852 4 -7853 7852 -1 -7952 7852 -1 -7853 7853 4 -7854 7853 -1 -7953 7853 -1 -7854 7854 4 -7855 7854 -1 -7954 7854 -1 -7855 7855 4 -7856 7855 -1 -7955 7855 -1 -7856 7856 4 -7857 7856 -1 -7956 7856 -1 -7857 7857 4 -7858 7857 -1 -7957 7857 -1 -7858 7858 4 -7859 7858 -1 -7958 7858 -1 -7859 7859 4 -7860 7859 -1 -7959 7859 -1 -7860 7860 4 -7861 7860 -1 -7960 7860 -1 -7861 7861 4 -7862 7861 -1 -7961 7861 -1 -7862 7862 4 -7863 7862 -1 -7962 7862 -1 -7863 7863 4 -7864 7863 -1 -7963 7863 -1 -7864 7864 4 -7865 7864 -1 -7964 7864 -1 -7865 7865 4 -7866 7865 -1 -7965 7865 -1 -7866 7866 4 -7867 7866 -1 -7966 7866 -1 -7867 7867 4 -7868 7867 -1 -7967 7867 -1 -7868 7868 4 -7869 7868 -1 -7968 7868 -1 -7869 7869 4 -7870 7869 -1 -7969 7869 -1 -7870 7870 4 -7871 7870 -1 -7970 7870 -1 -7871 7871 4 -7872 7871 -1 -7971 7871 -1 -7872 7872 4 -7873 7872 -1 -7972 7872 -1 -7873 7873 4 -7874 7873 -1 -7973 7873 -1 -7874 7874 4 -7875 7874 -1 -7974 7874 -1 -7875 7875 4 -7876 7875 -1 -7975 7875 -1 -7876 7876 4 -7877 7876 -1 -7976 7876 -1 -7877 7877 4 -7878 7877 -1 -7977 7877 -1 -7878 7878 4 -7879 7878 -1 -7978 7878 -1 -7879 7879 4 -7880 7879 -1 -7979 7879 -1 -7880 7880 4 -7881 7880 -1 -7980 7880 -1 -7881 7881 4 -7882 7881 -1 -7981 7881 -1 -7882 7882 4 -7883 7882 -1 -7982 7882 -1 -7883 7883 4 -7884 7883 -1 -7983 7883 -1 -7884 7884 4 -7885 7884 -1 -7984 7884 -1 -7885 7885 4 -7886 7885 -1 -7985 7885 -1 -7886 7886 4 -7887 7886 -1 -7986 7886 -1 -7887 7887 4 -7888 7887 -1 -7987 7887 -1 -7888 7888 4 -7889 7888 -1 -7988 7888 -1 -7889 7889 4 -7890 7889 -1 -7989 7889 -1 -7890 7890 4 -7891 7890 -1 -7990 7890 -1 -7891 7891 4 -7892 7891 -1 -7991 7891 -1 -7892 7892 4 -7893 7892 -1 -7992 7892 -1 -7893 7893 4 -7894 7893 -1 -7993 7893 -1 -7894 7894 4 -7895 7894 -1 -7994 7894 -1 -7895 7895 4 -7896 7895 -1 -7995 7895 -1 -7896 7896 4 -7897 7896 -1 -7996 7896 -1 -7897 7897 4 -7898 7897 -1 -7997 7897 -1 -7898 7898 4 -7899 7898 -1 -7998 7898 -1 -7899 7899 4 -7900 7899 -1 -7999 7899 -1 -7900 7900 4 -8000 7900 -1 -7901 7901 4 -7902 7901 -1 -8001 7901 -1 -7902 7902 4 -7903 7902 -1 -8002 7902 -1 -7903 7903 4 -7904 7903 -1 -8003 7903 -1 -7904 7904 4 -7905 7904 -1 -8004 7904 -1 -7905 7905 4 -7906 7905 -1 -8005 7905 -1 -7906 7906 4 -7907 7906 -1 -8006 7906 -1 -7907 7907 4 -7908 7907 -1 -8007 7907 -1 -7908 7908 4 -7909 7908 -1 -8008 7908 -1 -7909 7909 4 -7910 7909 -1 -8009 7909 -1 -7910 7910 4 -7911 7910 -1 -8010 7910 -1 -7911 7911 4 -7912 7911 -1 -8011 7911 -1 -7912 7912 4 -7913 7912 -1 -8012 7912 -1 -7913 7913 4 -7914 7913 -1 -8013 7913 -1 -7914 7914 4 -7915 7914 -1 -8014 7914 -1 -7915 7915 4 -7916 7915 -1 -8015 7915 -1 -7916 7916 4 -7917 7916 -1 -8016 7916 -1 -7917 7917 4 -7918 7917 -1 -8017 7917 -1 -7918 7918 4 -7919 7918 -1 -8018 7918 -1 -7919 7919 4 -7920 7919 -1 -8019 7919 -1 -7920 7920 4 -7921 7920 -1 -8020 7920 -1 -7921 7921 4 -7922 7921 -1 -8021 7921 -1 -7922 7922 4 -7923 7922 -1 -8022 7922 -1 -7923 7923 4 -7924 7923 -1 -8023 7923 -1 -7924 7924 4 -7925 7924 -1 -8024 7924 -1 -7925 7925 4 -7926 7925 -1 -8025 7925 -1 -7926 7926 4 -7927 7926 -1 -8026 7926 -1 -7927 7927 4 -7928 7927 -1 -8027 7927 -1 -7928 7928 4 -7929 7928 -1 -8028 7928 -1 -7929 7929 4 -7930 7929 -1 -8029 7929 -1 -7930 7930 4 -7931 7930 -1 -8030 7930 -1 -7931 7931 4 -7932 7931 -1 -8031 7931 -1 -7932 7932 4 -7933 7932 -1 -8032 7932 -1 -7933 7933 4 -7934 7933 -1 -8033 7933 -1 -7934 7934 4 -7935 7934 -1 -8034 7934 -1 -7935 7935 4 -7936 7935 -1 -8035 7935 -1 -7936 7936 4 -7937 7936 -1 -8036 7936 -1 -7937 7937 4 -7938 7937 -1 -8037 7937 -1 -7938 7938 4 -7939 7938 -1 -8038 7938 -1 -7939 7939 4 -7940 7939 -1 -8039 7939 -1 -7940 7940 4 -7941 7940 -1 -8040 7940 -1 -7941 7941 4 -7942 7941 -1 -8041 7941 -1 -7942 7942 4 -7943 7942 -1 -8042 7942 -1 -7943 7943 4 -7944 7943 -1 -8043 7943 -1 -7944 7944 4 -7945 7944 -1 -8044 7944 -1 -7945 7945 4 -7946 7945 -1 -8045 7945 -1 -7946 7946 4 -7947 7946 -1 -8046 7946 -1 -7947 7947 4 -7948 7947 -1 -8047 7947 -1 -7948 7948 4 -7949 7948 -1 -8048 7948 -1 -7949 7949 4 -7950 7949 -1 -8049 7949 -1 -7950 7950 4 -7951 7950 -1 -8050 7950 -1 -7951 7951 4 -7952 7951 -1 -8051 7951 -1 -7952 7952 4 -7953 7952 -1 -8052 7952 -1 -7953 7953 4 -7954 7953 -1 -8053 7953 -1 -7954 7954 4 -7955 7954 -1 -8054 7954 -1 -7955 7955 4 -7956 7955 -1 -8055 7955 -1 -7956 7956 4 -7957 7956 -1 -8056 7956 -1 -7957 7957 4 -7958 7957 -1 -8057 7957 -1 -7958 7958 4 -7959 7958 -1 -8058 7958 -1 -7959 7959 4 -7960 7959 -1 -8059 7959 -1 -7960 7960 4 -7961 7960 -1 -8060 7960 -1 -7961 7961 4 -7962 7961 -1 -8061 7961 -1 -7962 7962 4 -7963 7962 -1 -8062 7962 -1 -7963 7963 4 -7964 7963 -1 -8063 7963 -1 -7964 7964 4 -7965 7964 -1 -8064 7964 -1 -7965 7965 4 -7966 7965 -1 -8065 7965 -1 -7966 7966 4 -7967 7966 -1 -8066 7966 -1 -7967 7967 4 -7968 7967 -1 -8067 7967 -1 -7968 7968 4 -7969 7968 -1 -8068 7968 -1 -7969 7969 4 -7970 7969 -1 -8069 7969 -1 -7970 7970 4 -7971 7970 -1 -8070 7970 -1 -7971 7971 4 -7972 7971 -1 -8071 7971 -1 -7972 7972 4 -7973 7972 -1 -8072 7972 -1 -7973 7973 4 -7974 7973 -1 -8073 7973 -1 -7974 7974 4 -7975 7974 -1 -8074 7974 -1 -7975 7975 4 -7976 7975 -1 -8075 7975 -1 -7976 7976 4 -7977 7976 -1 -8076 7976 -1 -7977 7977 4 -7978 7977 -1 -8077 7977 -1 -7978 7978 4 -7979 7978 -1 -8078 7978 -1 -7979 7979 4 -7980 7979 -1 -8079 7979 -1 -7980 7980 4 -7981 7980 -1 -8080 7980 -1 -7981 7981 4 -7982 7981 -1 -8081 7981 -1 -7982 7982 4 -7983 7982 -1 -8082 7982 -1 -7983 7983 4 -7984 7983 -1 -8083 7983 -1 -7984 7984 4 -7985 7984 -1 -8084 7984 -1 -7985 7985 4 -7986 7985 -1 -8085 7985 -1 -7986 7986 4 -7987 7986 -1 -8086 7986 -1 -7987 7987 4 -7988 7987 -1 -8087 7987 -1 -7988 7988 4 -7989 7988 -1 -8088 7988 -1 -7989 7989 4 -7990 7989 -1 -8089 7989 -1 -7990 7990 4 -7991 7990 -1 -8090 7990 -1 -7991 7991 4 -7992 7991 -1 -8091 7991 -1 -7992 7992 4 -7993 7992 -1 -8092 7992 -1 -7993 7993 4 -7994 7993 -1 -8093 7993 -1 -7994 7994 4 -7995 7994 -1 -8094 7994 -1 -7995 7995 4 -7996 7995 -1 -8095 7995 -1 -7996 7996 4 -7997 7996 -1 -8096 7996 -1 -7997 7997 4 -7998 7997 -1 -8097 7997 -1 -7998 7998 4 -7999 7998 -1 -8098 7998 -1 -7999 7999 4 -8000 7999 -1 -8099 7999 -1 -8000 8000 4 -8100 8000 -1 -8001 8001 4 -8002 8001 -1 -8101 8001 -1 -8002 8002 4 -8003 8002 -1 -8102 8002 -1 -8003 8003 4 -8004 8003 -1 -8103 8003 -1 -8004 8004 4 -8005 8004 -1 -8104 8004 -1 -8005 8005 4 -8006 8005 -1 -8105 8005 -1 -8006 8006 4 -8007 8006 -1 -8106 8006 -1 -8007 8007 4 -8008 8007 -1 -8107 8007 -1 -8008 8008 4 -8009 8008 -1 -8108 8008 -1 -8009 8009 4 -8010 8009 -1 -8109 8009 -1 -8010 8010 4 -8011 8010 -1 -8110 8010 -1 -8011 8011 4 -8012 8011 -1 -8111 8011 -1 -8012 8012 4 -8013 8012 -1 -8112 8012 -1 -8013 8013 4 -8014 8013 -1 -8113 8013 -1 -8014 8014 4 -8015 8014 -1 -8114 8014 -1 -8015 8015 4 -8016 8015 -1 -8115 8015 -1 -8016 8016 4 -8017 8016 -1 -8116 8016 -1 -8017 8017 4 -8018 8017 -1 -8117 8017 -1 -8018 8018 4 -8019 8018 -1 -8118 8018 -1 -8019 8019 4 -8020 8019 -1 -8119 8019 -1 -8020 8020 4 -8021 8020 -1 -8120 8020 -1 -8021 8021 4 -8022 8021 -1 -8121 8021 -1 -8022 8022 4 -8023 8022 -1 -8122 8022 -1 -8023 8023 4 -8024 8023 -1 -8123 8023 -1 -8024 8024 4 -8025 8024 -1 -8124 8024 -1 -8025 8025 4 -8026 8025 -1 -8125 8025 -1 -8026 8026 4 -8027 8026 -1 -8126 8026 -1 -8027 8027 4 -8028 8027 -1 -8127 8027 -1 -8028 8028 4 -8029 8028 -1 -8128 8028 -1 -8029 8029 4 -8030 8029 -1 -8129 8029 -1 -8030 8030 4 -8031 8030 -1 -8130 8030 -1 -8031 8031 4 -8032 8031 -1 -8131 8031 -1 -8032 8032 4 -8033 8032 -1 -8132 8032 -1 -8033 8033 4 -8034 8033 -1 -8133 8033 -1 -8034 8034 4 -8035 8034 -1 -8134 8034 -1 -8035 8035 4 -8036 8035 -1 -8135 8035 -1 -8036 8036 4 -8037 8036 -1 -8136 8036 -1 -8037 8037 4 -8038 8037 -1 -8137 8037 -1 -8038 8038 4 -8039 8038 -1 -8138 8038 -1 -8039 8039 4 -8040 8039 -1 -8139 8039 -1 -8040 8040 4 -8041 8040 -1 -8140 8040 -1 -8041 8041 4 -8042 8041 -1 -8141 8041 -1 -8042 8042 4 -8043 8042 -1 -8142 8042 -1 -8043 8043 4 -8044 8043 -1 -8143 8043 -1 -8044 8044 4 -8045 8044 -1 -8144 8044 -1 -8045 8045 4 -8046 8045 -1 -8145 8045 -1 -8046 8046 4 -8047 8046 -1 -8146 8046 -1 -8047 8047 4 -8048 8047 -1 -8147 8047 -1 -8048 8048 4 -8049 8048 -1 -8148 8048 -1 -8049 8049 4 -8050 8049 -1 -8149 8049 -1 -8050 8050 4 -8051 8050 -1 -8150 8050 -1 -8051 8051 4 -8052 8051 -1 -8151 8051 -1 -8052 8052 4 -8053 8052 -1 -8152 8052 -1 -8053 8053 4 -8054 8053 -1 -8153 8053 -1 -8054 8054 4 -8055 8054 -1 -8154 8054 -1 -8055 8055 4 -8056 8055 -1 -8155 8055 -1 -8056 8056 4 -8057 8056 -1 -8156 8056 -1 -8057 8057 4 -8058 8057 -1 -8157 8057 -1 -8058 8058 4 -8059 8058 -1 -8158 8058 -1 -8059 8059 4 -8060 8059 -1 -8159 8059 -1 -8060 8060 4 -8061 8060 -1 -8160 8060 -1 -8061 8061 4 -8062 8061 -1 -8161 8061 -1 -8062 8062 4 -8063 8062 -1 -8162 8062 -1 -8063 8063 4 -8064 8063 -1 -8163 8063 -1 -8064 8064 4 -8065 8064 -1 -8164 8064 -1 -8065 8065 4 -8066 8065 -1 -8165 8065 -1 -8066 8066 4 -8067 8066 -1 -8166 8066 -1 -8067 8067 4 -8068 8067 -1 -8167 8067 -1 -8068 8068 4 -8069 8068 -1 -8168 8068 -1 -8069 8069 4 -8070 8069 -1 -8169 8069 -1 -8070 8070 4 -8071 8070 -1 -8170 8070 -1 -8071 8071 4 -8072 8071 -1 -8171 8071 -1 -8072 8072 4 -8073 8072 -1 -8172 8072 -1 -8073 8073 4 -8074 8073 -1 -8173 8073 -1 -8074 8074 4 -8075 8074 -1 -8174 8074 -1 -8075 8075 4 -8076 8075 -1 -8175 8075 -1 -8076 8076 4 -8077 8076 -1 -8176 8076 -1 -8077 8077 4 -8078 8077 -1 -8177 8077 -1 -8078 8078 4 -8079 8078 -1 -8178 8078 -1 -8079 8079 4 -8080 8079 -1 -8179 8079 -1 -8080 8080 4 -8081 8080 -1 -8180 8080 -1 -8081 8081 4 -8082 8081 -1 -8181 8081 -1 -8082 8082 4 -8083 8082 -1 -8182 8082 -1 -8083 8083 4 -8084 8083 -1 -8183 8083 -1 -8084 8084 4 -8085 8084 -1 -8184 8084 -1 -8085 8085 4 -8086 8085 -1 -8185 8085 -1 -8086 8086 4 -8087 8086 -1 -8186 8086 -1 -8087 8087 4 -8088 8087 -1 -8187 8087 -1 -8088 8088 4 -8089 8088 -1 -8188 8088 -1 -8089 8089 4 -8090 8089 -1 -8189 8089 -1 -8090 8090 4 -8091 8090 -1 -8190 8090 -1 -8091 8091 4 -8092 8091 -1 -8191 8091 -1 -8092 8092 4 -8093 8092 -1 -8192 8092 -1 -8093 8093 4 -8094 8093 -1 -8193 8093 -1 -8094 8094 4 -8095 8094 -1 -8194 8094 -1 -8095 8095 4 -8096 8095 -1 -8195 8095 -1 -8096 8096 4 -8097 8096 -1 -8196 8096 -1 -8097 8097 4 -8098 8097 -1 -8197 8097 -1 -8098 8098 4 -8099 8098 -1 -8198 8098 -1 -8099 8099 4 -8100 8099 -1 -8199 8099 -1 -8100 8100 4 -8200 8100 -1 -8101 8101 4 -8102 8101 -1 -8201 8101 -1 -8102 8102 4 -8103 8102 -1 -8202 8102 -1 -8103 8103 4 -8104 8103 -1 -8203 8103 -1 -8104 8104 4 -8105 8104 -1 -8204 8104 -1 -8105 8105 4 -8106 8105 -1 -8205 8105 -1 -8106 8106 4 -8107 8106 -1 -8206 8106 -1 -8107 8107 4 -8108 8107 -1 -8207 8107 -1 -8108 8108 4 -8109 8108 -1 -8208 8108 -1 -8109 8109 4 -8110 8109 -1 -8209 8109 -1 -8110 8110 4 -8111 8110 -1 -8210 8110 -1 -8111 8111 4 -8112 8111 -1 -8211 8111 -1 -8112 8112 4 -8113 8112 -1 -8212 8112 -1 -8113 8113 4 -8114 8113 -1 -8213 8113 -1 -8114 8114 4 -8115 8114 -1 -8214 8114 -1 -8115 8115 4 -8116 8115 -1 -8215 8115 -1 -8116 8116 4 -8117 8116 -1 -8216 8116 -1 -8117 8117 4 -8118 8117 -1 -8217 8117 -1 -8118 8118 4 -8119 8118 -1 -8218 8118 -1 -8119 8119 4 -8120 8119 -1 -8219 8119 -1 -8120 8120 4 -8121 8120 -1 -8220 8120 -1 -8121 8121 4 -8122 8121 -1 -8221 8121 -1 -8122 8122 4 -8123 8122 -1 -8222 8122 -1 -8123 8123 4 -8124 8123 -1 -8223 8123 -1 -8124 8124 4 -8125 8124 -1 -8224 8124 -1 -8125 8125 4 -8126 8125 -1 -8225 8125 -1 -8126 8126 4 -8127 8126 -1 -8226 8126 -1 -8127 8127 4 -8128 8127 -1 -8227 8127 -1 -8128 8128 4 -8129 8128 -1 -8228 8128 -1 -8129 8129 4 -8130 8129 -1 -8229 8129 -1 -8130 8130 4 -8131 8130 -1 -8230 8130 -1 -8131 8131 4 -8132 8131 -1 -8231 8131 -1 -8132 8132 4 -8133 8132 -1 -8232 8132 -1 -8133 8133 4 -8134 8133 -1 -8233 8133 -1 -8134 8134 4 -8135 8134 -1 -8234 8134 -1 -8135 8135 4 -8136 8135 -1 -8235 8135 -1 -8136 8136 4 -8137 8136 -1 -8236 8136 -1 -8137 8137 4 -8138 8137 -1 -8237 8137 -1 -8138 8138 4 -8139 8138 -1 -8238 8138 -1 -8139 8139 4 -8140 8139 -1 -8239 8139 -1 -8140 8140 4 -8141 8140 -1 -8240 8140 -1 -8141 8141 4 -8142 8141 -1 -8241 8141 -1 -8142 8142 4 -8143 8142 -1 -8242 8142 -1 -8143 8143 4 -8144 8143 -1 -8243 8143 -1 -8144 8144 4 -8145 8144 -1 -8244 8144 -1 -8145 8145 4 -8146 8145 -1 -8245 8145 -1 -8146 8146 4 -8147 8146 -1 -8246 8146 -1 -8147 8147 4 -8148 8147 -1 -8247 8147 -1 -8148 8148 4 -8149 8148 -1 -8248 8148 -1 -8149 8149 4 -8150 8149 -1 -8249 8149 -1 -8150 8150 4 -8151 8150 -1 -8250 8150 -1 -8151 8151 4 -8152 8151 -1 -8251 8151 -1 -8152 8152 4 -8153 8152 -1 -8252 8152 -1 -8153 8153 4 -8154 8153 -1 -8253 8153 -1 -8154 8154 4 -8155 8154 -1 -8254 8154 -1 -8155 8155 4 -8156 8155 -1 -8255 8155 -1 -8156 8156 4 -8157 8156 -1 -8256 8156 -1 -8157 8157 4 -8158 8157 -1 -8257 8157 -1 -8158 8158 4 -8159 8158 -1 -8258 8158 -1 -8159 8159 4 -8160 8159 -1 -8259 8159 -1 -8160 8160 4 -8161 8160 -1 -8260 8160 -1 -8161 8161 4 -8162 8161 -1 -8261 8161 -1 -8162 8162 4 -8163 8162 -1 -8262 8162 -1 -8163 8163 4 -8164 8163 -1 -8263 8163 -1 -8164 8164 4 -8165 8164 -1 -8264 8164 -1 -8165 8165 4 -8166 8165 -1 -8265 8165 -1 -8166 8166 4 -8167 8166 -1 -8266 8166 -1 -8167 8167 4 -8168 8167 -1 -8267 8167 -1 -8168 8168 4 -8169 8168 -1 -8268 8168 -1 -8169 8169 4 -8170 8169 -1 -8269 8169 -1 -8170 8170 4 -8171 8170 -1 -8270 8170 -1 -8171 8171 4 -8172 8171 -1 -8271 8171 -1 -8172 8172 4 -8173 8172 -1 -8272 8172 -1 -8173 8173 4 -8174 8173 -1 -8273 8173 -1 -8174 8174 4 -8175 8174 -1 -8274 8174 -1 -8175 8175 4 -8176 8175 -1 -8275 8175 -1 -8176 8176 4 -8177 8176 -1 -8276 8176 -1 -8177 8177 4 -8178 8177 -1 -8277 8177 -1 -8178 8178 4 -8179 8178 -1 -8278 8178 -1 -8179 8179 4 -8180 8179 -1 -8279 8179 -1 -8180 8180 4 -8181 8180 -1 -8280 8180 -1 -8181 8181 4 -8182 8181 -1 -8281 8181 -1 -8182 8182 4 -8183 8182 -1 -8282 8182 -1 -8183 8183 4 -8184 8183 -1 -8283 8183 -1 -8184 8184 4 -8185 8184 -1 -8284 8184 -1 -8185 8185 4 -8186 8185 -1 -8285 8185 -1 -8186 8186 4 -8187 8186 -1 -8286 8186 -1 -8187 8187 4 -8188 8187 -1 -8287 8187 -1 -8188 8188 4 -8189 8188 -1 -8288 8188 -1 -8189 8189 4 -8190 8189 -1 -8289 8189 -1 -8190 8190 4 -8191 8190 -1 -8290 8190 -1 -8191 8191 4 -8192 8191 -1 -8291 8191 -1 -8192 8192 4 -8193 8192 -1 -8292 8192 -1 -8193 8193 4 -8194 8193 -1 -8293 8193 -1 -8194 8194 4 -8195 8194 -1 -8294 8194 -1 -8195 8195 4 -8196 8195 -1 -8295 8195 -1 -8196 8196 4 -8197 8196 -1 -8296 8196 -1 -8197 8197 4 -8198 8197 -1 -8297 8197 -1 -8198 8198 4 -8199 8198 -1 -8298 8198 -1 -8199 8199 4 -8200 8199 -1 -8299 8199 -1 -8200 8200 4 -8300 8200 -1 -8201 8201 4 -8202 8201 -1 -8301 8201 -1 -8202 8202 4 -8203 8202 -1 -8302 8202 -1 -8203 8203 4 -8204 8203 -1 -8303 8203 -1 -8204 8204 4 -8205 8204 -1 -8304 8204 -1 -8205 8205 4 -8206 8205 -1 -8305 8205 -1 -8206 8206 4 -8207 8206 -1 -8306 8206 -1 -8207 8207 4 -8208 8207 -1 -8307 8207 -1 -8208 8208 4 -8209 8208 -1 -8308 8208 -1 -8209 8209 4 -8210 8209 -1 -8309 8209 -1 -8210 8210 4 -8211 8210 -1 -8310 8210 -1 -8211 8211 4 -8212 8211 -1 -8311 8211 -1 -8212 8212 4 -8213 8212 -1 -8312 8212 -1 -8213 8213 4 -8214 8213 -1 -8313 8213 -1 -8214 8214 4 -8215 8214 -1 -8314 8214 -1 -8215 8215 4 -8216 8215 -1 -8315 8215 -1 -8216 8216 4 -8217 8216 -1 -8316 8216 -1 -8217 8217 4 -8218 8217 -1 -8317 8217 -1 -8218 8218 4 -8219 8218 -1 -8318 8218 -1 -8219 8219 4 -8220 8219 -1 -8319 8219 -1 -8220 8220 4 -8221 8220 -1 -8320 8220 -1 -8221 8221 4 -8222 8221 -1 -8321 8221 -1 -8222 8222 4 -8223 8222 -1 -8322 8222 -1 -8223 8223 4 -8224 8223 -1 -8323 8223 -1 -8224 8224 4 -8225 8224 -1 -8324 8224 -1 -8225 8225 4 -8226 8225 -1 -8325 8225 -1 -8226 8226 4 -8227 8226 -1 -8326 8226 -1 -8227 8227 4 -8228 8227 -1 -8327 8227 -1 -8228 8228 4 -8229 8228 -1 -8328 8228 -1 -8229 8229 4 -8230 8229 -1 -8329 8229 -1 -8230 8230 4 -8231 8230 -1 -8330 8230 -1 -8231 8231 4 -8232 8231 -1 -8331 8231 -1 -8232 8232 4 -8233 8232 -1 -8332 8232 -1 -8233 8233 4 -8234 8233 -1 -8333 8233 -1 -8234 8234 4 -8235 8234 -1 -8334 8234 -1 -8235 8235 4 -8236 8235 -1 -8335 8235 -1 -8236 8236 4 -8237 8236 -1 -8336 8236 -1 -8237 8237 4 -8238 8237 -1 -8337 8237 -1 -8238 8238 4 -8239 8238 -1 -8338 8238 -1 -8239 8239 4 -8240 8239 -1 -8339 8239 -1 -8240 8240 4 -8241 8240 -1 -8340 8240 -1 -8241 8241 4 -8242 8241 -1 -8341 8241 -1 -8242 8242 4 -8243 8242 -1 -8342 8242 -1 -8243 8243 4 -8244 8243 -1 -8343 8243 -1 -8244 8244 4 -8245 8244 -1 -8344 8244 -1 -8245 8245 4 -8246 8245 -1 -8345 8245 -1 -8246 8246 4 -8247 8246 -1 -8346 8246 -1 -8247 8247 4 -8248 8247 -1 -8347 8247 -1 -8248 8248 4 -8249 8248 -1 -8348 8248 -1 -8249 8249 4 -8250 8249 -1 -8349 8249 -1 -8250 8250 4 -8251 8250 -1 -8350 8250 -1 -8251 8251 4 -8252 8251 -1 -8351 8251 -1 -8252 8252 4 -8253 8252 -1 -8352 8252 -1 -8253 8253 4 -8254 8253 -1 -8353 8253 -1 -8254 8254 4 -8255 8254 -1 -8354 8254 -1 -8255 8255 4 -8256 8255 -1 -8355 8255 -1 -8256 8256 4 -8257 8256 -1 -8356 8256 -1 -8257 8257 4 -8258 8257 -1 -8357 8257 -1 -8258 8258 4 -8259 8258 -1 -8358 8258 -1 -8259 8259 4 -8260 8259 -1 -8359 8259 -1 -8260 8260 4 -8261 8260 -1 -8360 8260 -1 -8261 8261 4 -8262 8261 -1 -8361 8261 -1 -8262 8262 4 -8263 8262 -1 -8362 8262 -1 -8263 8263 4 -8264 8263 -1 -8363 8263 -1 -8264 8264 4 -8265 8264 -1 -8364 8264 -1 -8265 8265 4 -8266 8265 -1 -8365 8265 -1 -8266 8266 4 -8267 8266 -1 -8366 8266 -1 -8267 8267 4 -8268 8267 -1 -8367 8267 -1 -8268 8268 4 -8269 8268 -1 -8368 8268 -1 -8269 8269 4 -8270 8269 -1 -8369 8269 -1 -8270 8270 4 -8271 8270 -1 -8370 8270 -1 -8271 8271 4 -8272 8271 -1 -8371 8271 -1 -8272 8272 4 -8273 8272 -1 -8372 8272 -1 -8273 8273 4 -8274 8273 -1 -8373 8273 -1 -8274 8274 4 -8275 8274 -1 -8374 8274 -1 -8275 8275 4 -8276 8275 -1 -8375 8275 -1 -8276 8276 4 -8277 8276 -1 -8376 8276 -1 -8277 8277 4 -8278 8277 -1 -8377 8277 -1 -8278 8278 4 -8279 8278 -1 -8378 8278 -1 -8279 8279 4 -8280 8279 -1 -8379 8279 -1 -8280 8280 4 -8281 8280 -1 -8380 8280 -1 -8281 8281 4 -8282 8281 -1 -8381 8281 -1 -8282 8282 4 -8283 8282 -1 -8382 8282 -1 -8283 8283 4 -8284 8283 -1 -8383 8283 -1 -8284 8284 4 -8285 8284 -1 -8384 8284 -1 -8285 8285 4 -8286 8285 -1 -8385 8285 -1 -8286 8286 4 -8287 8286 -1 -8386 8286 -1 -8287 8287 4 -8288 8287 -1 -8387 8287 -1 -8288 8288 4 -8289 8288 -1 -8388 8288 -1 -8289 8289 4 -8290 8289 -1 -8389 8289 -1 -8290 8290 4 -8291 8290 -1 -8390 8290 -1 -8291 8291 4 -8292 8291 -1 -8391 8291 -1 -8292 8292 4 -8293 8292 -1 -8392 8292 -1 -8293 8293 4 -8294 8293 -1 -8393 8293 -1 -8294 8294 4 -8295 8294 -1 -8394 8294 -1 -8295 8295 4 -8296 8295 -1 -8395 8295 -1 -8296 8296 4 -8297 8296 -1 -8396 8296 -1 -8297 8297 4 -8298 8297 -1 -8397 8297 -1 -8298 8298 4 -8299 8298 -1 -8398 8298 -1 -8299 8299 4 -8300 8299 -1 -8399 8299 -1 -8300 8300 4 -8400 8300 -1 -8301 8301 4 -8302 8301 -1 -8401 8301 -1 -8302 8302 4 -8303 8302 -1 -8402 8302 -1 -8303 8303 4 -8304 8303 -1 -8403 8303 -1 -8304 8304 4 -8305 8304 -1 -8404 8304 -1 -8305 8305 4 -8306 8305 -1 -8405 8305 -1 -8306 8306 4 -8307 8306 -1 -8406 8306 -1 -8307 8307 4 -8308 8307 -1 -8407 8307 -1 -8308 8308 4 -8309 8308 -1 -8408 8308 -1 -8309 8309 4 -8310 8309 -1 -8409 8309 -1 -8310 8310 4 -8311 8310 -1 -8410 8310 -1 -8311 8311 4 -8312 8311 -1 -8411 8311 -1 -8312 8312 4 -8313 8312 -1 -8412 8312 -1 -8313 8313 4 -8314 8313 -1 -8413 8313 -1 -8314 8314 4 -8315 8314 -1 -8414 8314 -1 -8315 8315 4 -8316 8315 -1 -8415 8315 -1 -8316 8316 4 -8317 8316 -1 -8416 8316 -1 -8317 8317 4 -8318 8317 -1 -8417 8317 -1 -8318 8318 4 -8319 8318 -1 -8418 8318 -1 -8319 8319 4 -8320 8319 -1 -8419 8319 -1 -8320 8320 4 -8321 8320 -1 -8420 8320 -1 -8321 8321 4 -8322 8321 -1 -8421 8321 -1 -8322 8322 4 -8323 8322 -1 -8422 8322 -1 -8323 8323 4 -8324 8323 -1 -8423 8323 -1 -8324 8324 4 -8325 8324 -1 -8424 8324 -1 -8325 8325 4 -8326 8325 -1 -8425 8325 -1 -8326 8326 4 -8327 8326 -1 -8426 8326 -1 -8327 8327 4 -8328 8327 -1 -8427 8327 -1 -8328 8328 4 -8329 8328 -1 -8428 8328 -1 -8329 8329 4 -8330 8329 -1 -8429 8329 -1 -8330 8330 4 -8331 8330 -1 -8430 8330 -1 -8331 8331 4 -8332 8331 -1 -8431 8331 -1 -8332 8332 4 -8333 8332 -1 -8432 8332 -1 -8333 8333 4 -8334 8333 -1 -8433 8333 -1 -8334 8334 4 -8335 8334 -1 -8434 8334 -1 -8335 8335 4 -8336 8335 -1 -8435 8335 -1 -8336 8336 4 -8337 8336 -1 -8436 8336 -1 -8337 8337 4 -8338 8337 -1 -8437 8337 -1 -8338 8338 4 -8339 8338 -1 -8438 8338 -1 -8339 8339 4 -8340 8339 -1 -8439 8339 -1 -8340 8340 4 -8341 8340 -1 -8440 8340 -1 -8341 8341 4 -8342 8341 -1 -8441 8341 -1 -8342 8342 4 -8343 8342 -1 -8442 8342 -1 -8343 8343 4 -8344 8343 -1 -8443 8343 -1 -8344 8344 4 -8345 8344 -1 -8444 8344 -1 -8345 8345 4 -8346 8345 -1 -8445 8345 -1 -8346 8346 4 -8347 8346 -1 -8446 8346 -1 -8347 8347 4 -8348 8347 -1 -8447 8347 -1 -8348 8348 4 -8349 8348 -1 -8448 8348 -1 -8349 8349 4 -8350 8349 -1 -8449 8349 -1 -8350 8350 4 -8351 8350 -1 -8450 8350 -1 -8351 8351 4 -8352 8351 -1 -8451 8351 -1 -8352 8352 4 -8353 8352 -1 -8452 8352 -1 -8353 8353 4 -8354 8353 -1 -8453 8353 -1 -8354 8354 4 -8355 8354 -1 -8454 8354 -1 -8355 8355 4 -8356 8355 -1 -8455 8355 -1 -8356 8356 4 -8357 8356 -1 -8456 8356 -1 -8357 8357 4 -8358 8357 -1 -8457 8357 -1 -8358 8358 4 -8359 8358 -1 -8458 8358 -1 -8359 8359 4 -8360 8359 -1 -8459 8359 -1 -8360 8360 4 -8361 8360 -1 -8460 8360 -1 -8361 8361 4 -8362 8361 -1 -8461 8361 -1 -8362 8362 4 -8363 8362 -1 -8462 8362 -1 -8363 8363 4 -8364 8363 -1 -8463 8363 -1 -8364 8364 4 -8365 8364 -1 -8464 8364 -1 -8365 8365 4 -8366 8365 -1 -8465 8365 -1 -8366 8366 4 -8367 8366 -1 -8466 8366 -1 -8367 8367 4 -8368 8367 -1 -8467 8367 -1 -8368 8368 4 -8369 8368 -1 -8468 8368 -1 -8369 8369 4 -8370 8369 -1 -8469 8369 -1 -8370 8370 4 -8371 8370 -1 -8470 8370 -1 -8371 8371 4 -8372 8371 -1 -8471 8371 -1 -8372 8372 4 -8373 8372 -1 -8472 8372 -1 -8373 8373 4 -8374 8373 -1 -8473 8373 -1 -8374 8374 4 -8375 8374 -1 -8474 8374 -1 -8375 8375 4 -8376 8375 -1 -8475 8375 -1 -8376 8376 4 -8377 8376 -1 -8476 8376 -1 -8377 8377 4 -8378 8377 -1 -8477 8377 -1 -8378 8378 4 -8379 8378 -1 -8478 8378 -1 -8379 8379 4 -8380 8379 -1 -8479 8379 -1 -8380 8380 4 -8381 8380 -1 -8480 8380 -1 -8381 8381 4 -8382 8381 -1 -8481 8381 -1 -8382 8382 4 -8383 8382 -1 -8482 8382 -1 -8383 8383 4 -8384 8383 -1 -8483 8383 -1 -8384 8384 4 -8385 8384 -1 -8484 8384 -1 -8385 8385 4 -8386 8385 -1 -8485 8385 -1 -8386 8386 4 -8387 8386 -1 -8486 8386 -1 -8387 8387 4 -8388 8387 -1 -8487 8387 -1 -8388 8388 4 -8389 8388 -1 -8488 8388 -1 -8389 8389 4 -8390 8389 -1 -8489 8389 -1 -8390 8390 4 -8391 8390 -1 -8490 8390 -1 -8391 8391 4 -8392 8391 -1 -8491 8391 -1 -8392 8392 4 -8393 8392 -1 -8492 8392 -1 -8393 8393 4 -8394 8393 -1 -8493 8393 -1 -8394 8394 4 -8395 8394 -1 -8494 8394 -1 -8395 8395 4 -8396 8395 -1 -8495 8395 -1 -8396 8396 4 -8397 8396 -1 -8496 8396 -1 -8397 8397 4 -8398 8397 -1 -8497 8397 -1 -8398 8398 4 -8399 8398 -1 -8498 8398 -1 -8399 8399 4 -8400 8399 -1 -8499 8399 -1 -8400 8400 4 -8500 8400 -1 -8401 8401 4 -8402 8401 -1 -8501 8401 -1 -8402 8402 4 -8403 8402 -1 -8502 8402 -1 -8403 8403 4 -8404 8403 -1 -8503 8403 -1 -8404 8404 4 -8405 8404 -1 -8504 8404 -1 -8405 8405 4 -8406 8405 -1 -8505 8405 -1 -8406 8406 4 -8407 8406 -1 -8506 8406 -1 -8407 8407 4 -8408 8407 -1 -8507 8407 -1 -8408 8408 4 -8409 8408 -1 -8508 8408 -1 -8409 8409 4 -8410 8409 -1 -8509 8409 -1 -8410 8410 4 -8411 8410 -1 -8510 8410 -1 -8411 8411 4 -8412 8411 -1 -8511 8411 -1 -8412 8412 4 -8413 8412 -1 -8512 8412 -1 -8413 8413 4 -8414 8413 -1 -8513 8413 -1 -8414 8414 4 -8415 8414 -1 -8514 8414 -1 -8415 8415 4 -8416 8415 -1 -8515 8415 -1 -8416 8416 4 -8417 8416 -1 -8516 8416 -1 -8417 8417 4 -8418 8417 -1 -8517 8417 -1 -8418 8418 4 -8419 8418 -1 -8518 8418 -1 -8419 8419 4 -8420 8419 -1 -8519 8419 -1 -8420 8420 4 -8421 8420 -1 -8520 8420 -1 -8421 8421 4 -8422 8421 -1 -8521 8421 -1 -8422 8422 4 -8423 8422 -1 -8522 8422 -1 -8423 8423 4 -8424 8423 -1 -8523 8423 -1 -8424 8424 4 -8425 8424 -1 -8524 8424 -1 -8425 8425 4 -8426 8425 -1 -8525 8425 -1 -8426 8426 4 -8427 8426 -1 -8526 8426 -1 -8427 8427 4 -8428 8427 -1 -8527 8427 -1 -8428 8428 4 -8429 8428 -1 -8528 8428 -1 -8429 8429 4 -8430 8429 -1 -8529 8429 -1 -8430 8430 4 -8431 8430 -1 -8530 8430 -1 -8431 8431 4 -8432 8431 -1 -8531 8431 -1 -8432 8432 4 -8433 8432 -1 -8532 8432 -1 -8433 8433 4 -8434 8433 -1 -8533 8433 -1 -8434 8434 4 -8435 8434 -1 -8534 8434 -1 -8435 8435 4 -8436 8435 -1 -8535 8435 -1 -8436 8436 4 -8437 8436 -1 -8536 8436 -1 -8437 8437 4 -8438 8437 -1 -8537 8437 -1 -8438 8438 4 -8439 8438 -1 -8538 8438 -1 -8439 8439 4 -8440 8439 -1 -8539 8439 -1 -8440 8440 4 -8441 8440 -1 -8540 8440 -1 -8441 8441 4 -8442 8441 -1 -8541 8441 -1 -8442 8442 4 -8443 8442 -1 -8542 8442 -1 -8443 8443 4 -8444 8443 -1 -8543 8443 -1 -8444 8444 4 -8445 8444 -1 -8544 8444 -1 -8445 8445 4 -8446 8445 -1 -8545 8445 -1 -8446 8446 4 -8447 8446 -1 -8546 8446 -1 -8447 8447 4 -8448 8447 -1 -8547 8447 -1 -8448 8448 4 -8449 8448 -1 -8548 8448 -1 -8449 8449 4 -8450 8449 -1 -8549 8449 -1 -8450 8450 4 -8451 8450 -1 -8550 8450 -1 -8451 8451 4 -8452 8451 -1 -8551 8451 -1 -8452 8452 4 -8453 8452 -1 -8552 8452 -1 -8453 8453 4 -8454 8453 -1 -8553 8453 -1 -8454 8454 4 -8455 8454 -1 -8554 8454 -1 -8455 8455 4 -8456 8455 -1 -8555 8455 -1 -8456 8456 4 -8457 8456 -1 -8556 8456 -1 -8457 8457 4 -8458 8457 -1 -8557 8457 -1 -8458 8458 4 -8459 8458 -1 -8558 8458 -1 -8459 8459 4 -8460 8459 -1 -8559 8459 -1 -8460 8460 4 -8461 8460 -1 -8560 8460 -1 -8461 8461 4 -8462 8461 -1 -8561 8461 -1 -8462 8462 4 -8463 8462 -1 -8562 8462 -1 -8463 8463 4 -8464 8463 -1 -8563 8463 -1 -8464 8464 4 -8465 8464 -1 -8564 8464 -1 -8465 8465 4 -8466 8465 -1 -8565 8465 -1 -8466 8466 4 -8467 8466 -1 -8566 8466 -1 -8467 8467 4 -8468 8467 -1 -8567 8467 -1 -8468 8468 4 -8469 8468 -1 -8568 8468 -1 -8469 8469 4 -8470 8469 -1 -8569 8469 -1 -8470 8470 4 -8471 8470 -1 -8570 8470 -1 -8471 8471 4 -8472 8471 -1 -8571 8471 -1 -8472 8472 4 -8473 8472 -1 -8572 8472 -1 -8473 8473 4 -8474 8473 -1 -8573 8473 -1 -8474 8474 4 -8475 8474 -1 -8574 8474 -1 -8475 8475 4 -8476 8475 -1 -8575 8475 -1 -8476 8476 4 -8477 8476 -1 -8576 8476 -1 -8477 8477 4 -8478 8477 -1 -8577 8477 -1 -8478 8478 4 -8479 8478 -1 -8578 8478 -1 -8479 8479 4 -8480 8479 -1 -8579 8479 -1 -8480 8480 4 -8481 8480 -1 -8580 8480 -1 -8481 8481 4 -8482 8481 -1 -8581 8481 -1 -8482 8482 4 -8483 8482 -1 -8582 8482 -1 -8483 8483 4 -8484 8483 -1 -8583 8483 -1 -8484 8484 4 -8485 8484 -1 -8584 8484 -1 -8485 8485 4 -8486 8485 -1 -8585 8485 -1 -8486 8486 4 -8487 8486 -1 -8586 8486 -1 -8487 8487 4 -8488 8487 -1 -8587 8487 -1 -8488 8488 4 -8489 8488 -1 -8588 8488 -1 -8489 8489 4 -8490 8489 -1 -8589 8489 -1 -8490 8490 4 -8491 8490 -1 -8590 8490 -1 -8491 8491 4 -8492 8491 -1 -8591 8491 -1 -8492 8492 4 -8493 8492 -1 -8592 8492 -1 -8493 8493 4 -8494 8493 -1 -8593 8493 -1 -8494 8494 4 -8495 8494 -1 -8594 8494 -1 -8495 8495 4 -8496 8495 -1 -8595 8495 -1 -8496 8496 4 -8497 8496 -1 -8596 8496 -1 -8497 8497 4 -8498 8497 -1 -8597 8497 -1 -8498 8498 4 -8499 8498 -1 -8598 8498 -1 -8499 8499 4 -8500 8499 -1 -8599 8499 -1 -8500 8500 4 -8600 8500 -1 -8501 8501 4 -8502 8501 -1 -8601 8501 -1 -8502 8502 4 -8503 8502 -1 -8602 8502 -1 -8503 8503 4 -8504 8503 -1 -8603 8503 -1 -8504 8504 4 -8505 8504 -1 -8604 8504 -1 -8505 8505 4 -8506 8505 -1 -8605 8505 -1 -8506 8506 4 -8507 8506 -1 -8606 8506 -1 -8507 8507 4 -8508 8507 -1 -8607 8507 -1 -8508 8508 4 -8509 8508 -1 -8608 8508 -1 -8509 8509 4 -8510 8509 -1 -8609 8509 -1 -8510 8510 4 -8511 8510 -1 -8610 8510 -1 -8511 8511 4 -8512 8511 -1 -8611 8511 -1 -8512 8512 4 -8513 8512 -1 -8612 8512 -1 -8513 8513 4 -8514 8513 -1 -8613 8513 -1 -8514 8514 4 -8515 8514 -1 -8614 8514 -1 -8515 8515 4 -8516 8515 -1 -8615 8515 -1 -8516 8516 4 -8517 8516 -1 -8616 8516 -1 -8517 8517 4 -8518 8517 -1 -8617 8517 -1 -8518 8518 4 -8519 8518 -1 -8618 8518 -1 -8519 8519 4 -8520 8519 -1 -8619 8519 -1 -8520 8520 4 -8521 8520 -1 -8620 8520 -1 -8521 8521 4 -8522 8521 -1 -8621 8521 -1 -8522 8522 4 -8523 8522 -1 -8622 8522 -1 -8523 8523 4 -8524 8523 -1 -8623 8523 -1 -8524 8524 4 -8525 8524 -1 -8624 8524 -1 -8525 8525 4 -8526 8525 -1 -8625 8525 -1 -8526 8526 4 -8527 8526 -1 -8626 8526 -1 -8527 8527 4 -8528 8527 -1 -8627 8527 -1 -8528 8528 4 -8529 8528 -1 -8628 8528 -1 -8529 8529 4 -8530 8529 -1 -8629 8529 -1 -8530 8530 4 -8531 8530 -1 -8630 8530 -1 -8531 8531 4 -8532 8531 -1 -8631 8531 -1 -8532 8532 4 -8533 8532 -1 -8632 8532 -1 -8533 8533 4 -8534 8533 -1 -8633 8533 -1 -8534 8534 4 -8535 8534 -1 -8634 8534 -1 -8535 8535 4 -8536 8535 -1 -8635 8535 -1 -8536 8536 4 -8537 8536 -1 -8636 8536 -1 -8537 8537 4 -8538 8537 -1 -8637 8537 -1 -8538 8538 4 -8539 8538 -1 -8638 8538 -1 -8539 8539 4 -8540 8539 -1 -8639 8539 -1 -8540 8540 4 -8541 8540 -1 -8640 8540 -1 -8541 8541 4 -8542 8541 -1 -8641 8541 -1 -8542 8542 4 -8543 8542 -1 -8642 8542 -1 -8543 8543 4 -8544 8543 -1 -8643 8543 -1 -8544 8544 4 -8545 8544 -1 -8644 8544 -1 -8545 8545 4 -8546 8545 -1 -8645 8545 -1 -8546 8546 4 -8547 8546 -1 -8646 8546 -1 -8547 8547 4 -8548 8547 -1 -8647 8547 -1 -8548 8548 4 -8549 8548 -1 -8648 8548 -1 -8549 8549 4 -8550 8549 -1 -8649 8549 -1 -8550 8550 4 -8551 8550 -1 -8650 8550 -1 -8551 8551 4 -8552 8551 -1 -8651 8551 -1 -8552 8552 4 -8553 8552 -1 -8652 8552 -1 -8553 8553 4 -8554 8553 -1 -8653 8553 -1 -8554 8554 4 -8555 8554 -1 -8654 8554 -1 -8555 8555 4 -8556 8555 -1 -8655 8555 -1 -8556 8556 4 -8557 8556 -1 -8656 8556 -1 -8557 8557 4 -8558 8557 -1 -8657 8557 -1 -8558 8558 4 -8559 8558 -1 -8658 8558 -1 -8559 8559 4 -8560 8559 -1 -8659 8559 -1 -8560 8560 4 -8561 8560 -1 -8660 8560 -1 -8561 8561 4 -8562 8561 -1 -8661 8561 -1 -8562 8562 4 -8563 8562 -1 -8662 8562 -1 -8563 8563 4 -8564 8563 -1 -8663 8563 -1 -8564 8564 4 -8565 8564 -1 -8664 8564 -1 -8565 8565 4 -8566 8565 -1 -8665 8565 -1 -8566 8566 4 -8567 8566 -1 -8666 8566 -1 -8567 8567 4 -8568 8567 -1 -8667 8567 -1 -8568 8568 4 -8569 8568 -1 -8668 8568 -1 -8569 8569 4 -8570 8569 -1 -8669 8569 -1 -8570 8570 4 -8571 8570 -1 -8670 8570 -1 -8571 8571 4 -8572 8571 -1 -8671 8571 -1 -8572 8572 4 -8573 8572 -1 -8672 8572 -1 -8573 8573 4 -8574 8573 -1 -8673 8573 -1 -8574 8574 4 -8575 8574 -1 -8674 8574 -1 -8575 8575 4 -8576 8575 -1 -8675 8575 -1 -8576 8576 4 -8577 8576 -1 -8676 8576 -1 -8577 8577 4 -8578 8577 -1 -8677 8577 -1 -8578 8578 4 -8579 8578 -1 -8678 8578 -1 -8579 8579 4 -8580 8579 -1 -8679 8579 -1 -8580 8580 4 -8581 8580 -1 -8680 8580 -1 -8581 8581 4 -8582 8581 -1 -8681 8581 -1 -8582 8582 4 -8583 8582 -1 -8682 8582 -1 -8583 8583 4 -8584 8583 -1 -8683 8583 -1 -8584 8584 4 -8585 8584 -1 -8684 8584 -1 -8585 8585 4 -8586 8585 -1 -8685 8585 -1 -8586 8586 4 -8587 8586 -1 -8686 8586 -1 -8587 8587 4 -8588 8587 -1 -8687 8587 -1 -8588 8588 4 -8589 8588 -1 -8688 8588 -1 -8589 8589 4 -8590 8589 -1 -8689 8589 -1 -8590 8590 4 -8591 8590 -1 -8690 8590 -1 -8591 8591 4 -8592 8591 -1 -8691 8591 -1 -8592 8592 4 -8593 8592 -1 -8692 8592 -1 -8593 8593 4 -8594 8593 -1 -8693 8593 -1 -8594 8594 4 -8595 8594 -1 -8694 8594 -1 -8595 8595 4 -8596 8595 -1 -8695 8595 -1 -8596 8596 4 -8597 8596 -1 -8696 8596 -1 -8597 8597 4 -8598 8597 -1 -8697 8597 -1 -8598 8598 4 -8599 8598 -1 -8698 8598 -1 -8599 8599 4 -8600 8599 -1 -8699 8599 -1 -8600 8600 4 -8700 8600 -1 -8601 8601 4 -8602 8601 -1 -8701 8601 -1 -8602 8602 4 -8603 8602 -1 -8702 8602 -1 -8603 8603 4 -8604 8603 -1 -8703 8603 -1 -8604 8604 4 -8605 8604 -1 -8704 8604 -1 -8605 8605 4 -8606 8605 -1 -8705 8605 -1 -8606 8606 4 -8607 8606 -1 -8706 8606 -1 -8607 8607 4 -8608 8607 -1 -8707 8607 -1 -8608 8608 4 -8609 8608 -1 -8708 8608 -1 -8609 8609 4 -8610 8609 -1 -8709 8609 -1 -8610 8610 4 -8611 8610 -1 -8710 8610 -1 -8611 8611 4 -8612 8611 -1 -8711 8611 -1 -8612 8612 4 -8613 8612 -1 -8712 8612 -1 -8613 8613 4 -8614 8613 -1 -8713 8613 -1 -8614 8614 4 -8615 8614 -1 -8714 8614 -1 -8615 8615 4 -8616 8615 -1 -8715 8615 -1 -8616 8616 4 -8617 8616 -1 -8716 8616 -1 -8617 8617 4 -8618 8617 -1 -8717 8617 -1 -8618 8618 4 -8619 8618 -1 -8718 8618 -1 -8619 8619 4 -8620 8619 -1 -8719 8619 -1 -8620 8620 4 -8621 8620 -1 -8720 8620 -1 -8621 8621 4 -8622 8621 -1 -8721 8621 -1 -8622 8622 4 -8623 8622 -1 -8722 8622 -1 -8623 8623 4 -8624 8623 -1 -8723 8623 -1 -8624 8624 4 -8625 8624 -1 -8724 8624 -1 -8625 8625 4 -8626 8625 -1 -8725 8625 -1 -8626 8626 4 -8627 8626 -1 -8726 8626 -1 -8627 8627 4 -8628 8627 -1 -8727 8627 -1 -8628 8628 4 -8629 8628 -1 -8728 8628 -1 -8629 8629 4 -8630 8629 -1 -8729 8629 -1 -8630 8630 4 -8631 8630 -1 -8730 8630 -1 -8631 8631 4 -8632 8631 -1 -8731 8631 -1 -8632 8632 4 -8633 8632 -1 -8732 8632 -1 -8633 8633 4 -8634 8633 -1 -8733 8633 -1 -8634 8634 4 -8635 8634 -1 -8734 8634 -1 -8635 8635 4 -8636 8635 -1 -8735 8635 -1 -8636 8636 4 -8637 8636 -1 -8736 8636 -1 -8637 8637 4 -8638 8637 -1 -8737 8637 -1 -8638 8638 4 -8639 8638 -1 -8738 8638 -1 -8639 8639 4 -8640 8639 -1 -8739 8639 -1 -8640 8640 4 -8641 8640 -1 -8740 8640 -1 -8641 8641 4 -8642 8641 -1 -8741 8641 -1 -8642 8642 4 -8643 8642 -1 -8742 8642 -1 -8643 8643 4 -8644 8643 -1 -8743 8643 -1 -8644 8644 4 -8645 8644 -1 -8744 8644 -1 -8645 8645 4 -8646 8645 -1 -8745 8645 -1 -8646 8646 4 -8647 8646 -1 -8746 8646 -1 -8647 8647 4 -8648 8647 -1 -8747 8647 -1 -8648 8648 4 -8649 8648 -1 -8748 8648 -1 -8649 8649 4 -8650 8649 -1 -8749 8649 -1 -8650 8650 4 -8651 8650 -1 -8750 8650 -1 -8651 8651 4 -8652 8651 -1 -8751 8651 -1 -8652 8652 4 -8653 8652 -1 -8752 8652 -1 -8653 8653 4 -8654 8653 -1 -8753 8653 -1 -8654 8654 4 -8655 8654 -1 -8754 8654 -1 -8655 8655 4 -8656 8655 -1 -8755 8655 -1 -8656 8656 4 -8657 8656 -1 -8756 8656 -1 -8657 8657 4 -8658 8657 -1 -8757 8657 -1 -8658 8658 4 -8659 8658 -1 -8758 8658 -1 -8659 8659 4 -8660 8659 -1 -8759 8659 -1 -8660 8660 4 -8661 8660 -1 -8760 8660 -1 -8661 8661 4 -8662 8661 -1 -8761 8661 -1 -8662 8662 4 -8663 8662 -1 -8762 8662 -1 -8663 8663 4 -8664 8663 -1 -8763 8663 -1 -8664 8664 4 -8665 8664 -1 -8764 8664 -1 -8665 8665 4 -8666 8665 -1 -8765 8665 -1 -8666 8666 4 -8667 8666 -1 -8766 8666 -1 -8667 8667 4 -8668 8667 -1 -8767 8667 -1 -8668 8668 4 -8669 8668 -1 -8768 8668 -1 -8669 8669 4 -8670 8669 -1 -8769 8669 -1 -8670 8670 4 -8671 8670 -1 -8770 8670 -1 -8671 8671 4 -8672 8671 -1 -8771 8671 -1 -8672 8672 4 -8673 8672 -1 -8772 8672 -1 -8673 8673 4 -8674 8673 -1 -8773 8673 -1 -8674 8674 4 -8675 8674 -1 -8774 8674 -1 -8675 8675 4 -8676 8675 -1 -8775 8675 -1 -8676 8676 4 -8677 8676 -1 -8776 8676 -1 -8677 8677 4 -8678 8677 -1 -8777 8677 -1 -8678 8678 4 -8679 8678 -1 -8778 8678 -1 -8679 8679 4 -8680 8679 -1 -8779 8679 -1 -8680 8680 4 -8681 8680 -1 -8780 8680 -1 -8681 8681 4 -8682 8681 -1 -8781 8681 -1 -8682 8682 4 -8683 8682 -1 -8782 8682 -1 -8683 8683 4 -8684 8683 -1 -8783 8683 -1 -8684 8684 4 -8685 8684 -1 -8784 8684 -1 -8685 8685 4 -8686 8685 -1 -8785 8685 -1 -8686 8686 4 -8687 8686 -1 -8786 8686 -1 -8687 8687 4 -8688 8687 -1 -8787 8687 -1 -8688 8688 4 -8689 8688 -1 -8788 8688 -1 -8689 8689 4 -8690 8689 -1 -8789 8689 -1 -8690 8690 4 -8691 8690 -1 -8790 8690 -1 -8691 8691 4 -8692 8691 -1 -8791 8691 -1 -8692 8692 4 -8693 8692 -1 -8792 8692 -1 -8693 8693 4 -8694 8693 -1 -8793 8693 -1 -8694 8694 4 -8695 8694 -1 -8794 8694 -1 -8695 8695 4 -8696 8695 -1 -8795 8695 -1 -8696 8696 4 -8697 8696 -1 -8796 8696 -1 -8697 8697 4 -8698 8697 -1 -8797 8697 -1 -8698 8698 4 -8699 8698 -1 -8798 8698 -1 -8699 8699 4 -8700 8699 -1 -8799 8699 -1 -8700 8700 4 -8800 8700 -1 -8701 8701 4 -8702 8701 -1 -8801 8701 -1 -8702 8702 4 -8703 8702 -1 -8802 8702 -1 -8703 8703 4 -8704 8703 -1 -8803 8703 -1 -8704 8704 4 -8705 8704 -1 -8804 8704 -1 -8705 8705 4 -8706 8705 -1 -8805 8705 -1 -8706 8706 4 -8707 8706 -1 -8806 8706 -1 -8707 8707 4 -8708 8707 -1 -8807 8707 -1 -8708 8708 4 -8709 8708 -1 -8808 8708 -1 -8709 8709 4 -8710 8709 -1 -8809 8709 -1 -8710 8710 4 -8711 8710 -1 -8810 8710 -1 -8711 8711 4 -8712 8711 -1 -8811 8711 -1 -8712 8712 4 -8713 8712 -1 -8812 8712 -1 -8713 8713 4 -8714 8713 -1 -8813 8713 -1 -8714 8714 4 -8715 8714 -1 -8814 8714 -1 -8715 8715 4 -8716 8715 -1 -8815 8715 -1 -8716 8716 4 -8717 8716 -1 -8816 8716 -1 -8717 8717 4 -8718 8717 -1 -8817 8717 -1 -8718 8718 4 -8719 8718 -1 -8818 8718 -1 -8719 8719 4 -8720 8719 -1 -8819 8719 -1 -8720 8720 4 -8721 8720 -1 -8820 8720 -1 -8721 8721 4 -8722 8721 -1 -8821 8721 -1 -8722 8722 4 -8723 8722 -1 -8822 8722 -1 -8723 8723 4 -8724 8723 -1 -8823 8723 -1 -8724 8724 4 -8725 8724 -1 -8824 8724 -1 -8725 8725 4 -8726 8725 -1 -8825 8725 -1 -8726 8726 4 -8727 8726 -1 -8826 8726 -1 -8727 8727 4 -8728 8727 -1 -8827 8727 -1 -8728 8728 4 -8729 8728 -1 -8828 8728 -1 -8729 8729 4 -8730 8729 -1 -8829 8729 -1 -8730 8730 4 -8731 8730 -1 -8830 8730 -1 -8731 8731 4 -8732 8731 -1 -8831 8731 -1 -8732 8732 4 -8733 8732 -1 -8832 8732 -1 -8733 8733 4 -8734 8733 -1 -8833 8733 -1 -8734 8734 4 -8735 8734 -1 -8834 8734 -1 -8735 8735 4 -8736 8735 -1 -8835 8735 -1 -8736 8736 4 -8737 8736 -1 -8836 8736 -1 -8737 8737 4 -8738 8737 -1 -8837 8737 -1 -8738 8738 4 -8739 8738 -1 -8838 8738 -1 -8739 8739 4 -8740 8739 -1 -8839 8739 -1 -8740 8740 4 -8741 8740 -1 -8840 8740 -1 -8741 8741 4 -8742 8741 -1 -8841 8741 -1 -8742 8742 4 -8743 8742 -1 -8842 8742 -1 -8743 8743 4 -8744 8743 -1 -8843 8743 -1 -8744 8744 4 -8745 8744 -1 -8844 8744 -1 -8745 8745 4 -8746 8745 -1 -8845 8745 -1 -8746 8746 4 -8747 8746 -1 -8846 8746 -1 -8747 8747 4 -8748 8747 -1 -8847 8747 -1 -8748 8748 4 -8749 8748 -1 -8848 8748 -1 -8749 8749 4 -8750 8749 -1 -8849 8749 -1 -8750 8750 4 -8751 8750 -1 -8850 8750 -1 -8751 8751 4 -8752 8751 -1 -8851 8751 -1 -8752 8752 4 -8753 8752 -1 -8852 8752 -1 -8753 8753 4 -8754 8753 -1 -8853 8753 -1 -8754 8754 4 -8755 8754 -1 -8854 8754 -1 -8755 8755 4 -8756 8755 -1 -8855 8755 -1 -8756 8756 4 -8757 8756 -1 -8856 8756 -1 -8757 8757 4 -8758 8757 -1 -8857 8757 -1 -8758 8758 4 -8759 8758 -1 -8858 8758 -1 -8759 8759 4 -8760 8759 -1 -8859 8759 -1 -8760 8760 4 -8761 8760 -1 -8860 8760 -1 -8761 8761 4 -8762 8761 -1 -8861 8761 -1 -8762 8762 4 -8763 8762 -1 -8862 8762 -1 -8763 8763 4 -8764 8763 -1 -8863 8763 -1 -8764 8764 4 -8765 8764 -1 -8864 8764 -1 -8765 8765 4 -8766 8765 -1 -8865 8765 -1 -8766 8766 4 -8767 8766 -1 -8866 8766 -1 -8767 8767 4 -8768 8767 -1 -8867 8767 -1 -8768 8768 4 -8769 8768 -1 -8868 8768 -1 -8769 8769 4 -8770 8769 -1 -8869 8769 -1 -8770 8770 4 -8771 8770 -1 -8870 8770 -1 -8771 8771 4 -8772 8771 -1 -8871 8771 -1 -8772 8772 4 -8773 8772 -1 -8872 8772 -1 -8773 8773 4 -8774 8773 -1 -8873 8773 -1 -8774 8774 4 -8775 8774 -1 -8874 8774 -1 -8775 8775 4 -8776 8775 -1 -8875 8775 -1 -8776 8776 4 -8777 8776 -1 -8876 8776 -1 -8777 8777 4 -8778 8777 -1 -8877 8777 -1 -8778 8778 4 -8779 8778 -1 -8878 8778 -1 -8779 8779 4 -8780 8779 -1 -8879 8779 -1 -8780 8780 4 -8781 8780 -1 -8880 8780 -1 -8781 8781 4 -8782 8781 -1 -8881 8781 -1 -8782 8782 4 -8783 8782 -1 -8882 8782 -1 -8783 8783 4 -8784 8783 -1 -8883 8783 -1 -8784 8784 4 -8785 8784 -1 -8884 8784 -1 -8785 8785 4 -8786 8785 -1 -8885 8785 -1 -8786 8786 4 -8787 8786 -1 -8886 8786 -1 -8787 8787 4 -8788 8787 -1 -8887 8787 -1 -8788 8788 4 -8789 8788 -1 -8888 8788 -1 -8789 8789 4 -8790 8789 -1 -8889 8789 -1 -8790 8790 4 -8791 8790 -1 -8890 8790 -1 -8791 8791 4 -8792 8791 -1 -8891 8791 -1 -8792 8792 4 -8793 8792 -1 -8892 8792 -1 -8793 8793 4 -8794 8793 -1 -8893 8793 -1 -8794 8794 4 -8795 8794 -1 -8894 8794 -1 -8795 8795 4 -8796 8795 -1 -8895 8795 -1 -8796 8796 4 -8797 8796 -1 -8896 8796 -1 -8797 8797 4 -8798 8797 -1 -8897 8797 -1 -8798 8798 4 -8799 8798 -1 -8898 8798 -1 -8799 8799 4 -8800 8799 -1 -8899 8799 -1 -8800 8800 4 -8900 8800 -1 -8801 8801 4 -8802 8801 -1 -8901 8801 -1 -8802 8802 4 -8803 8802 -1 -8902 8802 -1 -8803 8803 4 -8804 8803 -1 -8903 8803 -1 -8804 8804 4 -8805 8804 -1 -8904 8804 -1 -8805 8805 4 -8806 8805 -1 -8905 8805 -1 -8806 8806 4 -8807 8806 -1 -8906 8806 -1 -8807 8807 4 -8808 8807 -1 -8907 8807 -1 -8808 8808 4 -8809 8808 -1 -8908 8808 -1 -8809 8809 4 -8810 8809 -1 -8909 8809 -1 -8810 8810 4 -8811 8810 -1 -8910 8810 -1 -8811 8811 4 -8812 8811 -1 -8911 8811 -1 -8812 8812 4 -8813 8812 -1 -8912 8812 -1 -8813 8813 4 -8814 8813 -1 -8913 8813 -1 -8814 8814 4 -8815 8814 -1 -8914 8814 -1 -8815 8815 4 -8816 8815 -1 -8915 8815 -1 -8816 8816 4 -8817 8816 -1 -8916 8816 -1 -8817 8817 4 -8818 8817 -1 -8917 8817 -1 -8818 8818 4 -8819 8818 -1 -8918 8818 -1 -8819 8819 4 -8820 8819 -1 -8919 8819 -1 -8820 8820 4 -8821 8820 -1 -8920 8820 -1 -8821 8821 4 -8822 8821 -1 -8921 8821 -1 -8822 8822 4 -8823 8822 -1 -8922 8822 -1 -8823 8823 4 -8824 8823 -1 -8923 8823 -1 -8824 8824 4 -8825 8824 -1 -8924 8824 -1 -8825 8825 4 -8826 8825 -1 -8925 8825 -1 -8826 8826 4 -8827 8826 -1 -8926 8826 -1 -8827 8827 4 -8828 8827 -1 -8927 8827 -1 -8828 8828 4 -8829 8828 -1 -8928 8828 -1 -8829 8829 4 -8830 8829 -1 -8929 8829 -1 -8830 8830 4 -8831 8830 -1 -8930 8830 -1 -8831 8831 4 -8832 8831 -1 -8931 8831 -1 -8832 8832 4 -8833 8832 -1 -8932 8832 -1 -8833 8833 4 -8834 8833 -1 -8933 8833 -1 -8834 8834 4 -8835 8834 -1 -8934 8834 -1 -8835 8835 4 -8836 8835 -1 -8935 8835 -1 -8836 8836 4 -8837 8836 -1 -8936 8836 -1 -8837 8837 4 -8838 8837 -1 -8937 8837 -1 -8838 8838 4 -8839 8838 -1 -8938 8838 -1 -8839 8839 4 -8840 8839 -1 -8939 8839 -1 -8840 8840 4 -8841 8840 -1 -8940 8840 -1 -8841 8841 4 -8842 8841 -1 -8941 8841 -1 -8842 8842 4 -8843 8842 -1 -8942 8842 -1 -8843 8843 4 -8844 8843 -1 -8943 8843 -1 -8844 8844 4 -8845 8844 -1 -8944 8844 -1 -8845 8845 4 -8846 8845 -1 -8945 8845 -1 -8846 8846 4 -8847 8846 -1 -8946 8846 -1 -8847 8847 4 -8848 8847 -1 -8947 8847 -1 -8848 8848 4 -8849 8848 -1 -8948 8848 -1 -8849 8849 4 -8850 8849 -1 -8949 8849 -1 -8850 8850 4 -8851 8850 -1 -8950 8850 -1 -8851 8851 4 -8852 8851 -1 -8951 8851 -1 -8852 8852 4 -8853 8852 -1 -8952 8852 -1 -8853 8853 4 -8854 8853 -1 -8953 8853 -1 -8854 8854 4 -8855 8854 -1 -8954 8854 -1 -8855 8855 4 -8856 8855 -1 -8955 8855 -1 -8856 8856 4 -8857 8856 -1 -8956 8856 -1 -8857 8857 4 -8858 8857 -1 -8957 8857 -1 -8858 8858 4 -8859 8858 -1 -8958 8858 -1 -8859 8859 4 -8860 8859 -1 -8959 8859 -1 -8860 8860 4 -8861 8860 -1 -8960 8860 -1 -8861 8861 4 -8862 8861 -1 -8961 8861 -1 -8862 8862 4 -8863 8862 -1 -8962 8862 -1 -8863 8863 4 -8864 8863 -1 -8963 8863 -1 -8864 8864 4 -8865 8864 -1 -8964 8864 -1 -8865 8865 4 -8866 8865 -1 -8965 8865 -1 -8866 8866 4 -8867 8866 -1 -8966 8866 -1 -8867 8867 4 -8868 8867 -1 -8967 8867 -1 -8868 8868 4 -8869 8868 -1 -8968 8868 -1 -8869 8869 4 -8870 8869 -1 -8969 8869 -1 -8870 8870 4 -8871 8870 -1 -8970 8870 -1 -8871 8871 4 -8872 8871 -1 -8971 8871 -1 -8872 8872 4 -8873 8872 -1 -8972 8872 -1 -8873 8873 4 -8874 8873 -1 -8973 8873 -1 -8874 8874 4 -8875 8874 -1 -8974 8874 -1 -8875 8875 4 -8876 8875 -1 -8975 8875 -1 -8876 8876 4 -8877 8876 -1 -8976 8876 -1 -8877 8877 4 -8878 8877 -1 -8977 8877 -1 -8878 8878 4 -8879 8878 -1 -8978 8878 -1 -8879 8879 4 -8880 8879 -1 -8979 8879 -1 -8880 8880 4 -8881 8880 -1 -8980 8880 -1 -8881 8881 4 -8882 8881 -1 -8981 8881 -1 -8882 8882 4 -8883 8882 -1 -8982 8882 -1 -8883 8883 4 -8884 8883 -1 -8983 8883 -1 -8884 8884 4 -8885 8884 -1 -8984 8884 -1 -8885 8885 4 -8886 8885 -1 -8985 8885 -1 -8886 8886 4 -8887 8886 -1 -8986 8886 -1 -8887 8887 4 -8888 8887 -1 -8987 8887 -1 -8888 8888 4 -8889 8888 -1 -8988 8888 -1 -8889 8889 4 -8890 8889 -1 -8989 8889 -1 -8890 8890 4 -8891 8890 -1 -8990 8890 -1 -8891 8891 4 -8892 8891 -1 -8991 8891 -1 -8892 8892 4 -8893 8892 -1 -8992 8892 -1 -8893 8893 4 -8894 8893 -1 -8993 8893 -1 -8894 8894 4 -8895 8894 -1 -8994 8894 -1 -8895 8895 4 -8896 8895 -1 -8995 8895 -1 -8896 8896 4 -8897 8896 -1 -8996 8896 -1 -8897 8897 4 -8898 8897 -1 -8997 8897 -1 -8898 8898 4 -8899 8898 -1 -8998 8898 -1 -8899 8899 4 -8900 8899 -1 -8999 8899 -1 -8900 8900 4 -9000 8900 -1 -8901 8901 4 -8902 8901 -1 -9001 8901 -1 -8902 8902 4 -8903 8902 -1 -9002 8902 -1 -8903 8903 4 -8904 8903 -1 -9003 8903 -1 -8904 8904 4 -8905 8904 -1 -9004 8904 -1 -8905 8905 4 -8906 8905 -1 -9005 8905 -1 -8906 8906 4 -8907 8906 -1 -9006 8906 -1 -8907 8907 4 -8908 8907 -1 -9007 8907 -1 -8908 8908 4 -8909 8908 -1 -9008 8908 -1 -8909 8909 4 -8910 8909 -1 -9009 8909 -1 -8910 8910 4 -8911 8910 -1 -9010 8910 -1 -8911 8911 4 -8912 8911 -1 -9011 8911 -1 -8912 8912 4 -8913 8912 -1 -9012 8912 -1 -8913 8913 4 -8914 8913 -1 -9013 8913 -1 -8914 8914 4 -8915 8914 -1 -9014 8914 -1 -8915 8915 4 -8916 8915 -1 -9015 8915 -1 -8916 8916 4 -8917 8916 -1 -9016 8916 -1 -8917 8917 4 -8918 8917 -1 -9017 8917 -1 -8918 8918 4 -8919 8918 -1 -9018 8918 -1 -8919 8919 4 -8920 8919 -1 -9019 8919 -1 -8920 8920 4 -8921 8920 -1 -9020 8920 -1 -8921 8921 4 -8922 8921 -1 -9021 8921 -1 -8922 8922 4 -8923 8922 -1 -9022 8922 -1 -8923 8923 4 -8924 8923 -1 -9023 8923 -1 -8924 8924 4 -8925 8924 -1 -9024 8924 -1 -8925 8925 4 -8926 8925 -1 -9025 8925 -1 -8926 8926 4 -8927 8926 -1 -9026 8926 -1 -8927 8927 4 -8928 8927 -1 -9027 8927 -1 -8928 8928 4 -8929 8928 -1 -9028 8928 -1 -8929 8929 4 -8930 8929 -1 -9029 8929 -1 -8930 8930 4 -8931 8930 -1 -9030 8930 -1 -8931 8931 4 -8932 8931 -1 -9031 8931 -1 -8932 8932 4 -8933 8932 -1 -9032 8932 -1 -8933 8933 4 -8934 8933 -1 -9033 8933 -1 -8934 8934 4 -8935 8934 -1 -9034 8934 -1 -8935 8935 4 -8936 8935 -1 -9035 8935 -1 -8936 8936 4 -8937 8936 -1 -9036 8936 -1 -8937 8937 4 -8938 8937 -1 -9037 8937 -1 -8938 8938 4 -8939 8938 -1 -9038 8938 -1 -8939 8939 4 -8940 8939 -1 -9039 8939 -1 -8940 8940 4 -8941 8940 -1 -9040 8940 -1 -8941 8941 4 -8942 8941 -1 -9041 8941 -1 -8942 8942 4 -8943 8942 -1 -9042 8942 -1 -8943 8943 4 -8944 8943 -1 -9043 8943 -1 -8944 8944 4 -8945 8944 -1 -9044 8944 -1 -8945 8945 4 -8946 8945 -1 -9045 8945 -1 -8946 8946 4 -8947 8946 -1 -9046 8946 -1 -8947 8947 4 -8948 8947 -1 -9047 8947 -1 -8948 8948 4 -8949 8948 -1 -9048 8948 -1 -8949 8949 4 -8950 8949 -1 -9049 8949 -1 -8950 8950 4 -8951 8950 -1 -9050 8950 -1 -8951 8951 4 -8952 8951 -1 -9051 8951 -1 -8952 8952 4 -8953 8952 -1 -9052 8952 -1 -8953 8953 4 -8954 8953 -1 -9053 8953 -1 -8954 8954 4 -8955 8954 -1 -9054 8954 -1 -8955 8955 4 -8956 8955 -1 -9055 8955 -1 -8956 8956 4 -8957 8956 -1 -9056 8956 -1 -8957 8957 4 -8958 8957 -1 -9057 8957 -1 -8958 8958 4 -8959 8958 -1 -9058 8958 -1 -8959 8959 4 -8960 8959 -1 -9059 8959 -1 -8960 8960 4 -8961 8960 -1 -9060 8960 -1 -8961 8961 4 -8962 8961 -1 -9061 8961 -1 -8962 8962 4 -8963 8962 -1 -9062 8962 -1 -8963 8963 4 -8964 8963 -1 -9063 8963 -1 -8964 8964 4 -8965 8964 -1 -9064 8964 -1 -8965 8965 4 -8966 8965 -1 -9065 8965 -1 -8966 8966 4 -8967 8966 -1 -9066 8966 -1 -8967 8967 4 -8968 8967 -1 -9067 8967 -1 -8968 8968 4 -8969 8968 -1 -9068 8968 -1 -8969 8969 4 -8970 8969 -1 -9069 8969 -1 -8970 8970 4 -8971 8970 -1 -9070 8970 -1 -8971 8971 4 -8972 8971 -1 -9071 8971 -1 -8972 8972 4 -8973 8972 -1 -9072 8972 -1 -8973 8973 4 -8974 8973 -1 -9073 8973 -1 -8974 8974 4 -8975 8974 -1 -9074 8974 -1 -8975 8975 4 -8976 8975 -1 -9075 8975 -1 -8976 8976 4 -8977 8976 -1 -9076 8976 -1 -8977 8977 4 -8978 8977 -1 -9077 8977 -1 -8978 8978 4 -8979 8978 -1 -9078 8978 -1 -8979 8979 4 -8980 8979 -1 -9079 8979 -1 -8980 8980 4 -8981 8980 -1 -9080 8980 -1 -8981 8981 4 -8982 8981 -1 -9081 8981 -1 -8982 8982 4 -8983 8982 -1 -9082 8982 -1 -8983 8983 4 -8984 8983 -1 -9083 8983 -1 -8984 8984 4 -8985 8984 -1 -9084 8984 -1 -8985 8985 4 -8986 8985 -1 -9085 8985 -1 -8986 8986 4 -8987 8986 -1 -9086 8986 -1 -8987 8987 4 -8988 8987 -1 -9087 8987 -1 -8988 8988 4 -8989 8988 -1 -9088 8988 -1 -8989 8989 4 -8990 8989 -1 -9089 8989 -1 -8990 8990 4 -8991 8990 -1 -9090 8990 -1 -8991 8991 4 -8992 8991 -1 -9091 8991 -1 -8992 8992 4 -8993 8992 -1 -9092 8992 -1 -8993 8993 4 -8994 8993 -1 -9093 8993 -1 -8994 8994 4 -8995 8994 -1 -9094 8994 -1 -8995 8995 4 -8996 8995 -1 -9095 8995 -1 -8996 8996 4 -8997 8996 -1 -9096 8996 -1 -8997 8997 4 -8998 8997 -1 -9097 8997 -1 -8998 8998 4 -8999 8998 -1 -9098 8998 -1 -8999 8999 4 -9000 8999 -1 -9099 8999 -1 -9000 9000 4 -9100 9000 -1 -9001 9001 4 -9002 9001 -1 -9101 9001 -1 -9002 9002 4 -9003 9002 -1 -9102 9002 -1 -9003 9003 4 -9004 9003 -1 -9103 9003 -1 -9004 9004 4 -9005 9004 -1 -9104 9004 -1 -9005 9005 4 -9006 9005 -1 -9105 9005 -1 -9006 9006 4 -9007 9006 -1 -9106 9006 -1 -9007 9007 4 -9008 9007 -1 -9107 9007 -1 -9008 9008 4 -9009 9008 -1 -9108 9008 -1 -9009 9009 4 -9010 9009 -1 -9109 9009 -1 -9010 9010 4 -9011 9010 -1 -9110 9010 -1 -9011 9011 4 -9012 9011 -1 -9111 9011 -1 -9012 9012 4 -9013 9012 -1 -9112 9012 -1 -9013 9013 4 -9014 9013 -1 -9113 9013 -1 -9014 9014 4 -9015 9014 -1 -9114 9014 -1 -9015 9015 4 -9016 9015 -1 -9115 9015 -1 -9016 9016 4 -9017 9016 -1 -9116 9016 -1 -9017 9017 4 -9018 9017 -1 -9117 9017 -1 -9018 9018 4 -9019 9018 -1 -9118 9018 -1 -9019 9019 4 -9020 9019 -1 -9119 9019 -1 -9020 9020 4 -9021 9020 -1 -9120 9020 -1 -9021 9021 4 -9022 9021 -1 -9121 9021 -1 -9022 9022 4 -9023 9022 -1 -9122 9022 -1 -9023 9023 4 -9024 9023 -1 -9123 9023 -1 -9024 9024 4 -9025 9024 -1 -9124 9024 -1 -9025 9025 4 -9026 9025 -1 -9125 9025 -1 -9026 9026 4 -9027 9026 -1 -9126 9026 -1 -9027 9027 4 -9028 9027 -1 -9127 9027 -1 -9028 9028 4 -9029 9028 -1 -9128 9028 -1 -9029 9029 4 -9030 9029 -1 -9129 9029 -1 -9030 9030 4 -9031 9030 -1 -9130 9030 -1 -9031 9031 4 -9032 9031 -1 -9131 9031 -1 -9032 9032 4 -9033 9032 -1 -9132 9032 -1 -9033 9033 4 -9034 9033 -1 -9133 9033 -1 -9034 9034 4 -9035 9034 -1 -9134 9034 -1 -9035 9035 4 -9036 9035 -1 -9135 9035 -1 -9036 9036 4 -9037 9036 -1 -9136 9036 -1 -9037 9037 4 -9038 9037 -1 -9137 9037 -1 -9038 9038 4 -9039 9038 -1 -9138 9038 -1 -9039 9039 4 -9040 9039 -1 -9139 9039 -1 -9040 9040 4 -9041 9040 -1 -9140 9040 -1 -9041 9041 4 -9042 9041 -1 -9141 9041 -1 -9042 9042 4 -9043 9042 -1 -9142 9042 -1 -9043 9043 4 -9044 9043 -1 -9143 9043 -1 -9044 9044 4 -9045 9044 -1 -9144 9044 -1 -9045 9045 4 -9046 9045 -1 -9145 9045 -1 -9046 9046 4 -9047 9046 -1 -9146 9046 -1 -9047 9047 4 -9048 9047 -1 -9147 9047 -1 -9048 9048 4 -9049 9048 -1 -9148 9048 -1 -9049 9049 4 -9050 9049 -1 -9149 9049 -1 -9050 9050 4 -9051 9050 -1 -9150 9050 -1 -9051 9051 4 -9052 9051 -1 -9151 9051 -1 -9052 9052 4 -9053 9052 -1 -9152 9052 -1 -9053 9053 4 -9054 9053 -1 -9153 9053 -1 -9054 9054 4 -9055 9054 -1 -9154 9054 -1 -9055 9055 4 -9056 9055 -1 -9155 9055 -1 -9056 9056 4 -9057 9056 -1 -9156 9056 -1 -9057 9057 4 -9058 9057 -1 -9157 9057 -1 -9058 9058 4 -9059 9058 -1 -9158 9058 -1 -9059 9059 4 -9060 9059 -1 -9159 9059 -1 -9060 9060 4 -9061 9060 -1 -9160 9060 -1 -9061 9061 4 -9062 9061 -1 -9161 9061 -1 -9062 9062 4 -9063 9062 -1 -9162 9062 -1 -9063 9063 4 -9064 9063 -1 -9163 9063 -1 -9064 9064 4 -9065 9064 -1 -9164 9064 -1 -9065 9065 4 -9066 9065 -1 -9165 9065 -1 -9066 9066 4 -9067 9066 -1 -9166 9066 -1 -9067 9067 4 -9068 9067 -1 -9167 9067 -1 -9068 9068 4 -9069 9068 -1 -9168 9068 -1 -9069 9069 4 -9070 9069 -1 -9169 9069 -1 -9070 9070 4 -9071 9070 -1 -9170 9070 -1 -9071 9071 4 -9072 9071 -1 -9171 9071 -1 -9072 9072 4 -9073 9072 -1 -9172 9072 -1 -9073 9073 4 -9074 9073 -1 -9173 9073 -1 -9074 9074 4 -9075 9074 -1 -9174 9074 -1 -9075 9075 4 -9076 9075 -1 -9175 9075 -1 -9076 9076 4 -9077 9076 -1 -9176 9076 -1 -9077 9077 4 -9078 9077 -1 -9177 9077 -1 -9078 9078 4 -9079 9078 -1 -9178 9078 -1 -9079 9079 4 -9080 9079 -1 -9179 9079 -1 -9080 9080 4 -9081 9080 -1 -9180 9080 -1 -9081 9081 4 -9082 9081 -1 -9181 9081 -1 -9082 9082 4 -9083 9082 -1 -9182 9082 -1 -9083 9083 4 -9084 9083 -1 -9183 9083 -1 -9084 9084 4 -9085 9084 -1 -9184 9084 -1 -9085 9085 4 -9086 9085 -1 -9185 9085 -1 -9086 9086 4 -9087 9086 -1 -9186 9086 -1 -9087 9087 4 -9088 9087 -1 -9187 9087 -1 -9088 9088 4 -9089 9088 -1 -9188 9088 -1 -9089 9089 4 -9090 9089 -1 -9189 9089 -1 -9090 9090 4 -9091 9090 -1 -9190 9090 -1 -9091 9091 4 -9092 9091 -1 -9191 9091 -1 -9092 9092 4 -9093 9092 -1 -9192 9092 -1 -9093 9093 4 -9094 9093 -1 -9193 9093 -1 -9094 9094 4 -9095 9094 -1 -9194 9094 -1 -9095 9095 4 -9096 9095 -1 -9195 9095 -1 -9096 9096 4 -9097 9096 -1 -9196 9096 -1 -9097 9097 4 -9098 9097 -1 -9197 9097 -1 -9098 9098 4 -9099 9098 -1 -9198 9098 -1 -9099 9099 4 -9100 9099 -1 -9199 9099 -1 -9100 9100 4 -9200 9100 -1 -9101 9101 4 -9102 9101 -1 -9201 9101 -1 -9102 9102 4 -9103 9102 -1 -9202 9102 -1 -9103 9103 4 -9104 9103 -1 -9203 9103 -1 -9104 9104 4 -9105 9104 -1 -9204 9104 -1 -9105 9105 4 -9106 9105 -1 -9205 9105 -1 -9106 9106 4 -9107 9106 -1 -9206 9106 -1 -9107 9107 4 -9108 9107 -1 -9207 9107 -1 -9108 9108 4 -9109 9108 -1 -9208 9108 -1 -9109 9109 4 -9110 9109 -1 -9209 9109 -1 -9110 9110 4 -9111 9110 -1 -9210 9110 -1 -9111 9111 4 -9112 9111 -1 -9211 9111 -1 -9112 9112 4 -9113 9112 -1 -9212 9112 -1 -9113 9113 4 -9114 9113 -1 -9213 9113 -1 -9114 9114 4 -9115 9114 -1 -9214 9114 -1 -9115 9115 4 -9116 9115 -1 -9215 9115 -1 -9116 9116 4 -9117 9116 -1 -9216 9116 -1 -9117 9117 4 -9118 9117 -1 -9217 9117 -1 -9118 9118 4 -9119 9118 -1 -9218 9118 -1 -9119 9119 4 -9120 9119 -1 -9219 9119 -1 -9120 9120 4 -9121 9120 -1 -9220 9120 -1 -9121 9121 4 -9122 9121 -1 -9221 9121 -1 -9122 9122 4 -9123 9122 -1 -9222 9122 -1 -9123 9123 4 -9124 9123 -1 -9223 9123 -1 -9124 9124 4 -9125 9124 -1 -9224 9124 -1 -9125 9125 4 -9126 9125 -1 -9225 9125 -1 -9126 9126 4 -9127 9126 -1 -9226 9126 -1 -9127 9127 4 -9128 9127 -1 -9227 9127 -1 -9128 9128 4 -9129 9128 -1 -9228 9128 -1 -9129 9129 4 -9130 9129 -1 -9229 9129 -1 -9130 9130 4 -9131 9130 -1 -9230 9130 -1 -9131 9131 4 -9132 9131 -1 -9231 9131 -1 -9132 9132 4 -9133 9132 -1 -9232 9132 -1 -9133 9133 4 -9134 9133 -1 -9233 9133 -1 -9134 9134 4 -9135 9134 -1 -9234 9134 -1 -9135 9135 4 -9136 9135 -1 -9235 9135 -1 -9136 9136 4 -9137 9136 -1 -9236 9136 -1 -9137 9137 4 -9138 9137 -1 -9237 9137 -1 -9138 9138 4 -9139 9138 -1 -9238 9138 -1 -9139 9139 4 -9140 9139 -1 -9239 9139 -1 -9140 9140 4 -9141 9140 -1 -9240 9140 -1 -9141 9141 4 -9142 9141 -1 -9241 9141 -1 -9142 9142 4 -9143 9142 -1 -9242 9142 -1 -9143 9143 4 -9144 9143 -1 -9243 9143 -1 -9144 9144 4 -9145 9144 -1 -9244 9144 -1 -9145 9145 4 -9146 9145 -1 -9245 9145 -1 -9146 9146 4 -9147 9146 -1 -9246 9146 -1 -9147 9147 4 -9148 9147 -1 -9247 9147 -1 -9148 9148 4 -9149 9148 -1 -9248 9148 -1 -9149 9149 4 -9150 9149 -1 -9249 9149 -1 -9150 9150 4 -9151 9150 -1 -9250 9150 -1 -9151 9151 4 -9152 9151 -1 -9251 9151 -1 -9152 9152 4 -9153 9152 -1 -9252 9152 -1 -9153 9153 4 -9154 9153 -1 -9253 9153 -1 -9154 9154 4 -9155 9154 -1 -9254 9154 -1 -9155 9155 4 -9156 9155 -1 -9255 9155 -1 -9156 9156 4 -9157 9156 -1 -9256 9156 -1 -9157 9157 4 -9158 9157 -1 -9257 9157 -1 -9158 9158 4 -9159 9158 -1 -9258 9158 -1 -9159 9159 4 -9160 9159 -1 -9259 9159 -1 -9160 9160 4 -9161 9160 -1 -9260 9160 -1 -9161 9161 4 -9162 9161 -1 -9261 9161 -1 -9162 9162 4 -9163 9162 -1 -9262 9162 -1 -9163 9163 4 -9164 9163 -1 -9263 9163 -1 -9164 9164 4 -9165 9164 -1 -9264 9164 -1 -9165 9165 4 -9166 9165 -1 -9265 9165 -1 -9166 9166 4 -9167 9166 -1 -9266 9166 -1 -9167 9167 4 -9168 9167 -1 -9267 9167 -1 -9168 9168 4 -9169 9168 -1 -9268 9168 -1 -9169 9169 4 -9170 9169 -1 -9269 9169 -1 -9170 9170 4 -9171 9170 -1 -9270 9170 -1 -9171 9171 4 -9172 9171 -1 -9271 9171 -1 -9172 9172 4 -9173 9172 -1 -9272 9172 -1 -9173 9173 4 -9174 9173 -1 -9273 9173 -1 -9174 9174 4 -9175 9174 -1 -9274 9174 -1 -9175 9175 4 -9176 9175 -1 -9275 9175 -1 -9176 9176 4 -9177 9176 -1 -9276 9176 -1 -9177 9177 4 -9178 9177 -1 -9277 9177 -1 -9178 9178 4 -9179 9178 -1 -9278 9178 -1 -9179 9179 4 -9180 9179 -1 -9279 9179 -1 -9180 9180 4 -9181 9180 -1 -9280 9180 -1 -9181 9181 4 -9182 9181 -1 -9281 9181 -1 -9182 9182 4 -9183 9182 -1 -9282 9182 -1 -9183 9183 4 -9184 9183 -1 -9283 9183 -1 -9184 9184 4 -9185 9184 -1 -9284 9184 -1 -9185 9185 4 -9186 9185 -1 -9285 9185 -1 -9186 9186 4 -9187 9186 -1 -9286 9186 -1 -9187 9187 4 -9188 9187 -1 -9287 9187 -1 -9188 9188 4 -9189 9188 -1 -9288 9188 -1 -9189 9189 4 -9190 9189 -1 -9289 9189 -1 -9190 9190 4 -9191 9190 -1 -9290 9190 -1 -9191 9191 4 -9192 9191 -1 -9291 9191 -1 -9192 9192 4 -9193 9192 -1 -9292 9192 -1 -9193 9193 4 -9194 9193 -1 -9293 9193 -1 -9194 9194 4 -9195 9194 -1 -9294 9194 -1 -9195 9195 4 -9196 9195 -1 -9295 9195 -1 -9196 9196 4 -9197 9196 -1 -9296 9196 -1 -9197 9197 4 -9198 9197 -1 -9297 9197 -1 -9198 9198 4 -9199 9198 -1 -9298 9198 -1 -9199 9199 4 -9200 9199 -1 -9299 9199 -1 -9200 9200 4 -9300 9200 -1 -9201 9201 4 -9202 9201 -1 -9301 9201 -1 -9202 9202 4 -9203 9202 -1 -9302 9202 -1 -9203 9203 4 -9204 9203 -1 -9303 9203 -1 -9204 9204 4 -9205 9204 -1 -9304 9204 -1 -9205 9205 4 -9206 9205 -1 -9305 9205 -1 -9206 9206 4 -9207 9206 -1 -9306 9206 -1 -9207 9207 4 -9208 9207 -1 -9307 9207 -1 -9208 9208 4 -9209 9208 -1 -9308 9208 -1 -9209 9209 4 -9210 9209 -1 -9309 9209 -1 -9210 9210 4 -9211 9210 -1 -9310 9210 -1 -9211 9211 4 -9212 9211 -1 -9311 9211 -1 -9212 9212 4 -9213 9212 -1 -9312 9212 -1 -9213 9213 4 -9214 9213 -1 -9313 9213 -1 -9214 9214 4 -9215 9214 -1 -9314 9214 -1 -9215 9215 4 -9216 9215 -1 -9315 9215 -1 -9216 9216 4 -9217 9216 -1 -9316 9216 -1 -9217 9217 4 -9218 9217 -1 -9317 9217 -1 -9218 9218 4 -9219 9218 -1 -9318 9218 -1 -9219 9219 4 -9220 9219 -1 -9319 9219 -1 -9220 9220 4 -9221 9220 -1 -9320 9220 -1 -9221 9221 4 -9222 9221 -1 -9321 9221 -1 -9222 9222 4 -9223 9222 -1 -9322 9222 -1 -9223 9223 4 -9224 9223 -1 -9323 9223 -1 -9224 9224 4 -9225 9224 -1 -9324 9224 -1 -9225 9225 4 -9226 9225 -1 -9325 9225 -1 -9226 9226 4 -9227 9226 -1 -9326 9226 -1 -9227 9227 4 -9228 9227 -1 -9327 9227 -1 -9228 9228 4 -9229 9228 -1 -9328 9228 -1 -9229 9229 4 -9230 9229 -1 -9329 9229 -1 -9230 9230 4 -9231 9230 -1 -9330 9230 -1 -9231 9231 4 -9232 9231 -1 -9331 9231 -1 -9232 9232 4 -9233 9232 -1 -9332 9232 -1 -9233 9233 4 -9234 9233 -1 -9333 9233 -1 -9234 9234 4 -9235 9234 -1 -9334 9234 -1 -9235 9235 4 -9236 9235 -1 -9335 9235 -1 -9236 9236 4 -9237 9236 -1 -9336 9236 -1 -9237 9237 4 -9238 9237 -1 -9337 9237 -1 -9238 9238 4 -9239 9238 -1 -9338 9238 -1 -9239 9239 4 -9240 9239 -1 -9339 9239 -1 -9240 9240 4 -9241 9240 -1 -9340 9240 -1 -9241 9241 4 -9242 9241 -1 -9341 9241 -1 -9242 9242 4 -9243 9242 -1 -9342 9242 -1 -9243 9243 4 -9244 9243 -1 -9343 9243 -1 -9244 9244 4 -9245 9244 -1 -9344 9244 -1 -9245 9245 4 -9246 9245 -1 -9345 9245 -1 -9246 9246 4 -9247 9246 -1 -9346 9246 -1 -9247 9247 4 -9248 9247 -1 -9347 9247 -1 -9248 9248 4 -9249 9248 -1 -9348 9248 -1 -9249 9249 4 -9250 9249 -1 -9349 9249 -1 -9250 9250 4 -9251 9250 -1 -9350 9250 -1 -9251 9251 4 -9252 9251 -1 -9351 9251 -1 -9252 9252 4 -9253 9252 -1 -9352 9252 -1 -9253 9253 4 -9254 9253 -1 -9353 9253 -1 -9254 9254 4 -9255 9254 -1 -9354 9254 -1 -9255 9255 4 -9256 9255 -1 -9355 9255 -1 -9256 9256 4 -9257 9256 -1 -9356 9256 -1 -9257 9257 4 -9258 9257 -1 -9357 9257 -1 -9258 9258 4 -9259 9258 -1 -9358 9258 -1 -9259 9259 4 -9260 9259 -1 -9359 9259 -1 -9260 9260 4 -9261 9260 -1 -9360 9260 -1 -9261 9261 4 -9262 9261 -1 -9361 9261 -1 -9262 9262 4 -9263 9262 -1 -9362 9262 -1 -9263 9263 4 -9264 9263 -1 -9363 9263 -1 -9264 9264 4 -9265 9264 -1 -9364 9264 -1 -9265 9265 4 -9266 9265 -1 -9365 9265 -1 -9266 9266 4 -9267 9266 -1 -9366 9266 -1 -9267 9267 4 -9268 9267 -1 -9367 9267 -1 -9268 9268 4 -9269 9268 -1 -9368 9268 -1 -9269 9269 4 -9270 9269 -1 -9369 9269 -1 -9270 9270 4 -9271 9270 -1 -9370 9270 -1 -9271 9271 4 -9272 9271 -1 -9371 9271 -1 -9272 9272 4 -9273 9272 -1 -9372 9272 -1 -9273 9273 4 -9274 9273 -1 -9373 9273 -1 -9274 9274 4 -9275 9274 -1 -9374 9274 -1 -9275 9275 4 -9276 9275 -1 -9375 9275 -1 -9276 9276 4 -9277 9276 -1 -9376 9276 -1 -9277 9277 4 -9278 9277 -1 -9377 9277 -1 -9278 9278 4 -9279 9278 -1 -9378 9278 -1 -9279 9279 4 -9280 9279 -1 -9379 9279 -1 -9280 9280 4 -9281 9280 -1 -9380 9280 -1 -9281 9281 4 -9282 9281 -1 -9381 9281 -1 -9282 9282 4 -9283 9282 -1 -9382 9282 -1 -9283 9283 4 -9284 9283 -1 -9383 9283 -1 -9284 9284 4 -9285 9284 -1 -9384 9284 -1 -9285 9285 4 -9286 9285 -1 -9385 9285 -1 -9286 9286 4 -9287 9286 -1 -9386 9286 -1 -9287 9287 4 -9288 9287 -1 -9387 9287 -1 -9288 9288 4 -9289 9288 -1 -9388 9288 -1 -9289 9289 4 -9290 9289 -1 -9389 9289 -1 -9290 9290 4 -9291 9290 -1 -9390 9290 -1 -9291 9291 4 -9292 9291 -1 -9391 9291 -1 -9292 9292 4 -9293 9292 -1 -9392 9292 -1 -9293 9293 4 -9294 9293 -1 -9393 9293 -1 -9294 9294 4 -9295 9294 -1 -9394 9294 -1 -9295 9295 4 -9296 9295 -1 -9395 9295 -1 -9296 9296 4 -9297 9296 -1 -9396 9296 -1 -9297 9297 4 -9298 9297 -1 -9397 9297 -1 -9298 9298 4 -9299 9298 -1 -9398 9298 -1 -9299 9299 4 -9300 9299 -1 -9399 9299 -1 -9300 9300 4 -9400 9300 -1 -9301 9301 4 -9302 9301 -1 -9401 9301 -1 -9302 9302 4 -9303 9302 -1 -9402 9302 -1 -9303 9303 4 -9304 9303 -1 -9403 9303 -1 -9304 9304 4 -9305 9304 -1 -9404 9304 -1 -9305 9305 4 -9306 9305 -1 -9405 9305 -1 -9306 9306 4 -9307 9306 -1 -9406 9306 -1 -9307 9307 4 -9308 9307 -1 -9407 9307 -1 -9308 9308 4 -9309 9308 -1 -9408 9308 -1 -9309 9309 4 -9310 9309 -1 -9409 9309 -1 -9310 9310 4 -9311 9310 -1 -9410 9310 -1 -9311 9311 4 -9312 9311 -1 -9411 9311 -1 -9312 9312 4 -9313 9312 -1 -9412 9312 -1 -9313 9313 4 -9314 9313 -1 -9413 9313 -1 -9314 9314 4 -9315 9314 -1 -9414 9314 -1 -9315 9315 4 -9316 9315 -1 -9415 9315 -1 -9316 9316 4 -9317 9316 -1 -9416 9316 -1 -9317 9317 4 -9318 9317 -1 -9417 9317 -1 -9318 9318 4 -9319 9318 -1 -9418 9318 -1 -9319 9319 4 -9320 9319 -1 -9419 9319 -1 -9320 9320 4 -9321 9320 -1 -9420 9320 -1 -9321 9321 4 -9322 9321 -1 -9421 9321 -1 -9322 9322 4 -9323 9322 -1 -9422 9322 -1 -9323 9323 4 -9324 9323 -1 -9423 9323 -1 -9324 9324 4 -9325 9324 -1 -9424 9324 -1 -9325 9325 4 -9326 9325 -1 -9425 9325 -1 -9326 9326 4 -9327 9326 -1 -9426 9326 -1 -9327 9327 4 -9328 9327 -1 -9427 9327 -1 -9328 9328 4 -9329 9328 -1 -9428 9328 -1 -9329 9329 4 -9330 9329 -1 -9429 9329 -1 -9330 9330 4 -9331 9330 -1 -9430 9330 -1 -9331 9331 4 -9332 9331 -1 -9431 9331 -1 -9332 9332 4 -9333 9332 -1 -9432 9332 -1 -9333 9333 4 -9334 9333 -1 -9433 9333 -1 -9334 9334 4 -9335 9334 -1 -9434 9334 -1 -9335 9335 4 -9336 9335 -1 -9435 9335 -1 -9336 9336 4 -9337 9336 -1 -9436 9336 -1 -9337 9337 4 -9338 9337 -1 -9437 9337 -1 -9338 9338 4 -9339 9338 -1 -9438 9338 -1 -9339 9339 4 -9340 9339 -1 -9439 9339 -1 -9340 9340 4 -9341 9340 -1 -9440 9340 -1 -9341 9341 4 -9342 9341 -1 -9441 9341 -1 -9342 9342 4 -9343 9342 -1 -9442 9342 -1 -9343 9343 4 -9344 9343 -1 -9443 9343 -1 -9344 9344 4 -9345 9344 -1 -9444 9344 -1 -9345 9345 4 -9346 9345 -1 -9445 9345 -1 -9346 9346 4 -9347 9346 -1 -9446 9346 -1 -9347 9347 4 -9348 9347 -1 -9447 9347 -1 -9348 9348 4 -9349 9348 -1 -9448 9348 -1 -9349 9349 4 -9350 9349 -1 -9449 9349 -1 -9350 9350 4 -9351 9350 -1 -9450 9350 -1 -9351 9351 4 -9352 9351 -1 -9451 9351 -1 -9352 9352 4 -9353 9352 -1 -9452 9352 -1 -9353 9353 4 -9354 9353 -1 -9453 9353 -1 -9354 9354 4 -9355 9354 -1 -9454 9354 -1 -9355 9355 4 -9356 9355 -1 -9455 9355 -1 -9356 9356 4 -9357 9356 -1 -9456 9356 -1 -9357 9357 4 -9358 9357 -1 -9457 9357 -1 -9358 9358 4 -9359 9358 -1 -9458 9358 -1 -9359 9359 4 -9360 9359 -1 -9459 9359 -1 -9360 9360 4 -9361 9360 -1 -9460 9360 -1 -9361 9361 4 -9362 9361 -1 -9461 9361 -1 -9362 9362 4 -9363 9362 -1 -9462 9362 -1 -9363 9363 4 -9364 9363 -1 -9463 9363 -1 -9364 9364 4 -9365 9364 -1 -9464 9364 -1 -9365 9365 4 -9366 9365 -1 -9465 9365 -1 -9366 9366 4 -9367 9366 -1 -9466 9366 -1 -9367 9367 4 -9368 9367 -1 -9467 9367 -1 -9368 9368 4 -9369 9368 -1 -9468 9368 -1 -9369 9369 4 -9370 9369 -1 -9469 9369 -1 -9370 9370 4 -9371 9370 -1 -9470 9370 -1 -9371 9371 4 -9372 9371 -1 -9471 9371 -1 -9372 9372 4 -9373 9372 -1 -9472 9372 -1 -9373 9373 4 -9374 9373 -1 -9473 9373 -1 -9374 9374 4 -9375 9374 -1 -9474 9374 -1 -9375 9375 4 -9376 9375 -1 -9475 9375 -1 -9376 9376 4 -9377 9376 -1 -9476 9376 -1 -9377 9377 4 -9378 9377 -1 -9477 9377 -1 -9378 9378 4 -9379 9378 -1 -9478 9378 -1 -9379 9379 4 -9380 9379 -1 -9479 9379 -1 -9380 9380 4 -9381 9380 -1 -9480 9380 -1 -9381 9381 4 -9382 9381 -1 -9481 9381 -1 -9382 9382 4 -9383 9382 -1 -9482 9382 -1 -9383 9383 4 -9384 9383 -1 -9483 9383 -1 -9384 9384 4 -9385 9384 -1 -9484 9384 -1 -9385 9385 4 -9386 9385 -1 -9485 9385 -1 -9386 9386 4 -9387 9386 -1 -9486 9386 -1 -9387 9387 4 -9388 9387 -1 -9487 9387 -1 -9388 9388 4 -9389 9388 -1 -9488 9388 -1 -9389 9389 4 -9390 9389 -1 -9489 9389 -1 -9390 9390 4 -9391 9390 -1 -9490 9390 -1 -9391 9391 4 -9392 9391 -1 -9491 9391 -1 -9392 9392 4 -9393 9392 -1 -9492 9392 -1 -9393 9393 4 -9394 9393 -1 -9493 9393 -1 -9394 9394 4 -9395 9394 -1 -9494 9394 -1 -9395 9395 4 -9396 9395 -1 -9495 9395 -1 -9396 9396 4 -9397 9396 -1 -9496 9396 -1 -9397 9397 4 -9398 9397 -1 -9497 9397 -1 -9398 9398 4 -9399 9398 -1 -9498 9398 -1 -9399 9399 4 -9400 9399 -1 -9499 9399 -1 -9400 9400 4 -9500 9400 -1 -9401 9401 4 -9402 9401 -1 -9501 9401 -1 -9402 9402 4 -9403 9402 -1 -9502 9402 -1 -9403 9403 4 -9404 9403 -1 -9503 9403 -1 -9404 9404 4 -9405 9404 -1 -9504 9404 -1 -9405 9405 4 -9406 9405 -1 -9505 9405 -1 -9406 9406 4 -9407 9406 -1 -9506 9406 -1 -9407 9407 4 -9408 9407 -1 -9507 9407 -1 -9408 9408 4 -9409 9408 -1 -9508 9408 -1 -9409 9409 4 -9410 9409 -1 -9509 9409 -1 -9410 9410 4 -9411 9410 -1 -9510 9410 -1 -9411 9411 4 -9412 9411 -1 -9511 9411 -1 -9412 9412 4 -9413 9412 -1 -9512 9412 -1 -9413 9413 4 -9414 9413 -1 -9513 9413 -1 -9414 9414 4 -9415 9414 -1 -9514 9414 -1 -9415 9415 4 -9416 9415 -1 -9515 9415 -1 -9416 9416 4 -9417 9416 -1 -9516 9416 -1 -9417 9417 4 -9418 9417 -1 -9517 9417 -1 -9418 9418 4 -9419 9418 -1 -9518 9418 -1 -9419 9419 4 -9420 9419 -1 -9519 9419 -1 -9420 9420 4 -9421 9420 -1 -9520 9420 -1 -9421 9421 4 -9422 9421 -1 -9521 9421 -1 -9422 9422 4 -9423 9422 -1 -9522 9422 -1 -9423 9423 4 -9424 9423 -1 -9523 9423 -1 -9424 9424 4 -9425 9424 -1 -9524 9424 -1 -9425 9425 4 -9426 9425 -1 -9525 9425 -1 -9426 9426 4 -9427 9426 -1 -9526 9426 -1 -9427 9427 4 -9428 9427 -1 -9527 9427 -1 -9428 9428 4 -9429 9428 -1 -9528 9428 -1 -9429 9429 4 -9430 9429 -1 -9529 9429 -1 -9430 9430 4 -9431 9430 -1 -9530 9430 -1 -9431 9431 4 -9432 9431 -1 -9531 9431 -1 -9432 9432 4 -9433 9432 -1 -9532 9432 -1 -9433 9433 4 -9434 9433 -1 -9533 9433 -1 -9434 9434 4 -9435 9434 -1 -9534 9434 -1 -9435 9435 4 -9436 9435 -1 -9535 9435 -1 -9436 9436 4 -9437 9436 -1 -9536 9436 -1 -9437 9437 4 -9438 9437 -1 -9537 9437 -1 -9438 9438 4 -9439 9438 -1 -9538 9438 -1 -9439 9439 4 -9440 9439 -1 -9539 9439 -1 -9440 9440 4 -9441 9440 -1 -9540 9440 -1 -9441 9441 4 -9442 9441 -1 -9541 9441 -1 -9442 9442 4 -9443 9442 -1 -9542 9442 -1 -9443 9443 4 -9444 9443 -1 -9543 9443 -1 -9444 9444 4 -9445 9444 -1 -9544 9444 -1 -9445 9445 4 -9446 9445 -1 -9545 9445 -1 -9446 9446 4 -9447 9446 -1 -9546 9446 -1 -9447 9447 4 -9448 9447 -1 -9547 9447 -1 -9448 9448 4 -9449 9448 -1 -9548 9448 -1 -9449 9449 4 -9450 9449 -1 -9549 9449 -1 -9450 9450 4 -9451 9450 -1 -9550 9450 -1 -9451 9451 4 -9452 9451 -1 -9551 9451 -1 -9452 9452 4 -9453 9452 -1 -9552 9452 -1 -9453 9453 4 -9454 9453 -1 -9553 9453 -1 -9454 9454 4 -9455 9454 -1 -9554 9454 -1 -9455 9455 4 -9456 9455 -1 -9555 9455 -1 -9456 9456 4 -9457 9456 -1 -9556 9456 -1 -9457 9457 4 -9458 9457 -1 -9557 9457 -1 -9458 9458 4 -9459 9458 -1 -9558 9458 -1 -9459 9459 4 -9460 9459 -1 -9559 9459 -1 -9460 9460 4 -9461 9460 -1 -9560 9460 -1 -9461 9461 4 -9462 9461 -1 -9561 9461 -1 -9462 9462 4 -9463 9462 -1 -9562 9462 -1 -9463 9463 4 -9464 9463 -1 -9563 9463 -1 -9464 9464 4 -9465 9464 -1 -9564 9464 -1 -9465 9465 4 -9466 9465 -1 -9565 9465 -1 -9466 9466 4 -9467 9466 -1 -9566 9466 -1 -9467 9467 4 -9468 9467 -1 -9567 9467 -1 -9468 9468 4 -9469 9468 -1 -9568 9468 -1 -9469 9469 4 -9470 9469 -1 -9569 9469 -1 -9470 9470 4 -9471 9470 -1 -9570 9470 -1 -9471 9471 4 -9472 9471 -1 -9571 9471 -1 -9472 9472 4 -9473 9472 -1 -9572 9472 -1 -9473 9473 4 -9474 9473 -1 -9573 9473 -1 -9474 9474 4 -9475 9474 -1 -9574 9474 -1 -9475 9475 4 -9476 9475 -1 -9575 9475 -1 -9476 9476 4 -9477 9476 -1 -9576 9476 -1 -9477 9477 4 -9478 9477 -1 -9577 9477 -1 -9478 9478 4 -9479 9478 -1 -9578 9478 -1 -9479 9479 4 -9480 9479 -1 -9579 9479 -1 -9480 9480 4 -9481 9480 -1 -9580 9480 -1 -9481 9481 4 -9482 9481 -1 -9581 9481 -1 -9482 9482 4 -9483 9482 -1 -9582 9482 -1 -9483 9483 4 -9484 9483 -1 -9583 9483 -1 -9484 9484 4 -9485 9484 -1 -9584 9484 -1 -9485 9485 4 -9486 9485 -1 -9585 9485 -1 -9486 9486 4 -9487 9486 -1 -9586 9486 -1 -9487 9487 4 -9488 9487 -1 -9587 9487 -1 -9488 9488 4 -9489 9488 -1 -9588 9488 -1 -9489 9489 4 -9490 9489 -1 -9589 9489 -1 -9490 9490 4 -9491 9490 -1 -9590 9490 -1 -9491 9491 4 -9492 9491 -1 -9591 9491 -1 -9492 9492 4 -9493 9492 -1 -9592 9492 -1 -9493 9493 4 -9494 9493 -1 -9593 9493 -1 -9494 9494 4 -9495 9494 -1 -9594 9494 -1 -9495 9495 4 -9496 9495 -1 -9595 9495 -1 -9496 9496 4 -9497 9496 -1 -9596 9496 -1 -9497 9497 4 -9498 9497 -1 -9597 9497 -1 -9498 9498 4 -9499 9498 -1 -9598 9498 -1 -9499 9499 4 -9500 9499 -1 -9599 9499 -1 -9500 9500 4 -9600 9500 -1 -9501 9501 4 -9502 9501 -1 -9601 9501 -1 -9502 9502 4 -9503 9502 -1 -9602 9502 -1 -9503 9503 4 -9504 9503 -1 -9603 9503 -1 -9504 9504 4 -9505 9504 -1 -9604 9504 -1 -9505 9505 4 -9506 9505 -1 -9605 9505 -1 -9506 9506 4 -9507 9506 -1 -9606 9506 -1 -9507 9507 4 -9508 9507 -1 -9607 9507 -1 -9508 9508 4 -9509 9508 -1 -9608 9508 -1 -9509 9509 4 -9510 9509 -1 -9609 9509 -1 -9510 9510 4 -9511 9510 -1 -9610 9510 -1 -9511 9511 4 -9512 9511 -1 -9611 9511 -1 -9512 9512 4 -9513 9512 -1 -9612 9512 -1 -9513 9513 4 -9514 9513 -1 -9613 9513 -1 -9514 9514 4 -9515 9514 -1 -9614 9514 -1 -9515 9515 4 -9516 9515 -1 -9615 9515 -1 -9516 9516 4 -9517 9516 -1 -9616 9516 -1 -9517 9517 4 -9518 9517 -1 -9617 9517 -1 -9518 9518 4 -9519 9518 -1 -9618 9518 -1 -9519 9519 4 -9520 9519 -1 -9619 9519 -1 -9520 9520 4 -9521 9520 -1 -9620 9520 -1 -9521 9521 4 -9522 9521 -1 -9621 9521 -1 -9522 9522 4 -9523 9522 -1 -9622 9522 -1 -9523 9523 4 -9524 9523 -1 -9623 9523 -1 -9524 9524 4 -9525 9524 -1 -9624 9524 -1 -9525 9525 4 -9526 9525 -1 -9625 9525 -1 -9526 9526 4 -9527 9526 -1 -9626 9526 -1 -9527 9527 4 -9528 9527 -1 -9627 9527 -1 -9528 9528 4 -9529 9528 -1 -9628 9528 -1 -9529 9529 4 -9530 9529 -1 -9629 9529 -1 -9530 9530 4 -9531 9530 -1 -9630 9530 -1 -9531 9531 4 -9532 9531 -1 -9631 9531 -1 -9532 9532 4 -9533 9532 -1 -9632 9532 -1 -9533 9533 4 -9534 9533 -1 -9633 9533 -1 -9534 9534 4 -9535 9534 -1 -9634 9534 -1 -9535 9535 4 -9536 9535 -1 -9635 9535 -1 -9536 9536 4 -9537 9536 -1 -9636 9536 -1 -9537 9537 4 -9538 9537 -1 -9637 9537 -1 -9538 9538 4 -9539 9538 -1 -9638 9538 -1 -9539 9539 4 -9540 9539 -1 -9639 9539 -1 -9540 9540 4 -9541 9540 -1 -9640 9540 -1 -9541 9541 4 -9542 9541 -1 -9641 9541 -1 -9542 9542 4 -9543 9542 -1 -9642 9542 -1 -9543 9543 4 -9544 9543 -1 -9643 9543 -1 -9544 9544 4 -9545 9544 -1 -9644 9544 -1 -9545 9545 4 -9546 9545 -1 -9645 9545 -1 -9546 9546 4 -9547 9546 -1 -9646 9546 -1 -9547 9547 4 -9548 9547 -1 -9647 9547 -1 -9548 9548 4 -9549 9548 -1 -9648 9548 -1 -9549 9549 4 -9550 9549 -1 -9649 9549 -1 -9550 9550 4 -9551 9550 -1 -9650 9550 -1 -9551 9551 4 -9552 9551 -1 -9651 9551 -1 -9552 9552 4 -9553 9552 -1 -9652 9552 -1 -9553 9553 4 -9554 9553 -1 -9653 9553 -1 -9554 9554 4 -9555 9554 -1 -9654 9554 -1 -9555 9555 4 -9556 9555 -1 -9655 9555 -1 -9556 9556 4 -9557 9556 -1 -9656 9556 -1 -9557 9557 4 -9558 9557 -1 -9657 9557 -1 -9558 9558 4 -9559 9558 -1 -9658 9558 -1 -9559 9559 4 -9560 9559 -1 -9659 9559 -1 -9560 9560 4 -9561 9560 -1 -9660 9560 -1 -9561 9561 4 -9562 9561 -1 -9661 9561 -1 -9562 9562 4 -9563 9562 -1 -9662 9562 -1 -9563 9563 4 -9564 9563 -1 -9663 9563 -1 -9564 9564 4 -9565 9564 -1 -9664 9564 -1 -9565 9565 4 -9566 9565 -1 -9665 9565 -1 -9566 9566 4 -9567 9566 -1 -9666 9566 -1 -9567 9567 4 -9568 9567 -1 -9667 9567 -1 -9568 9568 4 -9569 9568 -1 -9668 9568 -1 -9569 9569 4 -9570 9569 -1 -9669 9569 -1 -9570 9570 4 -9571 9570 -1 -9670 9570 -1 -9571 9571 4 -9572 9571 -1 -9671 9571 -1 -9572 9572 4 -9573 9572 -1 -9672 9572 -1 -9573 9573 4 -9574 9573 -1 -9673 9573 -1 -9574 9574 4 -9575 9574 -1 -9674 9574 -1 -9575 9575 4 -9576 9575 -1 -9675 9575 -1 -9576 9576 4 -9577 9576 -1 -9676 9576 -1 -9577 9577 4 -9578 9577 -1 -9677 9577 -1 -9578 9578 4 -9579 9578 -1 -9678 9578 -1 -9579 9579 4 -9580 9579 -1 -9679 9579 -1 -9580 9580 4 -9581 9580 -1 -9680 9580 -1 -9581 9581 4 -9582 9581 -1 -9681 9581 -1 -9582 9582 4 -9583 9582 -1 -9682 9582 -1 -9583 9583 4 -9584 9583 -1 -9683 9583 -1 -9584 9584 4 -9585 9584 -1 -9684 9584 -1 -9585 9585 4 -9586 9585 -1 -9685 9585 -1 -9586 9586 4 -9587 9586 -1 -9686 9586 -1 -9587 9587 4 -9588 9587 -1 -9687 9587 -1 -9588 9588 4 -9589 9588 -1 -9688 9588 -1 -9589 9589 4 -9590 9589 -1 -9689 9589 -1 -9590 9590 4 -9591 9590 -1 -9690 9590 -1 -9591 9591 4 -9592 9591 -1 -9691 9591 -1 -9592 9592 4 -9593 9592 -1 -9692 9592 -1 -9593 9593 4 -9594 9593 -1 -9693 9593 -1 -9594 9594 4 -9595 9594 -1 -9694 9594 -1 -9595 9595 4 -9596 9595 -1 -9695 9595 -1 -9596 9596 4 -9597 9596 -1 -9696 9596 -1 -9597 9597 4 -9598 9597 -1 -9697 9597 -1 -9598 9598 4 -9599 9598 -1 -9698 9598 -1 -9599 9599 4 -9600 9599 -1 -9699 9599 -1 -9600 9600 4 -9700 9600 -1 -9601 9601 4 -9602 9601 -1 -9701 9601 -1 -9602 9602 4 -9603 9602 -1 -9702 9602 -1 -9603 9603 4 -9604 9603 -1 -9703 9603 -1 -9604 9604 4 -9605 9604 -1 -9704 9604 -1 -9605 9605 4 -9606 9605 -1 -9705 9605 -1 -9606 9606 4 -9607 9606 -1 -9706 9606 -1 -9607 9607 4 -9608 9607 -1 -9707 9607 -1 -9608 9608 4 -9609 9608 -1 -9708 9608 -1 -9609 9609 4 -9610 9609 -1 -9709 9609 -1 -9610 9610 4 -9611 9610 -1 -9710 9610 -1 -9611 9611 4 -9612 9611 -1 -9711 9611 -1 -9612 9612 4 -9613 9612 -1 -9712 9612 -1 -9613 9613 4 -9614 9613 -1 -9713 9613 -1 -9614 9614 4 -9615 9614 -1 -9714 9614 -1 -9615 9615 4 -9616 9615 -1 -9715 9615 -1 -9616 9616 4 -9617 9616 -1 -9716 9616 -1 -9617 9617 4 -9618 9617 -1 -9717 9617 -1 -9618 9618 4 -9619 9618 -1 -9718 9618 -1 -9619 9619 4 -9620 9619 -1 -9719 9619 -1 -9620 9620 4 -9621 9620 -1 -9720 9620 -1 -9621 9621 4 -9622 9621 -1 -9721 9621 -1 -9622 9622 4 -9623 9622 -1 -9722 9622 -1 -9623 9623 4 -9624 9623 -1 -9723 9623 -1 -9624 9624 4 -9625 9624 -1 -9724 9624 -1 -9625 9625 4 -9626 9625 -1 -9725 9625 -1 -9626 9626 4 -9627 9626 -1 -9726 9626 -1 -9627 9627 4 -9628 9627 -1 -9727 9627 -1 -9628 9628 4 -9629 9628 -1 -9728 9628 -1 -9629 9629 4 -9630 9629 -1 -9729 9629 -1 -9630 9630 4 -9631 9630 -1 -9730 9630 -1 -9631 9631 4 -9632 9631 -1 -9731 9631 -1 -9632 9632 4 -9633 9632 -1 -9732 9632 -1 -9633 9633 4 -9634 9633 -1 -9733 9633 -1 -9634 9634 4 -9635 9634 -1 -9734 9634 -1 -9635 9635 4 -9636 9635 -1 -9735 9635 -1 -9636 9636 4 -9637 9636 -1 -9736 9636 -1 -9637 9637 4 -9638 9637 -1 -9737 9637 -1 -9638 9638 4 -9639 9638 -1 -9738 9638 -1 -9639 9639 4 -9640 9639 -1 -9739 9639 -1 -9640 9640 4 -9641 9640 -1 -9740 9640 -1 -9641 9641 4 -9642 9641 -1 -9741 9641 -1 -9642 9642 4 -9643 9642 -1 -9742 9642 -1 -9643 9643 4 -9644 9643 -1 -9743 9643 -1 -9644 9644 4 -9645 9644 -1 -9744 9644 -1 -9645 9645 4 -9646 9645 -1 -9745 9645 -1 -9646 9646 4 -9647 9646 -1 -9746 9646 -1 -9647 9647 4 -9648 9647 -1 -9747 9647 -1 -9648 9648 4 -9649 9648 -1 -9748 9648 -1 -9649 9649 4 -9650 9649 -1 -9749 9649 -1 -9650 9650 4 -9651 9650 -1 -9750 9650 -1 -9651 9651 4 -9652 9651 -1 -9751 9651 -1 -9652 9652 4 -9653 9652 -1 -9752 9652 -1 -9653 9653 4 -9654 9653 -1 -9753 9653 -1 -9654 9654 4 -9655 9654 -1 -9754 9654 -1 -9655 9655 4 -9656 9655 -1 -9755 9655 -1 -9656 9656 4 -9657 9656 -1 -9756 9656 -1 -9657 9657 4 -9658 9657 -1 -9757 9657 -1 -9658 9658 4 -9659 9658 -1 -9758 9658 -1 -9659 9659 4 -9660 9659 -1 -9759 9659 -1 -9660 9660 4 -9661 9660 -1 -9760 9660 -1 -9661 9661 4 -9662 9661 -1 -9761 9661 -1 -9662 9662 4 -9663 9662 -1 -9762 9662 -1 -9663 9663 4 -9664 9663 -1 -9763 9663 -1 -9664 9664 4 -9665 9664 -1 -9764 9664 -1 -9665 9665 4 -9666 9665 -1 -9765 9665 -1 -9666 9666 4 -9667 9666 -1 -9766 9666 -1 -9667 9667 4 -9668 9667 -1 -9767 9667 -1 -9668 9668 4 -9669 9668 -1 -9768 9668 -1 -9669 9669 4 -9670 9669 -1 -9769 9669 -1 -9670 9670 4 -9671 9670 -1 -9770 9670 -1 -9671 9671 4 -9672 9671 -1 -9771 9671 -1 -9672 9672 4 -9673 9672 -1 -9772 9672 -1 -9673 9673 4 -9674 9673 -1 -9773 9673 -1 -9674 9674 4 -9675 9674 -1 -9774 9674 -1 -9675 9675 4 -9676 9675 -1 -9775 9675 -1 -9676 9676 4 -9677 9676 -1 -9776 9676 -1 -9677 9677 4 -9678 9677 -1 -9777 9677 -1 -9678 9678 4 -9679 9678 -1 -9778 9678 -1 -9679 9679 4 -9680 9679 -1 -9779 9679 -1 -9680 9680 4 -9681 9680 -1 -9780 9680 -1 -9681 9681 4 -9682 9681 -1 -9781 9681 -1 -9682 9682 4 -9683 9682 -1 -9782 9682 -1 -9683 9683 4 -9684 9683 -1 -9783 9683 -1 -9684 9684 4 -9685 9684 -1 -9784 9684 -1 -9685 9685 4 -9686 9685 -1 -9785 9685 -1 -9686 9686 4 -9687 9686 -1 -9786 9686 -1 -9687 9687 4 -9688 9687 -1 -9787 9687 -1 -9688 9688 4 -9689 9688 -1 -9788 9688 -1 -9689 9689 4 -9690 9689 -1 -9789 9689 -1 -9690 9690 4 -9691 9690 -1 -9790 9690 -1 -9691 9691 4 -9692 9691 -1 -9791 9691 -1 -9692 9692 4 -9693 9692 -1 -9792 9692 -1 -9693 9693 4 -9694 9693 -1 -9793 9693 -1 -9694 9694 4 -9695 9694 -1 -9794 9694 -1 -9695 9695 4 -9696 9695 -1 -9795 9695 -1 -9696 9696 4 -9697 9696 -1 -9796 9696 -1 -9697 9697 4 -9698 9697 -1 -9797 9697 -1 -9698 9698 4 -9699 9698 -1 -9798 9698 -1 -9699 9699 4 -9700 9699 -1 -9799 9699 -1 -9700 9700 4 -9800 9700 -1 -9701 9701 4 -9702 9701 -1 -9801 9701 -1 -9702 9702 4 -9703 9702 -1 -9802 9702 -1 -9703 9703 4 -9704 9703 -1 -9803 9703 -1 -9704 9704 4 -9705 9704 -1 -9804 9704 -1 -9705 9705 4 -9706 9705 -1 -9805 9705 -1 -9706 9706 4 -9707 9706 -1 -9806 9706 -1 -9707 9707 4 -9708 9707 -1 -9807 9707 -1 -9708 9708 4 -9709 9708 -1 -9808 9708 -1 -9709 9709 4 -9710 9709 -1 -9809 9709 -1 -9710 9710 4 -9711 9710 -1 -9810 9710 -1 -9711 9711 4 -9712 9711 -1 -9811 9711 -1 -9712 9712 4 -9713 9712 -1 -9812 9712 -1 -9713 9713 4 -9714 9713 -1 -9813 9713 -1 -9714 9714 4 -9715 9714 -1 -9814 9714 -1 -9715 9715 4 -9716 9715 -1 -9815 9715 -1 -9716 9716 4 -9717 9716 -1 -9816 9716 -1 -9717 9717 4 -9718 9717 -1 -9817 9717 -1 -9718 9718 4 -9719 9718 -1 -9818 9718 -1 -9719 9719 4 -9720 9719 -1 -9819 9719 -1 -9720 9720 4 -9721 9720 -1 -9820 9720 -1 -9721 9721 4 -9722 9721 -1 -9821 9721 -1 -9722 9722 4 -9723 9722 -1 -9822 9722 -1 -9723 9723 4 -9724 9723 -1 -9823 9723 -1 -9724 9724 4 -9725 9724 -1 -9824 9724 -1 -9725 9725 4 -9726 9725 -1 -9825 9725 -1 -9726 9726 4 -9727 9726 -1 -9826 9726 -1 -9727 9727 4 -9728 9727 -1 -9827 9727 -1 -9728 9728 4 -9729 9728 -1 -9828 9728 -1 -9729 9729 4 -9730 9729 -1 -9829 9729 -1 -9730 9730 4 -9731 9730 -1 -9830 9730 -1 -9731 9731 4 -9732 9731 -1 -9831 9731 -1 -9732 9732 4 -9733 9732 -1 -9832 9732 -1 -9733 9733 4 -9734 9733 -1 -9833 9733 -1 -9734 9734 4 -9735 9734 -1 -9834 9734 -1 -9735 9735 4 -9736 9735 -1 -9835 9735 -1 -9736 9736 4 -9737 9736 -1 -9836 9736 -1 -9737 9737 4 -9738 9737 -1 -9837 9737 -1 -9738 9738 4 -9739 9738 -1 -9838 9738 -1 -9739 9739 4 -9740 9739 -1 -9839 9739 -1 -9740 9740 4 -9741 9740 -1 -9840 9740 -1 -9741 9741 4 -9742 9741 -1 -9841 9741 -1 -9742 9742 4 -9743 9742 -1 -9842 9742 -1 -9743 9743 4 -9744 9743 -1 -9843 9743 -1 -9744 9744 4 -9745 9744 -1 -9844 9744 -1 -9745 9745 4 -9746 9745 -1 -9845 9745 -1 -9746 9746 4 -9747 9746 -1 -9846 9746 -1 -9747 9747 4 -9748 9747 -1 -9847 9747 -1 -9748 9748 4 -9749 9748 -1 -9848 9748 -1 -9749 9749 4 -9750 9749 -1 -9849 9749 -1 -9750 9750 4 -9751 9750 -1 -9850 9750 -1 -9751 9751 4 -9752 9751 -1 -9851 9751 -1 -9752 9752 4 -9753 9752 -1 -9852 9752 -1 -9753 9753 4 -9754 9753 -1 -9853 9753 -1 -9754 9754 4 -9755 9754 -1 -9854 9754 -1 -9755 9755 4 -9756 9755 -1 -9855 9755 -1 -9756 9756 4 -9757 9756 -1 -9856 9756 -1 -9757 9757 4 -9758 9757 -1 -9857 9757 -1 -9758 9758 4 -9759 9758 -1 -9858 9758 -1 -9759 9759 4 -9760 9759 -1 -9859 9759 -1 -9760 9760 4 -9761 9760 -1 -9860 9760 -1 -9761 9761 4 -9762 9761 -1 -9861 9761 -1 -9762 9762 4 -9763 9762 -1 -9862 9762 -1 -9763 9763 4 -9764 9763 -1 -9863 9763 -1 -9764 9764 4 -9765 9764 -1 -9864 9764 -1 -9765 9765 4 -9766 9765 -1 -9865 9765 -1 -9766 9766 4 -9767 9766 -1 -9866 9766 -1 -9767 9767 4 -9768 9767 -1 -9867 9767 -1 -9768 9768 4 -9769 9768 -1 -9868 9768 -1 -9769 9769 4 -9770 9769 -1 -9869 9769 -1 -9770 9770 4 -9771 9770 -1 -9870 9770 -1 -9771 9771 4 -9772 9771 -1 -9871 9771 -1 -9772 9772 4 -9773 9772 -1 -9872 9772 -1 -9773 9773 4 -9774 9773 -1 -9873 9773 -1 -9774 9774 4 -9775 9774 -1 -9874 9774 -1 -9775 9775 4 -9776 9775 -1 -9875 9775 -1 -9776 9776 4 -9777 9776 -1 -9876 9776 -1 -9777 9777 4 -9778 9777 -1 -9877 9777 -1 -9778 9778 4 -9779 9778 -1 -9878 9778 -1 -9779 9779 4 -9780 9779 -1 -9879 9779 -1 -9780 9780 4 -9781 9780 -1 -9880 9780 -1 -9781 9781 4 -9782 9781 -1 -9881 9781 -1 -9782 9782 4 -9783 9782 -1 -9882 9782 -1 -9783 9783 4 -9784 9783 -1 -9883 9783 -1 -9784 9784 4 -9785 9784 -1 -9884 9784 -1 -9785 9785 4 -9786 9785 -1 -9885 9785 -1 -9786 9786 4 -9787 9786 -1 -9886 9786 -1 -9787 9787 4 -9788 9787 -1 -9887 9787 -1 -9788 9788 4 -9789 9788 -1 -9888 9788 -1 -9789 9789 4 -9790 9789 -1 -9889 9789 -1 -9790 9790 4 -9791 9790 -1 -9890 9790 -1 -9791 9791 4 -9792 9791 -1 -9891 9791 -1 -9792 9792 4 -9793 9792 -1 -9892 9792 -1 -9793 9793 4 -9794 9793 -1 -9893 9793 -1 -9794 9794 4 -9795 9794 -1 -9894 9794 -1 -9795 9795 4 -9796 9795 -1 -9895 9795 -1 -9796 9796 4 -9797 9796 -1 -9896 9796 -1 -9797 9797 4 -9798 9797 -1 -9897 9797 -1 -9798 9798 4 -9799 9798 -1 -9898 9798 -1 -9799 9799 4 -9800 9799 -1 -9899 9799 -1 -9800 9800 4 -9900 9800 -1 -9801 9801 4 -9802 9801 -1 -9901 9801 -1 -9802 9802 4 -9803 9802 -1 -9902 9802 -1 -9803 9803 4 -9804 9803 -1 -9903 9803 -1 -9804 9804 4 -9805 9804 -1 -9904 9804 -1 -9805 9805 4 -9806 9805 -1 -9905 9805 -1 -9806 9806 4 -9807 9806 -1 -9906 9806 -1 -9807 9807 4 -9808 9807 -1 -9907 9807 -1 -9808 9808 4 -9809 9808 -1 -9908 9808 -1 -9809 9809 4 -9810 9809 -1 -9909 9809 -1 -9810 9810 4 -9811 9810 -1 -9910 9810 -1 -9811 9811 4 -9812 9811 -1 -9911 9811 -1 -9812 9812 4 -9813 9812 -1 -9912 9812 -1 -9813 9813 4 -9814 9813 -1 -9913 9813 -1 -9814 9814 4 -9815 9814 -1 -9914 9814 -1 -9815 9815 4 -9816 9815 -1 -9915 9815 -1 -9816 9816 4 -9817 9816 -1 -9916 9816 -1 -9817 9817 4 -9818 9817 -1 -9917 9817 -1 -9818 9818 4 -9819 9818 -1 -9918 9818 -1 -9819 9819 4 -9820 9819 -1 -9919 9819 -1 -9820 9820 4 -9821 9820 -1 -9920 9820 -1 -9821 9821 4 -9822 9821 -1 -9921 9821 -1 -9822 9822 4 -9823 9822 -1 -9922 9822 -1 -9823 9823 4 -9824 9823 -1 -9923 9823 -1 -9824 9824 4 -9825 9824 -1 -9924 9824 -1 -9825 9825 4 -9826 9825 -1 -9925 9825 -1 -9826 9826 4 -9827 9826 -1 -9926 9826 -1 -9827 9827 4 -9828 9827 -1 -9927 9827 -1 -9828 9828 4 -9829 9828 -1 -9928 9828 -1 -9829 9829 4 -9830 9829 -1 -9929 9829 -1 -9830 9830 4 -9831 9830 -1 -9930 9830 -1 -9831 9831 4 -9832 9831 -1 -9931 9831 -1 -9832 9832 4 -9833 9832 -1 -9932 9832 -1 -9833 9833 4 -9834 9833 -1 -9933 9833 -1 -9834 9834 4 -9835 9834 -1 -9934 9834 -1 -9835 9835 4 -9836 9835 -1 -9935 9835 -1 -9836 9836 4 -9837 9836 -1 -9936 9836 -1 -9837 9837 4 -9838 9837 -1 -9937 9837 -1 -9838 9838 4 -9839 9838 -1 -9938 9838 -1 -9839 9839 4 -9840 9839 -1 -9939 9839 -1 -9840 9840 4 -9841 9840 -1 -9940 9840 -1 -9841 9841 4 -9842 9841 -1 -9941 9841 -1 -9842 9842 4 -9843 9842 -1 -9942 9842 -1 -9843 9843 4 -9844 9843 -1 -9943 9843 -1 -9844 9844 4 -9845 9844 -1 -9944 9844 -1 -9845 9845 4 -9846 9845 -1 -9945 9845 -1 -9846 9846 4 -9847 9846 -1 -9946 9846 -1 -9847 9847 4 -9848 9847 -1 -9947 9847 -1 -9848 9848 4 -9849 9848 -1 -9948 9848 -1 -9849 9849 4 -9850 9849 -1 -9949 9849 -1 -9850 9850 4 -9851 9850 -1 -9950 9850 -1 -9851 9851 4 -9852 9851 -1 -9951 9851 -1 -9852 9852 4 -9853 9852 -1 -9952 9852 -1 -9853 9853 4 -9854 9853 -1 -9953 9853 -1 -9854 9854 4 -9855 9854 -1 -9954 9854 -1 -9855 9855 4 -9856 9855 -1 -9955 9855 -1 -9856 9856 4 -9857 9856 -1 -9956 9856 -1 -9857 9857 4 -9858 9857 -1 -9957 9857 -1 -9858 9858 4 -9859 9858 -1 -9958 9858 -1 -9859 9859 4 -9860 9859 -1 -9959 9859 -1 -9860 9860 4 -9861 9860 -1 -9960 9860 -1 -9861 9861 4 -9862 9861 -1 -9961 9861 -1 -9862 9862 4 -9863 9862 -1 -9962 9862 -1 -9863 9863 4 -9864 9863 -1 -9963 9863 -1 -9864 9864 4 -9865 9864 -1 -9964 9864 -1 -9865 9865 4 -9866 9865 -1 -9965 9865 -1 -9866 9866 4 -9867 9866 -1 -9966 9866 -1 -9867 9867 4 -9868 9867 -1 -9967 9867 -1 -9868 9868 4 -9869 9868 -1 -9968 9868 -1 -9869 9869 4 -9870 9869 -1 -9969 9869 -1 -9870 9870 4 -9871 9870 -1 -9970 9870 -1 -9871 9871 4 -9872 9871 -1 -9971 9871 -1 -9872 9872 4 -9873 9872 -1 -9972 9872 -1 -9873 9873 4 -9874 9873 -1 -9973 9873 -1 -9874 9874 4 -9875 9874 -1 -9974 9874 -1 -9875 9875 4 -9876 9875 -1 -9975 9875 -1 -9876 9876 4 -9877 9876 -1 -9976 9876 -1 -9877 9877 4 -9878 9877 -1 -9977 9877 -1 -9878 9878 4 -9879 9878 -1 -9978 9878 -1 -9879 9879 4 -9880 9879 -1 -9979 9879 -1 -9880 9880 4 -9881 9880 -1 -9980 9880 -1 -9881 9881 4 -9882 9881 -1 -9981 9881 -1 -9882 9882 4 -9883 9882 -1 -9982 9882 -1 -9883 9883 4 -9884 9883 -1 -9983 9883 -1 -9884 9884 4 -9885 9884 -1 -9984 9884 -1 -9885 9885 4 -9886 9885 -1 -9985 9885 -1 -9886 9886 4 -9887 9886 -1 -9986 9886 -1 -9887 9887 4 -9888 9887 -1 -9987 9887 -1 -9888 9888 4 -9889 9888 -1 -9988 9888 -1 -9889 9889 4 -9890 9889 -1 -9989 9889 -1 -9890 9890 4 -9891 9890 -1 -9990 9890 -1 -9891 9891 4 -9892 9891 -1 -9991 9891 -1 -9892 9892 4 -9893 9892 -1 -9992 9892 -1 -9893 9893 4 -9894 9893 -1 -9993 9893 -1 -9894 9894 4 -9895 9894 -1 -9994 9894 -1 -9895 9895 4 -9896 9895 -1 -9995 9895 -1 -9896 9896 4 -9897 9896 -1 -9996 9896 -1 -9897 9897 4 -9898 9897 -1 -9997 9897 -1 -9898 9898 4 -9899 9898 -1 -9998 9898 -1 -9899 9899 4 -9900 9899 -1 -9999 9899 -1 -9900 9900 4 -10000 9900 -1 -9901 9901 4 -9902 9901 -1 -9902 9902 4 -9903 9902 -1 -9903 9903 4 -9904 9903 -1 -9904 9904 4 -9905 9904 -1 -9905 9905 4 -9906 9905 -1 -9906 9906 4 -9907 9906 -1 -9907 9907 4 -9908 9907 -1 -9908 9908 4 -9909 9908 -1 -9909 9909 4 -9910 9909 -1 -9910 9910 4 -9911 9910 -1 -9911 9911 4 -9912 9911 -1 -9912 9912 4 -9913 9912 -1 -9913 9913 4 -9914 9913 -1 -9914 9914 4 -9915 9914 -1 -9915 9915 4 -9916 9915 -1 -9916 9916 4 -9917 9916 -1 -9917 9917 4 -9918 9917 -1 -9918 9918 4 -9919 9918 -1 -9919 9919 4 -9920 9919 -1 -9920 9920 4 -9921 9920 -1 -9921 9921 4 -9922 9921 -1 -9922 9922 4 -9923 9922 -1 -9923 9923 4 -9924 9923 -1 -9924 9924 4 -9925 9924 -1 -9925 9925 4 -9926 9925 -1 -9926 9926 4 -9927 9926 -1 -9927 9927 4 -9928 9927 -1 -9928 9928 4 -9929 9928 -1 -9929 9929 4 -9930 9929 -1 -9930 9930 4 -9931 9930 -1 -9931 9931 4 -9932 9931 -1 -9932 9932 4 -9933 9932 -1 -9933 9933 4 -9934 9933 -1 -9934 9934 4 -9935 9934 -1 -9935 9935 4 -9936 9935 -1 -9936 9936 4 -9937 9936 -1 -9937 9937 4 -9938 9937 -1 -9938 9938 4 -9939 9938 -1 -9939 9939 4 -9940 9939 -1 -9940 9940 4 -9941 9940 -1 -9941 9941 4 -9942 9941 -1 -9942 9942 4 -9943 9942 -1 -9943 9943 4 -9944 9943 -1 -9944 9944 4 -9945 9944 -1 -9945 9945 4 -9946 9945 -1 -9946 9946 4 -9947 9946 -1 -9947 9947 4 -9948 9947 -1 -9948 9948 4 -9949 9948 -1 -9949 9949 4 -9950 9949 -1 -9950 9950 4 -9951 9950 -1 -9951 9951 4 -9952 9951 -1 -9952 9952 4 -9953 9952 -1 -9953 9953 4 -9954 9953 -1 -9954 9954 4 -9955 9954 -1 -9955 9955 4 -9956 9955 -1 -9956 9956 4 -9957 9956 -1 -9957 9957 4 -9958 9957 -1 -9958 9958 4 -9959 9958 -1 -9959 9959 4 -9960 9959 -1 -9960 9960 4 -9961 9960 -1 -9961 9961 4 -9962 9961 -1 -9962 9962 4 -9963 9962 -1 -9963 9963 4 -9964 9963 -1 -9964 9964 4 -9965 9964 -1 -9965 9965 4 -9966 9965 -1 -9966 9966 4 -9967 9966 -1 -9967 9967 4 -9968 9967 -1 -9968 9968 4 -9969 9968 -1 -9969 9969 4 -9970 9969 -1 -9970 9970 4 -9971 9970 -1 -9971 9971 4 -9972 9971 -1 -9972 9972 4 -9973 9972 -1 -9973 9973 4 -9974 9973 -1 -9974 9974 4 -9975 9974 -1 -9975 9975 4 -9976 9975 -1 -9976 9976 4 -9977 9976 -1 -9977 9977 4 -9978 9977 -1 -9978 9978 4 -9979 9978 -1 -9979 9979 4 -9980 9979 -1 -9980 9980 4 -9981 9980 -1 -9981 9981 4 -9982 9981 -1 -9982 9982 4 -9983 9982 -1 -9983 9983 4 -9984 9983 -1 -9984 9984 4 -9985 9984 -1 -9985 9985 4 -9986 9985 -1 -9986 9986 4 -9987 9986 -1 -9987 9987 4 -9988 9987 -1 -9988 9988 4 -9989 9988 -1 -9989 9989 4 -9990 9989 -1 -9990 9990 4 -9991 9990 -1 -9991 9991 4 -9992 9991 -1 -9992 9992 4 -9993 9992 -1 -9993 9993 4 -9994 9993 -1 -9994 9994 4 -9995 9994 -1 -9995 9995 4 -9996 9995 -1 -9996 9996 4 -9997 9996 -1 -9997 9997 4 -9998 9997 -1 -9998 9998 4 -9999 9998 -1 -9999 9999 4 -10000 9999 -1 -10000 10000 4 diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/lap3D_7pt_n20.mtx b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/lap3D_7pt_n20.mtx deleted file mode 100644 index 29f4f69f..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/lap3D_7pt_n20.mtx +++ /dev/null @@ -1,30803 +0,0 @@ -%%MatrixMarket matrix coordinate real symmetric -% Generated 20-Nov-2014 -8000 8000 30800 -1 1 6 -2 1 -1 -21 1 -1 -401 1 -1 -2 2 6 -3 2 -1 -22 2 -1 -402 2 -1 -3 3 6 -4 3 -1 -23 3 -1 -403 3 -1 -4 4 6 -5 4 -1 -24 4 -1 -404 4 -1 -5 5 6 -6 5 -1 -25 5 -1 -405 5 -1 -6 6 6 -7 6 -1 -26 6 -1 -406 6 -1 -7 7 6 -8 7 -1 -27 7 -1 -407 7 -1 -8 8 6 -9 8 -1 -28 8 -1 -408 8 -1 -9 9 6 -10 9 -1 -29 9 -1 -409 9 -1 -10 10 6 -11 10 -1 -30 10 -1 -410 10 -1 -11 11 6 -12 11 -1 -31 11 -1 -411 11 -1 -12 12 6 -13 12 -1 -32 12 -1 -412 12 -1 -13 13 6 -14 13 -1 -33 13 -1 -413 13 -1 -14 14 6 -15 14 -1 -34 14 -1 -414 14 -1 -15 15 6 -16 15 -1 -35 15 -1 -415 15 -1 -16 16 6 -17 16 -1 -36 16 -1 -416 16 -1 -17 17 6 -18 17 -1 -37 17 -1 -417 17 -1 -18 18 6 -19 18 -1 -38 18 -1 -418 18 -1 -19 19 6 -20 19 -1 -39 19 -1 -419 19 -1 -20 20 6 -40 20 -1 -420 20 -1 -21 21 6 -22 21 -1 -41 21 -1 -421 21 -1 -22 22 6 -23 22 -1 -42 22 -1 -422 22 -1 -23 23 6 -24 23 -1 -43 23 -1 -423 23 -1 -24 24 6 -25 24 -1 -44 24 -1 -424 24 -1 -25 25 6 -26 25 -1 -45 25 -1 -425 25 -1 -26 26 6 -27 26 -1 -46 26 -1 -426 26 -1 -27 27 6 -28 27 -1 -47 27 -1 -427 27 -1 -28 28 6 -29 28 -1 -48 28 -1 -428 28 -1 -29 29 6 -30 29 -1 -49 29 -1 -429 29 -1 -30 30 6 -31 30 -1 -50 30 -1 -430 30 -1 -31 31 6 -32 31 -1 -51 31 -1 -431 31 -1 -32 32 6 -33 32 -1 -52 32 -1 -432 32 -1 -33 33 6 -34 33 -1 -53 33 -1 -433 33 -1 -34 34 6 -35 34 -1 -54 34 -1 -434 34 -1 -35 35 6 -36 35 -1 -55 35 -1 -435 35 -1 -36 36 6 -37 36 -1 -56 36 -1 -436 36 -1 -37 37 6 -38 37 -1 -57 37 -1 -437 37 -1 -38 38 6 -39 38 -1 -58 38 -1 -438 38 -1 -39 39 6 -40 39 -1 -59 39 -1 -439 39 -1 -40 40 6 -60 40 -1 -440 40 -1 -41 41 6 -42 41 -1 -61 41 -1 -441 41 -1 -42 42 6 -43 42 -1 -62 42 -1 -442 42 -1 -43 43 6 -44 43 -1 -63 43 -1 -443 43 -1 -44 44 6 -45 44 -1 -64 44 -1 -444 44 -1 -45 45 6 -46 45 -1 -65 45 -1 -445 45 -1 -46 46 6 -47 46 -1 -66 46 -1 -446 46 -1 -47 47 6 -48 47 -1 -67 47 -1 -447 47 -1 -48 48 6 -49 48 -1 -68 48 -1 -448 48 -1 -49 49 6 -50 49 -1 -69 49 -1 -449 49 -1 -50 50 6 -51 50 -1 -70 50 -1 -450 50 -1 -51 51 6 -52 51 -1 -71 51 -1 -451 51 -1 -52 52 6 -53 52 -1 -72 52 -1 -452 52 -1 -53 53 6 -54 53 -1 -73 53 -1 -453 53 -1 -54 54 6 -55 54 -1 -74 54 -1 -454 54 -1 -55 55 6 -56 55 -1 -75 55 -1 -455 55 -1 -56 56 6 -57 56 -1 -76 56 -1 -456 56 -1 -57 57 6 -58 57 -1 -77 57 -1 -457 57 -1 -58 58 6 -59 58 -1 -78 58 -1 -458 58 -1 -59 59 6 -60 59 -1 -79 59 -1 -459 59 -1 -60 60 6 -80 60 -1 -460 60 -1 -61 61 6 -62 61 -1 -81 61 -1 -461 61 -1 -62 62 6 -63 62 -1 -82 62 -1 -462 62 -1 -63 63 6 -64 63 -1 -83 63 -1 -463 63 -1 -64 64 6 -65 64 -1 -84 64 -1 -464 64 -1 -65 65 6 -66 65 -1 -85 65 -1 -465 65 -1 -66 66 6 -67 66 -1 -86 66 -1 -466 66 -1 -67 67 6 -68 67 -1 -87 67 -1 -467 67 -1 -68 68 6 -69 68 -1 -88 68 -1 -468 68 -1 -69 69 6 -70 69 -1 -89 69 -1 -469 69 -1 -70 70 6 -71 70 -1 -90 70 -1 -470 70 -1 -71 71 6 -72 71 -1 -91 71 -1 -471 71 -1 -72 72 6 -73 72 -1 -92 72 -1 -472 72 -1 -73 73 6 -74 73 -1 -93 73 -1 -473 73 -1 -74 74 6 -75 74 -1 -94 74 -1 -474 74 -1 -75 75 6 -76 75 -1 -95 75 -1 -475 75 -1 -76 76 6 -77 76 -1 -96 76 -1 -476 76 -1 -77 77 6 -78 77 -1 -97 77 -1 -477 77 -1 -78 78 6 -79 78 -1 -98 78 -1 -478 78 -1 -79 79 6 -80 79 -1 -99 79 -1 -479 79 -1 -80 80 6 -100 80 -1 -480 80 -1 -81 81 6 -82 81 -1 -101 81 -1 -481 81 -1 -82 82 6 -83 82 -1 -102 82 -1 -482 82 -1 -83 83 6 -84 83 -1 -103 83 -1 -483 83 -1 -84 84 6 -85 84 -1 -104 84 -1 -484 84 -1 -85 85 6 -86 85 -1 -105 85 -1 -485 85 -1 -86 86 6 -87 86 -1 -106 86 -1 -486 86 -1 -87 87 6 -88 87 -1 -107 87 -1 -487 87 -1 -88 88 6 -89 88 -1 -108 88 -1 -488 88 -1 -89 89 6 -90 89 -1 -109 89 -1 -489 89 -1 -90 90 6 -91 90 -1 -110 90 -1 -490 90 -1 -91 91 6 -92 91 -1 -111 91 -1 -491 91 -1 -92 92 6 -93 92 -1 -112 92 -1 -492 92 -1 -93 93 6 -94 93 -1 -113 93 -1 -493 93 -1 -94 94 6 -95 94 -1 -114 94 -1 -494 94 -1 -95 95 6 -96 95 -1 -115 95 -1 -495 95 -1 -96 96 6 -97 96 -1 -116 96 -1 -496 96 -1 -97 97 6 -98 97 -1 -117 97 -1 -497 97 -1 -98 98 6 -99 98 -1 -118 98 -1 -498 98 -1 -99 99 6 -100 99 -1 -119 99 -1 -499 99 -1 -100 100 6 -120 100 -1 -500 100 -1 -101 101 6 -102 101 -1 -121 101 -1 -501 101 -1 -102 102 6 -103 102 -1 -122 102 -1 -502 102 -1 -103 103 6 -104 103 -1 -123 103 -1 -503 103 -1 -104 104 6 -105 104 -1 -124 104 -1 -504 104 -1 -105 105 6 -106 105 -1 -125 105 -1 -505 105 -1 -106 106 6 -107 106 -1 -126 106 -1 -506 106 -1 -107 107 6 -108 107 -1 -127 107 -1 -507 107 -1 -108 108 6 -109 108 -1 -128 108 -1 -508 108 -1 -109 109 6 -110 109 -1 -129 109 -1 -509 109 -1 -110 110 6 -111 110 -1 -130 110 -1 -510 110 -1 -111 111 6 -112 111 -1 -131 111 -1 -511 111 -1 -112 112 6 -113 112 -1 -132 112 -1 -512 112 -1 -113 113 6 -114 113 -1 -133 113 -1 -513 113 -1 -114 114 6 -115 114 -1 -134 114 -1 -514 114 -1 -115 115 6 -116 115 -1 -135 115 -1 -515 115 -1 -116 116 6 -117 116 -1 -136 116 -1 -516 116 -1 -117 117 6 -118 117 -1 -137 117 -1 -517 117 -1 -118 118 6 -119 118 -1 -138 118 -1 -518 118 -1 -119 119 6 -120 119 -1 -139 119 -1 -519 119 -1 -120 120 6 -140 120 -1 -520 120 -1 -121 121 6 -122 121 -1 -141 121 -1 -521 121 -1 -122 122 6 -123 122 -1 -142 122 -1 -522 122 -1 -123 123 6 -124 123 -1 -143 123 -1 -523 123 -1 -124 124 6 -125 124 -1 -144 124 -1 -524 124 -1 -125 125 6 -126 125 -1 -145 125 -1 -525 125 -1 -126 126 6 -127 126 -1 -146 126 -1 -526 126 -1 -127 127 6 -128 127 -1 -147 127 -1 -527 127 -1 -128 128 6 -129 128 -1 -148 128 -1 -528 128 -1 -129 129 6 -130 129 -1 -149 129 -1 -529 129 -1 -130 130 6 -131 130 -1 -150 130 -1 -530 130 -1 -131 131 6 -132 131 -1 -151 131 -1 -531 131 -1 -132 132 6 -133 132 -1 -152 132 -1 -532 132 -1 -133 133 6 -134 133 -1 -153 133 -1 -533 133 -1 -134 134 6 -135 134 -1 -154 134 -1 -534 134 -1 -135 135 6 -136 135 -1 -155 135 -1 -535 135 -1 -136 136 6 -137 136 -1 -156 136 -1 -536 136 -1 -137 137 6 -138 137 -1 -157 137 -1 -537 137 -1 -138 138 6 -139 138 -1 -158 138 -1 -538 138 -1 -139 139 6 -140 139 -1 -159 139 -1 -539 139 -1 -140 140 6 -160 140 -1 -540 140 -1 -141 141 6 -142 141 -1 -161 141 -1 -541 141 -1 -142 142 6 -143 142 -1 -162 142 -1 -542 142 -1 -143 143 6 -144 143 -1 -163 143 -1 -543 143 -1 -144 144 6 -145 144 -1 -164 144 -1 -544 144 -1 -145 145 6 -146 145 -1 -165 145 -1 -545 145 -1 -146 146 6 -147 146 -1 -166 146 -1 -546 146 -1 -147 147 6 -148 147 -1 -167 147 -1 -547 147 -1 -148 148 6 -149 148 -1 -168 148 -1 -548 148 -1 -149 149 6 -150 149 -1 -169 149 -1 -549 149 -1 -150 150 6 -151 150 -1 -170 150 -1 -550 150 -1 -151 151 6 -152 151 -1 -171 151 -1 -551 151 -1 -152 152 6 -153 152 -1 -172 152 -1 -552 152 -1 -153 153 6 -154 153 -1 -173 153 -1 -553 153 -1 -154 154 6 -155 154 -1 -174 154 -1 -554 154 -1 -155 155 6 -156 155 -1 -175 155 -1 -555 155 -1 -156 156 6 -157 156 -1 -176 156 -1 -556 156 -1 -157 157 6 -158 157 -1 -177 157 -1 -557 157 -1 -158 158 6 -159 158 -1 -178 158 -1 -558 158 -1 -159 159 6 -160 159 -1 -179 159 -1 -559 159 -1 -160 160 6 -180 160 -1 -560 160 -1 -161 161 6 -162 161 -1 -181 161 -1 -561 161 -1 -162 162 6 -163 162 -1 -182 162 -1 -562 162 -1 -163 163 6 -164 163 -1 -183 163 -1 -563 163 -1 -164 164 6 -165 164 -1 -184 164 -1 -564 164 -1 -165 165 6 -166 165 -1 -185 165 -1 -565 165 -1 -166 166 6 -167 166 -1 -186 166 -1 -566 166 -1 -167 167 6 -168 167 -1 -187 167 -1 -567 167 -1 -168 168 6 -169 168 -1 -188 168 -1 -568 168 -1 -169 169 6 -170 169 -1 -189 169 -1 -569 169 -1 -170 170 6 -171 170 -1 -190 170 -1 -570 170 -1 -171 171 6 -172 171 -1 -191 171 -1 -571 171 -1 -172 172 6 -173 172 -1 -192 172 -1 -572 172 -1 -173 173 6 -174 173 -1 -193 173 -1 -573 173 -1 -174 174 6 -175 174 -1 -194 174 -1 -574 174 -1 -175 175 6 -176 175 -1 -195 175 -1 -575 175 -1 -176 176 6 -177 176 -1 -196 176 -1 -576 176 -1 -177 177 6 -178 177 -1 -197 177 -1 -577 177 -1 -178 178 6 -179 178 -1 -198 178 -1 -578 178 -1 -179 179 6 -180 179 -1 -199 179 -1 -579 179 -1 -180 180 6 -200 180 -1 -580 180 -1 -181 181 6 -182 181 -1 -201 181 -1 -581 181 -1 -182 182 6 -183 182 -1 -202 182 -1 -582 182 -1 -183 183 6 -184 183 -1 -203 183 -1 -583 183 -1 -184 184 6 -185 184 -1 -204 184 -1 -584 184 -1 -185 185 6 -186 185 -1 -205 185 -1 -585 185 -1 -186 186 6 -187 186 -1 -206 186 -1 -586 186 -1 -187 187 6 -188 187 -1 -207 187 -1 -587 187 -1 -188 188 6 -189 188 -1 -208 188 -1 -588 188 -1 -189 189 6 -190 189 -1 -209 189 -1 -589 189 -1 -190 190 6 -191 190 -1 -210 190 -1 -590 190 -1 -191 191 6 -192 191 -1 -211 191 -1 -591 191 -1 -192 192 6 -193 192 -1 -212 192 -1 -592 192 -1 -193 193 6 -194 193 -1 -213 193 -1 -593 193 -1 -194 194 6 -195 194 -1 -214 194 -1 -594 194 -1 -195 195 6 -196 195 -1 -215 195 -1 -595 195 -1 -196 196 6 -197 196 -1 -216 196 -1 -596 196 -1 -197 197 6 -198 197 -1 -217 197 -1 -597 197 -1 -198 198 6 -199 198 -1 -218 198 -1 -598 198 -1 -199 199 6 -200 199 -1 -219 199 -1 -599 199 -1 -200 200 6 -220 200 -1 -600 200 -1 -201 201 6 -202 201 -1 -221 201 -1 -601 201 -1 -202 202 6 -203 202 -1 -222 202 -1 -602 202 -1 -203 203 6 -204 203 -1 -223 203 -1 -603 203 -1 -204 204 6 -205 204 -1 -224 204 -1 -604 204 -1 -205 205 6 -206 205 -1 -225 205 -1 -605 205 -1 -206 206 6 -207 206 -1 -226 206 -1 -606 206 -1 -207 207 6 -208 207 -1 -227 207 -1 -607 207 -1 -208 208 6 -209 208 -1 -228 208 -1 -608 208 -1 -209 209 6 -210 209 -1 -229 209 -1 -609 209 -1 -210 210 6 -211 210 -1 -230 210 -1 -610 210 -1 -211 211 6 -212 211 -1 -231 211 -1 -611 211 -1 -212 212 6 -213 212 -1 -232 212 -1 -612 212 -1 -213 213 6 -214 213 -1 -233 213 -1 -613 213 -1 -214 214 6 -215 214 -1 -234 214 -1 -614 214 -1 -215 215 6 -216 215 -1 -235 215 -1 -615 215 -1 -216 216 6 -217 216 -1 -236 216 -1 -616 216 -1 -217 217 6 -218 217 -1 -237 217 -1 -617 217 -1 -218 218 6 -219 218 -1 -238 218 -1 -618 218 -1 -219 219 6 -220 219 -1 -239 219 -1 -619 219 -1 -220 220 6 -240 220 -1 -620 220 -1 -221 221 6 -222 221 -1 -241 221 -1 -621 221 -1 -222 222 6 -223 222 -1 -242 222 -1 -622 222 -1 -223 223 6 -224 223 -1 -243 223 -1 -623 223 -1 -224 224 6 -225 224 -1 -244 224 -1 -624 224 -1 -225 225 6 -226 225 -1 -245 225 -1 -625 225 -1 -226 226 6 -227 226 -1 -246 226 -1 -626 226 -1 -227 227 6 -228 227 -1 -247 227 -1 -627 227 -1 -228 228 6 -229 228 -1 -248 228 -1 -628 228 -1 -229 229 6 -230 229 -1 -249 229 -1 -629 229 -1 -230 230 6 -231 230 -1 -250 230 -1 -630 230 -1 -231 231 6 -232 231 -1 -251 231 -1 -631 231 -1 -232 232 6 -233 232 -1 -252 232 -1 -632 232 -1 -233 233 6 -234 233 -1 -253 233 -1 -633 233 -1 -234 234 6 -235 234 -1 -254 234 -1 -634 234 -1 -235 235 6 -236 235 -1 -255 235 -1 -635 235 -1 -236 236 6 -237 236 -1 -256 236 -1 -636 236 -1 -237 237 6 -238 237 -1 -257 237 -1 -637 237 -1 -238 238 6 -239 238 -1 -258 238 -1 -638 238 -1 -239 239 6 -240 239 -1 -259 239 -1 -639 239 -1 -240 240 6 -260 240 -1 -640 240 -1 -241 241 6 -242 241 -1 -261 241 -1 -641 241 -1 -242 242 6 -243 242 -1 -262 242 -1 -642 242 -1 -243 243 6 -244 243 -1 -263 243 -1 -643 243 -1 -244 244 6 -245 244 -1 -264 244 -1 -644 244 -1 -245 245 6 -246 245 -1 -265 245 -1 -645 245 -1 -246 246 6 -247 246 -1 -266 246 -1 -646 246 -1 -247 247 6 -248 247 -1 -267 247 -1 -647 247 -1 -248 248 6 -249 248 -1 -268 248 -1 -648 248 -1 -249 249 6 -250 249 -1 -269 249 -1 -649 249 -1 -250 250 6 -251 250 -1 -270 250 -1 -650 250 -1 -251 251 6 -252 251 -1 -271 251 -1 -651 251 -1 -252 252 6 -253 252 -1 -272 252 -1 -652 252 -1 -253 253 6 -254 253 -1 -273 253 -1 -653 253 -1 -254 254 6 -255 254 -1 -274 254 -1 -654 254 -1 -255 255 6 -256 255 -1 -275 255 -1 -655 255 -1 -256 256 6 -257 256 -1 -276 256 -1 -656 256 -1 -257 257 6 -258 257 -1 -277 257 -1 -657 257 -1 -258 258 6 -259 258 -1 -278 258 -1 -658 258 -1 -259 259 6 -260 259 -1 -279 259 -1 -659 259 -1 -260 260 6 -280 260 -1 -660 260 -1 -261 261 6 -262 261 -1 -281 261 -1 -661 261 -1 -262 262 6 -263 262 -1 -282 262 -1 -662 262 -1 -263 263 6 -264 263 -1 -283 263 -1 -663 263 -1 -264 264 6 -265 264 -1 -284 264 -1 -664 264 -1 -265 265 6 -266 265 -1 -285 265 -1 -665 265 -1 -266 266 6 -267 266 -1 -286 266 -1 -666 266 -1 -267 267 6 -268 267 -1 -287 267 -1 -667 267 -1 -268 268 6 -269 268 -1 -288 268 -1 -668 268 -1 -269 269 6 -270 269 -1 -289 269 -1 -669 269 -1 -270 270 6 -271 270 -1 -290 270 -1 -670 270 -1 -271 271 6 -272 271 -1 -291 271 -1 -671 271 -1 -272 272 6 -273 272 -1 -292 272 -1 -672 272 -1 -273 273 6 -274 273 -1 -293 273 -1 -673 273 -1 -274 274 6 -275 274 -1 -294 274 -1 -674 274 -1 -275 275 6 -276 275 -1 -295 275 -1 -675 275 -1 -276 276 6 -277 276 -1 -296 276 -1 -676 276 -1 -277 277 6 -278 277 -1 -297 277 -1 -677 277 -1 -278 278 6 -279 278 -1 -298 278 -1 -678 278 -1 -279 279 6 -280 279 -1 -299 279 -1 -679 279 -1 -280 280 6 -300 280 -1 -680 280 -1 -281 281 6 -282 281 -1 -301 281 -1 -681 281 -1 -282 282 6 -283 282 -1 -302 282 -1 -682 282 -1 -283 283 6 -284 283 -1 -303 283 -1 -683 283 -1 -284 284 6 -285 284 -1 -304 284 -1 -684 284 -1 -285 285 6 -286 285 -1 -305 285 -1 -685 285 -1 -286 286 6 -287 286 -1 -306 286 -1 -686 286 -1 -287 287 6 -288 287 -1 -307 287 -1 -687 287 -1 -288 288 6 -289 288 -1 -308 288 -1 -688 288 -1 -289 289 6 -290 289 -1 -309 289 -1 -689 289 -1 -290 290 6 -291 290 -1 -310 290 -1 -690 290 -1 -291 291 6 -292 291 -1 -311 291 -1 -691 291 -1 -292 292 6 -293 292 -1 -312 292 -1 -692 292 -1 -293 293 6 -294 293 -1 -313 293 -1 -693 293 -1 -294 294 6 -295 294 -1 -314 294 -1 -694 294 -1 -295 295 6 -296 295 -1 -315 295 -1 -695 295 -1 -296 296 6 -297 296 -1 -316 296 -1 -696 296 -1 -297 297 6 -298 297 -1 -317 297 -1 -697 297 -1 -298 298 6 -299 298 -1 -318 298 -1 -698 298 -1 -299 299 6 -300 299 -1 -319 299 -1 -699 299 -1 -300 300 6 -320 300 -1 -700 300 -1 -301 301 6 -302 301 -1 -321 301 -1 -701 301 -1 -302 302 6 -303 302 -1 -322 302 -1 -702 302 -1 -303 303 6 -304 303 -1 -323 303 -1 -703 303 -1 -304 304 6 -305 304 -1 -324 304 -1 -704 304 -1 -305 305 6 -306 305 -1 -325 305 -1 -705 305 -1 -306 306 6 -307 306 -1 -326 306 -1 -706 306 -1 -307 307 6 -308 307 -1 -327 307 -1 -707 307 -1 -308 308 6 -309 308 -1 -328 308 -1 -708 308 -1 -309 309 6 -310 309 -1 -329 309 -1 -709 309 -1 -310 310 6 -311 310 -1 -330 310 -1 -710 310 -1 -311 311 6 -312 311 -1 -331 311 -1 -711 311 -1 -312 312 6 -313 312 -1 -332 312 -1 -712 312 -1 -313 313 6 -314 313 -1 -333 313 -1 -713 313 -1 -314 314 6 -315 314 -1 -334 314 -1 -714 314 -1 -315 315 6 -316 315 -1 -335 315 -1 -715 315 -1 -316 316 6 -317 316 -1 -336 316 -1 -716 316 -1 -317 317 6 -318 317 -1 -337 317 -1 -717 317 -1 -318 318 6 -319 318 -1 -338 318 -1 -718 318 -1 -319 319 6 -320 319 -1 -339 319 -1 -719 319 -1 -320 320 6 -340 320 -1 -720 320 -1 -321 321 6 -322 321 -1 -341 321 -1 -721 321 -1 -322 322 6 -323 322 -1 -342 322 -1 -722 322 -1 -323 323 6 -324 323 -1 -343 323 -1 -723 323 -1 -324 324 6 -325 324 -1 -344 324 -1 -724 324 -1 -325 325 6 -326 325 -1 -345 325 -1 -725 325 -1 -326 326 6 -327 326 -1 -346 326 -1 -726 326 -1 -327 327 6 -328 327 -1 -347 327 -1 -727 327 -1 -328 328 6 -329 328 -1 -348 328 -1 -728 328 -1 -329 329 6 -330 329 -1 -349 329 -1 -729 329 -1 -330 330 6 -331 330 -1 -350 330 -1 -730 330 -1 -331 331 6 -332 331 -1 -351 331 -1 -731 331 -1 -332 332 6 -333 332 -1 -352 332 -1 -732 332 -1 -333 333 6 -334 333 -1 -353 333 -1 -733 333 -1 -334 334 6 -335 334 -1 -354 334 -1 -734 334 -1 -335 335 6 -336 335 -1 -355 335 -1 -735 335 -1 -336 336 6 -337 336 -1 -356 336 -1 -736 336 -1 -337 337 6 -338 337 -1 -357 337 -1 -737 337 -1 -338 338 6 -339 338 -1 -358 338 -1 -738 338 -1 -339 339 6 -340 339 -1 -359 339 -1 -739 339 -1 -340 340 6 -360 340 -1 -740 340 -1 -341 341 6 -342 341 -1 -361 341 -1 -741 341 -1 -342 342 6 -343 342 -1 -362 342 -1 -742 342 -1 -343 343 6 -344 343 -1 -363 343 -1 -743 343 -1 -344 344 6 -345 344 -1 -364 344 -1 -744 344 -1 -345 345 6 -346 345 -1 -365 345 -1 -745 345 -1 -346 346 6 -347 346 -1 -366 346 -1 -746 346 -1 -347 347 6 -348 347 -1 -367 347 -1 -747 347 -1 -348 348 6 -349 348 -1 -368 348 -1 -748 348 -1 -349 349 6 -350 349 -1 -369 349 -1 -749 349 -1 -350 350 6 -351 350 -1 -370 350 -1 -750 350 -1 -351 351 6 -352 351 -1 -371 351 -1 -751 351 -1 -352 352 6 -353 352 -1 -372 352 -1 -752 352 -1 -353 353 6 -354 353 -1 -373 353 -1 -753 353 -1 -354 354 6 -355 354 -1 -374 354 -1 -754 354 -1 -355 355 6 -356 355 -1 -375 355 -1 -755 355 -1 -356 356 6 -357 356 -1 -376 356 -1 -756 356 -1 -357 357 6 -358 357 -1 -377 357 -1 -757 357 -1 -358 358 6 -359 358 -1 -378 358 -1 -758 358 -1 -359 359 6 -360 359 -1 -379 359 -1 -759 359 -1 -360 360 6 -380 360 -1 -760 360 -1 -361 361 6 -362 361 -1 -381 361 -1 -761 361 -1 -362 362 6 -363 362 -1 -382 362 -1 -762 362 -1 -363 363 6 -364 363 -1 -383 363 -1 -763 363 -1 -364 364 6 -365 364 -1 -384 364 -1 -764 364 -1 -365 365 6 -366 365 -1 -385 365 -1 -765 365 -1 -366 366 6 -367 366 -1 -386 366 -1 -766 366 -1 -367 367 6 -368 367 -1 -387 367 -1 -767 367 -1 -368 368 6 -369 368 -1 -388 368 -1 -768 368 -1 -369 369 6 -370 369 -1 -389 369 -1 -769 369 -1 -370 370 6 -371 370 -1 -390 370 -1 -770 370 -1 -371 371 6 -372 371 -1 -391 371 -1 -771 371 -1 -372 372 6 -373 372 -1 -392 372 -1 -772 372 -1 -373 373 6 -374 373 -1 -393 373 -1 -773 373 -1 -374 374 6 -375 374 -1 -394 374 -1 -774 374 -1 -375 375 6 -376 375 -1 -395 375 -1 -775 375 -1 -376 376 6 -377 376 -1 -396 376 -1 -776 376 -1 -377 377 6 -378 377 -1 -397 377 -1 -777 377 -1 -378 378 6 -379 378 -1 -398 378 -1 -778 378 -1 -379 379 6 -380 379 -1 -399 379 -1 -779 379 -1 -380 380 6 -400 380 -1 -780 380 -1 -381 381 6 -382 381 -1 -781 381 -1 -382 382 6 -383 382 -1 -782 382 -1 -383 383 6 -384 383 -1 -783 383 -1 -384 384 6 -385 384 -1 -784 384 -1 -385 385 6 -386 385 -1 -785 385 -1 -386 386 6 -387 386 -1 -786 386 -1 -387 387 6 -388 387 -1 -787 387 -1 -388 388 6 -389 388 -1 -788 388 -1 -389 389 6 -390 389 -1 -789 389 -1 -390 390 6 -391 390 -1 -790 390 -1 -391 391 6 -392 391 -1 -791 391 -1 -392 392 6 -393 392 -1 -792 392 -1 -393 393 6 -394 393 -1 -793 393 -1 -394 394 6 -395 394 -1 -794 394 -1 -395 395 6 -396 395 -1 -795 395 -1 -396 396 6 -397 396 -1 -796 396 -1 -397 397 6 -398 397 -1 -797 397 -1 -398 398 6 -399 398 -1 -798 398 -1 -399 399 6 -400 399 -1 -799 399 -1 -400 400 6 -800 400 -1 -401 401 6 -402 401 -1 -421 401 -1 -801 401 -1 -402 402 6 -403 402 -1 -422 402 -1 -802 402 -1 -403 403 6 -404 403 -1 -423 403 -1 -803 403 -1 -404 404 6 -405 404 -1 -424 404 -1 -804 404 -1 -405 405 6 -406 405 -1 -425 405 -1 -805 405 -1 -406 406 6 -407 406 -1 -426 406 -1 -806 406 -1 -407 407 6 -408 407 -1 -427 407 -1 -807 407 -1 -408 408 6 -409 408 -1 -428 408 -1 -808 408 -1 -409 409 6 -410 409 -1 -429 409 -1 -809 409 -1 -410 410 6 -411 410 -1 -430 410 -1 -810 410 -1 -411 411 6 -412 411 -1 -431 411 -1 -811 411 -1 -412 412 6 -413 412 -1 -432 412 -1 -812 412 -1 -413 413 6 -414 413 -1 -433 413 -1 -813 413 -1 -414 414 6 -415 414 -1 -434 414 -1 -814 414 -1 -415 415 6 -416 415 -1 -435 415 -1 -815 415 -1 -416 416 6 -417 416 -1 -436 416 -1 -816 416 -1 -417 417 6 -418 417 -1 -437 417 -1 -817 417 -1 -418 418 6 -419 418 -1 -438 418 -1 -818 418 -1 -419 419 6 -420 419 -1 -439 419 -1 -819 419 -1 -420 420 6 -440 420 -1 -820 420 -1 -421 421 6 -422 421 -1 -441 421 -1 -821 421 -1 -422 422 6 -423 422 -1 -442 422 -1 -822 422 -1 -423 423 6 -424 423 -1 -443 423 -1 -823 423 -1 -424 424 6 -425 424 -1 -444 424 -1 -824 424 -1 -425 425 6 -426 425 -1 -445 425 -1 -825 425 -1 -426 426 6 -427 426 -1 -446 426 -1 -826 426 -1 -427 427 6 -428 427 -1 -447 427 -1 -827 427 -1 -428 428 6 -429 428 -1 -448 428 -1 -828 428 -1 -429 429 6 -430 429 -1 -449 429 -1 -829 429 -1 -430 430 6 -431 430 -1 -450 430 -1 -830 430 -1 -431 431 6 -432 431 -1 -451 431 -1 -831 431 -1 -432 432 6 -433 432 -1 -452 432 -1 -832 432 -1 -433 433 6 -434 433 -1 -453 433 -1 -833 433 -1 -434 434 6 -435 434 -1 -454 434 -1 -834 434 -1 -435 435 6 -436 435 -1 -455 435 -1 -835 435 -1 -436 436 6 -437 436 -1 -456 436 -1 -836 436 -1 -437 437 6 -438 437 -1 -457 437 -1 -837 437 -1 -438 438 6 -439 438 -1 -458 438 -1 -838 438 -1 -439 439 6 -440 439 -1 -459 439 -1 -839 439 -1 -440 440 6 -460 440 -1 -840 440 -1 -441 441 6 -442 441 -1 -461 441 -1 -841 441 -1 -442 442 6 -443 442 -1 -462 442 -1 -842 442 -1 -443 443 6 -444 443 -1 -463 443 -1 -843 443 -1 -444 444 6 -445 444 -1 -464 444 -1 -844 444 -1 -445 445 6 -446 445 -1 -465 445 -1 -845 445 -1 -446 446 6 -447 446 -1 -466 446 -1 -846 446 -1 -447 447 6 -448 447 -1 -467 447 -1 -847 447 -1 -448 448 6 -449 448 -1 -468 448 -1 -848 448 -1 -449 449 6 -450 449 -1 -469 449 -1 -849 449 -1 -450 450 6 -451 450 -1 -470 450 -1 -850 450 -1 -451 451 6 -452 451 -1 -471 451 -1 -851 451 -1 -452 452 6 -453 452 -1 -472 452 -1 -852 452 -1 -453 453 6 -454 453 -1 -473 453 -1 -853 453 -1 -454 454 6 -455 454 -1 -474 454 -1 -854 454 -1 -455 455 6 -456 455 -1 -475 455 -1 -855 455 -1 -456 456 6 -457 456 -1 -476 456 -1 -856 456 -1 -457 457 6 -458 457 -1 -477 457 -1 -857 457 -1 -458 458 6 -459 458 -1 -478 458 -1 -858 458 -1 -459 459 6 -460 459 -1 -479 459 -1 -859 459 -1 -460 460 6 -480 460 -1 -860 460 -1 -461 461 6 -462 461 -1 -481 461 -1 -861 461 -1 -462 462 6 -463 462 -1 -482 462 -1 -862 462 -1 -463 463 6 -464 463 -1 -483 463 -1 -863 463 -1 -464 464 6 -465 464 -1 -484 464 -1 -864 464 -1 -465 465 6 -466 465 -1 -485 465 -1 -865 465 -1 -466 466 6 -467 466 -1 -486 466 -1 -866 466 -1 -467 467 6 -468 467 -1 -487 467 -1 -867 467 -1 -468 468 6 -469 468 -1 -488 468 -1 -868 468 -1 -469 469 6 -470 469 -1 -489 469 -1 -869 469 -1 -470 470 6 -471 470 -1 -490 470 -1 -870 470 -1 -471 471 6 -472 471 -1 -491 471 -1 -871 471 -1 -472 472 6 -473 472 -1 -492 472 -1 -872 472 -1 -473 473 6 -474 473 -1 -493 473 -1 -873 473 -1 -474 474 6 -475 474 -1 -494 474 -1 -874 474 -1 -475 475 6 -476 475 -1 -495 475 -1 -875 475 -1 -476 476 6 -477 476 -1 -496 476 -1 -876 476 -1 -477 477 6 -478 477 -1 -497 477 -1 -877 477 -1 -478 478 6 -479 478 -1 -498 478 -1 -878 478 -1 -479 479 6 -480 479 -1 -499 479 -1 -879 479 -1 -480 480 6 -500 480 -1 -880 480 -1 -481 481 6 -482 481 -1 -501 481 -1 -881 481 -1 -482 482 6 -483 482 -1 -502 482 -1 -882 482 -1 -483 483 6 -484 483 -1 -503 483 -1 -883 483 -1 -484 484 6 -485 484 -1 -504 484 -1 -884 484 -1 -485 485 6 -486 485 -1 -505 485 -1 -885 485 -1 -486 486 6 -487 486 -1 -506 486 -1 -886 486 -1 -487 487 6 -488 487 -1 -507 487 -1 -887 487 -1 -488 488 6 -489 488 -1 -508 488 -1 -888 488 -1 -489 489 6 -490 489 -1 -509 489 -1 -889 489 -1 -490 490 6 -491 490 -1 -510 490 -1 -890 490 -1 -491 491 6 -492 491 -1 -511 491 -1 -891 491 -1 -492 492 6 -493 492 -1 -512 492 -1 -892 492 -1 -493 493 6 -494 493 -1 -513 493 -1 -893 493 -1 -494 494 6 -495 494 -1 -514 494 -1 -894 494 -1 -495 495 6 -496 495 -1 -515 495 -1 -895 495 -1 -496 496 6 -497 496 -1 -516 496 -1 -896 496 -1 -497 497 6 -498 497 -1 -517 497 -1 -897 497 -1 -498 498 6 -499 498 -1 -518 498 -1 -898 498 -1 -499 499 6 -500 499 -1 -519 499 -1 -899 499 -1 -500 500 6 -520 500 -1 -900 500 -1 -501 501 6 -502 501 -1 -521 501 -1 -901 501 -1 -502 502 6 -503 502 -1 -522 502 -1 -902 502 -1 -503 503 6 -504 503 -1 -523 503 -1 -903 503 -1 -504 504 6 -505 504 -1 -524 504 -1 -904 504 -1 -505 505 6 -506 505 -1 -525 505 -1 -905 505 -1 -506 506 6 -507 506 -1 -526 506 -1 -906 506 -1 -507 507 6 -508 507 -1 -527 507 -1 -907 507 -1 -508 508 6 -509 508 -1 -528 508 -1 -908 508 -1 -509 509 6 -510 509 -1 -529 509 -1 -909 509 -1 -510 510 6 -511 510 -1 -530 510 -1 -910 510 -1 -511 511 6 -512 511 -1 -531 511 -1 -911 511 -1 -512 512 6 -513 512 -1 -532 512 -1 -912 512 -1 -513 513 6 -514 513 -1 -533 513 -1 -913 513 -1 -514 514 6 -515 514 -1 -534 514 -1 -914 514 -1 -515 515 6 -516 515 -1 -535 515 -1 -915 515 -1 -516 516 6 -517 516 -1 -536 516 -1 -916 516 -1 -517 517 6 -518 517 -1 -537 517 -1 -917 517 -1 -518 518 6 -519 518 -1 -538 518 -1 -918 518 -1 -519 519 6 -520 519 -1 -539 519 -1 -919 519 -1 -520 520 6 -540 520 -1 -920 520 -1 -521 521 6 -522 521 -1 -541 521 -1 -921 521 -1 -522 522 6 -523 522 -1 -542 522 -1 -922 522 -1 -523 523 6 -524 523 -1 -543 523 -1 -923 523 -1 -524 524 6 -525 524 -1 -544 524 -1 -924 524 -1 -525 525 6 -526 525 -1 -545 525 -1 -925 525 -1 -526 526 6 -527 526 -1 -546 526 -1 -926 526 -1 -527 527 6 -528 527 -1 -547 527 -1 -927 527 -1 -528 528 6 -529 528 -1 -548 528 -1 -928 528 -1 -529 529 6 -530 529 -1 -549 529 -1 -929 529 -1 -530 530 6 -531 530 -1 -550 530 -1 -930 530 -1 -531 531 6 -532 531 -1 -551 531 -1 -931 531 -1 -532 532 6 -533 532 -1 -552 532 -1 -932 532 -1 -533 533 6 -534 533 -1 -553 533 -1 -933 533 -1 -534 534 6 -535 534 -1 -554 534 -1 -934 534 -1 -535 535 6 -536 535 -1 -555 535 -1 -935 535 -1 -536 536 6 -537 536 -1 -556 536 -1 -936 536 -1 -537 537 6 -538 537 -1 -557 537 -1 -937 537 -1 -538 538 6 -539 538 -1 -558 538 -1 -938 538 -1 -539 539 6 -540 539 -1 -559 539 -1 -939 539 -1 -540 540 6 -560 540 -1 -940 540 -1 -541 541 6 -542 541 -1 -561 541 -1 -941 541 -1 -542 542 6 -543 542 -1 -562 542 -1 -942 542 -1 -543 543 6 -544 543 -1 -563 543 -1 -943 543 -1 -544 544 6 -545 544 -1 -564 544 -1 -944 544 -1 -545 545 6 -546 545 -1 -565 545 -1 -945 545 -1 -546 546 6 -547 546 -1 -566 546 -1 -946 546 -1 -547 547 6 -548 547 -1 -567 547 -1 -947 547 -1 -548 548 6 -549 548 -1 -568 548 -1 -948 548 -1 -549 549 6 -550 549 -1 -569 549 -1 -949 549 -1 -550 550 6 -551 550 -1 -570 550 -1 -950 550 -1 -551 551 6 -552 551 -1 -571 551 -1 -951 551 -1 -552 552 6 -553 552 -1 -572 552 -1 -952 552 -1 -553 553 6 -554 553 -1 -573 553 -1 -953 553 -1 -554 554 6 -555 554 -1 -574 554 -1 -954 554 -1 -555 555 6 -556 555 -1 -575 555 -1 -955 555 -1 -556 556 6 -557 556 -1 -576 556 -1 -956 556 -1 -557 557 6 -558 557 -1 -577 557 -1 -957 557 -1 -558 558 6 -559 558 -1 -578 558 -1 -958 558 -1 -559 559 6 -560 559 -1 -579 559 -1 -959 559 -1 -560 560 6 -580 560 -1 -960 560 -1 -561 561 6 -562 561 -1 -581 561 -1 -961 561 -1 -562 562 6 -563 562 -1 -582 562 -1 -962 562 -1 -563 563 6 -564 563 -1 -583 563 -1 -963 563 -1 -564 564 6 -565 564 -1 -584 564 -1 -964 564 -1 -565 565 6 -566 565 -1 -585 565 -1 -965 565 -1 -566 566 6 -567 566 -1 -586 566 -1 -966 566 -1 -567 567 6 -568 567 -1 -587 567 -1 -967 567 -1 -568 568 6 -569 568 -1 -588 568 -1 -968 568 -1 -569 569 6 -570 569 -1 -589 569 -1 -969 569 -1 -570 570 6 -571 570 -1 -590 570 -1 -970 570 -1 -571 571 6 -572 571 -1 -591 571 -1 -971 571 -1 -572 572 6 -573 572 -1 -592 572 -1 -972 572 -1 -573 573 6 -574 573 -1 -593 573 -1 -973 573 -1 -574 574 6 -575 574 -1 -594 574 -1 -974 574 -1 -575 575 6 -576 575 -1 -595 575 -1 -975 575 -1 -576 576 6 -577 576 -1 -596 576 -1 -976 576 -1 -577 577 6 -578 577 -1 -597 577 -1 -977 577 -1 -578 578 6 -579 578 -1 -598 578 -1 -978 578 -1 -579 579 6 -580 579 -1 -599 579 -1 -979 579 -1 -580 580 6 -600 580 -1 -980 580 -1 -581 581 6 -582 581 -1 -601 581 -1 -981 581 -1 -582 582 6 -583 582 -1 -602 582 -1 -982 582 -1 -583 583 6 -584 583 -1 -603 583 -1 -983 583 -1 -584 584 6 -585 584 -1 -604 584 -1 -984 584 -1 -585 585 6 -586 585 -1 -605 585 -1 -985 585 -1 -586 586 6 -587 586 -1 -606 586 -1 -986 586 -1 -587 587 6 -588 587 -1 -607 587 -1 -987 587 -1 -588 588 6 -589 588 -1 -608 588 -1 -988 588 -1 -589 589 6 -590 589 -1 -609 589 -1 -989 589 -1 -590 590 6 -591 590 -1 -610 590 -1 -990 590 -1 -591 591 6 -592 591 -1 -611 591 -1 -991 591 -1 -592 592 6 -593 592 -1 -612 592 -1 -992 592 -1 -593 593 6 -594 593 -1 -613 593 -1 -993 593 -1 -594 594 6 -595 594 -1 -614 594 -1 -994 594 -1 -595 595 6 -596 595 -1 -615 595 -1 -995 595 -1 -596 596 6 -597 596 -1 -616 596 -1 -996 596 -1 -597 597 6 -598 597 -1 -617 597 -1 -997 597 -1 -598 598 6 -599 598 -1 -618 598 -1 -998 598 -1 -599 599 6 -600 599 -1 -619 599 -1 -999 599 -1 -600 600 6 -620 600 -1 -1000 600 -1 -601 601 6 -602 601 -1 -621 601 -1 -1001 601 -1 -602 602 6 -603 602 -1 -622 602 -1 -1002 602 -1 -603 603 6 -604 603 -1 -623 603 -1 -1003 603 -1 -604 604 6 -605 604 -1 -624 604 -1 -1004 604 -1 -605 605 6 -606 605 -1 -625 605 -1 -1005 605 -1 -606 606 6 -607 606 -1 -626 606 -1 -1006 606 -1 -607 607 6 -608 607 -1 -627 607 -1 -1007 607 -1 -608 608 6 -609 608 -1 -628 608 -1 -1008 608 -1 -609 609 6 -610 609 -1 -629 609 -1 -1009 609 -1 -610 610 6 -611 610 -1 -630 610 -1 -1010 610 -1 -611 611 6 -612 611 -1 -631 611 -1 -1011 611 -1 -612 612 6 -613 612 -1 -632 612 -1 -1012 612 -1 -613 613 6 -614 613 -1 -633 613 -1 -1013 613 -1 -614 614 6 -615 614 -1 -634 614 -1 -1014 614 -1 -615 615 6 -616 615 -1 -635 615 -1 -1015 615 -1 -616 616 6 -617 616 -1 -636 616 -1 -1016 616 -1 -617 617 6 -618 617 -1 -637 617 -1 -1017 617 -1 -618 618 6 -619 618 -1 -638 618 -1 -1018 618 -1 -619 619 6 -620 619 -1 -639 619 -1 -1019 619 -1 -620 620 6 -640 620 -1 -1020 620 -1 -621 621 6 -622 621 -1 -641 621 -1 -1021 621 -1 -622 622 6 -623 622 -1 -642 622 -1 -1022 622 -1 -623 623 6 -624 623 -1 -643 623 -1 -1023 623 -1 -624 624 6 -625 624 -1 -644 624 -1 -1024 624 -1 -625 625 6 -626 625 -1 -645 625 -1 -1025 625 -1 -626 626 6 -627 626 -1 -646 626 -1 -1026 626 -1 -627 627 6 -628 627 -1 -647 627 -1 -1027 627 -1 -628 628 6 -629 628 -1 -648 628 -1 -1028 628 -1 -629 629 6 -630 629 -1 -649 629 -1 -1029 629 -1 -630 630 6 -631 630 -1 -650 630 -1 -1030 630 -1 -631 631 6 -632 631 -1 -651 631 -1 -1031 631 -1 -632 632 6 -633 632 -1 -652 632 -1 -1032 632 -1 -633 633 6 -634 633 -1 -653 633 -1 -1033 633 -1 -634 634 6 -635 634 -1 -654 634 -1 -1034 634 -1 -635 635 6 -636 635 -1 -655 635 -1 -1035 635 -1 -636 636 6 -637 636 -1 -656 636 -1 -1036 636 -1 -637 637 6 -638 637 -1 -657 637 -1 -1037 637 -1 -638 638 6 -639 638 -1 -658 638 -1 -1038 638 -1 -639 639 6 -640 639 -1 -659 639 -1 -1039 639 -1 -640 640 6 -660 640 -1 -1040 640 -1 -641 641 6 -642 641 -1 -661 641 -1 -1041 641 -1 -642 642 6 -643 642 -1 -662 642 -1 -1042 642 -1 -643 643 6 -644 643 -1 -663 643 -1 -1043 643 -1 -644 644 6 -645 644 -1 -664 644 -1 -1044 644 -1 -645 645 6 -646 645 -1 -665 645 -1 -1045 645 -1 -646 646 6 -647 646 -1 -666 646 -1 -1046 646 -1 -647 647 6 -648 647 -1 -667 647 -1 -1047 647 -1 -648 648 6 -649 648 -1 -668 648 -1 -1048 648 -1 -649 649 6 -650 649 -1 -669 649 -1 -1049 649 -1 -650 650 6 -651 650 -1 -670 650 -1 -1050 650 -1 -651 651 6 -652 651 -1 -671 651 -1 -1051 651 -1 -652 652 6 -653 652 -1 -672 652 -1 -1052 652 -1 -653 653 6 -654 653 -1 -673 653 -1 -1053 653 -1 -654 654 6 -655 654 -1 -674 654 -1 -1054 654 -1 -655 655 6 -656 655 -1 -675 655 -1 -1055 655 -1 -656 656 6 -657 656 -1 -676 656 -1 -1056 656 -1 -657 657 6 -658 657 -1 -677 657 -1 -1057 657 -1 -658 658 6 -659 658 -1 -678 658 -1 -1058 658 -1 -659 659 6 -660 659 -1 -679 659 -1 -1059 659 -1 -660 660 6 -680 660 -1 -1060 660 -1 -661 661 6 -662 661 -1 -681 661 -1 -1061 661 -1 -662 662 6 -663 662 -1 -682 662 -1 -1062 662 -1 -663 663 6 -664 663 -1 -683 663 -1 -1063 663 -1 -664 664 6 -665 664 -1 -684 664 -1 -1064 664 -1 -665 665 6 -666 665 -1 -685 665 -1 -1065 665 -1 -666 666 6 -667 666 -1 -686 666 -1 -1066 666 -1 -667 667 6 -668 667 -1 -687 667 -1 -1067 667 -1 -668 668 6 -669 668 -1 -688 668 -1 -1068 668 -1 -669 669 6 -670 669 -1 -689 669 -1 -1069 669 -1 -670 670 6 -671 670 -1 -690 670 -1 -1070 670 -1 -671 671 6 -672 671 -1 -691 671 -1 -1071 671 -1 -672 672 6 -673 672 -1 -692 672 -1 -1072 672 -1 -673 673 6 -674 673 -1 -693 673 -1 -1073 673 -1 -674 674 6 -675 674 -1 -694 674 -1 -1074 674 -1 -675 675 6 -676 675 -1 -695 675 -1 -1075 675 -1 -676 676 6 -677 676 -1 -696 676 -1 -1076 676 -1 -677 677 6 -678 677 -1 -697 677 -1 -1077 677 -1 -678 678 6 -679 678 -1 -698 678 -1 -1078 678 -1 -679 679 6 -680 679 -1 -699 679 -1 -1079 679 -1 -680 680 6 -700 680 -1 -1080 680 -1 -681 681 6 -682 681 -1 -701 681 -1 -1081 681 -1 -682 682 6 -683 682 -1 -702 682 -1 -1082 682 -1 -683 683 6 -684 683 -1 -703 683 -1 -1083 683 -1 -684 684 6 -685 684 -1 -704 684 -1 -1084 684 -1 -685 685 6 -686 685 -1 -705 685 -1 -1085 685 -1 -686 686 6 -687 686 -1 -706 686 -1 -1086 686 -1 -687 687 6 -688 687 -1 -707 687 -1 -1087 687 -1 -688 688 6 -689 688 -1 -708 688 -1 -1088 688 -1 -689 689 6 -690 689 -1 -709 689 -1 -1089 689 -1 -690 690 6 -691 690 -1 -710 690 -1 -1090 690 -1 -691 691 6 -692 691 -1 -711 691 -1 -1091 691 -1 -692 692 6 -693 692 -1 -712 692 -1 -1092 692 -1 -693 693 6 -694 693 -1 -713 693 -1 -1093 693 -1 -694 694 6 -695 694 -1 -714 694 -1 -1094 694 -1 -695 695 6 -696 695 -1 -715 695 -1 -1095 695 -1 -696 696 6 -697 696 -1 -716 696 -1 -1096 696 -1 -697 697 6 -698 697 -1 -717 697 -1 -1097 697 -1 -698 698 6 -699 698 -1 -718 698 -1 -1098 698 -1 -699 699 6 -700 699 -1 -719 699 -1 -1099 699 -1 -700 700 6 -720 700 -1 -1100 700 -1 -701 701 6 -702 701 -1 -721 701 -1 -1101 701 -1 -702 702 6 -703 702 -1 -722 702 -1 -1102 702 -1 -703 703 6 -704 703 -1 -723 703 -1 -1103 703 -1 -704 704 6 -705 704 -1 -724 704 -1 -1104 704 -1 -705 705 6 -706 705 -1 -725 705 -1 -1105 705 -1 -706 706 6 -707 706 -1 -726 706 -1 -1106 706 -1 -707 707 6 -708 707 -1 -727 707 -1 -1107 707 -1 -708 708 6 -709 708 -1 -728 708 -1 -1108 708 -1 -709 709 6 -710 709 -1 -729 709 -1 -1109 709 -1 -710 710 6 -711 710 -1 -730 710 -1 -1110 710 -1 -711 711 6 -712 711 -1 -731 711 -1 -1111 711 -1 -712 712 6 -713 712 -1 -732 712 -1 -1112 712 -1 -713 713 6 -714 713 -1 -733 713 -1 -1113 713 -1 -714 714 6 -715 714 -1 -734 714 -1 -1114 714 -1 -715 715 6 -716 715 -1 -735 715 -1 -1115 715 -1 -716 716 6 -717 716 -1 -736 716 -1 -1116 716 -1 -717 717 6 -718 717 -1 -737 717 -1 -1117 717 -1 -718 718 6 -719 718 -1 -738 718 -1 -1118 718 -1 -719 719 6 -720 719 -1 -739 719 -1 -1119 719 -1 -720 720 6 -740 720 -1 -1120 720 -1 -721 721 6 -722 721 -1 -741 721 -1 -1121 721 -1 -722 722 6 -723 722 -1 -742 722 -1 -1122 722 -1 -723 723 6 -724 723 -1 -743 723 -1 -1123 723 -1 -724 724 6 -725 724 -1 -744 724 -1 -1124 724 -1 -725 725 6 -726 725 -1 -745 725 -1 -1125 725 -1 -726 726 6 -727 726 -1 -746 726 -1 -1126 726 -1 -727 727 6 -728 727 -1 -747 727 -1 -1127 727 -1 -728 728 6 -729 728 -1 -748 728 -1 -1128 728 -1 -729 729 6 -730 729 -1 -749 729 -1 -1129 729 -1 -730 730 6 -731 730 -1 -750 730 -1 -1130 730 -1 -731 731 6 -732 731 -1 -751 731 -1 -1131 731 -1 -732 732 6 -733 732 -1 -752 732 -1 -1132 732 -1 -733 733 6 -734 733 -1 -753 733 -1 -1133 733 -1 -734 734 6 -735 734 -1 -754 734 -1 -1134 734 -1 -735 735 6 -736 735 -1 -755 735 -1 -1135 735 -1 -736 736 6 -737 736 -1 -756 736 -1 -1136 736 -1 -737 737 6 -738 737 -1 -757 737 -1 -1137 737 -1 -738 738 6 -739 738 -1 -758 738 -1 -1138 738 -1 -739 739 6 -740 739 -1 -759 739 -1 -1139 739 -1 -740 740 6 -760 740 -1 -1140 740 -1 -741 741 6 -742 741 -1 -761 741 -1 -1141 741 -1 -742 742 6 -743 742 -1 -762 742 -1 -1142 742 -1 -743 743 6 -744 743 -1 -763 743 -1 -1143 743 -1 -744 744 6 -745 744 -1 -764 744 -1 -1144 744 -1 -745 745 6 -746 745 -1 -765 745 -1 -1145 745 -1 -746 746 6 -747 746 -1 -766 746 -1 -1146 746 -1 -747 747 6 -748 747 -1 -767 747 -1 -1147 747 -1 -748 748 6 -749 748 -1 -768 748 -1 -1148 748 -1 -749 749 6 -750 749 -1 -769 749 -1 -1149 749 -1 -750 750 6 -751 750 -1 -770 750 -1 -1150 750 -1 -751 751 6 -752 751 -1 -771 751 -1 -1151 751 -1 -752 752 6 -753 752 -1 -772 752 -1 -1152 752 -1 -753 753 6 -754 753 -1 -773 753 -1 -1153 753 -1 -754 754 6 -755 754 -1 -774 754 -1 -1154 754 -1 -755 755 6 -756 755 -1 -775 755 -1 -1155 755 -1 -756 756 6 -757 756 -1 -776 756 -1 -1156 756 -1 -757 757 6 -758 757 -1 -777 757 -1 -1157 757 -1 -758 758 6 -759 758 -1 -778 758 -1 -1158 758 -1 -759 759 6 -760 759 -1 -779 759 -1 -1159 759 -1 -760 760 6 -780 760 -1 -1160 760 -1 -761 761 6 -762 761 -1 -781 761 -1 -1161 761 -1 -762 762 6 -763 762 -1 -782 762 -1 -1162 762 -1 -763 763 6 -764 763 -1 -783 763 -1 -1163 763 -1 -764 764 6 -765 764 -1 -784 764 -1 -1164 764 -1 -765 765 6 -766 765 -1 -785 765 -1 -1165 765 -1 -766 766 6 -767 766 -1 -786 766 -1 -1166 766 -1 -767 767 6 -768 767 -1 -787 767 -1 -1167 767 -1 -768 768 6 -769 768 -1 -788 768 -1 -1168 768 -1 -769 769 6 -770 769 -1 -789 769 -1 -1169 769 -1 -770 770 6 -771 770 -1 -790 770 -1 -1170 770 -1 -771 771 6 -772 771 -1 -791 771 -1 -1171 771 -1 -772 772 6 -773 772 -1 -792 772 -1 -1172 772 -1 -773 773 6 -774 773 -1 -793 773 -1 -1173 773 -1 -774 774 6 -775 774 -1 -794 774 -1 -1174 774 -1 -775 775 6 -776 775 -1 -795 775 -1 -1175 775 -1 -776 776 6 -777 776 -1 -796 776 -1 -1176 776 -1 -777 777 6 -778 777 -1 -797 777 -1 -1177 777 -1 -778 778 6 -779 778 -1 -798 778 -1 -1178 778 -1 -779 779 6 -780 779 -1 -799 779 -1 -1179 779 -1 -780 780 6 -800 780 -1 -1180 780 -1 -781 781 6 -782 781 -1 -1181 781 -1 -782 782 6 -783 782 -1 -1182 782 -1 -783 783 6 -784 783 -1 -1183 783 -1 -784 784 6 -785 784 -1 -1184 784 -1 -785 785 6 -786 785 -1 -1185 785 -1 -786 786 6 -787 786 -1 -1186 786 -1 -787 787 6 -788 787 -1 -1187 787 -1 -788 788 6 -789 788 -1 -1188 788 -1 -789 789 6 -790 789 -1 -1189 789 -1 -790 790 6 -791 790 -1 -1190 790 -1 -791 791 6 -792 791 -1 -1191 791 -1 -792 792 6 -793 792 -1 -1192 792 -1 -793 793 6 -794 793 -1 -1193 793 -1 -794 794 6 -795 794 -1 -1194 794 -1 -795 795 6 -796 795 -1 -1195 795 -1 -796 796 6 -797 796 -1 -1196 796 -1 -797 797 6 -798 797 -1 -1197 797 -1 -798 798 6 -799 798 -1 -1198 798 -1 -799 799 6 -800 799 -1 -1199 799 -1 -800 800 6 -1200 800 -1 -801 801 6 -802 801 -1 -821 801 -1 -1201 801 -1 -802 802 6 -803 802 -1 -822 802 -1 -1202 802 -1 -803 803 6 -804 803 -1 -823 803 -1 -1203 803 -1 -804 804 6 -805 804 -1 -824 804 -1 -1204 804 -1 -805 805 6 -806 805 -1 -825 805 -1 -1205 805 -1 -806 806 6 -807 806 -1 -826 806 -1 -1206 806 -1 -807 807 6 -808 807 -1 -827 807 -1 -1207 807 -1 -808 808 6 -809 808 -1 -828 808 -1 -1208 808 -1 -809 809 6 -810 809 -1 -829 809 -1 -1209 809 -1 -810 810 6 -811 810 -1 -830 810 -1 -1210 810 -1 -811 811 6 -812 811 -1 -831 811 -1 -1211 811 -1 -812 812 6 -813 812 -1 -832 812 -1 -1212 812 -1 -813 813 6 -814 813 -1 -833 813 -1 -1213 813 -1 -814 814 6 -815 814 -1 -834 814 -1 -1214 814 -1 -815 815 6 -816 815 -1 -835 815 -1 -1215 815 -1 -816 816 6 -817 816 -1 -836 816 -1 -1216 816 -1 -817 817 6 -818 817 -1 -837 817 -1 -1217 817 -1 -818 818 6 -819 818 -1 -838 818 -1 -1218 818 -1 -819 819 6 -820 819 -1 -839 819 -1 -1219 819 -1 -820 820 6 -840 820 -1 -1220 820 -1 -821 821 6 -822 821 -1 -841 821 -1 -1221 821 -1 -822 822 6 -823 822 -1 -842 822 -1 -1222 822 -1 -823 823 6 -824 823 -1 -843 823 -1 -1223 823 -1 -824 824 6 -825 824 -1 -844 824 -1 -1224 824 -1 -825 825 6 -826 825 -1 -845 825 -1 -1225 825 -1 -826 826 6 -827 826 -1 -846 826 -1 -1226 826 -1 -827 827 6 -828 827 -1 -847 827 -1 -1227 827 -1 -828 828 6 -829 828 -1 -848 828 -1 -1228 828 -1 -829 829 6 -830 829 -1 -849 829 -1 -1229 829 -1 -830 830 6 -831 830 -1 -850 830 -1 -1230 830 -1 -831 831 6 -832 831 -1 -851 831 -1 -1231 831 -1 -832 832 6 -833 832 -1 -852 832 -1 -1232 832 -1 -833 833 6 -834 833 -1 -853 833 -1 -1233 833 -1 -834 834 6 -835 834 -1 -854 834 -1 -1234 834 -1 -835 835 6 -836 835 -1 -855 835 -1 -1235 835 -1 -836 836 6 -837 836 -1 -856 836 -1 -1236 836 -1 -837 837 6 -838 837 -1 -857 837 -1 -1237 837 -1 -838 838 6 -839 838 -1 -858 838 -1 -1238 838 -1 -839 839 6 -840 839 -1 -859 839 -1 -1239 839 -1 -840 840 6 -860 840 -1 -1240 840 -1 -841 841 6 -842 841 -1 -861 841 -1 -1241 841 -1 -842 842 6 -843 842 -1 -862 842 -1 -1242 842 -1 -843 843 6 -844 843 -1 -863 843 -1 -1243 843 -1 -844 844 6 -845 844 -1 -864 844 -1 -1244 844 -1 -845 845 6 -846 845 -1 -865 845 -1 -1245 845 -1 -846 846 6 -847 846 -1 -866 846 -1 -1246 846 -1 -847 847 6 -848 847 -1 -867 847 -1 -1247 847 -1 -848 848 6 -849 848 -1 -868 848 -1 -1248 848 -1 -849 849 6 -850 849 -1 -869 849 -1 -1249 849 -1 -850 850 6 -851 850 -1 -870 850 -1 -1250 850 -1 -851 851 6 -852 851 -1 -871 851 -1 -1251 851 -1 -852 852 6 -853 852 -1 -872 852 -1 -1252 852 -1 -853 853 6 -854 853 -1 -873 853 -1 -1253 853 -1 -854 854 6 -855 854 -1 -874 854 -1 -1254 854 -1 -855 855 6 -856 855 -1 -875 855 -1 -1255 855 -1 -856 856 6 -857 856 -1 -876 856 -1 -1256 856 -1 -857 857 6 -858 857 -1 -877 857 -1 -1257 857 -1 -858 858 6 -859 858 -1 -878 858 -1 -1258 858 -1 -859 859 6 -860 859 -1 -879 859 -1 -1259 859 -1 -860 860 6 -880 860 -1 -1260 860 -1 -861 861 6 -862 861 -1 -881 861 -1 -1261 861 -1 -862 862 6 -863 862 -1 -882 862 -1 -1262 862 -1 -863 863 6 -864 863 -1 -883 863 -1 -1263 863 -1 -864 864 6 -865 864 -1 -884 864 -1 -1264 864 -1 -865 865 6 -866 865 -1 -885 865 -1 -1265 865 -1 -866 866 6 -867 866 -1 -886 866 -1 -1266 866 -1 -867 867 6 -868 867 -1 -887 867 -1 -1267 867 -1 -868 868 6 -869 868 -1 -888 868 -1 -1268 868 -1 -869 869 6 -870 869 -1 -889 869 -1 -1269 869 -1 -870 870 6 -871 870 -1 -890 870 -1 -1270 870 -1 -871 871 6 -872 871 -1 -891 871 -1 -1271 871 -1 -872 872 6 -873 872 -1 -892 872 -1 -1272 872 -1 -873 873 6 -874 873 -1 -893 873 -1 -1273 873 -1 -874 874 6 -875 874 -1 -894 874 -1 -1274 874 -1 -875 875 6 -876 875 -1 -895 875 -1 -1275 875 -1 -876 876 6 -877 876 -1 -896 876 -1 -1276 876 -1 -877 877 6 -878 877 -1 -897 877 -1 -1277 877 -1 -878 878 6 -879 878 -1 -898 878 -1 -1278 878 -1 -879 879 6 -880 879 -1 -899 879 -1 -1279 879 -1 -880 880 6 -900 880 -1 -1280 880 -1 -881 881 6 -882 881 -1 -901 881 -1 -1281 881 -1 -882 882 6 -883 882 -1 -902 882 -1 -1282 882 -1 -883 883 6 -884 883 -1 -903 883 -1 -1283 883 -1 -884 884 6 -885 884 -1 -904 884 -1 -1284 884 -1 -885 885 6 -886 885 -1 -905 885 -1 -1285 885 -1 -886 886 6 -887 886 -1 -906 886 -1 -1286 886 -1 -887 887 6 -888 887 -1 -907 887 -1 -1287 887 -1 -888 888 6 -889 888 -1 -908 888 -1 -1288 888 -1 -889 889 6 -890 889 -1 -909 889 -1 -1289 889 -1 -890 890 6 -891 890 -1 -910 890 -1 -1290 890 -1 -891 891 6 -892 891 -1 -911 891 -1 -1291 891 -1 -892 892 6 -893 892 -1 -912 892 -1 -1292 892 -1 -893 893 6 -894 893 -1 -913 893 -1 -1293 893 -1 -894 894 6 -895 894 -1 -914 894 -1 -1294 894 -1 -895 895 6 -896 895 -1 -915 895 -1 -1295 895 -1 -896 896 6 -897 896 -1 -916 896 -1 -1296 896 -1 -897 897 6 -898 897 -1 -917 897 -1 -1297 897 -1 -898 898 6 -899 898 -1 -918 898 -1 -1298 898 -1 -899 899 6 -900 899 -1 -919 899 -1 -1299 899 -1 -900 900 6 -920 900 -1 -1300 900 -1 -901 901 6 -902 901 -1 -921 901 -1 -1301 901 -1 -902 902 6 -903 902 -1 -922 902 -1 -1302 902 -1 -903 903 6 -904 903 -1 -923 903 -1 -1303 903 -1 -904 904 6 -905 904 -1 -924 904 -1 -1304 904 -1 -905 905 6 -906 905 -1 -925 905 -1 -1305 905 -1 -906 906 6 -907 906 -1 -926 906 -1 -1306 906 -1 -907 907 6 -908 907 -1 -927 907 -1 -1307 907 -1 -908 908 6 -909 908 -1 -928 908 -1 -1308 908 -1 -909 909 6 -910 909 -1 -929 909 -1 -1309 909 -1 -910 910 6 -911 910 -1 -930 910 -1 -1310 910 -1 -911 911 6 -912 911 -1 -931 911 -1 -1311 911 -1 -912 912 6 -913 912 -1 -932 912 -1 -1312 912 -1 -913 913 6 -914 913 -1 -933 913 -1 -1313 913 -1 -914 914 6 -915 914 -1 -934 914 -1 -1314 914 -1 -915 915 6 -916 915 -1 -935 915 -1 -1315 915 -1 -916 916 6 -917 916 -1 -936 916 -1 -1316 916 -1 -917 917 6 -918 917 -1 -937 917 -1 -1317 917 -1 -918 918 6 -919 918 -1 -938 918 -1 -1318 918 -1 -919 919 6 -920 919 -1 -939 919 -1 -1319 919 -1 -920 920 6 -940 920 -1 -1320 920 -1 -921 921 6 -922 921 -1 -941 921 -1 -1321 921 -1 -922 922 6 -923 922 -1 -942 922 -1 -1322 922 -1 -923 923 6 -924 923 -1 -943 923 -1 -1323 923 -1 -924 924 6 -925 924 -1 -944 924 -1 -1324 924 -1 -925 925 6 -926 925 -1 -945 925 -1 -1325 925 -1 -926 926 6 -927 926 -1 -946 926 -1 -1326 926 -1 -927 927 6 -928 927 -1 -947 927 -1 -1327 927 -1 -928 928 6 -929 928 -1 -948 928 -1 -1328 928 -1 -929 929 6 -930 929 -1 -949 929 -1 -1329 929 -1 -930 930 6 -931 930 -1 -950 930 -1 -1330 930 -1 -931 931 6 -932 931 -1 -951 931 -1 -1331 931 -1 -932 932 6 -933 932 -1 -952 932 -1 -1332 932 -1 -933 933 6 -934 933 -1 -953 933 -1 -1333 933 -1 -934 934 6 -935 934 -1 -954 934 -1 -1334 934 -1 -935 935 6 -936 935 -1 -955 935 -1 -1335 935 -1 -936 936 6 -937 936 -1 -956 936 -1 -1336 936 -1 -937 937 6 -938 937 -1 -957 937 -1 -1337 937 -1 -938 938 6 -939 938 -1 -958 938 -1 -1338 938 -1 -939 939 6 -940 939 -1 -959 939 -1 -1339 939 -1 -940 940 6 -960 940 -1 -1340 940 -1 -941 941 6 -942 941 -1 -961 941 -1 -1341 941 -1 -942 942 6 -943 942 -1 -962 942 -1 -1342 942 -1 -943 943 6 -944 943 -1 -963 943 -1 -1343 943 -1 -944 944 6 -945 944 -1 -964 944 -1 -1344 944 -1 -945 945 6 -946 945 -1 -965 945 -1 -1345 945 -1 -946 946 6 -947 946 -1 -966 946 -1 -1346 946 -1 -947 947 6 -948 947 -1 -967 947 -1 -1347 947 -1 -948 948 6 -949 948 -1 -968 948 -1 -1348 948 -1 -949 949 6 -950 949 -1 -969 949 -1 -1349 949 -1 -950 950 6 -951 950 -1 -970 950 -1 -1350 950 -1 -951 951 6 -952 951 -1 -971 951 -1 -1351 951 -1 -952 952 6 -953 952 -1 -972 952 -1 -1352 952 -1 -953 953 6 -954 953 -1 -973 953 -1 -1353 953 -1 -954 954 6 -955 954 -1 -974 954 -1 -1354 954 -1 -955 955 6 -956 955 -1 -975 955 -1 -1355 955 -1 -956 956 6 -957 956 -1 -976 956 -1 -1356 956 -1 -957 957 6 -958 957 -1 -977 957 -1 -1357 957 -1 -958 958 6 -959 958 -1 -978 958 -1 -1358 958 -1 -959 959 6 -960 959 -1 -979 959 -1 -1359 959 -1 -960 960 6 -980 960 -1 -1360 960 -1 -961 961 6 -962 961 -1 -981 961 -1 -1361 961 -1 -962 962 6 -963 962 -1 -982 962 -1 -1362 962 -1 -963 963 6 -964 963 -1 -983 963 -1 -1363 963 -1 -964 964 6 -965 964 -1 -984 964 -1 -1364 964 -1 -965 965 6 -966 965 -1 -985 965 -1 -1365 965 -1 -966 966 6 -967 966 -1 -986 966 -1 -1366 966 -1 -967 967 6 -968 967 -1 -987 967 -1 -1367 967 -1 -968 968 6 -969 968 -1 -988 968 -1 -1368 968 -1 -969 969 6 -970 969 -1 -989 969 -1 -1369 969 -1 -970 970 6 -971 970 -1 -990 970 -1 -1370 970 -1 -971 971 6 -972 971 -1 -991 971 -1 -1371 971 -1 -972 972 6 -973 972 -1 -992 972 -1 -1372 972 -1 -973 973 6 -974 973 -1 -993 973 -1 -1373 973 -1 -974 974 6 -975 974 -1 -994 974 -1 -1374 974 -1 -975 975 6 -976 975 -1 -995 975 -1 -1375 975 -1 -976 976 6 -977 976 -1 -996 976 -1 -1376 976 -1 -977 977 6 -978 977 -1 -997 977 -1 -1377 977 -1 -978 978 6 -979 978 -1 -998 978 -1 -1378 978 -1 -979 979 6 -980 979 -1 -999 979 -1 -1379 979 -1 -980 980 6 -1000 980 -1 -1380 980 -1 -981 981 6 -982 981 -1 -1001 981 -1 -1381 981 -1 -982 982 6 -983 982 -1 -1002 982 -1 -1382 982 -1 -983 983 6 -984 983 -1 -1003 983 -1 -1383 983 -1 -984 984 6 -985 984 -1 -1004 984 -1 -1384 984 -1 -985 985 6 -986 985 -1 -1005 985 -1 -1385 985 -1 -986 986 6 -987 986 -1 -1006 986 -1 -1386 986 -1 -987 987 6 -988 987 -1 -1007 987 -1 -1387 987 -1 -988 988 6 -989 988 -1 -1008 988 -1 -1388 988 -1 -989 989 6 -990 989 -1 -1009 989 -1 -1389 989 -1 -990 990 6 -991 990 -1 -1010 990 -1 -1390 990 -1 -991 991 6 -992 991 -1 -1011 991 -1 -1391 991 -1 -992 992 6 -993 992 -1 -1012 992 -1 -1392 992 -1 -993 993 6 -994 993 -1 -1013 993 -1 -1393 993 -1 -994 994 6 -995 994 -1 -1014 994 -1 -1394 994 -1 -995 995 6 -996 995 -1 -1015 995 -1 -1395 995 -1 -996 996 6 -997 996 -1 -1016 996 -1 -1396 996 -1 -997 997 6 -998 997 -1 -1017 997 -1 -1397 997 -1 -998 998 6 -999 998 -1 -1018 998 -1 -1398 998 -1 -999 999 6 -1000 999 -1 -1019 999 -1 -1399 999 -1 -1000 1000 6 -1020 1000 -1 -1400 1000 -1 -1001 1001 6 -1002 1001 -1 -1021 1001 -1 -1401 1001 -1 -1002 1002 6 -1003 1002 -1 -1022 1002 -1 -1402 1002 -1 -1003 1003 6 -1004 1003 -1 -1023 1003 -1 -1403 1003 -1 -1004 1004 6 -1005 1004 -1 -1024 1004 -1 -1404 1004 -1 -1005 1005 6 -1006 1005 -1 -1025 1005 -1 -1405 1005 -1 -1006 1006 6 -1007 1006 -1 -1026 1006 -1 -1406 1006 -1 -1007 1007 6 -1008 1007 -1 -1027 1007 -1 -1407 1007 -1 -1008 1008 6 -1009 1008 -1 -1028 1008 -1 -1408 1008 -1 -1009 1009 6 -1010 1009 -1 -1029 1009 -1 -1409 1009 -1 -1010 1010 6 -1011 1010 -1 -1030 1010 -1 -1410 1010 -1 -1011 1011 6 -1012 1011 -1 -1031 1011 -1 -1411 1011 -1 -1012 1012 6 -1013 1012 -1 -1032 1012 -1 -1412 1012 -1 -1013 1013 6 -1014 1013 -1 -1033 1013 -1 -1413 1013 -1 -1014 1014 6 -1015 1014 -1 -1034 1014 -1 -1414 1014 -1 -1015 1015 6 -1016 1015 -1 -1035 1015 -1 -1415 1015 -1 -1016 1016 6 -1017 1016 -1 -1036 1016 -1 -1416 1016 -1 -1017 1017 6 -1018 1017 -1 -1037 1017 -1 -1417 1017 -1 -1018 1018 6 -1019 1018 -1 -1038 1018 -1 -1418 1018 -1 -1019 1019 6 -1020 1019 -1 -1039 1019 -1 -1419 1019 -1 -1020 1020 6 -1040 1020 -1 -1420 1020 -1 -1021 1021 6 -1022 1021 -1 -1041 1021 -1 -1421 1021 -1 -1022 1022 6 -1023 1022 -1 -1042 1022 -1 -1422 1022 -1 -1023 1023 6 -1024 1023 -1 -1043 1023 -1 -1423 1023 -1 -1024 1024 6 -1025 1024 -1 -1044 1024 -1 -1424 1024 -1 -1025 1025 6 -1026 1025 -1 -1045 1025 -1 -1425 1025 -1 -1026 1026 6 -1027 1026 -1 -1046 1026 -1 -1426 1026 -1 -1027 1027 6 -1028 1027 -1 -1047 1027 -1 -1427 1027 -1 -1028 1028 6 -1029 1028 -1 -1048 1028 -1 -1428 1028 -1 -1029 1029 6 -1030 1029 -1 -1049 1029 -1 -1429 1029 -1 -1030 1030 6 -1031 1030 -1 -1050 1030 -1 -1430 1030 -1 -1031 1031 6 -1032 1031 -1 -1051 1031 -1 -1431 1031 -1 -1032 1032 6 -1033 1032 -1 -1052 1032 -1 -1432 1032 -1 -1033 1033 6 -1034 1033 -1 -1053 1033 -1 -1433 1033 -1 -1034 1034 6 -1035 1034 -1 -1054 1034 -1 -1434 1034 -1 -1035 1035 6 -1036 1035 -1 -1055 1035 -1 -1435 1035 -1 -1036 1036 6 -1037 1036 -1 -1056 1036 -1 -1436 1036 -1 -1037 1037 6 -1038 1037 -1 -1057 1037 -1 -1437 1037 -1 -1038 1038 6 -1039 1038 -1 -1058 1038 -1 -1438 1038 -1 -1039 1039 6 -1040 1039 -1 -1059 1039 -1 -1439 1039 -1 -1040 1040 6 -1060 1040 -1 -1440 1040 -1 -1041 1041 6 -1042 1041 -1 -1061 1041 -1 -1441 1041 -1 -1042 1042 6 -1043 1042 -1 -1062 1042 -1 -1442 1042 -1 -1043 1043 6 -1044 1043 -1 -1063 1043 -1 -1443 1043 -1 -1044 1044 6 -1045 1044 -1 -1064 1044 -1 -1444 1044 -1 -1045 1045 6 -1046 1045 -1 -1065 1045 -1 -1445 1045 -1 -1046 1046 6 -1047 1046 -1 -1066 1046 -1 -1446 1046 -1 -1047 1047 6 -1048 1047 -1 -1067 1047 -1 -1447 1047 -1 -1048 1048 6 -1049 1048 -1 -1068 1048 -1 -1448 1048 -1 -1049 1049 6 -1050 1049 -1 -1069 1049 -1 -1449 1049 -1 -1050 1050 6 -1051 1050 -1 -1070 1050 -1 -1450 1050 -1 -1051 1051 6 -1052 1051 -1 -1071 1051 -1 -1451 1051 -1 -1052 1052 6 -1053 1052 -1 -1072 1052 -1 -1452 1052 -1 -1053 1053 6 -1054 1053 -1 -1073 1053 -1 -1453 1053 -1 -1054 1054 6 -1055 1054 -1 -1074 1054 -1 -1454 1054 -1 -1055 1055 6 -1056 1055 -1 -1075 1055 -1 -1455 1055 -1 -1056 1056 6 -1057 1056 -1 -1076 1056 -1 -1456 1056 -1 -1057 1057 6 -1058 1057 -1 -1077 1057 -1 -1457 1057 -1 -1058 1058 6 -1059 1058 -1 -1078 1058 -1 -1458 1058 -1 -1059 1059 6 -1060 1059 -1 -1079 1059 -1 -1459 1059 -1 -1060 1060 6 -1080 1060 -1 -1460 1060 -1 -1061 1061 6 -1062 1061 -1 -1081 1061 -1 -1461 1061 -1 -1062 1062 6 -1063 1062 -1 -1082 1062 -1 -1462 1062 -1 -1063 1063 6 -1064 1063 -1 -1083 1063 -1 -1463 1063 -1 -1064 1064 6 -1065 1064 -1 -1084 1064 -1 -1464 1064 -1 -1065 1065 6 -1066 1065 -1 -1085 1065 -1 -1465 1065 -1 -1066 1066 6 -1067 1066 -1 -1086 1066 -1 -1466 1066 -1 -1067 1067 6 -1068 1067 -1 -1087 1067 -1 -1467 1067 -1 -1068 1068 6 -1069 1068 -1 -1088 1068 -1 -1468 1068 -1 -1069 1069 6 -1070 1069 -1 -1089 1069 -1 -1469 1069 -1 -1070 1070 6 -1071 1070 -1 -1090 1070 -1 -1470 1070 -1 -1071 1071 6 -1072 1071 -1 -1091 1071 -1 -1471 1071 -1 -1072 1072 6 -1073 1072 -1 -1092 1072 -1 -1472 1072 -1 -1073 1073 6 -1074 1073 -1 -1093 1073 -1 -1473 1073 -1 -1074 1074 6 -1075 1074 -1 -1094 1074 -1 -1474 1074 -1 -1075 1075 6 -1076 1075 -1 -1095 1075 -1 -1475 1075 -1 -1076 1076 6 -1077 1076 -1 -1096 1076 -1 -1476 1076 -1 -1077 1077 6 -1078 1077 -1 -1097 1077 -1 -1477 1077 -1 -1078 1078 6 -1079 1078 -1 -1098 1078 -1 -1478 1078 -1 -1079 1079 6 -1080 1079 -1 -1099 1079 -1 -1479 1079 -1 -1080 1080 6 -1100 1080 -1 -1480 1080 -1 -1081 1081 6 -1082 1081 -1 -1101 1081 -1 -1481 1081 -1 -1082 1082 6 -1083 1082 -1 -1102 1082 -1 -1482 1082 -1 -1083 1083 6 -1084 1083 -1 -1103 1083 -1 -1483 1083 -1 -1084 1084 6 -1085 1084 -1 -1104 1084 -1 -1484 1084 -1 -1085 1085 6 -1086 1085 -1 -1105 1085 -1 -1485 1085 -1 -1086 1086 6 -1087 1086 -1 -1106 1086 -1 -1486 1086 -1 -1087 1087 6 -1088 1087 -1 -1107 1087 -1 -1487 1087 -1 -1088 1088 6 -1089 1088 -1 -1108 1088 -1 -1488 1088 -1 -1089 1089 6 -1090 1089 -1 -1109 1089 -1 -1489 1089 -1 -1090 1090 6 -1091 1090 -1 -1110 1090 -1 -1490 1090 -1 -1091 1091 6 -1092 1091 -1 -1111 1091 -1 -1491 1091 -1 -1092 1092 6 -1093 1092 -1 -1112 1092 -1 -1492 1092 -1 -1093 1093 6 -1094 1093 -1 -1113 1093 -1 -1493 1093 -1 -1094 1094 6 -1095 1094 -1 -1114 1094 -1 -1494 1094 -1 -1095 1095 6 -1096 1095 -1 -1115 1095 -1 -1495 1095 -1 -1096 1096 6 -1097 1096 -1 -1116 1096 -1 -1496 1096 -1 -1097 1097 6 -1098 1097 -1 -1117 1097 -1 -1497 1097 -1 -1098 1098 6 -1099 1098 -1 -1118 1098 -1 -1498 1098 -1 -1099 1099 6 -1100 1099 -1 -1119 1099 -1 -1499 1099 -1 -1100 1100 6 -1120 1100 -1 -1500 1100 -1 -1101 1101 6 -1102 1101 -1 -1121 1101 -1 -1501 1101 -1 -1102 1102 6 -1103 1102 -1 -1122 1102 -1 -1502 1102 -1 -1103 1103 6 -1104 1103 -1 -1123 1103 -1 -1503 1103 -1 -1104 1104 6 -1105 1104 -1 -1124 1104 -1 -1504 1104 -1 -1105 1105 6 -1106 1105 -1 -1125 1105 -1 -1505 1105 -1 -1106 1106 6 -1107 1106 -1 -1126 1106 -1 -1506 1106 -1 -1107 1107 6 -1108 1107 -1 -1127 1107 -1 -1507 1107 -1 -1108 1108 6 -1109 1108 -1 -1128 1108 -1 -1508 1108 -1 -1109 1109 6 -1110 1109 -1 -1129 1109 -1 -1509 1109 -1 -1110 1110 6 -1111 1110 -1 -1130 1110 -1 -1510 1110 -1 -1111 1111 6 -1112 1111 -1 -1131 1111 -1 -1511 1111 -1 -1112 1112 6 -1113 1112 -1 -1132 1112 -1 -1512 1112 -1 -1113 1113 6 -1114 1113 -1 -1133 1113 -1 -1513 1113 -1 -1114 1114 6 -1115 1114 -1 -1134 1114 -1 -1514 1114 -1 -1115 1115 6 -1116 1115 -1 -1135 1115 -1 -1515 1115 -1 -1116 1116 6 -1117 1116 -1 -1136 1116 -1 -1516 1116 -1 -1117 1117 6 -1118 1117 -1 -1137 1117 -1 -1517 1117 -1 -1118 1118 6 -1119 1118 -1 -1138 1118 -1 -1518 1118 -1 -1119 1119 6 -1120 1119 -1 -1139 1119 -1 -1519 1119 -1 -1120 1120 6 -1140 1120 -1 -1520 1120 -1 -1121 1121 6 -1122 1121 -1 -1141 1121 -1 -1521 1121 -1 -1122 1122 6 -1123 1122 -1 -1142 1122 -1 -1522 1122 -1 -1123 1123 6 -1124 1123 -1 -1143 1123 -1 -1523 1123 -1 -1124 1124 6 -1125 1124 -1 -1144 1124 -1 -1524 1124 -1 -1125 1125 6 -1126 1125 -1 -1145 1125 -1 -1525 1125 -1 -1126 1126 6 -1127 1126 -1 -1146 1126 -1 -1526 1126 -1 -1127 1127 6 -1128 1127 -1 -1147 1127 -1 -1527 1127 -1 -1128 1128 6 -1129 1128 -1 -1148 1128 -1 -1528 1128 -1 -1129 1129 6 -1130 1129 -1 -1149 1129 -1 -1529 1129 -1 -1130 1130 6 -1131 1130 -1 -1150 1130 -1 -1530 1130 -1 -1131 1131 6 -1132 1131 -1 -1151 1131 -1 -1531 1131 -1 -1132 1132 6 -1133 1132 -1 -1152 1132 -1 -1532 1132 -1 -1133 1133 6 -1134 1133 -1 -1153 1133 -1 -1533 1133 -1 -1134 1134 6 -1135 1134 -1 -1154 1134 -1 -1534 1134 -1 -1135 1135 6 -1136 1135 -1 -1155 1135 -1 -1535 1135 -1 -1136 1136 6 -1137 1136 -1 -1156 1136 -1 -1536 1136 -1 -1137 1137 6 -1138 1137 -1 -1157 1137 -1 -1537 1137 -1 -1138 1138 6 -1139 1138 -1 -1158 1138 -1 -1538 1138 -1 -1139 1139 6 -1140 1139 -1 -1159 1139 -1 -1539 1139 -1 -1140 1140 6 -1160 1140 -1 -1540 1140 -1 -1141 1141 6 -1142 1141 -1 -1161 1141 -1 -1541 1141 -1 -1142 1142 6 -1143 1142 -1 -1162 1142 -1 -1542 1142 -1 -1143 1143 6 -1144 1143 -1 -1163 1143 -1 -1543 1143 -1 -1144 1144 6 -1145 1144 -1 -1164 1144 -1 -1544 1144 -1 -1145 1145 6 -1146 1145 -1 -1165 1145 -1 -1545 1145 -1 -1146 1146 6 -1147 1146 -1 -1166 1146 -1 -1546 1146 -1 -1147 1147 6 -1148 1147 -1 -1167 1147 -1 -1547 1147 -1 -1148 1148 6 -1149 1148 -1 -1168 1148 -1 -1548 1148 -1 -1149 1149 6 -1150 1149 -1 -1169 1149 -1 -1549 1149 -1 -1150 1150 6 -1151 1150 -1 -1170 1150 -1 -1550 1150 -1 -1151 1151 6 -1152 1151 -1 -1171 1151 -1 -1551 1151 -1 -1152 1152 6 -1153 1152 -1 -1172 1152 -1 -1552 1152 -1 -1153 1153 6 -1154 1153 -1 -1173 1153 -1 -1553 1153 -1 -1154 1154 6 -1155 1154 -1 -1174 1154 -1 -1554 1154 -1 -1155 1155 6 -1156 1155 -1 -1175 1155 -1 -1555 1155 -1 -1156 1156 6 -1157 1156 -1 -1176 1156 -1 -1556 1156 -1 -1157 1157 6 -1158 1157 -1 -1177 1157 -1 -1557 1157 -1 -1158 1158 6 -1159 1158 -1 -1178 1158 -1 -1558 1158 -1 -1159 1159 6 -1160 1159 -1 -1179 1159 -1 -1559 1159 -1 -1160 1160 6 -1180 1160 -1 -1560 1160 -1 -1161 1161 6 -1162 1161 -1 -1181 1161 -1 -1561 1161 -1 -1162 1162 6 -1163 1162 -1 -1182 1162 -1 -1562 1162 -1 -1163 1163 6 -1164 1163 -1 -1183 1163 -1 -1563 1163 -1 -1164 1164 6 -1165 1164 -1 -1184 1164 -1 -1564 1164 -1 -1165 1165 6 -1166 1165 -1 -1185 1165 -1 -1565 1165 -1 -1166 1166 6 -1167 1166 -1 -1186 1166 -1 -1566 1166 -1 -1167 1167 6 -1168 1167 -1 -1187 1167 -1 -1567 1167 -1 -1168 1168 6 -1169 1168 -1 -1188 1168 -1 -1568 1168 -1 -1169 1169 6 -1170 1169 -1 -1189 1169 -1 -1569 1169 -1 -1170 1170 6 -1171 1170 -1 -1190 1170 -1 -1570 1170 -1 -1171 1171 6 -1172 1171 -1 -1191 1171 -1 -1571 1171 -1 -1172 1172 6 -1173 1172 -1 -1192 1172 -1 -1572 1172 -1 -1173 1173 6 -1174 1173 -1 -1193 1173 -1 -1573 1173 -1 -1174 1174 6 -1175 1174 -1 -1194 1174 -1 -1574 1174 -1 -1175 1175 6 -1176 1175 -1 -1195 1175 -1 -1575 1175 -1 -1176 1176 6 -1177 1176 -1 -1196 1176 -1 -1576 1176 -1 -1177 1177 6 -1178 1177 -1 -1197 1177 -1 -1577 1177 -1 -1178 1178 6 -1179 1178 -1 -1198 1178 -1 -1578 1178 -1 -1179 1179 6 -1180 1179 -1 -1199 1179 -1 -1579 1179 -1 -1180 1180 6 -1200 1180 -1 -1580 1180 -1 -1181 1181 6 -1182 1181 -1 -1581 1181 -1 -1182 1182 6 -1183 1182 -1 -1582 1182 -1 -1183 1183 6 -1184 1183 -1 -1583 1183 -1 -1184 1184 6 -1185 1184 -1 -1584 1184 -1 -1185 1185 6 -1186 1185 -1 -1585 1185 -1 -1186 1186 6 -1187 1186 -1 -1586 1186 -1 -1187 1187 6 -1188 1187 -1 -1587 1187 -1 -1188 1188 6 -1189 1188 -1 -1588 1188 -1 -1189 1189 6 -1190 1189 -1 -1589 1189 -1 -1190 1190 6 -1191 1190 -1 -1590 1190 -1 -1191 1191 6 -1192 1191 -1 -1591 1191 -1 -1192 1192 6 -1193 1192 -1 -1592 1192 -1 -1193 1193 6 -1194 1193 -1 -1593 1193 -1 -1194 1194 6 -1195 1194 -1 -1594 1194 -1 -1195 1195 6 -1196 1195 -1 -1595 1195 -1 -1196 1196 6 -1197 1196 -1 -1596 1196 -1 -1197 1197 6 -1198 1197 -1 -1597 1197 -1 -1198 1198 6 -1199 1198 -1 -1598 1198 -1 -1199 1199 6 -1200 1199 -1 -1599 1199 -1 -1200 1200 6 -1600 1200 -1 -1201 1201 6 -1202 1201 -1 -1221 1201 -1 -1601 1201 -1 -1202 1202 6 -1203 1202 -1 -1222 1202 -1 -1602 1202 -1 -1203 1203 6 -1204 1203 -1 -1223 1203 -1 -1603 1203 -1 -1204 1204 6 -1205 1204 -1 -1224 1204 -1 -1604 1204 -1 -1205 1205 6 -1206 1205 -1 -1225 1205 -1 -1605 1205 -1 -1206 1206 6 -1207 1206 -1 -1226 1206 -1 -1606 1206 -1 -1207 1207 6 -1208 1207 -1 -1227 1207 -1 -1607 1207 -1 -1208 1208 6 -1209 1208 -1 -1228 1208 -1 -1608 1208 -1 -1209 1209 6 -1210 1209 -1 -1229 1209 -1 -1609 1209 -1 -1210 1210 6 -1211 1210 -1 -1230 1210 -1 -1610 1210 -1 -1211 1211 6 -1212 1211 -1 -1231 1211 -1 -1611 1211 -1 -1212 1212 6 -1213 1212 -1 -1232 1212 -1 -1612 1212 -1 -1213 1213 6 -1214 1213 -1 -1233 1213 -1 -1613 1213 -1 -1214 1214 6 -1215 1214 -1 -1234 1214 -1 -1614 1214 -1 -1215 1215 6 -1216 1215 -1 -1235 1215 -1 -1615 1215 -1 -1216 1216 6 -1217 1216 -1 -1236 1216 -1 -1616 1216 -1 -1217 1217 6 -1218 1217 -1 -1237 1217 -1 -1617 1217 -1 -1218 1218 6 -1219 1218 -1 -1238 1218 -1 -1618 1218 -1 -1219 1219 6 -1220 1219 -1 -1239 1219 -1 -1619 1219 -1 -1220 1220 6 -1240 1220 -1 -1620 1220 -1 -1221 1221 6 -1222 1221 -1 -1241 1221 -1 -1621 1221 -1 -1222 1222 6 -1223 1222 -1 -1242 1222 -1 -1622 1222 -1 -1223 1223 6 -1224 1223 -1 -1243 1223 -1 -1623 1223 -1 -1224 1224 6 -1225 1224 -1 -1244 1224 -1 -1624 1224 -1 -1225 1225 6 -1226 1225 -1 -1245 1225 -1 -1625 1225 -1 -1226 1226 6 -1227 1226 -1 -1246 1226 -1 -1626 1226 -1 -1227 1227 6 -1228 1227 -1 -1247 1227 -1 -1627 1227 -1 -1228 1228 6 -1229 1228 -1 -1248 1228 -1 -1628 1228 -1 -1229 1229 6 -1230 1229 -1 -1249 1229 -1 -1629 1229 -1 -1230 1230 6 -1231 1230 -1 -1250 1230 -1 -1630 1230 -1 -1231 1231 6 -1232 1231 -1 -1251 1231 -1 -1631 1231 -1 -1232 1232 6 -1233 1232 -1 -1252 1232 -1 -1632 1232 -1 -1233 1233 6 -1234 1233 -1 -1253 1233 -1 -1633 1233 -1 -1234 1234 6 -1235 1234 -1 -1254 1234 -1 -1634 1234 -1 -1235 1235 6 -1236 1235 -1 -1255 1235 -1 -1635 1235 -1 -1236 1236 6 -1237 1236 -1 -1256 1236 -1 -1636 1236 -1 -1237 1237 6 -1238 1237 -1 -1257 1237 -1 -1637 1237 -1 -1238 1238 6 -1239 1238 -1 -1258 1238 -1 -1638 1238 -1 -1239 1239 6 -1240 1239 -1 -1259 1239 -1 -1639 1239 -1 -1240 1240 6 -1260 1240 -1 -1640 1240 -1 -1241 1241 6 -1242 1241 -1 -1261 1241 -1 -1641 1241 -1 -1242 1242 6 -1243 1242 -1 -1262 1242 -1 -1642 1242 -1 -1243 1243 6 -1244 1243 -1 -1263 1243 -1 -1643 1243 -1 -1244 1244 6 -1245 1244 -1 -1264 1244 -1 -1644 1244 -1 -1245 1245 6 -1246 1245 -1 -1265 1245 -1 -1645 1245 -1 -1246 1246 6 -1247 1246 -1 -1266 1246 -1 -1646 1246 -1 -1247 1247 6 -1248 1247 -1 -1267 1247 -1 -1647 1247 -1 -1248 1248 6 -1249 1248 -1 -1268 1248 -1 -1648 1248 -1 -1249 1249 6 -1250 1249 -1 -1269 1249 -1 -1649 1249 -1 -1250 1250 6 -1251 1250 -1 -1270 1250 -1 -1650 1250 -1 -1251 1251 6 -1252 1251 -1 -1271 1251 -1 -1651 1251 -1 -1252 1252 6 -1253 1252 -1 -1272 1252 -1 -1652 1252 -1 -1253 1253 6 -1254 1253 -1 -1273 1253 -1 -1653 1253 -1 -1254 1254 6 -1255 1254 -1 -1274 1254 -1 -1654 1254 -1 -1255 1255 6 -1256 1255 -1 -1275 1255 -1 -1655 1255 -1 -1256 1256 6 -1257 1256 -1 -1276 1256 -1 -1656 1256 -1 -1257 1257 6 -1258 1257 -1 -1277 1257 -1 -1657 1257 -1 -1258 1258 6 -1259 1258 -1 -1278 1258 -1 -1658 1258 -1 -1259 1259 6 -1260 1259 -1 -1279 1259 -1 -1659 1259 -1 -1260 1260 6 -1280 1260 -1 -1660 1260 -1 -1261 1261 6 -1262 1261 -1 -1281 1261 -1 -1661 1261 -1 -1262 1262 6 -1263 1262 -1 -1282 1262 -1 -1662 1262 -1 -1263 1263 6 -1264 1263 -1 -1283 1263 -1 -1663 1263 -1 -1264 1264 6 -1265 1264 -1 -1284 1264 -1 -1664 1264 -1 -1265 1265 6 -1266 1265 -1 -1285 1265 -1 -1665 1265 -1 -1266 1266 6 -1267 1266 -1 -1286 1266 -1 -1666 1266 -1 -1267 1267 6 -1268 1267 -1 -1287 1267 -1 -1667 1267 -1 -1268 1268 6 -1269 1268 -1 -1288 1268 -1 -1668 1268 -1 -1269 1269 6 -1270 1269 -1 -1289 1269 -1 -1669 1269 -1 -1270 1270 6 -1271 1270 -1 -1290 1270 -1 -1670 1270 -1 -1271 1271 6 -1272 1271 -1 -1291 1271 -1 -1671 1271 -1 -1272 1272 6 -1273 1272 -1 -1292 1272 -1 -1672 1272 -1 -1273 1273 6 -1274 1273 -1 -1293 1273 -1 -1673 1273 -1 -1274 1274 6 -1275 1274 -1 -1294 1274 -1 -1674 1274 -1 -1275 1275 6 -1276 1275 -1 -1295 1275 -1 -1675 1275 -1 -1276 1276 6 -1277 1276 -1 -1296 1276 -1 -1676 1276 -1 -1277 1277 6 -1278 1277 -1 -1297 1277 -1 -1677 1277 -1 -1278 1278 6 -1279 1278 -1 -1298 1278 -1 -1678 1278 -1 -1279 1279 6 -1280 1279 -1 -1299 1279 -1 -1679 1279 -1 -1280 1280 6 -1300 1280 -1 -1680 1280 -1 -1281 1281 6 -1282 1281 -1 -1301 1281 -1 -1681 1281 -1 -1282 1282 6 -1283 1282 -1 -1302 1282 -1 -1682 1282 -1 -1283 1283 6 -1284 1283 -1 -1303 1283 -1 -1683 1283 -1 -1284 1284 6 -1285 1284 -1 -1304 1284 -1 -1684 1284 -1 -1285 1285 6 -1286 1285 -1 -1305 1285 -1 -1685 1285 -1 -1286 1286 6 -1287 1286 -1 -1306 1286 -1 -1686 1286 -1 -1287 1287 6 -1288 1287 -1 -1307 1287 -1 -1687 1287 -1 -1288 1288 6 -1289 1288 -1 -1308 1288 -1 -1688 1288 -1 -1289 1289 6 -1290 1289 -1 -1309 1289 -1 -1689 1289 -1 -1290 1290 6 -1291 1290 -1 -1310 1290 -1 -1690 1290 -1 -1291 1291 6 -1292 1291 -1 -1311 1291 -1 -1691 1291 -1 -1292 1292 6 -1293 1292 -1 -1312 1292 -1 -1692 1292 -1 -1293 1293 6 -1294 1293 -1 -1313 1293 -1 -1693 1293 -1 -1294 1294 6 -1295 1294 -1 -1314 1294 -1 -1694 1294 -1 -1295 1295 6 -1296 1295 -1 -1315 1295 -1 -1695 1295 -1 -1296 1296 6 -1297 1296 -1 -1316 1296 -1 -1696 1296 -1 -1297 1297 6 -1298 1297 -1 -1317 1297 -1 -1697 1297 -1 -1298 1298 6 -1299 1298 -1 -1318 1298 -1 -1698 1298 -1 -1299 1299 6 -1300 1299 -1 -1319 1299 -1 -1699 1299 -1 -1300 1300 6 -1320 1300 -1 -1700 1300 -1 -1301 1301 6 -1302 1301 -1 -1321 1301 -1 -1701 1301 -1 -1302 1302 6 -1303 1302 -1 -1322 1302 -1 -1702 1302 -1 -1303 1303 6 -1304 1303 -1 -1323 1303 -1 -1703 1303 -1 -1304 1304 6 -1305 1304 -1 -1324 1304 -1 -1704 1304 -1 -1305 1305 6 -1306 1305 -1 -1325 1305 -1 -1705 1305 -1 -1306 1306 6 -1307 1306 -1 -1326 1306 -1 -1706 1306 -1 -1307 1307 6 -1308 1307 -1 -1327 1307 -1 -1707 1307 -1 -1308 1308 6 -1309 1308 -1 -1328 1308 -1 -1708 1308 -1 -1309 1309 6 -1310 1309 -1 -1329 1309 -1 -1709 1309 -1 -1310 1310 6 -1311 1310 -1 -1330 1310 -1 -1710 1310 -1 -1311 1311 6 -1312 1311 -1 -1331 1311 -1 -1711 1311 -1 -1312 1312 6 -1313 1312 -1 -1332 1312 -1 -1712 1312 -1 -1313 1313 6 -1314 1313 -1 -1333 1313 -1 -1713 1313 -1 -1314 1314 6 -1315 1314 -1 -1334 1314 -1 -1714 1314 -1 -1315 1315 6 -1316 1315 -1 -1335 1315 -1 -1715 1315 -1 -1316 1316 6 -1317 1316 -1 -1336 1316 -1 -1716 1316 -1 -1317 1317 6 -1318 1317 -1 -1337 1317 -1 -1717 1317 -1 -1318 1318 6 -1319 1318 -1 -1338 1318 -1 -1718 1318 -1 -1319 1319 6 -1320 1319 -1 -1339 1319 -1 -1719 1319 -1 -1320 1320 6 -1340 1320 -1 -1720 1320 -1 -1321 1321 6 -1322 1321 -1 -1341 1321 -1 -1721 1321 -1 -1322 1322 6 -1323 1322 -1 -1342 1322 -1 -1722 1322 -1 -1323 1323 6 -1324 1323 -1 -1343 1323 -1 -1723 1323 -1 -1324 1324 6 -1325 1324 -1 -1344 1324 -1 -1724 1324 -1 -1325 1325 6 -1326 1325 -1 -1345 1325 -1 -1725 1325 -1 -1326 1326 6 -1327 1326 -1 -1346 1326 -1 -1726 1326 -1 -1327 1327 6 -1328 1327 -1 -1347 1327 -1 -1727 1327 -1 -1328 1328 6 -1329 1328 -1 -1348 1328 -1 -1728 1328 -1 -1329 1329 6 -1330 1329 -1 -1349 1329 -1 -1729 1329 -1 -1330 1330 6 -1331 1330 -1 -1350 1330 -1 -1730 1330 -1 -1331 1331 6 -1332 1331 -1 -1351 1331 -1 -1731 1331 -1 -1332 1332 6 -1333 1332 -1 -1352 1332 -1 -1732 1332 -1 -1333 1333 6 -1334 1333 -1 -1353 1333 -1 -1733 1333 -1 -1334 1334 6 -1335 1334 -1 -1354 1334 -1 -1734 1334 -1 -1335 1335 6 -1336 1335 -1 -1355 1335 -1 -1735 1335 -1 -1336 1336 6 -1337 1336 -1 -1356 1336 -1 -1736 1336 -1 -1337 1337 6 -1338 1337 -1 -1357 1337 -1 -1737 1337 -1 -1338 1338 6 -1339 1338 -1 -1358 1338 -1 -1738 1338 -1 -1339 1339 6 -1340 1339 -1 -1359 1339 -1 -1739 1339 -1 -1340 1340 6 -1360 1340 -1 -1740 1340 -1 -1341 1341 6 -1342 1341 -1 -1361 1341 -1 -1741 1341 -1 -1342 1342 6 -1343 1342 -1 -1362 1342 -1 -1742 1342 -1 -1343 1343 6 -1344 1343 -1 -1363 1343 -1 -1743 1343 -1 -1344 1344 6 -1345 1344 -1 -1364 1344 -1 -1744 1344 -1 -1345 1345 6 -1346 1345 -1 -1365 1345 -1 -1745 1345 -1 -1346 1346 6 -1347 1346 -1 -1366 1346 -1 -1746 1346 -1 -1347 1347 6 -1348 1347 -1 -1367 1347 -1 -1747 1347 -1 -1348 1348 6 -1349 1348 -1 -1368 1348 -1 -1748 1348 -1 -1349 1349 6 -1350 1349 -1 -1369 1349 -1 -1749 1349 -1 -1350 1350 6 -1351 1350 -1 -1370 1350 -1 -1750 1350 -1 -1351 1351 6 -1352 1351 -1 -1371 1351 -1 -1751 1351 -1 -1352 1352 6 -1353 1352 -1 -1372 1352 -1 -1752 1352 -1 -1353 1353 6 -1354 1353 -1 -1373 1353 -1 -1753 1353 -1 -1354 1354 6 -1355 1354 -1 -1374 1354 -1 -1754 1354 -1 -1355 1355 6 -1356 1355 -1 -1375 1355 -1 -1755 1355 -1 -1356 1356 6 -1357 1356 -1 -1376 1356 -1 -1756 1356 -1 -1357 1357 6 -1358 1357 -1 -1377 1357 -1 -1757 1357 -1 -1358 1358 6 -1359 1358 -1 -1378 1358 -1 -1758 1358 -1 -1359 1359 6 -1360 1359 -1 -1379 1359 -1 -1759 1359 -1 -1360 1360 6 -1380 1360 -1 -1760 1360 -1 -1361 1361 6 -1362 1361 -1 -1381 1361 -1 -1761 1361 -1 -1362 1362 6 -1363 1362 -1 -1382 1362 -1 -1762 1362 -1 -1363 1363 6 -1364 1363 -1 -1383 1363 -1 -1763 1363 -1 -1364 1364 6 -1365 1364 -1 -1384 1364 -1 -1764 1364 -1 -1365 1365 6 -1366 1365 -1 -1385 1365 -1 -1765 1365 -1 -1366 1366 6 -1367 1366 -1 -1386 1366 -1 -1766 1366 -1 -1367 1367 6 -1368 1367 -1 -1387 1367 -1 -1767 1367 -1 -1368 1368 6 -1369 1368 -1 -1388 1368 -1 -1768 1368 -1 -1369 1369 6 -1370 1369 -1 -1389 1369 -1 -1769 1369 -1 -1370 1370 6 -1371 1370 -1 -1390 1370 -1 -1770 1370 -1 -1371 1371 6 -1372 1371 -1 -1391 1371 -1 -1771 1371 -1 -1372 1372 6 -1373 1372 -1 -1392 1372 -1 -1772 1372 -1 -1373 1373 6 -1374 1373 -1 -1393 1373 -1 -1773 1373 -1 -1374 1374 6 -1375 1374 -1 -1394 1374 -1 -1774 1374 -1 -1375 1375 6 -1376 1375 -1 -1395 1375 -1 -1775 1375 -1 -1376 1376 6 -1377 1376 -1 -1396 1376 -1 -1776 1376 -1 -1377 1377 6 -1378 1377 -1 -1397 1377 -1 -1777 1377 -1 -1378 1378 6 -1379 1378 -1 -1398 1378 -1 -1778 1378 -1 -1379 1379 6 -1380 1379 -1 -1399 1379 -1 -1779 1379 -1 -1380 1380 6 -1400 1380 -1 -1780 1380 -1 -1381 1381 6 -1382 1381 -1 -1401 1381 -1 -1781 1381 -1 -1382 1382 6 -1383 1382 -1 -1402 1382 -1 -1782 1382 -1 -1383 1383 6 -1384 1383 -1 -1403 1383 -1 -1783 1383 -1 -1384 1384 6 -1385 1384 -1 -1404 1384 -1 -1784 1384 -1 -1385 1385 6 -1386 1385 -1 -1405 1385 -1 -1785 1385 -1 -1386 1386 6 -1387 1386 -1 -1406 1386 -1 -1786 1386 -1 -1387 1387 6 -1388 1387 -1 -1407 1387 -1 -1787 1387 -1 -1388 1388 6 -1389 1388 -1 -1408 1388 -1 -1788 1388 -1 -1389 1389 6 -1390 1389 -1 -1409 1389 -1 -1789 1389 -1 -1390 1390 6 -1391 1390 -1 -1410 1390 -1 -1790 1390 -1 -1391 1391 6 -1392 1391 -1 -1411 1391 -1 -1791 1391 -1 -1392 1392 6 -1393 1392 -1 -1412 1392 -1 -1792 1392 -1 -1393 1393 6 -1394 1393 -1 -1413 1393 -1 -1793 1393 -1 -1394 1394 6 -1395 1394 -1 -1414 1394 -1 -1794 1394 -1 -1395 1395 6 -1396 1395 -1 -1415 1395 -1 -1795 1395 -1 -1396 1396 6 -1397 1396 -1 -1416 1396 -1 -1796 1396 -1 -1397 1397 6 -1398 1397 -1 -1417 1397 -1 -1797 1397 -1 -1398 1398 6 -1399 1398 -1 -1418 1398 -1 -1798 1398 -1 -1399 1399 6 -1400 1399 -1 -1419 1399 -1 -1799 1399 -1 -1400 1400 6 -1420 1400 -1 -1800 1400 -1 -1401 1401 6 -1402 1401 -1 -1421 1401 -1 -1801 1401 -1 -1402 1402 6 -1403 1402 -1 -1422 1402 -1 -1802 1402 -1 -1403 1403 6 -1404 1403 -1 -1423 1403 -1 -1803 1403 -1 -1404 1404 6 -1405 1404 -1 -1424 1404 -1 -1804 1404 -1 -1405 1405 6 -1406 1405 -1 -1425 1405 -1 -1805 1405 -1 -1406 1406 6 -1407 1406 -1 -1426 1406 -1 -1806 1406 -1 -1407 1407 6 -1408 1407 -1 -1427 1407 -1 -1807 1407 -1 -1408 1408 6 -1409 1408 -1 -1428 1408 -1 -1808 1408 -1 -1409 1409 6 -1410 1409 -1 -1429 1409 -1 -1809 1409 -1 -1410 1410 6 -1411 1410 -1 -1430 1410 -1 -1810 1410 -1 -1411 1411 6 -1412 1411 -1 -1431 1411 -1 -1811 1411 -1 -1412 1412 6 -1413 1412 -1 -1432 1412 -1 -1812 1412 -1 -1413 1413 6 -1414 1413 -1 -1433 1413 -1 -1813 1413 -1 -1414 1414 6 -1415 1414 -1 -1434 1414 -1 -1814 1414 -1 -1415 1415 6 -1416 1415 -1 -1435 1415 -1 -1815 1415 -1 -1416 1416 6 -1417 1416 -1 -1436 1416 -1 -1816 1416 -1 -1417 1417 6 -1418 1417 -1 -1437 1417 -1 -1817 1417 -1 -1418 1418 6 -1419 1418 -1 -1438 1418 -1 -1818 1418 -1 -1419 1419 6 -1420 1419 -1 -1439 1419 -1 -1819 1419 -1 -1420 1420 6 -1440 1420 -1 -1820 1420 -1 -1421 1421 6 -1422 1421 -1 -1441 1421 -1 -1821 1421 -1 -1422 1422 6 -1423 1422 -1 -1442 1422 -1 -1822 1422 -1 -1423 1423 6 -1424 1423 -1 -1443 1423 -1 -1823 1423 -1 -1424 1424 6 -1425 1424 -1 -1444 1424 -1 -1824 1424 -1 -1425 1425 6 -1426 1425 -1 -1445 1425 -1 -1825 1425 -1 -1426 1426 6 -1427 1426 -1 -1446 1426 -1 -1826 1426 -1 -1427 1427 6 -1428 1427 -1 -1447 1427 -1 -1827 1427 -1 -1428 1428 6 -1429 1428 -1 -1448 1428 -1 -1828 1428 -1 -1429 1429 6 -1430 1429 -1 -1449 1429 -1 -1829 1429 -1 -1430 1430 6 -1431 1430 -1 -1450 1430 -1 -1830 1430 -1 -1431 1431 6 -1432 1431 -1 -1451 1431 -1 -1831 1431 -1 -1432 1432 6 -1433 1432 -1 -1452 1432 -1 -1832 1432 -1 -1433 1433 6 -1434 1433 -1 -1453 1433 -1 -1833 1433 -1 -1434 1434 6 -1435 1434 -1 -1454 1434 -1 -1834 1434 -1 -1435 1435 6 -1436 1435 -1 -1455 1435 -1 -1835 1435 -1 -1436 1436 6 -1437 1436 -1 -1456 1436 -1 -1836 1436 -1 -1437 1437 6 -1438 1437 -1 -1457 1437 -1 -1837 1437 -1 -1438 1438 6 -1439 1438 -1 -1458 1438 -1 -1838 1438 -1 -1439 1439 6 -1440 1439 -1 -1459 1439 -1 -1839 1439 -1 -1440 1440 6 -1460 1440 -1 -1840 1440 -1 -1441 1441 6 -1442 1441 -1 -1461 1441 -1 -1841 1441 -1 -1442 1442 6 -1443 1442 -1 -1462 1442 -1 -1842 1442 -1 -1443 1443 6 -1444 1443 -1 -1463 1443 -1 -1843 1443 -1 -1444 1444 6 -1445 1444 -1 -1464 1444 -1 -1844 1444 -1 -1445 1445 6 -1446 1445 -1 -1465 1445 -1 -1845 1445 -1 -1446 1446 6 -1447 1446 -1 -1466 1446 -1 -1846 1446 -1 -1447 1447 6 -1448 1447 -1 -1467 1447 -1 -1847 1447 -1 -1448 1448 6 -1449 1448 -1 -1468 1448 -1 -1848 1448 -1 -1449 1449 6 -1450 1449 -1 -1469 1449 -1 -1849 1449 -1 -1450 1450 6 -1451 1450 -1 -1470 1450 -1 -1850 1450 -1 -1451 1451 6 -1452 1451 -1 -1471 1451 -1 -1851 1451 -1 -1452 1452 6 -1453 1452 -1 -1472 1452 -1 -1852 1452 -1 -1453 1453 6 -1454 1453 -1 -1473 1453 -1 -1853 1453 -1 -1454 1454 6 -1455 1454 -1 -1474 1454 -1 -1854 1454 -1 -1455 1455 6 -1456 1455 -1 -1475 1455 -1 -1855 1455 -1 -1456 1456 6 -1457 1456 -1 -1476 1456 -1 -1856 1456 -1 -1457 1457 6 -1458 1457 -1 -1477 1457 -1 -1857 1457 -1 -1458 1458 6 -1459 1458 -1 -1478 1458 -1 -1858 1458 -1 -1459 1459 6 -1460 1459 -1 -1479 1459 -1 -1859 1459 -1 -1460 1460 6 -1480 1460 -1 -1860 1460 -1 -1461 1461 6 -1462 1461 -1 -1481 1461 -1 -1861 1461 -1 -1462 1462 6 -1463 1462 -1 -1482 1462 -1 -1862 1462 -1 -1463 1463 6 -1464 1463 -1 -1483 1463 -1 -1863 1463 -1 -1464 1464 6 -1465 1464 -1 -1484 1464 -1 -1864 1464 -1 -1465 1465 6 -1466 1465 -1 -1485 1465 -1 -1865 1465 -1 -1466 1466 6 -1467 1466 -1 -1486 1466 -1 -1866 1466 -1 -1467 1467 6 -1468 1467 -1 -1487 1467 -1 -1867 1467 -1 -1468 1468 6 -1469 1468 -1 -1488 1468 -1 -1868 1468 -1 -1469 1469 6 -1470 1469 -1 -1489 1469 -1 -1869 1469 -1 -1470 1470 6 -1471 1470 -1 -1490 1470 -1 -1870 1470 -1 -1471 1471 6 -1472 1471 -1 -1491 1471 -1 -1871 1471 -1 -1472 1472 6 -1473 1472 -1 -1492 1472 -1 -1872 1472 -1 -1473 1473 6 -1474 1473 -1 -1493 1473 -1 -1873 1473 -1 -1474 1474 6 -1475 1474 -1 -1494 1474 -1 -1874 1474 -1 -1475 1475 6 -1476 1475 -1 -1495 1475 -1 -1875 1475 -1 -1476 1476 6 -1477 1476 -1 -1496 1476 -1 -1876 1476 -1 -1477 1477 6 -1478 1477 -1 -1497 1477 -1 -1877 1477 -1 -1478 1478 6 -1479 1478 -1 -1498 1478 -1 -1878 1478 -1 -1479 1479 6 -1480 1479 -1 -1499 1479 -1 -1879 1479 -1 -1480 1480 6 -1500 1480 -1 -1880 1480 -1 -1481 1481 6 -1482 1481 -1 -1501 1481 -1 -1881 1481 -1 -1482 1482 6 -1483 1482 -1 -1502 1482 -1 -1882 1482 -1 -1483 1483 6 -1484 1483 -1 -1503 1483 -1 -1883 1483 -1 -1484 1484 6 -1485 1484 -1 -1504 1484 -1 -1884 1484 -1 -1485 1485 6 -1486 1485 -1 -1505 1485 -1 -1885 1485 -1 -1486 1486 6 -1487 1486 -1 -1506 1486 -1 -1886 1486 -1 -1487 1487 6 -1488 1487 -1 -1507 1487 -1 -1887 1487 -1 -1488 1488 6 -1489 1488 -1 -1508 1488 -1 -1888 1488 -1 -1489 1489 6 -1490 1489 -1 -1509 1489 -1 -1889 1489 -1 -1490 1490 6 -1491 1490 -1 -1510 1490 -1 -1890 1490 -1 -1491 1491 6 -1492 1491 -1 -1511 1491 -1 -1891 1491 -1 -1492 1492 6 -1493 1492 -1 -1512 1492 -1 -1892 1492 -1 -1493 1493 6 -1494 1493 -1 -1513 1493 -1 -1893 1493 -1 -1494 1494 6 -1495 1494 -1 -1514 1494 -1 -1894 1494 -1 -1495 1495 6 -1496 1495 -1 -1515 1495 -1 -1895 1495 -1 -1496 1496 6 -1497 1496 -1 -1516 1496 -1 -1896 1496 -1 -1497 1497 6 -1498 1497 -1 -1517 1497 -1 -1897 1497 -1 -1498 1498 6 -1499 1498 -1 -1518 1498 -1 -1898 1498 -1 -1499 1499 6 -1500 1499 -1 -1519 1499 -1 -1899 1499 -1 -1500 1500 6 -1520 1500 -1 -1900 1500 -1 -1501 1501 6 -1502 1501 -1 -1521 1501 -1 -1901 1501 -1 -1502 1502 6 -1503 1502 -1 -1522 1502 -1 -1902 1502 -1 -1503 1503 6 -1504 1503 -1 -1523 1503 -1 -1903 1503 -1 -1504 1504 6 -1505 1504 -1 -1524 1504 -1 -1904 1504 -1 -1505 1505 6 -1506 1505 -1 -1525 1505 -1 -1905 1505 -1 -1506 1506 6 -1507 1506 -1 -1526 1506 -1 -1906 1506 -1 -1507 1507 6 -1508 1507 -1 -1527 1507 -1 -1907 1507 -1 -1508 1508 6 -1509 1508 -1 -1528 1508 -1 -1908 1508 -1 -1509 1509 6 -1510 1509 -1 -1529 1509 -1 -1909 1509 -1 -1510 1510 6 -1511 1510 -1 -1530 1510 -1 -1910 1510 -1 -1511 1511 6 -1512 1511 -1 -1531 1511 -1 -1911 1511 -1 -1512 1512 6 -1513 1512 -1 -1532 1512 -1 -1912 1512 -1 -1513 1513 6 -1514 1513 -1 -1533 1513 -1 -1913 1513 -1 -1514 1514 6 -1515 1514 -1 -1534 1514 -1 -1914 1514 -1 -1515 1515 6 -1516 1515 -1 -1535 1515 -1 -1915 1515 -1 -1516 1516 6 -1517 1516 -1 -1536 1516 -1 -1916 1516 -1 -1517 1517 6 -1518 1517 -1 -1537 1517 -1 -1917 1517 -1 -1518 1518 6 -1519 1518 -1 -1538 1518 -1 -1918 1518 -1 -1519 1519 6 -1520 1519 -1 -1539 1519 -1 -1919 1519 -1 -1520 1520 6 -1540 1520 -1 -1920 1520 -1 -1521 1521 6 -1522 1521 -1 -1541 1521 -1 -1921 1521 -1 -1522 1522 6 -1523 1522 -1 -1542 1522 -1 -1922 1522 -1 -1523 1523 6 -1524 1523 -1 -1543 1523 -1 -1923 1523 -1 -1524 1524 6 -1525 1524 -1 -1544 1524 -1 -1924 1524 -1 -1525 1525 6 -1526 1525 -1 -1545 1525 -1 -1925 1525 -1 -1526 1526 6 -1527 1526 -1 -1546 1526 -1 -1926 1526 -1 -1527 1527 6 -1528 1527 -1 -1547 1527 -1 -1927 1527 -1 -1528 1528 6 -1529 1528 -1 -1548 1528 -1 -1928 1528 -1 -1529 1529 6 -1530 1529 -1 -1549 1529 -1 -1929 1529 -1 -1530 1530 6 -1531 1530 -1 -1550 1530 -1 -1930 1530 -1 -1531 1531 6 -1532 1531 -1 -1551 1531 -1 -1931 1531 -1 -1532 1532 6 -1533 1532 -1 -1552 1532 -1 -1932 1532 -1 -1533 1533 6 -1534 1533 -1 -1553 1533 -1 -1933 1533 -1 -1534 1534 6 -1535 1534 -1 -1554 1534 -1 -1934 1534 -1 -1535 1535 6 -1536 1535 -1 -1555 1535 -1 -1935 1535 -1 -1536 1536 6 -1537 1536 -1 -1556 1536 -1 -1936 1536 -1 -1537 1537 6 -1538 1537 -1 -1557 1537 -1 -1937 1537 -1 -1538 1538 6 -1539 1538 -1 -1558 1538 -1 -1938 1538 -1 -1539 1539 6 -1540 1539 -1 -1559 1539 -1 -1939 1539 -1 -1540 1540 6 -1560 1540 -1 -1940 1540 -1 -1541 1541 6 -1542 1541 -1 -1561 1541 -1 -1941 1541 -1 -1542 1542 6 -1543 1542 -1 -1562 1542 -1 -1942 1542 -1 -1543 1543 6 -1544 1543 -1 -1563 1543 -1 -1943 1543 -1 -1544 1544 6 -1545 1544 -1 -1564 1544 -1 -1944 1544 -1 -1545 1545 6 -1546 1545 -1 -1565 1545 -1 -1945 1545 -1 -1546 1546 6 -1547 1546 -1 -1566 1546 -1 -1946 1546 -1 -1547 1547 6 -1548 1547 -1 -1567 1547 -1 -1947 1547 -1 -1548 1548 6 -1549 1548 -1 -1568 1548 -1 -1948 1548 -1 -1549 1549 6 -1550 1549 -1 -1569 1549 -1 -1949 1549 -1 -1550 1550 6 -1551 1550 -1 -1570 1550 -1 -1950 1550 -1 -1551 1551 6 -1552 1551 -1 -1571 1551 -1 -1951 1551 -1 -1552 1552 6 -1553 1552 -1 -1572 1552 -1 -1952 1552 -1 -1553 1553 6 -1554 1553 -1 -1573 1553 -1 -1953 1553 -1 -1554 1554 6 -1555 1554 -1 -1574 1554 -1 -1954 1554 -1 -1555 1555 6 -1556 1555 -1 -1575 1555 -1 -1955 1555 -1 -1556 1556 6 -1557 1556 -1 -1576 1556 -1 -1956 1556 -1 -1557 1557 6 -1558 1557 -1 -1577 1557 -1 -1957 1557 -1 -1558 1558 6 -1559 1558 -1 -1578 1558 -1 -1958 1558 -1 -1559 1559 6 -1560 1559 -1 -1579 1559 -1 -1959 1559 -1 -1560 1560 6 -1580 1560 -1 -1960 1560 -1 -1561 1561 6 -1562 1561 -1 -1581 1561 -1 -1961 1561 -1 -1562 1562 6 -1563 1562 -1 -1582 1562 -1 -1962 1562 -1 -1563 1563 6 -1564 1563 -1 -1583 1563 -1 -1963 1563 -1 -1564 1564 6 -1565 1564 -1 -1584 1564 -1 -1964 1564 -1 -1565 1565 6 -1566 1565 -1 -1585 1565 -1 -1965 1565 -1 -1566 1566 6 -1567 1566 -1 -1586 1566 -1 -1966 1566 -1 -1567 1567 6 -1568 1567 -1 -1587 1567 -1 -1967 1567 -1 -1568 1568 6 -1569 1568 -1 -1588 1568 -1 -1968 1568 -1 -1569 1569 6 -1570 1569 -1 -1589 1569 -1 -1969 1569 -1 -1570 1570 6 -1571 1570 -1 -1590 1570 -1 -1970 1570 -1 -1571 1571 6 -1572 1571 -1 -1591 1571 -1 -1971 1571 -1 -1572 1572 6 -1573 1572 -1 -1592 1572 -1 -1972 1572 -1 -1573 1573 6 -1574 1573 -1 -1593 1573 -1 -1973 1573 -1 -1574 1574 6 -1575 1574 -1 -1594 1574 -1 -1974 1574 -1 -1575 1575 6 -1576 1575 -1 -1595 1575 -1 -1975 1575 -1 -1576 1576 6 -1577 1576 -1 -1596 1576 -1 -1976 1576 -1 -1577 1577 6 -1578 1577 -1 -1597 1577 -1 -1977 1577 -1 -1578 1578 6 -1579 1578 -1 -1598 1578 -1 -1978 1578 -1 -1579 1579 6 -1580 1579 -1 -1599 1579 -1 -1979 1579 -1 -1580 1580 6 -1600 1580 -1 -1980 1580 -1 -1581 1581 6 -1582 1581 -1 -1981 1581 -1 -1582 1582 6 -1583 1582 -1 -1982 1582 -1 -1583 1583 6 -1584 1583 -1 -1983 1583 -1 -1584 1584 6 -1585 1584 -1 -1984 1584 -1 -1585 1585 6 -1586 1585 -1 -1985 1585 -1 -1586 1586 6 -1587 1586 -1 -1986 1586 -1 -1587 1587 6 -1588 1587 -1 -1987 1587 -1 -1588 1588 6 -1589 1588 -1 -1988 1588 -1 -1589 1589 6 -1590 1589 -1 -1989 1589 -1 -1590 1590 6 -1591 1590 -1 -1990 1590 -1 -1591 1591 6 -1592 1591 -1 -1991 1591 -1 -1592 1592 6 -1593 1592 -1 -1992 1592 -1 -1593 1593 6 -1594 1593 -1 -1993 1593 -1 -1594 1594 6 -1595 1594 -1 -1994 1594 -1 -1595 1595 6 -1596 1595 -1 -1995 1595 -1 -1596 1596 6 -1597 1596 -1 -1996 1596 -1 -1597 1597 6 -1598 1597 -1 -1997 1597 -1 -1598 1598 6 -1599 1598 -1 -1998 1598 -1 -1599 1599 6 -1600 1599 -1 -1999 1599 -1 -1600 1600 6 -2000 1600 -1 -1601 1601 6 -1602 1601 -1 -1621 1601 -1 -2001 1601 -1 -1602 1602 6 -1603 1602 -1 -1622 1602 -1 -2002 1602 -1 -1603 1603 6 -1604 1603 -1 -1623 1603 -1 -2003 1603 -1 -1604 1604 6 -1605 1604 -1 -1624 1604 -1 -2004 1604 -1 -1605 1605 6 -1606 1605 -1 -1625 1605 -1 -2005 1605 -1 -1606 1606 6 -1607 1606 -1 -1626 1606 -1 -2006 1606 -1 -1607 1607 6 -1608 1607 -1 -1627 1607 -1 -2007 1607 -1 -1608 1608 6 -1609 1608 -1 -1628 1608 -1 -2008 1608 -1 -1609 1609 6 -1610 1609 -1 -1629 1609 -1 -2009 1609 -1 -1610 1610 6 -1611 1610 -1 -1630 1610 -1 -2010 1610 -1 -1611 1611 6 -1612 1611 -1 -1631 1611 -1 -2011 1611 -1 -1612 1612 6 -1613 1612 -1 -1632 1612 -1 -2012 1612 -1 -1613 1613 6 -1614 1613 -1 -1633 1613 -1 -2013 1613 -1 -1614 1614 6 -1615 1614 -1 -1634 1614 -1 -2014 1614 -1 -1615 1615 6 -1616 1615 -1 -1635 1615 -1 -2015 1615 -1 -1616 1616 6 -1617 1616 -1 -1636 1616 -1 -2016 1616 -1 -1617 1617 6 -1618 1617 -1 -1637 1617 -1 -2017 1617 -1 -1618 1618 6 -1619 1618 -1 -1638 1618 -1 -2018 1618 -1 -1619 1619 6 -1620 1619 -1 -1639 1619 -1 -2019 1619 -1 -1620 1620 6 -1640 1620 -1 -2020 1620 -1 -1621 1621 6 -1622 1621 -1 -1641 1621 -1 -2021 1621 -1 -1622 1622 6 -1623 1622 -1 -1642 1622 -1 -2022 1622 -1 -1623 1623 6 -1624 1623 -1 -1643 1623 -1 -2023 1623 -1 -1624 1624 6 -1625 1624 -1 -1644 1624 -1 -2024 1624 -1 -1625 1625 6 -1626 1625 -1 -1645 1625 -1 -2025 1625 -1 -1626 1626 6 -1627 1626 -1 -1646 1626 -1 -2026 1626 -1 -1627 1627 6 -1628 1627 -1 -1647 1627 -1 -2027 1627 -1 -1628 1628 6 -1629 1628 -1 -1648 1628 -1 -2028 1628 -1 -1629 1629 6 -1630 1629 -1 -1649 1629 -1 -2029 1629 -1 -1630 1630 6 -1631 1630 -1 -1650 1630 -1 -2030 1630 -1 -1631 1631 6 -1632 1631 -1 -1651 1631 -1 -2031 1631 -1 -1632 1632 6 -1633 1632 -1 -1652 1632 -1 -2032 1632 -1 -1633 1633 6 -1634 1633 -1 -1653 1633 -1 -2033 1633 -1 -1634 1634 6 -1635 1634 -1 -1654 1634 -1 -2034 1634 -1 -1635 1635 6 -1636 1635 -1 -1655 1635 -1 -2035 1635 -1 -1636 1636 6 -1637 1636 -1 -1656 1636 -1 -2036 1636 -1 -1637 1637 6 -1638 1637 -1 -1657 1637 -1 -2037 1637 -1 -1638 1638 6 -1639 1638 -1 -1658 1638 -1 -2038 1638 -1 -1639 1639 6 -1640 1639 -1 -1659 1639 -1 -2039 1639 -1 -1640 1640 6 -1660 1640 -1 -2040 1640 -1 -1641 1641 6 -1642 1641 -1 -1661 1641 -1 -2041 1641 -1 -1642 1642 6 -1643 1642 -1 -1662 1642 -1 -2042 1642 -1 -1643 1643 6 -1644 1643 -1 -1663 1643 -1 -2043 1643 -1 -1644 1644 6 -1645 1644 -1 -1664 1644 -1 -2044 1644 -1 -1645 1645 6 -1646 1645 -1 -1665 1645 -1 -2045 1645 -1 -1646 1646 6 -1647 1646 -1 -1666 1646 -1 -2046 1646 -1 -1647 1647 6 -1648 1647 -1 -1667 1647 -1 -2047 1647 -1 -1648 1648 6 -1649 1648 -1 -1668 1648 -1 -2048 1648 -1 -1649 1649 6 -1650 1649 -1 -1669 1649 -1 -2049 1649 -1 -1650 1650 6 -1651 1650 -1 -1670 1650 -1 -2050 1650 -1 -1651 1651 6 -1652 1651 -1 -1671 1651 -1 -2051 1651 -1 -1652 1652 6 -1653 1652 -1 -1672 1652 -1 -2052 1652 -1 -1653 1653 6 -1654 1653 -1 -1673 1653 -1 -2053 1653 -1 -1654 1654 6 -1655 1654 -1 -1674 1654 -1 -2054 1654 -1 -1655 1655 6 -1656 1655 -1 -1675 1655 -1 -2055 1655 -1 -1656 1656 6 -1657 1656 -1 -1676 1656 -1 -2056 1656 -1 -1657 1657 6 -1658 1657 -1 -1677 1657 -1 -2057 1657 -1 -1658 1658 6 -1659 1658 -1 -1678 1658 -1 -2058 1658 -1 -1659 1659 6 -1660 1659 -1 -1679 1659 -1 -2059 1659 -1 -1660 1660 6 -1680 1660 -1 -2060 1660 -1 -1661 1661 6 -1662 1661 -1 -1681 1661 -1 -2061 1661 -1 -1662 1662 6 -1663 1662 -1 -1682 1662 -1 -2062 1662 -1 -1663 1663 6 -1664 1663 -1 -1683 1663 -1 -2063 1663 -1 -1664 1664 6 -1665 1664 -1 -1684 1664 -1 -2064 1664 -1 -1665 1665 6 -1666 1665 -1 -1685 1665 -1 -2065 1665 -1 -1666 1666 6 -1667 1666 -1 -1686 1666 -1 -2066 1666 -1 -1667 1667 6 -1668 1667 -1 -1687 1667 -1 -2067 1667 -1 -1668 1668 6 -1669 1668 -1 -1688 1668 -1 -2068 1668 -1 -1669 1669 6 -1670 1669 -1 -1689 1669 -1 -2069 1669 -1 -1670 1670 6 -1671 1670 -1 -1690 1670 -1 -2070 1670 -1 -1671 1671 6 -1672 1671 -1 -1691 1671 -1 -2071 1671 -1 -1672 1672 6 -1673 1672 -1 -1692 1672 -1 -2072 1672 -1 -1673 1673 6 -1674 1673 -1 -1693 1673 -1 -2073 1673 -1 -1674 1674 6 -1675 1674 -1 -1694 1674 -1 -2074 1674 -1 -1675 1675 6 -1676 1675 -1 -1695 1675 -1 -2075 1675 -1 -1676 1676 6 -1677 1676 -1 -1696 1676 -1 -2076 1676 -1 -1677 1677 6 -1678 1677 -1 -1697 1677 -1 -2077 1677 -1 -1678 1678 6 -1679 1678 -1 -1698 1678 -1 -2078 1678 -1 -1679 1679 6 -1680 1679 -1 -1699 1679 -1 -2079 1679 -1 -1680 1680 6 -1700 1680 -1 -2080 1680 -1 -1681 1681 6 -1682 1681 -1 -1701 1681 -1 -2081 1681 -1 -1682 1682 6 -1683 1682 -1 -1702 1682 -1 -2082 1682 -1 -1683 1683 6 -1684 1683 -1 -1703 1683 -1 -2083 1683 -1 -1684 1684 6 -1685 1684 -1 -1704 1684 -1 -2084 1684 -1 -1685 1685 6 -1686 1685 -1 -1705 1685 -1 -2085 1685 -1 -1686 1686 6 -1687 1686 -1 -1706 1686 -1 -2086 1686 -1 -1687 1687 6 -1688 1687 -1 -1707 1687 -1 -2087 1687 -1 -1688 1688 6 -1689 1688 -1 -1708 1688 -1 -2088 1688 -1 -1689 1689 6 -1690 1689 -1 -1709 1689 -1 -2089 1689 -1 -1690 1690 6 -1691 1690 -1 -1710 1690 -1 -2090 1690 -1 -1691 1691 6 -1692 1691 -1 -1711 1691 -1 -2091 1691 -1 -1692 1692 6 -1693 1692 -1 -1712 1692 -1 -2092 1692 -1 -1693 1693 6 -1694 1693 -1 -1713 1693 -1 -2093 1693 -1 -1694 1694 6 -1695 1694 -1 -1714 1694 -1 -2094 1694 -1 -1695 1695 6 -1696 1695 -1 -1715 1695 -1 -2095 1695 -1 -1696 1696 6 -1697 1696 -1 -1716 1696 -1 -2096 1696 -1 -1697 1697 6 -1698 1697 -1 -1717 1697 -1 -2097 1697 -1 -1698 1698 6 -1699 1698 -1 -1718 1698 -1 -2098 1698 -1 -1699 1699 6 -1700 1699 -1 -1719 1699 -1 -2099 1699 -1 -1700 1700 6 -1720 1700 -1 -2100 1700 -1 -1701 1701 6 -1702 1701 -1 -1721 1701 -1 -2101 1701 -1 -1702 1702 6 -1703 1702 -1 -1722 1702 -1 -2102 1702 -1 -1703 1703 6 -1704 1703 -1 -1723 1703 -1 -2103 1703 -1 -1704 1704 6 -1705 1704 -1 -1724 1704 -1 -2104 1704 -1 -1705 1705 6 -1706 1705 -1 -1725 1705 -1 -2105 1705 -1 -1706 1706 6 -1707 1706 -1 -1726 1706 -1 -2106 1706 -1 -1707 1707 6 -1708 1707 -1 -1727 1707 -1 -2107 1707 -1 -1708 1708 6 -1709 1708 -1 -1728 1708 -1 -2108 1708 -1 -1709 1709 6 -1710 1709 -1 -1729 1709 -1 -2109 1709 -1 -1710 1710 6 -1711 1710 -1 -1730 1710 -1 -2110 1710 -1 -1711 1711 6 -1712 1711 -1 -1731 1711 -1 -2111 1711 -1 -1712 1712 6 -1713 1712 -1 -1732 1712 -1 -2112 1712 -1 -1713 1713 6 -1714 1713 -1 -1733 1713 -1 -2113 1713 -1 -1714 1714 6 -1715 1714 -1 -1734 1714 -1 -2114 1714 -1 -1715 1715 6 -1716 1715 -1 -1735 1715 -1 -2115 1715 -1 -1716 1716 6 -1717 1716 -1 -1736 1716 -1 -2116 1716 -1 -1717 1717 6 -1718 1717 -1 -1737 1717 -1 -2117 1717 -1 -1718 1718 6 -1719 1718 -1 -1738 1718 -1 -2118 1718 -1 -1719 1719 6 -1720 1719 -1 -1739 1719 -1 -2119 1719 -1 -1720 1720 6 -1740 1720 -1 -2120 1720 -1 -1721 1721 6 -1722 1721 -1 -1741 1721 -1 -2121 1721 -1 -1722 1722 6 -1723 1722 -1 -1742 1722 -1 -2122 1722 -1 -1723 1723 6 -1724 1723 -1 -1743 1723 -1 -2123 1723 -1 -1724 1724 6 -1725 1724 -1 -1744 1724 -1 -2124 1724 -1 -1725 1725 6 -1726 1725 -1 -1745 1725 -1 -2125 1725 -1 -1726 1726 6 -1727 1726 -1 -1746 1726 -1 -2126 1726 -1 -1727 1727 6 -1728 1727 -1 -1747 1727 -1 -2127 1727 -1 -1728 1728 6 -1729 1728 -1 -1748 1728 -1 -2128 1728 -1 -1729 1729 6 -1730 1729 -1 -1749 1729 -1 -2129 1729 -1 -1730 1730 6 -1731 1730 -1 -1750 1730 -1 -2130 1730 -1 -1731 1731 6 -1732 1731 -1 -1751 1731 -1 -2131 1731 -1 -1732 1732 6 -1733 1732 -1 -1752 1732 -1 -2132 1732 -1 -1733 1733 6 -1734 1733 -1 -1753 1733 -1 -2133 1733 -1 -1734 1734 6 -1735 1734 -1 -1754 1734 -1 -2134 1734 -1 -1735 1735 6 -1736 1735 -1 -1755 1735 -1 -2135 1735 -1 -1736 1736 6 -1737 1736 -1 -1756 1736 -1 -2136 1736 -1 -1737 1737 6 -1738 1737 -1 -1757 1737 -1 -2137 1737 -1 -1738 1738 6 -1739 1738 -1 -1758 1738 -1 -2138 1738 -1 -1739 1739 6 -1740 1739 -1 -1759 1739 -1 -2139 1739 -1 -1740 1740 6 -1760 1740 -1 -2140 1740 -1 -1741 1741 6 -1742 1741 -1 -1761 1741 -1 -2141 1741 -1 -1742 1742 6 -1743 1742 -1 -1762 1742 -1 -2142 1742 -1 -1743 1743 6 -1744 1743 -1 -1763 1743 -1 -2143 1743 -1 -1744 1744 6 -1745 1744 -1 -1764 1744 -1 -2144 1744 -1 -1745 1745 6 -1746 1745 -1 -1765 1745 -1 -2145 1745 -1 -1746 1746 6 -1747 1746 -1 -1766 1746 -1 -2146 1746 -1 -1747 1747 6 -1748 1747 -1 -1767 1747 -1 -2147 1747 -1 -1748 1748 6 -1749 1748 -1 -1768 1748 -1 -2148 1748 -1 -1749 1749 6 -1750 1749 -1 -1769 1749 -1 -2149 1749 -1 -1750 1750 6 -1751 1750 -1 -1770 1750 -1 -2150 1750 -1 -1751 1751 6 -1752 1751 -1 -1771 1751 -1 -2151 1751 -1 -1752 1752 6 -1753 1752 -1 -1772 1752 -1 -2152 1752 -1 -1753 1753 6 -1754 1753 -1 -1773 1753 -1 -2153 1753 -1 -1754 1754 6 -1755 1754 -1 -1774 1754 -1 -2154 1754 -1 -1755 1755 6 -1756 1755 -1 -1775 1755 -1 -2155 1755 -1 -1756 1756 6 -1757 1756 -1 -1776 1756 -1 -2156 1756 -1 -1757 1757 6 -1758 1757 -1 -1777 1757 -1 -2157 1757 -1 -1758 1758 6 -1759 1758 -1 -1778 1758 -1 -2158 1758 -1 -1759 1759 6 -1760 1759 -1 -1779 1759 -1 -2159 1759 -1 -1760 1760 6 -1780 1760 -1 -2160 1760 -1 -1761 1761 6 -1762 1761 -1 -1781 1761 -1 -2161 1761 -1 -1762 1762 6 -1763 1762 -1 -1782 1762 -1 -2162 1762 -1 -1763 1763 6 -1764 1763 -1 -1783 1763 -1 -2163 1763 -1 -1764 1764 6 -1765 1764 -1 -1784 1764 -1 -2164 1764 -1 -1765 1765 6 -1766 1765 -1 -1785 1765 -1 -2165 1765 -1 -1766 1766 6 -1767 1766 -1 -1786 1766 -1 -2166 1766 -1 -1767 1767 6 -1768 1767 -1 -1787 1767 -1 -2167 1767 -1 -1768 1768 6 -1769 1768 -1 -1788 1768 -1 -2168 1768 -1 -1769 1769 6 -1770 1769 -1 -1789 1769 -1 -2169 1769 -1 -1770 1770 6 -1771 1770 -1 -1790 1770 -1 -2170 1770 -1 -1771 1771 6 -1772 1771 -1 -1791 1771 -1 -2171 1771 -1 -1772 1772 6 -1773 1772 -1 -1792 1772 -1 -2172 1772 -1 -1773 1773 6 -1774 1773 -1 -1793 1773 -1 -2173 1773 -1 -1774 1774 6 -1775 1774 -1 -1794 1774 -1 -2174 1774 -1 -1775 1775 6 -1776 1775 -1 -1795 1775 -1 -2175 1775 -1 -1776 1776 6 -1777 1776 -1 -1796 1776 -1 -2176 1776 -1 -1777 1777 6 -1778 1777 -1 -1797 1777 -1 -2177 1777 -1 -1778 1778 6 -1779 1778 -1 -1798 1778 -1 -2178 1778 -1 -1779 1779 6 -1780 1779 -1 -1799 1779 -1 -2179 1779 -1 -1780 1780 6 -1800 1780 -1 -2180 1780 -1 -1781 1781 6 -1782 1781 -1 -1801 1781 -1 -2181 1781 -1 -1782 1782 6 -1783 1782 -1 -1802 1782 -1 -2182 1782 -1 -1783 1783 6 -1784 1783 -1 -1803 1783 -1 -2183 1783 -1 -1784 1784 6 -1785 1784 -1 -1804 1784 -1 -2184 1784 -1 -1785 1785 6 -1786 1785 -1 -1805 1785 -1 -2185 1785 -1 -1786 1786 6 -1787 1786 -1 -1806 1786 -1 -2186 1786 -1 -1787 1787 6 -1788 1787 -1 -1807 1787 -1 -2187 1787 -1 -1788 1788 6 -1789 1788 -1 -1808 1788 -1 -2188 1788 -1 -1789 1789 6 -1790 1789 -1 -1809 1789 -1 -2189 1789 -1 -1790 1790 6 -1791 1790 -1 -1810 1790 -1 -2190 1790 -1 -1791 1791 6 -1792 1791 -1 -1811 1791 -1 -2191 1791 -1 -1792 1792 6 -1793 1792 -1 -1812 1792 -1 -2192 1792 -1 -1793 1793 6 -1794 1793 -1 -1813 1793 -1 -2193 1793 -1 -1794 1794 6 -1795 1794 -1 -1814 1794 -1 -2194 1794 -1 -1795 1795 6 -1796 1795 -1 -1815 1795 -1 -2195 1795 -1 -1796 1796 6 -1797 1796 -1 -1816 1796 -1 -2196 1796 -1 -1797 1797 6 -1798 1797 -1 -1817 1797 -1 -2197 1797 -1 -1798 1798 6 -1799 1798 -1 -1818 1798 -1 -2198 1798 -1 -1799 1799 6 -1800 1799 -1 -1819 1799 -1 -2199 1799 -1 -1800 1800 6 -1820 1800 -1 -2200 1800 -1 -1801 1801 6 -1802 1801 -1 -1821 1801 -1 -2201 1801 -1 -1802 1802 6 -1803 1802 -1 -1822 1802 -1 -2202 1802 -1 -1803 1803 6 -1804 1803 -1 -1823 1803 -1 -2203 1803 -1 -1804 1804 6 -1805 1804 -1 -1824 1804 -1 -2204 1804 -1 -1805 1805 6 -1806 1805 -1 -1825 1805 -1 -2205 1805 -1 -1806 1806 6 -1807 1806 -1 -1826 1806 -1 -2206 1806 -1 -1807 1807 6 -1808 1807 -1 -1827 1807 -1 -2207 1807 -1 -1808 1808 6 -1809 1808 -1 -1828 1808 -1 -2208 1808 -1 -1809 1809 6 -1810 1809 -1 -1829 1809 -1 -2209 1809 -1 -1810 1810 6 -1811 1810 -1 -1830 1810 -1 -2210 1810 -1 -1811 1811 6 -1812 1811 -1 -1831 1811 -1 -2211 1811 -1 -1812 1812 6 -1813 1812 -1 -1832 1812 -1 -2212 1812 -1 -1813 1813 6 -1814 1813 -1 -1833 1813 -1 -2213 1813 -1 -1814 1814 6 -1815 1814 -1 -1834 1814 -1 -2214 1814 -1 -1815 1815 6 -1816 1815 -1 -1835 1815 -1 -2215 1815 -1 -1816 1816 6 -1817 1816 -1 -1836 1816 -1 -2216 1816 -1 -1817 1817 6 -1818 1817 -1 -1837 1817 -1 -2217 1817 -1 -1818 1818 6 -1819 1818 -1 -1838 1818 -1 -2218 1818 -1 -1819 1819 6 -1820 1819 -1 -1839 1819 -1 -2219 1819 -1 -1820 1820 6 -1840 1820 -1 -2220 1820 -1 -1821 1821 6 -1822 1821 -1 -1841 1821 -1 -2221 1821 -1 -1822 1822 6 -1823 1822 -1 -1842 1822 -1 -2222 1822 -1 -1823 1823 6 -1824 1823 -1 -1843 1823 -1 -2223 1823 -1 -1824 1824 6 -1825 1824 -1 -1844 1824 -1 -2224 1824 -1 -1825 1825 6 -1826 1825 -1 -1845 1825 -1 -2225 1825 -1 -1826 1826 6 -1827 1826 -1 -1846 1826 -1 -2226 1826 -1 -1827 1827 6 -1828 1827 -1 -1847 1827 -1 -2227 1827 -1 -1828 1828 6 -1829 1828 -1 -1848 1828 -1 -2228 1828 -1 -1829 1829 6 -1830 1829 -1 -1849 1829 -1 -2229 1829 -1 -1830 1830 6 -1831 1830 -1 -1850 1830 -1 -2230 1830 -1 -1831 1831 6 -1832 1831 -1 -1851 1831 -1 -2231 1831 -1 -1832 1832 6 -1833 1832 -1 -1852 1832 -1 -2232 1832 -1 -1833 1833 6 -1834 1833 -1 -1853 1833 -1 -2233 1833 -1 -1834 1834 6 -1835 1834 -1 -1854 1834 -1 -2234 1834 -1 -1835 1835 6 -1836 1835 -1 -1855 1835 -1 -2235 1835 -1 -1836 1836 6 -1837 1836 -1 -1856 1836 -1 -2236 1836 -1 -1837 1837 6 -1838 1837 -1 -1857 1837 -1 -2237 1837 -1 -1838 1838 6 -1839 1838 -1 -1858 1838 -1 -2238 1838 -1 -1839 1839 6 -1840 1839 -1 -1859 1839 -1 -2239 1839 -1 -1840 1840 6 -1860 1840 -1 -2240 1840 -1 -1841 1841 6 -1842 1841 -1 -1861 1841 -1 -2241 1841 -1 -1842 1842 6 -1843 1842 -1 -1862 1842 -1 -2242 1842 -1 -1843 1843 6 -1844 1843 -1 -1863 1843 -1 -2243 1843 -1 -1844 1844 6 -1845 1844 -1 -1864 1844 -1 -2244 1844 -1 -1845 1845 6 -1846 1845 -1 -1865 1845 -1 -2245 1845 -1 -1846 1846 6 -1847 1846 -1 -1866 1846 -1 -2246 1846 -1 -1847 1847 6 -1848 1847 -1 -1867 1847 -1 -2247 1847 -1 -1848 1848 6 -1849 1848 -1 -1868 1848 -1 -2248 1848 -1 -1849 1849 6 -1850 1849 -1 -1869 1849 -1 -2249 1849 -1 -1850 1850 6 -1851 1850 -1 -1870 1850 -1 -2250 1850 -1 -1851 1851 6 -1852 1851 -1 -1871 1851 -1 -2251 1851 -1 -1852 1852 6 -1853 1852 -1 -1872 1852 -1 -2252 1852 -1 -1853 1853 6 -1854 1853 -1 -1873 1853 -1 -2253 1853 -1 -1854 1854 6 -1855 1854 -1 -1874 1854 -1 -2254 1854 -1 -1855 1855 6 -1856 1855 -1 -1875 1855 -1 -2255 1855 -1 -1856 1856 6 -1857 1856 -1 -1876 1856 -1 -2256 1856 -1 -1857 1857 6 -1858 1857 -1 -1877 1857 -1 -2257 1857 -1 -1858 1858 6 -1859 1858 -1 -1878 1858 -1 -2258 1858 -1 -1859 1859 6 -1860 1859 -1 -1879 1859 -1 -2259 1859 -1 -1860 1860 6 -1880 1860 -1 -2260 1860 -1 -1861 1861 6 -1862 1861 -1 -1881 1861 -1 -2261 1861 -1 -1862 1862 6 -1863 1862 -1 -1882 1862 -1 -2262 1862 -1 -1863 1863 6 -1864 1863 -1 -1883 1863 -1 -2263 1863 -1 -1864 1864 6 -1865 1864 -1 -1884 1864 -1 -2264 1864 -1 -1865 1865 6 -1866 1865 -1 -1885 1865 -1 -2265 1865 -1 -1866 1866 6 -1867 1866 -1 -1886 1866 -1 -2266 1866 -1 -1867 1867 6 -1868 1867 -1 -1887 1867 -1 -2267 1867 -1 -1868 1868 6 -1869 1868 -1 -1888 1868 -1 -2268 1868 -1 -1869 1869 6 -1870 1869 -1 -1889 1869 -1 -2269 1869 -1 -1870 1870 6 -1871 1870 -1 -1890 1870 -1 -2270 1870 -1 -1871 1871 6 -1872 1871 -1 -1891 1871 -1 -2271 1871 -1 -1872 1872 6 -1873 1872 -1 -1892 1872 -1 -2272 1872 -1 -1873 1873 6 -1874 1873 -1 -1893 1873 -1 -2273 1873 -1 -1874 1874 6 -1875 1874 -1 -1894 1874 -1 -2274 1874 -1 -1875 1875 6 -1876 1875 -1 -1895 1875 -1 -2275 1875 -1 -1876 1876 6 -1877 1876 -1 -1896 1876 -1 -2276 1876 -1 -1877 1877 6 -1878 1877 -1 -1897 1877 -1 -2277 1877 -1 -1878 1878 6 -1879 1878 -1 -1898 1878 -1 -2278 1878 -1 -1879 1879 6 -1880 1879 -1 -1899 1879 -1 -2279 1879 -1 -1880 1880 6 -1900 1880 -1 -2280 1880 -1 -1881 1881 6 -1882 1881 -1 -1901 1881 -1 -2281 1881 -1 -1882 1882 6 -1883 1882 -1 -1902 1882 -1 -2282 1882 -1 -1883 1883 6 -1884 1883 -1 -1903 1883 -1 -2283 1883 -1 -1884 1884 6 -1885 1884 -1 -1904 1884 -1 -2284 1884 -1 -1885 1885 6 -1886 1885 -1 -1905 1885 -1 -2285 1885 -1 -1886 1886 6 -1887 1886 -1 -1906 1886 -1 -2286 1886 -1 -1887 1887 6 -1888 1887 -1 -1907 1887 -1 -2287 1887 -1 -1888 1888 6 -1889 1888 -1 -1908 1888 -1 -2288 1888 -1 -1889 1889 6 -1890 1889 -1 -1909 1889 -1 -2289 1889 -1 -1890 1890 6 -1891 1890 -1 -1910 1890 -1 -2290 1890 -1 -1891 1891 6 -1892 1891 -1 -1911 1891 -1 -2291 1891 -1 -1892 1892 6 -1893 1892 -1 -1912 1892 -1 -2292 1892 -1 -1893 1893 6 -1894 1893 -1 -1913 1893 -1 -2293 1893 -1 -1894 1894 6 -1895 1894 -1 -1914 1894 -1 -2294 1894 -1 -1895 1895 6 -1896 1895 -1 -1915 1895 -1 -2295 1895 -1 -1896 1896 6 -1897 1896 -1 -1916 1896 -1 -2296 1896 -1 -1897 1897 6 -1898 1897 -1 -1917 1897 -1 -2297 1897 -1 -1898 1898 6 -1899 1898 -1 -1918 1898 -1 -2298 1898 -1 -1899 1899 6 -1900 1899 -1 -1919 1899 -1 -2299 1899 -1 -1900 1900 6 -1920 1900 -1 -2300 1900 -1 -1901 1901 6 -1902 1901 -1 -1921 1901 -1 -2301 1901 -1 -1902 1902 6 -1903 1902 -1 -1922 1902 -1 -2302 1902 -1 -1903 1903 6 -1904 1903 -1 -1923 1903 -1 -2303 1903 -1 -1904 1904 6 -1905 1904 -1 -1924 1904 -1 -2304 1904 -1 -1905 1905 6 -1906 1905 -1 -1925 1905 -1 -2305 1905 -1 -1906 1906 6 -1907 1906 -1 -1926 1906 -1 -2306 1906 -1 -1907 1907 6 -1908 1907 -1 -1927 1907 -1 -2307 1907 -1 -1908 1908 6 -1909 1908 -1 -1928 1908 -1 -2308 1908 -1 -1909 1909 6 -1910 1909 -1 -1929 1909 -1 -2309 1909 -1 -1910 1910 6 -1911 1910 -1 -1930 1910 -1 -2310 1910 -1 -1911 1911 6 -1912 1911 -1 -1931 1911 -1 -2311 1911 -1 -1912 1912 6 -1913 1912 -1 -1932 1912 -1 -2312 1912 -1 -1913 1913 6 -1914 1913 -1 -1933 1913 -1 -2313 1913 -1 -1914 1914 6 -1915 1914 -1 -1934 1914 -1 -2314 1914 -1 -1915 1915 6 -1916 1915 -1 -1935 1915 -1 -2315 1915 -1 -1916 1916 6 -1917 1916 -1 -1936 1916 -1 -2316 1916 -1 -1917 1917 6 -1918 1917 -1 -1937 1917 -1 -2317 1917 -1 -1918 1918 6 -1919 1918 -1 -1938 1918 -1 -2318 1918 -1 -1919 1919 6 -1920 1919 -1 -1939 1919 -1 -2319 1919 -1 -1920 1920 6 -1940 1920 -1 -2320 1920 -1 -1921 1921 6 -1922 1921 -1 -1941 1921 -1 -2321 1921 -1 -1922 1922 6 -1923 1922 -1 -1942 1922 -1 -2322 1922 -1 -1923 1923 6 -1924 1923 -1 -1943 1923 -1 -2323 1923 -1 -1924 1924 6 -1925 1924 -1 -1944 1924 -1 -2324 1924 -1 -1925 1925 6 -1926 1925 -1 -1945 1925 -1 -2325 1925 -1 -1926 1926 6 -1927 1926 -1 -1946 1926 -1 -2326 1926 -1 -1927 1927 6 -1928 1927 -1 -1947 1927 -1 -2327 1927 -1 -1928 1928 6 -1929 1928 -1 -1948 1928 -1 -2328 1928 -1 -1929 1929 6 -1930 1929 -1 -1949 1929 -1 -2329 1929 -1 -1930 1930 6 -1931 1930 -1 -1950 1930 -1 -2330 1930 -1 -1931 1931 6 -1932 1931 -1 -1951 1931 -1 -2331 1931 -1 -1932 1932 6 -1933 1932 -1 -1952 1932 -1 -2332 1932 -1 -1933 1933 6 -1934 1933 -1 -1953 1933 -1 -2333 1933 -1 -1934 1934 6 -1935 1934 -1 -1954 1934 -1 -2334 1934 -1 -1935 1935 6 -1936 1935 -1 -1955 1935 -1 -2335 1935 -1 -1936 1936 6 -1937 1936 -1 -1956 1936 -1 -2336 1936 -1 -1937 1937 6 -1938 1937 -1 -1957 1937 -1 -2337 1937 -1 -1938 1938 6 -1939 1938 -1 -1958 1938 -1 -2338 1938 -1 -1939 1939 6 -1940 1939 -1 -1959 1939 -1 -2339 1939 -1 -1940 1940 6 -1960 1940 -1 -2340 1940 -1 -1941 1941 6 -1942 1941 -1 -1961 1941 -1 -2341 1941 -1 -1942 1942 6 -1943 1942 -1 -1962 1942 -1 -2342 1942 -1 -1943 1943 6 -1944 1943 -1 -1963 1943 -1 -2343 1943 -1 -1944 1944 6 -1945 1944 -1 -1964 1944 -1 -2344 1944 -1 -1945 1945 6 -1946 1945 -1 -1965 1945 -1 -2345 1945 -1 -1946 1946 6 -1947 1946 -1 -1966 1946 -1 -2346 1946 -1 -1947 1947 6 -1948 1947 -1 -1967 1947 -1 -2347 1947 -1 -1948 1948 6 -1949 1948 -1 -1968 1948 -1 -2348 1948 -1 -1949 1949 6 -1950 1949 -1 -1969 1949 -1 -2349 1949 -1 -1950 1950 6 -1951 1950 -1 -1970 1950 -1 -2350 1950 -1 -1951 1951 6 -1952 1951 -1 -1971 1951 -1 -2351 1951 -1 -1952 1952 6 -1953 1952 -1 -1972 1952 -1 -2352 1952 -1 -1953 1953 6 -1954 1953 -1 -1973 1953 -1 -2353 1953 -1 -1954 1954 6 -1955 1954 -1 -1974 1954 -1 -2354 1954 -1 -1955 1955 6 -1956 1955 -1 -1975 1955 -1 -2355 1955 -1 -1956 1956 6 -1957 1956 -1 -1976 1956 -1 -2356 1956 -1 -1957 1957 6 -1958 1957 -1 -1977 1957 -1 -2357 1957 -1 -1958 1958 6 -1959 1958 -1 -1978 1958 -1 -2358 1958 -1 -1959 1959 6 -1960 1959 -1 -1979 1959 -1 -2359 1959 -1 -1960 1960 6 -1980 1960 -1 -2360 1960 -1 -1961 1961 6 -1962 1961 -1 -1981 1961 -1 -2361 1961 -1 -1962 1962 6 -1963 1962 -1 -1982 1962 -1 -2362 1962 -1 -1963 1963 6 -1964 1963 -1 -1983 1963 -1 -2363 1963 -1 -1964 1964 6 -1965 1964 -1 -1984 1964 -1 -2364 1964 -1 -1965 1965 6 -1966 1965 -1 -1985 1965 -1 -2365 1965 -1 -1966 1966 6 -1967 1966 -1 -1986 1966 -1 -2366 1966 -1 -1967 1967 6 -1968 1967 -1 -1987 1967 -1 -2367 1967 -1 -1968 1968 6 -1969 1968 -1 -1988 1968 -1 -2368 1968 -1 -1969 1969 6 -1970 1969 -1 -1989 1969 -1 -2369 1969 -1 -1970 1970 6 -1971 1970 -1 -1990 1970 -1 -2370 1970 -1 -1971 1971 6 -1972 1971 -1 -1991 1971 -1 -2371 1971 -1 -1972 1972 6 -1973 1972 -1 -1992 1972 -1 -2372 1972 -1 -1973 1973 6 -1974 1973 -1 -1993 1973 -1 -2373 1973 -1 -1974 1974 6 -1975 1974 -1 -1994 1974 -1 -2374 1974 -1 -1975 1975 6 -1976 1975 -1 -1995 1975 -1 -2375 1975 -1 -1976 1976 6 -1977 1976 -1 -1996 1976 -1 -2376 1976 -1 -1977 1977 6 -1978 1977 -1 -1997 1977 -1 -2377 1977 -1 -1978 1978 6 -1979 1978 -1 -1998 1978 -1 -2378 1978 -1 -1979 1979 6 -1980 1979 -1 -1999 1979 -1 -2379 1979 -1 -1980 1980 6 -2000 1980 -1 -2380 1980 -1 -1981 1981 6 -1982 1981 -1 -2381 1981 -1 -1982 1982 6 -1983 1982 -1 -2382 1982 -1 -1983 1983 6 -1984 1983 -1 -2383 1983 -1 -1984 1984 6 -1985 1984 -1 -2384 1984 -1 -1985 1985 6 -1986 1985 -1 -2385 1985 -1 -1986 1986 6 -1987 1986 -1 -2386 1986 -1 -1987 1987 6 -1988 1987 -1 -2387 1987 -1 -1988 1988 6 -1989 1988 -1 -2388 1988 -1 -1989 1989 6 -1990 1989 -1 -2389 1989 -1 -1990 1990 6 -1991 1990 -1 -2390 1990 -1 -1991 1991 6 -1992 1991 -1 -2391 1991 -1 -1992 1992 6 -1993 1992 -1 -2392 1992 -1 -1993 1993 6 -1994 1993 -1 -2393 1993 -1 -1994 1994 6 -1995 1994 -1 -2394 1994 -1 -1995 1995 6 -1996 1995 -1 -2395 1995 -1 -1996 1996 6 -1997 1996 -1 -2396 1996 -1 -1997 1997 6 -1998 1997 -1 -2397 1997 -1 -1998 1998 6 -1999 1998 -1 -2398 1998 -1 -1999 1999 6 -2000 1999 -1 -2399 1999 -1 -2000 2000 6 -2400 2000 -1 -2001 2001 6 -2002 2001 -1 -2021 2001 -1 -2401 2001 -1 -2002 2002 6 -2003 2002 -1 -2022 2002 -1 -2402 2002 -1 -2003 2003 6 -2004 2003 -1 -2023 2003 -1 -2403 2003 -1 -2004 2004 6 -2005 2004 -1 -2024 2004 -1 -2404 2004 -1 -2005 2005 6 -2006 2005 -1 -2025 2005 -1 -2405 2005 -1 -2006 2006 6 -2007 2006 -1 -2026 2006 -1 -2406 2006 -1 -2007 2007 6 -2008 2007 -1 -2027 2007 -1 -2407 2007 -1 -2008 2008 6 -2009 2008 -1 -2028 2008 -1 -2408 2008 -1 -2009 2009 6 -2010 2009 -1 -2029 2009 -1 -2409 2009 -1 -2010 2010 6 -2011 2010 -1 -2030 2010 -1 -2410 2010 -1 -2011 2011 6 -2012 2011 -1 -2031 2011 -1 -2411 2011 -1 -2012 2012 6 -2013 2012 -1 -2032 2012 -1 -2412 2012 -1 -2013 2013 6 -2014 2013 -1 -2033 2013 -1 -2413 2013 -1 -2014 2014 6 -2015 2014 -1 -2034 2014 -1 -2414 2014 -1 -2015 2015 6 -2016 2015 -1 -2035 2015 -1 -2415 2015 -1 -2016 2016 6 -2017 2016 -1 -2036 2016 -1 -2416 2016 -1 -2017 2017 6 -2018 2017 -1 -2037 2017 -1 -2417 2017 -1 -2018 2018 6 -2019 2018 -1 -2038 2018 -1 -2418 2018 -1 -2019 2019 6 -2020 2019 -1 -2039 2019 -1 -2419 2019 -1 -2020 2020 6 -2040 2020 -1 -2420 2020 -1 -2021 2021 6 -2022 2021 -1 -2041 2021 -1 -2421 2021 -1 -2022 2022 6 -2023 2022 -1 -2042 2022 -1 -2422 2022 -1 -2023 2023 6 -2024 2023 -1 -2043 2023 -1 -2423 2023 -1 -2024 2024 6 -2025 2024 -1 -2044 2024 -1 -2424 2024 -1 -2025 2025 6 -2026 2025 -1 -2045 2025 -1 -2425 2025 -1 -2026 2026 6 -2027 2026 -1 -2046 2026 -1 -2426 2026 -1 -2027 2027 6 -2028 2027 -1 -2047 2027 -1 -2427 2027 -1 -2028 2028 6 -2029 2028 -1 -2048 2028 -1 -2428 2028 -1 -2029 2029 6 -2030 2029 -1 -2049 2029 -1 -2429 2029 -1 -2030 2030 6 -2031 2030 -1 -2050 2030 -1 -2430 2030 -1 -2031 2031 6 -2032 2031 -1 -2051 2031 -1 -2431 2031 -1 -2032 2032 6 -2033 2032 -1 -2052 2032 -1 -2432 2032 -1 -2033 2033 6 -2034 2033 -1 -2053 2033 -1 -2433 2033 -1 -2034 2034 6 -2035 2034 -1 -2054 2034 -1 -2434 2034 -1 -2035 2035 6 -2036 2035 -1 -2055 2035 -1 -2435 2035 -1 -2036 2036 6 -2037 2036 -1 -2056 2036 -1 -2436 2036 -1 -2037 2037 6 -2038 2037 -1 -2057 2037 -1 -2437 2037 -1 -2038 2038 6 -2039 2038 -1 -2058 2038 -1 -2438 2038 -1 -2039 2039 6 -2040 2039 -1 -2059 2039 -1 -2439 2039 -1 -2040 2040 6 -2060 2040 -1 -2440 2040 -1 -2041 2041 6 -2042 2041 -1 -2061 2041 -1 -2441 2041 -1 -2042 2042 6 -2043 2042 -1 -2062 2042 -1 -2442 2042 -1 -2043 2043 6 -2044 2043 -1 -2063 2043 -1 -2443 2043 -1 -2044 2044 6 -2045 2044 -1 -2064 2044 -1 -2444 2044 -1 -2045 2045 6 -2046 2045 -1 -2065 2045 -1 -2445 2045 -1 -2046 2046 6 -2047 2046 -1 -2066 2046 -1 -2446 2046 -1 -2047 2047 6 -2048 2047 -1 -2067 2047 -1 -2447 2047 -1 -2048 2048 6 -2049 2048 -1 -2068 2048 -1 -2448 2048 -1 -2049 2049 6 -2050 2049 -1 -2069 2049 -1 -2449 2049 -1 -2050 2050 6 -2051 2050 -1 -2070 2050 -1 -2450 2050 -1 -2051 2051 6 -2052 2051 -1 -2071 2051 -1 -2451 2051 -1 -2052 2052 6 -2053 2052 -1 -2072 2052 -1 -2452 2052 -1 -2053 2053 6 -2054 2053 -1 -2073 2053 -1 -2453 2053 -1 -2054 2054 6 -2055 2054 -1 -2074 2054 -1 -2454 2054 -1 -2055 2055 6 -2056 2055 -1 -2075 2055 -1 -2455 2055 -1 -2056 2056 6 -2057 2056 -1 -2076 2056 -1 -2456 2056 -1 -2057 2057 6 -2058 2057 -1 -2077 2057 -1 -2457 2057 -1 -2058 2058 6 -2059 2058 -1 -2078 2058 -1 -2458 2058 -1 -2059 2059 6 -2060 2059 -1 -2079 2059 -1 -2459 2059 -1 -2060 2060 6 -2080 2060 -1 -2460 2060 -1 -2061 2061 6 -2062 2061 -1 -2081 2061 -1 -2461 2061 -1 -2062 2062 6 -2063 2062 -1 -2082 2062 -1 -2462 2062 -1 -2063 2063 6 -2064 2063 -1 -2083 2063 -1 -2463 2063 -1 -2064 2064 6 -2065 2064 -1 -2084 2064 -1 -2464 2064 -1 -2065 2065 6 -2066 2065 -1 -2085 2065 -1 -2465 2065 -1 -2066 2066 6 -2067 2066 -1 -2086 2066 -1 -2466 2066 -1 -2067 2067 6 -2068 2067 -1 -2087 2067 -1 -2467 2067 -1 -2068 2068 6 -2069 2068 -1 -2088 2068 -1 -2468 2068 -1 -2069 2069 6 -2070 2069 -1 -2089 2069 -1 -2469 2069 -1 -2070 2070 6 -2071 2070 -1 -2090 2070 -1 -2470 2070 -1 -2071 2071 6 -2072 2071 -1 -2091 2071 -1 -2471 2071 -1 -2072 2072 6 -2073 2072 -1 -2092 2072 -1 -2472 2072 -1 -2073 2073 6 -2074 2073 -1 -2093 2073 -1 -2473 2073 -1 -2074 2074 6 -2075 2074 -1 -2094 2074 -1 -2474 2074 -1 -2075 2075 6 -2076 2075 -1 -2095 2075 -1 -2475 2075 -1 -2076 2076 6 -2077 2076 -1 -2096 2076 -1 -2476 2076 -1 -2077 2077 6 -2078 2077 -1 -2097 2077 -1 -2477 2077 -1 -2078 2078 6 -2079 2078 -1 -2098 2078 -1 -2478 2078 -1 -2079 2079 6 -2080 2079 -1 -2099 2079 -1 -2479 2079 -1 -2080 2080 6 -2100 2080 -1 -2480 2080 -1 -2081 2081 6 -2082 2081 -1 -2101 2081 -1 -2481 2081 -1 -2082 2082 6 -2083 2082 -1 -2102 2082 -1 -2482 2082 -1 -2083 2083 6 -2084 2083 -1 -2103 2083 -1 -2483 2083 -1 -2084 2084 6 -2085 2084 -1 -2104 2084 -1 -2484 2084 -1 -2085 2085 6 -2086 2085 -1 -2105 2085 -1 -2485 2085 -1 -2086 2086 6 -2087 2086 -1 -2106 2086 -1 -2486 2086 -1 -2087 2087 6 -2088 2087 -1 -2107 2087 -1 -2487 2087 -1 -2088 2088 6 -2089 2088 -1 -2108 2088 -1 -2488 2088 -1 -2089 2089 6 -2090 2089 -1 -2109 2089 -1 -2489 2089 -1 -2090 2090 6 -2091 2090 -1 -2110 2090 -1 -2490 2090 -1 -2091 2091 6 -2092 2091 -1 -2111 2091 -1 -2491 2091 -1 -2092 2092 6 -2093 2092 -1 -2112 2092 -1 -2492 2092 -1 -2093 2093 6 -2094 2093 -1 -2113 2093 -1 -2493 2093 -1 -2094 2094 6 -2095 2094 -1 -2114 2094 -1 -2494 2094 -1 -2095 2095 6 -2096 2095 -1 -2115 2095 -1 -2495 2095 -1 -2096 2096 6 -2097 2096 -1 -2116 2096 -1 -2496 2096 -1 -2097 2097 6 -2098 2097 -1 -2117 2097 -1 -2497 2097 -1 -2098 2098 6 -2099 2098 -1 -2118 2098 -1 -2498 2098 -1 -2099 2099 6 -2100 2099 -1 -2119 2099 -1 -2499 2099 -1 -2100 2100 6 -2120 2100 -1 -2500 2100 -1 -2101 2101 6 -2102 2101 -1 -2121 2101 -1 -2501 2101 -1 -2102 2102 6 -2103 2102 -1 -2122 2102 -1 -2502 2102 -1 -2103 2103 6 -2104 2103 -1 -2123 2103 -1 -2503 2103 -1 -2104 2104 6 -2105 2104 -1 -2124 2104 -1 -2504 2104 -1 -2105 2105 6 -2106 2105 -1 -2125 2105 -1 -2505 2105 -1 -2106 2106 6 -2107 2106 -1 -2126 2106 -1 -2506 2106 -1 -2107 2107 6 -2108 2107 -1 -2127 2107 -1 -2507 2107 -1 -2108 2108 6 -2109 2108 -1 -2128 2108 -1 -2508 2108 -1 -2109 2109 6 -2110 2109 -1 -2129 2109 -1 -2509 2109 -1 -2110 2110 6 -2111 2110 -1 -2130 2110 -1 -2510 2110 -1 -2111 2111 6 -2112 2111 -1 -2131 2111 -1 -2511 2111 -1 -2112 2112 6 -2113 2112 -1 -2132 2112 -1 -2512 2112 -1 -2113 2113 6 -2114 2113 -1 -2133 2113 -1 -2513 2113 -1 -2114 2114 6 -2115 2114 -1 -2134 2114 -1 -2514 2114 -1 -2115 2115 6 -2116 2115 -1 -2135 2115 -1 -2515 2115 -1 -2116 2116 6 -2117 2116 -1 -2136 2116 -1 -2516 2116 -1 -2117 2117 6 -2118 2117 -1 -2137 2117 -1 -2517 2117 -1 -2118 2118 6 -2119 2118 -1 -2138 2118 -1 -2518 2118 -1 -2119 2119 6 -2120 2119 -1 -2139 2119 -1 -2519 2119 -1 -2120 2120 6 -2140 2120 -1 -2520 2120 -1 -2121 2121 6 -2122 2121 -1 -2141 2121 -1 -2521 2121 -1 -2122 2122 6 -2123 2122 -1 -2142 2122 -1 -2522 2122 -1 -2123 2123 6 -2124 2123 -1 -2143 2123 -1 -2523 2123 -1 -2124 2124 6 -2125 2124 -1 -2144 2124 -1 -2524 2124 -1 -2125 2125 6 -2126 2125 -1 -2145 2125 -1 -2525 2125 -1 -2126 2126 6 -2127 2126 -1 -2146 2126 -1 -2526 2126 -1 -2127 2127 6 -2128 2127 -1 -2147 2127 -1 -2527 2127 -1 -2128 2128 6 -2129 2128 -1 -2148 2128 -1 -2528 2128 -1 -2129 2129 6 -2130 2129 -1 -2149 2129 -1 -2529 2129 -1 -2130 2130 6 -2131 2130 -1 -2150 2130 -1 -2530 2130 -1 -2131 2131 6 -2132 2131 -1 -2151 2131 -1 -2531 2131 -1 -2132 2132 6 -2133 2132 -1 -2152 2132 -1 -2532 2132 -1 -2133 2133 6 -2134 2133 -1 -2153 2133 -1 -2533 2133 -1 -2134 2134 6 -2135 2134 -1 -2154 2134 -1 -2534 2134 -1 -2135 2135 6 -2136 2135 -1 -2155 2135 -1 -2535 2135 -1 -2136 2136 6 -2137 2136 -1 -2156 2136 -1 -2536 2136 -1 -2137 2137 6 -2138 2137 -1 -2157 2137 -1 -2537 2137 -1 -2138 2138 6 -2139 2138 -1 -2158 2138 -1 -2538 2138 -1 -2139 2139 6 -2140 2139 -1 -2159 2139 -1 -2539 2139 -1 -2140 2140 6 -2160 2140 -1 -2540 2140 -1 -2141 2141 6 -2142 2141 -1 -2161 2141 -1 -2541 2141 -1 -2142 2142 6 -2143 2142 -1 -2162 2142 -1 -2542 2142 -1 -2143 2143 6 -2144 2143 -1 -2163 2143 -1 -2543 2143 -1 -2144 2144 6 -2145 2144 -1 -2164 2144 -1 -2544 2144 -1 -2145 2145 6 -2146 2145 -1 -2165 2145 -1 -2545 2145 -1 -2146 2146 6 -2147 2146 -1 -2166 2146 -1 -2546 2146 -1 -2147 2147 6 -2148 2147 -1 -2167 2147 -1 -2547 2147 -1 -2148 2148 6 -2149 2148 -1 -2168 2148 -1 -2548 2148 -1 -2149 2149 6 -2150 2149 -1 -2169 2149 -1 -2549 2149 -1 -2150 2150 6 -2151 2150 -1 -2170 2150 -1 -2550 2150 -1 -2151 2151 6 -2152 2151 -1 -2171 2151 -1 -2551 2151 -1 -2152 2152 6 -2153 2152 -1 -2172 2152 -1 -2552 2152 -1 -2153 2153 6 -2154 2153 -1 -2173 2153 -1 -2553 2153 -1 -2154 2154 6 -2155 2154 -1 -2174 2154 -1 -2554 2154 -1 -2155 2155 6 -2156 2155 -1 -2175 2155 -1 -2555 2155 -1 -2156 2156 6 -2157 2156 -1 -2176 2156 -1 -2556 2156 -1 -2157 2157 6 -2158 2157 -1 -2177 2157 -1 -2557 2157 -1 -2158 2158 6 -2159 2158 -1 -2178 2158 -1 -2558 2158 -1 -2159 2159 6 -2160 2159 -1 -2179 2159 -1 -2559 2159 -1 -2160 2160 6 -2180 2160 -1 -2560 2160 -1 -2161 2161 6 -2162 2161 -1 -2181 2161 -1 -2561 2161 -1 -2162 2162 6 -2163 2162 -1 -2182 2162 -1 -2562 2162 -1 -2163 2163 6 -2164 2163 -1 -2183 2163 -1 -2563 2163 -1 -2164 2164 6 -2165 2164 -1 -2184 2164 -1 -2564 2164 -1 -2165 2165 6 -2166 2165 -1 -2185 2165 -1 -2565 2165 -1 -2166 2166 6 -2167 2166 -1 -2186 2166 -1 -2566 2166 -1 -2167 2167 6 -2168 2167 -1 -2187 2167 -1 -2567 2167 -1 -2168 2168 6 -2169 2168 -1 -2188 2168 -1 -2568 2168 -1 -2169 2169 6 -2170 2169 -1 -2189 2169 -1 -2569 2169 -1 -2170 2170 6 -2171 2170 -1 -2190 2170 -1 -2570 2170 -1 -2171 2171 6 -2172 2171 -1 -2191 2171 -1 -2571 2171 -1 -2172 2172 6 -2173 2172 -1 -2192 2172 -1 -2572 2172 -1 -2173 2173 6 -2174 2173 -1 -2193 2173 -1 -2573 2173 -1 -2174 2174 6 -2175 2174 -1 -2194 2174 -1 -2574 2174 -1 -2175 2175 6 -2176 2175 -1 -2195 2175 -1 -2575 2175 -1 -2176 2176 6 -2177 2176 -1 -2196 2176 -1 -2576 2176 -1 -2177 2177 6 -2178 2177 -1 -2197 2177 -1 -2577 2177 -1 -2178 2178 6 -2179 2178 -1 -2198 2178 -1 -2578 2178 -1 -2179 2179 6 -2180 2179 -1 -2199 2179 -1 -2579 2179 -1 -2180 2180 6 -2200 2180 -1 -2580 2180 -1 -2181 2181 6 -2182 2181 -1 -2201 2181 -1 -2581 2181 -1 -2182 2182 6 -2183 2182 -1 -2202 2182 -1 -2582 2182 -1 -2183 2183 6 -2184 2183 -1 -2203 2183 -1 -2583 2183 -1 -2184 2184 6 -2185 2184 -1 -2204 2184 -1 -2584 2184 -1 -2185 2185 6 -2186 2185 -1 -2205 2185 -1 -2585 2185 -1 -2186 2186 6 -2187 2186 -1 -2206 2186 -1 -2586 2186 -1 -2187 2187 6 -2188 2187 -1 -2207 2187 -1 -2587 2187 -1 -2188 2188 6 -2189 2188 -1 -2208 2188 -1 -2588 2188 -1 -2189 2189 6 -2190 2189 -1 -2209 2189 -1 -2589 2189 -1 -2190 2190 6 -2191 2190 -1 -2210 2190 -1 -2590 2190 -1 -2191 2191 6 -2192 2191 -1 -2211 2191 -1 -2591 2191 -1 -2192 2192 6 -2193 2192 -1 -2212 2192 -1 -2592 2192 -1 -2193 2193 6 -2194 2193 -1 -2213 2193 -1 -2593 2193 -1 -2194 2194 6 -2195 2194 -1 -2214 2194 -1 -2594 2194 -1 -2195 2195 6 -2196 2195 -1 -2215 2195 -1 -2595 2195 -1 -2196 2196 6 -2197 2196 -1 -2216 2196 -1 -2596 2196 -1 -2197 2197 6 -2198 2197 -1 -2217 2197 -1 -2597 2197 -1 -2198 2198 6 -2199 2198 -1 -2218 2198 -1 -2598 2198 -1 -2199 2199 6 -2200 2199 -1 -2219 2199 -1 -2599 2199 -1 -2200 2200 6 -2220 2200 -1 -2600 2200 -1 -2201 2201 6 -2202 2201 -1 -2221 2201 -1 -2601 2201 -1 -2202 2202 6 -2203 2202 -1 -2222 2202 -1 -2602 2202 -1 -2203 2203 6 -2204 2203 -1 -2223 2203 -1 -2603 2203 -1 -2204 2204 6 -2205 2204 -1 -2224 2204 -1 -2604 2204 -1 -2205 2205 6 -2206 2205 -1 -2225 2205 -1 -2605 2205 -1 -2206 2206 6 -2207 2206 -1 -2226 2206 -1 -2606 2206 -1 -2207 2207 6 -2208 2207 -1 -2227 2207 -1 -2607 2207 -1 -2208 2208 6 -2209 2208 -1 -2228 2208 -1 -2608 2208 -1 -2209 2209 6 -2210 2209 -1 -2229 2209 -1 -2609 2209 -1 -2210 2210 6 -2211 2210 -1 -2230 2210 -1 -2610 2210 -1 -2211 2211 6 -2212 2211 -1 -2231 2211 -1 -2611 2211 -1 -2212 2212 6 -2213 2212 -1 -2232 2212 -1 -2612 2212 -1 -2213 2213 6 -2214 2213 -1 -2233 2213 -1 -2613 2213 -1 -2214 2214 6 -2215 2214 -1 -2234 2214 -1 -2614 2214 -1 -2215 2215 6 -2216 2215 -1 -2235 2215 -1 -2615 2215 -1 -2216 2216 6 -2217 2216 -1 -2236 2216 -1 -2616 2216 -1 -2217 2217 6 -2218 2217 -1 -2237 2217 -1 -2617 2217 -1 -2218 2218 6 -2219 2218 -1 -2238 2218 -1 -2618 2218 -1 -2219 2219 6 -2220 2219 -1 -2239 2219 -1 -2619 2219 -1 -2220 2220 6 -2240 2220 -1 -2620 2220 -1 -2221 2221 6 -2222 2221 -1 -2241 2221 -1 -2621 2221 -1 -2222 2222 6 -2223 2222 -1 -2242 2222 -1 -2622 2222 -1 -2223 2223 6 -2224 2223 -1 -2243 2223 -1 -2623 2223 -1 -2224 2224 6 -2225 2224 -1 -2244 2224 -1 -2624 2224 -1 -2225 2225 6 -2226 2225 -1 -2245 2225 -1 -2625 2225 -1 -2226 2226 6 -2227 2226 -1 -2246 2226 -1 -2626 2226 -1 -2227 2227 6 -2228 2227 -1 -2247 2227 -1 -2627 2227 -1 -2228 2228 6 -2229 2228 -1 -2248 2228 -1 -2628 2228 -1 -2229 2229 6 -2230 2229 -1 -2249 2229 -1 -2629 2229 -1 -2230 2230 6 -2231 2230 -1 -2250 2230 -1 -2630 2230 -1 -2231 2231 6 -2232 2231 -1 -2251 2231 -1 -2631 2231 -1 -2232 2232 6 -2233 2232 -1 -2252 2232 -1 -2632 2232 -1 -2233 2233 6 -2234 2233 -1 -2253 2233 -1 -2633 2233 -1 -2234 2234 6 -2235 2234 -1 -2254 2234 -1 -2634 2234 -1 -2235 2235 6 -2236 2235 -1 -2255 2235 -1 -2635 2235 -1 -2236 2236 6 -2237 2236 -1 -2256 2236 -1 -2636 2236 -1 -2237 2237 6 -2238 2237 -1 -2257 2237 -1 -2637 2237 -1 -2238 2238 6 -2239 2238 -1 -2258 2238 -1 -2638 2238 -1 -2239 2239 6 -2240 2239 -1 -2259 2239 -1 -2639 2239 -1 -2240 2240 6 -2260 2240 -1 -2640 2240 -1 -2241 2241 6 -2242 2241 -1 -2261 2241 -1 -2641 2241 -1 -2242 2242 6 -2243 2242 -1 -2262 2242 -1 -2642 2242 -1 -2243 2243 6 -2244 2243 -1 -2263 2243 -1 -2643 2243 -1 -2244 2244 6 -2245 2244 -1 -2264 2244 -1 -2644 2244 -1 -2245 2245 6 -2246 2245 -1 -2265 2245 -1 -2645 2245 -1 -2246 2246 6 -2247 2246 -1 -2266 2246 -1 -2646 2246 -1 -2247 2247 6 -2248 2247 -1 -2267 2247 -1 -2647 2247 -1 -2248 2248 6 -2249 2248 -1 -2268 2248 -1 -2648 2248 -1 -2249 2249 6 -2250 2249 -1 -2269 2249 -1 -2649 2249 -1 -2250 2250 6 -2251 2250 -1 -2270 2250 -1 -2650 2250 -1 -2251 2251 6 -2252 2251 -1 -2271 2251 -1 -2651 2251 -1 -2252 2252 6 -2253 2252 -1 -2272 2252 -1 -2652 2252 -1 -2253 2253 6 -2254 2253 -1 -2273 2253 -1 -2653 2253 -1 -2254 2254 6 -2255 2254 -1 -2274 2254 -1 -2654 2254 -1 -2255 2255 6 -2256 2255 -1 -2275 2255 -1 -2655 2255 -1 -2256 2256 6 -2257 2256 -1 -2276 2256 -1 -2656 2256 -1 -2257 2257 6 -2258 2257 -1 -2277 2257 -1 -2657 2257 -1 -2258 2258 6 -2259 2258 -1 -2278 2258 -1 -2658 2258 -1 -2259 2259 6 -2260 2259 -1 -2279 2259 -1 -2659 2259 -1 -2260 2260 6 -2280 2260 -1 -2660 2260 -1 -2261 2261 6 -2262 2261 -1 -2281 2261 -1 -2661 2261 -1 -2262 2262 6 -2263 2262 -1 -2282 2262 -1 -2662 2262 -1 -2263 2263 6 -2264 2263 -1 -2283 2263 -1 -2663 2263 -1 -2264 2264 6 -2265 2264 -1 -2284 2264 -1 -2664 2264 -1 -2265 2265 6 -2266 2265 -1 -2285 2265 -1 -2665 2265 -1 -2266 2266 6 -2267 2266 -1 -2286 2266 -1 -2666 2266 -1 -2267 2267 6 -2268 2267 -1 -2287 2267 -1 -2667 2267 -1 -2268 2268 6 -2269 2268 -1 -2288 2268 -1 -2668 2268 -1 -2269 2269 6 -2270 2269 -1 -2289 2269 -1 -2669 2269 -1 -2270 2270 6 -2271 2270 -1 -2290 2270 -1 -2670 2270 -1 -2271 2271 6 -2272 2271 -1 -2291 2271 -1 -2671 2271 -1 -2272 2272 6 -2273 2272 -1 -2292 2272 -1 -2672 2272 -1 -2273 2273 6 -2274 2273 -1 -2293 2273 -1 -2673 2273 -1 -2274 2274 6 -2275 2274 -1 -2294 2274 -1 -2674 2274 -1 -2275 2275 6 -2276 2275 -1 -2295 2275 -1 -2675 2275 -1 -2276 2276 6 -2277 2276 -1 -2296 2276 -1 -2676 2276 -1 -2277 2277 6 -2278 2277 -1 -2297 2277 -1 -2677 2277 -1 -2278 2278 6 -2279 2278 -1 -2298 2278 -1 -2678 2278 -1 -2279 2279 6 -2280 2279 -1 -2299 2279 -1 -2679 2279 -1 -2280 2280 6 -2300 2280 -1 -2680 2280 -1 -2281 2281 6 -2282 2281 -1 -2301 2281 -1 -2681 2281 -1 -2282 2282 6 -2283 2282 -1 -2302 2282 -1 -2682 2282 -1 -2283 2283 6 -2284 2283 -1 -2303 2283 -1 -2683 2283 -1 -2284 2284 6 -2285 2284 -1 -2304 2284 -1 -2684 2284 -1 -2285 2285 6 -2286 2285 -1 -2305 2285 -1 -2685 2285 -1 -2286 2286 6 -2287 2286 -1 -2306 2286 -1 -2686 2286 -1 -2287 2287 6 -2288 2287 -1 -2307 2287 -1 -2687 2287 -1 -2288 2288 6 -2289 2288 -1 -2308 2288 -1 -2688 2288 -1 -2289 2289 6 -2290 2289 -1 -2309 2289 -1 -2689 2289 -1 -2290 2290 6 -2291 2290 -1 -2310 2290 -1 -2690 2290 -1 -2291 2291 6 -2292 2291 -1 -2311 2291 -1 -2691 2291 -1 -2292 2292 6 -2293 2292 -1 -2312 2292 -1 -2692 2292 -1 -2293 2293 6 -2294 2293 -1 -2313 2293 -1 -2693 2293 -1 -2294 2294 6 -2295 2294 -1 -2314 2294 -1 -2694 2294 -1 -2295 2295 6 -2296 2295 -1 -2315 2295 -1 -2695 2295 -1 -2296 2296 6 -2297 2296 -1 -2316 2296 -1 -2696 2296 -1 -2297 2297 6 -2298 2297 -1 -2317 2297 -1 -2697 2297 -1 -2298 2298 6 -2299 2298 -1 -2318 2298 -1 -2698 2298 -1 -2299 2299 6 -2300 2299 -1 -2319 2299 -1 -2699 2299 -1 -2300 2300 6 -2320 2300 -1 -2700 2300 -1 -2301 2301 6 -2302 2301 -1 -2321 2301 -1 -2701 2301 -1 -2302 2302 6 -2303 2302 -1 -2322 2302 -1 -2702 2302 -1 -2303 2303 6 -2304 2303 -1 -2323 2303 -1 -2703 2303 -1 -2304 2304 6 -2305 2304 -1 -2324 2304 -1 -2704 2304 -1 -2305 2305 6 -2306 2305 -1 -2325 2305 -1 -2705 2305 -1 -2306 2306 6 -2307 2306 -1 -2326 2306 -1 -2706 2306 -1 -2307 2307 6 -2308 2307 -1 -2327 2307 -1 -2707 2307 -1 -2308 2308 6 -2309 2308 -1 -2328 2308 -1 -2708 2308 -1 -2309 2309 6 -2310 2309 -1 -2329 2309 -1 -2709 2309 -1 -2310 2310 6 -2311 2310 -1 -2330 2310 -1 -2710 2310 -1 -2311 2311 6 -2312 2311 -1 -2331 2311 -1 -2711 2311 -1 -2312 2312 6 -2313 2312 -1 -2332 2312 -1 -2712 2312 -1 -2313 2313 6 -2314 2313 -1 -2333 2313 -1 -2713 2313 -1 -2314 2314 6 -2315 2314 -1 -2334 2314 -1 -2714 2314 -1 -2315 2315 6 -2316 2315 -1 -2335 2315 -1 -2715 2315 -1 -2316 2316 6 -2317 2316 -1 -2336 2316 -1 -2716 2316 -1 -2317 2317 6 -2318 2317 -1 -2337 2317 -1 -2717 2317 -1 -2318 2318 6 -2319 2318 -1 -2338 2318 -1 -2718 2318 -1 -2319 2319 6 -2320 2319 -1 -2339 2319 -1 -2719 2319 -1 -2320 2320 6 -2340 2320 -1 -2720 2320 -1 -2321 2321 6 -2322 2321 -1 -2341 2321 -1 -2721 2321 -1 -2322 2322 6 -2323 2322 -1 -2342 2322 -1 -2722 2322 -1 -2323 2323 6 -2324 2323 -1 -2343 2323 -1 -2723 2323 -1 -2324 2324 6 -2325 2324 -1 -2344 2324 -1 -2724 2324 -1 -2325 2325 6 -2326 2325 -1 -2345 2325 -1 -2725 2325 -1 -2326 2326 6 -2327 2326 -1 -2346 2326 -1 -2726 2326 -1 -2327 2327 6 -2328 2327 -1 -2347 2327 -1 -2727 2327 -1 -2328 2328 6 -2329 2328 -1 -2348 2328 -1 -2728 2328 -1 -2329 2329 6 -2330 2329 -1 -2349 2329 -1 -2729 2329 -1 -2330 2330 6 -2331 2330 -1 -2350 2330 -1 -2730 2330 -1 -2331 2331 6 -2332 2331 -1 -2351 2331 -1 -2731 2331 -1 -2332 2332 6 -2333 2332 -1 -2352 2332 -1 -2732 2332 -1 -2333 2333 6 -2334 2333 -1 -2353 2333 -1 -2733 2333 -1 -2334 2334 6 -2335 2334 -1 -2354 2334 -1 -2734 2334 -1 -2335 2335 6 -2336 2335 -1 -2355 2335 -1 -2735 2335 -1 -2336 2336 6 -2337 2336 -1 -2356 2336 -1 -2736 2336 -1 -2337 2337 6 -2338 2337 -1 -2357 2337 -1 -2737 2337 -1 -2338 2338 6 -2339 2338 -1 -2358 2338 -1 -2738 2338 -1 -2339 2339 6 -2340 2339 -1 -2359 2339 -1 -2739 2339 -1 -2340 2340 6 -2360 2340 -1 -2740 2340 -1 -2341 2341 6 -2342 2341 -1 -2361 2341 -1 -2741 2341 -1 -2342 2342 6 -2343 2342 -1 -2362 2342 -1 -2742 2342 -1 -2343 2343 6 -2344 2343 -1 -2363 2343 -1 -2743 2343 -1 -2344 2344 6 -2345 2344 -1 -2364 2344 -1 -2744 2344 -1 -2345 2345 6 -2346 2345 -1 -2365 2345 -1 -2745 2345 -1 -2346 2346 6 -2347 2346 -1 -2366 2346 -1 -2746 2346 -1 -2347 2347 6 -2348 2347 -1 -2367 2347 -1 -2747 2347 -1 -2348 2348 6 -2349 2348 -1 -2368 2348 -1 -2748 2348 -1 -2349 2349 6 -2350 2349 -1 -2369 2349 -1 -2749 2349 -1 -2350 2350 6 -2351 2350 -1 -2370 2350 -1 -2750 2350 -1 -2351 2351 6 -2352 2351 -1 -2371 2351 -1 -2751 2351 -1 -2352 2352 6 -2353 2352 -1 -2372 2352 -1 -2752 2352 -1 -2353 2353 6 -2354 2353 -1 -2373 2353 -1 -2753 2353 -1 -2354 2354 6 -2355 2354 -1 -2374 2354 -1 -2754 2354 -1 -2355 2355 6 -2356 2355 -1 -2375 2355 -1 -2755 2355 -1 -2356 2356 6 -2357 2356 -1 -2376 2356 -1 -2756 2356 -1 -2357 2357 6 -2358 2357 -1 -2377 2357 -1 -2757 2357 -1 -2358 2358 6 -2359 2358 -1 -2378 2358 -1 -2758 2358 -1 -2359 2359 6 -2360 2359 -1 -2379 2359 -1 -2759 2359 -1 -2360 2360 6 -2380 2360 -1 -2760 2360 -1 -2361 2361 6 -2362 2361 -1 -2381 2361 -1 -2761 2361 -1 -2362 2362 6 -2363 2362 -1 -2382 2362 -1 -2762 2362 -1 -2363 2363 6 -2364 2363 -1 -2383 2363 -1 -2763 2363 -1 -2364 2364 6 -2365 2364 -1 -2384 2364 -1 -2764 2364 -1 -2365 2365 6 -2366 2365 -1 -2385 2365 -1 -2765 2365 -1 -2366 2366 6 -2367 2366 -1 -2386 2366 -1 -2766 2366 -1 -2367 2367 6 -2368 2367 -1 -2387 2367 -1 -2767 2367 -1 -2368 2368 6 -2369 2368 -1 -2388 2368 -1 -2768 2368 -1 -2369 2369 6 -2370 2369 -1 -2389 2369 -1 -2769 2369 -1 -2370 2370 6 -2371 2370 -1 -2390 2370 -1 -2770 2370 -1 -2371 2371 6 -2372 2371 -1 -2391 2371 -1 -2771 2371 -1 -2372 2372 6 -2373 2372 -1 -2392 2372 -1 -2772 2372 -1 -2373 2373 6 -2374 2373 -1 -2393 2373 -1 -2773 2373 -1 -2374 2374 6 -2375 2374 -1 -2394 2374 -1 -2774 2374 -1 -2375 2375 6 -2376 2375 -1 -2395 2375 -1 -2775 2375 -1 -2376 2376 6 -2377 2376 -1 -2396 2376 -1 -2776 2376 -1 -2377 2377 6 -2378 2377 -1 -2397 2377 -1 -2777 2377 -1 -2378 2378 6 -2379 2378 -1 -2398 2378 -1 -2778 2378 -1 -2379 2379 6 -2380 2379 -1 -2399 2379 -1 -2779 2379 -1 -2380 2380 6 -2400 2380 -1 -2780 2380 -1 -2381 2381 6 -2382 2381 -1 -2781 2381 -1 -2382 2382 6 -2383 2382 -1 -2782 2382 -1 -2383 2383 6 -2384 2383 -1 -2783 2383 -1 -2384 2384 6 -2385 2384 -1 -2784 2384 -1 -2385 2385 6 -2386 2385 -1 -2785 2385 -1 -2386 2386 6 -2387 2386 -1 -2786 2386 -1 -2387 2387 6 -2388 2387 -1 -2787 2387 -1 -2388 2388 6 -2389 2388 -1 -2788 2388 -1 -2389 2389 6 -2390 2389 -1 -2789 2389 -1 -2390 2390 6 -2391 2390 -1 -2790 2390 -1 -2391 2391 6 -2392 2391 -1 -2791 2391 -1 -2392 2392 6 -2393 2392 -1 -2792 2392 -1 -2393 2393 6 -2394 2393 -1 -2793 2393 -1 -2394 2394 6 -2395 2394 -1 -2794 2394 -1 -2395 2395 6 -2396 2395 -1 -2795 2395 -1 -2396 2396 6 -2397 2396 -1 -2796 2396 -1 -2397 2397 6 -2398 2397 -1 -2797 2397 -1 -2398 2398 6 -2399 2398 -1 -2798 2398 -1 -2399 2399 6 -2400 2399 -1 -2799 2399 -1 -2400 2400 6 -2800 2400 -1 -2401 2401 6 -2402 2401 -1 -2421 2401 -1 -2801 2401 -1 -2402 2402 6 -2403 2402 -1 -2422 2402 -1 -2802 2402 -1 -2403 2403 6 -2404 2403 -1 -2423 2403 -1 -2803 2403 -1 -2404 2404 6 -2405 2404 -1 -2424 2404 -1 -2804 2404 -1 -2405 2405 6 -2406 2405 -1 -2425 2405 -1 -2805 2405 -1 -2406 2406 6 -2407 2406 -1 -2426 2406 -1 -2806 2406 -1 -2407 2407 6 -2408 2407 -1 -2427 2407 -1 -2807 2407 -1 -2408 2408 6 -2409 2408 -1 -2428 2408 -1 -2808 2408 -1 -2409 2409 6 -2410 2409 -1 -2429 2409 -1 -2809 2409 -1 -2410 2410 6 -2411 2410 -1 -2430 2410 -1 -2810 2410 -1 -2411 2411 6 -2412 2411 -1 -2431 2411 -1 -2811 2411 -1 -2412 2412 6 -2413 2412 -1 -2432 2412 -1 -2812 2412 -1 -2413 2413 6 -2414 2413 -1 -2433 2413 -1 -2813 2413 -1 -2414 2414 6 -2415 2414 -1 -2434 2414 -1 -2814 2414 -1 -2415 2415 6 -2416 2415 -1 -2435 2415 -1 -2815 2415 -1 -2416 2416 6 -2417 2416 -1 -2436 2416 -1 -2816 2416 -1 -2417 2417 6 -2418 2417 -1 -2437 2417 -1 -2817 2417 -1 -2418 2418 6 -2419 2418 -1 -2438 2418 -1 -2818 2418 -1 -2419 2419 6 -2420 2419 -1 -2439 2419 -1 -2819 2419 -1 -2420 2420 6 -2440 2420 -1 -2820 2420 -1 -2421 2421 6 -2422 2421 -1 -2441 2421 -1 -2821 2421 -1 -2422 2422 6 -2423 2422 -1 -2442 2422 -1 -2822 2422 -1 -2423 2423 6 -2424 2423 -1 -2443 2423 -1 -2823 2423 -1 -2424 2424 6 -2425 2424 -1 -2444 2424 -1 -2824 2424 -1 -2425 2425 6 -2426 2425 -1 -2445 2425 -1 -2825 2425 -1 -2426 2426 6 -2427 2426 -1 -2446 2426 -1 -2826 2426 -1 -2427 2427 6 -2428 2427 -1 -2447 2427 -1 -2827 2427 -1 -2428 2428 6 -2429 2428 -1 -2448 2428 -1 -2828 2428 -1 -2429 2429 6 -2430 2429 -1 -2449 2429 -1 -2829 2429 -1 -2430 2430 6 -2431 2430 -1 -2450 2430 -1 -2830 2430 -1 -2431 2431 6 -2432 2431 -1 -2451 2431 -1 -2831 2431 -1 -2432 2432 6 -2433 2432 -1 -2452 2432 -1 -2832 2432 -1 -2433 2433 6 -2434 2433 -1 -2453 2433 -1 -2833 2433 -1 -2434 2434 6 -2435 2434 -1 -2454 2434 -1 -2834 2434 -1 -2435 2435 6 -2436 2435 -1 -2455 2435 -1 -2835 2435 -1 -2436 2436 6 -2437 2436 -1 -2456 2436 -1 -2836 2436 -1 -2437 2437 6 -2438 2437 -1 -2457 2437 -1 -2837 2437 -1 -2438 2438 6 -2439 2438 -1 -2458 2438 -1 -2838 2438 -1 -2439 2439 6 -2440 2439 -1 -2459 2439 -1 -2839 2439 -1 -2440 2440 6 -2460 2440 -1 -2840 2440 -1 -2441 2441 6 -2442 2441 -1 -2461 2441 -1 -2841 2441 -1 -2442 2442 6 -2443 2442 -1 -2462 2442 -1 -2842 2442 -1 -2443 2443 6 -2444 2443 -1 -2463 2443 -1 -2843 2443 -1 -2444 2444 6 -2445 2444 -1 -2464 2444 -1 -2844 2444 -1 -2445 2445 6 -2446 2445 -1 -2465 2445 -1 -2845 2445 -1 -2446 2446 6 -2447 2446 -1 -2466 2446 -1 -2846 2446 -1 -2447 2447 6 -2448 2447 -1 -2467 2447 -1 -2847 2447 -1 -2448 2448 6 -2449 2448 -1 -2468 2448 -1 -2848 2448 -1 -2449 2449 6 -2450 2449 -1 -2469 2449 -1 -2849 2449 -1 -2450 2450 6 -2451 2450 -1 -2470 2450 -1 -2850 2450 -1 -2451 2451 6 -2452 2451 -1 -2471 2451 -1 -2851 2451 -1 -2452 2452 6 -2453 2452 -1 -2472 2452 -1 -2852 2452 -1 -2453 2453 6 -2454 2453 -1 -2473 2453 -1 -2853 2453 -1 -2454 2454 6 -2455 2454 -1 -2474 2454 -1 -2854 2454 -1 -2455 2455 6 -2456 2455 -1 -2475 2455 -1 -2855 2455 -1 -2456 2456 6 -2457 2456 -1 -2476 2456 -1 -2856 2456 -1 -2457 2457 6 -2458 2457 -1 -2477 2457 -1 -2857 2457 -1 -2458 2458 6 -2459 2458 -1 -2478 2458 -1 -2858 2458 -1 -2459 2459 6 -2460 2459 -1 -2479 2459 -1 -2859 2459 -1 -2460 2460 6 -2480 2460 -1 -2860 2460 -1 -2461 2461 6 -2462 2461 -1 -2481 2461 -1 -2861 2461 -1 -2462 2462 6 -2463 2462 -1 -2482 2462 -1 -2862 2462 -1 -2463 2463 6 -2464 2463 -1 -2483 2463 -1 -2863 2463 -1 -2464 2464 6 -2465 2464 -1 -2484 2464 -1 -2864 2464 -1 -2465 2465 6 -2466 2465 -1 -2485 2465 -1 -2865 2465 -1 -2466 2466 6 -2467 2466 -1 -2486 2466 -1 -2866 2466 -1 -2467 2467 6 -2468 2467 -1 -2487 2467 -1 -2867 2467 -1 -2468 2468 6 -2469 2468 -1 -2488 2468 -1 -2868 2468 -1 -2469 2469 6 -2470 2469 -1 -2489 2469 -1 -2869 2469 -1 -2470 2470 6 -2471 2470 -1 -2490 2470 -1 -2870 2470 -1 -2471 2471 6 -2472 2471 -1 -2491 2471 -1 -2871 2471 -1 -2472 2472 6 -2473 2472 -1 -2492 2472 -1 -2872 2472 -1 -2473 2473 6 -2474 2473 -1 -2493 2473 -1 -2873 2473 -1 -2474 2474 6 -2475 2474 -1 -2494 2474 -1 -2874 2474 -1 -2475 2475 6 -2476 2475 -1 -2495 2475 -1 -2875 2475 -1 -2476 2476 6 -2477 2476 -1 -2496 2476 -1 -2876 2476 -1 -2477 2477 6 -2478 2477 -1 -2497 2477 -1 -2877 2477 -1 -2478 2478 6 -2479 2478 -1 -2498 2478 -1 -2878 2478 -1 -2479 2479 6 -2480 2479 -1 -2499 2479 -1 -2879 2479 -1 -2480 2480 6 -2500 2480 -1 -2880 2480 -1 -2481 2481 6 -2482 2481 -1 -2501 2481 -1 -2881 2481 -1 -2482 2482 6 -2483 2482 -1 -2502 2482 -1 -2882 2482 -1 -2483 2483 6 -2484 2483 -1 -2503 2483 -1 -2883 2483 -1 -2484 2484 6 -2485 2484 -1 -2504 2484 -1 -2884 2484 -1 -2485 2485 6 -2486 2485 -1 -2505 2485 -1 -2885 2485 -1 -2486 2486 6 -2487 2486 -1 -2506 2486 -1 -2886 2486 -1 -2487 2487 6 -2488 2487 -1 -2507 2487 -1 -2887 2487 -1 -2488 2488 6 -2489 2488 -1 -2508 2488 -1 -2888 2488 -1 -2489 2489 6 -2490 2489 -1 -2509 2489 -1 -2889 2489 -1 -2490 2490 6 -2491 2490 -1 -2510 2490 -1 -2890 2490 -1 -2491 2491 6 -2492 2491 -1 -2511 2491 -1 -2891 2491 -1 -2492 2492 6 -2493 2492 -1 -2512 2492 -1 -2892 2492 -1 -2493 2493 6 -2494 2493 -1 -2513 2493 -1 -2893 2493 -1 -2494 2494 6 -2495 2494 -1 -2514 2494 -1 -2894 2494 -1 -2495 2495 6 -2496 2495 -1 -2515 2495 -1 -2895 2495 -1 -2496 2496 6 -2497 2496 -1 -2516 2496 -1 -2896 2496 -1 -2497 2497 6 -2498 2497 -1 -2517 2497 -1 -2897 2497 -1 -2498 2498 6 -2499 2498 -1 -2518 2498 -1 -2898 2498 -1 -2499 2499 6 -2500 2499 -1 -2519 2499 -1 -2899 2499 -1 -2500 2500 6 -2520 2500 -1 -2900 2500 -1 -2501 2501 6 -2502 2501 -1 -2521 2501 -1 -2901 2501 -1 -2502 2502 6 -2503 2502 -1 -2522 2502 -1 -2902 2502 -1 -2503 2503 6 -2504 2503 -1 -2523 2503 -1 -2903 2503 -1 -2504 2504 6 -2505 2504 -1 -2524 2504 -1 -2904 2504 -1 -2505 2505 6 -2506 2505 -1 -2525 2505 -1 -2905 2505 -1 -2506 2506 6 -2507 2506 -1 -2526 2506 -1 -2906 2506 -1 -2507 2507 6 -2508 2507 -1 -2527 2507 -1 -2907 2507 -1 -2508 2508 6 -2509 2508 -1 -2528 2508 -1 -2908 2508 -1 -2509 2509 6 -2510 2509 -1 -2529 2509 -1 -2909 2509 -1 -2510 2510 6 -2511 2510 -1 -2530 2510 -1 -2910 2510 -1 -2511 2511 6 -2512 2511 -1 -2531 2511 -1 -2911 2511 -1 -2512 2512 6 -2513 2512 -1 -2532 2512 -1 -2912 2512 -1 -2513 2513 6 -2514 2513 -1 -2533 2513 -1 -2913 2513 -1 -2514 2514 6 -2515 2514 -1 -2534 2514 -1 -2914 2514 -1 -2515 2515 6 -2516 2515 -1 -2535 2515 -1 -2915 2515 -1 -2516 2516 6 -2517 2516 -1 -2536 2516 -1 -2916 2516 -1 -2517 2517 6 -2518 2517 -1 -2537 2517 -1 -2917 2517 -1 -2518 2518 6 -2519 2518 -1 -2538 2518 -1 -2918 2518 -1 -2519 2519 6 -2520 2519 -1 -2539 2519 -1 -2919 2519 -1 -2520 2520 6 -2540 2520 -1 -2920 2520 -1 -2521 2521 6 -2522 2521 -1 -2541 2521 -1 -2921 2521 -1 -2522 2522 6 -2523 2522 -1 -2542 2522 -1 -2922 2522 -1 -2523 2523 6 -2524 2523 -1 -2543 2523 -1 -2923 2523 -1 -2524 2524 6 -2525 2524 -1 -2544 2524 -1 -2924 2524 -1 -2525 2525 6 -2526 2525 -1 -2545 2525 -1 -2925 2525 -1 -2526 2526 6 -2527 2526 -1 -2546 2526 -1 -2926 2526 -1 -2527 2527 6 -2528 2527 -1 -2547 2527 -1 -2927 2527 -1 -2528 2528 6 -2529 2528 -1 -2548 2528 -1 -2928 2528 -1 -2529 2529 6 -2530 2529 -1 -2549 2529 -1 -2929 2529 -1 -2530 2530 6 -2531 2530 -1 -2550 2530 -1 -2930 2530 -1 -2531 2531 6 -2532 2531 -1 -2551 2531 -1 -2931 2531 -1 -2532 2532 6 -2533 2532 -1 -2552 2532 -1 -2932 2532 -1 -2533 2533 6 -2534 2533 -1 -2553 2533 -1 -2933 2533 -1 -2534 2534 6 -2535 2534 -1 -2554 2534 -1 -2934 2534 -1 -2535 2535 6 -2536 2535 -1 -2555 2535 -1 -2935 2535 -1 -2536 2536 6 -2537 2536 -1 -2556 2536 -1 -2936 2536 -1 -2537 2537 6 -2538 2537 -1 -2557 2537 -1 -2937 2537 -1 -2538 2538 6 -2539 2538 -1 -2558 2538 -1 -2938 2538 -1 -2539 2539 6 -2540 2539 -1 -2559 2539 -1 -2939 2539 -1 -2540 2540 6 -2560 2540 -1 -2940 2540 -1 -2541 2541 6 -2542 2541 -1 -2561 2541 -1 -2941 2541 -1 -2542 2542 6 -2543 2542 -1 -2562 2542 -1 -2942 2542 -1 -2543 2543 6 -2544 2543 -1 -2563 2543 -1 -2943 2543 -1 -2544 2544 6 -2545 2544 -1 -2564 2544 -1 -2944 2544 -1 -2545 2545 6 -2546 2545 -1 -2565 2545 -1 -2945 2545 -1 -2546 2546 6 -2547 2546 -1 -2566 2546 -1 -2946 2546 -1 -2547 2547 6 -2548 2547 -1 -2567 2547 -1 -2947 2547 -1 -2548 2548 6 -2549 2548 -1 -2568 2548 -1 -2948 2548 -1 -2549 2549 6 -2550 2549 -1 -2569 2549 -1 -2949 2549 -1 -2550 2550 6 -2551 2550 -1 -2570 2550 -1 -2950 2550 -1 -2551 2551 6 -2552 2551 -1 -2571 2551 -1 -2951 2551 -1 -2552 2552 6 -2553 2552 -1 -2572 2552 -1 -2952 2552 -1 -2553 2553 6 -2554 2553 -1 -2573 2553 -1 -2953 2553 -1 -2554 2554 6 -2555 2554 -1 -2574 2554 -1 -2954 2554 -1 -2555 2555 6 -2556 2555 -1 -2575 2555 -1 -2955 2555 -1 -2556 2556 6 -2557 2556 -1 -2576 2556 -1 -2956 2556 -1 -2557 2557 6 -2558 2557 -1 -2577 2557 -1 -2957 2557 -1 -2558 2558 6 -2559 2558 -1 -2578 2558 -1 -2958 2558 -1 -2559 2559 6 -2560 2559 -1 -2579 2559 -1 -2959 2559 -1 -2560 2560 6 -2580 2560 -1 -2960 2560 -1 -2561 2561 6 -2562 2561 -1 -2581 2561 -1 -2961 2561 -1 -2562 2562 6 -2563 2562 -1 -2582 2562 -1 -2962 2562 -1 -2563 2563 6 -2564 2563 -1 -2583 2563 -1 -2963 2563 -1 -2564 2564 6 -2565 2564 -1 -2584 2564 -1 -2964 2564 -1 -2565 2565 6 -2566 2565 -1 -2585 2565 -1 -2965 2565 -1 -2566 2566 6 -2567 2566 -1 -2586 2566 -1 -2966 2566 -1 -2567 2567 6 -2568 2567 -1 -2587 2567 -1 -2967 2567 -1 -2568 2568 6 -2569 2568 -1 -2588 2568 -1 -2968 2568 -1 -2569 2569 6 -2570 2569 -1 -2589 2569 -1 -2969 2569 -1 -2570 2570 6 -2571 2570 -1 -2590 2570 -1 -2970 2570 -1 -2571 2571 6 -2572 2571 -1 -2591 2571 -1 -2971 2571 -1 -2572 2572 6 -2573 2572 -1 -2592 2572 -1 -2972 2572 -1 -2573 2573 6 -2574 2573 -1 -2593 2573 -1 -2973 2573 -1 -2574 2574 6 -2575 2574 -1 -2594 2574 -1 -2974 2574 -1 -2575 2575 6 -2576 2575 -1 -2595 2575 -1 -2975 2575 -1 -2576 2576 6 -2577 2576 -1 -2596 2576 -1 -2976 2576 -1 -2577 2577 6 -2578 2577 -1 -2597 2577 -1 -2977 2577 -1 -2578 2578 6 -2579 2578 -1 -2598 2578 -1 -2978 2578 -1 -2579 2579 6 -2580 2579 -1 -2599 2579 -1 -2979 2579 -1 -2580 2580 6 -2600 2580 -1 -2980 2580 -1 -2581 2581 6 -2582 2581 -1 -2601 2581 -1 -2981 2581 -1 -2582 2582 6 -2583 2582 -1 -2602 2582 -1 -2982 2582 -1 -2583 2583 6 -2584 2583 -1 -2603 2583 -1 -2983 2583 -1 -2584 2584 6 -2585 2584 -1 -2604 2584 -1 -2984 2584 -1 -2585 2585 6 -2586 2585 -1 -2605 2585 -1 -2985 2585 -1 -2586 2586 6 -2587 2586 -1 -2606 2586 -1 -2986 2586 -1 -2587 2587 6 -2588 2587 -1 -2607 2587 -1 -2987 2587 -1 -2588 2588 6 -2589 2588 -1 -2608 2588 -1 -2988 2588 -1 -2589 2589 6 -2590 2589 -1 -2609 2589 -1 -2989 2589 -1 -2590 2590 6 -2591 2590 -1 -2610 2590 -1 -2990 2590 -1 -2591 2591 6 -2592 2591 -1 -2611 2591 -1 -2991 2591 -1 -2592 2592 6 -2593 2592 -1 -2612 2592 -1 -2992 2592 -1 -2593 2593 6 -2594 2593 -1 -2613 2593 -1 -2993 2593 -1 -2594 2594 6 -2595 2594 -1 -2614 2594 -1 -2994 2594 -1 -2595 2595 6 -2596 2595 -1 -2615 2595 -1 -2995 2595 -1 -2596 2596 6 -2597 2596 -1 -2616 2596 -1 -2996 2596 -1 -2597 2597 6 -2598 2597 -1 -2617 2597 -1 -2997 2597 -1 -2598 2598 6 -2599 2598 -1 -2618 2598 -1 -2998 2598 -1 -2599 2599 6 -2600 2599 -1 -2619 2599 -1 -2999 2599 -1 -2600 2600 6 -2620 2600 -1 -3000 2600 -1 -2601 2601 6 -2602 2601 -1 -2621 2601 -1 -3001 2601 -1 -2602 2602 6 -2603 2602 -1 -2622 2602 -1 -3002 2602 -1 -2603 2603 6 -2604 2603 -1 -2623 2603 -1 -3003 2603 -1 -2604 2604 6 -2605 2604 -1 -2624 2604 -1 -3004 2604 -1 -2605 2605 6 -2606 2605 -1 -2625 2605 -1 -3005 2605 -1 -2606 2606 6 -2607 2606 -1 -2626 2606 -1 -3006 2606 -1 -2607 2607 6 -2608 2607 -1 -2627 2607 -1 -3007 2607 -1 -2608 2608 6 -2609 2608 -1 -2628 2608 -1 -3008 2608 -1 -2609 2609 6 -2610 2609 -1 -2629 2609 -1 -3009 2609 -1 -2610 2610 6 -2611 2610 -1 -2630 2610 -1 -3010 2610 -1 -2611 2611 6 -2612 2611 -1 -2631 2611 -1 -3011 2611 -1 -2612 2612 6 -2613 2612 -1 -2632 2612 -1 -3012 2612 -1 -2613 2613 6 -2614 2613 -1 -2633 2613 -1 -3013 2613 -1 -2614 2614 6 -2615 2614 -1 -2634 2614 -1 -3014 2614 -1 -2615 2615 6 -2616 2615 -1 -2635 2615 -1 -3015 2615 -1 -2616 2616 6 -2617 2616 -1 -2636 2616 -1 -3016 2616 -1 -2617 2617 6 -2618 2617 -1 -2637 2617 -1 -3017 2617 -1 -2618 2618 6 -2619 2618 -1 -2638 2618 -1 -3018 2618 -1 -2619 2619 6 -2620 2619 -1 -2639 2619 -1 -3019 2619 -1 -2620 2620 6 -2640 2620 -1 -3020 2620 -1 -2621 2621 6 -2622 2621 -1 -2641 2621 -1 -3021 2621 -1 -2622 2622 6 -2623 2622 -1 -2642 2622 -1 -3022 2622 -1 -2623 2623 6 -2624 2623 -1 -2643 2623 -1 -3023 2623 -1 -2624 2624 6 -2625 2624 -1 -2644 2624 -1 -3024 2624 -1 -2625 2625 6 -2626 2625 -1 -2645 2625 -1 -3025 2625 -1 -2626 2626 6 -2627 2626 -1 -2646 2626 -1 -3026 2626 -1 -2627 2627 6 -2628 2627 -1 -2647 2627 -1 -3027 2627 -1 -2628 2628 6 -2629 2628 -1 -2648 2628 -1 -3028 2628 -1 -2629 2629 6 -2630 2629 -1 -2649 2629 -1 -3029 2629 -1 -2630 2630 6 -2631 2630 -1 -2650 2630 -1 -3030 2630 -1 -2631 2631 6 -2632 2631 -1 -2651 2631 -1 -3031 2631 -1 -2632 2632 6 -2633 2632 -1 -2652 2632 -1 -3032 2632 -1 -2633 2633 6 -2634 2633 -1 -2653 2633 -1 -3033 2633 -1 -2634 2634 6 -2635 2634 -1 -2654 2634 -1 -3034 2634 -1 -2635 2635 6 -2636 2635 -1 -2655 2635 -1 -3035 2635 -1 -2636 2636 6 -2637 2636 -1 -2656 2636 -1 -3036 2636 -1 -2637 2637 6 -2638 2637 -1 -2657 2637 -1 -3037 2637 -1 -2638 2638 6 -2639 2638 -1 -2658 2638 -1 -3038 2638 -1 -2639 2639 6 -2640 2639 -1 -2659 2639 -1 -3039 2639 -1 -2640 2640 6 -2660 2640 -1 -3040 2640 -1 -2641 2641 6 -2642 2641 -1 -2661 2641 -1 -3041 2641 -1 -2642 2642 6 -2643 2642 -1 -2662 2642 -1 -3042 2642 -1 -2643 2643 6 -2644 2643 -1 -2663 2643 -1 -3043 2643 -1 -2644 2644 6 -2645 2644 -1 -2664 2644 -1 -3044 2644 -1 -2645 2645 6 -2646 2645 -1 -2665 2645 -1 -3045 2645 -1 -2646 2646 6 -2647 2646 -1 -2666 2646 -1 -3046 2646 -1 -2647 2647 6 -2648 2647 -1 -2667 2647 -1 -3047 2647 -1 -2648 2648 6 -2649 2648 -1 -2668 2648 -1 -3048 2648 -1 -2649 2649 6 -2650 2649 -1 -2669 2649 -1 -3049 2649 -1 -2650 2650 6 -2651 2650 -1 -2670 2650 -1 -3050 2650 -1 -2651 2651 6 -2652 2651 -1 -2671 2651 -1 -3051 2651 -1 -2652 2652 6 -2653 2652 -1 -2672 2652 -1 -3052 2652 -1 -2653 2653 6 -2654 2653 -1 -2673 2653 -1 -3053 2653 -1 -2654 2654 6 -2655 2654 -1 -2674 2654 -1 -3054 2654 -1 -2655 2655 6 -2656 2655 -1 -2675 2655 -1 -3055 2655 -1 -2656 2656 6 -2657 2656 -1 -2676 2656 -1 -3056 2656 -1 -2657 2657 6 -2658 2657 -1 -2677 2657 -1 -3057 2657 -1 -2658 2658 6 -2659 2658 -1 -2678 2658 -1 -3058 2658 -1 -2659 2659 6 -2660 2659 -1 -2679 2659 -1 -3059 2659 -1 -2660 2660 6 -2680 2660 -1 -3060 2660 -1 -2661 2661 6 -2662 2661 -1 -2681 2661 -1 -3061 2661 -1 -2662 2662 6 -2663 2662 -1 -2682 2662 -1 -3062 2662 -1 -2663 2663 6 -2664 2663 -1 -2683 2663 -1 -3063 2663 -1 -2664 2664 6 -2665 2664 -1 -2684 2664 -1 -3064 2664 -1 -2665 2665 6 -2666 2665 -1 -2685 2665 -1 -3065 2665 -1 -2666 2666 6 -2667 2666 -1 -2686 2666 -1 -3066 2666 -1 -2667 2667 6 -2668 2667 -1 -2687 2667 -1 -3067 2667 -1 -2668 2668 6 -2669 2668 -1 -2688 2668 -1 -3068 2668 -1 -2669 2669 6 -2670 2669 -1 -2689 2669 -1 -3069 2669 -1 -2670 2670 6 -2671 2670 -1 -2690 2670 -1 -3070 2670 -1 -2671 2671 6 -2672 2671 -1 -2691 2671 -1 -3071 2671 -1 -2672 2672 6 -2673 2672 -1 -2692 2672 -1 -3072 2672 -1 -2673 2673 6 -2674 2673 -1 -2693 2673 -1 -3073 2673 -1 -2674 2674 6 -2675 2674 -1 -2694 2674 -1 -3074 2674 -1 -2675 2675 6 -2676 2675 -1 -2695 2675 -1 -3075 2675 -1 -2676 2676 6 -2677 2676 -1 -2696 2676 -1 -3076 2676 -1 -2677 2677 6 -2678 2677 -1 -2697 2677 -1 -3077 2677 -1 -2678 2678 6 -2679 2678 -1 -2698 2678 -1 -3078 2678 -1 -2679 2679 6 -2680 2679 -1 -2699 2679 -1 -3079 2679 -1 -2680 2680 6 -2700 2680 -1 -3080 2680 -1 -2681 2681 6 -2682 2681 -1 -2701 2681 -1 -3081 2681 -1 -2682 2682 6 -2683 2682 -1 -2702 2682 -1 -3082 2682 -1 -2683 2683 6 -2684 2683 -1 -2703 2683 -1 -3083 2683 -1 -2684 2684 6 -2685 2684 -1 -2704 2684 -1 -3084 2684 -1 -2685 2685 6 -2686 2685 -1 -2705 2685 -1 -3085 2685 -1 -2686 2686 6 -2687 2686 -1 -2706 2686 -1 -3086 2686 -1 -2687 2687 6 -2688 2687 -1 -2707 2687 -1 -3087 2687 -1 -2688 2688 6 -2689 2688 -1 -2708 2688 -1 -3088 2688 -1 -2689 2689 6 -2690 2689 -1 -2709 2689 -1 -3089 2689 -1 -2690 2690 6 -2691 2690 -1 -2710 2690 -1 -3090 2690 -1 -2691 2691 6 -2692 2691 -1 -2711 2691 -1 -3091 2691 -1 -2692 2692 6 -2693 2692 -1 -2712 2692 -1 -3092 2692 -1 -2693 2693 6 -2694 2693 -1 -2713 2693 -1 -3093 2693 -1 -2694 2694 6 -2695 2694 -1 -2714 2694 -1 -3094 2694 -1 -2695 2695 6 -2696 2695 -1 -2715 2695 -1 -3095 2695 -1 -2696 2696 6 -2697 2696 -1 -2716 2696 -1 -3096 2696 -1 -2697 2697 6 -2698 2697 -1 -2717 2697 -1 -3097 2697 -1 -2698 2698 6 -2699 2698 -1 -2718 2698 -1 -3098 2698 -1 -2699 2699 6 -2700 2699 -1 -2719 2699 -1 -3099 2699 -1 -2700 2700 6 -2720 2700 -1 -3100 2700 -1 -2701 2701 6 -2702 2701 -1 -2721 2701 -1 -3101 2701 -1 -2702 2702 6 -2703 2702 -1 -2722 2702 -1 -3102 2702 -1 -2703 2703 6 -2704 2703 -1 -2723 2703 -1 -3103 2703 -1 -2704 2704 6 -2705 2704 -1 -2724 2704 -1 -3104 2704 -1 -2705 2705 6 -2706 2705 -1 -2725 2705 -1 -3105 2705 -1 -2706 2706 6 -2707 2706 -1 -2726 2706 -1 -3106 2706 -1 -2707 2707 6 -2708 2707 -1 -2727 2707 -1 -3107 2707 -1 -2708 2708 6 -2709 2708 -1 -2728 2708 -1 -3108 2708 -1 -2709 2709 6 -2710 2709 -1 -2729 2709 -1 -3109 2709 -1 -2710 2710 6 -2711 2710 -1 -2730 2710 -1 -3110 2710 -1 -2711 2711 6 -2712 2711 -1 -2731 2711 -1 -3111 2711 -1 -2712 2712 6 -2713 2712 -1 -2732 2712 -1 -3112 2712 -1 -2713 2713 6 -2714 2713 -1 -2733 2713 -1 -3113 2713 -1 -2714 2714 6 -2715 2714 -1 -2734 2714 -1 -3114 2714 -1 -2715 2715 6 -2716 2715 -1 -2735 2715 -1 -3115 2715 -1 -2716 2716 6 -2717 2716 -1 -2736 2716 -1 -3116 2716 -1 -2717 2717 6 -2718 2717 -1 -2737 2717 -1 -3117 2717 -1 -2718 2718 6 -2719 2718 -1 -2738 2718 -1 -3118 2718 -1 -2719 2719 6 -2720 2719 -1 -2739 2719 -1 -3119 2719 -1 -2720 2720 6 -2740 2720 -1 -3120 2720 -1 -2721 2721 6 -2722 2721 -1 -2741 2721 -1 -3121 2721 -1 -2722 2722 6 -2723 2722 -1 -2742 2722 -1 -3122 2722 -1 -2723 2723 6 -2724 2723 -1 -2743 2723 -1 -3123 2723 -1 -2724 2724 6 -2725 2724 -1 -2744 2724 -1 -3124 2724 -1 -2725 2725 6 -2726 2725 -1 -2745 2725 -1 -3125 2725 -1 -2726 2726 6 -2727 2726 -1 -2746 2726 -1 -3126 2726 -1 -2727 2727 6 -2728 2727 -1 -2747 2727 -1 -3127 2727 -1 -2728 2728 6 -2729 2728 -1 -2748 2728 -1 -3128 2728 -1 -2729 2729 6 -2730 2729 -1 -2749 2729 -1 -3129 2729 -1 -2730 2730 6 -2731 2730 -1 -2750 2730 -1 -3130 2730 -1 -2731 2731 6 -2732 2731 -1 -2751 2731 -1 -3131 2731 -1 -2732 2732 6 -2733 2732 -1 -2752 2732 -1 -3132 2732 -1 -2733 2733 6 -2734 2733 -1 -2753 2733 -1 -3133 2733 -1 -2734 2734 6 -2735 2734 -1 -2754 2734 -1 -3134 2734 -1 -2735 2735 6 -2736 2735 -1 -2755 2735 -1 -3135 2735 -1 -2736 2736 6 -2737 2736 -1 -2756 2736 -1 -3136 2736 -1 -2737 2737 6 -2738 2737 -1 -2757 2737 -1 -3137 2737 -1 -2738 2738 6 -2739 2738 -1 -2758 2738 -1 -3138 2738 -1 -2739 2739 6 -2740 2739 -1 -2759 2739 -1 -3139 2739 -1 -2740 2740 6 -2760 2740 -1 -3140 2740 -1 -2741 2741 6 -2742 2741 -1 -2761 2741 -1 -3141 2741 -1 -2742 2742 6 -2743 2742 -1 -2762 2742 -1 -3142 2742 -1 -2743 2743 6 -2744 2743 -1 -2763 2743 -1 -3143 2743 -1 -2744 2744 6 -2745 2744 -1 -2764 2744 -1 -3144 2744 -1 -2745 2745 6 -2746 2745 -1 -2765 2745 -1 -3145 2745 -1 -2746 2746 6 -2747 2746 -1 -2766 2746 -1 -3146 2746 -1 -2747 2747 6 -2748 2747 -1 -2767 2747 -1 -3147 2747 -1 -2748 2748 6 -2749 2748 -1 -2768 2748 -1 -3148 2748 -1 -2749 2749 6 -2750 2749 -1 -2769 2749 -1 -3149 2749 -1 -2750 2750 6 -2751 2750 -1 -2770 2750 -1 -3150 2750 -1 -2751 2751 6 -2752 2751 -1 -2771 2751 -1 -3151 2751 -1 -2752 2752 6 -2753 2752 -1 -2772 2752 -1 -3152 2752 -1 -2753 2753 6 -2754 2753 -1 -2773 2753 -1 -3153 2753 -1 -2754 2754 6 -2755 2754 -1 -2774 2754 -1 -3154 2754 -1 -2755 2755 6 -2756 2755 -1 -2775 2755 -1 -3155 2755 -1 -2756 2756 6 -2757 2756 -1 -2776 2756 -1 -3156 2756 -1 -2757 2757 6 -2758 2757 -1 -2777 2757 -1 -3157 2757 -1 -2758 2758 6 -2759 2758 -1 -2778 2758 -1 -3158 2758 -1 -2759 2759 6 -2760 2759 -1 -2779 2759 -1 -3159 2759 -1 -2760 2760 6 -2780 2760 -1 -3160 2760 -1 -2761 2761 6 -2762 2761 -1 -2781 2761 -1 -3161 2761 -1 -2762 2762 6 -2763 2762 -1 -2782 2762 -1 -3162 2762 -1 -2763 2763 6 -2764 2763 -1 -2783 2763 -1 -3163 2763 -1 -2764 2764 6 -2765 2764 -1 -2784 2764 -1 -3164 2764 -1 -2765 2765 6 -2766 2765 -1 -2785 2765 -1 -3165 2765 -1 -2766 2766 6 -2767 2766 -1 -2786 2766 -1 -3166 2766 -1 -2767 2767 6 -2768 2767 -1 -2787 2767 -1 -3167 2767 -1 -2768 2768 6 -2769 2768 -1 -2788 2768 -1 -3168 2768 -1 -2769 2769 6 -2770 2769 -1 -2789 2769 -1 -3169 2769 -1 -2770 2770 6 -2771 2770 -1 -2790 2770 -1 -3170 2770 -1 -2771 2771 6 -2772 2771 -1 -2791 2771 -1 -3171 2771 -1 -2772 2772 6 -2773 2772 -1 -2792 2772 -1 -3172 2772 -1 -2773 2773 6 -2774 2773 -1 -2793 2773 -1 -3173 2773 -1 -2774 2774 6 -2775 2774 -1 -2794 2774 -1 -3174 2774 -1 -2775 2775 6 -2776 2775 -1 -2795 2775 -1 -3175 2775 -1 -2776 2776 6 -2777 2776 -1 -2796 2776 -1 -3176 2776 -1 -2777 2777 6 -2778 2777 -1 -2797 2777 -1 -3177 2777 -1 -2778 2778 6 -2779 2778 -1 -2798 2778 -1 -3178 2778 -1 -2779 2779 6 -2780 2779 -1 -2799 2779 -1 -3179 2779 -1 -2780 2780 6 -2800 2780 -1 -3180 2780 -1 -2781 2781 6 -2782 2781 -1 -3181 2781 -1 -2782 2782 6 -2783 2782 -1 -3182 2782 -1 -2783 2783 6 -2784 2783 -1 -3183 2783 -1 -2784 2784 6 -2785 2784 -1 -3184 2784 -1 -2785 2785 6 -2786 2785 -1 -3185 2785 -1 -2786 2786 6 -2787 2786 -1 -3186 2786 -1 -2787 2787 6 -2788 2787 -1 -3187 2787 -1 -2788 2788 6 -2789 2788 -1 -3188 2788 -1 -2789 2789 6 -2790 2789 -1 -3189 2789 -1 -2790 2790 6 -2791 2790 -1 -3190 2790 -1 -2791 2791 6 -2792 2791 -1 -3191 2791 -1 -2792 2792 6 -2793 2792 -1 -3192 2792 -1 -2793 2793 6 -2794 2793 -1 -3193 2793 -1 -2794 2794 6 -2795 2794 -1 -3194 2794 -1 -2795 2795 6 -2796 2795 -1 -3195 2795 -1 -2796 2796 6 -2797 2796 -1 -3196 2796 -1 -2797 2797 6 -2798 2797 -1 -3197 2797 -1 -2798 2798 6 -2799 2798 -1 -3198 2798 -1 -2799 2799 6 -2800 2799 -1 -3199 2799 -1 -2800 2800 6 -3200 2800 -1 -2801 2801 6 -2802 2801 -1 -2821 2801 -1 -3201 2801 -1 -2802 2802 6 -2803 2802 -1 -2822 2802 -1 -3202 2802 -1 -2803 2803 6 -2804 2803 -1 -2823 2803 -1 -3203 2803 -1 -2804 2804 6 -2805 2804 -1 -2824 2804 -1 -3204 2804 -1 -2805 2805 6 -2806 2805 -1 -2825 2805 -1 -3205 2805 -1 -2806 2806 6 -2807 2806 -1 -2826 2806 -1 -3206 2806 -1 -2807 2807 6 -2808 2807 -1 -2827 2807 -1 -3207 2807 -1 -2808 2808 6 -2809 2808 -1 -2828 2808 -1 -3208 2808 -1 -2809 2809 6 -2810 2809 -1 -2829 2809 -1 -3209 2809 -1 -2810 2810 6 -2811 2810 -1 -2830 2810 -1 -3210 2810 -1 -2811 2811 6 -2812 2811 -1 -2831 2811 -1 -3211 2811 -1 -2812 2812 6 -2813 2812 -1 -2832 2812 -1 -3212 2812 -1 -2813 2813 6 -2814 2813 -1 -2833 2813 -1 -3213 2813 -1 -2814 2814 6 -2815 2814 -1 -2834 2814 -1 -3214 2814 -1 -2815 2815 6 -2816 2815 -1 -2835 2815 -1 -3215 2815 -1 -2816 2816 6 -2817 2816 -1 -2836 2816 -1 -3216 2816 -1 -2817 2817 6 -2818 2817 -1 -2837 2817 -1 -3217 2817 -1 -2818 2818 6 -2819 2818 -1 -2838 2818 -1 -3218 2818 -1 -2819 2819 6 -2820 2819 -1 -2839 2819 -1 -3219 2819 -1 -2820 2820 6 -2840 2820 -1 -3220 2820 -1 -2821 2821 6 -2822 2821 -1 -2841 2821 -1 -3221 2821 -1 -2822 2822 6 -2823 2822 -1 -2842 2822 -1 -3222 2822 -1 -2823 2823 6 -2824 2823 -1 -2843 2823 -1 -3223 2823 -1 -2824 2824 6 -2825 2824 -1 -2844 2824 -1 -3224 2824 -1 -2825 2825 6 -2826 2825 -1 -2845 2825 -1 -3225 2825 -1 -2826 2826 6 -2827 2826 -1 -2846 2826 -1 -3226 2826 -1 -2827 2827 6 -2828 2827 -1 -2847 2827 -1 -3227 2827 -1 -2828 2828 6 -2829 2828 -1 -2848 2828 -1 -3228 2828 -1 -2829 2829 6 -2830 2829 -1 -2849 2829 -1 -3229 2829 -1 -2830 2830 6 -2831 2830 -1 -2850 2830 -1 -3230 2830 -1 -2831 2831 6 -2832 2831 -1 -2851 2831 -1 -3231 2831 -1 -2832 2832 6 -2833 2832 -1 -2852 2832 -1 -3232 2832 -1 -2833 2833 6 -2834 2833 -1 -2853 2833 -1 -3233 2833 -1 -2834 2834 6 -2835 2834 -1 -2854 2834 -1 -3234 2834 -1 -2835 2835 6 -2836 2835 -1 -2855 2835 -1 -3235 2835 -1 -2836 2836 6 -2837 2836 -1 -2856 2836 -1 -3236 2836 -1 -2837 2837 6 -2838 2837 -1 -2857 2837 -1 -3237 2837 -1 -2838 2838 6 -2839 2838 -1 -2858 2838 -1 -3238 2838 -1 -2839 2839 6 -2840 2839 -1 -2859 2839 -1 -3239 2839 -1 -2840 2840 6 -2860 2840 -1 -3240 2840 -1 -2841 2841 6 -2842 2841 -1 -2861 2841 -1 -3241 2841 -1 -2842 2842 6 -2843 2842 -1 -2862 2842 -1 -3242 2842 -1 -2843 2843 6 -2844 2843 -1 -2863 2843 -1 -3243 2843 -1 -2844 2844 6 -2845 2844 -1 -2864 2844 -1 -3244 2844 -1 -2845 2845 6 -2846 2845 -1 -2865 2845 -1 -3245 2845 -1 -2846 2846 6 -2847 2846 -1 -2866 2846 -1 -3246 2846 -1 -2847 2847 6 -2848 2847 -1 -2867 2847 -1 -3247 2847 -1 -2848 2848 6 -2849 2848 -1 -2868 2848 -1 -3248 2848 -1 -2849 2849 6 -2850 2849 -1 -2869 2849 -1 -3249 2849 -1 -2850 2850 6 -2851 2850 -1 -2870 2850 -1 -3250 2850 -1 -2851 2851 6 -2852 2851 -1 -2871 2851 -1 -3251 2851 -1 -2852 2852 6 -2853 2852 -1 -2872 2852 -1 -3252 2852 -1 -2853 2853 6 -2854 2853 -1 -2873 2853 -1 -3253 2853 -1 -2854 2854 6 -2855 2854 -1 -2874 2854 -1 -3254 2854 -1 -2855 2855 6 -2856 2855 -1 -2875 2855 -1 -3255 2855 -1 -2856 2856 6 -2857 2856 -1 -2876 2856 -1 -3256 2856 -1 -2857 2857 6 -2858 2857 -1 -2877 2857 -1 -3257 2857 -1 -2858 2858 6 -2859 2858 -1 -2878 2858 -1 -3258 2858 -1 -2859 2859 6 -2860 2859 -1 -2879 2859 -1 -3259 2859 -1 -2860 2860 6 -2880 2860 -1 -3260 2860 -1 -2861 2861 6 -2862 2861 -1 -2881 2861 -1 -3261 2861 -1 -2862 2862 6 -2863 2862 -1 -2882 2862 -1 -3262 2862 -1 -2863 2863 6 -2864 2863 -1 -2883 2863 -1 -3263 2863 -1 -2864 2864 6 -2865 2864 -1 -2884 2864 -1 -3264 2864 -1 -2865 2865 6 -2866 2865 -1 -2885 2865 -1 -3265 2865 -1 -2866 2866 6 -2867 2866 -1 -2886 2866 -1 -3266 2866 -1 -2867 2867 6 -2868 2867 -1 -2887 2867 -1 -3267 2867 -1 -2868 2868 6 -2869 2868 -1 -2888 2868 -1 -3268 2868 -1 -2869 2869 6 -2870 2869 -1 -2889 2869 -1 -3269 2869 -1 -2870 2870 6 -2871 2870 -1 -2890 2870 -1 -3270 2870 -1 -2871 2871 6 -2872 2871 -1 -2891 2871 -1 -3271 2871 -1 -2872 2872 6 -2873 2872 -1 -2892 2872 -1 -3272 2872 -1 -2873 2873 6 -2874 2873 -1 -2893 2873 -1 -3273 2873 -1 -2874 2874 6 -2875 2874 -1 -2894 2874 -1 -3274 2874 -1 -2875 2875 6 -2876 2875 -1 -2895 2875 -1 -3275 2875 -1 -2876 2876 6 -2877 2876 -1 -2896 2876 -1 -3276 2876 -1 -2877 2877 6 -2878 2877 -1 -2897 2877 -1 -3277 2877 -1 -2878 2878 6 -2879 2878 -1 -2898 2878 -1 -3278 2878 -1 -2879 2879 6 -2880 2879 -1 -2899 2879 -1 -3279 2879 -1 -2880 2880 6 -2900 2880 -1 -3280 2880 -1 -2881 2881 6 -2882 2881 -1 -2901 2881 -1 -3281 2881 -1 -2882 2882 6 -2883 2882 -1 -2902 2882 -1 -3282 2882 -1 -2883 2883 6 -2884 2883 -1 -2903 2883 -1 -3283 2883 -1 -2884 2884 6 -2885 2884 -1 -2904 2884 -1 -3284 2884 -1 -2885 2885 6 -2886 2885 -1 -2905 2885 -1 -3285 2885 -1 -2886 2886 6 -2887 2886 -1 -2906 2886 -1 -3286 2886 -1 -2887 2887 6 -2888 2887 -1 -2907 2887 -1 -3287 2887 -1 -2888 2888 6 -2889 2888 -1 -2908 2888 -1 -3288 2888 -1 -2889 2889 6 -2890 2889 -1 -2909 2889 -1 -3289 2889 -1 -2890 2890 6 -2891 2890 -1 -2910 2890 -1 -3290 2890 -1 -2891 2891 6 -2892 2891 -1 -2911 2891 -1 -3291 2891 -1 -2892 2892 6 -2893 2892 -1 -2912 2892 -1 -3292 2892 -1 -2893 2893 6 -2894 2893 -1 -2913 2893 -1 -3293 2893 -1 -2894 2894 6 -2895 2894 -1 -2914 2894 -1 -3294 2894 -1 -2895 2895 6 -2896 2895 -1 -2915 2895 -1 -3295 2895 -1 -2896 2896 6 -2897 2896 -1 -2916 2896 -1 -3296 2896 -1 -2897 2897 6 -2898 2897 -1 -2917 2897 -1 -3297 2897 -1 -2898 2898 6 -2899 2898 -1 -2918 2898 -1 -3298 2898 -1 -2899 2899 6 -2900 2899 -1 -2919 2899 -1 -3299 2899 -1 -2900 2900 6 -2920 2900 -1 -3300 2900 -1 -2901 2901 6 -2902 2901 -1 -2921 2901 -1 -3301 2901 -1 -2902 2902 6 -2903 2902 -1 -2922 2902 -1 -3302 2902 -1 -2903 2903 6 -2904 2903 -1 -2923 2903 -1 -3303 2903 -1 -2904 2904 6 -2905 2904 -1 -2924 2904 -1 -3304 2904 -1 -2905 2905 6 -2906 2905 -1 -2925 2905 -1 -3305 2905 -1 -2906 2906 6 -2907 2906 -1 -2926 2906 -1 -3306 2906 -1 -2907 2907 6 -2908 2907 -1 -2927 2907 -1 -3307 2907 -1 -2908 2908 6 -2909 2908 -1 -2928 2908 -1 -3308 2908 -1 -2909 2909 6 -2910 2909 -1 -2929 2909 -1 -3309 2909 -1 -2910 2910 6 -2911 2910 -1 -2930 2910 -1 -3310 2910 -1 -2911 2911 6 -2912 2911 -1 -2931 2911 -1 -3311 2911 -1 -2912 2912 6 -2913 2912 -1 -2932 2912 -1 -3312 2912 -1 -2913 2913 6 -2914 2913 -1 -2933 2913 -1 -3313 2913 -1 -2914 2914 6 -2915 2914 -1 -2934 2914 -1 -3314 2914 -1 -2915 2915 6 -2916 2915 -1 -2935 2915 -1 -3315 2915 -1 -2916 2916 6 -2917 2916 -1 -2936 2916 -1 -3316 2916 -1 -2917 2917 6 -2918 2917 -1 -2937 2917 -1 -3317 2917 -1 -2918 2918 6 -2919 2918 -1 -2938 2918 -1 -3318 2918 -1 -2919 2919 6 -2920 2919 -1 -2939 2919 -1 -3319 2919 -1 -2920 2920 6 -2940 2920 -1 -3320 2920 -1 -2921 2921 6 -2922 2921 -1 -2941 2921 -1 -3321 2921 -1 -2922 2922 6 -2923 2922 -1 -2942 2922 -1 -3322 2922 -1 -2923 2923 6 -2924 2923 -1 -2943 2923 -1 -3323 2923 -1 -2924 2924 6 -2925 2924 -1 -2944 2924 -1 -3324 2924 -1 -2925 2925 6 -2926 2925 -1 -2945 2925 -1 -3325 2925 -1 -2926 2926 6 -2927 2926 -1 -2946 2926 -1 -3326 2926 -1 -2927 2927 6 -2928 2927 -1 -2947 2927 -1 -3327 2927 -1 -2928 2928 6 -2929 2928 -1 -2948 2928 -1 -3328 2928 -1 -2929 2929 6 -2930 2929 -1 -2949 2929 -1 -3329 2929 -1 -2930 2930 6 -2931 2930 -1 -2950 2930 -1 -3330 2930 -1 -2931 2931 6 -2932 2931 -1 -2951 2931 -1 -3331 2931 -1 -2932 2932 6 -2933 2932 -1 -2952 2932 -1 -3332 2932 -1 -2933 2933 6 -2934 2933 -1 -2953 2933 -1 -3333 2933 -1 -2934 2934 6 -2935 2934 -1 -2954 2934 -1 -3334 2934 -1 -2935 2935 6 -2936 2935 -1 -2955 2935 -1 -3335 2935 -1 -2936 2936 6 -2937 2936 -1 -2956 2936 -1 -3336 2936 -1 -2937 2937 6 -2938 2937 -1 -2957 2937 -1 -3337 2937 -1 -2938 2938 6 -2939 2938 -1 -2958 2938 -1 -3338 2938 -1 -2939 2939 6 -2940 2939 -1 -2959 2939 -1 -3339 2939 -1 -2940 2940 6 -2960 2940 -1 -3340 2940 -1 -2941 2941 6 -2942 2941 -1 -2961 2941 -1 -3341 2941 -1 -2942 2942 6 -2943 2942 -1 -2962 2942 -1 -3342 2942 -1 -2943 2943 6 -2944 2943 -1 -2963 2943 -1 -3343 2943 -1 -2944 2944 6 -2945 2944 -1 -2964 2944 -1 -3344 2944 -1 -2945 2945 6 -2946 2945 -1 -2965 2945 -1 -3345 2945 -1 -2946 2946 6 -2947 2946 -1 -2966 2946 -1 -3346 2946 -1 -2947 2947 6 -2948 2947 -1 -2967 2947 -1 -3347 2947 -1 -2948 2948 6 -2949 2948 -1 -2968 2948 -1 -3348 2948 -1 -2949 2949 6 -2950 2949 -1 -2969 2949 -1 -3349 2949 -1 -2950 2950 6 -2951 2950 -1 -2970 2950 -1 -3350 2950 -1 -2951 2951 6 -2952 2951 -1 -2971 2951 -1 -3351 2951 -1 -2952 2952 6 -2953 2952 -1 -2972 2952 -1 -3352 2952 -1 -2953 2953 6 -2954 2953 -1 -2973 2953 -1 -3353 2953 -1 -2954 2954 6 -2955 2954 -1 -2974 2954 -1 -3354 2954 -1 -2955 2955 6 -2956 2955 -1 -2975 2955 -1 -3355 2955 -1 -2956 2956 6 -2957 2956 -1 -2976 2956 -1 -3356 2956 -1 -2957 2957 6 -2958 2957 -1 -2977 2957 -1 -3357 2957 -1 -2958 2958 6 -2959 2958 -1 -2978 2958 -1 -3358 2958 -1 -2959 2959 6 -2960 2959 -1 -2979 2959 -1 -3359 2959 -1 -2960 2960 6 -2980 2960 -1 -3360 2960 -1 -2961 2961 6 -2962 2961 -1 -2981 2961 -1 -3361 2961 -1 -2962 2962 6 -2963 2962 -1 -2982 2962 -1 -3362 2962 -1 -2963 2963 6 -2964 2963 -1 -2983 2963 -1 -3363 2963 -1 -2964 2964 6 -2965 2964 -1 -2984 2964 -1 -3364 2964 -1 -2965 2965 6 -2966 2965 -1 -2985 2965 -1 -3365 2965 -1 -2966 2966 6 -2967 2966 -1 -2986 2966 -1 -3366 2966 -1 -2967 2967 6 -2968 2967 -1 -2987 2967 -1 -3367 2967 -1 -2968 2968 6 -2969 2968 -1 -2988 2968 -1 -3368 2968 -1 -2969 2969 6 -2970 2969 -1 -2989 2969 -1 -3369 2969 -1 -2970 2970 6 -2971 2970 -1 -2990 2970 -1 -3370 2970 -1 -2971 2971 6 -2972 2971 -1 -2991 2971 -1 -3371 2971 -1 -2972 2972 6 -2973 2972 -1 -2992 2972 -1 -3372 2972 -1 -2973 2973 6 -2974 2973 -1 -2993 2973 -1 -3373 2973 -1 -2974 2974 6 -2975 2974 -1 -2994 2974 -1 -3374 2974 -1 -2975 2975 6 -2976 2975 -1 -2995 2975 -1 -3375 2975 -1 -2976 2976 6 -2977 2976 -1 -2996 2976 -1 -3376 2976 -1 -2977 2977 6 -2978 2977 -1 -2997 2977 -1 -3377 2977 -1 -2978 2978 6 -2979 2978 -1 -2998 2978 -1 -3378 2978 -1 -2979 2979 6 -2980 2979 -1 -2999 2979 -1 -3379 2979 -1 -2980 2980 6 -3000 2980 -1 -3380 2980 -1 -2981 2981 6 -2982 2981 -1 -3001 2981 -1 -3381 2981 -1 -2982 2982 6 -2983 2982 -1 -3002 2982 -1 -3382 2982 -1 -2983 2983 6 -2984 2983 -1 -3003 2983 -1 -3383 2983 -1 -2984 2984 6 -2985 2984 -1 -3004 2984 -1 -3384 2984 -1 -2985 2985 6 -2986 2985 -1 -3005 2985 -1 -3385 2985 -1 -2986 2986 6 -2987 2986 -1 -3006 2986 -1 -3386 2986 -1 -2987 2987 6 -2988 2987 -1 -3007 2987 -1 -3387 2987 -1 -2988 2988 6 -2989 2988 -1 -3008 2988 -1 -3388 2988 -1 -2989 2989 6 -2990 2989 -1 -3009 2989 -1 -3389 2989 -1 -2990 2990 6 -2991 2990 -1 -3010 2990 -1 -3390 2990 -1 -2991 2991 6 -2992 2991 -1 -3011 2991 -1 -3391 2991 -1 -2992 2992 6 -2993 2992 -1 -3012 2992 -1 -3392 2992 -1 -2993 2993 6 -2994 2993 -1 -3013 2993 -1 -3393 2993 -1 -2994 2994 6 -2995 2994 -1 -3014 2994 -1 -3394 2994 -1 -2995 2995 6 -2996 2995 -1 -3015 2995 -1 -3395 2995 -1 -2996 2996 6 -2997 2996 -1 -3016 2996 -1 -3396 2996 -1 -2997 2997 6 -2998 2997 -1 -3017 2997 -1 -3397 2997 -1 -2998 2998 6 -2999 2998 -1 -3018 2998 -1 -3398 2998 -1 -2999 2999 6 -3000 2999 -1 -3019 2999 -1 -3399 2999 -1 -3000 3000 6 -3020 3000 -1 -3400 3000 -1 -3001 3001 6 -3002 3001 -1 -3021 3001 -1 -3401 3001 -1 -3002 3002 6 -3003 3002 -1 -3022 3002 -1 -3402 3002 -1 -3003 3003 6 -3004 3003 -1 -3023 3003 -1 -3403 3003 -1 -3004 3004 6 -3005 3004 -1 -3024 3004 -1 -3404 3004 -1 -3005 3005 6 -3006 3005 -1 -3025 3005 -1 -3405 3005 -1 -3006 3006 6 -3007 3006 -1 -3026 3006 -1 -3406 3006 -1 -3007 3007 6 -3008 3007 -1 -3027 3007 -1 -3407 3007 -1 -3008 3008 6 -3009 3008 -1 -3028 3008 -1 -3408 3008 -1 -3009 3009 6 -3010 3009 -1 -3029 3009 -1 -3409 3009 -1 -3010 3010 6 -3011 3010 -1 -3030 3010 -1 -3410 3010 -1 -3011 3011 6 -3012 3011 -1 -3031 3011 -1 -3411 3011 -1 -3012 3012 6 -3013 3012 -1 -3032 3012 -1 -3412 3012 -1 -3013 3013 6 -3014 3013 -1 -3033 3013 -1 -3413 3013 -1 -3014 3014 6 -3015 3014 -1 -3034 3014 -1 -3414 3014 -1 -3015 3015 6 -3016 3015 -1 -3035 3015 -1 -3415 3015 -1 -3016 3016 6 -3017 3016 -1 -3036 3016 -1 -3416 3016 -1 -3017 3017 6 -3018 3017 -1 -3037 3017 -1 -3417 3017 -1 -3018 3018 6 -3019 3018 -1 -3038 3018 -1 -3418 3018 -1 -3019 3019 6 -3020 3019 -1 -3039 3019 -1 -3419 3019 -1 -3020 3020 6 -3040 3020 -1 -3420 3020 -1 -3021 3021 6 -3022 3021 -1 -3041 3021 -1 -3421 3021 -1 -3022 3022 6 -3023 3022 -1 -3042 3022 -1 -3422 3022 -1 -3023 3023 6 -3024 3023 -1 -3043 3023 -1 -3423 3023 -1 -3024 3024 6 -3025 3024 -1 -3044 3024 -1 -3424 3024 -1 -3025 3025 6 -3026 3025 -1 -3045 3025 -1 -3425 3025 -1 -3026 3026 6 -3027 3026 -1 -3046 3026 -1 -3426 3026 -1 -3027 3027 6 -3028 3027 -1 -3047 3027 -1 -3427 3027 -1 -3028 3028 6 -3029 3028 -1 -3048 3028 -1 -3428 3028 -1 -3029 3029 6 -3030 3029 -1 -3049 3029 -1 -3429 3029 -1 -3030 3030 6 -3031 3030 -1 -3050 3030 -1 -3430 3030 -1 -3031 3031 6 -3032 3031 -1 -3051 3031 -1 -3431 3031 -1 -3032 3032 6 -3033 3032 -1 -3052 3032 -1 -3432 3032 -1 -3033 3033 6 -3034 3033 -1 -3053 3033 -1 -3433 3033 -1 -3034 3034 6 -3035 3034 -1 -3054 3034 -1 -3434 3034 -1 -3035 3035 6 -3036 3035 -1 -3055 3035 -1 -3435 3035 -1 -3036 3036 6 -3037 3036 -1 -3056 3036 -1 -3436 3036 -1 -3037 3037 6 -3038 3037 -1 -3057 3037 -1 -3437 3037 -1 -3038 3038 6 -3039 3038 -1 -3058 3038 -1 -3438 3038 -1 -3039 3039 6 -3040 3039 -1 -3059 3039 -1 -3439 3039 -1 -3040 3040 6 -3060 3040 -1 -3440 3040 -1 -3041 3041 6 -3042 3041 -1 -3061 3041 -1 -3441 3041 -1 -3042 3042 6 -3043 3042 -1 -3062 3042 -1 -3442 3042 -1 -3043 3043 6 -3044 3043 -1 -3063 3043 -1 -3443 3043 -1 -3044 3044 6 -3045 3044 -1 -3064 3044 -1 -3444 3044 -1 -3045 3045 6 -3046 3045 -1 -3065 3045 -1 -3445 3045 -1 -3046 3046 6 -3047 3046 -1 -3066 3046 -1 -3446 3046 -1 -3047 3047 6 -3048 3047 -1 -3067 3047 -1 -3447 3047 -1 -3048 3048 6 -3049 3048 -1 -3068 3048 -1 -3448 3048 -1 -3049 3049 6 -3050 3049 -1 -3069 3049 -1 -3449 3049 -1 -3050 3050 6 -3051 3050 -1 -3070 3050 -1 -3450 3050 -1 -3051 3051 6 -3052 3051 -1 -3071 3051 -1 -3451 3051 -1 -3052 3052 6 -3053 3052 -1 -3072 3052 -1 -3452 3052 -1 -3053 3053 6 -3054 3053 -1 -3073 3053 -1 -3453 3053 -1 -3054 3054 6 -3055 3054 -1 -3074 3054 -1 -3454 3054 -1 -3055 3055 6 -3056 3055 -1 -3075 3055 -1 -3455 3055 -1 -3056 3056 6 -3057 3056 -1 -3076 3056 -1 -3456 3056 -1 -3057 3057 6 -3058 3057 -1 -3077 3057 -1 -3457 3057 -1 -3058 3058 6 -3059 3058 -1 -3078 3058 -1 -3458 3058 -1 -3059 3059 6 -3060 3059 -1 -3079 3059 -1 -3459 3059 -1 -3060 3060 6 -3080 3060 -1 -3460 3060 -1 -3061 3061 6 -3062 3061 -1 -3081 3061 -1 -3461 3061 -1 -3062 3062 6 -3063 3062 -1 -3082 3062 -1 -3462 3062 -1 -3063 3063 6 -3064 3063 -1 -3083 3063 -1 -3463 3063 -1 -3064 3064 6 -3065 3064 -1 -3084 3064 -1 -3464 3064 -1 -3065 3065 6 -3066 3065 -1 -3085 3065 -1 -3465 3065 -1 -3066 3066 6 -3067 3066 -1 -3086 3066 -1 -3466 3066 -1 -3067 3067 6 -3068 3067 -1 -3087 3067 -1 -3467 3067 -1 -3068 3068 6 -3069 3068 -1 -3088 3068 -1 -3468 3068 -1 -3069 3069 6 -3070 3069 -1 -3089 3069 -1 -3469 3069 -1 -3070 3070 6 -3071 3070 -1 -3090 3070 -1 -3470 3070 -1 -3071 3071 6 -3072 3071 -1 -3091 3071 -1 -3471 3071 -1 -3072 3072 6 -3073 3072 -1 -3092 3072 -1 -3472 3072 -1 -3073 3073 6 -3074 3073 -1 -3093 3073 -1 -3473 3073 -1 -3074 3074 6 -3075 3074 -1 -3094 3074 -1 -3474 3074 -1 -3075 3075 6 -3076 3075 -1 -3095 3075 -1 -3475 3075 -1 -3076 3076 6 -3077 3076 -1 -3096 3076 -1 -3476 3076 -1 -3077 3077 6 -3078 3077 -1 -3097 3077 -1 -3477 3077 -1 -3078 3078 6 -3079 3078 -1 -3098 3078 -1 -3478 3078 -1 -3079 3079 6 -3080 3079 -1 -3099 3079 -1 -3479 3079 -1 -3080 3080 6 -3100 3080 -1 -3480 3080 -1 -3081 3081 6 -3082 3081 -1 -3101 3081 -1 -3481 3081 -1 -3082 3082 6 -3083 3082 -1 -3102 3082 -1 -3482 3082 -1 -3083 3083 6 -3084 3083 -1 -3103 3083 -1 -3483 3083 -1 -3084 3084 6 -3085 3084 -1 -3104 3084 -1 -3484 3084 -1 -3085 3085 6 -3086 3085 -1 -3105 3085 -1 -3485 3085 -1 -3086 3086 6 -3087 3086 -1 -3106 3086 -1 -3486 3086 -1 -3087 3087 6 -3088 3087 -1 -3107 3087 -1 -3487 3087 -1 -3088 3088 6 -3089 3088 -1 -3108 3088 -1 -3488 3088 -1 -3089 3089 6 -3090 3089 -1 -3109 3089 -1 -3489 3089 -1 -3090 3090 6 -3091 3090 -1 -3110 3090 -1 -3490 3090 -1 -3091 3091 6 -3092 3091 -1 -3111 3091 -1 -3491 3091 -1 -3092 3092 6 -3093 3092 -1 -3112 3092 -1 -3492 3092 -1 -3093 3093 6 -3094 3093 -1 -3113 3093 -1 -3493 3093 -1 -3094 3094 6 -3095 3094 -1 -3114 3094 -1 -3494 3094 -1 -3095 3095 6 -3096 3095 -1 -3115 3095 -1 -3495 3095 -1 -3096 3096 6 -3097 3096 -1 -3116 3096 -1 -3496 3096 -1 -3097 3097 6 -3098 3097 -1 -3117 3097 -1 -3497 3097 -1 -3098 3098 6 -3099 3098 -1 -3118 3098 -1 -3498 3098 -1 -3099 3099 6 -3100 3099 -1 -3119 3099 -1 -3499 3099 -1 -3100 3100 6 -3120 3100 -1 -3500 3100 -1 -3101 3101 6 -3102 3101 -1 -3121 3101 -1 -3501 3101 -1 -3102 3102 6 -3103 3102 -1 -3122 3102 -1 -3502 3102 -1 -3103 3103 6 -3104 3103 -1 -3123 3103 -1 -3503 3103 -1 -3104 3104 6 -3105 3104 -1 -3124 3104 -1 -3504 3104 -1 -3105 3105 6 -3106 3105 -1 -3125 3105 -1 -3505 3105 -1 -3106 3106 6 -3107 3106 -1 -3126 3106 -1 -3506 3106 -1 -3107 3107 6 -3108 3107 -1 -3127 3107 -1 -3507 3107 -1 -3108 3108 6 -3109 3108 -1 -3128 3108 -1 -3508 3108 -1 -3109 3109 6 -3110 3109 -1 -3129 3109 -1 -3509 3109 -1 -3110 3110 6 -3111 3110 -1 -3130 3110 -1 -3510 3110 -1 -3111 3111 6 -3112 3111 -1 -3131 3111 -1 -3511 3111 -1 -3112 3112 6 -3113 3112 -1 -3132 3112 -1 -3512 3112 -1 -3113 3113 6 -3114 3113 -1 -3133 3113 -1 -3513 3113 -1 -3114 3114 6 -3115 3114 -1 -3134 3114 -1 -3514 3114 -1 -3115 3115 6 -3116 3115 -1 -3135 3115 -1 -3515 3115 -1 -3116 3116 6 -3117 3116 -1 -3136 3116 -1 -3516 3116 -1 -3117 3117 6 -3118 3117 -1 -3137 3117 -1 -3517 3117 -1 -3118 3118 6 -3119 3118 -1 -3138 3118 -1 -3518 3118 -1 -3119 3119 6 -3120 3119 -1 -3139 3119 -1 -3519 3119 -1 -3120 3120 6 -3140 3120 -1 -3520 3120 -1 -3121 3121 6 -3122 3121 -1 -3141 3121 -1 -3521 3121 -1 -3122 3122 6 -3123 3122 -1 -3142 3122 -1 -3522 3122 -1 -3123 3123 6 -3124 3123 -1 -3143 3123 -1 -3523 3123 -1 -3124 3124 6 -3125 3124 -1 -3144 3124 -1 -3524 3124 -1 -3125 3125 6 -3126 3125 -1 -3145 3125 -1 -3525 3125 -1 -3126 3126 6 -3127 3126 -1 -3146 3126 -1 -3526 3126 -1 -3127 3127 6 -3128 3127 -1 -3147 3127 -1 -3527 3127 -1 -3128 3128 6 -3129 3128 -1 -3148 3128 -1 -3528 3128 -1 -3129 3129 6 -3130 3129 -1 -3149 3129 -1 -3529 3129 -1 -3130 3130 6 -3131 3130 -1 -3150 3130 -1 -3530 3130 -1 -3131 3131 6 -3132 3131 -1 -3151 3131 -1 -3531 3131 -1 -3132 3132 6 -3133 3132 -1 -3152 3132 -1 -3532 3132 -1 -3133 3133 6 -3134 3133 -1 -3153 3133 -1 -3533 3133 -1 -3134 3134 6 -3135 3134 -1 -3154 3134 -1 -3534 3134 -1 -3135 3135 6 -3136 3135 -1 -3155 3135 -1 -3535 3135 -1 -3136 3136 6 -3137 3136 -1 -3156 3136 -1 -3536 3136 -1 -3137 3137 6 -3138 3137 -1 -3157 3137 -1 -3537 3137 -1 -3138 3138 6 -3139 3138 -1 -3158 3138 -1 -3538 3138 -1 -3139 3139 6 -3140 3139 -1 -3159 3139 -1 -3539 3139 -1 -3140 3140 6 -3160 3140 -1 -3540 3140 -1 -3141 3141 6 -3142 3141 -1 -3161 3141 -1 -3541 3141 -1 -3142 3142 6 -3143 3142 -1 -3162 3142 -1 -3542 3142 -1 -3143 3143 6 -3144 3143 -1 -3163 3143 -1 -3543 3143 -1 -3144 3144 6 -3145 3144 -1 -3164 3144 -1 -3544 3144 -1 -3145 3145 6 -3146 3145 -1 -3165 3145 -1 -3545 3145 -1 -3146 3146 6 -3147 3146 -1 -3166 3146 -1 -3546 3146 -1 -3147 3147 6 -3148 3147 -1 -3167 3147 -1 -3547 3147 -1 -3148 3148 6 -3149 3148 -1 -3168 3148 -1 -3548 3148 -1 -3149 3149 6 -3150 3149 -1 -3169 3149 -1 -3549 3149 -1 -3150 3150 6 -3151 3150 -1 -3170 3150 -1 -3550 3150 -1 -3151 3151 6 -3152 3151 -1 -3171 3151 -1 -3551 3151 -1 -3152 3152 6 -3153 3152 -1 -3172 3152 -1 -3552 3152 -1 -3153 3153 6 -3154 3153 -1 -3173 3153 -1 -3553 3153 -1 -3154 3154 6 -3155 3154 -1 -3174 3154 -1 -3554 3154 -1 -3155 3155 6 -3156 3155 -1 -3175 3155 -1 -3555 3155 -1 -3156 3156 6 -3157 3156 -1 -3176 3156 -1 -3556 3156 -1 -3157 3157 6 -3158 3157 -1 -3177 3157 -1 -3557 3157 -1 -3158 3158 6 -3159 3158 -1 -3178 3158 -1 -3558 3158 -1 -3159 3159 6 -3160 3159 -1 -3179 3159 -1 -3559 3159 -1 -3160 3160 6 -3180 3160 -1 -3560 3160 -1 -3161 3161 6 -3162 3161 -1 -3181 3161 -1 -3561 3161 -1 -3162 3162 6 -3163 3162 -1 -3182 3162 -1 -3562 3162 -1 -3163 3163 6 -3164 3163 -1 -3183 3163 -1 -3563 3163 -1 -3164 3164 6 -3165 3164 -1 -3184 3164 -1 -3564 3164 -1 -3165 3165 6 -3166 3165 -1 -3185 3165 -1 -3565 3165 -1 -3166 3166 6 -3167 3166 -1 -3186 3166 -1 -3566 3166 -1 -3167 3167 6 -3168 3167 -1 -3187 3167 -1 -3567 3167 -1 -3168 3168 6 -3169 3168 -1 -3188 3168 -1 -3568 3168 -1 -3169 3169 6 -3170 3169 -1 -3189 3169 -1 -3569 3169 -1 -3170 3170 6 -3171 3170 -1 -3190 3170 -1 -3570 3170 -1 -3171 3171 6 -3172 3171 -1 -3191 3171 -1 -3571 3171 -1 -3172 3172 6 -3173 3172 -1 -3192 3172 -1 -3572 3172 -1 -3173 3173 6 -3174 3173 -1 -3193 3173 -1 -3573 3173 -1 -3174 3174 6 -3175 3174 -1 -3194 3174 -1 -3574 3174 -1 -3175 3175 6 -3176 3175 -1 -3195 3175 -1 -3575 3175 -1 -3176 3176 6 -3177 3176 -1 -3196 3176 -1 -3576 3176 -1 -3177 3177 6 -3178 3177 -1 -3197 3177 -1 -3577 3177 -1 -3178 3178 6 -3179 3178 -1 -3198 3178 -1 -3578 3178 -1 -3179 3179 6 -3180 3179 -1 -3199 3179 -1 -3579 3179 -1 -3180 3180 6 -3200 3180 -1 -3580 3180 -1 -3181 3181 6 -3182 3181 -1 -3581 3181 -1 -3182 3182 6 -3183 3182 -1 -3582 3182 -1 -3183 3183 6 -3184 3183 -1 -3583 3183 -1 -3184 3184 6 -3185 3184 -1 -3584 3184 -1 -3185 3185 6 -3186 3185 -1 -3585 3185 -1 -3186 3186 6 -3187 3186 -1 -3586 3186 -1 -3187 3187 6 -3188 3187 -1 -3587 3187 -1 -3188 3188 6 -3189 3188 -1 -3588 3188 -1 -3189 3189 6 -3190 3189 -1 -3589 3189 -1 -3190 3190 6 -3191 3190 -1 -3590 3190 -1 -3191 3191 6 -3192 3191 -1 -3591 3191 -1 -3192 3192 6 -3193 3192 -1 -3592 3192 -1 -3193 3193 6 -3194 3193 -1 -3593 3193 -1 -3194 3194 6 -3195 3194 -1 -3594 3194 -1 -3195 3195 6 -3196 3195 -1 -3595 3195 -1 -3196 3196 6 -3197 3196 -1 -3596 3196 -1 -3197 3197 6 -3198 3197 -1 -3597 3197 -1 -3198 3198 6 -3199 3198 -1 -3598 3198 -1 -3199 3199 6 -3200 3199 -1 -3599 3199 -1 -3200 3200 6 -3600 3200 -1 -3201 3201 6 -3202 3201 -1 -3221 3201 -1 -3601 3201 -1 -3202 3202 6 -3203 3202 -1 -3222 3202 -1 -3602 3202 -1 -3203 3203 6 -3204 3203 -1 -3223 3203 -1 -3603 3203 -1 -3204 3204 6 -3205 3204 -1 -3224 3204 -1 -3604 3204 -1 -3205 3205 6 -3206 3205 -1 -3225 3205 -1 -3605 3205 -1 -3206 3206 6 -3207 3206 -1 -3226 3206 -1 -3606 3206 -1 -3207 3207 6 -3208 3207 -1 -3227 3207 -1 -3607 3207 -1 -3208 3208 6 -3209 3208 -1 -3228 3208 -1 -3608 3208 -1 -3209 3209 6 -3210 3209 -1 -3229 3209 -1 -3609 3209 -1 -3210 3210 6 -3211 3210 -1 -3230 3210 -1 -3610 3210 -1 -3211 3211 6 -3212 3211 -1 -3231 3211 -1 -3611 3211 -1 -3212 3212 6 -3213 3212 -1 -3232 3212 -1 -3612 3212 -1 -3213 3213 6 -3214 3213 -1 -3233 3213 -1 -3613 3213 -1 -3214 3214 6 -3215 3214 -1 -3234 3214 -1 -3614 3214 -1 -3215 3215 6 -3216 3215 -1 -3235 3215 -1 -3615 3215 -1 -3216 3216 6 -3217 3216 -1 -3236 3216 -1 -3616 3216 -1 -3217 3217 6 -3218 3217 -1 -3237 3217 -1 -3617 3217 -1 -3218 3218 6 -3219 3218 -1 -3238 3218 -1 -3618 3218 -1 -3219 3219 6 -3220 3219 -1 -3239 3219 -1 -3619 3219 -1 -3220 3220 6 -3240 3220 -1 -3620 3220 -1 -3221 3221 6 -3222 3221 -1 -3241 3221 -1 -3621 3221 -1 -3222 3222 6 -3223 3222 -1 -3242 3222 -1 -3622 3222 -1 -3223 3223 6 -3224 3223 -1 -3243 3223 -1 -3623 3223 -1 -3224 3224 6 -3225 3224 -1 -3244 3224 -1 -3624 3224 -1 -3225 3225 6 -3226 3225 -1 -3245 3225 -1 -3625 3225 -1 -3226 3226 6 -3227 3226 -1 -3246 3226 -1 -3626 3226 -1 -3227 3227 6 -3228 3227 -1 -3247 3227 -1 -3627 3227 -1 -3228 3228 6 -3229 3228 -1 -3248 3228 -1 -3628 3228 -1 -3229 3229 6 -3230 3229 -1 -3249 3229 -1 -3629 3229 -1 -3230 3230 6 -3231 3230 -1 -3250 3230 -1 -3630 3230 -1 -3231 3231 6 -3232 3231 -1 -3251 3231 -1 -3631 3231 -1 -3232 3232 6 -3233 3232 -1 -3252 3232 -1 -3632 3232 -1 -3233 3233 6 -3234 3233 -1 -3253 3233 -1 -3633 3233 -1 -3234 3234 6 -3235 3234 -1 -3254 3234 -1 -3634 3234 -1 -3235 3235 6 -3236 3235 -1 -3255 3235 -1 -3635 3235 -1 -3236 3236 6 -3237 3236 -1 -3256 3236 -1 -3636 3236 -1 -3237 3237 6 -3238 3237 -1 -3257 3237 -1 -3637 3237 -1 -3238 3238 6 -3239 3238 -1 -3258 3238 -1 -3638 3238 -1 -3239 3239 6 -3240 3239 -1 -3259 3239 -1 -3639 3239 -1 -3240 3240 6 -3260 3240 -1 -3640 3240 -1 -3241 3241 6 -3242 3241 -1 -3261 3241 -1 -3641 3241 -1 -3242 3242 6 -3243 3242 -1 -3262 3242 -1 -3642 3242 -1 -3243 3243 6 -3244 3243 -1 -3263 3243 -1 -3643 3243 -1 -3244 3244 6 -3245 3244 -1 -3264 3244 -1 -3644 3244 -1 -3245 3245 6 -3246 3245 -1 -3265 3245 -1 -3645 3245 -1 -3246 3246 6 -3247 3246 -1 -3266 3246 -1 -3646 3246 -1 -3247 3247 6 -3248 3247 -1 -3267 3247 -1 -3647 3247 -1 -3248 3248 6 -3249 3248 -1 -3268 3248 -1 -3648 3248 -1 -3249 3249 6 -3250 3249 -1 -3269 3249 -1 -3649 3249 -1 -3250 3250 6 -3251 3250 -1 -3270 3250 -1 -3650 3250 -1 -3251 3251 6 -3252 3251 -1 -3271 3251 -1 -3651 3251 -1 -3252 3252 6 -3253 3252 -1 -3272 3252 -1 -3652 3252 -1 -3253 3253 6 -3254 3253 -1 -3273 3253 -1 -3653 3253 -1 -3254 3254 6 -3255 3254 -1 -3274 3254 -1 -3654 3254 -1 -3255 3255 6 -3256 3255 -1 -3275 3255 -1 -3655 3255 -1 -3256 3256 6 -3257 3256 -1 -3276 3256 -1 -3656 3256 -1 -3257 3257 6 -3258 3257 -1 -3277 3257 -1 -3657 3257 -1 -3258 3258 6 -3259 3258 -1 -3278 3258 -1 -3658 3258 -1 -3259 3259 6 -3260 3259 -1 -3279 3259 -1 -3659 3259 -1 -3260 3260 6 -3280 3260 -1 -3660 3260 -1 -3261 3261 6 -3262 3261 -1 -3281 3261 -1 -3661 3261 -1 -3262 3262 6 -3263 3262 -1 -3282 3262 -1 -3662 3262 -1 -3263 3263 6 -3264 3263 -1 -3283 3263 -1 -3663 3263 -1 -3264 3264 6 -3265 3264 -1 -3284 3264 -1 -3664 3264 -1 -3265 3265 6 -3266 3265 -1 -3285 3265 -1 -3665 3265 -1 -3266 3266 6 -3267 3266 -1 -3286 3266 -1 -3666 3266 -1 -3267 3267 6 -3268 3267 -1 -3287 3267 -1 -3667 3267 -1 -3268 3268 6 -3269 3268 -1 -3288 3268 -1 -3668 3268 -1 -3269 3269 6 -3270 3269 -1 -3289 3269 -1 -3669 3269 -1 -3270 3270 6 -3271 3270 -1 -3290 3270 -1 -3670 3270 -1 -3271 3271 6 -3272 3271 -1 -3291 3271 -1 -3671 3271 -1 -3272 3272 6 -3273 3272 -1 -3292 3272 -1 -3672 3272 -1 -3273 3273 6 -3274 3273 -1 -3293 3273 -1 -3673 3273 -1 -3274 3274 6 -3275 3274 -1 -3294 3274 -1 -3674 3274 -1 -3275 3275 6 -3276 3275 -1 -3295 3275 -1 -3675 3275 -1 -3276 3276 6 -3277 3276 -1 -3296 3276 -1 -3676 3276 -1 -3277 3277 6 -3278 3277 -1 -3297 3277 -1 -3677 3277 -1 -3278 3278 6 -3279 3278 -1 -3298 3278 -1 -3678 3278 -1 -3279 3279 6 -3280 3279 -1 -3299 3279 -1 -3679 3279 -1 -3280 3280 6 -3300 3280 -1 -3680 3280 -1 -3281 3281 6 -3282 3281 -1 -3301 3281 -1 -3681 3281 -1 -3282 3282 6 -3283 3282 -1 -3302 3282 -1 -3682 3282 -1 -3283 3283 6 -3284 3283 -1 -3303 3283 -1 -3683 3283 -1 -3284 3284 6 -3285 3284 -1 -3304 3284 -1 -3684 3284 -1 -3285 3285 6 -3286 3285 -1 -3305 3285 -1 -3685 3285 -1 -3286 3286 6 -3287 3286 -1 -3306 3286 -1 -3686 3286 -1 -3287 3287 6 -3288 3287 -1 -3307 3287 -1 -3687 3287 -1 -3288 3288 6 -3289 3288 -1 -3308 3288 -1 -3688 3288 -1 -3289 3289 6 -3290 3289 -1 -3309 3289 -1 -3689 3289 -1 -3290 3290 6 -3291 3290 -1 -3310 3290 -1 -3690 3290 -1 -3291 3291 6 -3292 3291 -1 -3311 3291 -1 -3691 3291 -1 -3292 3292 6 -3293 3292 -1 -3312 3292 -1 -3692 3292 -1 -3293 3293 6 -3294 3293 -1 -3313 3293 -1 -3693 3293 -1 -3294 3294 6 -3295 3294 -1 -3314 3294 -1 -3694 3294 -1 -3295 3295 6 -3296 3295 -1 -3315 3295 -1 -3695 3295 -1 -3296 3296 6 -3297 3296 -1 -3316 3296 -1 -3696 3296 -1 -3297 3297 6 -3298 3297 -1 -3317 3297 -1 -3697 3297 -1 -3298 3298 6 -3299 3298 -1 -3318 3298 -1 -3698 3298 -1 -3299 3299 6 -3300 3299 -1 -3319 3299 -1 -3699 3299 -1 -3300 3300 6 -3320 3300 -1 -3700 3300 -1 -3301 3301 6 -3302 3301 -1 -3321 3301 -1 -3701 3301 -1 -3302 3302 6 -3303 3302 -1 -3322 3302 -1 -3702 3302 -1 -3303 3303 6 -3304 3303 -1 -3323 3303 -1 -3703 3303 -1 -3304 3304 6 -3305 3304 -1 -3324 3304 -1 -3704 3304 -1 -3305 3305 6 -3306 3305 -1 -3325 3305 -1 -3705 3305 -1 -3306 3306 6 -3307 3306 -1 -3326 3306 -1 -3706 3306 -1 -3307 3307 6 -3308 3307 -1 -3327 3307 -1 -3707 3307 -1 -3308 3308 6 -3309 3308 -1 -3328 3308 -1 -3708 3308 -1 -3309 3309 6 -3310 3309 -1 -3329 3309 -1 -3709 3309 -1 -3310 3310 6 -3311 3310 -1 -3330 3310 -1 -3710 3310 -1 -3311 3311 6 -3312 3311 -1 -3331 3311 -1 -3711 3311 -1 -3312 3312 6 -3313 3312 -1 -3332 3312 -1 -3712 3312 -1 -3313 3313 6 -3314 3313 -1 -3333 3313 -1 -3713 3313 -1 -3314 3314 6 -3315 3314 -1 -3334 3314 -1 -3714 3314 -1 -3315 3315 6 -3316 3315 -1 -3335 3315 -1 -3715 3315 -1 -3316 3316 6 -3317 3316 -1 -3336 3316 -1 -3716 3316 -1 -3317 3317 6 -3318 3317 -1 -3337 3317 -1 -3717 3317 -1 -3318 3318 6 -3319 3318 -1 -3338 3318 -1 -3718 3318 -1 -3319 3319 6 -3320 3319 -1 -3339 3319 -1 -3719 3319 -1 -3320 3320 6 -3340 3320 -1 -3720 3320 -1 -3321 3321 6 -3322 3321 -1 -3341 3321 -1 -3721 3321 -1 -3322 3322 6 -3323 3322 -1 -3342 3322 -1 -3722 3322 -1 -3323 3323 6 -3324 3323 -1 -3343 3323 -1 -3723 3323 -1 -3324 3324 6 -3325 3324 -1 -3344 3324 -1 -3724 3324 -1 -3325 3325 6 -3326 3325 -1 -3345 3325 -1 -3725 3325 -1 -3326 3326 6 -3327 3326 -1 -3346 3326 -1 -3726 3326 -1 -3327 3327 6 -3328 3327 -1 -3347 3327 -1 -3727 3327 -1 -3328 3328 6 -3329 3328 -1 -3348 3328 -1 -3728 3328 -1 -3329 3329 6 -3330 3329 -1 -3349 3329 -1 -3729 3329 -1 -3330 3330 6 -3331 3330 -1 -3350 3330 -1 -3730 3330 -1 -3331 3331 6 -3332 3331 -1 -3351 3331 -1 -3731 3331 -1 -3332 3332 6 -3333 3332 -1 -3352 3332 -1 -3732 3332 -1 -3333 3333 6 -3334 3333 -1 -3353 3333 -1 -3733 3333 -1 -3334 3334 6 -3335 3334 -1 -3354 3334 -1 -3734 3334 -1 -3335 3335 6 -3336 3335 -1 -3355 3335 -1 -3735 3335 -1 -3336 3336 6 -3337 3336 -1 -3356 3336 -1 -3736 3336 -1 -3337 3337 6 -3338 3337 -1 -3357 3337 -1 -3737 3337 -1 -3338 3338 6 -3339 3338 -1 -3358 3338 -1 -3738 3338 -1 -3339 3339 6 -3340 3339 -1 -3359 3339 -1 -3739 3339 -1 -3340 3340 6 -3360 3340 -1 -3740 3340 -1 -3341 3341 6 -3342 3341 -1 -3361 3341 -1 -3741 3341 -1 -3342 3342 6 -3343 3342 -1 -3362 3342 -1 -3742 3342 -1 -3343 3343 6 -3344 3343 -1 -3363 3343 -1 -3743 3343 -1 -3344 3344 6 -3345 3344 -1 -3364 3344 -1 -3744 3344 -1 -3345 3345 6 -3346 3345 -1 -3365 3345 -1 -3745 3345 -1 -3346 3346 6 -3347 3346 -1 -3366 3346 -1 -3746 3346 -1 -3347 3347 6 -3348 3347 -1 -3367 3347 -1 -3747 3347 -1 -3348 3348 6 -3349 3348 -1 -3368 3348 -1 -3748 3348 -1 -3349 3349 6 -3350 3349 -1 -3369 3349 -1 -3749 3349 -1 -3350 3350 6 -3351 3350 -1 -3370 3350 -1 -3750 3350 -1 -3351 3351 6 -3352 3351 -1 -3371 3351 -1 -3751 3351 -1 -3352 3352 6 -3353 3352 -1 -3372 3352 -1 -3752 3352 -1 -3353 3353 6 -3354 3353 -1 -3373 3353 -1 -3753 3353 -1 -3354 3354 6 -3355 3354 -1 -3374 3354 -1 -3754 3354 -1 -3355 3355 6 -3356 3355 -1 -3375 3355 -1 -3755 3355 -1 -3356 3356 6 -3357 3356 -1 -3376 3356 -1 -3756 3356 -1 -3357 3357 6 -3358 3357 -1 -3377 3357 -1 -3757 3357 -1 -3358 3358 6 -3359 3358 -1 -3378 3358 -1 -3758 3358 -1 -3359 3359 6 -3360 3359 -1 -3379 3359 -1 -3759 3359 -1 -3360 3360 6 -3380 3360 -1 -3760 3360 -1 -3361 3361 6 -3362 3361 -1 -3381 3361 -1 -3761 3361 -1 -3362 3362 6 -3363 3362 -1 -3382 3362 -1 -3762 3362 -1 -3363 3363 6 -3364 3363 -1 -3383 3363 -1 -3763 3363 -1 -3364 3364 6 -3365 3364 -1 -3384 3364 -1 -3764 3364 -1 -3365 3365 6 -3366 3365 -1 -3385 3365 -1 -3765 3365 -1 -3366 3366 6 -3367 3366 -1 -3386 3366 -1 -3766 3366 -1 -3367 3367 6 -3368 3367 -1 -3387 3367 -1 -3767 3367 -1 -3368 3368 6 -3369 3368 -1 -3388 3368 -1 -3768 3368 -1 -3369 3369 6 -3370 3369 -1 -3389 3369 -1 -3769 3369 -1 -3370 3370 6 -3371 3370 -1 -3390 3370 -1 -3770 3370 -1 -3371 3371 6 -3372 3371 -1 -3391 3371 -1 -3771 3371 -1 -3372 3372 6 -3373 3372 -1 -3392 3372 -1 -3772 3372 -1 -3373 3373 6 -3374 3373 -1 -3393 3373 -1 -3773 3373 -1 -3374 3374 6 -3375 3374 -1 -3394 3374 -1 -3774 3374 -1 -3375 3375 6 -3376 3375 -1 -3395 3375 -1 -3775 3375 -1 -3376 3376 6 -3377 3376 -1 -3396 3376 -1 -3776 3376 -1 -3377 3377 6 -3378 3377 -1 -3397 3377 -1 -3777 3377 -1 -3378 3378 6 -3379 3378 -1 -3398 3378 -1 -3778 3378 -1 -3379 3379 6 -3380 3379 -1 -3399 3379 -1 -3779 3379 -1 -3380 3380 6 -3400 3380 -1 -3780 3380 -1 -3381 3381 6 -3382 3381 -1 -3401 3381 -1 -3781 3381 -1 -3382 3382 6 -3383 3382 -1 -3402 3382 -1 -3782 3382 -1 -3383 3383 6 -3384 3383 -1 -3403 3383 -1 -3783 3383 -1 -3384 3384 6 -3385 3384 -1 -3404 3384 -1 -3784 3384 -1 -3385 3385 6 -3386 3385 -1 -3405 3385 -1 -3785 3385 -1 -3386 3386 6 -3387 3386 -1 -3406 3386 -1 -3786 3386 -1 -3387 3387 6 -3388 3387 -1 -3407 3387 -1 -3787 3387 -1 -3388 3388 6 -3389 3388 -1 -3408 3388 -1 -3788 3388 -1 -3389 3389 6 -3390 3389 -1 -3409 3389 -1 -3789 3389 -1 -3390 3390 6 -3391 3390 -1 -3410 3390 -1 -3790 3390 -1 -3391 3391 6 -3392 3391 -1 -3411 3391 -1 -3791 3391 -1 -3392 3392 6 -3393 3392 -1 -3412 3392 -1 -3792 3392 -1 -3393 3393 6 -3394 3393 -1 -3413 3393 -1 -3793 3393 -1 -3394 3394 6 -3395 3394 -1 -3414 3394 -1 -3794 3394 -1 -3395 3395 6 -3396 3395 -1 -3415 3395 -1 -3795 3395 -1 -3396 3396 6 -3397 3396 -1 -3416 3396 -1 -3796 3396 -1 -3397 3397 6 -3398 3397 -1 -3417 3397 -1 -3797 3397 -1 -3398 3398 6 -3399 3398 -1 -3418 3398 -1 -3798 3398 -1 -3399 3399 6 -3400 3399 -1 -3419 3399 -1 -3799 3399 -1 -3400 3400 6 -3420 3400 -1 -3800 3400 -1 -3401 3401 6 -3402 3401 -1 -3421 3401 -1 -3801 3401 -1 -3402 3402 6 -3403 3402 -1 -3422 3402 -1 -3802 3402 -1 -3403 3403 6 -3404 3403 -1 -3423 3403 -1 -3803 3403 -1 -3404 3404 6 -3405 3404 -1 -3424 3404 -1 -3804 3404 -1 -3405 3405 6 -3406 3405 -1 -3425 3405 -1 -3805 3405 -1 -3406 3406 6 -3407 3406 -1 -3426 3406 -1 -3806 3406 -1 -3407 3407 6 -3408 3407 -1 -3427 3407 -1 -3807 3407 -1 -3408 3408 6 -3409 3408 -1 -3428 3408 -1 -3808 3408 -1 -3409 3409 6 -3410 3409 -1 -3429 3409 -1 -3809 3409 -1 -3410 3410 6 -3411 3410 -1 -3430 3410 -1 -3810 3410 -1 -3411 3411 6 -3412 3411 -1 -3431 3411 -1 -3811 3411 -1 -3412 3412 6 -3413 3412 -1 -3432 3412 -1 -3812 3412 -1 -3413 3413 6 -3414 3413 -1 -3433 3413 -1 -3813 3413 -1 -3414 3414 6 -3415 3414 -1 -3434 3414 -1 -3814 3414 -1 -3415 3415 6 -3416 3415 -1 -3435 3415 -1 -3815 3415 -1 -3416 3416 6 -3417 3416 -1 -3436 3416 -1 -3816 3416 -1 -3417 3417 6 -3418 3417 -1 -3437 3417 -1 -3817 3417 -1 -3418 3418 6 -3419 3418 -1 -3438 3418 -1 -3818 3418 -1 -3419 3419 6 -3420 3419 -1 -3439 3419 -1 -3819 3419 -1 -3420 3420 6 -3440 3420 -1 -3820 3420 -1 -3421 3421 6 -3422 3421 -1 -3441 3421 -1 -3821 3421 -1 -3422 3422 6 -3423 3422 -1 -3442 3422 -1 -3822 3422 -1 -3423 3423 6 -3424 3423 -1 -3443 3423 -1 -3823 3423 -1 -3424 3424 6 -3425 3424 -1 -3444 3424 -1 -3824 3424 -1 -3425 3425 6 -3426 3425 -1 -3445 3425 -1 -3825 3425 -1 -3426 3426 6 -3427 3426 -1 -3446 3426 -1 -3826 3426 -1 -3427 3427 6 -3428 3427 -1 -3447 3427 -1 -3827 3427 -1 -3428 3428 6 -3429 3428 -1 -3448 3428 -1 -3828 3428 -1 -3429 3429 6 -3430 3429 -1 -3449 3429 -1 -3829 3429 -1 -3430 3430 6 -3431 3430 -1 -3450 3430 -1 -3830 3430 -1 -3431 3431 6 -3432 3431 -1 -3451 3431 -1 -3831 3431 -1 -3432 3432 6 -3433 3432 -1 -3452 3432 -1 -3832 3432 -1 -3433 3433 6 -3434 3433 -1 -3453 3433 -1 -3833 3433 -1 -3434 3434 6 -3435 3434 -1 -3454 3434 -1 -3834 3434 -1 -3435 3435 6 -3436 3435 -1 -3455 3435 -1 -3835 3435 -1 -3436 3436 6 -3437 3436 -1 -3456 3436 -1 -3836 3436 -1 -3437 3437 6 -3438 3437 -1 -3457 3437 -1 -3837 3437 -1 -3438 3438 6 -3439 3438 -1 -3458 3438 -1 -3838 3438 -1 -3439 3439 6 -3440 3439 -1 -3459 3439 -1 -3839 3439 -1 -3440 3440 6 -3460 3440 -1 -3840 3440 -1 -3441 3441 6 -3442 3441 -1 -3461 3441 -1 -3841 3441 -1 -3442 3442 6 -3443 3442 -1 -3462 3442 -1 -3842 3442 -1 -3443 3443 6 -3444 3443 -1 -3463 3443 -1 -3843 3443 -1 -3444 3444 6 -3445 3444 -1 -3464 3444 -1 -3844 3444 -1 -3445 3445 6 -3446 3445 -1 -3465 3445 -1 -3845 3445 -1 -3446 3446 6 -3447 3446 -1 -3466 3446 -1 -3846 3446 -1 -3447 3447 6 -3448 3447 -1 -3467 3447 -1 -3847 3447 -1 -3448 3448 6 -3449 3448 -1 -3468 3448 -1 -3848 3448 -1 -3449 3449 6 -3450 3449 -1 -3469 3449 -1 -3849 3449 -1 -3450 3450 6 -3451 3450 -1 -3470 3450 -1 -3850 3450 -1 -3451 3451 6 -3452 3451 -1 -3471 3451 -1 -3851 3451 -1 -3452 3452 6 -3453 3452 -1 -3472 3452 -1 -3852 3452 -1 -3453 3453 6 -3454 3453 -1 -3473 3453 -1 -3853 3453 -1 -3454 3454 6 -3455 3454 -1 -3474 3454 -1 -3854 3454 -1 -3455 3455 6 -3456 3455 -1 -3475 3455 -1 -3855 3455 -1 -3456 3456 6 -3457 3456 -1 -3476 3456 -1 -3856 3456 -1 -3457 3457 6 -3458 3457 -1 -3477 3457 -1 -3857 3457 -1 -3458 3458 6 -3459 3458 -1 -3478 3458 -1 -3858 3458 -1 -3459 3459 6 -3460 3459 -1 -3479 3459 -1 -3859 3459 -1 -3460 3460 6 -3480 3460 -1 -3860 3460 -1 -3461 3461 6 -3462 3461 -1 -3481 3461 -1 -3861 3461 -1 -3462 3462 6 -3463 3462 -1 -3482 3462 -1 -3862 3462 -1 -3463 3463 6 -3464 3463 -1 -3483 3463 -1 -3863 3463 -1 -3464 3464 6 -3465 3464 -1 -3484 3464 -1 -3864 3464 -1 -3465 3465 6 -3466 3465 -1 -3485 3465 -1 -3865 3465 -1 -3466 3466 6 -3467 3466 -1 -3486 3466 -1 -3866 3466 -1 -3467 3467 6 -3468 3467 -1 -3487 3467 -1 -3867 3467 -1 -3468 3468 6 -3469 3468 -1 -3488 3468 -1 -3868 3468 -1 -3469 3469 6 -3470 3469 -1 -3489 3469 -1 -3869 3469 -1 -3470 3470 6 -3471 3470 -1 -3490 3470 -1 -3870 3470 -1 -3471 3471 6 -3472 3471 -1 -3491 3471 -1 -3871 3471 -1 -3472 3472 6 -3473 3472 -1 -3492 3472 -1 -3872 3472 -1 -3473 3473 6 -3474 3473 -1 -3493 3473 -1 -3873 3473 -1 -3474 3474 6 -3475 3474 -1 -3494 3474 -1 -3874 3474 -1 -3475 3475 6 -3476 3475 -1 -3495 3475 -1 -3875 3475 -1 -3476 3476 6 -3477 3476 -1 -3496 3476 -1 -3876 3476 -1 -3477 3477 6 -3478 3477 -1 -3497 3477 -1 -3877 3477 -1 -3478 3478 6 -3479 3478 -1 -3498 3478 -1 -3878 3478 -1 -3479 3479 6 -3480 3479 -1 -3499 3479 -1 -3879 3479 -1 -3480 3480 6 -3500 3480 -1 -3880 3480 -1 -3481 3481 6 -3482 3481 -1 -3501 3481 -1 -3881 3481 -1 -3482 3482 6 -3483 3482 -1 -3502 3482 -1 -3882 3482 -1 -3483 3483 6 -3484 3483 -1 -3503 3483 -1 -3883 3483 -1 -3484 3484 6 -3485 3484 -1 -3504 3484 -1 -3884 3484 -1 -3485 3485 6 -3486 3485 -1 -3505 3485 -1 -3885 3485 -1 -3486 3486 6 -3487 3486 -1 -3506 3486 -1 -3886 3486 -1 -3487 3487 6 -3488 3487 -1 -3507 3487 -1 -3887 3487 -1 -3488 3488 6 -3489 3488 -1 -3508 3488 -1 -3888 3488 -1 -3489 3489 6 -3490 3489 -1 -3509 3489 -1 -3889 3489 -1 -3490 3490 6 -3491 3490 -1 -3510 3490 -1 -3890 3490 -1 -3491 3491 6 -3492 3491 -1 -3511 3491 -1 -3891 3491 -1 -3492 3492 6 -3493 3492 -1 -3512 3492 -1 -3892 3492 -1 -3493 3493 6 -3494 3493 -1 -3513 3493 -1 -3893 3493 -1 -3494 3494 6 -3495 3494 -1 -3514 3494 -1 -3894 3494 -1 -3495 3495 6 -3496 3495 -1 -3515 3495 -1 -3895 3495 -1 -3496 3496 6 -3497 3496 -1 -3516 3496 -1 -3896 3496 -1 -3497 3497 6 -3498 3497 -1 -3517 3497 -1 -3897 3497 -1 -3498 3498 6 -3499 3498 -1 -3518 3498 -1 -3898 3498 -1 -3499 3499 6 -3500 3499 -1 -3519 3499 -1 -3899 3499 -1 -3500 3500 6 -3520 3500 -1 -3900 3500 -1 -3501 3501 6 -3502 3501 -1 -3521 3501 -1 -3901 3501 -1 -3502 3502 6 -3503 3502 -1 -3522 3502 -1 -3902 3502 -1 -3503 3503 6 -3504 3503 -1 -3523 3503 -1 -3903 3503 -1 -3504 3504 6 -3505 3504 -1 -3524 3504 -1 -3904 3504 -1 -3505 3505 6 -3506 3505 -1 -3525 3505 -1 -3905 3505 -1 -3506 3506 6 -3507 3506 -1 -3526 3506 -1 -3906 3506 -1 -3507 3507 6 -3508 3507 -1 -3527 3507 -1 -3907 3507 -1 -3508 3508 6 -3509 3508 -1 -3528 3508 -1 -3908 3508 -1 -3509 3509 6 -3510 3509 -1 -3529 3509 -1 -3909 3509 -1 -3510 3510 6 -3511 3510 -1 -3530 3510 -1 -3910 3510 -1 -3511 3511 6 -3512 3511 -1 -3531 3511 -1 -3911 3511 -1 -3512 3512 6 -3513 3512 -1 -3532 3512 -1 -3912 3512 -1 -3513 3513 6 -3514 3513 -1 -3533 3513 -1 -3913 3513 -1 -3514 3514 6 -3515 3514 -1 -3534 3514 -1 -3914 3514 -1 -3515 3515 6 -3516 3515 -1 -3535 3515 -1 -3915 3515 -1 -3516 3516 6 -3517 3516 -1 -3536 3516 -1 -3916 3516 -1 -3517 3517 6 -3518 3517 -1 -3537 3517 -1 -3917 3517 -1 -3518 3518 6 -3519 3518 -1 -3538 3518 -1 -3918 3518 -1 -3519 3519 6 -3520 3519 -1 -3539 3519 -1 -3919 3519 -1 -3520 3520 6 -3540 3520 -1 -3920 3520 -1 -3521 3521 6 -3522 3521 -1 -3541 3521 -1 -3921 3521 -1 -3522 3522 6 -3523 3522 -1 -3542 3522 -1 -3922 3522 -1 -3523 3523 6 -3524 3523 -1 -3543 3523 -1 -3923 3523 -1 -3524 3524 6 -3525 3524 -1 -3544 3524 -1 -3924 3524 -1 -3525 3525 6 -3526 3525 -1 -3545 3525 -1 -3925 3525 -1 -3526 3526 6 -3527 3526 -1 -3546 3526 -1 -3926 3526 -1 -3527 3527 6 -3528 3527 -1 -3547 3527 -1 -3927 3527 -1 -3528 3528 6 -3529 3528 -1 -3548 3528 -1 -3928 3528 -1 -3529 3529 6 -3530 3529 -1 -3549 3529 -1 -3929 3529 -1 -3530 3530 6 -3531 3530 -1 -3550 3530 -1 -3930 3530 -1 -3531 3531 6 -3532 3531 -1 -3551 3531 -1 -3931 3531 -1 -3532 3532 6 -3533 3532 -1 -3552 3532 -1 -3932 3532 -1 -3533 3533 6 -3534 3533 -1 -3553 3533 -1 -3933 3533 -1 -3534 3534 6 -3535 3534 -1 -3554 3534 -1 -3934 3534 -1 -3535 3535 6 -3536 3535 -1 -3555 3535 -1 -3935 3535 -1 -3536 3536 6 -3537 3536 -1 -3556 3536 -1 -3936 3536 -1 -3537 3537 6 -3538 3537 -1 -3557 3537 -1 -3937 3537 -1 -3538 3538 6 -3539 3538 -1 -3558 3538 -1 -3938 3538 -1 -3539 3539 6 -3540 3539 -1 -3559 3539 -1 -3939 3539 -1 -3540 3540 6 -3560 3540 -1 -3940 3540 -1 -3541 3541 6 -3542 3541 -1 -3561 3541 -1 -3941 3541 -1 -3542 3542 6 -3543 3542 -1 -3562 3542 -1 -3942 3542 -1 -3543 3543 6 -3544 3543 -1 -3563 3543 -1 -3943 3543 -1 -3544 3544 6 -3545 3544 -1 -3564 3544 -1 -3944 3544 -1 -3545 3545 6 -3546 3545 -1 -3565 3545 -1 -3945 3545 -1 -3546 3546 6 -3547 3546 -1 -3566 3546 -1 -3946 3546 -1 -3547 3547 6 -3548 3547 -1 -3567 3547 -1 -3947 3547 -1 -3548 3548 6 -3549 3548 -1 -3568 3548 -1 -3948 3548 -1 -3549 3549 6 -3550 3549 -1 -3569 3549 -1 -3949 3549 -1 -3550 3550 6 -3551 3550 -1 -3570 3550 -1 -3950 3550 -1 -3551 3551 6 -3552 3551 -1 -3571 3551 -1 -3951 3551 -1 -3552 3552 6 -3553 3552 -1 -3572 3552 -1 -3952 3552 -1 -3553 3553 6 -3554 3553 -1 -3573 3553 -1 -3953 3553 -1 -3554 3554 6 -3555 3554 -1 -3574 3554 -1 -3954 3554 -1 -3555 3555 6 -3556 3555 -1 -3575 3555 -1 -3955 3555 -1 -3556 3556 6 -3557 3556 -1 -3576 3556 -1 -3956 3556 -1 -3557 3557 6 -3558 3557 -1 -3577 3557 -1 -3957 3557 -1 -3558 3558 6 -3559 3558 -1 -3578 3558 -1 -3958 3558 -1 -3559 3559 6 -3560 3559 -1 -3579 3559 -1 -3959 3559 -1 -3560 3560 6 -3580 3560 -1 -3960 3560 -1 -3561 3561 6 -3562 3561 -1 -3581 3561 -1 -3961 3561 -1 -3562 3562 6 -3563 3562 -1 -3582 3562 -1 -3962 3562 -1 -3563 3563 6 -3564 3563 -1 -3583 3563 -1 -3963 3563 -1 -3564 3564 6 -3565 3564 -1 -3584 3564 -1 -3964 3564 -1 -3565 3565 6 -3566 3565 -1 -3585 3565 -1 -3965 3565 -1 -3566 3566 6 -3567 3566 -1 -3586 3566 -1 -3966 3566 -1 -3567 3567 6 -3568 3567 -1 -3587 3567 -1 -3967 3567 -1 -3568 3568 6 -3569 3568 -1 -3588 3568 -1 -3968 3568 -1 -3569 3569 6 -3570 3569 -1 -3589 3569 -1 -3969 3569 -1 -3570 3570 6 -3571 3570 -1 -3590 3570 -1 -3970 3570 -1 -3571 3571 6 -3572 3571 -1 -3591 3571 -1 -3971 3571 -1 -3572 3572 6 -3573 3572 -1 -3592 3572 -1 -3972 3572 -1 -3573 3573 6 -3574 3573 -1 -3593 3573 -1 -3973 3573 -1 -3574 3574 6 -3575 3574 -1 -3594 3574 -1 -3974 3574 -1 -3575 3575 6 -3576 3575 -1 -3595 3575 -1 -3975 3575 -1 -3576 3576 6 -3577 3576 -1 -3596 3576 -1 -3976 3576 -1 -3577 3577 6 -3578 3577 -1 -3597 3577 -1 -3977 3577 -1 -3578 3578 6 -3579 3578 -1 -3598 3578 -1 -3978 3578 -1 -3579 3579 6 -3580 3579 -1 -3599 3579 -1 -3979 3579 -1 -3580 3580 6 -3600 3580 -1 -3980 3580 -1 -3581 3581 6 -3582 3581 -1 -3981 3581 -1 -3582 3582 6 -3583 3582 -1 -3982 3582 -1 -3583 3583 6 -3584 3583 -1 -3983 3583 -1 -3584 3584 6 -3585 3584 -1 -3984 3584 -1 -3585 3585 6 -3586 3585 -1 -3985 3585 -1 -3586 3586 6 -3587 3586 -1 -3986 3586 -1 -3587 3587 6 -3588 3587 -1 -3987 3587 -1 -3588 3588 6 -3589 3588 -1 -3988 3588 -1 -3589 3589 6 -3590 3589 -1 -3989 3589 -1 -3590 3590 6 -3591 3590 -1 -3990 3590 -1 -3591 3591 6 -3592 3591 -1 -3991 3591 -1 -3592 3592 6 -3593 3592 -1 -3992 3592 -1 -3593 3593 6 -3594 3593 -1 -3993 3593 -1 -3594 3594 6 -3595 3594 -1 -3994 3594 -1 -3595 3595 6 -3596 3595 -1 -3995 3595 -1 -3596 3596 6 -3597 3596 -1 -3996 3596 -1 -3597 3597 6 -3598 3597 -1 -3997 3597 -1 -3598 3598 6 -3599 3598 -1 -3998 3598 -1 -3599 3599 6 -3600 3599 -1 -3999 3599 -1 -3600 3600 6 -4000 3600 -1 -3601 3601 6 -3602 3601 -1 -3621 3601 -1 -4001 3601 -1 -3602 3602 6 -3603 3602 -1 -3622 3602 -1 -4002 3602 -1 -3603 3603 6 -3604 3603 -1 -3623 3603 -1 -4003 3603 -1 -3604 3604 6 -3605 3604 -1 -3624 3604 -1 -4004 3604 -1 -3605 3605 6 -3606 3605 -1 -3625 3605 -1 -4005 3605 -1 -3606 3606 6 -3607 3606 -1 -3626 3606 -1 -4006 3606 -1 -3607 3607 6 -3608 3607 -1 -3627 3607 -1 -4007 3607 -1 -3608 3608 6 -3609 3608 -1 -3628 3608 -1 -4008 3608 -1 -3609 3609 6 -3610 3609 -1 -3629 3609 -1 -4009 3609 -1 -3610 3610 6 -3611 3610 -1 -3630 3610 -1 -4010 3610 -1 -3611 3611 6 -3612 3611 -1 -3631 3611 -1 -4011 3611 -1 -3612 3612 6 -3613 3612 -1 -3632 3612 -1 -4012 3612 -1 -3613 3613 6 -3614 3613 -1 -3633 3613 -1 -4013 3613 -1 -3614 3614 6 -3615 3614 -1 -3634 3614 -1 -4014 3614 -1 -3615 3615 6 -3616 3615 -1 -3635 3615 -1 -4015 3615 -1 -3616 3616 6 -3617 3616 -1 -3636 3616 -1 -4016 3616 -1 -3617 3617 6 -3618 3617 -1 -3637 3617 -1 -4017 3617 -1 -3618 3618 6 -3619 3618 -1 -3638 3618 -1 -4018 3618 -1 -3619 3619 6 -3620 3619 -1 -3639 3619 -1 -4019 3619 -1 -3620 3620 6 -3640 3620 -1 -4020 3620 -1 -3621 3621 6 -3622 3621 -1 -3641 3621 -1 -4021 3621 -1 -3622 3622 6 -3623 3622 -1 -3642 3622 -1 -4022 3622 -1 -3623 3623 6 -3624 3623 -1 -3643 3623 -1 -4023 3623 -1 -3624 3624 6 -3625 3624 -1 -3644 3624 -1 -4024 3624 -1 -3625 3625 6 -3626 3625 -1 -3645 3625 -1 -4025 3625 -1 -3626 3626 6 -3627 3626 -1 -3646 3626 -1 -4026 3626 -1 -3627 3627 6 -3628 3627 -1 -3647 3627 -1 -4027 3627 -1 -3628 3628 6 -3629 3628 -1 -3648 3628 -1 -4028 3628 -1 -3629 3629 6 -3630 3629 -1 -3649 3629 -1 -4029 3629 -1 -3630 3630 6 -3631 3630 -1 -3650 3630 -1 -4030 3630 -1 -3631 3631 6 -3632 3631 -1 -3651 3631 -1 -4031 3631 -1 -3632 3632 6 -3633 3632 -1 -3652 3632 -1 -4032 3632 -1 -3633 3633 6 -3634 3633 -1 -3653 3633 -1 -4033 3633 -1 -3634 3634 6 -3635 3634 -1 -3654 3634 -1 -4034 3634 -1 -3635 3635 6 -3636 3635 -1 -3655 3635 -1 -4035 3635 -1 -3636 3636 6 -3637 3636 -1 -3656 3636 -1 -4036 3636 -1 -3637 3637 6 -3638 3637 -1 -3657 3637 -1 -4037 3637 -1 -3638 3638 6 -3639 3638 -1 -3658 3638 -1 -4038 3638 -1 -3639 3639 6 -3640 3639 -1 -3659 3639 -1 -4039 3639 -1 -3640 3640 6 -3660 3640 -1 -4040 3640 -1 -3641 3641 6 -3642 3641 -1 -3661 3641 -1 -4041 3641 -1 -3642 3642 6 -3643 3642 -1 -3662 3642 -1 -4042 3642 -1 -3643 3643 6 -3644 3643 -1 -3663 3643 -1 -4043 3643 -1 -3644 3644 6 -3645 3644 -1 -3664 3644 -1 -4044 3644 -1 -3645 3645 6 -3646 3645 -1 -3665 3645 -1 -4045 3645 -1 -3646 3646 6 -3647 3646 -1 -3666 3646 -1 -4046 3646 -1 -3647 3647 6 -3648 3647 -1 -3667 3647 -1 -4047 3647 -1 -3648 3648 6 -3649 3648 -1 -3668 3648 -1 -4048 3648 -1 -3649 3649 6 -3650 3649 -1 -3669 3649 -1 -4049 3649 -1 -3650 3650 6 -3651 3650 -1 -3670 3650 -1 -4050 3650 -1 -3651 3651 6 -3652 3651 -1 -3671 3651 -1 -4051 3651 -1 -3652 3652 6 -3653 3652 -1 -3672 3652 -1 -4052 3652 -1 -3653 3653 6 -3654 3653 -1 -3673 3653 -1 -4053 3653 -1 -3654 3654 6 -3655 3654 -1 -3674 3654 -1 -4054 3654 -1 -3655 3655 6 -3656 3655 -1 -3675 3655 -1 -4055 3655 -1 -3656 3656 6 -3657 3656 -1 -3676 3656 -1 -4056 3656 -1 -3657 3657 6 -3658 3657 -1 -3677 3657 -1 -4057 3657 -1 -3658 3658 6 -3659 3658 -1 -3678 3658 -1 -4058 3658 -1 -3659 3659 6 -3660 3659 -1 -3679 3659 -1 -4059 3659 -1 -3660 3660 6 -3680 3660 -1 -4060 3660 -1 -3661 3661 6 -3662 3661 -1 -3681 3661 -1 -4061 3661 -1 -3662 3662 6 -3663 3662 -1 -3682 3662 -1 -4062 3662 -1 -3663 3663 6 -3664 3663 -1 -3683 3663 -1 -4063 3663 -1 -3664 3664 6 -3665 3664 -1 -3684 3664 -1 -4064 3664 -1 -3665 3665 6 -3666 3665 -1 -3685 3665 -1 -4065 3665 -1 -3666 3666 6 -3667 3666 -1 -3686 3666 -1 -4066 3666 -1 -3667 3667 6 -3668 3667 -1 -3687 3667 -1 -4067 3667 -1 -3668 3668 6 -3669 3668 -1 -3688 3668 -1 -4068 3668 -1 -3669 3669 6 -3670 3669 -1 -3689 3669 -1 -4069 3669 -1 -3670 3670 6 -3671 3670 -1 -3690 3670 -1 -4070 3670 -1 -3671 3671 6 -3672 3671 -1 -3691 3671 -1 -4071 3671 -1 -3672 3672 6 -3673 3672 -1 -3692 3672 -1 -4072 3672 -1 -3673 3673 6 -3674 3673 -1 -3693 3673 -1 -4073 3673 -1 -3674 3674 6 -3675 3674 -1 -3694 3674 -1 -4074 3674 -1 -3675 3675 6 -3676 3675 -1 -3695 3675 -1 -4075 3675 -1 -3676 3676 6 -3677 3676 -1 -3696 3676 -1 -4076 3676 -1 -3677 3677 6 -3678 3677 -1 -3697 3677 -1 -4077 3677 -1 -3678 3678 6 -3679 3678 -1 -3698 3678 -1 -4078 3678 -1 -3679 3679 6 -3680 3679 -1 -3699 3679 -1 -4079 3679 -1 -3680 3680 6 -3700 3680 -1 -4080 3680 -1 -3681 3681 6 -3682 3681 -1 -3701 3681 -1 -4081 3681 -1 -3682 3682 6 -3683 3682 -1 -3702 3682 -1 -4082 3682 -1 -3683 3683 6 -3684 3683 -1 -3703 3683 -1 -4083 3683 -1 -3684 3684 6 -3685 3684 -1 -3704 3684 -1 -4084 3684 -1 -3685 3685 6 -3686 3685 -1 -3705 3685 -1 -4085 3685 -1 -3686 3686 6 -3687 3686 -1 -3706 3686 -1 -4086 3686 -1 -3687 3687 6 -3688 3687 -1 -3707 3687 -1 -4087 3687 -1 -3688 3688 6 -3689 3688 -1 -3708 3688 -1 -4088 3688 -1 -3689 3689 6 -3690 3689 -1 -3709 3689 -1 -4089 3689 -1 -3690 3690 6 -3691 3690 -1 -3710 3690 -1 -4090 3690 -1 -3691 3691 6 -3692 3691 -1 -3711 3691 -1 -4091 3691 -1 -3692 3692 6 -3693 3692 -1 -3712 3692 -1 -4092 3692 -1 -3693 3693 6 -3694 3693 -1 -3713 3693 -1 -4093 3693 -1 -3694 3694 6 -3695 3694 -1 -3714 3694 -1 -4094 3694 -1 -3695 3695 6 -3696 3695 -1 -3715 3695 -1 -4095 3695 -1 -3696 3696 6 -3697 3696 -1 -3716 3696 -1 -4096 3696 -1 -3697 3697 6 -3698 3697 -1 -3717 3697 -1 -4097 3697 -1 -3698 3698 6 -3699 3698 -1 -3718 3698 -1 -4098 3698 -1 -3699 3699 6 -3700 3699 -1 -3719 3699 -1 -4099 3699 -1 -3700 3700 6 -3720 3700 -1 -4100 3700 -1 -3701 3701 6 -3702 3701 -1 -3721 3701 -1 -4101 3701 -1 -3702 3702 6 -3703 3702 -1 -3722 3702 -1 -4102 3702 -1 -3703 3703 6 -3704 3703 -1 -3723 3703 -1 -4103 3703 -1 -3704 3704 6 -3705 3704 -1 -3724 3704 -1 -4104 3704 -1 -3705 3705 6 -3706 3705 -1 -3725 3705 -1 -4105 3705 -1 -3706 3706 6 -3707 3706 -1 -3726 3706 -1 -4106 3706 -1 -3707 3707 6 -3708 3707 -1 -3727 3707 -1 -4107 3707 -1 -3708 3708 6 -3709 3708 -1 -3728 3708 -1 -4108 3708 -1 -3709 3709 6 -3710 3709 -1 -3729 3709 -1 -4109 3709 -1 -3710 3710 6 -3711 3710 -1 -3730 3710 -1 -4110 3710 -1 -3711 3711 6 -3712 3711 -1 -3731 3711 -1 -4111 3711 -1 -3712 3712 6 -3713 3712 -1 -3732 3712 -1 -4112 3712 -1 -3713 3713 6 -3714 3713 -1 -3733 3713 -1 -4113 3713 -1 -3714 3714 6 -3715 3714 -1 -3734 3714 -1 -4114 3714 -1 -3715 3715 6 -3716 3715 -1 -3735 3715 -1 -4115 3715 -1 -3716 3716 6 -3717 3716 -1 -3736 3716 -1 -4116 3716 -1 -3717 3717 6 -3718 3717 -1 -3737 3717 -1 -4117 3717 -1 -3718 3718 6 -3719 3718 -1 -3738 3718 -1 -4118 3718 -1 -3719 3719 6 -3720 3719 -1 -3739 3719 -1 -4119 3719 -1 -3720 3720 6 -3740 3720 -1 -4120 3720 -1 -3721 3721 6 -3722 3721 -1 -3741 3721 -1 -4121 3721 -1 -3722 3722 6 -3723 3722 -1 -3742 3722 -1 -4122 3722 -1 -3723 3723 6 -3724 3723 -1 -3743 3723 -1 -4123 3723 -1 -3724 3724 6 -3725 3724 -1 -3744 3724 -1 -4124 3724 -1 -3725 3725 6 -3726 3725 -1 -3745 3725 -1 -4125 3725 -1 -3726 3726 6 -3727 3726 -1 -3746 3726 -1 -4126 3726 -1 -3727 3727 6 -3728 3727 -1 -3747 3727 -1 -4127 3727 -1 -3728 3728 6 -3729 3728 -1 -3748 3728 -1 -4128 3728 -1 -3729 3729 6 -3730 3729 -1 -3749 3729 -1 -4129 3729 -1 -3730 3730 6 -3731 3730 -1 -3750 3730 -1 -4130 3730 -1 -3731 3731 6 -3732 3731 -1 -3751 3731 -1 -4131 3731 -1 -3732 3732 6 -3733 3732 -1 -3752 3732 -1 -4132 3732 -1 -3733 3733 6 -3734 3733 -1 -3753 3733 -1 -4133 3733 -1 -3734 3734 6 -3735 3734 -1 -3754 3734 -1 -4134 3734 -1 -3735 3735 6 -3736 3735 -1 -3755 3735 -1 -4135 3735 -1 -3736 3736 6 -3737 3736 -1 -3756 3736 -1 -4136 3736 -1 -3737 3737 6 -3738 3737 -1 -3757 3737 -1 -4137 3737 -1 -3738 3738 6 -3739 3738 -1 -3758 3738 -1 -4138 3738 -1 -3739 3739 6 -3740 3739 -1 -3759 3739 -1 -4139 3739 -1 -3740 3740 6 -3760 3740 -1 -4140 3740 -1 -3741 3741 6 -3742 3741 -1 -3761 3741 -1 -4141 3741 -1 -3742 3742 6 -3743 3742 -1 -3762 3742 -1 -4142 3742 -1 -3743 3743 6 -3744 3743 -1 -3763 3743 -1 -4143 3743 -1 -3744 3744 6 -3745 3744 -1 -3764 3744 -1 -4144 3744 -1 -3745 3745 6 -3746 3745 -1 -3765 3745 -1 -4145 3745 -1 -3746 3746 6 -3747 3746 -1 -3766 3746 -1 -4146 3746 -1 -3747 3747 6 -3748 3747 -1 -3767 3747 -1 -4147 3747 -1 -3748 3748 6 -3749 3748 -1 -3768 3748 -1 -4148 3748 -1 -3749 3749 6 -3750 3749 -1 -3769 3749 -1 -4149 3749 -1 -3750 3750 6 -3751 3750 -1 -3770 3750 -1 -4150 3750 -1 -3751 3751 6 -3752 3751 -1 -3771 3751 -1 -4151 3751 -1 -3752 3752 6 -3753 3752 -1 -3772 3752 -1 -4152 3752 -1 -3753 3753 6 -3754 3753 -1 -3773 3753 -1 -4153 3753 -1 -3754 3754 6 -3755 3754 -1 -3774 3754 -1 -4154 3754 -1 -3755 3755 6 -3756 3755 -1 -3775 3755 -1 -4155 3755 -1 -3756 3756 6 -3757 3756 -1 -3776 3756 -1 -4156 3756 -1 -3757 3757 6 -3758 3757 -1 -3777 3757 -1 -4157 3757 -1 -3758 3758 6 -3759 3758 -1 -3778 3758 -1 -4158 3758 -1 -3759 3759 6 -3760 3759 -1 -3779 3759 -1 -4159 3759 -1 -3760 3760 6 -3780 3760 -1 -4160 3760 -1 -3761 3761 6 -3762 3761 -1 -3781 3761 -1 -4161 3761 -1 -3762 3762 6 -3763 3762 -1 -3782 3762 -1 -4162 3762 -1 -3763 3763 6 -3764 3763 -1 -3783 3763 -1 -4163 3763 -1 -3764 3764 6 -3765 3764 -1 -3784 3764 -1 -4164 3764 -1 -3765 3765 6 -3766 3765 -1 -3785 3765 -1 -4165 3765 -1 -3766 3766 6 -3767 3766 -1 -3786 3766 -1 -4166 3766 -1 -3767 3767 6 -3768 3767 -1 -3787 3767 -1 -4167 3767 -1 -3768 3768 6 -3769 3768 -1 -3788 3768 -1 -4168 3768 -1 -3769 3769 6 -3770 3769 -1 -3789 3769 -1 -4169 3769 -1 -3770 3770 6 -3771 3770 -1 -3790 3770 -1 -4170 3770 -1 -3771 3771 6 -3772 3771 -1 -3791 3771 -1 -4171 3771 -1 -3772 3772 6 -3773 3772 -1 -3792 3772 -1 -4172 3772 -1 -3773 3773 6 -3774 3773 -1 -3793 3773 -1 -4173 3773 -1 -3774 3774 6 -3775 3774 -1 -3794 3774 -1 -4174 3774 -1 -3775 3775 6 -3776 3775 -1 -3795 3775 -1 -4175 3775 -1 -3776 3776 6 -3777 3776 -1 -3796 3776 -1 -4176 3776 -1 -3777 3777 6 -3778 3777 -1 -3797 3777 -1 -4177 3777 -1 -3778 3778 6 -3779 3778 -1 -3798 3778 -1 -4178 3778 -1 -3779 3779 6 -3780 3779 -1 -3799 3779 -1 -4179 3779 -1 -3780 3780 6 -3800 3780 -1 -4180 3780 -1 -3781 3781 6 -3782 3781 -1 -3801 3781 -1 -4181 3781 -1 -3782 3782 6 -3783 3782 -1 -3802 3782 -1 -4182 3782 -1 -3783 3783 6 -3784 3783 -1 -3803 3783 -1 -4183 3783 -1 -3784 3784 6 -3785 3784 -1 -3804 3784 -1 -4184 3784 -1 -3785 3785 6 -3786 3785 -1 -3805 3785 -1 -4185 3785 -1 -3786 3786 6 -3787 3786 -1 -3806 3786 -1 -4186 3786 -1 -3787 3787 6 -3788 3787 -1 -3807 3787 -1 -4187 3787 -1 -3788 3788 6 -3789 3788 -1 -3808 3788 -1 -4188 3788 -1 -3789 3789 6 -3790 3789 -1 -3809 3789 -1 -4189 3789 -1 -3790 3790 6 -3791 3790 -1 -3810 3790 -1 -4190 3790 -1 -3791 3791 6 -3792 3791 -1 -3811 3791 -1 -4191 3791 -1 -3792 3792 6 -3793 3792 -1 -3812 3792 -1 -4192 3792 -1 -3793 3793 6 -3794 3793 -1 -3813 3793 -1 -4193 3793 -1 -3794 3794 6 -3795 3794 -1 -3814 3794 -1 -4194 3794 -1 -3795 3795 6 -3796 3795 -1 -3815 3795 -1 -4195 3795 -1 -3796 3796 6 -3797 3796 -1 -3816 3796 -1 -4196 3796 -1 -3797 3797 6 -3798 3797 -1 -3817 3797 -1 -4197 3797 -1 -3798 3798 6 -3799 3798 -1 -3818 3798 -1 -4198 3798 -1 -3799 3799 6 -3800 3799 -1 -3819 3799 -1 -4199 3799 -1 -3800 3800 6 -3820 3800 -1 -4200 3800 -1 -3801 3801 6 -3802 3801 -1 -3821 3801 -1 -4201 3801 -1 -3802 3802 6 -3803 3802 -1 -3822 3802 -1 -4202 3802 -1 -3803 3803 6 -3804 3803 -1 -3823 3803 -1 -4203 3803 -1 -3804 3804 6 -3805 3804 -1 -3824 3804 -1 -4204 3804 -1 -3805 3805 6 -3806 3805 -1 -3825 3805 -1 -4205 3805 -1 -3806 3806 6 -3807 3806 -1 -3826 3806 -1 -4206 3806 -1 -3807 3807 6 -3808 3807 -1 -3827 3807 -1 -4207 3807 -1 -3808 3808 6 -3809 3808 -1 -3828 3808 -1 -4208 3808 -1 -3809 3809 6 -3810 3809 -1 -3829 3809 -1 -4209 3809 -1 -3810 3810 6 -3811 3810 -1 -3830 3810 -1 -4210 3810 -1 -3811 3811 6 -3812 3811 -1 -3831 3811 -1 -4211 3811 -1 -3812 3812 6 -3813 3812 -1 -3832 3812 -1 -4212 3812 -1 -3813 3813 6 -3814 3813 -1 -3833 3813 -1 -4213 3813 -1 -3814 3814 6 -3815 3814 -1 -3834 3814 -1 -4214 3814 -1 -3815 3815 6 -3816 3815 -1 -3835 3815 -1 -4215 3815 -1 -3816 3816 6 -3817 3816 -1 -3836 3816 -1 -4216 3816 -1 -3817 3817 6 -3818 3817 -1 -3837 3817 -1 -4217 3817 -1 -3818 3818 6 -3819 3818 -1 -3838 3818 -1 -4218 3818 -1 -3819 3819 6 -3820 3819 -1 -3839 3819 -1 -4219 3819 -1 -3820 3820 6 -3840 3820 -1 -4220 3820 -1 -3821 3821 6 -3822 3821 -1 -3841 3821 -1 -4221 3821 -1 -3822 3822 6 -3823 3822 -1 -3842 3822 -1 -4222 3822 -1 -3823 3823 6 -3824 3823 -1 -3843 3823 -1 -4223 3823 -1 -3824 3824 6 -3825 3824 -1 -3844 3824 -1 -4224 3824 -1 -3825 3825 6 -3826 3825 -1 -3845 3825 -1 -4225 3825 -1 -3826 3826 6 -3827 3826 -1 -3846 3826 -1 -4226 3826 -1 -3827 3827 6 -3828 3827 -1 -3847 3827 -1 -4227 3827 -1 -3828 3828 6 -3829 3828 -1 -3848 3828 -1 -4228 3828 -1 -3829 3829 6 -3830 3829 -1 -3849 3829 -1 -4229 3829 -1 -3830 3830 6 -3831 3830 -1 -3850 3830 -1 -4230 3830 -1 -3831 3831 6 -3832 3831 -1 -3851 3831 -1 -4231 3831 -1 -3832 3832 6 -3833 3832 -1 -3852 3832 -1 -4232 3832 -1 -3833 3833 6 -3834 3833 -1 -3853 3833 -1 -4233 3833 -1 -3834 3834 6 -3835 3834 -1 -3854 3834 -1 -4234 3834 -1 -3835 3835 6 -3836 3835 -1 -3855 3835 -1 -4235 3835 -1 -3836 3836 6 -3837 3836 -1 -3856 3836 -1 -4236 3836 -1 -3837 3837 6 -3838 3837 -1 -3857 3837 -1 -4237 3837 -1 -3838 3838 6 -3839 3838 -1 -3858 3838 -1 -4238 3838 -1 -3839 3839 6 -3840 3839 -1 -3859 3839 -1 -4239 3839 -1 -3840 3840 6 -3860 3840 -1 -4240 3840 -1 -3841 3841 6 -3842 3841 -1 -3861 3841 -1 -4241 3841 -1 -3842 3842 6 -3843 3842 -1 -3862 3842 -1 -4242 3842 -1 -3843 3843 6 -3844 3843 -1 -3863 3843 -1 -4243 3843 -1 -3844 3844 6 -3845 3844 -1 -3864 3844 -1 -4244 3844 -1 -3845 3845 6 -3846 3845 -1 -3865 3845 -1 -4245 3845 -1 -3846 3846 6 -3847 3846 -1 -3866 3846 -1 -4246 3846 -1 -3847 3847 6 -3848 3847 -1 -3867 3847 -1 -4247 3847 -1 -3848 3848 6 -3849 3848 -1 -3868 3848 -1 -4248 3848 -1 -3849 3849 6 -3850 3849 -1 -3869 3849 -1 -4249 3849 -1 -3850 3850 6 -3851 3850 -1 -3870 3850 -1 -4250 3850 -1 -3851 3851 6 -3852 3851 -1 -3871 3851 -1 -4251 3851 -1 -3852 3852 6 -3853 3852 -1 -3872 3852 -1 -4252 3852 -1 -3853 3853 6 -3854 3853 -1 -3873 3853 -1 -4253 3853 -1 -3854 3854 6 -3855 3854 -1 -3874 3854 -1 -4254 3854 -1 -3855 3855 6 -3856 3855 -1 -3875 3855 -1 -4255 3855 -1 -3856 3856 6 -3857 3856 -1 -3876 3856 -1 -4256 3856 -1 -3857 3857 6 -3858 3857 -1 -3877 3857 -1 -4257 3857 -1 -3858 3858 6 -3859 3858 -1 -3878 3858 -1 -4258 3858 -1 -3859 3859 6 -3860 3859 -1 -3879 3859 -1 -4259 3859 -1 -3860 3860 6 -3880 3860 -1 -4260 3860 -1 -3861 3861 6 -3862 3861 -1 -3881 3861 -1 -4261 3861 -1 -3862 3862 6 -3863 3862 -1 -3882 3862 -1 -4262 3862 -1 -3863 3863 6 -3864 3863 -1 -3883 3863 -1 -4263 3863 -1 -3864 3864 6 -3865 3864 -1 -3884 3864 -1 -4264 3864 -1 -3865 3865 6 -3866 3865 -1 -3885 3865 -1 -4265 3865 -1 -3866 3866 6 -3867 3866 -1 -3886 3866 -1 -4266 3866 -1 -3867 3867 6 -3868 3867 -1 -3887 3867 -1 -4267 3867 -1 -3868 3868 6 -3869 3868 -1 -3888 3868 -1 -4268 3868 -1 -3869 3869 6 -3870 3869 -1 -3889 3869 -1 -4269 3869 -1 -3870 3870 6 -3871 3870 -1 -3890 3870 -1 -4270 3870 -1 -3871 3871 6 -3872 3871 -1 -3891 3871 -1 -4271 3871 -1 -3872 3872 6 -3873 3872 -1 -3892 3872 -1 -4272 3872 -1 -3873 3873 6 -3874 3873 -1 -3893 3873 -1 -4273 3873 -1 -3874 3874 6 -3875 3874 -1 -3894 3874 -1 -4274 3874 -1 -3875 3875 6 -3876 3875 -1 -3895 3875 -1 -4275 3875 -1 -3876 3876 6 -3877 3876 -1 -3896 3876 -1 -4276 3876 -1 -3877 3877 6 -3878 3877 -1 -3897 3877 -1 -4277 3877 -1 -3878 3878 6 -3879 3878 -1 -3898 3878 -1 -4278 3878 -1 -3879 3879 6 -3880 3879 -1 -3899 3879 -1 -4279 3879 -1 -3880 3880 6 -3900 3880 -1 -4280 3880 -1 -3881 3881 6 -3882 3881 -1 -3901 3881 -1 -4281 3881 -1 -3882 3882 6 -3883 3882 -1 -3902 3882 -1 -4282 3882 -1 -3883 3883 6 -3884 3883 -1 -3903 3883 -1 -4283 3883 -1 -3884 3884 6 -3885 3884 -1 -3904 3884 -1 -4284 3884 -1 -3885 3885 6 -3886 3885 -1 -3905 3885 -1 -4285 3885 -1 -3886 3886 6 -3887 3886 -1 -3906 3886 -1 -4286 3886 -1 -3887 3887 6 -3888 3887 -1 -3907 3887 -1 -4287 3887 -1 -3888 3888 6 -3889 3888 -1 -3908 3888 -1 -4288 3888 -1 -3889 3889 6 -3890 3889 -1 -3909 3889 -1 -4289 3889 -1 -3890 3890 6 -3891 3890 -1 -3910 3890 -1 -4290 3890 -1 -3891 3891 6 -3892 3891 -1 -3911 3891 -1 -4291 3891 -1 -3892 3892 6 -3893 3892 -1 -3912 3892 -1 -4292 3892 -1 -3893 3893 6 -3894 3893 -1 -3913 3893 -1 -4293 3893 -1 -3894 3894 6 -3895 3894 -1 -3914 3894 -1 -4294 3894 -1 -3895 3895 6 -3896 3895 -1 -3915 3895 -1 -4295 3895 -1 -3896 3896 6 -3897 3896 -1 -3916 3896 -1 -4296 3896 -1 -3897 3897 6 -3898 3897 -1 -3917 3897 -1 -4297 3897 -1 -3898 3898 6 -3899 3898 -1 -3918 3898 -1 -4298 3898 -1 -3899 3899 6 -3900 3899 -1 -3919 3899 -1 -4299 3899 -1 -3900 3900 6 -3920 3900 -1 -4300 3900 -1 -3901 3901 6 -3902 3901 -1 -3921 3901 -1 -4301 3901 -1 -3902 3902 6 -3903 3902 -1 -3922 3902 -1 -4302 3902 -1 -3903 3903 6 -3904 3903 -1 -3923 3903 -1 -4303 3903 -1 -3904 3904 6 -3905 3904 -1 -3924 3904 -1 -4304 3904 -1 -3905 3905 6 -3906 3905 -1 -3925 3905 -1 -4305 3905 -1 -3906 3906 6 -3907 3906 -1 -3926 3906 -1 -4306 3906 -1 -3907 3907 6 -3908 3907 -1 -3927 3907 -1 -4307 3907 -1 -3908 3908 6 -3909 3908 -1 -3928 3908 -1 -4308 3908 -1 -3909 3909 6 -3910 3909 -1 -3929 3909 -1 -4309 3909 -1 -3910 3910 6 -3911 3910 -1 -3930 3910 -1 -4310 3910 -1 -3911 3911 6 -3912 3911 -1 -3931 3911 -1 -4311 3911 -1 -3912 3912 6 -3913 3912 -1 -3932 3912 -1 -4312 3912 -1 -3913 3913 6 -3914 3913 -1 -3933 3913 -1 -4313 3913 -1 -3914 3914 6 -3915 3914 -1 -3934 3914 -1 -4314 3914 -1 -3915 3915 6 -3916 3915 -1 -3935 3915 -1 -4315 3915 -1 -3916 3916 6 -3917 3916 -1 -3936 3916 -1 -4316 3916 -1 -3917 3917 6 -3918 3917 -1 -3937 3917 -1 -4317 3917 -1 -3918 3918 6 -3919 3918 -1 -3938 3918 -1 -4318 3918 -1 -3919 3919 6 -3920 3919 -1 -3939 3919 -1 -4319 3919 -1 -3920 3920 6 -3940 3920 -1 -4320 3920 -1 -3921 3921 6 -3922 3921 -1 -3941 3921 -1 -4321 3921 -1 -3922 3922 6 -3923 3922 -1 -3942 3922 -1 -4322 3922 -1 -3923 3923 6 -3924 3923 -1 -3943 3923 -1 -4323 3923 -1 -3924 3924 6 -3925 3924 -1 -3944 3924 -1 -4324 3924 -1 -3925 3925 6 -3926 3925 -1 -3945 3925 -1 -4325 3925 -1 -3926 3926 6 -3927 3926 -1 -3946 3926 -1 -4326 3926 -1 -3927 3927 6 -3928 3927 -1 -3947 3927 -1 -4327 3927 -1 -3928 3928 6 -3929 3928 -1 -3948 3928 -1 -4328 3928 -1 -3929 3929 6 -3930 3929 -1 -3949 3929 -1 -4329 3929 -1 -3930 3930 6 -3931 3930 -1 -3950 3930 -1 -4330 3930 -1 -3931 3931 6 -3932 3931 -1 -3951 3931 -1 -4331 3931 -1 -3932 3932 6 -3933 3932 -1 -3952 3932 -1 -4332 3932 -1 -3933 3933 6 -3934 3933 -1 -3953 3933 -1 -4333 3933 -1 -3934 3934 6 -3935 3934 -1 -3954 3934 -1 -4334 3934 -1 -3935 3935 6 -3936 3935 -1 -3955 3935 -1 -4335 3935 -1 -3936 3936 6 -3937 3936 -1 -3956 3936 -1 -4336 3936 -1 -3937 3937 6 -3938 3937 -1 -3957 3937 -1 -4337 3937 -1 -3938 3938 6 -3939 3938 -1 -3958 3938 -1 -4338 3938 -1 -3939 3939 6 -3940 3939 -1 -3959 3939 -1 -4339 3939 -1 -3940 3940 6 -3960 3940 -1 -4340 3940 -1 -3941 3941 6 -3942 3941 -1 -3961 3941 -1 -4341 3941 -1 -3942 3942 6 -3943 3942 -1 -3962 3942 -1 -4342 3942 -1 -3943 3943 6 -3944 3943 -1 -3963 3943 -1 -4343 3943 -1 -3944 3944 6 -3945 3944 -1 -3964 3944 -1 -4344 3944 -1 -3945 3945 6 -3946 3945 -1 -3965 3945 -1 -4345 3945 -1 -3946 3946 6 -3947 3946 -1 -3966 3946 -1 -4346 3946 -1 -3947 3947 6 -3948 3947 -1 -3967 3947 -1 -4347 3947 -1 -3948 3948 6 -3949 3948 -1 -3968 3948 -1 -4348 3948 -1 -3949 3949 6 -3950 3949 -1 -3969 3949 -1 -4349 3949 -1 -3950 3950 6 -3951 3950 -1 -3970 3950 -1 -4350 3950 -1 -3951 3951 6 -3952 3951 -1 -3971 3951 -1 -4351 3951 -1 -3952 3952 6 -3953 3952 -1 -3972 3952 -1 -4352 3952 -1 -3953 3953 6 -3954 3953 -1 -3973 3953 -1 -4353 3953 -1 -3954 3954 6 -3955 3954 -1 -3974 3954 -1 -4354 3954 -1 -3955 3955 6 -3956 3955 -1 -3975 3955 -1 -4355 3955 -1 -3956 3956 6 -3957 3956 -1 -3976 3956 -1 -4356 3956 -1 -3957 3957 6 -3958 3957 -1 -3977 3957 -1 -4357 3957 -1 -3958 3958 6 -3959 3958 -1 -3978 3958 -1 -4358 3958 -1 -3959 3959 6 -3960 3959 -1 -3979 3959 -1 -4359 3959 -1 -3960 3960 6 -3980 3960 -1 -4360 3960 -1 -3961 3961 6 -3962 3961 -1 -3981 3961 -1 -4361 3961 -1 -3962 3962 6 -3963 3962 -1 -3982 3962 -1 -4362 3962 -1 -3963 3963 6 -3964 3963 -1 -3983 3963 -1 -4363 3963 -1 -3964 3964 6 -3965 3964 -1 -3984 3964 -1 -4364 3964 -1 -3965 3965 6 -3966 3965 -1 -3985 3965 -1 -4365 3965 -1 -3966 3966 6 -3967 3966 -1 -3986 3966 -1 -4366 3966 -1 -3967 3967 6 -3968 3967 -1 -3987 3967 -1 -4367 3967 -1 -3968 3968 6 -3969 3968 -1 -3988 3968 -1 -4368 3968 -1 -3969 3969 6 -3970 3969 -1 -3989 3969 -1 -4369 3969 -1 -3970 3970 6 -3971 3970 -1 -3990 3970 -1 -4370 3970 -1 -3971 3971 6 -3972 3971 -1 -3991 3971 -1 -4371 3971 -1 -3972 3972 6 -3973 3972 -1 -3992 3972 -1 -4372 3972 -1 -3973 3973 6 -3974 3973 -1 -3993 3973 -1 -4373 3973 -1 -3974 3974 6 -3975 3974 -1 -3994 3974 -1 -4374 3974 -1 -3975 3975 6 -3976 3975 -1 -3995 3975 -1 -4375 3975 -1 -3976 3976 6 -3977 3976 -1 -3996 3976 -1 -4376 3976 -1 -3977 3977 6 -3978 3977 -1 -3997 3977 -1 -4377 3977 -1 -3978 3978 6 -3979 3978 -1 -3998 3978 -1 -4378 3978 -1 -3979 3979 6 -3980 3979 -1 -3999 3979 -1 -4379 3979 -1 -3980 3980 6 -4000 3980 -1 -4380 3980 -1 -3981 3981 6 -3982 3981 -1 -4381 3981 -1 -3982 3982 6 -3983 3982 -1 -4382 3982 -1 -3983 3983 6 -3984 3983 -1 -4383 3983 -1 -3984 3984 6 -3985 3984 -1 -4384 3984 -1 -3985 3985 6 -3986 3985 -1 -4385 3985 -1 -3986 3986 6 -3987 3986 -1 -4386 3986 -1 -3987 3987 6 -3988 3987 -1 -4387 3987 -1 -3988 3988 6 -3989 3988 -1 -4388 3988 -1 -3989 3989 6 -3990 3989 -1 -4389 3989 -1 -3990 3990 6 -3991 3990 -1 -4390 3990 -1 -3991 3991 6 -3992 3991 -1 -4391 3991 -1 -3992 3992 6 -3993 3992 -1 -4392 3992 -1 -3993 3993 6 -3994 3993 -1 -4393 3993 -1 -3994 3994 6 -3995 3994 -1 -4394 3994 -1 -3995 3995 6 -3996 3995 -1 -4395 3995 -1 -3996 3996 6 -3997 3996 -1 -4396 3996 -1 -3997 3997 6 -3998 3997 -1 -4397 3997 -1 -3998 3998 6 -3999 3998 -1 -4398 3998 -1 -3999 3999 6 -4000 3999 -1 -4399 3999 -1 -4000 4000 6 -4400 4000 -1 -4001 4001 6 -4002 4001 -1 -4021 4001 -1 -4401 4001 -1 -4002 4002 6 -4003 4002 -1 -4022 4002 -1 -4402 4002 -1 -4003 4003 6 -4004 4003 -1 -4023 4003 -1 -4403 4003 -1 -4004 4004 6 -4005 4004 -1 -4024 4004 -1 -4404 4004 -1 -4005 4005 6 -4006 4005 -1 -4025 4005 -1 -4405 4005 -1 -4006 4006 6 -4007 4006 -1 -4026 4006 -1 -4406 4006 -1 -4007 4007 6 -4008 4007 -1 -4027 4007 -1 -4407 4007 -1 -4008 4008 6 -4009 4008 -1 -4028 4008 -1 -4408 4008 -1 -4009 4009 6 -4010 4009 -1 -4029 4009 -1 -4409 4009 -1 -4010 4010 6 -4011 4010 -1 -4030 4010 -1 -4410 4010 -1 -4011 4011 6 -4012 4011 -1 -4031 4011 -1 -4411 4011 -1 -4012 4012 6 -4013 4012 -1 -4032 4012 -1 -4412 4012 -1 -4013 4013 6 -4014 4013 -1 -4033 4013 -1 -4413 4013 -1 -4014 4014 6 -4015 4014 -1 -4034 4014 -1 -4414 4014 -1 -4015 4015 6 -4016 4015 -1 -4035 4015 -1 -4415 4015 -1 -4016 4016 6 -4017 4016 -1 -4036 4016 -1 -4416 4016 -1 -4017 4017 6 -4018 4017 -1 -4037 4017 -1 -4417 4017 -1 -4018 4018 6 -4019 4018 -1 -4038 4018 -1 -4418 4018 -1 -4019 4019 6 -4020 4019 -1 -4039 4019 -1 -4419 4019 -1 -4020 4020 6 -4040 4020 -1 -4420 4020 -1 -4021 4021 6 -4022 4021 -1 -4041 4021 -1 -4421 4021 -1 -4022 4022 6 -4023 4022 -1 -4042 4022 -1 -4422 4022 -1 -4023 4023 6 -4024 4023 -1 -4043 4023 -1 -4423 4023 -1 -4024 4024 6 -4025 4024 -1 -4044 4024 -1 -4424 4024 -1 -4025 4025 6 -4026 4025 -1 -4045 4025 -1 -4425 4025 -1 -4026 4026 6 -4027 4026 -1 -4046 4026 -1 -4426 4026 -1 -4027 4027 6 -4028 4027 -1 -4047 4027 -1 -4427 4027 -1 -4028 4028 6 -4029 4028 -1 -4048 4028 -1 -4428 4028 -1 -4029 4029 6 -4030 4029 -1 -4049 4029 -1 -4429 4029 -1 -4030 4030 6 -4031 4030 -1 -4050 4030 -1 -4430 4030 -1 -4031 4031 6 -4032 4031 -1 -4051 4031 -1 -4431 4031 -1 -4032 4032 6 -4033 4032 -1 -4052 4032 -1 -4432 4032 -1 -4033 4033 6 -4034 4033 -1 -4053 4033 -1 -4433 4033 -1 -4034 4034 6 -4035 4034 -1 -4054 4034 -1 -4434 4034 -1 -4035 4035 6 -4036 4035 -1 -4055 4035 -1 -4435 4035 -1 -4036 4036 6 -4037 4036 -1 -4056 4036 -1 -4436 4036 -1 -4037 4037 6 -4038 4037 -1 -4057 4037 -1 -4437 4037 -1 -4038 4038 6 -4039 4038 -1 -4058 4038 -1 -4438 4038 -1 -4039 4039 6 -4040 4039 -1 -4059 4039 -1 -4439 4039 -1 -4040 4040 6 -4060 4040 -1 -4440 4040 -1 -4041 4041 6 -4042 4041 -1 -4061 4041 -1 -4441 4041 -1 -4042 4042 6 -4043 4042 -1 -4062 4042 -1 -4442 4042 -1 -4043 4043 6 -4044 4043 -1 -4063 4043 -1 -4443 4043 -1 -4044 4044 6 -4045 4044 -1 -4064 4044 -1 -4444 4044 -1 -4045 4045 6 -4046 4045 -1 -4065 4045 -1 -4445 4045 -1 -4046 4046 6 -4047 4046 -1 -4066 4046 -1 -4446 4046 -1 -4047 4047 6 -4048 4047 -1 -4067 4047 -1 -4447 4047 -1 -4048 4048 6 -4049 4048 -1 -4068 4048 -1 -4448 4048 -1 -4049 4049 6 -4050 4049 -1 -4069 4049 -1 -4449 4049 -1 -4050 4050 6 -4051 4050 -1 -4070 4050 -1 -4450 4050 -1 -4051 4051 6 -4052 4051 -1 -4071 4051 -1 -4451 4051 -1 -4052 4052 6 -4053 4052 -1 -4072 4052 -1 -4452 4052 -1 -4053 4053 6 -4054 4053 -1 -4073 4053 -1 -4453 4053 -1 -4054 4054 6 -4055 4054 -1 -4074 4054 -1 -4454 4054 -1 -4055 4055 6 -4056 4055 -1 -4075 4055 -1 -4455 4055 -1 -4056 4056 6 -4057 4056 -1 -4076 4056 -1 -4456 4056 -1 -4057 4057 6 -4058 4057 -1 -4077 4057 -1 -4457 4057 -1 -4058 4058 6 -4059 4058 -1 -4078 4058 -1 -4458 4058 -1 -4059 4059 6 -4060 4059 -1 -4079 4059 -1 -4459 4059 -1 -4060 4060 6 -4080 4060 -1 -4460 4060 -1 -4061 4061 6 -4062 4061 -1 -4081 4061 -1 -4461 4061 -1 -4062 4062 6 -4063 4062 -1 -4082 4062 -1 -4462 4062 -1 -4063 4063 6 -4064 4063 -1 -4083 4063 -1 -4463 4063 -1 -4064 4064 6 -4065 4064 -1 -4084 4064 -1 -4464 4064 -1 -4065 4065 6 -4066 4065 -1 -4085 4065 -1 -4465 4065 -1 -4066 4066 6 -4067 4066 -1 -4086 4066 -1 -4466 4066 -1 -4067 4067 6 -4068 4067 -1 -4087 4067 -1 -4467 4067 -1 -4068 4068 6 -4069 4068 -1 -4088 4068 -1 -4468 4068 -1 -4069 4069 6 -4070 4069 -1 -4089 4069 -1 -4469 4069 -1 -4070 4070 6 -4071 4070 -1 -4090 4070 -1 -4470 4070 -1 -4071 4071 6 -4072 4071 -1 -4091 4071 -1 -4471 4071 -1 -4072 4072 6 -4073 4072 -1 -4092 4072 -1 -4472 4072 -1 -4073 4073 6 -4074 4073 -1 -4093 4073 -1 -4473 4073 -1 -4074 4074 6 -4075 4074 -1 -4094 4074 -1 -4474 4074 -1 -4075 4075 6 -4076 4075 -1 -4095 4075 -1 -4475 4075 -1 -4076 4076 6 -4077 4076 -1 -4096 4076 -1 -4476 4076 -1 -4077 4077 6 -4078 4077 -1 -4097 4077 -1 -4477 4077 -1 -4078 4078 6 -4079 4078 -1 -4098 4078 -1 -4478 4078 -1 -4079 4079 6 -4080 4079 -1 -4099 4079 -1 -4479 4079 -1 -4080 4080 6 -4100 4080 -1 -4480 4080 -1 -4081 4081 6 -4082 4081 -1 -4101 4081 -1 -4481 4081 -1 -4082 4082 6 -4083 4082 -1 -4102 4082 -1 -4482 4082 -1 -4083 4083 6 -4084 4083 -1 -4103 4083 -1 -4483 4083 -1 -4084 4084 6 -4085 4084 -1 -4104 4084 -1 -4484 4084 -1 -4085 4085 6 -4086 4085 -1 -4105 4085 -1 -4485 4085 -1 -4086 4086 6 -4087 4086 -1 -4106 4086 -1 -4486 4086 -1 -4087 4087 6 -4088 4087 -1 -4107 4087 -1 -4487 4087 -1 -4088 4088 6 -4089 4088 -1 -4108 4088 -1 -4488 4088 -1 -4089 4089 6 -4090 4089 -1 -4109 4089 -1 -4489 4089 -1 -4090 4090 6 -4091 4090 -1 -4110 4090 -1 -4490 4090 -1 -4091 4091 6 -4092 4091 -1 -4111 4091 -1 -4491 4091 -1 -4092 4092 6 -4093 4092 -1 -4112 4092 -1 -4492 4092 -1 -4093 4093 6 -4094 4093 -1 -4113 4093 -1 -4493 4093 -1 -4094 4094 6 -4095 4094 -1 -4114 4094 -1 -4494 4094 -1 -4095 4095 6 -4096 4095 -1 -4115 4095 -1 -4495 4095 -1 -4096 4096 6 -4097 4096 -1 -4116 4096 -1 -4496 4096 -1 -4097 4097 6 -4098 4097 -1 -4117 4097 -1 -4497 4097 -1 -4098 4098 6 -4099 4098 -1 -4118 4098 -1 -4498 4098 -1 -4099 4099 6 -4100 4099 -1 -4119 4099 -1 -4499 4099 -1 -4100 4100 6 -4120 4100 -1 -4500 4100 -1 -4101 4101 6 -4102 4101 -1 -4121 4101 -1 -4501 4101 -1 -4102 4102 6 -4103 4102 -1 -4122 4102 -1 -4502 4102 -1 -4103 4103 6 -4104 4103 -1 -4123 4103 -1 -4503 4103 -1 -4104 4104 6 -4105 4104 -1 -4124 4104 -1 -4504 4104 -1 -4105 4105 6 -4106 4105 -1 -4125 4105 -1 -4505 4105 -1 -4106 4106 6 -4107 4106 -1 -4126 4106 -1 -4506 4106 -1 -4107 4107 6 -4108 4107 -1 -4127 4107 -1 -4507 4107 -1 -4108 4108 6 -4109 4108 -1 -4128 4108 -1 -4508 4108 -1 -4109 4109 6 -4110 4109 -1 -4129 4109 -1 -4509 4109 -1 -4110 4110 6 -4111 4110 -1 -4130 4110 -1 -4510 4110 -1 -4111 4111 6 -4112 4111 -1 -4131 4111 -1 -4511 4111 -1 -4112 4112 6 -4113 4112 -1 -4132 4112 -1 -4512 4112 -1 -4113 4113 6 -4114 4113 -1 -4133 4113 -1 -4513 4113 -1 -4114 4114 6 -4115 4114 -1 -4134 4114 -1 -4514 4114 -1 -4115 4115 6 -4116 4115 -1 -4135 4115 -1 -4515 4115 -1 -4116 4116 6 -4117 4116 -1 -4136 4116 -1 -4516 4116 -1 -4117 4117 6 -4118 4117 -1 -4137 4117 -1 -4517 4117 -1 -4118 4118 6 -4119 4118 -1 -4138 4118 -1 -4518 4118 -1 -4119 4119 6 -4120 4119 -1 -4139 4119 -1 -4519 4119 -1 -4120 4120 6 -4140 4120 -1 -4520 4120 -1 -4121 4121 6 -4122 4121 -1 -4141 4121 -1 -4521 4121 -1 -4122 4122 6 -4123 4122 -1 -4142 4122 -1 -4522 4122 -1 -4123 4123 6 -4124 4123 -1 -4143 4123 -1 -4523 4123 -1 -4124 4124 6 -4125 4124 -1 -4144 4124 -1 -4524 4124 -1 -4125 4125 6 -4126 4125 -1 -4145 4125 -1 -4525 4125 -1 -4126 4126 6 -4127 4126 -1 -4146 4126 -1 -4526 4126 -1 -4127 4127 6 -4128 4127 -1 -4147 4127 -1 -4527 4127 -1 -4128 4128 6 -4129 4128 -1 -4148 4128 -1 -4528 4128 -1 -4129 4129 6 -4130 4129 -1 -4149 4129 -1 -4529 4129 -1 -4130 4130 6 -4131 4130 -1 -4150 4130 -1 -4530 4130 -1 -4131 4131 6 -4132 4131 -1 -4151 4131 -1 -4531 4131 -1 -4132 4132 6 -4133 4132 -1 -4152 4132 -1 -4532 4132 -1 -4133 4133 6 -4134 4133 -1 -4153 4133 -1 -4533 4133 -1 -4134 4134 6 -4135 4134 -1 -4154 4134 -1 -4534 4134 -1 -4135 4135 6 -4136 4135 -1 -4155 4135 -1 -4535 4135 -1 -4136 4136 6 -4137 4136 -1 -4156 4136 -1 -4536 4136 -1 -4137 4137 6 -4138 4137 -1 -4157 4137 -1 -4537 4137 -1 -4138 4138 6 -4139 4138 -1 -4158 4138 -1 -4538 4138 -1 -4139 4139 6 -4140 4139 -1 -4159 4139 -1 -4539 4139 -1 -4140 4140 6 -4160 4140 -1 -4540 4140 -1 -4141 4141 6 -4142 4141 -1 -4161 4141 -1 -4541 4141 -1 -4142 4142 6 -4143 4142 -1 -4162 4142 -1 -4542 4142 -1 -4143 4143 6 -4144 4143 -1 -4163 4143 -1 -4543 4143 -1 -4144 4144 6 -4145 4144 -1 -4164 4144 -1 -4544 4144 -1 -4145 4145 6 -4146 4145 -1 -4165 4145 -1 -4545 4145 -1 -4146 4146 6 -4147 4146 -1 -4166 4146 -1 -4546 4146 -1 -4147 4147 6 -4148 4147 -1 -4167 4147 -1 -4547 4147 -1 -4148 4148 6 -4149 4148 -1 -4168 4148 -1 -4548 4148 -1 -4149 4149 6 -4150 4149 -1 -4169 4149 -1 -4549 4149 -1 -4150 4150 6 -4151 4150 -1 -4170 4150 -1 -4550 4150 -1 -4151 4151 6 -4152 4151 -1 -4171 4151 -1 -4551 4151 -1 -4152 4152 6 -4153 4152 -1 -4172 4152 -1 -4552 4152 -1 -4153 4153 6 -4154 4153 -1 -4173 4153 -1 -4553 4153 -1 -4154 4154 6 -4155 4154 -1 -4174 4154 -1 -4554 4154 -1 -4155 4155 6 -4156 4155 -1 -4175 4155 -1 -4555 4155 -1 -4156 4156 6 -4157 4156 -1 -4176 4156 -1 -4556 4156 -1 -4157 4157 6 -4158 4157 -1 -4177 4157 -1 -4557 4157 -1 -4158 4158 6 -4159 4158 -1 -4178 4158 -1 -4558 4158 -1 -4159 4159 6 -4160 4159 -1 -4179 4159 -1 -4559 4159 -1 -4160 4160 6 -4180 4160 -1 -4560 4160 -1 -4161 4161 6 -4162 4161 -1 -4181 4161 -1 -4561 4161 -1 -4162 4162 6 -4163 4162 -1 -4182 4162 -1 -4562 4162 -1 -4163 4163 6 -4164 4163 -1 -4183 4163 -1 -4563 4163 -1 -4164 4164 6 -4165 4164 -1 -4184 4164 -1 -4564 4164 -1 -4165 4165 6 -4166 4165 -1 -4185 4165 -1 -4565 4165 -1 -4166 4166 6 -4167 4166 -1 -4186 4166 -1 -4566 4166 -1 -4167 4167 6 -4168 4167 -1 -4187 4167 -1 -4567 4167 -1 -4168 4168 6 -4169 4168 -1 -4188 4168 -1 -4568 4168 -1 -4169 4169 6 -4170 4169 -1 -4189 4169 -1 -4569 4169 -1 -4170 4170 6 -4171 4170 -1 -4190 4170 -1 -4570 4170 -1 -4171 4171 6 -4172 4171 -1 -4191 4171 -1 -4571 4171 -1 -4172 4172 6 -4173 4172 -1 -4192 4172 -1 -4572 4172 -1 -4173 4173 6 -4174 4173 -1 -4193 4173 -1 -4573 4173 -1 -4174 4174 6 -4175 4174 -1 -4194 4174 -1 -4574 4174 -1 -4175 4175 6 -4176 4175 -1 -4195 4175 -1 -4575 4175 -1 -4176 4176 6 -4177 4176 -1 -4196 4176 -1 -4576 4176 -1 -4177 4177 6 -4178 4177 -1 -4197 4177 -1 -4577 4177 -1 -4178 4178 6 -4179 4178 -1 -4198 4178 -1 -4578 4178 -1 -4179 4179 6 -4180 4179 -1 -4199 4179 -1 -4579 4179 -1 -4180 4180 6 -4200 4180 -1 -4580 4180 -1 -4181 4181 6 -4182 4181 -1 -4201 4181 -1 -4581 4181 -1 -4182 4182 6 -4183 4182 -1 -4202 4182 -1 -4582 4182 -1 -4183 4183 6 -4184 4183 -1 -4203 4183 -1 -4583 4183 -1 -4184 4184 6 -4185 4184 -1 -4204 4184 -1 -4584 4184 -1 -4185 4185 6 -4186 4185 -1 -4205 4185 -1 -4585 4185 -1 -4186 4186 6 -4187 4186 -1 -4206 4186 -1 -4586 4186 -1 -4187 4187 6 -4188 4187 -1 -4207 4187 -1 -4587 4187 -1 -4188 4188 6 -4189 4188 -1 -4208 4188 -1 -4588 4188 -1 -4189 4189 6 -4190 4189 -1 -4209 4189 -1 -4589 4189 -1 -4190 4190 6 -4191 4190 -1 -4210 4190 -1 -4590 4190 -1 -4191 4191 6 -4192 4191 -1 -4211 4191 -1 -4591 4191 -1 -4192 4192 6 -4193 4192 -1 -4212 4192 -1 -4592 4192 -1 -4193 4193 6 -4194 4193 -1 -4213 4193 -1 -4593 4193 -1 -4194 4194 6 -4195 4194 -1 -4214 4194 -1 -4594 4194 -1 -4195 4195 6 -4196 4195 -1 -4215 4195 -1 -4595 4195 -1 -4196 4196 6 -4197 4196 -1 -4216 4196 -1 -4596 4196 -1 -4197 4197 6 -4198 4197 -1 -4217 4197 -1 -4597 4197 -1 -4198 4198 6 -4199 4198 -1 -4218 4198 -1 -4598 4198 -1 -4199 4199 6 -4200 4199 -1 -4219 4199 -1 -4599 4199 -1 -4200 4200 6 -4220 4200 -1 -4600 4200 -1 -4201 4201 6 -4202 4201 -1 -4221 4201 -1 -4601 4201 -1 -4202 4202 6 -4203 4202 -1 -4222 4202 -1 -4602 4202 -1 -4203 4203 6 -4204 4203 -1 -4223 4203 -1 -4603 4203 -1 -4204 4204 6 -4205 4204 -1 -4224 4204 -1 -4604 4204 -1 -4205 4205 6 -4206 4205 -1 -4225 4205 -1 -4605 4205 -1 -4206 4206 6 -4207 4206 -1 -4226 4206 -1 -4606 4206 -1 -4207 4207 6 -4208 4207 -1 -4227 4207 -1 -4607 4207 -1 -4208 4208 6 -4209 4208 -1 -4228 4208 -1 -4608 4208 -1 -4209 4209 6 -4210 4209 -1 -4229 4209 -1 -4609 4209 -1 -4210 4210 6 -4211 4210 -1 -4230 4210 -1 -4610 4210 -1 -4211 4211 6 -4212 4211 -1 -4231 4211 -1 -4611 4211 -1 -4212 4212 6 -4213 4212 -1 -4232 4212 -1 -4612 4212 -1 -4213 4213 6 -4214 4213 -1 -4233 4213 -1 -4613 4213 -1 -4214 4214 6 -4215 4214 -1 -4234 4214 -1 -4614 4214 -1 -4215 4215 6 -4216 4215 -1 -4235 4215 -1 -4615 4215 -1 -4216 4216 6 -4217 4216 -1 -4236 4216 -1 -4616 4216 -1 -4217 4217 6 -4218 4217 -1 -4237 4217 -1 -4617 4217 -1 -4218 4218 6 -4219 4218 -1 -4238 4218 -1 -4618 4218 -1 -4219 4219 6 -4220 4219 -1 -4239 4219 -1 -4619 4219 -1 -4220 4220 6 -4240 4220 -1 -4620 4220 -1 -4221 4221 6 -4222 4221 -1 -4241 4221 -1 -4621 4221 -1 -4222 4222 6 -4223 4222 -1 -4242 4222 -1 -4622 4222 -1 -4223 4223 6 -4224 4223 -1 -4243 4223 -1 -4623 4223 -1 -4224 4224 6 -4225 4224 -1 -4244 4224 -1 -4624 4224 -1 -4225 4225 6 -4226 4225 -1 -4245 4225 -1 -4625 4225 -1 -4226 4226 6 -4227 4226 -1 -4246 4226 -1 -4626 4226 -1 -4227 4227 6 -4228 4227 -1 -4247 4227 -1 -4627 4227 -1 -4228 4228 6 -4229 4228 -1 -4248 4228 -1 -4628 4228 -1 -4229 4229 6 -4230 4229 -1 -4249 4229 -1 -4629 4229 -1 -4230 4230 6 -4231 4230 -1 -4250 4230 -1 -4630 4230 -1 -4231 4231 6 -4232 4231 -1 -4251 4231 -1 -4631 4231 -1 -4232 4232 6 -4233 4232 -1 -4252 4232 -1 -4632 4232 -1 -4233 4233 6 -4234 4233 -1 -4253 4233 -1 -4633 4233 -1 -4234 4234 6 -4235 4234 -1 -4254 4234 -1 -4634 4234 -1 -4235 4235 6 -4236 4235 -1 -4255 4235 -1 -4635 4235 -1 -4236 4236 6 -4237 4236 -1 -4256 4236 -1 -4636 4236 -1 -4237 4237 6 -4238 4237 -1 -4257 4237 -1 -4637 4237 -1 -4238 4238 6 -4239 4238 -1 -4258 4238 -1 -4638 4238 -1 -4239 4239 6 -4240 4239 -1 -4259 4239 -1 -4639 4239 -1 -4240 4240 6 -4260 4240 -1 -4640 4240 -1 -4241 4241 6 -4242 4241 -1 -4261 4241 -1 -4641 4241 -1 -4242 4242 6 -4243 4242 -1 -4262 4242 -1 -4642 4242 -1 -4243 4243 6 -4244 4243 -1 -4263 4243 -1 -4643 4243 -1 -4244 4244 6 -4245 4244 -1 -4264 4244 -1 -4644 4244 -1 -4245 4245 6 -4246 4245 -1 -4265 4245 -1 -4645 4245 -1 -4246 4246 6 -4247 4246 -1 -4266 4246 -1 -4646 4246 -1 -4247 4247 6 -4248 4247 -1 -4267 4247 -1 -4647 4247 -1 -4248 4248 6 -4249 4248 -1 -4268 4248 -1 -4648 4248 -1 -4249 4249 6 -4250 4249 -1 -4269 4249 -1 -4649 4249 -1 -4250 4250 6 -4251 4250 -1 -4270 4250 -1 -4650 4250 -1 -4251 4251 6 -4252 4251 -1 -4271 4251 -1 -4651 4251 -1 -4252 4252 6 -4253 4252 -1 -4272 4252 -1 -4652 4252 -1 -4253 4253 6 -4254 4253 -1 -4273 4253 -1 -4653 4253 -1 -4254 4254 6 -4255 4254 -1 -4274 4254 -1 -4654 4254 -1 -4255 4255 6 -4256 4255 -1 -4275 4255 -1 -4655 4255 -1 -4256 4256 6 -4257 4256 -1 -4276 4256 -1 -4656 4256 -1 -4257 4257 6 -4258 4257 -1 -4277 4257 -1 -4657 4257 -1 -4258 4258 6 -4259 4258 -1 -4278 4258 -1 -4658 4258 -1 -4259 4259 6 -4260 4259 -1 -4279 4259 -1 -4659 4259 -1 -4260 4260 6 -4280 4260 -1 -4660 4260 -1 -4261 4261 6 -4262 4261 -1 -4281 4261 -1 -4661 4261 -1 -4262 4262 6 -4263 4262 -1 -4282 4262 -1 -4662 4262 -1 -4263 4263 6 -4264 4263 -1 -4283 4263 -1 -4663 4263 -1 -4264 4264 6 -4265 4264 -1 -4284 4264 -1 -4664 4264 -1 -4265 4265 6 -4266 4265 -1 -4285 4265 -1 -4665 4265 -1 -4266 4266 6 -4267 4266 -1 -4286 4266 -1 -4666 4266 -1 -4267 4267 6 -4268 4267 -1 -4287 4267 -1 -4667 4267 -1 -4268 4268 6 -4269 4268 -1 -4288 4268 -1 -4668 4268 -1 -4269 4269 6 -4270 4269 -1 -4289 4269 -1 -4669 4269 -1 -4270 4270 6 -4271 4270 -1 -4290 4270 -1 -4670 4270 -1 -4271 4271 6 -4272 4271 -1 -4291 4271 -1 -4671 4271 -1 -4272 4272 6 -4273 4272 -1 -4292 4272 -1 -4672 4272 -1 -4273 4273 6 -4274 4273 -1 -4293 4273 -1 -4673 4273 -1 -4274 4274 6 -4275 4274 -1 -4294 4274 -1 -4674 4274 -1 -4275 4275 6 -4276 4275 -1 -4295 4275 -1 -4675 4275 -1 -4276 4276 6 -4277 4276 -1 -4296 4276 -1 -4676 4276 -1 -4277 4277 6 -4278 4277 -1 -4297 4277 -1 -4677 4277 -1 -4278 4278 6 -4279 4278 -1 -4298 4278 -1 -4678 4278 -1 -4279 4279 6 -4280 4279 -1 -4299 4279 -1 -4679 4279 -1 -4280 4280 6 -4300 4280 -1 -4680 4280 -1 -4281 4281 6 -4282 4281 -1 -4301 4281 -1 -4681 4281 -1 -4282 4282 6 -4283 4282 -1 -4302 4282 -1 -4682 4282 -1 -4283 4283 6 -4284 4283 -1 -4303 4283 -1 -4683 4283 -1 -4284 4284 6 -4285 4284 -1 -4304 4284 -1 -4684 4284 -1 -4285 4285 6 -4286 4285 -1 -4305 4285 -1 -4685 4285 -1 -4286 4286 6 -4287 4286 -1 -4306 4286 -1 -4686 4286 -1 -4287 4287 6 -4288 4287 -1 -4307 4287 -1 -4687 4287 -1 -4288 4288 6 -4289 4288 -1 -4308 4288 -1 -4688 4288 -1 -4289 4289 6 -4290 4289 -1 -4309 4289 -1 -4689 4289 -1 -4290 4290 6 -4291 4290 -1 -4310 4290 -1 -4690 4290 -1 -4291 4291 6 -4292 4291 -1 -4311 4291 -1 -4691 4291 -1 -4292 4292 6 -4293 4292 -1 -4312 4292 -1 -4692 4292 -1 -4293 4293 6 -4294 4293 -1 -4313 4293 -1 -4693 4293 -1 -4294 4294 6 -4295 4294 -1 -4314 4294 -1 -4694 4294 -1 -4295 4295 6 -4296 4295 -1 -4315 4295 -1 -4695 4295 -1 -4296 4296 6 -4297 4296 -1 -4316 4296 -1 -4696 4296 -1 -4297 4297 6 -4298 4297 -1 -4317 4297 -1 -4697 4297 -1 -4298 4298 6 -4299 4298 -1 -4318 4298 -1 -4698 4298 -1 -4299 4299 6 -4300 4299 -1 -4319 4299 -1 -4699 4299 -1 -4300 4300 6 -4320 4300 -1 -4700 4300 -1 -4301 4301 6 -4302 4301 -1 -4321 4301 -1 -4701 4301 -1 -4302 4302 6 -4303 4302 -1 -4322 4302 -1 -4702 4302 -1 -4303 4303 6 -4304 4303 -1 -4323 4303 -1 -4703 4303 -1 -4304 4304 6 -4305 4304 -1 -4324 4304 -1 -4704 4304 -1 -4305 4305 6 -4306 4305 -1 -4325 4305 -1 -4705 4305 -1 -4306 4306 6 -4307 4306 -1 -4326 4306 -1 -4706 4306 -1 -4307 4307 6 -4308 4307 -1 -4327 4307 -1 -4707 4307 -1 -4308 4308 6 -4309 4308 -1 -4328 4308 -1 -4708 4308 -1 -4309 4309 6 -4310 4309 -1 -4329 4309 -1 -4709 4309 -1 -4310 4310 6 -4311 4310 -1 -4330 4310 -1 -4710 4310 -1 -4311 4311 6 -4312 4311 -1 -4331 4311 -1 -4711 4311 -1 -4312 4312 6 -4313 4312 -1 -4332 4312 -1 -4712 4312 -1 -4313 4313 6 -4314 4313 -1 -4333 4313 -1 -4713 4313 -1 -4314 4314 6 -4315 4314 -1 -4334 4314 -1 -4714 4314 -1 -4315 4315 6 -4316 4315 -1 -4335 4315 -1 -4715 4315 -1 -4316 4316 6 -4317 4316 -1 -4336 4316 -1 -4716 4316 -1 -4317 4317 6 -4318 4317 -1 -4337 4317 -1 -4717 4317 -1 -4318 4318 6 -4319 4318 -1 -4338 4318 -1 -4718 4318 -1 -4319 4319 6 -4320 4319 -1 -4339 4319 -1 -4719 4319 -1 -4320 4320 6 -4340 4320 -1 -4720 4320 -1 -4321 4321 6 -4322 4321 -1 -4341 4321 -1 -4721 4321 -1 -4322 4322 6 -4323 4322 -1 -4342 4322 -1 -4722 4322 -1 -4323 4323 6 -4324 4323 -1 -4343 4323 -1 -4723 4323 -1 -4324 4324 6 -4325 4324 -1 -4344 4324 -1 -4724 4324 -1 -4325 4325 6 -4326 4325 -1 -4345 4325 -1 -4725 4325 -1 -4326 4326 6 -4327 4326 -1 -4346 4326 -1 -4726 4326 -1 -4327 4327 6 -4328 4327 -1 -4347 4327 -1 -4727 4327 -1 -4328 4328 6 -4329 4328 -1 -4348 4328 -1 -4728 4328 -1 -4329 4329 6 -4330 4329 -1 -4349 4329 -1 -4729 4329 -1 -4330 4330 6 -4331 4330 -1 -4350 4330 -1 -4730 4330 -1 -4331 4331 6 -4332 4331 -1 -4351 4331 -1 -4731 4331 -1 -4332 4332 6 -4333 4332 -1 -4352 4332 -1 -4732 4332 -1 -4333 4333 6 -4334 4333 -1 -4353 4333 -1 -4733 4333 -1 -4334 4334 6 -4335 4334 -1 -4354 4334 -1 -4734 4334 -1 -4335 4335 6 -4336 4335 -1 -4355 4335 -1 -4735 4335 -1 -4336 4336 6 -4337 4336 -1 -4356 4336 -1 -4736 4336 -1 -4337 4337 6 -4338 4337 -1 -4357 4337 -1 -4737 4337 -1 -4338 4338 6 -4339 4338 -1 -4358 4338 -1 -4738 4338 -1 -4339 4339 6 -4340 4339 -1 -4359 4339 -1 -4739 4339 -1 -4340 4340 6 -4360 4340 -1 -4740 4340 -1 -4341 4341 6 -4342 4341 -1 -4361 4341 -1 -4741 4341 -1 -4342 4342 6 -4343 4342 -1 -4362 4342 -1 -4742 4342 -1 -4343 4343 6 -4344 4343 -1 -4363 4343 -1 -4743 4343 -1 -4344 4344 6 -4345 4344 -1 -4364 4344 -1 -4744 4344 -1 -4345 4345 6 -4346 4345 -1 -4365 4345 -1 -4745 4345 -1 -4346 4346 6 -4347 4346 -1 -4366 4346 -1 -4746 4346 -1 -4347 4347 6 -4348 4347 -1 -4367 4347 -1 -4747 4347 -1 -4348 4348 6 -4349 4348 -1 -4368 4348 -1 -4748 4348 -1 -4349 4349 6 -4350 4349 -1 -4369 4349 -1 -4749 4349 -1 -4350 4350 6 -4351 4350 -1 -4370 4350 -1 -4750 4350 -1 -4351 4351 6 -4352 4351 -1 -4371 4351 -1 -4751 4351 -1 -4352 4352 6 -4353 4352 -1 -4372 4352 -1 -4752 4352 -1 -4353 4353 6 -4354 4353 -1 -4373 4353 -1 -4753 4353 -1 -4354 4354 6 -4355 4354 -1 -4374 4354 -1 -4754 4354 -1 -4355 4355 6 -4356 4355 -1 -4375 4355 -1 -4755 4355 -1 -4356 4356 6 -4357 4356 -1 -4376 4356 -1 -4756 4356 -1 -4357 4357 6 -4358 4357 -1 -4377 4357 -1 -4757 4357 -1 -4358 4358 6 -4359 4358 -1 -4378 4358 -1 -4758 4358 -1 -4359 4359 6 -4360 4359 -1 -4379 4359 -1 -4759 4359 -1 -4360 4360 6 -4380 4360 -1 -4760 4360 -1 -4361 4361 6 -4362 4361 -1 -4381 4361 -1 -4761 4361 -1 -4362 4362 6 -4363 4362 -1 -4382 4362 -1 -4762 4362 -1 -4363 4363 6 -4364 4363 -1 -4383 4363 -1 -4763 4363 -1 -4364 4364 6 -4365 4364 -1 -4384 4364 -1 -4764 4364 -1 -4365 4365 6 -4366 4365 -1 -4385 4365 -1 -4765 4365 -1 -4366 4366 6 -4367 4366 -1 -4386 4366 -1 -4766 4366 -1 -4367 4367 6 -4368 4367 -1 -4387 4367 -1 -4767 4367 -1 -4368 4368 6 -4369 4368 -1 -4388 4368 -1 -4768 4368 -1 -4369 4369 6 -4370 4369 -1 -4389 4369 -1 -4769 4369 -1 -4370 4370 6 -4371 4370 -1 -4390 4370 -1 -4770 4370 -1 -4371 4371 6 -4372 4371 -1 -4391 4371 -1 -4771 4371 -1 -4372 4372 6 -4373 4372 -1 -4392 4372 -1 -4772 4372 -1 -4373 4373 6 -4374 4373 -1 -4393 4373 -1 -4773 4373 -1 -4374 4374 6 -4375 4374 -1 -4394 4374 -1 -4774 4374 -1 -4375 4375 6 -4376 4375 -1 -4395 4375 -1 -4775 4375 -1 -4376 4376 6 -4377 4376 -1 -4396 4376 -1 -4776 4376 -1 -4377 4377 6 -4378 4377 -1 -4397 4377 -1 -4777 4377 -1 -4378 4378 6 -4379 4378 -1 -4398 4378 -1 -4778 4378 -1 -4379 4379 6 -4380 4379 -1 -4399 4379 -1 -4779 4379 -1 -4380 4380 6 -4400 4380 -1 -4780 4380 -1 -4381 4381 6 -4382 4381 -1 -4781 4381 -1 -4382 4382 6 -4383 4382 -1 -4782 4382 -1 -4383 4383 6 -4384 4383 -1 -4783 4383 -1 -4384 4384 6 -4385 4384 -1 -4784 4384 -1 -4385 4385 6 -4386 4385 -1 -4785 4385 -1 -4386 4386 6 -4387 4386 -1 -4786 4386 -1 -4387 4387 6 -4388 4387 -1 -4787 4387 -1 -4388 4388 6 -4389 4388 -1 -4788 4388 -1 -4389 4389 6 -4390 4389 -1 -4789 4389 -1 -4390 4390 6 -4391 4390 -1 -4790 4390 -1 -4391 4391 6 -4392 4391 -1 -4791 4391 -1 -4392 4392 6 -4393 4392 -1 -4792 4392 -1 -4393 4393 6 -4394 4393 -1 -4793 4393 -1 -4394 4394 6 -4395 4394 -1 -4794 4394 -1 -4395 4395 6 -4396 4395 -1 -4795 4395 -1 -4396 4396 6 -4397 4396 -1 -4796 4396 -1 -4397 4397 6 -4398 4397 -1 -4797 4397 -1 -4398 4398 6 -4399 4398 -1 -4798 4398 -1 -4399 4399 6 -4400 4399 -1 -4799 4399 -1 -4400 4400 6 -4800 4400 -1 -4401 4401 6 -4402 4401 -1 -4421 4401 -1 -4801 4401 -1 -4402 4402 6 -4403 4402 -1 -4422 4402 -1 -4802 4402 -1 -4403 4403 6 -4404 4403 -1 -4423 4403 -1 -4803 4403 -1 -4404 4404 6 -4405 4404 -1 -4424 4404 -1 -4804 4404 -1 -4405 4405 6 -4406 4405 -1 -4425 4405 -1 -4805 4405 -1 -4406 4406 6 -4407 4406 -1 -4426 4406 -1 -4806 4406 -1 -4407 4407 6 -4408 4407 -1 -4427 4407 -1 -4807 4407 -1 -4408 4408 6 -4409 4408 -1 -4428 4408 -1 -4808 4408 -1 -4409 4409 6 -4410 4409 -1 -4429 4409 -1 -4809 4409 -1 -4410 4410 6 -4411 4410 -1 -4430 4410 -1 -4810 4410 -1 -4411 4411 6 -4412 4411 -1 -4431 4411 -1 -4811 4411 -1 -4412 4412 6 -4413 4412 -1 -4432 4412 -1 -4812 4412 -1 -4413 4413 6 -4414 4413 -1 -4433 4413 -1 -4813 4413 -1 -4414 4414 6 -4415 4414 -1 -4434 4414 -1 -4814 4414 -1 -4415 4415 6 -4416 4415 -1 -4435 4415 -1 -4815 4415 -1 -4416 4416 6 -4417 4416 -1 -4436 4416 -1 -4816 4416 -1 -4417 4417 6 -4418 4417 -1 -4437 4417 -1 -4817 4417 -1 -4418 4418 6 -4419 4418 -1 -4438 4418 -1 -4818 4418 -1 -4419 4419 6 -4420 4419 -1 -4439 4419 -1 -4819 4419 -1 -4420 4420 6 -4440 4420 -1 -4820 4420 -1 -4421 4421 6 -4422 4421 -1 -4441 4421 -1 -4821 4421 -1 -4422 4422 6 -4423 4422 -1 -4442 4422 -1 -4822 4422 -1 -4423 4423 6 -4424 4423 -1 -4443 4423 -1 -4823 4423 -1 -4424 4424 6 -4425 4424 -1 -4444 4424 -1 -4824 4424 -1 -4425 4425 6 -4426 4425 -1 -4445 4425 -1 -4825 4425 -1 -4426 4426 6 -4427 4426 -1 -4446 4426 -1 -4826 4426 -1 -4427 4427 6 -4428 4427 -1 -4447 4427 -1 -4827 4427 -1 -4428 4428 6 -4429 4428 -1 -4448 4428 -1 -4828 4428 -1 -4429 4429 6 -4430 4429 -1 -4449 4429 -1 -4829 4429 -1 -4430 4430 6 -4431 4430 -1 -4450 4430 -1 -4830 4430 -1 -4431 4431 6 -4432 4431 -1 -4451 4431 -1 -4831 4431 -1 -4432 4432 6 -4433 4432 -1 -4452 4432 -1 -4832 4432 -1 -4433 4433 6 -4434 4433 -1 -4453 4433 -1 -4833 4433 -1 -4434 4434 6 -4435 4434 -1 -4454 4434 -1 -4834 4434 -1 -4435 4435 6 -4436 4435 -1 -4455 4435 -1 -4835 4435 -1 -4436 4436 6 -4437 4436 -1 -4456 4436 -1 -4836 4436 -1 -4437 4437 6 -4438 4437 -1 -4457 4437 -1 -4837 4437 -1 -4438 4438 6 -4439 4438 -1 -4458 4438 -1 -4838 4438 -1 -4439 4439 6 -4440 4439 -1 -4459 4439 -1 -4839 4439 -1 -4440 4440 6 -4460 4440 -1 -4840 4440 -1 -4441 4441 6 -4442 4441 -1 -4461 4441 -1 -4841 4441 -1 -4442 4442 6 -4443 4442 -1 -4462 4442 -1 -4842 4442 -1 -4443 4443 6 -4444 4443 -1 -4463 4443 -1 -4843 4443 -1 -4444 4444 6 -4445 4444 -1 -4464 4444 -1 -4844 4444 -1 -4445 4445 6 -4446 4445 -1 -4465 4445 -1 -4845 4445 -1 -4446 4446 6 -4447 4446 -1 -4466 4446 -1 -4846 4446 -1 -4447 4447 6 -4448 4447 -1 -4467 4447 -1 -4847 4447 -1 -4448 4448 6 -4449 4448 -1 -4468 4448 -1 -4848 4448 -1 -4449 4449 6 -4450 4449 -1 -4469 4449 -1 -4849 4449 -1 -4450 4450 6 -4451 4450 -1 -4470 4450 -1 -4850 4450 -1 -4451 4451 6 -4452 4451 -1 -4471 4451 -1 -4851 4451 -1 -4452 4452 6 -4453 4452 -1 -4472 4452 -1 -4852 4452 -1 -4453 4453 6 -4454 4453 -1 -4473 4453 -1 -4853 4453 -1 -4454 4454 6 -4455 4454 -1 -4474 4454 -1 -4854 4454 -1 -4455 4455 6 -4456 4455 -1 -4475 4455 -1 -4855 4455 -1 -4456 4456 6 -4457 4456 -1 -4476 4456 -1 -4856 4456 -1 -4457 4457 6 -4458 4457 -1 -4477 4457 -1 -4857 4457 -1 -4458 4458 6 -4459 4458 -1 -4478 4458 -1 -4858 4458 -1 -4459 4459 6 -4460 4459 -1 -4479 4459 -1 -4859 4459 -1 -4460 4460 6 -4480 4460 -1 -4860 4460 -1 -4461 4461 6 -4462 4461 -1 -4481 4461 -1 -4861 4461 -1 -4462 4462 6 -4463 4462 -1 -4482 4462 -1 -4862 4462 -1 -4463 4463 6 -4464 4463 -1 -4483 4463 -1 -4863 4463 -1 -4464 4464 6 -4465 4464 -1 -4484 4464 -1 -4864 4464 -1 -4465 4465 6 -4466 4465 -1 -4485 4465 -1 -4865 4465 -1 -4466 4466 6 -4467 4466 -1 -4486 4466 -1 -4866 4466 -1 -4467 4467 6 -4468 4467 -1 -4487 4467 -1 -4867 4467 -1 -4468 4468 6 -4469 4468 -1 -4488 4468 -1 -4868 4468 -1 -4469 4469 6 -4470 4469 -1 -4489 4469 -1 -4869 4469 -1 -4470 4470 6 -4471 4470 -1 -4490 4470 -1 -4870 4470 -1 -4471 4471 6 -4472 4471 -1 -4491 4471 -1 -4871 4471 -1 -4472 4472 6 -4473 4472 -1 -4492 4472 -1 -4872 4472 -1 -4473 4473 6 -4474 4473 -1 -4493 4473 -1 -4873 4473 -1 -4474 4474 6 -4475 4474 -1 -4494 4474 -1 -4874 4474 -1 -4475 4475 6 -4476 4475 -1 -4495 4475 -1 -4875 4475 -1 -4476 4476 6 -4477 4476 -1 -4496 4476 -1 -4876 4476 -1 -4477 4477 6 -4478 4477 -1 -4497 4477 -1 -4877 4477 -1 -4478 4478 6 -4479 4478 -1 -4498 4478 -1 -4878 4478 -1 -4479 4479 6 -4480 4479 -1 -4499 4479 -1 -4879 4479 -1 -4480 4480 6 -4500 4480 -1 -4880 4480 -1 -4481 4481 6 -4482 4481 -1 -4501 4481 -1 -4881 4481 -1 -4482 4482 6 -4483 4482 -1 -4502 4482 -1 -4882 4482 -1 -4483 4483 6 -4484 4483 -1 -4503 4483 -1 -4883 4483 -1 -4484 4484 6 -4485 4484 -1 -4504 4484 -1 -4884 4484 -1 -4485 4485 6 -4486 4485 -1 -4505 4485 -1 -4885 4485 -1 -4486 4486 6 -4487 4486 -1 -4506 4486 -1 -4886 4486 -1 -4487 4487 6 -4488 4487 -1 -4507 4487 -1 -4887 4487 -1 -4488 4488 6 -4489 4488 -1 -4508 4488 -1 -4888 4488 -1 -4489 4489 6 -4490 4489 -1 -4509 4489 -1 -4889 4489 -1 -4490 4490 6 -4491 4490 -1 -4510 4490 -1 -4890 4490 -1 -4491 4491 6 -4492 4491 -1 -4511 4491 -1 -4891 4491 -1 -4492 4492 6 -4493 4492 -1 -4512 4492 -1 -4892 4492 -1 -4493 4493 6 -4494 4493 -1 -4513 4493 -1 -4893 4493 -1 -4494 4494 6 -4495 4494 -1 -4514 4494 -1 -4894 4494 -1 -4495 4495 6 -4496 4495 -1 -4515 4495 -1 -4895 4495 -1 -4496 4496 6 -4497 4496 -1 -4516 4496 -1 -4896 4496 -1 -4497 4497 6 -4498 4497 -1 -4517 4497 -1 -4897 4497 -1 -4498 4498 6 -4499 4498 -1 -4518 4498 -1 -4898 4498 -1 -4499 4499 6 -4500 4499 -1 -4519 4499 -1 -4899 4499 -1 -4500 4500 6 -4520 4500 -1 -4900 4500 -1 -4501 4501 6 -4502 4501 -1 -4521 4501 -1 -4901 4501 -1 -4502 4502 6 -4503 4502 -1 -4522 4502 -1 -4902 4502 -1 -4503 4503 6 -4504 4503 -1 -4523 4503 -1 -4903 4503 -1 -4504 4504 6 -4505 4504 -1 -4524 4504 -1 -4904 4504 -1 -4505 4505 6 -4506 4505 -1 -4525 4505 -1 -4905 4505 -1 -4506 4506 6 -4507 4506 -1 -4526 4506 -1 -4906 4506 -1 -4507 4507 6 -4508 4507 -1 -4527 4507 -1 -4907 4507 -1 -4508 4508 6 -4509 4508 -1 -4528 4508 -1 -4908 4508 -1 -4509 4509 6 -4510 4509 -1 -4529 4509 -1 -4909 4509 -1 -4510 4510 6 -4511 4510 -1 -4530 4510 -1 -4910 4510 -1 -4511 4511 6 -4512 4511 -1 -4531 4511 -1 -4911 4511 -1 -4512 4512 6 -4513 4512 -1 -4532 4512 -1 -4912 4512 -1 -4513 4513 6 -4514 4513 -1 -4533 4513 -1 -4913 4513 -1 -4514 4514 6 -4515 4514 -1 -4534 4514 -1 -4914 4514 -1 -4515 4515 6 -4516 4515 -1 -4535 4515 -1 -4915 4515 -1 -4516 4516 6 -4517 4516 -1 -4536 4516 -1 -4916 4516 -1 -4517 4517 6 -4518 4517 -1 -4537 4517 -1 -4917 4517 -1 -4518 4518 6 -4519 4518 -1 -4538 4518 -1 -4918 4518 -1 -4519 4519 6 -4520 4519 -1 -4539 4519 -1 -4919 4519 -1 -4520 4520 6 -4540 4520 -1 -4920 4520 -1 -4521 4521 6 -4522 4521 -1 -4541 4521 -1 -4921 4521 -1 -4522 4522 6 -4523 4522 -1 -4542 4522 -1 -4922 4522 -1 -4523 4523 6 -4524 4523 -1 -4543 4523 -1 -4923 4523 -1 -4524 4524 6 -4525 4524 -1 -4544 4524 -1 -4924 4524 -1 -4525 4525 6 -4526 4525 -1 -4545 4525 -1 -4925 4525 -1 -4526 4526 6 -4527 4526 -1 -4546 4526 -1 -4926 4526 -1 -4527 4527 6 -4528 4527 -1 -4547 4527 -1 -4927 4527 -1 -4528 4528 6 -4529 4528 -1 -4548 4528 -1 -4928 4528 -1 -4529 4529 6 -4530 4529 -1 -4549 4529 -1 -4929 4529 -1 -4530 4530 6 -4531 4530 -1 -4550 4530 -1 -4930 4530 -1 -4531 4531 6 -4532 4531 -1 -4551 4531 -1 -4931 4531 -1 -4532 4532 6 -4533 4532 -1 -4552 4532 -1 -4932 4532 -1 -4533 4533 6 -4534 4533 -1 -4553 4533 -1 -4933 4533 -1 -4534 4534 6 -4535 4534 -1 -4554 4534 -1 -4934 4534 -1 -4535 4535 6 -4536 4535 -1 -4555 4535 -1 -4935 4535 -1 -4536 4536 6 -4537 4536 -1 -4556 4536 -1 -4936 4536 -1 -4537 4537 6 -4538 4537 -1 -4557 4537 -1 -4937 4537 -1 -4538 4538 6 -4539 4538 -1 -4558 4538 -1 -4938 4538 -1 -4539 4539 6 -4540 4539 -1 -4559 4539 -1 -4939 4539 -1 -4540 4540 6 -4560 4540 -1 -4940 4540 -1 -4541 4541 6 -4542 4541 -1 -4561 4541 -1 -4941 4541 -1 -4542 4542 6 -4543 4542 -1 -4562 4542 -1 -4942 4542 -1 -4543 4543 6 -4544 4543 -1 -4563 4543 -1 -4943 4543 -1 -4544 4544 6 -4545 4544 -1 -4564 4544 -1 -4944 4544 -1 -4545 4545 6 -4546 4545 -1 -4565 4545 -1 -4945 4545 -1 -4546 4546 6 -4547 4546 -1 -4566 4546 -1 -4946 4546 -1 -4547 4547 6 -4548 4547 -1 -4567 4547 -1 -4947 4547 -1 -4548 4548 6 -4549 4548 -1 -4568 4548 -1 -4948 4548 -1 -4549 4549 6 -4550 4549 -1 -4569 4549 -1 -4949 4549 -1 -4550 4550 6 -4551 4550 -1 -4570 4550 -1 -4950 4550 -1 -4551 4551 6 -4552 4551 -1 -4571 4551 -1 -4951 4551 -1 -4552 4552 6 -4553 4552 -1 -4572 4552 -1 -4952 4552 -1 -4553 4553 6 -4554 4553 -1 -4573 4553 -1 -4953 4553 -1 -4554 4554 6 -4555 4554 -1 -4574 4554 -1 -4954 4554 -1 -4555 4555 6 -4556 4555 -1 -4575 4555 -1 -4955 4555 -1 -4556 4556 6 -4557 4556 -1 -4576 4556 -1 -4956 4556 -1 -4557 4557 6 -4558 4557 -1 -4577 4557 -1 -4957 4557 -1 -4558 4558 6 -4559 4558 -1 -4578 4558 -1 -4958 4558 -1 -4559 4559 6 -4560 4559 -1 -4579 4559 -1 -4959 4559 -1 -4560 4560 6 -4580 4560 -1 -4960 4560 -1 -4561 4561 6 -4562 4561 -1 -4581 4561 -1 -4961 4561 -1 -4562 4562 6 -4563 4562 -1 -4582 4562 -1 -4962 4562 -1 -4563 4563 6 -4564 4563 -1 -4583 4563 -1 -4963 4563 -1 -4564 4564 6 -4565 4564 -1 -4584 4564 -1 -4964 4564 -1 -4565 4565 6 -4566 4565 -1 -4585 4565 -1 -4965 4565 -1 -4566 4566 6 -4567 4566 -1 -4586 4566 -1 -4966 4566 -1 -4567 4567 6 -4568 4567 -1 -4587 4567 -1 -4967 4567 -1 -4568 4568 6 -4569 4568 -1 -4588 4568 -1 -4968 4568 -1 -4569 4569 6 -4570 4569 -1 -4589 4569 -1 -4969 4569 -1 -4570 4570 6 -4571 4570 -1 -4590 4570 -1 -4970 4570 -1 -4571 4571 6 -4572 4571 -1 -4591 4571 -1 -4971 4571 -1 -4572 4572 6 -4573 4572 -1 -4592 4572 -1 -4972 4572 -1 -4573 4573 6 -4574 4573 -1 -4593 4573 -1 -4973 4573 -1 -4574 4574 6 -4575 4574 -1 -4594 4574 -1 -4974 4574 -1 -4575 4575 6 -4576 4575 -1 -4595 4575 -1 -4975 4575 -1 -4576 4576 6 -4577 4576 -1 -4596 4576 -1 -4976 4576 -1 -4577 4577 6 -4578 4577 -1 -4597 4577 -1 -4977 4577 -1 -4578 4578 6 -4579 4578 -1 -4598 4578 -1 -4978 4578 -1 -4579 4579 6 -4580 4579 -1 -4599 4579 -1 -4979 4579 -1 -4580 4580 6 -4600 4580 -1 -4980 4580 -1 -4581 4581 6 -4582 4581 -1 -4601 4581 -1 -4981 4581 -1 -4582 4582 6 -4583 4582 -1 -4602 4582 -1 -4982 4582 -1 -4583 4583 6 -4584 4583 -1 -4603 4583 -1 -4983 4583 -1 -4584 4584 6 -4585 4584 -1 -4604 4584 -1 -4984 4584 -1 -4585 4585 6 -4586 4585 -1 -4605 4585 -1 -4985 4585 -1 -4586 4586 6 -4587 4586 -1 -4606 4586 -1 -4986 4586 -1 -4587 4587 6 -4588 4587 -1 -4607 4587 -1 -4987 4587 -1 -4588 4588 6 -4589 4588 -1 -4608 4588 -1 -4988 4588 -1 -4589 4589 6 -4590 4589 -1 -4609 4589 -1 -4989 4589 -1 -4590 4590 6 -4591 4590 -1 -4610 4590 -1 -4990 4590 -1 -4591 4591 6 -4592 4591 -1 -4611 4591 -1 -4991 4591 -1 -4592 4592 6 -4593 4592 -1 -4612 4592 -1 -4992 4592 -1 -4593 4593 6 -4594 4593 -1 -4613 4593 -1 -4993 4593 -1 -4594 4594 6 -4595 4594 -1 -4614 4594 -1 -4994 4594 -1 -4595 4595 6 -4596 4595 -1 -4615 4595 -1 -4995 4595 -1 -4596 4596 6 -4597 4596 -1 -4616 4596 -1 -4996 4596 -1 -4597 4597 6 -4598 4597 -1 -4617 4597 -1 -4997 4597 -1 -4598 4598 6 -4599 4598 -1 -4618 4598 -1 -4998 4598 -1 -4599 4599 6 -4600 4599 -1 -4619 4599 -1 -4999 4599 -1 -4600 4600 6 -4620 4600 -1 -5000 4600 -1 -4601 4601 6 -4602 4601 -1 -4621 4601 -1 -5001 4601 -1 -4602 4602 6 -4603 4602 -1 -4622 4602 -1 -5002 4602 -1 -4603 4603 6 -4604 4603 -1 -4623 4603 -1 -5003 4603 -1 -4604 4604 6 -4605 4604 -1 -4624 4604 -1 -5004 4604 -1 -4605 4605 6 -4606 4605 -1 -4625 4605 -1 -5005 4605 -1 -4606 4606 6 -4607 4606 -1 -4626 4606 -1 -5006 4606 -1 -4607 4607 6 -4608 4607 -1 -4627 4607 -1 -5007 4607 -1 -4608 4608 6 -4609 4608 -1 -4628 4608 -1 -5008 4608 -1 -4609 4609 6 -4610 4609 -1 -4629 4609 -1 -5009 4609 -1 -4610 4610 6 -4611 4610 -1 -4630 4610 -1 -5010 4610 -1 -4611 4611 6 -4612 4611 -1 -4631 4611 -1 -5011 4611 -1 -4612 4612 6 -4613 4612 -1 -4632 4612 -1 -5012 4612 -1 -4613 4613 6 -4614 4613 -1 -4633 4613 -1 -5013 4613 -1 -4614 4614 6 -4615 4614 -1 -4634 4614 -1 -5014 4614 -1 -4615 4615 6 -4616 4615 -1 -4635 4615 -1 -5015 4615 -1 -4616 4616 6 -4617 4616 -1 -4636 4616 -1 -5016 4616 -1 -4617 4617 6 -4618 4617 -1 -4637 4617 -1 -5017 4617 -1 -4618 4618 6 -4619 4618 -1 -4638 4618 -1 -5018 4618 -1 -4619 4619 6 -4620 4619 -1 -4639 4619 -1 -5019 4619 -1 -4620 4620 6 -4640 4620 -1 -5020 4620 -1 -4621 4621 6 -4622 4621 -1 -4641 4621 -1 -5021 4621 -1 -4622 4622 6 -4623 4622 -1 -4642 4622 -1 -5022 4622 -1 -4623 4623 6 -4624 4623 -1 -4643 4623 -1 -5023 4623 -1 -4624 4624 6 -4625 4624 -1 -4644 4624 -1 -5024 4624 -1 -4625 4625 6 -4626 4625 -1 -4645 4625 -1 -5025 4625 -1 -4626 4626 6 -4627 4626 -1 -4646 4626 -1 -5026 4626 -1 -4627 4627 6 -4628 4627 -1 -4647 4627 -1 -5027 4627 -1 -4628 4628 6 -4629 4628 -1 -4648 4628 -1 -5028 4628 -1 -4629 4629 6 -4630 4629 -1 -4649 4629 -1 -5029 4629 -1 -4630 4630 6 -4631 4630 -1 -4650 4630 -1 -5030 4630 -1 -4631 4631 6 -4632 4631 -1 -4651 4631 -1 -5031 4631 -1 -4632 4632 6 -4633 4632 -1 -4652 4632 -1 -5032 4632 -1 -4633 4633 6 -4634 4633 -1 -4653 4633 -1 -5033 4633 -1 -4634 4634 6 -4635 4634 -1 -4654 4634 -1 -5034 4634 -1 -4635 4635 6 -4636 4635 -1 -4655 4635 -1 -5035 4635 -1 -4636 4636 6 -4637 4636 -1 -4656 4636 -1 -5036 4636 -1 -4637 4637 6 -4638 4637 -1 -4657 4637 -1 -5037 4637 -1 -4638 4638 6 -4639 4638 -1 -4658 4638 -1 -5038 4638 -1 -4639 4639 6 -4640 4639 -1 -4659 4639 -1 -5039 4639 -1 -4640 4640 6 -4660 4640 -1 -5040 4640 -1 -4641 4641 6 -4642 4641 -1 -4661 4641 -1 -5041 4641 -1 -4642 4642 6 -4643 4642 -1 -4662 4642 -1 -5042 4642 -1 -4643 4643 6 -4644 4643 -1 -4663 4643 -1 -5043 4643 -1 -4644 4644 6 -4645 4644 -1 -4664 4644 -1 -5044 4644 -1 -4645 4645 6 -4646 4645 -1 -4665 4645 -1 -5045 4645 -1 -4646 4646 6 -4647 4646 -1 -4666 4646 -1 -5046 4646 -1 -4647 4647 6 -4648 4647 -1 -4667 4647 -1 -5047 4647 -1 -4648 4648 6 -4649 4648 -1 -4668 4648 -1 -5048 4648 -1 -4649 4649 6 -4650 4649 -1 -4669 4649 -1 -5049 4649 -1 -4650 4650 6 -4651 4650 -1 -4670 4650 -1 -5050 4650 -1 -4651 4651 6 -4652 4651 -1 -4671 4651 -1 -5051 4651 -1 -4652 4652 6 -4653 4652 -1 -4672 4652 -1 -5052 4652 -1 -4653 4653 6 -4654 4653 -1 -4673 4653 -1 -5053 4653 -1 -4654 4654 6 -4655 4654 -1 -4674 4654 -1 -5054 4654 -1 -4655 4655 6 -4656 4655 -1 -4675 4655 -1 -5055 4655 -1 -4656 4656 6 -4657 4656 -1 -4676 4656 -1 -5056 4656 -1 -4657 4657 6 -4658 4657 -1 -4677 4657 -1 -5057 4657 -1 -4658 4658 6 -4659 4658 -1 -4678 4658 -1 -5058 4658 -1 -4659 4659 6 -4660 4659 -1 -4679 4659 -1 -5059 4659 -1 -4660 4660 6 -4680 4660 -1 -5060 4660 -1 -4661 4661 6 -4662 4661 -1 -4681 4661 -1 -5061 4661 -1 -4662 4662 6 -4663 4662 -1 -4682 4662 -1 -5062 4662 -1 -4663 4663 6 -4664 4663 -1 -4683 4663 -1 -5063 4663 -1 -4664 4664 6 -4665 4664 -1 -4684 4664 -1 -5064 4664 -1 -4665 4665 6 -4666 4665 -1 -4685 4665 -1 -5065 4665 -1 -4666 4666 6 -4667 4666 -1 -4686 4666 -1 -5066 4666 -1 -4667 4667 6 -4668 4667 -1 -4687 4667 -1 -5067 4667 -1 -4668 4668 6 -4669 4668 -1 -4688 4668 -1 -5068 4668 -1 -4669 4669 6 -4670 4669 -1 -4689 4669 -1 -5069 4669 -1 -4670 4670 6 -4671 4670 -1 -4690 4670 -1 -5070 4670 -1 -4671 4671 6 -4672 4671 -1 -4691 4671 -1 -5071 4671 -1 -4672 4672 6 -4673 4672 -1 -4692 4672 -1 -5072 4672 -1 -4673 4673 6 -4674 4673 -1 -4693 4673 -1 -5073 4673 -1 -4674 4674 6 -4675 4674 -1 -4694 4674 -1 -5074 4674 -1 -4675 4675 6 -4676 4675 -1 -4695 4675 -1 -5075 4675 -1 -4676 4676 6 -4677 4676 -1 -4696 4676 -1 -5076 4676 -1 -4677 4677 6 -4678 4677 -1 -4697 4677 -1 -5077 4677 -1 -4678 4678 6 -4679 4678 -1 -4698 4678 -1 -5078 4678 -1 -4679 4679 6 -4680 4679 -1 -4699 4679 -1 -5079 4679 -1 -4680 4680 6 -4700 4680 -1 -5080 4680 -1 -4681 4681 6 -4682 4681 -1 -4701 4681 -1 -5081 4681 -1 -4682 4682 6 -4683 4682 -1 -4702 4682 -1 -5082 4682 -1 -4683 4683 6 -4684 4683 -1 -4703 4683 -1 -5083 4683 -1 -4684 4684 6 -4685 4684 -1 -4704 4684 -1 -5084 4684 -1 -4685 4685 6 -4686 4685 -1 -4705 4685 -1 -5085 4685 -1 -4686 4686 6 -4687 4686 -1 -4706 4686 -1 -5086 4686 -1 -4687 4687 6 -4688 4687 -1 -4707 4687 -1 -5087 4687 -1 -4688 4688 6 -4689 4688 -1 -4708 4688 -1 -5088 4688 -1 -4689 4689 6 -4690 4689 -1 -4709 4689 -1 -5089 4689 -1 -4690 4690 6 -4691 4690 -1 -4710 4690 -1 -5090 4690 -1 -4691 4691 6 -4692 4691 -1 -4711 4691 -1 -5091 4691 -1 -4692 4692 6 -4693 4692 -1 -4712 4692 -1 -5092 4692 -1 -4693 4693 6 -4694 4693 -1 -4713 4693 -1 -5093 4693 -1 -4694 4694 6 -4695 4694 -1 -4714 4694 -1 -5094 4694 -1 -4695 4695 6 -4696 4695 -1 -4715 4695 -1 -5095 4695 -1 -4696 4696 6 -4697 4696 -1 -4716 4696 -1 -5096 4696 -1 -4697 4697 6 -4698 4697 -1 -4717 4697 -1 -5097 4697 -1 -4698 4698 6 -4699 4698 -1 -4718 4698 -1 -5098 4698 -1 -4699 4699 6 -4700 4699 -1 -4719 4699 -1 -5099 4699 -1 -4700 4700 6 -4720 4700 -1 -5100 4700 -1 -4701 4701 6 -4702 4701 -1 -4721 4701 -1 -5101 4701 -1 -4702 4702 6 -4703 4702 -1 -4722 4702 -1 -5102 4702 -1 -4703 4703 6 -4704 4703 -1 -4723 4703 -1 -5103 4703 -1 -4704 4704 6 -4705 4704 -1 -4724 4704 -1 -5104 4704 -1 -4705 4705 6 -4706 4705 -1 -4725 4705 -1 -5105 4705 -1 -4706 4706 6 -4707 4706 -1 -4726 4706 -1 -5106 4706 -1 -4707 4707 6 -4708 4707 -1 -4727 4707 -1 -5107 4707 -1 -4708 4708 6 -4709 4708 -1 -4728 4708 -1 -5108 4708 -1 -4709 4709 6 -4710 4709 -1 -4729 4709 -1 -5109 4709 -1 -4710 4710 6 -4711 4710 -1 -4730 4710 -1 -5110 4710 -1 -4711 4711 6 -4712 4711 -1 -4731 4711 -1 -5111 4711 -1 -4712 4712 6 -4713 4712 -1 -4732 4712 -1 -5112 4712 -1 -4713 4713 6 -4714 4713 -1 -4733 4713 -1 -5113 4713 -1 -4714 4714 6 -4715 4714 -1 -4734 4714 -1 -5114 4714 -1 -4715 4715 6 -4716 4715 -1 -4735 4715 -1 -5115 4715 -1 -4716 4716 6 -4717 4716 -1 -4736 4716 -1 -5116 4716 -1 -4717 4717 6 -4718 4717 -1 -4737 4717 -1 -5117 4717 -1 -4718 4718 6 -4719 4718 -1 -4738 4718 -1 -5118 4718 -1 -4719 4719 6 -4720 4719 -1 -4739 4719 -1 -5119 4719 -1 -4720 4720 6 -4740 4720 -1 -5120 4720 -1 -4721 4721 6 -4722 4721 -1 -4741 4721 -1 -5121 4721 -1 -4722 4722 6 -4723 4722 -1 -4742 4722 -1 -5122 4722 -1 -4723 4723 6 -4724 4723 -1 -4743 4723 -1 -5123 4723 -1 -4724 4724 6 -4725 4724 -1 -4744 4724 -1 -5124 4724 -1 -4725 4725 6 -4726 4725 -1 -4745 4725 -1 -5125 4725 -1 -4726 4726 6 -4727 4726 -1 -4746 4726 -1 -5126 4726 -1 -4727 4727 6 -4728 4727 -1 -4747 4727 -1 -5127 4727 -1 -4728 4728 6 -4729 4728 -1 -4748 4728 -1 -5128 4728 -1 -4729 4729 6 -4730 4729 -1 -4749 4729 -1 -5129 4729 -1 -4730 4730 6 -4731 4730 -1 -4750 4730 -1 -5130 4730 -1 -4731 4731 6 -4732 4731 -1 -4751 4731 -1 -5131 4731 -1 -4732 4732 6 -4733 4732 -1 -4752 4732 -1 -5132 4732 -1 -4733 4733 6 -4734 4733 -1 -4753 4733 -1 -5133 4733 -1 -4734 4734 6 -4735 4734 -1 -4754 4734 -1 -5134 4734 -1 -4735 4735 6 -4736 4735 -1 -4755 4735 -1 -5135 4735 -1 -4736 4736 6 -4737 4736 -1 -4756 4736 -1 -5136 4736 -1 -4737 4737 6 -4738 4737 -1 -4757 4737 -1 -5137 4737 -1 -4738 4738 6 -4739 4738 -1 -4758 4738 -1 -5138 4738 -1 -4739 4739 6 -4740 4739 -1 -4759 4739 -1 -5139 4739 -1 -4740 4740 6 -4760 4740 -1 -5140 4740 -1 -4741 4741 6 -4742 4741 -1 -4761 4741 -1 -5141 4741 -1 -4742 4742 6 -4743 4742 -1 -4762 4742 -1 -5142 4742 -1 -4743 4743 6 -4744 4743 -1 -4763 4743 -1 -5143 4743 -1 -4744 4744 6 -4745 4744 -1 -4764 4744 -1 -5144 4744 -1 -4745 4745 6 -4746 4745 -1 -4765 4745 -1 -5145 4745 -1 -4746 4746 6 -4747 4746 -1 -4766 4746 -1 -5146 4746 -1 -4747 4747 6 -4748 4747 -1 -4767 4747 -1 -5147 4747 -1 -4748 4748 6 -4749 4748 -1 -4768 4748 -1 -5148 4748 -1 -4749 4749 6 -4750 4749 -1 -4769 4749 -1 -5149 4749 -1 -4750 4750 6 -4751 4750 -1 -4770 4750 -1 -5150 4750 -1 -4751 4751 6 -4752 4751 -1 -4771 4751 -1 -5151 4751 -1 -4752 4752 6 -4753 4752 -1 -4772 4752 -1 -5152 4752 -1 -4753 4753 6 -4754 4753 -1 -4773 4753 -1 -5153 4753 -1 -4754 4754 6 -4755 4754 -1 -4774 4754 -1 -5154 4754 -1 -4755 4755 6 -4756 4755 -1 -4775 4755 -1 -5155 4755 -1 -4756 4756 6 -4757 4756 -1 -4776 4756 -1 -5156 4756 -1 -4757 4757 6 -4758 4757 -1 -4777 4757 -1 -5157 4757 -1 -4758 4758 6 -4759 4758 -1 -4778 4758 -1 -5158 4758 -1 -4759 4759 6 -4760 4759 -1 -4779 4759 -1 -5159 4759 -1 -4760 4760 6 -4780 4760 -1 -5160 4760 -1 -4761 4761 6 -4762 4761 -1 -4781 4761 -1 -5161 4761 -1 -4762 4762 6 -4763 4762 -1 -4782 4762 -1 -5162 4762 -1 -4763 4763 6 -4764 4763 -1 -4783 4763 -1 -5163 4763 -1 -4764 4764 6 -4765 4764 -1 -4784 4764 -1 -5164 4764 -1 -4765 4765 6 -4766 4765 -1 -4785 4765 -1 -5165 4765 -1 -4766 4766 6 -4767 4766 -1 -4786 4766 -1 -5166 4766 -1 -4767 4767 6 -4768 4767 -1 -4787 4767 -1 -5167 4767 -1 -4768 4768 6 -4769 4768 -1 -4788 4768 -1 -5168 4768 -1 -4769 4769 6 -4770 4769 -1 -4789 4769 -1 -5169 4769 -1 -4770 4770 6 -4771 4770 -1 -4790 4770 -1 -5170 4770 -1 -4771 4771 6 -4772 4771 -1 -4791 4771 -1 -5171 4771 -1 -4772 4772 6 -4773 4772 -1 -4792 4772 -1 -5172 4772 -1 -4773 4773 6 -4774 4773 -1 -4793 4773 -1 -5173 4773 -1 -4774 4774 6 -4775 4774 -1 -4794 4774 -1 -5174 4774 -1 -4775 4775 6 -4776 4775 -1 -4795 4775 -1 -5175 4775 -1 -4776 4776 6 -4777 4776 -1 -4796 4776 -1 -5176 4776 -1 -4777 4777 6 -4778 4777 -1 -4797 4777 -1 -5177 4777 -1 -4778 4778 6 -4779 4778 -1 -4798 4778 -1 -5178 4778 -1 -4779 4779 6 -4780 4779 -1 -4799 4779 -1 -5179 4779 -1 -4780 4780 6 -4800 4780 -1 -5180 4780 -1 -4781 4781 6 -4782 4781 -1 -5181 4781 -1 -4782 4782 6 -4783 4782 -1 -5182 4782 -1 -4783 4783 6 -4784 4783 -1 -5183 4783 -1 -4784 4784 6 -4785 4784 -1 -5184 4784 -1 -4785 4785 6 -4786 4785 -1 -5185 4785 -1 -4786 4786 6 -4787 4786 -1 -5186 4786 -1 -4787 4787 6 -4788 4787 -1 -5187 4787 -1 -4788 4788 6 -4789 4788 -1 -5188 4788 -1 -4789 4789 6 -4790 4789 -1 -5189 4789 -1 -4790 4790 6 -4791 4790 -1 -5190 4790 -1 -4791 4791 6 -4792 4791 -1 -5191 4791 -1 -4792 4792 6 -4793 4792 -1 -5192 4792 -1 -4793 4793 6 -4794 4793 -1 -5193 4793 -1 -4794 4794 6 -4795 4794 -1 -5194 4794 -1 -4795 4795 6 -4796 4795 -1 -5195 4795 -1 -4796 4796 6 -4797 4796 -1 -5196 4796 -1 -4797 4797 6 -4798 4797 -1 -5197 4797 -1 -4798 4798 6 -4799 4798 -1 -5198 4798 -1 -4799 4799 6 -4800 4799 -1 -5199 4799 -1 -4800 4800 6 -5200 4800 -1 -4801 4801 6 -4802 4801 -1 -4821 4801 -1 -5201 4801 -1 -4802 4802 6 -4803 4802 -1 -4822 4802 -1 -5202 4802 -1 -4803 4803 6 -4804 4803 -1 -4823 4803 -1 -5203 4803 -1 -4804 4804 6 -4805 4804 -1 -4824 4804 -1 -5204 4804 -1 -4805 4805 6 -4806 4805 -1 -4825 4805 -1 -5205 4805 -1 -4806 4806 6 -4807 4806 -1 -4826 4806 -1 -5206 4806 -1 -4807 4807 6 -4808 4807 -1 -4827 4807 -1 -5207 4807 -1 -4808 4808 6 -4809 4808 -1 -4828 4808 -1 -5208 4808 -1 -4809 4809 6 -4810 4809 -1 -4829 4809 -1 -5209 4809 -1 -4810 4810 6 -4811 4810 -1 -4830 4810 -1 -5210 4810 -1 -4811 4811 6 -4812 4811 -1 -4831 4811 -1 -5211 4811 -1 -4812 4812 6 -4813 4812 -1 -4832 4812 -1 -5212 4812 -1 -4813 4813 6 -4814 4813 -1 -4833 4813 -1 -5213 4813 -1 -4814 4814 6 -4815 4814 -1 -4834 4814 -1 -5214 4814 -1 -4815 4815 6 -4816 4815 -1 -4835 4815 -1 -5215 4815 -1 -4816 4816 6 -4817 4816 -1 -4836 4816 -1 -5216 4816 -1 -4817 4817 6 -4818 4817 -1 -4837 4817 -1 -5217 4817 -1 -4818 4818 6 -4819 4818 -1 -4838 4818 -1 -5218 4818 -1 -4819 4819 6 -4820 4819 -1 -4839 4819 -1 -5219 4819 -1 -4820 4820 6 -4840 4820 -1 -5220 4820 -1 -4821 4821 6 -4822 4821 -1 -4841 4821 -1 -5221 4821 -1 -4822 4822 6 -4823 4822 -1 -4842 4822 -1 -5222 4822 -1 -4823 4823 6 -4824 4823 -1 -4843 4823 -1 -5223 4823 -1 -4824 4824 6 -4825 4824 -1 -4844 4824 -1 -5224 4824 -1 -4825 4825 6 -4826 4825 -1 -4845 4825 -1 -5225 4825 -1 -4826 4826 6 -4827 4826 -1 -4846 4826 -1 -5226 4826 -1 -4827 4827 6 -4828 4827 -1 -4847 4827 -1 -5227 4827 -1 -4828 4828 6 -4829 4828 -1 -4848 4828 -1 -5228 4828 -1 -4829 4829 6 -4830 4829 -1 -4849 4829 -1 -5229 4829 -1 -4830 4830 6 -4831 4830 -1 -4850 4830 -1 -5230 4830 -1 -4831 4831 6 -4832 4831 -1 -4851 4831 -1 -5231 4831 -1 -4832 4832 6 -4833 4832 -1 -4852 4832 -1 -5232 4832 -1 -4833 4833 6 -4834 4833 -1 -4853 4833 -1 -5233 4833 -1 -4834 4834 6 -4835 4834 -1 -4854 4834 -1 -5234 4834 -1 -4835 4835 6 -4836 4835 -1 -4855 4835 -1 -5235 4835 -1 -4836 4836 6 -4837 4836 -1 -4856 4836 -1 -5236 4836 -1 -4837 4837 6 -4838 4837 -1 -4857 4837 -1 -5237 4837 -1 -4838 4838 6 -4839 4838 -1 -4858 4838 -1 -5238 4838 -1 -4839 4839 6 -4840 4839 -1 -4859 4839 -1 -5239 4839 -1 -4840 4840 6 -4860 4840 -1 -5240 4840 -1 -4841 4841 6 -4842 4841 -1 -4861 4841 -1 -5241 4841 -1 -4842 4842 6 -4843 4842 -1 -4862 4842 -1 -5242 4842 -1 -4843 4843 6 -4844 4843 -1 -4863 4843 -1 -5243 4843 -1 -4844 4844 6 -4845 4844 -1 -4864 4844 -1 -5244 4844 -1 -4845 4845 6 -4846 4845 -1 -4865 4845 -1 -5245 4845 -1 -4846 4846 6 -4847 4846 -1 -4866 4846 -1 -5246 4846 -1 -4847 4847 6 -4848 4847 -1 -4867 4847 -1 -5247 4847 -1 -4848 4848 6 -4849 4848 -1 -4868 4848 -1 -5248 4848 -1 -4849 4849 6 -4850 4849 -1 -4869 4849 -1 -5249 4849 -1 -4850 4850 6 -4851 4850 -1 -4870 4850 -1 -5250 4850 -1 -4851 4851 6 -4852 4851 -1 -4871 4851 -1 -5251 4851 -1 -4852 4852 6 -4853 4852 -1 -4872 4852 -1 -5252 4852 -1 -4853 4853 6 -4854 4853 -1 -4873 4853 -1 -5253 4853 -1 -4854 4854 6 -4855 4854 -1 -4874 4854 -1 -5254 4854 -1 -4855 4855 6 -4856 4855 -1 -4875 4855 -1 -5255 4855 -1 -4856 4856 6 -4857 4856 -1 -4876 4856 -1 -5256 4856 -1 -4857 4857 6 -4858 4857 -1 -4877 4857 -1 -5257 4857 -1 -4858 4858 6 -4859 4858 -1 -4878 4858 -1 -5258 4858 -1 -4859 4859 6 -4860 4859 -1 -4879 4859 -1 -5259 4859 -1 -4860 4860 6 -4880 4860 -1 -5260 4860 -1 -4861 4861 6 -4862 4861 -1 -4881 4861 -1 -5261 4861 -1 -4862 4862 6 -4863 4862 -1 -4882 4862 -1 -5262 4862 -1 -4863 4863 6 -4864 4863 -1 -4883 4863 -1 -5263 4863 -1 -4864 4864 6 -4865 4864 -1 -4884 4864 -1 -5264 4864 -1 -4865 4865 6 -4866 4865 -1 -4885 4865 -1 -5265 4865 -1 -4866 4866 6 -4867 4866 -1 -4886 4866 -1 -5266 4866 -1 -4867 4867 6 -4868 4867 -1 -4887 4867 -1 -5267 4867 -1 -4868 4868 6 -4869 4868 -1 -4888 4868 -1 -5268 4868 -1 -4869 4869 6 -4870 4869 -1 -4889 4869 -1 -5269 4869 -1 -4870 4870 6 -4871 4870 -1 -4890 4870 -1 -5270 4870 -1 -4871 4871 6 -4872 4871 -1 -4891 4871 -1 -5271 4871 -1 -4872 4872 6 -4873 4872 -1 -4892 4872 -1 -5272 4872 -1 -4873 4873 6 -4874 4873 -1 -4893 4873 -1 -5273 4873 -1 -4874 4874 6 -4875 4874 -1 -4894 4874 -1 -5274 4874 -1 -4875 4875 6 -4876 4875 -1 -4895 4875 -1 -5275 4875 -1 -4876 4876 6 -4877 4876 -1 -4896 4876 -1 -5276 4876 -1 -4877 4877 6 -4878 4877 -1 -4897 4877 -1 -5277 4877 -1 -4878 4878 6 -4879 4878 -1 -4898 4878 -1 -5278 4878 -1 -4879 4879 6 -4880 4879 -1 -4899 4879 -1 -5279 4879 -1 -4880 4880 6 -4900 4880 -1 -5280 4880 -1 -4881 4881 6 -4882 4881 -1 -4901 4881 -1 -5281 4881 -1 -4882 4882 6 -4883 4882 -1 -4902 4882 -1 -5282 4882 -1 -4883 4883 6 -4884 4883 -1 -4903 4883 -1 -5283 4883 -1 -4884 4884 6 -4885 4884 -1 -4904 4884 -1 -5284 4884 -1 -4885 4885 6 -4886 4885 -1 -4905 4885 -1 -5285 4885 -1 -4886 4886 6 -4887 4886 -1 -4906 4886 -1 -5286 4886 -1 -4887 4887 6 -4888 4887 -1 -4907 4887 -1 -5287 4887 -1 -4888 4888 6 -4889 4888 -1 -4908 4888 -1 -5288 4888 -1 -4889 4889 6 -4890 4889 -1 -4909 4889 -1 -5289 4889 -1 -4890 4890 6 -4891 4890 -1 -4910 4890 -1 -5290 4890 -1 -4891 4891 6 -4892 4891 -1 -4911 4891 -1 -5291 4891 -1 -4892 4892 6 -4893 4892 -1 -4912 4892 -1 -5292 4892 -1 -4893 4893 6 -4894 4893 -1 -4913 4893 -1 -5293 4893 -1 -4894 4894 6 -4895 4894 -1 -4914 4894 -1 -5294 4894 -1 -4895 4895 6 -4896 4895 -1 -4915 4895 -1 -5295 4895 -1 -4896 4896 6 -4897 4896 -1 -4916 4896 -1 -5296 4896 -1 -4897 4897 6 -4898 4897 -1 -4917 4897 -1 -5297 4897 -1 -4898 4898 6 -4899 4898 -1 -4918 4898 -1 -5298 4898 -1 -4899 4899 6 -4900 4899 -1 -4919 4899 -1 -5299 4899 -1 -4900 4900 6 -4920 4900 -1 -5300 4900 -1 -4901 4901 6 -4902 4901 -1 -4921 4901 -1 -5301 4901 -1 -4902 4902 6 -4903 4902 -1 -4922 4902 -1 -5302 4902 -1 -4903 4903 6 -4904 4903 -1 -4923 4903 -1 -5303 4903 -1 -4904 4904 6 -4905 4904 -1 -4924 4904 -1 -5304 4904 -1 -4905 4905 6 -4906 4905 -1 -4925 4905 -1 -5305 4905 -1 -4906 4906 6 -4907 4906 -1 -4926 4906 -1 -5306 4906 -1 -4907 4907 6 -4908 4907 -1 -4927 4907 -1 -5307 4907 -1 -4908 4908 6 -4909 4908 -1 -4928 4908 -1 -5308 4908 -1 -4909 4909 6 -4910 4909 -1 -4929 4909 -1 -5309 4909 -1 -4910 4910 6 -4911 4910 -1 -4930 4910 -1 -5310 4910 -1 -4911 4911 6 -4912 4911 -1 -4931 4911 -1 -5311 4911 -1 -4912 4912 6 -4913 4912 -1 -4932 4912 -1 -5312 4912 -1 -4913 4913 6 -4914 4913 -1 -4933 4913 -1 -5313 4913 -1 -4914 4914 6 -4915 4914 -1 -4934 4914 -1 -5314 4914 -1 -4915 4915 6 -4916 4915 -1 -4935 4915 -1 -5315 4915 -1 -4916 4916 6 -4917 4916 -1 -4936 4916 -1 -5316 4916 -1 -4917 4917 6 -4918 4917 -1 -4937 4917 -1 -5317 4917 -1 -4918 4918 6 -4919 4918 -1 -4938 4918 -1 -5318 4918 -1 -4919 4919 6 -4920 4919 -1 -4939 4919 -1 -5319 4919 -1 -4920 4920 6 -4940 4920 -1 -5320 4920 -1 -4921 4921 6 -4922 4921 -1 -4941 4921 -1 -5321 4921 -1 -4922 4922 6 -4923 4922 -1 -4942 4922 -1 -5322 4922 -1 -4923 4923 6 -4924 4923 -1 -4943 4923 -1 -5323 4923 -1 -4924 4924 6 -4925 4924 -1 -4944 4924 -1 -5324 4924 -1 -4925 4925 6 -4926 4925 -1 -4945 4925 -1 -5325 4925 -1 -4926 4926 6 -4927 4926 -1 -4946 4926 -1 -5326 4926 -1 -4927 4927 6 -4928 4927 -1 -4947 4927 -1 -5327 4927 -1 -4928 4928 6 -4929 4928 -1 -4948 4928 -1 -5328 4928 -1 -4929 4929 6 -4930 4929 -1 -4949 4929 -1 -5329 4929 -1 -4930 4930 6 -4931 4930 -1 -4950 4930 -1 -5330 4930 -1 -4931 4931 6 -4932 4931 -1 -4951 4931 -1 -5331 4931 -1 -4932 4932 6 -4933 4932 -1 -4952 4932 -1 -5332 4932 -1 -4933 4933 6 -4934 4933 -1 -4953 4933 -1 -5333 4933 -1 -4934 4934 6 -4935 4934 -1 -4954 4934 -1 -5334 4934 -1 -4935 4935 6 -4936 4935 -1 -4955 4935 -1 -5335 4935 -1 -4936 4936 6 -4937 4936 -1 -4956 4936 -1 -5336 4936 -1 -4937 4937 6 -4938 4937 -1 -4957 4937 -1 -5337 4937 -1 -4938 4938 6 -4939 4938 -1 -4958 4938 -1 -5338 4938 -1 -4939 4939 6 -4940 4939 -1 -4959 4939 -1 -5339 4939 -1 -4940 4940 6 -4960 4940 -1 -5340 4940 -1 -4941 4941 6 -4942 4941 -1 -4961 4941 -1 -5341 4941 -1 -4942 4942 6 -4943 4942 -1 -4962 4942 -1 -5342 4942 -1 -4943 4943 6 -4944 4943 -1 -4963 4943 -1 -5343 4943 -1 -4944 4944 6 -4945 4944 -1 -4964 4944 -1 -5344 4944 -1 -4945 4945 6 -4946 4945 -1 -4965 4945 -1 -5345 4945 -1 -4946 4946 6 -4947 4946 -1 -4966 4946 -1 -5346 4946 -1 -4947 4947 6 -4948 4947 -1 -4967 4947 -1 -5347 4947 -1 -4948 4948 6 -4949 4948 -1 -4968 4948 -1 -5348 4948 -1 -4949 4949 6 -4950 4949 -1 -4969 4949 -1 -5349 4949 -1 -4950 4950 6 -4951 4950 -1 -4970 4950 -1 -5350 4950 -1 -4951 4951 6 -4952 4951 -1 -4971 4951 -1 -5351 4951 -1 -4952 4952 6 -4953 4952 -1 -4972 4952 -1 -5352 4952 -1 -4953 4953 6 -4954 4953 -1 -4973 4953 -1 -5353 4953 -1 -4954 4954 6 -4955 4954 -1 -4974 4954 -1 -5354 4954 -1 -4955 4955 6 -4956 4955 -1 -4975 4955 -1 -5355 4955 -1 -4956 4956 6 -4957 4956 -1 -4976 4956 -1 -5356 4956 -1 -4957 4957 6 -4958 4957 -1 -4977 4957 -1 -5357 4957 -1 -4958 4958 6 -4959 4958 -1 -4978 4958 -1 -5358 4958 -1 -4959 4959 6 -4960 4959 -1 -4979 4959 -1 -5359 4959 -1 -4960 4960 6 -4980 4960 -1 -5360 4960 -1 -4961 4961 6 -4962 4961 -1 -4981 4961 -1 -5361 4961 -1 -4962 4962 6 -4963 4962 -1 -4982 4962 -1 -5362 4962 -1 -4963 4963 6 -4964 4963 -1 -4983 4963 -1 -5363 4963 -1 -4964 4964 6 -4965 4964 -1 -4984 4964 -1 -5364 4964 -1 -4965 4965 6 -4966 4965 -1 -4985 4965 -1 -5365 4965 -1 -4966 4966 6 -4967 4966 -1 -4986 4966 -1 -5366 4966 -1 -4967 4967 6 -4968 4967 -1 -4987 4967 -1 -5367 4967 -1 -4968 4968 6 -4969 4968 -1 -4988 4968 -1 -5368 4968 -1 -4969 4969 6 -4970 4969 -1 -4989 4969 -1 -5369 4969 -1 -4970 4970 6 -4971 4970 -1 -4990 4970 -1 -5370 4970 -1 -4971 4971 6 -4972 4971 -1 -4991 4971 -1 -5371 4971 -1 -4972 4972 6 -4973 4972 -1 -4992 4972 -1 -5372 4972 -1 -4973 4973 6 -4974 4973 -1 -4993 4973 -1 -5373 4973 -1 -4974 4974 6 -4975 4974 -1 -4994 4974 -1 -5374 4974 -1 -4975 4975 6 -4976 4975 -1 -4995 4975 -1 -5375 4975 -1 -4976 4976 6 -4977 4976 -1 -4996 4976 -1 -5376 4976 -1 -4977 4977 6 -4978 4977 -1 -4997 4977 -1 -5377 4977 -1 -4978 4978 6 -4979 4978 -1 -4998 4978 -1 -5378 4978 -1 -4979 4979 6 -4980 4979 -1 -4999 4979 -1 -5379 4979 -1 -4980 4980 6 -5000 4980 -1 -5380 4980 -1 -4981 4981 6 -4982 4981 -1 -5001 4981 -1 -5381 4981 -1 -4982 4982 6 -4983 4982 -1 -5002 4982 -1 -5382 4982 -1 -4983 4983 6 -4984 4983 -1 -5003 4983 -1 -5383 4983 -1 -4984 4984 6 -4985 4984 -1 -5004 4984 -1 -5384 4984 -1 -4985 4985 6 -4986 4985 -1 -5005 4985 -1 -5385 4985 -1 -4986 4986 6 -4987 4986 -1 -5006 4986 -1 -5386 4986 -1 -4987 4987 6 -4988 4987 -1 -5007 4987 -1 -5387 4987 -1 -4988 4988 6 -4989 4988 -1 -5008 4988 -1 -5388 4988 -1 -4989 4989 6 -4990 4989 -1 -5009 4989 -1 -5389 4989 -1 -4990 4990 6 -4991 4990 -1 -5010 4990 -1 -5390 4990 -1 -4991 4991 6 -4992 4991 -1 -5011 4991 -1 -5391 4991 -1 -4992 4992 6 -4993 4992 -1 -5012 4992 -1 -5392 4992 -1 -4993 4993 6 -4994 4993 -1 -5013 4993 -1 -5393 4993 -1 -4994 4994 6 -4995 4994 -1 -5014 4994 -1 -5394 4994 -1 -4995 4995 6 -4996 4995 -1 -5015 4995 -1 -5395 4995 -1 -4996 4996 6 -4997 4996 -1 -5016 4996 -1 -5396 4996 -1 -4997 4997 6 -4998 4997 -1 -5017 4997 -1 -5397 4997 -1 -4998 4998 6 -4999 4998 -1 -5018 4998 -1 -5398 4998 -1 -4999 4999 6 -5000 4999 -1 -5019 4999 -1 -5399 4999 -1 -5000 5000 6 -5020 5000 -1 -5400 5000 -1 -5001 5001 6 -5002 5001 -1 -5021 5001 -1 -5401 5001 -1 -5002 5002 6 -5003 5002 -1 -5022 5002 -1 -5402 5002 -1 -5003 5003 6 -5004 5003 -1 -5023 5003 -1 -5403 5003 -1 -5004 5004 6 -5005 5004 -1 -5024 5004 -1 -5404 5004 -1 -5005 5005 6 -5006 5005 -1 -5025 5005 -1 -5405 5005 -1 -5006 5006 6 -5007 5006 -1 -5026 5006 -1 -5406 5006 -1 -5007 5007 6 -5008 5007 -1 -5027 5007 -1 -5407 5007 -1 -5008 5008 6 -5009 5008 -1 -5028 5008 -1 -5408 5008 -1 -5009 5009 6 -5010 5009 -1 -5029 5009 -1 -5409 5009 -1 -5010 5010 6 -5011 5010 -1 -5030 5010 -1 -5410 5010 -1 -5011 5011 6 -5012 5011 -1 -5031 5011 -1 -5411 5011 -1 -5012 5012 6 -5013 5012 -1 -5032 5012 -1 -5412 5012 -1 -5013 5013 6 -5014 5013 -1 -5033 5013 -1 -5413 5013 -1 -5014 5014 6 -5015 5014 -1 -5034 5014 -1 -5414 5014 -1 -5015 5015 6 -5016 5015 -1 -5035 5015 -1 -5415 5015 -1 -5016 5016 6 -5017 5016 -1 -5036 5016 -1 -5416 5016 -1 -5017 5017 6 -5018 5017 -1 -5037 5017 -1 -5417 5017 -1 -5018 5018 6 -5019 5018 -1 -5038 5018 -1 -5418 5018 -1 -5019 5019 6 -5020 5019 -1 -5039 5019 -1 -5419 5019 -1 -5020 5020 6 -5040 5020 -1 -5420 5020 -1 -5021 5021 6 -5022 5021 -1 -5041 5021 -1 -5421 5021 -1 -5022 5022 6 -5023 5022 -1 -5042 5022 -1 -5422 5022 -1 -5023 5023 6 -5024 5023 -1 -5043 5023 -1 -5423 5023 -1 -5024 5024 6 -5025 5024 -1 -5044 5024 -1 -5424 5024 -1 -5025 5025 6 -5026 5025 -1 -5045 5025 -1 -5425 5025 -1 -5026 5026 6 -5027 5026 -1 -5046 5026 -1 -5426 5026 -1 -5027 5027 6 -5028 5027 -1 -5047 5027 -1 -5427 5027 -1 -5028 5028 6 -5029 5028 -1 -5048 5028 -1 -5428 5028 -1 -5029 5029 6 -5030 5029 -1 -5049 5029 -1 -5429 5029 -1 -5030 5030 6 -5031 5030 -1 -5050 5030 -1 -5430 5030 -1 -5031 5031 6 -5032 5031 -1 -5051 5031 -1 -5431 5031 -1 -5032 5032 6 -5033 5032 -1 -5052 5032 -1 -5432 5032 -1 -5033 5033 6 -5034 5033 -1 -5053 5033 -1 -5433 5033 -1 -5034 5034 6 -5035 5034 -1 -5054 5034 -1 -5434 5034 -1 -5035 5035 6 -5036 5035 -1 -5055 5035 -1 -5435 5035 -1 -5036 5036 6 -5037 5036 -1 -5056 5036 -1 -5436 5036 -1 -5037 5037 6 -5038 5037 -1 -5057 5037 -1 -5437 5037 -1 -5038 5038 6 -5039 5038 -1 -5058 5038 -1 -5438 5038 -1 -5039 5039 6 -5040 5039 -1 -5059 5039 -1 -5439 5039 -1 -5040 5040 6 -5060 5040 -1 -5440 5040 -1 -5041 5041 6 -5042 5041 -1 -5061 5041 -1 -5441 5041 -1 -5042 5042 6 -5043 5042 -1 -5062 5042 -1 -5442 5042 -1 -5043 5043 6 -5044 5043 -1 -5063 5043 -1 -5443 5043 -1 -5044 5044 6 -5045 5044 -1 -5064 5044 -1 -5444 5044 -1 -5045 5045 6 -5046 5045 -1 -5065 5045 -1 -5445 5045 -1 -5046 5046 6 -5047 5046 -1 -5066 5046 -1 -5446 5046 -1 -5047 5047 6 -5048 5047 -1 -5067 5047 -1 -5447 5047 -1 -5048 5048 6 -5049 5048 -1 -5068 5048 -1 -5448 5048 -1 -5049 5049 6 -5050 5049 -1 -5069 5049 -1 -5449 5049 -1 -5050 5050 6 -5051 5050 -1 -5070 5050 -1 -5450 5050 -1 -5051 5051 6 -5052 5051 -1 -5071 5051 -1 -5451 5051 -1 -5052 5052 6 -5053 5052 -1 -5072 5052 -1 -5452 5052 -1 -5053 5053 6 -5054 5053 -1 -5073 5053 -1 -5453 5053 -1 -5054 5054 6 -5055 5054 -1 -5074 5054 -1 -5454 5054 -1 -5055 5055 6 -5056 5055 -1 -5075 5055 -1 -5455 5055 -1 -5056 5056 6 -5057 5056 -1 -5076 5056 -1 -5456 5056 -1 -5057 5057 6 -5058 5057 -1 -5077 5057 -1 -5457 5057 -1 -5058 5058 6 -5059 5058 -1 -5078 5058 -1 -5458 5058 -1 -5059 5059 6 -5060 5059 -1 -5079 5059 -1 -5459 5059 -1 -5060 5060 6 -5080 5060 -1 -5460 5060 -1 -5061 5061 6 -5062 5061 -1 -5081 5061 -1 -5461 5061 -1 -5062 5062 6 -5063 5062 -1 -5082 5062 -1 -5462 5062 -1 -5063 5063 6 -5064 5063 -1 -5083 5063 -1 -5463 5063 -1 -5064 5064 6 -5065 5064 -1 -5084 5064 -1 -5464 5064 -1 -5065 5065 6 -5066 5065 -1 -5085 5065 -1 -5465 5065 -1 -5066 5066 6 -5067 5066 -1 -5086 5066 -1 -5466 5066 -1 -5067 5067 6 -5068 5067 -1 -5087 5067 -1 -5467 5067 -1 -5068 5068 6 -5069 5068 -1 -5088 5068 -1 -5468 5068 -1 -5069 5069 6 -5070 5069 -1 -5089 5069 -1 -5469 5069 -1 -5070 5070 6 -5071 5070 -1 -5090 5070 -1 -5470 5070 -1 -5071 5071 6 -5072 5071 -1 -5091 5071 -1 -5471 5071 -1 -5072 5072 6 -5073 5072 -1 -5092 5072 -1 -5472 5072 -1 -5073 5073 6 -5074 5073 -1 -5093 5073 -1 -5473 5073 -1 -5074 5074 6 -5075 5074 -1 -5094 5074 -1 -5474 5074 -1 -5075 5075 6 -5076 5075 -1 -5095 5075 -1 -5475 5075 -1 -5076 5076 6 -5077 5076 -1 -5096 5076 -1 -5476 5076 -1 -5077 5077 6 -5078 5077 -1 -5097 5077 -1 -5477 5077 -1 -5078 5078 6 -5079 5078 -1 -5098 5078 -1 -5478 5078 -1 -5079 5079 6 -5080 5079 -1 -5099 5079 -1 -5479 5079 -1 -5080 5080 6 -5100 5080 -1 -5480 5080 -1 -5081 5081 6 -5082 5081 -1 -5101 5081 -1 -5481 5081 -1 -5082 5082 6 -5083 5082 -1 -5102 5082 -1 -5482 5082 -1 -5083 5083 6 -5084 5083 -1 -5103 5083 -1 -5483 5083 -1 -5084 5084 6 -5085 5084 -1 -5104 5084 -1 -5484 5084 -1 -5085 5085 6 -5086 5085 -1 -5105 5085 -1 -5485 5085 -1 -5086 5086 6 -5087 5086 -1 -5106 5086 -1 -5486 5086 -1 -5087 5087 6 -5088 5087 -1 -5107 5087 -1 -5487 5087 -1 -5088 5088 6 -5089 5088 -1 -5108 5088 -1 -5488 5088 -1 -5089 5089 6 -5090 5089 -1 -5109 5089 -1 -5489 5089 -1 -5090 5090 6 -5091 5090 -1 -5110 5090 -1 -5490 5090 -1 -5091 5091 6 -5092 5091 -1 -5111 5091 -1 -5491 5091 -1 -5092 5092 6 -5093 5092 -1 -5112 5092 -1 -5492 5092 -1 -5093 5093 6 -5094 5093 -1 -5113 5093 -1 -5493 5093 -1 -5094 5094 6 -5095 5094 -1 -5114 5094 -1 -5494 5094 -1 -5095 5095 6 -5096 5095 -1 -5115 5095 -1 -5495 5095 -1 -5096 5096 6 -5097 5096 -1 -5116 5096 -1 -5496 5096 -1 -5097 5097 6 -5098 5097 -1 -5117 5097 -1 -5497 5097 -1 -5098 5098 6 -5099 5098 -1 -5118 5098 -1 -5498 5098 -1 -5099 5099 6 -5100 5099 -1 -5119 5099 -1 -5499 5099 -1 -5100 5100 6 -5120 5100 -1 -5500 5100 -1 -5101 5101 6 -5102 5101 -1 -5121 5101 -1 -5501 5101 -1 -5102 5102 6 -5103 5102 -1 -5122 5102 -1 -5502 5102 -1 -5103 5103 6 -5104 5103 -1 -5123 5103 -1 -5503 5103 -1 -5104 5104 6 -5105 5104 -1 -5124 5104 -1 -5504 5104 -1 -5105 5105 6 -5106 5105 -1 -5125 5105 -1 -5505 5105 -1 -5106 5106 6 -5107 5106 -1 -5126 5106 -1 -5506 5106 -1 -5107 5107 6 -5108 5107 -1 -5127 5107 -1 -5507 5107 -1 -5108 5108 6 -5109 5108 -1 -5128 5108 -1 -5508 5108 -1 -5109 5109 6 -5110 5109 -1 -5129 5109 -1 -5509 5109 -1 -5110 5110 6 -5111 5110 -1 -5130 5110 -1 -5510 5110 -1 -5111 5111 6 -5112 5111 -1 -5131 5111 -1 -5511 5111 -1 -5112 5112 6 -5113 5112 -1 -5132 5112 -1 -5512 5112 -1 -5113 5113 6 -5114 5113 -1 -5133 5113 -1 -5513 5113 -1 -5114 5114 6 -5115 5114 -1 -5134 5114 -1 -5514 5114 -1 -5115 5115 6 -5116 5115 -1 -5135 5115 -1 -5515 5115 -1 -5116 5116 6 -5117 5116 -1 -5136 5116 -1 -5516 5116 -1 -5117 5117 6 -5118 5117 -1 -5137 5117 -1 -5517 5117 -1 -5118 5118 6 -5119 5118 -1 -5138 5118 -1 -5518 5118 -1 -5119 5119 6 -5120 5119 -1 -5139 5119 -1 -5519 5119 -1 -5120 5120 6 -5140 5120 -1 -5520 5120 -1 -5121 5121 6 -5122 5121 -1 -5141 5121 -1 -5521 5121 -1 -5122 5122 6 -5123 5122 -1 -5142 5122 -1 -5522 5122 -1 -5123 5123 6 -5124 5123 -1 -5143 5123 -1 -5523 5123 -1 -5124 5124 6 -5125 5124 -1 -5144 5124 -1 -5524 5124 -1 -5125 5125 6 -5126 5125 -1 -5145 5125 -1 -5525 5125 -1 -5126 5126 6 -5127 5126 -1 -5146 5126 -1 -5526 5126 -1 -5127 5127 6 -5128 5127 -1 -5147 5127 -1 -5527 5127 -1 -5128 5128 6 -5129 5128 -1 -5148 5128 -1 -5528 5128 -1 -5129 5129 6 -5130 5129 -1 -5149 5129 -1 -5529 5129 -1 -5130 5130 6 -5131 5130 -1 -5150 5130 -1 -5530 5130 -1 -5131 5131 6 -5132 5131 -1 -5151 5131 -1 -5531 5131 -1 -5132 5132 6 -5133 5132 -1 -5152 5132 -1 -5532 5132 -1 -5133 5133 6 -5134 5133 -1 -5153 5133 -1 -5533 5133 -1 -5134 5134 6 -5135 5134 -1 -5154 5134 -1 -5534 5134 -1 -5135 5135 6 -5136 5135 -1 -5155 5135 -1 -5535 5135 -1 -5136 5136 6 -5137 5136 -1 -5156 5136 -1 -5536 5136 -1 -5137 5137 6 -5138 5137 -1 -5157 5137 -1 -5537 5137 -1 -5138 5138 6 -5139 5138 -1 -5158 5138 -1 -5538 5138 -1 -5139 5139 6 -5140 5139 -1 -5159 5139 -1 -5539 5139 -1 -5140 5140 6 -5160 5140 -1 -5540 5140 -1 -5141 5141 6 -5142 5141 -1 -5161 5141 -1 -5541 5141 -1 -5142 5142 6 -5143 5142 -1 -5162 5142 -1 -5542 5142 -1 -5143 5143 6 -5144 5143 -1 -5163 5143 -1 -5543 5143 -1 -5144 5144 6 -5145 5144 -1 -5164 5144 -1 -5544 5144 -1 -5145 5145 6 -5146 5145 -1 -5165 5145 -1 -5545 5145 -1 -5146 5146 6 -5147 5146 -1 -5166 5146 -1 -5546 5146 -1 -5147 5147 6 -5148 5147 -1 -5167 5147 -1 -5547 5147 -1 -5148 5148 6 -5149 5148 -1 -5168 5148 -1 -5548 5148 -1 -5149 5149 6 -5150 5149 -1 -5169 5149 -1 -5549 5149 -1 -5150 5150 6 -5151 5150 -1 -5170 5150 -1 -5550 5150 -1 -5151 5151 6 -5152 5151 -1 -5171 5151 -1 -5551 5151 -1 -5152 5152 6 -5153 5152 -1 -5172 5152 -1 -5552 5152 -1 -5153 5153 6 -5154 5153 -1 -5173 5153 -1 -5553 5153 -1 -5154 5154 6 -5155 5154 -1 -5174 5154 -1 -5554 5154 -1 -5155 5155 6 -5156 5155 -1 -5175 5155 -1 -5555 5155 -1 -5156 5156 6 -5157 5156 -1 -5176 5156 -1 -5556 5156 -1 -5157 5157 6 -5158 5157 -1 -5177 5157 -1 -5557 5157 -1 -5158 5158 6 -5159 5158 -1 -5178 5158 -1 -5558 5158 -1 -5159 5159 6 -5160 5159 -1 -5179 5159 -1 -5559 5159 -1 -5160 5160 6 -5180 5160 -1 -5560 5160 -1 -5161 5161 6 -5162 5161 -1 -5181 5161 -1 -5561 5161 -1 -5162 5162 6 -5163 5162 -1 -5182 5162 -1 -5562 5162 -1 -5163 5163 6 -5164 5163 -1 -5183 5163 -1 -5563 5163 -1 -5164 5164 6 -5165 5164 -1 -5184 5164 -1 -5564 5164 -1 -5165 5165 6 -5166 5165 -1 -5185 5165 -1 -5565 5165 -1 -5166 5166 6 -5167 5166 -1 -5186 5166 -1 -5566 5166 -1 -5167 5167 6 -5168 5167 -1 -5187 5167 -1 -5567 5167 -1 -5168 5168 6 -5169 5168 -1 -5188 5168 -1 -5568 5168 -1 -5169 5169 6 -5170 5169 -1 -5189 5169 -1 -5569 5169 -1 -5170 5170 6 -5171 5170 -1 -5190 5170 -1 -5570 5170 -1 -5171 5171 6 -5172 5171 -1 -5191 5171 -1 -5571 5171 -1 -5172 5172 6 -5173 5172 -1 -5192 5172 -1 -5572 5172 -1 -5173 5173 6 -5174 5173 -1 -5193 5173 -1 -5573 5173 -1 -5174 5174 6 -5175 5174 -1 -5194 5174 -1 -5574 5174 -1 -5175 5175 6 -5176 5175 -1 -5195 5175 -1 -5575 5175 -1 -5176 5176 6 -5177 5176 -1 -5196 5176 -1 -5576 5176 -1 -5177 5177 6 -5178 5177 -1 -5197 5177 -1 -5577 5177 -1 -5178 5178 6 -5179 5178 -1 -5198 5178 -1 -5578 5178 -1 -5179 5179 6 -5180 5179 -1 -5199 5179 -1 -5579 5179 -1 -5180 5180 6 -5200 5180 -1 -5580 5180 -1 -5181 5181 6 -5182 5181 -1 -5581 5181 -1 -5182 5182 6 -5183 5182 -1 -5582 5182 -1 -5183 5183 6 -5184 5183 -1 -5583 5183 -1 -5184 5184 6 -5185 5184 -1 -5584 5184 -1 -5185 5185 6 -5186 5185 -1 -5585 5185 -1 -5186 5186 6 -5187 5186 -1 -5586 5186 -1 -5187 5187 6 -5188 5187 -1 -5587 5187 -1 -5188 5188 6 -5189 5188 -1 -5588 5188 -1 -5189 5189 6 -5190 5189 -1 -5589 5189 -1 -5190 5190 6 -5191 5190 -1 -5590 5190 -1 -5191 5191 6 -5192 5191 -1 -5591 5191 -1 -5192 5192 6 -5193 5192 -1 -5592 5192 -1 -5193 5193 6 -5194 5193 -1 -5593 5193 -1 -5194 5194 6 -5195 5194 -1 -5594 5194 -1 -5195 5195 6 -5196 5195 -1 -5595 5195 -1 -5196 5196 6 -5197 5196 -1 -5596 5196 -1 -5197 5197 6 -5198 5197 -1 -5597 5197 -1 -5198 5198 6 -5199 5198 -1 -5598 5198 -1 -5199 5199 6 -5200 5199 -1 -5599 5199 -1 -5200 5200 6 -5600 5200 -1 -5201 5201 6 -5202 5201 -1 -5221 5201 -1 -5601 5201 -1 -5202 5202 6 -5203 5202 -1 -5222 5202 -1 -5602 5202 -1 -5203 5203 6 -5204 5203 -1 -5223 5203 -1 -5603 5203 -1 -5204 5204 6 -5205 5204 -1 -5224 5204 -1 -5604 5204 -1 -5205 5205 6 -5206 5205 -1 -5225 5205 -1 -5605 5205 -1 -5206 5206 6 -5207 5206 -1 -5226 5206 -1 -5606 5206 -1 -5207 5207 6 -5208 5207 -1 -5227 5207 -1 -5607 5207 -1 -5208 5208 6 -5209 5208 -1 -5228 5208 -1 -5608 5208 -1 -5209 5209 6 -5210 5209 -1 -5229 5209 -1 -5609 5209 -1 -5210 5210 6 -5211 5210 -1 -5230 5210 -1 -5610 5210 -1 -5211 5211 6 -5212 5211 -1 -5231 5211 -1 -5611 5211 -1 -5212 5212 6 -5213 5212 -1 -5232 5212 -1 -5612 5212 -1 -5213 5213 6 -5214 5213 -1 -5233 5213 -1 -5613 5213 -1 -5214 5214 6 -5215 5214 -1 -5234 5214 -1 -5614 5214 -1 -5215 5215 6 -5216 5215 -1 -5235 5215 -1 -5615 5215 -1 -5216 5216 6 -5217 5216 -1 -5236 5216 -1 -5616 5216 -1 -5217 5217 6 -5218 5217 -1 -5237 5217 -1 -5617 5217 -1 -5218 5218 6 -5219 5218 -1 -5238 5218 -1 -5618 5218 -1 -5219 5219 6 -5220 5219 -1 -5239 5219 -1 -5619 5219 -1 -5220 5220 6 -5240 5220 -1 -5620 5220 -1 -5221 5221 6 -5222 5221 -1 -5241 5221 -1 -5621 5221 -1 -5222 5222 6 -5223 5222 -1 -5242 5222 -1 -5622 5222 -1 -5223 5223 6 -5224 5223 -1 -5243 5223 -1 -5623 5223 -1 -5224 5224 6 -5225 5224 -1 -5244 5224 -1 -5624 5224 -1 -5225 5225 6 -5226 5225 -1 -5245 5225 -1 -5625 5225 -1 -5226 5226 6 -5227 5226 -1 -5246 5226 -1 -5626 5226 -1 -5227 5227 6 -5228 5227 -1 -5247 5227 -1 -5627 5227 -1 -5228 5228 6 -5229 5228 -1 -5248 5228 -1 -5628 5228 -1 -5229 5229 6 -5230 5229 -1 -5249 5229 -1 -5629 5229 -1 -5230 5230 6 -5231 5230 -1 -5250 5230 -1 -5630 5230 -1 -5231 5231 6 -5232 5231 -1 -5251 5231 -1 -5631 5231 -1 -5232 5232 6 -5233 5232 -1 -5252 5232 -1 -5632 5232 -1 -5233 5233 6 -5234 5233 -1 -5253 5233 -1 -5633 5233 -1 -5234 5234 6 -5235 5234 -1 -5254 5234 -1 -5634 5234 -1 -5235 5235 6 -5236 5235 -1 -5255 5235 -1 -5635 5235 -1 -5236 5236 6 -5237 5236 -1 -5256 5236 -1 -5636 5236 -1 -5237 5237 6 -5238 5237 -1 -5257 5237 -1 -5637 5237 -1 -5238 5238 6 -5239 5238 -1 -5258 5238 -1 -5638 5238 -1 -5239 5239 6 -5240 5239 -1 -5259 5239 -1 -5639 5239 -1 -5240 5240 6 -5260 5240 -1 -5640 5240 -1 -5241 5241 6 -5242 5241 -1 -5261 5241 -1 -5641 5241 -1 -5242 5242 6 -5243 5242 -1 -5262 5242 -1 -5642 5242 -1 -5243 5243 6 -5244 5243 -1 -5263 5243 -1 -5643 5243 -1 -5244 5244 6 -5245 5244 -1 -5264 5244 -1 -5644 5244 -1 -5245 5245 6 -5246 5245 -1 -5265 5245 -1 -5645 5245 -1 -5246 5246 6 -5247 5246 -1 -5266 5246 -1 -5646 5246 -1 -5247 5247 6 -5248 5247 -1 -5267 5247 -1 -5647 5247 -1 -5248 5248 6 -5249 5248 -1 -5268 5248 -1 -5648 5248 -1 -5249 5249 6 -5250 5249 -1 -5269 5249 -1 -5649 5249 -1 -5250 5250 6 -5251 5250 -1 -5270 5250 -1 -5650 5250 -1 -5251 5251 6 -5252 5251 -1 -5271 5251 -1 -5651 5251 -1 -5252 5252 6 -5253 5252 -1 -5272 5252 -1 -5652 5252 -1 -5253 5253 6 -5254 5253 -1 -5273 5253 -1 -5653 5253 -1 -5254 5254 6 -5255 5254 -1 -5274 5254 -1 -5654 5254 -1 -5255 5255 6 -5256 5255 -1 -5275 5255 -1 -5655 5255 -1 -5256 5256 6 -5257 5256 -1 -5276 5256 -1 -5656 5256 -1 -5257 5257 6 -5258 5257 -1 -5277 5257 -1 -5657 5257 -1 -5258 5258 6 -5259 5258 -1 -5278 5258 -1 -5658 5258 -1 -5259 5259 6 -5260 5259 -1 -5279 5259 -1 -5659 5259 -1 -5260 5260 6 -5280 5260 -1 -5660 5260 -1 -5261 5261 6 -5262 5261 -1 -5281 5261 -1 -5661 5261 -1 -5262 5262 6 -5263 5262 -1 -5282 5262 -1 -5662 5262 -1 -5263 5263 6 -5264 5263 -1 -5283 5263 -1 -5663 5263 -1 -5264 5264 6 -5265 5264 -1 -5284 5264 -1 -5664 5264 -1 -5265 5265 6 -5266 5265 -1 -5285 5265 -1 -5665 5265 -1 -5266 5266 6 -5267 5266 -1 -5286 5266 -1 -5666 5266 -1 -5267 5267 6 -5268 5267 -1 -5287 5267 -1 -5667 5267 -1 -5268 5268 6 -5269 5268 -1 -5288 5268 -1 -5668 5268 -1 -5269 5269 6 -5270 5269 -1 -5289 5269 -1 -5669 5269 -1 -5270 5270 6 -5271 5270 -1 -5290 5270 -1 -5670 5270 -1 -5271 5271 6 -5272 5271 -1 -5291 5271 -1 -5671 5271 -1 -5272 5272 6 -5273 5272 -1 -5292 5272 -1 -5672 5272 -1 -5273 5273 6 -5274 5273 -1 -5293 5273 -1 -5673 5273 -1 -5274 5274 6 -5275 5274 -1 -5294 5274 -1 -5674 5274 -1 -5275 5275 6 -5276 5275 -1 -5295 5275 -1 -5675 5275 -1 -5276 5276 6 -5277 5276 -1 -5296 5276 -1 -5676 5276 -1 -5277 5277 6 -5278 5277 -1 -5297 5277 -1 -5677 5277 -1 -5278 5278 6 -5279 5278 -1 -5298 5278 -1 -5678 5278 -1 -5279 5279 6 -5280 5279 -1 -5299 5279 -1 -5679 5279 -1 -5280 5280 6 -5300 5280 -1 -5680 5280 -1 -5281 5281 6 -5282 5281 -1 -5301 5281 -1 -5681 5281 -1 -5282 5282 6 -5283 5282 -1 -5302 5282 -1 -5682 5282 -1 -5283 5283 6 -5284 5283 -1 -5303 5283 -1 -5683 5283 -1 -5284 5284 6 -5285 5284 -1 -5304 5284 -1 -5684 5284 -1 -5285 5285 6 -5286 5285 -1 -5305 5285 -1 -5685 5285 -1 -5286 5286 6 -5287 5286 -1 -5306 5286 -1 -5686 5286 -1 -5287 5287 6 -5288 5287 -1 -5307 5287 -1 -5687 5287 -1 -5288 5288 6 -5289 5288 -1 -5308 5288 -1 -5688 5288 -1 -5289 5289 6 -5290 5289 -1 -5309 5289 -1 -5689 5289 -1 -5290 5290 6 -5291 5290 -1 -5310 5290 -1 -5690 5290 -1 -5291 5291 6 -5292 5291 -1 -5311 5291 -1 -5691 5291 -1 -5292 5292 6 -5293 5292 -1 -5312 5292 -1 -5692 5292 -1 -5293 5293 6 -5294 5293 -1 -5313 5293 -1 -5693 5293 -1 -5294 5294 6 -5295 5294 -1 -5314 5294 -1 -5694 5294 -1 -5295 5295 6 -5296 5295 -1 -5315 5295 -1 -5695 5295 -1 -5296 5296 6 -5297 5296 -1 -5316 5296 -1 -5696 5296 -1 -5297 5297 6 -5298 5297 -1 -5317 5297 -1 -5697 5297 -1 -5298 5298 6 -5299 5298 -1 -5318 5298 -1 -5698 5298 -1 -5299 5299 6 -5300 5299 -1 -5319 5299 -1 -5699 5299 -1 -5300 5300 6 -5320 5300 -1 -5700 5300 -1 -5301 5301 6 -5302 5301 -1 -5321 5301 -1 -5701 5301 -1 -5302 5302 6 -5303 5302 -1 -5322 5302 -1 -5702 5302 -1 -5303 5303 6 -5304 5303 -1 -5323 5303 -1 -5703 5303 -1 -5304 5304 6 -5305 5304 -1 -5324 5304 -1 -5704 5304 -1 -5305 5305 6 -5306 5305 -1 -5325 5305 -1 -5705 5305 -1 -5306 5306 6 -5307 5306 -1 -5326 5306 -1 -5706 5306 -1 -5307 5307 6 -5308 5307 -1 -5327 5307 -1 -5707 5307 -1 -5308 5308 6 -5309 5308 -1 -5328 5308 -1 -5708 5308 -1 -5309 5309 6 -5310 5309 -1 -5329 5309 -1 -5709 5309 -1 -5310 5310 6 -5311 5310 -1 -5330 5310 -1 -5710 5310 -1 -5311 5311 6 -5312 5311 -1 -5331 5311 -1 -5711 5311 -1 -5312 5312 6 -5313 5312 -1 -5332 5312 -1 -5712 5312 -1 -5313 5313 6 -5314 5313 -1 -5333 5313 -1 -5713 5313 -1 -5314 5314 6 -5315 5314 -1 -5334 5314 -1 -5714 5314 -1 -5315 5315 6 -5316 5315 -1 -5335 5315 -1 -5715 5315 -1 -5316 5316 6 -5317 5316 -1 -5336 5316 -1 -5716 5316 -1 -5317 5317 6 -5318 5317 -1 -5337 5317 -1 -5717 5317 -1 -5318 5318 6 -5319 5318 -1 -5338 5318 -1 -5718 5318 -1 -5319 5319 6 -5320 5319 -1 -5339 5319 -1 -5719 5319 -1 -5320 5320 6 -5340 5320 -1 -5720 5320 -1 -5321 5321 6 -5322 5321 -1 -5341 5321 -1 -5721 5321 -1 -5322 5322 6 -5323 5322 -1 -5342 5322 -1 -5722 5322 -1 -5323 5323 6 -5324 5323 -1 -5343 5323 -1 -5723 5323 -1 -5324 5324 6 -5325 5324 -1 -5344 5324 -1 -5724 5324 -1 -5325 5325 6 -5326 5325 -1 -5345 5325 -1 -5725 5325 -1 -5326 5326 6 -5327 5326 -1 -5346 5326 -1 -5726 5326 -1 -5327 5327 6 -5328 5327 -1 -5347 5327 -1 -5727 5327 -1 -5328 5328 6 -5329 5328 -1 -5348 5328 -1 -5728 5328 -1 -5329 5329 6 -5330 5329 -1 -5349 5329 -1 -5729 5329 -1 -5330 5330 6 -5331 5330 -1 -5350 5330 -1 -5730 5330 -1 -5331 5331 6 -5332 5331 -1 -5351 5331 -1 -5731 5331 -1 -5332 5332 6 -5333 5332 -1 -5352 5332 -1 -5732 5332 -1 -5333 5333 6 -5334 5333 -1 -5353 5333 -1 -5733 5333 -1 -5334 5334 6 -5335 5334 -1 -5354 5334 -1 -5734 5334 -1 -5335 5335 6 -5336 5335 -1 -5355 5335 -1 -5735 5335 -1 -5336 5336 6 -5337 5336 -1 -5356 5336 -1 -5736 5336 -1 -5337 5337 6 -5338 5337 -1 -5357 5337 -1 -5737 5337 -1 -5338 5338 6 -5339 5338 -1 -5358 5338 -1 -5738 5338 -1 -5339 5339 6 -5340 5339 -1 -5359 5339 -1 -5739 5339 -1 -5340 5340 6 -5360 5340 -1 -5740 5340 -1 -5341 5341 6 -5342 5341 -1 -5361 5341 -1 -5741 5341 -1 -5342 5342 6 -5343 5342 -1 -5362 5342 -1 -5742 5342 -1 -5343 5343 6 -5344 5343 -1 -5363 5343 -1 -5743 5343 -1 -5344 5344 6 -5345 5344 -1 -5364 5344 -1 -5744 5344 -1 -5345 5345 6 -5346 5345 -1 -5365 5345 -1 -5745 5345 -1 -5346 5346 6 -5347 5346 -1 -5366 5346 -1 -5746 5346 -1 -5347 5347 6 -5348 5347 -1 -5367 5347 -1 -5747 5347 -1 -5348 5348 6 -5349 5348 -1 -5368 5348 -1 -5748 5348 -1 -5349 5349 6 -5350 5349 -1 -5369 5349 -1 -5749 5349 -1 -5350 5350 6 -5351 5350 -1 -5370 5350 -1 -5750 5350 -1 -5351 5351 6 -5352 5351 -1 -5371 5351 -1 -5751 5351 -1 -5352 5352 6 -5353 5352 -1 -5372 5352 -1 -5752 5352 -1 -5353 5353 6 -5354 5353 -1 -5373 5353 -1 -5753 5353 -1 -5354 5354 6 -5355 5354 -1 -5374 5354 -1 -5754 5354 -1 -5355 5355 6 -5356 5355 -1 -5375 5355 -1 -5755 5355 -1 -5356 5356 6 -5357 5356 -1 -5376 5356 -1 -5756 5356 -1 -5357 5357 6 -5358 5357 -1 -5377 5357 -1 -5757 5357 -1 -5358 5358 6 -5359 5358 -1 -5378 5358 -1 -5758 5358 -1 -5359 5359 6 -5360 5359 -1 -5379 5359 -1 -5759 5359 -1 -5360 5360 6 -5380 5360 -1 -5760 5360 -1 -5361 5361 6 -5362 5361 -1 -5381 5361 -1 -5761 5361 -1 -5362 5362 6 -5363 5362 -1 -5382 5362 -1 -5762 5362 -1 -5363 5363 6 -5364 5363 -1 -5383 5363 -1 -5763 5363 -1 -5364 5364 6 -5365 5364 -1 -5384 5364 -1 -5764 5364 -1 -5365 5365 6 -5366 5365 -1 -5385 5365 -1 -5765 5365 -1 -5366 5366 6 -5367 5366 -1 -5386 5366 -1 -5766 5366 -1 -5367 5367 6 -5368 5367 -1 -5387 5367 -1 -5767 5367 -1 -5368 5368 6 -5369 5368 -1 -5388 5368 -1 -5768 5368 -1 -5369 5369 6 -5370 5369 -1 -5389 5369 -1 -5769 5369 -1 -5370 5370 6 -5371 5370 -1 -5390 5370 -1 -5770 5370 -1 -5371 5371 6 -5372 5371 -1 -5391 5371 -1 -5771 5371 -1 -5372 5372 6 -5373 5372 -1 -5392 5372 -1 -5772 5372 -1 -5373 5373 6 -5374 5373 -1 -5393 5373 -1 -5773 5373 -1 -5374 5374 6 -5375 5374 -1 -5394 5374 -1 -5774 5374 -1 -5375 5375 6 -5376 5375 -1 -5395 5375 -1 -5775 5375 -1 -5376 5376 6 -5377 5376 -1 -5396 5376 -1 -5776 5376 -1 -5377 5377 6 -5378 5377 -1 -5397 5377 -1 -5777 5377 -1 -5378 5378 6 -5379 5378 -1 -5398 5378 -1 -5778 5378 -1 -5379 5379 6 -5380 5379 -1 -5399 5379 -1 -5779 5379 -1 -5380 5380 6 -5400 5380 -1 -5780 5380 -1 -5381 5381 6 -5382 5381 -1 -5401 5381 -1 -5781 5381 -1 -5382 5382 6 -5383 5382 -1 -5402 5382 -1 -5782 5382 -1 -5383 5383 6 -5384 5383 -1 -5403 5383 -1 -5783 5383 -1 -5384 5384 6 -5385 5384 -1 -5404 5384 -1 -5784 5384 -1 -5385 5385 6 -5386 5385 -1 -5405 5385 -1 -5785 5385 -1 -5386 5386 6 -5387 5386 -1 -5406 5386 -1 -5786 5386 -1 -5387 5387 6 -5388 5387 -1 -5407 5387 -1 -5787 5387 -1 -5388 5388 6 -5389 5388 -1 -5408 5388 -1 -5788 5388 -1 -5389 5389 6 -5390 5389 -1 -5409 5389 -1 -5789 5389 -1 -5390 5390 6 -5391 5390 -1 -5410 5390 -1 -5790 5390 -1 -5391 5391 6 -5392 5391 -1 -5411 5391 -1 -5791 5391 -1 -5392 5392 6 -5393 5392 -1 -5412 5392 -1 -5792 5392 -1 -5393 5393 6 -5394 5393 -1 -5413 5393 -1 -5793 5393 -1 -5394 5394 6 -5395 5394 -1 -5414 5394 -1 -5794 5394 -1 -5395 5395 6 -5396 5395 -1 -5415 5395 -1 -5795 5395 -1 -5396 5396 6 -5397 5396 -1 -5416 5396 -1 -5796 5396 -1 -5397 5397 6 -5398 5397 -1 -5417 5397 -1 -5797 5397 -1 -5398 5398 6 -5399 5398 -1 -5418 5398 -1 -5798 5398 -1 -5399 5399 6 -5400 5399 -1 -5419 5399 -1 -5799 5399 -1 -5400 5400 6 -5420 5400 -1 -5800 5400 -1 -5401 5401 6 -5402 5401 -1 -5421 5401 -1 -5801 5401 -1 -5402 5402 6 -5403 5402 -1 -5422 5402 -1 -5802 5402 -1 -5403 5403 6 -5404 5403 -1 -5423 5403 -1 -5803 5403 -1 -5404 5404 6 -5405 5404 -1 -5424 5404 -1 -5804 5404 -1 -5405 5405 6 -5406 5405 -1 -5425 5405 -1 -5805 5405 -1 -5406 5406 6 -5407 5406 -1 -5426 5406 -1 -5806 5406 -1 -5407 5407 6 -5408 5407 -1 -5427 5407 -1 -5807 5407 -1 -5408 5408 6 -5409 5408 -1 -5428 5408 -1 -5808 5408 -1 -5409 5409 6 -5410 5409 -1 -5429 5409 -1 -5809 5409 -1 -5410 5410 6 -5411 5410 -1 -5430 5410 -1 -5810 5410 -1 -5411 5411 6 -5412 5411 -1 -5431 5411 -1 -5811 5411 -1 -5412 5412 6 -5413 5412 -1 -5432 5412 -1 -5812 5412 -1 -5413 5413 6 -5414 5413 -1 -5433 5413 -1 -5813 5413 -1 -5414 5414 6 -5415 5414 -1 -5434 5414 -1 -5814 5414 -1 -5415 5415 6 -5416 5415 -1 -5435 5415 -1 -5815 5415 -1 -5416 5416 6 -5417 5416 -1 -5436 5416 -1 -5816 5416 -1 -5417 5417 6 -5418 5417 -1 -5437 5417 -1 -5817 5417 -1 -5418 5418 6 -5419 5418 -1 -5438 5418 -1 -5818 5418 -1 -5419 5419 6 -5420 5419 -1 -5439 5419 -1 -5819 5419 -1 -5420 5420 6 -5440 5420 -1 -5820 5420 -1 -5421 5421 6 -5422 5421 -1 -5441 5421 -1 -5821 5421 -1 -5422 5422 6 -5423 5422 -1 -5442 5422 -1 -5822 5422 -1 -5423 5423 6 -5424 5423 -1 -5443 5423 -1 -5823 5423 -1 -5424 5424 6 -5425 5424 -1 -5444 5424 -1 -5824 5424 -1 -5425 5425 6 -5426 5425 -1 -5445 5425 -1 -5825 5425 -1 -5426 5426 6 -5427 5426 -1 -5446 5426 -1 -5826 5426 -1 -5427 5427 6 -5428 5427 -1 -5447 5427 -1 -5827 5427 -1 -5428 5428 6 -5429 5428 -1 -5448 5428 -1 -5828 5428 -1 -5429 5429 6 -5430 5429 -1 -5449 5429 -1 -5829 5429 -1 -5430 5430 6 -5431 5430 -1 -5450 5430 -1 -5830 5430 -1 -5431 5431 6 -5432 5431 -1 -5451 5431 -1 -5831 5431 -1 -5432 5432 6 -5433 5432 -1 -5452 5432 -1 -5832 5432 -1 -5433 5433 6 -5434 5433 -1 -5453 5433 -1 -5833 5433 -1 -5434 5434 6 -5435 5434 -1 -5454 5434 -1 -5834 5434 -1 -5435 5435 6 -5436 5435 -1 -5455 5435 -1 -5835 5435 -1 -5436 5436 6 -5437 5436 -1 -5456 5436 -1 -5836 5436 -1 -5437 5437 6 -5438 5437 -1 -5457 5437 -1 -5837 5437 -1 -5438 5438 6 -5439 5438 -1 -5458 5438 -1 -5838 5438 -1 -5439 5439 6 -5440 5439 -1 -5459 5439 -1 -5839 5439 -1 -5440 5440 6 -5460 5440 -1 -5840 5440 -1 -5441 5441 6 -5442 5441 -1 -5461 5441 -1 -5841 5441 -1 -5442 5442 6 -5443 5442 -1 -5462 5442 -1 -5842 5442 -1 -5443 5443 6 -5444 5443 -1 -5463 5443 -1 -5843 5443 -1 -5444 5444 6 -5445 5444 -1 -5464 5444 -1 -5844 5444 -1 -5445 5445 6 -5446 5445 -1 -5465 5445 -1 -5845 5445 -1 -5446 5446 6 -5447 5446 -1 -5466 5446 -1 -5846 5446 -1 -5447 5447 6 -5448 5447 -1 -5467 5447 -1 -5847 5447 -1 -5448 5448 6 -5449 5448 -1 -5468 5448 -1 -5848 5448 -1 -5449 5449 6 -5450 5449 -1 -5469 5449 -1 -5849 5449 -1 -5450 5450 6 -5451 5450 -1 -5470 5450 -1 -5850 5450 -1 -5451 5451 6 -5452 5451 -1 -5471 5451 -1 -5851 5451 -1 -5452 5452 6 -5453 5452 -1 -5472 5452 -1 -5852 5452 -1 -5453 5453 6 -5454 5453 -1 -5473 5453 -1 -5853 5453 -1 -5454 5454 6 -5455 5454 -1 -5474 5454 -1 -5854 5454 -1 -5455 5455 6 -5456 5455 -1 -5475 5455 -1 -5855 5455 -1 -5456 5456 6 -5457 5456 -1 -5476 5456 -1 -5856 5456 -1 -5457 5457 6 -5458 5457 -1 -5477 5457 -1 -5857 5457 -1 -5458 5458 6 -5459 5458 -1 -5478 5458 -1 -5858 5458 -1 -5459 5459 6 -5460 5459 -1 -5479 5459 -1 -5859 5459 -1 -5460 5460 6 -5480 5460 -1 -5860 5460 -1 -5461 5461 6 -5462 5461 -1 -5481 5461 -1 -5861 5461 -1 -5462 5462 6 -5463 5462 -1 -5482 5462 -1 -5862 5462 -1 -5463 5463 6 -5464 5463 -1 -5483 5463 -1 -5863 5463 -1 -5464 5464 6 -5465 5464 -1 -5484 5464 -1 -5864 5464 -1 -5465 5465 6 -5466 5465 -1 -5485 5465 -1 -5865 5465 -1 -5466 5466 6 -5467 5466 -1 -5486 5466 -1 -5866 5466 -1 -5467 5467 6 -5468 5467 -1 -5487 5467 -1 -5867 5467 -1 -5468 5468 6 -5469 5468 -1 -5488 5468 -1 -5868 5468 -1 -5469 5469 6 -5470 5469 -1 -5489 5469 -1 -5869 5469 -1 -5470 5470 6 -5471 5470 -1 -5490 5470 -1 -5870 5470 -1 -5471 5471 6 -5472 5471 -1 -5491 5471 -1 -5871 5471 -1 -5472 5472 6 -5473 5472 -1 -5492 5472 -1 -5872 5472 -1 -5473 5473 6 -5474 5473 -1 -5493 5473 -1 -5873 5473 -1 -5474 5474 6 -5475 5474 -1 -5494 5474 -1 -5874 5474 -1 -5475 5475 6 -5476 5475 -1 -5495 5475 -1 -5875 5475 -1 -5476 5476 6 -5477 5476 -1 -5496 5476 -1 -5876 5476 -1 -5477 5477 6 -5478 5477 -1 -5497 5477 -1 -5877 5477 -1 -5478 5478 6 -5479 5478 -1 -5498 5478 -1 -5878 5478 -1 -5479 5479 6 -5480 5479 -1 -5499 5479 -1 -5879 5479 -1 -5480 5480 6 -5500 5480 -1 -5880 5480 -1 -5481 5481 6 -5482 5481 -1 -5501 5481 -1 -5881 5481 -1 -5482 5482 6 -5483 5482 -1 -5502 5482 -1 -5882 5482 -1 -5483 5483 6 -5484 5483 -1 -5503 5483 -1 -5883 5483 -1 -5484 5484 6 -5485 5484 -1 -5504 5484 -1 -5884 5484 -1 -5485 5485 6 -5486 5485 -1 -5505 5485 -1 -5885 5485 -1 -5486 5486 6 -5487 5486 -1 -5506 5486 -1 -5886 5486 -1 -5487 5487 6 -5488 5487 -1 -5507 5487 -1 -5887 5487 -1 -5488 5488 6 -5489 5488 -1 -5508 5488 -1 -5888 5488 -1 -5489 5489 6 -5490 5489 -1 -5509 5489 -1 -5889 5489 -1 -5490 5490 6 -5491 5490 -1 -5510 5490 -1 -5890 5490 -1 -5491 5491 6 -5492 5491 -1 -5511 5491 -1 -5891 5491 -1 -5492 5492 6 -5493 5492 -1 -5512 5492 -1 -5892 5492 -1 -5493 5493 6 -5494 5493 -1 -5513 5493 -1 -5893 5493 -1 -5494 5494 6 -5495 5494 -1 -5514 5494 -1 -5894 5494 -1 -5495 5495 6 -5496 5495 -1 -5515 5495 -1 -5895 5495 -1 -5496 5496 6 -5497 5496 -1 -5516 5496 -1 -5896 5496 -1 -5497 5497 6 -5498 5497 -1 -5517 5497 -1 -5897 5497 -1 -5498 5498 6 -5499 5498 -1 -5518 5498 -1 -5898 5498 -1 -5499 5499 6 -5500 5499 -1 -5519 5499 -1 -5899 5499 -1 -5500 5500 6 -5520 5500 -1 -5900 5500 -1 -5501 5501 6 -5502 5501 -1 -5521 5501 -1 -5901 5501 -1 -5502 5502 6 -5503 5502 -1 -5522 5502 -1 -5902 5502 -1 -5503 5503 6 -5504 5503 -1 -5523 5503 -1 -5903 5503 -1 -5504 5504 6 -5505 5504 -1 -5524 5504 -1 -5904 5504 -1 -5505 5505 6 -5506 5505 -1 -5525 5505 -1 -5905 5505 -1 -5506 5506 6 -5507 5506 -1 -5526 5506 -1 -5906 5506 -1 -5507 5507 6 -5508 5507 -1 -5527 5507 -1 -5907 5507 -1 -5508 5508 6 -5509 5508 -1 -5528 5508 -1 -5908 5508 -1 -5509 5509 6 -5510 5509 -1 -5529 5509 -1 -5909 5509 -1 -5510 5510 6 -5511 5510 -1 -5530 5510 -1 -5910 5510 -1 -5511 5511 6 -5512 5511 -1 -5531 5511 -1 -5911 5511 -1 -5512 5512 6 -5513 5512 -1 -5532 5512 -1 -5912 5512 -1 -5513 5513 6 -5514 5513 -1 -5533 5513 -1 -5913 5513 -1 -5514 5514 6 -5515 5514 -1 -5534 5514 -1 -5914 5514 -1 -5515 5515 6 -5516 5515 -1 -5535 5515 -1 -5915 5515 -1 -5516 5516 6 -5517 5516 -1 -5536 5516 -1 -5916 5516 -1 -5517 5517 6 -5518 5517 -1 -5537 5517 -1 -5917 5517 -1 -5518 5518 6 -5519 5518 -1 -5538 5518 -1 -5918 5518 -1 -5519 5519 6 -5520 5519 -1 -5539 5519 -1 -5919 5519 -1 -5520 5520 6 -5540 5520 -1 -5920 5520 -1 -5521 5521 6 -5522 5521 -1 -5541 5521 -1 -5921 5521 -1 -5522 5522 6 -5523 5522 -1 -5542 5522 -1 -5922 5522 -1 -5523 5523 6 -5524 5523 -1 -5543 5523 -1 -5923 5523 -1 -5524 5524 6 -5525 5524 -1 -5544 5524 -1 -5924 5524 -1 -5525 5525 6 -5526 5525 -1 -5545 5525 -1 -5925 5525 -1 -5526 5526 6 -5527 5526 -1 -5546 5526 -1 -5926 5526 -1 -5527 5527 6 -5528 5527 -1 -5547 5527 -1 -5927 5527 -1 -5528 5528 6 -5529 5528 -1 -5548 5528 -1 -5928 5528 -1 -5529 5529 6 -5530 5529 -1 -5549 5529 -1 -5929 5529 -1 -5530 5530 6 -5531 5530 -1 -5550 5530 -1 -5930 5530 -1 -5531 5531 6 -5532 5531 -1 -5551 5531 -1 -5931 5531 -1 -5532 5532 6 -5533 5532 -1 -5552 5532 -1 -5932 5532 -1 -5533 5533 6 -5534 5533 -1 -5553 5533 -1 -5933 5533 -1 -5534 5534 6 -5535 5534 -1 -5554 5534 -1 -5934 5534 -1 -5535 5535 6 -5536 5535 -1 -5555 5535 -1 -5935 5535 -1 -5536 5536 6 -5537 5536 -1 -5556 5536 -1 -5936 5536 -1 -5537 5537 6 -5538 5537 -1 -5557 5537 -1 -5937 5537 -1 -5538 5538 6 -5539 5538 -1 -5558 5538 -1 -5938 5538 -1 -5539 5539 6 -5540 5539 -1 -5559 5539 -1 -5939 5539 -1 -5540 5540 6 -5560 5540 -1 -5940 5540 -1 -5541 5541 6 -5542 5541 -1 -5561 5541 -1 -5941 5541 -1 -5542 5542 6 -5543 5542 -1 -5562 5542 -1 -5942 5542 -1 -5543 5543 6 -5544 5543 -1 -5563 5543 -1 -5943 5543 -1 -5544 5544 6 -5545 5544 -1 -5564 5544 -1 -5944 5544 -1 -5545 5545 6 -5546 5545 -1 -5565 5545 -1 -5945 5545 -1 -5546 5546 6 -5547 5546 -1 -5566 5546 -1 -5946 5546 -1 -5547 5547 6 -5548 5547 -1 -5567 5547 -1 -5947 5547 -1 -5548 5548 6 -5549 5548 -1 -5568 5548 -1 -5948 5548 -1 -5549 5549 6 -5550 5549 -1 -5569 5549 -1 -5949 5549 -1 -5550 5550 6 -5551 5550 -1 -5570 5550 -1 -5950 5550 -1 -5551 5551 6 -5552 5551 -1 -5571 5551 -1 -5951 5551 -1 -5552 5552 6 -5553 5552 -1 -5572 5552 -1 -5952 5552 -1 -5553 5553 6 -5554 5553 -1 -5573 5553 -1 -5953 5553 -1 -5554 5554 6 -5555 5554 -1 -5574 5554 -1 -5954 5554 -1 -5555 5555 6 -5556 5555 -1 -5575 5555 -1 -5955 5555 -1 -5556 5556 6 -5557 5556 -1 -5576 5556 -1 -5956 5556 -1 -5557 5557 6 -5558 5557 -1 -5577 5557 -1 -5957 5557 -1 -5558 5558 6 -5559 5558 -1 -5578 5558 -1 -5958 5558 -1 -5559 5559 6 -5560 5559 -1 -5579 5559 -1 -5959 5559 -1 -5560 5560 6 -5580 5560 -1 -5960 5560 -1 -5561 5561 6 -5562 5561 -1 -5581 5561 -1 -5961 5561 -1 -5562 5562 6 -5563 5562 -1 -5582 5562 -1 -5962 5562 -1 -5563 5563 6 -5564 5563 -1 -5583 5563 -1 -5963 5563 -1 -5564 5564 6 -5565 5564 -1 -5584 5564 -1 -5964 5564 -1 -5565 5565 6 -5566 5565 -1 -5585 5565 -1 -5965 5565 -1 -5566 5566 6 -5567 5566 -1 -5586 5566 -1 -5966 5566 -1 -5567 5567 6 -5568 5567 -1 -5587 5567 -1 -5967 5567 -1 -5568 5568 6 -5569 5568 -1 -5588 5568 -1 -5968 5568 -1 -5569 5569 6 -5570 5569 -1 -5589 5569 -1 -5969 5569 -1 -5570 5570 6 -5571 5570 -1 -5590 5570 -1 -5970 5570 -1 -5571 5571 6 -5572 5571 -1 -5591 5571 -1 -5971 5571 -1 -5572 5572 6 -5573 5572 -1 -5592 5572 -1 -5972 5572 -1 -5573 5573 6 -5574 5573 -1 -5593 5573 -1 -5973 5573 -1 -5574 5574 6 -5575 5574 -1 -5594 5574 -1 -5974 5574 -1 -5575 5575 6 -5576 5575 -1 -5595 5575 -1 -5975 5575 -1 -5576 5576 6 -5577 5576 -1 -5596 5576 -1 -5976 5576 -1 -5577 5577 6 -5578 5577 -1 -5597 5577 -1 -5977 5577 -1 -5578 5578 6 -5579 5578 -1 -5598 5578 -1 -5978 5578 -1 -5579 5579 6 -5580 5579 -1 -5599 5579 -1 -5979 5579 -1 -5580 5580 6 -5600 5580 -1 -5980 5580 -1 -5581 5581 6 -5582 5581 -1 -5981 5581 -1 -5582 5582 6 -5583 5582 -1 -5982 5582 -1 -5583 5583 6 -5584 5583 -1 -5983 5583 -1 -5584 5584 6 -5585 5584 -1 -5984 5584 -1 -5585 5585 6 -5586 5585 -1 -5985 5585 -1 -5586 5586 6 -5587 5586 -1 -5986 5586 -1 -5587 5587 6 -5588 5587 -1 -5987 5587 -1 -5588 5588 6 -5589 5588 -1 -5988 5588 -1 -5589 5589 6 -5590 5589 -1 -5989 5589 -1 -5590 5590 6 -5591 5590 -1 -5990 5590 -1 -5591 5591 6 -5592 5591 -1 -5991 5591 -1 -5592 5592 6 -5593 5592 -1 -5992 5592 -1 -5593 5593 6 -5594 5593 -1 -5993 5593 -1 -5594 5594 6 -5595 5594 -1 -5994 5594 -1 -5595 5595 6 -5596 5595 -1 -5995 5595 -1 -5596 5596 6 -5597 5596 -1 -5996 5596 -1 -5597 5597 6 -5598 5597 -1 -5997 5597 -1 -5598 5598 6 -5599 5598 -1 -5998 5598 -1 -5599 5599 6 -5600 5599 -1 -5999 5599 -1 -5600 5600 6 -6000 5600 -1 -5601 5601 6 -5602 5601 -1 -5621 5601 -1 -6001 5601 -1 -5602 5602 6 -5603 5602 -1 -5622 5602 -1 -6002 5602 -1 -5603 5603 6 -5604 5603 -1 -5623 5603 -1 -6003 5603 -1 -5604 5604 6 -5605 5604 -1 -5624 5604 -1 -6004 5604 -1 -5605 5605 6 -5606 5605 -1 -5625 5605 -1 -6005 5605 -1 -5606 5606 6 -5607 5606 -1 -5626 5606 -1 -6006 5606 -1 -5607 5607 6 -5608 5607 -1 -5627 5607 -1 -6007 5607 -1 -5608 5608 6 -5609 5608 -1 -5628 5608 -1 -6008 5608 -1 -5609 5609 6 -5610 5609 -1 -5629 5609 -1 -6009 5609 -1 -5610 5610 6 -5611 5610 -1 -5630 5610 -1 -6010 5610 -1 -5611 5611 6 -5612 5611 -1 -5631 5611 -1 -6011 5611 -1 -5612 5612 6 -5613 5612 -1 -5632 5612 -1 -6012 5612 -1 -5613 5613 6 -5614 5613 -1 -5633 5613 -1 -6013 5613 -1 -5614 5614 6 -5615 5614 -1 -5634 5614 -1 -6014 5614 -1 -5615 5615 6 -5616 5615 -1 -5635 5615 -1 -6015 5615 -1 -5616 5616 6 -5617 5616 -1 -5636 5616 -1 -6016 5616 -1 -5617 5617 6 -5618 5617 -1 -5637 5617 -1 -6017 5617 -1 -5618 5618 6 -5619 5618 -1 -5638 5618 -1 -6018 5618 -1 -5619 5619 6 -5620 5619 -1 -5639 5619 -1 -6019 5619 -1 -5620 5620 6 -5640 5620 -1 -6020 5620 -1 -5621 5621 6 -5622 5621 -1 -5641 5621 -1 -6021 5621 -1 -5622 5622 6 -5623 5622 -1 -5642 5622 -1 -6022 5622 -1 -5623 5623 6 -5624 5623 -1 -5643 5623 -1 -6023 5623 -1 -5624 5624 6 -5625 5624 -1 -5644 5624 -1 -6024 5624 -1 -5625 5625 6 -5626 5625 -1 -5645 5625 -1 -6025 5625 -1 -5626 5626 6 -5627 5626 -1 -5646 5626 -1 -6026 5626 -1 -5627 5627 6 -5628 5627 -1 -5647 5627 -1 -6027 5627 -1 -5628 5628 6 -5629 5628 -1 -5648 5628 -1 -6028 5628 -1 -5629 5629 6 -5630 5629 -1 -5649 5629 -1 -6029 5629 -1 -5630 5630 6 -5631 5630 -1 -5650 5630 -1 -6030 5630 -1 -5631 5631 6 -5632 5631 -1 -5651 5631 -1 -6031 5631 -1 -5632 5632 6 -5633 5632 -1 -5652 5632 -1 -6032 5632 -1 -5633 5633 6 -5634 5633 -1 -5653 5633 -1 -6033 5633 -1 -5634 5634 6 -5635 5634 -1 -5654 5634 -1 -6034 5634 -1 -5635 5635 6 -5636 5635 -1 -5655 5635 -1 -6035 5635 -1 -5636 5636 6 -5637 5636 -1 -5656 5636 -1 -6036 5636 -1 -5637 5637 6 -5638 5637 -1 -5657 5637 -1 -6037 5637 -1 -5638 5638 6 -5639 5638 -1 -5658 5638 -1 -6038 5638 -1 -5639 5639 6 -5640 5639 -1 -5659 5639 -1 -6039 5639 -1 -5640 5640 6 -5660 5640 -1 -6040 5640 -1 -5641 5641 6 -5642 5641 -1 -5661 5641 -1 -6041 5641 -1 -5642 5642 6 -5643 5642 -1 -5662 5642 -1 -6042 5642 -1 -5643 5643 6 -5644 5643 -1 -5663 5643 -1 -6043 5643 -1 -5644 5644 6 -5645 5644 -1 -5664 5644 -1 -6044 5644 -1 -5645 5645 6 -5646 5645 -1 -5665 5645 -1 -6045 5645 -1 -5646 5646 6 -5647 5646 -1 -5666 5646 -1 -6046 5646 -1 -5647 5647 6 -5648 5647 -1 -5667 5647 -1 -6047 5647 -1 -5648 5648 6 -5649 5648 -1 -5668 5648 -1 -6048 5648 -1 -5649 5649 6 -5650 5649 -1 -5669 5649 -1 -6049 5649 -1 -5650 5650 6 -5651 5650 -1 -5670 5650 -1 -6050 5650 -1 -5651 5651 6 -5652 5651 -1 -5671 5651 -1 -6051 5651 -1 -5652 5652 6 -5653 5652 -1 -5672 5652 -1 -6052 5652 -1 -5653 5653 6 -5654 5653 -1 -5673 5653 -1 -6053 5653 -1 -5654 5654 6 -5655 5654 -1 -5674 5654 -1 -6054 5654 -1 -5655 5655 6 -5656 5655 -1 -5675 5655 -1 -6055 5655 -1 -5656 5656 6 -5657 5656 -1 -5676 5656 -1 -6056 5656 -1 -5657 5657 6 -5658 5657 -1 -5677 5657 -1 -6057 5657 -1 -5658 5658 6 -5659 5658 -1 -5678 5658 -1 -6058 5658 -1 -5659 5659 6 -5660 5659 -1 -5679 5659 -1 -6059 5659 -1 -5660 5660 6 -5680 5660 -1 -6060 5660 -1 -5661 5661 6 -5662 5661 -1 -5681 5661 -1 -6061 5661 -1 -5662 5662 6 -5663 5662 -1 -5682 5662 -1 -6062 5662 -1 -5663 5663 6 -5664 5663 -1 -5683 5663 -1 -6063 5663 -1 -5664 5664 6 -5665 5664 -1 -5684 5664 -1 -6064 5664 -1 -5665 5665 6 -5666 5665 -1 -5685 5665 -1 -6065 5665 -1 -5666 5666 6 -5667 5666 -1 -5686 5666 -1 -6066 5666 -1 -5667 5667 6 -5668 5667 -1 -5687 5667 -1 -6067 5667 -1 -5668 5668 6 -5669 5668 -1 -5688 5668 -1 -6068 5668 -1 -5669 5669 6 -5670 5669 -1 -5689 5669 -1 -6069 5669 -1 -5670 5670 6 -5671 5670 -1 -5690 5670 -1 -6070 5670 -1 -5671 5671 6 -5672 5671 -1 -5691 5671 -1 -6071 5671 -1 -5672 5672 6 -5673 5672 -1 -5692 5672 -1 -6072 5672 -1 -5673 5673 6 -5674 5673 -1 -5693 5673 -1 -6073 5673 -1 -5674 5674 6 -5675 5674 -1 -5694 5674 -1 -6074 5674 -1 -5675 5675 6 -5676 5675 -1 -5695 5675 -1 -6075 5675 -1 -5676 5676 6 -5677 5676 -1 -5696 5676 -1 -6076 5676 -1 -5677 5677 6 -5678 5677 -1 -5697 5677 -1 -6077 5677 -1 -5678 5678 6 -5679 5678 -1 -5698 5678 -1 -6078 5678 -1 -5679 5679 6 -5680 5679 -1 -5699 5679 -1 -6079 5679 -1 -5680 5680 6 -5700 5680 -1 -6080 5680 -1 -5681 5681 6 -5682 5681 -1 -5701 5681 -1 -6081 5681 -1 -5682 5682 6 -5683 5682 -1 -5702 5682 -1 -6082 5682 -1 -5683 5683 6 -5684 5683 -1 -5703 5683 -1 -6083 5683 -1 -5684 5684 6 -5685 5684 -1 -5704 5684 -1 -6084 5684 -1 -5685 5685 6 -5686 5685 -1 -5705 5685 -1 -6085 5685 -1 -5686 5686 6 -5687 5686 -1 -5706 5686 -1 -6086 5686 -1 -5687 5687 6 -5688 5687 -1 -5707 5687 -1 -6087 5687 -1 -5688 5688 6 -5689 5688 -1 -5708 5688 -1 -6088 5688 -1 -5689 5689 6 -5690 5689 -1 -5709 5689 -1 -6089 5689 -1 -5690 5690 6 -5691 5690 -1 -5710 5690 -1 -6090 5690 -1 -5691 5691 6 -5692 5691 -1 -5711 5691 -1 -6091 5691 -1 -5692 5692 6 -5693 5692 -1 -5712 5692 -1 -6092 5692 -1 -5693 5693 6 -5694 5693 -1 -5713 5693 -1 -6093 5693 -1 -5694 5694 6 -5695 5694 -1 -5714 5694 -1 -6094 5694 -1 -5695 5695 6 -5696 5695 -1 -5715 5695 -1 -6095 5695 -1 -5696 5696 6 -5697 5696 -1 -5716 5696 -1 -6096 5696 -1 -5697 5697 6 -5698 5697 -1 -5717 5697 -1 -6097 5697 -1 -5698 5698 6 -5699 5698 -1 -5718 5698 -1 -6098 5698 -1 -5699 5699 6 -5700 5699 -1 -5719 5699 -1 -6099 5699 -1 -5700 5700 6 -5720 5700 -1 -6100 5700 -1 -5701 5701 6 -5702 5701 -1 -5721 5701 -1 -6101 5701 -1 -5702 5702 6 -5703 5702 -1 -5722 5702 -1 -6102 5702 -1 -5703 5703 6 -5704 5703 -1 -5723 5703 -1 -6103 5703 -1 -5704 5704 6 -5705 5704 -1 -5724 5704 -1 -6104 5704 -1 -5705 5705 6 -5706 5705 -1 -5725 5705 -1 -6105 5705 -1 -5706 5706 6 -5707 5706 -1 -5726 5706 -1 -6106 5706 -1 -5707 5707 6 -5708 5707 -1 -5727 5707 -1 -6107 5707 -1 -5708 5708 6 -5709 5708 -1 -5728 5708 -1 -6108 5708 -1 -5709 5709 6 -5710 5709 -1 -5729 5709 -1 -6109 5709 -1 -5710 5710 6 -5711 5710 -1 -5730 5710 -1 -6110 5710 -1 -5711 5711 6 -5712 5711 -1 -5731 5711 -1 -6111 5711 -1 -5712 5712 6 -5713 5712 -1 -5732 5712 -1 -6112 5712 -1 -5713 5713 6 -5714 5713 -1 -5733 5713 -1 -6113 5713 -1 -5714 5714 6 -5715 5714 -1 -5734 5714 -1 -6114 5714 -1 -5715 5715 6 -5716 5715 -1 -5735 5715 -1 -6115 5715 -1 -5716 5716 6 -5717 5716 -1 -5736 5716 -1 -6116 5716 -1 -5717 5717 6 -5718 5717 -1 -5737 5717 -1 -6117 5717 -1 -5718 5718 6 -5719 5718 -1 -5738 5718 -1 -6118 5718 -1 -5719 5719 6 -5720 5719 -1 -5739 5719 -1 -6119 5719 -1 -5720 5720 6 -5740 5720 -1 -6120 5720 -1 -5721 5721 6 -5722 5721 -1 -5741 5721 -1 -6121 5721 -1 -5722 5722 6 -5723 5722 -1 -5742 5722 -1 -6122 5722 -1 -5723 5723 6 -5724 5723 -1 -5743 5723 -1 -6123 5723 -1 -5724 5724 6 -5725 5724 -1 -5744 5724 -1 -6124 5724 -1 -5725 5725 6 -5726 5725 -1 -5745 5725 -1 -6125 5725 -1 -5726 5726 6 -5727 5726 -1 -5746 5726 -1 -6126 5726 -1 -5727 5727 6 -5728 5727 -1 -5747 5727 -1 -6127 5727 -1 -5728 5728 6 -5729 5728 -1 -5748 5728 -1 -6128 5728 -1 -5729 5729 6 -5730 5729 -1 -5749 5729 -1 -6129 5729 -1 -5730 5730 6 -5731 5730 -1 -5750 5730 -1 -6130 5730 -1 -5731 5731 6 -5732 5731 -1 -5751 5731 -1 -6131 5731 -1 -5732 5732 6 -5733 5732 -1 -5752 5732 -1 -6132 5732 -1 -5733 5733 6 -5734 5733 -1 -5753 5733 -1 -6133 5733 -1 -5734 5734 6 -5735 5734 -1 -5754 5734 -1 -6134 5734 -1 -5735 5735 6 -5736 5735 -1 -5755 5735 -1 -6135 5735 -1 -5736 5736 6 -5737 5736 -1 -5756 5736 -1 -6136 5736 -1 -5737 5737 6 -5738 5737 -1 -5757 5737 -1 -6137 5737 -1 -5738 5738 6 -5739 5738 -1 -5758 5738 -1 -6138 5738 -1 -5739 5739 6 -5740 5739 -1 -5759 5739 -1 -6139 5739 -1 -5740 5740 6 -5760 5740 -1 -6140 5740 -1 -5741 5741 6 -5742 5741 -1 -5761 5741 -1 -6141 5741 -1 -5742 5742 6 -5743 5742 -1 -5762 5742 -1 -6142 5742 -1 -5743 5743 6 -5744 5743 -1 -5763 5743 -1 -6143 5743 -1 -5744 5744 6 -5745 5744 -1 -5764 5744 -1 -6144 5744 -1 -5745 5745 6 -5746 5745 -1 -5765 5745 -1 -6145 5745 -1 -5746 5746 6 -5747 5746 -1 -5766 5746 -1 -6146 5746 -1 -5747 5747 6 -5748 5747 -1 -5767 5747 -1 -6147 5747 -1 -5748 5748 6 -5749 5748 -1 -5768 5748 -1 -6148 5748 -1 -5749 5749 6 -5750 5749 -1 -5769 5749 -1 -6149 5749 -1 -5750 5750 6 -5751 5750 -1 -5770 5750 -1 -6150 5750 -1 -5751 5751 6 -5752 5751 -1 -5771 5751 -1 -6151 5751 -1 -5752 5752 6 -5753 5752 -1 -5772 5752 -1 -6152 5752 -1 -5753 5753 6 -5754 5753 -1 -5773 5753 -1 -6153 5753 -1 -5754 5754 6 -5755 5754 -1 -5774 5754 -1 -6154 5754 -1 -5755 5755 6 -5756 5755 -1 -5775 5755 -1 -6155 5755 -1 -5756 5756 6 -5757 5756 -1 -5776 5756 -1 -6156 5756 -1 -5757 5757 6 -5758 5757 -1 -5777 5757 -1 -6157 5757 -1 -5758 5758 6 -5759 5758 -1 -5778 5758 -1 -6158 5758 -1 -5759 5759 6 -5760 5759 -1 -5779 5759 -1 -6159 5759 -1 -5760 5760 6 -5780 5760 -1 -6160 5760 -1 -5761 5761 6 -5762 5761 -1 -5781 5761 -1 -6161 5761 -1 -5762 5762 6 -5763 5762 -1 -5782 5762 -1 -6162 5762 -1 -5763 5763 6 -5764 5763 -1 -5783 5763 -1 -6163 5763 -1 -5764 5764 6 -5765 5764 -1 -5784 5764 -1 -6164 5764 -1 -5765 5765 6 -5766 5765 -1 -5785 5765 -1 -6165 5765 -1 -5766 5766 6 -5767 5766 -1 -5786 5766 -1 -6166 5766 -1 -5767 5767 6 -5768 5767 -1 -5787 5767 -1 -6167 5767 -1 -5768 5768 6 -5769 5768 -1 -5788 5768 -1 -6168 5768 -1 -5769 5769 6 -5770 5769 -1 -5789 5769 -1 -6169 5769 -1 -5770 5770 6 -5771 5770 -1 -5790 5770 -1 -6170 5770 -1 -5771 5771 6 -5772 5771 -1 -5791 5771 -1 -6171 5771 -1 -5772 5772 6 -5773 5772 -1 -5792 5772 -1 -6172 5772 -1 -5773 5773 6 -5774 5773 -1 -5793 5773 -1 -6173 5773 -1 -5774 5774 6 -5775 5774 -1 -5794 5774 -1 -6174 5774 -1 -5775 5775 6 -5776 5775 -1 -5795 5775 -1 -6175 5775 -1 -5776 5776 6 -5777 5776 -1 -5796 5776 -1 -6176 5776 -1 -5777 5777 6 -5778 5777 -1 -5797 5777 -1 -6177 5777 -1 -5778 5778 6 -5779 5778 -1 -5798 5778 -1 -6178 5778 -1 -5779 5779 6 -5780 5779 -1 -5799 5779 -1 -6179 5779 -1 -5780 5780 6 -5800 5780 -1 -6180 5780 -1 -5781 5781 6 -5782 5781 -1 -5801 5781 -1 -6181 5781 -1 -5782 5782 6 -5783 5782 -1 -5802 5782 -1 -6182 5782 -1 -5783 5783 6 -5784 5783 -1 -5803 5783 -1 -6183 5783 -1 -5784 5784 6 -5785 5784 -1 -5804 5784 -1 -6184 5784 -1 -5785 5785 6 -5786 5785 -1 -5805 5785 -1 -6185 5785 -1 -5786 5786 6 -5787 5786 -1 -5806 5786 -1 -6186 5786 -1 -5787 5787 6 -5788 5787 -1 -5807 5787 -1 -6187 5787 -1 -5788 5788 6 -5789 5788 -1 -5808 5788 -1 -6188 5788 -1 -5789 5789 6 -5790 5789 -1 -5809 5789 -1 -6189 5789 -1 -5790 5790 6 -5791 5790 -1 -5810 5790 -1 -6190 5790 -1 -5791 5791 6 -5792 5791 -1 -5811 5791 -1 -6191 5791 -1 -5792 5792 6 -5793 5792 -1 -5812 5792 -1 -6192 5792 -1 -5793 5793 6 -5794 5793 -1 -5813 5793 -1 -6193 5793 -1 -5794 5794 6 -5795 5794 -1 -5814 5794 -1 -6194 5794 -1 -5795 5795 6 -5796 5795 -1 -5815 5795 -1 -6195 5795 -1 -5796 5796 6 -5797 5796 -1 -5816 5796 -1 -6196 5796 -1 -5797 5797 6 -5798 5797 -1 -5817 5797 -1 -6197 5797 -1 -5798 5798 6 -5799 5798 -1 -5818 5798 -1 -6198 5798 -1 -5799 5799 6 -5800 5799 -1 -5819 5799 -1 -6199 5799 -1 -5800 5800 6 -5820 5800 -1 -6200 5800 -1 -5801 5801 6 -5802 5801 -1 -5821 5801 -1 -6201 5801 -1 -5802 5802 6 -5803 5802 -1 -5822 5802 -1 -6202 5802 -1 -5803 5803 6 -5804 5803 -1 -5823 5803 -1 -6203 5803 -1 -5804 5804 6 -5805 5804 -1 -5824 5804 -1 -6204 5804 -1 -5805 5805 6 -5806 5805 -1 -5825 5805 -1 -6205 5805 -1 -5806 5806 6 -5807 5806 -1 -5826 5806 -1 -6206 5806 -1 -5807 5807 6 -5808 5807 -1 -5827 5807 -1 -6207 5807 -1 -5808 5808 6 -5809 5808 -1 -5828 5808 -1 -6208 5808 -1 -5809 5809 6 -5810 5809 -1 -5829 5809 -1 -6209 5809 -1 -5810 5810 6 -5811 5810 -1 -5830 5810 -1 -6210 5810 -1 -5811 5811 6 -5812 5811 -1 -5831 5811 -1 -6211 5811 -1 -5812 5812 6 -5813 5812 -1 -5832 5812 -1 -6212 5812 -1 -5813 5813 6 -5814 5813 -1 -5833 5813 -1 -6213 5813 -1 -5814 5814 6 -5815 5814 -1 -5834 5814 -1 -6214 5814 -1 -5815 5815 6 -5816 5815 -1 -5835 5815 -1 -6215 5815 -1 -5816 5816 6 -5817 5816 -1 -5836 5816 -1 -6216 5816 -1 -5817 5817 6 -5818 5817 -1 -5837 5817 -1 -6217 5817 -1 -5818 5818 6 -5819 5818 -1 -5838 5818 -1 -6218 5818 -1 -5819 5819 6 -5820 5819 -1 -5839 5819 -1 -6219 5819 -1 -5820 5820 6 -5840 5820 -1 -6220 5820 -1 -5821 5821 6 -5822 5821 -1 -5841 5821 -1 -6221 5821 -1 -5822 5822 6 -5823 5822 -1 -5842 5822 -1 -6222 5822 -1 -5823 5823 6 -5824 5823 -1 -5843 5823 -1 -6223 5823 -1 -5824 5824 6 -5825 5824 -1 -5844 5824 -1 -6224 5824 -1 -5825 5825 6 -5826 5825 -1 -5845 5825 -1 -6225 5825 -1 -5826 5826 6 -5827 5826 -1 -5846 5826 -1 -6226 5826 -1 -5827 5827 6 -5828 5827 -1 -5847 5827 -1 -6227 5827 -1 -5828 5828 6 -5829 5828 -1 -5848 5828 -1 -6228 5828 -1 -5829 5829 6 -5830 5829 -1 -5849 5829 -1 -6229 5829 -1 -5830 5830 6 -5831 5830 -1 -5850 5830 -1 -6230 5830 -1 -5831 5831 6 -5832 5831 -1 -5851 5831 -1 -6231 5831 -1 -5832 5832 6 -5833 5832 -1 -5852 5832 -1 -6232 5832 -1 -5833 5833 6 -5834 5833 -1 -5853 5833 -1 -6233 5833 -1 -5834 5834 6 -5835 5834 -1 -5854 5834 -1 -6234 5834 -1 -5835 5835 6 -5836 5835 -1 -5855 5835 -1 -6235 5835 -1 -5836 5836 6 -5837 5836 -1 -5856 5836 -1 -6236 5836 -1 -5837 5837 6 -5838 5837 -1 -5857 5837 -1 -6237 5837 -1 -5838 5838 6 -5839 5838 -1 -5858 5838 -1 -6238 5838 -1 -5839 5839 6 -5840 5839 -1 -5859 5839 -1 -6239 5839 -1 -5840 5840 6 -5860 5840 -1 -6240 5840 -1 -5841 5841 6 -5842 5841 -1 -5861 5841 -1 -6241 5841 -1 -5842 5842 6 -5843 5842 -1 -5862 5842 -1 -6242 5842 -1 -5843 5843 6 -5844 5843 -1 -5863 5843 -1 -6243 5843 -1 -5844 5844 6 -5845 5844 -1 -5864 5844 -1 -6244 5844 -1 -5845 5845 6 -5846 5845 -1 -5865 5845 -1 -6245 5845 -1 -5846 5846 6 -5847 5846 -1 -5866 5846 -1 -6246 5846 -1 -5847 5847 6 -5848 5847 -1 -5867 5847 -1 -6247 5847 -1 -5848 5848 6 -5849 5848 -1 -5868 5848 -1 -6248 5848 -1 -5849 5849 6 -5850 5849 -1 -5869 5849 -1 -6249 5849 -1 -5850 5850 6 -5851 5850 -1 -5870 5850 -1 -6250 5850 -1 -5851 5851 6 -5852 5851 -1 -5871 5851 -1 -6251 5851 -1 -5852 5852 6 -5853 5852 -1 -5872 5852 -1 -6252 5852 -1 -5853 5853 6 -5854 5853 -1 -5873 5853 -1 -6253 5853 -1 -5854 5854 6 -5855 5854 -1 -5874 5854 -1 -6254 5854 -1 -5855 5855 6 -5856 5855 -1 -5875 5855 -1 -6255 5855 -1 -5856 5856 6 -5857 5856 -1 -5876 5856 -1 -6256 5856 -1 -5857 5857 6 -5858 5857 -1 -5877 5857 -1 -6257 5857 -1 -5858 5858 6 -5859 5858 -1 -5878 5858 -1 -6258 5858 -1 -5859 5859 6 -5860 5859 -1 -5879 5859 -1 -6259 5859 -1 -5860 5860 6 -5880 5860 -1 -6260 5860 -1 -5861 5861 6 -5862 5861 -1 -5881 5861 -1 -6261 5861 -1 -5862 5862 6 -5863 5862 -1 -5882 5862 -1 -6262 5862 -1 -5863 5863 6 -5864 5863 -1 -5883 5863 -1 -6263 5863 -1 -5864 5864 6 -5865 5864 -1 -5884 5864 -1 -6264 5864 -1 -5865 5865 6 -5866 5865 -1 -5885 5865 -1 -6265 5865 -1 -5866 5866 6 -5867 5866 -1 -5886 5866 -1 -6266 5866 -1 -5867 5867 6 -5868 5867 -1 -5887 5867 -1 -6267 5867 -1 -5868 5868 6 -5869 5868 -1 -5888 5868 -1 -6268 5868 -1 -5869 5869 6 -5870 5869 -1 -5889 5869 -1 -6269 5869 -1 -5870 5870 6 -5871 5870 -1 -5890 5870 -1 -6270 5870 -1 -5871 5871 6 -5872 5871 -1 -5891 5871 -1 -6271 5871 -1 -5872 5872 6 -5873 5872 -1 -5892 5872 -1 -6272 5872 -1 -5873 5873 6 -5874 5873 -1 -5893 5873 -1 -6273 5873 -1 -5874 5874 6 -5875 5874 -1 -5894 5874 -1 -6274 5874 -1 -5875 5875 6 -5876 5875 -1 -5895 5875 -1 -6275 5875 -1 -5876 5876 6 -5877 5876 -1 -5896 5876 -1 -6276 5876 -1 -5877 5877 6 -5878 5877 -1 -5897 5877 -1 -6277 5877 -1 -5878 5878 6 -5879 5878 -1 -5898 5878 -1 -6278 5878 -1 -5879 5879 6 -5880 5879 -1 -5899 5879 -1 -6279 5879 -1 -5880 5880 6 -5900 5880 -1 -6280 5880 -1 -5881 5881 6 -5882 5881 -1 -5901 5881 -1 -6281 5881 -1 -5882 5882 6 -5883 5882 -1 -5902 5882 -1 -6282 5882 -1 -5883 5883 6 -5884 5883 -1 -5903 5883 -1 -6283 5883 -1 -5884 5884 6 -5885 5884 -1 -5904 5884 -1 -6284 5884 -1 -5885 5885 6 -5886 5885 -1 -5905 5885 -1 -6285 5885 -1 -5886 5886 6 -5887 5886 -1 -5906 5886 -1 -6286 5886 -1 -5887 5887 6 -5888 5887 -1 -5907 5887 -1 -6287 5887 -1 -5888 5888 6 -5889 5888 -1 -5908 5888 -1 -6288 5888 -1 -5889 5889 6 -5890 5889 -1 -5909 5889 -1 -6289 5889 -1 -5890 5890 6 -5891 5890 -1 -5910 5890 -1 -6290 5890 -1 -5891 5891 6 -5892 5891 -1 -5911 5891 -1 -6291 5891 -1 -5892 5892 6 -5893 5892 -1 -5912 5892 -1 -6292 5892 -1 -5893 5893 6 -5894 5893 -1 -5913 5893 -1 -6293 5893 -1 -5894 5894 6 -5895 5894 -1 -5914 5894 -1 -6294 5894 -1 -5895 5895 6 -5896 5895 -1 -5915 5895 -1 -6295 5895 -1 -5896 5896 6 -5897 5896 -1 -5916 5896 -1 -6296 5896 -1 -5897 5897 6 -5898 5897 -1 -5917 5897 -1 -6297 5897 -1 -5898 5898 6 -5899 5898 -1 -5918 5898 -1 -6298 5898 -1 -5899 5899 6 -5900 5899 -1 -5919 5899 -1 -6299 5899 -1 -5900 5900 6 -5920 5900 -1 -6300 5900 -1 -5901 5901 6 -5902 5901 -1 -5921 5901 -1 -6301 5901 -1 -5902 5902 6 -5903 5902 -1 -5922 5902 -1 -6302 5902 -1 -5903 5903 6 -5904 5903 -1 -5923 5903 -1 -6303 5903 -1 -5904 5904 6 -5905 5904 -1 -5924 5904 -1 -6304 5904 -1 -5905 5905 6 -5906 5905 -1 -5925 5905 -1 -6305 5905 -1 -5906 5906 6 -5907 5906 -1 -5926 5906 -1 -6306 5906 -1 -5907 5907 6 -5908 5907 -1 -5927 5907 -1 -6307 5907 -1 -5908 5908 6 -5909 5908 -1 -5928 5908 -1 -6308 5908 -1 -5909 5909 6 -5910 5909 -1 -5929 5909 -1 -6309 5909 -1 -5910 5910 6 -5911 5910 -1 -5930 5910 -1 -6310 5910 -1 -5911 5911 6 -5912 5911 -1 -5931 5911 -1 -6311 5911 -1 -5912 5912 6 -5913 5912 -1 -5932 5912 -1 -6312 5912 -1 -5913 5913 6 -5914 5913 -1 -5933 5913 -1 -6313 5913 -1 -5914 5914 6 -5915 5914 -1 -5934 5914 -1 -6314 5914 -1 -5915 5915 6 -5916 5915 -1 -5935 5915 -1 -6315 5915 -1 -5916 5916 6 -5917 5916 -1 -5936 5916 -1 -6316 5916 -1 -5917 5917 6 -5918 5917 -1 -5937 5917 -1 -6317 5917 -1 -5918 5918 6 -5919 5918 -1 -5938 5918 -1 -6318 5918 -1 -5919 5919 6 -5920 5919 -1 -5939 5919 -1 -6319 5919 -1 -5920 5920 6 -5940 5920 -1 -6320 5920 -1 -5921 5921 6 -5922 5921 -1 -5941 5921 -1 -6321 5921 -1 -5922 5922 6 -5923 5922 -1 -5942 5922 -1 -6322 5922 -1 -5923 5923 6 -5924 5923 -1 -5943 5923 -1 -6323 5923 -1 -5924 5924 6 -5925 5924 -1 -5944 5924 -1 -6324 5924 -1 -5925 5925 6 -5926 5925 -1 -5945 5925 -1 -6325 5925 -1 -5926 5926 6 -5927 5926 -1 -5946 5926 -1 -6326 5926 -1 -5927 5927 6 -5928 5927 -1 -5947 5927 -1 -6327 5927 -1 -5928 5928 6 -5929 5928 -1 -5948 5928 -1 -6328 5928 -1 -5929 5929 6 -5930 5929 -1 -5949 5929 -1 -6329 5929 -1 -5930 5930 6 -5931 5930 -1 -5950 5930 -1 -6330 5930 -1 -5931 5931 6 -5932 5931 -1 -5951 5931 -1 -6331 5931 -1 -5932 5932 6 -5933 5932 -1 -5952 5932 -1 -6332 5932 -1 -5933 5933 6 -5934 5933 -1 -5953 5933 -1 -6333 5933 -1 -5934 5934 6 -5935 5934 -1 -5954 5934 -1 -6334 5934 -1 -5935 5935 6 -5936 5935 -1 -5955 5935 -1 -6335 5935 -1 -5936 5936 6 -5937 5936 -1 -5956 5936 -1 -6336 5936 -1 -5937 5937 6 -5938 5937 -1 -5957 5937 -1 -6337 5937 -1 -5938 5938 6 -5939 5938 -1 -5958 5938 -1 -6338 5938 -1 -5939 5939 6 -5940 5939 -1 -5959 5939 -1 -6339 5939 -1 -5940 5940 6 -5960 5940 -1 -6340 5940 -1 -5941 5941 6 -5942 5941 -1 -5961 5941 -1 -6341 5941 -1 -5942 5942 6 -5943 5942 -1 -5962 5942 -1 -6342 5942 -1 -5943 5943 6 -5944 5943 -1 -5963 5943 -1 -6343 5943 -1 -5944 5944 6 -5945 5944 -1 -5964 5944 -1 -6344 5944 -1 -5945 5945 6 -5946 5945 -1 -5965 5945 -1 -6345 5945 -1 -5946 5946 6 -5947 5946 -1 -5966 5946 -1 -6346 5946 -1 -5947 5947 6 -5948 5947 -1 -5967 5947 -1 -6347 5947 -1 -5948 5948 6 -5949 5948 -1 -5968 5948 -1 -6348 5948 -1 -5949 5949 6 -5950 5949 -1 -5969 5949 -1 -6349 5949 -1 -5950 5950 6 -5951 5950 -1 -5970 5950 -1 -6350 5950 -1 -5951 5951 6 -5952 5951 -1 -5971 5951 -1 -6351 5951 -1 -5952 5952 6 -5953 5952 -1 -5972 5952 -1 -6352 5952 -1 -5953 5953 6 -5954 5953 -1 -5973 5953 -1 -6353 5953 -1 -5954 5954 6 -5955 5954 -1 -5974 5954 -1 -6354 5954 -1 -5955 5955 6 -5956 5955 -1 -5975 5955 -1 -6355 5955 -1 -5956 5956 6 -5957 5956 -1 -5976 5956 -1 -6356 5956 -1 -5957 5957 6 -5958 5957 -1 -5977 5957 -1 -6357 5957 -1 -5958 5958 6 -5959 5958 -1 -5978 5958 -1 -6358 5958 -1 -5959 5959 6 -5960 5959 -1 -5979 5959 -1 -6359 5959 -1 -5960 5960 6 -5980 5960 -1 -6360 5960 -1 -5961 5961 6 -5962 5961 -1 -5981 5961 -1 -6361 5961 -1 -5962 5962 6 -5963 5962 -1 -5982 5962 -1 -6362 5962 -1 -5963 5963 6 -5964 5963 -1 -5983 5963 -1 -6363 5963 -1 -5964 5964 6 -5965 5964 -1 -5984 5964 -1 -6364 5964 -1 -5965 5965 6 -5966 5965 -1 -5985 5965 -1 -6365 5965 -1 -5966 5966 6 -5967 5966 -1 -5986 5966 -1 -6366 5966 -1 -5967 5967 6 -5968 5967 -1 -5987 5967 -1 -6367 5967 -1 -5968 5968 6 -5969 5968 -1 -5988 5968 -1 -6368 5968 -1 -5969 5969 6 -5970 5969 -1 -5989 5969 -1 -6369 5969 -1 -5970 5970 6 -5971 5970 -1 -5990 5970 -1 -6370 5970 -1 -5971 5971 6 -5972 5971 -1 -5991 5971 -1 -6371 5971 -1 -5972 5972 6 -5973 5972 -1 -5992 5972 -1 -6372 5972 -1 -5973 5973 6 -5974 5973 -1 -5993 5973 -1 -6373 5973 -1 -5974 5974 6 -5975 5974 -1 -5994 5974 -1 -6374 5974 -1 -5975 5975 6 -5976 5975 -1 -5995 5975 -1 -6375 5975 -1 -5976 5976 6 -5977 5976 -1 -5996 5976 -1 -6376 5976 -1 -5977 5977 6 -5978 5977 -1 -5997 5977 -1 -6377 5977 -1 -5978 5978 6 -5979 5978 -1 -5998 5978 -1 -6378 5978 -1 -5979 5979 6 -5980 5979 -1 -5999 5979 -1 -6379 5979 -1 -5980 5980 6 -6000 5980 -1 -6380 5980 -1 -5981 5981 6 -5982 5981 -1 -6381 5981 -1 -5982 5982 6 -5983 5982 -1 -6382 5982 -1 -5983 5983 6 -5984 5983 -1 -6383 5983 -1 -5984 5984 6 -5985 5984 -1 -6384 5984 -1 -5985 5985 6 -5986 5985 -1 -6385 5985 -1 -5986 5986 6 -5987 5986 -1 -6386 5986 -1 -5987 5987 6 -5988 5987 -1 -6387 5987 -1 -5988 5988 6 -5989 5988 -1 -6388 5988 -1 -5989 5989 6 -5990 5989 -1 -6389 5989 -1 -5990 5990 6 -5991 5990 -1 -6390 5990 -1 -5991 5991 6 -5992 5991 -1 -6391 5991 -1 -5992 5992 6 -5993 5992 -1 -6392 5992 -1 -5993 5993 6 -5994 5993 -1 -6393 5993 -1 -5994 5994 6 -5995 5994 -1 -6394 5994 -1 -5995 5995 6 -5996 5995 -1 -6395 5995 -1 -5996 5996 6 -5997 5996 -1 -6396 5996 -1 -5997 5997 6 -5998 5997 -1 -6397 5997 -1 -5998 5998 6 -5999 5998 -1 -6398 5998 -1 -5999 5999 6 -6000 5999 -1 -6399 5999 -1 -6000 6000 6 -6400 6000 -1 -6001 6001 6 -6002 6001 -1 -6021 6001 -1 -6401 6001 -1 -6002 6002 6 -6003 6002 -1 -6022 6002 -1 -6402 6002 -1 -6003 6003 6 -6004 6003 -1 -6023 6003 -1 -6403 6003 -1 -6004 6004 6 -6005 6004 -1 -6024 6004 -1 -6404 6004 -1 -6005 6005 6 -6006 6005 -1 -6025 6005 -1 -6405 6005 -1 -6006 6006 6 -6007 6006 -1 -6026 6006 -1 -6406 6006 -1 -6007 6007 6 -6008 6007 -1 -6027 6007 -1 -6407 6007 -1 -6008 6008 6 -6009 6008 -1 -6028 6008 -1 -6408 6008 -1 -6009 6009 6 -6010 6009 -1 -6029 6009 -1 -6409 6009 -1 -6010 6010 6 -6011 6010 -1 -6030 6010 -1 -6410 6010 -1 -6011 6011 6 -6012 6011 -1 -6031 6011 -1 -6411 6011 -1 -6012 6012 6 -6013 6012 -1 -6032 6012 -1 -6412 6012 -1 -6013 6013 6 -6014 6013 -1 -6033 6013 -1 -6413 6013 -1 -6014 6014 6 -6015 6014 -1 -6034 6014 -1 -6414 6014 -1 -6015 6015 6 -6016 6015 -1 -6035 6015 -1 -6415 6015 -1 -6016 6016 6 -6017 6016 -1 -6036 6016 -1 -6416 6016 -1 -6017 6017 6 -6018 6017 -1 -6037 6017 -1 -6417 6017 -1 -6018 6018 6 -6019 6018 -1 -6038 6018 -1 -6418 6018 -1 -6019 6019 6 -6020 6019 -1 -6039 6019 -1 -6419 6019 -1 -6020 6020 6 -6040 6020 -1 -6420 6020 -1 -6021 6021 6 -6022 6021 -1 -6041 6021 -1 -6421 6021 -1 -6022 6022 6 -6023 6022 -1 -6042 6022 -1 -6422 6022 -1 -6023 6023 6 -6024 6023 -1 -6043 6023 -1 -6423 6023 -1 -6024 6024 6 -6025 6024 -1 -6044 6024 -1 -6424 6024 -1 -6025 6025 6 -6026 6025 -1 -6045 6025 -1 -6425 6025 -1 -6026 6026 6 -6027 6026 -1 -6046 6026 -1 -6426 6026 -1 -6027 6027 6 -6028 6027 -1 -6047 6027 -1 -6427 6027 -1 -6028 6028 6 -6029 6028 -1 -6048 6028 -1 -6428 6028 -1 -6029 6029 6 -6030 6029 -1 -6049 6029 -1 -6429 6029 -1 -6030 6030 6 -6031 6030 -1 -6050 6030 -1 -6430 6030 -1 -6031 6031 6 -6032 6031 -1 -6051 6031 -1 -6431 6031 -1 -6032 6032 6 -6033 6032 -1 -6052 6032 -1 -6432 6032 -1 -6033 6033 6 -6034 6033 -1 -6053 6033 -1 -6433 6033 -1 -6034 6034 6 -6035 6034 -1 -6054 6034 -1 -6434 6034 -1 -6035 6035 6 -6036 6035 -1 -6055 6035 -1 -6435 6035 -1 -6036 6036 6 -6037 6036 -1 -6056 6036 -1 -6436 6036 -1 -6037 6037 6 -6038 6037 -1 -6057 6037 -1 -6437 6037 -1 -6038 6038 6 -6039 6038 -1 -6058 6038 -1 -6438 6038 -1 -6039 6039 6 -6040 6039 -1 -6059 6039 -1 -6439 6039 -1 -6040 6040 6 -6060 6040 -1 -6440 6040 -1 -6041 6041 6 -6042 6041 -1 -6061 6041 -1 -6441 6041 -1 -6042 6042 6 -6043 6042 -1 -6062 6042 -1 -6442 6042 -1 -6043 6043 6 -6044 6043 -1 -6063 6043 -1 -6443 6043 -1 -6044 6044 6 -6045 6044 -1 -6064 6044 -1 -6444 6044 -1 -6045 6045 6 -6046 6045 -1 -6065 6045 -1 -6445 6045 -1 -6046 6046 6 -6047 6046 -1 -6066 6046 -1 -6446 6046 -1 -6047 6047 6 -6048 6047 -1 -6067 6047 -1 -6447 6047 -1 -6048 6048 6 -6049 6048 -1 -6068 6048 -1 -6448 6048 -1 -6049 6049 6 -6050 6049 -1 -6069 6049 -1 -6449 6049 -1 -6050 6050 6 -6051 6050 -1 -6070 6050 -1 -6450 6050 -1 -6051 6051 6 -6052 6051 -1 -6071 6051 -1 -6451 6051 -1 -6052 6052 6 -6053 6052 -1 -6072 6052 -1 -6452 6052 -1 -6053 6053 6 -6054 6053 -1 -6073 6053 -1 -6453 6053 -1 -6054 6054 6 -6055 6054 -1 -6074 6054 -1 -6454 6054 -1 -6055 6055 6 -6056 6055 -1 -6075 6055 -1 -6455 6055 -1 -6056 6056 6 -6057 6056 -1 -6076 6056 -1 -6456 6056 -1 -6057 6057 6 -6058 6057 -1 -6077 6057 -1 -6457 6057 -1 -6058 6058 6 -6059 6058 -1 -6078 6058 -1 -6458 6058 -1 -6059 6059 6 -6060 6059 -1 -6079 6059 -1 -6459 6059 -1 -6060 6060 6 -6080 6060 -1 -6460 6060 -1 -6061 6061 6 -6062 6061 -1 -6081 6061 -1 -6461 6061 -1 -6062 6062 6 -6063 6062 -1 -6082 6062 -1 -6462 6062 -1 -6063 6063 6 -6064 6063 -1 -6083 6063 -1 -6463 6063 -1 -6064 6064 6 -6065 6064 -1 -6084 6064 -1 -6464 6064 -1 -6065 6065 6 -6066 6065 -1 -6085 6065 -1 -6465 6065 -1 -6066 6066 6 -6067 6066 -1 -6086 6066 -1 -6466 6066 -1 -6067 6067 6 -6068 6067 -1 -6087 6067 -1 -6467 6067 -1 -6068 6068 6 -6069 6068 -1 -6088 6068 -1 -6468 6068 -1 -6069 6069 6 -6070 6069 -1 -6089 6069 -1 -6469 6069 -1 -6070 6070 6 -6071 6070 -1 -6090 6070 -1 -6470 6070 -1 -6071 6071 6 -6072 6071 -1 -6091 6071 -1 -6471 6071 -1 -6072 6072 6 -6073 6072 -1 -6092 6072 -1 -6472 6072 -1 -6073 6073 6 -6074 6073 -1 -6093 6073 -1 -6473 6073 -1 -6074 6074 6 -6075 6074 -1 -6094 6074 -1 -6474 6074 -1 -6075 6075 6 -6076 6075 -1 -6095 6075 -1 -6475 6075 -1 -6076 6076 6 -6077 6076 -1 -6096 6076 -1 -6476 6076 -1 -6077 6077 6 -6078 6077 -1 -6097 6077 -1 -6477 6077 -1 -6078 6078 6 -6079 6078 -1 -6098 6078 -1 -6478 6078 -1 -6079 6079 6 -6080 6079 -1 -6099 6079 -1 -6479 6079 -1 -6080 6080 6 -6100 6080 -1 -6480 6080 -1 -6081 6081 6 -6082 6081 -1 -6101 6081 -1 -6481 6081 -1 -6082 6082 6 -6083 6082 -1 -6102 6082 -1 -6482 6082 -1 -6083 6083 6 -6084 6083 -1 -6103 6083 -1 -6483 6083 -1 -6084 6084 6 -6085 6084 -1 -6104 6084 -1 -6484 6084 -1 -6085 6085 6 -6086 6085 -1 -6105 6085 -1 -6485 6085 -1 -6086 6086 6 -6087 6086 -1 -6106 6086 -1 -6486 6086 -1 -6087 6087 6 -6088 6087 -1 -6107 6087 -1 -6487 6087 -1 -6088 6088 6 -6089 6088 -1 -6108 6088 -1 -6488 6088 -1 -6089 6089 6 -6090 6089 -1 -6109 6089 -1 -6489 6089 -1 -6090 6090 6 -6091 6090 -1 -6110 6090 -1 -6490 6090 -1 -6091 6091 6 -6092 6091 -1 -6111 6091 -1 -6491 6091 -1 -6092 6092 6 -6093 6092 -1 -6112 6092 -1 -6492 6092 -1 -6093 6093 6 -6094 6093 -1 -6113 6093 -1 -6493 6093 -1 -6094 6094 6 -6095 6094 -1 -6114 6094 -1 -6494 6094 -1 -6095 6095 6 -6096 6095 -1 -6115 6095 -1 -6495 6095 -1 -6096 6096 6 -6097 6096 -1 -6116 6096 -1 -6496 6096 -1 -6097 6097 6 -6098 6097 -1 -6117 6097 -1 -6497 6097 -1 -6098 6098 6 -6099 6098 -1 -6118 6098 -1 -6498 6098 -1 -6099 6099 6 -6100 6099 -1 -6119 6099 -1 -6499 6099 -1 -6100 6100 6 -6120 6100 -1 -6500 6100 -1 -6101 6101 6 -6102 6101 -1 -6121 6101 -1 -6501 6101 -1 -6102 6102 6 -6103 6102 -1 -6122 6102 -1 -6502 6102 -1 -6103 6103 6 -6104 6103 -1 -6123 6103 -1 -6503 6103 -1 -6104 6104 6 -6105 6104 -1 -6124 6104 -1 -6504 6104 -1 -6105 6105 6 -6106 6105 -1 -6125 6105 -1 -6505 6105 -1 -6106 6106 6 -6107 6106 -1 -6126 6106 -1 -6506 6106 -1 -6107 6107 6 -6108 6107 -1 -6127 6107 -1 -6507 6107 -1 -6108 6108 6 -6109 6108 -1 -6128 6108 -1 -6508 6108 -1 -6109 6109 6 -6110 6109 -1 -6129 6109 -1 -6509 6109 -1 -6110 6110 6 -6111 6110 -1 -6130 6110 -1 -6510 6110 -1 -6111 6111 6 -6112 6111 -1 -6131 6111 -1 -6511 6111 -1 -6112 6112 6 -6113 6112 -1 -6132 6112 -1 -6512 6112 -1 -6113 6113 6 -6114 6113 -1 -6133 6113 -1 -6513 6113 -1 -6114 6114 6 -6115 6114 -1 -6134 6114 -1 -6514 6114 -1 -6115 6115 6 -6116 6115 -1 -6135 6115 -1 -6515 6115 -1 -6116 6116 6 -6117 6116 -1 -6136 6116 -1 -6516 6116 -1 -6117 6117 6 -6118 6117 -1 -6137 6117 -1 -6517 6117 -1 -6118 6118 6 -6119 6118 -1 -6138 6118 -1 -6518 6118 -1 -6119 6119 6 -6120 6119 -1 -6139 6119 -1 -6519 6119 -1 -6120 6120 6 -6140 6120 -1 -6520 6120 -1 -6121 6121 6 -6122 6121 -1 -6141 6121 -1 -6521 6121 -1 -6122 6122 6 -6123 6122 -1 -6142 6122 -1 -6522 6122 -1 -6123 6123 6 -6124 6123 -1 -6143 6123 -1 -6523 6123 -1 -6124 6124 6 -6125 6124 -1 -6144 6124 -1 -6524 6124 -1 -6125 6125 6 -6126 6125 -1 -6145 6125 -1 -6525 6125 -1 -6126 6126 6 -6127 6126 -1 -6146 6126 -1 -6526 6126 -1 -6127 6127 6 -6128 6127 -1 -6147 6127 -1 -6527 6127 -1 -6128 6128 6 -6129 6128 -1 -6148 6128 -1 -6528 6128 -1 -6129 6129 6 -6130 6129 -1 -6149 6129 -1 -6529 6129 -1 -6130 6130 6 -6131 6130 -1 -6150 6130 -1 -6530 6130 -1 -6131 6131 6 -6132 6131 -1 -6151 6131 -1 -6531 6131 -1 -6132 6132 6 -6133 6132 -1 -6152 6132 -1 -6532 6132 -1 -6133 6133 6 -6134 6133 -1 -6153 6133 -1 -6533 6133 -1 -6134 6134 6 -6135 6134 -1 -6154 6134 -1 -6534 6134 -1 -6135 6135 6 -6136 6135 -1 -6155 6135 -1 -6535 6135 -1 -6136 6136 6 -6137 6136 -1 -6156 6136 -1 -6536 6136 -1 -6137 6137 6 -6138 6137 -1 -6157 6137 -1 -6537 6137 -1 -6138 6138 6 -6139 6138 -1 -6158 6138 -1 -6538 6138 -1 -6139 6139 6 -6140 6139 -1 -6159 6139 -1 -6539 6139 -1 -6140 6140 6 -6160 6140 -1 -6540 6140 -1 -6141 6141 6 -6142 6141 -1 -6161 6141 -1 -6541 6141 -1 -6142 6142 6 -6143 6142 -1 -6162 6142 -1 -6542 6142 -1 -6143 6143 6 -6144 6143 -1 -6163 6143 -1 -6543 6143 -1 -6144 6144 6 -6145 6144 -1 -6164 6144 -1 -6544 6144 -1 -6145 6145 6 -6146 6145 -1 -6165 6145 -1 -6545 6145 -1 -6146 6146 6 -6147 6146 -1 -6166 6146 -1 -6546 6146 -1 -6147 6147 6 -6148 6147 -1 -6167 6147 -1 -6547 6147 -1 -6148 6148 6 -6149 6148 -1 -6168 6148 -1 -6548 6148 -1 -6149 6149 6 -6150 6149 -1 -6169 6149 -1 -6549 6149 -1 -6150 6150 6 -6151 6150 -1 -6170 6150 -1 -6550 6150 -1 -6151 6151 6 -6152 6151 -1 -6171 6151 -1 -6551 6151 -1 -6152 6152 6 -6153 6152 -1 -6172 6152 -1 -6552 6152 -1 -6153 6153 6 -6154 6153 -1 -6173 6153 -1 -6553 6153 -1 -6154 6154 6 -6155 6154 -1 -6174 6154 -1 -6554 6154 -1 -6155 6155 6 -6156 6155 -1 -6175 6155 -1 -6555 6155 -1 -6156 6156 6 -6157 6156 -1 -6176 6156 -1 -6556 6156 -1 -6157 6157 6 -6158 6157 -1 -6177 6157 -1 -6557 6157 -1 -6158 6158 6 -6159 6158 -1 -6178 6158 -1 -6558 6158 -1 -6159 6159 6 -6160 6159 -1 -6179 6159 -1 -6559 6159 -1 -6160 6160 6 -6180 6160 -1 -6560 6160 -1 -6161 6161 6 -6162 6161 -1 -6181 6161 -1 -6561 6161 -1 -6162 6162 6 -6163 6162 -1 -6182 6162 -1 -6562 6162 -1 -6163 6163 6 -6164 6163 -1 -6183 6163 -1 -6563 6163 -1 -6164 6164 6 -6165 6164 -1 -6184 6164 -1 -6564 6164 -1 -6165 6165 6 -6166 6165 -1 -6185 6165 -1 -6565 6165 -1 -6166 6166 6 -6167 6166 -1 -6186 6166 -1 -6566 6166 -1 -6167 6167 6 -6168 6167 -1 -6187 6167 -1 -6567 6167 -1 -6168 6168 6 -6169 6168 -1 -6188 6168 -1 -6568 6168 -1 -6169 6169 6 -6170 6169 -1 -6189 6169 -1 -6569 6169 -1 -6170 6170 6 -6171 6170 -1 -6190 6170 -1 -6570 6170 -1 -6171 6171 6 -6172 6171 -1 -6191 6171 -1 -6571 6171 -1 -6172 6172 6 -6173 6172 -1 -6192 6172 -1 -6572 6172 -1 -6173 6173 6 -6174 6173 -1 -6193 6173 -1 -6573 6173 -1 -6174 6174 6 -6175 6174 -1 -6194 6174 -1 -6574 6174 -1 -6175 6175 6 -6176 6175 -1 -6195 6175 -1 -6575 6175 -1 -6176 6176 6 -6177 6176 -1 -6196 6176 -1 -6576 6176 -1 -6177 6177 6 -6178 6177 -1 -6197 6177 -1 -6577 6177 -1 -6178 6178 6 -6179 6178 -1 -6198 6178 -1 -6578 6178 -1 -6179 6179 6 -6180 6179 -1 -6199 6179 -1 -6579 6179 -1 -6180 6180 6 -6200 6180 -1 -6580 6180 -1 -6181 6181 6 -6182 6181 -1 -6201 6181 -1 -6581 6181 -1 -6182 6182 6 -6183 6182 -1 -6202 6182 -1 -6582 6182 -1 -6183 6183 6 -6184 6183 -1 -6203 6183 -1 -6583 6183 -1 -6184 6184 6 -6185 6184 -1 -6204 6184 -1 -6584 6184 -1 -6185 6185 6 -6186 6185 -1 -6205 6185 -1 -6585 6185 -1 -6186 6186 6 -6187 6186 -1 -6206 6186 -1 -6586 6186 -1 -6187 6187 6 -6188 6187 -1 -6207 6187 -1 -6587 6187 -1 -6188 6188 6 -6189 6188 -1 -6208 6188 -1 -6588 6188 -1 -6189 6189 6 -6190 6189 -1 -6209 6189 -1 -6589 6189 -1 -6190 6190 6 -6191 6190 -1 -6210 6190 -1 -6590 6190 -1 -6191 6191 6 -6192 6191 -1 -6211 6191 -1 -6591 6191 -1 -6192 6192 6 -6193 6192 -1 -6212 6192 -1 -6592 6192 -1 -6193 6193 6 -6194 6193 -1 -6213 6193 -1 -6593 6193 -1 -6194 6194 6 -6195 6194 -1 -6214 6194 -1 -6594 6194 -1 -6195 6195 6 -6196 6195 -1 -6215 6195 -1 -6595 6195 -1 -6196 6196 6 -6197 6196 -1 -6216 6196 -1 -6596 6196 -1 -6197 6197 6 -6198 6197 -1 -6217 6197 -1 -6597 6197 -1 -6198 6198 6 -6199 6198 -1 -6218 6198 -1 -6598 6198 -1 -6199 6199 6 -6200 6199 -1 -6219 6199 -1 -6599 6199 -1 -6200 6200 6 -6220 6200 -1 -6600 6200 -1 -6201 6201 6 -6202 6201 -1 -6221 6201 -1 -6601 6201 -1 -6202 6202 6 -6203 6202 -1 -6222 6202 -1 -6602 6202 -1 -6203 6203 6 -6204 6203 -1 -6223 6203 -1 -6603 6203 -1 -6204 6204 6 -6205 6204 -1 -6224 6204 -1 -6604 6204 -1 -6205 6205 6 -6206 6205 -1 -6225 6205 -1 -6605 6205 -1 -6206 6206 6 -6207 6206 -1 -6226 6206 -1 -6606 6206 -1 -6207 6207 6 -6208 6207 -1 -6227 6207 -1 -6607 6207 -1 -6208 6208 6 -6209 6208 -1 -6228 6208 -1 -6608 6208 -1 -6209 6209 6 -6210 6209 -1 -6229 6209 -1 -6609 6209 -1 -6210 6210 6 -6211 6210 -1 -6230 6210 -1 -6610 6210 -1 -6211 6211 6 -6212 6211 -1 -6231 6211 -1 -6611 6211 -1 -6212 6212 6 -6213 6212 -1 -6232 6212 -1 -6612 6212 -1 -6213 6213 6 -6214 6213 -1 -6233 6213 -1 -6613 6213 -1 -6214 6214 6 -6215 6214 -1 -6234 6214 -1 -6614 6214 -1 -6215 6215 6 -6216 6215 -1 -6235 6215 -1 -6615 6215 -1 -6216 6216 6 -6217 6216 -1 -6236 6216 -1 -6616 6216 -1 -6217 6217 6 -6218 6217 -1 -6237 6217 -1 -6617 6217 -1 -6218 6218 6 -6219 6218 -1 -6238 6218 -1 -6618 6218 -1 -6219 6219 6 -6220 6219 -1 -6239 6219 -1 -6619 6219 -1 -6220 6220 6 -6240 6220 -1 -6620 6220 -1 -6221 6221 6 -6222 6221 -1 -6241 6221 -1 -6621 6221 -1 -6222 6222 6 -6223 6222 -1 -6242 6222 -1 -6622 6222 -1 -6223 6223 6 -6224 6223 -1 -6243 6223 -1 -6623 6223 -1 -6224 6224 6 -6225 6224 -1 -6244 6224 -1 -6624 6224 -1 -6225 6225 6 -6226 6225 -1 -6245 6225 -1 -6625 6225 -1 -6226 6226 6 -6227 6226 -1 -6246 6226 -1 -6626 6226 -1 -6227 6227 6 -6228 6227 -1 -6247 6227 -1 -6627 6227 -1 -6228 6228 6 -6229 6228 -1 -6248 6228 -1 -6628 6228 -1 -6229 6229 6 -6230 6229 -1 -6249 6229 -1 -6629 6229 -1 -6230 6230 6 -6231 6230 -1 -6250 6230 -1 -6630 6230 -1 -6231 6231 6 -6232 6231 -1 -6251 6231 -1 -6631 6231 -1 -6232 6232 6 -6233 6232 -1 -6252 6232 -1 -6632 6232 -1 -6233 6233 6 -6234 6233 -1 -6253 6233 -1 -6633 6233 -1 -6234 6234 6 -6235 6234 -1 -6254 6234 -1 -6634 6234 -1 -6235 6235 6 -6236 6235 -1 -6255 6235 -1 -6635 6235 -1 -6236 6236 6 -6237 6236 -1 -6256 6236 -1 -6636 6236 -1 -6237 6237 6 -6238 6237 -1 -6257 6237 -1 -6637 6237 -1 -6238 6238 6 -6239 6238 -1 -6258 6238 -1 -6638 6238 -1 -6239 6239 6 -6240 6239 -1 -6259 6239 -1 -6639 6239 -1 -6240 6240 6 -6260 6240 -1 -6640 6240 -1 -6241 6241 6 -6242 6241 -1 -6261 6241 -1 -6641 6241 -1 -6242 6242 6 -6243 6242 -1 -6262 6242 -1 -6642 6242 -1 -6243 6243 6 -6244 6243 -1 -6263 6243 -1 -6643 6243 -1 -6244 6244 6 -6245 6244 -1 -6264 6244 -1 -6644 6244 -1 -6245 6245 6 -6246 6245 -1 -6265 6245 -1 -6645 6245 -1 -6246 6246 6 -6247 6246 -1 -6266 6246 -1 -6646 6246 -1 -6247 6247 6 -6248 6247 -1 -6267 6247 -1 -6647 6247 -1 -6248 6248 6 -6249 6248 -1 -6268 6248 -1 -6648 6248 -1 -6249 6249 6 -6250 6249 -1 -6269 6249 -1 -6649 6249 -1 -6250 6250 6 -6251 6250 -1 -6270 6250 -1 -6650 6250 -1 -6251 6251 6 -6252 6251 -1 -6271 6251 -1 -6651 6251 -1 -6252 6252 6 -6253 6252 -1 -6272 6252 -1 -6652 6252 -1 -6253 6253 6 -6254 6253 -1 -6273 6253 -1 -6653 6253 -1 -6254 6254 6 -6255 6254 -1 -6274 6254 -1 -6654 6254 -1 -6255 6255 6 -6256 6255 -1 -6275 6255 -1 -6655 6255 -1 -6256 6256 6 -6257 6256 -1 -6276 6256 -1 -6656 6256 -1 -6257 6257 6 -6258 6257 -1 -6277 6257 -1 -6657 6257 -1 -6258 6258 6 -6259 6258 -1 -6278 6258 -1 -6658 6258 -1 -6259 6259 6 -6260 6259 -1 -6279 6259 -1 -6659 6259 -1 -6260 6260 6 -6280 6260 -1 -6660 6260 -1 -6261 6261 6 -6262 6261 -1 -6281 6261 -1 -6661 6261 -1 -6262 6262 6 -6263 6262 -1 -6282 6262 -1 -6662 6262 -1 -6263 6263 6 -6264 6263 -1 -6283 6263 -1 -6663 6263 -1 -6264 6264 6 -6265 6264 -1 -6284 6264 -1 -6664 6264 -1 -6265 6265 6 -6266 6265 -1 -6285 6265 -1 -6665 6265 -1 -6266 6266 6 -6267 6266 -1 -6286 6266 -1 -6666 6266 -1 -6267 6267 6 -6268 6267 -1 -6287 6267 -1 -6667 6267 -1 -6268 6268 6 -6269 6268 -1 -6288 6268 -1 -6668 6268 -1 -6269 6269 6 -6270 6269 -1 -6289 6269 -1 -6669 6269 -1 -6270 6270 6 -6271 6270 -1 -6290 6270 -1 -6670 6270 -1 -6271 6271 6 -6272 6271 -1 -6291 6271 -1 -6671 6271 -1 -6272 6272 6 -6273 6272 -1 -6292 6272 -1 -6672 6272 -1 -6273 6273 6 -6274 6273 -1 -6293 6273 -1 -6673 6273 -1 -6274 6274 6 -6275 6274 -1 -6294 6274 -1 -6674 6274 -1 -6275 6275 6 -6276 6275 -1 -6295 6275 -1 -6675 6275 -1 -6276 6276 6 -6277 6276 -1 -6296 6276 -1 -6676 6276 -1 -6277 6277 6 -6278 6277 -1 -6297 6277 -1 -6677 6277 -1 -6278 6278 6 -6279 6278 -1 -6298 6278 -1 -6678 6278 -1 -6279 6279 6 -6280 6279 -1 -6299 6279 -1 -6679 6279 -1 -6280 6280 6 -6300 6280 -1 -6680 6280 -1 -6281 6281 6 -6282 6281 -1 -6301 6281 -1 -6681 6281 -1 -6282 6282 6 -6283 6282 -1 -6302 6282 -1 -6682 6282 -1 -6283 6283 6 -6284 6283 -1 -6303 6283 -1 -6683 6283 -1 -6284 6284 6 -6285 6284 -1 -6304 6284 -1 -6684 6284 -1 -6285 6285 6 -6286 6285 -1 -6305 6285 -1 -6685 6285 -1 -6286 6286 6 -6287 6286 -1 -6306 6286 -1 -6686 6286 -1 -6287 6287 6 -6288 6287 -1 -6307 6287 -1 -6687 6287 -1 -6288 6288 6 -6289 6288 -1 -6308 6288 -1 -6688 6288 -1 -6289 6289 6 -6290 6289 -1 -6309 6289 -1 -6689 6289 -1 -6290 6290 6 -6291 6290 -1 -6310 6290 -1 -6690 6290 -1 -6291 6291 6 -6292 6291 -1 -6311 6291 -1 -6691 6291 -1 -6292 6292 6 -6293 6292 -1 -6312 6292 -1 -6692 6292 -1 -6293 6293 6 -6294 6293 -1 -6313 6293 -1 -6693 6293 -1 -6294 6294 6 -6295 6294 -1 -6314 6294 -1 -6694 6294 -1 -6295 6295 6 -6296 6295 -1 -6315 6295 -1 -6695 6295 -1 -6296 6296 6 -6297 6296 -1 -6316 6296 -1 -6696 6296 -1 -6297 6297 6 -6298 6297 -1 -6317 6297 -1 -6697 6297 -1 -6298 6298 6 -6299 6298 -1 -6318 6298 -1 -6698 6298 -1 -6299 6299 6 -6300 6299 -1 -6319 6299 -1 -6699 6299 -1 -6300 6300 6 -6320 6300 -1 -6700 6300 -1 -6301 6301 6 -6302 6301 -1 -6321 6301 -1 -6701 6301 -1 -6302 6302 6 -6303 6302 -1 -6322 6302 -1 -6702 6302 -1 -6303 6303 6 -6304 6303 -1 -6323 6303 -1 -6703 6303 -1 -6304 6304 6 -6305 6304 -1 -6324 6304 -1 -6704 6304 -1 -6305 6305 6 -6306 6305 -1 -6325 6305 -1 -6705 6305 -1 -6306 6306 6 -6307 6306 -1 -6326 6306 -1 -6706 6306 -1 -6307 6307 6 -6308 6307 -1 -6327 6307 -1 -6707 6307 -1 -6308 6308 6 -6309 6308 -1 -6328 6308 -1 -6708 6308 -1 -6309 6309 6 -6310 6309 -1 -6329 6309 -1 -6709 6309 -1 -6310 6310 6 -6311 6310 -1 -6330 6310 -1 -6710 6310 -1 -6311 6311 6 -6312 6311 -1 -6331 6311 -1 -6711 6311 -1 -6312 6312 6 -6313 6312 -1 -6332 6312 -1 -6712 6312 -1 -6313 6313 6 -6314 6313 -1 -6333 6313 -1 -6713 6313 -1 -6314 6314 6 -6315 6314 -1 -6334 6314 -1 -6714 6314 -1 -6315 6315 6 -6316 6315 -1 -6335 6315 -1 -6715 6315 -1 -6316 6316 6 -6317 6316 -1 -6336 6316 -1 -6716 6316 -1 -6317 6317 6 -6318 6317 -1 -6337 6317 -1 -6717 6317 -1 -6318 6318 6 -6319 6318 -1 -6338 6318 -1 -6718 6318 -1 -6319 6319 6 -6320 6319 -1 -6339 6319 -1 -6719 6319 -1 -6320 6320 6 -6340 6320 -1 -6720 6320 -1 -6321 6321 6 -6322 6321 -1 -6341 6321 -1 -6721 6321 -1 -6322 6322 6 -6323 6322 -1 -6342 6322 -1 -6722 6322 -1 -6323 6323 6 -6324 6323 -1 -6343 6323 -1 -6723 6323 -1 -6324 6324 6 -6325 6324 -1 -6344 6324 -1 -6724 6324 -1 -6325 6325 6 -6326 6325 -1 -6345 6325 -1 -6725 6325 -1 -6326 6326 6 -6327 6326 -1 -6346 6326 -1 -6726 6326 -1 -6327 6327 6 -6328 6327 -1 -6347 6327 -1 -6727 6327 -1 -6328 6328 6 -6329 6328 -1 -6348 6328 -1 -6728 6328 -1 -6329 6329 6 -6330 6329 -1 -6349 6329 -1 -6729 6329 -1 -6330 6330 6 -6331 6330 -1 -6350 6330 -1 -6730 6330 -1 -6331 6331 6 -6332 6331 -1 -6351 6331 -1 -6731 6331 -1 -6332 6332 6 -6333 6332 -1 -6352 6332 -1 -6732 6332 -1 -6333 6333 6 -6334 6333 -1 -6353 6333 -1 -6733 6333 -1 -6334 6334 6 -6335 6334 -1 -6354 6334 -1 -6734 6334 -1 -6335 6335 6 -6336 6335 -1 -6355 6335 -1 -6735 6335 -1 -6336 6336 6 -6337 6336 -1 -6356 6336 -1 -6736 6336 -1 -6337 6337 6 -6338 6337 -1 -6357 6337 -1 -6737 6337 -1 -6338 6338 6 -6339 6338 -1 -6358 6338 -1 -6738 6338 -1 -6339 6339 6 -6340 6339 -1 -6359 6339 -1 -6739 6339 -1 -6340 6340 6 -6360 6340 -1 -6740 6340 -1 -6341 6341 6 -6342 6341 -1 -6361 6341 -1 -6741 6341 -1 -6342 6342 6 -6343 6342 -1 -6362 6342 -1 -6742 6342 -1 -6343 6343 6 -6344 6343 -1 -6363 6343 -1 -6743 6343 -1 -6344 6344 6 -6345 6344 -1 -6364 6344 -1 -6744 6344 -1 -6345 6345 6 -6346 6345 -1 -6365 6345 -1 -6745 6345 -1 -6346 6346 6 -6347 6346 -1 -6366 6346 -1 -6746 6346 -1 -6347 6347 6 -6348 6347 -1 -6367 6347 -1 -6747 6347 -1 -6348 6348 6 -6349 6348 -1 -6368 6348 -1 -6748 6348 -1 -6349 6349 6 -6350 6349 -1 -6369 6349 -1 -6749 6349 -1 -6350 6350 6 -6351 6350 -1 -6370 6350 -1 -6750 6350 -1 -6351 6351 6 -6352 6351 -1 -6371 6351 -1 -6751 6351 -1 -6352 6352 6 -6353 6352 -1 -6372 6352 -1 -6752 6352 -1 -6353 6353 6 -6354 6353 -1 -6373 6353 -1 -6753 6353 -1 -6354 6354 6 -6355 6354 -1 -6374 6354 -1 -6754 6354 -1 -6355 6355 6 -6356 6355 -1 -6375 6355 -1 -6755 6355 -1 -6356 6356 6 -6357 6356 -1 -6376 6356 -1 -6756 6356 -1 -6357 6357 6 -6358 6357 -1 -6377 6357 -1 -6757 6357 -1 -6358 6358 6 -6359 6358 -1 -6378 6358 -1 -6758 6358 -1 -6359 6359 6 -6360 6359 -1 -6379 6359 -1 -6759 6359 -1 -6360 6360 6 -6380 6360 -1 -6760 6360 -1 -6361 6361 6 -6362 6361 -1 -6381 6361 -1 -6761 6361 -1 -6362 6362 6 -6363 6362 -1 -6382 6362 -1 -6762 6362 -1 -6363 6363 6 -6364 6363 -1 -6383 6363 -1 -6763 6363 -1 -6364 6364 6 -6365 6364 -1 -6384 6364 -1 -6764 6364 -1 -6365 6365 6 -6366 6365 -1 -6385 6365 -1 -6765 6365 -1 -6366 6366 6 -6367 6366 -1 -6386 6366 -1 -6766 6366 -1 -6367 6367 6 -6368 6367 -1 -6387 6367 -1 -6767 6367 -1 -6368 6368 6 -6369 6368 -1 -6388 6368 -1 -6768 6368 -1 -6369 6369 6 -6370 6369 -1 -6389 6369 -1 -6769 6369 -1 -6370 6370 6 -6371 6370 -1 -6390 6370 -1 -6770 6370 -1 -6371 6371 6 -6372 6371 -1 -6391 6371 -1 -6771 6371 -1 -6372 6372 6 -6373 6372 -1 -6392 6372 -1 -6772 6372 -1 -6373 6373 6 -6374 6373 -1 -6393 6373 -1 -6773 6373 -1 -6374 6374 6 -6375 6374 -1 -6394 6374 -1 -6774 6374 -1 -6375 6375 6 -6376 6375 -1 -6395 6375 -1 -6775 6375 -1 -6376 6376 6 -6377 6376 -1 -6396 6376 -1 -6776 6376 -1 -6377 6377 6 -6378 6377 -1 -6397 6377 -1 -6777 6377 -1 -6378 6378 6 -6379 6378 -1 -6398 6378 -1 -6778 6378 -1 -6379 6379 6 -6380 6379 -1 -6399 6379 -1 -6779 6379 -1 -6380 6380 6 -6400 6380 -1 -6780 6380 -1 -6381 6381 6 -6382 6381 -1 -6781 6381 -1 -6382 6382 6 -6383 6382 -1 -6782 6382 -1 -6383 6383 6 -6384 6383 -1 -6783 6383 -1 -6384 6384 6 -6385 6384 -1 -6784 6384 -1 -6385 6385 6 -6386 6385 -1 -6785 6385 -1 -6386 6386 6 -6387 6386 -1 -6786 6386 -1 -6387 6387 6 -6388 6387 -1 -6787 6387 -1 -6388 6388 6 -6389 6388 -1 -6788 6388 -1 -6389 6389 6 -6390 6389 -1 -6789 6389 -1 -6390 6390 6 -6391 6390 -1 -6790 6390 -1 -6391 6391 6 -6392 6391 -1 -6791 6391 -1 -6392 6392 6 -6393 6392 -1 -6792 6392 -1 -6393 6393 6 -6394 6393 -1 -6793 6393 -1 -6394 6394 6 -6395 6394 -1 -6794 6394 -1 -6395 6395 6 -6396 6395 -1 -6795 6395 -1 -6396 6396 6 -6397 6396 -1 -6796 6396 -1 -6397 6397 6 -6398 6397 -1 -6797 6397 -1 -6398 6398 6 -6399 6398 -1 -6798 6398 -1 -6399 6399 6 -6400 6399 -1 -6799 6399 -1 -6400 6400 6 -6800 6400 -1 -6401 6401 6 -6402 6401 -1 -6421 6401 -1 -6801 6401 -1 -6402 6402 6 -6403 6402 -1 -6422 6402 -1 -6802 6402 -1 -6403 6403 6 -6404 6403 -1 -6423 6403 -1 -6803 6403 -1 -6404 6404 6 -6405 6404 -1 -6424 6404 -1 -6804 6404 -1 -6405 6405 6 -6406 6405 -1 -6425 6405 -1 -6805 6405 -1 -6406 6406 6 -6407 6406 -1 -6426 6406 -1 -6806 6406 -1 -6407 6407 6 -6408 6407 -1 -6427 6407 -1 -6807 6407 -1 -6408 6408 6 -6409 6408 -1 -6428 6408 -1 -6808 6408 -1 -6409 6409 6 -6410 6409 -1 -6429 6409 -1 -6809 6409 -1 -6410 6410 6 -6411 6410 -1 -6430 6410 -1 -6810 6410 -1 -6411 6411 6 -6412 6411 -1 -6431 6411 -1 -6811 6411 -1 -6412 6412 6 -6413 6412 -1 -6432 6412 -1 -6812 6412 -1 -6413 6413 6 -6414 6413 -1 -6433 6413 -1 -6813 6413 -1 -6414 6414 6 -6415 6414 -1 -6434 6414 -1 -6814 6414 -1 -6415 6415 6 -6416 6415 -1 -6435 6415 -1 -6815 6415 -1 -6416 6416 6 -6417 6416 -1 -6436 6416 -1 -6816 6416 -1 -6417 6417 6 -6418 6417 -1 -6437 6417 -1 -6817 6417 -1 -6418 6418 6 -6419 6418 -1 -6438 6418 -1 -6818 6418 -1 -6419 6419 6 -6420 6419 -1 -6439 6419 -1 -6819 6419 -1 -6420 6420 6 -6440 6420 -1 -6820 6420 -1 -6421 6421 6 -6422 6421 -1 -6441 6421 -1 -6821 6421 -1 -6422 6422 6 -6423 6422 -1 -6442 6422 -1 -6822 6422 -1 -6423 6423 6 -6424 6423 -1 -6443 6423 -1 -6823 6423 -1 -6424 6424 6 -6425 6424 -1 -6444 6424 -1 -6824 6424 -1 -6425 6425 6 -6426 6425 -1 -6445 6425 -1 -6825 6425 -1 -6426 6426 6 -6427 6426 -1 -6446 6426 -1 -6826 6426 -1 -6427 6427 6 -6428 6427 -1 -6447 6427 -1 -6827 6427 -1 -6428 6428 6 -6429 6428 -1 -6448 6428 -1 -6828 6428 -1 -6429 6429 6 -6430 6429 -1 -6449 6429 -1 -6829 6429 -1 -6430 6430 6 -6431 6430 -1 -6450 6430 -1 -6830 6430 -1 -6431 6431 6 -6432 6431 -1 -6451 6431 -1 -6831 6431 -1 -6432 6432 6 -6433 6432 -1 -6452 6432 -1 -6832 6432 -1 -6433 6433 6 -6434 6433 -1 -6453 6433 -1 -6833 6433 -1 -6434 6434 6 -6435 6434 -1 -6454 6434 -1 -6834 6434 -1 -6435 6435 6 -6436 6435 -1 -6455 6435 -1 -6835 6435 -1 -6436 6436 6 -6437 6436 -1 -6456 6436 -1 -6836 6436 -1 -6437 6437 6 -6438 6437 -1 -6457 6437 -1 -6837 6437 -1 -6438 6438 6 -6439 6438 -1 -6458 6438 -1 -6838 6438 -1 -6439 6439 6 -6440 6439 -1 -6459 6439 -1 -6839 6439 -1 -6440 6440 6 -6460 6440 -1 -6840 6440 -1 -6441 6441 6 -6442 6441 -1 -6461 6441 -1 -6841 6441 -1 -6442 6442 6 -6443 6442 -1 -6462 6442 -1 -6842 6442 -1 -6443 6443 6 -6444 6443 -1 -6463 6443 -1 -6843 6443 -1 -6444 6444 6 -6445 6444 -1 -6464 6444 -1 -6844 6444 -1 -6445 6445 6 -6446 6445 -1 -6465 6445 -1 -6845 6445 -1 -6446 6446 6 -6447 6446 -1 -6466 6446 -1 -6846 6446 -1 -6447 6447 6 -6448 6447 -1 -6467 6447 -1 -6847 6447 -1 -6448 6448 6 -6449 6448 -1 -6468 6448 -1 -6848 6448 -1 -6449 6449 6 -6450 6449 -1 -6469 6449 -1 -6849 6449 -1 -6450 6450 6 -6451 6450 -1 -6470 6450 -1 -6850 6450 -1 -6451 6451 6 -6452 6451 -1 -6471 6451 -1 -6851 6451 -1 -6452 6452 6 -6453 6452 -1 -6472 6452 -1 -6852 6452 -1 -6453 6453 6 -6454 6453 -1 -6473 6453 -1 -6853 6453 -1 -6454 6454 6 -6455 6454 -1 -6474 6454 -1 -6854 6454 -1 -6455 6455 6 -6456 6455 -1 -6475 6455 -1 -6855 6455 -1 -6456 6456 6 -6457 6456 -1 -6476 6456 -1 -6856 6456 -1 -6457 6457 6 -6458 6457 -1 -6477 6457 -1 -6857 6457 -1 -6458 6458 6 -6459 6458 -1 -6478 6458 -1 -6858 6458 -1 -6459 6459 6 -6460 6459 -1 -6479 6459 -1 -6859 6459 -1 -6460 6460 6 -6480 6460 -1 -6860 6460 -1 -6461 6461 6 -6462 6461 -1 -6481 6461 -1 -6861 6461 -1 -6462 6462 6 -6463 6462 -1 -6482 6462 -1 -6862 6462 -1 -6463 6463 6 -6464 6463 -1 -6483 6463 -1 -6863 6463 -1 -6464 6464 6 -6465 6464 -1 -6484 6464 -1 -6864 6464 -1 -6465 6465 6 -6466 6465 -1 -6485 6465 -1 -6865 6465 -1 -6466 6466 6 -6467 6466 -1 -6486 6466 -1 -6866 6466 -1 -6467 6467 6 -6468 6467 -1 -6487 6467 -1 -6867 6467 -1 -6468 6468 6 -6469 6468 -1 -6488 6468 -1 -6868 6468 -1 -6469 6469 6 -6470 6469 -1 -6489 6469 -1 -6869 6469 -1 -6470 6470 6 -6471 6470 -1 -6490 6470 -1 -6870 6470 -1 -6471 6471 6 -6472 6471 -1 -6491 6471 -1 -6871 6471 -1 -6472 6472 6 -6473 6472 -1 -6492 6472 -1 -6872 6472 -1 -6473 6473 6 -6474 6473 -1 -6493 6473 -1 -6873 6473 -1 -6474 6474 6 -6475 6474 -1 -6494 6474 -1 -6874 6474 -1 -6475 6475 6 -6476 6475 -1 -6495 6475 -1 -6875 6475 -1 -6476 6476 6 -6477 6476 -1 -6496 6476 -1 -6876 6476 -1 -6477 6477 6 -6478 6477 -1 -6497 6477 -1 -6877 6477 -1 -6478 6478 6 -6479 6478 -1 -6498 6478 -1 -6878 6478 -1 -6479 6479 6 -6480 6479 -1 -6499 6479 -1 -6879 6479 -1 -6480 6480 6 -6500 6480 -1 -6880 6480 -1 -6481 6481 6 -6482 6481 -1 -6501 6481 -1 -6881 6481 -1 -6482 6482 6 -6483 6482 -1 -6502 6482 -1 -6882 6482 -1 -6483 6483 6 -6484 6483 -1 -6503 6483 -1 -6883 6483 -1 -6484 6484 6 -6485 6484 -1 -6504 6484 -1 -6884 6484 -1 -6485 6485 6 -6486 6485 -1 -6505 6485 -1 -6885 6485 -1 -6486 6486 6 -6487 6486 -1 -6506 6486 -1 -6886 6486 -1 -6487 6487 6 -6488 6487 -1 -6507 6487 -1 -6887 6487 -1 -6488 6488 6 -6489 6488 -1 -6508 6488 -1 -6888 6488 -1 -6489 6489 6 -6490 6489 -1 -6509 6489 -1 -6889 6489 -1 -6490 6490 6 -6491 6490 -1 -6510 6490 -1 -6890 6490 -1 -6491 6491 6 -6492 6491 -1 -6511 6491 -1 -6891 6491 -1 -6492 6492 6 -6493 6492 -1 -6512 6492 -1 -6892 6492 -1 -6493 6493 6 -6494 6493 -1 -6513 6493 -1 -6893 6493 -1 -6494 6494 6 -6495 6494 -1 -6514 6494 -1 -6894 6494 -1 -6495 6495 6 -6496 6495 -1 -6515 6495 -1 -6895 6495 -1 -6496 6496 6 -6497 6496 -1 -6516 6496 -1 -6896 6496 -1 -6497 6497 6 -6498 6497 -1 -6517 6497 -1 -6897 6497 -1 -6498 6498 6 -6499 6498 -1 -6518 6498 -1 -6898 6498 -1 -6499 6499 6 -6500 6499 -1 -6519 6499 -1 -6899 6499 -1 -6500 6500 6 -6520 6500 -1 -6900 6500 -1 -6501 6501 6 -6502 6501 -1 -6521 6501 -1 -6901 6501 -1 -6502 6502 6 -6503 6502 -1 -6522 6502 -1 -6902 6502 -1 -6503 6503 6 -6504 6503 -1 -6523 6503 -1 -6903 6503 -1 -6504 6504 6 -6505 6504 -1 -6524 6504 -1 -6904 6504 -1 -6505 6505 6 -6506 6505 -1 -6525 6505 -1 -6905 6505 -1 -6506 6506 6 -6507 6506 -1 -6526 6506 -1 -6906 6506 -1 -6507 6507 6 -6508 6507 -1 -6527 6507 -1 -6907 6507 -1 -6508 6508 6 -6509 6508 -1 -6528 6508 -1 -6908 6508 -1 -6509 6509 6 -6510 6509 -1 -6529 6509 -1 -6909 6509 -1 -6510 6510 6 -6511 6510 -1 -6530 6510 -1 -6910 6510 -1 -6511 6511 6 -6512 6511 -1 -6531 6511 -1 -6911 6511 -1 -6512 6512 6 -6513 6512 -1 -6532 6512 -1 -6912 6512 -1 -6513 6513 6 -6514 6513 -1 -6533 6513 -1 -6913 6513 -1 -6514 6514 6 -6515 6514 -1 -6534 6514 -1 -6914 6514 -1 -6515 6515 6 -6516 6515 -1 -6535 6515 -1 -6915 6515 -1 -6516 6516 6 -6517 6516 -1 -6536 6516 -1 -6916 6516 -1 -6517 6517 6 -6518 6517 -1 -6537 6517 -1 -6917 6517 -1 -6518 6518 6 -6519 6518 -1 -6538 6518 -1 -6918 6518 -1 -6519 6519 6 -6520 6519 -1 -6539 6519 -1 -6919 6519 -1 -6520 6520 6 -6540 6520 -1 -6920 6520 -1 -6521 6521 6 -6522 6521 -1 -6541 6521 -1 -6921 6521 -1 -6522 6522 6 -6523 6522 -1 -6542 6522 -1 -6922 6522 -1 -6523 6523 6 -6524 6523 -1 -6543 6523 -1 -6923 6523 -1 -6524 6524 6 -6525 6524 -1 -6544 6524 -1 -6924 6524 -1 -6525 6525 6 -6526 6525 -1 -6545 6525 -1 -6925 6525 -1 -6526 6526 6 -6527 6526 -1 -6546 6526 -1 -6926 6526 -1 -6527 6527 6 -6528 6527 -1 -6547 6527 -1 -6927 6527 -1 -6528 6528 6 -6529 6528 -1 -6548 6528 -1 -6928 6528 -1 -6529 6529 6 -6530 6529 -1 -6549 6529 -1 -6929 6529 -1 -6530 6530 6 -6531 6530 -1 -6550 6530 -1 -6930 6530 -1 -6531 6531 6 -6532 6531 -1 -6551 6531 -1 -6931 6531 -1 -6532 6532 6 -6533 6532 -1 -6552 6532 -1 -6932 6532 -1 -6533 6533 6 -6534 6533 -1 -6553 6533 -1 -6933 6533 -1 -6534 6534 6 -6535 6534 -1 -6554 6534 -1 -6934 6534 -1 -6535 6535 6 -6536 6535 -1 -6555 6535 -1 -6935 6535 -1 -6536 6536 6 -6537 6536 -1 -6556 6536 -1 -6936 6536 -1 -6537 6537 6 -6538 6537 -1 -6557 6537 -1 -6937 6537 -1 -6538 6538 6 -6539 6538 -1 -6558 6538 -1 -6938 6538 -1 -6539 6539 6 -6540 6539 -1 -6559 6539 -1 -6939 6539 -1 -6540 6540 6 -6560 6540 -1 -6940 6540 -1 -6541 6541 6 -6542 6541 -1 -6561 6541 -1 -6941 6541 -1 -6542 6542 6 -6543 6542 -1 -6562 6542 -1 -6942 6542 -1 -6543 6543 6 -6544 6543 -1 -6563 6543 -1 -6943 6543 -1 -6544 6544 6 -6545 6544 -1 -6564 6544 -1 -6944 6544 -1 -6545 6545 6 -6546 6545 -1 -6565 6545 -1 -6945 6545 -1 -6546 6546 6 -6547 6546 -1 -6566 6546 -1 -6946 6546 -1 -6547 6547 6 -6548 6547 -1 -6567 6547 -1 -6947 6547 -1 -6548 6548 6 -6549 6548 -1 -6568 6548 -1 -6948 6548 -1 -6549 6549 6 -6550 6549 -1 -6569 6549 -1 -6949 6549 -1 -6550 6550 6 -6551 6550 -1 -6570 6550 -1 -6950 6550 -1 -6551 6551 6 -6552 6551 -1 -6571 6551 -1 -6951 6551 -1 -6552 6552 6 -6553 6552 -1 -6572 6552 -1 -6952 6552 -1 -6553 6553 6 -6554 6553 -1 -6573 6553 -1 -6953 6553 -1 -6554 6554 6 -6555 6554 -1 -6574 6554 -1 -6954 6554 -1 -6555 6555 6 -6556 6555 -1 -6575 6555 -1 -6955 6555 -1 -6556 6556 6 -6557 6556 -1 -6576 6556 -1 -6956 6556 -1 -6557 6557 6 -6558 6557 -1 -6577 6557 -1 -6957 6557 -1 -6558 6558 6 -6559 6558 -1 -6578 6558 -1 -6958 6558 -1 -6559 6559 6 -6560 6559 -1 -6579 6559 -1 -6959 6559 -1 -6560 6560 6 -6580 6560 -1 -6960 6560 -1 -6561 6561 6 -6562 6561 -1 -6581 6561 -1 -6961 6561 -1 -6562 6562 6 -6563 6562 -1 -6582 6562 -1 -6962 6562 -1 -6563 6563 6 -6564 6563 -1 -6583 6563 -1 -6963 6563 -1 -6564 6564 6 -6565 6564 -1 -6584 6564 -1 -6964 6564 -1 -6565 6565 6 -6566 6565 -1 -6585 6565 -1 -6965 6565 -1 -6566 6566 6 -6567 6566 -1 -6586 6566 -1 -6966 6566 -1 -6567 6567 6 -6568 6567 -1 -6587 6567 -1 -6967 6567 -1 -6568 6568 6 -6569 6568 -1 -6588 6568 -1 -6968 6568 -1 -6569 6569 6 -6570 6569 -1 -6589 6569 -1 -6969 6569 -1 -6570 6570 6 -6571 6570 -1 -6590 6570 -1 -6970 6570 -1 -6571 6571 6 -6572 6571 -1 -6591 6571 -1 -6971 6571 -1 -6572 6572 6 -6573 6572 -1 -6592 6572 -1 -6972 6572 -1 -6573 6573 6 -6574 6573 -1 -6593 6573 -1 -6973 6573 -1 -6574 6574 6 -6575 6574 -1 -6594 6574 -1 -6974 6574 -1 -6575 6575 6 -6576 6575 -1 -6595 6575 -1 -6975 6575 -1 -6576 6576 6 -6577 6576 -1 -6596 6576 -1 -6976 6576 -1 -6577 6577 6 -6578 6577 -1 -6597 6577 -1 -6977 6577 -1 -6578 6578 6 -6579 6578 -1 -6598 6578 -1 -6978 6578 -1 -6579 6579 6 -6580 6579 -1 -6599 6579 -1 -6979 6579 -1 -6580 6580 6 -6600 6580 -1 -6980 6580 -1 -6581 6581 6 -6582 6581 -1 -6601 6581 -1 -6981 6581 -1 -6582 6582 6 -6583 6582 -1 -6602 6582 -1 -6982 6582 -1 -6583 6583 6 -6584 6583 -1 -6603 6583 -1 -6983 6583 -1 -6584 6584 6 -6585 6584 -1 -6604 6584 -1 -6984 6584 -1 -6585 6585 6 -6586 6585 -1 -6605 6585 -1 -6985 6585 -1 -6586 6586 6 -6587 6586 -1 -6606 6586 -1 -6986 6586 -1 -6587 6587 6 -6588 6587 -1 -6607 6587 -1 -6987 6587 -1 -6588 6588 6 -6589 6588 -1 -6608 6588 -1 -6988 6588 -1 -6589 6589 6 -6590 6589 -1 -6609 6589 -1 -6989 6589 -1 -6590 6590 6 -6591 6590 -1 -6610 6590 -1 -6990 6590 -1 -6591 6591 6 -6592 6591 -1 -6611 6591 -1 -6991 6591 -1 -6592 6592 6 -6593 6592 -1 -6612 6592 -1 -6992 6592 -1 -6593 6593 6 -6594 6593 -1 -6613 6593 -1 -6993 6593 -1 -6594 6594 6 -6595 6594 -1 -6614 6594 -1 -6994 6594 -1 -6595 6595 6 -6596 6595 -1 -6615 6595 -1 -6995 6595 -1 -6596 6596 6 -6597 6596 -1 -6616 6596 -1 -6996 6596 -1 -6597 6597 6 -6598 6597 -1 -6617 6597 -1 -6997 6597 -1 -6598 6598 6 -6599 6598 -1 -6618 6598 -1 -6998 6598 -1 -6599 6599 6 -6600 6599 -1 -6619 6599 -1 -6999 6599 -1 -6600 6600 6 -6620 6600 -1 -7000 6600 -1 -6601 6601 6 -6602 6601 -1 -6621 6601 -1 -7001 6601 -1 -6602 6602 6 -6603 6602 -1 -6622 6602 -1 -7002 6602 -1 -6603 6603 6 -6604 6603 -1 -6623 6603 -1 -7003 6603 -1 -6604 6604 6 -6605 6604 -1 -6624 6604 -1 -7004 6604 -1 -6605 6605 6 -6606 6605 -1 -6625 6605 -1 -7005 6605 -1 -6606 6606 6 -6607 6606 -1 -6626 6606 -1 -7006 6606 -1 -6607 6607 6 -6608 6607 -1 -6627 6607 -1 -7007 6607 -1 -6608 6608 6 -6609 6608 -1 -6628 6608 -1 -7008 6608 -1 -6609 6609 6 -6610 6609 -1 -6629 6609 -1 -7009 6609 -1 -6610 6610 6 -6611 6610 -1 -6630 6610 -1 -7010 6610 -1 -6611 6611 6 -6612 6611 -1 -6631 6611 -1 -7011 6611 -1 -6612 6612 6 -6613 6612 -1 -6632 6612 -1 -7012 6612 -1 -6613 6613 6 -6614 6613 -1 -6633 6613 -1 -7013 6613 -1 -6614 6614 6 -6615 6614 -1 -6634 6614 -1 -7014 6614 -1 -6615 6615 6 -6616 6615 -1 -6635 6615 -1 -7015 6615 -1 -6616 6616 6 -6617 6616 -1 -6636 6616 -1 -7016 6616 -1 -6617 6617 6 -6618 6617 -1 -6637 6617 -1 -7017 6617 -1 -6618 6618 6 -6619 6618 -1 -6638 6618 -1 -7018 6618 -1 -6619 6619 6 -6620 6619 -1 -6639 6619 -1 -7019 6619 -1 -6620 6620 6 -6640 6620 -1 -7020 6620 -1 -6621 6621 6 -6622 6621 -1 -6641 6621 -1 -7021 6621 -1 -6622 6622 6 -6623 6622 -1 -6642 6622 -1 -7022 6622 -1 -6623 6623 6 -6624 6623 -1 -6643 6623 -1 -7023 6623 -1 -6624 6624 6 -6625 6624 -1 -6644 6624 -1 -7024 6624 -1 -6625 6625 6 -6626 6625 -1 -6645 6625 -1 -7025 6625 -1 -6626 6626 6 -6627 6626 -1 -6646 6626 -1 -7026 6626 -1 -6627 6627 6 -6628 6627 -1 -6647 6627 -1 -7027 6627 -1 -6628 6628 6 -6629 6628 -1 -6648 6628 -1 -7028 6628 -1 -6629 6629 6 -6630 6629 -1 -6649 6629 -1 -7029 6629 -1 -6630 6630 6 -6631 6630 -1 -6650 6630 -1 -7030 6630 -1 -6631 6631 6 -6632 6631 -1 -6651 6631 -1 -7031 6631 -1 -6632 6632 6 -6633 6632 -1 -6652 6632 -1 -7032 6632 -1 -6633 6633 6 -6634 6633 -1 -6653 6633 -1 -7033 6633 -1 -6634 6634 6 -6635 6634 -1 -6654 6634 -1 -7034 6634 -1 -6635 6635 6 -6636 6635 -1 -6655 6635 -1 -7035 6635 -1 -6636 6636 6 -6637 6636 -1 -6656 6636 -1 -7036 6636 -1 -6637 6637 6 -6638 6637 -1 -6657 6637 -1 -7037 6637 -1 -6638 6638 6 -6639 6638 -1 -6658 6638 -1 -7038 6638 -1 -6639 6639 6 -6640 6639 -1 -6659 6639 -1 -7039 6639 -1 -6640 6640 6 -6660 6640 -1 -7040 6640 -1 -6641 6641 6 -6642 6641 -1 -6661 6641 -1 -7041 6641 -1 -6642 6642 6 -6643 6642 -1 -6662 6642 -1 -7042 6642 -1 -6643 6643 6 -6644 6643 -1 -6663 6643 -1 -7043 6643 -1 -6644 6644 6 -6645 6644 -1 -6664 6644 -1 -7044 6644 -1 -6645 6645 6 -6646 6645 -1 -6665 6645 -1 -7045 6645 -1 -6646 6646 6 -6647 6646 -1 -6666 6646 -1 -7046 6646 -1 -6647 6647 6 -6648 6647 -1 -6667 6647 -1 -7047 6647 -1 -6648 6648 6 -6649 6648 -1 -6668 6648 -1 -7048 6648 -1 -6649 6649 6 -6650 6649 -1 -6669 6649 -1 -7049 6649 -1 -6650 6650 6 -6651 6650 -1 -6670 6650 -1 -7050 6650 -1 -6651 6651 6 -6652 6651 -1 -6671 6651 -1 -7051 6651 -1 -6652 6652 6 -6653 6652 -1 -6672 6652 -1 -7052 6652 -1 -6653 6653 6 -6654 6653 -1 -6673 6653 -1 -7053 6653 -1 -6654 6654 6 -6655 6654 -1 -6674 6654 -1 -7054 6654 -1 -6655 6655 6 -6656 6655 -1 -6675 6655 -1 -7055 6655 -1 -6656 6656 6 -6657 6656 -1 -6676 6656 -1 -7056 6656 -1 -6657 6657 6 -6658 6657 -1 -6677 6657 -1 -7057 6657 -1 -6658 6658 6 -6659 6658 -1 -6678 6658 -1 -7058 6658 -1 -6659 6659 6 -6660 6659 -1 -6679 6659 -1 -7059 6659 -1 -6660 6660 6 -6680 6660 -1 -7060 6660 -1 -6661 6661 6 -6662 6661 -1 -6681 6661 -1 -7061 6661 -1 -6662 6662 6 -6663 6662 -1 -6682 6662 -1 -7062 6662 -1 -6663 6663 6 -6664 6663 -1 -6683 6663 -1 -7063 6663 -1 -6664 6664 6 -6665 6664 -1 -6684 6664 -1 -7064 6664 -1 -6665 6665 6 -6666 6665 -1 -6685 6665 -1 -7065 6665 -1 -6666 6666 6 -6667 6666 -1 -6686 6666 -1 -7066 6666 -1 -6667 6667 6 -6668 6667 -1 -6687 6667 -1 -7067 6667 -1 -6668 6668 6 -6669 6668 -1 -6688 6668 -1 -7068 6668 -1 -6669 6669 6 -6670 6669 -1 -6689 6669 -1 -7069 6669 -1 -6670 6670 6 -6671 6670 -1 -6690 6670 -1 -7070 6670 -1 -6671 6671 6 -6672 6671 -1 -6691 6671 -1 -7071 6671 -1 -6672 6672 6 -6673 6672 -1 -6692 6672 -1 -7072 6672 -1 -6673 6673 6 -6674 6673 -1 -6693 6673 -1 -7073 6673 -1 -6674 6674 6 -6675 6674 -1 -6694 6674 -1 -7074 6674 -1 -6675 6675 6 -6676 6675 -1 -6695 6675 -1 -7075 6675 -1 -6676 6676 6 -6677 6676 -1 -6696 6676 -1 -7076 6676 -1 -6677 6677 6 -6678 6677 -1 -6697 6677 -1 -7077 6677 -1 -6678 6678 6 -6679 6678 -1 -6698 6678 -1 -7078 6678 -1 -6679 6679 6 -6680 6679 -1 -6699 6679 -1 -7079 6679 -1 -6680 6680 6 -6700 6680 -1 -7080 6680 -1 -6681 6681 6 -6682 6681 -1 -6701 6681 -1 -7081 6681 -1 -6682 6682 6 -6683 6682 -1 -6702 6682 -1 -7082 6682 -1 -6683 6683 6 -6684 6683 -1 -6703 6683 -1 -7083 6683 -1 -6684 6684 6 -6685 6684 -1 -6704 6684 -1 -7084 6684 -1 -6685 6685 6 -6686 6685 -1 -6705 6685 -1 -7085 6685 -1 -6686 6686 6 -6687 6686 -1 -6706 6686 -1 -7086 6686 -1 -6687 6687 6 -6688 6687 -1 -6707 6687 -1 -7087 6687 -1 -6688 6688 6 -6689 6688 -1 -6708 6688 -1 -7088 6688 -1 -6689 6689 6 -6690 6689 -1 -6709 6689 -1 -7089 6689 -1 -6690 6690 6 -6691 6690 -1 -6710 6690 -1 -7090 6690 -1 -6691 6691 6 -6692 6691 -1 -6711 6691 -1 -7091 6691 -1 -6692 6692 6 -6693 6692 -1 -6712 6692 -1 -7092 6692 -1 -6693 6693 6 -6694 6693 -1 -6713 6693 -1 -7093 6693 -1 -6694 6694 6 -6695 6694 -1 -6714 6694 -1 -7094 6694 -1 -6695 6695 6 -6696 6695 -1 -6715 6695 -1 -7095 6695 -1 -6696 6696 6 -6697 6696 -1 -6716 6696 -1 -7096 6696 -1 -6697 6697 6 -6698 6697 -1 -6717 6697 -1 -7097 6697 -1 -6698 6698 6 -6699 6698 -1 -6718 6698 -1 -7098 6698 -1 -6699 6699 6 -6700 6699 -1 -6719 6699 -1 -7099 6699 -1 -6700 6700 6 -6720 6700 -1 -7100 6700 -1 -6701 6701 6 -6702 6701 -1 -6721 6701 -1 -7101 6701 -1 -6702 6702 6 -6703 6702 -1 -6722 6702 -1 -7102 6702 -1 -6703 6703 6 -6704 6703 -1 -6723 6703 -1 -7103 6703 -1 -6704 6704 6 -6705 6704 -1 -6724 6704 -1 -7104 6704 -1 -6705 6705 6 -6706 6705 -1 -6725 6705 -1 -7105 6705 -1 -6706 6706 6 -6707 6706 -1 -6726 6706 -1 -7106 6706 -1 -6707 6707 6 -6708 6707 -1 -6727 6707 -1 -7107 6707 -1 -6708 6708 6 -6709 6708 -1 -6728 6708 -1 -7108 6708 -1 -6709 6709 6 -6710 6709 -1 -6729 6709 -1 -7109 6709 -1 -6710 6710 6 -6711 6710 -1 -6730 6710 -1 -7110 6710 -1 -6711 6711 6 -6712 6711 -1 -6731 6711 -1 -7111 6711 -1 -6712 6712 6 -6713 6712 -1 -6732 6712 -1 -7112 6712 -1 -6713 6713 6 -6714 6713 -1 -6733 6713 -1 -7113 6713 -1 -6714 6714 6 -6715 6714 -1 -6734 6714 -1 -7114 6714 -1 -6715 6715 6 -6716 6715 -1 -6735 6715 -1 -7115 6715 -1 -6716 6716 6 -6717 6716 -1 -6736 6716 -1 -7116 6716 -1 -6717 6717 6 -6718 6717 -1 -6737 6717 -1 -7117 6717 -1 -6718 6718 6 -6719 6718 -1 -6738 6718 -1 -7118 6718 -1 -6719 6719 6 -6720 6719 -1 -6739 6719 -1 -7119 6719 -1 -6720 6720 6 -6740 6720 -1 -7120 6720 -1 -6721 6721 6 -6722 6721 -1 -6741 6721 -1 -7121 6721 -1 -6722 6722 6 -6723 6722 -1 -6742 6722 -1 -7122 6722 -1 -6723 6723 6 -6724 6723 -1 -6743 6723 -1 -7123 6723 -1 -6724 6724 6 -6725 6724 -1 -6744 6724 -1 -7124 6724 -1 -6725 6725 6 -6726 6725 -1 -6745 6725 -1 -7125 6725 -1 -6726 6726 6 -6727 6726 -1 -6746 6726 -1 -7126 6726 -1 -6727 6727 6 -6728 6727 -1 -6747 6727 -1 -7127 6727 -1 -6728 6728 6 -6729 6728 -1 -6748 6728 -1 -7128 6728 -1 -6729 6729 6 -6730 6729 -1 -6749 6729 -1 -7129 6729 -1 -6730 6730 6 -6731 6730 -1 -6750 6730 -1 -7130 6730 -1 -6731 6731 6 -6732 6731 -1 -6751 6731 -1 -7131 6731 -1 -6732 6732 6 -6733 6732 -1 -6752 6732 -1 -7132 6732 -1 -6733 6733 6 -6734 6733 -1 -6753 6733 -1 -7133 6733 -1 -6734 6734 6 -6735 6734 -1 -6754 6734 -1 -7134 6734 -1 -6735 6735 6 -6736 6735 -1 -6755 6735 -1 -7135 6735 -1 -6736 6736 6 -6737 6736 -1 -6756 6736 -1 -7136 6736 -1 -6737 6737 6 -6738 6737 -1 -6757 6737 -1 -7137 6737 -1 -6738 6738 6 -6739 6738 -1 -6758 6738 -1 -7138 6738 -1 -6739 6739 6 -6740 6739 -1 -6759 6739 -1 -7139 6739 -1 -6740 6740 6 -6760 6740 -1 -7140 6740 -1 -6741 6741 6 -6742 6741 -1 -6761 6741 -1 -7141 6741 -1 -6742 6742 6 -6743 6742 -1 -6762 6742 -1 -7142 6742 -1 -6743 6743 6 -6744 6743 -1 -6763 6743 -1 -7143 6743 -1 -6744 6744 6 -6745 6744 -1 -6764 6744 -1 -7144 6744 -1 -6745 6745 6 -6746 6745 -1 -6765 6745 -1 -7145 6745 -1 -6746 6746 6 -6747 6746 -1 -6766 6746 -1 -7146 6746 -1 -6747 6747 6 -6748 6747 -1 -6767 6747 -1 -7147 6747 -1 -6748 6748 6 -6749 6748 -1 -6768 6748 -1 -7148 6748 -1 -6749 6749 6 -6750 6749 -1 -6769 6749 -1 -7149 6749 -1 -6750 6750 6 -6751 6750 -1 -6770 6750 -1 -7150 6750 -1 -6751 6751 6 -6752 6751 -1 -6771 6751 -1 -7151 6751 -1 -6752 6752 6 -6753 6752 -1 -6772 6752 -1 -7152 6752 -1 -6753 6753 6 -6754 6753 -1 -6773 6753 -1 -7153 6753 -1 -6754 6754 6 -6755 6754 -1 -6774 6754 -1 -7154 6754 -1 -6755 6755 6 -6756 6755 -1 -6775 6755 -1 -7155 6755 -1 -6756 6756 6 -6757 6756 -1 -6776 6756 -1 -7156 6756 -1 -6757 6757 6 -6758 6757 -1 -6777 6757 -1 -7157 6757 -1 -6758 6758 6 -6759 6758 -1 -6778 6758 -1 -7158 6758 -1 -6759 6759 6 -6760 6759 -1 -6779 6759 -1 -7159 6759 -1 -6760 6760 6 -6780 6760 -1 -7160 6760 -1 -6761 6761 6 -6762 6761 -1 -6781 6761 -1 -7161 6761 -1 -6762 6762 6 -6763 6762 -1 -6782 6762 -1 -7162 6762 -1 -6763 6763 6 -6764 6763 -1 -6783 6763 -1 -7163 6763 -1 -6764 6764 6 -6765 6764 -1 -6784 6764 -1 -7164 6764 -1 -6765 6765 6 -6766 6765 -1 -6785 6765 -1 -7165 6765 -1 -6766 6766 6 -6767 6766 -1 -6786 6766 -1 -7166 6766 -1 -6767 6767 6 -6768 6767 -1 -6787 6767 -1 -7167 6767 -1 -6768 6768 6 -6769 6768 -1 -6788 6768 -1 -7168 6768 -1 -6769 6769 6 -6770 6769 -1 -6789 6769 -1 -7169 6769 -1 -6770 6770 6 -6771 6770 -1 -6790 6770 -1 -7170 6770 -1 -6771 6771 6 -6772 6771 -1 -6791 6771 -1 -7171 6771 -1 -6772 6772 6 -6773 6772 -1 -6792 6772 -1 -7172 6772 -1 -6773 6773 6 -6774 6773 -1 -6793 6773 -1 -7173 6773 -1 -6774 6774 6 -6775 6774 -1 -6794 6774 -1 -7174 6774 -1 -6775 6775 6 -6776 6775 -1 -6795 6775 -1 -7175 6775 -1 -6776 6776 6 -6777 6776 -1 -6796 6776 -1 -7176 6776 -1 -6777 6777 6 -6778 6777 -1 -6797 6777 -1 -7177 6777 -1 -6778 6778 6 -6779 6778 -1 -6798 6778 -1 -7178 6778 -1 -6779 6779 6 -6780 6779 -1 -6799 6779 -1 -7179 6779 -1 -6780 6780 6 -6800 6780 -1 -7180 6780 -1 -6781 6781 6 -6782 6781 -1 -7181 6781 -1 -6782 6782 6 -6783 6782 -1 -7182 6782 -1 -6783 6783 6 -6784 6783 -1 -7183 6783 -1 -6784 6784 6 -6785 6784 -1 -7184 6784 -1 -6785 6785 6 -6786 6785 -1 -7185 6785 -1 -6786 6786 6 -6787 6786 -1 -7186 6786 -1 -6787 6787 6 -6788 6787 -1 -7187 6787 -1 -6788 6788 6 -6789 6788 -1 -7188 6788 -1 -6789 6789 6 -6790 6789 -1 -7189 6789 -1 -6790 6790 6 -6791 6790 -1 -7190 6790 -1 -6791 6791 6 -6792 6791 -1 -7191 6791 -1 -6792 6792 6 -6793 6792 -1 -7192 6792 -1 -6793 6793 6 -6794 6793 -1 -7193 6793 -1 -6794 6794 6 -6795 6794 -1 -7194 6794 -1 -6795 6795 6 -6796 6795 -1 -7195 6795 -1 -6796 6796 6 -6797 6796 -1 -7196 6796 -1 -6797 6797 6 -6798 6797 -1 -7197 6797 -1 -6798 6798 6 -6799 6798 -1 -7198 6798 -1 -6799 6799 6 -6800 6799 -1 -7199 6799 -1 -6800 6800 6 -7200 6800 -1 -6801 6801 6 -6802 6801 -1 -6821 6801 -1 -7201 6801 -1 -6802 6802 6 -6803 6802 -1 -6822 6802 -1 -7202 6802 -1 -6803 6803 6 -6804 6803 -1 -6823 6803 -1 -7203 6803 -1 -6804 6804 6 -6805 6804 -1 -6824 6804 -1 -7204 6804 -1 -6805 6805 6 -6806 6805 -1 -6825 6805 -1 -7205 6805 -1 -6806 6806 6 -6807 6806 -1 -6826 6806 -1 -7206 6806 -1 -6807 6807 6 -6808 6807 -1 -6827 6807 -1 -7207 6807 -1 -6808 6808 6 -6809 6808 -1 -6828 6808 -1 -7208 6808 -1 -6809 6809 6 -6810 6809 -1 -6829 6809 -1 -7209 6809 -1 -6810 6810 6 -6811 6810 -1 -6830 6810 -1 -7210 6810 -1 -6811 6811 6 -6812 6811 -1 -6831 6811 -1 -7211 6811 -1 -6812 6812 6 -6813 6812 -1 -6832 6812 -1 -7212 6812 -1 -6813 6813 6 -6814 6813 -1 -6833 6813 -1 -7213 6813 -1 -6814 6814 6 -6815 6814 -1 -6834 6814 -1 -7214 6814 -1 -6815 6815 6 -6816 6815 -1 -6835 6815 -1 -7215 6815 -1 -6816 6816 6 -6817 6816 -1 -6836 6816 -1 -7216 6816 -1 -6817 6817 6 -6818 6817 -1 -6837 6817 -1 -7217 6817 -1 -6818 6818 6 -6819 6818 -1 -6838 6818 -1 -7218 6818 -1 -6819 6819 6 -6820 6819 -1 -6839 6819 -1 -7219 6819 -1 -6820 6820 6 -6840 6820 -1 -7220 6820 -1 -6821 6821 6 -6822 6821 -1 -6841 6821 -1 -7221 6821 -1 -6822 6822 6 -6823 6822 -1 -6842 6822 -1 -7222 6822 -1 -6823 6823 6 -6824 6823 -1 -6843 6823 -1 -7223 6823 -1 -6824 6824 6 -6825 6824 -1 -6844 6824 -1 -7224 6824 -1 -6825 6825 6 -6826 6825 -1 -6845 6825 -1 -7225 6825 -1 -6826 6826 6 -6827 6826 -1 -6846 6826 -1 -7226 6826 -1 -6827 6827 6 -6828 6827 -1 -6847 6827 -1 -7227 6827 -1 -6828 6828 6 -6829 6828 -1 -6848 6828 -1 -7228 6828 -1 -6829 6829 6 -6830 6829 -1 -6849 6829 -1 -7229 6829 -1 -6830 6830 6 -6831 6830 -1 -6850 6830 -1 -7230 6830 -1 -6831 6831 6 -6832 6831 -1 -6851 6831 -1 -7231 6831 -1 -6832 6832 6 -6833 6832 -1 -6852 6832 -1 -7232 6832 -1 -6833 6833 6 -6834 6833 -1 -6853 6833 -1 -7233 6833 -1 -6834 6834 6 -6835 6834 -1 -6854 6834 -1 -7234 6834 -1 -6835 6835 6 -6836 6835 -1 -6855 6835 -1 -7235 6835 -1 -6836 6836 6 -6837 6836 -1 -6856 6836 -1 -7236 6836 -1 -6837 6837 6 -6838 6837 -1 -6857 6837 -1 -7237 6837 -1 -6838 6838 6 -6839 6838 -1 -6858 6838 -1 -7238 6838 -1 -6839 6839 6 -6840 6839 -1 -6859 6839 -1 -7239 6839 -1 -6840 6840 6 -6860 6840 -1 -7240 6840 -1 -6841 6841 6 -6842 6841 -1 -6861 6841 -1 -7241 6841 -1 -6842 6842 6 -6843 6842 -1 -6862 6842 -1 -7242 6842 -1 -6843 6843 6 -6844 6843 -1 -6863 6843 -1 -7243 6843 -1 -6844 6844 6 -6845 6844 -1 -6864 6844 -1 -7244 6844 -1 -6845 6845 6 -6846 6845 -1 -6865 6845 -1 -7245 6845 -1 -6846 6846 6 -6847 6846 -1 -6866 6846 -1 -7246 6846 -1 -6847 6847 6 -6848 6847 -1 -6867 6847 -1 -7247 6847 -1 -6848 6848 6 -6849 6848 -1 -6868 6848 -1 -7248 6848 -1 -6849 6849 6 -6850 6849 -1 -6869 6849 -1 -7249 6849 -1 -6850 6850 6 -6851 6850 -1 -6870 6850 -1 -7250 6850 -1 -6851 6851 6 -6852 6851 -1 -6871 6851 -1 -7251 6851 -1 -6852 6852 6 -6853 6852 -1 -6872 6852 -1 -7252 6852 -1 -6853 6853 6 -6854 6853 -1 -6873 6853 -1 -7253 6853 -1 -6854 6854 6 -6855 6854 -1 -6874 6854 -1 -7254 6854 -1 -6855 6855 6 -6856 6855 -1 -6875 6855 -1 -7255 6855 -1 -6856 6856 6 -6857 6856 -1 -6876 6856 -1 -7256 6856 -1 -6857 6857 6 -6858 6857 -1 -6877 6857 -1 -7257 6857 -1 -6858 6858 6 -6859 6858 -1 -6878 6858 -1 -7258 6858 -1 -6859 6859 6 -6860 6859 -1 -6879 6859 -1 -7259 6859 -1 -6860 6860 6 -6880 6860 -1 -7260 6860 -1 -6861 6861 6 -6862 6861 -1 -6881 6861 -1 -7261 6861 -1 -6862 6862 6 -6863 6862 -1 -6882 6862 -1 -7262 6862 -1 -6863 6863 6 -6864 6863 -1 -6883 6863 -1 -7263 6863 -1 -6864 6864 6 -6865 6864 -1 -6884 6864 -1 -7264 6864 -1 -6865 6865 6 -6866 6865 -1 -6885 6865 -1 -7265 6865 -1 -6866 6866 6 -6867 6866 -1 -6886 6866 -1 -7266 6866 -1 -6867 6867 6 -6868 6867 -1 -6887 6867 -1 -7267 6867 -1 -6868 6868 6 -6869 6868 -1 -6888 6868 -1 -7268 6868 -1 -6869 6869 6 -6870 6869 -1 -6889 6869 -1 -7269 6869 -1 -6870 6870 6 -6871 6870 -1 -6890 6870 -1 -7270 6870 -1 -6871 6871 6 -6872 6871 -1 -6891 6871 -1 -7271 6871 -1 -6872 6872 6 -6873 6872 -1 -6892 6872 -1 -7272 6872 -1 -6873 6873 6 -6874 6873 -1 -6893 6873 -1 -7273 6873 -1 -6874 6874 6 -6875 6874 -1 -6894 6874 -1 -7274 6874 -1 -6875 6875 6 -6876 6875 -1 -6895 6875 -1 -7275 6875 -1 -6876 6876 6 -6877 6876 -1 -6896 6876 -1 -7276 6876 -1 -6877 6877 6 -6878 6877 -1 -6897 6877 -1 -7277 6877 -1 -6878 6878 6 -6879 6878 -1 -6898 6878 -1 -7278 6878 -1 -6879 6879 6 -6880 6879 -1 -6899 6879 -1 -7279 6879 -1 -6880 6880 6 -6900 6880 -1 -7280 6880 -1 -6881 6881 6 -6882 6881 -1 -6901 6881 -1 -7281 6881 -1 -6882 6882 6 -6883 6882 -1 -6902 6882 -1 -7282 6882 -1 -6883 6883 6 -6884 6883 -1 -6903 6883 -1 -7283 6883 -1 -6884 6884 6 -6885 6884 -1 -6904 6884 -1 -7284 6884 -1 -6885 6885 6 -6886 6885 -1 -6905 6885 -1 -7285 6885 -1 -6886 6886 6 -6887 6886 -1 -6906 6886 -1 -7286 6886 -1 -6887 6887 6 -6888 6887 -1 -6907 6887 -1 -7287 6887 -1 -6888 6888 6 -6889 6888 -1 -6908 6888 -1 -7288 6888 -1 -6889 6889 6 -6890 6889 -1 -6909 6889 -1 -7289 6889 -1 -6890 6890 6 -6891 6890 -1 -6910 6890 -1 -7290 6890 -1 -6891 6891 6 -6892 6891 -1 -6911 6891 -1 -7291 6891 -1 -6892 6892 6 -6893 6892 -1 -6912 6892 -1 -7292 6892 -1 -6893 6893 6 -6894 6893 -1 -6913 6893 -1 -7293 6893 -1 -6894 6894 6 -6895 6894 -1 -6914 6894 -1 -7294 6894 -1 -6895 6895 6 -6896 6895 -1 -6915 6895 -1 -7295 6895 -1 -6896 6896 6 -6897 6896 -1 -6916 6896 -1 -7296 6896 -1 -6897 6897 6 -6898 6897 -1 -6917 6897 -1 -7297 6897 -1 -6898 6898 6 -6899 6898 -1 -6918 6898 -1 -7298 6898 -1 -6899 6899 6 -6900 6899 -1 -6919 6899 -1 -7299 6899 -1 -6900 6900 6 -6920 6900 -1 -7300 6900 -1 -6901 6901 6 -6902 6901 -1 -6921 6901 -1 -7301 6901 -1 -6902 6902 6 -6903 6902 -1 -6922 6902 -1 -7302 6902 -1 -6903 6903 6 -6904 6903 -1 -6923 6903 -1 -7303 6903 -1 -6904 6904 6 -6905 6904 -1 -6924 6904 -1 -7304 6904 -1 -6905 6905 6 -6906 6905 -1 -6925 6905 -1 -7305 6905 -1 -6906 6906 6 -6907 6906 -1 -6926 6906 -1 -7306 6906 -1 -6907 6907 6 -6908 6907 -1 -6927 6907 -1 -7307 6907 -1 -6908 6908 6 -6909 6908 -1 -6928 6908 -1 -7308 6908 -1 -6909 6909 6 -6910 6909 -1 -6929 6909 -1 -7309 6909 -1 -6910 6910 6 -6911 6910 -1 -6930 6910 -1 -7310 6910 -1 -6911 6911 6 -6912 6911 -1 -6931 6911 -1 -7311 6911 -1 -6912 6912 6 -6913 6912 -1 -6932 6912 -1 -7312 6912 -1 -6913 6913 6 -6914 6913 -1 -6933 6913 -1 -7313 6913 -1 -6914 6914 6 -6915 6914 -1 -6934 6914 -1 -7314 6914 -1 -6915 6915 6 -6916 6915 -1 -6935 6915 -1 -7315 6915 -1 -6916 6916 6 -6917 6916 -1 -6936 6916 -1 -7316 6916 -1 -6917 6917 6 -6918 6917 -1 -6937 6917 -1 -7317 6917 -1 -6918 6918 6 -6919 6918 -1 -6938 6918 -1 -7318 6918 -1 -6919 6919 6 -6920 6919 -1 -6939 6919 -1 -7319 6919 -1 -6920 6920 6 -6940 6920 -1 -7320 6920 -1 -6921 6921 6 -6922 6921 -1 -6941 6921 -1 -7321 6921 -1 -6922 6922 6 -6923 6922 -1 -6942 6922 -1 -7322 6922 -1 -6923 6923 6 -6924 6923 -1 -6943 6923 -1 -7323 6923 -1 -6924 6924 6 -6925 6924 -1 -6944 6924 -1 -7324 6924 -1 -6925 6925 6 -6926 6925 -1 -6945 6925 -1 -7325 6925 -1 -6926 6926 6 -6927 6926 -1 -6946 6926 -1 -7326 6926 -1 -6927 6927 6 -6928 6927 -1 -6947 6927 -1 -7327 6927 -1 -6928 6928 6 -6929 6928 -1 -6948 6928 -1 -7328 6928 -1 -6929 6929 6 -6930 6929 -1 -6949 6929 -1 -7329 6929 -1 -6930 6930 6 -6931 6930 -1 -6950 6930 -1 -7330 6930 -1 -6931 6931 6 -6932 6931 -1 -6951 6931 -1 -7331 6931 -1 -6932 6932 6 -6933 6932 -1 -6952 6932 -1 -7332 6932 -1 -6933 6933 6 -6934 6933 -1 -6953 6933 -1 -7333 6933 -1 -6934 6934 6 -6935 6934 -1 -6954 6934 -1 -7334 6934 -1 -6935 6935 6 -6936 6935 -1 -6955 6935 -1 -7335 6935 -1 -6936 6936 6 -6937 6936 -1 -6956 6936 -1 -7336 6936 -1 -6937 6937 6 -6938 6937 -1 -6957 6937 -1 -7337 6937 -1 -6938 6938 6 -6939 6938 -1 -6958 6938 -1 -7338 6938 -1 -6939 6939 6 -6940 6939 -1 -6959 6939 -1 -7339 6939 -1 -6940 6940 6 -6960 6940 -1 -7340 6940 -1 -6941 6941 6 -6942 6941 -1 -6961 6941 -1 -7341 6941 -1 -6942 6942 6 -6943 6942 -1 -6962 6942 -1 -7342 6942 -1 -6943 6943 6 -6944 6943 -1 -6963 6943 -1 -7343 6943 -1 -6944 6944 6 -6945 6944 -1 -6964 6944 -1 -7344 6944 -1 -6945 6945 6 -6946 6945 -1 -6965 6945 -1 -7345 6945 -1 -6946 6946 6 -6947 6946 -1 -6966 6946 -1 -7346 6946 -1 -6947 6947 6 -6948 6947 -1 -6967 6947 -1 -7347 6947 -1 -6948 6948 6 -6949 6948 -1 -6968 6948 -1 -7348 6948 -1 -6949 6949 6 -6950 6949 -1 -6969 6949 -1 -7349 6949 -1 -6950 6950 6 -6951 6950 -1 -6970 6950 -1 -7350 6950 -1 -6951 6951 6 -6952 6951 -1 -6971 6951 -1 -7351 6951 -1 -6952 6952 6 -6953 6952 -1 -6972 6952 -1 -7352 6952 -1 -6953 6953 6 -6954 6953 -1 -6973 6953 -1 -7353 6953 -1 -6954 6954 6 -6955 6954 -1 -6974 6954 -1 -7354 6954 -1 -6955 6955 6 -6956 6955 -1 -6975 6955 -1 -7355 6955 -1 -6956 6956 6 -6957 6956 -1 -6976 6956 -1 -7356 6956 -1 -6957 6957 6 -6958 6957 -1 -6977 6957 -1 -7357 6957 -1 -6958 6958 6 -6959 6958 -1 -6978 6958 -1 -7358 6958 -1 -6959 6959 6 -6960 6959 -1 -6979 6959 -1 -7359 6959 -1 -6960 6960 6 -6980 6960 -1 -7360 6960 -1 -6961 6961 6 -6962 6961 -1 -6981 6961 -1 -7361 6961 -1 -6962 6962 6 -6963 6962 -1 -6982 6962 -1 -7362 6962 -1 -6963 6963 6 -6964 6963 -1 -6983 6963 -1 -7363 6963 -1 -6964 6964 6 -6965 6964 -1 -6984 6964 -1 -7364 6964 -1 -6965 6965 6 -6966 6965 -1 -6985 6965 -1 -7365 6965 -1 -6966 6966 6 -6967 6966 -1 -6986 6966 -1 -7366 6966 -1 -6967 6967 6 -6968 6967 -1 -6987 6967 -1 -7367 6967 -1 -6968 6968 6 -6969 6968 -1 -6988 6968 -1 -7368 6968 -1 -6969 6969 6 -6970 6969 -1 -6989 6969 -1 -7369 6969 -1 -6970 6970 6 -6971 6970 -1 -6990 6970 -1 -7370 6970 -1 -6971 6971 6 -6972 6971 -1 -6991 6971 -1 -7371 6971 -1 -6972 6972 6 -6973 6972 -1 -6992 6972 -1 -7372 6972 -1 -6973 6973 6 -6974 6973 -1 -6993 6973 -1 -7373 6973 -1 -6974 6974 6 -6975 6974 -1 -6994 6974 -1 -7374 6974 -1 -6975 6975 6 -6976 6975 -1 -6995 6975 -1 -7375 6975 -1 -6976 6976 6 -6977 6976 -1 -6996 6976 -1 -7376 6976 -1 -6977 6977 6 -6978 6977 -1 -6997 6977 -1 -7377 6977 -1 -6978 6978 6 -6979 6978 -1 -6998 6978 -1 -7378 6978 -1 -6979 6979 6 -6980 6979 -1 -6999 6979 -1 -7379 6979 -1 -6980 6980 6 -7000 6980 -1 -7380 6980 -1 -6981 6981 6 -6982 6981 -1 -7001 6981 -1 -7381 6981 -1 -6982 6982 6 -6983 6982 -1 -7002 6982 -1 -7382 6982 -1 -6983 6983 6 -6984 6983 -1 -7003 6983 -1 -7383 6983 -1 -6984 6984 6 -6985 6984 -1 -7004 6984 -1 -7384 6984 -1 -6985 6985 6 -6986 6985 -1 -7005 6985 -1 -7385 6985 -1 -6986 6986 6 -6987 6986 -1 -7006 6986 -1 -7386 6986 -1 -6987 6987 6 -6988 6987 -1 -7007 6987 -1 -7387 6987 -1 -6988 6988 6 -6989 6988 -1 -7008 6988 -1 -7388 6988 -1 -6989 6989 6 -6990 6989 -1 -7009 6989 -1 -7389 6989 -1 -6990 6990 6 -6991 6990 -1 -7010 6990 -1 -7390 6990 -1 -6991 6991 6 -6992 6991 -1 -7011 6991 -1 -7391 6991 -1 -6992 6992 6 -6993 6992 -1 -7012 6992 -1 -7392 6992 -1 -6993 6993 6 -6994 6993 -1 -7013 6993 -1 -7393 6993 -1 -6994 6994 6 -6995 6994 -1 -7014 6994 -1 -7394 6994 -1 -6995 6995 6 -6996 6995 -1 -7015 6995 -1 -7395 6995 -1 -6996 6996 6 -6997 6996 -1 -7016 6996 -1 -7396 6996 -1 -6997 6997 6 -6998 6997 -1 -7017 6997 -1 -7397 6997 -1 -6998 6998 6 -6999 6998 -1 -7018 6998 -1 -7398 6998 -1 -6999 6999 6 -7000 6999 -1 -7019 6999 -1 -7399 6999 -1 -7000 7000 6 -7020 7000 -1 -7400 7000 -1 -7001 7001 6 -7002 7001 -1 -7021 7001 -1 -7401 7001 -1 -7002 7002 6 -7003 7002 -1 -7022 7002 -1 -7402 7002 -1 -7003 7003 6 -7004 7003 -1 -7023 7003 -1 -7403 7003 -1 -7004 7004 6 -7005 7004 -1 -7024 7004 -1 -7404 7004 -1 -7005 7005 6 -7006 7005 -1 -7025 7005 -1 -7405 7005 -1 -7006 7006 6 -7007 7006 -1 -7026 7006 -1 -7406 7006 -1 -7007 7007 6 -7008 7007 -1 -7027 7007 -1 -7407 7007 -1 -7008 7008 6 -7009 7008 -1 -7028 7008 -1 -7408 7008 -1 -7009 7009 6 -7010 7009 -1 -7029 7009 -1 -7409 7009 -1 -7010 7010 6 -7011 7010 -1 -7030 7010 -1 -7410 7010 -1 -7011 7011 6 -7012 7011 -1 -7031 7011 -1 -7411 7011 -1 -7012 7012 6 -7013 7012 -1 -7032 7012 -1 -7412 7012 -1 -7013 7013 6 -7014 7013 -1 -7033 7013 -1 -7413 7013 -1 -7014 7014 6 -7015 7014 -1 -7034 7014 -1 -7414 7014 -1 -7015 7015 6 -7016 7015 -1 -7035 7015 -1 -7415 7015 -1 -7016 7016 6 -7017 7016 -1 -7036 7016 -1 -7416 7016 -1 -7017 7017 6 -7018 7017 -1 -7037 7017 -1 -7417 7017 -1 -7018 7018 6 -7019 7018 -1 -7038 7018 -1 -7418 7018 -1 -7019 7019 6 -7020 7019 -1 -7039 7019 -1 -7419 7019 -1 -7020 7020 6 -7040 7020 -1 -7420 7020 -1 -7021 7021 6 -7022 7021 -1 -7041 7021 -1 -7421 7021 -1 -7022 7022 6 -7023 7022 -1 -7042 7022 -1 -7422 7022 -1 -7023 7023 6 -7024 7023 -1 -7043 7023 -1 -7423 7023 -1 -7024 7024 6 -7025 7024 -1 -7044 7024 -1 -7424 7024 -1 -7025 7025 6 -7026 7025 -1 -7045 7025 -1 -7425 7025 -1 -7026 7026 6 -7027 7026 -1 -7046 7026 -1 -7426 7026 -1 -7027 7027 6 -7028 7027 -1 -7047 7027 -1 -7427 7027 -1 -7028 7028 6 -7029 7028 -1 -7048 7028 -1 -7428 7028 -1 -7029 7029 6 -7030 7029 -1 -7049 7029 -1 -7429 7029 -1 -7030 7030 6 -7031 7030 -1 -7050 7030 -1 -7430 7030 -1 -7031 7031 6 -7032 7031 -1 -7051 7031 -1 -7431 7031 -1 -7032 7032 6 -7033 7032 -1 -7052 7032 -1 -7432 7032 -1 -7033 7033 6 -7034 7033 -1 -7053 7033 -1 -7433 7033 -1 -7034 7034 6 -7035 7034 -1 -7054 7034 -1 -7434 7034 -1 -7035 7035 6 -7036 7035 -1 -7055 7035 -1 -7435 7035 -1 -7036 7036 6 -7037 7036 -1 -7056 7036 -1 -7436 7036 -1 -7037 7037 6 -7038 7037 -1 -7057 7037 -1 -7437 7037 -1 -7038 7038 6 -7039 7038 -1 -7058 7038 -1 -7438 7038 -1 -7039 7039 6 -7040 7039 -1 -7059 7039 -1 -7439 7039 -1 -7040 7040 6 -7060 7040 -1 -7440 7040 -1 -7041 7041 6 -7042 7041 -1 -7061 7041 -1 -7441 7041 -1 -7042 7042 6 -7043 7042 -1 -7062 7042 -1 -7442 7042 -1 -7043 7043 6 -7044 7043 -1 -7063 7043 -1 -7443 7043 -1 -7044 7044 6 -7045 7044 -1 -7064 7044 -1 -7444 7044 -1 -7045 7045 6 -7046 7045 -1 -7065 7045 -1 -7445 7045 -1 -7046 7046 6 -7047 7046 -1 -7066 7046 -1 -7446 7046 -1 -7047 7047 6 -7048 7047 -1 -7067 7047 -1 -7447 7047 -1 -7048 7048 6 -7049 7048 -1 -7068 7048 -1 -7448 7048 -1 -7049 7049 6 -7050 7049 -1 -7069 7049 -1 -7449 7049 -1 -7050 7050 6 -7051 7050 -1 -7070 7050 -1 -7450 7050 -1 -7051 7051 6 -7052 7051 -1 -7071 7051 -1 -7451 7051 -1 -7052 7052 6 -7053 7052 -1 -7072 7052 -1 -7452 7052 -1 -7053 7053 6 -7054 7053 -1 -7073 7053 -1 -7453 7053 -1 -7054 7054 6 -7055 7054 -1 -7074 7054 -1 -7454 7054 -1 -7055 7055 6 -7056 7055 -1 -7075 7055 -1 -7455 7055 -1 -7056 7056 6 -7057 7056 -1 -7076 7056 -1 -7456 7056 -1 -7057 7057 6 -7058 7057 -1 -7077 7057 -1 -7457 7057 -1 -7058 7058 6 -7059 7058 -1 -7078 7058 -1 -7458 7058 -1 -7059 7059 6 -7060 7059 -1 -7079 7059 -1 -7459 7059 -1 -7060 7060 6 -7080 7060 -1 -7460 7060 -1 -7061 7061 6 -7062 7061 -1 -7081 7061 -1 -7461 7061 -1 -7062 7062 6 -7063 7062 -1 -7082 7062 -1 -7462 7062 -1 -7063 7063 6 -7064 7063 -1 -7083 7063 -1 -7463 7063 -1 -7064 7064 6 -7065 7064 -1 -7084 7064 -1 -7464 7064 -1 -7065 7065 6 -7066 7065 -1 -7085 7065 -1 -7465 7065 -1 -7066 7066 6 -7067 7066 -1 -7086 7066 -1 -7466 7066 -1 -7067 7067 6 -7068 7067 -1 -7087 7067 -1 -7467 7067 -1 -7068 7068 6 -7069 7068 -1 -7088 7068 -1 -7468 7068 -1 -7069 7069 6 -7070 7069 -1 -7089 7069 -1 -7469 7069 -1 -7070 7070 6 -7071 7070 -1 -7090 7070 -1 -7470 7070 -1 -7071 7071 6 -7072 7071 -1 -7091 7071 -1 -7471 7071 -1 -7072 7072 6 -7073 7072 -1 -7092 7072 -1 -7472 7072 -1 -7073 7073 6 -7074 7073 -1 -7093 7073 -1 -7473 7073 -1 -7074 7074 6 -7075 7074 -1 -7094 7074 -1 -7474 7074 -1 -7075 7075 6 -7076 7075 -1 -7095 7075 -1 -7475 7075 -1 -7076 7076 6 -7077 7076 -1 -7096 7076 -1 -7476 7076 -1 -7077 7077 6 -7078 7077 -1 -7097 7077 -1 -7477 7077 -1 -7078 7078 6 -7079 7078 -1 -7098 7078 -1 -7478 7078 -1 -7079 7079 6 -7080 7079 -1 -7099 7079 -1 -7479 7079 -1 -7080 7080 6 -7100 7080 -1 -7480 7080 -1 -7081 7081 6 -7082 7081 -1 -7101 7081 -1 -7481 7081 -1 -7082 7082 6 -7083 7082 -1 -7102 7082 -1 -7482 7082 -1 -7083 7083 6 -7084 7083 -1 -7103 7083 -1 -7483 7083 -1 -7084 7084 6 -7085 7084 -1 -7104 7084 -1 -7484 7084 -1 -7085 7085 6 -7086 7085 -1 -7105 7085 -1 -7485 7085 -1 -7086 7086 6 -7087 7086 -1 -7106 7086 -1 -7486 7086 -1 -7087 7087 6 -7088 7087 -1 -7107 7087 -1 -7487 7087 -1 -7088 7088 6 -7089 7088 -1 -7108 7088 -1 -7488 7088 -1 -7089 7089 6 -7090 7089 -1 -7109 7089 -1 -7489 7089 -1 -7090 7090 6 -7091 7090 -1 -7110 7090 -1 -7490 7090 -1 -7091 7091 6 -7092 7091 -1 -7111 7091 -1 -7491 7091 -1 -7092 7092 6 -7093 7092 -1 -7112 7092 -1 -7492 7092 -1 -7093 7093 6 -7094 7093 -1 -7113 7093 -1 -7493 7093 -1 -7094 7094 6 -7095 7094 -1 -7114 7094 -1 -7494 7094 -1 -7095 7095 6 -7096 7095 -1 -7115 7095 -1 -7495 7095 -1 -7096 7096 6 -7097 7096 -1 -7116 7096 -1 -7496 7096 -1 -7097 7097 6 -7098 7097 -1 -7117 7097 -1 -7497 7097 -1 -7098 7098 6 -7099 7098 -1 -7118 7098 -1 -7498 7098 -1 -7099 7099 6 -7100 7099 -1 -7119 7099 -1 -7499 7099 -1 -7100 7100 6 -7120 7100 -1 -7500 7100 -1 -7101 7101 6 -7102 7101 -1 -7121 7101 -1 -7501 7101 -1 -7102 7102 6 -7103 7102 -1 -7122 7102 -1 -7502 7102 -1 -7103 7103 6 -7104 7103 -1 -7123 7103 -1 -7503 7103 -1 -7104 7104 6 -7105 7104 -1 -7124 7104 -1 -7504 7104 -1 -7105 7105 6 -7106 7105 -1 -7125 7105 -1 -7505 7105 -1 -7106 7106 6 -7107 7106 -1 -7126 7106 -1 -7506 7106 -1 -7107 7107 6 -7108 7107 -1 -7127 7107 -1 -7507 7107 -1 -7108 7108 6 -7109 7108 -1 -7128 7108 -1 -7508 7108 -1 -7109 7109 6 -7110 7109 -1 -7129 7109 -1 -7509 7109 -1 -7110 7110 6 -7111 7110 -1 -7130 7110 -1 -7510 7110 -1 -7111 7111 6 -7112 7111 -1 -7131 7111 -1 -7511 7111 -1 -7112 7112 6 -7113 7112 -1 -7132 7112 -1 -7512 7112 -1 -7113 7113 6 -7114 7113 -1 -7133 7113 -1 -7513 7113 -1 -7114 7114 6 -7115 7114 -1 -7134 7114 -1 -7514 7114 -1 -7115 7115 6 -7116 7115 -1 -7135 7115 -1 -7515 7115 -1 -7116 7116 6 -7117 7116 -1 -7136 7116 -1 -7516 7116 -1 -7117 7117 6 -7118 7117 -1 -7137 7117 -1 -7517 7117 -1 -7118 7118 6 -7119 7118 -1 -7138 7118 -1 -7518 7118 -1 -7119 7119 6 -7120 7119 -1 -7139 7119 -1 -7519 7119 -1 -7120 7120 6 -7140 7120 -1 -7520 7120 -1 -7121 7121 6 -7122 7121 -1 -7141 7121 -1 -7521 7121 -1 -7122 7122 6 -7123 7122 -1 -7142 7122 -1 -7522 7122 -1 -7123 7123 6 -7124 7123 -1 -7143 7123 -1 -7523 7123 -1 -7124 7124 6 -7125 7124 -1 -7144 7124 -1 -7524 7124 -1 -7125 7125 6 -7126 7125 -1 -7145 7125 -1 -7525 7125 -1 -7126 7126 6 -7127 7126 -1 -7146 7126 -1 -7526 7126 -1 -7127 7127 6 -7128 7127 -1 -7147 7127 -1 -7527 7127 -1 -7128 7128 6 -7129 7128 -1 -7148 7128 -1 -7528 7128 -1 -7129 7129 6 -7130 7129 -1 -7149 7129 -1 -7529 7129 -1 -7130 7130 6 -7131 7130 -1 -7150 7130 -1 -7530 7130 -1 -7131 7131 6 -7132 7131 -1 -7151 7131 -1 -7531 7131 -1 -7132 7132 6 -7133 7132 -1 -7152 7132 -1 -7532 7132 -1 -7133 7133 6 -7134 7133 -1 -7153 7133 -1 -7533 7133 -1 -7134 7134 6 -7135 7134 -1 -7154 7134 -1 -7534 7134 -1 -7135 7135 6 -7136 7135 -1 -7155 7135 -1 -7535 7135 -1 -7136 7136 6 -7137 7136 -1 -7156 7136 -1 -7536 7136 -1 -7137 7137 6 -7138 7137 -1 -7157 7137 -1 -7537 7137 -1 -7138 7138 6 -7139 7138 -1 -7158 7138 -1 -7538 7138 -1 -7139 7139 6 -7140 7139 -1 -7159 7139 -1 -7539 7139 -1 -7140 7140 6 -7160 7140 -1 -7540 7140 -1 -7141 7141 6 -7142 7141 -1 -7161 7141 -1 -7541 7141 -1 -7142 7142 6 -7143 7142 -1 -7162 7142 -1 -7542 7142 -1 -7143 7143 6 -7144 7143 -1 -7163 7143 -1 -7543 7143 -1 -7144 7144 6 -7145 7144 -1 -7164 7144 -1 -7544 7144 -1 -7145 7145 6 -7146 7145 -1 -7165 7145 -1 -7545 7145 -1 -7146 7146 6 -7147 7146 -1 -7166 7146 -1 -7546 7146 -1 -7147 7147 6 -7148 7147 -1 -7167 7147 -1 -7547 7147 -1 -7148 7148 6 -7149 7148 -1 -7168 7148 -1 -7548 7148 -1 -7149 7149 6 -7150 7149 -1 -7169 7149 -1 -7549 7149 -1 -7150 7150 6 -7151 7150 -1 -7170 7150 -1 -7550 7150 -1 -7151 7151 6 -7152 7151 -1 -7171 7151 -1 -7551 7151 -1 -7152 7152 6 -7153 7152 -1 -7172 7152 -1 -7552 7152 -1 -7153 7153 6 -7154 7153 -1 -7173 7153 -1 -7553 7153 -1 -7154 7154 6 -7155 7154 -1 -7174 7154 -1 -7554 7154 -1 -7155 7155 6 -7156 7155 -1 -7175 7155 -1 -7555 7155 -1 -7156 7156 6 -7157 7156 -1 -7176 7156 -1 -7556 7156 -1 -7157 7157 6 -7158 7157 -1 -7177 7157 -1 -7557 7157 -1 -7158 7158 6 -7159 7158 -1 -7178 7158 -1 -7558 7158 -1 -7159 7159 6 -7160 7159 -1 -7179 7159 -1 -7559 7159 -1 -7160 7160 6 -7180 7160 -1 -7560 7160 -1 -7161 7161 6 -7162 7161 -1 -7181 7161 -1 -7561 7161 -1 -7162 7162 6 -7163 7162 -1 -7182 7162 -1 -7562 7162 -1 -7163 7163 6 -7164 7163 -1 -7183 7163 -1 -7563 7163 -1 -7164 7164 6 -7165 7164 -1 -7184 7164 -1 -7564 7164 -1 -7165 7165 6 -7166 7165 -1 -7185 7165 -1 -7565 7165 -1 -7166 7166 6 -7167 7166 -1 -7186 7166 -1 -7566 7166 -1 -7167 7167 6 -7168 7167 -1 -7187 7167 -1 -7567 7167 -1 -7168 7168 6 -7169 7168 -1 -7188 7168 -1 -7568 7168 -1 -7169 7169 6 -7170 7169 -1 -7189 7169 -1 -7569 7169 -1 -7170 7170 6 -7171 7170 -1 -7190 7170 -1 -7570 7170 -1 -7171 7171 6 -7172 7171 -1 -7191 7171 -1 -7571 7171 -1 -7172 7172 6 -7173 7172 -1 -7192 7172 -1 -7572 7172 -1 -7173 7173 6 -7174 7173 -1 -7193 7173 -1 -7573 7173 -1 -7174 7174 6 -7175 7174 -1 -7194 7174 -1 -7574 7174 -1 -7175 7175 6 -7176 7175 -1 -7195 7175 -1 -7575 7175 -1 -7176 7176 6 -7177 7176 -1 -7196 7176 -1 -7576 7176 -1 -7177 7177 6 -7178 7177 -1 -7197 7177 -1 -7577 7177 -1 -7178 7178 6 -7179 7178 -1 -7198 7178 -1 -7578 7178 -1 -7179 7179 6 -7180 7179 -1 -7199 7179 -1 -7579 7179 -1 -7180 7180 6 -7200 7180 -1 -7580 7180 -1 -7181 7181 6 -7182 7181 -1 -7581 7181 -1 -7182 7182 6 -7183 7182 -1 -7582 7182 -1 -7183 7183 6 -7184 7183 -1 -7583 7183 -1 -7184 7184 6 -7185 7184 -1 -7584 7184 -1 -7185 7185 6 -7186 7185 -1 -7585 7185 -1 -7186 7186 6 -7187 7186 -1 -7586 7186 -1 -7187 7187 6 -7188 7187 -1 -7587 7187 -1 -7188 7188 6 -7189 7188 -1 -7588 7188 -1 -7189 7189 6 -7190 7189 -1 -7589 7189 -1 -7190 7190 6 -7191 7190 -1 -7590 7190 -1 -7191 7191 6 -7192 7191 -1 -7591 7191 -1 -7192 7192 6 -7193 7192 -1 -7592 7192 -1 -7193 7193 6 -7194 7193 -1 -7593 7193 -1 -7194 7194 6 -7195 7194 -1 -7594 7194 -1 -7195 7195 6 -7196 7195 -1 -7595 7195 -1 -7196 7196 6 -7197 7196 -1 -7596 7196 -1 -7197 7197 6 -7198 7197 -1 -7597 7197 -1 -7198 7198 6 -7199 7198 -1 -7598 7198 -1 -7199 7199 6 -7200 7199 -1 -7599 7199 -1 -7200 7200 6 -7600 7200 -1 -7201 7201 6 -7202 7201 -1 -7221 7201 -1 -7601 7201 -1 -7202 7202 6 -7203 7202 -1 -7222 7202 -1 -7602 7202 -1 -7203 7203 6 -7204 7203 -1 -7223 7203 -1 -7603 7203 -1 -7204 7204 6 -7205 7204 -1 -7224 7204 -1 -7604 7204 -1 -7205 7205 6 -7206 7205 -1 -7225 7205 -1 -7605 7205 -1 -7206 7206 6 -7207 7206 -1 -7226 7206 -1 -7606 7206 -1 -7207 7207 6 -7208 7207 -1 -7227 7207 -1 -7607 7207 -1 -7208 7208 6 -7209 7208 -1 -7228 7208 -1 -7608 7208 -1 -7209 7209 6 -7210 7209 -1 -7229 7209 -1 -7609 7209 -1 -7210 7210 6 -7211 7210 -1 -7230 7210 -1 -7610 7210 -1 -7211 7211 6 -7212 7211 -1 -7231 7211 -1 -7611 7211 -1 -7212 7212 6 -7213 7212 -1 -7232 7212 -1 -7612 7212 -1 -7213 7213 6 -7214 7213 -1 -7233 7213 -1 -7613 7213 -1 -7214 7214 6 -7215 7214 -1 -7234 7214 -1 -7614 7214 -1 -7215 7215 6 -7216 7215 -1 -7235 7215 -1 -7615 7215 -1 -7216 7216 6 -7217 7216 -1 -7236 7216 -1 -7616 7216 -1 -7217 7217 6 -7218 7217 -1 -7237 7217 -1 -7617 7217 -1 -7218 7218 6 -7219 7218 -1 -7238 7218 -1 -7618 7218 -1 -7219 7219 6 -7220 7219 -1 -7239 7219 -1 -7619 7219 -1 -7220 7220 6 -7240 7220 -1 -7620 7220 -1 -7221 7221 6 -7222 7221 -1 -7241 7221 -1 -7621 7221 -1 -7222 7222 6 -7223 7222 -1 -7242 7222 -1 -7622 7222 -1 -7223 7223 6 -7224 7223 -1 -7243 7223 -1 -7623 7223 -1 -7224 7224 6 -7225 7224 -1 -7244 7224 -1 -7624 7224 -1 -7225 7225 6 -7226 7225 -1 -7245 7225 -1 -7625 7225 -1 -7226 7226 6 -7227 7226 -1 -7246 7226 -1 -7626 7226 -1 -7227 7227 6 -7228 7227 -1 -7247 7227 -1 -7627 7227 -1 -7228 7228 6 -7229 7228 -1 -7248 7228 -1 -7628 7228 -1 -7229 7229 6 -7230 7229 -1 -7249 7229 -1 -7629 7229 -1 -7230 7230 6 -7231 7230 -1 -7250 7230 -1 -7630 7230 -1 -7231 7231 6 -7232 7231 -1 -7251 7231 -1 -7631 7231 -1 -7232 7232 6 -7233 7232 -1 -7252 7232 -1 -7632 7232 -1 -7233 7233 6 -7234 7233 -1 -7253 7233 -1 -7633 7233 -1 -7234 7234 6 -7235 7234 -1 -7254 7234 -1 -7634 7234 -1 -7235 7235 6 -7236 7235 -1 -7255 7235 -1 -7635 7235 -1 -7236 7236 6 -7237 7236 -1 -7256 7236 -1 -7636 7236 -1 -7237 7237 6 -7238 7237 -1 -7257 7237 -1 -7637 7237 -1 -7238 7238 6 -7239 7238 -1 -7258 7238 -1 -7638 7238 -1 -7239 7239 6 -7240 7239 -1 -7259 7239 -1 -7639 7239 -1 -7240 7240 6 -7260 7240 -1 -7640 7240 -1 -7241 7241 6 -7242 7241 -1 -7261 7241 -1 -7641 7241 -1 -7242 7242 6 -7243 7242 -1 -7262 7242 -1 -7642 7242 -1 -7243 7243 6 -7244 7243 -1 -7263 7243 -1 -7643 7243 -1 -7244 7244 6 -7245 7244 -1 -7264 7244 -1 -7644 7244 -1 -7245 7245 6 -7246 7245 -1 -7265 7245 -1 -7645 7245 -1 -7246 7246 6 -7247 7246 -1 -7266 7246 -1 -7646 7246 -1 -7247 7247 6 -7248 7247 -1 -7267 7247 -1 -7647 7247 -1 -7248 7248 6 -7249 7248 -1 -7268 7248 -1 -7648 7248 -1 -7249 7249 6 -7250 7249 -1 -7269 7249 -1 -7649 7249 -1 -7250 7250 6 -7251 7250 -1 -7270 7250 -1 -7650 7250 -1 -7251 7251 6 -7252 7251 -1 -7271 7251 -1 -7651 7251 -1 -7252 7252 6 -7253 7252 -1 -7272 7252 -1 -7652 7252 -1 -7253 7253 6 -7254 7253 -1 -7273 7253 -1 -7653 7253 -1 -7254 7254 6 -7255 7254 -1 -7274 7254 -1 -7654 7254 -1 -7255 7255 6 -7256 7255 -1 -7275 7255 -1 -7655 7255 -1 -7256 7256 6 -7257 7256 -1 -7276 7256 -1 -7656 7256 -1 -7257 7257 6 -7258 7257 -1 -7277 7257 -1 -7657 7257 -1 -7258 7258 6 -7259 7258 -1 -7278 7258 -1 -7658 7258 -1 -7259 7259 6 -7260 7259 -1 -7279 7259 -1 -7659 7259 -1 -7260 7260 6 -7280 7260 -1 -7660 7260 -1 -7261 7261 6 -7262 7261 -1 -7281 7261 -1 -7661 7261 -1 -7262 7262 6 -7263 7262 -1 -7282 7262 -1 -7662 7262 -1 -7263 7263 6 -7264 7263 -1 -7283 7263 -1 -7663 7263 -1 -7264 7264 6 -7265 7264 -1 -7284 7264 -1 -7664 7264 -1 -7265 7265 6 -7266 7265 -1 -7285 7265 -1 -7665 7265 -1 -7266 7266 6 -7267 7266 -1 -7286 7266 -1 -7666 7266 -1 -7267 7267 6 -7268 7267 -1 -7287 7267 -1 -7667 7267 -1 -7268 7268 6 -7269 7268 -1 -7288 7268 -1 -7668 7268 -1 -7269 7269 6 -7270 7269 -1 -7289 7269 -1 -7669 7269 -1 -7270 7270 6 -7271 7270 -1 -7290 7270 -1 -7670 7270 -1 -7271 7271 6 -7272 7271 -1 -7291 7271 -1 -7671 7271 -1 -7272 7272 6 -7273 7272 -1 -7292 7272 -1 -7672 7272 -1 -7273 7273 6 -7274 7273 -1 -7293 7273 -1 -7673 7273 -1 -7274 7274 6 -7275 7274 -1 -7294 7274 -1 -7674 7274 -1 -7275 7275 6 -7276 7275 -1 -7295 7275 -1 -7675 7275 -1 -7276 7276 6 -7277 7276 -1 -7296 7276 -1 -7676 7276 -1 -7277 7277 6 -7278 7277 -1 -7297 7277 -1 -7677 7277 -1 -7278 7278 6 -7279 7278 -1 -7298 7278 -1 -7678 7278 -1 -7279 7279 6 -7280 7279 -1 -7299 7279 -1 -7679 7279 -1 -7280 7280 6 -7300 7280 -1 -7680 7280 -1 -7281 7281 6 -7282 7281 -1 -7301 7281 -1 -7681 7281 -1 -7282 7282 6 -7283 7282 -1 -7302 7282 -1 -7682 7282 -1 -7283 7283 6 -7284 7283 -1 -7303 7283 -1 -7683 7283 -1 -7284 7284 6 -7285 7284 -1 -7304 7284 -1 -7684 7284 -1 -7285 7285 6 -7286 7285 -1 -7305 7285 -1 -7685 7285 -1 -7286 7286 6 -7287 7286 -1 -7306 7286 -1 -7686 7286 -1 -7287 7287 6 -7288 7287 -1 -7307 7287 -1 -7687 7287 -1 -7288 7288 6 -7289 7288 -1 -7308 7288 -1 -7688 7288 -1 -7289 7289 6 -7290 7289 -1 -7309 7289 -1 -7689 7289 -1 -7290 7290 6 -7291 7290 -1 -7310 7290 -1 -7690 7290 -1 -7291 7291 6 -7292 7291 -1 -7311 7291 -1 -7691 7291 -1 -7292 7292 6 -7293 7292 -1 -7312 7292 -1 -7692 7292 -1 -7293 7293 6 -7294 7293 -1 -7313 7293 -1 -7693 7293 -1 -7294 7294 6 -7295 7294 -1 -7314 7294 -1 -7694 7294 -1 -7295 7295 6 -7296 7295 -1 -7315 7295 -1 -7695 7295 -1 -7296 7296 6 -7297 7296 -1 -7316 7296 -1 -7696 7296 -1 -7297 7297 6 -7298 7297 -1 -7317 7297 -1 -7697 7297 -1 -7298 7298 6 -7299 7298 -1 -7318 7298 -1 -7698 7298 -1 -7299 7299 6 -7300 7299 -1 -7319 7299 -1 -7699 7299 -1 -7300 7300 6 -7320 7300 -1 -7700 7300 -1 -7301 7301 6 -7302 7301 -1 -7321 7301 -1 -7701 7301 -1 -7302 7302 6 -7303 7302 -1 -7322 7302 -1 -7702 7302 -1 -7303 7303 6 -7304 7303 -1 -7323 7303 -1 -7703 7303 -1 -7304 7304 6 -7305 7304 -1 -7324 7304 -1 -7704 7304 -1 -7305 7305 6 -7306 7305 -1 -7325 7305 -1 -7705 7305 -1 -7306 7306 6 -7307 7306 -1 -7326 7306 -1 -7706 7306 -1 -7307 7307 6 -7308 7307 -1 -7327 7307 -1 -7707 7307 -1 -7308 7308 6 -7309 7308 -1 -7328 7308 -1 -7708 7308 -1 -7309 7309 6 -7310 7309 -1 -7329 7309 -1 -7709 7309 -1 -7310 7310 6 -7311 7310 -1 -7330 7310 -1 -7710 7310 -1 -7311 7311 6 -7312 7311 -1 -7331 7311 -1 -7711 7311 -1 -7312 7312 6 -7313 7312 -1 -7332 7312 -1 -7712 7312 -1 -7313 7313 6 -7314 7313 -1 -7333 7313 -1 -7713 7313 -1 -7314 7314 6 -7315 7314 -1 -7334 7314 -1 -7714 7314 -1 -7315 7315 6 -7316 7315 -1 -7335 7315 -1 -7715 7315 -1 -7316 7316 6 -7317 7316 -1 -7336 7316 -1 -7716 7316 -1 -7317 7317 6 -7318 7317 -1 -7337 7317 -1 -7717 7317 -1 -7318 7318 6 -7319 7318 -1 -7338 7318 -1 -7718 7318 -1 -7319 7319 6 -7320 7319 -1 -7339 7319 -1 -7719 7319 -1 -7320 7320 6 -7340 7320 -1 -7720 7320 -1 -7321 7321 6 -7322 7321 -1 -7341 7321 -1 -7721 7321 -1 -7322 7322 6 -7323 7322 -1 -7342 7322 -1 -7722 7322 -1 -7323 7323 6 -7324 7323 -1 -7343 7323 -1 -7723 7323 -1 -7324 7324 6 -7325 7324 -1 -7344 7324 -1 -7724 7324 -1 -7325 7325 6 -7326 7325 -1 -7345 7325 -1 -7725 7325 -1 -7326 7326 6 -7327 7326 -1 -7346 7326 -1 -7726 7326 -1 -7327 7327 6 -7328 7327 -1 -7347 7327 -1 -7727 7327 -1 -7328 7328 6 -7329 7328 -1 -7348 7328 -1 -7728 7328 -1 -7329 7329 6 -7330 7329 -1 -7349 7329 -1 -7729 7329 -1 -7330 7330 6 -7331 7330 -1 -7350 7330 -1 -7730 7330 -1 -7331 7331 6 -7332 7331 -1 -7351 7331 -1 -7731 7331 -1 -7332 7332 6 -7333 7332 -1 -7352 7332 -1 -7732 7332 -1 -7333 7333 6 -7334 7333 -1 -7353 7333 -1 -7733 7333 -1 -7334 7334 6 -7335 7334 -1 -7354 7334 -1 -7734 7334 -1 -7335 7335 6 -7336 7335 -1 -7355 7335 -1 -7735 7335 -1 -7336 7336 6 -7337 7336 -1 -7356 7336 -1 -7736 7336 -1 -7337 7337 6 -7338 7337 -1 -7357 7337 -1 -7737 7337 -1 -7338 7338 6 -7339 7338 -1 -7358 7338 -1 -7738 7338 -1 -7339 7339 6 -7340 7339 -1 -7359 7339 -1 -7739 7339 -1 -7340 7340 6 -7360 7340 -1 -7740 7340 -1 -7341 7341 6 -7342 7341 -1 -7361 7341 -1 -7741 7341 -1 -7342 7342 6 -7343 7342 -1 -7362 7342 -1 -7742 7342 -1 -7343 7343 6 -7344 7343 -1 -7363 7343 -1 -7743 7343 -1 -7344 7344 6 -7345 7344 -1 -7364 7344 -1 -7744 7344 -1 -7345 7345 6 -7346 7345 -1 -7365 7345 -1 -7745 7345 -1 -7346 7346 6 -7347 7346 -1 -7366 7346 -1 -7746 7346 -1 -7347 7347 6 -7348 7347 -1 -7367 7347 -1 -7747 7347 -1 -7348 7348 6 -7349 7348 -1 -7368 7348 -1 -7748 7348 -1 -7349 7349 6 -7350 7349 -1 -7369 7349 -1 -7749 7349 -1 -7350 7350 6 -7351 7350 -1 -7370 7350 -1 -7750 7350 -1 -7351 7351 6 -7352 7351 -1 -7371 7351 -1 -7751 7351 -1 -7352 7352 6 -7353 7352 -1 -7372 7352 -1 -7752 7352 -1 -7353 7353 6 -7354 7353 -1 -7373 7353 -1 -7753 7353 -1 -7354 7354 6 -7355 7354 -1 -7374 7354 -1 -7754 7354 -1 -7355 7355 6 -7356 7355 -1 -7375 7355 -1 -7755 7355 -1 -7356 7356 6 -7357 7356 -1 -7376 7356 -1 -7756 7356 -1 -7357 7357 6 -7358 7357 -1 -7377 7357 -1 -7757 7357 -1 -7358 7358 6 -7359 7358 -1 -7378 7358 -1 -7758 7358 -1 -7359 7359 6 -7360 7359 -1 -7379 7359 -1 -7759 7359 -1 -7360 7360 6 -7380 7360 -1 -7760 7360 -1 -7361 7361 6 -7362 7361 -1 -7381 7361 -1 -7761 7361 -1 -7362 7362 6 -7363 7362 -1 -7382 7362 -1 -7762 7362 -1 -7363 7363 6 -7364 7363 -1 -7383 7363 -1 -7763 7363 -1 -7364 7364 6 -7365 7364 -1 -7384 7364 -1 -7764 7364 -1 -7365 7365 6 -7366 7365 -1 -7385 7365 -1 -7765 7365 -1 -7366 7366 6 -7367 7366 -1 -7386 7366 -1 -7766 7366 -1 -7367 7367 6 -7368 7367 -1 -7387 7367 -1 -7767 7367 -1 -7368 7368 6 -7369 7368 -1 -7388 7368 -1 -7768 7368 -1 -7369 7369 6 -7370 7369 -1 -7389 7369 -1 -7769 7369 -1 -7370 7370 6 -7371 7370 -1 -7390 7370 -1 -7770 7370 -1 -7371 7371 6 -7372 7371 -1 -7391 7371 -1 -7771 7371 -1 -7372 7372 6 -7373 7372 -1 -7392 7372 -1 -7772 7372 -1 -7373 7373 6 -7374 7373 -1 -7393 7373 -1 -7773 7373 -1 -7374 7374 6 -7375 7374 -1 -7394 7374 -1 -7774 7374 -1 -7375 7375 6 -7376 7375 -1 -7395 7375 -1 -7775 7375 -1 -7376 7376 6 -7377 7376 -1 -7396 7376 -1 -7776 7376 -1 -7377 7377 6 -7378 7377 -1 -7397 7377 -1 -7777 7377 -1 -7378 7378 6 -7379 7378 -1 -7398 7378 -1 -7778 7378 -1 -7379 7379 6 -7380 7379 -1 -7399 7379 -1 -7779 7379 -1 -7380 7380 6 -7400 7380 -1 -7780 7380 -1 -7381 7381 6 -7382 7381 -1 -7401 7381 -1 -7781 7381 -1 -7382 7382 6 -7383 7382 -1 -7402 7382 -1 -7782 7382 -1 -7383 7383 6 -7384 7383 -1 -7403 7383 -1 -7783 7383 -1 -7384 7384 6 -7385 7384 -1 -7404 7384 -1 -7784 7384 -1 -7385 7385 6 -7386 7385 -1 -7405 7385 -1 -7785 7385 -1 -7386 7386 6 -7387 7386 -1 -7406 7386 -1 -7786 7386 -1 -7387 7387 6 -7388 7387 -1 -7407 7387 -1 -7787 7387 -1 -7388 7388 6 -7389 7388 -1 -7408 7388 -1 -7788 7388 -1 -7389 7389 6 -7390 7389 -1 -7409 7389 -1 -7789 7389 -1 -7390 7390 6 -7391 7390 -1 -7410 7390 -1 -7790 7390 -1 -7391 7391 6 -7392 7391 -1 -7411 7391 -1 -7791 7391 -1 -7392 7392 6 -7393 7392 -1 -7412 7392 -1 -7792 7392 -1 -7393 7393 6 -7394 7393 -1 -7413 7393 -1 -7793 7393 -1 -7394 7394 6 -7395 7394 -1 -7414 7394 -1 -7794 7394 -1 -7395 7395 6 -7396 7395 -1 -7415 7395 -1 -7795 7395 -1 -7396 7396 6 -7397 7396 -1 -7416 7396 -1 -7796 7396 -1 -7397 7397 6 -7398 7397 -1 -7417 7397 -1 -7797 7397 -1 -7398 7398 6 -7399 7398 -1 -7418 7398 -1 -7798 7398 -1 -7399 7399 6 -7400 7399 -1 -7419 7399 -1 -7799 7399 -1 -7400 7400 6 -7420 7400 -1 -7800 7400 -1 -7401 7401 6 -7402 7401 -1 -7421 7401 -1 -7801 7401 -1 -7402 7402 6 -7403 7402 -1 -7422 7402 -1 -7802 7402 -1 -7403 7403 6 -7404 7403 -1 -7423 7403 -1 -7803 7403 -1 -7404 7404 6 -7405 7404 -1 -7424 7404 -1 -7804 7404 -1 -7405 7405 6 -7406 7405 -1 -7425 7405 -1 -7805 7405 -1 -7406 7406 6 -7407 7406 -1 -7426 7406 -1 -7806 7406 -1 -7407 7407 6 -7408 7407 -1 -7427 7407 -1 -7807 7407 -1 -7408 7408 6 -7409 7408 -1 -7428 7408 -1 -7808 7408 -1 -7409 7409 6 -7410 7409 -1 -7429 7409 -1 -7809 7409 -1 -7410 7410 6 -7411 7410 -1 -7430 7410 -1 -7810 7410 -1 -7411 7411 6 -7412 7411 -1 -7431 7411 -1 -7811 7411 -1 -7412 7412 6 -7413 7412 -1 -7432 7412 -1 -7812 7412 -1 -7413 7413 6 -7414 7413 -1 -7433 7413 -1 -7813 7413 -1 -7414 7414 6 -7415 7414 -1 -7434 7414 -1 -7814 7414 -1 -7415 7415 6 -7416 7415 -1 -7435 7415 -1 -7815 7415 -1 -7416 7416 6 -7417 7416 -1 -7436 7416 -1 -7816 7416 -1 -7417 7417 6 -7418 7417 -1 -7437 7417 -1 -7817 7417 -1 -7418 7418 6 -7419 7418 -1 -7438 7418 -1 -7818 7418 -1 -7419 7419 6 -7420 7419 -1 -7439 7419 -1 -7819 7419 -1 -7420 7420 6 -7440 7420 -1 -7820 7420 -1 -7421 7421 6 -7422 7421 -1 -7441 7421 -1 -7821 7421 -1 -7422 7422 6 -7423 7422 -1 -7442 7422 -1 -7822 7422 -1 -7423 7423 6 -7424 7423 -1 -7443 7423 -1 -7823 7423 -1 -7424 7424 6 -7425 7424 -1 -7444 7424 -1 -7824 7424 -1 -7425 7425 6 -7426 7425 -1 -7445 7425 -1 -7825 7425 -1 -7426 7426 6 -7427 7426 -1 -7446 7426 -1 -7826 7426 -1 -7427 7427 6 -7428 7427 -1 -7447 7427 -1 -7827 7427 -1 -7428 7428 6 -7429 7428 -1 -7448 7428 -1 -7828 7428 -1 -7429 7429 6 -7430 7429 -1 -7449 7429 -1 -7829 7429 -1 -7430 7430 6 -7431 7430 -1 -7450 7430 -1 -7830 7430 -1 -7431 7431 6 -7432 7431 -1 -7451 7431 -1 -7831 7431 -1 -7432 7432 6 -7433 7432 -1 -7452 7432 -1 -7832 7432 -1 -7433 7433 6 -7434 7433 -1 -7453 7433 -1 -7833 7433 -1 -7434 7434 6 -7435 7434 -1 -7454 7434 -1 -7834 7434 -1 -7435 7435 6 -7436 7435 -1 -7455 7435 -1 -7835 7435 -1 -7436 7436 6 -7437 7436 -1 -7456 7436 -1 -7836 7436 -1 -7437 7437 6 -7438 7437 -1 -7457 7437 -1 -7837 7437 -1 -7438 7438 6 -7439 7438 -1 -7458 7438 -1 -7838 7438 -1 -7439 7439 6 -7440 7439 -1 -7459 7439 -1 -7839 7439 -1 -7440 7440 6 -7460 7440 -1 -7840 7440 -1 -7441 7441 6 -7442 7441 -1 -7461 7441 -1 -7841 7441 -1 -7442 7442 6 -7443 7442 -1 -7462 7442 -1 -7842 7442 -1 -7443 7443 6 -7444 7443 -1 -7463 7443 -1 -7843 7443 -1 -7444 7444 6 -7445 7444 -1 -7464 7444 -1 -7844 7444 -1 -7445 7445 6 -7446 7445 -1 -7465 7445 -1 -7845 7445 -1 -7446 7446 6 -7447 7446 -1 -7466 7446 -1 -7846 7446 -1 -7447 7447 6 -7448 7447 -1 -7467 7447 -1 -7847 7447 -1 -7448 7448 6 -7449 7448 -1 -7468 7448 -1 -7848 7448 -1 -7449 7449 6 -7450 7449 -1 -7469 7449 -1 -7849 7449 -1 -7450 7450 6 -7451 7450 -1 -7470 7450 -1 -7850 7450 -1 -7451 7451 6 -7452 7451 -1 -7471 7451 -1 -7851 7451 -1 -7452 7452 6 -7453 7452 -1 -7472 7452 -1 -7852 7452 -1 -7453 7453 6 -7454 7453 -1 -7473 7453 -1 -7853 7453 -1 -7454 7454 6 -7455 7454 -1 -7474 7454 -1 -7854 7454 -1 -7455 7455 6 -7456 7455 -1 -7475 7455 -1 -7855 7455 -1 -7456 7456 6 -7457 7456 -1 -7476 7456 -1 -7856 7456 -1 -7457 7457 6 -7458 7457 -1 -7477 7457 -1 -7857 7457 -1 -7458 7458 6 -7459 7458 -1 -7478 7458 -1 -7858 7458 -1 -7459 7459 6 -7460 7459 -1 -7479 7459 -1 -7859 7459 -1 -7460 7460 6 -7480 7460 -1 -7860 7460 -1 -7461 7461 6 -7462 7461 -1 -7481 7461 -1 -7861 7461 -1 -7462 7462 6 -7463 7462 -1 -7482 7462 -1 -7862 7462 -1 -7463 7463 6 -7464 7463 -1 -7483 7463 -1 -7863 7463 -1 -7464 7464 6 -7465 7464 -1 -7484 7464 -1 -7864 7464 -1 -7465 7465 6 -7466 7465 -1 -7485 7465 -1 -7865 7465 -1 -7466 7466 6 -7467 7466 -1 -7486 7466 -1 -7866 7466 -1 -7467 7467 6 -7468 7467 -1 -7487 7467 -1 -7867 7467 -1 -7468 7468 6 -7469 7468 -1 -7488 7468 -1 -7868 7468 -1 -7469 7469 6 -7470 7469 -1 -7489 7469 -1 -7869 7469 -1 -7470 7470 6 -7471 7470 -1 -7490 7470 -1 -7870 7470 -1 -7471 7471 6 -7472 7471 -1 -7491 7471 -1 -7871 7471 -1 -7472 7472 6 -7473 7472 -1 -7492 7472 -1 -7872 7472 -1 -7473 7473 6 -7474 7473 -1 -7493 7473 -1 -7873 7473 -1 -7474 7474 6 -7475 7474 -1 -7494 7474 -1 -7874 7474 -1 -7475 7475 6 -7476 7475 -1 -7495 7475 -1 -7875 7475 -1 -7476 7476 6 -7477 7476 -1 -7496 7476 -1 -7876 7476 -1 -7477 7477 6 -7478 7477 -1 -7497 7477 -1 -7877 7477 -1 -7478 7478 6 -7479 7478 -1 -7498 7478 -1 -7878 7478 -1 -7479 7479 6 -7480 7479 -1 -7499 7479 -1 -7879 7479 -1 -7480 7480 6 -7500 7480 -1 -7880 7480 -1 -7481 7481 6 -7482 7481 -1 -7501 7481 -1 -7881 7481 -1 -7482 7482 6 -7483 7482 -1 -7502 7482 -1 -7882 7482 -1 -7483 7483 6 -7484 7483 -1 -7503 7483 -1 -7883 7483 -1 -7484 7484 6 -7485 7484 -1 -7504 7484 -1 -7884 7484 -1 -7485 7485 6 -7486 7485 -1 -7505 7485 -1 -7885 7485 -1 -7486 7486 6 -7487 7486 -1 -7506 7486 -1 -7886 7486 -1 -7487 7487 6 -7488 7487 -1 -7507 7487 -1 -7887 7487 -1 -7488 7488 6 -7489 7488 -1 -7508 7488 -1 -7888 7488 -1 -7489 7489 6 -7490 7489 -1 -7509 7489 -1 -7889 7489 -1 -7490 7490 6 -7491 7490 -1 -7510 7490 -1 -7890 7490 -1 -7491 7491 6 -7492 7491 -1 -7511 7491 -1 -7891 7491 -1 -7492 7492 6 -7493 7492 -1 -7512 7492 -1 -7892 7492 -1 -7493 7493 6 -7494 7493 -1 -7513 7493 -1 -7893 7493 -1 -7494 7494 6 -7495 7494 -1 -7514 7494 -1 -7894 7494 -1 -7495 7495 6 -7496 7495 -1 -7515 7495 -1 -7895 7495 -1 -7496 7496 6 -7497 7496 -1 -7516 7496 -1 -7896 7496 -1 -7497 7497 6 -7498 7497 -1 -7517 7497 -1 -7897 7497 -1 -7498 7498 6 -7499 7498 -1 -7518 7498 -1 -7898 7498 -1 -7499 7499 6 -7500 7499 -1 -7519 7499 -1 -7899 7499 -1 -7500 7500 6 -7520 7500 -1 -7900 7500 -1 -7501 7501 6 -7502 7501 -1 -7521 7501 -1 -7901 7501 -1 -7502 7502 6 -7503 7502 -1 -7522 7502 -1 -7902 7502 -1 -7503 7503 6 -7504 7503 -1 -7523 7503 -1 -7903 7503 -1 -7504 7504 6 -7505 7504 -1 -7524 7504 -1 -7904 7504 -1 -7505 7505 6 -7506 7505 -1 -7525 7505 -1 -7905 7505 -1 -7506 7506 6 -7507 7506 -1 -7526 7506 -1 -7906 7506 -1 -7507 7507 6 -7508 7507 -1 -7527 7507 -1 -7907 7507 -1 -7508 7508 6 -7509 7508 -1 -7528 7508 -1 -7908 7508 -1 -7509 7509 6 -7510 7509 -1 -7529 7509 -1 -7909 7509 -1 -7510 7510 6 -7511 7510 -1 -7530 7510 -1 -7910 7510 -1 -7511 7511 6 -7512 7511 -1 -7531 7511 -1 -7911 7511 -1 -7512 7512 6 -7513 7512 -1 -7532 7512 -1 -7912 7512 -1 -7513 7513 6 -7514 7513 -1 -7533 7513 -1 -7913 7513 -1 -7514 7514 6 -7515 7514 -1 -7534 7514 -1 -7914 7514 -1 -7515 7515 6 -7516 7515 -1 -7535 7515 -1 -7915 7515 -1 -7516 7516 6 -7517 7516 -1 -7536 7516 -1 -7916 7516 -1 -7517 7517 6 -7518 7517 -1 -7537 7517 -1 -7917 7517 -1 -7518 7518 6 -7519 7518 -1 -7538 7518 -1 -7918 7518 -1 -7519 7519 6 -7520 7519 -1 -7539 7519 -1 -7919 7519 -1 -7520 7520 6 -7540 7520 -1 -7920 7520 -1 -7521 7521 6 -7522 7521 -1 -7541 7521 -1 -7921 7521 -1 -7522 7522 6 -7523 7522 -1 -7542 7522 -1 -7922 7522 -1 -7523 7523 6 -7524 7523 -1 -7543 7523 -1 -7923 7523 -1 -7524 7524 6 -7525 7524 -1 -7544 7524 -1 -7924 7524 -1 -7525 7525 6 -7526 7525 -1 -7545 7525 -1 -7925 7525 -1 -7526 7526 6 -7527 7526 -1 -7546 7526 -1 -7926 7526 -1 -7527 7527 6 -7528 7527 -1 -7547 7527 -1 -7927 7527 -1 -7528 7528 6 -7529 7528 -1 -7548 7528 -1 -7928 7528 -1 -7529 7529 6 -7530 7529 -1 -7549 7529 -1 -7929 7529 -1 -7530 7530 6 -7531 7530 -1 -7550 7530 -1 -7930 7530 -1 -7531 7531 6 -7532 7531 -1 -7551 7531 -1 -7931 7531 -1 -7532 7532 6 -7533 7532 -1 -7552 7532 -1 -7932 7532 -1 -7533 7533 6 -7534 7533 -1 -7553 7533 -1 -7933 7533 -1 -7534 7534 6 -7535 7534 -1 -7554 7534 -1 -7934 7534 -1 -7535 7535 6 -7536 7535 -1 -7555 7535 -1 -7935 7535 -1 -7536 7536 6 -7537 7536 -1 -7556 7536 -1 -7936 7536 -1 -7537 7537 6 -7538 7537 -1 -7557 7537 -1 -7937 7537 -1 -7538 7538 6 -7539 7538 -1 -7558 7538 -1 -7938 7538 -1 -7539 7539 6 -7540 7539 -1 -7559 7539 -1 -7939 7539 -1 -7540 7540 6 -7560 7540 -1 -7940 7540 -1 -7541 7541 6 -7542 7541 -1 -7561 7541 -1 -7941 7541 -1 -7542 7542 6 -7543 7542 -1 -7562 7542 -1 -7942 7542 -1 -7543 7543 6 -7544 7543 -1 -7563 7543 -1 -7943 7543 -1 -7544 7544 6 -7545 7544 -1 -7564 7544 -1 -7944 7544 -1 -7545 7545 6 -7546 7545 -1 -7565 7545 -1 -7945 7545 -1 -7546 7546 6 -7547 7546 -1 -7566 7546 -1 -7946 7546 -1 -7547 7547 6 -7548 7547 -1 -7567 7547 -1 -7947 7547 -1 -7548 7548 6 -7549 7548 -1 -7568 7548 -1 -7948 7548 -1 -7549 7549 6 -7550 7549 -1 -7569 7549 -1 -7949 7549 -1 -7550 7550 6 -7551 7550 -1 -7570 7550 -1 -7950 7550 -1 -7551 7551 6 -7552 7551 -1 -7571 7551 -1 -7951 7551 -1 -7552 7552 6 -7553 7552 -1 -7572 7552 -1 -7952 7552 -1 -7553 7553 6 -7554 7553 -1 -7573 7553 -1 -7953 7553 -1 -7554 7554 6 -7555 7554 -1 -7574 7554 -1 -7954 7554 -1 -7555 7555 6 -7556 7555 -1 -7575 7555 -1 -7955 7555 -1 -7556 7556 6 -7557 7556 -1 -7576 7556 -1 -7956 7556 -1 -7557 7557 6 -7558 7557 -1 -7577 7557 -1 -7957 7557 -1 -7558 7558 6 -7559 7558 -1 -7578 7558 -1 -7958 7558 -1 -7559 7559 6 -7560 7559 -1 -7579 7559 -1 -7959 7559 -1 -7560 7560 6 -7580 7560 -1 -7960 7560 -1 -7561 7561 6 -7562 7561 -1 -7581 7561 -1 -7961 7561 -1 -7562 7562 6 -7563 7562 -1 -7582 7562 -1 -7962 7562 -1 -7563 7563 6 -7564 7563 -1 -7583 7563 -1 -7963 7563 -1 -7564 7564 6 -7565 7564 -1 -7584 7564 -1 -7964 7564 -1 -7565 7565 6 -7566 7565 -1 -7585 7565 -1 -7965 7565 -1 -7566 7566 6 -7567 7566 -1 -7586 7566 -1 -7966 7566 -1 -7567 7567 6 -7568 7567 -1 -7587 7567 -1 -7967 7567 -1 -7568 7568 6 -7569 7568 -1 -7588 7568 -1 -7968 7568 -1 -7569 7569 6 -7570 7569 -1 -7589 7569 -1 -7969 7569 -1 -7570 7570 6 -7571 7570 -1 -7590 7570 -1 -7970 7570 -1 -7571 7571 6 -7572 7571 -1 -7591 7571 -1 -7971 7571 -1 -7572 7572 6 -7573 7572 -1 -7592 7572 -1 -7972 7572 -1 -7573 7573 6 -7574 7573 -1 -7593 7573 -1 -7973 7573 -1 -7574 7574 6 -7575 7574 -1 -7594 7574 -1 -7974 7574 -1 -7575 7575 6 -7576 7575 -1 -7595 7575 -1 -7975 7575 -1 -7576 7576 6 -7577 7576 -1 -7596 7576 -1 -7976 7576 -1 -7577 7577 6 -7578 7577 -1 -7597 7577 -1 -7977 7577 -1 -7578 7578 6 -7579 7578 -1 -7598 7578 -1 -7978 7578 -1 -7579 7579 6 -7580 7579 -1 -7599 7579 -1 -7979 7579 -1 -7580 7580 6 -7600 7580 -1 -7980 7580 -1 -7581 7581 6 -7582 7581 -1 -7981 7581 -1 -7582 7582 6 -7583 7582 -1 -7982 7582 -1 -7583 7583 6 -7584 7583 -1 -7983 7583 -1 -7584 7584 6 -7585 7584 -1 -7984 7584 -1 -7585 7585 6 -7586 7585 -1 -7985 7585 -1 -7586 7586 6 -7587 7586 -1 -7986 7586 -1 -7587 7587 6 -7588 7587 -1 -7987 7587 -1 -7588 7588 6 -7589 7588 -1 -7988 7588 -1 -7589 7589 6 -7590 7589 -1 -7989 7589 -1 -7590 7590 6 -7591 7590 -1 -7990 7590 -1 -7591 7591 6 -7592 7591 -1 -7991 7591 -1 -7592 7592 6 -7593 7592 -1 -7992 7592 -1 -7593 7593 6 -7594 7593 -1 -7993 7593 -1 -7594 7594 6 -7595 7594 -1 -7994 7594 -1 -7595 7595 6 -7596 7595 -1 -7995 7595 -1 -7596 7596 6 -7597 7596 -1 -7996 7596 -1 -7597 7597 6 -7598 7597 -1 -7997 7597 -1 -7598 7598 6 -7599 7598 -1 -7998 7598 -1 -7599 7599 6 -7600 7599 -1 -7999 7599 -1 -7600 7600 6 -8000 7600 -1 -7601 7601 6 -7602 7601 -1 -7621 7601 -1 -7602 7602 6 -7603 7602 -1 -7622 7602 -1 -7603 7603 6 -7604 7603 -1 -7623 7603 -1 -7604 7604 6 -7605 7604 -1 -7624 7604 -1 -7605 7605 6 -7606 7605 -1 -7625 7605 -1 -7606 7606 6 -7607 7606 -1 -7626 7606 -1 -7607 7607 6 -7608 7607 -1 -7627 7607 -1 -7608 7608 6 -7609 7608 -1 -7628 7608 -1 -7609 7609 6 -7610 7609 -1 -7629 7609 -1 -7610 7610 6 -7611 7610 -1 -7630 7610 -1 -7611 7611 6 -7612 7611 -1 -7631 7611 -1 -7612 7612 6 -7613 7612 -1 -7632 7612 -1 -7613 7613 6 -7614 7613 -1 -7633 7613 -1 -7614 7614 6 -7615 7614 -1 -7634 7614 -1 -7615 7615 6 -7616 7615 -1 -7635 7615 -1 -7616 7616 6 -7617 7616 -1 -7636 7616 -1 -7617 7617 6 -7618 7617 -1 -7637 7617 -1 -7618 7618 6 -7619 7618 -1 -7638 7618 -1 -7619 7619 6 -7620 7619 -1 -7639 7619 -1 -7620 7620 6 -7640 7620 -1 -7621 7621 6 -7622 7621 -1 -7641 7621 -1 -7622 7622 6 -7623 7622 -1 -7642 7622 -1 -7623 7623 6 -7624 7623 -1 -7643 7623 -1 -7624 7624 6 -7625 7624 -1 -7644 7624 -1 -7625 7625 6 -7626 7625 -1 -7645 7625 -1 -7626 7626 6 -7627 7626 -1 -7646 7626 -1 -7627 7627 6 -7628 7627 -1 -7647 7627 -1 -7628 7628 6 -7629 7628 -1 -7648 7628 -1 -7629 7629 6 -7630 7629 -1 -7649 7629 -1 -7630 7630 6 -7631 7630 -1 -7650 7630 -1 -7631 7631 6 -7632 7631 -1 -7651 7631 -1 -7632 7632 6 -7633 7632 -1 -7652 7632 -1 -7633 7633 6 -7634 7633 -1 -7653 7633 -1 -7634 7634 6 -7635 7634 -1 -7654 7634 -1 -7635 7635 6 -7636 7635 -1 -7655 7635 -1 -7636 7636 6 -7637 7636 -1 -7656 7636 -1 -7637 7637 6 -7638 7637 -1 -7657 7637 -1 -7638 7638 6 -7639 7638 -1 -7658 7638 -1 -7639 7639 6 -7640 7639 -1 -7659 7639 -1 -7640 7640 6 -7660 7640 -1 -7641 7641 6 -7642 7641 -1 -7661 7641 -1 -7642 7642 6 -7643 7642 -1 -7662 7642 -1 -7643 7643 6 -7644 7643 -1 -7663 7643 -1 -7644 7644 6 -7645 7644 -1 -7664 7644 -1 -7645 7645 6 -7646 7645 -1 -7665 7645 -1 -7646 7646 6 -7647 7646 -1 -7666 7646 -1 -7647 7647 6 -7648 7647 -1 -7667 7647 -1 -7648 7648 6 -7649 7648 -1 -7668 7648 -1 -7649 7649 6 -7650 7649 -1 -7669 7649 -1 -7650 7650 6 -7651 7650 -1 -7670 7650 -1 -7651 7651 6 -7652 7651 -1 -7671 7651 -1 -7652 7652 6 -7653 7652 -1 -7672 7652 -1 -7653 7653 6 -7654 7653 -1 -7673 7653 -1 -7654 7654 6 -7655 7654 -1 -7674 7654 -1 -7655 7655 6 -7656 7655 -1 -7675 7655 -1 -7656 7656 6 -7657 7656 -1 -7676 7656 -1 -7657 7657 6 -7658 7657 -1 -7677 7657 -1 -7658 7658 6 -7659 7658 -1 -7678 7658 -1 -7659 7659 6 -7660 7659 -1 -7679 7659 -1 -7660 7660 6 -7680 7660 -1 -7661 7661 6 -7662 7661 -1 -7681 7661 -1 -7662 7662 6 -7663 7662 -1 -7682 7662 -1 -7663 7663 6 -7664 7663 -1 -7683 7663 -1 -7664 7664 6 -7665 7664 -1 -7684 7664 -1 -7665 7665 6 -7666 7665 -1 -7685 7665 -1 -7666 7666 6 -7667 7666 -1 -7686 7666 -1 -7667 7667 6 -7668 7667 -1 -7687 7667 -1 -7668 7668 6 -7669 7668 -1 -7688 7668 -1 -7669 7669 6 -7670 7669 -1 -7689 7669 -1 -7670 7670 6 -7671 7670 -1 -7690 7670 -1 -7671 7671 6 -7672 7671 -1 -7691 7671 -1 -7672 7672 6 -7673 7672 -1 -7692 7672 -1 -7673 7673 6 -7674 7673 -1 -7693 7673 -1 -7674 7674 6 -7675 7674 -1 -7694 7674 -1 -7675 7675 6 -7676 7675 -1 -7695 7675 -1 -7676 7676 6 -7677 7676 -1 -7696 7676 -1 -7677 7677 6 -7678 7677 -1 -7697 7677 -1 -7678 7678 6 -7679 7678 -1 -7698 7678 -1 -7679 7679 6 -7680 7679 -1 -7699 7679 -1 -7680 7680 6 -7700 7680 -1 -7681 7681 6 -7682 7681 -1 -7701 7681 -1 -7682 7682 6 -7683 7682 -1 -7702 7682 -1 -7683 7683 6 -7684 7683 -1 -7703 7683 -1 -7684 7684 6 -7685 7684 -1 -7704 7684 -1 -7685 7685 6 -7686 7685 -1 -7705 7685 -1 -7686 7686 6 -7687 7686 -1 -7706 7686 -1 -7687 7687 6 -7688 7687 -1 -7707 7687 -1 -7688 7688 6 -7689 7688 -1 -7708 7688 -1 -7689 7689 6 -7690 7689 -1 -7709 7689 -1 -7690 7690 6 -7691 7690 -1 -7710 7690 -1 -7691 7691 6 -7692 7691 -1 -7711 7691 -1 -7692 7692 6 -7693 7692 -1 -7712 7692 -1 -7693 7693 6 -7694 7693 -1 -7713 7693 -1 -7694 7694 6 -7695 7694 -1 -7714 7694 -1 -7695 7695 6 -7696 7695 -1 -7715 7695 -1 -7696 7696 6 -7697 7696 -1 -7716 7696 -1 -7697 7697 6 -7698 7697 -1 -7717 7697 -1 -7698 7698 6 -7699 7698 -1 -7718 7698 -1 -7699 7699 6 -7700 7699 -1 -7719 7699 -1 -7700 7700 6 -7720 7700 -1 -7701 7701 6 -7702 7701 -1 -7721 7701 -1 -7702 7702 6 -7703 7702 -1 -7722 7702 -1 -7703 7703 6 -7704 7703 -1 -7723 7703 -1 -7704 7704 6 -7705 7704 -1 -7724 7704 -1 -7705 7705 6 -7706 7705 -1 -7725 7705 -1 -7706 7706 6 -7707 7706 -1 -7726 7706 -1 -7707 7707 6 -7708 7707 -1 -7727 7707 -1 -7708 7708 6 -7709 7708 -1 -7728 7708 -1 -7709 7709 6 -7710 7709 -1 -7729 7709 -1 -7710 7710 6 -7711 7710 -1 -7730 7710 -1 -7711 7711 6 -7712 7711 -1 -7731 7711 -1 -7712 7712 6 -7713 7712 -1 -7732 7712 -1 -7713 7713 6 -7714 7713 -1 -7733 7713 -1 -7714 7714 6 -7715 7714 -1 -7734 7714 -1 -7715 7715 6 -7716 7715 -1 -7735 7715 -1 -7716 7716 6 -7717 7716 -1 -7736 7716 -1 -7717 7717 6 -7718 7717 -1 -7737 7717 -1 -7718 7718 6 -7719 7718 -1 -7738 7718 -1 -7719 7719 6 -7720 7719 -1 -7739 7719 -1 -7720 7720 6 -7740 7720 -1 -7721 7721 6 -7722 7721 -1 -7741 7721 -1 -7722 7722 6 -7723 7722 -1 -7742 7722 -1 -7723 7723 6 -7724 7723 -1 -7743 7723 -1 -7724 7724 6 -7725 7724 -1 -7744 7724 -1 -7725 7725 6 -7726 7725 -1 -7745 7725 -1 -7726 7726 6 -7727 7726 -1 -7746 7726 -1 -7727 7727 6 -7728 7727 -1 -7747 7727 -1 -7728 7728 6 -7729 7728 -1 -7748 7728 -1 -7729 7729 6 -7730 7729 -1 -7749 7729 -1 -7730 7730 6 -7731 7730 -1 -7750 7730 -1 -7731 7731 6 -7732 7731 -1 -7751 7731 -1 -7732 7732 6 -7733 7732 -1 -7752 7732 -1 -7733 7733 6 -7734 7733 -1 -7753 7733 -1 -7734 7734 6 -7735 7734 -1 -7754 7734 -1 -7735 7735 6 -7736 7735 -1 -7755 7735 -1 -7736 7736 6 -7737 7736 -1 -7756 7736 -1 -7737 7737 6 -7738 7737 -1 -7757 7737 -1 -7738 7738 6 -7739 7738 -1 -7758 7738 -1 -7739 7739 6 -7740 7739 -1 -7759 7739 -1 -7740 7740 6 -7760 7740 -1 -7741 7741 6 -7742 7741 -1 -7761 7741 -1 -7742 7742 6 -7743 7742 -1 -7762 7742 -1 -7743 7743 6 -7744 7743 -1 -7763 7743 -1 -7744 7744 6 -7745 7744 -1 -7764 7744 -1 -7745 7745 6 -7746 7745 -1 -7765 7745 -1 -7746 7746 6 -7747 7746 -1 -7766 7746 -1 -7747 7747 6 -7748 7747 -1 -7767 7747 -1 -7748 7748 6 -7749 7748 -1 -7768 7748 -1 -7749 7749 6 -7750 7749 -1 -7769 7749 -1 -7750 7750 6 -7751 7750 -1 -7770 7750 -1 -7751 7751 6 -7752 7751 -1 -7771 7751 -1 -7752 7752 6 -7753 7752 -1 -7772 7752 -1 -7753 7753 6 -7754 7753 -1 -7773 7753 -1 -7754 7754 6 -7755 7754 -1 -7774 7754 -1 -7755 7755 6 -7756 7755 -1 -7775 7755 -1 -7756 7756 6 -7757 7756 -1 -7776 7756 -1 -7757 7757 6 -7758 7757 -1 -7777 7757 -1 -7758 7758 6 -7759 7758 -1 -7778 7758 -1 -7759 7759 6 -7760 7759 -1 -7779 7759 -1 -7760 7760 6 -7780 7760 -1 -7761 7761 6 -7762 7761 -1 -7781 7761 -1 -7762 7762 6 -7763 7762 -1 -7782 7762 -1 -7763 7763 6 -7764 7763 -1 -7783 7763 -1 -7764 7764 6 -7765 7764 -1 -7784 7764 -1 -7765 7765 6 -7766 7765 -1 -7785 7765 -1 -7766 7766 6 -7767 7766 -1 -7786 7766 -1 -7767 7767 6 -7768 7767 -1 -7787 7767 -1 -7768 7768 6 -7769 7768 -1 -7788 7768 -1 -7769 7769 6 -7770 7769 -1 -7789 7769 -1 -7770 7770 6 -7771 7770 -1 -7790 7770 -1 -7771 7771 6 -7772 7771 -1 -7791 7771 -1 -7772 7772 6 -7773 7772 -1 -7792 7772 -1 -7773 7773 6 -7774 7773 -1 -7793 7773 -1 -7774 7774 6 -7775 7774 -1 -7794 7774 -1 -7775 7775 6 -7776 7775 -1 -7795 7775 -1 -7776 7776 6 -7777 7776 -1 -7796 7776 -1 -7777 7777 6 -7778 7777 -1 -7797 7777 -1 -7778 7778 6 -7779 7778 -1 -7798 7778 -1 -7779 7779 6 -7780 7779 -1 -7799 7779 -1 -7780 7780 6 -7800 7780 -1 -7781 7781 6 -7782 7781 -1 -7801 7781 -1 -7782 7782 6 -7783 7782 -1 -7802 7782 -1 -7783 7783 6 -7784 7783 -1 -7803 7783 -1 -7784 7784 6 -7785 7784 -1 -7804 7784 -1 -7785 7785 6 -7786 7785 -1 -7805 7785 -1 -7786 7786 6 -7787 7786 -1 -7806 7786 -1 -7787 7787 6 -7788 7787 -1 -7807 7787 -1 -7788 7788 6 -7789 7788 -1 -7808 7788 -1 -7789 7789 6 -7790 7789 -1 -7809 7789 -1 -7790 7790 6 -7791 7790 -1 -7810 7790 -1 -7791 7791 6 -7792 7791 -1 -7811 7791 -1 -7792 7792 6 -7793 7792 -1 -7812 7792 -1 -7793 7793 6 -7794 7793 -1 -7813 7793 -1 -7794 7794 6 -7795 7794 -1 -7814 7794 -1 -7795 7795 6 -7796 7795 -1 -7815 7795 -1 -7796 7796 6 -7797 7796 -1 -7816 7796 -1 -7797 7797 6 -7798 7797 -1 -7817 7797 -1 -7798 7798 6 -7799 7798 -1 -7818 7798 -1 -7799 7799 6 -7800 7799 -1 -7819 7799 -1 -7800 7800 6 -7820 7800 -1 -7801 7801 6 -7802 7801 -1 -7821 7801 -1 -7802 7802 6 -7803 7802 -1 -7822 7802 -1 -7803 7803 6 -7804 7803 -1 -7823 7803 -1 -7804 7804 6 -7805 7804 -1 -7824 7804 -1 -7805 7805 6 -7806 7805 -1 -7825 7805 -1 -7806 7806 6 -7807 7806 -1 -7826 7806 -1 -7807 7807 6 -7808 7807 -1 -7827 7807 -1 -7808 7808 6 -7809 7808 -1 -7828 7808 -1 -7809 7809 6 -7810 7809 -1 -7829 7809 -1 -7810 7810 6 -7811 7810 -1 -7830 7810 -1 -7811 7811 6 -7812 7811 -1 -7831 7811 -1 -7812 7812 6 -7813 7812 -1 -7832 7812 -1 -7813 7813 6 -7814 7813 -1 -7833 7813 -1 -7814 7814 6 -7815 7814 -1 -7834 7814 -1 -7815 7815 6 -7816 7815 -1 -7835 7815 -1 -7816 7816 6 -7817 7816 -1 -7836 7816 -1 -7817 7817 6 -7818 7817 -1 -7837 7817 -1 -7818 7818 6 -7819 7818 -1 -7838 7818 -1 -7819 7819 6 -7820 7819 -1 -7839 7819 -1 -7820 7820 6 -7840 7820 -1 -7821 7821 6 -7822 7821 -1 -7841 7821 -1 -7822 7822 6 -7823 7822 -1 -7842 7822 -1 -7823 7823 6 -7824 7823 -1 -7843 7823 -1 -7824 7824 6 -7825 7824 -1 -7844 7824 -1 -7825 7825 6 -7826 7825 -1 -7845 7825 -1 -7826 7826 6 -7827 7826 -1 -7846 7826 -1 -7827 7827 6 -7828 7827 -1 -7847 7827 -1 -7828 7828 6 -7829 7828 -1 -7848 7828 -1 -7829 7829 6 -7830 7829 -1 -7849 7829 -1 -7830 7830 6 -7831 7830 -1 -7850 7830 -1 -7831 7831 6 -7832 7831 -1 -7851 7831 -1 -7832 7832 6 -7833 7832 -1 -7852 7832 -1 -7833 7833 6 -7834 7833 -1 -7853 7833 -1 -7834 7834 6 -7835 7834 -1 -7854 7834 -1 -7835 7835 6 -7836 7835 -1 -7855 7835 -1 -7836 7836 6 -7837 7836 -1 -7856 7836 -1 -7837 7837 6 -7838 7837 -1 -7857 7837 -1 -7838 7838 6 -7839 7838 -1 -7858 7838 -1 -7839 7839 6 -7840 7839 -1 -7859 7839 -1 -7840 7840 6 -7860 7840 -1 -7841 7841 6 -7842 7841 -1 -7861 7841 -1 -7842 7842 6 -7843 7842 -1 -7862 7842 -1 -7843 7843 6 -7844 7843 -1 -7863 7843 -1 -7844 7844 6 -7845 7844 -1 -7864 7844 -1 -7845 7845 6 -7846 7845 -1 -7865 7845 -1 -7846 7846 6 -7847 7846 -1 -7866 7846 -1 -7847 7847 6 -7848 7847 -1 -7867 7847 -1 -7848 7848 6 -7849 7848 -1 -7868 7848 -1 -7849 7849 6 -7850 7849 -1 -7869 7849 -1 -7850 7850 6 -7851 7850 -1 -7870 7850 -1 -7851 7851 6 -7852 7851 -1 -7871 7851 -1 -7852 7852 6 -7853 7852 -1 -7872 7852 -1 -7853 7853 6 -7854 7853 -1 -7873 7853 -1 -7854 7854 6 -7855 7854 -1 -7874 7854 -1 -7855 7855 6 -7856 7855 -1 -7875 7855 -1 -7856 7856 6 -7857 7856 -1 -7876 7856 -1 -7857 7857 6 -7858 7857 -1 -7877 7857 -1 -7858 7858 6 -7859 7858 -1 -7878 7858 -1 -7859 7859 6 -7860 7859 -1 -7879 7859 -1 -7860 7860 6 -7880 7860 -1 -7861 7861 6 -7862 7861 -1 -7881 7861 -1 -7862 7862 6 -7863 7862 -1 -7882 7862 -1 -7863 7863 6 -7864 7863 -1 -7883 7863 -1 -7864 7864 6 -7865 7864 -1 -7884 7864 -1 -7865 7865 6 -7866 7865 -1 -7885 7865 -1 -7866 7866 6 -7867 7866 -1 -7886 7866 -1 -7867 7867 6 -7868 7867 -1 -7887 7867 -1 -7868 7868 6 -7869 7868 -1 -7888 7868 -1 -7869 7869 6 -7870 7869 -1 -7889 7869 -1 -7870 7870 6 -7871 7870 -1 -7890 7870 -1 -7871 7871 6 -7872 7871 -1 -7891 7871 -1 -7872 7872 6 -7873 7872 -1 -7892 7872 -1 -7873 7873 6 -7874 7873 -1 -7893 7873 -1 -7874 7874 6 -7875 7874 -1 -7894 7874 -1 -7875 7875 6 -7876 7875 -1 -7895 7875 -1 -7876 7876 6 -7877 7876 -1 -7896 7876 -1 -7877 7877 6 -7878 7877 -1 -7897 7877 -1 -7878 7878 6 -7879 7878 -1 -7898 7878 -1 -7879 7879 6 -7880 7879 -1 -7899 7879 -1 -7880 7880 6 -7900 7880 -1 -7881 7881 6 -7882 7881 -1 -7901 7881 -1 -7882 7882 6 -7883 7882 -1 -7902 7882 -1 -7883 7883 6 -7884 7883 -1 -7903 7883 -1 -7884 7884 6 -7885 7884 -1 -7904 7884 -1 -7885 7885 6 -7886 7885 -1 -7905 7885 -1 -7886 7886 6 -7887 7886 -1 -7906 7886 -1 -7887 7887 6 -7888 7887 -1 -7907 7887 -1 -7888 7888 6 -7889 7888 -1 -7908 7888 -1 -7889 7889 6 -7890 7889 -1 -7909 7889 -1 -7890 7890 6 -7891 7890 -1 -7910 7890 -1 -7891 7891 6 -7892 7891 -1 -7911 7891 -1 -7892 7892 6 -7893 7892 -1 -7912 7892 -1 -7893 7893 6 -7894 7893 -1 -7913 7893 -1 -7894 7894 6 -7895 7894 -1 -7914 7894 -1 -7895 7895 6 -7896 7895 -1 -7915 7895 -1 -7896 7896 6 -7897 7896 -1 -7916 7896 -1 -7897 7897 6 -7898 7897 -1 -7917 7897 -1 -7898 7898 6 -7899 7898 -1 -7918 7898 -1 -7899 7899 6 -7900 7899 -1 -7919 7899 -1 -7900 7900 6 -7920 7900 -1 -7901 7901 6 -7902 7901 -1 -7921 7901 -1 -7902 7902 6 -7903 7902 -1 -7922 7902 -1 -7903 7903 6 -7904 7903 -1 -7923 7903 -1 -7904 7904 6 -7905 7904 -1 -7924 7904 -1 -7905 7905 6 -7906 7905 -1 -7925 7905 -1 -7906 7906 6 -7907 7906 -1 -7926 7906 -1 -7907 7907 6 -7908 7907 -1 -7927 7907 -1 -7908 7908 6 -7909 7908 -1 -7928 7908 -1 -7909 7909 6 -7910 7909 -1 -7929 7909 -1 -7910 7910 6 -7911 7910 -1 -7930 7910 -1 -7911 7911 6 -7912 7911 -1 -7931 7911 -1 -7912 7912 6 -7913 7912 -1 -7932 7912 -1 -7913 7913 6 -7914 7913 -1 -7933 7913 -1 -7914 7914 6 -7915 7914 -1 -7934 7914 -1 -7915 7915 6 -7916 7915 -1 -7935 7915 -1 -7916 7916 6 -7917 7916 -1 -7936 7916 -1 -7917 7917 6 -7918 7917 -1 -7937 7917 -1 -7918 7918 6 -7919 7918 -1 -7938 7918 -1 -7919 7919 6 -7920 7919 -1 -7939 7919 -1 -7920 7920 6 -7940 7920 -1 -7921 7921 6 -7922 7921 -1 -7941 7921 -1 -7922 7922 6 -7923 7922 -1 -7942 7922 -1 -7923 7923 6 -7924 7923 -1 -7943 7923 -1 -7924 7924 6 -7925 7924 -1 -7944 7924 -1 -7925 7925 6 -7926 7925 -1 -7945 7925 -1 -7926 7926 6 -7927 7926 -1 -7946 7926 -1 -7927 7927 6 -7928 7927 -1 -7947 7927 -1 -7928 7928 6 -7929 7928 -1 -7948 7928 -1 -7929 7929 6 -7930 7929 -1 -7949 7929 -1 -7930 7930 6 -7931 7930 -1 -7950 7930 -1 -7931 7931 6 -7932 7931 -1 -7951 7931 -1 -7932 7932 6 -7933 7932 -1 -7952 7932 -1 -7933 7933 6 -7934 7933 -1 -7953 7933 -1 -7934 7934 6 -7935 7934 -1 -7954 7934 -1 -7935 7935 6 -7936 7935 -1 -7955 7935 -1 -7936 7936 6 -7937 7936 -1 -7956 7936 -1 -7937 7937 6 -7938 7937 -1 -7957 7937 -1 -7938 7938 6 -7939 7938 -1 -7958 7938 -1 -7939 7939 6 -7940 7939 -1 -7959 7939 -1 -7940 7940 6 -7960 7940 -1 -7941 7941 6 -7942 7941 -1 -7961 7941 -1 -7942 7942 6 -7943 7942 -1 -7962 7942 -1 -7943 7943 6 -7944 7943 -1 -7963 7943 -1 -7944 7944 6 -7945 7944 -1 -7964 7944 -1 -7945 7945 6 -7946 7945 -1 -7965 7945 -1 -7946 7946 6 -7947 7946 -1 -7966 7946 -1 -7947 7947 6 -7948 7947 -1 -7967 7947 -1 -7948 7948 6 -7949 7948 -1 -7968 7948 -1 -7949 7949 6 -7950 7949 -1 -7969 7949 -1 -7950 7950 6 -7951 7950 -1 -7970 7950 -1 -7951 7951 6 -7952 7951 -1 -7971 7951 -1 -7952 7952 6 -7953 7952 -1 -7972 7952 -1 -7953 7953 6 -7954 7953 -1 -7973 7953 -1 -7954 7954 6 -7955 7954 -1 -7974 7954 -1 -7955 7955 6 -7956 7955 -1 -7975 7955 -1 -7956 7956 6 -7957 7956 -1 -7976 7956 -1 -7957 7957 6 -7958 7957 -1 -7977 7957 -1 -7958 7958 6 -7959 7958 -1 -7978 7958 -1 -7959 7959 6 -7960 7959 -1 -7979 7959 -1 -7960 7960 6 -7980 7960 -1 -7961 7961 6 -7962 7961 -1 -7981 7961 -1 -7962 7962 6 -7963 7962 -1 -7982 7962 -1 -7963 7963 6 -7964 7963 -1 -7983 7963 -1 -7964 7964 6 -7965 7964 -1 -7984 7964 -1 -7965 7965 6 -7966 7965 -1 -7985 7965 -1 -7966 7966 6 -7967 7966 -1 -7986 7966 -1 -7967 7967 6 -7968 7967 -1 -7987 7967 -1 -7968 7968 6 -7969 7968 -1 -7988 7968 -1 -7969 7969 6 -7970 7969 -1 -7989 7969 -1 -7970 7970 6 -7971 7970 -1 -7990 7970 -1 -7971 7971 6 -7972 7971 -1 -7991 7971 -1 -7972 7972 6 -7973 7972 -1 -7992 7972 -1 -7973 7973 6 -7974 7973 -1 -7993 7973 -1 -7974 7974 6 -7975 7974 -1 -7994 7974 -1 -7975 7975 6 -7976 7975 -1 -7995 7975 -1 -7976 7976 6 -7977 7976 -1 -7996 7976 -1 -7977 7977 6 -7978 7977 -1 -7997 7977 -1 -7978 7978 6 -7979 7978 -1 -7998 7978 -1 -7979 7979 6 -7980 7979 -1 -7999 7979 -1 -7980 7980 6 -8000 7980 -1 -7981 7981 6 -7982 7981 -1 -7982 7982 6 -7983 7982 -1 -7983 7983 6 -7984 7983 -1 -7984 7984 6 -7985 7984 -1 -7985 7985 6 -7986 7985 -1 -7986 7986 6 -7987 7986 -1 -7987 7987 6 -7988 7987 -1 -7988 7988 6 -7989 7988 -1 -7989 7989 6 -7990 7989 -1 -7990 7990 6 -7991 7990 -1 -7991 7991 6 -7992 7991 -1 -7992 7992 6 -7993 7992 -1 -7993 7993 6 -7994 7993 -1 -7994 7994 6 -7995 7994 -1 -7995 7995 6 -7996 7995 -1 -7996 7996 6 -7997 7996 -1 -7997 7997 6 -7998 7997 -1 -7998 7998 6 -7999 7998 -1 -7999 7999 6 -8000 7999 -1 -8000 8000 6 diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/mmio.c b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/mmio.c deleted file mode 100644 index 7ecf9c2c..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/mmio.c +++ /dev/null @@ -1,477 +0,0 @@ -/* - * Matrix Market I/O library for ANSI C - * - * See http://math.nist.gov/MatrixMarket for details. - * - * - */ - -/* avoid Windows warnings (for example: strcpy, fscanf, etc.) */ -#if defined(_WIN32) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "mmio.h" - -#include -#include -#include -#include - -int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_) -{ - FILE *f; - MM_typecode matcode; - int M, N, nz; - int i; - double *val; - int *I, *J; - - if ((f = fopen(fname, "r")) == NULL) - return -1; - - - if (mm_read_banner(f, &matcode) != 0) { - printf("mm_read_unsymetric: Could not process Matrix Market banner "); - printf(" in file [%s]\n", fname); - return -1; - } - - - if (!(mm_is_real(matcode) && mm_is_matrix(matcode) && mm_is_sparse(matcode))) { - fprintf(stderr, "Sorry, this application does not support "); - fprintf(stderr, "Market Market type: [%s]\n", mm_typecode_to_str(matcode)); - return -1; - } - - /* find out size of sparse matrix: M, N, nz .... */ - - if (mm_read_mtx_crd_size(f, &M, &N, &nz) != 0) { - fprintf(stderr, "read_unsymmetric_sparse(): could not parse matrix size.\n"); - return -1; - } - - *M_ = M; - *N_ = N; - *nz_ = nz; - - /* reserve memory for matrices */ - - I = (int *)malloc(nz * sizeof(int)); - J = (int *)malloc(nz * sizeof(int)); - val = (double *)malloc(nz * sizeof(double)); - - *val_ = val; - *I_ = I; - *J_ = J; - - /* NOTE: when reading in doubles, ANSI C requires the use of the "l" */ - /* specifier as in "%lg", "%lf", "%le", otherwise errors will occur */ - /* (ANSI C X3.159-1989, Sec. 4.9.6.2, p. 136 lines 13-15) */ - - for (i = 0; i < nz; i++) { - if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3) { - return -1; - } - I[i]--; /* adjust from 1-based to 0-based */ - J[i]--; - } - fclose(f); - - return 0; -} - -int mm_is_valid(MM_typecode matcode) -{ - if (!mm_is_matrix(matcode)) - return 0; - if (mm_is_dense(matcode) && mm_is_pattern(matcode)) - return 0; - if (mm_is_real(matcode) && mm_is_hermitian(matcode)) - return 0; - if (mm_is_pattern(matcode) && (mm_is_hermitian(matcode) || mm_is_skew(matcode))) - return 0; - return 1; -} - -int mm_read_banner(FILE *f, MM_typecode *matcode) -{ - char line[MM_MAX_LINE_LENGTH]; - char banner[MM_MAX_TOKEN_LENGTH]; - char mtx[MM_MAX_TOKEN_LENGTH]; - char crd[MM_MAX_TOKEN_LENGTH]; - char data_type[MM_MAX_TOKEN_LENGTH]; - char storage_scheme[MM_MAX_TOKEN_LENGTH]; - char *p; - - - mm_clear_typecode(matcode); - - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - - if (sscanf(line, "%s %s %s %s %s", banner, mtx, crd, data_type, storage_scheme) != 5) - return MM_PREMATURE_EOF; - - for (p = mtx; *p != '\0'; *p = tolower(*p), p++) - ; /* convert to lower case */ - for (p = crd; *p != '\0'; *p = tolower(*p), p++) - ; - for (p = data_type; *p != '\0'; *p = tolower(*p), p++) - ; - for (p = storage_scheme; *p != '\0'; *p = tolower(*p), p++) - ; - - /* check for banner */ - if (strncmp(banner, MatrixMarketBanner, strlen(MatrixMarketBanner)) != 0) - return MM_NO_HEADER; - - /* first field should be "mtx" */ - if (strcmp(mtx, MM_MTX_STR) != 0) - return MM_UNSUPPORTED_TYPE; - mm_set_matrix(matcode); - - - /* second field describes whether this is a sparse matrix (in coordinate - storage) or a dense array */ - - - if (strcmp(crd, MM_SPARSE_STR) == 0) - mm_set_sparse(matcode); - else if (strcmp(crd, MM_DENSE_STR) == 0) - mm_set_dense(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - /* third field */ - - if (strcmp(data_type, MM_REAL_STR) == 0) - mm_set_real(matcode); - else if (strcmp(data_type, MM_COMPLEX_STR) == 0) - mm_set_complex(matcode); - else if (strcmp(data_type, MM_PATTERN_STR) == 0) - mm_set_pattern(matcode); - else if (strcmp(data_type, MM_INT_STR) == 0) - mm_set_integer(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - /* fourth field */ - - if (strcmp(storage_scheme, MM_GENERAL_STR) == 0) - mm_set_general(matcode); - else if (strcmp(storage_scheme, MM_SYMM_STR) == 0) - mm_set_symmetric(matcode); - else if (strcmp(storage_scheme, MM_HERM_STR) == 0) - mm_set_hermitian(matcode); - else if (strcmp(storage_scheme, MM_SKEW_STR) == 0) - mm_set_skew(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - return 0; -} - -int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz) -{ - if (fprintf(f, "%d %d %d\n", M, N, nz) != 3) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - -int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz) -{ - char line[MM_MAX_LINE_LENGTH]; - int num_items_read; - - /* set return null parameter values, in case we exit with errors */ - *M = *N = *nz = 0; - - /* now continue scanning until you reach the end-of-comments */ - do { - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - } while (line[0] == '%'); - - /* line[] is either blank or has M,N, nz */ - if (sscanf(line, "%d %d %d", M, N, nz) == 3) - return 0; - - else - do { - num_items_read = fscanf(f, "%d %d %d", M, N, nz); - if (num_items_read == EOF) - return MM_PREMATURE_EOF; - } while (num_items_read != 3); - - return 0; -} - - -int mm_read_mtx_array_size(FILE *f, int *M, int *N) -{ - char line[MM_MAX_LINE_LENGTH]; - int num_items_read; - /* set return null parameter values, in case we exit with errors */ - *M = *N = 0; - - /* now continue scanning until you reach the end-of-comments */ - do { - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - } while (line[0] == '%'); - - /* line[] is either blank or has M,N, nz */ - if (sscanf(line, "%d %d", M, N) == 2) - return 0; - - else /* we have a blank line */ - do { - num_items_read = fscanf(f, "%d %d", M, N); - if (num_items_read == EOF) - return MM_PREMATURE_EOF; - } while (num_items_read != 2); - - return 0; -} - -int mm_write_mtx_array_size(FILE *f, int M, int N) -{ - if (fprintf(f, "%d %d\n", M, N) != 2) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - - -/*-------------------------------------------------------------------------*/ - -/******************************************************************/ -/* use when I[], J[], and val[]J, and val[] are already allocated */ -/******************************************************************/ - -int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode) -{ - int i; - if (mm_is_complex(matcode)) { - for (i = 0; i < nz; i++) - if (fscanf(f, "%d %d %lg %lg", &I[i], &J[i], &val[2 * i], &val[2 * i + 1]) != 4) - return MM_PREMATURE_EOF; - } - else if (mm_is_real(matcode) || mm_is_integer(matcode)) { - for (i = 0; i < nz; i++) { - if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3) - return MM_PREMATURE_EOF; - } - } - - else if (mm_is_pattern(matcode)) { - for (i = 0; i < nz; i++) - if (fscanf(f, "%d %d", &I[i], &J[i]) != 2) - return MM_PREMATURE_EOF; - } - else - return MM_UNSUPPORTED_TYPE; - - return 0; -} - -int mm_read_mtx_crd_entry(FILE *f, int *I, int *J, double *real, double *imag, MM_typecode matcode) -{ - if (mm_is_complex(matcode)) { - if (fscanf(f, "%d %d %lg %lg", I, J, real, imag) != 4) - return MM_PREMATURE_EOF; - } - else if (mm_is_real(matcode) || mm_is_integer(matcode)) { - if (fscanf(f, "%d %d %lg\n", I, J, real) != 3) - return MM_PREMATURE_EOF; - } - - else if (mm_is_pattern(matcode)) { - if (fscanf(f, "%d %d", I, J) != 2) - return MM_PREMATURE_EOF; - } - else - return MM_UNSUPPORTED_TYPE; - - return 0; -} - - -/************************************************************************ - mm_read_mtx_crd() fills M, N, nz, array of values, and return - type code, e.g. 'MCRS' - - if matrix is complex, values[] is of size 2*nz, - (nz pairs of real/imaginary values) -************************************************************************/ - -int mm_read_mtx_crd(char *fname, int *M, int *N, int *nz, int **I, int **J, double **val, MM_typecode *matcode) -{ - int ret_code; - FILE *f; - - if (strcmp(fname, "stdin") == 0) - f = stdin; - else if ((f = fopen(fname, "r")) == NULL) - return MM_COULD_NOT_READ_FILE; - - - if ((ret_code = mm_read_banner(f, matcode)) != 0) - return ret_code; - - if (!(mm_is_valid(*matcode) && mm_is_sparse(*matcode) && mm_is_matrix(*matcode))) - return MM_UNSUPPORTED_TYPE; - - if ((ret_code = mm_read_mtx_crd_size(f, M, N, nz)) != 0) - return ret_code; - - - *I = (int *)malloc(*nz * sizeof(int)); - *J = (int *)malloc(*nz * sizeof(int)); - *val = NULL; - - if (mm_is_complex(*matcode)) { - *val = (double *)malloc(*nz * 2 * sizeof(double)); - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - else if (mm_is_real(*matcode) || mm_is_integer(*matcode)) { - *val = (double *)malloc(*nz * sizeof(double)); - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - - else if (mm_is_pattern(*matcode)) { - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - - if (f != stdin) - fclose(f); - return 0; -} - -int mm_write_banner(FILE *f, MM_typecode matcode) -{ - char *str = mm_typecode_to_str(matcode); - int ret_code; - - ret_code = fprintf(f, "%s %s\n", MatrixMarketBanner, str); - free(str); - if (ret_code != 2) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - -int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode) -{ - FILE *f; - int i; - - if (strcmp(fname, "stdout") == 0) - f = stdout; - else if ((f = fopen(fname, "w")) == NULL) - return MM_COULD_NOT_WRITE_FILE; - - /* print banner followed by typecode */ - fprintf(f, "%s ", MatrixMarketBanner); - fprintf(f, "%s\n", mm_typecode_to_str(matcode)); - - /* print matrix sizes and nonzeros */ - fprintf(f, "%d %d %d\n", M, N, nz); - - /* print values */ - if (mm_is_pattern(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d\n", I[i], J[i]); - else if (mm_is_integer(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %d\n", I[i], J[i], (int)val[i]); - else if (mm_is_real(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %20.16g\n", I[i], J[i], val[i]); - else if (mm_is_complex(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %20.16g %20.16g\n", I[i], J[i], val[2 * i], val[2 * i + 1]); - else { - if (f != stdout) - fclose(f); - return MM_UNSUPPORTED_TYPE; - } - - if (f != stdout) - fclose(f); - - return 0; -} - -/** - * Create a new copy of a string s. mm_strdup() is a common routine, but - * not part of ANSI C, so it is included here. Used by mm_typecode_to_str(). - * - */ -static char *mm_strdup(const char *s) -{ - size_t len = strlen(s); - char *s2 = (char *)malloc((len + 1) * sizeof(char)); - return strcpy(s2, s); -} - -char *mm_typecode_to_str(MM_typecode matcode) -{ - char buffer[MM_MAX_LINE_LENGTH]; - char *types[4]; - // char *mm_strdup(const char *); - // int error =0; - - /* check for MTX type */ - if (mm_is_matrix(matcode)) - types[0] = MM_MTX_STR; - else - return NULL; // error=1; - - /* check for CRD or ARR matrix */ - if (mm_is_sparse(matcode)) - types[1] = MM_SPARSE_STR; - else if (mm_is_dense(matcode)) - types[1] = MM_DENSE_STR; - else - return NULL; - - /* check for element data type */ - if (mm_is_real(matcode)) - types[2] = MM_REAL_STR; - else if (mm_is_complex(matcode)) - types[2] = MM_COMPLEX_STR; - else if (mm_is_pattern(matcode)) - types[2] = MM_PATTERN_STR; - else if (mm_is_integer(matcode)) - types[2] = MM_INT_STR; - else - return NULL; - - - /* check for symmetry type */ - if (mm_is_general(matcode)) - types[3] = MM_GENERAL_STR; - else if (mm_is_symmetric(matcode)) - types[3] = MM_SYMM_STR; - else if (mm_is_hermitian(matcode)) - types[3] = MM_HERM_STR; - else if (mm_is_skew(matcode)) - types[3] = MM_SKEW_STR; - else - return NULL; - - sprintf(buffer, "%s %s %s %s", types[0], types[1], types[2], types[3]); - return mm_strdup(buffer); -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/mmio.h b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/mmio.h deleted file mode 100644 index a05f6063..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/mmio.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Matrix Market I/O library for ANSI C - * - * See http://math.nist.gov/MatrixMarket for details. - * - * - */ - -#ifndef MM_IO_H -#define MM_IO_H - -#include - -#if defined(__cplusplus) -extern "C" -{ -#endif /* __cplusplus */ - -#define MM_MAX_LINE_LENGTH 1025 -#define MatrixMarketBanner "%%MatrixMarket" -#define MM_MAX_TOKEN_LENGTH 64 - - typedef char MM_typecode[4]; - - char *mm_typecode_to_str(MM_typecode matcode); - - int mm_read_banner(FILE *f, MM_typecode *matcode); - int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz); - int mm_read_mtx_array_size(FILE *f, int *M, int *N); - - int mm_write_banner(FILE *f, MM_typecode matcode); - int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz); - int mm_write_mtx_array_size(FILE *f, int M, int N); - - - /********************* MM_typecode query fucntions ***************************/ - -#define mm_is_matrix(typecode) ((typecode)[0] == 'M') - -#define mm_is_sparse(typecode) ((typecode)[1] == 'C') -#define mm_is_coordinate(typecode) ((typecode)[1] == 'C') -#define mm_is_dense(typecode) ((typecode)[1] == 'A') -#define mm_is_array(typecode) ((typecode)[1] == 'A') - -#define mm_is_complex(typecode) ((typecode)[2] == 'C') -#define mm_is_real(typecode) ((typecode)[2] == 'R') -#define mm_is_pattern(typecode) ((typecode)[2] == 'P') -#define mm_is_integer(typecode) ((typecode)[2] == 'I') - -#define mm_is_symmetric(typecode) ((typecode)[3] == 'S') -#define mm_is_general(typecode) ((typecode)[3] == 'G') -#define mm_is_skew(typecode) ((typecode)[3] == 'K') -#define mm_is_hermitian(typecode) ((typecode)[3] == 'H') - - int mm_is_valid(MM_typecode matcode); /* too complex for a macro */ - - - /********************* MM_typecode modify fucntions ***************************/ - -#define mm_set_matrix(typecode) ((*typecode)[0] = 'M') -#define mm_set_coordinate(typecode) ((*typecode)[1] = 'C') -#define mm_set_array(typecode) ((*typecode)[1] = 'A') -#define mm_set_dense(typecode) mm_set_array(typecode) -#define mm_set_sparse(typecode) mm_set_coordinate(typecode) - -#define mm_set_complex(typecode) ((*typecode)[2] = 'C') -#define mm_set_real(typecode) ((*typecode)[2] = 'R') -#define mm_set_pattern(typecode) ((*typecode)[2] = 'P') -#define mm_set_integer(typecode) ((*typecode)[2] = 'I') - - -#define mm_set_symmetric(typecode) ((*typecode)[3] = 'S') -#define mm_set_general(typecode) ((*typecode)[3] = 'G') -#define mm_set_skew(typecode) ((*typecode)[3] = 'K') -#define mm_set_hermitian(typecode) ((*typecode)[3] = 'H') - -#define mm_clear_typecode(typecode) ((*typecode)[0] = (*typecode)[1] = (*typecode)[2] = ' ', (*typecode)[3] = 'G') - -#define mm_initialize_typecode(typecode) mm_clear_typecode(typecode) - - - /********************* Matrix Market error codes ***************************/ - - -#define MM_COULD_NOT_READ_FILE 11 -#define MM_PREMATURE_EOF 12 -#define MM_NOT_MTX 13 -#define MM_NO_HEADER 14 -#define MM_UNSUPPORTED_TYPE 15 -#define MM_LINE_TOO_LONG 16 -#define MM_COULD_NOT_WRITE_FILE 17 - - - /******************** Matrix Market internal definitions ******************** - - MM_matrix_typecode: 4-character sequence - - ojbect sparse/ data storage - dense type scheme - - string position: [0] [1] [2] [3] - - Matrix typecode: M(atrix) C(oord) R(eal) G(eneral) - A(array) C(omplex) H(ermitian) - P(attern) S(ymmetric) - I(nteger) K(kew) - - ***********************************************************************/ - -#define MM_MTX_STR "matrix" -#define MM_ARRAY_STR "array" -#define MM_DENSE_STR "array" -#define MM_COORDINATE_STR "coordinate" -#define MM_SPARSE_STR "coordinate" -#define MM_COMPLEX_STR "complex" -#define MM_REAL_STR "real" -#define MM_INT_STR "integer" -#define MM_GENERAL_STR "general" -#define MM_SYMM_STR "symmetric" -#define MM_HERM_STR "hermitian" -#define MM_SKEW_STR "skew-symmetric" -#define MM_PATTERN_STR "pattern" - - - /* high level routines */ - int mm_read_mtx_crd(char *fname, int *M, int *N, int *nz, int **I, int **J, double **val, MM_typecode *matcode); - - int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode); - int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode); - int mm_read_mtx_crd_entry(FILE *f, int *I, int *J, double *real, double *img, MM_typecode matcode); - - int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_); - -#if defined(__cplusplus) -} -#endif /* __cplusplus */ - -#endif diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/mmio_wrapper.cpp b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/mmio_wrapper.cpp deleted file mode 100644 index f6f6c8e4..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelCholesky/mmio_wrapper.cpp +++ /dev/null @@ -1,473 +0,0 @@ - -#include -#include -#include -#include - -#include "mmio.h" - -/* avoid Windows warnings (for example: strcpy, fscanf, etc.) */ -#if defined(_WIN32) -#define _CRT_SECURE_NO_WARNINGS -#endif - -/* various __inline__ __device__ function to initialize a T_ELEM */ -template __inline__ T_ELEM cuGet(int); -template <> __inline__ float cuGet(int x) { return float(x); } - -template <> __inline__ double cuGet(int x) { return double(x); } - -template <> __inline__ cuComplex cuGet(int x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(int x) { return (make_cuDoubleComplex(double(x), 0.0)); } - - -template __inline__ T_ELEM cuGet(int, int); -template <> __inline__ float cuGet(int x, int y) { return float(x); } - -template <> __inline__ double cuGet(int x, int y) { return double(x); } - -template <> __inline__ cuComplex cuGet(int x, int y) { return make_cuComplex(float(x), float(y)); } - -template <> __inline__ cuDoubleComplex cuGet(int x, int y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - - -template __inline__ T_ELEM cuGet(float); -template <> __inline__ float cuGet(float x) { return float(x); } - -template <> __inline__ double cuGet(float x) { return double(x); } - -template <> __inline__ cuComplex cuGet(float x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(float x) -{ - return (make_cuDoubleComplex(double(x), 0.0)); -} - - -template __inline__ T_ELEM cuGet(float, float); -template <> __inline__ float cuGet(float x, float y) { return float(x); } - -template <> __inline__ double cuGet(float x, float y) { return double(x); } - -template <> __inline__ cuComplex cuGet(float x, float y) { return (make_cuComplex(float(x), float(y))); } - -template <> __inline__ cuDoubleComplex cuGet(float x, float y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - - -template __inline__ T_ELEM cuGet(double); -template <> __inline__ float cuGet(double x) { return float(x); } - -template <> __inline__ double cuGet(double x) { return double(x); } - -template <> __inline__ cuComplex cuGet(double x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(double x) -{ - return (make_cuDoubleComplex(double(x), 0.0)); -} - - -template __inline__ T_ELEM cuGet(double, double); -template <> __inline__ float cuGet(double x, double y) { return float(x); } - -template <> __inline__ double cuGet(double x, double y) { return double(x); } - -template <> __inline__ cuComplex cuGet(double x, double y) { return (make_cuComplex(float(x), float(y))); } - -template <> __inline__ cuDoubleComplex cuGet(double x, double y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - - -static void compress_index(const int *Ind, int nnz, int m, int *Ptr, int base) -{ - int i; - - /* initialize everything to zero */ - for (i = 0; i < m + 1; i++) { - Ptr[i] = 0; - } - /* count elements in every row */ - Ptr[0] = base; - for (i = 0; i < nnz; i++) { - Ptr[Ind[i] + (1 - base)]++; - } - /* add all the values */ - for (i = 0; i < m; i++) { - Ptr[i + 1] += Ptr[i]; - } -} - - -struct cooFormat -{ - int i; - int j; - int p; // permutation -}; - - -int cmp_cooFormat_csr(struct cooFormat *s, struct cooFormat *t) -{ - if (s->i < t->i) { - return -1; - } - else if (s->i > t->i) { - return 1; - } - else { - return s->j - t->j; - } -} - -int cmp_cooFormat_csc(struct cooFormat *s, struct cooFormat *t) -{ - if (s->j < t->j) { - return -1; - } - else if (s->j > t->j) { - return 1; - } - else { - return s->i - t->i; - } -} - -typedef int (*FUNPTR)(const void *, const void *); -typedef int (*FUNPTR2)(struct cooFormat *s, struct cooFormat *t); - -static FUNPTR2 fptr_array[2] = { - cmp_cooFormat_csr, - cmp_cooFormat_csc, -}; - - -static int verify_pattern(int m, int nnz, int *csrRowPtr, int *csrColInd) -{ - int i, col, start, end, base_index; - int error_found = 0; - - if (nnz != (csrRowPtr[m] - csrRowPtr[0])) { - fprintf(stderr, - "Error (nnz check failed): (csrRowPtr[%d]=%d - csrRowPtr[%d]=%d) != (nnz=%d)\n", - 0, - csrRowPtr[0], - m, - csrRowPtr[m], - nnz); - error_found = 1; - } - - base_index = csrRowPtr[0]; - if ((0 != base_index) && (1 != base_index)) { - fprintf(stderr, "Error (base index check failed): base index = %d\n", base_index); - error_found = 1; - } - - for (i = 0; (!error_found) && (i < m); i++) { - start = csrRowPtr[i] - base_index; - end = csrRowPtr[i + 1] - base_index; - if (start > end) { - fprintf(stderr, - "Error (corrupted row): csrRowPtr[%d] (=%d) > csrRowPtr[%d] (=%d)\n", - i, - start + base_index, - i + 1, - end + base_index); - error_found = 1; - } - for (col = start; col < end; col++) { - if (csrColInd[col] < base_index) { - fprintf(stderr, "Error (column vs. base index check failed): csrColInd[%d] < %d\n", col, base_index); - error_found = 1; - } - if ((col < (end - 1)) && (csrColInd[col] >= csrColInd[col + 1])) { - fprintf( - stderr, - "Error (sorting of the column indecis check failed): (csrColInd[%d]=%d) >= (csrColInd[%d]=%d)\n", - col, - csrColInd[col], - col + 1, - csrColInd[col + 1]); - error_found = 1; - } - } - } - return error_found; -} - - -template -int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - T_ELEM **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix) -{ - MM_typecode matcode; - double *tempVal; - int *tempRowInd, *tempColInd; - double *tval; - int *trow, *tcol; - int *csrRowPtr, *cscColPtr; - int i, j, error, base, count; - struct cooFormat *work; - - /* read the matrix */ - error = mm_read_mtx_crd(filename, m, n, nnz, &trow, &tcol, &tval, &matcode); - if (error) { - fprintf(stderr, "!!!! can not open file: '%s'\n", filename); - return 1; - } - - /* start error checking */ - if (mm_is_complex(matcode) && ((elem_type != 'z') && (elem_type != 'c'))) { - fprintf(stderr, "!!!! complex matrix requires type 'z' or 'c'\n"); - return 1; - } - - if (mm_is_dense(matcode) || mm_is_array(matcode) || mm_is_pattern(matcode) /*|| mm_is_integer(matcode)*/) { - fprintf(stderr, "!!!! dense, array, pattern and integer matrices are not supported\n"); - return 1; - } - - /* if necessary symmetrize the pattern (transform from triangular to full) */ - if ((extendSymMatrix) && (mm_is_symmetric(matcode) || mm_is_hermitian(matcode) || mm_is_skew(matcode))) { - // count number of non-diagonal elements - count = 0; - for (i = 0; i < (*nnz); i++) { - if (trow[i] != tcol[i]) { - count++; - } - } - // allocate space for the symmetrized matrix - tempRowInd = (int *)malloc((*nnz + count) * sizeof(int)); - tempColInd = (int *)malloc((*nnz + count) * sizeof(int)); - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - tempVal = (double *)malloc((*nnz + count) * sizeof(double)); - } - else { - tempVal = (double *)malloc(2 * (*nnz + count) * sizeof(double)); - } - // copy the elements regular and transposed locations - for (j = 0, i = 0; i < (*nnz); i++) { - tempRowInd[j] = trow[i]; - tempColInd[j] = tcol[i]; - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - tempVal[j] = tval[i]; - } - else { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = tval[2 * i + 1]; - } - j++; - if (trow[i] != tcol[i]) { - tempRowInd[j] = tcol[i]; - tempColInd[j] = trow[i]; - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - if (mm_is_skew(matcode)) { - tempVal[j] = -tval[i]; - } - else { - tempVal[j] = tval[i]; - } - } - else { - if (mm_is_hermitian(matcode)) { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = -tval[2 * i + 1]; - } - else { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = tval[2 * i + 1]; - } - } - j++; - } - } - (*nnz) += count; - // free temporary storage - free(trow); - free(tcol); - free(tval); - } - else { - tempRowInd = trow; - tempColInd = tcol; - tempVal = tval; - } - // life time of (trow, tcol, tval) is over. - // please use COO format (tempRowInd, tempColInd, tempVal) - - // use qsort to sort COO format - work = (struct cooFormat *)malloc(sizeof(struct cooFormat) * (*nnz)); - if (NULL == work) { - fprintf(stderr, "!!!! allocation error, malloc failed\n"); - return 1; - } - for (i = 0; i < (*nnz); i++) { - work[i].i = tempRowInd[i]; - work[i].j = tempColInd[i]; - work[i].p = i; // permutation is identity - } - - if (csrFormat) { - /* create row-major ordering of indices (sorted by row and within each row by column) */ - qsort(work, *nnz, sizeof(struct cooFormat), (FUNPTR)fptr_array[0]); - } - else { - /* create column-major ordering of indices (sorted by column and within each column by row) */ - qsort(work, *nnz, sizeof(struct cooFormat), (FUNPTR)fptr_array[1]); - } - - // (tempRowInd, tempColInd) is sorted either by row-major or by col-major - for (i = 0; i < (*nnz); i++) { - tempRowInd[i] = work[i].i; - tempColInd[i] = work[i].j; - } - - // setup base - // check if there is any row/col 0, if so base-0 - // check if there is any row/col equal to matrix dimension m/n, if so base-1 - int base0 = 0; - int base1 = 0; - for (i = 0; i < (*nnz); i++) { - const int row = tempRowInd[i]; - const int col = tempColInd[i]; - if ((0 == row) || (0 == col)) { - base0 = 1; - } - if ((*m == row) || (*n == col)) { - base1 = 1; - } - } - if (base0 && base1) { - printf("Error: input matrix is base-0 and base-1 \n"); - return 1; - } - - base = 0; - if (base1) { - base = 1; - } - - /* compress the appropriate indices */ - if (csrFormat) { - /* CSR format (assuming row-major format) */ - csrRowPtr = (int *)malloc(((*m) + 1) * sizeof(csrRowPtr[0])); - if (!csrRowPtr) - return 1; - compress_index(tempRowInd, *nnz, *m, csrRowPtr, base); - - *aRowInd = csrRowPtr; - *aColInd = (int *)malloc((*nnz) * sizeof(int)); - } - else { - /* CSC format (assuming column-major format) */ - cscColPtr = (int *)malloc(((*n) + 1) * sizeof(cscColPtr[0])); - if (!cscColPtr) - return 1; - compress_index(tempColInd, *nnz, *n, cscColPtr, base); - - *aColInd = cscColPtr; - *aRowInd = (int *)malloc((*nnz) * sizeof(int)); - } - - /* transfrom the matrix values of type double into one of the cusparse library types */ - *aVal = (T_ELEM *)malloc((*nnz) * sizeof(T_ELEM)); - - for (i = 0; i < (*nnz); i++) { - if (csrFormat) { - (*aColInd)[i] = tempColInd[i]; - } - else { - (*aRowInd)[i] = tempRowInd[i]; - } - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - (*aVal)[i] = cuGet(tempVal[work[i].p]); - } - else { - (*aVal)[i] = cuGet(tempVal[2 * work[i].p], tempVal[2 * work[i].p + 1]); - } - } - - /* check for corruption */ - int error_found; - if (csrFormat) { - error_found = verify_pattern(*m, *nnz, *aRowInd, *aColInd); - } - else { - error_found = verify_pattern(*n, *nnz, *aColInd, *aRowInd); - } - if (error_found) { - fprintf(stderr, "!!!! verify_pattern failed\n"); - return 1; - } - - /* cleanup and exit */ - free(work); - free(tempVal); - free(tempColInd); - free(tempRowInd); - - return 0; -} - - -/* specific instantiation */ -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - float **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - double **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - cuComplex **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - cuDoubleComplex **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/.vscode/extensions.json b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/CMakeLists.txt b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/CMakeLists.txt deleted file mode 100644 index f37971f8..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/CMakeLists.txt +++ /dev/null @@ -1,61 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(cuSolverSp_LowlevelQR LANGUAGES C CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for cuSolverSp_LowlevelQR -add_executable(cuSolverSp_LowlevelQR cuSolverSp_LowlevelQR.cpp mmio.c mmio_wrapper.cpp) - -target_compile_options(cuSolverSp_LowlevelQR PRIVATE $<$:--extended-lambda>) - -target_compile_features(cuSolverSp_LowlevelQR PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(cuSolverSp_LowlevelQR PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(cuSolverSp_LowlevelQR PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(cuSolverSp_LowlevelQR PRIVATE - CUDA::cudart - CUDA::cublas - CUDA::cusolver -) - -# Copy data files to output directory -add_custom_command(TARGET cuSolverSp_LowlevelQR POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lap2D_5pt_n32.mtx - ${CMAKE_CURRENT_BINARY_DIR} -) -add_custom_command(TARGET cuSolverSp_LowlevelQR POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lap2D_5pt_n100.mtx - ${CMAKE_CURRENT_BINARY_DIR} -) -add_custom_command(TARGET cuSolverSp_LowlevelQR POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lap3D_7pt_n20.mtx - ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/README.md b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/README.md deleted file mode 100644 index 4c3fa0e1..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# cuSolverSp_LowlevelQR - cuSolverSp Lowlevel QR Solver - -## Description - -A CUDA Sample that demonstrates QR factorization using cuSolverSP's low level APIs. - -## Key Concepts - -Linear Algebra, CUSOLVER Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuGet, cuDoubleComplex, cuComplex - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaStreamDestroy, cudaFree, cudaMalloc, cudaStreamCreate - -## Dependencies needed to build/run -[CUSOLVER](../../../README.md#cusolver), [CUSPARSE](../../../README.md#cusparse) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/cuSolverSp_LowlevelQR.cpp b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/cuSolverSp_LowlevelQR.cpp deleted file mode 100644 index b1e336b9..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/cuSolverSp_LowlevelQR.cpp +++ /dev/null @@ -1,490 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include -#include -#include -#include -#include - -#include "cusolverSp.h" -#include "cusolverSp_LOWLEVEL_PREVIEW.h" -#include "helper_cuda.h" -#include "helper_cusolver.h" - -template -int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - T_ELEM **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -void UsageSP(void) -{ - printf("\n"); - printf("-h : display this help\n"); - printf("-file= : filename containing a matrix in MM format\n"); - printf("-device= : if want to run on specific GPU\n"); - - exit(0); -} - -void parseCommandLineArguments(int argc, char *argv[], struct testOpts &opts) -{ - memset(&opts, 0, sizeof(opts)); - - if (checkCmdLineFlag(argc, (const char **)argv, "-h")) { - UsageSP(); - } - - if (checkCmdLineFlag(argc, (const char **)argv, "file")) { - char *fileName = 0; - getCmdLineArgumentString(argc, (const char **)argv, "file", &fileName); - - if (fileName) { - opts.sparse_mat_filename = fileName; - } - else { - printf("\nIncorrect filename passed to -file \n "); - UsageSP(); - } - } -} - -int main(int argc, char *argv[]) -{ - struct testOpts opts; - cusolverSpHandle_t cusolverSpH = NULL; // reordering, permutation and 1st LU factorization - cusparseHandle_t cusparseH = NULL; // residual evaluation - cudaStream_t stream = NULL; - cusparseMatDescr_t descrA = NULL; // A is a base-0 general matrix - - csrqrInfoHost_t h_info = NULL; // opaque info structure for LU with parital pivoting - csrqrInfo_t d_info = NULL; // opaque info structure for LU with parital pivoting - - int rowsA = 0; // number of rows of A - int colsA = 0; // number of columns of A - int nnzA = 0; // number of nonzeros of A - int baseA = 0; // base index in CSR format - - // CSR(A) from I/O - int *h_csrRowPtrA = NULL; // n+1 - int *h_csrColIndA = NULL; // nnzA - double *h_csrValA = NULL; // nnzA - - double *h_x = NULL; // n, x = A \ b - double *h_b = NULL; // n, b = ones(m,1) - double *h_bcopy = NULL; // n, b = ones(m,1) - double *h_r = NULL; // n, r = b - A*x - - size_t size_internal = 0; - size_t size_chol = 0; // size of working space for csrlu - void *buffer_cpu = NULL; // working space for Cholesky - void *buffer_gpu = NULL; // working space for Cholesky - - int *d_csrRowPtrA = NULL; // n+1 - int *d_csrColIndA = NULL; // nnzA - double *d_csrValA = NULL; // nnzA - double *d_x = NULL; // n, x = A \ b - double *d_b = NULL; // n, a copy of h_b - double *d_r = NULL; // n, r = b - A*x - - // the constants used in residual evaluation, r = b - A*x - const double minus_one = -1.0; - const double one = 1.0; - const double zero = 0.0; - // the constant used in cusolverSp - // singularity is -1 if A is invertible under tol - // tol determines the condition of singularity - int singularity = 0; - const double tol = 1.e-14; - - double x_inf = 0.0; // |x| - double r_inf = 0.0; // |r| - double A_inf = 0.0; // |A| - - parseCommandLineArguments(argc, argv, opts); - - findCudaDevice(argc, (const char **)argv); - - if (opts.sparse_mat_filename == NULL) { - opts.sparse_mat_filename = sdkFindFilePath("lap2D_5pt_n32.mtx", argv[0]); - if (opts.sparse_mat_filename != NULL) - printf("Using default input file [%s]\n", opts.sparse_mat_filename); - else - printf("Could not find lap2D_5pt_n32.mtx\n"); - } - else { - printf("Using input file [%s]\n", opts.sparse_mat_filename); - } - - printf("step 1: read matrix market format\n"); - - if (opts.sparse_mat_filename) { - if (loadMMSparseMatrix(opts.sparse_mat_filename, - 'd', - true, - &rowsA, - &colsA, - &nnzA, - &h_csrValA, - &h_csrRowPtrA, - &h_csrColIndA, - true)) { - return 1; - } - baseA = h_csrRowPtrA[0]; // baseA = {0,1} - } - else { - fprintf(stderr, "Error: input matrix is not provided\n"); - return 1; - } - - if (rowsA != colsA) { - fprintf(stderr, "Error: only support square matrix\n"); - return 1; - } - - printf("sparse matrix A is %d x %d with %d nonzeros, base=%d\n", rowsA, colsA, nnzA, baseA); - - checkCudaErrors(cusolverSpCreate(&cusolverSpH)); - checkCudaErrors(cusparseCreate(&cusparseH)); - checkCudaErrors(cudaStreamCreate(&stream)); - checkCudaErrors(cusolverSpSetStream(cusolverSpH, stream)); - checkCudaErrors(cusparseSetStream(cusparseH, stream)); - - checkCudaErrors(cusparseCreateMatDescr(&descrA)); - - checkCudaErrors(cusparseSetMatType(descrA, CUSPARSE_MATRIX_TYPE_GENERAL)); - - if (baseA) { - checkCudaErrors(cusparseSetMatIndexBase(descrA, CUSPARSE_INDEX_BASE_ONE)); - } - else { - checkCudaErrors(cusparseSetMatIndexBase(descrA, CUSPARSE_INDEX_BASE_ZERO)); - } - - h_x = (double *)malloc(sizeof(double) * colsA); - h_b = (double *)malloc(sizeof(double) * rowsA); - h_bcopy = (double *)malloc(sizeof(double) * rowsA); - h_r = (double *)malloc(sizeof(double) * rowsA); - - assert(NULL != h_x); - assert(NULL != h_b); - assert(NULL != h_bcopy); - assert(NULL != h_r); - - checkCudaErrors(cudaMalloc((void **)&d_csrRowPtrA, sizeof(int) * (rowsA + 1))); - checkCudaErrors(cudaMalloc((void **)&d_csrColIndA, sizeof(int) * nnzA)); - checkCudaErrors(cudaMalloc((void **)&d_csrValA, sizeof(double) * nnzA)); - checkCudaErrors(cudaMalloc((void **)&d_x, sizeof(double) * colsA)); - checkCudaErrors(cudaMalloc((void **)&d_b, sizeof(double) * rowsA)); - checkCudaErrors(cudaMalloc((void **)&d_r, sizeof(double) * rowsA)); - - for (int row = 0; row < rowsA; row++) { - h_b[row] = 1.0; - } - - memcpy(h_bcopy, h_b, sizeof(double) * rowsA); - - printf("step 2: create opaque info structure\n"); - checkCudaErrors(cusolverSpCreateCsrqrInfoHost(&h_info)); - - printf("step 3: analyze qr(A) to know structure of L\n"); - checkCudaErrors( - cusolverSpXcsrqrAnalysisHost(cusolverSpH, rowsA, colsA, nnzA, descrA, h_csrRowPtrA, h_csrColIndA, h_info)); - - printf("step 4: workspace for qr(A)\n"); - checkCudaErrors(cusolverSpDcsrqrBufferInfoHost(cusolverSpH, - rowsA, - colsA, - nnzA, - descrA, - h_csrValA, - h_csrRowPtrA, - h_csrColIndA, - h_info, - &size_internal, - &size_chol)); - - if (buffer_cpu) { - free(buffer_cpu); - } - buffer_cpu = (void *)malloc(sizeof(char) * size_chol); - assert(NULL != buffer_cpu); - - printf("step 5: compute A = L*L^T \n"); - checkCudaErrors(cusolverSpDcsrqrSetupHost( - cusolverSpH, rowsA, colsA, nnzA, descrA, h_csrValA, h_csrRowPtrA, h_csrColIndA, zero, h_info)); - - checkCudaErrors(cusolverSpDcsrqrFactorHost(cusolverSpH, rowsA, colsA, nnzA, NULL, NULL, h_info, buffer_cpu)); - - printf("step 6: check if the matrix is singular \n"); - checkCudaErrors(cusolverSpDcsrqrZeroPivotHost(cusolverSpH, h_info, tol, &singularity)); - - if (0 <= singularity) { - fprintf(stderr, "Error: A is not invertible, singularity=%d\n", singularity); - return 1; - } - - printf("step 7: solve A*x = b \n"); - checkCudaErrors(cusolverSpDcsrqrSolveHost(cusolverSpH, rowsA, colsA, h_b, h_x, h_info, buffer_cpu)); - - printf("step 8: evaluate residual r = b - A*x (result on CPU)\n"); - // use GPU gemv to compute r = b - A*x - checkCudaErrors(cudaMemcpy(d_csrRowPtrA, h_csrRowPtrA, sizeof(int) * (rowsA + 1), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrColIndA, h_csrColIndA, sizeof(int) * nnzA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrValA, h_csrValA, sizeof(double) * nnzA, cudaMemcpyHostToDevice)); - - checkCudaErrors(cudaMemcpy(d_r, h_bcopy, sizeof(double) * rowsA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_x, h_x, sizeof(double) * colsA, cudaMemcpyHostToDevice)); - - /* Wrap raw data into cuSPARSE generic API objects */ - cusparseSpMatDescr_t matA = NULL; - if (baseA) { - checkCudaErrors(cusparseCreateCsr(&matA, - rowsA, - colsA, - nnzA, - d_csrRowPtrA, - d_csrColIndA, - d_csrValA, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ONE, - CUDA_R_64F)); - } - else { - checkCudaErrors(cusparseCreateCsr(&matA, - rowsA, - colsA, - nnzA, - d_csrRowPtrA, - d_csrColIndA, - d_csrValA, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_32I, - CUSPARSE_INDEX_BASE_ZERO, - CUDA_R_64F)); - } - - cusparseDnVecDescr_t vecx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecx, colsA, d_x, CUDA_R_64F)); - cusparseDnVecDescr_t vecAx = NULL; - checkCudaErrors(cusparseCreateDnVec(&vecAx, rowsA, d_r, CUDA_R_64F)); - - /* Allocate workspace for cuSPARSE */ - size_t bufferSize = 0; - checkCudaErrors(cusparseSpMV_bufferSize(cusparseH, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - &bufferSize)); - void *buffer = NULL; - checkCudaErrors(cudaMalloc(&buffer, bufferSize)); - - checkCudaErrors(cusparseSpMV(cusparseH, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - - checkCudaErrors(cudaMemcpy(h_r, d_r, sizeof(double) * rowsA, cudaMemcpyDeviceToHost)); - - x_inf = vec_norminf(colsA, h_x); - r_inf = vec_norminf(rowsA, h_r); - A_inf = csr_mat_norminf(rowsA, colsA, nnzA, descrA, h_csrValA, h_csrRowPtrA, h_csrColIndA); - - printf("(CPU) |b - A*x| = %E \n", r_inf); - printf("(CPU) |A| = %E \n", A_inf); - printf("(CPU) |x| = %E \n", x_inf); - printf("(CPU) |b - A*x|/(|A|*|x|) = %E \n", r_inf / (A_inf * x_inf)); - - printf("step 9: create opaque info structure\n"); - checkCudaErrors(cusolverSpCreateCsrqrInfo(&d_info)); - - checkCudaErrors(cudaMemcpy(d_csrRowPtrA, h_csrRowPtrA, sizeof(int) * (rowsA + 1), cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrColIndA, h_csrColIndA, sizeof(int) * nnzA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_csrValA, h_csrValA, sizeof(double) * nnzA, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_b, h_bcopy, sizeof(double) * rowsA, cudaMemcpyHostToDevice)); - - printf("step 10: analyze qr(A) to know structure of L\n"); - checkCudaErrors( - cusolverSpXcsrqrAnalysis(cusolverSpH, rowsA, colsA, nnzA, descrA, d_csrRowPtrA, d_csrColIndA, d_info)); - - printf("step 11: workspace for qr(A)\n"); - checkCudaErrors(cusolverSpDcsrqrBufferInfo(cusolverSpH, - rowsA, - colsA, - nnzA, - descrA, - d_csrValA, - d_csrRowPtrA, - d_csrColIndA, - d_info, - &size_internal, - &size_chol)); - - printf("GPU buffer size = %lld bytes\n", (signed long long)size_chol); - if (buffer_gpu) { - checkCudaErrors(cudaFree(buffer_gpu)); - } - checkCudaErrors(cudaMalloc(&buffer_gpu, sizeof(char) * size_chol)); - - printf("step 12: compute A = L*L^T \n"); - checkCudaErrors(cusolverSpDcsrqrSetup( - cusolverSpH, rowsA, colsA, nnzA, descrA, d_csrValA, d_csrRowPtrA, d_csrColIndA, zero, d_info)); - - checkCudaErrors(cusolverSpDcsrqrFactor(cusolverSpH, rowsA, colsA, nnzA, NULL, NULL, d_info, buffer_gpu)); - - printf("step 13: check if the matrix is singular \n"); - checkCudaErrors(cusolverSpDcsrqrZeroPivot(cusolverSpH, d_info, tol, &singularity)); - - if (0 <= singularity) { - fprintf(stderr, "Error: A is not invertible, singularity=%d\n", singularity); - return 1; - } - - printf("step 14: solve A*x = b \n"); - checkCudaErrors(cusolverSpDcsrqrSolve(cusolverSpH, rowsA, colsA, d_b, d_x, d_info, buffer_gpu)); - - checkCudaErrors(cudaMemcpy(d_r, h_bcopy, sizeof(double) * rowsA, cudaMemcpyHostToDevice)); - - checkCudaErrors(cusparseSpMV(cusparseH, - CUSPARSE_OPERATION_NON_TRANSPOSE, - &minus_one, - matA, - vecx, - &one, - vecAx, - CUDA_R_64F, - CUSPARSE_SPMV_ALG_DEFAULT, - buffer)); - - checkCudaErrors(cudaMemcpy(h_r, d_r, sizeof(double) * rowsA, cudaMemcpyDeviceToHost)); - - r_inf = vec_norminf(rowsA, h_r); - - printf("(GPU) |b - A*x| = %E \n", r_inf); - printf("(GPU) |b - A*x|/(|A|*|x|) = %E \n", r_inf / (A_inf * x_inf)); - - if (cusolverSpH) { - checkCudaErrors(cusolverSpDestroy(cusolverSpH)); - } - if (cusparseH) { - checkCudaErrors(cusparseDestroy(cusparseH)); - } - if (stream) { - checkCudaErrors(cudaStreamDestroy(stream)); - } - if (descrA) { - checkCudaErrors(cusparseDestroyMatDescr(descrA)); - } - if (h_info) { - checkCudaErrors(cusolverSpDestroyCsrqrInfoHost(h_info)); - } - if (d_info) { - checkCudaErrors(cusolverSpDestroyCsrqrInfo(d_info)); - } - - if (matA) { - checkCudaErrors(cusparseDestroySpMat(matA)); - } - if (vecx) { - checkCudaErrors(cusparseDestroyDnVec(vecx)); - } - if (vecAx) { - checkCudaErrors(cusparseDestroyDnVec(vecAx)); - } - - if (h_csrValA) { - free(h_csrValA); - } - if (h_csrRowPtrA) { - free(h_csrRowPtrA); - } - if (h_csrColIndA) { - free(h_csrColIndA); - } - - if (h_x) { - free(h_x); - } - if (h_b) { - free(h_b); - } - if (h_bcopy) { - free(h_bcopy); - } - if (h_r) { - free(h_r); - } - - if (buffer_cpu) { - free(buffer_cpu); - } - if (buffer_gpu) { - checkCudaErrors(cudaFree(buffer_gpu)); - } - - if (d_csrValA) { - checkCudaErrors(cudaFree(d_csrValA)); - } - if (d_csrRowPtrA) { - checkCudaErrors(cudaFree(d_csrRowPtrA)); - } - if (d_csrColIndA) { - checkCudaErrors(cudaFree(d_csrColIndA)); - } - if (d_x) { - checkCudaErrors(cudaFree(d_x)); - } - if (d_b) { - checkCudaErrors(cudaFree(d_b)); - } - if (d_r) { - checkCudaErrors(cudaFree(d_r)); - } - - return 0; -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/lap2D_5pt_n100.mtx b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/lap2D_5pt_n100.mtx deleted file mode 100644 index dae3c1eb..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/lap2D_5pt_n100.mtx +++ /dev/null @@ -1,29803 +0,0 @@ -%%MatrixMarket matrix coordinate real symmetric -% Generated 20-Nov-2014 -10000 10000 29800 -1 1 4 -2 1 -1 -101 1 -1 -2 2 4 -3 2 -1 -102 2 -1 -3 3 4 -4 3 -1 -103 3 -1 -4 4 4 -5 4 -1 -104 4 -1 -5 5 4 -6 5 -1 -105 5 -1 -6 6 4 -7 6 -1 -106 6 -1 -7 7 4 -8 7 -1 -107 7 -1 -8 8 4 -9 8 -1 -108 8 -1 -9 9 4 -10 9 -1 -109 9 -1 -10 10 4 -11 10 -1 -110 10 -1 -11 11 4 -12 11 -1 -111 11 -1 -12 12 4 -13 12 -1 -112 12 -1 -13 13 4 -14 13 -1 -113 13 -1 -14 14 4 -15 14 -1 -114 14 -1 -15 15 4 -16 15 -1 -115 15 -1 -16 16 4 -17 16 -1 -116 16 -1 -17 17 4 -18 17 -1 -117 17 -1 -18 18 4 -19 18 -1 -118 18 -1 -19 19 4 -20 19 -1 -119 19 -1 -20 20 4 -21 20 -1 -120 20 -1 -21 21 4 -22 21 -1 -121 21 -1 -22 22 4 -23 22 -1 -122 22 -1 -23 23 4 -24 23 -1 -123 23 -1 -24 24 4 -25 24 -1 -124 24 -1 -25 25 4 -26 25 -1 -125 25 -1 -26 26 4 -27 26 -1 -126 26 -1 -27 27 4 -28 27 -1 -127 27 -1 -28 28 4 -29 28 -1 -128 28 -1 -29 29 4 -30 29 -1 -129 29 -1 -30 30 4 -31 30 -1 -130 30 -1 -31 31 4 -32 31 -1 -131 31 -1 -32 32 4 -33 32 -1 -132 32 -1 -33 33 4 -34 33 -1 -133 33 -1 -34 34 4 -35 34 -1 -134 34 -1 -35 35 4 -36 35 -1 -135 35 -1 -36 36 4 -37 36 -1 -136 36 -1 -37 37 4 -38 37 -1 -137 37 -1 -38 38 4 -39 38 -1 -138 38 -1 -39 39 4 -40 39 -1 -139 39 -1 -40 40 4 -41 40 -1 -140 40 -1 -41 41 4 -42 41 -1 -141 41 -1 -42 42 4 -43 42 -1 -142 42 -1 -43 43 4 -44 43 -1 -143 43 -1 -44 44 4 -45 44 -1 -144 44 -1 -45 45 4 -46 45 -1 -145 45 -1 -46 46 4 -47 46 -1 -146 46 -1 -47 47 4 -48 47 -1 -147 47 -1 -48 48 4 -49 48 -1 -148 48 -1 -49 49 4 -50 49 -1 -149 49 -1 -50 50 4 -51 50 -1 -150 50 -1 -51 51 4 -52 51 -1 -151 51 -1 -52 52 4 -53 52 -1 -152 52 -1 -53 53 4 -54 53 -1 -153 53 -1 -54 54 4 -55 54 -1 -154 54 -1 -55 55 4 -56 55 -1 -155 55 -1 -56 56 4 -57 56 -1 -156 56 -1 -57 57 4 -58 57 -1 -157 57 -1 -58 58 4 -59 58 -1 -158 58 -1 -59 59 4 -60 59 -1 -159 59 -1 -60 60 4 -61 60 -1 -160 60 -1 -61 61 4 -62 61 -1 -161 61 -1 -62 62 4 -63 62 -1 -162 62 -1 -63 63 4 -64 63 -1 -163 63 -1 -64 64 4 -65 64 -1 -164 64 -1 -65 65 4 -66 65 -1 -165 65 -1 -66 66 4 -67 66 -1 -166 66 -1 -67 67 4 -68 67 -1 -167 67 -1 -68 68 4 -69 68 -1 -168 68 -1 -69 69 4 -70 69 -1 -169 69 -1 -70 70 4 -71 70 -1 -170 70 -1 -71 71 4 -72 71 -1 -171 71 -1 -72 72 4 -73 72 -1 -172 72 -1 -73 73 4 -74 73 -1 -173 73 -1 -74 74 4 -75 74 -1 -174 74 -1 -75 75 4 -76 75 -1 -175 75 -1 -76 76 4 -77 76 -1 -176 76 -1 -77 77 4 -78 77 -1 -177 77 -1 -78 78 4 -79 78 -1 -178 78 -1 -79 79 4 -80 79 -1 -179 79 -1 -80 80 4 -81 80 -1 -180 80 -1 -81 81 4 -82 81 -1 -181 81 -1 -82 82 4 -83 82 -1 -182 82 -1 -83 83 4 -84 83 -1 -183 83 -1 -84 84 4 -85 84 -1 -184 84 -1 -85 85 4 -86 85 -1 -185 85 -1 -86 86 4 -87 86 -1 -186 86 -1 -87 87 4 -88 87 -1 -187 87 -1 -88 88 4 -89 88 -1 -188 88 -1 -89 89 4 -90 89 -1 -189 89 -1 -90 90 4 -91 90 -1 -190 90 -1 -91 91 4 -92 91 -1 -191 91 -1 -92 92 4 -93 92 -1 -192 92 -1 -93 93 4 -94 93 -1 -193 93 -1 -94 94 4 -95 94 -1 -194 94 -1 -95 95 4 -96 95 -1 -195 95 -1 -96 96 4 -97 96 -1 -196 96 -1 -97 97 4 -98 97 -1 -197 97 -1 -98 98 4 -99 98 -1 -198 98 -1 -99 99 4 -100 99 -1 -199 99 -1 -100 100 4 -200 100 -1 -101 101 4 -102 101 -1 -201 101 -1 -102 102 4 -103 102 -1 -202 102 -1 -103 103 4 -104 103 -1 -203 103 -1 -104 104 4 -105 104 -1 -204 104 -1 -105 105 4 -106 105 -1 -205 105 -1 -106 106 4 -107 106 -1 -206 106 -1 -107 107 4 -108 107 -1 -207 107 -1 -108 108 4 -109 108 -1 -208 108 -1 -109 109 4 -110 109 -1 -209 109 -1 -110 110 4 -111 110 -1 -210 110 -1 -111 111 4 -112 111 -1 -211 111 -1 -112 112 4 -113 112 -1 -212 112 -1 -113 113 4 -114 113 -1 -213 113 -1 -114 114 4 -115 114 -1 -214 114 -1 -115 115 4 -116 115 -1 -215 115 -1 -116 116 4 -117 116 -1 -216 116 -1 -117 117 4 -118 117 -1 -217 117 -1 -118 118 4 -119 118 -1 -218 118 -1 -119 119 4 -120 119 -1 -219 119 -1 -120 120 4 -121 120 -1 -220 120 -1 -121 121 4 -122 121 -1 -221 121 -1 -122 122 4 -123 122 -1 -222 122 -1 -123 123 4 -124 123 -1 -223 123 -1 -124 124 4 -125 124 -1 -224 124 -1 -125 125 4 -126 125 -1 -225 125 -1 -126 126 4 -127 126 -1 -226 126 -1 -127 127 4 -128 127 -1 -227 127 -1 -128 128 4 -129 128 -1 -228 128 -1 -129 129 4 -130 129 -1 -229 129 -1 -130 130 4 -131 130 -1 -230 130 -1 -131 131 4 -132 131 -1 -231 131 -1 -132 132 4 -133 132 -1 -232 132 -1 -133 133 4 -134 133 -1 -233 133 -1 -134 134 4 -135 134 -1 -234 134 -1 -135 135 4 -136 135 -1 -235 135 -1 -136 136 4 -137 136 -1 -236 136 -1 -137 137 4 -138 137 -1 -237 137 -1 -138 138 4 -139 138 -1 -238 138 -1 -139 139 4 -140 139 -1 -239 139 -1 -140 140 4 -141 140 -1 -240 140 -1 -141 141 4 -142 141 -1 -241 141 -1 -142 142 4 -143 142 -1 -242 142 -1 -143 143 4 -144 143 -1 -243 143 -1 -144 144 4 -145 144 -1 -244 144 -1 -145 145 4 -146 145 -1 -245 145 -1 -146 146 4 -147 146 -1 -246 146 -1 -147 147 4 -148 147 -1 -247 147 -1 -148 148 4 -149 148 -1 -248 148 -1 -149 149 4 -150 149 -1 -249 149 -1 -150 150 4 -151 150 -1 -250 150 -1 -151 151 4 -152 151 -1 -251 151 -1 -152 152 4 -153 152 -1 -252 152 -1 -153 153 4 -154 153 -1 -253 153 -1 -154 154 4 -155 154 -1 -254 154 -1 -155 155 4 -156 155 -1 -255 155 -1 -156 156 4 -157 156 -1 -256 156 -1 -157 157 4 -158 157 -1 -257 157 -1 -158 158 4 -159 158 -1 -258 158 -1 -159 159 4 -160 159 -1 -259 159 -1 -160 160 4 -161 160 -1 -260 160 -1 -161 161 4 -162 161 -1 -261 161 -1 -162 162 4 -163 162 -1 -262 162 -1 -163 163 4 -164 163 -1 -263 163 -1 -164 164 4 -165 164 -1 -264 164 -1 -165 165 4 -166 165 -1 -265 165 -1 -166 166 4 -167 166 -1 -266 166 -1 -167 167 4 -168 167 -1 -267 167 -1 -168 168 4 -169 168 -1 -268 168 -1 -169 169 4 -170 169 -1 -269 169 -1 -170 170 4 -171 170 -1 -270 170 -1 -171 171 4 -172 171 -1 -271 171 -1 -172 172 4 -173 172 -1 -272 172 -1 -173 173 4 -174 173 -1 -273 173 -1 -174 174 4 -175 174 -1 -274 174 -1 -175 175 4 -176 175 -1 -275 175 -1 -176 176 4 -177 176 -1 -276 176 -1 -177 177 4 -178 177 -1 -277 177 -1 -178 178 4 -179 178 -1 -278 178 -1 -179 179 4 -180 179 -1 -279 179 -1 -180 180 4 -181 180 -1 -280 180 -1 -181 181 4 -182 181 -1 -281 181 -1 -182 182 4 -183 182 -1 -282 182 -1 -183 183 4 -184 183 -1 -283 183 -1 -184 184 4 -185 184 -1 -284 184 -1 -185 185 4 -186 185 -1 -285 185 -1 -186 186 4 -187 186 -1 -286 186 -1 -187 187 4 -188 187 -1 -287 187 -1 -188 188 4 -189 188 -1 -288 188 -1 -189 189 4 -190 189 -1 -289 189 -1 -190 190 4 -191 190 -1 -290 190 -1 -191 191 4 -192 191 -1 -291 191 -1 -192 192 4 -193 192 -1 -292 192 -1 -193 193 4 -194 193 -1 -293 193 -1 -194 194 4 -195 194 -1 -294 194 -1 -195 195 4 -196 195 -1 -295 195 -1 -196 196 4 -197 196 -1 -296 196 -1 -197 197 4 -198 197 -1 -297 197 -1 -198 198 4 -199 198 -1 -298 198 -1 -199 199 4 -200 199 -1 -299 199 -1 -200 200 4 -300 200 -1 -201 201 4 -202 201 -1 -301 201 -1 -202 202 4 -203 202 -1 -302 202 -1 -203 203 4 -204 203 -1 -303 203 -1 -204 204 4 -205 204 -1 -304 204 -1 -205 205 4 -206 205 -1 -305 205 -1 -206 206 4 -207 206 -1 -306 206 -1 -207 207 4 -208 207 -1 -307 207 -1 -208 208 4 -209 208 -1 -308 208 -1 -209 209 4 -210 209 -1 -309 209 -1 -210 210 4 -211 210 -1 -310 210 -1 -211 211 4 -212 211 -1 -311 211 -1 -212 212 4 -213 212 -1 -312 212 -1 -213 213 4 -214 213 -1 -313 213 -1 -214 214 4 -215 214 -1 -314 214 -1 -215 215 4 -216 215 -1 -315 215 -1 -216 216 4 -217 216 -1 -316 216 -1 -217 217 4 -218 217 -1 -317 217 -1 -218 218 4 -219 218 -1 -318 218 -1 -219 219 4 -220 219 -1 -319 219 -1 -220 220 4 -221 220 -1 -320 220 -1 -221 221 4 -222 221 -1 -321 221 -1 -222 222 4 -223 222 -1 -322 222 -1 -223 223 4 -224 223 -1 -323 223 -1 -224 224 4 -225 224 -1 -324 224 -1 -225 225 4 -226 225 -1 -325 225 -1 -226 226 4 -227 226 -1 -326 226 -1 -227 227 4 -228 227 -1 -327 227 -1 -228 228 4 -229 228 -1 -328 228 -1 -229 229 4 -230 229 -1 -329 229 -1 -230 230 4 -231 230 -1 -330 230 -1 -231 231 4 -232 231 -1 -331 231 -1 -232 232 4 -233 232 -1 -332 232 -1 -233 233 4 -234 233 -1 -333 233 -1 -234 234 4 -235 234 -1 -334 234 -1 -235 235 4 -236 235 -1 -335 235 -1 -236 236 4 -237 236 -1 -336 236 -1 -237 237 4 -238 237 -1 -337 237 -1 -238 238 4 -239 238 -1 -338 238 -1 -239 239 4 -240 239 -1 -339 239 -1 -240 240 4 -241 240 -1 -340 240 -1 -241 241 4 -242 241 -1 -341 241 -1 -242 242 4 -243 242 -1 -342 242 -1 -243 243 4 -244 243 -1 -343 243 -1 -244 244 4 -245 244 -1 -344 244 -1 -245 245 4 -246 245 -1 -345 245 -1 -246 246 4 -247 246 -1 -346 246 -1 -247 247 4 -248 247 -1 -347 247 -1 -248 248 4 -249 248 -1 -348 248 -1 -249 249 4 -250 249 -1 -349 249 -1 -250 250 4 -251 250 -1 -350 250 -1 -251 251 4 -252 251 -1 -351 251 -1 -252 252 4 -253 252 -1 -352 252 -1 -253 253 4 -254 253 -1 -353 253 -1 -254 254 4 -255 254 -1 -354 254 -1 -255 255 4 -256 255 -1 -355 255 -1 -256 256 4 -257 256 -1 -356 256 -1 -257 257 4 -258 257 -1 -357 257 -1 -258 258 4 -259 258 -1 -358 258 -1 -259 259 4 -260 259 -1 -359 259 -1 -260 260 4 -261 260 -1 -360 260 -1 -261 261 4 -262 261 -1 -361 261 -1 -262 262 4 -263 262 -1 -362 262 -1 -263 263 4 -264 263 -1 -363 263 -1 -264 264 4 -265 264 -1 -364 264 -1 -265 265 4 -266 265 -1 -365 265 -1 -266 266 4 -267 266 -1 -366 266 -1 -267 267 4 -268 267 -1 -367 267 -1 -268 268 4 -269 268 -1 -368 268 -1 -269 269 4 -270 269 -1 -369 269 -1 -270 270 4 -271 270 -1 -370 270 -1 -271 271 4 -272 271 -1 -371 271 -1 -272 272 4 -273 272 -1 -372 272 -1 -273 273 4 -274 273 -1 -373 273 -1 -274 274 4 -275 274 -1 -374 274 -1 -275 275 4 -276 275 -1 -375 275 -1 -276 276 4 -277 276 -1 -376 276 -1 -277 277 4 -278 277 -1 -377 277 -1 -278 278 4 -279 278 -1 -378 278 -1 -279 279 4 -280 279 -1 -379 279 -1 -280 280 4 -281 280 -1 -380 280 -1 -281 281 4 -282 281 -1 -381 281 -1 -282 282 4 -283 282 -1 -382 282 -1 -283 283 4 -284 283 -1 -383 283 -1 -284 284 4 -285 284 -1 -384 284 -1 -285 285 4 -286 285 -1 -385 285 -1 -286 286 4 -287 286 -1 -386 286 -1 -287 287 4 -288 287 -1 -387 287 -1 -288 288 4 -289 288 -1 -388 288 -1 -289 289 4 -290 289 -1 -389 289 -1 -290 290 4 -291 290 -1 -390 290 -1 -291 291 4 -292 291 -1 -391 291 -1 -292 292 4 -293 292 -1 -392 292 -1 -293 293 4 -294 293 -1 -393 293 -1 -294 294 4 -295 294 -1 -394 294 -1 -295 295 4 -296 295 -1 -395 295 -1 -296 296 4 -297 296 -1 -396 296 -1 -297 297 4 -298 297 -1 -397 297 -1 -298 298 4 -299 298 -1 -398 298 -1 -299 299 4 -300 299 -1 -399 299 -1 -300 300 4 -400 300 -1 -301 301 4 -302 301 -1 -401 301 -1 -302 302 4 -303 302 -1 -402 302 -1 -303 303 4 -304 303 -1 -403 303 -1 -304 304 4 -305 304 -1 -404 304 -1 -305 305 4 -306 305 -1 -405 305 -1 -306 306 4 -307 306 -1 -406 306 -1 -307 307 4 -308 307 -1 -407 307 -1 -308 308 4 -309 308 -1 -408 308 -1 -309 309 4 -310 309 -1 -409 309 -1 -310 310 4 -311 310 -1 -410 310 -1 -311 311 4 -312 311 -1 -411 311 -1 -312 312 4 -313 312 -1 -412 312 -1 -313 313 4 -314 313 -1 -413 313 -1 -314 314 4 -315 314 -1 -414 314 -1 -315 315 4 -316 315 -1 -415 315 -1 -316 316 4 -317 316 -1 -416 316 -1 -317 317 4 -318 317 -1 -417 317 -1 -318 318 4 -319 318 -1 -418 318 -1 -319 319 4 -320 319 -1 -419 319 -1 -320 320 4 -321 320 -1 -420 320 -1 -321 321 4 -322 321 -1 -421 321 -1 -322 322 4 -323 322 -1 -422 322 -1 -323 323 4 -324 323 -1 -423 323 -1 -324 324 4 -325 324 -1 -424 324 -1 -325 325 4 -326 325 -1 -425 325 -1 -326 326 4 -327 326 -1 -426 326 -1 -327 327 4 -328 327 -1 -427 327 -1 -328 328 4 -329 328 -1 -428 328 -1 -329 329 4 -330 329 -1 -429 329 -1 -330 330 4 -331 330 -1 -430 330 -1 -331 331 4 -332 331 -1 -431 331 -1 -332 332 4 -333 332 -1 -432 332 -1 -333 333 4 -334 333 -1 -433 333 -1 -334 334 4 -335 334 -1 -434 334 -1 -335 335 4 -336 335 -1 -435 335 -1 -336 336 4 -337 336 -1 -436 336 -1 -337 337 4 -338 337 -1 -437 337 -1 -338 338 4 -339 338 -1 -438 338 -1 -339 339 4 -340 339 -1 -439 339 -1 -340 340 4 -341 340 -1 -440 340 -1 -341 341 4 -342 341 -1 -441 341 -1 -342 342 4 -343 342 -1 -442 342 -1 -343 343 4 -344 343 -1 -443 343 -1 -344 344 4 -345 344 -1 -444 344 -1 -345 345 4 -346 345 -1 -445 345 -1 -346 346 4 -347 346 -1 -446 346 -1 -347 347 4 -348 347 -1 -447 347 -1 -348 348 4 -349 348 -1 -448 348 -1 -349 349 4 -350 349 -1 -449 349 -1 -350 350 4 -351 350 -1 -450 350 -1 -351 351 4 -352 351 -1 -451 351 -1 -352 352 4 -353 352 -1 -452 352 -1 -353 353 4 -354 353 -1 -453 353 -1 -354 354 4 -355 354 -1 -454 354 -1 -355 355 4 -356 355 -1 -455 355 -1 -356 356 4 -357 356 -1 -456 356 -1 -357 357 4 -358 357 -1 -457 357 -1 -358 358 4 -359 358 -1 -458 358 -1 -359 359 4 -360 359 -1 -459 359 -1 -360 360 4 -361 360 -1 -460 360 -1 -361 361 4 -362 361 -1 -461 361 -1 -362 362 4 -363 362 -1 -462 362 -1 -363 363 4 -364 363 -1 -463 363 -1 -364 364 4 -365 364 -1 -464 364 -1 -365 365 4 -366 365 -1 -465 365 -1 -366 366 4 -367 366 -1 -466 366 -1 -367 367 4 -368 367 -1 -467 367 -1 -368 368 4 -369 368 -1 -468 368 -1 -369 369 4 -370 369 -1 -469 369 -1 -370 370 4 -371 370 -1 -470 370 -1 -371 371 4 -372 371 -1 -471 371 -1 -372 372 4 -373 372 -1 -472 372 -1 -373 373 4 -374 373 -1 -473 373 -1 -374 374 4 -375 374 -1 -474 374 -1 -375 375 4 -376 375 -1 -475 375 -1 -376 376 4 -377 376 -1 -476 376 -1 -377 377 4 -378 377 -1 -477 377 -1 -378 378 4 -379 378 -1 -478 378 -1 -379 379 4 -380 379 -1 -479 379 -1 -380 380 4 -381 380 -1 -480 380 -1 -381 381 4 -382 381 -1 -481 381 -1 -382 382 4 -383 382 -1 -482 382 -1 -383 383 4 -384 383 -1 -483 383 -1 -384 384 4 -385 384 -1 -484 384 -1 -385 385 4 -386 385 -1 -485 385 -1 -386 386 4 -387 386 -1 -486 386 -1 -387 387 4 -388 387 -1 -487 387 -1 -388 388 4 -389 388 -1 -488 388 -1 -389 389 4 -390 389 -1 -489 389 -1 -390 390 4 -391 390 -1 -490 390 -1 -391 391 4 -392 391 -1 -491 391 -1 -392 392 4 -393 392 -1 -492 392 -1 -393 393 4 -394 393 -1 -493 393 -1 -394 394 4 -395 394 -1 -494 394 -1 -395 395 4 -396 395 -1 -495 395 -1 -396 396 4 -397 396 -1 -496 396 -1 -397 397 4 -398 397 -1 -497 397 -1 -398 398 4 -399 398 -1 -498 398 -1 -399 399 4 -400 399 -1 -499 399 -1 -400 400 4 -500 400 -1 -401 401 4 -402 401 -1 -501 401 -1 -402 402 4 -403 402 -1 -502 402 -1 -403 403 4 -404 403 -1 -503 403 -1 -404 404 4 -405 404 -1 -504 404 -1 -405 405 4 -406 405 -1 -505 405 -1 -406 406 4 -407 406 -1 -506 406 -1 -407 407 4 -408 407 -1 -507 407 -1 -408 408 4 -409 408 -1 -508 408 -1 -409 409 4 -410 409 -1 -509 409 -1 -410 410 4 -411 410 -1 -510 410 -1 -411 411 4 -412 411 -1 -511 411 -1 -412 412 4 -413 412 -1 -512 412 -1 -413 413 4 -414 413 -1 -513 413 -1 -414 414 4 -415 414 -1 -514 414 -1 -415 415 4 -416 415 -1 -515 415 -1 -416 416 4 -417 416 -1 -516 416 -1 -417 417 4 -418 417 -1 -517 417 -1 -418 418 4 -419 418 -1 -518 418 -1 -419 419 4 -420 419 -1 -519 419 -1 -420 420 4 -421 420 -1 -520 420 -1 -421 421 4 -422 421 -1 -521 421 -1 -422 422 4 -423 422 -1 -522 422 -1 -423 423 4 -424 423 -1 -523 423 -1 -424 424 4 -425 424 -1 -524 424 -1 -425 425 4 -426 425 -1 -525 425 -1 -426 426 4 -427 426 -1 -526 426 -1 -427 427 4 -428 427 -1 -527 427 -1 -428 428 4 -429 428 -1 -528 428 -1 -429 429 4 -430 429 -1 -529 429 -1 -430 430 4 -431 430 -1 -530 430 -1 -431 431 4 -432 431 -1 -531 431 -1 -432 432 4 -433 432 -1 -532 432 -1 -433 433 4 -434 433 -1 -533 433 -1 -434 434 4 -435 434 -1 -534 434 -1 -435 435 4 -436 435 -1 -535 435 -1 -436 436 4 -437 436 -1 -536 436 -1 -437 437 4 -438 437 -1 -537 437 -1 -438 438 4 -439 438 -1 -538 438 -1 -439 439 4 -440 439 -1 -539 439 -1 -440 440 4 -441 440 -1 -540 440 -1 -441 441 4 -442 441 -1 -541 441 -1 -442 442 4 -443 442 -1 -542 442 -1 -443 443 4 -444 443 -1 -543 443 -1 -444 444 4 -445 444 -1 -544 444 -1 -445 445 4 -446 445 -1 -545 445 -1 -446 446 4 -447 446 -1 -546 446 -1 -447 447 4 -448 447 -1 -547 447 -1 -448 448 4 -449 448 -1 -548 448 -1 -449 449 4 -450 449 -1 -549 449 -1 -450 450 4 -451 450 -1 -550 450 -1 -451 451 4 -452 451 -1 -551 451 -1 -452 452 4 -453 452 -1 -552 452 -1 -453 453 4 -454 453 -1 -553 453 -1 -454 454 4 -455 454 -1 -554 454 -1 -455 455 4 -456 455 -1 -555 455 -1 -456 456 4 -457 456 -1 -556 456 -1 -457 457 4 -458 457 -1 -557 457 -1 -458 458 4 -459 458 -1 -558 458 -1 -459 459 4 -460 459 -1 -559 459 -1 -460 460 4 -461 460 -1 -560 460 -1 -461 461 4 -462 461 -1 -561 461 -1 -462 462 4 -463 462 -1 -562 462 -1 -463 463 4 -464 463 -1 -563 463 -1 -464 464 4 -465 464 -1 -564 464 -1 -465 465 4 -466 465 -1 -565 465 -1 -466 466 4 -467 466 -1 -566 466 -1 -467 467 4 -468 467 -1 -567 467 -1 -468 468 4 -469 468 -1 -568 468 -1 -469 469 4 -470 469 -1 -569 469 -1 -470 470 4 -471 470 -1 -570 470 -1 -471 471 4 -472 471 -1 -571 471 -1 -472 472 4 -473 472 -1 -572 472 -1 -473 473 4 -474 473 -1 -573 473 -1 -474 474 4 -475 474 -1 -574 474 -1 -475 475 4 -476 475 -1 -575 475 -1 -476 476 4 -477 476 -1 -576 476 -1 -477 477 4 -478 477 -1 -577 477 -1 -478 478 4 -479 478 -1 -578 478 -1 -479 479 4 -480 479 -1 -579 479 -1 -480 480 4 -481 480 -1 -580 480 -1 -481 481 4 -482 481 -1 -581 481 -1 -482 482 4 -483 482 -1 -582 482 -1 -483 483 4 -484 483 -1 -583 483 -1 -484 484 4 -485 484 -1 -584 484 -1 -485 485 4 -486 485 -1 -585 485 -1 -486 486 4 -487 486 -1 -586 486 -1 -487 487 4 -488 487 -1 -587 487 -1 -488 488 4 -489 488 -1 -588 488 -1 -489 489 4 -490 489 -1 -589 489 -1 -490 490 4 -491 490 -1 -590 490 -1 -491 491 4 -492 491 -1 -591 491 -1 -492 492 4 -493 492 -1 -592 492 -1 -493 493 4 -494 493 -1 -593 493 -1 -494 494 4 -495 494 -1 -594 494 -1 -495 495 4 -496 495 -1 -595 495 -1 -496 496 4 -497 496 -1 -596 496 -1 -497 497 4 -498 497 -1 -597 497 -1 -498 498 4 -499 498 -1 -598 498 -1 -499 499 4 -500 499 -1 -599 499 -1 -500 500 4 -600 500 -1 -501 501 4 -502 501 -1 -601 501 -1 -502 502 4 -503 502 -1 -602 502 -1 -503 503 4 -504 503 -1 -603 503 -1 -504 504 4 -505 504 -1 -604 504 -1 -505 505 4 -506 505 -1 -605 505 -1 -506 506 4 -507 506 -1 -606 506 -1 -507 507 4 -508 507 -1 -607 507 -1 -508 508 4 -509 508 -1 -608 508 -1 -509 509 4 -510 509 -1 -609 509 -1 -510 510 4 -511 510 -1 -610 510 -1 -511 511 4 -512 511 -1 -611 511 -1 -512 512 4 -513 512 -1 -612 512 -1 -513 513 4 -514 513 -1 -613 513 -1 -514 514 4 -515 514 -1 -614 514 -1 -515 515 4 -516 515 -1 -615 515 -1 -516 516 4 -517 516 -1 -616 516 -1 -517 517 4 -518 517 -1 -617 517 -1 -518 518 4 -519 518 -1 -618 518 -1 -519 519 4 -520 519 -1 -619 519 -1 -520 520 4 -521 520 -1 -620 520 -1 -521 521 4 -522 521 -1 -621 521 -1 -522 522 4 -523 522 -1 -622 522 -1 -523 523 4 -524 523 -1 -623 523 -1 -524 524 4 -525 524 -1 -624 524 -1 -525 525 4 -526 525 -1 -625 525 -1 -526 526 4 -527 526 -1 -626 526 -1 -527 527 4 -528 527 -1 -627 527 -1 -528 528 4 -529 528 -1 -628 528 -1 -529 529 4 -530 529 -1 -629 529 -1 -530 530 4 -531 530 -1 -630 530 -1 -531 531 4 -532 531 -1 -631 531 -1 -532 532 4 -533 532 -1 -632 532 -1 -533 533 4 -534 533 -1 -633 533 -1 -534 534 4 -535 534 -1 -634 534 -1 -535 535 4 -536 535 -1 -635 535 -1 -536 536 4 -537 536 -1 -636 536 -1 -537 537 4 -538 537 -1 -637 537 -1 -538 538 4 -539 538 -1 -638 538 -1 -539 539 4 -540 539 -1 -639 539 -1 -540 540 4 -541 540 -1 -640 540 -1 -541 541 4 -542 541 -1 -641 541 -1 -542 542 4 -543 542 -1 -642 542 -1 -543 543 4 -544 543 -1 -643 543 -1 -544 544 4 -545 544 -1 -644 544 -1 -545 545 4 -546 545 -1 -645 545 -1 -546 546 4 -547 546 -1 -646 546 -1 -547 547 4 -548 547 -1 -647 547 -1 -548 548 4 -549 548 -1 -648 548 -1 -549 549 4 -550 549 -1 -649 549 -1 -550 550 4 -551 550 -1 -650 550 -1 -551 551 4 -552 551 -1 -651 551 -1 -552 552 4 -553 552 -1 -652 552 -1 -553 553 4 -554 553 -1 -653 553 -1 -554 554 4 -555 554 -1 -654 554 -1 -555 555 4 -556 555 -1 -655 555 -1 -556 556 4 -557 556 -1 -656 556 -1 -557 557 4 -558 557 -1 -657 557 -1 -558 558 4 -559 558 -1 -658 558 -1 -559 559 4 -560 559 -1 -659 559 -1 -560 560 4 -561 560 -1 -660 560 -1 -561 561 4 -562 561 -1 -661 561 -1 -562 562 4 -563 562 -1 -662 562 -1 -563 563 4 -564 563 -1 -663 563 -1 -564 564 4 -565 564 -1 -664 564 -1 -565 565 4 -566 565 -1 -665 565 -1 -566 566 4 -567 566 -1 -666 566 -1 -567 567 4 -568 567 -1 -667 567 -1 -568 568 4 -569 568 -1 -668 568 -1 -569 569 4 -570 569 -1 -669 569 -1 -570 570 4 -571 570 -1 -670 570 -1 -571 571 4 -572 571 -1 -671 571 -1 -572 572 4 -573 572 -1 -672 572 -1 -573 573 4 -574 573 -1 -673 573 -1 -574 574 4 -575 574 -1 -674 574 -1 -575 575 4 -576 575 -1 -675 575 -1 -576 576 4 -577 576 -1 -676 576 -1 -577 577 4 -578 577 -1 -677 577 -1 -578 578 4 -579 578 -1 -678 578 -1 -579 579 4 -580 579 -1 -679 579 -1 -580 580 4 -581 580 -1 -680 580 -1 -581 581 4 -582 581 -1 -681 581 -1 -582 582 4 -583 582 -1 -682 582 -1 -583 583 4 -584 583 -1 -683 583 -1 -584 584 4 -585 584 -1 -684 584 -1 -585 585 4 -586 585 -1 -685 585 -1 -586 586 4 -587 586 -1 -686 586 -1 -587 587 4 -588 587 -1 -687 587 -1 -588 588 4 -589 588 -1 -688 588 -1 -589 589 4 -590 589 -1 -689 589 -1 -590 590 4 -591 590 -1 -690 590 -1 -591 591 4 -592 591 -1 -691 591 -1 -592 592 4 -593 592 -1 -692 592 -1 -593 593 4 -594 593 -1 -693 593 -1 -594 594 4 -595 594 -1 -694 594 -1 -595 595 4 -596 595 -1 -695 595 -1 -596 596 4 -597 596 -1 -696 596 -1 -597 597 4 -598 597 -1 -697 597 -1 -598 598 4 -599 598 -1 -698 598 -1 -599 599 4 -600 599 -1 -699 599 -1 -600 600 4 -700 600 -1 -601 601 4 -602 601 -1 -701 601 -1 -602 602 4 -603 602 -1 -702 602 -1 -603 603 4 -604 603 -1 -703 603 -1 -604 604 4 -605 604 -1 -704 604 -1 -605 605 4 -606 605 -1 -705 605 -1 -606 606 4 -607 606 -1 -706 606 -1 -607 607 4 -608 607 -1 -707 607 -1 -608 608 4 -609 608 -1 -708 608 -1 -609 609 4 -610 609 -1 -709 609 -1 -610 610 4 -611 610 -1 -710 610 -1 -611 611 4 -612 611 -1 -711 611 -1 -612 612 4 -613 612 -1 -712 612 -1 -613 613 4 -614 613 -1 -713 613 -1 -614 614 4 -615 614 -1 -714 614 -1 -615 615 4 -616 615 -1 -715 615 -1 -616 616 4 -617 616 -1 -716 616 -1 -617 617 4 -618 617 -1 -717 617 -1 -618 618 4 -619 618 -1 -718 618 -1 -619 619 4 -620 619 -1 -719 619 -1 -620 620 4 -621 620 -1 -720 620 -1 -621 621 4 -622 621 -1 -721 621 -1 -622 622 4 -623 622 -1 -722 622 -1 -623 623 4 -624 623 -1 -723 623 -1 -624 624 4 -625 624 -1 -724 624 -1 -625 625 4 -626 625 -1 -725 625 -1 -626 626 4 -627 626 -1 -726 626 -1 -627 627 4 -628 627 -1 -727 627 -1 -628 628 4 -629 628 -1 -728 628 -1 -629 629 4 -630 629 -1 -729 629 -1 -630 630 4 -631 630 -1 -730 630 -1 -631 631 4 -632 631 -1 -731 631 -1 -632 632 4 -633 632 -1 -732 632 -1 -633 633 4 -634 633 -1 -733 633 -1 -634 634 4 -635 634 -1 -734 634 -1 -635 635 4 -636 635 -1 -735 635 -1 -636 636 4 -637 636 -1 -736 636 -1 -637 637 4 -638 637 -1 -737 637 -1 -638 638 4 -639 638 -1 -738 638 -1 -639 639 4 -640 639 -1 -739 639 -1 -640 640 4 -641 640 -1 -740 640 -1 -641 641 4 -642 641 -1 -741 641 -1 -642 642 4 -643 642 -1 -742 642 -1 -643 643 4 -644 643 -1 -743 643 -1 -644 644 4 -645 644 -1 -744 644 -1 -645 645 4 -646 645 -1 -745 645 -1 -646 646 4 -647 646 -1 -746 646 -1 -647 647 4 -648 647 -1 -747 647 -1 -648 648 4 -649 648 -1 -748 648 -1 -649 649 4 -650 649 -1 -749 649 -1 -650 650 4 -651 650 -1 -750 650 -1 -651 651 4 -652 651 -1 -751 651 -1 -652 652 4 -653 652 -1 -752 652 -1 -653 653 4 -654 653 -1 -753 653 -1 -654 654 4 -655 654 -1 -754 654 -1 -655 655 4 -656 655 -1 -755 655 -1 -656 656 4 -657 656 -1 -756 656 -1 -657 657 4 -658 657 -1 -757 657 -1 -658 658 4 -659 658 -1 -758 658 -1 -659 659 4 -660 659 -1 -759 659 -1 -660 660 4 -661 660 -1 -760 660 -1 -661 661 4 -662 661 -1 -761 661 -1 -662 662 4 -663 662 -1 -762 662 -1 -663 663 4 -664 663 -1 -763 663 -1 -664 664 4 -665 664 -1 -764 664 -1 -665 665 4 -666 665 -1 -765 665 -1 -666 666 4 -667 666 -1 -766 666 -1 -667 667 4 -668 667 -1 -767 667 -1 -668 668 4 -669 668 -1 -768 668 -1 -669 669 4 -670 669 -1 -769 669 -1 -670 670 4 -671 670 -1 -770 670 -1 -671 671 4 -672 671 -1 -771 671 -1 -672 672 4 -673 672 -1 -772 672 -1 -673 673 4 -674 673 -1 -773 673 -1 -674 674 4 -675 674 -1 -774 674 -1 -675 675 4 -676 675 -1 -775 675 -1 -676 676 4 -677 676 -1 -776 676 -1 -677 677 4 -678 677 -1 -777 677 -1 -678 678 4 -679 678 -1 -778 678 -1 -679 679 4 -680 679 -1 -779 679 -1 -680 680 4 -681 680 -1 -780 680 -1 -681 681 4 -682 681 -1 -781 681 -1 -682 682 4 -683 682 -1 -782 682 -1 -683 683 4 -684 683 -1 -783 683 -1 -684 684 4 -685 684 -1 -784 684 -1 -685 685 4 -686 685 -1 -785 685 -1 -686 686 4 -687 686 -1 -786 686 -1 -687 687 4 -688 687 -1 -787 687 -1 -688 688 4 -689 688 -1 -788 688 -1 -689 689 4 -690 689 -1 -789 689 -1 -690 690 4 -691 690 -1 -790 690 -1 -691 691 4 -692 691 -1 -791 691 -1 -692 692 4 -693 692 -1 -792 692 -1 -693 693 4 -694 693 -1 -793 693 -1 -694 694 4 -695 694 -1 -794 694 -1 -695 695 4 -696 695 -1 -795 695 -1 -696 696 4 -697 696 -1 -796 696 -1 -697 697 4 -698 697 -1 -797 697 -1 -698 698 4 -699 698 -1 -798 698 -1 -699 699 4 -700 699 -1 -799 699 -1 -700 700 4 -800 700 -1 -701 701 4 -702 701 -1 -801 701 -1 -702 702 4 -703 702 -1 -802 702 -1 -703 703 4 -704 703 -1 -803 703 -1 -704 704 4 -705 704 -1 -804 704 -1 -705 705 4 -706 705 -1 -805 705 -1 -706 706 4 -707 706 -1 -806 706 -1 -707 707 4 -708 707 -1 -807 707 -1 -708 708 4 -709 708 -1 -808 708 -1 -709 709 4 -710 709 -1 -809 709 -1 -710 710 4 -711 710 -1 -810 710 -1 -711 711 4 -712 711 -1 -811 711 -1 -712 712 4 -713 712 -1 -812 712 -1 -713 713 4 -714 713 -1 -813 713 -1 -714 714 4 -715 714 -1 -814 714 -1 -715 715 4 -716 715 -1 -815 715 -1 -716 716 4 -717 716 -1 -816 716 -1 -717 717 4 -718 717 -1 -817 717 -1 -718 718 4 -719 718 -1 -818 718 -1 -719 719 4 -720 719 -1 -819 719 -1 -720 720 4 -721 720 -1 -820 720 -1 -721 721 4 -722 721 -1 -821 721 -1 -722 722 4 -723 722 -1 -822 722 -1 -723 723 4 -724 723 -1 -823 723 -1 -724 724 4 -725 724 -1 -824 724 -1 -725 725 4 -726 725 -1 -825 725 -1 -726 726 4 -727 726 -1 -826 726 -1 -727 727 4 -728 727 -1 -827 727 -1 -728 728 4 -729 728 -1 -828 728 -1 -729 729 4 -730 729 -1 -829 729 -1 -730 730 4 -731 730 -1 -830 730 -1 -731 731 4 -732 731 -1 -831 731 -1 -732 732 4 -733 732 -1 -832 732 -1 -733 733 4 -734 733 -1 -833 733 -1 -734 734 4 -735 734 -1 -834 734 -1 -735 735 4 -736 735 -1 -835 735 -1 -736 736 4 -737 736 -1 -836 736 -1 -737 737 4 -738 737 -1 -837 737 -1 -738 738 4 -739 738 -1 -838 738 -1 -739 739 4 -740 739 -1 -839 739 -1 -740 740 4 -741 740 -1 -840 740 -1 -741 741 4 -742 741 -1 -841 741 -1 -742 742 4 -743 742 -1 -842 742 -1 -743 743 4 -744 743 -1 -843 743 -1 -744 744 4 -745 744 -1 -844 744 -1 -745 745 4 -746 745 -1 -845 745 -1 -746 746 4 -747 746 -1 -846 746 -1 -747 747 4 -748 747 -1 -847 747 -1 -748 748 4 -749 748 -1 -848 748 -1 -749 749 4 -750 749 -1 -849 749 -1 -750 750 4 -751 750 -1 -850 750 -1 -751 751 4 -752 751 -1 -851 751 -1 -752 752 4 -753 752 -1 -852 752 -1 -753 753 4 -754 753 -1 -853 753 -1 -754 754 4 -755 754 -1 -854 754 -1 -755 755 4 -756 755 -1 -855 755 -1 -756 756 4 -757 756 -1 -856 756 -1 -757 757 4 -758 757 -1 -857 757 -1 -758 758 4 -759 758 -1 -858 758 -1 -759 759 4 -760 759 -1 -859 759 -1 -760 760 4 -761 760 -1 -860 760 -1 -761 761 4 -762 761 -1 -861 761 -1 -762 762 4 -763 762 -1 -862 762 -1 -763 763 4 -764 763 -1 -863 763 -1 -764 764 4 -765 764 -1 -864 764 -1 -765 765 4 -766 765 -1 -865 765 -1 -766 766 4 -767 766 -1 -866 766 -1 -767 767 4 -768 767 -1 -867 767 -1 -768 768 4 -769 768 -1 -868 768 -1 -769 769 4 -770 769 -1 -869 769 -1 -770 770 4 -771 770 -1 -870 770 -1 -771 771 4 -772 771 -1 -871 771 -1 -772 772 4 -773 772 -1 -872 772 -1 -773 773 4 -774 773 -1 -873 773 -1 -774 774 4 -775 774 -1 -874 774 -1 -775 775 4 -776 775 -1 -875 775 -1 -776 776 4 -777 776 -1 -876 776 -1 -777 777 4 -778 777 -1 -877 777 -1 -778 778 4 -779 778 -1 -878 778 -1 -779 779 4 -780 779 -1 -879 779 -1 -780 780 4 -781 780 -1 -880 780 -1 -781 781 4 -782 781 -1 -881 781 -1 -782 782 4 -783 782 -1 -882 782 -1 -783 783 4 -784 783 -1 -883 783 -1 -784 784 4 -785 784 -1 -884 784 -1 -785 785 4 -786 785 -1 -885 785 -1 -786 786 4 -787 786 -1 -886 786 -1 -787 787 4 -788 787 -1 -887 787 -1 -788 788 4 -789 788 -1 -888 788 -1 -789 789 4 -790 789 -1 -889 789 -1 -790 790 4 -791 790 -1 -890 790 -1 -791 791 4 -792 791 -1 -891 791 -1 -792 792 4 -793 792 -1 -892 792 -1 -793 793 4 -794 793 -1 -893 793 -1 -794 794 4 -795 794 -1 -894 794 -1 -795 795 4 -796 795 -1 -895 795 -1 -796 796 4 -797 796 -1 -896 796 -1 -797 797 4 -798 797 -1 -897 797 -1 -798 798 4 -799 798 -1 -898 798 -1 -799 799 4 -800 799 -1 -899 799 -1 -800 800 4 -900 800 -1 -801 801 4 -802 801 -1 -901 801 -1 -802 802 4 -803 802 -1 -902 802 -1 -803 803 4 -804 803 -1 -903 803 -1 -804 804 4 -805 804 -1 -904 804 -1 -805 805 4 -806 805 -1 -905 805 -1 -806 806 4 -807 806 -1 -906 806 -1 -807 807 4 -808 807 -1 -907 807 -1 -808 808 4 -809 808 -1 -908 808 -1 -809 809 4 -810 809 -1 -909 809 -1 -810 810 4 -811 810 -1 -910 810 -1 -811 811 4 -812 811 -1 -911 811 -1 -812 812 4 -813 812 -1 -912 812 -1 -813 813 4 -814 813 -1 -913 813 -1 -814 814 4 -815 814 -1 -914 814 -1 -815 815 4 -816 815 -1 -915 815 -1 -816 816 4 -817 816 -1 -916 816 -1 -817 817 4 -818 817 -1 -917 817 -1 -818 818 4 -819 818 -1 -918 818 -1 -819 819 4 -820 819 -1 -919 819 -1 -820 820 4 -821 820 -1 -920 820 -1 -821 821 4 -822 821 -1 -921 821 -1 -822 822 4 -823 822 -1 -922 822 -1 -823 823 4 -824 823 -1 -923 823 -1 -824 824 4 -825 824 -1 -924 824 -1 -825 825 4 -826 825 -1 -925 825 -1 -826 826 4 -827 826 -1 -926 826 -1 -827 827 4 -828 827 -1 -927 827 -1 -828 828 4 -829 828 -1 -928 828 -1 -829 829 4 -830 829 -1 -929 829 -1 -830 830 4 -831 830 -1 -930 830 -1 -831 831 4 -832 831 -1 -931 831 -1 -832 832 4 -833 832 -1 -932 832 -1 -833 833 4 -834 833 -1 -933 833 -1 -834 834 4 -835 834 -1 -934 834 -1 -835 835 4 -836 835 -1 -935 835 -1 -836 836 4 -837 836 -1 -936 836 -1 -837 837 4 -838 837 -1 -937 837 -1 -838 838 4 -839 838 -1 -938 838 -1 -839 839 4 -840 839 -1 -939 839 -1 -840 840 4 -841 840 -1 -940 840 -1 -841 841 4 -842 841 -1 -941 841 -1 -842 842 4 -843 842 -1 -942 842 -1 -843 843 4 -844 843 -1 -943 843 -1 -844 844 4 -845 844 -1 -944 844 -1 -845 845 4 -846 845 -1 -945 845 -1 -846 846 4 -847 846 -1 -946 846 -1 -847 847 4 -848 847 -1 -947 847 -1 -848 848 4 -849 848 -1 -948 848 -1 -849 849 4 -850 849 -1 -949 849 -1 -850 850 4 -851 850 -1 -950 850 -1 -851 851 4 -852 851 -1 -951 851 -1 -852 852 4 -853 852 -1 -952 852 -1 -853 853 4 -854 853 -1 -953 853 -1 -854 854 4 -855 854 -1 -954 854 -1 -855 855 4 -856 855 -1 -955 855 -1 -856 856 4 -857 856 -1 -956 856 -1 -857 857 4 -858 857 -1 -957 857 -1 -858 858 4 -859 858 -1 -958 858 -1 -859 859 4 -860 859 -1 -959 859 -1 -860 860 4 -861 860 -1 -960 860 -1 -861 861 4 -862 861 -1 -961 861 -1 -862 862 4 -863 862 -1 -962 862 -1 -863 863 4 -864 863 -1 -963 863 -1 -864 864 4 -865 864 -1 -964 864 -1 -865 865 4 -866 865 -1 -965 865 -1 -866 866 4 -867 866 -1 -966 866 -1 -867 867 4 -868 867 -1 -967 867 -1 -868 868 4 -869 868 -1 -968 868 -1 -869 869 4 -870 869 -1 -969 869 -1 -870 870 4 -871 870 -1 -970 870 -1 -871 871 4 -872 871 -1 -971 871 -1 -872 872 4 -873 872 -1 -972 872 -1 -873 873 4 -874 873 -1 -973 873 -1 -874 874 4 -875 874 -1 -974 874 -1 -875 875 4 -876 875 -1 -975 875 -1 -876 876 4 -877 876 -1 -976 876 -1 -877 877 4 -878 877 -1 -977 877 -1 -878 878 4 -879 878 -1 -978 878 -1 -879 879 4 -880 879 -1 -979 879 -1 -880 880 4 -881 880 -1 -980 880 -1 -881 881 4 -882 881 -1 -981 881 -1 -882 882 4 -883 882 -1 -982 882 -1 -883 883 4 -884 883 -1 -983 883 -1 -884 884 4 -885 884 -1 -984 884 -1 -885 885 4 -886 885 -1 -985 885 -1 -886 886 4 -887 886 -1 -986 886 -1 -887 887 4 -888 887 -1 -987 887 -1 -888 888 4 -889 888 -1 -988 888 -1 -889 889 4 -890 889 -1 -989 889 -1 -890 890 4 -891 890 -1 -990 890 -1 -891 891 4 -892 891 -1 -991 891 -1 -892 892 4 -893 892 -1 -992 892 -1 -893 893 4 -894 893 -1 -993 893 -1 -894 894 4 -895 894 -1 -994 894 -1 -895 895 4 -896 895 -1 -995 895 -1 -896 896 4 -897 896 -1 -996 896 -1 -897 897 4 -898 897 -1 -997 897 -1 -898 898 4 -899 898 -1 -998 898 -1 -899 899 4 -900 899 -1 -999 899 -1 -900 900 4 -1000 900 -1 -901 901 4 -902 901 -1 -1001 901 -1 -902 902 4 -903 902 -1 -1002 902 -1 -903 903 4 -904 903 -1 -1003 903 -1 -904 904 4 -905 904 -1 -1004 904 -1 -905 905 4 -906 905 -1 -1005 905 -1 -906 906 4 -907 906 -1 -1006 906 -1 -907 907 4 -908 907 -1 -1007 907 -1 -908 908 4 -909 908 -1 -1008 908 -1 -909 909 4 -910 909 -1 -1009 909 -1 -910 910 4 -911 910 -1 -1010 910 -1 -911 911 4 -912 911 -1 -1011 911 -1 -912 912 4 -913 912 -1 -1012 912 -1 -913 913 4 -914 913 -1 -1013 913 -1 -914 914 4 -915 914 -1 -1014 914 -1 -915 915 4 -916 915 -1 -1015 915 -1 -916 916 4 -917 916 -1 -1016 916 -1 -917 917 4 -918 917 -1 -1017 917 -1 -918 918 4 -919 918 -1 -1018 918 -1 -919 919 4 -920 919 -1 -1019 919 -1 -920 920 4 -921 920 -1 -1020 920 -1 -921 921 4 -922 921 -1 -1021 921 -1 -922 922 4 -923 922 -1 -1022 922 -1 -923 923 4 -924 923 -1 -1023 923 -1 -924 924 4 -925 924 -1 -1024 924 -1 -925 925 4 -926 925 -1 -1025 925 -1 -926 926 4 -927 926 -1 -1026 926 -1 -927 927 4 -928 927 -1 -1027 927 -1 -928 928 4 -929 928 -1 -1028 928 -1 -929 929 4 -930 929 -1 -1029 929 -1 -930 930 4 -931 930 -1 -1030 930 -1 -931 931 4 -932 931 -1 -1031 931 -1 -932 932 4 -933 932 -1 -1032 932 -1 -933 933 4 -934 933 -1 -1033 933 -1 -934 934 4 -935 934 -1 -1034 934 -1 -935 935 4 -936 935 -1 -1035 935 -1 -936 936 4 -937 936 -1 -1036 936 -1 -937 937 4 -938 937 -1 -1037 937 -1 -938 938 4 -939 938 -1 -1038 938 -1 -939 939 4 -940 939 -1 -1039 939 -1 -940 940 4 -941 940 -1 -1040 940 -1 -941 941 4 -942 941 -1 -1041 941 -1 -942 942 4 -943 942 -1 -1042 942 -1 -943 943 4 -944 943 -1 -1043 943 -1 -944 944 4 -945 944 -1 -1044 944 -1 -945 945 4 -946 945 -1 -1045 945 -1 -946 946 4 -947 946 -1 -1046 946 -1 -947 947 4 -948 947 -1 -1047 947 -1 -948 948 4 -949 948 -1 -1048 948 -1 -949 949 4 -950 949 -1 -1049 949 -1 -950 950 4 -951 950 -1 -1050 950 -1 -951 951 4 -952 951 -1 -1051 951 -1 -952 952 4 -953 952 -1 -1052 952 -1 -953 953 4 -954 953 -1 -1053 953 -1 -954 954 4 -955 954 -1 -1054 954 -1 -955 955 4 -956 955 -1 -1055 955 -1 -956 956 4 -957 956 -1 -1056 956 -1 -957 957 4 -958 957 -1 -1057 957 -1 -958 958 4 -959 958 -1 -1058 958 -1 -959 959 4 -960 959 -1 -1059 959 -1 -960 960 4 -961 960 -1 -1060 960 -1 -961 961 4 -962 961 -1 -1061 961 -1 -962 962 4 -963 962 -1 -1062 962 -1 -963 963 4 -964 963 -1 -1063 963 -1 -964 964 4 -965 964 -1 -1064 964 -1 -965 965 4 -966 965 -1 -1065 965 -1 -966 966 4 -967 966 -1 -1066 966 -1 -967 967 4 -968 967 -1 -1067 967 -1 -968 968 4 -969 968 -1 -1068 968 -1 -969 969 4 -970 969 -1 -1069 969 -1 -970 970 4 -971 970 -1 -1070 970 -1 -971 971 4 -972 971 -1 -1071 971 -1 -972 972 4 -973 972 -1 -1072 972 -1 -973 973 4 -974 973 -1 -1073 973 -1 -974 974 4 -975 974 -1 -1074 974 -1 -975 975 4 -976 975 -1 -1075 975 -1 -976 976 4 -977 976 -1 -1076 976 -1 -977 977 4 -978 977 -1 -1077 977 -1 -978 978 4 -979 978 -1 -1078 978 -1 -979 979 4 -980 979 -1 -1079 979 -1 -980 980 4 -981 980 -1 -1080 980 -1 -981 981 4 -982 981 -1 -1081 981 -1 -982 982 4 -983 982 -1 -1082 982 -1 -983 983 4 -984 983 -1 -1083 983 -1 -984 984 4 -985 984 -1 -1084 984 -1 -985 985 4 -986 985 -1 -1085 985 -1 -986 986 4 -987 986 -1 -1086 986 -1 -987 987 4 -988 987 -1 -1087 987 -1 -988 988 4 -989 988 -1 -1088 988 -1 -989 989 4 -990 989 -1 -1089 989 -1 -990 990 4 -991 990 -1 -1090 990 -1 -991 991 4 -992 991 -1 -1091 991 -1 -992 992 4 -993 992 -1 -1092 992 -1 -993 993 4 -994 993 -1 -1093 993 -1 -994 994 4 -995 994 -1 -1094 994 -1 -995 995 4 -996 995 -1 -1095 995 -1 -996 996 4 -997 996 -1 -1096 996 -1 -997 997 4 -998 997 -1 -1097 997 -1 -998 998 4 -999 998 -1 -1098 998 -1 -999 999 4 -1000 999 -1 -1099 999 -1 -1000 1000 4 -1100 1000 -1 -1001 1001 4 -1002 1001 -1 -1101 1001 -1 -1002 1002 4 -1003 1002 -1 -1102 1002 -1 -1003 1003 4 -1004 1003 -1 -1103 1003 -1 -1004 1004 4 -1005 1004 -1 -1104 1004 -1 -1005 1005 4 -1006 1005 -1 -1105 1005 -1 -1006 1006 4 -1007 1006 -1 -1106 1006 -1 -1007 1007 4 -1008 1007 -1 -1107 1007 -1 -1008 1008 4 -1009 1008 -1 -1108 1008 -1 -1009 1009 4 -1010 1009 -1 -1109 1009 -1 -1010 1010 4 -1011 1010 -1 -1110 1010 -1 -1011 1011 4 -1012 1011 -1 -1111 1011 -1 -1012 1012 4 -1013 1012 -1 -1112 1012 -1 -1013 1013 4 -1014 1013 -1 -1113 1013 -1 -1014 1014 4 -1015 1014 -1 -1114 1014 -1 -1015 1015 4 -1016 1015 -1 -1115 1015 -1 -1016 1016 4 -1017 1016 -1 -1116 1016 -1 -1017 1017 4 -1018 1017 -1 -1117 1017 -1 -1018 1018 4 -1019 1018 -1 -1118 1018 -1 -1019 1019 4 -1020 1019 -1 -1119 1019 -1 -1020 1020 4 -1021 1020 -1 -1120 1020 -1 -1021 1021 4 -1022 1021 -1 -1121 1021 -1 -1022 1022 4 -1023 1022 -1 -1122 1022 -1 -1023 1023 4 -1024 1023 -1 -1123 1023 -1 -1024 1024 4 -1025 1024 -1 -1124 1024 -1 -1025 1025 4 -1026 1025 -1 -1125 1025 -1 -1026 1026 4 -1027 1026 -1 -1126 1026 -1 -1027 1027 4 -1028 1027 -1 -1127 1027 -1 -1028 1028 4 -1029 1028 -1 -1128 1028 -1 -1029 1029 4 -1030 1029 -1 -1129 1029 -1 -1030 1030 4 -1031 1030 -1 -1130 1030 -1 -1031 1031 4 -1032 1031 -1 -1131 1031 -1 -1032 1032 4 -1033 1032 -1 -1132 1032 -1 -1033 1033 4 -1034 1033 -1 -1133 1033 -1 -1034 1034 4 -1035 1034 -1 -1134 1034 -1 -1035 1035 4 -1036 1035 -1 -1135 1035 -1 -1036 1036 4 -1037 1036 -1 -1136 1036 -1 -1037 1037 4 -1038 1037 -1 -1137 1037 -1 -1038 1038 4 -1039 1038 -1 -1138 1038 -1 -1039 1039 4 -1040 1039 -1 -1139 1039 -1 -1040 1040 4 -1041 1040 -1 -1140 1040 -1 -1041 1041 4 -1042 1041 -1 -1141 1041 -1 -1042 1042 4 -1043 1042 -1 -1142 1042 -1 -1043 1043 4 -1044 1043 -1 -1143 1043 -1 -1044 1044 4 -1045 1044 -1 -1144 1044 -1 -1045 1045 4 -1046 1045 -1 -1145 1045 -1 -1046 1046 4 -1047 1046 -1 -1146 1046 -1 -1047 1047 4 -1048 1047 -1 -1147 1047 -1 -1048 1048 4 -1049 1048 -1 -1148 1048 -1 -1049 1049 4 -1050 1049 -1 -1149 1049 -1 -1050 1050 4 -1051 1050 -1 -1150 1050 -1 -1051 1051 4 -1052 1051 -1 -1151 1051 -1 -1052 1052 4 -1053 1052 -1 -1152 1052 -1 -1053 1053 4 -1054 1053 -1 -1153 1053 -1 -1054 1054 4 -1055 1054 -1 -1154 1054 -1 -1055 1055 4 -1056 1055 -1 -1155 1055 -1 -1056 1056 4 -1057 1056 -1 -1156 1056 -1 -1057 1057 4 -1058 1057 -1 -1157 1057 -1 -1058 1058 4 -1059 1058 -1 -1158 1058 -1 -1059 1059 4 -1060 1059 -1 -1159 1059 -1 -1060 1060 4 -1061 1060 -1 -1160 1060 -1 -1061 1061 4 -1062 1061 -1 -1161 1061 -1 -1062 1062 4 -1063 1062 -1 -1162 1062 -1 -1063 1063 4 -1064 1063 -1 -1163 1063 -1 -1064 1064 4 -1065 1064 -1 -1164 1064 -1 -1065 1065 4 -1066 1065 -1 -1165 1065 -1 -1066 1066 4 -1067 1066 -1 -1166 1066 -1 -1067 1067 4 -1068 1067 -1 -1167 1067 -1 -1068 1068 4 -1069 1068 -1 -1168 1068 -1 -1069 1069 4 -1070 1069 -1 -1169 1069 -1 -1070 1070 4 -1071 1070 -1 -1170 1070 -1 -1071 1071 4 -1072 1071 -1 -1171 1071 -1 -1072 1072 4 -1073 1072 -1 -1172 1072 -1 -1073 1073 4 -1074 1073 -1 -1173 1073 -1 -1074 1074 4 -1075 1074 -1 -1174 1074 -1 -1075 1075 4 -1076 1075 -1 -1175 1075 -1 -1076 1076 4 -1077 1076 -1 -1176 1076 -1 -1077 1077 4 -1078 1077 -1 -1177 1077 -1 -1078 1078 4 -1079 1078 -1 -1178 1078 -1 -1079 1079 4 -1080 1079 -1 -1179 1079 -1 -1080 1080 4 -1081 1080 -1 -1180 1080 -1 -1081 1081 4 -1082 1081 -1 -1181 1081 -1 -1082 1082 4 -1083 1082 -1 -1182 1082 -1 -1083 1083 4 -1084 1083 -1 -1183 1083 -1 -1084 1084 4 -1085 1084 -1 -1184 1084 -1 -1085 1085 4 -1086 1085 -1 -1185 1085 -1 -1086 1086 4 -1087 1086 -1 -1186 1086 -1 -1087 1087 4 -1088 1087 -1 -1187 1087 -1 -1088 1088 4 -1089 1088 -1 -1188 1088 -1 -1089 1089 4 -1090 1089 -1 -1189 1089 -1 -1090 1090 4 -1091 1090 -1 -1190 1090 -1 -1091 1091 4 -1092 1091 -1 -1191 1091 -1 -1092 1092 4 -1093 1092 -1 -1192 1092 -1 -1093 1093 4 -1094 1093 -1 -1193 1093 -1 -1094 1094 4 -1095 1094 -1 -1194 1094 -1 -1095 1095 4 -1096 1095 -1 -1195 1095 -1 -1096 1096 4 -1097 1096 -1 -1196 1096 -1 -1097 1097 4 -1098 1097 -1 -1197 1097 -1 -1098 1098 4 -1099 1098 -1 -1198 1098 -1 -1099 1099 4 -1100 1099 -1 -1199 1099 -1 -1100 1100 4 -1200 1100 -1 -1101 1101 4 -1102 1101 -1 -1201 1101 -1 -1102 1102 4 -1103 1102 -1 -1202 1102 -1 -1103 1103 4 -1104 1103 -1 -1203 1103 -1 -1104 1104 4 -1105 1104 -1 -1204 1104 -1 -1105 1105 4 -1106 1105 -1 -1205 1105 -1 -1106 1106 4 -1107 1106 -1 -1206 1106 -1 -1107 1107 4 -1108 1107 -1 -1207 1107 -1 -1108 1108 4 -1109 1108 -1 -1208 1108 -1 -1109 1109 4 -1110 1109 -1 -1209 1109 -1 -1110 1110 4 -1111 1110 -1 -1210 1110 -1 -1111 1111 4 -1112 1111 -1 -1211 1111 -1 -1112 1112 4 -1113 1112 -1 -1212 1112 -1 -1113 1113 4 -1114 1113 -1 -1213 1113 -1 -1114 1114 4 -1115 1114 -1 -1214 1114 -1 -1115 1115 4 -1116 1115 -1 -1215 1115 -1 -1116 1116 4 -1117 1116 -1 -1216 1116 -1 -1117 1117 4 -1118 1117 -1 -1217 1117 -1 -1118 1118 4 -1119 1118 -1 -1218 1118 -1 -1119 1119 4 -1120 1119 -1 -1219 1119 -1 -1120 1120 4 -1121 1120 -1 -1220 1120 -1 -1121 1121 4 -1122 1121 -1 -1221 1121 -1 -1122 1122 4 -1123 1122 -1 -1222 1122 -1 -1123 1123 4 -1124 1123 -1 -1223 1123 -1 -1124 1124 4 -1125 1124 -1 -1224 1124 -1 -1125 1125 4 -1126 1125 -1 -1225 1125 -1 -1126 1126 4 -1127 1126 -1 -1226 1126 -1 -1127 1127 4 -1128 1127 -1 -1227 1127 -1 -1128 1128 4 -1129 1128 -1 -1228 1128 -1 -1129 1129 4 -1130 1129 -1 -1229 1129 -1 -1130 1130 4 -1131 1130 -1 -1230 1130 -1 -1131 1131 4 -1132 1131 -1 -1231 1131 -1 -1132 1132 4 -1133 1132 -1 -1232 1132 -1 -1133 1133 4 -1134 1133 -1 -1233 1133 -1 -1134 1134 4 -1135 1134 -1 -1234 1134 -1 -1135 1135 4 -1136 1135 -1 -1235 1135 -1 -1136 1136 4 -1137 1136 -1 -1236 1136 -1 -1137 1137 4 -1138 1137 -1 -1237 1137 -1 -1138 1138 4 -1139 1138 -1 -1238 1138 -1 -1139 1139 4 -1140 1139 -1 -1239 1139 -1 -1140 1140 4 -1141 1140 -1 -1240 1140 -1 -1141 1141 4 -1142 1141 -1 -1241 1141 -1 -1142 1142 4 -1143 1142 -1 -1242 1142 -1 -1143 1143 4 -1144 1143 -1 -1243 1143 -1 -1144 1144 4 -1145 1144 -1 -1244 1144 -1 -1145 1145 4 -1146 1145 -1 -1245 1145 -1 -1146 1146 4 -1147 1146 -1 -1246 1146 -1 -1147 1147 4 -1148 1147 -1 -1247 1147 -1 -1148 1148 4 -1149 1148 -1 -1248 1148 -1 -1149 1149 4 -1150 1149 -1 -1249 1149 -1 -1150 1150 4 -1151 1150 -1 -1250 1150 -1 -1151 1151 4 -1152 1151 -1 -1251 1151 -1 -1152 1152 4 -1153 1152 -1 -1252 1152 -1 -1153 1153 4 -1154 1153 -1 -1253 1153 -1 -1154 1154 4 -1155 1154 -1 -1254 1154 -1 -1155 1155 4 -1156 1155 -1 -1255 1155 -1 -1156 1156 4 -1157 1156 -1 -1256 1156 -1 -1157 1157 4 -1158 1157 -1 -1257 1157 -1 -1158 1158 4 -1159 1158 -1 -1258 1158 -1 -1159 1159 4 -1160 1159 -1 -1259 1159 -1 -1160 1160 4 -1161 1160 -1 -1260 1160 -1 -1161 1161 4 -1162 1161 -1 -1261 1161 -1 -1162 1162 4 -1163 1162 -1 -1262 1162 -1 -1163 1163 4 -1164 1163 -1 -1263 1163 -1 -1164 1164 4 -1165 1164 -1 -1264 1164 -1 -1165 1165 4 -1166 1165 -1 -1265 1165 -1 -1166 1166 4 -1167 1166 -1 -1266 1166 -1 -1167 1167 4 -1168 1167 -1 -1267 1167 -1 -1168 1168 4 -1169 1168 -1 -1268 1168 -1 -1169 1169 4 -1170 1169 -1 -1269 1169 -1 -1170 1170 4 -1171 1170 -1 -1270 1170 -1 -1171 1171 4 -1172 1171 -1 -1271 1171 -1 -1172 1172 4 -1173 1172 -1 -1272 1172 -1 -1173 1173 4 -1174 1173 -1 -1273 1173 -1 -1174 1174 4 -1175 1174 -1 -1274 1174 -1 -1175 1175 4 -1176 1175 -1 -1275 1175 -1 -1176 1176 4 -1177 1176 -1 -1276 1176 -1 -1177 1177 4 -1178 1177 -1 -1277 1177 -1 -1178 1178 4 -1179 1178 -1 -1278 1178 -1 -1179 1179 4 -1180 1179 -1 -1279 1179 -1 -1180 1180 4 -1181 1180 -1 -1280 1180 -1 -1181 1181 4 -1182 1181 -1 -1281 1181 -1 -1182 1182 4 -1183 1182 -1 -1282 1182 -1 -1183 1183 4 -1184 1183 -1 -1283 1183 -1 -1184 1184 4 -1185 1184 -1 -1284 1184 -1 -1185 1185 4 -1186 1185 -1 -1285 1185 -1 -1186 1186 4 -1187 1186 -1 -1286 1186 -1 -1187 1187 4 -1188 1187 -1 -1287 1187 -1 -1188 1188 4 -1189 1188 -1 -1288 1188 -1 -1189 1189 4 -1190 1189 -1 -1289 1189 -1 -1190 1190 4 -1191 1190 -1 -1290 1190 -1 -1191 1191 4 -1192 1191 -1 -1291 1191 -1 -1192 1192 4 -1193 1192 -1 -1292 1192 -1 -1193 1193 4 -1194 1193 -1 -1293 1193 -1 -1194 1194 4 -1195 1194 -1 -1294 1194 -1 -1195 1195 4 -1196 1195 -1 -1295 1195 -1 -1196 1196 4 -1197 1196 -1 -1296 1196 -1 -1197 1197 4 -1198 1197 -1 -1297 1197 -1 -1198 1198 4 -1199 1198 -1 -1298 1198 -1 -1199 1199 4 -1200 1199 -1 -1299 1199 -1 -1200 1200 4 -1300 1200 -1 -1201 1201 4 -1202 1201 -1 -1301 1201 -1 -1202 1202 4 -1203 1202 -1 -1302 1202 -1 -1203 1203 4 -1204 1203 -1 -1303 1203 -1 -1204 1204 4 -1205 1204 -1 -1304 1204 -1 -1205 1205 4 -1206 1205 -1 -1305 1205 -1 -1206 1206 4 -1207 1206 -1 -1306 1206 -1 -1207 1207 4 -1208 1207 -1 -1307 1207 -1 -1208 1208 4 -1209 1208 -1 -1308 1208 -1 -1209 1209 4 -1210 1209 -1 -1309 1209 -1 -1210 1210 4 -1211 1210 -1 -1310 1210 -1 -1211 1211 4 -1212 1211 -1 -1311 1211 -1 -1212 1212 4 -1213 1212 -1 -1312 1212 -1 -1213 1213 4 -1214 1213 -1 -1313 1213 -1 -1214 1214 4 -1215 1214 -1 -1314 1214 -1 -1215 1215 4 -1216 1215 -1 -1315 1215 -1 -1216 1216 4 -1217 1216 -1 -1316 1216 -1 -1217 1217 4 -1218 1217 -1 -1317 1217 -1 -1218 1218 4 -1219 1218 -1 -1318 1218 -1 -1219 1219 4 -1220 1219 -1 -1319 1219 -1 -1220 1220 4 -1221 1220 -1 -1320 1220 -1 -1221 1221 4 -1222 1221 -1 -1321 1221 -1 -1222 1222 4 -1223 1222 -1 -1322 1222 -1 -1223 1223 4 -1224 1223 -1 -1323 1223 -1 -1224 1224 4 -1225 1224 -1 -1324 1224 -1 -1225 1225 4 -1226 1225 -1 -1325 1225 -1 -1226 1226 4 -1227 1226 -1 -1326 1226 -1 -1227 1227 4 -1228 1227 -1 -1327 1227 -1 -1228 1228 4 -1229 1228 -1 -1328 1228 -1 -1229 1229 4 -1230 1229 -1 -1329 1229 -1 -1230 1230 4 -1231 1230 -1 -1330 1230 -1 -1231 1231 4 -1232 1231 -1 -1331 1231 -1 -1232 1232 4 -1233 1232 -1 -1332 1232 -1 -1233 1233 4 -1234 1233 -1 -1333 1233 -1 -1234 1234 4 -1235 1234 -1 -1334 1234 -1 -1235 1235 4 -1236 1235 -1 -1335 1235 -1 -1236 1236 4 -1237 1236 -1 -1336 1236 -1 -1237 1237 4 -1238 1237 -1 -1337 1237 -1 -1238 1238 4 -1239 1238 -1 -1338 1238 -1 -1239 1239 4 -1240 1239 -1 -1339 1239 -1 -1240 1240 4 -1241 1240 -1 -1340 1240 -1 -1241 1241 4 -1242 1241 -1 -1341 1241 -1 -1242 1242 4 -1243 1242 -1 -1342 1242 -1 -1243 1243 4 -1244 1243 -1 -1343 1243 -1 -1244 1244 4 -1245 1244 -1 -1344 1244 -1 -1245 1245 4 -1246 1245 -1 -1345 1245 -1 -1246 1246 4 -1247 1246 -1 -1346 1246 -1 -1247 1247 4 -1248 1247 -1 -1347 1247 -1 -1248 1248 4 -1249 1248 -1 -1348 1248 -1 -1249 1249 4 -1250 1249 -1 -1349 1249 -1 -1250 1250 4 -1251 1250 -1 -1350 1250 -1 -1251 1251 4 -1252 1251 -1 -1351 1251 -1 -1252 1252 4 -1253 1252 -1 -1352 1252 -1 -1253 1253 4 -1254 1253 -1 -1353 1253 -1 -1254 1254 4 -1255 1254 -1 -1354 1254 -1 -1255 1255 4 -1256 1255 -1 -1355 1255 -1 -1256 1256 4 -1257 1256 -1 -1356 1256 -1 -1257 1257 4 -1258 1257 -1 -1357 1257 -1 -1258 1258 4 -1259 1258 -1 -1358 1258 -1 -1259 1259 4 -1260 1259 -1 -1359 1259 -1 -1260 1260 4 -1261 1260 -1 -1360 1260 -1 -1261 1261 4 -1262 1261 -1 -1361 1261 -1 -1262 1262 4 -1263 1262 -1 -1362 1262 -1 -1263 1263 4 -1264 1263 -1 -1363 1263 -1 -1264 1264 4 -1265 1264 -1 -1364 1264 -1 -1265 1265 4 -1266 1265 -1 -1365 1265 -1 -1266 1266 4 -1267 1266 -1 -1366 1266 -1 -1267 1267 4 -1268 1267 -1 -1367 1267 -1 -1268 1268 4 -1269 1268 -1 -1368 1268 -1 -1269 1269 4 -1270 1269 -1 -1369 1269 -1 -1270 1270 4 -1271 1270 -1 -1370 1270 -1 -1271 1271 4 -1272 1271 -1 -1371 1271 -1 -1272 1272 4 -1273 1272 -1 -1372 1272 -1 -1273 1273 4 -1274 1273 -1 -1373 1273 -1 -1274 1274 4 -1275 1274 -1 -1374 1274 -1 -1275 1275 4 -1276 1275 -1 -1375 1275 -1 -1276 1276 4 -1277 1276 -1 -1376 1276 -1 -1277 1277 4 -1278 1277 -1 -1377 1277 -1 -1278 1278 4 -1279 1278 -1 -1378 1278 -1 -1279 1279 4 -1280 1279 -1 -1379 1279 -1 -1280 1280 4 -1281 1280 -1 -1380 1280 -1 -1281 1281 4 -1282 1281 -1 -1381 1281 -1 -1282 1282 4 -1283 1282 -1 -1382 1282 -1 -1283 1283 4 -1284 1283 -1 -1383 1283 -1 -1284 1284 4 -1285 1284 -1 -1384 1284 -1 -1285 1285 4 -1286 1285 -1 -1385 1285 -1 -1286 1286 4 -1287 1286 -1 -1386 1286 -1 -1287 1287 4 -1288 1287 -1 -1387 1287 -1 -1288 1288 4 -1289 1288 -1 -1388 1288 -1 -1289 1289 4 -1290 1289 -1 -1389 1289 -1 -1290 1290 4 -1291 1290 -1 -1390 1290 -1 -1291 1291 4 -1292 1291 -1 -1391 1291 -1 -1292 1292 4 -1293 1292 -1 -1392 1292 -1 -1293 1293 4 -1294 1293 -1 -1393 1293 -1 -1294 1294 4 -1295 1294 -1 -1394 1294 -1 -1295 1295 4 -1296 1295 -1 -1395 1295 -1 -1296 1296 4 -1297 1296 -1 -1396 1296 -1 -1297 1297 4 -1298 1297 -1 -1397 1297 -1 -1298 1298 4 -1299 1298 -1 -1398 1298 -1 -1299 1299 4 -1300 1299 -1 -1399 1299 -1 -1300 1300 4 -1400 1300 -1 -1301 1301 4 -1302 1301 -1 -1401 1301 -1 -1302 1302 4 -1303 1302 -1 -1402 1302 -1 -1303 1303 4 -1304 1303 -1 -1403 1303 -1 -1304 1304 4 -1305 1304 -1 -1404 1304 -1 -1305 1305 4 -1306 1305 -1 -1405 1305 -1 -1306 1306 4 -1307 1306 -1 -1406 1306 -1 -1307 1307 4 -1308 1307 -1 -1407 1307 -1 -1308 1308 4 -1309 1308 -1 -1408 1308 -1 -1309 1309 4 -1310 1309 -1 -1409 1309 -1 -1310 1310 4 -1311 1310 -1 -1410 1310 -1 -1311 1311 4 -1312 1311 -1 -1411 1311 -1 -1312 1312 4 -1313 1312 -1 -1412 1312 -1 -1313 1313 4 -1314 1313 -1 -1413 1313 -1 -1314 1314 4 -1315 1314 -1 -1414 1314 -1 -1315 1315 4 -1316 1315 -1 -1415 1315 -1 -1316 1316 4 -1317 1316 -1 -1416 1316 -1 -1317 1317 4 -1318 1317 -1 -1417 1317 -1 -1318 1318 4 -1319 1318 -1 -1418 1318 -1 -1319 1319 4 -1320 1319 -1 -1419 1319 -1 -1320 1320 4 -1321 1320 -1 -1420 1320 -1 -1321 1321 4 -1322 1321 -1 -1421 1321 -1 -1322 1322 4 -1323 1322 -1 -1422 1322 -1 -1323 1323 4 -1324 1323 -1 -1423 1323 -1 -1324 1324 4 -1325 1324 -1 -1424 1324 -1 -1325 1325 4 -1326 1325 -1 -1425 1325 -1 -1326 1326 4 -1327 1326 -1 -1426 1326 -1 -1327 1327 4 -1328 1327 -1 -1427 1327 -1 -1328 1328 4 -1329 1328 -1 -1428 1328 -1 -1329 1329 4 -1330 1329 -1 -1429 1329 -1 -1330 1330 4 -1331 1330 -1 -1430 1330 -1 -1331 1331 4 -1332 1331 -1 -1431 1331 -1 -1332 1332 4 -1333 1332 -1 -1432 1332 -1 -1333 1333 4 -1334 1333 -1 -1433 1333 -1 -1334 1334 4 -1335 1334 -1 -1434 1334 -1 -1335 1335 4 -1336 1335 -1 -1435 1335 -1 -1336 1336 4 -1337 1336 -1 -1436 1336 -1 -1337 1337 4 -1338 1337 -1 -1437 1337 -1 -1338 1338 4 -1339 1338 -1 -1438 1338 -1 -1339 1339 4 -1340 1339 -1 -1439 1339 -1 -1340 1340 4 -1341 1340 -1 -1440 1340 -1 -1341 1341 4 -1342 1341 -1 -1441 1341 -1 -1342 1342 4 -1343 1342 -1 -1442 1342 -1 -1343 1343 4 -1344 1343 -1 -1443 1343 -1 -1344 1344 4 -1345 1344 -1 -1444 1344 -1 -1345 1345 4 -1346 1345 -1 -1445 1345 -1 -1346 1346 4 -1347 1346 -1 -1446 1346 -1 -1347 1347 4 -1348 1347 -1 -1447 1347 -1 -1348 1348 4 -1349 1348 -1 -1448 1348 -1 -1349 1349 4 -1350 1349 -1 -1449 1349 -1 -1350 1350 4 -1351 1350 -1 -1450 1350 -1 -1351 1351 4 -1352 1351 -1 -1451 1351 -1 -1352 1352 4 -1353 1352 -1 -1452 1352 -1 -1353 1353 4 -1354 1353 -1 -1453 1353 -1 -1354 1354 4 -1355 1354 -1 -1454 1354 -1 -1355 1355 4 -1356 1355 -1 -1455 1355 -1 -1356 1356 4 -1357 1356 -1 -1456 1356 -1 -1357 1357 4 -1358 1357 -1 -1457 1357 -1 -1358 1358 4 -1359 1358 -1 -1458 1358 -1 -1359 1359 4 -1360 1359 -1 -1459 1359 -1 -1360 1360 4 -1361 1360 -1 -1460 1360 -1 -1361 1361 4 -1362 1361 -1 -1461 1361 -1 -1362 1362 4 -1363 1362 -1 -1462 1362 -1 -1363 1363 4 -1364 1363 -1 -1463 1363 -1 -1364 1364 4 -1365 1364 -1 -1464 1364 -1 -1365 1365 4 -1366 1365 -1 -1465 1365 -1 -1366 1366 4 -1367 1366 -1 -1466 1366 -1 -1367 1367 4 -1368 1367 -1 -1467 1367 -1 -1368 1368 4 -1369 1368 -1 -1468 1368 -1 -1369 1369 4 -1370 1369 -1 -1469 1369 -1 -1370 1370 4 -1371 1370 -1 -1470 1370 -1 -1371 1371 4 -1372 1371 -1 -1471 1371 -1 -1372 1372 4 -1373 1372 -1 -1472 1372 -1 -1373 1373 4 -1374 1373 -1 -1473 1373 -1 -1374 1374 4 -1375 1374 -1 -1474 1374 -1 -1375 1375 4 -1376 1375 -1 -1475 1375 -1 -1376 1376 4 -1377 1376 -1 -1476 1376 -1 -1377 1377 4 -1378 1377 -1 -1477 1377 -1 -1378 1378 4 -1379 1378 -1 -1478 1378 -1 -1379 1379 4 -1380 1379 -1 -1479 1379 -1 -1380 1380 4 -1381 1380 -1 -1480 1380 -1 -1381 1381 4 -1382 1381 -1 -1481 1381 -1 -1382 1382 4 -1383 1382 -1 -1482 1382 -1 -1383 1383 4 -1384 1383 -1 -1483 1383 -1 -1384 1384 4 -1385 1384 -1 -1484 1384 -1 -1385 1385 4 -1386 1385 -1 -1485 1385 -1 -1386 1386 4 -1387 1386 -1 -1486 1386 -1 -1387 1387 4 -1388 1387 -1 -1487 1387 -1 -1388 1388 4 -1389 1388 -1 -1488 1388 -1 -1389 1389 4 -1390 1389 -1 -1489 1389 -1 -1390 1390 4 -1391 1390 -1 -1490 1390 -1 -1391 1391 4 -1392 1391 -1 -1491 1391 -1 -1392 1392 4 -1393 1392 -1 -1492 1392 -1 -1393 1393 4 -1394 1393 -1 -1493 1393 -1 -1394 1394 4 -1395 1394 -1 -1494 1394 -1 -1395 1395 4 -1396 1395 -1 -1495 1395 -1 -1396 1396 4 -1397 1396 -1 -1496 1396 -1 -1397 1397 4 -1398 1397 -1 -1497 1397 -1 -1398 1398 4 -1399 1398 -1 -1498 1398 -1 -1399 1399 4 -1400 1399 -1 -1499 1399 -1 -1400 1400 4 -1500 1400 -1 -1401 1401 4 -1402 1401 -1 -1501 1401 -1 -1402 1402 4 -1403 1402 -1 -1502 1402 -1 -1403 1403 4 -1404 1403 -1 -1503 1403 -1 -1404 1404 4 -1405 1404 -1 -1504 1404 -1 -1405 1405 4 -1406 1405 -1 -1505 1405 -1 -1406 1406 4 -1407 1406 -1 -1506 1406 -1 -1407 1407 4 -1408 1407 -1 -1507 1407 -1 -1408 1408 4 -1409 1408 -1 -1508 1408 -1 -1409 1409 4 -1410 1409 -1 -1509 1409 -1 -1410 1410 4 -1411 1410 -1 -1510 1410 -1 -1411 1411 4 -1412 1411 -1 -1511 1411 -1 -1412 1412 4 -1413 1412 -1 -1512 1412 -1 -1413 1413 4 -1414 1413 -1 -1513 1413 -1 -1414 1414 4 -1415 1414 -1 -1514 1414 -1 -1415 1415 4 -1416 1415 -1 -1515 1415 -1 -1416 1416 4 -1417 1416 -1 -1516 1416 -1 -1417 1417 4 -1418 1417 -1 -1517 1417 -1 -1418 1418 4 -1419 1418 -1 -1518 1418 -1 -1419 1419 4 -1420 1419 -1 -1519 1419 -1 -1420 1420 4 -1421 1420 -1 -1520 1420 -1 -1421 1421 4 -1422 1421 -1 -1521 1421 -1 -1422 1422 4 -1423 1422 -1 -1522 1422 -1 -1423 1423 4 -1424 1423 -1 -1523 1423 -1 -1424 1424 4 -1425 1424 -1 -1524 1424 -1 -1425 1425 4 -1426 1425 -1 -1525 1425 -1 -1426 1426 4 -1427 1426 -1 -1526 1426 -1 -1427 1427 4 -1428 1427 -1 -1527 1427 -1 -1428 1428 4 -1429 1428 -1 -1528 1428 -1 -1429 1429 4 -1430 1429 -1 -1529 1429 -1 -1430 1430 4 -1431 1430 -1 -1530 1430 -1 -1431 1431 4 -1432 1431 -1 -1531 1431 -1 -1432 1432 4 -1433 1432 -1 -1532 1432 -1 -1433 1433 4 -1434 1433 -1 -1533 1433 -1 -1434 1434 4 -1435 1434 -1 -1534 1434 -1 -1435 1435 4 -1436 1435 -1 -1535 1435 -1 -1436 1436 4 -1437 1436 -1 -1536 1436 -1 -1437 1437 4 -1438 1437 -1 -1537 1437 -1 -1438 1438 4 -1439 1438 -1 -1538 1438 -1 -1439 1439 4 -1440 1439 -1 -1539 1439 -1 -1440 1440 4 -1441 1440 -1 -1540 1440 -1 -1441 1441 4 -1442 1441 -1 -1541 1441 -1 -1442 1442 4 -1443 1442 -1 -1542 1442 -1 -1443 1443 4 -1444 1443 -1 -1543 1443 -1 -1444 1444 4 -1445 1444 -1 -1544 1444 -1 -1445 1445 4 -1446 1445 -1 -1545 1445 -1 -1446 1446 4 -1447 1446 -1 -1546 1446 -1 -1447 1447 4 -1448 1447 -1 -1547 1447 -1 -1448 1448 4 -1449 1448 -1 -1548 1448 -1 -1449 1449 4 -1450 1449 -1 -1549 1449 -1 -1450 1450 4 -1451 1450 -1 -1550 1450 -1 -1451 1451 4 -1452 1451 -1 -1551 1451 -1 -1452 1452 4 -1453 1452 -1 -1552 1452 -1 -1453 1453 4 -1454 1453 -1 -1553 1453 -1 -1454 1454 4 -1455 1454 -1 -1554 1454 -1 -1455 1455 4 -1456 1455 -1 -1555 1455 -1 -1456 1456 4 -1457 1456 -1 -1556 1456 -1 -1457 1457 4 -1458 1457 -1 -1557 1457 -1 -1458 1458 4 -1459 1458 -1 -1558 1458 -1 -1459 1459 4 -1460 1459 -1 -1559 1459 -1 -1460 1460 4 -1461 1460 -1 -1560 1460 -1 -1461 1461 4 -1462 1461 -1 -1561 1461 -1 -1462 1462 4 -1463 1462 -1 -1562 1462 -1 -1463 1463 4 -1464 1463 -1 -1563 1463 -1 -1464 1464 4 -1465 1464 -1 -1564 1464 -1 -1465 1465 4 -1466 1465 -1 -1565 1465 -1 -1466 1466 4 -1467 1466 -1 -1566 1466 -1 -1467 1467 4 -1468 1467 -1 -1567 1467 -1 -1468 1468 4 -1469 1468 -1 -1568 1468 -1 -1469 1469 4 -1470 1469 -1 -1569 1469 -1 -1470 1470 4 -1471 1470 -1 -1570 1470 -1 -1471 1471 4 -1472 1471 -1 -1571 1471 -1 -1472 1472 4 -1473 1472 -1 -1572 1472 -1 -1473 1473 4 -1474 1473 -1 -1573 1473 -1 -1474 1474 4 -1475 1474 -1 -1574 1474 -1 -1475 1475 4 -1476 1475 -1 -1575 1475 -1 -1476 1476 4 -1477 1476 -1 -1576 1476 -1 -1477 1477 4 -1478 1477 -1 -1577 1477 -1 -1478 1478 4 -1479 1478 -1 -1578 1478 -1 -1479 1479 4 -1480 1479 -1 -1579 1479 -1 -1480 1480 4 -1481 1480 -1 -1580 1480 -1 -1481 1481 4 -1482 1481 -1 -1581 1481 -1 -1482 1482 4 -1483 1482 -1 -1582 1482 -1 -1483 1483 4 -1484 1483 -1 -1583 1483 -1 -1484 1484 4 -1485 1484 -1 -1584 1484 -1 -1485 1485 4 -1486 1485 -1 -1585 1485 -1 -1486 1486 4 -1487 1486 -1 -1586 1486 -1 -1487 1487 4 -1488 1487 -1 -1587 1487 -1 -1488 1488 4 -1489 1488 -1 -1588 1488 -1 -1489 1489 4 -1490 1489 -1 -1589 1489 -1 -1490 1490 4 -1491 1490 -1 -1590 1490 -1 -1491 1491 4 -1492 1491 -1 -1591 1491 -1 -1492 1492 4 -1493 1492 -1 -1592 1492 -1 -1493 1493 4 -1494 1493 -1 -1593 1493 -1 -1494 1494 4 -1495 1494 -1 -1594 1494 -1 -1495 1495 4 -1496 1495 -1 -1595 1495 -1 -1496 1496 4 -1497 1496 -1 -1596 1496 -1 -1497 1497 4 -1498 1497 -1 -1597 1497 -1 -1498 1498 4 -1499 1498 -1 -1598 1498 -1 -1499 1499 4 -1500 1499 -1 -1599 1499 -1 -1500 1500 4 -1600 1500 -1 -1501 1501 4 -1502 1501 -1 -1601 1501 -1 -1502 1502 4 -1503 1502 -1 -1602 1502 -1 -1503 1503 4 -1504 1503 -1 -1603 1503 -1 -1504 1504 4 -1505 1504 -1 -1604 1504 -1 -1505 1505 4 -1506 1505 -1 -1605 1505 -1 -1506 1506 4 -1507 1506 -1 -1606 1506 -1 -1507 1507 4 -1508 1507 -1 -1607 1507 -1 -1508 1508 4 -1509 1508 -1 -1608 1508 -1 -1509 1509 4 -1510 1509 -1 -1609 1509 -1 -1510 1510 4 -1511 1510 -1 -1610 1510 -1 -1511 1511 4 -1512 1511 -1 -1611 1511 -1 -1512 1512 4 -1513 1512 -1 -1612 1512 -1 -1513 1513 4 -1514 1513 -1 -1613 1513 -1 -1514 1514 4 -1515 1514 -1 -1614 1514 -1 -1515 1515 4 -1516 1515 -1 -1615 1515 -1 -1516 1516 4 -1517 1516 -1 -1616 1516 -1 -1517 1517 4 -1518 1517 -1 -1617 1517 -1 -1518 1518 4 -1519 1518 -1 -1618 1518 -1 -1519 1519 4 -1520 1519 -1 -1619 1519 -1 -1520 1520 4 -1521 1520 -1 -1620 1520 -1 -1521 1521 4 -1522 1521 -1 -1621 1521 -1 -1522 1522 4 -1523 1522 -1 -1622 1522 -1 -1523 1523 4 -1524 1523 -1 -1623 1523 -1 -1524 1524 4 -1525 1524 -1 -1624 1524 -1 -1525 1525 4 -1526 1525 -1 -1625 1525 -1 -1526 1526 4 -1527 1526 -1 -1626 1526 -1 -1527 1527 4 -1528 1527 -1 -1627 1527 -1 -1528 1528 4 -1529 1528 -1 -1628 1528 -1 -1529 1529 4 -1530 1529 -1 -1629 1529 -1 -1530 1530 4 -1531 1530 -1 -1630 1530 -1 -1531 1531 4 -1532 1531 -1 -1631 1531 -1 -1532 1532 4 -1533 1532 -1 -1632 1532 -1 -1533 1533 4 -1534 1533 -1 -1633 1533 -1 -1534 1534 4 -1535 1534 -1 -1634 1534 -1 -1535 1535 4 -1536 1535 -1 -1635 1535 -1 -1536 1536 4 -1537 1536 -1 -1636 1536 -1 -1537 1537 4 -1538 1537 -1 -1637 1537 -1 -1538 1538 4 -1539 1538 -1 -1638 1538 -1 -1539 1539 4 -1540 1539 -1 -1639 1539 -1 -1540 1540 4 -1541 1540 -1 -1640 1540 -1 -1541 1541 4 -1542 1541 -1 -1641 1541 -1 -1542 1542 4 -1543 1542 -1 -1642 1542 -1 -1543 1543 4 -1544 1543 -1 -1643 1543 -1 -1544 1544 4 -1545 1544 -1 -1644 1544 -1 -1545 1545 4 -1546 1545 -1 -1645 1545 -1 -1546 1546 4 -1547 1546 -1 -1646 1546 -1 -1547 1547 4 -1548 1547 -1 -1647 1547 -1 -1548 1548 4 -1549 1548 -1 -1648 1548 -1 -1549 1549 4 -1550 1549 -1 -1649 1549 -1 -1550 1550 4 -1551 1550 -1 -1650 1550 -1 -1551 1551 4 -1552 1551 -1 -1651 1551 -1 -1552 1552 4 -1553 1552 -1 -1652 1552 -1 -1553 1553 4 -1554 1553 -1 -1653 1553 -1 -1554 1554 4 -1555 1554 -1 -1654 1554 -1 -1555 1555 4 -1556 1555 -1 -1655 1555 -1 -1556 1556 4 -1557 1556 -1 -1656 1556 -1 -1557 1557 4 -1558 1557 -1 -1657 1557 -1 -1558 1558 4 -1559 1558 -1 -1658 1558 -1 -1559 1559 4 -1560 1559 -1 -1659 1559 -1 -1560 1560 4 -1561 1560 -1 -1660 1560 -1 -1561 1561 4 -1562 1561 -1 -1661 1561 -1 -1562 1562 4 -1563 1562 -1 -1662 1562 -1 -1563 1563 4 -1564 1563 -1 -1663 1563 -1 -1564 1564 4 -1565 1564 -1 -1664 1564 -1 -1565 1565 4 -1566 1565 -1 -1665 1565 -1 -1566 1566 4 -1567 1566 -1 -1666 1566 -1 -1567 1567 4 -1568 1567 -1 -1667 1567 -1 -1568 1568 4 -1569 1568 -1 -1668 1568 -1 -1569 1569 4 -1570 1569 -1 -1669 1569 -1 -1570 1570 4 -1571 1570 -1 -1670 1570 -1 -1571 1571 4 -1572 1571 -1 -1671 1571 -1 -1572 1572 4 -1573 1572 -1 -1672 1572 -1 -1573 1573 4 -1574 1573 -1 -1673 1573 -1 -1574 1574 4 -1575 1574 -1 -1674 1574 -1 -1575 1575 4 -1576 1575 -1 -1675 1575 -1 -1576 1576 4 -1577 1576 -1 -1676 1576 -1 -1577 1577 4 -1578 1577 -1 -1677 1577 -1 -1578 1578 4 -1579 1578 -1 -1678 1578 -1 -1579 1579 4 -1580 1579 -1 -1679 1579 -1 -1580 1580 4 -1581 1580 -1 -1680 1580 -1 -1581 1581 4 -1582 1581 -1 -1681 1581 -1 -1582 1582 4 -1583 1582 -1 -1682 1582 -1 -1583 1583 4 -1584 1583 -1 -1683 1583 -1 -1584 1584 4 -1585 1584 -1 -1684 1584 -1 -1585 1585 4 -1586 1585 -1 -1685 1585 -1 -1586 1586 4 -1587 1586 -1 -1686 1586 -1 -1587 1587 4 -1588 1587 -1 -1687 1587 -1 -1588 1588 4 -1589 1588 -1 -1688 1588 -1 -1589 1589 4 -1590 1589 -1 -1689 1589 -1 -1590 1590 4 -1591 1590 -1 -1690 1590 -1 -1591 1591 4 -1592 1591 -1 -1691 1591 -1 -1592 1592 4 -1593 1592 -1 -1692 1592 -1 -1593 1593 4 -1594 1593 -1 -1693 1593 -1 -1594 1594 4 -1595 1594 -1 -1694 1594 -1 -1595 1595 4 -1596 1595 -1 -1695 1595 -1 -1596 1596 4 -1597 1596 -1 -1696 1596 -1 -1597 1597 4 -1598 1597 -1 -1697 1597 -1 -1598 1598 4 -1599 1598 -1 -1698 1598 -1 -1599 1599 4 -1600 1599 -1 -1699 1599 -1 -1600 1600 4 -1700 1600 -1 -1601 1601 4 -1602 1601 -1 -1701 1601 -1 -1602 1602 4 -1603 1602 -1 -1702 1602 -1 -1603 1603 4 -1604 1603 -1 -1703 1603 -1 -1604 1604 4 -1605 1604 -1 -1704 1604 -1 -1605 1605 4 -1606 1605 -1 -1705 1605 -1 -1606 1606 4 -1607 1606 -1 -1706 1606 -1 -1607 1607 4 -1608 1607 -1 -1707 1607 -1 -1608 1608 4 -1609 1608 -1 -1708 1608 -1 -1609 1609 4 -1610 1609 -1 -1709 1609 -1 -1610 1610 4 -1611 1610 -1 -1710 1610 -1 -1611 1611 4 -1612 1611 -1 -1711 1611 -1 -1612 1612 4 -1613 1612 -1 -1712 1612 -1 -1613 1613 4 -1614 1613 -1 -1713 1613 -1 -1614 1614 4 -1615 1614 -1 -1714 1614 -1 -1615 1615 4 -1616 1615 -1 -1715 1615 -1 -1616 1616 4 -1617 1616 -1 -1716 1616 -1 -1617 1617 4 -1618 1617 -1 -1717 1617 -1 -1618 1618 4 -1619 1618 -1 -1718 1618 -1 -1619 1619 4 -1620 1619 -1 -1719 1619 -1 -1620 1620 4 -1621 1620 -1 -1720 1620 -1 -1621 1621 4 -1622 1621 -1 -1721 1621 -1 -1622 1622 4 -1623 1622 -1 -1722 1622 -1 -1623 1623 4 -1624 1623 -1 -1723 1623 -1 -1624 1624 4 -1625 1624 -1 -1724 1624 -1 -1625 1625 4 -1626 1625 -1 -1725 1625 -1 -1626 1626 4 -1627 1626 -1 -1726 1626 -1 -1627 1627 4 -1628 1627 -1 -1727 1627 -1 -1628 1628 4 -1629 1628 -1 -1728 1628 -1 -1629 1629 4 -1630 1629 -1 -1729 1629 -1 -1630 1630 4 -1631 1630 -1 -1730 1630 -1 -1631 1631 4 -1632 1631 -1 -1731 1631 -1 -1632 1632 4 -1633 1632 -1 -1732 1632 -1 -1633 1633 4 -1634 1633 -1 -1733 1633 -1 -1634 1634 4 -1635 1634 -1 -1734 1634 -1 -1635 1635 4 -1636 1635 -1 -1735 1635 -1 -1636 1636 4 -1637 1636 -1 -1736 1636 -1 -1637 1637 4 -1638 1637 -1 -1737 1637 -1 -1638 1638 4 -1639 1638 -1 -1738 1638 -1 -1639 1639 4 -1640 1639 -1 -1739 1639 -1 -1640 1640 4 -1641 1640 -1 -1740 1640 -1 -1641 1641 4 -1642 1641 -1 -1741 1641 -1 -1642 1642 4 -1643 1642 -1 -1742 1642 -1 -1643 1643 4 -1644 1643 -1 -1743 1643 -1 -1644 1644 4 -1645 1644 -1 -1744 1644 -1 -1645 1645 4 -1646 1645 -1 -1745 1645 -1 -1646 1646 4 -1647 1646 -1 -1746 1646 -1 -1647 1647 4 -1648 1647 -1 -1747 1647 -1 -1648 1648 4 -1649 1648 -1 -1748 1648 -1 -1649 1649 4 -1650 1649 -1 -1749 1649 -1 -1650 1650 4 -1651 1650 -1 -1750 1650 -1 -1651 1651 4 -1652 1651 -1 -1751 1651 -1 -1652 1652 4 -1653 1652 -1 -1752 1652 -1 -1653 1653 4 -1654 1653 -1 -1753 1653 -1 -1654 1654 4 -1655 1654 -1 -1754 1654 -1 -1655 1655 4 -1656 1655 -1 -1755 1655 -1 -1656 1656 4 -1657 1656 -1 -1756 1656 -1 -1657 1657 4 -1658 1657 -1 -1757 1657 -1 -1658 1658 4 -1659 1658 -1 -1758 1658 -1 -1659 1659 4 -1660 1659 -1 -1759 1659 -1 -1660 1660 4 -1661 1660 -1 -1760 1660 -1 -1661 1661 4 -1662 1661 -1 -1761 1661 -1 -1662 1662 4 -1663 1662 -1 -1762 1662 -1 -1663 1663 4 -1664 1663 -1 -1763 1663 -1 -1664 1664 4 -1665 1664 -1 -1764 1664 -1 -1665 1665 4 -1666 1665 -1 -1765 1665 -1 -1666 1666 4 -1667 1666 -1 -1766 1666 -1 -1667 1667 4 -1668 1667 -1 -1767 1667 -1 -1668 1668 4 -1669 1668 -1 -1768 1668 -1 -1669 1669 4 -1670 1669 -1 -1769 1669 -1 -1670 1670 4 -1671 1670 -1 -1770 1670 -1 -1671 1671 4 -1672 1671 -1 -1771 1671 -1 -1672 1672 4 -1673 1672 -1 -1772 1672 -1 -1673 1673 4 -1674 1673 -1 -1773 1673 -1 -1674 1674 4 -1675 1674 -1 -1774 1674 -1 -1675 1675 4 -1676 1675 -1 -1775 1675 -1 -1676 1676 4 -1677 1676 -1 -1776 1676 -1 -1677 1677 4 -1678 1677 -1 -1777 1677 -1 -1678 1678 4 -1679 1678 -1 -1778 1678 -1 -1679 1679 4 -1680 1679 -1 -1779 1679 -1 -1680 1680 4 -1681 1680 -1 -1780 1680 -1 -1681 1681 4 -1682 1681 -1 -1781 1681 -1 -1682 1682 4 -1683 1682 -1 -1782 1682 -1 -1683 1683 4 -1684 1683 -1 -1783 1683 -1 -1684 1684 4 -1685 1684 -1 -1784 1684 -1 -1685 1685 4 -1686 1685 -1 -1785 1685 -1 -1686 1686 4 -1687 1686 -1 -1786 1686 -1 -1687 1687 4 -1688 1687 -1 -1787 1687 -1 -1688 1688 4 -1689 1688 -1 -1788 1688 -1 -1689 1689 4 -1690 1689 -1 -1789 1689 -1 -1690 1690 4 -1691 1690 -1 -1790 1690 -1 -1691 1691 4 -1692 1691 -1 -1791 1691 -1 -1692 1692 4 -1693 1692 -1 -1792 1692 -1 -1693 1693 4 -1694 1693 -1 -1793 1693 -1 -1694 1694 4 -1695 1694 -1 -1794 1694 -1 -1695 1695 4 -1696 1695 -1 -1795 1695 -1 -1696 1696 4 -1697 1696 -1 -1796 1696 -1 -1697 1697 4 -1698 1697 -1 -1797 1697 -1 -1698 1698 4 -1699 1698 -1 -1798 1698 -1 -1699 1699 4 -1700 1699 -1 -1799 1699 -1 -1700 1700 4 -1800 1700 -1 -1701 1701 4 -1702 1701 -1 -1801 1701 -1 -1702 1702 4 -1703 1702 -1 -1802 1702 -1 -1703 1703 4 -1704 1703 -1 -1803 1703 -1 -1704 1704 4 -1705 1704 -1 -1804 1704 -1 -1705 1705 4 -1706 1705 -1 -1805 1705 -1 -1706 1706 4 -1707 1706 -1 -1806 1706 -1 -1707 1707 4 -1708 1707 -1 -1807 1707 -1 -1708 1708 4 -1709 1708 -1 -1808 1708 -1 -1709 1709 4 -1710 1709 -1 -1809 1709 -1 -1710 1710 4 -1711 1710 -1 -1810 1710 -1 -1711 1711 4 -1712 1711 -1 -1811 1711 -1 -1712 1712 4 -1713 1712 -1 -1812 1712 -1 -1713 1713 4 -1714 1713 -1 -1813 1713 -1 -1714 1714 4 -1715 1714 -1 -1814 1714 -1 -1715 1715 4 -1716 1715 -1 -1815 1715 -1 -1716 1716 4 -1717 1716 -1 -1816 1716 -1 -1717 1717 4 -1718 1717 -1 -1817 1717 -1 -1718 1718 4 -1719 1718 -1 -1818 1718 -1 -1719 1719 4 -1720 1719 -1 -1819 1719 -1 -1720 1720 4 -1721 1720 -1 -1820 1720 -1 -1721 1721 4 -1722 1721 -1 -1821 1721 -1 -1722 1722 4 -1723 1722 -1 -1822 1722 -1 -1723 1723 4 -1724 1723 -1 -1823 1723 -1 -1724 1724 4 -1725 1724 -1 -1824 1724 -1 -1725 1725 4 -1726 1725 -1 -1825 1725 -1 -1726 1726 4 -1727 1726 -1 -1826 1726 -1 -1727 1727 4 -1728 1727 -1 -1827 1727 -1 -1728 1728 4 -1729 1728 -1 -1828 1728 -1 -1729 1729 4 -1730 1729 -1 -1829 1729 -1 -1730 1730 4 -1731 1730 -1 -1830 1730 -1 -1731 1731 4 -1732 1731 -1 -1831 1731 -1 -1732 1732 4 -1733 1732 -1 -1832 1732 -1 -1733 1733 4 -1734 1733 -1 -1833 1733 -1 -1734 1734 4 -1735 1734 -1 -1834 1734 -1 -1735 1735 4 -1736 1735 -1 -1835 1735 -1 -1736 1736 4 -1737 1736 -1 -1836 1736 -1 -1737 1737 4 -1738 1737 -1 -1837 1737 -1 -1738 1738 4 -1739 1738 -1 -1838 1738 -1 -1739 1739 4 -1740 1739 -1 -1839 1739 -1 -1740 1740 4 -1741 1740 -1 -1840 1740 -1 -1741 1741 4 -1742 1741 -1 -1841 1741 -1 -1742 1742 4 -1743 1742 -1 -1842 1742 -1 -1743 1743 4 -1744 1743 -1 -1843 1743 -1 -1744 1744 4 -1745 1744 -1 -1844 1744 -1 -1745 1745 4 -1746 1745 -1 -1845 1745 -1 -1746 1746 4 -1747 1746 -1 -1846 1746 -1 -1747 1747 4 -1748 1747 -1 -1847 1747 -1 -1748 1748 4 -1749 1748 -1 -1848 1748 -1 -1749 1749 4 -1750 1749 -1 -1849 1749 -1 -1750 1750 4 -1751 1750 -1 -1850 1750 -1 -1751 1751 4 -1752 1751 -1 -1851 1751 -1 -1752 1752 4 -1753 1752 -1 -1852 1752 -1 -1753 1753 4 -1754 1753 -1 -1853 1753 -1 -1754 1754 4 -1755 1754 -1 -1854 1754 -1 -1755 1755 4 -1756 1755 -1 -1855 1755 -1 -1756 1756 4 -1757 1756 -1 -1856 1756 -1 -1757 1757 4 -1758 1757 -1 -1857 1757 -1 -1758 1758 4 -1759 1758 -1 -1858 1758 -1 -1759 1759 4 -1760 1759 -1 -1859 1759 -1 -1760 1760 4 -1761 1760 -1 -1860 1760 -1 -1761 1761 4 -1762 1761 -1 -1861 1761 -1 -1762 1762 4 -1763 1762 -1 -1862 1762 -1 -1763 1763 4 -1764 1763 -1 -1863 1763 -1 -1764 1764 4 -1765 1764 -1 -1864 1764 -1 -1765 1765 4 -1766 1765 -1 -1865 1765 -1 -1766 1766 4 -1767 1766 -1 -1866 1766 -1 -1767 1767 4 -1768 1767 -1 -1867 1767 -1 -1768 1768 4 -1769 1768 -1 -1868 1768 -1 -1769 1769 4 -1770 1769 -1 -1869 1769 -1 -1770 1770 4 -1771 1770 -1 -1870 1770 -1 -1771 1771 4 -1772 1771 -1 -1871 1771 -1 -1772 1772 4 -1773 1772 -1 -1872 1772 -1 -1773 1773 4 -1774 1773 -1 -1873 1773 -1 -1774 1774 4 -1775 1774 -1 -1874 1774 -1 -1775 1775 4 -1776 1775 -1 -1875 1775 -1 -1776 1776 4 -1777 1776 -1 -1876 1776 -1 -1777 1777 4 -1778 1777 -1 -1877 1777 -1 -1778 1778 4 -1779 1778 -1 -1878 1778 -1 -1779 1779 4 -1780 1779 -1 -1879 1779 -1 -1780 1780 4 -1781 1780 -1 -1880 1780 -1 -1781 1781 4 -1782 1781 -1 -1881 1781 -1 -1782 1782 4 -1783 1782 -1 -1882 1782 -1 -1783 1783 4 -1784 1783 -1 -1883 1783 -1 -1784 1784 4 -1785 1784 -1 -1884 1784 -1 -1785 1785 4 -1786 1785 -1 -1885 1785 -1 -1786 1786 4 -1787 1786 -1 -1886 1786 -1 -1787 1787 4 -1788 1787 -1 -1887 1787 -1 -1788 1788 4 -1789 1788 -1 -1888 1788 -1 -1789 1789 4 -1790 1789 -1 -1889 1789 -1 -1790 1790 4 -1791 1790 -1 -1890 1790 -1 -1791 1791 4 -1792 1791 -1 -1891 1791 -1 -1792 1792 4 -1793 1792 -1 -1892 1792 -1 -1793 1793 4 -1794 1793 -1 -1893 1793 -1 -1794 1794 4 -1795 1794 -1 -1894 1794 -1 -1795 1795 4 -1796 1795 -1 -1895 1795 -1 -1796 1796 4 -1797 1796 -1 -1896 1796 -1 -1797 1797 4 -1798 1797 -1 -1897 1797 -1 -1798 1798 4 -1799 1798 -1 -1898 1798 -1 -1799 1799 4 -1800 1799 -1 -1899 1799 -1 -1800 1800 4 -1900 1800 -1 -1801 1801 4 -1802 1801 -1 -1901 1801 -1 -1802 1802 4 -1803 1802 -1 -1902 1802 -1 -1803 1803 4 -1804 1803 -1 -1903 1803 -1 -1804 1804 4 -1805 1804 -1 -1904 1804 -1 -1805 1805 4 -1806 1805 -1 -1905 1805 -1 -1806 1806 4 -1807 1806 -1 -1906 1806 -1 -1807 1807 4 -1808 1807 -1 -1907 1807 -1 -1808 1808 4 -1809 1808 -1 -1908 1808 -1 -1809 1809 4 -1810 1809 -1 -1909 1809 -1 -1810 1810 4 -1811 1810 -1 -1910 1810 -1 -1811 1811 4 -1812 1811 -1 -1911 1811 -1 -1812 1812 4 -1813 1812 -1 -1912 1812 -1 -1813 1813 4 -1814 1813 -1 -1913 1813 -1 -1814 1814 4 -1815 1814 -1 -1914 1814 -1 -1815 1815 4 -1816 1815 -1 -1915 1815 -1 -1816 1816 4 -1817 1816 -1 -1916 1816 -1 -1817 1817 4 -1818 1817 -1 -1917 1817 -1 -1818 1818 4 -1819 1818 -1 -1918 1818 -1 -1819 1819 4 -1820 1819 -1 -1919 1819 -1 -1820 1820 4 -1821 1820 -1 -1920 1820 -1 -1821 1821 4 -1822 1821 -1 -1921 1821 -1 -1822 1822 4 -1823 1822 -1 -1922 1822 -1 -1823 1823 4 -1824 1823 -1 -1923 1823 -1 -1824 1824 4 -1825 1824 -1 -1924 1824 -1 -1825 1825 4 -1826 1825 -1 -1925 1825 -1 -1826 1826 4 -1827 1826 -1 -1926 1826 -1 -1827 1827 4 -1828 1827 -1 -1927 1827 -1 -1828 1828 4 -1829 1828 -1 -1928 1828 -1 -1829 1829 4 -1830 1829 -1 -1929 1829 -1 -1830 1830 4 -1831 1830 -1 -1930 1830 -1 -1831 1831 4 -1832 1831 -1 -1931 1831 -1 -1832 1832 4 -1833 1832 -1 -1932 1832 -1 -1833 1833 4 -1834 1833 -1 -1933 1833 -1 -1834 1834 4 -1835 1834 -1 -1934 1834 -1 -1835 1835 4 -1836 1835 -1 -1935 1835 -1 -1836 1836 4 -1837 1836 -1 -1936 1836 -1 -1837 1837 4 -1838 1837 -1 -1937 1837 -1 -1838 1838 4 -1839 1838 -1 -1938 1838 -1 -1839 1839 4 -1840 1839 -1 -1939 1839 -1 -1840 1840 4 -1841 1840 -1 -1940 1840 -1 -1841 1841 4 -1842 1841 -1 -1941 1841 -1 -1842 1842 4 -1843 1842 -1 -1942 1842 -1 -1843 1843 4 -1844 1843 -1 -1943 1843 -1 -1844 1844 4 -1845 1844 -1 -1944 1844 -1 -1845 1845 4 -1846 1845 -1 -1945 1845 -1 -1846 1846 4 -1847 1846 -1 -1946 1846 -1 -1847 1847 4 -1848 1847 -1 -1947 1847 -1 -1848 1848 4 -1849 1848 -1 -1948 1848 -1 -1849 1849 4 -1850 1849 -1 -1949 1849 -1 -1850 1850 4 -1851 1850 -1 -1950 1850 -1 -1851 1851 4 -1852 1851 -1 -1951 1851 -1 -1852 1852 4 -1853 1852 -1 -1952 1852 -1 -1853 1853 4 -1854 1853 -1 -1953 1853 -1 -1854 1854 4 -1855 1854 -1 -1954 1854 -1 -1855 1855 4 -1856 1855 -1 -1955 1855 -1 -1856 1856 4 -1857 1856 -1 -1956 1856 -1 -1857 1857 4 -1858 1857 -1 -1957 1857 -1 -1858 1858 4 -1859 1858 -1 -1958 1858 -1 -1859 1859 4 -1860 1859 -1 -1959 1859 -1 -1860 1860 4 -1861 1860 -1 -1960 1860 -1 -1861 1861 4 -1862 1861 -1 -1961 1861 -1 -1862 1862 4 -1863 1862 -1 -1962 1862 -1 -1863 1863 4 -1864 1863 -1 -1963 1863 -1 -1864 1864 4 -1865 1864 -1 -1964 1864 -1 -1865 1865 4 -1866 1865 -1 -1965 1865 -1 -1866 1866 4 -1867 1866 -1 -1966 1866 -1 -1867 1867 4 -1868 1867 -1 -1967 1867 -1 -1868 1868 4 -1869 1868 -1 -1968 1868 -1 -1869 1869 4 -1870 1869 -1 -1969 1869 -1 -1870 1870 4 -1871 1870 -1 -1970 1870 -1 -1871 1871 4 -1872 1871 -1 -1971 1871 -1 -1872 1872 4 -1873 1872 -1 -1972 1872 -1 -1873 1873 4 -1874 1873 -1 -1973 1873 -1 -1874 1874 4 -1875 1874 -1 -1974 1874 -1 -1875 1875 4 -1876 1875 -1 -1975 1875 -1 -1876 1876 4 -1877 1876 -1 -1976 1876 -1 -1877 1877 4 -1878 1877 -1 -1977 1877 -1 -1878 1878 4 -1879 1878 -1 -1978 1878 -1 -1879 1879 4 -1880 1879 -1 -1979 1879 -1 -1880 1880 4 -1881 1880 -1 -1980 1880 -1 -1881 1881 4 -1882 1881 -1 -1981 1881 -1 -1882 1882 4 -1883 1882 -1 -1982 1882 -1 -1883 1883 4 -1884 1883 -1 -1983 1883 -1 -1884 1884 4 -1885 1884 -1 -1984 1884 -1 -1885 1885 4 -1886 1885 -1 -1985 1885 -1 -1886 1886 4 -1887 1886 -1 -1986 1886 -1 -1887 1887 4 -1888 1887 -1 -1987 1887 -1 -1888 1888 4 -1889 1888 -1 -1988 1888 -1 -1889 1889 4 -1890 1889 -1 -1989 1889 -1 -1890 1890 4 -1891 1890 -1 -1990 1890 -1 -1891 1891 4 -1892 1891 -1 -1991 1891 -1 -1892 1892 4 -1893 1892 -1 -1992 1892 -1 -1893 1893 4 -1894 1893 -1 -1993 1893 -1 -1894 1894 4 -1895 1894 -1 -1994 1894 -1 -1895 1895 4 -1896 1895 -1 -1995 1895 -1 -1896 1896 4 -1897 1896 -1 -1996 1896 -1 -1897 1897 4 -1898 1897 -1 -1997 1897 -1 -1898 1898 4 -1899 1898 -1 -1998 1898 -1 -1899 1899 4 -1900 1899 -1 -1999 1899 -1 -1900 1900 4 -2000 1900 -1 -1901 1901 4 -1902 1901 -1 -2001 1901 -1 -1902 1902 4 -1903 1902 -1 -2002 1902 -1 -1903 1903 4 -1904 1903 -1 -2003 1903 -1 -1904 1904 4 -1905 1904 -1 -2004 1904 -1 -1905 1905 4 -1906 1905 -1 -2005 1905 -1 -1906 1906 4 -1907 1906 -1 -2006 1906 -1 -1907 1907 4 -1908 1907 -1 -2007 1907 -1 -1908 1908 4 -1909 1908 -1 -2008 1908 -1 -1909 1909 4 -1910 1909 -1 -2009 1909 -1 -1910 1910 4 -1911 1910 -1 -2010 1910 -1 -1911 1911 4 -1912 1911 -1 -2011 1911 -1 -1912 1912 4 -1913 1912 -1 -2012 1912 -1 -1913 1913 4 -1914 1913 -1 -2013 1913 -1 -1914 1914 4 -1915 1914 -1 -2014 1914 -1 -1915 1915 4 -1916 1915 -1 -2015 1915 -1 -1916 1916 4 -1917 1916 -1 -2016 1916 -1 -1917 1917 4 -1918 1917 -1 -2017 1917 -1 -1918 1918 4 -1919 1918 -1 -2018 1918 -1 -1919 1919 4 -1920 1919 -1 -2019 1919 -1 -1920 1920 4 -1921 1920 -1 -2020 1920 -1 -1921 1921 4 -1922 1921 -1 -2021 1921 -1 -1922 1922 4 -1923 1922 -1 -2022 1922 -1 -1923 1923 4 -1924 1923 -1 -2023 1923 -1 -1924 1924 4 -1925 1924 -1 -2024 1924 -1 -1925 1925 4 -1926 1925 -1 -2025 1925 -1 -1926 1926 4 -1927 1926 -1 -2026 1926 -1 -1927 1927 4 -1928 1927 -1 -2027 1927 -1 -1928 1928 4 -1929 1928 -1 -2028 1928 -1 -1929 1929 4 -1930 1929 -1 -2029 1929 -1 -1930 1930 4 -1931 1930 -1 -2030 1930 -1 -1931 1931 4 -1932 1931 -1 -2031 1931 -1 -1932 1932 4 -1933 1932 -1 -2032 1932 -1 -1933 1933 4 -1934 1933 -1 -2033 1933 -1 -1934 1934 4 -1935 1934 -1 -2034 1934 -1 -1935 1935 4 -1936 1935 -1 -2035 1935 -1 -1936 1936 4 -1937 1936 -1 -2036 1936 -1 -1937 1937 4 -1938 1937 -1 -2037 1937 -1 -1938 1938 4 -1939 1938 -1 -2038 1938 -1 -1939 1939 4 -1940 1939 -1 -2039 1939 -1 -1940 1940 4 -1941 1940 -1 -2040 1940 -1 -1941 1941 4 -1942 1941 -1 -2041 1941 -1 -1942 1942 4 -1943 1942 -1 -2042 1942 -1 -1943 1943 4 -1944 1943 -1 -2043 1943 -1 -1944 1944 4 -1945 1944 -1 -2044 1944 -1 -1945 1945 4 -1946 1945 -1 -2045 1945 -1 -1946 1946 4 -1947 1946 -1 -2046 1946 -1 -1947 1947 4 -1948 1947 -1 -2047 1947 -1 -1948 1948 4 -1949 1948 -1 -2048 1948 -1 -1949 1949 4 -1950 1949 -1 -2049 1949 -1 -1950 1950 4 -1951 1950 -1 -2050 1950 -1 -1951 1951 4 -1952 1951 -1 -2051 1951 -1 -1952 1952 4 -1953 1952 -1 -2052 1952 -1 -1953 1953 4 -1954 1953 -1 -2053 1953 -1 -1954 1954 4 -1955 1954 -1 -2054 1954 -1 -1955 1955 4 -1956 1955 -1 -2055 1955 -1 -1956 1956 4 -1957 1956 -1 -2056 1956 -1 -1957 1957 4 -1958 1957 -1 -2057 1957 -1 -1958 1958 4 -1959 1958 -1 -2058 1958 -1 -1959 1959 4 -1960 1959 -1 -2059 1959 -1 -1960 1960 4 -1961 1960 -1 -2060 1960 -1 -1961 1961 4 -1962 1961 -1 -2061 1961 -1 -1962 1962 4 -1963 1962 -1 -2062 1962 -1 -1963 1963 4 -1964 1963 -1 -2063 1963 -1 -1964 1964 4 -1965 1964 -1 -2064 1964 -1 -1965 1965 4 -1966 1965 -1 -2065 1965 -1 -1966 1966 4 -1967 1966 -1 -2066 1966 -1 -1967 1967 4 -1968 1967 -1 -2067 1967 -1 -1968 1968 4 -1969 1968 -1 -2068 1968 -1 -1969 1969 4 -1970 1969 -1 -2069 1969 -1 -1970 1970 4 -1971 1970 -1 -2070 1970 -1 -1971 1971 4 -1972 1971 -1 -2071 1971 -1 -1972 1972 4 -1973 1972 -1 -2072 1972 -1 -1973 1973 4 -1974 1973 -1 -2073 1973 -1 -1974 1974 4 -1975 1974 -1 -2074 1974 -1 -1975 1975 4 -1976 1975 -1 -2075 1975 -1 -1976 1976 4 -1977 1976 -1 -2076 1976 -1 -1977 1977 4 -1978 1977 -1 -2077 1977 -1 -1978 1978 4 -1979 1978 -1 -2078 1978 -1 -1979 1979 4 -1980 1979 -1 -2079 1979 -1 -1980 1980 4 -1981 1980 -1 -2080 1980 -1 -1981 1981 4 -1982 1981 -1 -2081 1981 -1 -1982 1982 4 -1983 1982 -1 -2082 1982 -1 -1983 1983 4 -1984 1983 -1 -2083 1983 -1 -1984 1984 4 -1985 1984 -1 -2084 1984 -1 -1985 1985 4 -1986 1985 -1 -2085 1985 -1 -1986 1986 4 -1987 1986 -1 -2086 1986 -1 -1987 1987 4 -1988 1987 -1 -2087 1987 -1 -1988 1988 4 -1989 1988 -1 -2088 1988 -1 -1989 1989 4 -1990 1989 -1 -2089 1989 -1 -1990 1990 4 -1991 1990 -1 -2090 1990 -1 -1991 1991 4 -1992 1991 -1 -2091 1991 -1 -1992 1992 4 -1993 1992 -1 -2092 1992 -1 -1993 1993 4 -1994 1993 -1 -2093 1993 -1 -1994 1994 4 -1995 1994 -1 -2094 1994 -1 -1995 1995 4 -1996 1995 -1 -2095 1995 -1 -1996 1996 4 -1997 1996 -1 -2096 1996 -1 -1997 1997 4 -1998 1997 -1 -2097 1997 -1 -1998 1998 4 -1999 1998 -1 -2098 1998 -1 -1999 1999 4 -2000 1999 -1 -2099 1999 -1 -2000 2000 4 -2100 2000 -1 -2001 2001 4 -2002 2001 -1 -2101 2001 -1 -2002 2002 4 -2003 2002 -1 -2102 2002 -1 -2003 2003 4 -2004 2003 -1 -2103 2003 -1 -2004 2004 4 -2005 2004 -1 -2104 2004 -1 -2005 2005 4 -2006 2005 -1 -2105 2005 -1 -2006 2006 4 -2007 2006 -1 -2106 2006 -1 -2007 2007 4 -2008 2007 -1 -2107 2007 -1 -2008 2008 4 -2009 2008 -1 -2108 2008 -1 -2009 2009 4 -2010 2009 -1 -2109 2009 -1 -2010 2010 4 -2011 2010 -1 -2110 2010 -1 -2011 2011 4 -2012 2011 -1 -2111 2011 -1 -2012 2012 4 -2013 2012 -1 -2112 2012 -1 -2013 2013 4 -2014 2013 -1 -2113 2013 -1 -2014 2014 4 -2015 2014 -1 -2114 2014 -1 -2015 2015 4 -2016 2015 -1 -2115 2015 -1 -2016 2016 4 -2017 2016 -1 -2116 2016 -1 -2017 2017 4 -2018 2017 -1 -2117 2017 -1 -2018 2018 4 -2019 2018 -1 -2118 2018 -1 -2019 2019 4 -2020 2019 -1 -2119 2019 -1 -2020 2020 4 -2021 2020 -1 -2120 2020 -1 -2021 2021 4 -2022 2021 -1 -2121 2021 -1 -2022 2022 4 -2023 2022 -1 -2122 2022 -1 -2023 2023 4 -2024 2023 -1 -2123 2023 -1 -2024 2024 4 -2025 2024 -1 -2124 2024 -1 -2025 2025 4 -2026 2025 -1 -2125 2025 -1 -2026 2026 4 -2027 2026 -1 -2126 2026 -1 -2027 2027 4 -2028 2027 -1 -2127 2027 -1 -2028 2028 4 -2029 2028 -1 -2128 2028 -1 -2029 2029 4 -2030 2029 -1 -2129 2029 -1 -2030 2030 4 -2031 2030 -1 -2130 2030 -1 -2031 2031 4 -2032 2031 -1 -2131 2031 -1 -2032 2032 4 -2033 2032 -1 -2132 2032 -1 -2033 2033 4 -2034 2033 -1 -2133 2033 -1 -2034 2034 4 -2035 2034 -1 -2134 2034 -1 -2035 2035 4 -2036 2035 -1 -2135 2035 -1 -2036 2036 4 -2037 2036 -1 -2136 2036 -1 -2037 2037 4 -2038 2037 -1 -2137 2037 -1 -2038 2038 4 -2039 2038 -1 -2138 2038 -1 -2039 2039 4 -2040 2039 -1 -2139 2039 -1 -2040 2040 4 -2041 2040 -1 -2140 2040 -1 -2041 2041 4 -2042 2041 -1 -2141 2041 -1 -2042 2042 4 -2043 2042 -1 -2142 2042 -1 -2043 2043 4 -2044 2043 -1 -2143 2043 -1 -2044 2044 4 -2045 2044 -1 -2144 2044 -1 -2045 2045 4 -2046 2045 -1 -2145 2045 -1 -2046 2046 4 -2047 2046 -1 -2146 2046 -1 -2047 2047 4 -2048 2047 -1 -2147 2047 -1 -2048 2048 4 -2049 2048 -1 -2148 2048 -1 -2049 2049 4 -2050 2049 -1 -2149 2049 -1 -2050 2050 4 -2051 2050 -1 -2150 2050 -1 -2051 2051 4 -2052 2051 -1 -2151 2051 -1 -2052 2052 4 -2053 2052 -1 -2152 2052 -1 -2053 2053 4 -2054 2053 -1 -2153 2053 -1 -2054 2054 4 -2055 2054 -1 -2154 2054 -1 -2055 2055 4 -2056 2055 -1 -2155 2055 -1 -2056 2056 4 -2057 2056 -1 -2156 2056 -1 -2057 2057 4 -2058 2057 -1 -2157 2057 -1 -2058 2058 4 -2059 2058 -1 -2158 2058 -1 -2059 2059 4 -2060 2059 -1 -2159 2059 -1 -2060 2060 4 -2061 2060 -1 -2160 2060 -1 -2061 2061 4 -2062 2061 -1 -2161 2061 -1 -2062 2062 4 -2063 2062 -1 -2162 2062 -1 -2063 2063 4 -2064 2063 -1 -2163 2063 -1 -2064 2064 4 -2065 2064 -1 -2164 2064 -1 -2065 2065 4 -2066 2065 -1 -2165 2065 -1 -2066 2066 4 -2067 2066 -1 -2166 2066 -1 -2067 2067 4 -2068 2067 -1 -2167 2067 -1 -2068 2068 4 -2069 2068 -1 -2168 2068 -1 -2069 2069 4 -2070 2069 -1 -2169 2069 -1 -2070 2070 4 -2071 2070 -1 -2170 2070 -1 -2071 2071 4 -2072 2071 -1 -2171 2071 -1 -2072 2072 4 -2073 2072 -1 -2172 2072 -1 -2073 2073 4 -2074 2073 -1 -2173 2073 -1 -2074 2074 4 -2075 2074 -1 -2174 2074 -1 -2075 2075 4 -2076 2075 -1 -2175 2075 -1 -2076 2076 4 -2077 2076 -1 -2176 2076 -1 -2077 2077 4 -2078 2077 -1 -2177 2077 -1 -2078 2078 4 -2079 2078 -1 -2178 2078 -1 -2079 2079 4 -2080 2079 -1 -2179 2079 -1 -2080 2080 4 -2081 2080 -1 -2180 2080 -1 -2081 2081 4 -2082 2081 -1 -2181 2081 -1 -2082 2082 4 -2083 2082 -1 -2182 2082 -1 -2083 2083 4 -2084 2083 -1 -2183 2083 -1 -2084 2084 4 -2085 2084 -1 -2184 2084 -1 -2085 2085 4 -2086 2085 -1 -2185 2085 -1 -2086 2086 4 -2087 2086 -1 -2186 2086 -1 -2087 2087 4 -2088 2087 -1 -2187 2087 -1 -2088 2088 4 -2089 2088 -1 -2188 2088 -1 -2089 2089 4 -2090 2089 -1 -2189 2089 -1 -2090 2090 4 -2091 2090 -1 -2190 2090 -1 -2091 2091 4 -2092 2091 -1 -2191 2091 -1 -2092 2092 4 -2093 2092 -1 -2192 2092 -1 -2093 2093 4 -2094 2093 -1 -2193 2093 -1 -2094 2094 4 -2095 2094 -1 -2194 2094 -1 -2095 2095 4 -2096 2095 -1 -2195 2095 -1 -2096 2096 4 -2097 2096 -1 -2196 2096 -1 -2097 2097 4 -2098 2097 -1 -2197 2097 -1 -2098 2098 4 -2099 2098 -1 -2198 2098 -1 -2099 2099 4 -2100 2099 -1 -2199 2099 -1 -2100 2100 4 -2200 2100 -1 -2101 2101 4 -2102 2101 -1 -2201 2101 -1 -2102 2102 4 -2103 2102 -1 -2202 2102 -1 -2103 2103 4 -2104 2103 -1 -2203 2103 -1 -2104 2104 4 -2105 2104 -1 -2204 2104 -1 -2105 2105 4 -2106 2105 -1 -2205 2105 -1 -2106 2106 4 -2107 2106 -1 -2206 2106 -1 -2107 2107 4 -2108 2107 -1 -2207 2107 -1 -2108 2108 4 -2109 2108 -1 -2208 2108 -1 -2109 2109 4 -2110 2109 -1 -2209 2109 -1 -2110 2110 4 -2111 2110 -1 -2210 2110 -1 -2111 2111 4 -2112 2111 -1 -2211 2111 -1 -2112 2112 4 -2113 2112 -1 -2212 2112 -1 -2113 2113 4 -2114 2113 -1 -2213 2113 -1 -2114 2114 4 -2115 2114 -1 -2214 2114 -1 -2115 2115 4 -2116 2115 -1 -2215 2115 -1 -2116 2116 4 -2117 2116 -1 -2216 2116 -1 -2117 2117 4 -2118 2117 -1 -2217 2117 -1 -2118 2118 4 -2119 2118 -1 -2218 2118 -1 -2119 2119 4 -2120 2119 -1 -2219 2119 -1 -2120 2120 4 -2121 2120 -1 -2220 2120 -1 -2121 2121 4 -2122 2121 -1 -2221 2121 -1 -2122 2122 4 -2123 2122 -1 -2222 2122 -1 -2123 2123 4 -2124 2123 -1 -2223 2123 -1 -2124 2124 4 -2125 2124 -1 -2224 2124 -1 -2125 2125 4 -2126 2125 -1 -2225 2125 -1 -2126 2126 4 -2127 2126 -1 -2226 2126 -1 -2127 2127 4 -2128 2127 -1 -2227 2127 -1 -2128 2128 4 -2129 2128 -1 -2228 2128 -1 -2129 2129 4 -2130 2129 -1 -2229 2129 -1 -2130 2130 4 -2131 2130 -1 -2230 2130 -1 -2131 2131 4 -2132 2131 -1 -2231 2131 -1 -2132 2132 4 -2133 2132 -1 -2232 2132 -1 -2133 2133 4 -2134 2133 -1 -2233 2133 -1 -2134 2134 4 -2135 2134 -1 -2234 2134 -1 -2135 2135 4 -2136 2135 -1 -2235 2135 -1 -2136 2136 4 -2137 2136 -1 -2236 2136 -1 -2137 2137 4 -2138 2137 -1 -2237 2137 -1 -2138 2138 4 -2139 2138 -1 -2238 2138 -1 -2139 2139 4 -2140 2139 -1 -2239 2139 -1 -2140 2140 4 -2141 2140 -1 -2240 2140 -1 -2141 2141 4 -2142 2141 -1 -2241 2141 -1 -2142 2142 4 -2143 2142 -1 -2242 2142 -1 -2143 2143 4 -2144 2143 -1 -2243 2143 -1 -2144 2144 4 -2145 2144 -1 -2244 2144 -1 -2145 2145 4 -2146 2145 -1 -2245 2145 -1 -2146 2146 4 -2147 2146 -1 -2246 2146 -1 -2147 2147 4 -2148 2147 -1 -2247 2147 -1 -2148 2148 4 -2149 2148 -1 -2248 2148 -1 -2149 2149 4 -2150 2149 -1 -2249 2149 -1 -2150 2150 4 -2151 2150 -1 -2250 2150 -1 -2151 2151 4 -2152 2151 -1 -2251 2151 -1 -2152 2152 4 -2153 2152 -1 -2252 2152 -1 -2153 2153 4 -2154 2153 -1 -2253 2153 -1 -2154 2154 4 -2155 2154 -1 -2254 2154 -1 -2155 2155 4 -2156 2155 -1 -2255 2155 -1 -2156 2156 4 -2157 2156 -1 -2256 2156 -1 -2157 2157 4 -2158 2157 -1 -2257 2157 -1 -2158 2158 4 -2159 2158 -1 -2258 2158 -1 -2159 2159 4 -2160 2159 -1 -2259 2159 -1 -2160 2160 4 -2161 2160 -1 -2260 2160 -1 -2161 2161 4 -2162 2161 -1 -2261 2161 -1 -2162 2162 4 -2163 2162 -1 -2262 2162 -1 -2163 2163 4 -2164 2163 -1 -2263 2163 -1 -2164 2164 4 -2165 2164 -1 -2264 2164 -1 -2165 2165 4 -2166 2165 -1 -2265 2165 -1 -2166 2166 4 -2167 2166 -1 -2266 2166 -1 -2167 2167 4 -2168 2167 -1 -2267 2167 -1 -2168 2168 4 -2169 2168 -1 -2268 2168 -1 -2169 2169 4 -2170 2169 -1 -2269 2169 -1 -2170 2170 4 -2171 2170 -1 -2270 2170 -1 -2171 2171 4 -2172 2171 -1 -2271 2171 -1 -2172 2172 4 -2173 2172 -1 -2272 2172 -1 -2173 2173 4 -2174 2173 -1 -2273 2173 -1 -2174 2174 4 -2175 2174 -1 -2274 2174 -1 -2175 2175 4 -2176 2175 -1 -2275 2175 -1 -2176 2176 4 -2177 2176 -1 -2276 2176 -1 -2177 2177 4 -2178 2177 -1 -2277 2177 -1 -2178 2178 4 -2179 2178 -1 -2278 2178 -1 -2179 2179 4 -2180 2179 -1 -2279 2179 -1 -2180 2180 4 -2181 2180 -1 -2280 2180 -1 -2181 2181 4 -2182 2181 -1 -2281 2181 -1 -2182 2182 4 -2183 2182 -1 -2282 2182 -1 -2183 2183 4 -2184 2183 -1 -2283 2183 -1 -2184 2184 4 -2185 2184 -1 -2284 2184 -1 -2185 2185 4 -2186 2185 -1 -2285 2185 -1 -2186 2186 4 -2187 2186 -1 -2286 2186 -1 -2187 2187 4 -2188 2187 -1 -2287 2187 -1 -2188 2188 4 -2189 2188 -1 -2288 2188 -1 -2189 2189 4 -2190 2189 -1 -2289 2189 -1 -2190 2190 4 -2191 2190 -1 -2290 2190 -1 -2191 2191 4 -2192 2191 -1 -2291 2191 -1 -2192 2192 4 -2193 2192 -1 -2292 2192 -1 -2193 2193 4 -2194 2193 -1 -2293 2193 -1 -2194 2194 4 -2195 2194 -1 -2294 2194 -1 -2195 2195 4 -2196 2195 -1 -2295 2195 -1 -2196 2196 4 -2197 2196 -1 -2296 2196 -1 -2197 2197 4 -2198 2197 -1 -2297 2197 -1 -2198 2198 4 -2199 2198 -1 -2298 2198 -1 -2199 2199 4 -2200 2199 -1 -2299 2199 -1 -2200 2200 4 -2300 2200 -1 -2201 2201 4 -2202 2201 -1 -2301 2201 -1 -2202 2202 4 -2203 2202 -1 -2302 2202 -1 -2203 2203 4 -2204 2203 -1 -2303 2203 -1 -2204 2204 4 -2205 2204 -1 -2304 2204 -1 -2205 2205 4 -2206 2205 -1 -2305 2205 -1 -2206 2206 4 -2207 2206 -1 -2306 2206 -1 -2207 2207 4 -2208 2207 -1 -2307 2207 -1 -2208 2208 4 -2209 2208 -1 -2308 2208 -1 -2209 2209 4 -2210 2209 -1 -2309 2209 -1 -2210 2210 4 -2211 2210 -1 -2310 2210 -1 -2211 2211 4 -2212 2211 -1 -2311 2211 -1 -2212 2212 4 -2213 2212 -1 -2312 2212 -1 -2213 2213 4 -2214 2213 -1 -2313 2213 -1 -2214 2214 4 -2215 2214 -1 -2314 2214 -1 -2215 2215 4 -2216 2215 -1 -2315 2215 -1 -2216 2216 4 -2217 2216 -1 -2316 2216 -1 -2217 2217 4 -2218 2217 -1 -2317 2217 -1 -2218 2218 4 -2219 2218 -1 -2318 2218 -1 -2219 2219 4 -2220 2219 -1 -2319 2219 -1 -2220 2220 4 -2221 2220 -1 -2320 2220 -1 -2221 2221 4 -2222 2221 -1 -2321 2221 -1 -2222 2222 4 -2223 2222 -1 -2322 2222 -1 -2223 2223 4 -2224 2223 -1 -2323 2223 -1 -2224 2224 4 -2225 2224 -1 -2324 2224 -1 -2225 2225 4 -2226 2225 -1 -2325 2225 -1 -2226 2226 4 -2227 2226 -1 -2326 2226 -1 -2227 2227 4 -2228 2227 -1 -2327 2227 -1 -2228 2228 4 -2229 2228 -1 -2328 2228 -1 -2229 2229 4 -2230 2229 -1 -2329 2229 -1 -2230 2230 4 -2231 2230 -1 -2330 2230 -1 -2231 2231 4 -2232 2231 -1 -2331 2231 -1 -2232 2232 4 -2233 2232 -1 -2332 2232 -1 -2233 2233 4 -2234 2233 -1 -2333 2233 -1 -2234 2234 4 -2235 2234 -1 -2334 2234 -1 -2235 2235 4 -2236 2235 -1 -2335 2235 -1 -2236 2236 4 -2237 2236 -1 -2336 2236 -1 -2237 2237 4 -2238 2237 -1 -2337 2237 -1 -2238 2238 4 -2239 2238 -1 -2338 2238 -1 -2239 2239 4 -2240 2239 -1 -2339 2239 -1 -2240 2240 4 -2241 2240 -1 -2340 2240 -1 -2241 2241 4 -2242 2241 -1 -2341 2241 -1 -2242 2242 4 -2243 2242 -1 -2342 2242 -1 -2243 2243 4 -2244 2243 -1 -2343 2243 -1 -2244 2244 4 -2245 2244 -1 -2344 2244 -1 -2245 2245 4 -2246 2245 -1 -2345 2245 -1 -2246 2246 4 -2247 2246 -1 -2346 2246 -1 -2247 2247 4 -2248 2247 -1 -2347 2247 -1 -2248 2248 4 -2249 2248 -1 -2348 2248 -1 -2249 2249 4 -2250 2249 -1 -2349 2249 -1 -2250 2250 4 -2251 2250 -1 -2350 2250 -1 -2251 2251 4 -2252 2251 -1 -2351 2251 -1 -2252 2252 4 -2253 2252 -1 -2352 2252 -1 -2253 2253 4 -2254 2253 -1 -2353 2253 -1 -2254 2254 4 -2255 2254 -1 -2354 2254 -1 -2255 2255 4 -2256 2255 -1 -2355 2255 -1 -2256 2256 4 -2257 2256 -1 -2356 2256 -1 -2257 2257 4 -2258 2257 -1 -2357 2257 -1 -2258 2258 4 -2259 2258 -1 -2358 2258 -1 -2259 2259 4 -2260 2259 -1 -2359 2259 -1 -2260 2260 4 -2261 2260 -1 -2360 2260 -1 -2261 2261 4 -2262 2261 -1 -2361 2261 -1 -2262 2262 4 -2263 2262 -1 -2362 2262 -1 -2263 2263 4 -2264 2263 -1 -2363 2263 -1 -2264 2264 4 -2265 2264 -1 -2364 2264 -1 -2265 2265 4 -2266 2265 -1 -2365 2265 -1 -2266 2266 4 -2267 2266 -1 -2366 2266 -1 -2267 2267 4 -2268 2267 -1 -2367 2267 -1 -2268 2268 4 -2269 2268 -1 -2368 2268 -1 -2269 2269 4 -2270 2269 -1 -2369 2269 -1 -2270 2270 4 -2271 2270 -1 -2370 2270 -1 -2271 2271 4 -2272 2271 -1 -2371 2271 -1 -2272 2272 4 -2273 2272 -1 -2372 2272 -1 -2273 2273 4 -2274 2273 -1 -2373 2273 -1 -2274 2274 4 -2275 2274 -1 -2374 2274 -1 -2275 2275 4 -2276 2275 -1 -2375 2275 -1 -2276 2276 4 -2277 2276 -1 -2376 2276 -1 -2277 2277 4 -2278 2277 -1 -2377 2277 -1 -2278 2278 4 -2279 2278 -1 -2378 2278 -1 -2279 2279 4 -2280 2279 -1 -2379 2279 -1 -2280 2280 4 -2281 2280 -1 -2380 2280 -1 -2281 2281 4 -2282 2281 -1 -2381 2281 -1 -2282 2282 4 -2283 2282 -1 -2382 2282 -1 -2283 2283 4 -2284 2283 -1 -2383 2283 -1 -2284 2284 4 -2285 2284 -1 -2384 2284 -1 -2285 2285 4 -2286 2285 -1 -2385 2285 -1 -2286 2286 4 -2287 2286 -1 -2386 2286 -1 -2287 2287 4 -2288 2287 -1 -2387 2287 -1 -2288 2288 4 -2289 2288 -1 -2388 2288 -1 -2289 2289 4 -2290 2289 -1 -2389 2289 -1 -2290 2290 4 -2291 2290 -1 -2390 2290 -1 -2291 2291 4 -2292 2291 -1 -2391 2291 -1 -2292 2292 4 -2293 2292 -1 -2392 2292 -1 -2293 2293 4 -2294 2293 -1 -2393 2293 -1 -2294 2294 4 -2295 2294 -1 -2394 2294 -1 -2295 2295 4 -2296 2295 -1 -2395 2295 -1 -2296 2296 4 -2297 2296 -1 -2396 2296 -1 -2297 2297 4 -2298 2297 -1 -2397 2297 -1 -2298 2298 4 -2299 2298 -1 -2398 2298 -1 -2299 2299 4 -2300 2299 -1 -2399 2299 -1 -2300 2300 4 -2400 2300 -1 -2301 2301 4 -2302 2301 -1 -2401 2301 -1 -2302 2302 4 -2303 2302 -1 -2402 2302 -1 -2303 2303 4 -2304 2303 -1 -2403 2303 -1 -2304 2304 4 -2305 2304 -1 -2404 2304 -1 -2305 2305 4 -2306 2305 -1 -2405 2305 -1 -2306 2306 4 -2307 2306 -1 -2406 2306 -1 -2307 2307 4 -2308 2307 -1 -2407 2307 -1 -2308 2308 4 -2309 2308 -1 -2408 2308 -1 -2309 2309 4 -2310 2309 -1 -2409 2309 -1 -2310 2310 4 -2311 2310 -1 -2410 2310 -1 -2311 2311 4 -2312 2311 -1 -2411 2311 -1 -2312 2312 4 -2313 2312 -1 -2412 2312 -1 -2313 2313 4 -2314 2313 -1 -2413 2313 -1 -2314 2314 4 -2315 2314 -1 -2414 2314 -1 -2315 2315 4 -2316 2315 -1 -2415 2315 -1 -2316 2316 4 -2317 2316 -1 -2416 2316 -1 -2317 2317 4 -2318 2317 -1 -2417 2317 -1 -2318 2318 4 -2319 2318 -1 -2418 2318 -1 -2319 2319 4 -2320 2319 -1 -2419 2319 -1 -2320 2320 4 -2321 2320 -1 -2420 2320 -1 -2321 2321 4 -2322 2321 -1 -2421 2321 -1 -2322 2322 4 -2323 2322 -1 -2422 2322 -1 -2323 2323 4 -2324 2323 -1 -2423 2323 -1 -2324 2324 4 -2325 2324 -1 -2424 2324 -1 -2325 2325 4 -2326 2325 -1 -2425 2325 -1 -2326 2326 4 -2327 2326 -1 -2426 2326 -1 -2327 2327 4 -2328 2327 -1 -2427 2327 -1 -2328 2328 4 -2329 2328 -1 -2428 2328 -1 -2329 2329 4 -2330 2329 -1 -2429 2329 -1 -2330 2330 4 -2331 2330 -1 -2430 2330 -1 -2331 2331 4 -2332 2331 -1 -2431 2331 -1 -2332 2332 4 -2333 2332 -1 -2432 2332 -1 -2333 2333 4 -2334 2333 -1 -2433 2333 -1 -2334 2334 4 -2335 2334 -1 -2434 2334 -1 -2335 2335 4 -2336 2335 -1 -2435 2335 -1 -2336 2336 4 -2337 2336 -1 -2436 2336 -1 -2337 2337 4 -2338 2337 -1 -2437 2337 -1 -2338 2338 4 -2339 2338 -1 -2438 2338 -1 -2339 2339 4 -2340 2339 -1 -2439 2339 -1 -2340 2340 4 -2341 2340 -1 -2440 2340 -1 -2341 2341 4 -2342 2341 -1 -2441 2341 -1 -2342 2342 4 -2343 2342 -1 -2442 2342 -1 -2343 2343 4 -2344 2343 -1 -2443 2343 -1 -2344 2344 4 -2345 2344 -1 -2444 2344 -1 -2345 2345 4 -2346 2345 -1 -2445 2345 -1 -2346 2346 4 -2347 2346 -1 -2446 2346 -1 -2347 2347 4 -2348 2347 -1 -2447 2347 -1 -2348 2348 4 -2349 2348 -1 -2448 2348 -1 -2349 2349 4 -2350 2349 -1 -2449 2349 -1 -2350 2350 4 -2351 2350 -1 -2450 2350 -1 -2351 2351 4 -2352 2351 -1 -2451 2351 -1 -2352 2352 4 -2353 2352 -1 -2452 2352 -1 -2353 2353 4 -2354 2353 -1 -2453 2353 -1 -2354 2354 4 -2355 2354 -1 -2454 2354 -1 -2355 2355 4 -2356 2355 -1 -2455 2355 -1 -2356 2356 4 -2357 2356 -1 -2456 2356 -1 -2357 2357 4 -2358 2357 -1 -2457 2357 -1 -2358 2358 4 -2359 2358 -1 -2458 2358 -1 -2359 2359 4 -2360 2359 -1 -2459 2359 -1 -2360 2360 4 -2361 2360 -1 -2460 2360 -1 -2361 2361 4 -2362 2361 -1 -2461 2361 -1 -2362 2362 4 -2363 2362 -1 -2462 2362 -1 -2363 2363 4 -2364 2363 -1 -2463 2363 -1 -2364 2364 4 -2365 2364 -1 -2464 2364 -1 -2365 2365 4 -2366 2365 -1 -2465 2365 -1 -2366 2366 4 -2367 2366 -1 -2466 2366 -1 -2367 2367 4 -2368 2367 -1 -2467 2367 -1 -2368 2368 4 -2369 2368 -1 -2468 2368 -1 -2369 2369 4 -2370 2369 -1 -2469 2369 -1 -2370 2370 4 -2371 2370 -1 -2470 2370 -1 -2371 2371 4 -2372 2371 -1 -2471 2371 -1 -2372 2372 4 -2373 2372 -1 -2472 2372 -1 -2373 2373 4 -2374 2373 -1 -2473 2373 -1 -2374 2374 4 -2375 2374 -1 -2474 2374 -1 -2375 2375 4 -2376 2375 -1 -2475 2375 -1 -2376 2376 4 -2377 2376 -1 -2476 2376 -1 -2377 2377 4 -2378 2377 -1 -2477 2377 -1 -2378 2378 4 -2379 2378 -1 -2478 2378 -1 -2379 2379 4 -2380 2379 -1 -2479 2379 -1 -2380 2380 4 -2381 2380 -1 -2480 2380 -1 -2381 2381 4 -2382 2381 -1 -2481 2381 -1 -2382 2382 4 -2383 2382 -1 -2482 2382 -1 -2383 2383 4 -2384 2383 -1 -2483 2383 -1 -2384 2384 4 -2385 2384 -1 -2484 2384 -1 -2385 2385 4 -2386 2385 -1 -2485 2385 -1 -2386 2386 4 -2387 2386 -1 -2486 2386 -1 -2387 2387 4 -2388 2387 -1 -2487 2387 -1 -2388 2388 4 -2389 2388 -1 -2488 2388 -1 -2389 2389 4 -2390 2389 -1 -2489 2389 -1 -2390 2390 4 -2391 2390 -1 -2490 2390 -1 -2391 2391 4 -2392 2391 -1 -2491 2391 -1 -2392 2392 4 -2393 2392 -1 -2492 2392 -1 -2393 2393 4 -2394 2393 -1 -2493 2393 -1 -2394 2394 4 -2395 2394 -1 -2494 2394 -1 -2395 2395 4 -2396 2395 -1 -2495 2395 -1 -2396 2396 4 -2397 2396 -1 -2496 2396 -1 -2397 2397 4 -2398 2397 -1 -2497 2397 -1 -2398 2398 4 -2399 2398 -1 -2498 2398 -1 -2399 2399 4 -2400 2399 -1 -2499 2399 -1 -2400 2400 4 -2500 2400 -1 -2401 2401 4 -2402 2401 -1 -2501 2401 -1 -2402 2402 4 -2403 2402 -1 -2502 2402 -1 -2403 2403 4 -2404 2403 -1 -2503 2403 -1 -2404 2404 4 -2405 2404 -1 -2504 2404 -1 -2405 2405 4 -2406 2405 -1 -2505 2405 -1 -2406 2406 4 -2407 2406 -1 -2506 2406 -1 -2407 2407 4 -2408 2407 -1 -2507 2407 -1 -2408 2408 4 -2409 2408 -1 -2508 2408 -1 -2409 2409 4 -2410 2409 -1 -2509 2409 -1 -2410 2410 4 -2411 2410 -1 -2510 2410 -1 -2411 2411 4 -2412 2411 -1 -2511 2411 -1 -2412 2412 4 -2413 2412 -1 -2512 2412 -1 -2413 2413 4 -2414 2413 -1 -2513 2413 -1 -2414 2414 4 -2415 2414 -1 -2514 2414 -1 -2415 2415 4 -2416 2415 -1 -2515 2415 -1 -2416 2416 4 -2417 2416 -1 -2516 2416 -1 -2417 2417 4 -2418 2417 -1 -2517 2417 -1 -2418 2418 4 -2419 2418 -1 -2518 2418 -1 -2419 2419 4 -2420 2419 -1 -2519 2419 -1 -2420 2420 4 -2421 2420 -1 -2520 2420 -1 -2421 2421 4 -2422 2421 -1 -2521 2421 -1 -2422 2422 4 -2423 2422 -1 -2522 2422 -1 -2423 2423 4 -2424 2423 -1 -2523 2423 -1 -2424 2424 4 -2425 2424 -1 -2524 2424 -1 -2425 2425 4 -2426 2425 -1 -2525 2425 -1 -2426 2426 4 -2427 2426 -1 -2526 2426 -1 -2427 2427 4 -2428 2427 -1 -2527 2427 -1 -2428 2428 4 -2429 2428 -1 -2528 2428 -1 -2429 2429 4 -2430 2429 -1 -2529 2429 -1 -2430 2430 4 -2431 2430 -1 -2530 2430 -1 -2431 2431 4 -2432 2431 -1 -2531 2431 -1 -2432 2432 4 -2433 2432 -1 -2532 2432 -1 -2433 2433 4 -2434 2433 -1 -2533 2433 -1 -2434 2434 4 -2435 2434 -1 -2534 2434 -1 -2435 2435 4 -2436 2435 -1 -2535 2435 -1 -2436 2436 4 -2437 2436 -1 -2536 2436 -1 -2437 2437 4 -2438 2437 -1 -2537 2437 -1 -2438 2438 4 -2439 2438 -1 -2538 2438 -1 -2439 2439 4 -2440 2439 -1 -2539 2439 -1 -2440 2440 4 -2441 2440 -1 -2540 2440 -1 -2441 2441 4 -2442 2441 -1 -2541 2441 -1 -2442 2442 4 -2443 2442 -1 -2542 2442 -1 -2443 2443 4 -2444 2443 -1 -2543 2443 -1 -2444 2444 4 -2445 2444 -1 -2544 2444 -1 -2445 2445 4 -2446 2445 -1 -2545 2445 -1 -2446 2446 4 -2447 2446 -1 -2546 2446 -1 -2447 2447 4 -2448 2447 -1 -2547 2447 -1 -2448 2448 4 -2449 2448 -1 -2548 2448 -1 -2449 2449 4 -2450 2449 -1 -2549 2449 -1 -2450 2450 4 -2451 2450 -1 -2550 2450 -1 -2451 2451 4 -2452 2451 -1 -2551 2451 -1 -2452 2452 4 -2453 2452 -1 -2552 2452 -1 -2453 2453 4 -2454 2453 -1 -2553 2453 -1 -2454 2454 4 -2455 2454 -1 -2554 2454 -1 -2455 2455 4 -2456 2455 -1 -2555 2455 -1 -2456 2456 4 -2457 2456 -1 -2556 2456 -1 -2457 2457 4 -2458 2457 -1 -2557 2457 -1 -2458 2458 4 -2459 2458 -1 -2558 2458 -1 -2459 2459 4 -2460 2459 -1 -2559 2459 -1 -2460 2460 4 -2461 2460 -1 -2560 2460 -1 -2461 2461 4 -2462 2461 -1 -2561 2461 -1 -2462 2462 4 -2463 2462 -1 -2562 2462 -1 -2463 2463 4 -2464 2463 -1 -2563 2463 -1 -2464 2464 4 -2465 2464 -1 -2564 2464 -1 -2465 2465 4 -2466 2465 -1 -2565 2465 -1 -2466 2466 4 -2467 2466 -1 -2566 2466 -1 -2467 2467 4 -2468 2467 -1 -2567 2467 -1 -2468 2468 4 -2469 2468 -1 -2568 2468 -1 -2469 2469 4 -2470 2469 -1 -2569 2469 -1 -2470 2470 4 -2471 2470 -1 -2570 2470 -1 -2471 2471 4 -2472 2471 -1 -2571 2471 -1 -2472 2472 4 -2473 2472 -1 -2572 2472 -1 -2473 2473 4 -2474 2473 -1 -2573 2473 -1 -2474 2474 4 -2475 2474 -1 -2574 2474 -1 -2475 2475 4 -2476 2475 -1 -2575 2475 -1 -2476 2476 4 -2477 2476 -1 -2576 2476 -1 -2477 2477 4 -2478 2477 -1 -2577 2477 -1 -2478 2478 4 -2479 2478 -1 -2578 2478 -1 -2479 2479 4 -2480 2479 -1 -2579 2479 -1 -2480 2480 4 -2481 2480 -1 -2580 2480 -1 -2481 2481 4 -2482 2481 -1 -2581 2481 -1 -2482 2482 4 -2483 2482 -1 -2582 2482 -1 -2483 2483 4 -2484 2483 -1 -2583 2483 -1 -2484 2484 4 -2485 2484 -1 -2584 2484 -1 -2485 2485 4 -2486 2485 -1 -2585 2485 -1 -2486 2486 4 -2487 2486 -1 -2586 2486 -1 -2487 2487 4 -2488 2487 -1 -2587 2487 -1 -2488 2488 4 -2489 2488 -1 -2588 2488 -1 -2489 2489 4 -2490 2489 -1 -2589 2489 -1 -2490 2490 4 -2491 2490 -1 -2590 2490 -1 -2491 2491 4 -2492 2491 -1 -2591 2491 -1 -2492 2492 4 -2493 2492 -1 -2592 2492 -1 -2493 2493 4 -2494 2493 -1 -2593 2493 -1 -2494 2494 4 -2495 2494 -1 -2594 2494 -1 -2495 2495 4 -2496 2495 -1 -2595 2495 -1 -2496 2496 4 -2497 2496 -1 -2596 2496 -1 -2497 2497 4 -2498 2497 -1 -2597 2497 -1 -2498 2498 4 -2499 2498 -1 -2598 2498 -1 -2499 2499 4 -2500 2499 -1 -2599 2499 -1 -2500 2500 4 -2600 2500 -1 -2501 2501 4 -2502 2501 -1 -2601 2501 -1 -2502 2502 4 -2503 2502 -1 -2602 2502 -1 -2503 2503 4 -2504 2503 -1 -2603 2503 -1 -2504 2504 4 -2505 2504 -1 -2604 2504 -1 -2505 2505 4 -2506 2505 -1 -2605 2505 -1 -2506 2506 4 -2507 2506 -1 -2606 2506 -1 -2507 2507 4 -2508 2507 -1 -2607 2507 -1 -2508 2508 4 -2509 2508 -1 -2608 2508 -1 -2509 2509 4 -2510 2509 -1 -2609 2509 -1 -2510 2510 4 -2511 2510 -1 -2610 2510 -1 -2511 2511 4 -2512 2511 -1 -2611 2511 -1 -2512 2512 4 -2513 2512 -1 -2612 2512 -1 -2513 2513 4 -2514 2513 -1 -2613 2513 -1 -2514 2514 4 -2515 2514 -1 -2614 2514 -1 -2515 2515 4 -2516 2515 -1 -2615 2515 -1 -2516 2516 4 -2517 2516 -1 -2616 2516 -1 -2517 2517 4 -2518 2517 -1 -2617 2517 -1 -2518 2518 4 -2519 2518 -1 -2618 2518 -1 -2519 2519 4 -2520 2519 -1 -2619 2519 -1 -2520 2520 4 -2521 2520 -1 -2620 2520 -1 -2521 2521 4 -2522 2521 -1 -2621 2521 -1 -2522 2522 4 -2523 2522 -1 -2622 2522 -1 -2523 2523 4 -2524 2523 -1 -2623 2523 -1 -2524 2524 4 -2525 2524 -1 -2624 2524 -1 -2525 2525 4 -2526 2525 -1 -2625 2525 -1 -2526 2526 4 -2527 2526 -1 -2626 2526 -1 -2527 2527 4 -2528 2527 -1 -2627 2527 -1 -2528 2528 4 -2529 2528 -1 -2628 2528 -1 -2529 2529 4 -2530 2529 -1 -2629 2529 -1 -2530 2530 4 -2531 2530 -1 -2630 2530 -1 -2531 2531 4 -2532 2531 -1 -2631 2531 -1 -2532 2532 4 -2533 2532 -1 -2632 2532 -1 -2533 2533 4 -2534 2533 -1 -2633 2533 -1 -2534 2534 4 -2535 2534 -1 -2634 2534 -1 -2535 2535 4 -2536 2535 -1 -2635 2535 -1 -2536 2536 4 -2537 2536 -1 -2636 2536 -1 -2537 2537 4 -2538 2537 -1 -2637 2537 -1 -2538 2538 4 -2539 2538 -1 -2638 2538 -1 -2539 2539 4 -2540 2539 -1 -2639 2539 -1 -2540 2540 4 -2541 2540 -1 -2640 2540 -1 -2541 2541 4 -2542 2541 -1 -2641 2541 -1 -2542 2542 4 -2543 2542 -1 -2642 2542 -1 -2543 2543 4 -2544 2543 -1 -2643 2543 -1 -2544 2544 4 -2545 2544 -1 -2644 2544 -1 -2545 2545 4 -2546 2545 -1 -2645 2545 -1 -2546 2546 4 -2547 2546 -1 -2646 2546 -1 -2547 2547 4 -2548 2547 -1 -2647 2547 -1 -2548 2548 4 -2549 2548 -1 -2648 2548 -1 -2549 2549 4 -2550 2549 -1 -2649 2549 -1 -2550 2550 4 -2551 2550 -1 -2650 2550 -1 -2551 2551 4 -2552 2551 -1 -2651 2551 -1 -2552 2552 4 -2553 2552 -1 -2652 2552 -1 -2553 2553 4 -2554 2553 -1 -2653 2553 -1 -2554 2554 4 -2555 2554 -1 -2654 2554 -1 -2555 2555 4 -2556 2555 -1 -2655 2555 -1 -2556 2556 4 -2557 2556 -1 -2656 2556 -1 -2557 2557 4 -2558 2557 -1 -2657 2557 -1 -2558 2558 4 -2559 2558 -1 -2658 2558 -1 -2559 2559 4 -2560 2559 -1 -2659 2559 -1 -2560 2560 4 -2561 2560 -1 -2660 2560 -1 -2561 2561 4 -2562 2561 -1 -2661 2561 -1 -2562 2562 4 -2563 2562 -1 -2662 2562 -1 -2563 2563 4 -2564 2563 -1 -2663 2563 -1 -2564 2564 4 -2565 2564 -1 -2664 2564 -1 -2565 2565 4 -2566 2565 -1 -2665 2565 -1 -2566 2566 4 -2567 2566 -1 -2666 2566 -1 -2567 2567 4 -2568 2567 -1 -2667 2567 -1 -2568 2568 4 -2569 2568 -1 -2668 2568 -1 -2569 2569 4 -2570 2569 -1 -2669 2569 -1 -2570 2570 4 -2571 2570 -1 -2670 2570 -1 -2571 2571 4 -2572 2571 -1 -2671 2571 -1 -2572 2572 4 -2573 2572 -1 -2672 2572 -1 -2573 2573 4 -2574 2573 -1 -2673 2573 -1 -2574 2574 4 -2575 2574 -1 -2674 2574 -1 -2575 2575 4 -2576 2575 -1 -2675 2575 -1 -2576 2576 4 -2577 2576 -1 -2676 2576 -1 -2577 2577 4 -2578 2577 -1 -2677 2577 -1 -2578 2578 4 -2579 2578 -1 -2678 2578 -1 -2579 2579 4 -2580 2579 -1 -2679 2579 -1 -2580 2580 4 -2581 2580 -1 -2680 2580 -1 -2581 2581 4 -2582 2581 -1 -2681 2581 -1 -2582 2582 4 -2583 2582 -1 -2682 2582 -1 -2583 2583 4 -2584 2583 -1 -2683 2583 -1 -2584 2584 4 -2585 2584 -1 -2684 2584 -1 -2585 2585 4 -2586 2585 -1 -2685 2585 -1 -2586 2586 4 -2587 2586 -1 -2686 2586 -1 -2587 2587 4 -2588 2587 -1 -2687 2587 -1 -2588 2588 4 -2589 2588 -1 -2688 2588 -1 -2589 2589 4 -2590 2589 -1 -2689 2589 -1 -2590 2590 4 -2591 2590 -1 -2690 2590 -1 -2591 2591 4 -2592 2591 -1 -2691 2591 -1 -2592 2592 4 -2593 2592 -1 -2692 2592 -1 -2593 2593 4 -2594 2593 -1 -2693 2593 -1 -2594 2594 4 -2595 2594 -1 -2694 2594 -1 -2595 2595 4 -2596 2595 -1 -2695 2595 -1 -2596 2596 4 -2597 2596 -1 -2696 2596 -1 -2597 2597 4 -2598 2597 -1 -2697 2597 -1 -2598 2598 4 -2599 2598 -1 -2698 2598 -1 -2599 2599 4 -2600 2599 -1 -2699 2599 -1 -2600 2600 4 -2700 2600 -1 -2601 2601 4 -2602 2601 -1 -2701 2601 -1 -2602 2602 4 -2603 2602 -1 -2702 2602 -1 -2603 2603 4 -2604 2603 -1 -2703 2603 -1 -2604 2604 4 -2605 2604 -1 -2704 2604 -1 -2605 2605 4 -2606 2605 -1 -2705 2605 -1 -2606 2606 4 -2607 2606 -1 -2706 2606 -1 -2607 2607 4 -2608 2607 -1 -2707 2607 -1 -2608 2608 4 -2609 2608 -1 -2708 2608 -1 -2609 2609 4 -2610 2609 -1 -2709 2609 -1 -2610 2610 4 -2611 2610 -1 -2710 2610 -1 -2611 2611 4 -2612 2611 -1 -2711 2611 -1 -2612 2612 4 -2613 2612 -1 -2712 2612 -1 -2613 2613 4 -2614 2613 -1 -2713 2613 -1 -2614 2614 4 -2615 2614 -1 -2714 2614 -1 -2615 2615 4 -2616 2615 -1 -2715 2615 -1 -2616 2616 4 -2617 2616 -1 -2716 2616 -1 -2617 2617 4 -2618 2617 -1 -2717 2617 -1 -2618 2618 4 -2619 2618 -1 -2718 2618 -1 -2619 2619 4 -2620 2619 -1 -2719 2619 -1 -2620 2620 4 -2621 2620 -1 -2720 2620 -1 -2621 2621 4 -2622 2621 -1 -2721 2621 -1 -2622 2622 4 -2623 2622 -1 -2722 2622 -1 -2623 2623 4 -2624 2623 -1 -2723 2623 -1 -2624 2624 4 -2625 2624 -1 -2724 2624 -1 -2625 2625 4 -2626 2625 -1 -2725 2625 -1 -2626 2626 4 -2627 2626 -1 -2726 2626 -1 -2627 2627 4 -2628 2627 -1 -2727 2627 -1 -2628 2628 4 -2629 2628 -1 -2728 2628 -1 -2629 2629 4 -2630 2629 -1 -2729 2629 -1 -2630 2630 4 -2631 2630 -1 -2730 2630 -1 -2631 2631 4 -2632 2631 -1 -2731 2631 -1 -2632 2632 4 -2633 2632 -1 -2732 2632 -1 -2633 2633 4 -2634 2633 -1 -2733 2633 -1 -2634 2634 4 -2635 2634 -1 -2734 2634 -1 -2635 2635 4 -2636 2635 -1 -2735 2635 -1 -2636 2636 4 -2637 2636 -1 -2736 2636 -1 -2637 2637 4 -2638 2637 -1 -2737 2637 -1 -2638 2638 4 -2639 2638 -1 -2738 2638 -1 -2639 2639 4 -2640 2639 -1 -2739 2639 -1 -2640 2640 4 -2641 2640 -1 -2740 2640 -1 -2641 2641 4 -2642 2641 -1 -2741 2641 -1 -2642 2642 4 -2643 2642 -1 -2742 2642 -1 -2643 2643 4 -2644 2643 -1 -2743 2643 -1 -2644 2644 4 -2645 2644 -1 -2744 2644 -1 -2645 2645 4 -2646 2645 -1 -2745 2645 -1 -2646 2646 4 -2647 2646 -1 -2746 2646 -1 -2647 2647 4 -2648 2647 -1 -2747 2647 -1 -2648 2648 4 -2649 2648 -1 -2748 2648 -1 -2649 2649 4 -2650 2649 -1 -2749 2649 -1 -2650 2650 4 -2651 2650 -1 -2750 2650 -1 -2651 2651 4 -2652 2651 -1 -2751 2651 -1 -2652 2652 4 -2653 2652 -1 -2752 2652 -1 -2653 2653 4 -2654 2653 -1 -2753 2653 -1 -2654 2654 4 -2655 2654 -1 -2754 2654 -1 -2655 2655 4 -2656 2655 -1 -2755 2655 -1 -2656 2656 4 -2657 2656 -1 -2756 2656 -1 -2657 2657 4 -2658 2657 -1 -2757 2657 -1 -2658 2658 4 -2659 2658 -1 -2758 2658 -1 -2659 2659 4 -2660 2659 -1 -2759 2659 -1 -2660 2660 4 -2661 2660 -1 -2760 2660 -1 -2661 2661 4 -2662 2661 -1 -2761 2661 -1 -2662 2662 4 -2663 2662 -1 -2762 2662 -1 -2663 2663 4 -2664 2663 -1 -2763 2663 -1 -2664 2664 4 -2665 2664 -1 -2764 2664 -1 -2665 2665 4 -2666 2665 -1 -2765 2665 -1 -2666 2666 4 -2667 2666 -1 -2766 2666 -1 -2667 2667 4 -2668 2667 -1 -2767 2667 -1 -2668 2668 4 -2669 2668 -1 -2768 2668 -1 -2669 2669 4 -2670 2669 -1 -2769 2669 -1 -2670 2670 4 -2671 2670 -1 -2770 2670 -1 -2671 2671 4 -2672 2671 -1 -2771 2671 -1 -2672 2672 4 -2673 2672 -1 -2772 2672 -1 -2673 2673 4 -2674 2673 -1 -2773 2673 -1 -2674 2674 4 -2675 2674 -1 -2774 2674 -1 -2675 2675 4 -2676 2675 -1 -2775 2675 -1 -2676 2676 4 -2677 2676 -1 -2776 2676 -1 -2677 2677 4 -2678 2677 -1 -2777 2677 -1 -2678 2678 4 -2679 2678 -1 -2778 2678 -1 -2679 2679 4 -2680 2679 -1 -2779 2679 -1 -2680 2680 4 -2681 2680 -1 -2780 2680 -1 -2681 2681 4 -2682 2681 -1 -2781 2681 -1 -2682 2682 4 -2683 2682 -1 -2782 2682 -1 -2683 2683 4 -2684 2683 -1 -2783 2683 -1 -2684 2684 4 -2685 2684 -1 -2784 2684 -1 -2685 2685 4 -2686 2685 -1 -2785 2685 -1 -2686 2686 4 -2687 2686 -1 -2786 2686 -1 -2687 2687 4 -2688 2687 -1 -2787 2687 -1 -2688 2688 4 -2689 2688 -1 -2788 2688 -1 -2689 2689 4 -2690 2689 -1 -2789 2689 -1 -2690 2690 4 -2691 2690 -1 -2790 2690 -1 -2691 2691 4 -2692 2691 -1 -2791 2691 -1 -2692 2692 4 -2693 2692 -1 -2792 2692 -1 -2693 2693 4 -2694 2693 -1 -2793 2693 -1 -2694 2694 4 -2695 2694 -1 -2794 2694 -1 -2695 2695 4 -2696 2695 -1 -2795 2695 -1 -2696 2696 4 -2697 2696 -1 -2796 2696 -1 -2697 2697 4 -2698 2697 -1 -2797 2697 -1 -2698 2698 4 -2699 2698 -1 -2798 2698 -1 -2699 2699 4 -2700 2699 -1 -2799 2699 -1 -2700 2700 4 -2800 2700 -1 -2701 2701 4 -2702 2701 -1 -2801 2701 -1 -2702 2702 4 -2703 2702 -1 -2802 2702 -1 -2703 2703 4 -2704 2703 -1 -2803 2703 -1 -2704 2704 4 -2705 2704 -1 -2804 2704 -1 -2705 2705 4 -2706 2705 -1 -2805 2705 -1 -2706 2706 4 -2707 2706 -1 -2806 2706 -1 -2707 2707 4 -2708 2707 -1 -2807 2707 -1 -2708 2708 4 -2709 2708 -1 -2808 2708 -1 -2709 2709 4 -2710 2709 -1 -2809 2709 -1 -2710 2710 4 -2711 2710 -1 -2810 2710 -1 -2711 2711 4 -2712 2711 -1 -2811 2711 -1 -2712 2712 4 -2713 2712 -1 -2812 2712 -1 -2713 2713 4 -2714 2713 -1 -2813 2713 -1 -2714 2714 4 -2715 2714 -1 -2814 2714 -1 -2715 2715 4 -2716 2715 -1 -2815 2715 -1 -2716 2716 4 -2717 2716 -1 -2816 2716 -1 -2717 2717 4 -2718 2717 -1 -2817 2717 -1 -2718 2718 4 -2719 2718 -1 -2818 2718 -1 -2719 2719 4 -2720 2719 -1 -2819 2719 -1 -2720 2720 4 -2721 2720 -1 -2820 2720 -1 -2721 2721 4 -2722 2721 -1 -2821 2721 -1 -2722 2722 4 -2723 2722 -1 -2822 2722 -1 -2723 2723 4 -2724 2723 -1 -2823 2723 -1 -2724 2724 4 -2725 2724 -1 -2824 2724 -1 -2725 2725 4 -2726 2725 -1 -2825 2725 -1 -2726 2726 4 -2727 2726 -1 -2826 2726 -1 -2727 2727 4 -2728 2727 -1 -2827 2727 -1 -2728 2728 4 -2729 2728 -1 -2828 2728 -1 -2729 2729 4 -2730 2729 -1 -2829 2729 -1 -2730 2730 4 -2731 2730 -1 -2830 2730 -1 -2731 2731 4 -2732 2731 -1 -2831 2731 -1 -2732 2732 4 -2733 2732 -1 -2832 2732 -1 -2733 2733 4 -2734 2733 -1 -2833 2733 -1 -2734 2734 4 -2735 2734 -1 -2834 2734 -1 -2735 2735 4 -2736 2735 -1 -2835 2735 -1 -2736 2736 4 -2737 2736 -1 -2836 2736 -1 -2737 2737 4 -2738 2737 -1 -2837 2737 -1 -2738 2738 4 -2739 2738 -1 -2838 2738 -1 -2739 2739 4 -2740 2739 -1 -2839 2739 -1 -2740 2740 4 -2741 2740 -1 -2840 2740 -1 -2741 2741 4 -2742 2741 -1 -2841 2741 -1 -2742 2742 4 -2743 2742 -1 -2842 2742 -1 -2743 2743 4 -2744 2743 -1 -2843 2743 -1 -2744 2744 4 -2745 2744 -1 -2844 2744 -1 -2745 2745 4 -2746 2745 -1 -2845 2745 -1 -2746 2746 4 -2747 2746 -1 -2846 2746 -1 -2747 2747 4 -2748 2747 -1 -2847 2747 -1 -2748 2748 4 -2749 2748 -1 -2848 2748 -1 -2749 2749 4 -2750 2749 -1 -2849 2749 -1 -2750 2750 4 -2751 2750 -1 -2850 2750 -1 -2751 2751 4 -2752 2751 -1 -2851 2751 -1 -2752 2752 4 -2753 2752 -1 -2852 2752 -1 -2753 2753 4 -2754 2753 -1 -2853 2753 -1 -2754 2754 4 -2755 2754 -1 -2854 2754 -1 -2755 2755 4 -2756 2755 -1 -2855 2755 -1 -2756 2756 4 -2757 2756 -1 -2856 2756 -1 -2757 2757 4 -2758 2757 -1 -2857 2757 -1 -2758 2758 4 -2759 2758 -1 -2858 2758 -1 -2759 2759 4 -2760 2759 -1 -2859 2759 -1 -2760 2760 4 -2761 2760 -1 -2860 2760 -1 -2761 2761 4 -2762 2761 -1 -2861 2761 -1 -2762 2762 4 -2763 2762 -1 -2862 2762 -1 -2763 2763 4 -2764 2763 -1 -2863 2763 -1 -2764 2764 4 -2765 2764 -1 -2864 2764 -1 -2765 2765 4 -2766 2765 -1 -2865 2765 -1 -2766 2766 4 -2767 2766 -1 -2866 2766 -1 -2767 2767 4 -2768 2767 -1 -2867 2767 -1 -2768 2768 4 -2769 2768 -1 -2868 2768 -1 -2769 2769 4 -2770 2769 -1 -2869 2769 -1 -2770 2770 4 -2771 2770 -1 -2870 2770 -1 -2771 2771 4 -2772 2771 -1 -2871 2771 -1 -2772 2772 4 -2773 2772 -1 -2872 2772 -1 -2773 2773 4 -2774 2773 -1 -2873 2773 -1 -2774 2774 4 -2775 2774 -1 -2874 2774 -1 -2775 2775 4 -2776 2775 -1 -2875 2775 -1 -2776 2776 4 -2777 2776 -1 -2876 2776 -1 -2777 2777 4 -2778 2777 -1 -2877 2777 -1 -2778 2778 4 -2779 2778 -1 -2878 2778 -1 -2779 2779 4 -2780 2779 -1 -2879 2779 -1 -2780 2780 4 -2781 2780 -1 -2880 2780 -1 -2781 2781 4 -2782 2781 -1 -2881 2781 -1 -2782 2782 4 -2783 2782 -1 -2882 2782 -1 -2783 2783 4 -2784 2783 -1 -2883 2783 -1 -2784 2784 4 -2785 2784 -1 -2884 2784 -1 -2785 2785 4 -2786 2785 -1 -2885 2785 -1 -2786 2786 4 -2787 2786 -1 -2886 2786 -1 -2787 2787 4 -2788 2787 -1 -2887 2787 -1 -2788 2788 4 -2789 2788 -1 -2888 2788 -1 -2789 2789 4 -2790 2789 -1 -2889 2789 -1 -2790 2790 4 -2791 2790 -1 -2890 2790 -1 -2791 2791 4 -2792 2791 -1 -2891 2791 -1 -2792 2792 4 -2793 2792 -1 -2892 2792 -1 -2793 2793 4 -2794 2793 -1 -2893 2793 -1 -2794 2794 4 -2795 2794 -1 -2894 2794 -1 -2795 2795 4 -2796 2795 -1 -2895 2795 -1 -2796 2796 4 -2797 2796 -1 -2896 2796 -1 -2797 2797 4 -2798 2797 -1 -2897 2797 -1 -2798 2798 4 -2799 2798 -1 -2898 2798 -1 -2799 2799 4 -2800 2799 -1 -2899 2799 -1 -2800 2800 4 -2900 2800 -1 -2801 2801 4 -2802 2801 -1 -2901 2801 -1 -2802 2802 4 -2803 2802 -1 -2902 2802 -1 -2803 2803 4 -2804 2803 -1 -2903 2803 -1 -2804 2804 4 -2805 2804 -1 -2904 2804 -1 -2805 2805 4 -2806 2805 -1 -2905 2805 -1 -2806 2806 4 -2807 2806 -1 -2906 2806 -1 -2807 2807 4 -2808 2807 -1 -2907 2807 -1 -2808 2808 4 -2809 2808 -1 -2908 2808 -1 -2809 2809 4 -2810 2809 -1 -2909 2809 -1 -2810 2810 4 -2811 2810 -1 -2910 2810 -1 -2811 2811 4 -2812 2811 -1 -2911 2811 -1 -2812 2812 4 -2813 2812 -1 -2912 2812 -1 -2813 2813 4 -2814 2813 -1 -2913 2813 -1 -2814 2814 4 -2815 2814 -1 -2914 2814 -1 -2815 2815 4 -2816 2815 -1 -2915 2815 -1 -2816 2816 4 -2817 2816 -1 -2916 2816 -1 -2817 2817 4 -2818 2817 -1 -2917 2817 -1 -2818 2818 4 -2819 2818 -1 -2918 2818 -1 -2819 2819 4 -2820 2819 -1 -2919 2819 -1 -2820 2820 4 -2821 2820 -1 -2920 2820 -1 -2821 2821 4 -2822 2821 -1 -2921 2821 -1 -2822 2822 4 -2823 2822 -1 -2922 2822 -1 -2823 2823 4 -2824 2823 -1 -2923 2823 -1 -2824 2824 4 -2825 2824 -1 -2924 2824 -1 -2825 2825 4 -2826 2825 -1 -2925 2825 -1 -2826 2826 4 -2827 2826 -1 -2926 2826 -1 -2827 2827 4 -2828 2827 -1 -2927 2827 -1 -2828 2828 4 -2829 2828 -1 -2928 2828 -1 -2829 2829 4 -2830 2829 -1 -2929 2829 -1 -2830 2830 4 -2831 2830 -1 -2930 2830 -1 -2831 2831 4 -2832 2831 -1 -2931 2831 -1 -2832 2832 4 -2833 2832 -1 -2932 2832 -1 -2833 2833 4 -2834 2833 -1 -2933 2833 -1 -2834 2834 4 -2835 2834 -1 -2934 2834 -1 -2835 2835 4 -2836 2835 -1 -2935 2835 -1 -2836 2836 4 -2837 2836 -1 -2936 2836 -1 -2837 2837 4 -2838 2837 -1 -2937 2837 -1 -2838 2838 4 -2839 2838 -1 -2938 2838 -1 -2839 2839 4 -2840 2839 -1 -2939 2839 -1 -2840 2840 4 -2841 2840 -1 -2940 2840 -1 -2841 2841 4 -2842 2841 -1 -2941 2841 -1 -2842 2842 4 -2843 2842 -1 -2942 2842 -1 -2843 2843 4 -2844 2843 -1 -2943 2843 -1 -2844 2844 4 -2845 2844 -1 -2944 2844 -1 -2845 2845 4 -2846 2845 -1 -2945 2845 -1 -2846 2846 4 -2847 2846 -1 -2946 2846 -1 -2847 2847 4 -2848 2847 -1 -2947 2847 -1 -2848 2848 4 -2849 2848 -1 -2948 2848 -1 -2849 2849 4 -2850 2849 -1 -2949 2849 -1 -2850 2850 4 -2851 2850 -1 -2950 2850 -1 -2851 2851 4 -2852 2851 -1 -2951 2851 -1 -2852 2852 4 -2853 2852 -1 -2952 2852 -1 -2853 2853 4 -2854 2853 -1 -2953 2853 -1 -2854 2854 4 -2855 2854 -1 -2954 2854 -1 -2855 2855 4 -2856 2855 -1 -2955 2855 -1 -2856 2856 4 -2857 2856 -1 -2956 2856 -1 -2857 2857 4 -2858 2857 -1 -2957 2857 -1 -2858 2858 4 -2859 2858 -1 -2958 2858 -1 -2859 2859 4 -2860 2859 -1 -2959 2859 -1 -2860 2860 4 -2861 2860 -1 -2960 2860 -1 -2861 2861 4 -2862 2861 -1 -2961 2861 -1 -2862 2862 4 -2863 2862 -1 -2962 2862 -1 -2863 2863 4 -2864 2863 -1 -2963 2863 -1 -2864 2864 4 -2865 2864 -1 -2964 2864 -1 -2865 2865 4 -2866 2865 -1 -2965 2865 -1 -2866 2866 4 -2867 2866 -1 -2966 2866 -1 -2867 2867 4 -2868 2867 -1 -2967 2867 -1 -2868 2868 4 -2869 2868 -1 -2968 2868 -1 -2869 2869 4 -2870 2869 -1 -2969 2869 -1 -2870 2870 4 -2871 2870 -1 -2970 2870 -1 -2871 2871 4 -2872 2871 -1 -2971 2871 -1 -2872 2872 4 -2873 2872 -1 -2972 2872 -1 -2873 2873 4 -2874 2873 -1 -2973 2873 -1 -2874 2874 4 -2875 2874 -1 -2974 2874 -1 -2875 2875 4 -2876 2875 -1 -2975 2875 -1 -2876 2876 4 -2877 2876 -1 -2976 2876 -1 -2877 2877 4 -2878 2877 -1 -2977 2877 -1 -2878 2878 4 -2879 2878 -1 -2978 2878 -1 -2879 2879 4 -2880 2879 -1 -2979 2879 -1 -2880 2880 4 -2881 2880 -1 -2980 2880 -1 -2881 2881 4 -2882 2881 -1 -2981 2881 -1 -2882 2882 4 -2883 2882 -1 -2982 2882 -1 -2883 2883 4 -2884 2883 -1 -2983 2883 -1 -2884 2884 4 -2885 2884 -1 -2984 2884 -1 -2885 2885 4 -2886 2885 -1 -2985 2885 -1 -2886 2886 4 -2887 2886 -1 -2986 2886 -1 -2887 2887 4 -2888 2887 -1 -2987 2887 -1 -2888 2888 4 -2889 2888 -1 -2988 2888 -1 -2889 2889 4 -2890 2889 -1 -2989 2889 -1 -2890 2890 4 -2891 2890 -1 -2990 2890 -1 -2891 2891 4 -2892 2891 -1 -2991 2891 -1 -2892 2892 4 -2893 2892 -1 -2992 2892 -1 -2893 2893 4 -2894 2893 -1 -2993 2893 -1 -2894 2894 4 -2895 2894 -1 -2994 2894 -1 -2895 2895 4 -2896 2895 -1 -2995 2895 -1 -2896 2896 4 -2897 2896 -1 -2996 2896 -1 -2897 2897 4 -2898 2897 -1 -2997 2897 -1 -2898 2898 4 -2899 2898 -1 -2998 2898 -1 -2899 2899 4 -2900 2899 -1 -2999 2899 -1 -2900 2900 4 -3000 2900 -1 -2901 2901 4 -2902 2901 -1 -3001 2901 -1 -2902 2902 4 -2903 2902 -1 -3002 2902 -1 -2903 2903 4 -2904 2903 -1 -3003 2903 -1 -2904 2904 4 -2905 2904 -1 -3004 2904 -1 -2905 2905 4 -2906 2905 -1 -3005 2905 -1 -2906 2906 4 -2907 2906 -1 -3006 2906 -1 -2907 2907 4 -2908 2907 -1 -3007 2907 -1 -2908 2908 4 -2909 2908 -1 -3008 2908 -1 -2909 2909 4 -2910 2909 -1 -3009 2909 -1 -2910 2910 4 -2911 2910 -1 -3010 2910 -1 -2911 2911 4 -2912 2911 -1 -3011 2911 -1 -2912 2912 4 -2913 2912 -1 -3012 2912 -1 -2913 2913 4 -2914 2913 -1 -3013 2913 -1 -2914 2914 4 -2915 2914 -1 -3014 2914 -1 -2915 2915 4 -2916 2915 -1 -3015 2915 -1 -2916 2916 4 -2917 2916 -1 -3016 2916 -1 -2917 2917 4 -2918 2917 -1 -3017 2917 -1 -2918 2918 4 -2919 2918 -1 -3018 2918 -1 -2919 2919 4 -2920 2919 -1 -3019 2919 -1 -2920 2920 4 -2921 2920 -1 -3020 2920 -1 -2921 2921 4 -2922 2921 -1 -3021 2921 -1 -2922 2922 4 -2923 2922 -1 -3022 2922 -1 -2923 2923 4 -2924 2923 -1 -3023 2923 -1 -2924 2924 4 -2925 2924 -1 -3024 2924 -1 -2925 2925 4 -2926 2925 -1 -3025 2925 -1 -2926 2926 4 -2927 2926 -1 -3026 2926 -1 -2927 2927 4 -2928 2927 -1 -3027 2927 -1 -2928 2928 4 -2929 2928 -1 -3028 2928 -1 -2929 2929 4 -2930 2929 -1 -3029 2929 -1 -2930 2930 4 -2931 2930 -1 -3030 2930 -1 -2931 2931 4 -2932 2931 -1 -3031 2931 -1 -2932 2932 4 -2933 2932 -1 -3032 2932 -1 -2933 2933 4 -2934 2933 -1 -3033 2933 -1 -2934 2934 4 -2935 2934 -1 -3034 2934 -1 -2935 2935 4 -2936 2935 -1 -3035 2935 -1 -2936 2936 4 -2937 2936 -1 -3036 2936 -1 -2937 2937 4 -2938 2937 -1 -3037 2937 -1 -2938 2938 4 -2939 2938 -1 -3038 2938 -1 -2939 2939 4 -2940 2939 -1 -3039 2939 -1 -2940 2940 4 -2941 2940 -1 -3040 2940 -1 -2941 2941 4 -2942 2941 -1 -3041 2941 -1 -2942 2942 4 -2943 2942 -1 -3042 2942 -1 -2943 2943 4 -2944 2943 -1 -3043 2943 -1 -2944 2944 4 -2945 2944 -1 -3044 2944 -1 -2945 2945 4 -2946 2945 -1 -3045 2945 -1 -2946 2946 4 -2947 2946 -1 -3046 2946 -1 -2947 2947 4 -2948 2947 -1 -3047 2947 -1 -2948 2948 4 -2949 2948 -1 -3048 2948 -1 -2949 2949 4 -2950 2949 -1 -3049 2949 -1 -2950 2950 4 -2951 2950 -1 -3050 2950 -1 -2951 2951 4 -2952 2951 -1 -3051 2951 -1 -2952 2952 4 -2953 2952 -1 -3052 2952 -1 -2953 2953 4 -2954 2953 -1 -3053 2953 -1 -2954 2954 4 -2955 2954 -1 -3054 2954 -1 -2955 2955 4 -2956 2955 -1 -3055 2955 -1 -2956 2956 4 -2957 2956 -1 -3056 2956 -1 -2957 2957 4 -2958 2957 -1 -3057 2957 -1 -2958 2958 4 -2959 2958 -1 -3058 2958 -1 -2959 2959 4 -2960 2959 -1 -3059 2959 -1 -2960 2960 4 -2961 2960 -1 -3060 2960 -1 -2961 2961 4 -2962 2961 -1 -3061 2961 -1 -2962 2962 4 -2963 2962 -1 -3062 2962 -1 -2963 2963 4 -2964 2963 -1 -3063 2963 -1 -2964 2964 4 -2965 2964 -1 -3064 2964 -1 -2965 2965 4 -2966 2965 -1 -3065 2965 -1 -2966 2966 4 -2967 2966 -1 -3066 2966 -1 -2967 2967 4 -2968 2967 -1 -3067 2967 -1 -2968 2968 4 -2969 2968 -1 -3068 2968 -1 -2969 2969 4 -2970 2969 -1 -3069 2969 -1 -2970 2970 4 -2971 2970 -1 -3070 2970 -1 -2971 2971 4 -2972 2971 -1 -3071 2971 -1 -2972 2972 4 -2973 2972 -1 -3072 2972 -1 -2973 2973 4 -2974 2973 -1 -3073 2973 -1 -2974 2974 4 -2975 2974 -1 -3074 2974 -1 -2975 2975 4 -2976 2975 -1 -3075 2975 -1 -2976 2976 4 -2977 2976 -1 -3076 2976 -1 -2977 2977 4 -2978 2977 -1 -3077 2977 -1 -2978 2978 4 -2979 2978 -1 -3078 2978 -1 -2979 2979 4 -2980 2979 -1 -3079 2979 -1 -2980 2980 4 -2981 2980 -1 -3080 2980 -1 -2981 2981 4 -2982 2981 -1 -3081 2981 -1 -2982 2982 4 -2983 2982 -1 -3082 2982 -1 -2983 2983 4 -2984 2983 -1 -3083 2983 -1 -2984 2984 4 -2985 2984 -1 -3084 2984 -1 -2985 2985 4 -2986 2985 -1 -3085 2985 -1 -2986 2986 4 -2987 2986 -1 -3086 2986 -1 -2987 2987 4 -2988 2987 -1 -3087 2987 -1 -2988 2988 4 -2989 2988 -1 -3088 2988 -1 -2989 2989 4 -2990 2989 -1 -3089 2989 -1 -2990 2990 4 -2991 2990 -1 -3090 2990 -1 -2991 2991 4 -2992 2991 -1 -3091 2991 -1 -2992 2992 4 -2993 2992 -1 -3092 2992 -1 -2993 2993 4 -2994 2993 -1 -3093 2993 -1 -2994 2994 4 -2995 2994 -1 -3094 2994 -1 -2995 2995 4 -2996 2995 -1 -3095 2995 -1 -2996 2996 4 -2997 2996 -1 -3096 2996 -1 -2997 2997 4 -2998 2997 -1 -3097 2997 -1 -2998 2998 4 -2999 2998 -1 -3098 2998 -1 -2999 2999 4 -3000 2999 -1 -3099 2999 -1 -3000 3000 4 -3100 3000 -1 -3001 3001 4 -3002 3001 -1 -3101 3001 -1 -3002 3002 4 -3003 3002 -1 -3102 3002 -1 -3003 3003 4 -3004 3003 -1 -3103 3003 -1 -3004 3004 4 -3005 3004 -1 -3104 3004 -1 -3005 3005 4 -3006 3005 -1 -3105 3005 -1 -3006 3006 4 -3007 3006 -1 -3106 3006 -1 -3007 3007 4 -3008 3007 -1 -3107 3007 -1 -3008 3008 4 -3009 3008 -1 -3108 3008 -1 -3009 3009 4 -3010 3009 -1 -3109 3009 -1 -3010 3010 4 -3011 3010 -1 -3110 3010 -1 -3011 3011 4 -3012 3011 -1 -3111 3011 -1 -3012 3012 4 -3013 3012 -1 -3112 3012 -1 -3013 3013 4 -3014 3013 -1 -3113 3013 -1 -3014 3014 4 -3015 3014 -1 -3114 3014 -1 -3015 3015 4 -3016 3015 -1 -3115 3015 -1 -3016 3016 4 -3017 3016 -1 -3116 3016 -1 -3017 3017 4 -3018 3017 -1 -3117 3017 -1 -3018 3018 4 -3019 3018 -1 -3118 3018 -1 -3019 3019 4 -3020 3019 -1 -3119 3019 -1 -3020 3020 4 -3021 3020 -1 -3120 3020 -1 -3021 3021 4 -3022 3021 -1 -3121 3021 -1 -3022 3022 4 -3023 3022 -1 -3122 3022 -1 -3023 3023 4 -3024 3023 -1 -3123 3023 -1 -3024 3024 4 -3025 3024 -1 -3124 3024 -1 -3025 3025 4 -3026 3025 -1 -3125 3025 -1 -3026 3026 4 -3027 3026 -1 -3126 3026 -1 -3027 3027 4 -3028 3027 -1 -3127 3027 -1 -3028 3028 4 -3029 3028 -1 -3128 3028 -1 -3029 3029 4 -3030 3029 -1 -3129 3029 -1 -3030 3030 4 -3031 3030 -1 -3130 3030 -1 -3031 3031 4 -3032 3031 -1 -3131 3031 -1 -3032 3032 4 -3033 3032 -1 -3132 3032 -1 -3033 3033 4 -3034 3033 -1 -3133 3033 -1 -3034 3034 4 -3035 3034 -1 -3134 3034 -1 -3035 3035 4 -3036 3035 -1 -3135 3035 -1 -3036 3036 4 -3037 3036 -1 -3136 3036 -1 -3037 3037 4 -3038 3037 -1 -3137 3037 -1 -3038 3038 4 -3039 3038 -1 -3138 3038 -1 -3039 3039 4 -3040 3039 -1 -3139 3039 -1 -3040 3040 4 -3041 3040 -1 -3140 3040 -1 -3041 3041 4 -3042 3041 -1 -3141 3041 -1 -3042 3042 4 -3043 3042 -1 -3142 3042 -1 -3043 3043 4 -3044 3043 -1 -3143 3043 -1 -3044 3044 4 -3045 3044 -1 -3144 3044 -1 -3045 3045 4 -3046 3045 -1 -3145 3045 -1 -3046 3046 4 -3047 3046 -1 -3146 3046 -1 -3047 3047 4 -3048 3047 -1 -3147 3047 -1 -3048 3048 4 -3049 3048 -1 -3148 3048 -1 -3049 3049 4 -3050 3049 -1 -3149 3049 -1 -3050 3050 4 -3051 3050 -1 -3150 3050 -1 -3051 3051 4 -3052 3051 -1 -3151 3051 -1 -3052 3052 4 -3053 3052 -1 -3152 3052 -1 -3053 3053 4 -3054 3053 -1 -3153 3053 -1 -3054 3054 4 -3055 3054 -1 -3154 3054 -1 -3055 3055 4 -3056 3055 -1 -3155 3055 -1 -3056 3056 4 -3057 3056 -1 -3156 3056 -1 -3057 3057 4 -3058 3057 -1 -3157 3057 -1 -3058 3058 4 -3059 3058 -1 -3158 3058 -1 -3059 3059 4 -3060 3059 -1 -3159 3059 -1 -3060 3060 4 -3061 3060 -1 -3160 3060 -1 -3061 3061 4 -3062 3061 -1 -3161 3061 -1 -3062 3062 4 -3063 3062 -1 -3162 3062 -1 -3063 3063 4 -3064 3063 -1 -3163 3063 -1 -3064 3064 4 -3065 3064 -1 -3164 3064 -1 -3065 3065 4 -3066 3065 -1 -3165 3065 -1 -3066 3066 4 -3067 3066 -1 -3166 3066 -1 -3067 3067 4 -3068 3067 -1 -3167 3067 -1 -3068 3068 4 -3069 3068 -1 -3168 3068 -1 -3069 3069 4 -3070 3069 -1 -3169 3069 -1 -3070 3070 4 -3071 3070 -1 -3170 3070 -1 -3071 3071 4 -3072 3071 -1 -3171 3071 -1 -3072 3072 4 -3073 3072 -1 -3172 3072 -1 -3073 3073 4 -3074 3073 -1 -3173 3073 -1 -3074 3074 4 -3075 3074 -1 -3174 3074 -1 -3075 3075 4 -3076 3075 -1 -3175 3075 -1 -3076 3076 4 -3077 3076 -1 -3176 3076 -1 -3077 3077 4 -3078 3077 -1 -3177 3077 -1 -3078 3078 4 -3079 3078 -1 -3178 3078 -1 -3079 3079 4 -3080 3079 -1 -3179 3079 -1 -3080 3080 4 -3081 3080 -1 -3180 3080 -1 -3081 3081 4 -3082 3081 -1 -3181 3081 -1 -3082 3082 4 -3083 3082 -1 -3182 3082 -1 -3083 3083 4 -3084 3083 -1 -3183 3083 -1 -3084 3084 4 -3085 3084 -1 -3184 3084 -1 -3085 3085 4 -3086 3085 -1 -3185 3085 -1 -3086 3086 4 -3087 3086 -1 -3186 3086 -1 -3087 3087 4 -3088 3087 -1 -3187 3087 -1 -3088 3088 4 -3089 3088 -1 -3188 3088 -1 -3089 3089 4 -3090 3089 -1 -3189 3089 -1 -3090 3090 4 -3091 3090 -1 -3190 3090 -1 -3091 3091 4 -3092 3091 -1 -3191 3091 -1 -3092 3092 4 -3093 3092 -1 -3192 3092 -1 -3093 3093 4 -3094 3093 -1 -3193 3093 -1 -3094 3094 4 -3095 3094 -1 -3194 3094 -1 -3095 3095 4 -3096 3095 -1 -3195 3095 -1 -3096 3096 4 -3097 3096 -1 -3196 3096 -1 -3097 3097 4 -3098 3097 -1 -3197 3097 -1 -3098 3098 4 -3099 3098 -1 -3198 3098 -1 -3099 3099 4 -3100 3099 -1 -3199 3099 -1 -3100 3100 4 -3200 3100 -1 -3101 3101 4 -3102 3101 -1 -3201 3101 -1 -3102 3102 4 -3103 3102 -1 -3202 3102 -1 -3103 3103 4 -3104 3103 -1 -3203 3103 -1 -3104 3104 4 -3105 3104 -1 -3204 3104 -1 -3105 3105 4 -3106 3105 -1 -3205 3105 -1 -3106 3106 4 -3107 3106 -1 -3206 3106 -1 -3107 3107 4 -3108 3107 -1 -3207 3107 -1 -3108 3108 4 -3109 3108 -1 -3208 3108 -1 -3109 3109 4 -3110 3109 -1 -3209 3109 -1 -3110 3110 4 -3111 3110 -1 -3210 3110 -1 -3111 3111 4 -3112 3111 -1 -3211 3111 -1 -3112 3112 4 -3113 3112 -1 -3212 3112 -1 -3113 3113 4 -3114 3113 -1 -3213 3113 -1 -3114 3114 4 -3115 3114 -1 -3214 3114 -1 -3115 3115 4 -3116 3115 -1 -3215 3115 -1 -3116 3116 4 -3117 3116 -1 -3216 3116 -1 -3117 3117 4 -3118 3117 -1 -3217 3117 -1 -3118 3118 4 -3119 3118 -1 -3218 3118 -1 -3119 3119 4 -3120 3119 -1 -3219 3119 -1 -3120 3120 4 -3121 3120 -1 -3220 3120 -1 -3121 3121 4 -3122 3121 -1 -3221 3121 -1 -3122 3122 4 -3123 3122 -1 -3222 3122 -1 -3123 3123 4 -3124 3123 -1 -3223 3123 -1 -3124 3124 4 -3125 3124 -1 -3224 3124 -1 -3125 3125 4 -3126 3125 -1 -3225 3125 -1 -3126 3126 4 -3127 3126 -1 -3226 3126 -1 -3127 3127 4 -3128 3127 -1 -3227 3127 -1 -3128 3128 4 -3129 3128 -1 -3228 3128 -1 -3129 3129 4 -3130 3129 -1 -3229 3129 -1 -3130 3130 4 -3131 3130 -1 -3230 3130 -1 -3131 3131 4 -3132 3131 -1 -3231 3131 -1 -3132 3132 4 -3133 3132 -1 -3232 3132 -1 -3133 3133 4 -3134 3133 -1 -3233 3133 -1 -3134 3134 4 -3135 3134 -1 -3234 3134 -1 -3135 3135 4 -3136 3135 -1 -3235 3135 -1 -3136 3136 4 -3137 3136 -1 -3236 3136 -1 -3137 3137 4 -3138 3137 -1 -3237 3137 -1 -3138 3138 4 -3139 3138 -1 -3238 3138 -1 -3139 3139 4 -3140 3139 -1 -3239 3139 -1 -3140 3140 4 -3141 3140 -1 -3240 3140 -1 -3141 3141 4 -3142 3141 -1 -3241 3141 -1 -3142 3142 4 -3143 3142 -1 -3242 3142 -1 -3143 3143 4 -3144 3143 -1 -3243 3143 -1 -3144 3144 4 -3145 3144 -1 -3244 3144 -1 -3145 3145 4 -3146 3145 -1 -3245 3145 -1 -3146 3146 4 -3147 3146 -1 -3246 3146 -1 -3147 3147 4 -3148 3147 -1 -3247 3147 -1 -3148 3148 4 -3149 3148 -1 -3248 3148 -1 -3149 3149 4 -3150 3149 -1 -3249 3149 -1 -3150 3150 4 -3151 3150 -1 -3250 3150 -1 -3151 3151 4 -3152 3151 -1 -3251 3151 -1 -3152 3152 4 -3153 3152 -1 -3252 3152 -1 -3153 3153 4 -3154 3153 -1 -3253 3153 -1 -3154 3154 4 -3155 3154 -1 -3254 3154 -1 -3155 3155 4 -3156 3155 -1 -3255 3155 -1 -3156 3156 4 -3157 3156 -1 -3256 3156 -1 -3157 3157 4 -3158 3157 -1 -3257 3157 -1 -3158 3158 4 -3159 3158 -1 -3258 3158 -1 -3159 3159 4 -3160 3159 -1 -3259 3159 -1 -3160 3160 4 -3161 3160 -1 -3260 3160 -1 -3161 3161 4 -3162 3161 -1 -3261 3161 -1 -3162 3162 4 -3163 3162 -1 -3262 3162 -1 -3163 3163 4 -3164 3163 -1 -3263 3163 -1 -3164 3164 4 -3165 3164 -1 -3264 3164 -1 -3165 3165 4 -3166 3165 -1 -3265 3165 -1 -3166 3166 4 -3167 3166 -1 -3266 3166 -1 -3167 3167 4 -3168 3167 -1 -3267 3167 -1 -3168 3168 4 -3169 3168 -1 -3268 3168 -1 -3169 3169 4 -3170 3169 -1 -3269 3169 -1 -3170 3170 4 -3171 3170 -1 -3270 3170 -1 -3171 3171 4 -3172 3171 -1 -3271 3171 -1 -3172 3172 4 -3173 3172 -1 -3272 3172 -1 -3173 3173 4 -3174 3173 -1 -3273 3173 -1 -3174 3174 4 -3175 3174 -1 -3274 3174 -1 -3175 3175 4 -3176 3175 -1 -3275 3175 -1 -3176 3176 4 -3177 3176 -1 -3276 3176 -1 -3177 3177 4 -3178 3177 -1 -3277 3177 -1 -3178 3178 4 -3179 3178 -1 -3278 3178 -1 -3179 3179 4 -3180 3179 -1 -3279 3179 -1 -3180 3180 4 -3181 3180 -1 -3280 3180 -1 -3181 3181 4 -3182 3181 -1 -3281 3181 -1 -3182 3182 4 -3183 3182 -1 -3282 3182 -1 -3183 3183 4 -3184 3183 -1 -3283 3183 -1 -3184 3184 4 -3185 3184 -1 -3284 3184 -1 -3185 3185 4 -3186 3185 -1 -3285 3185 -1 -3186 3186 4 -3187 3186 -1 -3286 3186 -1 -3187 3187 4 -3188 3187 -1 -3287 3187 -1 -3188 3188 4 -3189 3188 -1 -3288 3188 -1 -3189 3189 4 -3190 3189 -1 -3289 3189 -1 -3190 3190 4 -3191 3190 -1 -3290 3190 -1 -3191 3191 4 -3192 3191 -1 -3291 3191 -1 -3192 3192 4 -3193 3192 -1 -3292 3192 -1 -3193 3193 4 -3194 3193 -1 -3293 3193 -1 -3194 3194 4 -3195 3194 -1 -3294 3194 -1 -3195 3195 4 -3196 3195 -1 -3295 3195 -1 -3196 3196 4 -3197 3196 -1 -3296 3196 -1 -3197 3197 4 -3198 3197 -1 -3297 3197 -1 -3198 3198 4 -3199 3198 -1 -3298 3198 -1 -3199 3199 4 -3200 3199 -1 -3299 3199 -1 -3200 3200 4 -3300 3200 -1 -3201 3201 4 -3202 3201 -1 -3301 3201 -1 -3202 3202 4 -3203 3202 -1 -3302 3202 -1 -3203 3203 4 -3204 3203 -1 -3303 3203 -1 -3204 3204 4 -3205 3204 -1 -3304 3204 -1 -3205 3205 4 -3206 3205 -1 -3305 3205 -1 -3206 3206 4 -3207 3206 -1 -3306 3206 -1 -3207 3207 4 -3208 3207 -1 -3307 3207 -1 -3208 3208 4 -3209 3208 -1 -3308 3208 -1 -3209 3209 4 -3210 3209 -1 -3309 3209 -1 -3210 3210 4 -3211 3210 -1 -3310 3210 -1 -3211 3211 4 -3212 3211 -1 -3311 3211 -1 -3212 3212 4 -3213 3212 -1 -3312 3212 -1 -3213 3213 4 -3214 3213 -1 -3313 3213 -1 -3214 3214 4 -3215 3214 -1 -3314 3214 -1 -3215 3215 4 -3216 3215 -1 -3315 3215 -1 -3216 3216 4 -3217 3216 -1 -3316 3216 -1 -3217 3217 4 -3218 3217 -1 -3317 3217 -1 -3218 3218 4 -3219 3218 -1 -3318 3218 -1 -3219 3219 4 -3220 3219 -1 -3319 3219 -1 -3220 3220 4 -3221 3220 -1 -3320 3220 -1 -3221 3221 4 -3222 3221 -1 -3321 3221 -1 -3222 3222 4 -3223 3222 -1 -3322 3222 -1 -3223 3223 4 -3224 3223 -1 -3323 3223 -1 -3224 3224 4 -3225 3224 -1 -3324 3224 -1 -3225 3225 4 -3226 3225 -1 -3325 3225 -1 -3226 3226 4 -3227 3226 -1 -3326 3226 -1 -3227 3227 4 -3228 3227 -1 -3327 3227 -1 -3228 3228 4 -3229 3228 -1 -3328 3228 -1 -3229 3229 4 -3230 3229 -1 -3329 3229 -1 -3230 3230 4 -3231 3230 -1 -3330 3230 -1 -3231 3231 4 -3232 3231 -1 -3331 3231 -1 -3232 3232 4 -3233 3232 -1 -3332 3232 -1 -3233 3233 4 -3234 3233 -1 -3333 3233 -1 -3234 3234 4 -3235 3234 -1 -3334 3234 -1 -3235 3235 4 -3236 3235 -1 -3335 3235 -1 -3236 3236 4 -3237 3236 -1 -3336 3236 -1 -3237 3237 4 -3238 3237 -1 -3337 3237 -1 -3238 3238 4 -3239 3238 -1 -3338 3238 -1 -3239 3239 4 -3240 3239 -1 -3339 3239 -1 -3240 3240 4 -3241 3240 -1 -3340 3240 -1 -3241 3241 4 -3242 3241 -1 -3341 3241 -1 -3242 3242 4 -3243 3242 -1 -3342 3242 -1 -3243 3243 4 -3244 3243 -1 -3343 3243 -1 -3244 3244 4 -3245 3244 -1 -3344 3244 -1 -3245 3245 4 -3246 3245 -1 -3345 3245 -1 -3246 3246 4 -3247 3246 -1 -3346 3246 -1 -3247 3247 4 -3248 3247 -1 -3347 3247 -1 -3248 3248 4 -3249 3248 -1 -3348 3248 -1 -3249 3249 4 -3250 3249 -1 -3349 3249 -1 -3250 3250 4 -3251 3250 -1 -3350 3250 -1 -3251 3251 4 -3252 3251 -1 -3351 3251 -1 -3252 3252 4 -3253 3252 -1 -3352 3252 -1 -3253 3253 4 -3254 3253 -1 -3353 3253 -1 -3254 3254 4 -3255 3254 -1 -3354 3254 -1 -3255 3255 4 -3256 3255 -1 -3355 3255 -1 -3256 3256 4 -3257 3256 -1 -3356 3256 -1 -3257 3257 4 -3258 3257 -1 -3357 3257 -1 -3258 3258 4 -3259 3258 -1 -3358 3258 -1 -3259 3259 4 -3260 3259 -1 -3359 3259 -1 -3260 3260 4 -3261 3260 -1 -3360 3260 -1 -3261 3261 4 -3262 3261 -1 -3361 3261 -1 -3262 3262 4 -3263 3262 -1 -3362 3262 -1 -3263 3263 4 -3264 3263 -1 -3363 3263 -1 -3264 3264 4 -3265 3264 -1 -3364 3264 -1 -3265 3265 4 -3266 3265 -1 -3365 3265 -1 -3266 3266 4 -3267 3266 -1 -3366 3266 -1 -3267 3267 4 -3268 3267 -1 -3367 3267 -1 -3268 3268 4 -3269 3268 -1 -3368 3268 -1 -3269 3269 4 -3270 3269 -1 -3369 3269 -1 -3270 3270 4 -3271 3270 -1 -3370 3270 -1 -3271 3271 4 -3272 3271 -1 -3371 3271 -1 -3272 3272 4 -3273 3272 -1 -3372 3272 -1 -3273 3273 4 -3274 3273 -1 -3373 3273 -1 -3274 3274 4 -3275 3274 -1 -3374 3274 -1 -3275 3275 4 -3276 3275 -1 -3375 3275 -1 -3276 3276 4 -3277 3276 -1 -3376 3276 -1 -3277 3277 4 -3278 3277 -1 -3377 3277 -1 -3278 3278 4 -3279 3278 -1 -3378 3278 -1 -3279 3279 4 -3280 3279 -1 -3379 3279 -1 -3280 3280 4 -3281 3280 -1 -3380 3280 -1 -3281 3281 4 -3282 3281 -1 -3381 3281 -1 -3282 3282 4 -3283 3282 -1 -3382 3282 -1 -3283 3283 4 -3284 3283 -1 -3383 3283 -1 -3284 3284 4 -3285 3284 -1 -3384 3284 -1 -3285 3285 4 -3286 3285 -1 -3385 3285 -1 -3286 3286 4 -3287 3286 -1 -3386 3286 -1 -3287 3287 4 -3288 3287 -1 -3387 3287 -1 -3288 3288 4 -3289 3288 -1 -3388 3288 -1 -3289 3289 4 -3290 3289 -1 -3389 3289 -1 -3290 3290 4 -3291 3290 -1 -3390 3290 -1 -3291 3291 4 -3292 3291 -1 -3391 3291 -1 -3292 3292 4 -3293 3292 -1 -3392 3292 -1 -3293 3293 4 -3294 3293 -1 -3393 3293 -1 -3294 3294 4 -3295 3294 -1 -3394 3294 -1 -3295 3295 4 -3296 3295 -1 -3395 3295 -1 -3296 3296 4 -3297 3296 -1 -3396 3296 -1 -3297 3297 4 -3298 3297 -1 -3397 3297 -1 -3298 3298 4 -3299 3298 -1 -3398 3298 -1 -3299 3299 4 -3300 3299 -1 -3399 3299 -1 -3300 3300 4 -3400 3300 -1 -3301 3301 4 -3302 3301 -1 -3401 3301 -1 -3302 3302 4 -3303 3302 -1 -3402 3302 -1 -3303 3303 4 -3304 3303 -1 -3403 3303 -1 -3304 3304 4 -3305 3304 -1 -3404 3304 -1 -3305 3305 4 -3306 3305 -1 -3405 3305 -1 -3306 3306 4 -3307 3306 -1 -3406 3306 -1 -3307 3307 4 -3308 3307 -1 -3407 3307 -1 -3308 3308 4 -3309 3308 -1 -3408 3308 -1 -3309 3309 4 -3310 3309 -1 -3409 3309 -1 -3310 3310 4 -3311 3310 -1 -3410 3310 -1 -3311 3311 4 -3312 3311 -1 -3411 3311 -1 -3312 3312 4 -3313 3312 -1 -3412 3312 -1 -3313 3313 4 -3314 3313 -1 -3413 3313 -1 -3314 3314 4 -3315 3314 -1 -3414 3314 -1 -3315 3315 4 -3316 3315 -1 -3415 3315 -1 -3316 3316 4 -3317 3316 -1 -3416 3316 -1 -3317 3317 4 -3318 3317 -1 -3417 3317 -1 -3318 3318 4 -3319 3318 -1 -3418 3318 -1 -3319 3319 4 -3320 3319 -1 -3419 3319 -1 -3320 3320 4 -3321 3320 -1 -3420 3320 -1 -3321 3321 4 -3322 3321 -1 -3421 3321 -1 -3322 3322 4 -3323 3322 -1 -3422 3322 -1 -3323 3323 4 -3324 3323 -1 -3423 3323 -1 -3324 3324 4 -3325 3324 -1 -3424 3324 -1 -3325 3325 4 -3326 3325 -1 -3425 3325 -1 -3326 3326 4 -3327 3326 -1 -3426 3326 -1 -3327 3327 4 -3328 3327 -1 -3427 3327 -1 -3328 3328 4 -3329 3328 -1 -3428 3328 -1 -3329 3329 4 -3330 3329 -1 -3429 3329 -1 -3330 3330 4 -3331 3330 -1 -3430 3330 -1 -3331 3331 4 -3332 3331 -1 -3431 3331 -1 -3332 3332 4 -3333 3332 -1 -3432 3332 -1 -3333 3333 4 -3334 3333 -1 -3433 3333 -1 -3334 3334 4 -3335 3334 -1 -3434 3334 -1 -3335 3335 4 -3336 3335 -1 -3435 3335 -1 -3336 3336 4 -3337 3336 -1 -3436 3336 -1 -3337 3337 4 -3338 3337 -1 -3437 3337 -1 -3338 3338 4 -3339 3338 -1 -3438 3338 -1 -3339 3339 4 -3340 3339 -1 -3439 3339 -1 -3340 3340 4 -3341 3340 -1 -3440 3340 -1 -3341 3341 4 -3342 3341 -1 -3441 3341 -1 -3342 3342 4 -3343 3342 -1 -3442 3342 -1 -3343 3343 4 -3344 3343 -1 -3443 3343 -1 -3344 3344 4 -3345 3344 -1 -3444 3344 -1 -3345 3345 4 -3346 3345 -1 -3445 3345 -1 -3346 3346 4 -3347 3346 -1 -3446 3346 -1 -3347 3347 4 -3348 3347 -1 -3447 3347 -1 -3348 3348 4 -3349 3348 -1 -3448 3348 -1 -3349 3349 4 -3350 3349 -1 -3449 3349 -1 -3350 3350 4 -3351 3350 -1 -3450 3350 -1 -3351 3351 4 -3352 3351 -1 -3451 3351 -1 -3352 3352 4 -3353 3352 -1 -3452 3352 -1 -3353 3353 4 -3354 3353 -1 -3453 3353 -1 -3354 3354 4 -3355 3354 -1 -3454 3354 -1 -3355 3355 4 -3356 3355 -1 -3455 3355 -1 -3356 3356 4 -3357 3356 -1 -3456 3356 -1 -3357 3357 4 -3358 3357 -1 -3457 3357 -1 -3358 3358 4 -3359 3358 -1 -3458 3358 -1 -3359 3359 4 -3360 3359 -1 -3459 3359 -1 -3360 3360 4 -3361 3360 -1 -3460 3360 -1 -3361 3361 4 -3362 3361 -1 -3461 3361 -1 -3362 3362 4 -3363 3362 -1 -3462 3362 -1 -3363 3363 4 -3364 3363 -1 -3463 3363 -1 -3364 3364 4 -3365 3364 -1 -3464 3364 -1 -3365 3365 4 -3366 3365 -1 -3465 3365 -1 -3366 3366 4 -3367 3366 -1 -3466 3366 -1 -3367 3367 4 -3368 3367 -1 -3467 3367 -1 -3368 3368 4 -3369 3368 -1 -3468 3368 -1 -3369 3369 4 -3370 3369 -1 -3469 3369 -1 -3370 3370 4 -3371 3370 -1 -3470 3370 -1 -3371 3371 4 -3372 3371 -1 -3471 3371 -1 -3372 3372 4 -3373 3372 -1 -3472 3372 -1 -3373 3373 4 -3374 3373 -1 -3473 3373 -1 -3374 3374 4 -3375 3374 -1 -3474 3374 -1 -3375 3375 4 -3376 3375 -1 -3475 3375 -1 -3376 3376 4 -3377 3376 -1 -3476 3376 -1 -3377 3377 4 -3378 3377 -1 -3477 3377 -1 -3378 3378 4 -3379 3378 -1 -3478 3378 -1 -3379 3379 4 -3380 3379 -1 -3479 3379 -1 -3380 3380 4 -3381 3380 -1 -3480 3380 -1 -3381 3381 4 -3382 3381 -1 -3481 3381 -1 -3382 3382 4 -3383 3382 -1 -3482 3382 -1 -3383 3383 4 -3384 3383 -1 -3483 3383 -1 -3384 3384 4 -3385 3384 -1 -3484 3384 -1 -3385 3385 4 -3386 3385 -1 -3485 3385 -1 -3386 3386 4 -3387 3386 -1 -3486 3386 -1 -3387 3387 4 -3388 3387 -1 -3487 3387 -1 -3388 3388 4 -3389 3388 -1 -3488 3388 -1 -3389 3389 4 -3390 3389 -1 -3489 3389 -1 -3390 3390 4 -3391 3390 -1 -3490 3390 -1 -3391 3391 4 -3392 3391 -1 -3491 3391 -1 -3392 3392 4 -3393 3392 -1 -3492 3392 -1 -3393 3393 4 -3394 3393 -1 -3493 3393 -1 -3394 3394 4 -3395 3394 -1 -3494 3394 -1 -3395 3395 4 -3396 3395 -1 -3495 3395 -1 -3396 3396 4 -3397 3396 -1 -3496 3396 -1 -3397 3397 4 -3398 3397 -1 -3497 3397 -1 -3398 3398 4 -3399 3398 -1 -3498 3398 -1 -3399 3399 4 -3400 3399 -1 -3499 3399 -1 -3400 3400 4 -3500 3400 -1 -3401 3401 4 -3402 3401 -1 -3501 3401 -1 -3402 3402 4 -3403 3402 -1 -3502 3402 -1 -3403 3403 4 -3404 3403 -1 -3503 3403 -1 -3404 3404 4 -3405 3404 -1 -3504 3404 -1 -3405 3405 4 -3406 3405 -1 -3505 3405 -1 -3406 3406 4 -3407 3406 -1 -3506 3406 -1 -3407 3407 4 -3408 3407 -1 -3507 3407 -1 -3408 3408 4 -3409 3408 -1 -3508 3408 -1 -3409 3409 4 -3410 3409 -1 -3509 3409 -1 -3410 3410 4 -3411 3410 -1 -3510 3410 -1 -3411 3411 4 -3412 3411 -1 -3511 3411 -1 -3412 3412 4 -3413 3412 -1 -3512 3412 -1 -3413 3413 4 -3414 3413 -1 -3513 3413 -1 -3414 3414 4 -3415 3414 -1 -3514 3414 -1 -3415 3415 4 -3416 3415 -1 -3515 3415 -1 -3416 3416 4 -3417 3416 -1 -3516 3416 -1 -3417 3417 4 -3418 3417 -1 -3517 3417 -1 -3418 3418 4 -3419 3418 -1 -3518 3418 -1 -3419 3419 4 -3420 3419 -1 -3519 3419 -1 -3420 3420 4 -3421 3420 -1 -3520 3420 -1 -3421 3421 4 -3422 3421 -1 -3521 3421 -1 -3422 3422 4 -3423 3422 -1 -3522 3422 -1 -3423 3423 4 -3424 3423 -1 -3523 3423 -1 -3424 3424 4 -3425 3424 -1 -3524 3424 -1 -3425 3425 4 -3426 3425 -1 -3525 3425 -1 -3426 3426 4 -3427 3426 -1 -3526 3426 -1 -3427 3427 4 -3428 3427 -1 -3527 3427 -1 -3428 3428 4 -3429 3428 -1 -3528 3428 -1 -3429 3429 4 -3430 3429 -1 -3529 3429 -1 -3430 3430 4 -3431 3430 -1 -3530 3430 -1 -3431 3431 4 -3432 3431 -1 -3531 3431 -1 -3432 3432 4 -3433 3432 -1 -3532 3432 -1 -3433 3433 4 -3434 3433 -1 -3533 3433 -1 -3434 3434 4 -3435 3434 -1 -3534 3434 -1 -3435 3435 4 -3436 3435 -1 -3535 3435 -1 -3436 3436 4 -3437 3436 -1 -3536 3436 -1 -3437 3437 4 -3438 3437 -1 -3537 3437 -1 -3438 3438 4 -3439 3438 -1 -3538 3438 -1 -3439 3439 4 -3440 3439 -1 -3539 3439 -1 -3440 3440 4 -3441 3440 -1 -3540 3440 -1 -3441 3441 4 -3442 3441 -1 -3541 3441 -1 -3442 3442 4 -3443 3442 -1 -3542 3442 -1 -3443 3443 4 -3444 3443 -1 -3543 3443 -1 -3444 3444 4 -3445 3444 -1 -3544 3444 -1 -3445 3445 4 -3446 3445 -1 -3545 3445 -1 -3446 3446 4 -3447 3446 -1 -3546 3446 -1 -3447 3447 4 -3448 3447 -1 -3547 3447 -1 -3448 3448 4 -3449 3448 -1 -3548 3448 -1 -3449 3449 4 -3450 3449 -1 -3549 3449 -1 -3450 3450 4 -3451 3450 -1 -3550 3450 -1 -3451 3451 4 -3452 3451 -1 -3551 3451 -1 -3452 3452 4 -3453 3452 -1 -3552 3452 -1 -3453 3453 4 -3454 3453 -1 -3553 3453 -1 -3454 3454 4 -3455 3454 -1 -3554 3454 -1 -3455 3455 4 -3456 3455 -1 -3555 3455 -1 -3456 3456 4 -3457 3456 -1 -3556 3456 -1 -3457 3457 4 -3458 3457 -1 -3557 3457 -1 -3458 3458 4 -3459 3458 -1 -3558 3458 -1 -3459 3459 4 -3460 3459 -1 -3559 3459 -1 -3460 3460 4 -3461 3460 -1 -3560 3460 -1 -3461 3461 4 -3462 3461 -1 -3561 3461 -1 -3462 3462 4 -3463 3462 -1 -3562 3462 -1 -3463 3463 4 -3464 3463 -1 -3563 3463 -1 -3464 3464 4 -3465 3464 -1 -3564 3464 -1 -3465 3465 4 -3466 3465 -1 -3565 3465 -1 -3466 3466 4 -3467 3466 -1 -3566 3466 -1 -3467 3467 4 -3468 3467 -1 -3567 3467 -1 -3468 3468 4 -3469 3468 -1 -3568 3468 -1 -3469 3469 4 -3470 3469 -1 -3569 3469 -1 -3470 3470 4 -3471 3470 -1 -3570 3470 -1 -3471 3471 4 -3472 3471 -1 -3571 3471 -1 -3472 3472 4 -3473 3472 -1 -3572 3472 -1 -3473 3473 4 -3474 3473 -1 -3573 3473 -1 -3474 3474 4 -3475 3474 -1 -3574 3474 -1 -3475 3475 4 -3476 3475 -1 -3575 3475 -1 -3476 3476 4 -3477 3476 -1 -3576 3476 -1 -3477 3477 4 -3478 3477 -1 -3577 3477 -1 -3478 3478 4 -3479 3478 -1 -3578 3478 -1 -3479 3479 4 -3480 3479 -1 -3579 3479 -1 -3480 3480 4 -3481 3480 -1 -3580 3480 -1 -3481 3481 4 -3482 3481 -1 -3581 3481 -1 -3482 3482 4 -3483 3482 -1 -3582 3482 -1 -3483 3483 4 -3484 3483 -1 -3583 3483 -1 -3484 3484 4 -3485 3484 -1 -3584 3484 -1 -3485 3485 4 -3486 3485 -1 -3585 3485 -1 -3486 3486 4 -3487 3486 -1 -3586 3486 -1 -3487 3487 4 -3488 3487 -1 -3587 3487 -1 -3488 3488 4 -3489 3488 -1 -3588 3488 -1 -3489 3489 4 -3490 3489 -1 -3589 3489 -1 -3490 3490 4 -3491 3490 -1 -3590 3490 -1 -3491 3491 4 -3492 3491 -1 -3591 3491 -1 -3492 3492 4 -3493 3492 -1 -3592 3492 -1 -3493 3493 4 -3494 3493 -1 -3593 3493 -1 -3494 3494 4 -3495 3494 -1 -3594 3494 -1 -3495 3495 4 -3496 3495 -1 -3595 3495 -1 -3496 3496 4 -3497 3496 -1 -3596 3496 -1 -3497 3497 4 -3498 3497 -1 -3597 3497 -1 -3498 3498 4 -3499 3498 -1 -3598 3498 -1 -3499 3499 4 -3500 3499 -1 -3599 3499 -1 -3500 3500 4 -3600 3500 -1 -3501 3501 4 -3502 3501 -1 -3601 3501 -1 -3502 3502 4 -3503 3502 -1 -3602 3502 -1 -3503 3503 4 -3504 3503 -1 -3603 3503 -1 -3504 3504 4 -3505 3504 -1 -3604 3504 -1 -3505 3505 4 -3506 3505 -1 -3605 3505 -1 -3506 3506 4 -3507 3506 -1 -3606 3506 -1 -3507 3507 4 -3508 3507 -1 -3607 3507 -1 -3508 3508 4 -3509 3508 -1 -3608 3508 -1 -3509 3509 4 -3510 3509 -1 -3609 3509 -1 -3510 3510 4 -3511 3510 -1 -3610 3510 -1 -3511 3511 4 -3512 3511 -1 -3611 3511 -1 -3512 3512 4 -3513 3512 -1 -3612 3512 -1 -3513 3513 4 -3514 3513 -1 -3613 3513 -1 -3514 3514 4 -3515 3514 -1 -3614 3514 -1 -3515 3515 4 -3516 3515 -1 -3615 3515 -1 -3516 3516 4 -3517 3516 -1 -3616 3516 -1 -3517 3517 4 -3518 3517 -1 -3617 3517 -1 -3518 3518 4 -3519 3518 -1 -3618 3518 -1 -3519 3519 4 -3520 3519 -1 -3619 3519 -1 -3520 3520 4 -3521 3520 -1 -3620 3520 -1 -3521 3521 4 -3522 3521 -1 -3621 3521 -1 -3522 3522 4 -3523 3522 -1 -3622 3522 -1 -3523 3523 4 -3524 3523 -1 -3623 3523 -1 -3524 3524 4 -3525 3524 -1 -3624 3524 -1 -3525 3525 4 -3526 3525 -1 -3625 3525 -1 -3526 3526 4 -3527 3526 -1 -3626 3526 -1 -3527 3527 4 -3528 3527 -1 -3627 3527 -1 -3528 3528 4 -3529 3528 -1 -3628 3528 -1 -3529 3529 4 -3530 3529 -1 -3629 3529 -1 -3530 3530 4 -3531 3530 -1 -3630 3530 -1 -3531 3531 4 -3532 3531 -1 -3631 3531 -1 -3532 3532 4 -3533 3532 -1 -3632 3532 -1 -3533 3533 4 -3534 3533 -1 -3633 3533 -1 -3534 3534 4 -3535 3534 -1 -3634 3534 -1 -3535 3535 4 -3536 3535 -1 -3635 3535 -1 -3536 3536 4 -3537 3536 -1 -3636 3536 -1 -3537 3537 4 -3538 3537 -1 -3637 3537 -1 -3538 3538 4 -3539 3538 -1 -3638 3538 -1 -3539 3539 4 -3540 3539 -1 -3639 3539 -1 -3540 3540 4 -3541 3540 -1 -3640 3540 -1 -3541 3541 4 -3542 3541 -1 -3641 3541 -1 -3542 3542 4 -3543 3542 -1 -3642 3542 -1 -3543 3543 4 -3544 3543 -1 -3643 3543 -1 -3544 3544 4 -3545 3544 -1 -3644 3544 -1 -3545 3545 4 -3546 3545 -1 -3645 3545 -1 -3546 3546 4 -3547 3546 -1 -3646 3546 -1 -3547 3547 4 -3548 3547 -1 -3647 3547 -1 -3548 3548 4 -3549 3548 -1 -3648 3548 -1 -3549 3549 4 -3550 3549 -1 -3649 3549 -1 -3550 3550 4 -3551 3550 -1 -3650 3550 -1 -3551 3551 4 -3552 3551 -1 -3651 3551 -1 -3552 3552 4 -3553 3552 -1 -3652 3552 -1 -3553 3553 4 -3554 3553 -1 -3653 3553 -1 -3554 3554 4 -3555 3554 -1 -3654 3554 -1 -3555 3555 4 -3556 3555 -1 -3655 3555 -1 -3556 3556 4 -3557 3556 -1 -3656 3556 -1 -3557 3557 4 -3558 3557 -1 -3657 3557 -1 -3558 3558 4 -3559 3558 -1 -3658 3558 -1 -3559 3559 4 -3560 3559 -1 -3659 3559 -1 -3560 3560 4 -3561 3560 -1 -3660 3560 -1 -3561 3561 4 -3562 3561 -1 -3661 3561 -1 -3562 3562 4 -3563 3562 -1 -3662 3562 -1 -3563 3563 4 -3564 3563 -1 -3663 3563 -1 -3564 3564 4 -3565 3564 -1 -3664 3564 -1 -3565 3565 4 -3566 3565 -1 -3665 3565 -1 -3566 3566 4 -3567 3566 -1 -3666 3566 -1 -3567 3567 4 -3568 3567 -1 -3667 3567 -1 -3568 3568 4 -3569 3568 -1 -3668 3568 -1 -3569 3569 4 -3570 3569 -1 -3669 3569 -1 -3570 3570 4 -3571 3570 -1 -3670 3570 -1 -3571 3571 4 -3572 3571 -1 -3671 3571 -1 -3572 3572 4 -3573 3572 -1 -3672 3572 -1 -3573 3573 4 -3574 3573 -1 -3673 3573 -1 -3574 3574 4 -3575 3574 -1 -3674 3574 -1 -3575 3575 4 -3576 3575 -1 -3675 3575 -1 -3576 3576 4 -3577 3576 -1 -3676 3576 -1 -3577 3577 4 -3578 3577 -1 -3677 3577 -1 -3578 3578 4 -3579 3578 -1 -3678 3578 -1 -3579 3579 4 -3580 3579 -1 -3679 3579 -1 -3580 3580 4 -3581 3580 -1 -3680 3580 -1 -3581 3581 4 -3582 3581 -1 -3681 3581 -1 -3582 3582 4 -3583 3582 -1 -3682 3582 -1 -3583 3583 4 -3584 3583 -1 -3683 3583 -1 -3584 3584 4 -3585 3584 -1 -3684 3584 -1 -3585 3585 4 -3586 3585 -1 -3685 3585 -1 -3586 3586 4 -3587 3586 -1 -3686 3586 -1 -3587 3587 4 -3588 3587 -1 -3687 3587 -1 -3588 3588 4 -3589 3588 -1 -3688 3588 -1 -3589 3589 4 -3590 3589 -1 -3689 3589 -1 -3590 3590 4 -3591 3590 -1 -3690 3590 -1 -3591 3591 4 -3592 3591 -1 -3691 3591 -1 -3592 3592 4 -3593 3592 -1 -3692 3592 -1 -3593 3593 4 -3594 3593 -1 -3693 3593 -1 -3594 3594 4 -3595 3594 -1 -3694 3594 -1 -3595 3595 4 -3596 3595 -1 -3695 3595 -1 -3596 3596 4 -3597 3596 -1 -3696 3596 -1 -3597 3597 4 -3598 3597 -1 -3697 3597 -1 -3598 3598 4 -3599 3598 -1 -3698 3598 -1 -3599 3599 4 -3600 3599 -1 -3699 3599 -1 -3600 3600 4 -3700 3600 -1 -3601 3601 4 -3602 3601 -1 -3701 3601 -1 -3602 3602 4 -3603 3602 -1 -3702 3602 -1 -3603 3603 4 -3604 3603 -1 -3703 3603 -1 -3604 3604 4 -3605 3604 -1 -3704 3604 -1 -3605 3605 4 -3606 3605 -1 -3705 3605 -1 -3606 3606 4 -3607 3606 -1 -3706 3606 -1 -3607 3607 4 -3608 3607 -1 -3707 3607 -1 -3608 3608 4 -3609 3608 -1 -3708 3608 -1 -3609 3609 4 -3610 3609 -1 -3709 3609 -1 -3610 3610 4 -3611 3610 -1 -3710 3610 -1 -3611 3611 4 -3612 3611 -1 -3711 3611 -1 -3612 3612 4 -3613 3612 -1 -3712 3612 -1 -3613 3613 4 -3614 3613 -1 -3713 3613 -1 -3614 3614 4 -3615 3614 -1 -3714 3614 -1 -3615 3615 4 -3616 3615 -1 -3715 3615 -1 -3616 3616 4 -3617 3616 -1 -3716 3616 -1 -3617 3617 4 -3618 3617 -1 -3717 3617 -1 -3618 3618 4 -3619 3618 -1 -3718 3618 -1 -3619 3619 4 -3620 3619 -1 -3719 3619 -1 -3620 3620 4 -3621 3620 -1 -3720 3620 -1 -3621 3621 4 -3622 3621 -1 -3721 3621 -1 -3622 3622 4 -3623 3622 -1 -3722 3622 -1 -3623 3623 4 -3624 3623 -1 -3723 3623 -1 -3624 3624 4 -3625 3624 -1 -3724 3624 -1 -3625 3625 4 -3626 3625 -1 -3725 3625 -1 -3626 3626 4 -3627 3626 -1 -3726 3626 -1 -3627 3627 4 -3628 3627 -1 -3727 3627 -1 -3628 3628 4 -3629 3628 -1 -3728 3628 -1 -3629 3629 4 -3630 3629 -1 -3729 3629 -1 -3630 3630 4 -3631 3630 -1 -3730 3630 -1 -3631 3631 4 -3632 3631 -1 -3731 3631 -1 -3632 3632 4 -3633 3632 -1 -3732 3632 -1 -3633 3633 4 -3634 3633 -1 -3733 3633 -1 -3634 3634 4 -3635 3634 -1 -3734 3634 -1 -3635 3635 4 -3636 3635 -1 -3735 3635 -1 -3636 3636 4 -3637 3636 -1 -3736 3636 -1 -3637 3637 4 -3638 3637 -1 -3737 3637 -1 -3638 3638 4 -3639 3638 -1 -3738 3638 -1 -3639 3639 4 -3640 3639 -1 -3739 3639 -1 -3640 3640 4 -3641 3640 -1 -3740 3640 -1 -3641 3641 4 -3642 3641 -1 -3741 3641 -1 -3642 3642 4 -3643 3642 -1 -3742 3642 -1 -3643 3643 4 -3644 3643 -1 -3743 3643 -1 -3644 3644 4 -3645 3644 -1 -3744 3644 -1 -3645 3645 4 -3646 3645 -1 -3745 3645 -1 -3646 3646 4 -3647 3646 -1 -3746 3646 -1 -3647 3647 4 -3648 3647 -1 -3747 3647 -1 -3648 3648 4 -3649 3648 -1 -3748 3648 -1 -3649 3649 4 -3650 3649 -1 -3749 3649 -1 -3650 3650 4 -3651 3650 -1 -3750 3650 -1 -3651 3651 4 -3652 3651 -1 -3751 3651 -1 -3652 3652 4 -3653 3652 -1 -3752 3652 -1 -3653 3653 4 -3654 3653 -1 -3753 3653 -1 -3654 3654 4 -3655 3654 -1 -3754 3654 -1 -3655 3655 4 -3656 3655 -1 -3755 3655 -1 -3656 3656 4 -3657 3656 -1 -3756 3656 -1 -3657 3657 4 -3658 3657 -1 -3757 3657 -1 -3658 3658 4 -3659 3658 -1 -3758 3658 -1 -3659 3659 4 -3660 3659 -1 -3759 3659 -1 -3660 3660 4 -3661 3660 -1 -3760 3660 -1 -3661 3661 4 -3662 3661 -1 -3761 3661 -1 -3662 3662 4 -3663 3662 -1 -3762 3662 -1 -3663 3663 4 -3664 3663 -1 -3763 3663 -1 -3664 3664 4 -3665 3664 -1 -3764 3664 -1 -3665 3665 4 -3666 3665 -1 -3765 3665 -1 -3666 3666 4 -3667 3666 -1 -3766 3666 -1 -3667 3667 4 -3668 3667 -1 -3767 3667 -1 -3668 3668 4 -3669 3668 -1 -3768 3668 -1 -3669 3669 4 -3670 3669 -1 -3769 3669 -1 -3670 3670 4 -3671 3670 -1 -3770 3670 -1 -3671 3671 4 -3672 3671 -1 -3771 3671 -1 -3672 3672 4 -3673 3672 -1 -3772 3672 -1 -3673 3673 4 -3674 3673 -1 -3773 3673 -1 -3674 3674 4 -3675 3674 -1 -3774 3674 -1 -3675 3675 4 -3676 3675 -1 -3775 3675 -1 -3676 3676 4 -3677 3676 -1 -3776 3676 -1 -3677 3677 4 -3678 3677 -1 -3777 3677 -1 -3678 3678 4 -3679 3678 -1 -3778 3678 -1 -3679 3679 4 -3680 3679 -1 -3779 3679 -1 -3680 3680 4 -3681 3680 -1 -3780 3680 -1 -3681 3681 4 -3682 3681 -1 -3781 3681 -1 -3682 3682 4 -3683 3682 -1 -3782 3682 -1 -3683 3683 4 -3684 3683 -1 -3783 3683 -1 -3684 3684 4 -3685 3684 -1 -3784 3684 -1 -3685 3685 4 -3686 3685 -1 -3785 3685 -1 -3686 3686 4 -3687 3686 -1 -3786 3686 -1 -3687 3687 4 -3688 3687 -1 -3787 3687 -1 -3688 3688 4 -3689 3688 -1 -3788 3688 -1 -3689 3689 4 -3690 3689 -1 -3789 3689 -1 -3690 3690 4 -3691 3690 -1 -3790 3690 -1 -3691 3691 4 -3692 3691 -1 -3791 3691 -1 -3692 3692 4 -3693 3692 -1 -3792 3692 -1 -3693 3693 4 -3694 3693 -1 -3793 3693 -1 -3694 3694 4 -3695 3694 -1 -3794 3694 -1 -3695 3695 4 -3696 3695 -1 -3795 3695 -1 -3696 3696 4 -3697 3696 -1 -3796 3696 -1 -3697 3697 4 -3698 3697 -1 -3797 3697 -1 -3698 3698 4 -3699 3698 -1 -3798 3698 -1 -3699 3699 4 -3700 3699 -1 -3799 3699 -1 -3700 3700 4 -3800 3700 -1 -3701 3701 4 -3702 3701 -1 -3801 3701 -1 -3702 3702 4 -3703 3702 -1 -3802 3702 -1 -3703 3703 4 -3704 3703 -1 -3803 3703 -1 -3704 3704 4 -3705 3704 -1 -3804 3704 -1 -3705 3705 4 -3706 3705 -1 -3805 3705 -1 -3706 3706 4 -3707 3706 -1 -3806 3706 -1 -3707 3707 4 -3708 3707 -1 -3807 3707 -1 -3708 3708 4 -3709 3708 -1 -3808 3708 -1 -3709 3709 4 -3710 3709 -1 -3809 3709 -1 -3710 3710 4 -3711 3710 -1 -3810 3710 -1 -3711 3711 4 -3712 3711 -1 -3811 3711 -1 -3712 3712 4 -3713 3712 -1 -3812 3712 -1 -3713 3713 4 -3714 3713 -1 -3813 3713 -1 -3714 3714 4 -3715 3714 -1 -3814 3714 -1 -3715 3715 4 -3716 3715 -1 -3815 3715 -1 -3716 3716 4 -3717 3716 -1 -3816 3716 -1 -3717 3717 4 -3718 3717 -1 -3817 3717 -1 -3718 3718 4 -3719 3718 -1 -3818 3718 -1 -3719 3719 4 -3720 3719 -1 -3819 3719 -1 -3720 3720 4 -3721 3720 -1 -3820 3720 -1 -3721 3721 4 -3722 3721 -1 -3821 3721 -1 -3722 3722 4 -3723 3722 -1 -3822 3722 -1 -3723 3723 4 -3724 3723 -1 -3823 3723 -1 -3724 3724 4 -3725 3724 -1 -3824 3724 -1 -3725 3725 4 -3726 3725 -1 -3825 3725 -1 -3726 3726 4 -3727 3726 -1 -3826 3726 -1 -3727 3727 4 -3728 3727 -1 -3827 3727 -1 -3728 3728 4 -3729 3728 -1 -3828 3728 -1 -3729 3729 4 -3730 3729 -1 -3829 3729 -1 -3730 3730 4 -3731 3730 -1 -3830 3730 -1 -3731 3731 4 -3732 3731 -1 -3831 3731 -1 -3732 3732 4 -3733 3732 -1 -3832 3732 -1 -3733 3733 4 -3734 3733 -1 -3833 3733 -1 -3734 3734 4 -3735 3734 -1 -3834 3734 -1 -3735 3735 4 -3736 3735 -1 -3835 3735 -1 -3736 3736 4 -3737 3736 -1 -3836 3736 -1 -3737 3737 4 -3738 3737 -1 -3837 3737 -1 -3738 3738 4 -3739 3738 -1 -3838 3738 -1 -3739 3739 4 -3740 3739 -1 -3839 3739 -1 -3740 3740 4 -3741 3740 -1 -3840 3740 -1 -3741 3741 4 -3742 3741 -1 -3841 3741 -1 -3742 3742 4 -3743 3742 -1 -3842 3742 -1 -3743 3743 4 -3744 3743 -1 -3843 3743 -1 -3744 3744 4 -3745 3744 -1 -3844 3744 -1 -3745 3745 4 -3746 3745 -1 -3845 3745 -1 -3746 3746 4 -3747 3746 -1 -3846 3746 -1 -3747 3747 4 -3748 3747 -1 -3847 3747 -1 -3748 3748 4 -3749 3748 -1 -3848 3748 -1 -3749 3749 4 -3750 3749 -1 -3849 3749 -1 -3750 3750 4 -3751 3750 -1 -3850 3750 -1 -3751 3751 4 -3752 3751 -1 -3851 3751 -1 -3752 3752 4 -3753 3752 -1 -3852 3752 -1 -3753 3753 4 -3754 3753 -1 -3853 3753 -1 -3754 3754 4 -3755 3754 -1 -3854 3754 -1 -3755 3755 4 -3756 3755 -1 -3855 3755 -1 -3756 3756 4 -3757 3756 -1 -3856 3756 -1 -3757 3757 4 -3758 3757 -1 -3857 3757 -1 -3758 3758 4 -3759 3758 -1 -3858 3758 -1 -3759 3759 4 -3760 3759 -1 -3859 3759 -1 -3760 3760 4 -3761 3760 -1 -3860 3760 -1 -3761 3761 4 -3762 3761 -1 -3861 3761 -1 -3762 3762 4 -3763 3762 -1 -3862 3762 -1 -3763 3763 4 -3764 3763 -1 -3863 3763 -1 -3764 3764 4 -3765 3764 -1 -3864 3764 -1 -3765 3765 4 -3766 3765 -1 -3865 3765 -1 -3766 3766 4 -3767 3766 -1 -3866 3766 -1 -3767 3767 4 -3768 3767 -1 -3867 3767 -1 -3768 3768 4 -3769 3768 -1 -3868 3768 -1 -3769 3769 4 -3770 3769 -1 -3869 3769 -1 -3770 3770 4 -3771 3770 -1 -3870 3770 -1 -3771 3771 4 -3772 3771 -1 -3871 3771 -1 -3772 3772 4 -3773 3772 -1 -3872 3772 -1 -3773 3773 4 -3774 3773 -1 -3873 3773 -1 -3774 3774 4 -3775 3774 -1 -3874 3774 -1 -3775 3775 4 -3776 3775 -1 -3875 3775 -1 -3776 3776 4 -3777 3776 -1 -3876 3776 -1 -3777 3777 4 -3778 3777 -1 -3877 3777 -1 -3778 3778 4 -3779 3778 -1 -3878 3778 -1 -3779 3779 4 -3780 3779 -1 -3879 3779 -1 -3780 3780 4 -3781 3780 -1 -3880 3780 -1 -3781 3781 4 -3782 3781 -1 -3881 3781 -1 -3782 3782 4 -3783 3782 -1 -3882 3782 -1 -3783 3783 4 -3784 3783 -1 -3883 3783 -1 -3784 3784 4 -3785 3784 -1 -3884 3784 -1 -3785 3785 4 -3786 3785 -1 -3885 3785 -1 -3786 3786 4 -3787 3786 -1 -3886 3786 -1 -3787 3787 4 -3788 3787 -1 -3887 3787 -1 -3788 3788 4 -3789 3788 -1 -3888 3788 -1 -3789 3789 4 -3790 3789 -1 -3889 3789 -1 -3790 3790 4 -3791 3790 -1 -3890 3790 -1 -3791 3791 4 -3792 3791 -1 -3891 3791 -1 -3792 3792 4 -3793 3792 -1 -3892 3792 -1 -3793 3793 4 -3794 3793 -1 -3893 3793 -1 -3794 3794 4 -3795 3794 -1 -3894 3794 -1 -3795 3795 4 -3796 3795 -1 -3895 3795 -1 -3796 3796 4 -3797 3796 -1 -3896 3796 -1 -3797 3797 4 -3798 3797 -1 -3897 3797 -1 -3798 3798 4 -3799 3798 -1 -3898 3798 -1 -3799 3799 4 -3800 3799 -1 -3899 3799 -1 -3800 3800 4 -3900 3800 -1 -3801 3801 4 -3802 3801 -1 -3901 3801 -1 -3802 3802 4 -3803 3802 -1 -3902 3802 -1 -3803 3803 4 -3804 3803 -1 -3903 3803 -1 -3804 3804 4 -3805 3804 -1 -3904 3804 -1 -3805 3805 4 -3806 3805 -1 -3905 3805 -1 -3806 3806 4 -3807 3806 -1 -3906 3806 -1 -3807 3807 4 -3808 3807 -1 -3907 3807 -1 -3808 3808 4 -3809 3808 -1 -3908 3808 -1 -3809 3809 4 -3810 3809 -1 -3909 3809 -1 -3810 3810 4 -3811 3810 -1 -3910 3810 -1 -3811 3811 4 -3812 3811 -1 -3911 3811 -1 -3812 3812 4 -3813 3812 -1 -3912 3812 -1 -3813 3813 4 -3814 3813 -1 -3913 3813 -1 -3814 3814 4 -3815 3814 -1 -3914 3814 -1 -3815 3815 4 -3816 3815 -1 -3915 3815 -1 -3816 3816 4 -3817 3816 -1 -3916 3816 -1 -3817 3817 4 -3818 3817 -1 -3917 3817 -1 -3818 3818 4 -3819 3818 -1 -3918 3818 -1 -3819 3819 4 -3820 3819 -1 -3919 3819 -1 -3820 3820 4 -3821 3820 -1 -3920 3820 -1 -3821 3821 4 -3822 3821 -1 -3921 3821 -1 -3822 3822 4 -3823 3822 -1 -3922 3822 -1 -3823 3823 4 -3824 3823 -1 -3923 3823 -1 -3824 3824 4 -3825 3824 -1 -3924 3824 -1 -3825 3825 4 -3826 3825 -1 -3925 3825 -1 -3826 3826 4 -3827 3826 -1 -3926 3826 -1 -3827 3827 4 -3828 3827 -1 -3927 3827 -1 -3828 3828 4 -3829 3828 -1 -3928 3828 -1 -3829 3829 4 -3830 3829 -1 -3929 3829 -1 -3830 3830 4 -3831 3830 -1 -3930 3830 -1 -3831 3831 4 -3832 3831 -1 -3931 3831 -1 -3832 3832 4 -3833 3832 -1 -3932 3832 -1 -3833 3833 4 -3834 3833 -1 -3933 3833 -1 -3834 3834 4 -3835 3834 -1 -3934 3834 -1 -3835 3835 4 -3836 3835 -1 -3935 3835 -1 -3836 3836 4 -3837 3836 -1 -3936 3836 -1 -3837 3837 4 -3838 3837 -1 -3937 3837 -1 -3838 3838 4 -3839 3838 -1 -3938 3838 -1 -3839 3839 4 -3840 3839 -1 -3939 3839 -1 -3840 3840 4 -3841 3840 -1 -3940 3840 -1 -3841 3841 4 -3842 3841 -1 -3941 3841 -1 -3842 3842 4 -3843 3842 -1 -3942 3842 -1 -3843 3843 4 -3844 3843 -1 -3943 3843 -1 -3844 3844 4 -3845 3844 -1 -3944 3844 -1 -3845 3845 4 -3846 3845 -1 -3945 3845 -1 -3846 3846 4 -3847 3846 -1 -3946 3846 -1 -3847 3847 4 -3848 3847 -1 -3947 3847 -1 -3848 3848 4 -3849 3848 -1 -3948 3848 -1 -3849 3849 4 -3850 3849 -1 -3949 3849 -1 -3850 3850 4 -3851 3850 -1 -3950 3850 -1 -3851 3851 4 -3852 3851 -1 -3951 3851 -1 -3852 3852 4 -3853 3852 -1 -3952 3852 -1 -3853 3853 4 -3854 3853 -1 -3953 3853 -1 -3854 3854 4 -3855 3854 -1 -3954 3854 -1 -3855 3855 4 -3856 3855 -1 -3955 3855 -1 -3856 3856 4 -3857 3856 -1 -3956 3856 -1 -3857 3857 4 -3858 3857 -1 -3957 3857 -1 -3858 3858 4 -3859 3858 -1 -3958 3858 -1 -3859 3859 4 -3860 3859 -1 -3959 3859 -1 -3860 3860 4 -3861 3860 -1 -3960 3860 -1 -3861 3861 4 -3862 3861 -1 -3961 3861 -1 -3862 3862 4 -3863 3862 -1 -3962 3862 -1 -3863 3863 4 -3864 3863 -1 -3963 3863 -1 -3864 3864 4 -3865 3864 -1 -3964 3864 -1 -3865 3865 4 -3866 3865 -1 -3965 3865 -1 -3866 3866 4 -3867 3866 -1 -3966 3866 -1 -3867 3867 4 -3868 3867 -1 -3967 3867 -1 -3868 3868 4 -3869 3868 -1 -3968 3868 -1 -3869 3869 4 -3870 3869 -1 -3969 3869 -1 -3870 3870 4 -3871 3870 -1 -3970 3870 -1 -3871 3871 4 -3872 3871 -1 -3971 3871 -1 -3872 3872 4 -3873 3872 -1 -3972 3872 -1 -3873 3873 4 -3874 3873 -1 -3973 3873 -1 -3874 3874 4 -3875 3874 -1 -3974 3874 -1 -3875 3875 4 -3876 3875 -1 -3975 3875 -1 -3876 3876 4 -3877 3876 -1 -3976 3876 -1 -3877 3877 4 -3878 3877 -1 -3977 3877 -1 -3878 3878 4 -3879 3878 -1 -3978 3878 -1 -3879 3879 4 -3880 3879 -1 -3979 3879 -1 -3880 3880 4 -3881 3880 -1 -3980 3880 -1 -3881 3881 4 -3882 3881 -1 -3981 3881 -1 -3882 3882 4 -3883 3882 -1 -3982 3882 -1 -3883 3883 4 -3884 3883 -1 -3983 3883 -1 -3884 3884 4 -3885 3884 -1 -3984 3884 -1 -3885 3885 4 -3886 3885 -1 -3985 3885 -1 -3886 3886 4 -3887 3886 -1 -3986 3886 -1 -3887 3887 4 -3888 3887 -1 -3987 3887 -1 -3888 3888 4 -3889 3888 -1 -3988 3888 -1 -3889 3889 4 -3890 3889 -1 -3989 3889 -1 -3890 3890 4 -3891 3890 -1 -3990 3890 -1 -3891 3891 4 -3892 3891 -1 -3991 3891 -1 -3892 3892 4 -3893 3892 -1 -3992 3892 -1 -3893 3893 4 -3894 3893 -1 -3993 3893 -1 -3894 3894 4 -3895 3894 -1 -3994 3894 -1 -3895 3895 4 -3896 3895 -1 -3995 3895 -1 -3896 3896 4 -3897 3896 -1 -3996 3896 -1 -3897 3897 4 -3898 3897 -1 -3997 3897 -1 -3898 3898 4 -3899 3898 -1 -3998 3898 -1 -3899 3899 4 -3900 3899 -1 -3999 3899 -1 -3900 3900 4 -4000 3900 -1 -3901 3901 4 -3902 3901 -1 -4001 3901 -1 -3902 3902 4 -3903 3902 -1 -4002 3902 -1 -3903 3903 4 -3904 3903 -1 -4003 3903 -1 -3904 3904 4 -3905 3904 -1 -4004 3904 -1 -3905 3905 4 -3906 3905 -1 -4005 3905 -1 -3906 3906 4 -3907 3906 -1 -4006 3906 -1 -3907 3907 4 -3908 3907 -1 -4007 3907 -1 -3908 3908 4 -3909 3908 -1 -4008 3908 -1 -3909 3909 4 -3910 3909 -1 -4009 3909 -1 -3910 3910 4 -3911 3910 -1 -4010 3910 -1 -3911 3911 4 -3912 3911 -1 -4011 3911 -1 -3912 3912 4 -3913 3912 -1 -4012 3912 -1 -3913 3913 4 -3914 3913 -1 -4013 3913 -1 -3914 3914 4 -3915 3914 -1 -4014 3914 -1 -3915 3915 4 -3916 3915 -1 -4015 3915 -1 -3916 3916 4 -3917 3916 -1 -4016 3916 -1 -3917 3917 4 -3918 3917 -1 -4017 3917 -1 -3918 3918 4 -3919 3918 -1 -4018 3918 -1 -3919 3919 4 -3920 3919 -1 -4019 3919 -1 -3920 3920 4 -3921 3920 -1 -4020 3920 -1 -3921 3921 4 -3922 3921 -1 -4021 3921 -1 -3922 3922 4 -3923 3922 -1 -4022 3922 -1 -3923 3923 4 -3924 3923 -1 -4023 3923 -1 -3924 3924 4 -3925 3924 -1 -4024 3924 -1 -3925 3925 4 -3926 3925 -1 -4025 3925 -1 -3926 3926 4 -3927 3926 -1 -4026 3926 -1 -3927 3927 4 -3928 3927 -1 -4027 3927 -1 -3928 3928 4 -3929 3928 -1 -4028 3928 -1 -3929 3929 4 -3930 3929 -1 -4029 3929 -1 -3930 3930 4 -3931 3930 -1 -4030 3930 -1 -3931 3931 4 -3932 3931 -1 -4031 3931 -1 -3932 3932 4 -3933 3932 -1 -4032 3932 -1 -3933 3933 4 -3934 3933 -1 -4033 3933 -1 -3934 3934 4 -3935 3934 -1 -4034 3934 -1 -3935 3935 4 -3936 3935 -1 -4035 3935 -1 -3936 3936 4 -3937 3936 -1 -4036 3936 -1 -3937 3937 4 -3938 3937 -1 -4037 3937 -1 -3938 3938 4 -3939 3938 -1 -4038 3938 -1 -3939 3939 4 -3940 3939 -1 -4039 3939 -1 -3940 3940 4 -3941 3940 -1 -4040 3940 -1 -3941 3941 4 -3942 3941 -1 -4041 3941 -1 -3942 3942 4 -3943 3942 -1 -4042 3942 -1 -3943 3943 4 -3944 3943 -1 -4043 3943 -1 -3944 3944 4 -3945 3944 -1 -4044 3944 -1 -3945 3945 4 -3946 3945 -1 -4045 3945 -1 -3946 3946 4 -3947 3946 -1 -4046 3946 -1 -3947 3947 4 -3948 3947 -1 -4047 3947 -1 -3948 3948 4 -3949 3948 -1 -4048 3948 -1 -3949 3949 4 -3950 3949 -1 -4049 3949 -1 -3950 3950 4 -3951 3950 -1 -4050 3950 -1 -3951 3951 4 -3952 3951 -1 -4051 3951 -1 -3952 3952 4 -3953 3952 -1 -4052 3952 -1 -3953 3953 4 -3954 3953 -1 -4053 3953 -1 -3954 3954 4 -3955 3954 -1 -4054 3954 -1 -3955 3955 4 -3956 3955 -1 -4055 3955 -1 -3956 3956 4 -3957 3956 -1 -4056 3956 -1 -3957 3957 4 -3958 3957 -1 -4057 3957 -1 -3958 3958 4 -3959 3958 -1 -4058 3958 -1 -3959 3959 4 -3960 3959 -1 -4059 3959 -1 -3960 3960 4 -3961 3960 -1 -4060 3960 -1 -3961 3961 4 -3962 3961 -1 -4061 3961 -1 -3962 3962 4 -3963 3962 -1 -4062 3962 -1 -3963 3963 4 -3964 3963 -1 -4063 3963 -1 -3964 3964 4 -3965 3964 -1 -4064 3964 -1 -3965 3965 4 -3966 3965 -1 -4065 3965 -1 -3966 3966 4 -3967 3966 -1 -4066 3966 -1 -3967 3967 4 -3968 3967 -1 -4067 3967 -1 -3968 3968 4 -3969 3968 -1 -4068 3968 -1 -3969 3969 4 -3970 3969 -1 -4069 3969 -1 -3970 3970 4 -3971 3970 -1 -4070 3970 -1 -3971 3971 4 -3972 3971 -1 -4071 3971 -1 -3972 3972 4 -3973 3972 -1 -4072 3972 -1 -3973 3973 4 -3974 3973 -1 -4073 3973 -1 -3974 3974 4 -3975 3974 -1 -4074 3974 -1 -3975 3975 4 -3976 3975 -1 -4075 3975 -1 -3976 3976 4 -3977 3976 -1 -4076 3976 -1 -3977 3977 4 -3978 3977 -1 -4077 3977 -1 -3978 3978 4 -3979 3978 -1 -4078 3978 -1 -3979 3979 4 -3980 3979 -1 -4079 3979 -1 -3980 3980 4 -3981 3980 -1 -4080 3980 -1 -3981 3981 4 -3982 3981 -1 -4081 3981 -1 -3982 3982 4 -3983 3982 -1 -4082 3982 -1 -3983 3983 4 -3984 3983 -1 -4083 3983 -1 -3984 3984 4 -3985 3984 -1 -4084 3984 -1 -3985 3985 4 -3986 3985 -1 -4085 3985 -1 -3986 3986 4 -3987 3986 -1 -4086 3986 -1 -3987 3987 4 -3988 3987 -1 -4087 3987 -1 -3988 3988 4 -3989 3988 -1 -4088 3988 -1 -3989 3989 4 -3990 3989 -1 -4089 3989 -1 -3990 3990 4 -3991 3990 -1 -4090 3990 -1 -3991 3991 4 -3992 3991 -1 -4091 3991 -1 -3992 3992 4 -3993 3992 -1 -4092 3992 -1 -3993 3993 4 -3994 3993 -1 -4093 3993 -1 -3994 3994 4 -3995 3994 -1 -4094 3994 -1 -3995 3995 4 -3996 3995 -1 -4095 3995 -1 -3996 3996 4 -3997 3996 -1 -4096 3996 -1 -3997 3997 4 -3998 3997 -1 -4097 3997 -1 -3998 3998 4 -3999 3998 -1 -4098 3998 -1 -3999 3999 4 -4000 3999 -1 -4099 3999 -1 -4000 4000 4 -4100 4000 -1 -4001 4001 4 -4002 4001 -1 -4101 4001 -1 -4002 4002 4 -4003 4002 -1 -4102 4002 -1 -4003 4003 4 -4004 4003 -1 -4103 4003 -1 -4004 4004 4 -4005 4004 -1 -4104 4004 -1 -4005 4005 4 -4006 4005 -1 -4105 4005 -1 -4006 4006 4 -4007 4006 -1 -4106 4006 -1 -4007 4007 4 -4008 4007 -1 -4107 4007 -1 -4008 4008 4 -4009 4008 -1 -4108 4008 -1 -4009 4009 4 -4010 4009 -1 -4109 4009 -1 -4010 4010 4 -4011 4010 -1 -4110 4010 -1 -4011 4011 4 -4012 4011 -1 -4111 4011 -1 -4012 4012 4 -4013 4012 -1 -4112 4012 -1 -4013 4013 4 -4014 4013 -1 -4113 4013 -1 -4014 4014 4 -4015 4014 -1 -4114 4014 -1 -4015 4015 4 -4016 4015 -1 -4115 4015 -1 -4016 4016 4 -4017 4016 -1 -4116 4016 -1 -4017 4017 4 -4018 4017 -1 -4117 4017 -1 -4018 4018 4 -4019 4018 -1 -4118 4018 -1 -4019 4019 4 -4020 4019 -1 -4119 4019 -1 -4020 4020 4 -4021 4020 -1 -4120 4020 -1 -4021 4021 4 -4022 4021 -1 -4121 4021 -1 -4022 4022 4 -4023 4022 -1 -4122 4022 -1 -4023 4023 4 -4024 4023 -1 -4123 4023 -1 -4024 4024 4 -4025 4024 -1 -4124 4024 -1 -4025 4025 4 -4026 4025 -1 -4125 4025 -1 -4026 4026 4 -4027 4026 -1 -4126 4026 -1 -4027 4027 4 -4028 4027 -1 -4127 4027 -1 -4028 4028 4 -4029 4028 -1 -4128 4028 -1 -4029 4029 4 -4030 4029 -1 -4129 4029 -1 -4030 4030 4 -4031 4030 -1 -4130 4030 -1 -4031 4031 4 -4032 4031 -1 -4131 4031 -1 -4032 4032 4 -4033 4032 -1 -4132 4032 -1 -4033 4033 4 -4034 4033 -1 -4133 4033 -1 -4034 4034 4 -4035 4034 -1 -4134 4034 -1 -4035 4035 4 -4036 4035 -1 -4135 4035 -1 -4036 4036 4 -4037 4036 -1 -4136 4036 -1 -4037 4037 4 -4038 4037 -1 -4137 4037 -1 -4038 4038 4 -4039 4038 -1 -4138 4038 -1 -4039 4039 4 -4040 4039 -1 -4139 4039 -1 -4040 4040 4 -4041 4040 -1 -4140 4040 -1 -4041 4041 4 -4042 4041 -1 -4141 4041 -1 -4042 4042 4 -4043 4042 -1 -4142 4042 -1 -4043 4043 4 -4044 4043 -1 -4143 4043 -1 -4044 4044 4 -4045 4044 -1 -4144 4044 -1 -4045 4045 4 -4046 4045 -1 -4145 4045 -1 -4046 4046 4 -4047 4046 -1 -4146 4046 -1 -4047 4047 4 -4048 4047 -1 -4147 4047 -1 -4048 4048 4 -4049 4048 -1 -4148 4048 -1 -4049 4049 4 -4050 4049 -1 -4149 4049 -1 -4050 4050 4 -4051 4050 -1 -4150 4050 -1 -4051 4051 4 -4052 4051 -1 -4151 4051 -1 -4052 4052 4 -4053 4052 -1 -4152 4052 -1 -4053 4053 4 -4054 4053 -1 -4153 4053 -1 -4054 4054 4 -4055 4054 -1 -4154 4054 -1 -4055 4055 4 -4056 4055 -1 -4155 4055 -1 -4056 4056 4 -4057 4056 -1 -4156 4056 -1 -4057 4057 4 -4058 4057 -1 -4157 4057 -1 -4058 4058 4 -4059 4058 -1 -4158 4058 -1 -4059 4059 4 -4060 4059 -1 -4159 4059 -1 -4060 4060 4 -4061 4060 -1 -4160 4060 -1 -4061 4061 4 -4062 4061 -1 -4161 4061 -1 -4062 4062 4 -4063 4062 -1 -4162 4062 -1 -4063 4063 4 -4064 4063 -1 -4163 4063 -1 -4064 4064 4 -4065 4064 -1 -4164 4064 -1 -4065 4065 4 -4066 4065 -1 -4165 4065 -1 -4066 4066 4 -4067 4066 -1 -4166 4066 -1 -4067 4067 4 -4068 4067 -1 -4167 4067 -1 -4068 4068 4 -4069 4068 -1 -4168 4068 -1 -4069 4069 4 -4070 4069 -1 -4169 4069 -1 -4070 4070 4 -4071 4070 -1 -4170 4070 -1 -4071 4071 4 -4072 4071 -1 -4171 4071 -1 -4072 4072 4 -4073 4072 -1 -4172 4072 -1 -4073 4073 4 -4074 4073 -1 -4173 4073 -1 -4074 4074 4 -4075 4074 -1 -4174 4074 -1 -4075 4075 4 -4076 4075 -1 -4175 4075 -1 -4076 4076 4 -4077 4076 -1 -4176 4076 -1 -4077 4077 4 -4078 4077 -1 -4177 4077 -1 -4078 4078 4 -4079 4078 -1 -4178 4078 -1 -4079 4079 4 -4080 4079 -1 -4179 4079 -1 -4080 4080 4 -4081 4080 -1 -4180 4080 -1 -4081 4081 4 -4082 4081 -1 -4181 4081 -1 -4082 4082 4 -4083 4082 -1 -4182 4082 -1 -4083 4083 4 -4084 4083 -1 -4183 4083 -1 -4084 4084 4 -4085 4084 -1 -4184 4084 -1 -4085 4085 4 -4086 4085 -1 -4185 4085 -1 -4086 4086 4 -4087 4086 -1 -4186 4086 -1 -4087 4087 4 -4088 4087 -1 -4187 4087 -1 -4088 4088 4 -4089 4088 -1 -4188 4088 -1 -4089 4089 4 -4090 4089 -1 -4189 4089 -1 -4090 4090 4 -4091 4090 -1 -4190 4090 -1 -4091 4091 4 -4092 4091 -1 -4191 4091 -1 -4092 4092 4 -4093 4092 -1 -4192 4092 -1 -4093 4093 4 -4094 4093 -1 -4193 4093 -1 -4094 4094 4 -4095 4094 -1 -4194 4094 -1 -4095 4095 4 -4096 4095 -1 -4195 4095 -1 -4096 4096 4 -4097 4096 -1 -4196 4096 -1 -4097 4097 4 -4098 4097 -1 -4197 4097 -1 -4098 4098 4 -4099 4098 -1 -4198 4098 -1 -4099 4099 4 -4100 4099 -1 -4199 4099 -1 -4100 4100 4 -4200 4100 -1 -4101 4101 4 -4102 4101 -1 -4201 4101 -1 -4102 4102 4 -4103 4102 -1 -4202 4102 -1 -4103 4103 4 -4104 4103 -1 -4203 4103 -1 -4104 4104 4 -4105 4104 -1 -4204 4104 -1 -4105 4105 4 -4106 4105 -1 -4205 4105 -1 -4106 4106 4 -4107 4106 -1 -4206 4106 -1 -4107 4107 4 -4108 4107 -1 -4207 4107 -1 -4108 4108 4 -4109 4108 -1 -4208 4108 -1 -4109 4109 4 -4110 4109 -1 -4209 4109 -1 -4110 4110 4 -4111 4110 -1 -4210 4110 -1 -4111 4111 4 -4112 4111 -1 -4211 4111 -1 -4112 4112 4 -4113 4112 -1 -4212 4112 -1 -4113 4113 4 -4114 4113 -1 -4213 4113 -1 -4114 4114 4 -4115 4114 -1 -4214 4114 -1 -4115 4115 4 -4116 4115 -1 -4215 4115 -1 -4116 4116 4 -4117 4116 -1 -4216 4116 -1 -4117 4117 4 -4118 4117 -1 -4217 4117 -1 -4118 4118 4 -4119 4118 -1 -4218 4118 -1 -4119 4119 4 -4120 4119 -1 -4219 4119 -1 -4120 4120 4 -4121 4120 -1 -4220 4120 -1 -4121 4121 4 -4122 4121 -1 -4221 4121 -1 -4122 4122 4 -4123 4122 -1 -4222 4122 -1 -4123 4123 4 -4124 4123 -1 -4223 4123 -1 -4124 4124 4 -4125 4124 -1 -4224 4124 -1 -4125 4125 4 -4126 4125 -1 -4225 4125 -1 -4126 4126 4 -4127 4126 -1 -4226 4126 -1 -4127 4127 4 -4128 4127 -1 -4227 4127 -1 -4128 4128 4 -4129 4128 -1 -4228 4128 -1 -4129 4129 4 -4130 4129 -1 -4229 4129 -1 -4130 4130 4 -4131 4130 -1 -4230 4130 -1 -4131 4131 4 -4132 4131 -1 -4231 4131 -1 -4132 4132 4 -4133 4132 -1 -4232 4132 -1 -4133 4133 4 -4134 4133 -1 -4233 4133 -1 -4134 4134 4 -4135 4134 -1 -4234 4134 -1 -4135 4135 4 -4136 4135 -1 -4235 4135 -1 -4136 4136 4 -4137 4136 -1 -4236 4136 -1 -4137 4137 4 -4138 4137 -1 -4237 4137 -1 -4138 4138 4 -4139 4138 -1 -4238 4138 -1 -4139 4139 4 -4140 4139 -1 -4239 4139 -1 -4140 4140 4 -4141 4140 -1 -4240 4140 -1 -4141 4141 4 -4142 4141 -1 -4241 4141 -1 -4142 4142 4 -4143 4142 -1 -4242 4142 -1 -4143 4143 4 -4144 4143 -1 -4243 4143 -1 -4144 4144 4 -4145 4144 -1 -4244 4144 -1 -4145 4145 4 -4146 4145 -1 -4245 4145 -1 -4146 4146 4 -4147 4146 -1 -4246 4146 -1 -4147 4147 4 -4148 4147 -1 -4247 4147 -1 -4148 4148 4 -4149 4148 -1 -4248 4148 -1 -4149 4149 4 -4150 4149 -1 -4249 4149 -1 -4150 4150 4 -4151 4150 -1 -4250 4150 -1 -4151 4151 4 -4152 4151 -1 -4251 4151 -1 -4152 4152 4 -4153 4152 -1 -4252 4152 -1 -4153 4153 4 -4154 4153 -1 -4253 4153 -1 -4154 4154 4 -4155 4154 -1 -4254 4154 -1 -4155 4155 4 -4156 4155 -1 -4255 4155 -1 -4156 4156 4 -4157 4156 -1 -4256 4156 -1 -4157 4157 4 -4158 4157 -1 -4257 4157 -1 -4158 4158 4 -4159 4158 -1 -4258 4158 -1 -4159 4159 4 -4160 4159 -1 -4259 4159 -1 -4160 4160 4 -4161 4160 -1 -4260 4160 -1 -4161 4161 4 -4162 4161 -1 -4261 4161 -1 -4162 4162 4 -4163 4162 -1 -4262 4162 -1 -4163 4163 4 -4164 4163 -1 -4263 4163 -1 -4164 4164 4 -4165 4164 -1 -4264 4164 -1 -4165 4165 4 -4166 4165 -1 -4265 4165 -1 -4166 4166 4 -4167 4166 -1 -4266 4166 -1 -4167 4167 4 -4168 4167 -1 -4267 4167 -1 -4168 4168 4 -4169 4168 -1 -4268 4168 -1 -4169 4169 4 -4170 4169 -1 -4269 4169 -1 -4170 4170 4 -4171 4170 -1 -4270 4170 -1 -4171 4171 4 -4172 4171 -1 -4271 4171 -1 -4172 4172 4 -4173 4172 -1 -4272 4172 -1 -4173 4173 4 -4174 4173 -1 -4273 4173 -1 -4174 4174 4 -4175 4174 -1 -4274 4174 -1 -4175 4175 4 -4176 4175 -1 -4275 4175 -1 -4176 4176 4 -4177 4176 -1 -4276 4176 -1 -4177 4177 4 -4178 4177 -1 -4277 4177 -1 -4178 4178 4 -4179 4178 -1 -4278 4178 -1 -4179 4179 4 -4180 4179 -1 -4279 4179 -1 -4180 4180 4 -4181 4180 -1 -4280 4180 -1 -4181 4181 4 -4182 4181 -1 -4281 4181 -1 -4182 4182 4 -4183 4182 -1 -4282 4182 -1 -4183 4183 4 -4184 4183 -1 -4283 4183 -1 -4184 4184 4 -4185 4184 -1 -4284 4184 -1 -4185 4185 4 -4186 4185 -1 -4285 4185 -1 -4186 4186 4 -4187 4186 -1 -4286 4186 -1 -4187 4187 4 -4188 4187 -1 -4287 4187 -1 -4188 4188 4 -4189 4188 -1 -4288 4188 -1 -4189 4189 4 -4190 4189 -1 -4289 4189 -1 -4190 4190 4 -4191 4190 -1 -4290 4190 -1 -4191 4191 4 -4192 4191 -1 -4291 4191 -1 -4192 4192 4 -4193 4192 -1 -4292 4192 -1 -4193 4193 4 -4194 4193 -1 -4293 4193 -1 -4194 4194 4 -4195 4194 -1 -4294 4194 -1 -4195 4195 4 -4196 4195 -1 -4295 4195 -1 -4196 4196 4 -4197 4196 -1 -4296 4196 -1 -4197 4197 4 -4198 4197 -1 -4297 4197 -1 -4198 4198 4 -4199 4198 -1 -4298 4198 -1 -4199 4199 4 -4200 4199 -1 -4299 4199 -1 -4200 4200 4 -4300 4200 -1 -4201 4201 4 -4202 4201 -1 -4301 4201 -1 -4202 4202 4 -4203 4202 -1 -4302 4202 -1 -4203 4203 4 -4204 4203 -1 -4303 4203 -1 -4204 4204 4 -4205 4204 -1 -4304 4204 -1 -4205 4205 4 -4206 4205 -1 -4305 4205 -1 -4206 4206 4 -4207 4206 -1 -4306 4206 -1 -4207 4207 4 -4208 4207 -1 -4307 4207 -1 -4208 4208 4 -4209 4208 -1 -4308 4208 -1 -4209 4209 4 -4210 4209 -1 -4309 4209 -1 -4210 4210 4 -4211 4210 -1 -4310 4210 -1 -4211 4211 4 -4212 4211 -1 -4311 4211 -1 -4212 4212 4 -4213 4212 -1 -4312 4212 -1 -4213 4213 4 -4214 4213 -1 -4313 4213 -1 -4214 4214 4 -4215 4214 -1 -4314 4214 -1 -4215 4215 4 -4216 4215 -1 -4315 4215 -1 -4216 4216 4 -4217 4216 -1 -4316 4216 -1 -4217 4217 4 -4218 4217 -1 -4317 4217 -1 -4218 4218 4 -4219 4218 -1 -4318 4218 -1 -4219 4219 4 -4220 4219 -1 -4319 4219 -1 -4220 4220 4 -4221 4220 -1 -4320 4220 -1 -4221 4221 4 -4222 4221 -1 -4321 4221 -1 -4222 4222 4 -4223 4222 -1 -4322 4222 -1 -4223 4223 4 -4224 4223 -1 -4323 4223 -1 -4224 4224 4 -4225 4224 -1 -4324 4224 -1 -4225 4225 4 -4226 4225 -1 -4325 4225 -1 -4226 4226 4 -4227 4226 -1 -4326 4226 -1 -4227 4227 4 -4228 4227 -1 -4327 4227 -1 -4228 4228 4 -4229 4228 -1 -4328 4228 -1 -4229 4229 4 -4230 4229 -1 -4329 4229 -1 -4230 4230 4 -4231 4230 -1 -4330 4230 -1 -4231 4231 4 -4232 4231 -1 -4331 4231 -1 -4232 4232 4 -4233 4232 -1 -4332 4232 -1 -4233 4233 4 -4234 4233 -1 -4333 4233 -1 -4234 4234 4 -4235 4234 -1 -4334 4234 -1 -4235 4235 4 -4236 4235 -1 -4335 4235 -1 -4236 4236 4 -4237 4236 -1 -4336 4236 -1 -4237 4237 4 -4238 4237 -1 -4337 4237 -1 -4238 4238 4 -4239 4238 -1 -4338 4238 -1 -4239 4239 4 -4240 4239 -1 -4339 4239 -1 -4240 4240 4 -4241 4240 -1 -4340 4240 -1 -4241 4241 4 -4242 4241 -1 -4341 4241 -1 -4242 4242 4 -4243 4242 -1 -4342 4242 -1 -4243 4243 4 -4244 4243 -1 -4343 4243 -1 -4244 4244 4 -4245 4244 -1 -4344 4244 -1 -4245 4245 4 -4246 4245 -1 -4345 4245 -1 -4246 4246 4 -4247 4246 -1 -4346 4246 -1 -4247 4247 4 -4248 4247 -1 -4347 4247 -1 -4248 4248 4 -4249 4248 -1 -4348 4248 -1 -4249 4249 4 -4250 4249 -1 -4349 4249 -1 -4250 4250 4 -4251 4250 -1 -4350 4250 -1 -4251 4251 4 -4252 4251 -1 -4351 4251 -1 -4252 4252 4 -4253 4252 -1 -4352 4252 -1 -4253 4253 4 -4254 4253 -1 -4353 4253 -1 -4254 4254 4 -4255 4254 -1 -4354 4254 -1 -4255 4255 4 -4256 4255 -1 -4355 4255 -1 -4256 4256 4 -4257 4256 -1 -4356 4256 -1 -4257 4257 4 -4258 4257 -1 -4357 4257 -1 -4258 4258 4 -4259 4258 -1 -4358 4258 -1 -4259 4259 4 -4260 4259 -1 -4359 4259 -1 -4260 4260 4 -4261 4260 -1 -4360 4260 -1 -4261 4261 4 -4262 4261 -1 -4361 4261 -1 -4262 4262 4 -4263 4262 -1 -4362 4262 -1 -4263 4263 4 -4264 4263 -1 -4363 4263 -1 -4264 4264 4 -4265 4264 -1 -4364 4264 -1 -4265 4265 4 -4266 4265 -1 -4365 4265 -1 -4266 4266 4 -4267 4266 -1 -4366 4266 -1 -4267 4267 4 -4268 4267 -1 -4367 4267 -1 -4268 4268 4 -4269 4268 -1 -4368 4268 -1 -4269 4269 4 -4270 4269 -1 -4369 4269 -1 -4270 4270 4 -4271 4270 -1 -4370 4270 -1 -4271 4271 4 -4272 4271 -1 -4371 4271 -1 -4272 4272 4 -4273 4272 -1 -4372 4272 -1 -4273 4273 4 -4274 4273 -1 -4373 4273 -1 -4274 4274 4 -4275 4274 -1 -4374 4274 -1 -4275 4275 4 -4276 4275 -1 -4375 4275 -1 -4276 4276 4 -4277 4276 -1 -4376 4276 -1 -4277 4277 4 -4278 4277 -1 -4377 4277 -1 -4278 4278 4 -4279 4278 -1 -4378 4278 -1 -4279 4279 4 -4280 4279 -1 -4379 4279 -1 -4280 4280 4 -4281 4280 -1 -4380 4280 -1 -4281 4281 4 -4282 4281 -1 -4381 4281 -1 -4282 4282 4 -4283 4282 -1 -4382 4282 -1 -4283 4283 4 -4284 4283 -1 -4383 4283 -1 -4284 4284 4 -4285 4284 -1 -4384 4284 -1 -4285 4285 4 -4286 4285 -1 -4385 4285 -1 -4286 4286 4 -4287 4286 -1 -4386 4286 -1 -4287 4287 4 -4288 4287 -1 -4387 4287 -1 -4288 4288 4 -4289 4288 -1 -4388 4288 -1 -4289 4289 4 -4290 4289 -1 -4389 4289 -1 -4290 4290 4 -4291 4290 -1 -4390 4290 -1 -4291 4291 4 -4292 4291 -1 -4391 4291 -1 -4292 4292 4 -4293 4292 -1 -4392 4292 -1 -4293 4293 4 -4294 4293 -1 -4393 4293 -1 -4294 4294 4 -4295 4294 -1 -4394 4294 -1 -4295 4295 4 -4296 4295 -1 -4395 4295 -1 -4296 4296 4 -4297 4296 -1 -4396 4296 -1 -4297 4297 4 -4298 4297 -1 -4397 4297 -1 -4298 4298 4 -4299 4298 -1 -4398 4298 -1 -4299 4299 4 -4300 4299 -1 -4399 4299 -1 -4300 4300 4 -4400 4300 -1 -4301 4301 4 -4302 4301 -1 -4401 4301 -1 -4302 4302 4 -4303 4302 -1 -4402 4302 -1 -4303 4303 4 -4304 4303 -1 -4403 4303 -1 -4304 4304 4 -4305 4304 -1 -4404 4304 -1 -4305 4305 4 -4306 4305 -1 -4405 4305 -1 -4306 4306 4 -4307 4306 -1 -4406 4306 -1 -4307 4307 4 -4308 4307 -1 -4407 4307 -1 -4308 4308 4 -4309 4308 -1 -4408 4308 -1 -4309 4309 4 -4310 4309 -1 -4409 4309 -1 -4310 4310 4 -4311 4310 -1 -4410 4310 -1 -4311 4311 4 -4312 4311 -1 -4411 4311 -1 -4312 4312 4 -4313 4312 -1 -4412 4312 -1 -4313 4313 4 -4314 4313 -1 -4413 4313 -1 -4314 4314 4 -4315 4314 -1 -4414 4314 -1 -4315 4315 4 -4316 4315 -1 -4415 4315 -1 -4316 4316 4 -4317 4316 -1 -4416 4316 -1 -4317 4317 4 -4318 4317 -1 -4417 4317 -1 -4318 4318 4 -4319 4318 -1 -4418 4318 -1 -4319 4319 4 -4320 4319 -1 -4419 4319 -1 -4320 4320 4 -4321 4320 -1 -4420 4320 -1 -4321 4321 4 -4322 4321 -1 -4421 4321 -1 -4322 4322 4 -4323 4322 -1 -4422 4322 -1 -4323 4323 4 -4324 4323 -1 -4423 4323 -1 -4324 4324 4 -4325 4324 -1 -4424 4324 -1 -4325 4325 4 -4326 4325 -1 -4425 4325 -1 -4326 4326 4 -4327 4326 -1 -4426 4326 -1 -4327 4327 4 -4328 4327 -1 -4427 4327 -1 -4328 4328 4 -4329 4328 -1 -4428 4328 -1 -4329 4329 4 -4330 4329 -1 -4429 4329 -1 -4330 4330 4 -4331 4330 -1 -4430 4330 -1 -4331 4331 4 -4332 4331 -1 -4431 4331 -1 -4332 4332 4 -4333 4332 -1 -4432 4332 -1 -4333 4333 4 -4334 4333 -1 -4433 4333 -1 -4334 4334 4 -4335 4334 -1 -4434 4334 -1 -4335 4335 4 -4336 4335 -1 -4435 4335 -1 -4336 4336 4 -4337 4336 -1 -4436 4336 -1 -4337 4337 4 -4338 4337 -1 -4437 4337 -1 -4338 4338 4 -4339 4338 -1 -4438 4338 -1 -4339 4339 4 -4340 4339 -1 -4439 4339 -1 -4340 4340 4 -4341 4340 -1 -4440 4340 -1 -4341 4341 4 -4342 4341 -1 -4441 4341 -1 -4342 4342 4 -4343 4342 -1 -4442 4342 -1 -4343 4343 4 -4344 4343 -1 -4443 4343 -1 -4344 4344 4 -4345 4344 -1 -4444 4344 -1 -4345 4345 4 -4346 4345 -1 -4445 4345 -1 -4346 4346 4 -4347 4346 -1 -4446 4346 -1 -4347 4347 4 -4348 4347 -1 -4447 4347 -1 -4348 4348 4 -4349 4348 -1 -4448 4348 -1 -4349 4349 4 -4350 4349 -1 -4449 4349 -1 -4350 4350 4 -4351 4350 -1 -4450 4350 -1 -4351 4351 4 -4352 4351 -1 -4451 4351 -1 -4352 4352 4 -4353 4352 -1 -4452 4352 -1 -4353 4353 4 -4354 4353 -1 -4453 4353 -1 -4354 4354 4 -4355 4354 -1 -4454 4354 -1 -4355 4355 4 -4356 4355 -1 -4455 4355 -1 -4356 4356 4 -4357 4356 -1 -4456 4356 -1 -4357 4357 4 -4358 4357 -1 -4457 4357 -1 -4358 4358 4 -4359 4358 -1 -4458 4358 -1 -4359 4359 4 -4360 4359 -1 -4459 4359 -1 -4360 4360 4 -4361 4360 -1 -4460 4360 -1 -4361 4361 4 -4362 4361 -1 -4461 4361 -1 -4362 4362 4 -4363 4362 -1 -4462 4362 -1 -4363 4363 4 -4364 4363 -1 -4463 4363 -1 -4364 4364 4 -4365 4364 -1 -4464 4364 -1 -4365 4365 4 -4366 4365 -1 -4465 4365 -1 -4366 4366 4 -4367 4366 -1 -4466 4366 -1 -4367 4367 4 -4368 4367 -1 -4467 4367 -1 -4368 4368 4 -4369 4368 -1 -4468 4368 -1 -4369 4369 4 -4370 4369 -1 -4469 4369 -1 -4370 4370 4 -4371 4370 -1 -4470 4370 -1 -4371 4371 4 -4372 4371 -1 -4471 4371 -1 -4372 4372 4 -4373 4372 -1 -4472 4372 -1 -4373 4373 4 -4374 4373 -1 -4473 4373 -1 -4374 4374 4 -4375 4374 -1 -4474 4374 -1 -4375 4375 4 -4376 4375 -1 -4475 4375 -1 -4376 4376 4 -4377 4376 -1 -4476 4376 -1 -4377 4377 4 -4378 4377 -1 -4477 4377 -1 -4378 4378 4 -4379 4378 -1 -4478 4378 -1 -4379 4379 4 -4380 4379 -1 -4479 4379 -1 -4380 4380 4 -4381 4380 -1 -4480 4380 -1 -4381 4381 4 -4382 4381 -1 -4481 4381 -1 -4382 4382 4 -4383 4382 -1 -4482 4382 -1 -4383 4383 4 -4384 4383 -1 -4483 4383 -1 -4384 4384 4 -4385 4384 -1 -4484 4384 -1 -4385 4385 4 -4386 4385 -1 -4485 4385 -1 -4386 4386 4 -4387 4386 -1 -4486 4386 -1 -4387 4387 4 -4388 4387 -1 -4487 4387 -1 -4388 4388 4 -4389 4388 -1 -4488 4388 -1 -4389 4389 4 -4390 4389 -1 -4489 4389 -1 -4390 4390 4 -4391 4390 -1 -4490 4390 -1 -4391 4391 4 -4392 4391 -1 -4491 4391 -1 -4392 4392 4 -4393 4392 -1 -4492 4392 -1 -4393 4393 4 -4394 4393 -1 -4493 4393 -1 -4394 4394 4 -4395 4394 -1 -4494 4394 -1 -4395 4395 4 -4396 4395 -1 -4495 4395 -1 -4396 4396 4 -4397 4396 -1 -4496 4396 -1 -4397 4397 4 -4398 4397 -1 -4497 4397 -1 -4398 4398 4 -4399 4398 -1 -4498 4398 -1 -4399 4399 4 -4400 4399 -1 -4499 4399 -1 -4400 4400 4 -4500 4400 -1 -4401 4401 4 -4402 4401 -1 -4501 4401 -1 -4402 4402 4 -4403 4402 -1 -4502 4402 -1 -4403 4403 4 -4404 4403 -1 -4503 4403 -1 -4404 4404 4 -4405 4404 -1 -4504 4404 -1 -4405 4405 4 -4406 4405 -1 -4505 4405 -1 -4406 4406 4 -4407 4406 -1 -4506 4406 -1 -4407 4407 4 -4408 4407 -1 -4507 4407 -1 -4408 4408 4 -4409 4408 -1 -4508 4408 -1 -4409 4409 4 -4410 4409 -1 -4509 4409 -1 -4410 4410 4 -4411 4410 -1 -4510 4410 -1 -4411 4411 4 -4412 4411 -1 -4511 4411 -1 -4412 4412 4 -4413 4412 -1 -4512 4412 -1 -4413 4413 4 -4414 4413 -1 -4513 4413 -1 -4414 4414 4 -4415 4414 -1 -4514 4414 -1 -4415 4415 4 -4416 4415 -1 -4515 4415 -1 -4416 4416 4 -4417 4416 -1 -4516 4416 -1 -4417 4417 4 -4418 4417 -1 -4517 4417 -1 -4418 4418 4 -4419 4418 -1 -4518 4418 -1 -4419 4419 4 -4420 4419 -1 -4519 4419 -1 -4420 4420 4 -4421 4420 -1 -4520 4420 -1 -4421 4421 4 -4422 4421 -1 -4521 4421 -1 -4422 4422 4 -4423 4422 -1 -4522 4422 -1 -4423 4423 4 -4424 4423 -1 -4523 4423 -1 -4424 4424 4 -4425 4424 -1 -4524 4424 -1 -4425 4425 4 -4426 4425 -1 -4525 4425 -1 -4426 4426 4 -4427 4426 -1 -4526 4426 -1 -4427 4427 4 -4428 4427 -1 -4527 4427 -1 -4428 4428 4 -4429 4428 -1 -4528 4428 -1 -4429 4429 4 -4430 4429 -1 -4529 4429 -1 -4430 4430 4 -4431 4430 -1 -4530 4430 -1 -4431 4431 4 -4432 4431 -1 -4531 4431 -1 -4432 4432 4 -4433 4432 -1 -4532 4432 -1 -4433 4433 4 -4434 4433 -1 -4533 4433 -1 -4434 4434 4 -4435 4434 -1 -4534 4434 -1 -4435 4435 4 -4436 4435 -1 -4535 4435 -1 -4436 4436 4 -4437 4436 -1 -4536 4436 -1 -4437 4437 4 -4438 4437 -1 -4537 4437 -1 -4438 4438 4 -4439 4438 -1 -4538 4438 -1 -4439 4439 4 -4440 4439 -1 -4539 4439 -1 -4440 4440 4 -4441 4440 -1 -4540 4440 -1 -4441 4441 4 -4442 4441 -1 -4541 4441 -1 -4442 4442 4 -4443 4442 -1 -4542 4442 -1 -4443 4443 4 -4444 4443 -1 -4543 4443 -1 -4444 4444 4 -4445 4444 -1 -4544 4444 -1 -4445 4445 4 -4446 4445 -1 -4545 4445 -1 -4446 4446 4 -4447 4446 -1 -4546 4446 -1 -4447 4447 4 -4448 4447 -1 -4547 4447 -1 -4448 4448 4 -4449 4448 -1 -4548 4448 -1 -4449 4449 4 -4450 4449 -1 -4549 4449 -1 -4450 4450 4 -4451 4450 -1 -4550 4450 -1 -4451 4451 4 -4452 4451 -1 -4551 4451 -1 -4452 4452 4 -4453 4452 -1 -4552 4452 -1 -4453 4453 4 -4454 4453 -1 -4553 4453 -1 -4454 4454 4 -4455 4454 -1 -4554 4454 -1 -4455 4455 4 -4456 4455 -1 -4555 4455 -1 -4456 4456 4 -4457 4456 -1 -4556 4456 -1 -4457 4457 4 -4458 4457 -1 -4557 4457 -1 -4458 4458 4 -4459 4458 -1 -4558 4458 -1 -4459 4459 4 -4460 4459 -1 -4559 4459 -1 -4460 4460 4 -4461 4460 -1 -4560 4460 -1 -4461 4461 4 -4462 4461 -1 -4561 4461 -1 -4462 4462 4 -4463 4462 -1 -4562 4462 -1 -4463 4463 4 -4464 4463 -1 -4563 4463 -1 -4464 4464 4 -4465 4464 -1 -4564 4464 -1 -4465 4465 4 -4466 4465 -1 -4565 4465 -1 -4466 4466 4 -4467 4466 -1 -4566 4466 -1 -4467 4467 4 -4468 4467 -1 -4567 4467 -1 -4468 4468 4 -4469 4468 -1 -4568 4468 -1 -4469 4469 4 -4470 4469 -1 -4569 4469 -1 -4470 4470 4 -4471 4470 -1 -4570 4470 -1 -4471 4471 4 -4472 4471 -1 -4571 4471 -1 -4472 4472 4 -4473 4472 -1 -4572 4472 -1 -4473 4473 4 -4474 4473 -1 -4573 4473 -1 -4474 4474 4 -4475 4474 -1 -4574 4474 -1 -4475 4475 4 -4476 4475 -1 -4575 4475 -1 -4476 4476 4 -4477 4476 -1 -4576 4476 -1 -4477 4477 4 -4478 4477 -1 -4577 4477 -1 -4478 4478 4 -4479 4478 -1 -4578 4478 -1 -4479 4479 4 -4480 4479 -1 -4579 4479 -1 -4480 4480 4 -4481 4480 -1 -4580 4480 -1 -4481 4481 4 -4482 4481 -1 -4581 4481 -1 -4482 4482 4 -4483 4482 -1 -4582 4482 -1 -4483 4483 4 -4484 4483 -1 -4583 4483 -1 -4484 4484 4 -4485 4484 -1 -4584 4484 -1 -4485 4485 4 -4486 4485 -1 -4585 4485 -1 -4486 4486 4 -4487 4486 -1 -4586 4486 -1 -4487 4487 4 -4488 4487 -1 -4587 4487 -1 -4488 4488 4 -4489 4488 -1 -4588 4488 -1 -4489 4489 4 -4490 4489 -1 -4589 4489 -1 -4490 4490 4 -4491 4490 -1 -4590 4490 -1 -4491 4491 4 -4492 4491 -1 -4591 4491 -1 -4492 4492 4 -4493 4492 -1 -4592 4492 -1 -4493 4493 4 -4494 4493 -1 -4593 4493 -1 -4494 4494 4 -4495 4494 -1 -4594 4494 -1 -4495 4495 4 -4496 4495 -1 -4595 4495 -1 -4496 4496 4 -4497 4496 -1 -4596 4496 -1 -4497 4497 4 -4498 4497 -1 -4597 4497 -1 -4498 4498 4 -4499 4498 -1 -4598 4498 -1 -4499 4499 4 -4500 4499 -1 -4599 4499 -1 -4500 4500 4 -4600 4500 -1 -4501 4501 4 -4502 4501 -1 -4601 4501 -1 -4502 4502 4 -4503 4502 -1 -4602 4502 -1 -4503 4503 4 -4504 4503 -1 -4603 4503 -1 -4504 4504 4 -4505 4504 -1 -4604 4504 -1 -4505 4505 4 -4506 4505 -1 -4605 4505 -1 -4506 4506 4 -4507 4506 -1 -4606 4506 -1 -4507 4507 4 -4508 4507 -1 -4607 4507 -1 -4508 4508 4 -4509 4508 -1 -4608 4508 -1 -4509 4509 4 -4510 4509 -1 -4609 4509 -1 -4510 4510 4 -4511 4510 -1 -4610 4510 -1 -4511 4511 4 -4512 4511 -1 -4611 4511 -1 -4512 4512 4 -4513 4512 -1 -4612 4512 -1 -4513 4513 4 -4514 4513 -1 -4613 4513 -1 -4514 4514 4 -4515 4514 -1 -4614 4514 -1 -4515 4515 4 -4516 4515 -1 -4615 4515 -1 -4516 4516 4 -4517 4516 -1 -4616 4516 -1 -4517 4517 4 -4518 4517 -1 -4617 4517 -1 -4518 4518 4 -4519 4518 -1 -4618 4518 -1 -4519 4519 4 -4520 4519 -1 -4619 4519 -1 -4520 4520 4 -4521 4520 -1 -4620 4520 -1 -4521 4521 4 -4522 4521 -1 -4621 4521 -1 -4522 4522 4 -4523 4522 -1 -4622 4522 -1 -4523 4523 4 -4524 4523 -1 -4623 4523 -1 -4524 4524 4 -4525 4524 -1 -4624 4524 -1 -4525 4525 4 -4526 4525 -1 -4625 4525 -1 -4526 4526 4 -4527 4526 -1 -4626 4526 -1 -4527 4527 4 -4528 4527 -1 -4627 4527 -1 -4528 4528 4 -4529 4528 -1 -4628 4528 -1 -4529 4529 4 -4530 4529 -1 -4629 4529 -1 -4530 4530 4 -4531 4530 -1 -4630 4530 -1 -4531 4531 4 -4532 4531 -1 -4631 4531 -1 -4532 4532 4 -4533 4532 -1 -4632 4532 -1 -4533 4533 4 -4534 4533 -1 -4633 4533 -1 -4534 4534 4 -4535 4534 -1 -4634 4534 -1 -4535 4535 4 -4536 4535 -1 -4635 4535 -1 -4536 4536 4 -4537 4536 -1 -4636 4536 -1 -4537 4537 4 -4538 4537 -1 -4637 4537 -1 -4538 4538 4 -4539 4538 -1 -4638 4538 -1 -4539 4539 4 -4540 4539 -1 -4639 4539 -1 -4540 4540 4 -4541 4540 -1 -4640 4540 -1 -4541 4541 4 -4542 4541 -1 -4641 4541 -1 -4542 4542 4 -4543 4542 -1 -4642 4542 -1 -4543 4543 4 -4544 4543 -1 -4643 4543 -1 -4544 4544 4 -4545 4544 -1 -4644 4544 -1 -4545 4545 4 -4546 4545 -1 -4645 4545 -1 -4546 4546 4 -4547 4546 -1 -4646 4546 -1 -4547 4547 4 -4548 4547 -1 -4647 4547 -1 -4548 4548 4 -4549 4548 -1 -4648 4548 -1 -4549 4549 4 -4550 4549 -1 -4649 4549 -1 -4550 4550 4 -4551 4550 -1 -4650 4550 -1 -4551 4551 4 -4552 4551 -1 -4651 4551 -1 -4552 4552 4 -4553 4552 -1 -4652 4552 -1 -4553 4553 4 -4554 4553 -1 -4653 4553 -1 -4554 4554 4 -4555 4554 -1 -4654 4554 -1 -4555 4555 4 -4556 4555 -1 -4655 4555 -1 -4556 4556 4 -4557 4556 -1 -4656 4556 -1 -4557 4557 4 -4558 4557 -1 -4657 4557 -1 -4558 4558 4 -4559 4558 -1 -4658 4558 -1 -4559 4559 4 -4560 4559 -1 -4659 4559 -1 -4560 4560 4 -4561 4560 -1 -4660 4560 -1 -4561 4561 4 -4562 4561 -1 -4661 4561 -1 -4562 4562 4 -4563 4562 -1 -4662 4562 -1 -4563 4563 4 -4564 4563 -1 -4663 4563 -1 -4564 4564 4 -4565 4564 -1 -4664 4564 -1 -4565 4565 4 -4566 4565 -1 -4665 4565 -1 -4566 4566 4 -4567 4566 -1 -4666 4566 -1 -4567 4567 4 -4568 4567 -1 -4667 4567 -1 -4568 4568 4 -4569 4568 -1 -4668 4568 -1 -4569 4569 4 -4570 4569 -1 -4669 4569 -1 -4570 4570 4 -4571 4570 -1 -4670 4570 -1 -4571 4571 4 -4572 4571 -1 -4671 4571 -1 -4572 4572 4 -4573 4572 -1 -4672 4572 -1 -4573 4573 4 -4574 4573 -1 -4673 4573 -1 -4574 4574 4 -4575 4574 -1 -4674 4574 -1 -4575 4575 4 -4576 4575 -1 -4675 4575 -1 -4576 4576 4 -4577 4576 -1 -4676 4576 -1 -4577 4577 4 -4578 4577 -1 -4677 4577 -1 -4578 4578 4 -4579 4578 -1 -4678 4578 -1 -4579 4579 4 -4580 4579 -1 -4679 4579 -1 -4580 4580 4 -4581 4580 -1 -4680 4580 -1 -4581 4581 4 -4582 4581 -1 -4681 4581 -1 -4582 4582 4 -4583 4582 -1 -4682 4582 -1 -4583 4583 4 -4584 4583 -1 -4683 4583 -1 -4584 4584 4 -4585 4584 -1 -4684 4584 -1 -4585 4585 4 -4586 4585 -1 -4685 4585 -1 -4586 4586 4 -4587 4586 -1 -4686 4586 -1 -4587 4587 4 -4588 4587 -1 -4687 4587 -1 -4588 4588 4 -4589 4588 -1 -4688 4588 -1 -4589 4589 4 -4590 4589 -1 -4689 4589 -1 -4590 4590 4 -4591 4590 -1 -4690 4590 -1 -4591 4591 4 -4592 4591 -1 -4691 4591 -1 -4592 4592 4 -4593 4592 -1 -4692 4592 -1 -4593 4593 4 -4594 4593 -1 -4693 4593 -1 -4594 4594 4 -4595 4594 -1 -4694 4594 -1 -4595 4595 4 -4596 4595 -1 -4695 4595 -1 -4596 4596 4 -4597 4596 -1 -4696 4596 -1 -4597 4597 4 -4598 4597 -1 -4697 4597 -1 -4598 4598 4 -4599 4598 -1 -4698 4598 -1 -4599 4599 4 -4600 4599 -1 -4699 4599 -1 -4600 4600 4 -4700 4600 -1 -4601 4601 4 -4602 4601 -1 -4701 4601 -1 -4602 4602 4 -4603 4602 -1 -4702 4602 -1 -4603 4603 4 -4604 4603 -1 -4703 4603 -1 -4604 4604 4 -4605 4604 -1 -4704 4604 -1 -4605 4605 4 -4606 4605 -1 -4705 4605 -1 -4606 4606 4 -4607 4606 -1 -4706 4606 -1 -4607 4607 4 -4608 4607 -1 -4707 4607 -1 -4608 4608 4 -4609 4608 -1 -4708 4608 -1 -4609 4609 4 -4610 4609 -1 -4709 4609 -1 -4610 4610 4 -4611 4610 -1 -4710 4610 -1 -4611 4611 4 -4612 4611 -1 -4711 4611 -1 -4612 4612 4 -4613 4612 -1 -4712 4612 -1 -4613 4613 4 -4614 4613 -1 -4713 4613 -1 -4614 4614 4 -4615 4614 -1 -4714 4614 -1 -4615 4615 4 -4616 4615 -1 -4715 4615 -1 -4616 4616 4 -4617 4616 -1 -4716 4616 -1 -4617 4617 4 -4618 4617 -1 -4717 4617 -1 -4618 4618 4 -4619 4618 -1 -4718 4618 -1 -4619 4619 4 -4620 4619 -1 -4719 4619 -1 -4620 4620 4 -4621 4620 -1 -4720 4620 -1 -4621 4621 4 -4622 4621 -1 -4721 4621 -1 -4622 4622 4 -4623 4622 -1 -4722 4622 -1 -4623 4623 4 -4624 4623 -1 -4723 4623 -1 -4624 4624 4 -4625 4624 -1 -4724 4624 -1 -4625 4625 4 -4626 4625 -1 -4725 4625 -1 -4626 4626 4 -4627 4626 -1 -4726 4626 -1 -4627 4627 4 -4628 4627 -1 -4727 4627 -1 -4628 4628 4 -4629 4628 -1 -4728 4628 -1 -4629 4629 4 -4630 4629 -1 -4729 4629 -1 -4630 4630 4 -4631 4630 -1 -4730 4630 -1 -4631 4631 4 -4632 4631 -1 -4731 4631 -1 -4632 4632 4 -4633 4632 -1 -4732 4632 -1 -4633 4633 4 -4634 4633 -1 -4733 4633 -1 -4634 4634 4 -4635 4634 -1 -4734 4634 -1 -4635 4635 4 -4636 4635 -1 -4735 4635 -1 -4636 4636 4 -4637 4636 -1 -4736 4636 -1 -4637 4637 4 -4638 4637 -1 -4737 4637 -1 -4638 4638 4 -4639 4638 -1 -4738 4638 -1 -4639 4639 4 -4640 4639 -1 -4739 4639 -1 -4640 4640 4 -4641 4640 -1 -4740 4640 -1 -4641 4641 4 -4642 4641 -1 -4741 4641 -1 -4642 4642 4 -4643 4642 -1 -4742 4642 -1 -4643 4643 4 -4644 4643 -1 -4743 4643 -1 -4644 4644 4 -4645 4644 -1 -4744 4644 -1 -4645 4645 4 -4646 4645 -1 -4745 4645 -1 -4646 4646 4 -4647 4646 -1 -4746 4646 -1 -4647 4647 4 -4648 4647 -1 -4747 4647 -1 -4648 4648 4 -4649 4648 -1 -4748 4648 -1 -4649 4649 4 -4650 4649 -1 -4749 4649 -1 -4650 4650 4 -4651 4650 -1 -4750 4650 -1 -4651 4651 4 -4652 4651 -1 -4751 4651 -1 -4652 4652 4 -4653 4652 -1 -4752 4652 -1 -4653 4653 4 -4654 4653 -1 -4753 4653 -1 -4654 4654 4 -4655 4654 -1 -4754 4654 -1 -4655 4655 4 -4656 4655 -1 -4755 4655 -1 -4656 4656 4 -4657 4656 -1 -4756 4656 -1 -4657 4657 4 -4658 4657 -1 -4757 4657 -1 -4658 4658 4 -4659 4658 -1 -4758 4658 -1 -4659 4659 4 -4660 4659 -1 -4759 4659 -1 -4660 4660 4 -4661 4660 -1 -4760 4660 -1 -4661 4661 4 -4662 4661 -1 -4761 4661 -1 -4662 4662 4 -4663 4662 -1 -4762 4662 -1 -4663 4663 4 -4664 4663 -1 -4763 4663 -1 -4664 4664 4 -4665 4664 -1 -4764 4664 -1 -4665 4665 4 -4666 4665 -1 -4765 4665 -1 -4666 4666 4 -4667 4666 -1 -4766 4666 -1 -4667 4667 4 -4668 4667 -1 -4767 4667 -1 -4668 4668 4 -4669 4668 -1 -4768 4668 -1 -4669 4669 4 -4670 4669 -1 -4769 4669 -1 -4670 4670 4 -4671 4670 -1 -4770 4670 -1 -4671 4671 4 -4672 4671 -1 -4771 4671 -1 -4672 4672 4 -4673 4672 -1 -4772 4672 -1 -4673 4673 4 -4674 4673 -1 -4773 4673 -1 -4674 4674 4 -4675 4674 -1 -4774 4674 -1 -4675 4675 4 -4676 4675 -1 -4775 4675 -1 -4676 4676 4 -4677 4676 -1 -4776 4676 -1 -4677 4677 4 -4678 4677 -1 -4777 4677 -1 -4678 4678 4 -4679 4678 -1 -4778 4678 -1 -4679 4679 4 -4680 4679 -1 -4779 4679 -1 -4680 4680 4 -4681 4680 -1 -4780 4680 -1 -4681 4681 4 -4682 4681 -1 -4781 4681 -1 -4682 4682 4 -4683 4682 -1 -4782 4682 -1 -4683 4683 4 -4684 4683 -1 -4783 4683 -1 -4684 4684 4 -4685 4684 -1 -4784 4684 -1 -4685 4685 4 -4686 4685 -1 -4785 4685 -1 -4686 4686 4 -4687 4686 -1 -4786 4686 -1 -4687 4687 4 -4688 4687 -1 -4787 4687 -1 -4688 4688 4 -4689 4688 -1 -4788 4688 -1 -4689 4689 4 -4690 4689 -1 -4789 4689 -1 -4690 4690 4 -4691 4690 -1 -4790 4690 -1 -4691 4691 4 -4692 4691 -1 -4791 4691 -1 -4692 4692 4 -4693 4692 -1 -4792 4692 -1 -4693 4693 4 -4694 4693 -1 -4793 4693 -1 -4694 4694 4 -4695 4694 -1 -4794 4694 -1 -4695 4695 4 -4696 4695 -1 -4795 4695 -1 -4696 4696 4 -4697 4696 -1 -4796 4696 -1 -4697 4697 4 -4698 4697 -1 -4797 4697 -1 -4698 4698 4 -4699 4698 -1 -4798 4698 -1 -4699 4699 4 -4700 4699 -1 -4799 4699 -1 -4700 4700 4 -4800 4700 -1 -4701 4701 4 -4702 4701 -1 -4801 4701 -1 -4702 4702 4 -4703 4702 -1 -4802 4702 -1 -4703 4703 4 -4704 4703 -1 -4803 4703 -1 -4704 4704 4 -4705 4704 -1 -4804 4704 -1 -4705 4705 4 -4706 4705 -1 -4805 4705 -1 -4706 4706 4 -4707 4706 -1 -4806 4706 -1 -4707 4707 4 -4708 4707 -1 -4807 4707 -1 -4708 4708 4 -4709 4708 -1 -4808 4708 -1 -4709 4709 4 -4710 4709 -1 -4809 4709 -1 -4710 4710 4 -4711 4710 -1 -4810 4710 -1 -4711 4711 4 -4712 4711 -1 -4811 4711 -1 -4712 4712 4 -4713 4712 -1 -4812 4712 -1 -4713 4713 4 -4714 4713 -1 -4813 4713 -1 -4714 4714 4 -4715 4714 -1 -4814 4714 -1 -4715 4715 4 -4716 4715 -1 -4815 4715 -1 -4716 4716 4 -4717 4716 -1 -4816 4716 -1 -4717 4717 4 -4718 4717 -1 -4817 4717 -1 -4718 4718 4 -4719 4718 -1 -4818 4718 -1 -4719 4719 4 -4720 4719 -1 -4819 4719 -1 -4720 4720 4 -4721 4720 -1 -4820 4720 -1 -4721 4721 4 -4722 4721 -1 -4821 4721 -1 -4722 4722 4 -4723 4722 -1 -4822 4722 -1 -4723 4723 4 -4724 4723 -1 -4823 4723 -1 -4724 4724 4 -4725 4724 -1 -4824 4724 -1 -4725 4725 4 -4726 4725 -1 -4825 4725 -1 -4726 4726 4 -4727 4726 -1 -4826 4726 -1 -4727 4727 4 -4728 4727 -1 -4827 4727 -1 -4728 4728 4 -4729 4728 -1 -4828 4728 -1 -4729 4729 4 -4730 4729 -1 -4829 4729 -1 -4730 4730 4 -4731 4730 -1 -4830 4730 -1 -4731 4731 4 -4732 4731 -1 -4831 4731 -1 -4732 4732 4 -4733 4732 -1 -4832 4732 -1 -4733 4733 4 -4734 4733 -1 -4833 4733 -1 -4734 4734 4 -4735 4734 -1 -4834 4734 -1 -4735 4735 4 -4736 4735 -1 -4835 4735 -1 -4736 4736 4 -4737 4736 -1 -4836 4736 -1 -4737 4737 4 -4738 4737 -1 -4837 4737 -1 -4738 4738 4 -4739 4738 -1 -4838 4738 -1 -4739 4739 4 -4740 4739 -1 -4839 4739 -1 -4740 4740 4 -4741 4740 -1 -4840 4740 -1 -4741 4741 4 -4742 4741 -1 -4841 4741 -1 -4742 4742 4 -4743 4742 -1 -4842 4742 -1 -4743 4743 4 -4744 4743 -1 -4843 4743 -1 -4744 4744 4 -4745 4744 -1 -4844 4744 -1 -4745 4745 4 -4746 4745 -1 -4845 4745 -1 -4746 4746 4 -4747 4746 -1 -4846 4746 -1 -4747 4747 4 -4748 4747 -1 -4847 4747 -1 -4748 4748 4 -4749 4748 -1 -4848 4748 -1 -4749 4749 4 -4750 4749 -1 -4849 4749 -1 -4750 4750 4 -4751 4750 -1 -4850 4750 -1 -4751 4751 4 -4752 4751 -1 -4851 4751 -1 -4752 4752 4 -4753 4752 -1 -4852 4752 -1 -4753 4753 4 -4754 4753 -1 -4853 4753 -1 -4754 4754 4 -4755 4754 -1 -4854 4754 -1 -4755 4755 4 -4756 4755 -1 -4855 4755 -1 -4756 4756 4 -4757 4756 -1 -4856 4756 -1 -4757 4757 4 -4758 4757 -1 -4857 4757 -1 -4758 4758 4 -4759 4758 -1 -4858 4758 -1 -4759 4759 4 -4760 4759 -1 -4859 4759 -1 -4760 4760 4 -4761 4760 -1 -4860 4760 -1 -4761 4761 4 -4762 4761 -1 -4861 4761 -1 -4762 4762 4 -4763 4762 -1 -4862 4762 -1 -4763 4763 4 -4764 4763 -1 -4863 4763 -1 -4764 4764 4 -4765 4764 -1 -4864 4764 -1 -4765 4765 4 -4766 4765 -1 -4865 4765 -1 -4766 4766 4 -4767 4766 -1 -4866 4766 -1 -4767 4767 4 -4768 4767 -1 -4867 4767 -1 -4768 4768 4 -4769 4768 -1 -4868 4768 -1 -4769 4769 4 -4770 4769 -1 -4869 4769 -1 -4770 4770 4 -4771 4770 -1 -4870 4770 -1 -4771 4771 4 -4772 4771 -1 -4871 4771 -1 -4772 4772 4 -4773 4772 -1 -4872 4772 -1 -4773 4773 4 -4774 4773 -1 -4873 4773 -1 -4774 4774 4 -4775 4774 -1 -4874 4774 -1 -4775 4775 4 -4776 4775 -1 -4875 4775 -1 -4776 4776 4 -4777 4776 -1 -4876 4776 -1 -4777 4777 4 -4778 4777 -1 -4877 4777 -1 -4778 4778 4 -4779 4778 -1 -4878 4778 -1 -4779 4779 4 -4780 4779 -1 -4879 4779 -1 -4780 4780 4 -4781 4780 -1 -4880 4780 -1 -4781 4781 4 -4782 4781 -1 -4881 4781 -1 -4782 4782 4 -4783 4782 -1 -4882 4782 -1 -4783 4783 4 -4784 4783 -1 -4883 4783 -1 -4784 4784 4 -4785 4784 -1 -4884 4784 -1 -4785 4785 4 -4786 4785 -1 -4885 4785 -1 -4786 4786 4 -4787 4786 -1 -4886 4786 -1 -4787 4787 4 -4788 4787 -1 -4887 4787 -1 -4788 4788 4 -4789 4788 -1 -4888 4788 -1 -4789 4789 4 -4790 4789 -1 -4889 4789 -1 -4790 4790 4 -4791 4790 -1 -4890 4790 -1 -4791 4791 4 -4792 4791 -1 -4891 4791 -1 -4792 4792 4 -4793 4792 -1 -4892 4792 -1 -4793 4793 4 -4794 4793 -1 -4893 4793 -1 -4794 4794 4 -4795 4794 -1 -4894 4794 -1 -4795 4795 4 -4796 4795 -1 -4895 4795 -1 -4796 4796 4 -4797 4796 -1 -4896 4796 -1 -4797 4797 4 -4798 4797 -1 -4897 4797 -1 -4798 4798 4 -4799 4798 -1 -4898 4798 -1 -4799 4799 4 -4800 4799 -1 -4899 4799 -1 -4800 4800 4 -4900 4800 -1 -4801 4801 4 -4802 4801 -1 -4901 4801 -1 -4802 4802 4 -4803 4802 -1 -4902 4802 -1 -4803 4803 4 -4804 4803 -1 -4903 4803 -1 -4804 4804 4 -4805 4804 -1 -4904 4804 -1 -4805 4805 4 -4806 4805 -1 -4905 4805 -1 -4806 4806 4 -4807 4806 -1 -4906 4806 -1 -4807 4807 4 -4808 4807 -1 -4907 4807 -1 -4808 4808 4 -4809 4808 -1 -4908 4808 -1 -4809 4809 4 -4810 4809 -1 -4909 4809 -1 -4810 4810 4 -4811 4810 -1 -4910 4810 -1 -4811 4811 4 -4812 4811 -1 -4911 4811 -1 -4812 4812 4 -4813 4812 -1 -4912 4812 -1 -4813 4813 4 -4814 4813 -1 -4913 4813 -1 -4814 4814 4 -4815 4814 -1 -4914 4814 -1 -4815 4815 4 -4816 4815 -1 -4915 4815 -1 -4816 4816 4 -4817 4816 -1 -4916 4816 -1 -4817 4817 4 -4818 4817 -1 -4917 4817 -1 -4818 4818 4 -4819 4818 -1 -4918 4818 -1 -4819 4819 4 -4820 4819 -1 -4919 4819 -1 -4820 4820 4 -4821 4820 -1 -4920 4820 -1 -4821 4821 4 -4822 4821 -1 -4921 4821 -1 -4822 4822 4 -4823 4822 -1 -4922 4822 -1 -4823 4823 4 -4824 4823 -1 -4923 4823 -1 -4824 4824 4 -4825 4824 -1 -4924 4824 -1 -4825 4825 4 -4826 4825 -1 -4925 4825 -1 -4826 4826 4 -4827 4826 -1 -4926 4826 -1 -4827 4827 4 -4828 4827 -1 -4927 4827 -1 -4828 4828 4 -4829 4828 -1 -4928 4828 -1 -4829 4829 4 -4830 4829 -1 -4929 4829 -1 -4830 4830 4 -4831 4830 -1 -4930 4830 -1 -4831 4831 4 -4832 4831 -1 -4931 4831 -1 -4832 4832 4 -4833 4832 -1 -4932 4832 -1 -4833 4833 4 -4834 4833 -1 -4933 4833 -1 -4834 4834 4 -4835 4834 -1 -4934 4834 -1 -4835 4835 4 -4836 4835 -1 -4935 4835 -1 -4836 4836 4 -4837 4836 -1 -4936 4836 -1 -4837 4837 4 -4838 4837 -1 -4937 4837 -1 -4838 4838 4 -4839 4838 -1 -4938 4838 -1 -4839 4839 4 -4840 4839 -1 -4939 4839 -1 -4840 4840 4 -4841 4840 -1 -4940 4840 -1 -4841 4841 4 -4842 4841 -1 -4941 4841 -1 -4842 4842 4 -4843 4842 -1 -4942 4842 -1 -4843 4843 4 -4844 4843 -1 -4943 4843 -1 -4844 4844 4 -4845 4844 -1 -4944 4844 -1 -4845 4845 4 -4846 4845 -1 -4945 4845 -1 -4846 4846 4 -4847 4846 -1 -4946 4846 -1 -4847 4847 4 -4848 4847 -1 -4947 4847 -1 -4848 4848 4 -4849 4848 -1 -4948 4848 -1 -4849 4849 4 -4850 4849 -1 -4949 4849 -1 -4850 4850 4 -4851 4850 -1 -4950 4850 -1 -4851 4851 4 -4852 4851 -1 -4951 4851 -1 -4852 4852 4 -4853 4852 -1 -4952 4852 -1 -4853 4853 4 -4854 4853 -1 -4953 4853 -1 -4854 4854 4 -4855 4854 -1 -4954 4854 -1 -4855 4855 4 -4856 4855 -1 -4955 4855 -1 -4856 4856 4 -4857 4856 -1 -4956 4856 -1 -4857 4857 4 -4858 4857 -1 -4957 4857 -1 -4858 4858 4 -4859 4858 -1 -4958 4858 -1 -4859 4859 4 -4860 4859 -1 -4959 4859 -1 -4860 4860 4 -4861 4860 -1 -4960 4860 -1 -4861 4861 4 -4862 4861 -1 -4961 4861 -1 -4862 4862 4 -4863 4862 -1 -4962 4862 -1 -4863 4863 4 -4864 4863 -1 -4963 4863 -1 -4864 4864 4 -4865 4864 -1 -4964 4864 -1 -4865 4865 4 -4866 4865 -1 -4965 4865 -1 -4866 4866 4 -4867 4866 -1 -4966 4866 -1 -4867 4867 4 -4868 4867 -1 -4967 4867 -1 -4868 4868 4 -4869 4868 -1 -4968 4868 -1 -4869 4869 4 -4870 4869 -1 -4969 4869 -1 -4870 4870 4 -4871 4870 -1 -4970 4870 -1 -4871 4871 4 -4872 4871 -1 -4971 4871 -1 -4872 4872 4 -4873 4872 -1 -4972 4872 -1 -4873 4873 4 -4874 4873 -1 -4973 4873 -1 -4874 4874 4 -4875 4874 -1 -4974 4874 -1 -4875 4875 4 -4876 4875 -1 -4975 4875 -1 -4876 4876 4 -4877 4876 -1 -4976 4876 -1 -4877 4877 4 -4878 4877 -1 -4977 4877 -1 -4878 4878 4 -4879 4878 -1 -4978 4878 -1 -4879 4879 4 -4880 4879 -1 -4979 4879 -1 -4880 4880 4 -4881 4880 -1 -4980 4880 -1 -4881 4881 4 -4882 4881 -1 -4981 4881 -1 -4882 4882 4 -4883 4882 -1 -4982 4882 -1 -4883 4883 4 -4884 4883 -1 -4983 4883 -1 -4884 4884 4 -4885 4884 -1 -4984 4884 -1 -4885 4885 4 -4886 4885 -1 -4985 4885 -1 -4886 4886 4 -4887 4886 -1 -4986 4886 -1 -4887 4887 4 -4888 4887 -1 -4987 4887 -1 -4888 4888 4 -4889 4888 -1 -4988 4888 -1 -4889 4889 4 -4890 4889 -1 -4989 4889 -1 -4890 4890 4 -4891 4890 -1 -4990 4890 -1 -4891 4891 4 -4892 4891 -1 -4991 4891 -1 -4892 4892 4 -4893 4892 -1 -4992 4892 -1 -4893 4893 4 -4894 4893 -1 -4993 4893 -1 -4894 4894 4 -4895 4894 -1 -4994 4894 -1 -4895 4895 4 -4896 4895 -1 -4995 4895 -1 -4896 4896 4 -4897 4896 -1 -4996 4896 -1 -4897 4897 4 -4898 4897 -1 -4997 4897 -1 -4898 4898 4 -4899 4898 -1 -4998 4898 -1 -4899 4899 4 -4900 4899 -1 -4999 4899 -1 -4900 4900 4 -5000 4900 -1 -4901 4901 4 -4902 4901 -1 -5001 4901 -1 -4902 4902 4 -4903 4902 -1 -5002 4902 -1 -4903 4903 4 -4904 4903 -1 -5003 4903 -1 -4904 4904 4 -4905 4904 -1 -5004 4904 -1 -4905 4905 4 -4906 4905 -1 -5005 4905 -1 -4906 4906 4 -4907 4906 -1 -5006 4906 -1 -4907 4907 4 -4908 4907 -1 -5007 4907 -1 -4908 4908 4 -4909 4908 -1 -5008 4908 -1 -4909 4909 4 -4910 4909 -1 -5009 4909 -1 -4910 4910 4 -4911 4910 -1 -5010 4910 -1 -4911 4911 4 -4912 4911 -1 -5011 4911 -1 -4912 4912 4 -4913 4912 -1 -5012 4912 -1 -4913 4913 4 -4914 4913 -1 -5013 4913 -1 -4914 4914 4 -4915 4914 -1 -5014 4914 -1 -4915 4915 4 -4916 4915 -1 -5015 4915 -1 -4916 4916 4 -4917 4916 -1 -5016 4916 -1 -4917 4917 4 -4918 4917 -1 -5017 4917 -1 -4918 4918 4 -4919 4918 -1 -5018 4918 -1 -4919 4919 4 -4920 4919 -1 -5019 4919 -1 -4920 4920 4 -4921 4920 -1 -5020 4920 -1 -4921 4921 4 -4922 4921 -1 -5021 4921 -1 -4922 4922 4 -4923 4922 -1 -5022 4922 -1 -4923 4923 4 -4924 4923 -1 -5023 4923 -1 -4924 4924 4 -4925 4924 -1 -5024 4924 -1 -4925 4925 4 -4926 4925 -1 -5025 4925 -1 -4926 4926 4 -4927 4926 -1 -5026 4926 -1 -4927 4927 4 -4928 4927 -1 -5027 4927 -1 -4928 4928 4 -4929 4928 -1 -5028 4928 -1 -4929 4929 4 -4930 4929 -1 -5029 4929 -1 -4930 4930 4 -4931 4930 -1 -5030 4930 -1 -4931 4931 4 -4932 4931 -1 -5031 4931 -1 -4932 4932 4 -4933 4932 -1 -5032 4932 -1 -4933 4933 4 -4934 4933 -1 -5033 4933 -1 -4934 4934 4 -4935 4934 -1 -5034 4934 -1 -4935 4935 4 -4936 4935 -1 -5035 4935 -1 -4936 4936 4 -4937 4936 -1 -5036 4936 -1 -4937 4937 4 -4938 4937 -1 -5037 4937 -1 -4938 4938 4 -4939 4938 -1 -5038 4938 -1 -4939 4939 4 -4940 4939 -1 -5039 4939 -1 -4940 4940 4 -4941 4940 -1 -5040 4940 -1 -4941 4941 4 -4942 4941 -1 -5041 4941 -1 -4942 4942 4 -4943 4942 -1 -5042 4942 -1 -4943 4943 4 -4944 4943 -1 -5043 4943 -1 -4944 4944 4 -4945 4944 -1 -5044 4944 -1 -4945 4945 4 -4946 4945 -1 -5045 4945 -1 -4946 4946 4 -4947 4946 -1 -5046 4946 -1 -4947 4947 4 -4948 4947 -1 -5047 4947 -1 -4948 4948 4 -4949 4948 -1 -5048 4948 -1 -4949 4949 4 -4950 4949 -1 -5049 4949 -1 -4950 4950 4 -4951 4950 -1 -5050 4950 -1 -4951 4951 4 -4952 4951 -1 -5051 4951 -1 -4952 4952 4 -4953 4952 -1 -5052 4952 -1 -4953 4953 4 -4954 4953 -1 -5053 4953 -1 -4954 4954 4 -4955 4954 -1 -5054 4954 -1 -4955 4955 4 -4956 4955 -1 -5055 4955 -1 -4956 4956 4 -4957 4956 -1 -5056 4956 -1 -4957 4957 4 -4958 4957 -1 -5057 4957 -1 -4958 4958 4 -4959 4958 -1 -5058 4958 -1 -4959 4959 4 -4960 4959 -1 -5059 4959 -1 -4960 4960 4 -4961 4960 -1 -5060 4960 -1 -4961 4961 4 -4962 4961 -1 -5061 4961 -1 -4962 4962 4 -4963 4962 -1 -5062 4962 -1 -4963 4963 4 -4964 4963 -1 -5063 4963 -1 -4964 4964 4 -4965 4964 -1 -5064 4964 -1 -4965 4965 4 -4966 4965 -1 -5065 4965 -1 -4966 4966 4 -4967 4966 -1 -5066 4966 -1 -4967 4967 4 -4968 4967 -1 -5067 4967 -1 -4968 4968 4 -4969 4968 -1 -5068 4968 -1 -4969 4969 4 -4970 4969 -1 -5069 4969 -1 -4970 4970 4 -4971 4970 -1 -5070 4970 -1 -4971 4971 4 -4972 4971 -1 -5071 4971 -1 -4972 4972 4 -4973 4972 -1 -5072 4972 -1 -4973 4973 4 -4974 4973 -1 -5073 4973 -1 -4974 4974 4 -4975 4974 -1 -5074 4974 -1 -4975 4975 4 -4976 4975 -1 -5075 4975 -1 -4976 4976 4 -4977 4976 -1 -5076 4976 -1 -4977 4977 4 -4978 4977 -1 -5077 4977 -1 -4978 4978 4 -4979 4978 -1 -5078 4978 -1 -4979 4979 4 -4980 4979 -1 -5079 4979 -1 -4980 4980 4 -4981 4980 -1 -5080 4980 -1 -4981 4981 4 -4982 4981 -1 -5081 4981 -1 -4982 4982 4 -4983 4982 -1 -5082 4982 -1 -4983 4983 4 -4984 4983 -1 -5083 4983 -1 -4984 4984 4 -4985 4984 -1 -5084 4984 -1 -4985 4985 4 -4986 4985 -1 -5085 4985 -1 -4986 4986 4 -4987 4986 -1 -5086 4986 -1 -4987 4987 4 -4988 4987 -1 -5087 4987 -1 -4988 4988 4 -4989 4988 -1 -5088 4988 -1 -4989 4989 4 -4990 4989 -1 -5089 4989 -1 -4990 4990 4 -4991 4990 -1 -5090 4990 -1 -4991 4991 4 -4992 4991 -1 -5091 4991 -1 -4992 4992 4 -4993 4992 -1 -5092 4992 -1 -4993 4993 4 -4994 4993 -1 -5093 4993 -1 -4994 4994 4 -4995 4994 -1 -5094 4994 -1 -4995 4995 4 -4996 4995 -1 -5095 4995 -1 -4996 4996 4 -4997 4996 -1 -5096 4996 -1 -4997 4997 4 -4998 4997 -1 -5097 4997 -1 -4998 4998 4 -4999 4998 -1 -5098 4998 -1 -4999 4999 4 -5000 4999 -1 -5099 4999 -1 -5000 5000 4 -5100 5000 -1 -5001 5001 4 -5002 5001 -1 -5101 5001 -1 -5002 5002 4 -5003 5002 -1 -5102 5002 -1 -5003 5003 4 -5004 5003 -1 -5103 5003 -1 -5004 5004 4 -5005 5004 -1 -5104 5004 -1 -5005 5005 4 -5006 5005 -1 -5105 5005 -1 -5006 5006 4 -5007 5006 -1 -5106 5006 -1 -5007 5007 4 -5008 5007 -1 -5107 5007 -1 -5008 5008 4 -5009 5008 -1 -5108 5008 -1 -5009 5009 4 -5010 5009 -1 -5109 5009 -1 -5010 5010 4 -5011 5010 -1 -5110 5010 -1 -5011 5011 4 -5012 5011 -1 -5111 5011 -1 -5012 5012 4 -5013 5012 -1 -5112 5012 -1 -5013 5013 4 -5014 5013 -1 -5113 5013 -1 -5014 5014 4 -5015 5014 -1 -5114 5014 -1 -5015 5015 4 -5016 5015 -1 -5115 5015 -1 -5016 5016 4 -5017 5016 -1 -5116 5016 -1 -5017 5017 4 -5018 5017 -1 -5117 5017 -1 -5018 5018 4 -5019 5018 -1 -5118 5018 -1 -5019 5019 4 -5020 5019 -1 -5119 5019 -1 -5020 5020 4 -5021 5020 -1 -5120 5020 -1 -5021 5021 4 -5022 5021 -1 -5121 5021 -1 -5022 5022 4 -5023 5022 -1 -5122 5022 -1 -5023 5023 4 -5024 5023 -1 -5123 5023 -1 -5024 5024 4 -5025 5024 -1 -5124 5024 -1 -5025 5025 4 -5026 5025 -1 -5125 5025 -1 -5026 5026 4 -5027 5026 -1 -5126 5026 -1 -5027 5027 4 -5028 5027 -1 -5127 5027 -1 -5028 5028 4 -5029 5028 -1 -5128 5028 -1 -5029 5029 4 -5030 5029 -1 -5129 5029 -1 -5030 5030 4 -5031 5030 -1 -5130 5030 -1 -5031 5031 4 -5032 5031 -1 -5131 5031 -1 -5032 5032 4 -5033 5032 -1 -5132 5032 -1 -5033 5033 4 -5034 5033 -1 -5133 5033 -1 -5034 5034 4 -5035 5034 -1 -5134 5034 -1 -5035 5035 4 -5036 5035 -1 -5135 5035 -1 -5036 5036 4 -5037 5036 -1 -5136 5036 -1 -5037 5037 4 -5038 5037 -1 -5137 5037 -1 -5038 5038 4 -5039 5038 -1 -5138 5038 -1 -5039 5039 4 -5040 5039 -1 -5139 5039 -1 -5040 5040 4 -5041 5040 -1 -5140 5040 -1 -5041 5041 4 -5042 5041 -1 -5141 5041 -1 -5042 5042 4 -5043 5042 -1 -5142 5042 -1 -5043 5043 4 -5044 5043 -1 -5143 5043 -1 -5044 5044 4 -5045 5044 -1 -5144 5044 -1 -5045 5045 4 -5046 5045 -1 -5145 5045 -1 -5046 5046 4 -5047 5046 -1 -5146 5046 -1 -5047 5047 4 -5048 5047 -1 -5147 5047 -1 -5048 5048 4 -5049 5048 -1 -5148 5048 -1 -5049 5049 4 -5050 5049 -1 -5149 5049 -1 -5050 5050 4 -5051 5050 -1 -5150 5050 -1 -5051 5051 4 -5052 5051 -1 -5151 5051 -1 -5052 5052 4 -5053 5052 -1 -5152 5052 -1 -5053 5053 4 -5054 5053 -1 -5153 5053 -1 -5054 5054 4 -5055 5054 -1 -5154 5054 -1 -5055 5055 4 -5056 5055 -1 -5155 5055 -1 -5056 5056 4 -5057 5056 -1 -5156 5056 -1 -5057 5057 4 -5058 5057 -1 -5157 5057 -1 -5058 5058 4 -5059 5058 -1 -5158 5058 -1 -5059 5059 4 -5060 5059 -1 -5159 5059 -1 -5060 5060 4 -5061 5060 -1 -5160 5060 -1 -5061 5061 4 -5062 5061 -1 -5161 5061 -1 -5062 5062 4 -5063 5062 -1 -5162 5062 -1 -5063 5063 4 -5064 5063 -1 -5163 5063 -1 -5064 5064 4 -5065 5064 -1 -5164 5064 -1 -5065 5065 4 -5066 5065 -1 -5165 5065 -1 -5066 5066 4 -5067 5066 -1 -5166 5066 -1 -5067 5067 4 -5068 5067 -1 -5167 5067 -1 -5068 5068 4 -5069 5068 -1 -5168 5068 -1 -5069 5069 4 -5070 5069 -1 -5169 5069 -1 -5070 5070 4 -5071 5070 -1 -5170 5070 -1 -5071 5071 4 -5072 5071 -1 -5171 5071 -1 -5072 5072 4 -5073 5072 -1 -5172 5072 -1 -5073 5073 4 -5074 5073 -1 -5173 5073 -1 -5074 5074 4 -5075 5074 -1 -5174 5074 -1 -5075 5075 4 -5076 5075 -1 -5175 5075 -1 -5076 5076 4 -5077 5076 -1 -5176 5076 -1 -5077 5077 4 -5078 5077 -1 -5177 5077 -1 -5078 5078 4 -5079 5078 -1 -5178 5078 -1 -5079 5079 4 -5080 5079 -1 -5179 5079 -1 -5080 5080 4 -5081 5080 -1 -5180 5080 -1 -5081 5081 4 -5082 5081 -1 -5181 5081 -1 -5082 5082 4 -5083 5082 -1 -5182 5082 -1 -5083 5083 4 -5084 5083 -1 -5183 5083 -1 -5084 5084 4 -5085 5084 -1 -5184 5084 -1 -5085 5085 4 -5086 5085 -1 -5185 5085 -1 -5086 5086 4 -5087 5086 -1 -5186 5086 -1 -5087 5087 4 -5088 5087 -1 -5187 5087 -1 -5088 5088 4 -5089 5088 -1 -5188 5088 -1 -5089 5089 4 -5090 5089 -1 -5189 5089 -1 -5090 5090 4 -5091 5090 -1 -5190 5090 -1 -5091 5091 4 -5092 5091 -1 -5191 5091 -1 -5092 5092 4 -5093 5092 -1 -5192 5092 -1 -5093 5093 4 -5094 5093 -1 -5193 5093 -1 -5094 5094 4 -5095 5094 -1 -5194 5094 -1 -5095 5095 4 -5096 5095 -1 -5195 5095 -1 -5096 5096 4 -5097 5096 -1 -5196 5096 -1 -5097 5097 4 -5098 5097 -1 -5197 5097 -1 -5098 5098 4 -5099 5098 -1 -5198 5098 -1 -5099 5099 4 -5100 5099 -1 -5199 5099 -1 -5100 5100 4 -5200 5100 -1 -5101 5101 4 -5102 5101 -1 -5201 5101 -1 -5102 5102 4 -5103 5102 -1 -5202 5102 -1 -5103 5103 4 -5104 5103 -1 -5203 5103 -1 -5104 5104 4 -5105 5104 -1 -5204 5104 -1 -5105 5105 4 -5106 5105 -1 -5205 5105 -1 -5106 5106 4 -5107 5106 -1 -5206 5106 -1 -5107 5107 4 -5108 5107 -1 -5207 5107 -1 -5108 5108 4 -5109 5108 -1 -5208 5108 -1 -5109 5109 4 -5110 5109 -1 -5209 5109 -1 -5110 5110 4 -5111 5110 -1 -5210 5110 -1 -5111 5111 4 -5112 5111 -1 -5211 5111 -1 -5112 5112 4 -5113 5112 -1 -5212 5112 -1 -5113 5113 4 -5114 5113 -1 -5213 5113 -1 -5114 5114 4 -5115 5114 -1 -5214 5114 -1 -5115 5115 4 -5116 5115 -1 -5215 5115 -1 -5116 5116 4 -5117 5116 -1 -5216 5116 -1 -5117 5117 4 -5118 5117 -1 -5217 5117 -1 -5118 5118 4 -5119 5118 -1 -5218 5118 -1 -5119 5119 4 -5120 5119 -1 -5219 5119 -1 -5120 5120 4 -5121 5120 -1 -5220 5120 -1 -5121 5121 4 -5122 5121 -1 -5221 5121 -1 -5122 5122 4 -5123 5122 -1 -5222 5122 -1 -5123 5123 4 -5124 5123 -1 -5223 5123 -1 -5124 5124 4 -5125 5124 -1 -5224 5124 -1 -5125 5125 4 -5126 5125 -1 -5225 5125 -1 -5126 5126 4 -5127 5126 -1 -5226 5126 -1 -5127 5127 4 -5128 5127 -1 -5227 5127 -1 -5128 5128 4 -5129 5128 -1 -5228 5128 -1 -5129 5129 4 -5130 5129 -1 -5229 5129 -1 -5130 5130 4 -5131 5130 -1 -5230 5130 -1 -5131 5131 4 -5132 5131 -1 -5231 5131 -1 -5132 5132 4 -5133 5132 -1 -5232 5132 -1 -5133 5133 4 -5134 5133 -1 -5233 5133 -1 -5134 5134 4 -5135 5134 -1 -5234 5134 -1 -5135 5135 4 -5136 5135 -1 -5235 5135 -1 -5136 5136 4 -5137 5136 -1 -5236 5136 -1 -5137 5137 4 -5138 5137 -1 -5237 5137 -1 -5138 5138 4 -5139 5138 -1 -5238 5138 -1 -5139 5139 4 -5140 5139 -1 -5239 5139 -1 -5140 5140 4 -5141 5140 -1 -5240 5140 -1 -5141 5141 4 -5142 5141 -1 -5241 5141 -1 -5142 5142 4 -5143 5142 -1 -5242 5142 -1 -5143 5143 4 -5144 5143 -1 -5243 5143 -1 -5144 5144 4 -5145 5144 -1 -5244 5144 -1 -5145 5145 4 -5146 5145 -1 -5245 5145 -1 -5146 5146 4 -5147 5146 -1 -5246 5146 -1 -5147 5147 4 -5148 5147 -1 -5247 5147 -1 -5148 5148 4 -5149 5148 -1 -5248 5148 -1 -5149 5149 4 -5150 5149 -1 -5249 5149 -1 -5150 5150 4 -5151 5150 -1 -5250 5150 -1 -5151 5151 4 -5152 5151 -1 -5251 5151 -1 -5152 5152 4 -5153 5152 -1 -5252 5152 -1 -5153 5153 4 -5154 5153 -1 -5253 5153 -1 -5154 5154 4 -5155 5154 -1 -5254 5154 -1 -5155 5155 4 -5156 5155 -1 -5255 5155 -1 -5156 5156 4 -5157 5156 -1 -5256 5156 -1 -5157 5157 4 -5158 5157 -1 -5257 5157 -1 -5158 5158 4 -5159 5158 -1 -5258 5158 -1 -5159 5159 4 -5160 5159 -1 -5259 5159 -1 -5160 5160 4 -5161 5160 -1 -5260 5160 -1 -5161 5161 4 -5162 5161 -1 -5261 5161 -1 -5162 5162 4 -5163 5162 -1 -5262 5162 -1 -5163 5163 4 -5164 5163 -1 -5263 5163 -1 -5164 5164 4 -5165 5164 -1 -5264 5164 -1 -5165 5165 4 -5166 5165 -1 -5265 5165 -1 -5166 5166 4 -5167 5166 -1 -5266 5166 -1 -5167 5167 4 -5168 5167 -1 -5267 5167 -1 -5168 5168 4 -5169 5168 -1 -5268 5168 -1 -5169 5169 4 -5170 5169 -1 -5269 5169 -1 -5170 5170 4 -5171 5170 -1 -5270 5170 -1 -5171 5171 4 -5172 5171 -1 -5271 5171 -1 -5172 5172 4 -5173 5172 -1 -5272 5172 -1 -5173 5173 4 -5174 5173 -1 -5273 5173 -1 -5174 5174 4 -5175 5174 -1 -5274 5174 -1 -5175 5175 4 -5176 5175 -1 -5275 5175 -1 -5176 5176 4 -5177 5176 -1 -5276 5176 -1 -5177 5177 4 -5178 5177 -1 -5277 5177 -1 -5178 5178 4 -5179 5178 -1 -5278 5178 -1 -5179 5179 4 -5180 5179 -1 -5279 5179 -1 -5180 5180 4 -5181 5180 -1 -5280 5180 -1 -5181 5181 4 -5182 5181 -1 -5281 5181 -1 -5182 5182 4 -5183 5182 -1 -5282 5182 -1 -5183 5183 4 -5184 5183 -1 -5283 5183 -1 -5184 5184 4 -5185 5184 -1 -5284 5184 -1 -5185 5185 4 -5186 5185 -1 -5285 5185 -1 -5186 5186 4 -5187 5186 -1 -5286 5186 -1 -5187 5187 4 -5188 5187 -1 -5287 5187 -1 -5188 5188 4 -5189 5188 -1 -5288 5188 -1 -5189 5189 4 -5190 5189 -1 -5289 5189 -1 -5190 5190 4 -5191 5190 -1 -5290 5190 -1 -5191 5191 4 -5192 5191 -1 -5291 5191 -1 -5192 5192 4 -5193 5192 -1 -5292 5192 -1 -5193 5193 4 -5194 5193 -1 -5293 5193 -1 -5194 5194 4 -5195 5194 -1 -5294 5194 -1 -5195 5195 4 -5196 5195 -1 -5295 5195 -1 -5196 5196 4 -5197 5196 -1 -5296 5196 -1 -5197 5197 4 -5198 5197 -1 -5297 5197 -1 -5198 5198 4 -5199 5198 -1 -5298 5198 -1 -5199 5199 4 -5200 5199 -1 -5299 5199 -1 -5200 5200 4 -5300 5200 -1 -5201 5201 4 -5202 5201 -1 -5301 5201 -1 -5202 5202 4 -5203 5202 -1 -5302 5202 -1 -5203 5203 4 -5204 5203 -1 -5303 5203 -1 -5204 5204 4 -5205 5204 -1 -5304 5204 -1 -5205 5205 4 -5206 5205 -1 -5305 5205 -1 -5206 5206 4 -5207 5206 -1 -5306 5206 -1 -5207 5207 4 -5208 5207 -1 -5307 5207 -1 -5208 5208 4 -5209 5208 -1 -5308 5208 -1 -5209 5209 4 -5210 5209 -1 -5309 5209 -1 -5210 5210 4 -5211 5210 -1 -5310 5210 -1 -5211 5211 4 -5212 5211 -1 -5311 5211 -1 -5212 5212 4 -5213 5212 -1 -5312 5212 -1 -5213 5213 4 -5214 5213 -1 -5313 5213 -1 -5214 5214 4 -5215 5214 -1 -5314 5214 -1 -5215 5215 4 -5216 5215 -1 -5315 5215 -1 -5216 5216 4 -5217 5216 -1 -5316 5216 -1 -5217 5217 4 -5218 5217 -1 -5317 5217 -1 -5218 5218 4 -5219 5218 -1 -5318 5218 -1 -5219 5219 4 -5220 5219 -1 -5319 5219 -1 -5220 5220 4 -5221 5220 -1 -5320 5220 -1 -5221 5221 4 -5222 5221 -1 -5321 5221 -1 -5222 5222 4 -5223 5222 -1 -5322 5222 -1 -5223 5223 4 -5224 5223 -1 -5323 5223 -1 -5224 5224 4 -5225 5224 -1 -5324 5224 -1 -5225 5225 4 -5226 5225 -1 -5325 5225 -1 -5226 5226 4 -5227 5226 -1 -5326 5226 -1 -5227 5227 4 -5228 5227 -1 -5327 5227 -1 -5228 5228 4 -5229 5228 -1 -5328 5228 -1 -5229 5229 4 -5230 5229 -1 -5329 5229 -1 -5230 5230 4 -5231 5230 -1 -5330 5230 -1 -5231 5231 4 -5232 5231 -1 -5331 5231 -1 -5232 5232 4 -5233 5232 -1 -5332 5232 -1 -5233 5233 4 -5234 5233 -1 -5333 5233 -1 -5234 5234 4 -5235 5234 -1 -5334 5234 -1 -5235 5235 4 -5236 5235 -1 -5335 5235 -1 -5236 5236 4 -5237 5236 -1 -5336 5236 -1 -5237 5237 4 -5238 5237 -1 -5337 5237 -1 -5238 5238 4 -5239 5238 -1 -5338 5238 -1 -5239 5239 4 -5240 5239 -1 -5339 5239 -1 -5240 5240 4 -5241 5240 -1 -5340 5240 -1 -5241 5241 4 -5242 5241 -1 -5341 5241 -1 -5242 5242 4 -5243 5242 -1 -5342 5242 -1 -5243 5243 4 -5244 5243 -1 -5343 5243 -1 -5244 5244 4 -5245 5244 -1 -5344 5244 -1 -5245 5245 4 -5246 5245 -1 -5345 5245 -1 -5246 5246 4 -5247 5246 -1 -5346 5246 -1 -5247 5247 4 -5248 5247 -1 -5347 5247 -1 -5248 5248 4 -5249 5248 -1 -5348 5248 -1 -5249 5249 4 -5250 5249 -1 -5349 5249 -1 -5250 5250 4 -5251 5250 -1 -5350 5250 -1 -5251 5251 4 -5252 5251 -1 -5351 5251 -1 -5252 5252 4 -5253 5252 -1 -5352 5252 -1 -5253 5253 4 -5254 5253 -1 -5353 5253 -1 -5254 5254 4 -5255 5254 -1 -5354 5254 -1 -5255 5255 4 -5256 5255 -1 -5355 5255 -1 -5256 5256 4 -5257 5256 -1 -5356 5256 -1 -5257 5257 4 -5258 5257 -1 -5357 5257 -1 -5258 5258 4 -5259 5258 -1 -5358 5258 -1 -5259 5259 4 -5260 5259 -1 -5359 5259 -1 -5260 5260 4 -5261 5260 -1 -5360 5260 -1 -5261 5261 4 -5262 5261 -1 -5361 5261 -1 -5262 5262 4 -5263 5262 -1 -5362 5262 -1 -5263 5263 4 -5264 5263 -1 -5363 5263 -1 -5264 5264 4 -5265 5264 -1 -5364 5264 -1 -5265 5265 4 -5266 5265 -1 -5365 5265 -1 -5266 5266 4 -5267 5266 -1 -5366 5266 -1 -5267 5267 4 -5268 5267 -1 -5367 5267 -1 -5268 5268 4 -5269 5268 -1 -5368 5268 -1 -5269 5269 4 -5270 5269 -1 -5369 5269 -1 -5270 5270 4 -5271 5270 -1 -5370 5270 -1 -5271 5271 4 -5272 5271 -1 -5371 5271 -1 -5272 5272 4 -5273 5272 -1 -5372 5272 -1 -5273 5273 4 -5274 5273 -1 -5373 5273 -1 -5274 5274 4 -5275 5274 -1 -5374 5274 -1 -5275 5275 4 -5276 5275 -1 -5375 5275 -1 -5276 5276 4 -5277 5276 -1 -5376 5276 -1 -5277 5277 4 -5278 5277 -1 -5377 5277 -1 -5278 5278 4 -5279 5278 -1 -5378 5278 -1 -5279 5279 4 -5280 5279 -1 -5379 5279 -1 -5280 5280 4 -5281 5280 -1 -5380 5280 -1 -5281 5281 4 -5282 5281 -1 -5381 5281 -1 -5282 5282 4 -5283 5282 -1 -5382 5282 -1 -5283 5283 4 -5284 5283 -1 -5383 5283 -1 -5284 5284 4 -5285 5284 -1 -5384 5284 -1 -5285 5285 4 -5286 5285 -1 -5385 5285 -1 -5286 5286 4 -5287 5286 -1 -5386 5286 -1 -5287 5287 4 -5288 5287 -1 -5387 5287 -1 -5288 5288 4 -5289 5288 -1 -5388 5288 -1 -5289 5289 4 -5290 5289 -1 -5389 5289 -1 -5290 5290 4 -5291 5290 -1 -5390 5290 -1 -5291 5291 4 -5292 5291 -1 -5391 5291 -1 -5292 5292 4 -5293 5292 -1 -5392 5292 -1 -5293 5293 4 -5294 5293 -1 -5393 5293 -1 -5294 5294 4 -5295 5294 -1 -5394 5294 -1 -5295 5295 4 -5296 5295 -1 -5395 5295 -1 -5296 5296 4 -5297 5296 -1 -5396 5296 -1 -5297 5297 4 -5298 5297 -1 -5397 5297 -1 -5298 5298 4 -5299 5298 -1 -5398 5298 -1 -5299 5299 4 -5300 5299 -1 -5399 5299 -1 -5300 5300 4 -5400 5300 -1 -5301 5301 4 -5302 5301 -1 -5401 5301 -1 -5302 5302 4 -5303 5302 -1 -5402 5302 -1 -5303 5303 4 -5304 5303 -1 -5403 5303 -1 -5304 5304 4 -5305 5304 -1 -5404 5304 -1 -5305 5305 4 -5306 5305 -1 -5405 5305 -1 -5306 5306 4 -5307 5306 -1 -5406 5306 -1 -5307 5307 4 -5308 5307 -1 -5407 5307 -1 -5308 5308 4 -5309 5308 -1 -5408 5308 -1 -5309 5309 4 -5310 5309 -1 -5409 5309 -1 -5310 5310 4 -5311 5310 -1 -5410 5310 -1 -5311 5311 4 -5312 5311 -1 -5411 5311 -1 -5312 5312 4 -5313 5312 -1 -5412 5312 -1 -5313 5313 4 -5314 5313 -1 -5413 5313 -1 -5314 5314 4 -5315 5314 -1 -5414 5314 -1 -5315 5315 4 -5316 5315 -1 -5415 5315 -1 -5316 5316 4 -5317 5316 -1 -5416 5316 -1 -5317 5317 4 -5318 5317 -1 -5417 5317 -1 -5318 5318 4 -5319 5318 -1 -5418 5318 -1 -5319 5319 4 -5320 5319 -1 -5419 5319 -1 -5320 5320 4 -5321 5320 -1 -5420 5320 -1 -5321 5321 4 -5322 5321 -1 -5421 5321 -1 -5322 5322 4 -5323 5322 -1 -5422 5322 -1 -5323 5323 4 -5324 5323 -1 -5423 5323 -1 -5324 5324 4 -5325 5324 -1 -5424 5324 -1 -5325 5325 4 -5326 5325 -1 -5425 5325 -1 -5326 5326 4 -5327 5326 -1 -5426 5326 -1 -5327 5327 4 -5328 5327 -1 -5427 5327 -1 -5328 5328 4 -5329 5328 -1 -5428 5328 -1 -5329 5329 4 -5330 5329 -1 -5429 5329 -1 -5330 5330 4 -5331 5330 -1 -5430 5330 -1 -5331 5331 4 -5332 5331 -1 -5431 5331 -1 -5332 5332 4 -5333 5332 -1 -5432 5332 -1 -5333 5333 4 -5334 5333 -1 -5433 5333 -1 -5334 5334 4 -5335 5334 -1 -5434 5334 -1 -5335 5335 4 -5336 5335 -1 -5435 5335 -1 -5336 5336 4 -5337 5336 -1 -5436 5336 -1 -5337 5337 4 -5338 5337 -1 -5437 5337 -1 -5338 5338 4 -5339 5338 -1 -5438 5338 -1 -5339 5339 4 -5340 5339 -1 -5439 5339 -1 -5340 5340 4 -5341 5340 -1 -5440 5340 -1 -5341 5341 4 -5342 5341 -1 -5441 5341 -1 -5342 5342 4 -5343 5342 -1 -5442 5342 -1 -5343 5343 4 -5344 5343 -1 -5443 5343 -1 -5344 5344 4 -5345 5344 -1 -5444 5344 -1 -5345 5345 4 -5346 5345 -1 -5445 5345 -1 -5346 5346 4 -5347 5346 -1 -5446 5346 -1 -5347 5347 4 -5348 5347 -1 -5447 5347 -1 -5348 5348 4 -5349 5348 -1 -5448 5348 -1 -5349 5349 4 -5350 5349 -1 -5449 5349 -1 -5350 5350 4 -5351 5350 -1 -5450 5350 -1 -5351 5351 4 -5352 5351 -1 -5451 5351 -1 -5352 5352 4 -5353 5352 -1 -5452 5352 -1 -5353 5353 4 -5354 5353 -1 -5453 5353 -1 -5354 5354 4 -5355 5354 -1 -5454 5354 -1 -5355 5355 4 -5356 5355 -1 -5455 5355 -1 -5356 5356 4 -5357 5356 -1 -5456 5356 -1 -5357 5357 4 -5358 5357 -1 -5457 5357 -1 -5358 5358 4 -5359 5358 -1 -5458 5358 -1 -5359 5359 4 -5360 5359 -1 -5459 5359 -1 -5360 5360 4 -5361 5360 -1 -5460 5360 -1 -5361 5361 4 -5362 5361 -1 -5461 5361 -1 -5362 5362 4 -5363 5362 -1 -5462 5362 -1 -5363 5363 4 -5364 5363 -1 -5463 5363 -1 -5364 5364 4 -5365 5364 -1 -5464 5364 -1 -5365 5365 4 -5366 5365 -1 -5465 5365 -1 -5366 5366 4 -5367 5366 -1 -5466 5366 -1 -5367 5367 4 -5368 5367 -1 -5467 5367 -1 -5368 5368 4 -5369 5368 -1 -5468 5368 -1 -5369 5369 4 -5370 5369 -1 -5469 5369 -1 -5370 5370 4 -5371 5370 -1 -5470 5370 -1 -5371 5371 4 -5372 5371 -1 -5471 5371 -1 -5372 5372 4 -5373 5372 -1 -5472 5372 -1 -5373 5373 4 -5374 5373 -1 -5473 5373 -1 -5374 5374 4 -5375 5374 -1 -5474 5374 -1 -5375 5375 4 -5376 5375 -1 -5475 5375 -1 -5376 5376 4 -5377 5376 -1 -5476 5376 -1 -5377 5377 4 -5378 5377 -1 -5477 5377 -1 -5378 5378 4 -5379 5378 -1 -5478 5378 -1 -5379 5379 4 -5380 5379 -1 -5479 5379 -1 -5380 5380 4 -5381 5380 -1 -5480 5380 -1 -5381 5381 4 -5382 5381 -1 -5481 5381 -1 -5382 5382 4 -5383 5382 -1 -5482 5382 -1 -5383 5383 4 -5384 5383 -1 -5483 5383 -1 -5384 5384 4 -5385 5384 -1 -5484 5384 -1 -5385 5385 4 -5386 5385 -1 -5485 5385 -1 -5386 5386 4 -5387 5386 -1 -5486 5386 -1 -5387 5387 4 -5388 5387 -1 -5487 5387 -1 -5388 5388 4 -5389 5388 -1 -5488 5388 -1 -5389 5389 4 -5390 5389 -1 -5489 5389 -1 -5390 5390 4 -5391 5390 -1 -5490 5390 -1 -5391 5391 4 -5392 5391 -1 -5491 5391 -1 -5392 5392 4 -5393 5392 -1 -5492 5392 -1 -5393 5393 4 -5394 5393 -1 -5493 5393 -1 -5394 5394 4 -5395 5394 -1 -5494 5394 -1 -5395 5395 4 -5396 5395 -1 -5495 5395 -1 -5396 5396 4 -5397 5396 -1 -5496 5396 -1 -5397 5397 4 -5398 5397 -1 -5497 5397 -1 -5398 5398 4 -5399 5398 -1 -5498 5398 -1 -5399 5399 4 -5400 5399 -1 -5499 5399 -1 -5400 5400 4 -5500 5400 -1 -5401 5401 4 -5402 5401 -1 -5501 5401 -1 -5402 5402 4 -5403 5402 -1 -5502 5402 -1 -5403 5403 4 -5404 5403 -1 -5503 5403 -1 -5404 5404 4 -5405 5404 -1 -5504 5404 -1 -5405 5405 4 -5406 5405 -1 -5505 5405 -1 -5406 5406 4 -5407 5406 -1 -5506 5406 -1 -5407 5407 4 -5408 5407 -1 -5507 5407 -1 -5408 5408 4 -5409 5408 -1 -5508 5408 -1 -5409 5409 4 -5410 5409 -1 -5509 5409 -1 -5410 5410 4 -5411 5410 -1 -5510 5410 -1 -5411 5411 4 -5412 5411 -1 -5511 5411 -1 -5412 5412 4 -5413 5412 -1 -5512 5412 -1 -5413 5413 4 -5414 5413 -1 -5513 5413 -1 -5414 5414 4 -5415 5414 -1 -5514 5414 -1 -5415 5415 4 -5416 5415 -1 -5515 5415 -1 -5416 5416 4 -5417 5416 -1 -5516 5416 -1 -5417 5417 4 -5418 5417 -1 -5517 5417 -1 -5418 5418 4 -5419 5418 -1 -5518 5418 -1 -5419 5419 4 -5420 5419 -1 -5519 5419 -1 -5420 5420 4 -5421 5420 -1 -5520 5420 -1 -5421 5421 4 -5422 5421 -1 -5521 5421 -1 -5422 5422 4 -5423 5422 -1 -5522 5422 -1 -5423 5423 4 -5424 5423 -1 -5523 5423 -1 -5424 5424 4 -5425 5424 -1 -5524 5424 -1 -5425 5425 4 -5426 5425 -1 -5525 5425 -1 -5426 5426 4 -5427 5426 -1 -5526 5426 -1 -5427 5427 4 -5428 5427 -1 -5527 5427 -1 -5428 5428 4 -5429 5428 -1 -5528 5428 -1 -5429 5429 4 -5430 5429 -1 -5529 5429 -1 -5430 5430 4 -5431 5430 -1 -5530 5430 -1 -5431 5431 4 -5432 5431 -1 -5531 5431 -1 -5432 5432 4 -5433 5432 -1 -5532 5432 -1 -5433 5433 4 -5434 5433 -1 -5533 5433 -1 -5434 5434 4 -5435 5434 -1 -5534 5434 -1 -5435 5435 4 -5436 5435 -1 -5535 5435 -1 -5436 5436 4 -5437 5436 -1 -5536 5436 -1 -5437 5437 4 -5438 5437 -1 -5537 5437 -1 -5438 5438 4 -5439 5438 -1 -5538 5438 -1 -5439 5439 4 -5440 5439 -1 -5539 5439 -1 -5440 5440 4 -5441 5440 -1 -5540 5440 -1 -5441 5441 4 -5442 5441 -1 -5541 5441 -1 -5442 5442 4 -5443 5442 -1 -5542 5442 -1 -5443 5443 4 -5444 5443 -1 -5543 5443 -1 -5444 5444 4 -5445 5444 -1 -5544 5444 -1 -5445 5445 4 -5446 5445 -1 -5545 5445 -1 -5446 5446 4 -5447 5446 -1 -5546 5446 -1 -5447 5447 4 -5448 5447 -1 -5547 5447 -1 -5448 5448 4 -5449 5448 -1 -5548 5448 -1 -5449 5449 4 -5450 5449 -1 -5549 5449 -1 -5450 5450 4 -5451 5450 -1 -5550 5450 -1 -5451 5451 4 -5452 5451 -1 -5551 5451 -1 -5452 5452 4 -5453 5452 -1 -5552 5452 -1 -5453 5453 4 -5454 5453 -1 -5553 5453 -1 -5454 5454 4 -5455 5454 -1 -5554 5454 -1 -5455 5455 4 -5456 5455 -1 -5555 5455 -1 -5456 5456 4 -5457 5456 -1 -5556 5456 -1 -5457 5457 4 -5458 5457 -1 -5557 5457 -1 -5458 5458 4 -5459 5458 -1 -5558 5458 -1 -5459 5459 4 -5460 5459 -1 -5559 5459 -1 -5460 5460 4 -5461 5460 -1 -5560 5460 -1 -5461 5461 4 -5462 5461 -1 -5561 5461 -1 -5462 5462 4 -5463 5462 -1 -5562 5462 -1 -5463 5463 4 -5464 5463 -1 -5563 5463 -1 -5464 5464 4 -5465 5464 -1 -5564 5464 -1 -5465 5465 4 -5466 5465 -1 -5565 5465 -1 -5466 5466 4 -5467 5466 -1 -5566 5466 -1 -5467 5467 4 -5468 5467 -1 -5567 5467 -1 -5468 5468 4 -5469 5468 -1 -5568 5468 -1 -5469 5469 4 -5470 5469 -1 -5569 5469 -1 -5470 5470 4 -5471 5470 -1 -5570 5470 -1 -5471 5471 4 -5472 5471 -1 -5571 5471 -1 -5472 5472 4 -5473 5472 -1 -5572 5472 -1 -5473 5473 4 -5474 5473 -1 -5573 5473 -1 -5474 5474 4 -5475 5474 -1 -5574 5474 -1 -5475 5475 4 -5476 5475 -1 -5575 5475 -1 -5476 5476 4 -5477 5476 -1 -5576 5476 -1 -5477 5477 4 -5478 5477 -1 -5577 5477 -1 -5478 5478 4 -5479 5478 -1 -5578 5478 -1 -5479 5479 4 -5480 5479 -1 -5579 5479 -1 -5480 5480 4 -5481 5480 -1 -5580 5480 -1 -5481 5481 4 -5482 5481 -1 -5581 5481 -1 -5482 5482 4 -5483 5482 -1 -5582 5482 -1 -5483 5483 4 -5484 5483 -1 -5583 5483 -1 -5484 5484 4 -5485 5484 -1 -5584 5484 -1 -5485 5485 4 -5486 5485 -1 -5585 5485 -1 -5486 5486 4 -5487 5486 -1 -5586 5486 -1 -5487 5487 4 -5488 5487 -1 -5587 5487 -1 -5488 5488 4 -5489 5488 -1 -5588 5488 -1 -5489 5489 4 -5490 5489 -1 -5589 5489 -1 -5490 5490 4 -5491 5490 -1 -5590 5490 -1 -5491 5491 4 -5492 5491 -1 -5591 5491 -1 -5492 5492 4 -5493 5492 -1 -5592 5492 -1 -5493 5493 4 -5494 5493 -1 -5593 5493 -1 -5494 5494 4 -5495 5494 -1 -5594 5494 -1 -5495 5495 4 -5496 5495 -1 -5595 5495 -1 -5496 5496 4 -5497 5496 -1 -5596 5496 -1 -5497 5497 4 -5498 5497 -1 -5597 5497 -1 -5498 5498 4 -5499 5498 -1 -5598 5498 -1 -5499 5499 4 -5500 5499 -1 -5599 5499 -1 -5500 5500 4 -5600 5500 -1 -5501 5501 4 -5502 5501 -1 -5601 5501 -1 -5502 5502 4 -5503 5502 -1 -5602 5502 -1 -5503 5503 4 -5504 5503 -1 -5603 5503 -1 -5504 5504 4 -5505 5504 -1 -5604 5504 -1 -5505 5505 4 -5506 5505 -1 -5605 5505 -1 -5506 5506 4 -5507 5506 -1 -5606 5506 -1 -5507 5507 4 -5508 5507 -1 -5607 5507 -1 -5508 5508 4 -5509 5508 -1 -5608 5508 -1 -5509 5509 4 -5510 5509 -1 -5609 5509 -1 -5510 5510 4 -5511 5510 -1 -5610 5510 -1 -5511 5511 4 -5512 5511 -1 -5611 5511 -1 -5512 5512 4 -5513 5512 -1 -5612 5512 -1 -5513 5513 4 -5514 5513 -1 -5613 5513 -1 -5514 5514 4 -5515 5514 -1 -5614 5514 -1 -5515 5515 4 -5516 5515 -1 -5615 5515 -1 -5516 5516 4 -5517 5516 -1 -5616 5516 -1 -5517 5517 4 -5518 5517 -1 -5617 5517 -1 -5518 5518 4 -5519 5518 -1 -5618 5518 -1 -5519 5519 4 -5520 5519 -1 -5619 5519 -1 -5520 5520 4 -5521 5520 -1 -5620 5520 -1 -5521 5521 4 -5522 5521 -1 -5621 5521 -1 -5522 5522 4 -5523 5522 -1 -5622 5522 -1 -5523 5523 4 -5524 5523 -1 -5623 5523 -1 -5524 5524 4 -5525 5524 -1 -5624 5524 -1 -5525 5525 4 -5526 5525 -1 -5625 5525 -1 -5526 5526 4 -5527 5526 -1 -5626 5526 -1 -5527 5527 4 -5528 5527 -1 -5627 5527 -1 -5528 5528 4 -5529 5528 -1 -5628 5528 -1 -5529 5529 4 -5530 5529 -1 -5629 5529 -1 -5530 5530 4 -5531 5530 -1 -5630 5530 -1 -5531 5531 4 -5532 5531 -1 -5631 5531 -1 -5532 5532 4 -5533 5532 -1 -5632 5532 -1 -5533 5533 4 -5534 5533 -1 -5633 5533 -1 -5534 5534 4 -5535 5534 -1 -5634 5534 -1 -5535 5535 4 -5536 5535 -1 -5635 5535 -1 -5536 5536 4 -5537 5536 -1 -5636 5536 -1 -5537 5537 4 -5538 5537 -1 -5637 5537 -1 -5538 5538 4 -5539 5538 -1 -5638 5538 -1 -5539 5539 4 -5540 5539 -1 -5639 5539 -1 -5540 5540 4 -5541 5540 -1 -5640 5540 -1 -5541 5541 4 -5542 5541 -1 -5641 5541 -1 -5542 5542 4 -5543 5542 -1 -5642 5542 -1 -5543 5543 4 -5544 5543 -1 -5643 5543 -1 -5544 5544 4 -5545 5544 -1 -5644 5544 -1 -5545 5545 4 -5546 5545 -1 -5645 5545 -1 -5546 5546 4 -5547 5546 -1 -5646 5546 -1 -5547 5547 4 -5548 5547 -1 -5647 5547 -1 -5548 5548 4 -5549 5548 -1 -5648 5548 -1 -5549 5549 4 -5550 5549 -1 -5649 5549 -1 -5550 5550 4 -5551 5550 -1 -5650 5550 -1 -5551 5551 4 -5552 5551 -1 -5651 5551 -1 -5552 5552 4 -5553 5552 -1 -5652 5552 -1 -5553 5553 4 -5554 5553 -1 -5653 5553 -1 -5554 5554 4 -5555 5554 -1 -5654 5554 -1 -5555 5555 4 -5556 5555 -1 -5655 5555 -1 -5556 5556 4 -5557 5556 -1 -5656 5556 -1 -5557 5557 4 -5558 5557 -1 -5657 5557 -1 -5558 5558 4 -5559 5558 -1 -5658 5558 -1 -5559 5559 4 -5560 5559 -1 -5659 5559 -1 -5560 5560 4 -5561 5560 -1 -5660 5560 -1 -5561 5561 4 -5562 5561 -1 -5661 5561 -1 -5562 5562 4 -5563 5562 -1 -5662 5562 -1 -5563 5563 4 -5564 5563 -1 -5663 5563 -1 -5564 5564 4 -5565 5564 -1 -5664 5564 -1 -5565 5565 4 -5566 5565 -1 -5665 5565 -1 -5566 5566 4 -5567 5566 -1 -5666 5566 -1 -5567 5567 4 -5568 5567 -1 -5667 5567 -1 -5568 5568 4 -5569 5568 -1 -5668 5568 -1 -5569 5569 4 -5570 5569 -1 -5669 5569 -1 -5570 5570 4 -5571 5570 -1 -5670 5570 -1 -5571 5571 4 -5572 5571 -1 -5671 5571 -1 -5572 5572 4 -5573 5572 -1 -5672 5572 -1 -5573 5573 4 -5574 5573 -1 -5673 5573 -1 -5574 5574 4 -5575 5574 -1 -5674 5574 -1 -5575 5575 4 -5576 5575 -1 -5675 5575 -1 -5576 5576 4 -5577 5576 -1 -5676 5576 -1 -5577 5577 4 -5578 5577 -1 -5677 5577 -1 -5578 5578 4 -5579 5578 -1 -5678 5578 -1 -5579 5579 4 -5580 5579 -1 -5679 5579 -1 -5580 5580 4 -5581 5580 -1 -5680 5580 -1 -5581 5581 4 -5582 5581 -1 -5681 5581 -1 -5582 5582 4 -5583 5582 -1 -5682 5582 -1 -5583 5583 4 -5584 5583 -1 -5683 5583 -1 -5584 5584 4 -5585 5584 -1 -5684 5584 -1 -5585 5585 4 -5586 5585 -1 -5685 5585 -1 -5586 5586 4 -5587 5586 -1 -5686 5586 -1 -5587 5587 4 -5588 5587 -1 -5687 5587 -1 -5588 5588 4 -5589 5588 -1 -5688 5588 -1 -5589 5589 4 -5590 5589 -1 -5689 5589 -1 -5590 5590 4 -5591 5590 -1 -5690 5590 -1 -5591 5591 4 -5592 5591 -1 -5691 5591 -1 -5592 5592 4 -5593 5592 -1 -5692 5592 -1 -5593 5593 4 -5594 5593 -1 -5693 5593 -1 -5594 5594 4 -5595 5594 -1 -5694 5594 -1 -5595 5595 4 -5596 5595 -1 -5695 5595 -1 -5596 5596 4 -5597 5596 -1 -5696 5596 -1 -5597 5597 4 -5598 5597 -1 -5697 5597 -1 -5598 5598 4 -5599 5598 -1 -5698 5598 -1 -5599 5599 4 -5600 5599 -1 -5699 5599 -1 -5600 5600 4 -5700 5600 -1 -5601 5601 4 -5602 5601 -1 -5701 5601 -1 -5602 5602 4 -5603 5602 -1 -5702 5602 -1 -5603 5603 4 -5604 5603 -1 -5703 5603 -1 -5604 5604 4 -5605 5604 -1 -5704 5604 -1 -5605 5605 4 -5606 5605 -1 -5705 5605 -1 -5606 5606 4 -5607 5606 -1 -5706 5606 -1 -5607 5607 4 -5608 5607 -1 -5707 5607 -1 -5608 5608 4 -5609 5608 -1 -5708 5608 -1 -5609 5609 4 -5610 5609 -1 -5709 5609 -1 -5610 5610 4 -5611 5610 -1 -5710 5610 -1 -5611 5611 4 -5612 5611 -1 -5711 5611 -1 -5612 5612 4 -5613 5612 -1 -5712 5612 -1 -5613 5613 4 -5614 5613 -1 -5713 5613 -1 -5614 5614 4 -5615 5614 -1 -5714 5614 -1 -5615 5615 4 -5616 5615 -1 -5715 5615 -1 -5616 5616 4 -5617 5616 -1 -5716 5616 -1 -5617 5617 4 -5618 5617 -1 -5717 5617 -1 -5618 5618 4 -5619 5618 -1 -5718 5618 -1 -5619 5619 4 -5620 5619 -1 -5719 5619 -1 -5620 5620 4 -5621 5620 -1 -5720 5620 -1 -5621 5621 4 -5622 5621 -1 -5721 5621 -1 -5622 5622 4 -5623 5622 -1 -5722 5622 -1 -5623 5623 4 -5624 5623 -1 -5723 5623 -1 -5624 5624 4 -5625 5624 -1 -5724 5624 -1 -5625 5625 4 -5626 5625 -1 -5725 5625 -1 -5626 5626 4 -5627 5626 -1 -5726 5626 -1 -5627 5627 4 -5628 5627 -1 -5727 5627 -1 -5628 5628 4 -5629 5628 -1 -5728 5628 -1 -5629 5629 4 -5630 5629 -1 -5729 5629 -1 -5630 5630 4 -5631 5630 -1 -5730 5630 -1 -5631 5631 4 -5632 5631 -1 -5731 5631 -1 -5632 5632 4 -5633 5632 -1 -5732 5632 -1 -5633 5633 4 -5634 5633 -1 -5733 5633 -1 -5634 5634 4 -5635 5634 -1 -5734 5634 -1 -5635 5635 4 -5636 5635 -1 -5735 5635 -1 -5636 5636 4 -5637 5636 -1 -5736 5636 -1 -5637 5637 4 -5638 5637 -1 -5737 5637 -1 -5638 5638 4 -5639 5638 -1 -5738 5638 -1 -5639 5639 4 -5640 5639 -1 -5739 5639 -1 -5640 5640 4 -5641 5640 -1 -5740 5640 -1 -5641 5641 4 -5642 5641 -1 -5741 5641 -1 -5642 5642 4 -5643 5642 -1 -5742 5642 -1 -5643 5643 4 -5644 5643 -1 -5743 5643 -1 -5644 5644 4 -5645 5644 -1 -5744 5644 -1 -5645 5645 4 -5646 5645 -1 -5745 5645 -1 -5646 5646 4 -5647 5646 -1 -5746 5646 -1 -5647 5647 4 -5648 5647 -1 -5747 5647 -1 -5648 5648 4 -5649 5648 -1 -5748 5648 -1 -5649 5649 4 -5650 5649 -1 -5749 5649 -1 -5650 5650 4 -5651 5650 -1 -5750 5650 -1 -5651 5651 4 -5652 5651 -1 -5751 5651 -1 -5652 5652 4 -5653 5652 -1 -5752 5652 -1 -5653 5653 4 -5654 5653 -1 -5753 5653 -1 -5654 5654 4 -5655 5654 -1 -5754 5654 -1 -5655 5655 4 -5656 5655 -1 -5755 5655 -1 -5656 5656 4 -5657 5656 -1 -5756 5656 -1 -5657 5657 4 -5658 5657 -1 -5757 5657 -1 -5658 5658 4 -5659 5658 -1 -5758 5658 -1 -5659 5659 4 -5660 5659 -1 -5759 5659 -1 -5660 5660 4 -5661 5660 -1 -5760 5660 -1 -5661 5661 4 -5662 5661 -1 -5761 5661 -1 -5662 5662 4 -5663 5662 -1 -5762 5662 -1 -5663 5663 4 -5664 5663 -1 -5763 5663 -1 -5664 5664 4 -5665 5664 -1 -5764 5664 -1 -5665 5665 4 -5666 5665 -1 -5765 5665 -1 -5666 5666 4 -5667 5666 -1 -5766 5666 -1 -5667 5667 4 -5668 5667 -1 -5767 5667 -1 -5668 5668 4 -5669 5668 -1 -5768 5668 -1 -5669 5669 4 -5670 5669 -1 -5769 5669 -1 -5670 5670 4 -5671 5670 -1 -5770 5670 -1 -5671 5671 4 -5672 5671 -1 -5771 5671 -1 -5672 5672 4 -5673 5672 -1 -5772 5672 -1 -5673 5673 4 -5674 5673 -1 -5773 5673 -1 -5674 5674 4 -5675 5674 -1 -5774 5674 -1 -5675 5675 4 -5676 5675 -1 -5775 5675 -1 -5676 5676 4 -5677 5676 -1 -5776 5676 -1 -5677 5677 4 -5678 5677 -1 -5777 5677 -1 -5678 5678 4 -5679 5678 -1 -5778 5678 -1 -5679 5679 4 -5680 5679 -1 -5779 5679 -1 -5680 5680 4 -5681 5680 -1 -5780 5680 -1 -5681 5681 4 -5682 5681 -1 -5781 5681 -1 -5682 5682 4 -5683 5682 -1 -5782 5682 -1 -5683 5683 4 -5684 5683 -1 -5783 5683 -1 -5684 5684 4 -5685 5684 -1 -5784 5684 -1 -5685 5685 4 -5686 5685 -1 -5785 5685 -1 -5686 5686 4 -5687 5686 -1 -5786 5686 -1 -5687 5687 4 -5688 5687 -1 -5787 5687 -1 -5688 5688 4 -5689 5688 -1 -5788 5688 -1 -5689 5689 4 -5690 5689 -1 -5789 5689 -1 -5690 5690 4 -5691 5690 -1 -5790 5690 -1 -5691 5691 4 -5692 5691 -1 -5791 5691 -1 -5692 5692 4 -5693 5692 -1 -5792 5692 -1 -5693 5693 4 -5694 5693 -1 -5793 5693 -1 -5694 5694 4 -5695 5694 -1 -5794 5694 -1 -5695 5695 4 -5696 5695 -1 -5795 5695 -1 -5696 5696 4 -5697 5696 -1 -5796 5696 -1 -5697 5697 4 -5698 5697 -1 -5797 5697 -1 -5698 5698 4 -5699 5698 -1 -5798 5698 -1 -5699 5699 4 -5700 5699 -1 -5799 5699 -1 -5700 5700 4 -5800 5700 -1 -5701 5701 4 -5702 5701 -1 -5801 5701 -1 -5702 5702 4 -5703 5702 -1 -5802 5702 -1 -5703 5703 4 -5704 5703 -1 -5803 5703 -1 -5704 5704 4 -5705 5704 -1 -5804 5704 -1 -5705 5705 4 -5706 5705 -1 -5805 5705 -1 -5706 5706 4 -5707 5706 -1 -5806 5706 -1 -5707 5707 4 -5708 5707 -1 -5807 5707 -1 -5708 5708 4 -5709 5708 -1 -5808 5708 -1 -5709 5709 4 -5710 5709 -1 -5809 5709 -1 -5710 5710 4 -5711 5710 -1 -5810 5710 -1 -5711 5711 4 -5712 5711 -1 -5811 5711 -1 -5712 5712 4 -5713 5712 -1 -5812 5712 -1 -5713 5713 4 -5714 5713 -1 -5813 5713 -1 -5714 5714 4 -5715 5714 -1 -5814 5714 -1 -5715 5715 4 -5716 5715 -1 -5815 5715 -1 -5716 5716 4 -5717 5716 -1 -5816 5716 -1 -5717 5717 4 -5718 5717 -1 -5817 5717 -1 -5718 5718 4 -5719 5718 -1 -5818 5718 -1 -5719 5719 4 -5720 5719 -1 -5819 5719 -1 -5720 5720 4 -5721 5720 -1 -5820 5720 -1 -5721 5721 4 -5722 5721 -1 -5821 5721 -1 -5722 5722 4 -5723 5722 -1 -5822 5722 -1 -5723 5723 4 -5724 5723 -1 -5823 5723 -1 -5724 5724 4 -5725 5724 -1 -5824 5724 -1 -5725 5725 4 -5726 5725 -1 -5825 5725 -1 -5726 5726 4 -5727 5726 -1 -5826 5726 -1 -5727 5727 4 -5728 5727 -1 -5827 5727 -1 -5728 5728 4 -5729 5728 -1 -5828 5728 -1 -5729 5729 4 -5730 5729 -1 -5829 5729 -1 -5730 5730 4 -5731 5730 -1 -5830 5730 -1 -5731 5731 4 -5732 5731 -1 -5831 5731 -1 -5732 5732 4 -5733 5732 -1 -5832 5732 -1 -5733 5733 4 -5734 5733 -1 -5833 5733 -1 -5734 5734 4 -5735 5734 -1 -5834 5734 -1 -5735 5735 4 -5736 5735 -1 -5835 5735 -1 -5736 5736 4 -5737 5736 -1 -5836 5736 -1 -5737 5737 4 -5738 5737 -1 -5837 5737 -1 -5738 5738 4 -5739 5738 -1 -5838 5738 -1 -5739 5739 4 -5740 5739 -1 -5839 5739 -1 -5740 5740 4 -5741 5740 -1 -5840 5740 -1 -5741 5741 4 -5742 5741 -1 -5841 5741 -1 -5742 5742 4 -5743 5742 -1 -5842 5742 -1 -5743 5743 4 -5744 5743 -1 -5843 5743 -1 -5744 5744 4 -5745 5744 -1 -5844 5744 -1 -5745 5745 4 -5746 5745 -1 -5845 5745 -1 -5746 5746 4 -5747 5746 -1 -5846 5746 -1 -5747 5747 4 -5748 5747 -1 -5847 5747 -1 -5748 5748 4 -5749 5748 -1 -5848 5748 -1 -5749 5749 4 -5750 5749 -1 -5849 5749 -1 -5750 5750 4 -5751 5750 -1 -5850 5750 -1 -5751 5751 4 -5752 5751 -1 -5851 5751 -1 -5752 5752 4 -5753 5752 -1 -5852 5752 -1 -5753 5753 4 -5754 5753 -1 -5853 5753 -1 -5754 5754 4 -5755 5754 -1 -5854 5754 -1 -5755 5755 4 -5756 5755 -1 -5855 5755 -1 -5756 5756 4 -5757 5756 -1 -5856 5756 -1 -5757 5757 4 -5758 5757 -1 -5857 5757 -1 -5758 5758 4 -5759 5758 -1 -5858 5758 -1 -5759 5759 4 -5760 5759 -1 -5859 5759 -1 -5760 5760 4 -5761 5760 -1 -5860 5760 -1 -5761 5761 4 -5762 5761 -1 -5861 5761 -1 -5762 5762 4 -5763 5762 -1 -5862 5762 -1 -5763 5763 4 -5764 5763 -1 -5863 5763 -1 -5764 5764 4 -5765 5764 -1 -5864 5764 -1 -5765 5765 4 -5766 5765 -1 -5865 5765 -1 -5766 5766 4 -5767 5766 -1 -5866 5766 -1 -5767 5767 4 -5768 5767 -1 -5867 5767 -1 -5768 5768 4 -5769 5768 -1 -5868 5768 -1 -5769 5769 4 -5770 5769 -1 -5869 5769 -1 -5770 5770 4 -5771 5770 -1 -5870 5770 -1 -5771 5771 4 -5772 5771 -1 -5871 5771 -1 -5772 5772 4 -5773 5772 -1 -5872 5772 -1 -5773 5773 4 -5774 5773 -1 -5873 5773 -1 -5774 5774 4 -5775 5774 -1 -5874 5774 -1 -5775 5775 4 -5776 5775 -1 -5875 5775 -1 -5776 5776 4 -5777 5776 -1 -5876 5776 -1 -5777 5777 4 -5778 5777 -1 -5877 5777 -1 -5778 5778 4 -5779 5778 -1 -5878 5778 -1 -5779 5779 4 -5780 5779 -1 -5879 5779 -1 -5780 5780 4 -5781 5780 -1 -5880 5780 -1 -5781 5781 4 -5782 5781 -1 -5881 5781 -1 -5782 5782 4 -5783 5782 -1 -5882 5782 -1 -5783 5783 4 -5784 5783 -1 -5883 5783 -1 -5784 5784 4 -5785 5784 -1 -5884 5784 -1 -5785 5785 4 -5786 5785 -1 -5885 5785 -1 -5786 5786 4 -5787 5786 -1 -5886 5786 -1 -5787 5787 4 -5788 5787 -1 -5887 5787 -1 -5788 5788 4 -5789 5788 -1 -5888 5788 -1 -5789 5789 4 -5790 5789 -1 -5889 5789 -1 -5790 5790 4 -5791 5790 -1 -5890 5790 -1 -5791 5791 4 -5792 5791 -1 -5891 5791 -1 -5792 5792 4 -5793 5792 -1 -5892 5792 -1 -5793 5793 4 -5794 5793 -1 -5893 5793 -1 -5794 5794 4 -5795 5794 -1 -5894 5794 -1 -5795 5795 4 -5796 5795 -1 -5895 5795 -1 -5796 5796 4 -5797 5796 -1 -5896 5796 -1 -5797 5797 4 -5798 5797 -1 -5897 5797 -1 -5798 5798 4 -5799 5798 -1 -5898 5798 -1 -5799 5799 4 -5800 5799 -1 -5899 5799 -1 -5800 5800 4 -5900 5800 -1 -5801 5801 4 -5802 5801 -1 -5901 5801 -1 -5802 5802 4 -5803 5802 -1 -5902 5802 -1 -5803 5803 4 -5804 5803 -1 -5903 5803 -1 -5804 5804 4 -5805 5804 -1 -5904 5804 -1 -5805 5805 4 -5806 5805 -1 -5905 5805 -1 -5806 5806 4 -5807 5806 -1 -5906 5806 -1 -5807 5807 4 -5808 5807 -1 -5907 5807 -1 -5808 5808 4 -5809 5808 -1 -5908 5808 -1 -5809 5809 4 -5810 5809 -1 -5909 5809 -1 -5810 5810 4 -5811 5810 -1 -5910 5810 -1 -5811 5811 4 -5812 5811 -1 -5911 5811 -1 -5812 5812 4 -5813 5812 -1 -5912 5812 -1 -5813 5813 4 -5814 5813 -1 -5913 5813 -1 -5814 5814 4 -5815 5814 -1 -5914 5814 -1 -5815 5815 4 -5816 5815 -1 -5915 5815 -1 -5816 5816 4 -5817 5816 -1 -5916 5816 -1 -5817 5817 4 -5818 5817 -1 -5917 5817 -1 -5818 5818 4 -5819 5818 -1 -5918 5818 -1 -5819 5819 4 -5820 5819 -1 -5919 5819 -1 -5820 5820 4 -5821 5820 -1 -5920 5820 -1 -5821 5821 4 -5822 5821 -1 -5921 5821 -1 -5822 5822 4 -5823 5822 -1 -5922 5822 -1 -5823 5823 4 -5824 5823 -1 -5923 5823 -1 -5824 5824 4 -5825 5824 -1 -5924 5824 -1 -5825 5825 4 -5826 5825 -1 -5925 5825 -1 -5826 5826 4 -5827 5826 -1 -5926 5826 -1 -5827 5827 4 -5828 5827 -1 -5927 5827 -1 -5828 5828 4 -5829 5828 -1 -5928 5828 -1 -5829 5829 4 -5830 5829 -1 -5929 5829 -1 -5830 5830 4 -5831 5830 -1 -5930 5830 -1 -5831 5831 4 -5832 5831 -1 -5931 5831 -1 -5832 5832 4 -5833 5832 -1 -5932 5832 -1 -5833 5833 4 -5834 5833 -1 -5933 5833 -1 -5834 5834 4 -5835 5834 -1 -5934 5834 -1 -5835 5835 4 -5836 5835 -1 -5935 5835 -1 -5836 5836 4 -5837 5836 -1 -5936 5836 -1 -5837 5837 4 -5838 5837 -1 -5937 5837 -1 -5838 5838 4 -5839 5838 -1 -5938 5838 -1 -5839 5839 4 -5840 5839 -1 -5939 5839 -1 -5840 5840 4 -5841 5840 -1 -5940 5840 -1 -5841 5841 4 -5842 5841 -1 -5941 5841 -1 -5842 5842 4 -5843 5842 -1 -5942 5842 -1 -5843 5843 4 -5844 5843 -1 -5943 5843 -1 -5844 5844 4 -5845 5844 -1 -5944 5844 -1 -5845 5845 4 -5846 5845 -1 -5945 5845 -1 -5846 5846 4 -5847 5846 -1 -5946 5846 -1 -5847 5847 4 -5848 5847 -1 -5947 5847 -1 -5848 5848 4 -5849 5848 -1 -5948 5848 -1 -5849 5849 4 -5850 5849 -1 -5949 5849 -1 -5850 5850 4 -5851 5850 -1 -5950 5850 -1 -5851 5851 4 -5852 5851 -1 -5951 5851 -1 -5852 5852 4 -5853 5852 -1 -5952 5852 -1 -5853 5853 4 -5854 5853 -1 -5953 5853 -1 -5854 5854 4 -5855 5854 -1 -5954 5854 -1 -5855 5855 4 -5856 5855 -1 -5955 5855 -1 -5856 5856 4 -5857 5856 -1 -5956 5856 -1 -5857 5857 4 -5858 5857 -1 -5957 5857 -1 -5858 5858 4 -5859 5858 -1 -5958 5858 -1 -5859 5859 4 -5860 5859 -1 -5959 5859 -1 -5860 5860 4 -5861 5860 -1 -5960 5860 -1 -5861 5861 4 -5862 5861 -1 -5961 5861 -1 -5862 5862 4 -5863 5862 -1 -5962 5862 -1 -5863 5863 4 -5864 5863 -1 -5963 5863 -1 -5864 5864 4 -5865 5864 -1 -5964 5864 -1 -5865 5865 4 -5866 5865 -1 -5965 5865 -1 -5866 5866 4 -5867 5866 -1 -5966 5866 -1 -5867 5867 4 -5868 5867 -1 -5967 5867 -1 -5868 5868 4 -5869 5868 -1 -5968 5868 -1 -5869 5869 4 -5870 5869 -1 -5969 5869 -1 -5870 5870 4 -5871 5870 -1 -5970 5870 -1 -5871 5871 4 -5872 5871 -1 -5971 5871 -1 -5872 5872 4 -5873 5872 -1 -5972 5872 -1 -5873 5873 4 -5874 5873 -1 -5973 5873 -1 -5874 5874 4 -5875 5874 -1 -5974 5874 -1 -5875 5875 4 -5876 5875 -1 -5975 5875 -1 -5876 5876 4 -5877 5876 -1 -5976 5876 -1 -5877 5877 4 -5878 5877 -1 -5977 5877 -1 -5878 5878 4 -5879 5878 -1 -5978 5878 -1 -5879 5879 4 -5880 5879 -1 -5979 5879 -1 -5880 5880 4 -5881 5880 -1 -5980 5880 -1 -5881 5881 4 -5882 5881 -1 -5981 5881 -1 -5882 5882 4 -5883 5882 -1 -5982 5882 -1 -5883 5883 4 -5884 5883 -1 -5983 5883 -1 -5884 5884 4 -5885 5884 -1 -5984 5884 -1 -5885 5885 4 -5886 5885 -1 -5985 5885 -1 -5886 5886 4 -5887 5886 -1 -5986 5886 -1 -5887 5887 4 -5888 5887 -1 -5987 5887 -1 -5888 5888 4 -5889 5888 -1 -5988 5888 -1 -5889 5889 4 -5890 5889 -1 -5989 5889 -1 -5890 5890 4 -5891 5890 -1 -5990 5890 -1 -5891 5891 4 -5892 5891 -1 -5991 5891 -1 -5892 5892 4 -5893 5892 -1 -5992 5892 -1 -5893 5893 4 -5894 5893 -1 -5993 5893 -1 -5894 5894 4 -5895 5894 -1 -5994 5894 -1 -5895 5895 4 -5896 5895 -1 -5995 5895 -1 -5896 5896 4 -5897 5896 -1 -5996 5896 -1 -5897 5897 4 -5898 5897 -1 -5997 5897 -1 -5898 5898 4 -5899 5898 -1 -5998 5898 -1 -5899 5899 4 -5900 5899 -1 -5999 5899 -1 -5900 5900 4 -6000 5900 -1 -5901 5901 4 -5902 5901 -1 -6001 5901 -1 -5902 5902 4 -5903 5902 -1 -6002 5902 -1 -5903 5903 4 -5904 5903 -1 -6003 5903 -1 -5904 5904 4 -5905 5904 -1 -6004 5904 -1 -5905 5905 4 -5906 5905 -1 -6005 5905 -1 -5906 5906 4 -5907 5906 -1 -6006 5906 -1 -5907 5907 4 -5908 5907 -1 -6007 5907 -1 -5908 5908 4 -5909 5908 -1 -6008 5908 -1 -5909 5909 4 -5910 5909 -1 -6009 5909 -1 -5910 5910 4 -5911 5910 -1 -6010 5910 -1 -5911 5911 4 -5912 5911 -1 -6011 5911 -1 -5912 5912 4 -5913 5912 -1 -6012 5912 -1 -5913 5913 4 -5914 5913 -1 -6013 5913 -1 -5914 5914 4 -5915 5914 -1 -6014 5914 -1 -5915 5915 4 -5916 5915 -1 -6015 5915 -1 -5916 5916 4 -5917 5916 -1 -6016 5916 -1 -5917 5917 4 -5918 5917 -1 -6017 5917 -1 -5918 5918 4 -5919 5918 -1 -6018 5918 -1 -5919 5919 4 -5920 5919 -1 -6019 5919 -1 -5920 5920 4 -5921 5920 -1 -6020 5920 -1 -5921 5921 4 -5922 5921 -1 -6021 5921 -1 -5922 5922 4 -5923 5922 -1 -6022 5922 -1 -5923 5923 4 -5924 5923 -1 -6023 5923 -1 -5924 5924 4 -5925 5924 -1 -6024 5924 -1 -5925 5925 4 -5926 5925 -1 -6025 5925 -1 -5926 5926 4 -5927 5926 -1 -6026 5926 -1 -5927 5927 4 -5928 5927 -1 -6027 5927 -1 -5928 5928 4 -5929 5928 -1 -6028 5928 -1 -5929 5929 4 -5930 5929 -1 -6029 5929 -1 -5930 5930 4 -5931 5930 -1 -6030 5930 -1 -5931 5931 4 -5932 5931 -1 -6031 5931 -1 -5932 5932 4 -5933 5932 -1 -6032 5932 -1 -5933 5933 4 -5934 5933 -1 -6033 5933 -1 -5934 5934 4 -5935 5934 -1 -6034 5934 -1 -5935 5935 4 -5936 5935 -1 -6035 5935 -1 -5936 5936 4 -5937 5936 -1 -6036 5936 -1 -5937 5937 4 -5938 5937 -1 -6037 5937 -1 -5938 5938 4 -5939 5938 -1 -6038 5938 -1 -5939 5939 4 -5940 5939 -1 -6039 5939 -1 -5940 5940 4 -5941 5940 -1 -6040 5940 -1 -5941 5941 4 -5942 5941 -1 -6041 5941 -1 -5942 5942 4 -5943 5942 -1 -6042 5942 -1 -5943 5943 4 -5944 5943 -1 -6043 5943 -1 -5944 5944 4 -5945 5944 -1 -6044 5944 -1 -5945 5945 4 -5946 5945 -1 -6045 5945 -1 -5946 5946 4 -5947 5946 -1 -6046 5946 -1 -5947 5947 4 -5948 5947 -1 -6047 5947 -1 -5948 5948 4 -5949 5948 -1 -6048 5948 -1 -5949 5949 4 -5950 5949 -1 -6049 5949 -1 -5950 5950 4 -5951 5950 -1 -6050 5950 -1 -5951 5951 4 -5952 5951 -1 -6051 5951 -1 -5952 5952 4 -5953 5952 -1 -6052 5952 -1 -5953 5953 4 -5954 5953 -1 -6053 5953 -1 -5954 5954 4 -5955 5954 -1 -6054 5954 -1 -5955 5955 4 -5956 5955 -1 -6055 5955 -1 -5956 5956 4 -5957 5956 -1 -6056 5956 -1 -5957 5957 4 -5958 5957 -1 -6057 5957 -1 -5958 5958 4 -5959 5958 -1 -6058 5958 -1 -5959 5959 4 -5960 5959 -1 -6059 5959 -1 -5960 5960 4 -5961 5960 -1 -6060 5960 -1 -5961 5961 4 -5962 5961 -1 -6061 5961 -1 -5962 5962 4 -5963 5962 -1 -6062 5962 -1 -5963 5963 4 -5964 5963 -1 -6063 5963 -1 -5964 5964 4 -5965 5964 -1 -6064 5964 -1 -5965 5965 4 -5966 5965 -1 -6065 5965 -1 -5966 5966 4 -5967 5966 -1 -6066 5966 -1 -5967 5967 4 -5968 5967 -1 -6067 5967 -1 -5968 5968 4 -5969 5968 -1 -6068 5968 -1 -5969 5969 4 -5970 5969 -1 -6069 5969 -1 -5970 5970 4 -5971 5970 -1 -6070 5970 -1 -5971 5971 4 -5972 5971 -1 -6071 5971 -1 -5972 5972 4 -5973 5972 -1 -6072 5972 -1 -5973 5973 4 -5974 5973 -1 -6073 5973 -1 -5974 5974 4 -5975 5974 -1 -6074 5974 -1 -5975 5975 4 -5976 5975 -1 -6075 5975 -1 -5976 5976 4 -5977 5976 -1 -6076 5976 -1 -5977 5977 4 -5978 5977 -1 -6077 5977 -1 -5978 5978 4 -5979 5978 -1 -6078 5978 -1 -5979 5979 4 -5980 5979 -1 -6079 5979 -1 -5980 5980 4 -5981 5980 -1 -6080 5980 -1 -5981 5981 4 -5982 5981 -1 -6081 5981 -1 -5982 5982 4 -5983 5982 -1 -6082 5982 -1 -5983 5983 4 -5984 5983 -1 -6083 5983 -1 -5984 5984 4 -5985 5984 -1 -6084 5984 -1 -5985 5985 4 -5986 5985 -1 -6085 5985 -1 -5986 5986 4 -5987 5986 -1 -6086 5986 -1 -5987 5987 4 -5988 5987 -1 -6087 5987 -1 -5988 5988 4 -5989 5988 -1 -6088 5988 -1 -5989 5989 4 -5990 5989 -1 -6089 5989 -1 -5990 5990 4 -5991 5990 -1 -6090 5990 -1 -5991 5991 4 -5992 5991 -1 -6091 5991 -1 -5992 5992 4 -5993 5992 -1 -6092 5992 -1 -5993 5993 4 -5994 5993 -1 -6093 5993 -1 -5994 5994 4 -5995 5994 -1 -6094 5994 -1 -5995 5995 4 -5996 5995 -1 -6095 5995 -1 -5996 5996 4 -5997 5996 -1 -6096 5996 -1 -5997 5997 4 -5998 5997 -1 -6097 5997 -1 -5998 5998 4 -5999 5998 -1 -6098 5998 -1 -5999 5999 4 -6000 5999 -1 -6099 5999 -1 -6000 6000 4 -6100 6000 -1 -6001 6001 4 -6002 6001 -1 -6101 6001 -1 -6002 6002 4 -6003 6002 -1 -6102 6002 -1 -6003 6003 4 -6004 6003 -1 -6103 6003 -1 -6004 6004 4 -6005 6004 -1 -6104 6004 -1 -6005 6005 4 -6006 6005 -1 -6105 6005 -1 -6006 6006 4 -6007 6006 -1 -6106 6006 -1 -6007 6007 4 -6008 6007 -1 -6107 6007 -1 -6008 6008 4 -6009 6008 -1 -6108 6008 -1 -6009 6009 4 -6010 6009 -1 -6109 6009 -1 -6010 6010 4 -6011 6010 -1 -6110 6010 -1 -6011 6011 4 -6012 6011 -1 -6111 6011 -1 -6012 6012 4 -6013 6012 -1 -6112 6012 -1 -6013 6013 4 -6014 6013 -1 -6113 6013 -1 -6014 6014 4 -6015 6014 -1 -6114 6014 -1 -6015 6015 4 -6016 6015 -1 -6115 6015 -1 -6016 6016 4 -6017 6016 -1 -6116 6016 -1 -6017 6017 4 -6018 6017 -1 -6117 6017 -1 -6018 6018 4 -6019 6018 -1 -6118 6018 -1 -6019 6019 4 -6020 6019 -1 -6119 6019 -1 -6020 6020 4 -6021 6020 -1 -6120 6020 -1 -6021 6021 4 -6022 6021 -1 -6121 6021 -1 -6022 6022 4 -6023 6022 -1 -6122 6022 -1 -6023 6023 4 -6024 6023 -1 -6123 6023 -1 -6024 6024 4 -6025 6024 -1 -6124 6024 -1 -6025 6025 4 -6026 6025 -1 -6125 6025 -1 -6026 6026 4 -6027 6026 -1 -6126 6026 -1 -6027 6027 4 -6028 6027 -1 -6127 6027 -1 -6028 6028 4 -6029 6028 -1 -6128 6028 -1 -6029 6029 4 -6030 6029 -1 -6129 6029 -1 -6030 6030 4 -6031 6030 -1 -6130 6030 -1 -6031 6031 4 -6032 6031 -1 -6131 6031 -1 -6032 6032 4 -6033 6032 -1 -6132 6032 -1 -6033 6033 4 -6034 6033 -1 -6133 6033 -1 -6034 6034 4 -6035 6034 -1 -6134 6034 -1 -6035 6035 4 -6036 6035 -1 -6135 6035 -1 -6036 6036 4 -6037 6036 -1 -6136 6036 -1 -6037 6037 4 -6038 6037 -1 -6137 6037 -1 -6038 6038 4 -6039 6038 -1 -6138 6038 -1 -6039 6039 4 -6040 6039 -1 -6139 6039 -1 -6040 6040 4 -6041 6040 -1 -6140 6040 -1 -6041 6041 4 -6042 6041 -1 -6141 6041 -1 -6042 6042 4 -6043 6042 -1 -6142 6042 -1 -6043 6043 4 -6044 6043 -1 -6143 6043 -1 -6044 6044 4 -6045 6044 -1 -6144 6044 -1 -6045 6045 4 -6046 6045 -1 -6145 6045 -1 -6046 6046 4 -6047 6046 -1 -6146 6046 -1 -6047 6047 4 -6048 6047 -1 -6147 6047 -1 -6048 6048 4 -6049 6048 -1 -6148 6048 -1 -6049 6049 4 -6050 6049 -1 -6149 6049 -1 -6050 6050 4 -6051 6050 -1 -6150 6050 -1 -6051 6051 4 -6052 6051 -1 -6151 6051 -1 -6052 6052 4 -6053 6052 -1 -6152 6052 -1 -6053 6053 4 -6054 6053 -1 -6153 6053 -1 -6054 6054 4 -6055 6054 -1 -6154 6054 -1 -6055 6055 4 -6056 6055 -1 -6155 6055 -1 -6056 6056 4 -6057 6056 -1 -6156 6056 -1 -6057 6057 4 -6058 6057 -1 -6157 6057 -1 -6058 6058 4 -6059 6058 -1 -6158 6058 -1 -6059 6059 4 -6060 6059 -1 -6159 6059 -1 -6060 6060 4 -6061 6060 -1 -6160 6060 -1 -6061 6061 4 -6062 6061 -1 -6161 6061 -1 -6062 6062 4 -6063 6062 -1 -6162 6062 -1 -6063 6063 4 -6064 6063 -1 -6163 6063 -1 -6064 6064 4 -6065 6064 -1 -6164 6064 -1 -6065 6065 4 -6066 6065 -1 -6165 6065 -1 -6066 6066 4 -6067 6066 -1 -6166 6066 -1 -6067 6067 4 -6068 6067 -1 -6167 6067 -1 -6068 6068 4 -6069 6068 -1 -6168 6068 -1 -6069 6069 4 -6070 6069 -1 -6169 6069 -1 -6070 6070 4 -6071 6070 -1 -6170 6070 -1 -6071 6071 4 -6072 6071 -1 -6171 6071 -1 -6072 6072 4 -6073 6072 -1 -6172 6072 -1 -6073 6073 4 -6074 6073 -1 -6173 6073 -1 -6074 6074 4 -6075 6074 -1 -6174 6074 -1 -6075 6075 4 -6076 6075 -1 -6175 6075 -1 -6076 6076 4 -6077 6076 -1 -6176 6076 -1 -6077 6077 4 -6078 6077 -1 -6177 6077 -1 -6078 6078 4 -6079 6078 -1 -6178 6078 -1 -6079 6079 4 -6080 6079 -1 -6179 6079 -1 -6080 6080 4 -6081 6080 -1 -6180 6080 -1 -6081 6081 4 -6082 6081 -1 -6181 6081 -1 -6082 6082 4 -6083 6082 -1 -6182 6082 -1 -6083 6083 4 -6084 6083 -1 -6183 6083 -1 -6084 6084 4 -6085 6084 -1 -6184 6084 -1 -6085 6085 4 -6086 6085 -1 -6185 6085 -1 -6086 6086 4 -6087 6086 -1 -6186 6086 -1 -6087 6087 4 -6088 6087 -1 -6187 6087 -1 -6088 6088 4 -6089 6088 -1 -6188 6088 -1 -6089 6089 4 -6090 6089 -1 -6189 6089 -1 -6090 6090 4 -6091 6090 -1 -6190 6090 -1 -6091 6091 4 -6092 6091 -1 -6191 6091 -1 -6092 6092 4 -6093 6092 -1 -6192 6092 -1 -6093 6093 4 -6094 6093 -1 -6193 6093 -1 -6094 6094 4 -6095 6094 -1 -6194 6094 -1 -6095 6095 4 -6096 6095 -1 -6195 6095 -1 -6096 6096 4 -6097 6096 -1 -6196 6096 -1 -6097 6097 4 -6098 6097 -1 -6197 6097 -1 -6098 6098 4 -6099 6098 -1 -6198 6098 -1 -6099 6099 4 -6100 6099 -1 -6199 6099 -1 -6100 6100 4 -6200 6100 -1 -6101 6101 4 -6102 6101 -1 -6201 6101 -1 -6102 6102 4 -6103 6102 -1 -6202 6102 -1 -6103 6103 4 -6104 6103 -1 -6203 6103 -1 -6104 6104 4 -6105 6104 -1 -6204 6104 -1 -6105 6105 4 -6106 6105 -1 -6205 6105 -1 -6106 6106 4 -6107 6106 -1 -6206 6106 -1 -6107 6107 4 -6108 6107 -1 -6207 6107 -1 -6108 6108 4 -6109 6108 -1 -6208 6108 -1 -6109 6109 4 -6110 6109 -1 -6209 6109 -1 -6110 6110 4 -6111 6110 -1 -6210 6110 -1 -6111 6111 4 -6112 6111 -1 -6211 6111 -1 -6112 6112 4 -6113 6112 -1 -6212 6112 -1 -6113 6113 4 -6114 6113 -1 -6213 6113 -1 -6114 6114 4 -6115 6114 -1 -6214 6114 -1 -6115 6115 4 -6116 6115 -1 -6215 6115 -1 -6116 6116 4 -6117 6116 -1 -6216 6116 -1 -6117 6117 4 -6118 6117 -1 -6217 6117 -1 -6118 6118 4 -6119 6118 -1 -6218 6118 -1 -6119 6119 4 -6120 6119 -1 -6219 6119 -1 -6120 6120 4 -6121 6120 -1 -6220 6120 -1 -6121 6121 4 -6122 6121 -1 -6221 6121 -1 -6122 6122 4 -6123 6122 -1 -6222 6122 -1 -6123 6123 4 -6124 6123 -1 -6223 6123 -1 -6124 6124 4 -6125 6124 -1 -6224 6124 -1 -6125 6125 4 -6126 6125 -1 -6225 6125 -1 -6126 6126 4 -6127 6126 -1 -6226 6126 -1 -6127 6127 4 -6128 6127 -1 -6227 6127 -1 -6128 6128 4 -6129 6128 -1 -6228 6128 -1 -6129 6129 4 -6130 6129 -1 -6229 6129 -1 -6130 6130 4 -6131 6130 -1 -6230 6130 -1 -6131 6131 4 -6132 6131 -1 -6231 6131 -1 -6132 6132 4 -6133 6132 -1 -6232 6132 -1 -6133 6133 4 -6134 6133 -1 -6233 6133 -1 -6134 6134 4 -6135 6134 -1 -6234 6134 -1 -6135 6135 4 -6136 6135 -1 -6235 6135 -1 -6136 6136 4 -6137 6136 -1 -6236 6136 -1 -6137 6137 4 -6138 6137 -1 -6237 6137 -1 -6138 6138 4 -6139 6138 -1 -6238 6138 -1 -6139 6139 4 -6140 6139 -1 -6239 6139 -1 -6140 6140 4 -6141 6140 -1 -6240 6140 -1 -6141 6141 4 -6142 6141 -1 -6241 6141 -1 -6142 6142 4 -6143 6142 -1 -6242 6142 -1 -6143 6143 4 -6144 6143 -1 -6243 6143 -1 -6144 6144 4 -6145 6144 -1 -6244 6144 -1 -6145 6145 4 -6146 6145 -1 -6245 6145 -1 -6146 6146 4 -6147 6146 -1 -6246 6146 -1 -6147 6147 4 -6148 6147 -1 -6247 6147 -1 -6148 6148 4 -6149 6148 -1 -6248 6148 -1 -6149 6149 4 -6150 6149 -1 -6249 6149 -1 -6150 6150 4 -6151 6150 -1 -6250 6150 -1 -6151 6151 4 -6152 6151 -1 -6251 6151 -1 -6152 6152 4 -6153 6152 -1 -6252 6152 -1 -6153 6153 4 -6154 6153 -1 -6253 6153 -1 -6154 6154 4 -6155 6154 -1 -6254 6154 -1 -6155 6155 4 -6156 6155 -1 -6255 6155 -1 -6156 6156 4 -6157 6156 -1 -6256 6156 -1 -6157 6157 4 -6158 6157 -1 -6257 6157 -1 -6158 6158 4 -6159 6158 -1 -6258 6158 -1 -6159 6159 4 -6160 6159 -1 -6259 6159 -1 -6160 6160 4 -6161 6160 -1 -6260 6160 -1 -6161 6161 4 -6162 6161 -1 -6261 6161 -1 -6162 6162 4 -6163 6162 -1 -6262 6162 -1 -6163 6163 4 -6164 6163 -1 -6263 6163 -1 -6164 6164 4 -6165 6164 -1 -6264 6164 -1 -6165 6165 4 -6166 6165 -1 -6265 6165 -1 -6166 6166 4 -6167 6166 -1 -6266 6166 -1 -6167 6167 4 -6168 6167 -1 -6267 6167 -1 -6168 6168 4 -6169 6168 -1 -6268 6168 -1 -6169 6169 4 -6170 6169 -1 -6269 6169 -1 -6170 6170 4 -6171 6170 -1 -6270 6170 -1 -6171 6171 4 -6172 6171 -1 -6271 6171 -1 -6172 6172 4 -6173 6172 -1 -6272 6172 -1 -6173 6173 4 -6174 6173 -1 -6273 6173 -1 -6174 6174 4 -6175 6174 -1 -6274 6174 -1 -6175 6175 4 -6176 6175 -1 -6275 6175 -1 -6176 6176 4 -6177 6176 -1 -6276 6176 -1 -6177 6177 4 -6178 6177 -1 -6277 6177 -1 -6178 6178 4 -6179 6178 -1 -6278 6178 -1 -6179 6179 4 -6180 6179 -1 -6279 6179 -1 -6180 6180 4 -6181 6180 -1 -6280 6180 -1 -6181 6181 4 -6182 6181 -1 -6281 6181 -1 -6182 6182 4 -6183 6182 -1 -6282 6182 -1 -6183 6183 4 -6184 6183 -1 -6283 6183 -1 -6184 6184 4 -6185 6184 -1 -6284 6184 -1 -6185 6185 4 -6186 6185 -1 -6285 6185 -1 -6186 6186 4 -6187 6186 -1 -6286 6186 -1 -6187 6187 4 -6188 6187 -1 -6287 6187 -1 -6188 6188 4 -6189 6188 -1 -6288 6188 -1 -6189 6189 4 -6190 6189 -1 -6289 6189 -1 -6190 6190 4 -6191 6190 -1 -6290 6190 -1 -6191 6191 4 -6192 6191 -1 -6291 6191 -1 -6192 6192 4 -6193 6192 -1 -6292 6192 -1 -6193 6193 4 -6194 6193 -1 -6293 6193 -1 -6194 6194 4 -6195 6194 -1 -6294 6194 -1 -6195 6195 4 -6196 6195 -1 -6295 6195 -1 -6196 6196 4 -6197 6196 -1 -6296 6196 -1 -6197 6197 4 -6198 6197 -1 -6297 6197 -1 -6198 6198 4 -6199 6198 -1 -6298 6198 -1 -6199 6199 4 -6200 6199 -1 -6299 6199 -1 -6200 6200 4 -6300 6200 -1 -6201 6201 4 -6202 6201 -1 -6301 6201 -1 -6202 6202 4 -6203 6202 -1 -6302 6202 -1 -6203 6203 4 -6204 6203 -1 -6303 6203 -1 -6204 6204 4 -6205 6204 -1 -6304 6204 -1 -6205 6205 4 -6206 6205 -1 -6305 6205 -1 -6206 6206 4 -6207 6206 -1 -6306 6206 -1 -6207 6207 4 -6208 6207 -1 -6307 6207 -1 -6208 6208 4 -6209 6208 -1 -6308 6208 -1 -6209 6209 4 -6210 6209 -1 -6309 6209 -1 -6210 6210 4 -6211 6210 -1 -6310 6210 -1 -6211 6211 4 -6212 6211 -1 -6311 6211 -1 -6212 6212 4 -6213 6212 -1 -6312 6212 -1 -6213 6213 4 -6214 6213 -1 -6313 6213 -1 -6214 6214 4 -6215 6214 -1 -6314 6214 -1 -6215 6215 4 -6216 6215 -1 -6315 6215 -1 -6216 6216 4 -6217 6216 -1 -6316 6216 -1 -6217 6217 4 -6218 6217 -1 -6317 6217 -1 -6218 6218 4 -6219 6218 -1 -6318 6218 -1 -6219 6219 4 -6220 6219 -1 -6319 6219 -1 -6220 6220 4 -6221 6220 -1 -6320 6220 -1 -6221 6221 4 -6222 6221 -1 -6321 6221 -1 -6222 6222 4 -6223 6222 -1 -6322 6222 -1 -6223 6223 4 -6224 6223 -1 -6323 6223 -1 -6224 6224 4 -6225 6224 -1 -6324 6224 -1 -6225 6225 4 -6226 6225 -1 -6325 6225 -1 -6226 6226 4 -6227 6226 -1 -6326 6226 -1 -6227 6227 4 -6228 6227 -1 -6327 6227 -1 -6228 6228 4 -6229 6228 -1 -6328 6228 -1 -6229 6229 4 -6230 6229 -1 -6329 6229 -1 -6230 6230 4 -6231 6230 -1 -6330 6230 -1 -6231 6231 4 -6232 6231 -1 -6331 6231 -1 -6232 6232 4 -6233 6232 -1 -6332 6232 -1 -6233 6233 4 -6234 6233 -1 -6333 6233 -1 -6234 6234 4 -6235 6234 -1 -6334 6234 -1 -6235 6235 4 -6236 6235 -1 -6335 6235 -1 -6236 6236 4 -6237 6236 -1 -6336 6236 -1 -6237 6237 4 -6238 6237 -1 -6337 6237 -1 -6238 6238 4 -6239 6238 -1 -6338 6238 -1 -6239 6239 4 -6240 6239 -1 -6339 6239 -1 -6240 6240 4 -6241 6240 -1 -6340 6240 -1 -6241 6241 4 -6242 6241 -1 -6341 6241 -1 -6242 6242 4 -6243 6242 -1 -6342 6242 -1 -6243 6243 4 -6244 6243 -1 -6343 6243 -1 -6244 6244 4 -6245 6244 -1 -6344 6244 -1 -6245 6245 4 -6246 6245 -1 -6345 6245 -1 -6246 6246 4 -6247 6246 -1 -6346 6246 -1 -6247 6247 4 -6248 6247 -1 -6347 6247 -1 -6248 6248 4 -6249 6248 -1 -6348 6248 -1 -6249 6249 4 -6250 6249 -1 -6349 6249 -1 -6250 6250 4 -6251 6250 -1 -6350 6250 -1 -6251 6251 4 -6252 6251 -1 -6351 6251 -1 -6252 6252 4 -6253 6252 -1 -6352 6252 -1 -6253 6253 4 -6254 6253 -1 -6353 6253 -1 -6254 6254 4 -6255 6254 -1 -6354 6254 -1 -6255 6255 4 -6256 6255 -1 -6355 6255 -1 -6256 6256 4 -6257 6256 -1 -6356 6256 -1 -6257 6257 4 -6258 6257 -1 -6357 6257 -1 -6258 6258 4 -6259 6258 -1 -6358 6258 -1 -6259 6259 4 -6260 6259 -1 -6359 6259 -1 -6260 6260 4 -6261 6260 -1 -6360 6260 -1 -6261 6261 4 -6262 6261 -1 -6361 6261 -1 -6262 6262 4 -6263 6262 -1 -6362 6262 -1 -6263 6263 4 -6264 6263 -1 -6363 6263 -1 -6264 6264 4 -6265 6264 -1 -6364 6264 -1 -6265 6265 4 -6266 6265 -1 -6365 6265 -1 -6266 6266 4 -6267 6266 -1 -6366 6266 -1 -6267 6267 4 -6268 6267 -1 -6367 6267 -1 -6268 6268 4 -6269 6268 -1 -6368 6268 -1 -6269 6269 4 -6270 6269 -1 -6369 6269 -1 -6270 6270 4 -6271 6270 -1 -6370 6270 -1 -6271 6271 4 -6272 6271 -1 -6371 6271 -1 -6272 6272 4 -6273 6272 -1 -6372 6272 -1 -6273 6273 4 -6274 6273 -1 -6373 6273 -1 -6274 6274 4 -6275 6274 -1 -6374 6274 -1 -6275 6275 4 -6276 6275 -1 -6375 6275 -1 -6276 6276 4 -6277 6276 -1 -6376 6276 -1 -6277 6277 4 -6278 6277 -1 -6377 6277 -1 -6278 6278 4 -6279 6278 -1 -6378 6278 -1 -6279 6279 4 -6280 6279 -1 -6379 6279 -1 -6280 6280 4 -6281 6280 -1 -6380 6280 -1 -6281 6281 4 -6282 6281 -1 -6381 6281 -1 -6282 6282 4 -6283 6282 -1 -6382 6282 -1 -6283 6283 4 -6284 6283 -1 -6383 6283 -1 -6284 6284 4 -6285 6284 -1 -6384 6284 -1 -6285 6285 4 -6286 6285 -1 -6385 6285 -1 -6286 6286 4 -6287 6286 -1 -6386 6286 -1 -6287 6287 4 -6288 6287 -1 -6387 6287 -1 -6288 6288 4 -6289 6288 -1 -6388 6288 -1 -6289 6289 4 -6290 6289 -1 -6389 6289 -1 -6290 6290 4 -6291 6290 -1 -6390 6290 -1 -6291 6291 4 -6292 6291 -1 -6391 6291 -1 -6292 6292 4 -6293 6292 -1 -6392 6292 -1 -6293 6293 4 -6294 6293 -1 -6393 6293 -1 -6294 6294 4 -6295 6294 -1 -6394 6294 -1 -6295 6295 4 -6296 6295 -1 -6395 6295 -1 -6296 6296 4 -6297 6296 -1 -6396 6296 -1 -6297 6297 4 -6298 6297 -1 -6397 6297 -1 -6298 6298 4 -6299 6298 -1 -6398 6298 -1 -6299 6299 4 -6300 6299 -1 -6399 6299 -1 -6300 6300 4 -6400 6300 -1 -6301 6301 4 -6302 6301 -1 -6401 6301 -1 -6302 6302 4 -6303 6302 -1 -6402 6302 -1 -6303 6303 4 -6304 6303 -1 -6403 6303 -1 -6304 6304 4 -6305 6304 -1 -6404 6304 -1 -6305 6305 4 -6306 6305 -1 -6405 6305 -1 -6306 6306 4 -6307 6306 -1 -6406 6306 -1 -6307 6307 4 -6308 6307 -1 -6407 6307 -1 -6308 6308 4 -6309 6308 -1 -6408 6308 -1 -6309 6309 4 -6310 6309 -1 -6409 6309 -1 -6310 6310 4 -6311 6310 -1 -6410 6310 -1 -6311 6311 4 -6312 6311 -1 -6411 6311 -1 -6312 6312 4 -6313 6312 -1 -6412 6312 -1 -6313 6313 4 -6314 6313 -1 -6413 6313 -1 -6314 6314 4 -6315 6314 -1 -6414 6314 -1 -6315 6315 4 -6316 6315 -1 -6415 6315 -1 -6316 6316 4 -6317 6316 -1 -6416 6316 -1 -6317 6317 4 -6318 6317 -1 -6417 6317 -1 -6318 6318 4 -6319 6318 -1 -6418 6318 -1 -6319 6319 4 -6320 6319 -1 -6419 6319 -1 -6320 6320 4 -6321 6320 -1 -6420 6320 -1 -6321 6321 4 -6322 6321 -1 -6421 6321 -1 -6322 6322 4 -6323 6322 -1 -6422 6322 -1 -6323 6323 4 -6324 6323 -1 -6423 6323 -1 -6324 6324 4 -6325 6324 -1 -6424 6324 -1 -6325 6325 4 -6326 6325 -1 -6425 6325 -1 -6326 6326 4 -6327 6326 -1 -6426 6326 -1 -6327 6327 4 -6328 6327 -1 -6427 6327 -1 -6328 6328 4 -6329 6328 -1 -6428 6328 -1 -6329 6329 4 -6330 6329 -1 -6429 6329 -1 -6330 6330 4 -6331 6330 -1 -6430 6330 -1 -6331 6331 4 -6332 6331 -1 -6431 6331 -1 -6332 6332 4 -6333 6332 -1 -6432 6332 -1 -6333 6333 4 -6334 6333 -1 -6433 6333 -1 -6334 6334 4 -6335 6334 -1 -6434 6334 -1 -6335 6335 4 -6336 6335 -1 -6435 6335 -1 -6336 6336 4 -6337 6336 -1 -6436 6336 -1 -6337 6337 4 -6338 6337 -1 -6437 6337 -1 -6338 6338 4 -6339 6338 -1 -6438 6338 -1 -6339 6339 4 -6340 6339 -1 -6439 6339 -1 -6340 6340 4 -6341 6340 -1 -6440 6340 -1 -6341 6341 4 -6342 6341 -1 -6441 6341 -1 -6342 6342 4 -6343 6342 -1 -6442 6342 -1 -6343 6343 4 -6344 6343 -1 -6443 6343 -1 -6344 6344 4 -6345 6344 -1 -6444 6344 -1 -6345 6345 4 -6346 6345 -1 -6445 6345 -1 -6346 6346 4 -6347 6346 -1 -6446 6346 -1 -6347 6347 4 -6348 6347 -1 -6447 6347 -1 -6348 6348 4 -6349 6348 -1 -6448 6348 -1 -6349 6349 4 -6350 6349 -1 -6449 6349 -1 -6350 6350 4 -6351 6350 -1 -6450 6350 -1 -6351 6351 4 -6352 6351 -1 -6451 6351 -1 -6352 6352 4 -6353 6352 -1 -6452 6352 -1 -6353 6353 4 -6354 6353 -1 -6453 6353 -1 -6354 6354 4 -6355 6354 -1 -6454 6354 -1 -6355 6355 4 -6356 6355 -1 -6455 6355 -1 -6356 6356 4 -6357 6356 -1 -6456 6356 -1 -6357 6357 4 -6358 6357 -1 -6457 6357 -1 -6358 6358 4 -6359 6358 -1 -6458 6358 -1 -6359 6359 4 -6360 6359 -1 -6459 6359 -1 -6360 6360 4 -6361 6360 -1 -6460 6360 -1 -6361 6361 4 -6362 6361 -1 -6461 6361 -1 -6362 6362 4 -6363 6362 -1 -6462 6362 -1 -6363 6363 4 -6364 6363 -1 -6463 6363 -1 -6364 6364 4 -6365 6364 -1 -6464 6364 -1 -6365 6365 4 -6366 6365 -1 -6465 6365 -1 -6366 6366 4 -6367 6366 -1 -6466 6366 -1 -6367 6367 4 -6368 6367 -1 -6467 6367 -1 -6368 6368 4 -6369 6368 -1 -6468 6368 -1 -6369 6369 4 -6370 6369 -1 -6469 6369 -1 -6370 6370 4 -6371 6370 -1 -6470 6370 -1 -6371 6371 4 -6372 6371 -1 -6471 6371 -1 -6372 6372 4 -6373 6372 -1 -6472 6372 -1 -6373 6373 4 -6374 6373 -1 -6473 6373 -1 -6374 6374 4 -6375 6374 -1 -6474 6374 -1 -6375 6375 4 -6376 6375 -1 -6475 6375 -1 -6376 6376 4 -6377 6376 -1 -6476 6376 -1 -6377 6377 4 -6378 6377 -1 -6477 6377 -1 -6378 6378 4 -6379 6378 -1 -6478 6378 -1 -6379 6379 4 -6380 6379 -1 -6479 6379 -1 -6380 6380 4 -6381 6380 -1 -6480 6380 -1 -6381 6381 4 -6382 6381 -1 -6481 6381 -1 -6382 6382 4 -6383 6382 -1 -6482 6382 -1 -6383 6383 4 -6384 6383 -1 -6483 6383 -1 -6384 6384 4 -6385 6384 -1 -6484 6384 -1 -6385 6385 4 -6386 6385 -1 -6485 6385 -1 -6386 6386 4 -6387 6386 -1 -6486 6386 -1 -6387 6387 4 -6388 6387 -1 -6487 6387 -1 -6388 6388 4 -6389 6388 -1 -6488 6388 -1 -6389 6389 4 -6390 6389 -1 -6489 6389 -1 -6390 6390 4 -6391 6390 -1 -6490 6390 -1 -6391 6391 4 -6392 6391 -1 -6491 6391 -1 -6392 6392 4 -6393 6392 -1 -6492 6392 -1 -6393 6393 4 -6394 6393 -1 -6493 6393 -1 -6394 6394 4 -6395 6394 -1 -6494 6394 -1 -6395 6395 4 -6396 6395 -1 -6495 6395 -1 -6396 6396 4 -6397 6396 -1 -6496 6396 -1 -6397 6397 4 -6398 6397 -1 -6497 6397 -1 -6398 6398 4 -6399 6398 -1 -6498 6398 -1 -6399 6399 4 -6400 6399 -1 -6499 6399 -1 -6400 6400 4 -6500 6400 -1 -6401 6401 4 -6402 6401 -1 -6501 6401 -1 -6402 6402 4 -6403 6402 -1 -6502 6402 -1 -6403 6403 4 -6404 6403 -1 -6503 6403 -1 -6404 6404 4 -6405 6404 -1 -6504 6404 -1 -6405 6405 4 -6406 6405 -1 -6505 6405 -1 -6406 6406 4 -6407 6406 -1 -6506 6406 -1 -6407 6407 4 -6408 6407 -1 -6507 6407 -1 -6408 6408 4 -6409 6408 -1 -6508 6408 -1 -6409 6409 4 -6410 6409 -1 -6509 6409 -1 -6410 6410 4 -6411 6410 -1 -6510 6410 -1 -6411 6411 4 -6412 6411 -1 -6511 6411 -1 -6412 6412 4 -6413 6412 -1 -6512 6412 -1 -6413 6413 4 -6414 6413 -1 -6513 6413 -1 -6414 6414 4 -6415 6414 -1 -6514 6414 -1 -6415 6415 4 -6416 6415 -1 -6515 6415 -1 -6416 6416 4 -6417 6416 -1 -6516 6416 -1 -6417 6417 4 -6418 6417 -1 -6517 6417 -1 -6418 6418 4 -6419 6418 -1 -6518 6418 -1 -6419 6419 4 -6420 6419 -1 -6519 6419 -1 -6420 6420 4 -6421 6420 -1 -6520 6420 -1 -6421 6421 4 -6422 6421 -1 -6521 6421 -1 -6422 6422 4 -6423 6422 -1 -6522 6422 -1 -6423 6423 4 -6424 6423 -1 -6523 6423 -1 -6424 6424 4 -6425 6424 -1 -6524 6424 -1 -6425 6425 4 -6426 6425 -1 -6525 6425 -1 -6426 6426 4 -6427 6426 -1 -6526 6426 -1 -6427 6427 4 -6428 6427 -1 -6527 6427 -1 -6428 6428 4 -6429 6428 -1 -6528 6428 -1 -6429 6429 4 -6430 6429 -1 -6529 6429 -1 -6430 6430 4 -6431 6430 -1 -6530 6430 -1 -6431 6431 4 -6432 6431 -1 -6531 6431 -1 -6432 6432 4 -6433 6432 -1 -6532 6432 -1 -6433 6433 4 -6434 6433 -1 -6533 6433 -1 -6434 6434 4 -6435 6434 -1 -6534 6434 -1 -6435 6435 4 -6436 6435 -1 -6535 6435 -1 -6436 6436 4 -6437 6436 -1 -6536 6436 -1 -6437 6437 4 -6438 6437 -1 -6537 6437 -1 -6438 6438 4 -6439 6438 -1 -6538 6438 -1 -6439 6439 4 -6440 6439 -1 -6539 6439 -1 -6440 6440 4 -6441 6440 -1 -6540 6440 -1 -6441 6441 4 -6442 6441 -1 -6541 6441 -1 -6442 6442 4 -6443 6442 -1 -6542 6442 -1 -6443 6443 4 -6444 6443 -1 -6543 6443 -1 -6444 6444 4 -6445 6444 -1 -6544 6444 -1 -6445 6445 4 -6446 6445 -1 -6545 6445 -1 -6446 6446 4 -6447 6446 -1 -6546 6446 -1 -6447 6447 4 -6448 6447 -1 -6547 6447 -1 -6448 6448 4 -6449 6448 -1 -6548 6448 -1 -6449 6449 4 -6450 6449 -1 -6549 6449 -1 -6450 6450 4 -6451 6450 -1 -6550 6450 -1 -6451 6451 4 -6452 6451 -1 -6551 6451 -1 -6452 6452 4 -6453 6452 -1 -6552 6452 -1 -6453 6453 4 -6454 6453 -1 -6553 6453 -1 -6454 6454 4 -6455 6454 -1 -6554 6454 -1 -6455 6455 4 -6456 6455 -1 -6555 6455 -1 -6456 6456 4 -6457 6456 -1 -6556 6456 -1 -6457 6457 4 -6458 6457 -1 -6557 6457 -1 -6458 6458 4 -6459 6458 -1 -6558 6458 -1 -6459 6459 4 -6460 6459 -1 -6559 6459 -1 -6460 6460 4 -6461 6460 -1 -6560 6460 -1 -6461 6461 4 -6462 6461 -1 -6561 6461 -1 -6462 6462 4 -6463 6462 -1 -6562 6462 -1 -6463 6463 4 -6464 6463 -1 -6563 6463 -1 -6464 6464 4 -6465 6464 -1 -6564 6464 -1 -6465 6465 4 -6466 6465 -1 -6565 6465 -1 -6466 6466 4 -6467 6466 -1 -6566 6466 -1 -6467 6467 4 -6468 6467 -1 -6567 6467 -1 -6468 6468 4 -6469 6468 -1 -6568 6468 -1 -6469 6469 4 -6470 6469 -1 -6569 6469 -1 -6470 6470 4 -6471 6470 -1 -6570 6470 -1 -6471 6471 4 -6472 6471 -1 -6571 6471 -1 -6472 6472 4 -6473 6472 -1 -6572 6472 -1 -6473 6473 4 -6474 6473 -1 -6573 6473 -1 -6474 6474 4 -6475 6474 -1 -6574 6474 -1 -6475 6475 4 -6476 6475 -1 -6575 6475 -1 -6476 6476 4 -6477 6476 -1 -6576 6476 -1 -6477 6477 4 -6478 6477 -1 -6577 6477 -1 -6478 6478 4 -6479 6478 -1 -6578 6478 -1 -6479 6479 4 -6480 6479 -1 -6579 6479 -1 -6480 6480 4 -6481 6480 -1 -6580 6480 -1 -6481 6481 4 -6482 6481 -1 -6581 6481 -1 -6482 6482 4 -6483 6482 -1 -6582 6482 -1 -6483 6483 4 -6484 6483 -1 -6583 6483 -1 -6484 6484 4 -6485 6484 -1 -6584 6484 -1 -6485 6485 4 -6486 6485 -1 -6585 6485 -1 -6486 6486 4 -6487 6486 -1 -6586 6486 -1 -6487 6487 4 -6488 6487 -1 -6587 6487 -1 -6488 6488 4 -6489 6488 -1 -6588 6488 -1 -6489 6489 4 -6490 6489 -1 -6589 6489 -1 -6490 6490 4 -6491 6490 -1 -6590 6490 -1 -6491 6491 4 -6492 6491 -1 -6591 6491 -1 -6492 6492 4 -6493 6492 -1 -6592 6492 -1 -6493 6493 4 -6494 6493 -1 -6593 6493 -1 -6494 6494 4 -6495 6494 -1 -6594 6494 -1 -6495 6495 4 -6496 6495 -1 -6595 6495 -1 -6496 6496 4 -6497 6496 -1 -6596 6496 -1 -6497 6497 4 -6498 6497 -1 -6597 6497 -1 -6498 6498 4 -6499 6498 -1 -6598 6498 -1 -6499 6499 4 -6500 6499 -1 -6599 6499 -1 -6500 6500 4 -6600 6500 -1 -6501 6501 4 -6502 6501 -1 -6601 6501 -1 -6502 6502 4 -6503 6502 -1 -6602 6502 -1 -6503 6503 4 -6504 6503 -1 -6603 6503 -1 -6504 6504 4 -6505 6504 -1 -6604 6504 -1 -6505 6505 4 -6506 6505 -1 -6605 6505 -1 -6506 6506 4 -6507 6506 -1 -6606 6506 -1 -6507 6507 4 -6508 6507 -1 -6607 6507 -1 -6508 6508 4 -6509 6508 -1 -6608 6508 -1 -6509 6509 4 -6510 6509 -1 -6609 6509 -1 -6510 6510 4 -6511 6510 -1 -6610 6510 -1 -6511 6511 4 -6512 6511 -1 -6611 6511 -1 -6512 6512 4 -6513 6512 -1 -6612 6512 -1 -6513 6513 4 -6514 6513 -1 -6613 6513 -1 -6514 6514 4 -6515 6514 -1 -6614 6514 -1 -6515 6515 4 -6516 6515 -1 -6615 6515 -1 -6516 6516 4 -6517 6516 -1 -6616 6516 -1 -6517 6517 4 -6518 6517 -1 -6617 6517 -1 -6518 6518 4 -6519 6518 -1 -6618 6518 -1 -6519 6519 4 -6520 6519 -1 -6619 6519 -1 -6520 6520 4 -6521 6520 -1 -6620 6520 -1 -6521 6521 4 -6522 6521 -1 -6621 6521 -1 -6522 6522 4 -6523 6522 -1 -6622 6522 -1 -6523 6523 4 -6524 6523 -1 -6623 6523 -1 -6524 6524 4 -6525 6524 -1 -6624 6524 -1 -6525 6525 4 -6526 6525 -1 -6625 6525 -1 -6526 6526 4 -6527 6526 -1 -6626 6526 -1 -6527 6527 4 -6528 6527 -1 -6627 6527 -1 -6528 6528 4 -6529 6528 -1 -6628 6528 -1 -6529 6529 4 -6530 6529 -1 -6629 6529 -1 -6530 6530 4 -6531 6530 -1 -6630 6530 -1 -6531 6531 4 -6532 6531 -1 -6631 6531 -1 -6532 6532 4 -6533 6532 -1 -6632 6532 -1 -6533 6533 4 -6534 6533 -1 -6633 6533 -1 -6534 6534 4 -6535 6534 -1 -6634 6534 -1 -6535 6535 4 -6536 6535 -1 -6635 6535 -1 -6536 6536 4 -6537 6536 -1 -6636 6536 -1 -6537 6537 4 -6538 6537 -1 -6637 6537 -1 -6538 6538 4 -6539 6538 -1 -6638 6538 -1 -6539 6539 4 -6540 6539 -1 -6639 6539 -1 -6540 6540 4 -6541 6540 -1 -6640 6540 -1 -6541 6541 4 -6542 6541 -1 -6641 6541 -1 -6542 6542 4 -6543 6542 -1 -6642 6542 -1 -6543 6543 4 -6544 6543 -1 -6643 6543 -1 -6544 6544 4 -6545 6544 -1 -6644 6544 -1 -6545 6545 4 -6546 6545 -1 -6645 6545 -1 -6546 6546 4 -6547 6546 -1 -6646 6546 -1 -6547 6547 4 -6548 6547 -1 -6647 6547 -1 -6548 6548 4 -6549 6548 -1 -6648 6548 -1 -6549 6549 4 -6550 6549 -1 -6649 6549 -1 -6550 6550 4 -6551 6550 -1 -6650 6550 -1 -6551 6551 4 -6552 6551 -1 -6651 6551 -1 -6552 6552 4 -6553 6552 -1 -6652 6552 -1 -6553 6553 4 -6554 6553 -1 -6653 6553 -1 -6554 6554 4 -6555 6554 -1 -6654 6554 -1 -6555 6555 4 -6556 6555 -1 -6655 6555 -1 -6556 6556 4 -6557 6556 -1 -6656 6556 -1 -6557 6557 4 -6558 6557 -1 -6657 6557 -1 -6558 6558 4 -6559 6558 -1 -6658 6558 -1 -6559 6559 4 -6560 6559 -1 -6659 6559 -1 -6560 6560 4 -6561 6560 -1 -6660 6560 -1 -6561 6561 4 -6562 6561 -1 -6661 6561 -1 -6562 6562 4 -6563 6562 -1 -6662 6562 -1 -6563 6563 4 -6564 6563 -1 -6663 6563 -1 -6564 6564 4 -6565 6564 -1 -6664 6564 -1 -6565 6565 4 -6566 6565 -1 -6665 6565 -1 -6566 6566 4 -6567 6566 -1 -6666 6566 -1 -6567 6567 4 -6568 6567 -1 -6667 6567 -1 -6568 6568 4 -6569 6568 -1 -6668 6568 -1 -6569 6569 4 -6570 6569 -1 -6669 6569 -1 -6570 6570 4 -6571 6570 -1 -6670 6570 -1 -6571 6571 4 -6572 6571 -1 -6671 6571 -1 -6572 6572 4 -6573 6572 -1 -6672 6572 -1 -6573 6573 4 -6574 6573 -1 -6673 6573 -1 -6574 6574 4 -6575 6574 -1 -6674 6574 -1 -6575 6575 4 -6576 6575 -1 -6675 6575 -1 -6576 6576 4 -6577 6576 -1 -6676 6576 -1 -6577 6577 4 -6578 6577 -1 -6677 6577 -1 -6578 6578 4 -6579 6578 -1 -6678 6578 -1 -6579 6579 4 -6580 6579 -1 -6679 6579 -1 -6580 6580 4 -6581 6580 -1 -6680 6580 -1 -6581 6581 4 -6582 6581 -1 -6681 6581 -1 -6582 6582 4 -6583 6582 -1 -6682 6582 -1 -6583 6583 4 -6584 6583 -1 -6683 6583 -1 -6584 6584 4 -6585 6584 -1 -6684 6584 -1 -6585 6585 4 -6586 6585 -1 -6685 6585 -1 -6586 6586 4 -6587 6586 -1 -6686 6586 -1 -6587 6587 4 -6588 6587 -1 -6687 6587 -1 -6588 6588 4 -6589 6588 -1 -6688 6588 -1 -6589 6589 4 -6590 6589 -1 -6689 6589 -1 -6590 6590 4 -6591 6590 -1 -6690 6590 -1 -6591 6591 4 -6592 6591 -1 -6691 6591 -1 -6592 6592 4 -6593 6592 -1 -6692 6592 -1 -6593 6593 4 -6594 6593 -1 -6693 6593 -1 -6594 6594 4 -6595 6594 -1 -6694 6594 -1 -6595 6595 4 -6596 6595 -1 -6695 6595 -1 -6596 6596 4 -6597 6596 -1 -6696 6596 -1 -6597 6597 4 -6598 6597 -1 -6697 6597 -1 -6598 6598 4 -6599 6598 -1 -6698 6598 -1 -6599 6599 4 -6600 6599 -1 -6699 6599 -1 -6600 6600 4 -6700 6600 -1 -6601 6601 4 -6602 6601 -1 -6701 6601 -1 -6602 6602 4 -6603 6602 -1 -6702 6602 -1 -6603 6603 4 -6604 6603 -1 -6703 6603 -1 -6604 6604 4 -6605 6604 -1 -6704 6604 -1 -6605 6605 4 -6606 6605 -1 -6705 6605 -1 -6606 6606 4 -6607 6606 -1 -6706 6606 -1 -6607 6607 4 -6608 6607 -1 -6707 6607 -1 -6608 6608 4 -6609 6608 -1 -6708 6608 -1 -6609 6609 4 -6610 6609 -1 -6709 6609 -1 -6610 6610 4 -6611 6610 -1 -6710 6610 -1 -6611 6611 4 -6612 6611 -1 -6711 6611 -1 -6612 6612 4 -6613 6612 -1 -6712 6612 -1 -6613 6613 4 -6614 6613 -1 -6713 6613 -1 -6614 6614 4 -6615 6614 -1 -6714 6614 -1 -6615 6615 4 -6616 6615 -1 -6715 6615 -1 -6616 6616 4 -6617 6616 -1 -6716 6616 -1 -6617 6617 4 -6618 6617 -1 -6717 6617 -1 -6618 6618 4 -6619 6618 -1 -6718 6618 -1 -6619 6619 4 -6620 6619 -1 -6719 6619 -1 -6620 6620 4 -6621 6620 -1 -6720 6620 -1 -6621 6621 4 -6622 6621 -1 -6721 6621 -1 -6622 6622 4 -6623 6622 -1 -6722 6622 -1 -6623 6623 4 -6624 6623 -1 -6723 6623 -1 -6624 6624 4 -6625 6624 -1 -6724 6624 -1 -6625 6625 4 -6626 6625 -1 -6725 6625 -1 -6626 6626 4 -6627 6626 -1 -6726 6626 -1 -6627 6627 4 -6628 6627 -1 -6727 6627 -1 -6628 6628 4 -6629 6628 -1 -6728 6628 -1 -6629 6629 4 -6630 6629 -1 -6729 6629 -1 -6630 6630 4 -6631 6630 -1 -6730 6630 -1 -6631 6631 4 -6632 6631 -1 -6731 6631 -1 -6632 6632 4 -6633 6632 -1 -6732 6632 -1 -6633 6633 4 -6634 6633 -1 -6733 6633 -1 -6634 6634 4 -6635 6634 -1 -6734 6634 -1 -6635 6635 4 -6636 6635 -1 -6735 6635 -1 -6636 6636 4 -6637 6636 -1 -6736 6636 -1 -6637 6637 4 -6638 6637 -1 -6737 6637 -1 -6638 6638 4 -6639 6638 -1 -6738 6638 -1 -6639 6639 4 -6640 6639 -1 -6739 6639 -1 -6640 6640 4 -6641 6640 -1 -6740 6640 -1 -6641 6641 4 -6642 6641 -1 -6741 6641 -1 -6642 6642 4 -6643 6642 -1 -6742 6642 -1 -6643 6643 4 -6644 6643 -1 -6743 6643 -1 -6644 6644 4 -6645 6644 -1 -6744 6644 -1 -6645 6645 4 -6646 6645 -1 -6745 6645 -1 -6646 6646 4 -6647 6646 -1 -6746 6646 -1 -6647 6647 4 -6648 6647 -1 -6747 6647 -1 -6648 6648 4 -6649 6648 -1 -6748 6648 -1 -6649 6649 4 -6650 6649 -1 -6749 6649 -1 -6650 6650 4 -6651 6650 -1 -6750 6650 -1 -6651 6651 4 -6652 6651 -1 -6751 6651 -1 -6652 6652 4 -6653 6652 -1 -6752 6652 -1 -6653 6653 4 -6654 6653 -1 -6753 6653 -1 -6654 6654 4 -6655 6654 -1 -6754 6654 -1 -6655 6655 4 -6656 6655 -1 -6755 6655 -1 -6656 6656 4 -6657 6656 -1 -6756 6656 -1 -6657 6657 4 -6658 6657 -1 -6757 6657 -1 -6658 6658 4 -6659 6658 -1 -6758 6658 -1 -6659 6659 4 -6660 6659 -1 -6759 6659 -1 -6660 6660 4 -6661 6660 -1 -6760 6660 -1 -6661 6661 4 -6662 6661 -1 -6761 6661 -1 -6662 6662 4 -6663 6662 -1 -6762 6662 -1 -6663 6663 4 -6664 6663 -1 -6763 6663 -1 -6664 6664 4 -6665 6664 -1 -6764 6664 -1 -6665 6665 4 -6666 6665 -1 -6765 6665 -1 -6666 6666 4 -6667 6666 -1 -6766 6666 -1 -6667 6667 4 -6668 6667 -1 -6767 6667 -1 -6668 6668 4 -6669 6668 -1 -6768 6668 -1 -6669 6669 4 -6670 6669 -1 -6769 6669 -1 -6670 6670 4 -6671 6670 -1 -6770 6670 -1 -6671 6671 4 -6672 6671 -1 -6771 6671 -1 -6672 6672 4 -6673 6672 -1 -6772 6672 -1 -6673 6673 4 -6674 6673 -1 -6773 6673 -1 -6674 6674 4 -6675 6674 -1 -6774 6674 -1 -6675 6675 4 -6676 6675 -1 -6775 6675 -1 -6676 6676 4 -6677 6676 -1 -6776 6676 -1 -6677 6677 4 -6678 6677 -1 -6777 6677 -1 -6678 6678 4 -6679 6678 -1 -6778 6678 -1 -6679 6679 4 -6680 6679 -1 -6779 6679 -1 -6680 6680 4 -6681 6680 -1 -6780 6680 -1 -6681 6681 4 -6682 6681 -1 -6781 6681 -1 -6682 6682 4 -6683 6682 -1 -6782 6682 -1 -6683 6683 4 -6684 6683 -1 -6783 6683 -1 -6684 6684 4 -6685 6684 -1 -6784 6684 -1 -6685 6685 4 -6686 6685 -1 -6785 6685 -1 -6686 6686 4 -6687 6686 -1 -6786 6686 -1 -6687 6687 4 -6688 6687 -1 -6787 6687 -1 -6688 6688 4 -6689 6688 -1 -6788 6688 -1 -6689 6689 4 -6690 6689 -1 -6789 6689 -1 -6690 6690 4 -6691 6690 -1 -6790 6690 -1 -6691 6691 4 -6692 6691 -1 -6791 6691 -1 -6692 6692 4 -6693 6692 -1 -6792 6692 -1 -6693 6693 4 -6694 6693 -1 -6793 6693 -1 -6694 6694 4 -6695 6694 -1 -6794 6694 -1 -6695 6695 4 -6696 6695 -1 -6795 6695 -1 -6696 6696 4 -6697 6696 -1 -6796 6696 -1 -6697 6697 4 -6698 6697 -1 -6797 6697 -1 -6698 6698 4 -6699 6698 -1 -6798 6698 -1 -6699 6699 4 -6700 6699 -1 -6799 6699 -1 -6700 6700 4 -6800 6700 -1 -6701 6701 4 -6702 6701 -1 -6801 6701 -1 -6702 6702 4 -6703 6702 -1 -6802 6702 -1 -6703 6703 4 -6704 6703 -1 -6803 6703 -1 -6704 6704 4 -6705 6704 -1 -6804 6704 -1 -6705 6705 4 -6706 6705 -1 -6805 6705 -1 -6706 6706 4 -6707 6706 -1 -6806 6706 -1 -6707 6707 4 -6708 6707 -1 -6807 6707 -1 -6708 6708 4 -6709 6708 -1 -6808 6708 -1 -6709 6709 4 -6710 6709 -1 -6809 6709 -1 -6710 6710 4 -6711 6710 -1 -6810 6710 -1 -6711 6711 4 -6712 6711 -1 -6811 6711 -1 -6712 6712 4 -6713 6712 -1 -6812 6712 -1 -6713 6713 4 -6714 6713 -1 -6813 6713 -1 -6714 6714 4 -6715 6714 -1 -6814 6714 -1 -6715 6715 4 -6716 6715 -1 -6815 6715 -1 -6716 6716 4 -6717 6716 -1 -6816 6716 -1 -6717 6717 4 -6718 6717 -1 -6817 6717 -1 -6718 6718 4 -6719 6718 -1 -6818 6718 -1 -6719 6719 4 -6720 6719 -1 -6819 6719 -1 -6720 6720 4 -6721 6720 -1 -6820 6720 -1 -6721 6721 4 -6722 6721 -1 -6821 6721 -1 -6722 6722 4 -6723 6722 -1 -6822 6722 -1 -6723 6723 4 -6724 6723 -1 -6823 6723 -1 -6724 6724 4 -6725 6724 -1 -6824 6724 -1 -6725 6725 4 -6726 6725 -1 -6825 6725 -1 -6726 6726 4 -6727 6726 -1 -6826 6726 -1 -6727 6727 4 -6728 6727 -1 -6827 6727 -1 -6728 6728 4 -6729 6728 -1 -6828 6728 -1 -6729 6729 4 -6730 6729 -1 -6829 6729 -1 -6730 6730 4 -6731 6730 -1 -6830 6730 -1 -6731 6731 4 -6732 6731 -1 -6831 6731 -1 -6732 6732 4 -6733 6732 -1 -6832 6732 -1 -6733 6733 4 -6734 6733 -1 -6833 6733 -1 -6734 6734 4 -6735 6734 -1 -6834 6734 -1 -6735 6735 4 -6736 6735 -1 -6835 6735 -1 -6736 6736 4 -6737 6736 -1 -6836 6736 -1 -6737 6737 4 -6738 6737 -1 -6837 6737 -1 -6738 6738 4 -6739 6738 -1 -6838 6738 -1 -6739 6739 4 -6740 6739 -1 -6839 6739 -1 -6740 6740 4 -6741 6740 -1 -6840 6740 -1 -6741 6741 4 -6742 6741 -1 -6841 6741 -1 -6742 6742 4 -6743 6742 -1 -6842 6742 -1 -6743 6743 4 -6744 6743 -1 -6843 6743 -1 -6744 6744 4 -6745 6744 -1 -6844 6744 -1 -6745 6745 4 -6746 6745 -1 -6845 6745 -1 -6746 6746 4 -6747 6746 -1 -6846 6746 -1 -6747 6747 4 -6748 6747 -1 -6847 6747 -1 -6748 6748 4 -6749 6748 -1 -6848 6748 -1 -6749 6749 4 -6750 6749 -1 -6849 6749 -1 -6750 6750 4 -6751 6750 -1 -6850 6750 -1 -6751 6751 4 -6752 6751 -1 -6851 6751 -1 -6752 6752 4 -6753 6752 -1 -6852 6752 -1 -6753 6753 4 -6754 6753 -1 -6853 6753 -1 -6754 6754 4 -6755 6754 -1 -6854 6754 -1 -6755 6755 4 -6756 6755 -1 -6855 6755 -1 -6756 6756 4 -6757 6756 -1 -6856 6756 -1 -6757 6757 4 -6758 6757 -1 -6857 6757 -1 -6758 6758 4 -6759 6758 -1 -6858 6758 -1 -6759 6759 4 -6760 6759 -1 -6859 6759 -1 -6760 6760 4 -6761 6760 -1 -6860 6760 -1 -6761 6761 4 -6762 6761 -1 -6861 6761 -1 -6762 6762 4 -6763 6762 -1 -6862 6762 -1 -6763 6763 4 -6764 6763 -1 -6863 6763 -1 -6764 6764 4 -6765 6764 -1 -6864 6764 -1 -6765 6765 4 -6766 6765 -1 -6865 6765 -1 -6766 6766 4 -6767 6766 -1 -6866 6766 -1 -6767 6767 4 -6768 6767 -1 -6867 6767 -1 -6768 6768 4 -6769 6768 -1 -6868 6768 -1 -6769 6769 4 -6770 6769 -1 -6869 6769 -1 -6770 6770 4 -6771 6770 -1 -6870 6770 -1 -6771 6771 4 -6772 6771 -1 -6871 6771 -1 -6772 6772 4 -6773 6772 -1 -6872 6772 -1 -6773 6773 4 -6774 6773 -1 -6873 6773 -1 -6774 6774 4 -6775 6774 -1 -6874 6774 -1 -6775 6775 4 -6776 6775 -1 -6875 6775 -1 -6776 6776 4 -6777 6776 -1 -6876 6776 -1 -6777 6777 4 -6778 6777 -1 -6877 6777 -1 -6778 6778 4 -6779 6778 -1 -6878 6778 -1 -6779 6779 4 -6780 6779 -1 -6879 6779 -1 -6780 6780 4 -6781 6780 -1 -6880 6780 -1 -6781 6781 4 -6782 6781 -1 -6881 6781 -1 -6782 6782 4 -6783 6782 -1 -6882 6782 -1 -6783 6783 4 -6784 6783 -1 -6883 6783 -1 -6784 6784 4 -6785 6784 -1 -6884 6784 -1 -6785 6785 4 -6786 6785 -1 -6885 6785 -1 -6786 6786 4 -6787 6786 -1 -6886 6786 -1 -6787 6787 4 -6788 6787 -1 -6887 6787 -1 -6788 6788 4 -6789 6788 -1 -6888 6788 -1 -6789 6789 4 -6790 6789 -1 -6889 6789 -1 -6790 6790 4 -6791 6790 -1 -6890 6790 -1 -6791 6791 4 -6792 6791 -1 -6891 6791 -1 -6792 6792 4 -6793 6792 -1 -6892 6792 -1 -6793 6793 4 -6794 6793 -1 -6893 6793 -1 -6794 6794 4 -6795 6794 -1 -6894 6794 -1 -6795 6795 4 -6796 6795 -1 -6895 6795 -1 -6796 6796 4 -6797 6796 -1 -6896 6796 -1 -6797 6797 4 -6798 6797 -1 -6897 6797 -1 -6798 6798 4 -6799 6798 -1 -6898 6798 -1 -6799 6799 4 -6800 6799 -1 -6899 6799 -1 -6800 6800 4 -6900 6800 -1 -6801 6801 4 -6802 6801 -1 -6901 6801 -1 -6802 6802 4 -6803 6802 -1 -6902 6802 -1 -6803 6803 4 -6804 6803 -1 -6903 6803 -1 -6804 6804 4 -6805 6804 -1 -6904 6804 -1 -6805 6805 4 -6806 6805 -1 -6905 6805 -1 -6806 6806 4 -6807 6806 -1 -6906 6806 -1 -6807 6807 4 -6808 6807 -1 -6907 6807 -1 -6808 6808 4 -6809 6808 -1 -6908 6808 -1 -6809 6809 4 -6810 6809 -1 -6909 6809 -1 -6810 6810 4 -6811 6810 -1 -6910 6810 -1 -6811 6811 4 -6812 6811 -1 -6911 6811 -1 -6812 6812 4 -6813 6812 -1 -6912 6812 -1 -6813 6813 4 -6814 6813 -1 -6913 6813 -1 -6814 6814 4 -6815 6814 -1 -6914 6814 -1 -6815 6815 4 -6816 6815 -1 -6915 6815 -1 -6816 6816 4 -6817 6816 -1 -6916 6816 -1 -6817 6817 4 -6818 6817 -1 -6917 6817 -1 -6818 6818 4 -6819 6818 -1 -6918 6818 -1 -6819 6819 4 -6820 6819 -1 -6919 6819 -1 -6820 6820 4 -6821 6820 -1 -6920 6820 -1 -6821 6821 4 -6822 6821 -1 -6921 6821 -1 -6822 6822 4 -6823 6822 -1 -6922 6822 -1 -6823 6823 4 -6824 6823 -1 -6923 6823 -1 -6824 6824 4 -6825 6824 -1 -6924 6824 -1 -6825 6825 4 -6826 6825 -1 -6925 6825 -1 -6826 6826 4 -6827 6826 -1 -6926 6826 -1 -6827 6827 4 -6828 6827 -1 -6927 6827 -1 -6828 6828 4 -6829 6828 -1 -6928 6828 -1 -6829 6829 4 -6830 6829 -1 -6929 6829 -1 -6830 6830 4 -6831 6830 -1 -6930 6830 -1 -6831 6831 4 -6832 6831 -1 -6931 6831 -1 -6832 6832 4 -6833 6832 -1 -6932 6832 -1 -6833 6833 4 -6834 6833 -1 -6933 6833 -1 -6834 6834 4 -6835 6834 -1 -6934 6834 -1 -6835 6835 4 -6836 6835 -1 -6935 6835 -1 -6836 6836 4 -6837 6836 -1 -6936 6836 -1 -6837 6837 4 -6838 6837 -1 -6937 6837 -1 -6838 6838 4 -6839 6838 -1 -6938 6838 -1 -6839 6839 4 -6840 6839 -1 -6939 6839 -1 -6840 6840 4 -6841 6840 -1 -6940 6840 -1 -6841 6841 4 -6842 6841 -1 -6941 6841 -1 -6842 6842 4 -6843 6842 -1 -6942 6842 -1 -6843 6843 4 -6844 6843 -1 -6943 6843 -1 -6844 6844 4 -6845 6844 -1 -6944 6844 -1 -6845 6845 4 -6846 6845 -1 -6945 6845 -1 -6846 6846 4 -6847 6846 -1 -6946 6846 -1 -6847 6847 4 -6848 6847 -1 -6947 6847 -1 -6848 6848 4 -6849 6848 -1 -6948 6848 -1 -6849 6849 4 -6850 6849 -1 -6949 6849 -1 -6850 6850 4 -6851 6850 -1 -6950 6850 -1 -6851 6851 4 -6852 6851 -1 -6951 6851 -1 -6852 6852 4 -6853 6852 -1 -6952 6852 -1 -6853 6853 4 -6854 6853 -1 -6953 6853 -1 -6854 6854 4 -6855 6854 -1 -6954 6854 -1 -6855 6855 4 -6856 6855 -1 -6955 6855 -1 -6856 6856 4 -6857 6856 -1 -6956 6856 -1 -6857 6857 4 -6858 6857 -1 -6957 6857 -1 -6858 6858 4 -6859 6858 -1 -6958 6858 -1 -6859 6859 4 -6860 6859 -1 -6959 6859 -1 -6860 6860 4 -6861 6860 -1 -6960 6860 -1 -6861 6861 4 -6862 6861 -1 -6961 6861 -1 -6862 6862 4 -6863 6862 -1 -6962 6862 -1 -6863 6863 4 -6864 6863 -1 -6963 6863 -1 -6864 6864 4 -6865 6864 -1 -6964 6864 -1 -6865 6865 4 -6866 6865 -1 -6965 6865 -1 -6866 6866 4 -6867 6866 -1 -6966 6866 -1 -6867 6867 4 -6868 6867 -1 -6967 6867 -1 -6868 6868 4 -6869 6868 -1 -6968 6868 -1 -6869 6869 4 -6870 6869 -1 -6969 6869 -1 -6870 6870 4 -6871 6870 -1 -6970 6870 -1 -6871 6871 4 -6872 6871 -1 -6971 6871 -1 -6872 6872 4 -6873 6872 -1 -6972 6872 -1 -6873 6873 4 -6874 6873 -1 -6973 6873 -1 -6874 6874 4 -6875 6874 -1 -6974 6874 -1 -6875 6875 4 -6876 6875 -1 -6975 6875 -1 -6876 6876 4 -6877 6876 -1 -6976 6876 -1 -6877 6877 4 -6878 6877 -1 -6977 6877 -1 -6878 6878 4 -6879 6878 -1 -6978 6878 -1 -6879 6879 4 -6880 6879 -1 -6979 6879 -1 -6880 6880 4 -6881 6880 -1 -6980 6880 -1 -6881 6881 4 -6882 6881 -1 -6981 6881 -1 -6882 6882 4 -6883 6882 -1 -6982 6882 -1 -6883 6883 4 -6884 6883 -1 -6983 6883 -1 -6884 6884 4 -6885 6884 -1 -6984 6884 -1 -6885 6885 4 -6886 6885 -1 -6985 6885 -1 -6886 6886 4 -6887 6886 -1 -6986 6886 -1 -6887 6887 4 -6888 6887 -1 -6987 6887 -1 -6888 6888 4 -6889 6888 -1 -6988 6888 -1 -6889 6889 4 -6890 6889 -1 -6989 6889 -1 -6890 6890 4 -6891 6890 -1 -6990 6890 -1 -6891 6891 4 -6892 6891 -1 -6991 6891 -1 -6892 6892 4 -6893 6892 -1 -6992 6892 -1 -6893 6893 4 -6894 6893 -1 -6993 6893 -1 -6894 6894 4 -6895 6894 -1 -6994 6894 -1 -6895 6895 4 -6896 6895 -1 -6995 6895 -1 -6896 6896 4 -6897 6896 -1 -6996 6896 -1 -6897 6897 4 -6898 6897 -1 -6997 6897 -1 -6898 6898 4 -6899 6898 -1 -6998 6898 -1 -6899 6899 4 -6900 6899 -1 -6999 6899 -1 -6900 6900 4 -7000 6900 -1 -6901 6901 4 -6902 6901 -1 -7001 6901 -1 -6902 6902 4 -6903 6902 -1 -7002 6902 -1 -6903 6903 4 -6904 6903 -1 -7003 6903 -1 -6904 6904 4 -6905 6904 -1 -7004 6904 -1 -6905 6905 4 -6906 6905 -1 -7005 6905 -1 -6906 6906 4 -6907 6906 -1 -7006 6906 -1 -6907 6907 4 -6908 6907 -1 -7007 6907 -1 -6908 6908 4 -6909 6908 -1 -7008 6908 -1 -6909 6909 4 -6910 6909 -1 -7009 6909 -1 -6910 6910 4 -6911 6910 -1 -7010 6910 -1 -6911 6911 4 -6912 6911 -1 -7011 6911 -1 -6912 6912 4 -6913 6912 -1 -7012 6912 -1 -6913 6913 4 -6914 6913 -1 -7013 6913 -1 -6914 6914 4 -6915 6914 -1 -7014 6914 -1 -6915 6915 4 -6916 6915 -1 -7015 6915 -1 -6916 6916 4 -6917 6916 -1 -7016 6916 -1 -6917 6917 4 -6918 6917 -1 -7017 6917 -1 -6918 6918 4 -6919 6918 -1 -7018 6918 -1 -6919 6919 4 -6920 6919 -1 -7019 6919 -1 -6920 6920 4 -6921 6920 -1 -7020 6920 -1 -6921 6921 4 -6922 6921 -1 -7021 6921 -1 -6922 6922 4 -6923 6922 -1 -7022 6922 -1 -6923 6923 4 -6924 6923 -1 -7023 6923 -1 -6924 6924 4 -6925 6924 -1 -7024 6924 -1 -6925 6925 4 -6926 6925 -1 -7025 6925 -1 -6926 6926 4 -6927 6926 -1 -7026 6926 -1 -6927 6927 4 -6928 6927 -1 -7027 6927 -1 -6928 6928 4 -6929 6928 -1 -7028 6928 -1 -6929 6929 4 -6930 6929 -1 -7029 6929 -1 -6930 6930 4 -6931 6930 -1 -7030 6930 -1 -6931 6931 4 -6932 6931 -1 -7031 6931 -1 -6932 6932 4 -6933 6932 -1 -7032 6932 -1 -6933 6933 4 -6934 6933 -1 -7033 6933 -1 -6934 6934 4 -6935 6934 -1 -7034 6934 -1 -6935 6935 4 -6936 6935 -1 -7035 6935 -1 -6936 6936 4 -6937 6936 -1 -7036 6936 -1 -6937 6937 4 -6938 6937 -1 -7037 6937 -1 -6938 6938 4 -6939 6938 -1 -7038 6938 -1 -6939 6939 4 -6940 6939 -1 -7039 6939 -1 -6940 6940 4 -6941 6940 -1 -7040 6940 -1 -6941 6941 4 -6942 6941 -1 -7041 6941 -1 -6942 6942 4 -6943 6942 -1 -7042 6942 -1 -6943 6943 4 -6944 6943 -1 -7043 6943 -1 -6944 6944 4 -6945 6944 -1 -7044 6944 -1 -6945 6945 4 -6946 6945 -1 -7045 6945 -1 -6946 6946 4 -6947 6946 -1 -7046 6946 -1 -6947 6947 4 -6948 6947 -1 -7047 6947 -1 -6948 6948 4 -6949 6948 -1 -7048 6948 -1 -6949 6949 4 -6950 6949 -1 -7049 6949 -1 -6950 6950 4 -6951 6950 -1 -7050 6950 -1 -6951 6951 4 -6952 6951 -1 -7051 6951 -1 -6952 6952 4 -6953 6952 -1 -7052 6952 -1 -6953 6953 4 -6954 6953 -1 -7053 6953 -1 -6954 6954 4 -6955 6954 -1 -7054 6954 -1 -6955 6955 4 -6956 6955 -1 -7055 6955 -1 -6956 6956 4 -6957 6956 -1 -7056 6956 -1 -6957 6957 4 -6958 6957 -1 -7057 6957 -1 -6958 6958 4 -6959 6958 -1 -7058 6958 -1 -6959 6959 4 -6960 6959 -1 -7059 6959 -1 -6960 6960 4 -6961 6960 -1 -7060 6960 -1 -6961 6961 4 -6962 6961 -1 -7061 6961 -1 -6962 6962 4 -6963 6962 -1 -7062 6962 -1 -6963 6963 4 -6964 6963 -1 -7063 6963 -1 -6964 6964 4 -6965 6964 -1 -7064 6964 -1 -6965 6965 4 -6966 6965 -1 -7065 6965 -1 -6966 6966 4 -6967 6966 -1 -7066 6966 -1 -6967 6967 4 -6968 6967 -1 -7067 6967 -1 -6968 6968 4 -6969 6968 -1 -7068 6968 -1 -6969 6969 4 -6970 6969 -1 -7069 6969 -1 -6970 6970 4 -6971 6970 -1 -7070 6970 -1 -6971 6971 4 -6972 6971 -1 -7071 6971 -1 -6972 6972 4 -6973 6972 -1 -7072 6972 -1 -6973 6973 4 -6974 6973 -1 -7073 6973 -1 -6974 6974 4 -6975 6974 -1 -7074 6974 -1 -6975 6975 4 -6976 6975 -1 -7075 6975 -1 -6976 6976 4 -6977 6976 -1 -7076 6976 -1 -6977 6977 4 -6978 6977 -1 -7077 6977 -1 -6978 6978 4 -6979 6978 -1 -7078 6978 -1 -6979 6979 4 -6980 6979 -1 -7079 6979 -1 -6980 6980 4 -6981 6980 -1 -7080 6980 -1 -6981 6981 4 -6982 6981 -1 -7081 6981 -1 -6982 6982 4 -6983 6982 -1 -7082 6982 -1 -6983 6983 4 -6984 6983 -1 -7083 6983 -1 -6984 6984 4 -6985 6984 -1 -7084 6984 -1 -6985 6985 4 -6986 6985 -1 -7085 6985 -1 -6986 6986 4 -6987 6986 -1 -7086 6986 -1 -6987 6987 4 -6988 6987 -1 -7087 6987 -1 -6988 6988 4 -6989 6988 -1 -7088 6988 -1 -6989 6989 4 -6990 6989 -1 -7089 6989 -1 -6990 6990 4 -6991 6990 -1 -7090 6990 -1 -6991 6991 4 -6992 6991 -1 -7091 6991 -1 -6992 6992 4 -6993 6992 -1 -7092 6992 -1 -6993 6993 4 -6994 6993 -1 -7093 6993 -1 -6994 6994 4 -6995 6994 -1 -7094 6994 -1 -6995 6995 4 -6996 6995 -1 -7095 6995 -1 -6996 6996 4 -6997 6996 -1 -7096 6996 -1 -6997 6997 4 -6998 6997 -1 -7097 6997 -1 -6998 6998 4 -6999 6998 -1 -7098 6998 -1 -6999 6999 4 -7000 6999 -1 -7099 6999 -1 -7000 7000 4 -7100 7000 -1 -7001 7001 4 -7002 7001 -1 -7101 7001 -1 -7002 7002 4 -7003 7002 -1 -7102 7002 -1 -7003 7003 4 -7004 7003 -1 -7103 7003 -1 -7004 7004 4 -7005 7004 -1 -7104 7004 -1 -7005 7005 4 -7006 7005 -1 -7105 7005 -1 -7006 7006 4 -7007 7006 -1 -7106 7006 -1 -7007 7007 4 -7008 7007 -1 -7107 7007 -1 -7008 7008 4 -7009 7008 -1 -7108 7008 -1 -7009 7009 4 -7010 7009 -1 -7109 7009 -1 -7010 7010 4 -7011 7010 -1 -7110 7010 -1 -7011 7011 4 -7012 7011 -1 -7111 7011 -1 -7012 7012 4 -7013 7012 -1 -7112 7012 -1 -7013 7013 4 -7014 7013 -1 -7113 7013 -1 -7014 7014 4 -7015 7014 -1 -7114 7014 -1 -7015 7015 4 -7016 7015 -1 -7115 7015 -1 -7016 7016 4 -7017 7016 -1 -7116 7016 -1 -7017 7017 4 -7018 7017 -1 -7117 7017 -1 -7018 7018 4 -7019 7018 -1 -7118 7018 -1 -7019 7019 4 -7020 7019 -1 -7119 7019 -1 -7020 7020 4 -7021 7020 -1 -7120 7020 -1 -7021 7021 4 -7022 7021 -1 -7121 7021 -1 -7022 7022 4 -7023 7022 -1 -7122 7022 -1 -7023 7023 4 -7024 7023 -1 -7123 7023 -1 -7024 7024 4 -7025 7024 -1 -7124 7024 -1 -7025 7025 4 -7026 7025 -1 -7125 7025 -1 -7026 7026 4 -7027 7026 -1 -7126 7026 -1 -7027 7027 4 -7028 7027 -1 -7127 7027 -1 -7028 7028 4 -7029 7028 -1 -7128 7028 -1 -7029 7029 4 -7030 7029 -1 -7129 7029 -1 -7030 7030 4 -7031 7030 -1 -7130 7030 -1 -7031 7031 4 -7032 7031 -1 -7131 7031 -1 -7032 7032 4 -7033 7032 -1 -7132 7032 -1 -7033 7033 4 -7034 7033 -1 -7133 7033 -1 -7034 7034 4 -7035 7034 -1 -7134 7034 -1 -7035 7035 4 -7036 7035 -1 -7135 7035 -1 -7036 7036 4 -7037 7036 -1 -7136 7036 -1 -7037 7037 4 -7038 7037 -1 -7137 7037 -1 -7038 7038 4 -7039 7038 -1 -7138 7038 -1 -7039 7039 4 -7040 7039 -1 -7139 7039 -1 -7040 7040 4 -7041 7040 -1 -7140 7040 -1 -7041 7041 4 -7042 7041 -1 -7141 7041 -1 -7042 7042 4 -7043 7042 -1 -7142 7042 -1 -7043 7043 4 -7044 7043 -1 -7143 7043 -1 -7044 7044 4 -7045 7044 -1 -7144 7044 -1 -7045 7045 4 -7046 7045 -1 -7145 7045 -1 -7046 7046 4 -7047 7046 -1 -7146 7046 -1 -7047 7047 4 -7048 7047 -1 -7147 7047 -1 -7048 7048 4 -7049 7048 -1 -7148 7048 -1 -7049 7049 4 -7050 7049 -1 -7149 7049 -1 -7050 7050 4 -7051 7050 -1 -7150 7050 -1 -7051 7051 4 -7052 7051 -1 -7151 7051 -1 -7052 7052 4 -7053 7052 -1 -7152 7052 -1 -7053 7053 4 -7054 7053 -1 -7153 7053 -1 -7054 7054 4 -7055 7054 -1 -7154 7054 -1 -7055 7055 4 -7056 7055 -1 -7155 7055 -1 -7056 7056 4 -7057 7056 -1 -7156 7056 -1 -7057 7057 4 -7058 7057 -1 -7157 7057 -1 -7058 7058 4 -7059 7058 -1 -7158 7058 -1 -7059 7059 4 -7060 7059 -1 -7159 7059 -1 -7060 7060 4 -7061 7060 -1 -7160 7060 -1 -7061 7061 4 -7062 7061 -1 -7161 7061 -1 -7062 7062 4 -7063 7062 -1 -7162 7062 -1 -7063 7063 4 -7064 7063 -1 -7163 7063 -1 -7064 7064 4 -7065 7064 -1 -7164 7064 -1 -7065 7065 4 -7066 7065 -1 -7165 7065 -1 -7066 7066 4 -7067 7066 -1 -7166 7066 -1 -7067 7067 4 -7068 7067 -1 -7167 7067 -1 -7068 7068 4 -7069 7068 -1 -7168 7068 -1 -7069 7069 4 -7070 7069 -1 -7169 7069 -1 -7070 7070 4 -7071 7070 -1 -7170 7070 -1 -7071 7071 4 -7072 7071 -1 -7171 7071 -1 -7072 7072 4 -7073 7072 -1 -7172 7072 -1 -7073 7073 4 -7074 7073 -1 -7173 7073 -1 -7074 7074 4 -7075 7074 -1 -7174 7074 -1 -7075 7075 4 -7076 7075 -1 -7175 7075 -1 -7076 7076 4 -7077 7076 -1 -7176 7076 -1 -7077 7077 4 -7078 7077 -1 -7177 7077 -1 -7078 7078 4 -7079 7078 -1 -7178 7078 -1 -7079 7079 4 -7080 7079 -1 -7179 7079 -1 -7080 7080 4 -7081 7080 -1 -7180 7080 -1 -7081 7081 4 -7082 7081 -1 -7181 7081 -1 -7082 7082 4 -7083 7082 -1 -7182 7082 -1 -7083 7083 4 -7084 7083 -1 -7183 7083 -1 -7084 7084 4 -7085 7084 -1 -7184 7084 -1 -7085 7085 4 -7086 7085 -1 -7185 7085 -1 -7086 7086 4 -7087 7086 -1 -7186 7086 -1 -7087 7087 4 -7088 7087 -1 -7187 7087 -1 -7088 7088 4 -7089 7088 -1 -7188 7088 -1 -7089 7089 4 -7090 7089 -1 -7189 7089 -1 -7090 7090 4 -7091 7090 -1 -7190 7090 -1 -7091 7091 4 -7092 7091 -1 -7191 7091 -1 -7092 7092 4 -7093 7092 -1 -7192 7092 -1 -7093 7093 4 -7094 7093 -1 -7193 7093 -1 -7094 7094 4 -7095 7094 -1 -7194 7094 -1 -7095 7095 4 -7096 7095 -1 -7195 7095 -1 -7096 7096 4 -7097 7096 -1 -7196 7096 -1 -7097 7097 4 -7098 7097 -1 -7197 7097 -1 -7098 7098 4 -7099 7098 -1 -7198 7098 -1 -7099 7099 4 -7100 7099 -1 -7199 7099 -1 -7100 7100 4 -7200 7100 -1 -7101 7101 4 -7102 7101 -1 -7201 7101 -1 -7102 7102 4 -7103 7102 -1 -7202 7102 -1 -7103 7103 4 -7104 7103 -1 -7203 7103 -1 -7104 7104 4 -7105 7104 -1 -7204 7104 -1 -7105 7105 4 -7106 7105 -1 -7205 7105 -1 -7106 7106 4 -7107 7106 -1 -7206 7106 -1 -7107 7107 4 -7108 7107 -1 -7207 7107 -1 -7108 7108 4 -7109 7108 -1 -7208 7108 -1 -7109 7109 4 -7110 7109 -1 -7209 7109 -1 -7110 7110 4 -7111 7110 -1 -7210 7110 -1 -7111 7111 4 -7112 7111 -1 -7211 7111 -1 -7112 7112 4 -7113 7112 -1 -7212 7112 -1 -7113 7113 4 -7114 7113 -1 -7213 7113 -1 -7114 7114 4 -7115 7114 -1 -7214 7114 -1 -7115 7115 4 -7116 7115 -1 -7215 7115 -1 -7116 7116 4 -7117 7116 -1 -7216 7116 -1 -7117 7117 4 -7118 7117 -1 -7217 7117 -1 -7118 7118 4 -7119 7118 -1 -7218 7118 -1 -7119 7119 4 -7120 7119 -1 -7219 7119 -1 -7120 7120 4 -7121 7120 -1 -7220 7120 -1 -7121 7121 4 -7122 7121 -1 -7221 7121 -1 -7122 7122 4 -7123 7122 -1 -7222 7122 -1 -7123 7123 4 -7124 7123 -1 -7223 7123 -1 -7124 7124 4 -7125 7124 -1 -7224 7124 -1 -7125 7125 4 -7126 7125 -1 -7225 7125 -1 -7126 7126 4 -7127 7126 -1 -7226 7126 -1 -7127 7127 4 -7128 7127 -1 -7227 7127 -1 -7128 7128 4 -7129 7128 -1 -7228 7128 -1 -7129 7129 4 -7130 7129 -1 -7229 7129 -1 -7130 7130 4 -7131 7130 -1 -7230 7130 -1 -7131 7131 4 -7132 7131 -1 -7231 7131 -1 -7132 7132 4 -7133 7132 -1 -7232 7132 -1 -7133 7133 4 -7134 7133 -1 -7233 7133 -1 -7134 7134 4 -7135 7134 -1 -7234 7134 -1 -7135 7135 4 -7136 7135 -1 -7235 7135 -1 -7136 7136 4 -7137 7136 -1 -7236 7136 -1 -7137 7137 4 -7138 7137 -1 -7237 7137 -1 -7138 7138 4 -7139 7138 -1 -7238 7138 -1 -7139 7139 4 -7140 7139 -1 -7239 7139 -1 -7140 7140 4 -7141 7140 -1 -7240 7140 -1 -7141 7141 4 -7142 7141 -1 -7241 7141 -1 -7142 7142 4 -7143 7142 -1 -7242 7142 -1 -7143 7143 4 -7144 7143 -1 -7243 7143 -1 -7144 7144 4 -7145 7144 -1 -7244 7144 -1 -7145 7145 4 -7146 7145 -1 -7245 7145 -1 -7146 7146 4 -7147 7146 -1 -7246 7146 -1 -7147 7147 4 -7148 7147 -1 -7247 7147 -1 -7148 7148 4 -7149 7148 -1 -7248 7148 -1 -7149 7149 4 -7150 7149 -1 -7249 7149 -1 -7150 7150 4 -7151 7150 -1 -7250 7150 -1 -7151 7151 4 -7152 7151 -1 -7251 7151 -1 -7152 7152 4 -7153 7152 -1 -7252 7152 -1 -7153 7153 4 -7154 7153 -1 -7253 7153 -1 -7154 7154 4 -7155 7154 -1 -7254 7154 -1 -7155 7155 4 -7156 7155 -1 -7255 7155 -1 -7156 7156 4 -7157 7156 -1 -7256 7156 -1 -7157 7157 4 -7158 7157 -1 -7257 7157 -1 -7158 7158 4 -7159 7158 -1 -7258 7158 -1 -7159 7159 4 -7160 7159 -1 -7259 7159 -1 -7160 7160 4 -7161 7160 -1 -7260 7160 -1 -7161 7161 4 -7162 7161 -1 -7261 7161 -1 -7162 7162 4 -7163 7162 -1 -7262 7162 -1 -7163 7163 4 -7164 7163 -1 -7263 7163 -1 -7164 7164 4 -7165 7164 -1 -7264 7164 -1 -7165 7165 4 -7166 7165 -1 -7265 7165 -1 -7166 7166 4 -7167 7166 -1 -7266 7166 -1 -7167 7167 4 -7168 7167 -1 -7267 7167 -1 -7168 7168 4 -7169 7168 -1 -7268 7168 -1 -7169 7169 4 -7170 7169 -1 -7269 7169 -1 -7170 7170 4 -7171 7170 -1 -7270 7170 -1 -7171 7171 4 -7172 7171 -1 -7271 7171 -1 -7172 7172 4 -7173 7172 -1 -7272 7172 -1 -7173 7173 4 -7174 7173 -1 -7273 7173 -1 -7174 7174 4 -7175 7174 -1 -7274 7174 -1 -7175 7175 4 -7176 7175 -1 -7275 7175 -1 -7176 7176 4 -7177 7176 -1 -7276 7176 -1 -7177 7177 4 -7178 7177 -1 -7277 7177 -1 -7178 7178 4 -7179 7178 -1 -7278 7178 -1 -7179 7179 4 -7180 7179 -1 -7279 7179 -1 -7180 7180 4 -7181 7180 -1 -7280 7180 -1 -7181 7181 4 -7182 7181 -1 -7281 7181 -1 -7182 7182 4 -7183 7182 -1 -7282 7182 -1 -7183 7183 4 -7184 7183 -1 -7283 7183 -1 -7184 7184 4 -7185 7184 -1 -7284 7184 -1 -7185 7185 4 -7186 7185 -1 -7285 7185 -1 -7186 7186 4 -7187 7186 -1 -7286 7186 -1 -7187 7187 4 -7188 7187 -1 -7287 7187 -1 -7188 7188 4 -7189 7188 -1 -7288 7188 -1 -7189 7189 4 -7190 7189 -1 -7289 7189 -1 -7190 7190 4 -7191 7190 -1 -7290 7190 -1 -7191 7191 4 -7192 7191 -1 -7291 7191 -1 -7192 7192 4 -7193 7192 -1 -7292 7192 -1 -7193 7193 4 -7194 7193 -1 -7293 7193 -1 -7194 7194 4 -7195 7194 -1 -7294 7194 -1 -7195 7195 4 -7196 7195 -1 -7295 7195 -1 -7196 7196 4 -7197 7196 -1 -7296 7196 -1 -7197 7197 4 -7198 7197 -1 -7297 7197 -1 -7198 7198 4 -7199 7198 -1 -7298 7198 -1 -7199 7199 4 -7200 7199 -1 -7299 7199 -1 -7200 7200 4 -7300 7200 -1 -7201 7201 4 -7202 7201 -1 -7301 7201 -1 -7202 7202 4 -7203 7202 -1 -7302 7202 -1 -7203 7203 4 -7204 7203 -1 -7303 7203 -1 -7204 7204 4 -7205 7204 -1 -7304 7204 -1 -7205 7205 4 -7206 7205 -1 -7305 7205 -1 -7206 7206 4 -7207 7206 -1 -7306 7206 -1 -7207 7207 4 -7208 7207 -1 -7307 7207 -1 -7208 7208 4 -7209 7208 -1 -7308 7208 -1 -7209 7209 4 -7210 7209 -1 -7309 7209 -1 -7210 7210 4 -7211 7210 -1 -7310 7210 -1 -7211 7211 4 -7212 7211 -1 -7311 7211 -1 -7212 7212 4 -7213 7212 -1 -7312 7212 -1 -7213 7213 4 -7214 7213 -1 -7313 7213 -1 -7214 7214 4 -7215 7214 -1 -7314 7214 -1 -7215 7215 4 -7216 7215 -1 -7315 7215 -1 -7216 7216 4 -7217 7216 -1 -7316 7216 -1 -7217 7217 4 -7218 7217 -1 -7317 7217 -1 -7218 7218 4 -7219 7218 -1 -7318 7218 -1 -7219 7219 4 -7220 7219 -1 -7319 7219 -1 -7220 7220 4 -7221 7220 -1 -7320 7220 -1 -7221 7221 4 -7222 7221 -1 -7321 7221 -1 -7222 7222 4 -7223 7222 -1 -7322 7222 -1 -7223 7223 4 -7224 7223 -1 -7323 7223 -1 -7224 7224 4 -7225 7224 -1 -7324 7224 -1 -7225 7225 4 -7226 7225 -1 -7325 7225 -1 -7226 7226 4 -7227 7226 -1 -7326 7226 -1 -7227 7227 4 -7228 7227 -1 -7327 7227 -1 -7228 7228 4 -7229 7228 -1 -7328 7228 -1 -7229 7229 4 -7230 7229 -1 -7329 7229 -1 -7230 7230 4 -7231 7230 -1 -7330 7230 -1 -7231 7231 4 -7232 7231 -1 -7331 7231 -1 -7232 7232 4 -7233 7232 -1 -7332 7232 -1 -7233 7233 4 -7234 7233 -1 -7333 7233 -1 -7234 7234 4 -7235 7234 -1 -7334 7234 -1 -7235 7235 4 -7236 7235 -1 -7335 7235 -1 -7236 7236 4 -7237 7236 -1 -7336 7236 -1 -7237 7237 4 -7238 7237 -1 -7337 7237 -1 -7238 7238 4 -7239 7238 -1 -7338 7238 -1 -7239 7239 4 -7240 7239 -1 -7339 7239 -1 -7240 7240 4 -7241 7240 -1 -7340 7240 -1 -7241 7241 4 -7242 7241 -1 -7341 7241 -1 -7242 7242 4 -7243 7242 -1 -7342 7242 -1 -7243 7243 4 -7244 7243 -1 -7343 7243 -1 -7244 7244 4 -7245 7244 -1 -7344 7244 -1 -7245 7245 4 -7246 7245 -1 -7345 7245 -1 -7246 7246 4 -7247 7246 -1 -7346 7246 -1 -7247 7247 4 -7248 7247 -1 -7347 7247 -1 -7248 7248 4 -7249 7248 -1 -7348 7248 -1 -7249 7249 4 -7250 7249 -1 -7349 7249 -1 -7250 7250 4 -7251 7250 -1 -7350 7250 -1 -7251 7251 4 -7252 7251 -1 -7351 7251 -1 -7252 7252 4 -7253 7252 -1 -7352 7252 -1 -7253 7253 4 -7254 7253 -1 -7353 7253 -1 -7254 7254 4 -7255 7254 -1 -7354 7254 -1 -7255 7255 4 -7256 7255 -1 -7355 7255 -1 -7256 7256 4 -7257 7256 -1 -7356 7256 -1 -7257 7257 4 -7258 7257 -1 -7357 7257 -1 -7258 7258 4 -7259 7258 -1 -7358 7258 -1 -7259 7259 4 -7260 7259 -1 -7359 7259 -1 -7260 7260 4 -7261 7260 -1 -7360 7260 -1 -7261 7261 4 -7262 7261 -1 -7361 7261 -1 -7262 7262 4 -7263 7262 -1 -7362 7262 -1 -7263 7263 4 -7264 7263 -1 -7363 7263 -1 -7264 7264 4 -7265 7264 -1 -7364 7264 -1 -7265 7265 4 -7266 7265 -1 -7365 7265 -1 -7266 7266 4 -7267 7266 -1 -7366 7266 -1 -7267 7267 4 -7268 7267 -1 -7367 7267 -1 -7268 7268 4 -7269 7268 -1 -7368 7268 -1 -7269 7269 4 -7270 7269 -1 -7369 7269 -1 -7270 7270 4 -7271 7270 -1 -7370 7270 -1 -7271 7271 4 -7272 7271 -1 -7371 7271 -1 -7272 7272 4 -7273 7272 -1 -7372 7272 -1 -7273 7273 4 -7274 7273 -1 -7373 7273 -1 -7274 7274 4 -7275 7274 -1 -7374 7274 -1 -7275 7275 4 -7276 7275 -1 -7375 7275 -1 -7276 7276 4 -7277 7276 -1 -7376 7276 -1 -7277 7277 4 -7278 7277 -1 -7377 7277 -1 -7278 7278 4 -7279 7278 -1 -7378 7278 -1 -7279 7279 4 -7280 7279 -1 -7379 7279 -1 -7280 7280 4 -7281 7280 -1 -7380 7280 -1 -7281 7281 4 -7282 7281 -1 -7381 7281 -1 -7282 7282 4 -7283 7282 -1 -7382 7282 -1 -7283 7283 4 -7284 7283 -1 -7383 7283 -1 -7284 7284 4 -7285 7284 -1 -7384 7284 -1 -7285 7285 4 -7286 7285 -1 -7385 7285 -1 -7286 7286 4 -7287 7286 -1 -7386 7286 -1 -7287 7287 4 -7288 7287 -1 -7387 7287 -1 -7288 7288 4 -7289 7288 -1 -7388 7288 -1 -7289 7289 4 -7290 7289 -1 -7389 7289 -1 -7290 7290 4 -7291 7290 -1 -7390 7290 -1 -7291 7291 4 -7292 7291 -1 -7391 7291 -1 -7292 7292 4 -7293 7292 -1 -7392 7292 -1 -7293 7293 4 -7294 7293 -1 -7393 7293 -1 -7294 7294 4 -7295 7294 -1 -7394 7294 -1 -7295 7295 4 -7296 7295 -1 -7395 7295 -1 -7296 7296 4 -7297 7296 -1 -7396 7296 -1 -7297 7297 4 -7298 7297 -1 -7397 7297 -1 -7298 7298 4 -7299 7298 -1 -7398 7298 -1 -7299 7299 4 -7300 7299 -1 -7399 7299 -1 -7300 7300 4 -7400 7300 -1 -7301 7301 4 -7302 7301 -1 -7401 7301 -1 -7302 7302 4 -7303 7302 -1 -7402 7302 -1 -7303 7303 4 -7304 7303 -1 -7403 7303 -1 -7304 7304 4 -7305 7304 -1 -7404 7304 -1 -7305 7305 4 -7306 7305 -1 -7405 7305 -1 -7306 7306 4 -7307 7306 -1 -7406 7306 -1 -7307 7307 4 -7308 7307 -1 -7407 7307 -1 -7308 7308 4 -7309 7308 -1 -7408 7308 -1 -7309 7309 4 -7310 7309 -1 -7409 7309 -1 -7310 7310 4 -7311 7310 -1 -7410 7310 -1 -7311 7311 4 -7312 7311 -1 -7411 7311 -1 -7312 7312 4 -7313 7312 -1 -7412 7312 -1 -7313 7313 4 -7314 7313 -1 -7413 7313 -1 -7314 7314 4 -7315 7314 -1 -7414 7314 -1 -7315 7315 4 -7316 7315 -1 -7415 7315 -1 -7316 7316 4 -7317 7316 -1 -7416 7316 -1 -7317 7317 4 -7318 7317 -1 -7417 7317 -1 -7318 7318 4 -7319 7318 -1 -7418 7318 -1 -7319 7319 4 -7320 7319 -1 -7419 7319 -1 -7320 7320 4 -7321 7320 -1 -7420 7320 -1 -7321 7321 4 -7322 7321 -1 -7421 7321 -1 -7322 7322 4 -7323 7322 -1 -7422 7322 -1 -7323 7323 4 -7324 7323 -1 -7423 7323 -1 -7324 7324 4 -7325 7324 -1 -7424 7324 -1 -7325 7325 4 -7326 7325 -1 -7425 7325 -1 -7326 7326 4 -7327 7326 -1 -7426 7326 -1 -7327 7327 4 -7328 7327 -1 -7427 7327 -1 -7328 7328 4 -7329 7328 -1 -7428 7328 -1 -7329 7329 4 -7330 7329 -1 -7429 7329 -1 -7330 7330 4 -7331 7330 -1 -7430 7330 -1 -7331 7331 4 -7332 7331 -1 -7431 7331 -1 -7332 7332 4 -7333 7332 -1 -7432 7332 -1 -7333 7333 4 -7334 7333 -1 -7433 7333 -1 -7334 7334 4 -7335 7334 -1 -7434 7334 -1 -7335 7335 4 -7336 7335 -1 -7435 7335 -1 -7336 7336 4 -7337 7336 -1 -7436 7336 -1 -7337 7337 4 -7338 7337 -1 -7437 7337 -1 -7338 7338 4 -7339 7338 -1 -7438 7338 -1 -7339 7339 4 -7340 7339 -1 -7439 7339 -1 -7340 7340 4 -7341 7340 -1 -7440 7340 -1 -7341 7341 4 -7342 7341 -1 -7441 7341 -1 -7342 7342 4 -7343 7342 -1 -7442 7342 -1 -7343 7343 4 -7344 7343 -1 -7443 7343 -1 -7344 7344 4 -7345 7344 -1 -7444 7344 -1 -7345 7345 4 -7346 7345 -1 -7445 7345 -1 -7346 7346 4 -7347 7346 -1 -7446 7346 -1 -7347 7347 4 -7348 7347 -1 -7447 7347 -1 -7348 7348 4 -7349 7348 -1 -7448 7348 -1 -7349 7349 4 -7350 7349 -1 -7449 7349 -1 -7350 7350 4 -7351 7350 -1 -7450 7350 -1 -7351 7351 4 -7352 7351 -1 -7451 7351 -1 -7352 7352 4 -7353 7352 -1 -7452 7352 -1 -7353 7353 4 -7354 7353 -1 -7453 7353 -1 -7354 7354 4 -7355 7354 -1 -7454 7354 -1 -7355 7355 4 -7356 7355 -1 -7455 7355 -1 -7356 7356 4 -7357 7356 -1 -7456 7356 -1 -7357 7357 4 -7358 7357 -1 -7457 7357 -1 -7358 7358 4 -7359 7358 -1 -7458 7358 -1 -7359 7359 4 -7360 7359 -1 -7459 7359 -1 -7360 7360 4 -7361 7360 -1 -7460 7360 -1 -7361 7361 4 -7362 7361 -1 -7461 7361 -1 -7362 7362 4 -7363 7362 -1 -7462 7362 -1 -7363 7363 4 -7364 7363 -1 -7463 7363 -1 -7364 7364 4 -7365 7364 -1 -7464 7364 -1 -7365 7365 4 -7366 7365 -1 -7465 7365 -1 -7366 7366 4 -7367 7366 -1 -7466 7366 -1 -7367 7367 4 -7368 7367 -1 -7467 7367 -1 -7368 7368 4 -7369 7368 -1 -7468 7368 -1 -7369 7369 4 -7370 7369 -1 -7469 7369 -1 -7370 7370 4 -7371 7370 -1 -7470 7370 -1 -7371 7371 4 -7372 7371 -1 -7471 7371 -1 -7372 7372 4 -7373 7372 -1 -7472 7372 -1 -7373 7373 4 -7374 7373 -1 -7473 7373 -1 -7374 7374 4 -7375 7374 -1 -7474 7374 -1 -7375 7375 4 -7376 7375 -1 -7475 7375 -1 -7376 7376 4 -7377 7376 -1 -7476 7376 -1 -7377 7377 4 -7378 7377 -1 -7477 7377 -1 -7378 7378 4 -7379 7378 -1 -7478 7378 -1 -7379 7379 4 -7380 7379 -1 -7479 7379 -1 -7380 7380 4 -7381 7380 -1 -7480 7380 -1 -7381 7381 4 -7382 7381 -1 -7481 7381 -1 -7382 7382 4 -7383 7382 -1 -7482 7382 -1 -7383 7383 4 -7384 7383 -1 -7483 7383 -1 -7384 7384 4 -7385 7384 -1 -7484 7384 -1 -7385 7385 4 -7386 7385 -1 -7485 7385 -1 -7386 7386 4 -7387 7386 -1 -7486 7386 -1 -7387 7387 4 -7388 7387 -1 -7487 7387 -1 -7388 7388 4 -7389 7388 -1 -7488 7388 -1 -7389 7389 4 -7390 7389 -1 -7489 7389 -1 -7390 7390 4 -7391 7390 -1 -7490 7390 -1 -7391 7391 4 -7392 7391 -1 -7491 7391 -1 -7392 7392 4 -7393 7392 -1 -7492 7392 -1 -7393 7393 4 -7394 7393 -1 -7493 7393 -1 -7394 7394 4 -7395 7394 -1 -7494 7394 -1 -7395 7395 4 -7396 7395 -1 -7495 7395 -1 -7396 7396 4 -7397 7396 -1 -7496 7396 -1 -7397 7397 4 -7398 7397 -1 -7497 7397 -1 -7398 7398 4 -7399 7398 -1 -7498 7398 -1 -7399 7399 4 -7400 7399 -1 -7499 7399 -1 -7400 7400 4 -7500 7400 -1 -7401 7401 4 -7402 7401 -1 -7501 7401 -1 -7402 7402 4 -7403 7402 -1 -7502 7402 -1 -7403 7403 4 -7404 7403 -1 -7503 7403 -1 -7404 7404 4 -7405 7404 -1 -7504 7404 -1 -7405 7405 4 -7406 7405 -1 -7505 7405 -1 -7406 7406 4 -7407 7406 -1 -7506 7406 -1 -7407 7407 4 -7408 7407 -1 -7507 7407 -1 -7408 7408 4 -7409 7408 -1 -7508 7408 -1 -7409 7409 4 -7410 7409 -1 -7509 7409 -1 -7410 7410 4 -7411 7410 -1 -7510 7410 -1 -7411 7411 4 -7412 7411 -1 -7511 7411 -1 -7412 7412 4 -7413 7412 -1 -7512 7412 -1 -7413 7413 4 -7414 7413 -1 -7513 7413 -1 -7414 7414 4 -7415 7414 -1 -7514 7414 -1 -7415 7415 4 -7416 7415 -1 -7515 7415 -1 -7416 7416 4 -7417 7416 -1 -7516 7416 -1 -7417 7417 4 -7418 7417 -1 -7517 7417 -1 -7418 7418 4 -7419 7418 -1 -7518 7418 -1 -7419 7419 4 -7420 7419 -1 -7519 7419 -1 -7420 7420 4 -7421 7420 -1 -7520 7420 -1 -7421 7421 4 -7422 7421 -1 -7521 7421 -1 -7422 7422 4 -7423 7422 -1 -7522 7422 -1 -7423 7423 4 -7424 7423 -1 -7523 7423 -1 -7424 7424 4 -7425 7424 -1 -7524 7424 -1 -7425 7425 4 -7426 7425 -1 -7525 7425 -1 -7426 7426 4 -7427 7426 -1 -7526 7426 -1 -7427 7427 4 -7428 7427 -1 -7527 7427 -1 -7428 7428 4 -7429 7428 -1 -7528 7428 -1 -7429 7429 4 -7430 7429 -1 -7529 7429 -1 -7430 7430 4 -7431 7430 -1 -7530 7430 -1 -7431 7431 4 -7432 7431 -1 -7531 7431 -1 -7432 7432 4 -7433 7432 -1 -7532 7432 -1 -7433 7433 4 -7434 7433 -1 -7533 7433 -1 -7434 7434 4 -7435 7434 -1 -7534 7434 -1 -7435 7435 4 -7436 7435 -1 -7535 7435 -1 -7436 7436 4 -7437 7436 -1 -7536 7436 -1 -7437 7437 4 -7438 7437 -1 -7537 7437 -1 -7438 7438 4 -7439 7438 -1 -7538 7438 -1 -7439 7439 4 -7440 7439 -1 -7539 7439 -1 -7440 7440 4 -7441 7440 -1 -7540 7440 -1 -7441 7441 4 -7442 7441 -1 -7541 7441 -1 -7442 7442 4 -7443 7442 -1 -7542 7442 -1 -7443 7443 4 -7444 7443 -1 -7543 7443 -1 -7444 7444 4 -7445 7444 -1 -7544 7444 -1 -7445 7445 4 -7446 7445 -1 -7545 7445 -1 -7446 7446 4 -7447 7446 -1 -7546 7446 -1 -7447 7447 4 -7448 7447 -1 -7547 7447 -1 -7448 7448 4 -7449 7448 -1 -7548 7448 -1 -7449 7449 4 -7450 7449 -1 -7549 7449 -1 -7450 7450 4 -7451 7450 -1 -7550 7450 -1 -7451 7451 4 -7452 7451 -1 -7551 7451 -1 -7452 7452 4 -7453 7452 -1 -7552 7452 -1 -7453 7453 4 -7454 7453 -1 -7553 7453 -1 -7454 7454 4 -7455 7454 -1 -7554 7454 -1 -7455 7455 4 -7456 7455 -1 -7555 7455 -1 -7456 7456 4 -7457 7456 -1 -7556 7456 -1 -7457 7457 4 -7458 7457 -1 -7557 7457 -1 -7458 7458 4 -7459 7458 -1 -7558 7458 -1 -7459 7459 4 -7460 7459 -1 -7559 7459 -1 -7460 7460 4 -7461 7460 -1 -7560 7460 -1 -7461 7461 4 -7462 7461 -1 -7561 7461 -1 -7462 7462 4 -7463 7462 -1 -7562 7462 -1 -7463 7463 4 -7464 7463 -1 -7563 7463 -1 -7464 7464 4 -7465 7464 -1 -7564 7464 -1 -7465 7465 4 -7466 7465 -1 -7565 7465 -1 -7466 7466 4 -7467 7466 -1 -7566 7466 -1 -7467 7467 4 -7468 7467 -1 -7567 7467 -1 -7468 7468 4 -7469 7468 -1 -7568 7468 -1 -7469 7469 4 -7470 7469 -1 -7569 7469 -1 -7470 7470 4 -7471 7470 -1 -7570 7470 -1 -7471 7471 4 -7472 7471 -1 -7571 7471 -1 -7472 7472 4 -7473 7472 -1 -7572 7472 -1 -7473 7473 4 -7474 7473 -1 -7573 7473 -1 -7474 7474 4 -7475 7474 -1 -7574 7474 -1 -7475 7475 4 -7476 7475 -1 -7575 7475 -1 -7476 7476 4 -7477 7476 -1 -7576 7476 -1 -7477 7477 4 -7478 7477 -1 -7577 7477 -1 -7478 7478 4 -7479 7478 -1 -7578 7478 -1 -7479 7479 4 -7480 7479 -1 -7579 7479 -1 -7480 7480 4 -7481 7480 -1 -7580 7480 -1 -7481 7481 4 -7482 7481 -1 -7581 7481 -1 -7482 7482 4 -7483 7482 -1 -7582 7482 -1 -7483 7483 4 -7484 7483 -1 -7583 7483 -1 -7484 7484 4 -7485 7484 -1 -7584 7484 -1 -7485 7485 4 -7486 7485 -1 -7585 7485 -1 -7486 7486 4 -7487 7486 -1 -7586 7486 -1 -7487 7487 4 -7488 7487 -1 -7587 7487 -1 -7488 7488 4 -7489 7488 -1 -7588 7488 -1 -7489 7489 4 -7490 7489 -1 -7589 7489 -1 -7490 7490 4 -7491 7490 -1 -7590 7490 -1 -7491 7491 4 -7492 7491 -1 -7591 7491 -1 -7492 7492 4 -7493 7492 -1 -7592 7492 -1 -7493 7493 4 -7494 7493 -1 -7593 7493 -1 -7494 7494 4 -7495 7494 -1 -7594 7494 -1 -7495 7495 4 -7496 7495 -1 -7595 7495 -1 -7496 7496 4 -7497 7496 -1 -7596 7496 -1 -7497 7497 4 -7498 7497 -1 -7597 7497 -1 -7498 7498 4 -7499 7498 -1 -7598 7498 -1 -7499 7499 4 -7500 7499 -1 -7599 7499 -1 -7500 7500 4 -7600 7500 -1 -7501 7501 4 -7502 7501 -1 -7601 7501 -1 -7502 7502 4 -7503 7502 -1 -7602 7502 -1 -7503 7503 4 -7504 7503 -1 -7603 7503 -1 -7504 7504 4 -7505 7504 -1 -7604 7504 -1 -7505 7505 4 -7506 7505 -1 -7605 7505 -1 -7506 7506 4 -7507 7506 -1 -7606 7506 -1 -7507 7507 4 -7508 7507 -1 -7607 7507 -1 -7508 7508 4 -7509 7508 -1 -7608 7508 -1 -7509 7509 4 -7510 7509 -1 -7609 7509 -1 -7510 7510 4 -7511 7510 -1 -7610 7510 -1 -7511 7511 4 -7512 7511 -1 -7611 7511 -1 -7512 7512 4 -7513 7512 -1 -7612 7512 -1 -7513 7513 4 -7514 7513 -1 -7613 7513 -1 -7514 7514 4 -7515 7514 -1 -7614 7514 -1 -7515 7515 4 -7516 7515 -1 -7615 7515 -1 -7516 7516 4 -7517 7516 -1 -7616 7516 -1 -7517 7517 4 -7518 7517 -1 -7617 7517 -1 -7518 7518 4 -7519 7518 -1 -7618 7518 -1 -7519 7519 4 -7520 7519 -1 -7619 7519 -1 -7520 7520 4 -7521 7520 -1 -7620 7520 -1 -7521 7521 4 -7522 7521 -1 -7621 7521 -1 -7522 7522 4 -7523 7522 -1 -7622 7522 -1 -7523 7523 4 -7524 7523 -1 -7623 7523 -1 -7524 7524 4 -7525 7524 -1 -7624 7524 -1 -7525 7525 4 -7526 7525 -1 -7625 7525 -1 -7526 7526 4 -7527 7526 -1 -7626 7526 -1 -7527 7527 4 -7528 7527 -1 -7627 7527 -1 -7528 7528 4 -7529 7528 -1 -7628 7528 -1 -7529 7529 4 -7530 7529 -1 -7629 7529 -1 -7530 7530 4 -7531 7530 -1 -7630 7530 -1 -7531 7531 4 -7532 7531 -1 -7631 7531 -1 -7532 7532 4 -7533 7532 -1 -7632 7532 -1 -7533 7533 4 -7534 7533 -1 -7633 7533 -1 -7534 7534 4 -7535 7534 -1 -7634 7534 -1 -7535 7535 4 -7536 7535 -1 -7635 7535 -1 -7536 7536 4 -7537 7536 -1 -7636 7536 -1 -7537 7537 4 -7538 7537 -1 -7637 7537 -1 -7538 7538 4 -7539 7538 -1 -7638 7538 -1 -7539 7539 4 -7540 7539 -1 -7639 7539 -1 -7540 7540 4 -7541 7540 -1 -7640 7540 -1 -7541 7541 4 -7542 7541 -1 -7641 7541 -1 -7542 7542 4 -7543 7542 -1 -7642 7542 -1 -7543 7543 4 -7544 7543 -1 -7643 7543 -1 -7544 7544 4 -7545 7544 -1 -7644 7544 -1 -7545 7545 4 -7546 7545 -1 -7645 7545 -1 -7546 7546 4 -7547 7546 -1 -7646 7546 -1 -7547 7547 4 -7548 7547 -1 -7647 7547 -1 -7548 7548 4 -7549 7548 -1 -7648 7548 -1 -7549 7549 4 -7550 7549 -1 -7649 7549 -1 -7550 7550 4 -7551 7550 -1 -7650 7550 -1 -7551 7551 4 -7552 7551 -1 -7651 7551 -1 -7552 7552 4 -7553 7552 -1 -7652 7552 -1 -7553 7553 4 -7554 7553 -1 -7653 7553 -1 -7554 7554 4 -7555 7554 -1 -7654 7554 -1 -7555 7555 4 -7556 7555 -1 -7655 7555 -1 -7556 7556 4 -7557 7556 -1 -7656 7556 -1 -7557 7557 4 -7558 7557 -1 -7657 7557 -1 -7558 7558 4 -7559 7558 -1 -7658 7558 -1 -7559 7559 4 -7560 7559 -1 -7659 7559 -1 -7560 7560 4 -7561 7560 -1 -7660 7560 -1 -7561 7561 4 -7562 7561 -1 -7661 7561 -1 -7562 7562 4 -7563 7562 -1 -7662 7562 -1 -7563 7563 4 -7564 7563 -1 -7663 7563 -1 -7564 7564 4 -7565 7564 -1 -7664 7564 -1 -7565 7565 4 -7566 7565 -1 -7665 7565 -1 -7566 7566 4 -7567 7566 -1 -7666 7566 -1 -7567 7567 4 -7568 7567 -1 -7667 7567 -1 -7568 7568 4 -7569 7568 -1 -7668 7568 -1 -7569 7569 4 -7570 7569 -1 -7669 7569 -1 -7570 7570 4 -7571 7570 -1 -7670 7570 -1 -7571 7571 4 -7572 7571 -1 -7671 7571 -1 -7572 7572 4 -7573 7572 -1 -7672 7572 -1 -7573 7573 4 -7574 7573 -1 -7673 7573 -1 -7574 7574 4 -7575 7574 -1 -7674 7574 -1 -7575 7575 4 -7576 7575 -1 -7675 7575 -1 -7576 7576 4 -7577 7576 -1 -7676 7576 -1 -7577 7577 4 -7578 7577 -1 -7677 7577 -1 -7578 7578 4 -7579 7578 -1 -7678 7578 -1 -7579 7579 4 -7580 7579 -1 -7679 7579 -1 -7580 7580 4 -7581 7580 -1 -7680 7580 -1 -7581 7581 4 -7582 7581 -1 -7681 7581 -1 -7582 7582 4 -7583 7582 -1 -7682 7582 -1 -7583 7583 4 -7584 7583 -1 -7683 7583 -1 -7584 7584 4 -7585 7584 -1 -7684 7584 -1 -7585 7585 4 -7586 7585 -1 -7685 7585 -1 -7586 7586 4 -7587 7586 -1 -7686 7586 -1 -7587 7587 4 -7588 7587 -1 -7687 7587 -1 -7588 7588 4 -7589 7588 -1 -7688 7588 -1 -7589 7589 4 -7590 7589 -1 -7689 7589 -1 -7590 7590 4 -7591 7590 -1 -7690 7590 -1 -7591 7591 4 -7592 7591 -1 -7691 7591 -1 -7592 7592 4 -7593 7592 -1 -7692 7592 -1 -7593 7593 4 -7594 7593 -1 -7693 7593 -1 -7594 7594 4 -7595 7594 -1 -7694 7594 -1 -7595 7595 4 -7596 7595 -1 -7695 7595 -1 -7596 7596 4 -7597 7596 -1 -7696 7596 -1 -7597 7597 4 -7598 7597 -1 -7697 7597 -1 -7598 7598 4 -7599 7598 -1 -7698 7598 -1 -7599 7599 4 -7600 7599 -1 -7699 7599 -1 -7600 7600 4 -7700 7600 -1 -7601 7601 4 -7602 7601 -1 -7701 7601 -1 -7602 7602 4 -7603 7602 -1 -7702 7602 -1 -7603 7603 4 -7604 7603 -1 -7703 7603 -1 -7604 7604 4 -7605 7604 -1 -7704 7604 -1 -7605 7605 4 -7606 7605 -1 -7705 7605 -1 -7606 7606 4 -7607 7606 -1 -7706 7606 -1 -7607 7607 4 -7608 7607 -1 -7707 7607 -1 -7608 7608 4 -7609 7608 -1 -7708 7608 -1 -7609 7609 4 -7610 7609 -1 -7709 7609 -1 -7610 7610 4 -7611 7610 -1 -7710 7610 -1 -7611 7611 4 -7612 7611 -1 -7711 7611 -1 -7612 7612 4 -7613 7612 -1 -7712 7612 -1 -7613 7613 4 -7614 7613 -1 -7713 7613 -1 -7614 7614 4 -7615 7614 -1 -7714 7614 -1 -7615 7615 4 -7616 7615 -1 -7715 7615 -1 -7616 7616 4 -7617 7616 -1 -7716 7616 -1 -7617 7617 4 -7618 7617 -1 -7717 7617 -1 -7618 7618 4 -7619 7618 -1 -7718 7618 -1 -7619 7619 4 -7620 7619 -1 -7719 7619 -1 -7620 7620 4 -7621 7620 -1 -7720 7620 -1 -7621 7621 4 -7622 7621 -1 -7721 7621 -1 -7622 7622 4 -7623 7622 -1 -7722 7622 -1 -7623 7623 4 -7624 7623 -1 -7723 7623 -1 -7624 7624 4 -7625 7624 -1 -7724 7624 -1 -7625 7625 4 -7626 7625 -1 -7725 7625 -1 -7626 7626 4 -7627 7626 -1 -7726 7626 -1 -7627 7627 4 -7628 7627 -1 -7727 7627 -1 -7628 7628 4 -7629 7628 -1 -7728 7628 -1 -7629 7629 4 -7630 7629 -1 -7729 7629 -1 -7630 7630 4 -7631 7630 -1 -7730 7630 -1 -7631 7631 4 -7632 7631 -1 -7731 7631 -1 -7632 7632 4 -7633 7632 -1 -7732 7632 -1 -7633 7633 4 -7634 7633 -1 -7733 7633 -1 -7634 7634 4 -7635 7634 -1 -7734 7634 -1 -7635 7635 4 -7636 7635 -1 -7735 7635 -1 -7636 7636 4 -7637 7636 -1 -7736 7636 -1 -7637 7637 4 -7638 7637 -1 -7737 7637 -1 -7638 7638 4 -7639 7638 -1 -7738 7638 -1 -7639 7639 4 -7640 7639 -1 -7739 7639 -1 -7640 7640 4 -7641 7640 -1 -7740 7640 -1 -7641 7641 4 -7642 7641 -1 -7741 7641 -1 -7642 7642 4 -7643 7642 -1 -7742 7642 -1 -7643 7643 4 -7644 7643 -1 -7743 7643 -1 -7644 7644 4 -7645 7644 -1 -7744 7644 -1 -7645 7645 4 -7646 7645 -1 -7745 7645 -1 -7646 7646 4 -7647 7646 -1 -7746 7646 -1 -7647 7647 4 -7648 7647 -1 -7747 7647 -1 -7648 7648 4 -7649 7648 -1 -7748 7648 -1 -7649 7649 4 -7650 7649 -1 -7749 7649 -1 -7650 7650 4 -7651 7650 -1 -7750 7650 -1 -7651 7651 4 -7652 7651 -1 -7751 7651 -1 -7652 7652 4 -7653 7652 -1 -7752 7652 -1 -7653 7653 4 -7654 7653 -1 -7753 7653 -1 -7654 7654 4 -7655 7654 -1 -7754 7654 -1 -7655 7655 4 -7656 7655 -1 -7755 7655 -1 -7656 7656 4 -7657 7656 -1 -7756 7656 -1 -7657 7657 4 -7658 7657 -1 -7757 7657 -1 -7658 7658 4 -7659 7658 -1 -7758 7658 -1 -7659 7659 4 -7660 7659 -1 -7759 7659 -1 -7660 7660 4 -7661 7660 -1 -7760 7660 -1 -7661 7661 4 -7662 7661 -1 -7761 7661 -1 -7662 7662 4 -7663 7662 -1 -7762 7662 -1 -7663 7663 4 -7664 7663 -1 -7763 7663 -1 -7664 7664 4 -7665 7664 -1 -7764 7664 -1 -7665 7665 4 -7666 7665 -1 -7765 7665 -1 -7666 7666 4 -7667 7666 -1 -7766 7666 -1 -7667 7667 4 -7668 7667 -1 -7767 7667 -1 -7668 7668 4 -7669 7668 -1 -7768 7668 -1 -7669 7669 4 -7670 7669 -1 -7769 7669 -1 -7670 7670 4 -7671 7670 -1 -7770 7670 -1 -7671 7671 4 -7672 7671 -1 -7771 7671 -1 -7672 7672 4 -7673 7672 -1 -7772 7672 -1 -7673 7673 4 -7674 7673 -1 -7773 7673 -1 -7674 7674 4 -7675 7674 -1 -7774 7674 -1 -7675 7675 4 -7676 7675 -1 -7775 7675 -1 -7676 7676 4 -7677 7676 -1 -7776 7676 -1 -7677 7677 4 -7678 7677 -1 -7777 7677 -1 -7678 7678 4 -7679 7678 -1 -7778 7678 -1 -7679 7679 4 -7680 7679 -1 -7779 7679 -1 -7680 7680 4 -7681 7680 -1 -7780 7680 -1 -7681 7681 4 -7682 7681 -1 -7781 7681 -1 -7682 7682 4 -7683 7682 -1 -7782 7682 -1 -7683 7683 4 -7684 7683 -1 -7783 7683 -1 -7684 7684 4 -7685 7684 -1 -7784 7684 -1 -7685 7685 4 -7686 7685 -1 -7785 7685 -1 -7686 7686 4 -7687 7686 -1 -7786 7686 -1 -7687 7687 4 -7688 7687 -1 -7787 7687 -1 -7688 7688 4 -7689 7688 -1 -7788 7688 -1 -7689 7689 4 -7690 7689 -1 -7789 7689 -1 -7690 7690 4 -7691 7690 -1 -7790 7690 -1 -7691 7691 4 -7692 7691 -1 -7791 7691 -1 -7692 7692 4 -7693 7692 -1 -7792 7692 -1 -7693 7693 4 -7694 7693 -1 -7793 7693 -1 -7694 7694 4 -7695 7694 -1 -7794 7694 -1 -7695 7695 4 -7696 7695 -1 -7795 7695 -1 -7696 7696 4 -7697 7696 -1 -7796 7696 -1 -7697 7697 4 -7698 7697 -1 -7797 7697 -1 -7698 7698 4 -7699 7698 -1 -7798 7698 -1 -7699 7699 4 -7700 7699 -1 -7799 7699 -1 -7700 7700 4 -7800 7700 -1 -7701 7701 4 -7702 7701 -1 -7801 7701 -1 -7702 7702 4 -7703 7702 -1 -7802 7702 -1 -7703 7703 4 -7704 7703 -1 -7803 7703 -1 -7704 7704 4 -7705 7704 -1 -7804 7704 -1 -7705 7705 4 -7706 7705 -1 -7805 7705 -1 -7706 7706 4 -7707 7706 -1 -7806 7706 -1 -7707 7707 4 -7708 7707 -1 -7807 7707 -1 -7708 7708 4 -7709 7708 -1 -7808 7708 -1 -7709 7709 4 -7710 7709 -1 -7809 7709 -1 -7710 7710 4 -7711 7710 -1 -7810 7710 -1 -7711 7711 4 -7712 7711 -1 -7811 7711 -1 -7712 7712 4 -7713 7712 -1 -7812 7712 -1 -7713 7713 4 -7714 7713 -1 -7813 7713 -1 -7714 7714 4 -7715 7714 -1 -7814 7714 -1 -7715 7715 4 -7716 7715 -1 -7815 7715 -1 -7716 7716 4 -7717 7716 -1 -7816 7716 -1 -7717 7717 4 -7718 7717 -1 -7817 7717 -1 -7718 7718 4 -7719 7718 -1 -7818 7718 -1 -7719 7719 4 -7720 7719 -1 -7819 7719 -1 -7720 7720 4 -7721 7720 -1 -7820 7720 -1 -7721 7721 4 -7722 7721 -1 -7821 7721 -1 -7722 7722 4 -7723 7722 -1 -7822 7722 -1 -7723 7723 4 -7724 7723 -1 -7823 7723 -1 -7724 7724 4 -7725 7724 -1 -7824 7724 -1 -7725 7725 4 -7726 7725 -1 -7825 7725 -1 -7726 7726 4 -7727 7726 -1 -7826 7726 -1 -7727 7727 4 -7728 7727 -1 -7827 7727 -1 -7728 7728 4 -7729 7728 -1 -7828 7728 -1 -7729 7729 4 -7730 7729 -1 -7829 7729 -1 -7730 7730 4 -7731 7730 -1 -7830 7730 -1 -7731 7731 4 -7732 7731 -1 -7831 7731 -1 -7732 7732 4 -7733 7732 -1 -7832 7732 -1 -7733 7733 4 -7734 7733 -1 -7833 7733 -1 -7734 7734 4 -7735 7734 -1 -7834 7734 -1 -7735 7735 4 -7736 7735 -1 -7835 7735 -1 -7736 7736 4 -7737 7736 -1 -7836 7736 -1 -7737 7737 4 -7738 7737 -1 -7837 7737 -1 -7738 7738 4 -7739 7738 -1 -7838 7738 -1 -7739 7739 4 -7740 7739 -1 -7839 7739 -1 -7740 7740 4 -7741 7740 -1 -7840 7740 -1 -7741 7741 4 -7742 7741 -1 -7841 7741 -1 -7742 7742 4 -7743 7742 -1 -7842 7742 -1 -7743 7743 4 -7744 7743 -1 -7843 7743 -1 -7744 7744 4 -7745 7744 -1 -7844 7744 -1 -7745 7745 4 -7746 7745 -1 -7845 7745 -1 -7746 7746 4 -7747 7746 -1 -7846 7746 -1 -7747 7747 4 -7748 7747 -1 -7847 7747 -1 -7748 7748 4 -7749 7748 -1 -7848 7748 -1 -7749 7749 4 -7750 7749 -1 -7849 7749 -1 -7750 7750 4 -7751 7750 -1 -7850 7750 -1 -7751 7751 4 -7752 7751 -1 -7851 7751 -1 -7752 7752 4 -7753 7752 -1 -7852 7752 -1 -7753 7753 4 -7754 7753 -1 -7853 7753 -1 -7754 7754 4 -7755 7754 -1 -7854 7754 -1 -7755 7755 4 -7756 7755 -1 -7855 7755 -1 -7756 7756 4 -7757 7756 -1 -7856 7756 -1 -7757 7757 4 -7758 7757 -1 -7857 7757 -1 -7758 7758 4 -7759 7758 -1 -7858 7758 -1 -7759 7759 4 -7760 7759 -1 -7859 7759 -1 -7760 7760 4 -7761 7760 -1 -7860 7760 -1 -7761 7761 4 -7762 7761 -1 -7861 7761 -1 -7762 7762 4 -7763 7762 -1 -7862 7762 -1 -7763 7763 4 -7764 7763 -1 -7863 7763 -1 -7764 7764 4 -7765 7764 -1 -7864 7764 -1 -7765 7765 4 -7766 7765 -1 -7865 7765 -1 -7766 7766 4 -7767 7766 -1 -7866 7766 -1 -7767 7767 4 -7768 7767 -1 -7867 7767 -1 -7768 7768 4 -7769 7768 -1 -7868 7768 -1 -7769 7769 4 -7770 7769 -1 -7869 7769 -1 -7770 7770 4 -7771 7770 -1 -7870 7770 -1 -7771 7771 4 -7772 7771 -1 -7871 7771 -1 -7772 7772 4 -7773 7772 -1 -7872 7772 -1 -7773 7773 4 -7774 7773 -1 -7873 7773 -1 -7774 7774 4 -7775 7774 -1 -7874 7774 -1 -7775 7775 4 -7776 7775 -1 -7875 7775 -1 -7776 7776 4 -7777 7776 -1 -7876 7776 -1 -7777 7777 4 -7778 7777 -1 -7877 7777 -1 -7778 7778 4 -7779 7778 -1 -7878 7778 -1 -7779 7779 4 -7780 7779 -1 -7879 7779 -1 -7780 7780 4 -7781 7780 -1 -7880 7780 -1 -7781 7781 4 -7782 7781 -1 -7881 7781 -1 -7782 7782 4 -7783 7782 -1 -7882 7782 -1 -7783 7783 4 -7784 7783 -1 -7883 7783 -1 -7784 7784 4 -7785 7784 -1 -7884 7784 -1 -7785 7785 4 -7786 7785 -1 -7885 7785 -1 -7786 7786 4 -7787 7786 -1 -7886 7786 -1 -7787 7787 4 -7788 7787 -1 -7887 7787 -1 -7788 7788 4 -7789 7788 -1 -7888 7788 -1 -7789 7789 4 -7790 7789 -1 -7889 7789 -1 -7790 7790 4 -7791 7790 -1 -7890 7790 -1 -7791 7791 4 -7792 7791 -1 -7891 7791 -1 -7792 7792 4 -7793 7792 -1 -7892 7792 -1 -7793 7793 4 -7794 7793 -1 -7893 7793 -1 -7794 7794 4 -7795 7794 -1 -7894 7794 -1 -7795 7795 4 -7796 7795 -1 -7895 7795 -1 -7796 7796 4 -7797 7796 -1 -7896 7796 -1 -7797 7797 4 -7798 7797 -1 -7897 7797 -1 -7798 7798 4 -7799 7798 -1 -7898 7798 -1 -7799 7799 4 -7800 7799 -1 -7899 7799 -1 -7800 7800 4 -7900 7800 -1 -7801 7801 4 -7802 7801 -1 -7901 7801 -1 -7802 7802 4 -7803 7802 -1 -7902 7802 -1 -7803 7803 4 -7804 7803 -1 -7903 7803 -1 -7804 7804 4 -7805 7804 -1 -7904 7804 -1 -7805 7805 4 -7806 7805 -1 -7905 7805 -1 -7806 7806 4 -7807 7806 -1 -7906 7806 -1 -7807 7807 4 -7808 7807 -1 -7907 7807 -1 -7808 7808 4 -7809 7808 -1 -7908 7808 -1 -7809 7809 4 -7810 7809 -1 -7909 7809 -1 -7810 7810 4 -7811 7810 -1 -7910 7810 -1 -7811 7811 4 -7812 7811 -1 -7911 7811 -1 -7812 7812 4 -7813 7812 -1 -7912 7812 -1 -7813 7813 4 -7814 7813 -1 -7913 7813 -1 -7814 7814 4 -7815 7814 -1 -7914 7814 -1 -7815 7815 4 -7816 7815 -1 -7915 7815 -1 -7816 7816 4 -7817 7816 -1 -7916 7816 -1 -7817 7817 4 -7818 7817 -1 -7917 7817 -1 -7818 7818 4 -7819 7818 -1 -7918 7818 -1 -7819 7819 4 -7820 7819 -1 -7919 7819 -1 -7820 7820 4 -7821 7820 -1 -7920 7820 -1 -7821 7821 4 -7822 7821 -1 -7921 7821 -1 -7822 7822 4 -7823 7822 -1 -7922 7822 -1 -7823 7823 4 -7824 7823 -1 -7923 7823 -1 -7824 7824 4 -7825 7824 -1 -7924 7824 -1 -7825 7825 4 -7826 7825 -1 -7925 7825 -1 -7826 7826 4 -7827 7826 -1 -7926 7826 -1 -7827 7827 4 -7828 7827 -1 -7927 7827 -1 -7828 7828 4 -7829 7828 -1 -7928 7828 -1 -7829 7829 4 -7830 7829 -1 -7929 7829 -1 -7830 7830 4 -7831 7830 -1 -7930 7830 -1 -7831 7831 4 -7832 7831 -1 -7931 7831 -1 -7832 7832 4 -7833 7832 -1 -7932 7832 -1 -7833 7833 4 -7834 7833 -1 -7933 7833 -1 -7834 7834 4 -7835 7834 -1 -7934 7834 -1 -7835 7835 4 -7836 7835 -1 -7935 7835 -1 -7836 7836 4 -7837 7836 -1 -7936 7836 -1 -7837 7837 4 -7838 7837 -1 -7937 7837 -1 -7838 7838 4 -7839 7838 -1 -7938 7838 -1 -7839 7839 4 -7840 7839 -1 -7939 7839 -1 -7840 7840 4 -7841 7840 -1 -7940 7840 -1 -7841 7841 4 -7842 7841 -1 -7941 7841 -1 -7842 7842 4 -7843 7842 -1 -7942 7842 -1 -7843 7843 4 -7844 7843 -1 -7943 7843 -1 -7844 7844 4 -7845 7844 -1 -7944 7844 -1 -7845 7845 4 -7846 7845 -1 -7945 7845 -1 -7846 7846 4 -7847 7846 -1 -7946 7846 -1 -7847 7847 4 -7848 7847 -1 -7947 7847 -1 -7848 7848 4 -7849 7848 -1 -7948 7848 -1 -7849 7849 4 -7850 7849 -1 -7949 7849 -1 -7850 7850 4 -7851 7850 -1 -7950 7850 -1 -7851 7851 4 -7852 7851 -1 -7951 7851 -1 -7852 7852 4 -7853 7852 -1 -7952 7852 -1 -7853 7853 4 -7854 7853 -1 -7953 7853 -1 -7854 7854 4 -7855 7854 -1 -7954 7854 -1 -7855 7855 4 -7856 7855 -1 -7955 7855 -1 -7856 7856 4 -7857 7856 -1 -7956 7856 -1 -7857 7857 4 -7858 7857 -1 -7957 7857 -1 -7858 7858 4 -7859 7858 -1 -7958 7858 -1 -7859 7859 4 -7860 7859 -1 -7959 7859 -1 -7860 7860 4 -7861 7860 -1 -7960 7860 -1 -7861 7861 4 -7862 7861 -1 -7961 7861 -1 -7862 7862 4 -7863 7862 -1 -7962 7862 -1 -7863 7863 4 -7864 7863 -1 -7963 7863 -1 -7864 7864 4 -7865 7864 -1 -7964 7864 -1 -7865 7865 4 -7866 7865 -1 -7965 7865 -1 -7866 7866 4 -7867 7866 -1 -7966 7866 -1 -7867 7867 4 -7868 7867 -1 -7967 7867 -1 -7868 7868 4 -7869 7868 -1 -7968 7868 -1 -7869 7869 4 -7870 7869 -1 -7969 7869 -1 -7870 7870 4 -7871 7870 -1 -7970 7870 -1 -7871 7871 4 -7872 7871 -1 -7971 7871 -1 -7872 7872 4 -7873 7872 -1 -7972 7872 -1 -7873 7873 4 -7874 7873 -1 -7973 7873 -1 -7874 7874 4 -7875 7874 -1 -7974 7874 -1 -7875 7875 4 -7876 7875 -1 -7975 7875 -1 -7876 7876 4 -7877 7876 -1 -7976 7876 -1 -7877 7877 4 -7878 7877 -1 -7977 7877 -1 -7878 7878 4 -7879 7878 -1 -7978 7878 -1 -7879 7879 4 -7880 7879 -1 -7979 7879 -1 -7880 7880 4 -7881 7880 -1 -7980 7880 -1 -7881 7881 4 -7882 7881 -1 -7981 7881 -1 -7882 7882 4 -7883 7882 -1 -7982 7882 -1 -7883 7883 4 -7884 7883 -1 -7983 7883 -1 -7884 7884 4 -7885 7884 -1 -7984 7884 -1 -7885 7885 4 -7886 7885 -1 -7985 7885 -1 -7886 7886 4 -7887 7886 -1 -7986 7886 -1 -7887 7887 4 -7888 7887 -1 -7987 7887 -1 -7888 7888 4 -7889 7888 -1 -7988 7888 -1 -7889 7889 4 -7890 7889 -1 -7989 7889 -1 -7890 7890 4 -7891 7890 -1 -7990 7890 -1 -7891 7891 4 -7892 7891 -1 -7991 7891 -1 -7892 7892 4 -7893 7892 -1 -7992 7892 -1 -7893 7893 4 -7894 7893 -1 -7993 7893 -1 -7894 7894 4 -7895 7894 -1 -7994 7894 -1 -7895 7895 4 -7896 7895 -1 -7995 7895 -1 -7896 7896 4 -7897 7896 -1 -7996 7896 -1 -7897 7897 4 -7898 7897 -1 -7997 7897 -1 -7898 7898 4 -7899 7898 -1 -7998 7898 -1 -7899 7899 4 -7900 7899 -1 -7999 7899 -1 -7900 7900 4 -8000 7900 -1 -7901 7901 4 -7902 7901 -1 -8001 7901 -1 -7902 7902 4 -7903 7902 -1 -8002 7902 -1 -7903 7903 4 -7904 7903 -1 -8003 7903 -1 -7904 7904 4 -7905 7904 -1 -8004 7904 -1 -7905 7905 4 -7906 7905 -1 -8005 7905 -1 -7906 7906 4 -7907 7906 -1 -8006 7906 -1 -7907 7907 4 -7908 7907 -1 -8007 7907 -1 -7908 7908 4 -7909 7908 -1 -8008 7908 -1 -7909 7909 4 -7910 7909 -1 -8009 7909 -1 -7910 7910 4 -7911 7910 -1 -8010 7910 -1 -7911 7911 4 -7912 7911 -1 -8011 7911 -1 -7912 7912 4 -7913 7912 -1 -8012 7912 -1 -7913 7913 4 -7914 7913 -1 -8013 7913 -1 -7914 7914 4 -7915 7914 -1 -8014 7914 -1 -7915 7915 4 -7916 7915 -1 -8015 7915 -1 -7916 7916 4 -7917 7916 -1 -8016 7916 -1 -7917 7917 4 -7918 7917 -1 -8017 7917 -1 -7918 7918 4 -7919 7918 -1 -8018 7918 -1 -7919 7919 4 -7920 7919 -1 -8019 7919 -1 -7920 7920 4 -7921 7920 -1 -8020 7920 -1 -7921 7921 4 -7922 7921 -1 -8021 7921 -1 -7922 7922 4 -7923 7922 -1 -8022 7922 -1 -7923 7923 4 -7924 7923 -1 -8023 7923 -1 -7924 7924 4 -7925 7924 -1 -8024 7924 -1 -7925 7925 4 -7926 7925 -1 -8025 7925 -1 -7926 7926 4 -7927 7926 -1 -8026 7926 -1 -7927 7927 4 -7928 7927 -1 -8027 7927 -1 -7928 7928 4 -7929 7928 -1 -8028 7928 -1 -7929 7929 4 -7930 7929 -1 -8029 7929 -1 -7930 7930 4 -7931 7930 -1 -8030 7930 -1 -7931 7931 4 -7932 7931 -1 -8031 7931 -1 -7932 7932 4 -7933 7932 -1 -8032 7932 -1 -7933 7933 4 -7934 7933 -1 -8033 7933 -1 -7934 7934 4 -7935 7934 -1 -8034 7934 -1 -7935 7935 4 -7936 7935 -1 -8035 7935 -1 -7936 7936 4 -7937 7936 -1 -8036 7936 -1 -7937 7937 4 -7938 7937 -1 -8037 7937 -1 -7938 7938 4 -7939 7938 -1 -8038 7938 -1 -7939 7939 4 -7940 7939 -1 -8039 7939 -1 -7940 7940 4 -7941 7940 -1 -8040 7940 -1 -7941 7941 4 -7942 7941 -1 -8041 7941 -1 -7942 7942 4 -7943 7942 -1 -8042 7942 -1 -7943 7943 4 -7944 7943 -1 -8043 7943 -1 -7944 7944 4 -7945 7944 -1 -8044 7944 -1 -7945 7945 4 -7946 7945 -1 -8045 7945 -1 -7946 7946 4 -7947 7946 -1 -8046 7946 -1 -7947 7947 4 -7948 7947 -1 -8047 7947 -1 -7948 7948 4 -7949 7948 -1 -8048 7948 -1 -7949 7949 4 -7950 7949 -1 -8049 7949 -1 -7950 7950 4 -7951 7950 -1 -8050 7950 -1 -7951 7951 4 -7952 7951 -1 -8051 7951 -1 -7952 7952 4 -7953 7952 -1 -8052 7952 -1 -7953 7953 4 -7954 7953 -1 -8053 7953 -1 -7954 7954 4 -7955 7954 -1 -8054 7954 -1 -7955 7955 4 -7956 7955 -1 -8055 7955 -1 -7956 7956 4 -7957 7956 -1 -8056 7956 -1 -7957 7957 4 -7958 7957 -1 -8057 7957 -1 -7958 7958 4 -7959 7958 -1 -8058 7958 -1 -7959 7959 4 -7960 7959 -1 -8059 7959 -1 -7960 7960 4 -7961 7960 -1 -8060 7960 -1 -7961 7961 4 -7962 7961 -1 -8061 7961 -1 -7962 7962 4 -7963 7962 -1 -8062 7962 -1 -7963 7963 4 -7964 7963 -1 -8063 7963 -1 -7964 7964 4 -7965 7964 -1 -8064 7964 -1 -7965 7965 4 -7966 7965 -1 -8065 7965 -1 -7966 7966 4 -7967 7966 -1 -8066 7966 -1 -7967 7967 4 -7968 7967 -1 -8067 7967 -1 -7968 7968 4 -7969 7968 -1 -8068 7968 -1 -7969 7969 4 -7970 7969 -1 -8069 7969 -1 -7970 7970 4 -7971 7970 -1 -8070 7970 -1 -7971 7971 4 -7972 7971 -1 -8071 7971 -1 -7972 7972 4 -7973 7972 -1 -8072 7972 -1 -7973 7973 4 -7974 7973 -1 -8073 7973 -1 -7974 7974 4 -7975 7974 -1 -8074 7974 -1 -7975 7975 4 -7976 7975 -1 -8075 7975 -1 -7976 7976 4 -7977 7976 -1 -8076 7976 -1 -7977 7977 4 -7978 7977 -1 -8077 7977 -1 -7978 7978 4 -7979 7978 -1 -8078 7978 -1 -7979 7979 4 -7980 7979 -1 -8079 7979 -1 -7980 7980 4 -7981 7980 -1 -8080 7980 -1 -7981 7981 4 -7982 7981 -1 -8081 7981 -1 -7982 7982 4 -7983 7982 -1 -8082 7982 -1 -7983 7983 4 -7984 7983 -1 -8083 7983 -1 -7984 7984 4 -7985 7984 -1 -8084 7984 -1 -7985 7985 4 -7986 7985 -1 -8085 7985 -1 -7986 7986 4 -7987 7986 -1 -8086 7986 -1 -7987 7987 4 -7988 7987 -1 -8087 7987 -1 -7988 7988 4 -7989 7988 -1 -8088 7988 -1 -7989 7989 4 -7990 7989 -1 -8089 7989 -1 -7990 7990 4 -7991 7990 -1 -8090 7990 -1 -7991 7991 4 -7992 7991 -1 -8091 7991 -1 -7992 7992 4 -7993 7992 -1 -8092 7992 -1 -7993 7993 4 -7994 7993 -1 -8093 7993 -1 -7994 7994 4 -7995 7994 -1 -8094 7994 -1 -7995 7995 4 -7996 7995 -1 -8095 7995 -1 -7996 7996 4 -7997 7996 -1 -8096 7996 -1 -7997 7997 4 -7998 7997 -1 -8097 7997 -1 -7998 7998 4 -7999 7998 -1 -8098 7998 -1 -7999 7999 4 -8000 7999 -1 -8099 7999 -1 -8000 8000 4 -8100 8000 -1 -8001 8001 4 -8002 8001 -1 -8101 8001 -1 -8002 8002 4 -8003 8002 -1 -8102 8002 -1 -8003 8003 4 -8004 8003 -1 -8103 8003 -1 -8004 8004 4 -8005 8004 -1 -8104 8004 -1 -8005 8005 4 -8006 8005 -1 -8105 8005 -1 -8006 8006 4 -8007 8006 -1 -8106 8006 -1 -8007 8007 4 -8008 8007 -1 -8107 8007 -1 -8008 8008 4 -8009 8008 -1 -8108 8008 -1 -8009 8009 4 -8010 8009 -1 -8109 8009 -1 -8010 8010 4 -8011 8010 -1 -8110 8010 -1 -8011 8011 4 -8012 8011 -1 -8111 8011 -1 -8012 8012 4 -8013 8012 -1 -8112 8012 -1 -8013 8013 4 -8014 8013 -1 -8113 8013 -1 -8014 8014 4 -8015 8014 -1 -8114 8014 -1 -8015 8015 4 -8016 8015 -1 -8115 8015 -1 -8016 8016 4 -8017 8016 -1 -8116 8016 -1 -8017 8017 4 -8018 8017 -1 -8117 8017 -1 -8018 8018 4 -8019 8018 -1 -8118 8018 -1 -8019 8019 4 -8020 8019 -1 -8119 8019 -1 -8020 8020 4 -8021 8020 -1 -8120 8020 -1 -8021 8021 4 -8022 8021 -1 -8121 8021 -1 -8022 8022 4 -8023 8022 -1 -8122 8022 -1 -8023 8023 4 -8024 8023 -1 -8123 8023 -1 -8024 8024 4 -8025 8024 -1 -8124 8024 -1 -8025 8025 4 -8026 8025 -1 -8125 8025 -1 -8026 8026 4 -8027 8026 -1 -8126 8026 -1 -8027 8027 4 -8028 8027 -1 -8127 8027 -1 -8028 8028 4 -8029 8028 -1 -8128 8028 -1 -8029 8029 4 -8030 8029 -1 -8129 8029 -1 -8030 8030 4 -8031 8030 -1 -8130 8030 -1 -8031 8031 4 -8032 8031 -1 -8131 8031 -1 -8032 8032 4 -8033 8032 -1 -8132 8032 -1 -8033 8033 4 -8034 8033 -1 -8133 8033 -1 -8034 8034 4 -8035 8034 -1 -8134 8034 -1 -8035 8035 4 -8036 8035 -1 -8135 8035 -1 -8036 8036 4 -8037 8036 -1 -8136 8036 -1 -8037 8037 4 -8038 8037 -1 -8137 8037 -1 -8038 8038 4 -8039 8038 -1 -8138 8038 -1 -8039 8039 4 -8040 8039 -1 -8139 8039 -1 -8040 8040 4 -8041 8040 -1 -8140 8040 -1 -8041 8041 4 -8042 8041 -1 -8141 8041 -1 -8042 8042 4 -8043 8042 -1 -8142 8042 -1 -8043 8043 4 -8044 8043 -1 -8143 8043 -1 -8044 8044 4 -8045 8044 -1 -8144 8044 -1 -8045 8045 4 -8046 8045 -1 -8145 8045 -1 -8046 8046 4 -8047 8046 -1 -8146 8046 -1 -8047 8047 4 -8048 8047 -1 -8147 8047 -1 -8048 8048 4 -8049 8048 -1 -8148 8048 -1 -8049 8049 4 -8050 8049 -1 -8149 8049 -1 -8050 8050 4 -8051 8050 -1 -8150 8050 -1 -8051 8051 4 -8052 8051 -1 -8151 8051 -1 -8052 8052 4 -8053 8052 -1 -8152 8052 -1 -8053 8053 4 -8054 8053 -1 -8153 8053 -1 -8054 8054 4 -8055 8054 -1 -8154 8054 -1 -8055 8055 4 -8056 8055 -1 -8155 8055 -1 -8056 8056 4 -8057 8056 -1 -8156 8056 -1 -8057 8057 4 -8058 8057 -1 -8157 8057 -1 -8058 8058 4 -8059 8058 -1 -8158 8058 -1 -8059 8059 4 -8060 8059 -1 -8159 8059 -1 -8060 8060 4 -8061 8060 -1 -8160 8060 -1 -8061 8061 4 -8062 8061 -1 -8161 8061 -1 -8062 8062 4 -8063 8062 -1 -8162 8062 -1 -8063 8063 4 -8064 8063 -1 -8163 8063 -1 -8064 8064 4 -8065 8064 -1 -8164 8064 -1 -8065 8065 4 -8066 8065 -1 -8165 8065 -1 -8066 8066 4 -8067 8066 -1 -8166 8066 -1 -8067 8067 4 -8068 8067 -1 -8167 8067 -1 -8068 8068 4 -8069 8068 -1 -8168 8068 -1 -8069 8069 4 -8070 8069 -1 -8169 8069 -1 -8070 8070 4 -8071 8070 -1 -8170 8070 -1 -8071 8071 4 -8072 8071 -1 -8171 8071 -1 -8072 8072 4 -8073 8072 -1 -8172 8072 -1 -8073 8073 4 -8074 8073 -1 -8173 8073 -1 -8074 8074 4 -8075 8074 -1 -8174 8074 -1 -8075 8075 4 -8076 8075 -1 -8175 8075 -1 -8076 8076 4 -8077 8076 -1 -8176 8076 -1 -8077 8077 4 -8078 8077 -1 -8177 8077 -1 -8078 8078 4 -8079 8078 -1 -8178 8078 -1 -8079 8079 4 -8080 8079 -1 -8179 8079 -1 -8080 8080 4 -8081 8080 -1 -8180 8080 -1 -8081 8081 4 -8082 8081 -1 -8181 8081 -1 -8082 8082 4 -8083 8082 -1 -8182 8082 -1 -8083 8083 4 -8084 8083 -1 -8183 8083 -1 -8084 8084 4 -8085 8084 -1 -8184 8084 -1 -8085 8085 4 -8086 8085 -1 -8185 8085 -1 -8086 8086 4 -8087 8086 -1 -8186 8086 -1 -8087 8087 4 -8088 8087 -1 -8187 8087 -1 -8088 8088 4 -8089 8088 -1 -8188 8088 -1 -8089 8089 4 -8090 8089 -1 -8189 8089 -1 -8090 8090 4 -8091 8090 -1 -8190 8090 -1 -8091 8091 4 -8092 8091 -1 -8191 8091 -1 -8092 8092 4 -8093 8092 -1 -8192 8092 -1 -8093 8093 4 -8094 8093 -1 -8193 8093 -1 -8094 8094 4 -8095 8094 -1 -8194 8094 -1 -8095 8095 4 -8096 8095 -1 -8195 8095 -1 -8096 8096 4 -8097 8096 -1 -8196 8096 -1 -8097 8097 4 -8098 8097 -1 -8197 8097 -1 -8098 8098 4 -8099 8098 -1 -8198 8098 -1 -8099 8099 4 -8100 8099 -1 -8199 8099 -1 -8100 8100 4 -8200 8100 -1 -8101 8101 4 -8102 8101 -1 -8201 8101 -1 -8102 8102 4 -8103 8102 -1 -8202 8102 -1 -8103 8103 4 -8104 8103 -1 -8203 8103 -1 -8104 8104 4 -8105 8104 -1 -8204 8104 -1 -8105 8105 4 -8106 8105 -1 -8205 8105 -1 -8106 8106 4 -8107 8106 -1 -8206 8106 -1 -8107 8107 4 -8108 8107 -1 -8207 8107 -1 -8108 8108 4 -8109 8108 -1 -8208 8108 -1 -8109 8109 4 -8110 8109 -1 -8209 8109 -1 -8110 8110 4 -8111 8110 -1 -8210 8110 -1 -8111 8111 4 -8112 8111 -1 -8211 8111 -1 -8112 8112 4 -8113 8112 -1 -8212 8112 -1 -8113 8113 4 -8114 8113 -1 -8213 8113 -1 -8114 8114 4 -8115 8114 -1 -8214 8114 -1 -8115 8115 4 -8116 8115 -1 -8215 8115 -1 -8116 8116 4 -8117 8116 -1 -8216 8116 -1 -8117 8117 4 -8118 8117 -1 -8217 8117 -1 -8118 8118 4 -8119 8118 -1 -8218 8118 -1 -8119 8119 4 -8120 8119 -1 -8219 8119 -1 -8120 8120 4 -8121 8120 -1 -8220 8120 -1 -8121 8121 4 -8122 8121 -1 -8221 8121 -1 -8122 8122 4 -8123 8122 -1 -8222 8122 -1 -8123 8123 4 -8124 8123 -1 -8223 8123 -1 -8124 8124 4 -8125 8124 -1 -8224 8124 -1 -8125 8125 4 -8126 8125 -1 -8225 8125 -1 -8126 8126 4 -8127 8126 -1 -8226 8126 -1 -8127 8127 4 -8128 8127 -1 -8227 8127 -1 -8128 8128 4 -8129 8128 -1 -8228 8128 -1 -8129 8129 4 -8130 8129 -1 -8229 8129 -1 -8130 8130 4 -8131 8130 -1 -8230 8130 -1 -8131 8131 4 -8132 8131 -1 -8231 8131 -1 -8132 8132 4 -8133 8132 -1 -8232 8132 -1 -8133 8133 4 -8134 8133 -1 -8233 8133 -1 -8134 8134 4 -8135 8134 -1 -8234 8134 -1 -8135 8135 4 -8136 8135 -1 -8235 8135 -1 -8136 8136 4 -8137 8136 -1 -8236 8136 -1 -8137 8137 4 -8138 8137 -1 -8237 8137 -1 -8138 8138 4 -8139 8138 -1 -8238 8138 -1 -8139 8139 4 -8140 8139 -1 -8239 8139 -1 -8140 8140 4 -8141 8140 -1 -8240 8140 -1 -8141 8141 4 -8142 8141 -1 -8241 8141 -1 -8142 8142 4 -8143 8142 -1 -8242 8142 -1 -8143 8143 4 -8144 8143 -1 -8243 8143 -1 -8144 8144 4 -8145 8144 -1 -8244 8144 -1 -8145 8145 4 -8146 8145 -1 -8245 8145 -1 -8146 8146 4 -8147 8146 -1 -8246 8146 -1 -8147 8147 4 -8148 8147 -1 -8247 8147 -1 -8148 8148 4 -8149 8148 -1 -8248 8148 -1 -8149 8149 4 -8150 8149 -1 -8249 8149 -1 -8150 8150 4 -8151 8150 -1 -8250 8150 -1 -8151 8151 4 -8152 8151 -1 -8251 8151 -1 -8152 8152 4 -8153 8152 -1 -8252 8152 -1 -8153 8153 4 -8154 8153 -1 -8253 8153 -1 -8154 8154 4 -8155 8154 -1 -8254 8154 -1 -8155 8155 4 -8156 8155 -1 -8255 8155 -1 -8156 8156 4 -8157 8156 -1 -8256 8156 -1 -8157 8157 4 -8158 8157 -1 -8257 8157 -1 -8158 8158 4 -8159 8158 -1 -8258 8158 -1 -8159 8159 4 -8160 8159 -1 -8259 8159 -1 -8160 8160 4 -8161 8160 -1 -8260 8160 -1 -8161 8161 4 -8162 8161 -1 -8261 8161 -1 -8162 8162 4 -8163 8162 -1 -8262 8162 -1 -8163 8163 4 -8164 8163 -1 -8263 8163 -1 -8164 8164 4 -8165 8164 -1 -8264 8164 -1 -8165 8165 4 -8166 8165 -1 -8265 8165 -1 -8166 8166 4 -8167 8166 -1 -8266 8166 -1 -8167 8167 4 -8168 8167 -1 -8267 8167 -1 -8168 8168 4 -8169 8168 -1 -8268 8168 -1 -8169 8169 4 -8170 8169 -1 -8269 8169 -1 -8170 8170 4 -8171 8170 -1 -8270 8170 -1 -8171 8171 4 -8172 8171 -1 -8271 8171 -1 -8172 8172 4 -8173 8172 -1 -8272 8172 -1 -8173 8173 4 -8174 8173 -1 -8273 8173 -1 -8174 8174 4 -8175 8174 -1 -8274 8174 -1 -8175 8175 4 -8176 8175 -1 -8275 8175 -1 -8176 8176 4 -8177 8176 -1 -8276 8176 -1 -8177 8177 4 -8178 8177 -1 -8277 8177 -1 -8178 8178 4 -8179 8178 -1 -8278 8178 -1 -8179 8179 4 -8180 8179 -1 -8279 8179 -1 -8180 8180 4 -8181 8180 -1 -8280 8180 -1 -8181 8181 4 -8182 8181 -1 -8281 8181 -1 -8182 8182 4 -8183 8182 -1 -8282 8182 -1 -8183 8183 4 -8184 8183 -1 -8283 8183 -1 -8184 8184 4 -8185 8184 -1 -8284 8184 -1 -8185 8185 4 -8186 8185 -1 -8285 8185 -1 -8186 8186 4 -8187 8186 -1 -8286 8186 -1 -8187 8187 4 -8188 8187 -1 -8287 8187 -1 -8188 8188 4 -8189 8188 -1 -8288 8188 -1 -8189 8189 4 -8190 8189 -1 -8289 8189 -1 -8190 8190 4 -8191 8190 -1 -8290 8190 -1 -8191 8191 4 -8192 8191 -1 -8291 8191 -1 -8192 8192 4 -8193 8192 -1 -8292 8192 -1 -8193 8193 4 -8194 8193 -1 -8293 8193 -1 -8194 8194 4 -8195 8194 -1 -8294 8194 -1 -8195 8195 4 -8196 8195 -1 -8295 8195 -1 -8196 8196 4 -8197 8196 -1 -8296 8196 -1 -8197 8197 4 -8198 8197 -1 -8297 8197 -1 -8198 8198 4 -8199 8198 -1 -8298 8198 -1 -8199 8199 4 -8200 8199 -1 -8299 8199 -1 -8200 8200 4 -8300 8200 -1 -8201 8201 4 -8202 8201 -1 -8301 8201 -1 -8202 8202 4 -8203 8202 -1 -8302 8202 -1 -8203 8203 4 -8204 8203 -1 -8303 8203 -1 -8204 8204 4 -8205 8204 -1 -8304 8204 -1 -8205 8205 4 -8206 8205 -1 -8305 8205 -1 -8206 8206 4 -8207 8206 -1 -8306 8206 -1 -8207 8207 4 -8208 8207 -1 -8307 8207 -1 -8208 8208 4 -8209 8208 -1 -8308 8208 -1 -8209 8209 4 -8210 8209 -1 -8309 8209 -1 -8210 8210 4 -8211 8210 -1 -8310 8210 -1 -8211 8211 4 -8212 8211 -1 -8311 8211 -1 -8212 8212 4 -8213 8212 -1 -8312 8212 -1 -8213 8213 4 -8214 8213 -1 -8313 8213 -1 -8214 8214 4 -8215 8214 -1 -8314 8214 -1 -8215 8215 4 -8216 8215 -1 -8315 8215 -1 -8216 8216 4 -8217 8216 -1 -8316 8216 -1 -8217 8217 4 -8218 8217 -1 -8317 8217 -1 -8218 8218 4 -8219 8218 -1 -8318 8218 -1 -8219 8219 4 -8220 8219 -1 -8319 8219 -1 -8220 8220 4 -8221 8220 -1 -8320 8220 -1 -8221 8221 4 -8222 8221 -1 -8321 8221 -1 -8222 8222 4 -8223 8222 -1 -8322 8222 -1 -8223 8223 4 -8224 8223 -1 -8323 8223 -1 -8224 8224 4 -8225 8224 -1 -8324 8224 -1 -8225 8225 4 -8226 8225 -1 -8325 8225 -1 -8226 8226 4 -8227 8226 -1 -8326 8226 -1 -8227 8227 4 -8228 8227 -1 -8327 8227 -1 -8228 8228 4 -8229 8228 -1 -8328 8228 -1 -8229 8229 4 -8230 8229 -1 -8329 8229 -1 -8230 8230 4 -8231 8230 -1 -8330 8230 -1 -8231 8231 4 -8232 8231 -1 -8331 8231 -1 -8232 8232 4 -8233 8232 -1 -8332 8232 -1 -8233 8233 4 -8234 8233 -1 -8333 8233 -1 -8234 8234 4 -8235 8234 -1 -8334 8234 -1 -8235 8235 4 -8236 8235 -1 -8335 8235 -1 -8236 8236 4 -8237 8236 -1 -8336 8236 -1 -8237 8237 4 -8238 8237 -1 -8337 8237 -1 -8238 8238 4 -8239 8238 -1 -8338 8238 -1 -8239 8239 4 -8240 8239 -1 -8339 8239 -1 -8240 8240 4 -8241 8240 -1 -8340 8240 -1 -8241 8241 4 -8242 8241 -1 -8341 8241 -1 -8242 8242 4 -8243 8242 -1 -8342 8242 -1 -8243 8243 4 -8244 8243 -1 -8343 8243 -1 -8244 8244 4 -8245 8244 -1 -8344 8244 -1 -8245 8245 4 -8246 8245 -1 -8345 8245 -1 -8246 8246 4 -8247 8246 -1 -8346 8246 -1 -8247 8247 4 -8248 8247 -1 -8347 8247 -1 -8248 8248 4 -8249 8248 -1 -8348 8248 -1 -8249 8249 4 -8250 8249 -1 -8349 8249 -1 -8250 8250 4 -8251 8250 -1 -8350 8250 -1 -8251 8251 4 -8252 8251 -1 -8351 8251 -1 -8252 8252 4 -8253 8252 -1 -8352 8252 -1 -8253 8253 4 -8254 8253 -1 -8353 8253 -1 -8254 8254 4 -8255 8254 -1 -8354 8254 -1 -8255 8255 4 -8256 8255 -1 -8355 8255 -1 -8256 8256 4 -8257 8256 -1 -8356 8256 -1 -8257 8257 4 -8258 8257 -1 -8357 8257 -1 -8258 8258 4 -8259 8258 -1 -8358 8258 -1 -8259 8259 4 -8260 8259 -1 -8359 8259 -1 -8260 8260 4 -8261 8260 -1 -8360 8260 -1 -8261 8261 4 -8262 8261 -1 -8361 8261 -1 -8262 8262 4 -8263 8262 -1 -8362 8262 -1 -8263 8263 4 -8264 8263 -1 -8363 8263 -1 -8264 8264 4 -8265 8264 -1 -8364 8264 -1 -8265 8265 4 -8266 8265 -1 -8365 8265 -1 -8266 8266 4 -8267 8266 -1 -8366 8266 -1 -8267 8267 4 -8268 8267 -1 -8367 8267 -1 -8268 8268 4 -8269 8268 -1 -8368 8268 -1 -8269 8269 4 -8270 8269 -1 -8369 8269 -1 -8270 8270 4 -8271 8270 -1 -8370 8270 -1 -8271 8271 4 -8272 8271 -1 -8371 8271 -1 -8272 8272 4 -8273 8272 -1 -8372 8272 -1 -8273 8273 4 -8274 8273 -1 -8373 8273 -1 -8274 8274 4 -8275 8274 -1 -8374 8274 -1 -8275 8275 4 -8276 8275 -1 -8375 8275 -1 -8276 8276 4 -8277 8276 -1 -8376 8276 -1 -8277 8277 4 -8278 8277 -1 -8377 8277 -1 -8278 8278 4 -8279 8278 -1 -8378 8278 -1 -8279 8279 4 -8280 8279 -1 -8379 8279 -1 -8280 8280 4 -8281 8280 -1 -8380 8280 -1 -8281 8281 4 -8282 8281 -1 -8381 8281 -1 -8282 8282 4 -8283 8282 -1 -8382 8282 -1 -8283 8283 4 -8284 8283 -1 -8383 8283 -1 -8284 8284 4 -8285 8284 -1 -8384 8284 -1 -8285 8285 4 -8286 8285 -1 -8385 8285 -1 -8286 8286 4 -8287 8286 -1 -8386 8286 -1 -8287 8287 4 -8288 8287 -1 -8387 8287 -1 -8288 8288 4 -8289 8288 -1 -8388 8288 -1 -8289 8289 4 -8290 8289 -1 -8389 8289 -1 -8290 8290 4 -8291 8290 -1 -8390 8290 -1 -8291 8291 4 -8292 8291 -1 -8391 8291 -1 -8292 8292 4 -8293 8292 -1 -8392 8292 -1 -8293 8293 4 -8294 8293 -1 -8393 8293 -1 -8294 8294 4 -8295 8294 -1 -8394 8294 -1 -8295 8295 4 -8296 8295 -1 -8395 8295 -1 -8296 8296 4 -8297 8296 -1 -8396 8296 -1 -8297 8297 4 -8298 8297 -1 -8397 8297 -1 -8298 8298 4 -8299 8298 -1 -8398 8298 -1 -8299 8299 4 -8300 8299 -1 -8399 8299 -1 -8300 8300 4 -8400 8300 -1 -8301 8301 4 -8302 8301 -1 -8401 8301 -1 -8302 8302 4 -8303 8302 -1 -8402 8302 -1 -8303 8303 4 -8304 8303 -1 -8403 8303 -1 -8304 8304 4 -8305 8304 -1 -8404 8304 -1 -8305 8305 4 -8306 8305 -1 -8405 8305 -1 -8306 8306 4 -8307 8306 -1 -8406 8306 -1 -8307 8307 4 -8308 8307 -1 -8407 8307 -1 -8308 8308 4 -8309 8308 -1 -8408 8308 -1 -8309 8309 4 -8310 8309 -1 -8409 8309 -1 -8310 8310 4 -8311 8310 -1 -8410 8310 -1 -8311 8311 4 -8312 8311 -1 -8411 8311 -1 -8312 8312 4 -8313 8312 -1 -8412 8312 -1 -8313 8313 4 -8314 8313 -1 -8413 8313 -1 -8314 8314 4 -8315 8314 -1 -8414 8314 -1 -8315 8315 4 -8316 8315 -1 -8415 8315 -1 -8316 8316 4 -8317 8316 -1 -8416 8316 -1 -8317 8317 4 -8318 8317 -1 -8417 8317 -1 -8318 8318 4 -8319 8318 -1 -8418 8318 -1 -8319 8319 4 -8320 8319 -1 -8419 8319 -1 -8320 8320 4 -8321 8320 -1 -8420 8320 -1 -8321 8321 4 -8322 8321 -1 -8421 8321 -1 -8322 8322 4 -8323 8322 -1 -8422 8322 -1 -8323 8323 4 -8324 8323 -1 -8423 8323 -1 -8324 8324 4 -8325 8324 -1 -8424 8324 -1 -8325 8325 4 -8326 8325 -1 -8425 8325 -1 -8326 8326 4 -8327 8326 -1 -8426 8326 -1 -8327 8327 4 -8328 8327 -1 -8427 8327 -1 -8328 8328 4 -8329 8328 -1 -8428 8328 -1 -8329 8329 4 -8330 8329 -1 -8429 8329 -1 -8330 8330 4 -8331 8330 -1 -8430 8330 -1 -8331 8331 4 -8332 8331 -1 -8431 8331 -1 -8332 8332 4 -8333 8332 -1 -8432 8332 -1 -8333 8333 4 -8334 8333 -1 -8433 8333 -1 -8334 8334 4 -8335 8334 -1 -8434 8334 -1 -8335 8335 4 -8336 8335 -1 -8435 8335 -1 -8336 8336 4 -8337 8336 -1 -8436 8336 -1 -8337 8337 4 -8338 8337 -1 -8437 8337 -1 -8338 8338 4 -8339 8338 -1 -8438 8338 -1 -8339 8339 4 -8340 8339 -1 -8439 8339 -1 -8340 8340 4 -8341 8340 -1 -8440 8340 -1 -8341 8341 4 -8342 8341 -1 -8441 8341 -1 -8342 8342 4 -8343 8342 -1 -8442 8342 -1 -8343 8343 4 -8344 8343 -1 -8443 8343 -1 -8344 8344 4 -8345 8344 -1 -8444 8344 -1 -8345 8345 4 -8346 8345 -1 -8445 8345 -1 -8346 8346 4 -8347 8346 -1 -8446 8346 -1 -8347 8347 4 -8348 8347 -1 -8447 8347 -1 -8348 8348 4 -8349 8348 -1 -8448 8348 -1 -8349 8349 4 -8350 8349 -1 -8449 8349 -1 -8350 8350 4 -8351 8350 -1 -8450 8350 -1 -8351 8351 4 -8352 8351 -1 -8451 8351 -1 -8352 8352 4 -8353 8352 -1 -8452 8352 -1 -8353 8353 4 -8354 8353 -1 -8453 8353 -1 -8354 8354 4 -8355 8354 -1 -8454 8354 -1 -8355 8355 4 -8356 8355 -1 -8455 8355 -1 -8356 8356 4 -8357 8356 -1 -8456 8356 -1 -8357 8357 4 -8358 8357 -1 -8457 8357 -1 -8358 8358 4 -8359 8358 -1 -8458 8358 -1 -8359 8359 4 -8360 8359 -1 -8459 8359 -1 -8360 8360 4 -8361 8360 -1 -8460 8360 -1 -8361 8361 4 -8362 8361 -1 -8461 8361 -1 -8362 8362 4 -8363 8362 -1 -8462 8362 -1 -8363 8363 4 -8364 8363 -1 -8463 8363 -1 -8364 8364 4 -8365 8364 -1 -8464 8364 -1 -8365 8365 4 -8366 8365 -1 -8465 8365 -1 -8366 8366 4 -8367 8366 -1 -8466 8366 -1 -8367 8367 4 -8368 8367 -1 -8467 8367 -1 -8368 8368 4 -8369 8368 -1 -8468 8368 -1 -8369 8369 4 -8370 8369 -1 -8469 8369 -1 -8370 8370 4 -8371 8370 -1 -8470 8370 -1 -8371 8371 4 -8372 8371 -1 -8471 8371 -1 -8372 8372 4 -8373 8372 -1 -8472 8372 -1 -8373 8373 4 -8374 8373 -1 -8473 8373 -1 -8374 8374 4 -8375 8374 -1 -8474 8374 -1 -8375 8375 4 -8376 8375 -1 -8475 8375 -1 -8376 8376 4 -8377 8376 -1 -8476 8376 -1 -8377 8377 4 -8378 8377 -1 -8477 8377 -1 -8378 8378 4 -8379 8378 -1 -8478 8378 -1 -8379 8379 4 -8380 8379 -1 -8479 8379 -1 -8380 8380 4 -8381 8380 -1 -8480 8380 -1 -8381 8381 4 -8382 8381 -1 -8481 8381 -1 -8382 8382 4 -8383 8382 -1 -8482 8382 -1 -8383 8383 4 -8384 8383 -1 -8483 8383 -1 -8384 8384 4 -8385 8384 -1 -8484 8384 -1 -8385 8385 4 -8386 8385 -1 -8485 8385 -1 -8386 8386 4 -8387 8386 -1 -8486 8386 -1 -8387 8387 4 -8388 8387 -1 -8487 8387 -1 -8388 8388 4 -8389 8388 -1 -8488 8388 -1 -8389 8389 4 -8390 8389 -1 -8489 8389 -1 -8390 8390 4 -8391 8390 -1 -8490 8390 -1 -8391 8391 4 -8392 8391 -1 -8491 8391 -1 -8392 8392 4 -8393 8392 -1 -8492 8392 -1 -8393 8393 4 -8394 8393 -1 -8493 8393 -1 -8394 8394 4 -8395 8394 -1 -8494 8394 -1 -8395 8395 4 -8396 8395 -1 -8495 8395 -1 -8396 8396 4 -8397 8396 -1 -8496 8396 -1 -8397 8397 4 -8398 8397 -1 -8497 8397 -1 -8398 8398 4 -8399 8398 -1 -8498 8398 -1 -8399 8399 4 -8400 8399 -1 -8499 8399 -1 -8400 8400 4 -8500 8400 -1 -8401 8401 4 -8402 8401 -1 -8501 8401 -1 -8402 8402 4 -8403 8402 -1 -8502 8402 -1 -8403 8403 4 -8404 8403 -1 -8503 8403 -1 -8404 8404 4 -8405 8404 -1 -8504 8404 -1 -8405 8405 4 -8406 8405 -1 -8505 8405 -1 -8406 8406 4 -8407 8406 -1 -8506 8406 -1 -8407 8407 4 -8408 8407 -1 -8507 8407 -1 -8408 8408 4 -8409 8408 -1 -8508 8408 -1 -8409 8409 4 -8410 8409 -1 -8509 8409 -1 -8410 8410 4 -8411 8410 -1 -8510 8410 -1 -8411 8411 4 -8412 8411 -1 -8511 8411 -1 -8412 8412 4 -8413 8412 -1 -8512 8412 -1 -8413 8413 4 -8414 8413 -1 -8513 8413 -1 -8414 8414 4 -8415 8414 -1 -8514 8414 -1 -8415 8415 4 -8416 8415 -1 -8515 8415 -1 -8416 8416 4 -8417 8416 -1 -8516 8416 -1 -8417 8417 4 -8418 8417 -1 -8517 8417 -1 -8418 8418 4 -8419 8418 -1 -8518 8418 -1 -8419 8419 4 -8420 8419 -1 -8519 8419 -1 -8420 8420 4 -8421 8420 -1 -8520 8420 -1 -8421 8421 4 -8422 8421 -1 -8521 8421 -1 -8422 8422 4 -8423 8422 -1 -8522 8422 -1 -8423 8423 4 -8424 8423 -1 -8523 8423 -1 -8424 8424 4 -8425 8424 -1 -8524 8424 -1 -8425 8425 4 -8426 8425 -1 -8525 8425 -1 -8426 8426 4 -8427 8426 -1 -8526 8426 -1 -8427 8427 4 -8428 8427 -1 -8527 8427 -1 -8428 8428 4 -8429 8428 -1 -8528 8428 -1 -8429 8429 4 -8430 8429 -1 -8529 8429 -1 -8430 8430 4 -8431 8430 -1 -8530 8430 -1 -8431 8431 4 -8432 8431 -1 -8531 8431 -1 -8432 8432 4 -8433 8432 -1 -8532 8432 -1 -8433 8433 4 -8434 8433 -1 -8533 8433 -1 -8434 8434 4 -8435 8434 -1 -8534 8434 -1 -8435 8435 4 -8436 8435 -1 -8535 8435 -1 -8436 8436 4 -8437 8436 -1 -8536 8436 -1 -8437 8437 4 -8438 8437 -1 -8537 8437 -1 -8438 8438 4 -8439 8438 -1 -8538 8438 -1 -8439 8439 4 -8440 8439 -1 -8539 8439 -1 -8440 8440 4 -8441 8440 -1 -8540 8440 -1 -8441 8441 4 -8442 8441 -1 -8541 8441 -1 -8442 8442 4 -8443 8442 -1 -8542 8442 -1 -8443 8443 4 -8444 8443 -1 -8543 8443 -1 -8444 8444 4 -8445 8444 -1 -8544 8444 -1 -8445 8445 4 -8446 8445 -1 -8545 8445 -1 -8446 8446 4 -8447 8446 -1 -8546 8446 -1 -8447 8447 4 -8448 8447 -1 -8547 8447 -1 -8448 8448 4 -8449 8448 -1 -8548 8448 -1 -8449 8449 4 -8450 8449 -1 -8549 8449 -1 -8450 8450 4 -8451 8450 -1 -8550 8450 -1 -8451 8451 4 -8452 8451 -1 -8551 8451 -1 -8452 8452 4 -8453 8452 -1 -8552 8452 -1 -8453 8453 4 -8454 8453 -1 -8553 8453 -1 -8454 8454 4 -8455 8454 -1 -8554 8454 -1 -8455 8455 4 -8456 8455 -1 -8555 8455 -1 -8456 8456 4 -8457 8456 -1 -8556 8456 -1 -8457 8457 4 -8458 8457 -1 -8557 8457 -1 -8458 8458 4 -8459 8458 -1 -8558 8458 -1 -8459 8459 4 -8460 8459 -1 -8559 8459 -1 -8460 8460 4 -8461 8460 -1 -8560 8460 -1 -8461 8461 4 -8462 8461 -1 -8561 8461 -1 -8462 8462 4 -8463 8462 -1 -8562 8462 -1 -8463 8463 4 -8464 8463 -1 -8563 8463 -1 -8464 8464 4 -8465 8464 -1 -8564 8464 -1 -8465 8465 4 -8466 8465 -1 -8565 8465 -1 -8466 8466 4 -8467 8466 -1 -8566 8466 -1 -8467 8467 4 -8468 8467 -1 -8567 8467 -1 -8468 8468 4 -8469 8468 -1 -8568 8468 -1 -8469 8469 4 -8470 8469 -1 -8569 8469 -1 -8470 8470 4 -8471 8470 -1 -8570 8470 -1 -8471 8471 4 -8472 8471 -1 -8571 8471 -1 -8472 8472 4 -8473 8472 -1 -8572 8472 -1 -8473 8473 4 -8474 8473 -1 -8573 8473 -1 -8474 8474 4 -8475 8474 -1 -8574 8474 -1 -8475 8475 4 -8476 8475 -1 -8575 8475 -1 -8476 8476 4 -8477 8476 -1 -8576 8476 -1 -8477 8477 4 -8478 8477 -1 -8577 8477 -1 -8478 8478 4 -8479 8478 -1 -8578 8478 -1 -8479 8479 4 -8480 8479 -1 -8579 8479 -1 -8480 8480 4 -8481 8480 -1 -8580 8480 -1 -8481 8481 4 -8482 8481 -1 -8581 8481 -1 -8482 8482 4 -8483 8482 -1 -8582 8482 -1 -8483 8483 4 -8484 8483 -1 -8583 8483 -1 -8484 8484 4 -8485 8484 -1 -8584 8484 -1 -8485 8485 4 -8486 8485 -1 -8585 8485 -1 -8486 8486 4 -8487 8486 -1 -8586 8486 -1 -8487 8487 4 -8488 8487 -1 -8587 8487 -1 -8488 8488 4 -8489 8488 -1 -8588 8488 -1 -8489 8489 4 -8490 8489 -1 -8589 8489 -1 -8490 8490 4 -8491 8490 -1 -8590 8490 -1 -8491 8491 4 -8492 8491 -1 -8591 8491 -1 -8492 8492 4 -8493 8492 -1 -8592 8492 -1 -8493 8493 4 -8494 8493 -1 -8593 8493 -1 -8494 8494 4 -8495 8494 -1 -8594 8494 -1 -8495 8495 4 -8496 8495 -1 -8595 8495 -1 -8496 8496 4 -8497 8496 -1 -8596 8496 -1 -8497 8497 4 -8498 8497 -1 -8597 8497 -1 -8498 8498 4 -8499 8498 -1 -8598 8498 -1 -8499 8499 4 -8500 8499 -1 -8599 8499 -1 -8500 8500 4 -8600 8500 -1 -8501 8501 4 -8502 8501 -1 -8601 8501 -1 -8502 8502 4 -8503 8502 -1 -8602 8502 -1 -8503 8503 4 -8504 8503 -1 -8603 8503 -1 -8504 8504 4 -8505 8504 -1 -8604 8504 -1 -8505 8505 4 -8506 8505 -1 -8605 8505 -1 -8506 8506 4 -8507 8506 -1 -8606 8506 -1 -8507 8507 4 -8508 8507 -1 -8607 8507 -1 -8508 8508 4 -8509 8508 -1 -8608 8508 -1 -8509 8509 4 -8510 8509 -1 -8609 8509 -1 -8510 8510 4 -8511 8510 -1 -8610 8510 -1 -8511 8511 4 -8512 8511 -1 -8611 8511 -1 -8512 8512 4 -8513 8512 -1 -8612 8512 -1 -8513 8513 4 -8514 8513 -1 -8613 8513 -1 -8514 8514 4 -8515 8514 -1 -8614 8514 -1 -8515 8515 4 -8516 8515 -1 -8615 8515 -1 -8516 8516 4 -8517 8516 -1 -8616 8516 -1 -8517 8517 4 -8518 8517 -1 -8617 8517 -1 -8518 8518 4 -8519 8518 -1 -8618 8518 -1 -8519 8519 4 -8520 8519 -1 -8619 8519 -1 -8520 8520 4 -8521 8520 -1 -8620 8520 -1 -8521 8521 4 -8522 8521 -1 -8621 8521 -1 -8522 8522 4 -8523 8522 -1 -8622 8522 -1 -8523 8523 4 -8524 8523 -1 -8623 8523 -1 -8524 8524 4 -8525 8524 -1 -8624 8524 -1 -8525 8525 4 -8526 8525 -1 -8625 8525 -1 -8526 8526 4 -8527 8526 -1 -8626 8526 -1 -8527 8527 4 -8528 8527 -1 -8627 8527 -1 -8528 8528 4 -8529 8528 -1 -8628 8528 -1 -8529 8529 4 -8530 8529 -1 -8629 8529 -1 -8530 8530 4 -8531 8530 -1 -8630 8530 -1 -8531 8531 4 -8532 8531 -1 -8631 8531 -1 -8532 8532 4 -8533 8532 -1 -8632 8532 -1 -8533 8533 4 -8534 8533 -1 -8633 8533 -1 -8534 8534 4 -8535 8534 -1 -8634 8534 -1 -8535 8535 4 -8536 8535 -1 -8635 8535 -1 -8536 8536 4 -8537 8536 -1 -8636 8536 -1 -8537 8537 4 -8538 8537 -1 -8637 8537 -1 -8538 8538 4 -8539 8538 -1 -8638 8538 -1 -8539 8539 4 -8540 8539 -1 -8639 8539 -1 -8540 8540 4 -8541 8540 -1 -8640 8540 -1 -8541 8541 4 -8542 8541 -1 -8641 8541 -1 -8542 8542 4 -8543 8542 -1 -8642 8542 -1 -8543 8543 4 -8544 8543 -1 -8643 8543 -1 -8544 8544 4 -8545 8544 -1 -8644 8544 -1 -8545 8545 4 -8546 8545 -1 -8645 8545 -1 -8546 8546 4 -8547 8546 -1 -8646 8546 -1 -8547 8547 4 -8548 8547 -1 -8647 8547 -1 -8548 8548 4 -8549 8548 -1 -8648 8548 -1 -8549 8549 4 -8550 8549 -1 -8649 8549 -1 -8550 8550 4 -8551 8550 -1 -8650 8550 -1 -8551 8551 4 -8552 8551 -1 -8651 8551 -1 -8552 8552 4 -8553 8552 -1 -8652 8552 -1 -8553 8553 4 -8554 8553 -1 -8653 8553 -1 -8554 8554 4 -8555 8554 -1 -8654 8554 -1 -8555 8555 4 -8556 8555 -1 -8655 8555 -1 -8556 8556 4 -8557 8556 -1 -8656 8556 -1 -8557 8557 4 -8558 8557 -1 -8657 8557 -1 -8558 8558 4 -8559 8558 -1 -8658 8558 -1 -8559 8559 4 -8560 8559 -1 -8659 8559 -1 -8560 8560 4 -8561 8560 -1 -8660 8560 -1 -8561 8561 4 -8562 8561 -1 -8661 8561 -1 -8562 8562 4 -8563 8562 -1 -8662 8562 -1 -8563 8563 4 -8564 8563 -1 -8663 8563 -1 -8564 8564 4 -8565 8564 -1 -8664 8564 -1 -8565 8565 4 -8566 8565 -1 -8665 8565 -1 -8566 8566 4 -8567 8566 -1 -8666 8566 -1 -8567 8567 4 -8568 8567 -1 -8667 8567 -1 -8568 8568 4 -8569 8568 -1 -8668 8568 -1 -8569 8569 4 -8570 8569 -1 -8669 8569 -1 -8570 8570 4 -8571 8570 -1 -8670 8570 -1 -8571 8571 4 -8572 8571 -1 -8671 8571 -1 -8572 8572 4 -8573 8572 -1 -8672 8572 -1 -8573 8573 4 -8574 8573 -1 -8673 8573 -1 -8574 8574 4 -8575 8574 -1 -8674 8574 -1 -8575 8575 4 -8576 8575 -1 -8675 8575 -1 -8576 8576 4 -8577 8576 -1 -8676 8576 -1 -8577 8577 4 -8578 8577 -1 -8677 8577 -1 -8578 8578 4 -8579 8578 -1 -8678 8578 -1 -8579 8579 4 -8580 8579 -1 -8679 8579 -1 -8580 8580 4 -8581 8580 -1 -8680 8580 -1 -8581 8581 4 -8582 8581 -1 -8681 8581 -1 -8582 8582 4 -8583 8582 -1 -8682 8582 -1 -8583 8583 4 -8584 8583 -1 -8683 8583 -1 -8584 8584 4 -8585 8584 -1 -8684 8584 -1 -8585 8585 4 -8586 8585 -1 -8685 8585 -1 -8586 8586 4 -8587 8586 -1 -8686 8586 -1 -8587 8587 4 -8588 8587 -1 -8687 8587 -1 -8588 8588 4 -8589 8588 -1 -8688 8588 -1 -8589 8589 4 -8590 8589 -1 -8689 8589 -1 -8590 8590 4 -8591 8590 -1 -8690 8590 -1 -8591 8591 4 -8592 8591 -1 -8691 8591 -1 -8592 8592 4 -8593 8592 -1 -8692 8592 -1 -8593 8593 4 -8594 8593 -1 -8693 8593 -1 -8594 8594 4 -8595 8594 -1 -8694 8594 -1 -8595 8595 4 -8596 8595 -1 -8695 8595 -1 -8596 8596 4 -8597 8596 -1 -8696 8596 -1 -8597 8597 4 -8598 8597 -1 -8697 8597 -1 -8598 8598 4 -8599 8598 -1 -8698 8598 -1 -8599 8599 4 -8600 8599 -1 -8699 8599 -1 -8600 8600 4 -8700 8600 -1 -8601 8601 4 -8602 8601 -1 -8701 8601 -1 -8602 8602 4 -8603 8602 -1 -8702 8602 -1 -8603 8603 4 -8604 8603 -1 -8703 8603 -1 -8604 8604 4 -8605 8604 -1 -8704 8604 -1 -8605 8605 4 -8606 8605 -1 -8705 8605 -1 -8606 8606 4 -8607 8606 -1 -8706 8606 -1 -8607 8607 4 -8608 8607 -1 -8707 8607 -1 -8608 8608 4 -8609 8608 -1 -8708 8608 -1 -8609 8609 4 -8610 8609 -1 -8709 8609 -1 -8610 8610 4 -8611 8610 -1 -8710 8610 -1 -8611 8611 4 -8612 8611 -1 -8711 8611 -1 -8612 8612 4 -8613 8612 -1 -8712 8612 -1 -8613 8613 4 -8614 8613 -1 -8713 8613 -1 -8614 8614 4 -8615 8614 -1 -8714 8614 -1 -8615 8615 4 -8616 8615 -1 -8715 8615 -1 -8616 8616 4 -8617 8616 -1 -8716 8616 -1 -8617 8617 4 -8618 8617 -1 -8717 8617 -1 -8618 8618 4 -8619 8618 -1 -8718 8618 -1 -8619 8619 4 -8620 8619 -1 -8719 8619 -1 -8620 8620 4 -8621 8620 -1 -8720 8620 -1 -8621 8621 4 -8622 8621 -1 -8721 8621 -1 -8622 8622 4 -8623 8622 -1 -8722 8622 -1 -8623 8623 4 -8624 8623 -1 -8723 8623 -1 -8624 8624 4 -8625 8624 -1 -8724 8624 -1 -8625 8625 4 -8626 8625 -1 -8725 8625 -1 -8626 8626 4 -8627 8626 -1 -8726 8626 -1 -8627 8627 4 -8628 8627 -1 -8727 8627 -1 -8628 8628 4 -8629 8628 -1 -8728 8628 -1 -8629 8629 4 -8630 8629 -1 -8729 8629 -1 -8630 8630 4 -8631 8630 -1 -8730 8630 -1 -8631 8631 4 -8632 8631 -1 -8731 8631 -1 -8632 8632 4 -8633 8632 -1 -8732 8632 -1 -8633 8633 4 -8634 8633 -1 -8733 8633 -1 -8634 8634 4 -8635 8634 -1 -8734 8634 -1 -8635 8635 4 -8636 8635 -1 -8735 8635 -1 -8636 8636 4 -8637 8636 -1 -8736 8636 -1 -8637 8637 4 -8638 8637 -1 -8737 8637 -1 -8638 8638 4 -8639 8638 -1 -8738 8638 -1 -8639 8639 4 -8640 8639 -1 -8739 8639 -1 -8640 8640 4 -8641 8640 -1 -8740 8640 -1 -8641 8641 4 -8642 8641 -1 -8741 8641 -1 -8642 8642 4 -8643 8642 -1 -8742 8642 -1 -8643 8643 4 -8644 8643 -1 -8743 8643 -1 -8644 8644 4 -8645 8644 -1 -8744 8644 -1 -8645 8645 4 -8646 8645 -1 -8745 8645 -1 -8646 8646 4 -8647 8646 -1 -8746 8646 -1 -8647 8647 4 -8648 8647 -1 -8747 8647 -1 -8648 8648 4 -8649 8648 -1 -8748 8648 -1 -8649 8649 4 -8650 8649 -1 -8749 8649 -1 -8650 8650 4 -8651 8650 -1 -8750 8650 -1 -8651 8651 4 -8652 8651 -1 -8751 8651 -1 -8652 8652 4 -8653 8652 -1 -8752 8652 -1 -8653 8653 4 -8654 8653 -1 -8753 8653 -1 -8654 8654 4 -8655 8654 -1 -8754 8654 -1 -8655 8655 4 -8656 8655 -1 -8755 8655 -1 -8656 8656 4 -8657 8656 -1 -8756 8656 -1 -8657 8657 4 -8658 8657 -1 -8757 8657 -1 -8658 8658 4 -8659 8658 -1 -8758 8658 -1 -8659 8659 4 -8660 8659 -1 -8759 8659 -1 -8660 8660 4 -8661 8660 -1 -8760 8660 -1 -8661 8661 4 -8662 8661 -1 -8761 8661 -1 -8662 8662 4 -8663 8662 -1 -8762 8662 -1 -8663 8663 4 -8664 8663 -1 -8763 8663 -1 -8664 8664 4 -8665 8664 -1 -8764 8664 -1 -8665 8665 4 -8666 8665 -1 -8765 8665 -1 -8666 8666 4 -8667 8666 -1 -8766 8666 -1 -8667 8667 4 -8668 8667 -1 -8767 8667 -1 -8668 8668 4 -8669 8668 -1 -8768 8668 -1 -8669 8669 4 -8670 8669 -1 -8769 8669 -1 -8670 8670 4 -8671 8670 -1 -8770 8670 -1 -8671 8671 4 -8672 8671 -1 -8771 8671 -1 -8672 8672 4 -8673 8672 -1 -8772 8672 -1 -8673 8673 4 -8674 8673 -1 -8773 8673 -1 -8674 8674 4 -8675 8674 -1 -8774 8674 -1 -8675 8675 4 -8676 8675 -1 -8775 8675 -1 -8676 8676 4 -8677 8676 -1 -8776 8676 -1 -8677 8677 4 -8678 8677 -1 -8777 8677 -1 -8678 8678 4 -8679 8678 -1 -8778 8678 -1 -8679 8679 4 -8680 8679 -1 -8779 8679 -1 -8680 8680 4 -8681 8680 -1 -8780 8680 -1 -8681 8681 4 -8682 8681 -1 -8781 8681 -1 -8682 8682 4 -8683 8682 -1 -8782 8682 -1 -8683 8683 4 -8684 8683 -1 -8783 8683 -1 -8684 8684 4 -8685 8684 -1 -8784 8684 -1 -8685 8685 4 -8686 8685 -1 -8785 8685 -1 -8686 8686 4 -8687 8686 -1 -8786 8686 -1 -8687 8687 4 -8688 8687 -1 -8787 8687 -1 -8688 8688 4 -8689 8688 -1 -8788 8688 -1 -8689 8689 4 -8690 8689 -1 -8789 8689 -1 -8690 8690 4 -8691 8690 -1 -8790 8690 -1 -8691 8691 4 -8692 8691 -1 -8791 8691 -1 -8692 8692 4 -8693 8692 -1 -8792 8692 -1 -8693 8693 4 -8694 8693 -1 -8793 8693 -1 -8694 8694 4 -8695 8694 -1 -8794 8694 -1 -8695 8695 4 -8696 8695 -1 -8795 8695 -1 -8696 8696 4 -8697 8696 -1 -8796 8696 -1 -8697 8697 4 -8698 8697 -1 -8797 8697 -1 -8698 8698 4 -8699 8698 -1 -8798 8698 -1 -8699 8699 4 -8700 8699 -1 -8799 8699 -1 -8700 8700 4 -8800 8700 -1 -8701 8701 4 -8702 8701 -1 -8801 8701 -1 -8702 8702 4 -8703 8702 -1 -8802 8702 -1 -8703 8703 4 -8704 8703 -1 -8803 8703 -1 -8704 8704 4 -8705 8704 -1 -8804 8704 -1 -8705 8705 4 -8706 8705 -1 -8805 8705 -1 -8706 8706 4 -8707 8706 -1 -8806 8706 -1 -8707 8707 4 -8708 8707 -1 -8807 8707 -1 -8708 8708 4 -8709 8708 -1 -8808 8708 -1 -8709 8709 4 -8710 8709 -1 -8809 8709 -1 -8710 8710 4 -8711 8710 -1 -8810 8710 -1 -8711 8711 4 -8712 8711 -1 -8811 8711 -1 -8712 8712 4 -8713 8712 -1 -8812 8712 -1 -8713 8713 4 -8714 8713 -1 -8813 8713 -1 -8714 8714 4 -8715 8714 -1 -8814 8714 -1 -8715 8715 4 -8716 8715 -1 -8815 8715 -1 -8716 8716 4 -8717 8716 -1 -8816 8716 -1 -8717 8717 4 -8718 8717 -1 -8817 8717 -1 -8718 8718 4 -8719 8718 -1 -8818 8718 -1 -8719 8719 4 -8720 8719 -1 -8819 8719 -1 -8720 8720 4 -8721 8720 -1 -8820 8720 -1 -8721 8721 4 -8722 8721 -1 -8821 8721 -1 -8722 8722 4 -8723 8722 -1 -8822 8722 -1 -8723 8723 4 -8724 8723 -1 -8823 8723 -1 -8724 8724 4 -8725 8724 -1 -8824 8724 -1 -8725 8725 4 -8726 8725 -1 -8825 8725 -1 -8726 8726 4 -8727 8726 -1 -8826 8726 -1 -8727 8727 4 -8728 8727 -1 -8827 8727 -1 -8728 8728 4 -8729 8728 -1 -8828 8728 -1 -8729 8729 4 -8730 8729 -1 -8829 8729 -1 -8730 8730 4 -8731 8730 -1 -8830 8730 -1 -8731 8731 4 -8732 8731 -1 -8831 8731 -1 -8732 8732 4 -8733 8732 -1 -8832 8732 -1 -8733 8733 4 -8734 8733 -1 -8833 8733 -1 -8734 8734 4 -8735 8734 -1 -8834 8734 -1 -8735 8735 4 -8736 8735 -1 -8835 8735 -1 -8736 8736 4 -8737 8736 -1 -8836 8736 -1 -8737 8737 4 -8738 8737 -1 -8837 8737 -1 -8738 8738 4 -8739 8738 -1 -8838 8738 -1 -8739 8739 4 -8740 8739 -1 -8839 8739 -1 -8740 8740 4 -8741 8740 -1 -8840 8740 -1 -8741 8741 4 -8742 8741 -1 -8841 8741 -1 -8742 8742 4 -8743 8742 -1 -8842 8742 -1 -8743 8743 4 -8744 8743 -1 -8843 8743 -1 -8744 8744 4 -8745 8744 -1 -8844 8744 -1 -8745 8745 4 -8746 8745 -1 -8845 8745 -1 -8746 8746 4 -8747 8746 -1 -8846 8746 -1 -8747 8747 4 -8748 8747 -1 -8847 8747 -1 -8748 8748 4 -8749 8748 -1 -8848 8748 -1 -8749 8749 4 -8750 8749 -1 -8849 8749 -1 -8750 8750 4 -8751 8750 -1 -8850 8750 -1 -8751 8751 4 -8752 8751 -1 -8851 8751 -1 -8752 8752 4 -8753 8752 -1 -8852 8752 -1 -8753 8753 4 -8754 8753 -1 -8853 8753 -1 -8754 8754 4 -8755 8754 -1 -8854 8754 -1 -8755 8755 4 -8756 8755 -1 -8855 8755 -1 -8756 8756 4 -8757 8756 -1 -8856 8756 -1 -8757 8757 4 -8758 8757 -1 -8857 8757 -1 -8758 8758 4 -8759 8758 -1 -8858 8758 -1 -8759 8759 4 -8760 8759 -1 -8859 8759 -1 -8760 8760 4 -8761 8760 -1 -8860 8760 -1 -8761 8761 4 -8762 8761 -1 -8861 8761 -1 -8762 8762 4 -8763 8762 -1 -8862 8762 -1 -8763 8763 4 -8764 8763 -1 -8863 8763 -1 -8764 8764 4 -8765 8764 -1 -8864 8764 -1 -8765 8765 4 -8766 8765 -1 -8865 8765 -1 -8766 8766 4 -8767 8766 -1 -8866 8766 -1 -8767 8767 4 -8768 8767 -1 -8867 8767 -1 -8768 8768 4 -8769 8768 -1 -8868 8768 -1 -8769 8769 4 -8770 8769 -1 -8869 8769 -1 -8770 8770 4 -8771 8770 -1 -8870 8770 -1 -8771 8771 4 -8772 8771 -1 -8871 8771 -1 -8772 8772 4 -8773 8772 -1 -8872 8772 -1 -8773 8773 4 -8774 8773 -1 -8873 8773 -1 -8774 8774 4 -8775 8774 -1 -8874 8774 -1 -8775 8775 4 -8776 8775 -1 -8875 8775 -1 -8776 8776 4 -8777 8776 -1 -8876 8776 -1 -8777 8777 4 -8778 8777 -1 -8877 8777 -1 -8778 8778 4 -8779 8778 -1 -8878 8778 -1 -8779 8779 4 -8780 8779 -1 -8879 8779 -1 -8780 8780 4 -8781 8780 -1 -8880 8780 -1 -8781 8781 4 -8782 8781 -1 -8881 8781 -1 -8782 8782 4 -8783 8782 -1 -8882 8782 -1 -8783 8783 4 -8784 8783 -1 -8883 8783 -1 -8784 8784 4 -8785 8784 -1 -8884 8784 -1 -8785 8785 4 -8786 8785 -1 -8885 8785 -1 -8786 8786 4 -8787 8786 -1 -8886 8786 -1 -8787 8787 4 -8788 8787 -1 -8887 8787 -1 -8788 8788 4 -8789 8788 -1 -8888 8788 -1 -8789 8789 4 -8790 8789 -1 -8889 8789 -1 -8790 8790 4 -8791 8790 -1 -8890 8790 -1 -8791 8791 4 -8792 8791 -1 -8891 8791 -1 -8792 8792 4 -8793 8792 -1 -8892 8792 -1 -8793 8793 4 -8794 8793 -1 -8893 8793 -1 -8794 8794 4 -8795 8794 -1 -8894 8794 -1 -8795 8795 4 -8796 8795 -1 -8895 8795 -1 -8796 8796 4 -8797 8796 -1 -8896 8796 -1 -8797 8797 4 -8798 8797 -1 -8897 8797 -1 -8798 8798 4 -8799 8798 -1 -8898 8798 -1 -8799 8799 4 -8800 8799 -1 -8899 8799 -1 -8800 8800 4 -8900 8800 -1 -8801 8801 4 -8802 8801 -1 -8901 8801 -1 -8802 8802 4 -8803 8802 -1 -8902 8802 -1 -8803 8803 4 -8804 8803 -1 -8903 8803 -1 -8804 8804 4 -8805 8804 -1 -8904 8804 -1 -8805 8805 4 -8806 8805 -1 -8905 8805 -1 -8806 8806 4 -8807 8806 -1 -8906 8806 -1 -8807 8807 4 -8808 8807 -1 -8907 8807 -1 -8808 8808 4 -8809 8808 -1 -8908 8808 -1 -8809 8809 4 -8810 8809 -1 -8909 8809 -1 -8810 8810 4 -8811 8810 -1 -8910 8810 -1 -8811 8811 4 -8812 8811 -1 -8911 8811 -1 -8812 8812 4 -8813 8812 -1 -8912 8812 -1 -8813 8813 4 -8814 8813 -1 -8913 8813 -1 -8814 8814 4 -8815 8814 -1 -8914 8814 -1 -8815 8815 4 -8816 8815 -1 -8915 8815 -1 -8816 8816 4 -8817 8816 -1 -8916 8816 -1 -8817 8817 4 -8818 8817 -1 -8917 8817 -1 -8818 8818 4 -8819 8818 -1 -8918 8818 -1 -8819 8819 4 -8820 8819 -1 -8919 8819 -1 -8820 8820 4 -8821 8820 -1 -8920 8820 -1 -8821 8821 4 -8822 8821 -1 -8921 8821 -1 -8822 8822 4 -8823 8822 -1 -8922 8822 -1 -8823 8823 4 -8824 8823 -1 -8923 8823 -1 -8824 8824 4 -8825 8824 -1 -8924 8824 -1 -8825 8825 4 -8826 8825 -1 -8925 8825 -1 -8826 8826 4 -8827 8826 -1 -8926 8826 -1 -8827 8827 4 -8828 8827 -1 -8927 8827 -1 -8828 8828 4 -8829 8828 -1 -8928 8828 -1 -8829 8829 4 -8830 8829 -1 -8929 8829 -1 -8830 8830 4 -8831 8830 -1 -8930 8830 -1 -8831 8831 4 -8832 8831 -1 -8931 8831 -1 -8832 8832 4 -8833 8832 -1 -8932 8832 -1 -8833 8833 4 -8834 8833 -1 -8933 8833 -1 -8834 8834 4 -8835 8834 -1 -8934 8834 -1 -8835 8835 4 -8836 8835 -1 -8935 8835 -1 -8836 8836 4 -8837 8836 -1 -8936 8836 -1 -8837 8837 4 -8838 8837 -1 -8937 8837 -1 -8838 8838 4 -8839 8838 -1 -8938 8838 -1 -8839 8839 4 -8840 8839 -1 -8939 8839 -1 -8840 8840 4 -8841 8840 -1 -8940 8840 -1 -8841 8841 4 -8842 8841 -1 -8941 8841 -1 -8842 8842 4 -8843 8842 -1 -8942 8842 -1 -8843 8843 4 -8844 8843 -1 -8943 8843 -1 -8844 8844 4 -8845 8844 -1 -8944 8844 -1 -8845 8845 4 -8846 8845 -1 -8945 8845 -1 -8846 8846 4 -8847 8846 -1 -8946 8846 -1 -8847 8847 4 -8848 8847 -1 -8947 8847 -1 -8848 8848 4 -8849 8848 -1 -8948 8848 -1 -8849 8849 4 -8850 8849 -1 -8949 8849 -1 -8850 8850 4 -8851 8850 -1 -8950 8850 -1 -8851 8851 4 -8852 8851 -1 -8951 8851 -1 -8852 8852 4 -8853 8852 -1 -8952 8852 -1 -8853 8853 4 -8854 8853 -1 -8953 8853 -1 -8854 8854 4 -8855 8854 -1 -8954 8854 -1 -8855 8855 4 -8856 8855 -1 -8955 8855 -1 -8856 8856 4 -8857 8856 -1 -8956 8856 -1 -8857 8857 4 -8858 8857 -1 -8957 8857 -1 -8858 8858 4 -8859 8858 -1 -8958 8858 -1 -8859 8859 4 -8860 8859 -1 -8959 8859 -1 -8860 8860 4 -8861 8860 -1 -8960 8860 -1 -8861 8861 4 -8862 8861 -1 -8961 8861 -1 -8862 8862 4 -8863 8862 -1 -8962 8862 -1 -8863 8863 4 -8864 8863 -1 -8963 8863 -1 -8864 8864 4 -8865 8864 -1 -8964 8864 -1 -8865 8865 4 -8866 8865 -1 -8965 8865 -1 -8866 8866 4 -8867 8866 -1 -8966 8866 -1 -8867 8867 4 -8868 8867 -1 -8967 8867 -1 -8868 8868 4 -8869 8868 -1 -8968 8868 -1 -8869 8869 4 -8870 8869 -1 -8969 8869 -1 -8870 8870 4 -8871 8870 -1 -8970 8870 -1 -8871 8871 4 -8872 8871 -1 -8971 8871 -1 -8872 8872 4 -8873 8872 -1 -8972 8872 -1 -8873 8873 4 -8874 8873 -1 -8973 8873 -1 -8874 8874 4 -8875 8874 -1 -8974 8874 -1 -8875 8875 4 -8876 8875 -1 -8975 8875 -1 -8876 8876 4 -8877 8876 -1 -8976 8876 -1 -8877 8877 4 -8878 8877 -1 -8977 8877 -1 -8878 8878 4 -8879 8878 -1 -8978 8878 -1 -8879 8879 4 -8880 8879 -1 -8979 8879 -1 -8880 8880 4 -8881 8880 -1 -8980 8880 -1 -8881 8881 4 -8882 8881 -1 -8981 8881 -1 -8882 8882 4 -8883 8882 -1 -8982 8882 -1 -8883 8883 4 -8884 8883 -1 -8983 8883 -1 -8884 8884 4 -8885 8884 -1 -8984 8884 -1 -8885 8885 4 -8886 8885 -1 -8985 8885 -1 -8886 8886 4 -8887 8886 -1 -8986 8886 -1 -8887 8887 4 -8888 8887 -1 -8987 8887 -1 -8888 8888 4 -8889 8888 -1 -8988 8888 -1 -8889 8889 4 -8890 8889 -1 -8989 8889 -1 -8890 8890 4 -8891 8890 -1 -8990 8890 -1 -8891 8891 4 -8892 8891 -1 -8991 8891 -1 -8892 8892 4 -8893 8892 -1 -8992 8892 -1 -8893 8893 4 -8894 8893 -1 -8993 8893 -1 -8894 8894 4 -8895 8894 -1 -8994 8894 -1 -8895 8895 4 -8896 8895 -1 -8995 8895 -1 -8896 8896 4 -8897 8896 -1 -8996 8896 -1 -8897 8897 4 -8898 8897 -1 -8997 8897 -1 -8898 8898 4 -8899 8898 -1 -8998 8898 -1 -8899 8899 4 -8900 8899 -1 -8999 8899 -1 -8900 8900 4 -9000 8900 -1 -8901 8901 4 -8902 8901 -1 -9001 8901 -1 -8902 8902 4 -8903 8902 -1 -9002 8902 -1 -8903 8903 4 -8904 8903 -1 -9003 8903 -1 -8904 8904 4 -8905 8904 -1 -9004 8904 -1 -8905 8905 4 -8906 8905 -1 -9005 8905 -1 -8906 8906 4 -8907 8906 -1 -9006 8906 -1 -8907 8907 4 -8908 8907 -1 -9007 8907 -1 -8908 8908 4 -8909 8908 -1 -9008 8908 -1 -8909 8909 4 -8910 8909 -1 -9009 8909 -1 -8910 8910 4 -8911 8910 -1 -9010 8910 -1 -8911 8911 4 -8912 8911 -1 -9011 8911 -1 -8912 8912 4 -8913 8912 -1 -9012 8912 -1 -8913 8913 4 -8914 8913 -1 -9013 8913 -1 -8914 8914 4 -8915 8914 -1 -9014 8914 -1 -8915 8915 4 -8916 8915 -1 -9015 8915 -1 -8916 8916 4 -8917 8916 -1 -9016 8916 -1 -8917 8917 4 -8918 8917 -1 -9017 8917 -1 -8918 8918 4 -8919 8918 -1 -9018 8918 -1 -8919 8919 4 -8920 8919 -1 -9019 8919 -1 -8920 8920 4 -8921 8920 -1 -9020 8920 -1 -8921 8921 4 -8922 8921 -1 -9021 8921 -1 -8922 8922 4 -8923 8922 -1 -9022 8922 -1 -8923 8923 4 -8924 8923 -1 -9023 8923 -1 -8924 8924 4 -8925 8924 -1 -9024 8924 -1 -8925 8925 4 -8926 8925 -1 -9025 8925 -1 -8926 8926 4 -8927 8926 -1 -9026 8926 -1 -8927 8927 4 -8928 8927 -1 -9027 8927 -1 -8928 8928 4 -8929 8928 -1 -9028 8928 -1 -8929 8929 4 -8930 8929 -1 -9029 8929 -1 -8930 8930 4 -8931 8930 -1 -9030 8930 -1 -8931 8931 4 -8932 8931 -1 -9031 8931 -1 -8932 8932 4 -8933 8932 -1 -9032 8932 -1 -8933 8933 4 -8934 8933 -1 -9033 8933 -1 -8934 8934 4 -8935 8934 -1 -9034 8934 -1 -8935 8935 4 -8936 8935 -1 -9035 8935 -1 -8936 8936 4 -8937 8936 -1 -9036 8936 -1 -8937 8937 4 -8938 8937 -1 -9037 8937 -1 -8938 8938 4 -8939 8938 -1 -9038 8938 -1 -8939 8939 4 -8940 8939 -1 -9039 8939 -1 -8940 8940 4 -8941 8940 -1 -9040 8940 -1 -8941 8941 4 -8942 8941 -1 -9041 8941 -1 -8942 8942 4 -8943 8942 -1 -9042 8942 -1 -8943 8943 4 -8944 8943 -1 -9043 8943 -1 -8944 8944 4 -8945 8944 -1 -9044 8944 -1 -8945 8945 4 -8946 8945 -1 -9045 8945 -1 -8946 8946 4 -8947 8946 -1 -9046 8946 -1 -8947 8947 4 -8948 8947 -1 -9047 8947 -1 -8948 8948 4 -8949 8948 -1 -9048 8948 -1 -8949 8949 4 -8950 8949 -1 -9049 8949 -1 -8950 8950 4 -8951 8950 -1 -9050 8950 -1 -8951 8951 4 -8952 8951 -1 -9051 8951 -1 -8952 8952 4 -8953 8952 -1 -9052 8952 -1 -8953 8953 4 -8954 8953 -1 -9053 8953 -1 -8954 8954 4 -8955 8954 -1 -9054 8954 -1 -8955 8955 4 -8956 8955 -1 -9055 8955 -1 -8956 8956 4 -8957 8956 -1 -9056 8956 -1 -8957 8957 4 -8958 8957 -1 -9057 8957 -1 -8958 8958 4 -8959 8958 -1 -9058 8958 -1 -8959 8959 4 -8960 8959 -1 -9059 8959 -1 -8960 8960 4 -8961 8960 -1 -9060 8960 -1 -8961 8961 4 -8962 8961 -1 -9061 8961 -1 -8962 8962 4 -8963 8962 -1 -9062 8962 -1 -8963 8963 4 -8964 8963 -1 -9063 8963 -1 -8964 8964 4 -8965 8964 -1 -9064 8964 -1 -8965 8965 4 -8966 8965 -1 -9065 8965 -1 -8966 8966 4 -8967 8966 -1 -9066 8966 -1 -8967 8967 4 -8968 8967 -1 -9067 8967 -1 -8968 8968 4 -8969 8968 -1 -9068 8968 -1 -8969 8969 4 -8970 8969 -1 -9069 8969 -1 -8970 8970 4 -8971 8970 -1 -9070 8970 -1 -8971 8971 4 -8972 8971 -1 -9071 8971 -1 -8972 8972 4 -8973 8972 -1 -9072 8972 -1 -8973 8973 4 -8974 8973 -1 -9073 8973 -1 -8974 8974 4 -8975 8974 -1 -9074 8974 -1 -8975 8975 4 -8976 8975 -1 -9075 8975 -1 -8976 8976 4 -8977 8976 -1 -9076 8976 -1 -8977 8977 4 -8978 8977 -1 -9077 8977 -1 -8978 8978 4 -8979 8978 -1 -9078 8978 -1 -8979 8979 4 -8980 8979 -1 -9079 8979 -1 -8980 8980 4 -8981 8980 -1 -9080 8980 -1 -8981 8981 4 -8982 8981 -1 -9081 8981 -1 -8982 8982 4 -8983 8982 -1 -9082 8982 -1 -8983 8983 4 -8984 8983 -1 -9083 8983 -1 -8984 8984 4 -8985 8984 -1 -9084 8984 -1 -8985 8985 4 -8986 8985 -1 -9085 8985 -1 -8986 8986 4 -8987 8986 -1 -9086 8986 -1 -8987 8987 4 -8988 8987 -1 -9087 8987 -1 -8988 8988 4 -8989 8988 -1 -9088 8988 -1 -8989 8989 4 -8990 8989 -1 -9089 8989 -1 -8990 8990 4 -8991 8990 -1 -9090 8990 -1 -8991 8991 4 -8992 8991 -1 -9091 8991 -1 -8992 8992 4 -8993 8992 -1 -9092 8992 -1 -8993 8993 4 -8994 8993 -1 -9093 8993 -1 -8994 8994 4 -8995 8994 -1 -9094 8994 -1 -8995 8995 4 -8996 8995 -1 -9095 8995 -1 -8996 8996 4 -8997 8996 -1 -9096 8996 -1 -8997 8997 4 -8998 8997 -1 -9097 8997 -1 -8998 8998 4 -8999 8998 -1 -9098 8998 -1 -8999 8999 4 -9000 8999 -1 -9099 8999 -1 -9000 9000 4 -9100 9000 -1 -9001 9001 4 -9002 9001 -1 -9101 9001 -1 -9002 9002 4 -9003 9002 -1 -9102 9002 -1 -9003 9003 4 -9004 9003 -1 -9103 9003 -1 -9004 9004 4 -9005 9004 -1 -9104 9004 -1 -9005 9005 4 -9006 9005 -1 -9105 9005 -1 -9006 9006 4 -9007 9006 -1 -9106 9006 -1 -9007 9007 4 -9008 9007 -1 -9107 9007 -1 -9008 9008 4 -9009 9008 -1 -9108 9008 -1 -9009 9009 4 -9010 9009 -1 -9109 9009 -1 -9010 9010 4 -9011 9010 -1 -9110 9010 -1 -9011 9011 4 -9012 9011 -1 -9111 9011 -1 -9012 9012 4 -9013 9012 -1 -9112 9012 -1 -9013 9013 4 -9014 9013 -1 -9113 9013 -1 -9014 9014 4 -9015 9014 -1 -9114 9014 -1 -9015 9015 4 -9016 9015 -1 -9115 9015 -1 -9016 9016 4 -9017 9016 -1 -9116 9016 -1 -9017 9017 4 -9018 9017 -1 -9117 9017 -1 -9018 9018 4 -9019 9018 -1 -9118 9018 -1 -9019 9019 4 -9020 9019 -1 -9119 9019 -1 -9020 9020 4 -9021 9020 -1 -9120 9020 -1 -9021 9021 4 -9022 9021 -1 -9121 9021 -1 -9022 9022 4 -9023 9022 -1 -9122 9022 -1 -9023 9023 4 -9024 9023 -1 -9123 9023 -1 -9024 9024 4 -9025 9024 -1 -9124 9024 -1 -9025 9025 4 -9026 9025 -1 -9125 9025 -1 -9026 9026 4 -9027 9026 -1 -9126 9026 -1 -9027 9027 4 -9028 9027 -1 -9127 9027 -1 -9028 9028 4 -9029 9028 -1 -9128 9028 -1 -9029 9029 4 -9030 9029 -1 -9129 9029 -1 -9030 9030 4 -9031 9030 -1 -9130 9030 -1 -9031 9031 4 -9032 9031 -1 -9131 9031 -1 -9032 9032 4 -9033 9032 -1 -9132 9032 -1 -9033 9033 4 -9034 9033 -1 -9133 9033 -1 -9034 9034 4 -9035 9034 -1 -9134 9034 -1 -9035 9035 4 -9036 9035 -1 -9135 9035 -1 -9036 9036 4 -9037 9036 -1 -9136 9036 -1 -9037 9037 4 -9038 9037 -1 -9137 9037 -1 -9038 9038 4 -9039 9038 -1 -9138 9038 -1 -9039 9039 4 -9040 9039 -1 -9139 9039 -1 -9040 9040 4 -9041 9040 -1 -9140 9040 -1 -9041 9041 4 -9042 9041 -1 -9141 9041 -1 -9042 9042 4 -9043 9042 -1 -9142 9042 -1 -9043 9043 4 -9044 9043 -1 -9143 9043 -1 -9044 9044 4 -9045 9044 -1 -9144 9044 -1 -9045 9045 4 -9046 9045 -1 -9145 9045 -1 -9046 9046 4 -9047 9046 -1 -9146 9046 -1 -9047 9047 4 -9048 9047 -1 -9147 9047 -1 -9048 9048 4 -9049 9048 -1 -9148 9048 -1 -9049 9049 4 -9050 9049 -1 -9149 9049 -1 -9050 9050 4 -9051 9050 -1 -9150 9050 -1 -9051 9051 4 -9052 9051 -1 -9151 9051 -1 -9052 9052 4 -9053 9052 -1 -9152 9052 -1 -9053 9053 4 -9054 9053 -1 -9153 9053 -1 -9054 9054 4 -9055 9054 -1 -9154 9054 -1 -9055 9055 4 -9056 9055 -1 -9155 9055 -1 -9056 9056 4 -9057 9056 -1 -9156 9056 -1 -9057 9057 4 -9058 9057 -1 -9157 9057 -1 -9058 9058 4 -9059 9058 -1 -9158 9058 -1 -9059 9059 4 -9060 9059 -1 -9159 9059 -1 -9060 9060 4 -9061 9060 -1 -9160 9060 -1 -9061 9061 4 -9062 9061 -1 -9161 9061 -1 -9062 9062 4 -9063 9062 -1 -9162 9062 -1 -9063 9063 4 -9064 9063 -1 -9163 9063 -1 -9064 9064 4 -9065 9064 -1 -9164 9064 -1 -9065 9065 4 -9066 9065 -1 -9165 9065 -1 -9066 9066 4 -9067 9066 -1 -9166 9066 -1 -9067 9067 4 -9068 9067 -1 -9167 9067 -1 -9068 9068 4 -9069 9068 -1 -9168 9068 -1 -9069 9069 4 -9070 9069 -1 -9169 9069 -1 -9070 9070 4 -9071 9070 -1 -9170 9070 -1 -9071 9071 4 -9072 9071 -1 -9171 9071 -1 -9072 9072 4 -9073 9072 -1 -9172 9072 -1 -9073 9073 4 -9074 9073 -1 -9173 9073 -1 -9074 9074 4 -9075 9074 -1 -9174 9074 -1 -9075 9075 4 -9076 9075 -1 -9175 9075 -1 -9076 9076 4 -9077 9076 -1 -9176 9076 -1 -9077 9077 4 -9078 9077 -1 -9177 9077 -1 -9078 9078 4 -9079 9078 -1 -9178 9078 -1 -9079 9079 4 -9080 9079 -1 -9179 9079 -1 -9080 9080 4 -9081 9080 -1 -9180 9080 -1 -9081 9081 4 -9082 9081 -1 -9181 9081 -1 -9082 9082 4 -9083 9082 -1 -9182 9082 -1 -9083 9083 4 -9084 9083 -1 -9183 9083 -1 -9084 9084 4 -9085 9084 -1 -9184 9084 -1 -9085 9085 4 -9086 9085 -1 -9185 9085 -1 -9086 9086 4 -9087 9086 -1 -9186 9086 -1 -9087 9087 4 -9088 9087 -1 -9187 9087 -1 -9088 9088 4 -9089 9088 -1 -9188 9088 -1 -9089 9089 4 -9090 9089 -1 -9189 9089 -1 -9090 9090 4 -9091 9090 -1 -9190 9090 -1 -9091 9091 4 -9092 9091 -1 -9191 9091 -1 -9092 9092 4 -9093 9092 -1 -9192 9092 -1 -9093 9093 4 -9094 9093 -1 -9193 9093 -1 -9094 9094 4 -9095 9094 -1 -9194 9094 -1 -9095 9095 4 -9096 9095 -1 -9195 9095 -1 -9096 9096 4 -9097 9096 -1 -9196 9096 -1 -9097 9097 4 -9098 9097 -1 -9197 9097 -1 -9098 9098 4 -9099 9098 -1 -9198 9098 -1 -9099 9099 4 -9100 9099 -1 -9199 9099 -1 -9100 9100 4 -9200 9100 -1 -9101 9101 4 -9102 9101 -1 -9201 9101 -1 -9102 9102 4 -9103 9102 -1 -9202 9102 -1 -9103 9103 4 -9104 9103 -1 -9203 9103 -1 -9104 9104 4 -9105 9104 -1 -9204 9104 -1 -9105 9105 4 -9106 9105 -1 -9205 9105 -1 -9106 9106 4 -9107 9106 -1 -9206 9106 -1 -9107 9107 4 -9108 9107 -1 -9207 9107 -1 -9108 9108 4 -9109 9108 -1 -9208 9108 -1 -9109 9109 4 -9110 9109 -1 -9209 9109 -1 -9110 9110 4 -9111 9110 -1 -9210 9110 -1 -9111 9111 4 -9112 9111 -1 -9211 9111 -1 -9112 9112 4 -9113 9112 -1 -9212 9112 -1 -9113 9113 4 -9114 9113 -1 -9213 9113 -1 -9114 9114 4 -9115 9114 -1 -9214 9114 -1 -9115 9115 4 -9116 9115 -1 -9215 9115 -1 -9116 9116 4 -9117 9116 -1 -9216 9116 -1 -9117 9117 4 -9118 9117 -1 -9217 9117 -1 -9118 9118 4 -9119 9118 -1 -9218 9118 -1 -9119 9119 4 -9120 9119 -1 -9219 9119 -1 -9120 9120 4 -9121 9120 -1 -9220 9120 -1 -9121 9121 4 -9122 9121 -1 -9221 9121 -1 -9122 9122 4 -9123 9122 -1 -9222 9122 -1 -9123 9123 4 -9124 9123 -1 -9223 9123 -1 -9124 9124 4 -9125 9124 -1 -9224 9124 -1 -9125 9125 4 -9126 9125 -1 -9225 9125 -1 -9126 9126 4 -9127 9126 -1 -9226 9126 -1 -9127 9127 4 -9128 9127 -1 -9227 9127 -1 -9128 9128 4 -9129 9128 -1 -9228 9128 -1 -9129 9129 4 -9130 9129 -1 -9229 9129 -1 -9130 9130 4 -9131 9130 -1 -9230 9130 -1 -9131 9131 4 -9132 9131 -1 -9231 9131 -1 -9132 9132 4 -9133 9132 -1 -9232 9132 -1 -9133 9133 4 -9134 9133 -1 -9233 9133 -1 -9134 9134 4 -9135 9134 -1 -9234 9134 -1 -9135 9135 4 -9136 9135 -1 -9235 9135 -1 -9136 9136 4 -9137 9136 -1 -9236 9136 -1 -9137 9137 4 -9138 9137 -1 -9237 9137 -1 -9138 9138 4 -9139 9138 -1 -9238 9138 -1 -9139 9139 4 -9140 9139 -1 -9239 9139 -1 -9140 9140 4 -9141 9140 -1 -9240 9140 -1 -9141 9141 4 -9142 9141 -1 -9241 9141 -1 -9142 9142 4 -9143 9142 -1 -9242 9142 -1 -9143 9143 4 -9144 9143 -1 -9243 9143 -1 -9144 9144 4 -9145 9144 -1 -9244 9144 -1 -9145 9145 4 -9146 9145 -1 -9245 9145 -1 -9146 9146 4 -9147 9146 -1 -9246 9146 -1 -9147 9147 4 -9148 9147 -1 -9247 9147 -1 -9148 9148 4 -9149 9148 -1 -9248 9148 -1 -9149 9149 4 -9150 9149 -1 -9249 9149 -1 -9150 9150 4 -9151 9150 -1 -9250 9150 -1 -9151 9151 4 -9152 9151 -1 -9251 9151 -1 -9152 9152 4 -9153 9152 -1 -9252 9152 -1 -9153 9153 4 -9154 9153 -1 -9253 9153 -1 -9154 9154 4 -9155 9154 -1 -9254 9154 -1 -9155 9155 4 -9156 9155 -1 -9255 9155 -1 -9156 9156 4 -9157 9156 -1 -9256 9156 -1 -9157 9157 4 -9158 9157 -1 -9257 9157 -1 -9158 9158 4 -9159 9158 -1 -9258 9158 -1 -9159 9159 4 -9160 9159 -1 -9259 9159 -1 -9160 9160 4 -9161 9160 -1 -9260 9160 -1 -9161 9161 4 -9162 9161 -1 -9261 9161 -1 -9162 9162 4 -9163 9162 -1 -9262 9162 -1 -9163 9163 4 -9164 9163 -1 -9263 9163 -1 -9164 9164 4 -9165 9164 -1 -9264 9164 -1 -9165 9165 4 -9166 9165 -1 -9265 9165 -1 -9166 9166 4 -9167 9166 -1 -9266 9166 -1 -9167 9167 4 -9168 9167 -1 -9267 9167 -1 -9168 9168 4 -9169 9168 -1 -9268 9168 -1 -9169 9169 4 -9170 9169 -1 -9269 9169 -1 -9170 9170 4 -9171 9170 -1 -9270 9170 -1 -9171 9171 4 -9172 9171 -1 -9271 9171 -1 -9172 9172 4 -9173 9172 -1 -9272 9172 -1 -9173 9173 4 -9174 9173 -1 -9273 9173 -1 -9174 9174 4 -9175 9174 -1 -9274 9174 -1 -9175 9175 4 -9176 9175 -1 -9275 9175 -1 -9176 9176 4 -9177 9176 -1 -9276 9176 -1 -9177 9177 4 -9178 9177 -1 -9277 9177 -1 -9178 9178 4 -9179 9178 -1 -9278 9178 -1 -9179 9179 4 -9180 9179 -1 -9279 9179 -1 -9180 9180 4 -9181 9180 -1 -9280 9180 -1 -9181 9181 4 -9182 9181 -1 -9281 9181 -1 -9182 9182 4 -9183 9182 -1 -9282 9182 -1 -9183 9183 4 -9184 9183 -1 -9283 9183 -1 -9184 9184 4 -9185 9184 -1 -9284 9184 -1 -9185 9185 4 -9186 9185 -1 -9285 9185 -1 -9186 9186 4 -9187 9186 -1 -9286 9186 -1 -9187 9187 4 -9188 9187 -1 -9287 9187 -1 -9188 9188 4 -9189 9188 -1 -9288 9188 -1 -9189 9189 4 -9190 9189 -1 -9289 9189 -1 -9190 9190 4 -9191 9190 -1 -9290 9190 -1 -9191 9191 4 -9192 9191 -1 -9291 9191 -1 -9192 9192 4 -9193 9192 -1 -9292 9192 -1 -9193 9193 4 -9194 9193 -1 -9293 9193 -1 -9194 9194 4 -9195 9194 -1 -9294 9194 -1 -9195 9195 4 -9196 9195 -1 -9295 9195 -1 -9196 9196 4 -9197 9196 -1 -9296 9196 -1 -9197 9197 4 -9198 9197 -1 -9297 9197 -1 -9198 9198 4 -9199 9198 -1 -9298 9198 -1 -9199 9199 4 -9200 9199 -1 -9299 9199 -1 -9200 9200 4 -9300 9200 -1 -9201 9201 4 -9202 9201 -1 -9301 9201 -1 -9202 9202 4 -9203 9202 -1 -9302 9202 -1 -9203 9203 4 -9204 9203 -1 -9303 9203 -1 -9204 9204 4 -9205 9204 -1 -9304 9204 -1 -9205 9205 4 -9206 9205 -1 -9305 9205 -1 -9206 9206 4 -9207 9206 -1 -9306 9206 -1 -9207 9207 4 -9208 9207 -1 -9307 9207 -1 -9208 9208 4 -9209 9208 -1 -9308 9208 -1 -9209 9209 4 -9210 9209 -1 -9309 9209 -1 -9210 9210 4 -9211 9210 -1 -9310 9210 -1 -9211 9211 4 -9212 9211 -1 -9311 9211 -1 -9212 9212 4 -9213 9212 -1 -9312 9212 -1 -9213 9213 4 -9214 9213 -1 -9313 9213 -1 -9214 9214 4 -9215 9214 -1 -9314 9214 -1 -9215 9215 4 -9216 9215 -1 -9315 9215 -1 -9216 9216 4 -9217 9216 -1 -9316 9216 -1 -9217 9217 4 -9218 9217 -1 -9317 9217 -1 -9218 9218 4 -9219 9218 -1 -9318 9218 -1 -9219 9219 4 -9220 9219 -1 -9319 9219 -1 -9220 9220 4 -9221 9220 -1 -9320 9220 -1 -9221 9221 4 -9222 9221 -1 -9321 9221 -1 -9222 9222 4 -9223 9222 -1 -9322 9222 -1 -9223 9223 4 -9224 9223 -1 -9323 9223 -1 -9224 9224 4 -9225 9224 -1 -9324 9224 -1 -9225 9225 4 -9226 9225 -1 -9325 9225 -1 -9226 9226 4 -9227 9226 -1 -9326 9226 -1 -9227 9227 4 -9228 9227 -1 -9327 9227 -1 -9228 9228 4 -9229 9228 -1 -9328 9228 -1 -9229 9229 4 -9230 9229 -1 -9329 9229 -1 -9230 9230 4 -9231 9230 -1 -9330 9230 -1 -9231 9231 4 -9232 9231 -1 -9331 9231 -1 -9232 9232 4 -9233 9232 -1 -9332 9232 -1 -9233 9233 4 -9234 9233 -1 -9333 9233 -1 -9234 9234 4 -9235 9234 -1 -9334 9234 -1 -9235 9235 4 -9236 9235 -1 -9335 9235 -1 -9236 9236 4 -9237 9236 -1 -9336 9236 -1 -9237 9237 4 -9238 9237 -1 -9337 9237 -1 -9238 9238 4 -9239 9238 -1 -9338 9238 -1 -9239 9239 4 -9240 9239 -1 -9339 9239 -1 -9240 9240 4 -9241 9240 -1 -9340 9240 -1 -9241 9241 4 -9242 9241 -1 -9341 9241 -1 -9242 9242 4 -9243 9242 -1 -9342 9242 -1 -9243 9243 4 -9244 9243 -1 -9343 9243 -1 -9244 9244 4 -9245 9244 -1 -9344 9244 -1 -9245 9245 4 -9246 9245 -1 -9345 9245 -1 -9246 9246 4 -9247 9246 -1 -9346 9246 -1 -9247 9247 4 -9248 9247 -1 -9347 9247 -1 -9248 9248 4 -9249 9248 -1 -9348 9248 -1 -9249 9249 4 -9250 9249 -1 -9349 9249 -1 -9250 9250 4 -9251 9250 -1 -9350 9250 -1 -9251 9251 4 -9252 9251 -1 -9351 9251 -1 -9252 9252 4 -9253 9252 -1 -9352 9252 -1 -9253 9253 4 -9254 9253 -1 -9353 9253 -1 -9254 9254 4 -9255 9254 -1 -9354 9254 -1 -9255 9255 4 -9256 9255 -1 -9355 9255 -1 -9256 9256 4 -9257 9256 -1 -9356 9256 -1 -9257 9257 4 -9258 9257 -1 -9357 9257 -1 -9258 9258 4 -9259 9258 -1 -9358 9258 -1 -9259 9259 4 -9260 9259 -1 -9359 9259 -1 -9260 9260 4 -9261 9260 -1 -9360 9260 -1 -9261 9261 4 -9262 9261 -1 -9361 9261 -1 -9262 9262 4 -9263 9262 -1 -9362 9262 -1 -9263 9263 4 -9264 9263 -1 -9363 9263 -1 -9264 9264 4 -9265 9264 -1 -9364 9264 -1 -9265 9265 4 -9266 9265 -1 -9365 9265 -1 -9266 9266 4 -9267 9266 -1 -9366 9266 -1 -9267 9267 4 -9268 9267 -1 -9367 9267 -1 -9268 9268 4 -9269 9268 -1 -9368 9268 -1 -9269 9269 4 -9270 9269 -1 -9369 9269 -1 -9270 9270 4 -9271 9270 -1 -9370 9270 -1 -9271 9271 4 -9272 9271 -1 -9371 9271 -1 -9272 9272 4 -9273 9272 -1 -9372 9272 -1 -9273 9273 4 -9274 9273 -1 -9373 9273 -1 -9274 9274 4 -9275 9274 -1 -9374 9274 -1 -9275 9275 4 -9276 9275 -1 -9375 9275 -1 -9276 9276 4 -9277 9276 -1 -9376 9276 -1 -9277 9277 4 -9278 9277 -1 -9377 9277 -1 -9278 9278 4 -9279 9278 -1 -9378 9278 -1 -9279 9279 4 -9280 9279 -1 -9379 9279 -1 -9280 9280 4 -9281 9280 -1 -9380 9280 -1 -9281 9281 4 -9282 9281 -1 -9381 9281 -1 -9282 9282 4 -9283 9282 -1 -9382 9282 -1 -9283 9283 4 -9284 9283 -1 -9383 9283 -1 -9284 9284 4 -9285 9284 -1 -9384 9284 -1 -9285 9285 4 -9286 9285 -1 -9385 9285 -1 -9286 9286 4 -9287 9286 -1 -9386 9286 -1 -9287 9287 4 -9288 9287 -1 -9387 9287 -1 -9288 9288 4 -9289 9288 -1 -9388 9288 -1 -9289 9289 4 -9290 9289 -1 -9389 9289 -1 -9290 9290 4 -9291 9290 -1 -9390 9290 -1 -9291 9291 4 -9292 9291 -1 -9391 9291 -1 -9292 9292 4 -9293 9292 -1 -9392 9292 -1 -9293 9293 4 -9294 9293 -1 -9393 9293 -1 -9294 9294 4 -9295 9294 -1 -9394 9294 -1 -9295 9295 4 -9296 9295 -1 -9395 9295 -1 -9296 9296 4 -9297 9296 -1 -9396 9296 -1 -9297 9297 4 -9298 9297 -1 -9397 9297 -1 -9298 9298 4 -9299 9298 -1 -9398 9298 -1 -9299 9299 4 -9300 9299 -1 -9399 9299 -1 -9300 9300 4 -9400 9300 -1 -9301 9301 4 -9302 9301 -1 -9401 9301 -1 -9302 9302 4 -9303 9302 -1 -9402 9302 -1 -9303 9303 4 -9304 9303 -1 -9403 9303 -1 -9304 9304 4 -9305 9304 -1 -9404 9304 -1 -9305 9305 4 -9306 9305 -1 -9405 9305 -1 -9306 9306 4 -9307 9306 -1 -9406 9306 -1 -9307 9307 4 -9308 9307 -1 -9407 9307 -1 -9308 9308 4 -9309 9308 -1 -9408 9308 -1 -9309 9309 4 -9310 9309 -1 -9409 9309 -1 -9310 9310 4 -9311 9310 -1 -9410 9310 -1 -9311 9311 4 -9312 9311 -1 -9411 9311 -1 -9312 9312 4 -9313 9312 -1 -9412 9312 -1 -9313 9313 4 -9314 9313 -1 -9413 9313 -1 -9314 9314 4 -9315 9314 -1 -9414 9314 -1 -9315 9315 4 -9316 9315 -1 -9415 9315 -1 -9316 9316 4 -9317 9316 -1 -9416 9316 -1 -9317 9317 4 -9318 9317 -1 -9417 9317 -1 -9318 9318 4 -9319 9318 -1 -9418 9318 -1 -9319 9319 4 -9320 9319 -1 -9419 9319 -1 -9320 9320 4 -9321 9320 -1 -9420 9320 -1 -9321 9321 4 -9322 9321 -1 -9421 9321 -1 -9322 9322 4 -9323 9322 -1 -9422 9322 -1 -9323 9323 4 -9324 9323 -1 -9423 9323 -1 -9324 9324 4 -9325 9324 -1 -9424 9324 -1 -9325 9325 4 -9326 9325 -1 -9425 9325 -1 -9326 9326 4 -9327 9326 -1 -9426 9326 -1 -9327 9327 4 -9328 9327 -1 -9427 9327 -1 -9328 9328 4 -9329 9328 -1 -9428 9328 -1 -9329 9329 4 -9330 9329 -1 -9429 9329 -1 -9330 9330 4 -9331 9330 -1 -9430 9330 -1 -9331 9331 4 -9332 9331 -1 -9431 9331 -1 -9332 9332 4 -9333 9332 -1 -9432 9332 -1 -9333 9333 4 -9334 9333 -1 -9433 9333 -1 -9334 9334 4 -9335 9334 -1 -9434 9334 -1 -9335 9335 4 -9336 9335 -1 -9435 9335 -1 -9336 9336 4 -9337 9336 -1 -9436 9336 -1 -9337 9337 4 -9338 9337 -1 -9437 9337 -1 -9338 9338 4 -9339 9338 -1 -9438 9338 -1 -9339 9339 4 -9340 9339 -1 -9439 9339 -1 -9340 9340 4 -9341 9340 -1 -9440 9340 -1 -9341 9341 4 -9342 9341 -1 -9441 9341 -1 -9342 9342 4 -9343 9342 -1 -9442 9342 -1 -9343 9343 4 -9344 9343 -1 -9443 9343 -1 -9344 9344 4 -9345 9344 -1 -9444 9344 -1 -9345 9345 4 -9346 9345 -1 -9445 9345 -1 -9346 9346 4 -9347 9346 -1 -9446 9346 -1 -9347 9347 4 -9348 9347 -1 -9447 9347 -1 -9348 9348 4 -9349 9348 -1 -9448 9348 -1 -9349 9349 4 -9350 9349 -1 -9449 9349 -1 -9350 9350 4 -9351 9350 -1 -9450 9350 -1 -9351 9351 4 -9352 9351 -1 -9451 9351 -1 -9352 9352 4 -9353 9352 -1 -9452 9352 -1 -9353 9353 4 -9354 9353 -1 -9453 9353 -1 -9354 9354 4 -9355 9354 -1 -9454 9354 -1 -9355 9355 4 -9356 9355 -1 -9455 9355 -1 -9356 9356 4 -9357 9356 -1 -9456 9356 -1 -9357 9357 4 -9358 9357 -1 -9457 9357 -1 -9358 9358 4 -9359 9358 -1 -9458 9358 -1 -9359 9359 4 -9360 9359 -1 -9459 9359 -1 -9360 9360 4 -9361 9360 -1 -9460 9360 -1 -9361 9361 4 -9362 9361 -1 -9461 9361 -1 -9362 9362 4 -9363 9362 -1 -9462 9362 -1 -9363 9363 4 -9364 9363 -1 -9463 9363 -1 -9364 9364 4 -9365 9364 -1 -9464 9364 -1 -9365 9365 4 -9366 9365 -1 -9465 9365 -1 -9366 9366 4 -9367 9366 -1 -9466 9366 -1 -9367 9367 4 -9368 9367 -1 -9467 9367 -1 -9368 9368 4 -9369 9368 -1 -9468 9368 -1 -9369 9369 4 -9370 9369 -1 -9469 9369 -1 -9370 9370 4 -9371 9370 -1 -9470 9370 -1 -9371 9371 4 -9372 9371 -1 -9471 9371 -1 -9372 9372 4 -9373 9372 -1 -9472 9372 -1 -9373 9373 4 -9374 9373 -1 -9473 9373 -1 -9374 9374 4 -9375 9374 -1 -9474 9374 -1 -9375 9375 4 -9376 9375 -1 -9475 9375 -1 -9376 9376 4 -9377 9376 -1 -9476 9376 -1 -9377 9377 4 -9378 9377 -1 -9477 9377 -1 -9378 9378 4 -9379 9378 -1 -9478 9378 -1 -9379 9379 4 -9380 9379 -1 -9479 9379 -1 -9380 9380 4 -9381 9380 -1 -9480 9380 -1 -9381 9381 4 -9382 9381 -1 -9481 9381 -1 -9382 9382 4 -9383 9382 -1 -9482 9382 -1 -9383 9383 4 -9384 9383 -1 -9483 9383 -1 -9384 9384 4 -9385 9384 -1 -9484 9384 -1 -9385 9385 4 -9386 9385 -1 -9485 9385 -1 -9386 9386 4 -9387 9386 -1 -9486 9386 -1 -9387 9387 4 -9388 9387 -1 -9487 9387 -1 -9388 9388 4 -9389 9388 -1 -9488 9388 -1 -9389 9389 4 -9390 9389 -1 -9489 9389 -1 -9390 9390 4 -9391 9390 -1 -9490 9390 -1 -9391 9391 4 -9392 9391 -1 -9491 9391 -1 -9392 9392 4 -9393 9392 -1 -9492 9392 -1 -9393 9393 4 -9394 9393 -1 -9493 9393 -1 -9394 9394 4 -9395 9394 -1 -9494 9394 -1 -9395 9395 4 -9396 9395 -1 -9495 9395 -1 -9396 9396 4 -9397 9396 -1 -9496 9396 -1 -9397 9397 4 -9398 9397 -1 -9497 9397 -1 -9398 9398 4 -9399 9398 -1 -9498 9398 -1 -9399 9399 4 -9400 9399 -1 -9499 9399 -1 -9400 9400 4 -9500 9400 -1 -9401 9401 4 -9402 9401 -1 -9501 9401 -1 -9402 9402 4 -9403 9402 -1 -9502 9402 -1 -9403 9403 4 -9404 9403 -1 -9503 9403 -1 -9404 9404 4 -9405 9404 -1 -9504 9404 -1 -9405 9405 4 -9406 9405 -1 -9505 9405 -1 -9406 9406 4 -9407 9406 -1 -9506 9406 -1 -9407 9407 4 -9408 9407 -1 -9507 9407 -1 -9408 9408 4 -9409 9408 -1 -9508 9408 -1 -9409 9409 4 -9410 9409 -1 -9509 9409 -1 -9410 9410 4 -9411 9410 -1 -9510 9410 -1 -9411 9411 4 -9412 9411 -1 -9511 9411 -1 -9412 9412 4 -9413 9412 -1 -9512 9412 -1 -9413 9413 4 -9414 9413 -1 -9513 9413 -1 -9414 9414 4 -9415 9414 -1 -9514 9414 -1 -9415 9415 4 -9416 9415 -1 -9515 9415 -1 -9416 9416 4 -9417 9416 -1 -9516 9416 -1 -9417 9417 4 -9418 9417 -1 -9517 9417 -1 -9418 9418 4 -9419 9418 -1 -9518 9418 -1 -9419 9419 4 -9420 9419 -1 -9519 9419 -1 -9420 9420 4 -9421 9420 -1 -9520 9420 -1 -9421 9421 4 -9422 9421 -1 -9521 9421 -1 -9422 9422 4 -9423 9422 -1 -9522 9422 -1 -9423 9423 4 -9424 9423 -1 -9523 9423 -1 -9424 9424 4 -9425 9424 -1 -9524 9424 -1 -9425 9425 4 -9426 9425 -1 -9525 9425 -1 -9426 9426 4 -9427 9426 -1 -9526 9426 -1 -9427 9427 4 -9428 9427 -1 -9527 9427 -1 -9428 9428 4 -9429 9428 -1 -9528 9428 -1 -9429 9429 4 -9430 9429 -1 -9529 9429 -1 -9430 9430 4 -9431 9430 -1 -9530 9430 -1 -9431 9431 4 -9432 9431 -1 -9531 9431 -1 -9432 9432 4 -9433 9432 -1 -9532 9432 -1 -9433 9433 4 -9434 9433 -1 -9533 9433 -1 -9434 9434 4 -9435 9434 -1 -9534 9434 -1 -9435 9435 4 -9436 9435 -1 -9535 9435 -1 -9436 9436 4 -9437 9436 -1 -9536 9436 -1 -9437 9437 4 -9438 9437 -1 -9537 9437 -1 -9438 9438 4 -9439 9438 -1 -9538 9438 -1 -9439 9439 4 -9440 9439 -1 -9539 9439 -1 -9440 9440 4 -9441 9440 -1 -9540 9440 -1 -9441 9441 4 -9442 9441 -1 -9541 9441 -1 -9442 9442 4 -9443 9442 -1 -9542 9442 -1 -9443 9443 4 -9444 9443 -1 -9543 9443 -1 -9444 9444 4 -9445 9444 -1 -9544 9444 -1 -9445 9445 4 -9446 9445 -1 -9545 9445 -1 -9446 9446 4 -9447 9446 -1 -9546 9446 -1 -9447 9447 4 -9448 9447 -1 -9547 9447 -1 -9448 9448 4 -9449 9448 -1 -9548 9448 -1 -9449 9449 4 -9450 9449 -1 -9549 9449 -1 -9450 9450 4 -9451 9450 -1 -9550 9450 -1 -9451 9451 4 -9452 9451 -1 -9551 9451 -1 -9452 9452 4 -9453 9452 -1 -9552 9452 -1 -9453 9453 4 -9454 9453 -1 -9553 9453 -1 -9454 9454 4 -9455 9454 -1 -9554 9454 -1 -9455 9455 4 -9456 9455 -1 -9555 9455 -1 -9456 9456 4 -9457 9456 -1 -9556 9456 -1 -9457 9457 4 -9458 9457 -1 -9557 9457 -1 -9458 9458 4 -9459 9458 -1 -9558 9458 -1 -9459 9459 4 -9460 9459 -1 -9559 9459 -1 -9460 9460 4 -9461 9460 -1 -9560 9460 -1 -9461 9461 4 -9462 9461 -1 -9561 9461 -1 -9462 9462 4 -9463 9462 -1 -9562 9462 -1 -9463 9463 4 -9464 9463 -1 -9563 9463 -1 -9464 9464 4 -9465 9464 -1 -9564 9464 -1 -9465 9465 4 -9466 9465 -1 -9565 9465 -1 -9466 9466 4 -9467 9466 -1 -9566 9466 -1 -9467 9467 4 -9468 9467 -1 -9567 9467 -1 -9468 9468 4 -9469 9468 -1 -9568 9468 -1 -9469 9469 4 -9470 9469 -1 -9569 9469 -1 -9470 9470 4 -9471 9470 -1 -9570 9470 -1 -9471 9471 4 -9472 9471 -1 -9571 9471 -1 -9472 9472 4 -9473 9472 -1 -9572 9472 -1 -9473 9473 4 -9474 9473 -1 -9573 9473 -1 -9474 9474 4 -9475 9474 -1 -9574 9474 -1 -9475 9475 4 -9476 9475 -1 -9575 9475 -1 -9476 9476 4 -9477 9476 -1 -9576 9476 -1 -9477 9477 4 -9478 9477 -1 -9577 9477 -1 -9478 9478 4 -9479 9478 -1 -9578 9478 -1 -9479 9479 4 -9480 9479 -1 -9579 9479 -1 -9480 9480 4 -9481 9480 -1 -9580 9480 -1 -9481 9481 4 -9482 9481 -1 -9581 9481 -1 -9482 9482 4 -9483 9482 -1 -9582 9482 -1 -9483 9483 4 -9484 9483 -1 -9583 9483 -1 -9484 9484 4 -9485 9484 -1 -9584 9484 -1 -9485 9485 4 -9486 9485 -1 -9585 9485 -1 -9486 9486 4 -9487 9486 -1 -9586 9486 -1 -9487 9487 4 -9488 9487 -1 -9587 9487 -1 -9488 9488 4 -9489 9488 -1 -9588 9488 -1 -9489 9489 4 -9490 9489 -1 -9589 9489 -1 -9490 9490 4 -9491 9490 -1 -9590 9490 -1 -9491 9491 4 -9492 9491 -1 -9591 9491 -1 -9492 9492 4 -9493 9492 -1 -9592 9492 -1 -9493 9493 4 -9494 9493 -1 -9593 9493 -1 -9494 9494 4 -9495 9494 -1 -9594 9494 -1 -9495 9495 4 -9496 9495 -1 -9595 9495 -1 -9496 9496 4 -9497 9496 -1 -9596 9496 -1 -9497 9497 4 -9498 9497 -1 -9597 9497 -1 -9498 9498 4 -9499 9498 -1 -9598 9498 -1 -9499 9499 4 -9500 9499 -1 -9599 9499 -1 -9500 9500 4 -9600 9500 -1 -9501 9501 4 -9502 9501 -1 -9601 9501 -1 -9502 9502 4 -9503 9502 -1 -9602 9502 -1 -9503 9503 4 -9504 9503 -1 -9603 9503 -1 -9504 9504 4 -9505 9504 -1 -9604 9504 -1 -9505 9505 4 -9506 9505 -1 -9605 9505 -1 -9506 9506 4 -9507 9506 -1 -9606 9506 -1 -9507 9507 4 -9508 9507 -1 -9607 9507 -1 -9508 9508 4 -9509 9508 -1 -9608 9508 -1 -9509 9509 4 -9510 9509 -1 -9609 9509 -1 -9510 9510 4 -9511 9510 -1 -9610 9510 -1 -9511 9511 4 -9512 9511 -1 -9611 9511 -1 -9512 9512 4 -9513 9512 -1 -9612 9512 -1 -9513 9513 4 -9514 9513 -1 -9613 9513 -1 -9514 9514 4 -9515 9514 -1 -9614 9514 -1 -9515 9515 4 -9516 9515 -1 -9615 9515 -1 -9516 9516 4 -9517 9516 -1 -9616 9516 -1 -9517 9517 4 -9518 9517 -1 -9617 9517 -1 -9518 9518 4 -9519 9518 -1 -9618 9518 -1 -9519 9519 4 -9520 9519 -1 -9619 9519 -1 -9520 9520 4 -9521 9520 -1 -9620 9520 -1 -9521 9521 4 -9522 9521 -1 -9621 9521 -1 -9522 9522 4 -9523 9522 -1 -9622 9522 -1 -9523 9523 4 -9524 9523 -1 -9623 9523 -1 -9524 9524 4 -9525 9524 -1 -9624 9524 -1 -9525 9525 4 -9526 9525 -1 -9625 9525 -1 -9526 9526 4 -9527 9526 -1 -9626 9526 -1 -9527 9527 4 -9528 9527 -1 -9627 9527 -1 -9528 9528 4 -9529 9528 -1 -9628 9528 -1 -9529 9529 4 -9530 9529 -1 -9629 9529 -1 -9530 9530 4 -9531 9530 -1 -9630 9530 -1 -9531 9531 4 -9532 9531 -1 -9631 9531 -1 -9532 9532 4 -9533 9532 -1 -9632 9532 -1 -9533 9533 4 -9534 9533 -1 -9633 9533 -1 -9534 9534 4 -9535 9534 -1 -9634 9534 -1 -9535 9535 4 -9536 9535 -1 -9635 9535 -1 -9536 9536 4 -9537 9536 -1 -9636 9536 -1 -9537 9537 4 -9538 9537 -1 -9637 9537 -1 -9538 9538 4 -9539 9538 -1 -9638 9538 -1 -9539 9539 4 -9540 9539 -1 -9639 9539 -1 -9540 9540 4 -9541 9540 -1 -9640 9540 -1 -9541 9541 4 -9542 9541 -1 -9641 9541 -1 -9542 9542 4 -9543 9542 -1 -9642 9542 -1 -9543 9543 4 -9544 9543 -1 -9643 9543 -1 -9544 9544 4 -9545 9544 -1 -9644 9544 -1 -9545 9545 4 -9546 9545 -1 -9645 9545 -1 -9546 9546 4 -9547 9546 -1 -9646 9546 -1 -9547 9547 4 -9548 9547 -1 -9647 9547 -1 -9548 9548 4 -9549 9548 -1 -9648 9548 -1 -9549 9549 4 -9550 9549 -1 -9649 9549 -1 -9550 9550 4 -9551 9550 -1 -9650 9550 -1 -9551 9551 4 -9552 9551 -1 -9651 9551 -1 -9552 9552 4 -9553 9552 -1 -9652 9552 -1 -9553 9553 4 -9554 9553 -1 -9653 9553 -1 -9554 9554 4 -9555 9554 -1 -9654 9554 -1 -9555 9555 4 -9556 9555 -1 -9655 9555 -1 -9556 9556 4 -9557 9556 -1 -9656 9556 -1 -9557 9557 4 -9558 9557 -1 -9657 9557 -1 -9558 9558 4 -9559 9558 -1 -9658 9558 -1 -9559 9559 4 -9560 9559 -1 -9659 9559 -1 -9560 9560 4 -9561 9560 -1 -9660 9560 -1 -9561 9561 4 -9562 9561 -1 -9661 9561 -1 -9562 9562 4 -9563 9562 -1 -9662 9562 -1 -9563 9563 4 -9564 9563 -1 -9663 9563 -1 -9564 9564 4 -9565 9564 -1 -9664 9564 -1 -9565 9565 4 -9566 9565 -1 -9665 9565 -1 -9566 9566 4 -9567 9566 -1 -9666 9566 -1 -9567 9567 4 -9568 9567 -1 -9667 9567 -1 -9568 9568 4 -9569 9568 -1 -9668 9568 -1 -9569 9569 4 -9570 9569 -1 -9669 9569 -1 -9570 9570 4 -9571 9570 -1 -9670 9570 -1 -9571 9571 4 -9572 9571 -1 -9671 9571 -1 -9572 9572 4 -9573 9572 -1 -9672 9572 -1 -9573 9573 4 -9574 9573 -1 -9673 9573 -1 -9574 9574 4 -9575 9574 -1 -9674 9574 -1 -9575 9575 4 -9576 9575 -1 -9675 9575 -1 -9576 9576 4 -9577 9576 -1 -9676 9576 -1 -9577 9577 4 -9578 9577 -1 -9677 9577 -1 -9578 9578 4 -9579 9578 -1 -9678 9578 -1 -9579 9579 4 -9580 9579 -1 -9679 9579 -1 -9580 9580 4 -9581 9580 -1 -9680 9580 -1 -9581 9581 4 -9582 9581 -1 -9681 9581 -1 -9582 9582 4 -9583 9582 -1 -9682 9582 -1 -9583 9583 4 -9584 9583 -1 -9683 9583 -1 -9584 9584 4 -9585 9584 -1 -9684 9584 -1 -9585 9585 4 -9586 9585 -1 -9685 9585 -1 -9586 9586 4 -9587 9586 -1 -9686 9586 -1 -9587 9587 4 -9588 9587 -1 -9687 9587 -1 -9588 9588 4 -9589 9588 -1 -9688 9588 -1 -9589 9589 4 -9590 9589 -1 -9689 9589 -1 -9590 9590 4 -9591 9590 -1 -9690 9590 -1 -9591 9591 4 -9592 9591 -1 -9691 9591 -1 -9592 9592 4 -9593 9592 -1 -9692 9592 -1 -9593 9593 4 -9594 9593 -1 -9693 9593 -1 -9594 9594 4 -9595 9594 -1 -9694 9594 -1 -9595 9595 4 -9596 9595 -1 -9695 9595 -1 -9596 9596 4 -9597 9596 -1 -9696 9596 -1 -9597 9597 4 -9598 9597 -1 -9697 9597 -1 -9598 9598 4 -9599 9598 -1 -9698 9598 -1 -9599 9599 4 -9600 9599 -1 -9699 9599 -1 -9600 9600 4 -9700 9600 -1 -9601 9601 4 -9602 9601 -1 -9701 9601 -1 -9602 9602 4 -9603 9602 -1 -9702 9602 -1 -9603 9603 4 -9604 9603 -1 -9703 9603 -1 -9604 9604 4 -9605 9604 -1 -9704 9604 -1 -9605 9605 4 -9606 9605 -1 -9705 9605 -1 -9606 9606 4 -9607 9606 -1 -9706 9606 -1 -9607 9607 4 -9608 9607 -1 -9707 9607 -1 -9608 9608 4 -9609 9608 -1 -9708 9608 -1 -9609 9609 4 -9610 9609 -1 -9709 9609 -1 -9610 9610 4 -9611 9610 -1 -9710 9610 -1 -9611 9611 4 -9612 9611 -1 -9711 9611 -1 -9612 9612 4 -9613 9612 -1 -9712 9612 -1 -9613 9613 4 -9614 9613 -1 -9713 9613 -1 -9614 9614 4 -9615 9614 -1 -9714 9614 -1 -9615 9615 4 -9616 9615 -1 -9715 9615 -1 -9616 9616 4 -9617 9616 -1 -9716 9616 -1 -9617 9617 4 -9618 9617 -1 -9717 9617 -1 -9618 9618 4 -9619 9618 -1 -9718 9618 -1 -9619 9619 4 -9620 9619 -1 -9719 9619 -1 -9620 9620 4 -9621 9620 -1 -9720 9620 -1 -9621 9621 4 -9622 9621 -1 -9721 9621 -1 -9622 9622 4 -9623 9622 -1 -9722 9622 -1 -9623 9623 4 -9624 9623 -1 -9723 9623 -1 -9624 9624 4 -9625 9624 -1 -9724 9624 -1 -9625 9625 4 -9626 9625 -1 -9725 9625 -1 -9626 9626 4 -9627 9626 -1 -9726 9626 -1 -9627 9627 4 -9628 9627 -1 -9727 9627 -1 -9628 9628 4 -9629 9628 -1 -9728 9628 -1 -9629 9629 4 -9630 9629 -1 -9729 9629 -1 -9630 9630 4 -9631 9630 -1 -9730 9630 -1 -9631 9631 4 -9632 9631 -1 -9731 9631 -1 -9632 9632 4 -9633 9632 -1 -9732 9632 -1 -9633 9633 4 -9634 9633 -1 -9733 9633 -1 -9634 9634 4 -9635 9634 -1 -9734 9634 -1 -9635 9635 4 -9636 9635 -1 -9735 9635 -1 -9636 9636 4 -9637 9636 -1 -9736 9636 -1 -9637 9637 4 -9638 9637 -1 -9737 9637 -1 -9638 9638 4 -9639 9638 -1 -9738 9638 -1 -9639 9639 4 -9640 9639 -1 -9739 9639 -1 -9640 9640 4 -9641 9640 -1 -9740 9640 -1 -9641 9641 4 -9642 9641 -1 -9741 9641 -1 -9642 9642 4 -9643 9642 -1 -9742 9642 -1 -9643 9643 4 -9644 9643 -1 -9743 9643 -1 -9644 9644 4 -9645 9644 -1 -9744 9644 -1 -9645 9645 4 -9646 9645 -1 -9745 9645 -1 -9646 9646 4 -9647 9646 -1 -9746 9646 -1 -9647 9647 4 -9648 9647 -1 -9747 9647 -1 -9648 9648 4 -9649 9648 -1 -9748 9648 -1 -9649 9649 4 -9650 9649 -1 -9749 9649 -1 -9650 9650 4 -9651 9650 -1 -9750 9650 -1 -9651 9651 4 -9652 9651 -1 -9751 9651 -1 -9652 9652 4 -9653 9652 -1 -9752 9652 -1 -9653 9653 4 -9654 9653 -1 -9753 9653 -1 -9654 9654 4 -9655 9654 -1 -9754 9654 -1 -9655 9655 4 -9656 9655 -1 -9755 9655 -1 -9656 9656 4 -9657 9656 -1 -9756 9656 -1 -9657 9657 4 -9658 9657 -1 -9757 9657 -1 -9658 9658 4 -9659 9658 -1 -9758 9658 -1 -9659 9659 4 -9660 9659 -1 -9759 9659 -1 -9660 9660 4 -9661 9660 -1 -9760 9660 -1 -9661 9661 4 -9662 9661 -1 -9761 9661 -1 -9662 9662 4 -9663 9662 -1 -9762 9662 -1 -9663 9663 4 -9664 9663 -1 -9763 9663 -1 -9664 9664 4 -9665 9664 -1 -9764 9664 -1 -9665 9665 4 -9666 9665 -1 -9765 9665 -1 -9666 9666 4 -9667 9666 -1 -9766 9666 -1 -9667 9667 4 -9668 9667 -1 -9767 9667 -1 -9668 9668 4 -9669 9668 -1 -9768 9668 -1 -9669 9669 4 -9670 9669 -1 -9769 9669 -1 -9670 9670 4 -9671 9670 -1 -9770 9670 -1 -9671 9671 4 -9672 9671 -1 -9771 9671 -1 -9672 9672 4 -9673 9672 -1 -9772 9672 -1 -9673 9673 4 -9674 9673 -1 -9773 9673 -1 -9674 9674 4 -9675 9674 -1 -9774 9674 -1 -9675 9675 4 -9676 9675 -1 -9775 9675 -1 -9676 9676 4 -9677 9676 -1 -9776 9676 -1 -9677 9677 4 -9678 9677 -1 -9777 9677 -1 -9678 9678 4 -9679 9678 -1 -9778 9678 -1 -9679 9679 4 -9680 9679 -1 -9779 9679 -1 -9680 9680 4 -9681 9680 -1 -9780 9680 -1 -9681 9681 4 -9682 9681 -1 -9781 9681 -1 -9682 9682 4 -9683 9682 -1 -9782 9682 -1 -9683 9683 4 -9684 9683 -1 -9783 9683 -1 -9684 9684 4 -9685 9684 -1 -9784 9684 -1 -9685 9685 4 -9686 9685 -1 -9785 9685 -1 -9686 9686 4 -9687 9686 -1 -9786 9686 -1 -9687 9687 4 -9688 9687 -1 -9787 9687 -1 -9688 9688 4 -9689 9688 -1 -9788 9688 -1 -9689 9689 4 -9690 9689 -1 -9789 9689 -1 -9690 9690 4 -9691 9690 -1 -9790 9690 -1 -9691 9691 4 -9692 9691 -1 -9791 9691 -1 -9692 9692 4 -9693 9692 -1 -9792 9692 -1 -9693 9693 4 -9694 9693 -1 -9793 9693 -1 -9694 9694 4 -9695 9694 -1 -9794 9694 -1 -9695 9695 4 -9696 9695 -1 -9795 9695 -1 -9696 9696 4 -9697 9696 -1 -9796 9696 -1 -9697 9697 4 -9698 9697 -1 -9797 9697 -1 -9698 9698 4 -9699 9698 -1 -9798 9698 -1 -9699 9699 4 -9700 9699 -1 -9799 9699 -1 -9700 9700 4 -9800 9700 -1 -9701 9701 4 -9702 9701 -1 -9801 9701 -1 -9702 9702 4 -9703 9702 -1 -9802 9702 -1 -9703 9703 4 -9704 9703 -1 -9803 9703 -1 -9704 9704 4 -9705 9704 -1 -9804 9704 -1 -9705 9705 4 -9706 9705 -1 -9805 9705 -1 -9706 9706 4 -9707 9706 -1 -9806 9706 -1 -9707 9707 4 -9708 9707 -1 -9807 9707 -1 -9708 9708 4 -9709 9708 -1 -9808 9708 -1 -9709 9709 4 -9710 9709 -1 -9809 9709 -1 -9710 9710 4 -9711 9710 -1 -9810 9710 -1 -9711 9711 4 -9712 9711 -1 -9811 9711 -1 -9712 9712 4 -9713 9712 -1 -9812 9712 -1 -9713 9713 4 -9714 9713 -1 -9813 9713 -1 -9714 9714 4 -9715 9714 -1 -9814 9714 -1 -9715 9715 4 -9716 9715 -1 -9815 9715 -1 -9716 9716 4 -9717 9716 -1 -9816 9716 -1 -9717 9717 4 -9718 9717 -1 -9817 9717 -1 -9718 9718 4 -9719 9718 -1 -9818 9718 -1 -9719 9719 4 -9720 9719 -1 -9819 9719 -1 -9720 9720 4 -9721 9720 -1 -9820 9720 -1 -9721 9721 4 -9722 9721 -1 -9821 9721 -1 -9722 9722 4 -9723 9722 -1 -9822 9722 -1 -9723 9723 4 -9724 9723 -1 -9823 9723 -1 -9724 9724 4 -9725 9724 -1 -9824 9724 -1 -9725 9725 4 -9726 9725 -1 -9825 9725 -1 -9726 9726 4 -9727 9726 -1 -9826 9726 -1 -9727 9727 4 -9728 9727 -1 -9827 9727 -1 -9728 9728 4 -9729 9728 -1 -9828 9728 -1 -9729 9729 4 -9730 9729 -1 -9829 9729 -1 -9730 9730 4 -9731 9730 -1 -9830 9730 -1 -9731 9731 4 -9732 9731 -1 -9831 9731 -1 -9732 9732 4 -9733 9732 -1 -9832 9732 -1 -9733 9733 4 -9734 9733 -1 -9833 9733 -1 -9734 9734 4 -9735 9734 -1 -9834 9734 -1 -9735 9735 4 -9736 9735 -1 -9835 9735 -1 -9736 9736 4 -9737 9736 -1 -9836 9736 -1 -9737 9737 4 -9738 9737 -1 -9837 9737 -1 -9738 9738 4 -9739 9738 -1 -9838 9738 -1 -9739 9739 4 -9740 9739 -1 -9839 9739 -1 -9740 9740 4 -9741 9740 -1 -9840 9740 -1 -9741 9741 4 -9742 9741 -1 -9841 9741 -1 -9742 9742 4 -9743 9742 -1 -9842 9742 -1 -9743 9743 4 -9744 9743 -1 -9843 9743 -1 -9744 9744 4 -9745 9744 -1 -9844 9744 -1 -9745 9745 4 -9746 9745 -1 -9845 9745 -1 -9746 9746 4 -9747 9746 -1 -9846 9746 -1 -9747 9747 4 -9748 9747 -1 -9847 9747 -1 -9748 9748 4 -9749 9748 -1 -9848 9748 -1 -9749 9749 4 -9750 9749 -1 -9849 9749 -1 -9750 9750 4 -9751 9750 -1 -9850 9750 -1 -9751 9751 4 -9752 9751 -1 -9851 9751 -1 -9752 9752 4 -9753 9752 -1 -9852 9752 -1 -9753 9753 4 -9754 9753 -1 -9853 9753 -1 -9754 9754 4 -9755 9754 -1 -9854 9754 -1 -9755 9755 4 -9756 9755 -1 -9855 9755 -1 -9756 9756 4 -9757 9756 -1 -9856 9756 -1 -9757 9757 4 -9758 9757 -1 -9857 9757 -1 -9758 9758 4 -9759 9758 -1 -9858 9758 -1 -9759 9759 4 -9760 9759 -1 -9859 9759 -1 -9760 9760 4 -9761 9760 -1 -9860 9760 -1 -9761 9761 4 -9762 9761 -1 -9861 9761 -1 -9762 9762 4 -9763 9762 -1 -9862 9762 -1 -9763 9763 4 -9764 9763 -1 -9863 9763 -1 -9764 9764 4 -9765 9764 -1 -9864 9764 -1 -9765 9765 4 -9766 9765 -1 -9865 9765 -1 -9766 9766 4 -9767 9766 -1 -9866 9766 -1 -9767 9767 4 -9768 9767 -1 -9867 9767 -1 -9768 9768 4 -9769 9768 -1 -9868 9768 -1 -9769 9769 4 -9770 9769 -1 -9869 9769 -1 -9770 9770 4 -9771 9770 -1 -9870 9770 -1 -9771 9771 4 -9772 9771 -1 -9871 9771 -1 -9772 9772 4 -9773 9772 -1 -9872 9772 -1 -9773 9773 4 -9774 9773 -1 -9873 9773 -1 -9774 9774 4 -9775 9774 -1 -9874 9774 -1 -9775 9775 4 -9776 9775 -1 -9875 9775 -1 -9776 9776 4 -9777 9776 -1 -9876 9776 -1 -9777 9777 4 -9778 9777 -1 -9877 9777 -1 -9778 9778 4 -9779 9778 -1 -9878 9778 -1 -9779 9779 4 -9780 9779 -1 -9879 9779 -1 -9780 9780 4 -9781 9780 -1 -9880 9780 -1 -9781 9781 4 -9782 9781 -1 -9881 9781 -1 -9782 9782 4 -9783 9782 -1 -9882 9782 -1 -9783 9783 4 -9784 9783 -1 -9883 9783 -1 -9784 9784 4 -9785 9784 -1 -9884 9784 -1 -9785 9785 4 -9786 9785 -1 -9885 9785 -1 -9786 9786 4 -9787 9786 -1 -9886 9786 -1 -9787 9787 4 -9788 9787 -1 -9887 9787 -1 -9788 9788 4 -9789 9788 -1 -9888 9788 -1 -9789 9789 4 -9790 9789 -1 -9889 9789 -1 -9790 9790 4 -9791 9790 -1 -9890 9790 -1 -9791 9791 4 -9792 9791 -1 -9891 9791 -1 -9792 9792 4 -9793 9792 -1 -9892 9792 -1 -9793 9793 4 -9794 9793 -1 -9893 9793 -1 -9794 9794 4 -9795 9794 -1 -9894 9794 -1 -9795 9795 4 -9796 9795 -1 -9895 9795 -1 -9796 9796 4 -9797 9796 -1 -9896 9796 -1 -9797 9797 4 -9798 9797 -1 -9897 9797 -1 -9798 9798 4 -9799 9798 -1 -9898 9798 -1 -9799 9799 4 -9800 9799 -1 -9899 9799 -1 -9800 9800 4 -9900 9800 -1 -9801 9801 4 -9802 9801 -1 -9901 9801 -1 -9802 9802 4 -9803 9802 -1 -9902 9802 -1 -9803 9803 4 -9804 9803 -1 -9903 9803 -1 -9804 9804 4 -9805 9804 -1 -9904 9804 -1 -9805 9805 4 -9806 9805 -1 -9905 9805 -1 -9806 9806 4 -9807 9806 -1 -9906 9806 -1 -9807 9807 4 -9808 9807 -1 -9907 9807 -1 -9808 9808 4 -9809 9808 -1 -9908 9808 -1 -9809 9809 4 -9810 9809 -1 -9909 9809 -1 -9810 9810 4 -9811 9810 -1 -9910 9810 -1 -9811 9811 4 -9812 9811 -1 -9911 9811 -1 -9812 9812 4 -9813 9812 -1 -9912 9812 -1 -9813 9813 4 -9814 9813 -1 -9913 9813 -1 -9814 9814 4 -9815 9814 -1 -9914 9814 -1 -9815 9815 4 -9816 9815 -1 -9915 9815 -1 -9816 9816 4 -9817 9816 -1 -9916 9816 -1 -9817 9817 4 -9818 9817 -1 -9917 9817 -1 -9818 9818 4 -9819 9818 -1 -9918 9818 -1 -9819 9819 4 -9820 9819 -1 -9919 9819 -1 -9820 9820 4 -9821 9820 -1 -9920 9820 -1 -9821 9821 4 -9822 9821 -1 -9921 9821 -1 -9822 9822 4 -9823 9822 -1 -9922 9822 -1 -9823 9823 4 -9824 9823 -1 -9923 9823 -1 -9824 9824 4 -9825 9824 -1 -9924 9824 -1 -9825 9825 4 -9826 9825 -1 -9925 9825 -1 -9826 9826 4 -9827 9826 -1 -9926 9826 -1 -9827 9827 4 -9828 9827 -1 -9927 9827 -1 -9828 9828 4 -9829 9828 -1 -9928 9828 -1 -9829 9829 4 -9830 9829 -1 -9929 9829 -1 -9830 9830 4 -9831 9830 -1 -9930 9830 -1 -9831 9831 4 -9832 9831 -1 -9931 9831 -1 -9832 9832 4 -9833 9832 -1 -9932 9832 -1 -9833 9833 4 -9834 9833 -1 -9933 9833 -1 -9834 9834 4 -9835 9834 -1 -9934 9834 -1 -9835 9835 4 -9836 9835 -1 -9935 9835 -1 -9836 9836 4 -9837 9836 -1 -9936 9836 -1 -9837 9837 4 -9838 9837 -1 -9937 9837 -1 -9838 9838 4 -9839 9838 -1 -9938 9838 -1 -9839 9839 4 -9840 9839 -1 -9939 9839 -1 -9840 9840 4 -9841 9840 -1 -9940 9840 -1 -9841 9841 4 -9842 9841 -1 -9941 9841 -1 -9842 9842 4 -9843 9842 -1 -9942 9842 -1 -9843 9843 4 -9844 9843 -1 -9943 9843 -1 -9844 9844 4 -9845 9844 -1 -9944 9844 -1 -9845 9845 4 -9846 9845 -1 -9945 9845 -1 -9846 9846 4 -9847 9846 -1 -9946 9846 -1 -9847 9847 4 -9848 9847 -1 -9947 9847 -1 -9848 9848 4 -9849 9848 -1 -9948 9848 -1 -9849 9849 4 -9850 9849 -1 -9949 9849 -1 -9850 9850 4 -9851 9850 -1 -9950 9850 -1 -9851 9851 4 -9852 9851 -1 -9951 9851 -1 -9852 9852 4 -9853 9852 -1 -9952 9852 -1 -9853 9853 4 -9854 9853 -1 -9953 9853 -1 -9854 9854 4 -9855 9854 -1 -9954 9854 -1 -9855 9855 4 -9856 9855 -1 -9955 9855 -1 -9856 9856 4 -9857 9856 -1 -9956 9856 -1 -9857 9857 4 -9858 9857 -1 -9957 9857 -1 -9858 9858 4 -9859 9858 -1 -9958 9858 -1 -9859 9859 4 -9860 9859 -1 -9959 9859 -1 -9860 9860 4 -9861 9860 -1 -9960 9860 -1 -9861 9861 4 -9862 9861 -1 -9961 9861 -1 -9862 9862 4 -9863 9862 -1 -9962 9862 -1 -9863 9863 4 -9864 9863 -1 -9963 9863 -1 -9864 9864 4 -9865 9864 -1 -9964 9864 -1 -9865 9865 4 -9866 9865 -1 -9965 9865 -1 -9866 9866 4 -9867 9866 -1 -9966 9866 -1 -9867 9867 4 -9868 9867 -1 -9967 9867 -1 -9868 9868 4 -9869 9868 -1 -9968 9868 -1 -9869 9869 4 -9870 9869 -1 -9969 9869 -1 -9870 9870 4 -9871 9870 -1 -9970 9870 -1 -9871 9871 4 -9872 9871 -1 -9971 9871 -1 -9872 9872 4 -9873 9872 -1 -9972 9872 -1 -9873 9873 4 -9874 9873 -1 -9973 9873 -1 -9874 9874 4 -9875 9874 -1 -9974 9874 -1 -9875 9875 4 -9876 9875 -1 -9975 9875 -1 -9876 9876 4 -9877 9876 -1 -9976 9876 -1 -9877 9877 4 -9878 9877 -1 -9977 9877 -1 -9878 9878 4 -9879 9878 -1 -9978 9878 -1 -9879 9879 4 -9880 9879 -1 -9979 9879 -1 -9880 9880 4 -9881 9880 -1 -9980 9880 -1 -9881 9881 4 -9882 9881 -1 -9981 9881 -1 -9882 9882 4 -9883 9882 -1 -9982 9882 -1 -9883 9883 4 -9884 9883 -1 -9983 9883 -1 -9884 9884 4 -9885 9884 -1 -9984 9884 -1 -9885 9885 4 -9886 9885 -1 -9985 9885 -1 -9886 9886 4 -9887 9886 -1 -9986 9886 -1 -9887 9887 4 -9888 9887 -1 -9987 9887 -1 -9888 9888 4 -9889 9888 -1 -9988 9888 -1 -9889 9889 4 -9890 9889 -1 -9989 9889 -1 -9890 9890 4 -9891 9890 -1 -9990 9890 -1 -9891 9891 4 -9892 9891 -1 -9991 9891 -1 -9892 9892 4 -9893 9892 -1 -9992 9892 -1 -9893 9893 4 -9894 9893 -1 -9993 9893 -1 -9894 9894 4 -9895 9894 -1 -9994 9894 -1 -9895 9895 4 -9896 9895 -1 -9995 9895 -1 -9896 9896 4 -9897 9896 -1 -9996 9896 -1 -9897 9897 4 -9898 9897 -1 -9997 9897 -1 -9898 9898 4 -9899 9898 -1 -9998 9898 -1 -9899 9899 4 -9900 9899 -1 -9999 9899 -1 -9900 9900 4 -10000 9900 -1 -9901 9901 4 -9902 9901 -1 -9902 9902 4 -9903 9902 -1 -9903 9903 4 -9904 9903 -1 -9904 9904 4 -9905 9904 -1 -9905 9905 4 -9906 9905 -1 -9906 9906 4 -9907 9906 -1 -9907 9907 4 -9908 9907 -1 -9908 9908 4 -9909 9908 -1 -9909 9909 4 -9910 9909 -1 -9910 9910 4 -9911 9910 -1 -9911 9911 4 -9912 9911 -1 -9912 9912 4 -9913 9912 -1 -9913 9913 4 -9914 9913 -1 -9914 9914 4 -9915 9914 -1 -9915 9915 4 -9916 9915 -1 -9916 9916 4 -9917 9916 -1 -9917 9917 4 -9918 9917 -1 -9918 9918 4 -9919 9918 -1 -9919 9919 4 -9920 9919 -1 -9920 9920 4 -9921 9920 -1 -9921 9921 4 -9922 9921 -1 -9922 9922 4 -9923 9922 -1 -9923 9923 4 -9924 9923 -1 -9924 9924 4 -9925 9924 -1 -9925 9925 4 -9926 9925 -1 -9926 9926 4 -9927 9926 -1 -9927 9927 4 -9928 9927 -1 -9928 9928 4 -9929 9928 -1 -9929 9929 4 -9930 9929 -1 -9930 9930 4 -9931 9930 -1 -9931 9931 4 -9932 9931 -1 -9932 9932 4 -9933 9932 -1 -9933 9933 4 -9934 9933 -1 -9934 9934 4 -9935 9934 -1 -9935 9935 4 -9936 9935 -1 -9936 9936 4 -9937 9936 -1 -9937 9937 4 -9938 9937 -1 -9938 9938 4 -9939 9938 -1 -9939 9939 4 -9940 9939 -1 -9940 9940 4 -9941 9940 -1 -9941 9941 4 -9942 9941 -1 -9942 9942 4 -9943 9942 -1 -9943 9943 4 -9944 9943 -1 -9944 9944 4 -9945 9944 -1 -9945 9945 4 -9946 9945 -1 -9946 9946 4 -9947 9946 -1 -9947 9947 4 -9948 9947 -1 -9948 9948 4 -9949 9948 -1 -9949 9949 4 -9950 9949 -1 -9950 9950 4 -9951 9950 -1 -9951 9951 4 -9952 9951 -1 -9952 9952 4 -9953 9952 -1 -9953 9953 4 -9954 9953 -1 -9954 9954 4 -9955 9954 -1 -9955 9955 4 -9956 9955 -1 -9956 9956 4 -9957 9956 -1 -9957 9957 4 -9958 9957 -1 -9958 9958 4 -9959 9958 -1 -9959 9959 4 -9960 9959 -1 -9960 9960 4 -9961 9960 -1 -9961 9961 4 -9962 9961 -1 -9962 9962 4 -9963 9962 -1 -9963 9963 4 -9964 9963 -1 -9964 9964 4 -9965 9964 -1 -9965 9965 4 -9966 9965 -1 -9966 9966 4 -9967 9966 -1 -9967 9967 4 -9968 9967 -1 -9968 9968 4 -9969 9968 -1 -9969 9969 4 -9970 9969 -1 -9970 9970 4 -9971 9970 -1 -9971 9971 4 -9972 9971 -1 -9972 9972 4 -9973 9972 -1 -9973 9973 4 -9974 9973 -1 -9974 9974 4 -9975 9974 -1 -9975 9975 4 -9976 9975 -1 -9976 9976 4 -9977 9976 -1 -9977 9977 4 -9978 9977 -1 -9978 9978 4 -9979 9978 -1 -9979 9979 4 -9980 9979 -1 -9980 9980 4 -9981 9980 -1 -9981 9981 4 -9982 9981 -1 -9982 9982 4 -9983 9982 -1 -9983 9983 4 -9984 9983 -1 -9984 9984 4 -9985 9984 -1 -9985 9985 4 -9986 9985 -1 -9986 9986 4 -9987 9986 -1 -9987 9987 4 -9988 9987 -1 -9988 9988 4 -9989 9988 -1 -9989 9989 4 -9990 9989 -1 -9990 9990 4 -9991 9990 -1 -9991 9991 4 -9992 9991 -1 -9992 9992 4 -9993 9992 -1 -9993 9993 4 -9994 9993 -1 -9994 9994 4 -9995 9994 -1 -9995 9995 4 -9996 9995 -1 -9996 9996 4 -9997 9996 -1 -9997 9997 4 -9998 9997 -1 -9998 9998 4 -9999 9998 -1 -9999 9999 4 -10000 9999 -1 -10000 10000 4 diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/lap2D_5pt_n32.mtx b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/lap2D_5pt_n32.mtx deleted file mode 100644 index 71efbcf0..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/lap2D_5pt_n32.mtx +++ /dev/null @@ -1,3012 +0,0 @@ -%%MatrixMarket matrix coordinate real general -% standard 5-point laplace 2D oprator with Dirichlet boundary condition -% -(x(i,j+1) -2*x(i,j) + x(i,j-1)) - (x(i-1,j) -2*x(i,j) + x(i+1,j))) is postive -1024 1024 3008 -1 1 4 -2 1 -1 -33 1 -1 -2 2 4 -3 2 -1 -34 2 -1 -3 3 4 -4 3 -1 -35 3 -1 -4 4 4 -5 4 -1 -36 4 -1 -5 5 4 -6 5 -1 -37 5 -1 -6 6 4 -7 6 -1 -38 6 -1 -7 7 4 -8 7 -1 -39 7 -1 -8 8 4 -9 8 -1 -40 8 -1 -9 9 4 -10 9 -1 -41 9 -1 -10 10 4 -11 10 -1 -42 10 -1 -11 11 4 -12 11 -1 -43 11 -1 -12 12 4 -13 12 -1 -44 12 -1 -13 13 4 -14 13 -1 -45 13 -1 -14 14 4 -15 14 -1 -46 14 -1 -15 15 4 -16 15 -1 -47 15 -1 -16 16 4 -17 16 -1 -48 16 -1 -17 17 4 -18 17 -1 -49 17 -1 -18 18 4 -19 18 -1 -50 18 -1 -19 19 4 -20 19 -1 -51 19 -1 -20 20 4 -21 20 -1 -52 20 -1 -21 21 4 -22 21 -1 -53 21 -1 -22 22 4 -23 22 -1 -54 22 -1 -23 23 4 -24 23 -1 -55 23 -1 -24 24 4 -25 24 -1 -56 24 -1 -25 25 4 -26 25 -1 -57 25 -1 -26 26 4 -27 26 -1 -58 26 -1 -27 27 4 -28 27 -1 -59 27 -1 -28 28 4 -29 28 -1 -60 28 -1 -29 29 4 -30 29 -1 -61 29 -1 -30 30 4 -31 30 -1 -62 30 -1 -31 31 4 -32 31 -1 -63 31 -1 -32 32 4 -64 32 -1 -33 33 4 -34 33 -1 -65 33 -1 -34 34 4 -35 34 -1 -66 34 -1 -35 35 4 -36 35 -1 -67 35 -1 -36 36 4 -37 36 -1 -68 36 -1 -37 37 4 -38 37 -1 -69 37 -1 -38 38 4 -39 38 -1 -70 38 -1 -39 39 4 -40 39 -1 -71 39 -1 -40 40 4 -41 40 -1 -72 40 -1 -41 41 4 -42 41 -1 -73 41 -1 -42 42 4 -43 42 -1 -74 42 -1 -43 43 4 -44 43 -1 -75 43 -1 -44 44 4 -45 44 -1 -76 44 -1 -45 45 4 -46 45 -1 -77 45 -1 -46 46 4 -47 46 -1 -78 46 -1 -47 47 4 -48 47 -1 -79 47 -1 -48 48 4 -49 48 -1 -80 48 -1 -49 49 4 -50 49 -1 -81 49 -1 -50 50 4 -51 50 -1 -82 50 -1 -51 51 4 -52 51 -1 -83 51 -1 -52 52 4 -53 52 -1 -84 52 -1 -53 53 4 -54 53 -1 -85 53 -1 -54 54 4 -55 54 -1 -86 54 -1 -55 55 4 -56 55 -1 -87 55 -1 -56 56 4 -57 56 -1 -88 56 -1 -57 57 4 -58 57 -1 -89 57 -1 -58 58 4 -59 58 -1 -90 58 -1 -59 59 4 -60 59 -1 -91 59 -1 -60 60 4 -61 60 -1 -92 60 -1 -61 61 4 -62 61 -1 -93 61 -1 -62 62 4 -63 62 -1 -94 62 -1 -63 63 4 -64 63 -1 -95 63 -1 -64 64 4 -96 64 -1 -65 65 4 -66 65 -1 -97 65 -1 -66 66 4 -67 66 -1 -98 66 -1 -67 67 4 -68 67 -1 -99 67 -1 -68 68 4 -69 68 -1 -100 68 -1 -69 69 4 -70 69 -1 -101 69 -1 -70 70 4 -71 70 -1 -102 70 -1 -71 71 4 -72 71 -1 -103 71 -1 -72 72 4 -73 72 -1 -104 72 -1 -73 73 4 -74 73 -1 -105 73 -1 -74 74 4 -75 74 -1 -106 74 -1 -75 75 4 -76 75 -1 -107 75 -1 -76 76 4 -77 76 -1 -108 76 -1 -77 77 4 -78 77 -1 -109 77 -1 -78 78 4 -79 78 -1 -110 78 -1 -79 79 4 -80 79 -1 -111 79 -1 -80 80 4 -81 80 -1 -112 80 -1 -81 81 4 -82 81 -1 -113 81 -1 -82 82 4 -83 82 -1 -114 82 -1 -83 83 4 -84 83 -1 -115 83 -1 -84 84 4 -85 84 -1 -116 84 -1 -85 85 4 -86 85 -1 -117 85 -1 -86 86 4 -87 86 -1 -118 86 -1 -87 87 4 -88 87 -1 -119 87 -1 -88 88 4 -89 88 -1 -120 88 -1 -89 89 4 -90 89 -1 -121 89 -1 -90 90 4 -91 90 -1 -122 90 -1 -91 91 4 -92 91 -1 -123 91 -1 -92 92 4 -93 92 -1 -124 92 -1 -93 93 4 -94 93 -1 -125 93 -1 -94 94 4 -95 94 -1 -126 94 -1 -95 95 4 -96 95 -1 -127 95 -1 -96 96 4 -128 96 -1 -97 97 4 -98 97 -1 -129 97 -1 -98 98 4 -99 98 -1 -130 98 -1 -99 99 4 -100 99 -1 -131 99 -1 -100 100 4 -101 100 -1 -132 100 -1 -101 101 4 -102 101 -1 -133 101 -1 -102 102 4 -103 102 -1 -134 102 -1 -103 103 4 -104 103 -1 -135 103 -1 -104 104 4 -105 104 -1 -136 104 -1 -105 105 4 -106 105 -1 -137 105 -1 -106 106 4 -107 106 -1 -138 106 -1 -107 107 4 -108 107 -1 -139 107 -1 -108 108 4 -109 108 -1 -140 108 -1 -109 109 4 -110 109 -1 -141 109 -1 -110 110 4 -111 110 -1 -142 110 -1 -111 111 4 -112 111 -1 -143 111 -1 -112 112 4 -113 112 -1 -144 112 -1 -113 113 4 -114 113 -1 -145 113 -1 -114 114 4 -115 114 -1 -146 114 -1 -115 115 4 -116 115 -1 -147 115 -1 -116 116 4 -117 116 -1 -148 116 -1 -117 117 4 -118 117 -1 -149 117 -1 -118 118 4 -119 118 -1 -150 118 -1 -119 119 4 -120 119 -1 -151 119 -1 -120 120 4 -121 120 -1 -152 120 -1 -121 121 4 -122 121 -1 -153 121 -1 -122 122 4 -123 122 -1 -154 122 -1 -123 123 4 -124 123 -1 -155 123 -1 -124 124 4 -125 124 -1 -156 124 -1 -125 125 4 -126 125 -1 -157 125 -1 -126 126 4 -127 126 -1 -158 126 -1 -127 127 4 -128 127 -1 -159 127 -1 -128 128 4 -160 128 -1 -129 129 4 -130 129 -1 -161 129 -1 -130 130 4 -131 130 -1 -162 130 -1 -131 131 4 -132 131 -1 -163 131 -1 -132 132 4 -133 132 -1 -164 132 -1 -133 133 4 -134 133 -1 -165 133 -1 -134 134 4 -135 134 -1 -166 134 -1 -135 135 4 -136 135 -1 -167 135 -1 -136 136 4 -137 136 -1 -168 136 -1 -137 137 4 -138 137 -1 -169 137 -1 -138 138 4 -139 138 -1 -170 138 -1 -139 139 4 -140 139 -1 -171 139 -1 -140 140 4 -141 140 -1 -172 140 -1 -141 141 4 -142 141 -1 -173 141 -1 -142 142 4 -143 142 -1 -174 142 -1 -143 143 4 -144 143 -1 -175 143 -1 -144 144 4 -145 144 -1 -176 144 -1 -145 145 4 -146 145 -1 -177 145 -1 -146 146 4 -147 146 -1 -178 146 -1 -147 147 4 -148 147 -1 -179 147 -1 -148 148 4 -149 148 -1 -180 148 -1 -149 149 4 -150 149 -1 -181 149 -1 -150 150 4 -151 150 -1 -182 150 -1 -151 151 4 -152 151 -1 -183 151 -1 -152 152 4 -153 152 -1 -184 152 -1 -153 153 4 -154 153 -1 -185 153 -1 -154 154 4 -155 154 -1 -186 154 -1 -155 155 4 -156 155 -1 -187 155 -1 -156 156 4 -157 156 -1 -188 156 -1 -157 157 4 -158 157 -1 -189 157 -1 -158 158 4 -159 158 -1 -190 158 -1 -159 159 4 -160 159 -1 -191 159 -1 -160 160 4 -192 160 -1 -161 161 4 -162 161 -1 -193 161 -1 -162 162 4 -163 162 -1 -194 162 -1 -163 163 4 -164 163 -1 -195 163 -1 -164 164 4 -165 164 -1 -196 164 -1 -165 165 4 -166 165 -1 -197 165 -1 -166 166 4 -167 166 -1 -198 166 -1 -167 167 4 -168 167 -1 -199 167 -1 -168 168 4 -169 168 -1 -200 168 -1 -169 169 4 -170 169 -1 -201 169 -1 -170 170 4 -171 170 -1 -202 170 -1 -171 171 4 -172 171 -1 -203 171 -1 -172 172 4 -173 172 -1 -204 172 -1 -173 173 4 -174 173 -1 -205 173 -1 -174 174 4 -175 174 -1 -206 174 -1 -175 175 4 -176 175 -1 -207 175 -1 -176 176 4 -177 176 -1 -208 176 -1 -177 177 4 -178 177 -1 -209 177 -1 -178 178 4 -179 178 -1 -210 178 -1 -179 179 4 -180 179 -1 -211 179 -1 -180 180 4 -181 180 -1 -212 180 -1 -181 181 4 -182 181 -1 -213 181 -1 -182 182 4 -183 182 -1 -214 182 -1 -183 183 4 -184 183 -1 -215 183 -1 -184 184 4 -185 184 -1 -216 184 -1 -185 185 4 -186 185 -1 -217 185 -1 -186 186 4 -187 186 -1 -218 186 -1 -187 187 4 -188 187 -1 -219 187 -1 -188 188 4 -189 188 -1 -220 188 -1 -189 189 4 -190 189 -1 -221 189 -1 -190 190 4 -191 190 -1 -222 190 -1 -191 191 4 -192 191 -1 -223 191 -1 -192 192 4 -224 192 -1 -193 193 4 -194 193 -1 -225 193 -1 -194 194 4 -195 194 -1 -226 194 -1 -195 195 4 -196 195 -1 -227 195 -1 -196 196 4 -197 196 -1 -228 196 -1 -197 197 4 -198 197 -1 -229 197 -1 -198 198 4 -199 198 -1 -230 198 -1 -199 199 4 -200 199 -1 -231 199 -1 -200 200 4 -201 200 -1 -232 200 -1 -201 201 4 -202 201 -1 -233 201 -1 -202 202 4 -203 202 -1 -234 202 -1 -203 203 4 -204 203 -1 -235 203 -1 -204 204 4 -205 204 -1 -236 204 -1 -205 205 4 -206 205 -1 -237 205 -1 -206 206 4 -207 206 -1 -238 206 -1 -207 207 4 -208 207 -1 -239 207 -1 -208 208 4 -209 208 -1 -240 208 -1 -209 209 4 -210 209 -1 -241 209 -1 -210 210 4 -211 210 -1 -242 210 -1 -211 211 4 -212 211 -1 -243 211 -1 -212 212 4 -213 212 -1 -244 212 -1 -213 213 4 -214 213 -1 -245 213 -1 -214 214 4 -215 214 -1 -246 214 -1 -215 215 4 -216 215 -1 -247 215 -1 -216 216 4 -217 216 -1 -248 216 -1 -217 217 4 -218 217 -1 -249 217 -1 -218 218 4 -219 218 -1 -250 218 -1 -219 219 4 -220 219 -1 -251 219 -1 -220 220 4 -221 220 -1 -252 220 -1 -221 221 4 -222 221 -1 -253 221 -1 -222 222 4 -223 222 -1 -254 222 -1 -223 223 4 -224 223 -1 -255 223 -1 -224 224 4 -256 224 -1 -225 225 4 -226 225 -1 -257 225 -1 -226 226 4 -227 226 -1 -258 226 -1 -227 227 4 -228 227 -1 -259 227 -1 -228 228 4 -229 228 -1 -260 228 -1 -229 229 4 -230 229 -1 -261 229 -1 -230 230 4 -231 230 -1 -262 230 -1 -231 231 4 -232 231 -1 -263 231 -1 -232 232 4 -233 232 -1 -264 232 -1 -233 233 4 -234 233 -1 -265 233 -1 -234 234 4 -235 234 -1 -266 234 -1 -235 235 4 -236 235 -1 -267 235 -1 -236 236 4 -237 236 -1 -268 236 -1 -237 237 4 -238 237 -1 -269 237 -1 -238 238 4 -239 238 -1 -270 238 -1 -239 239 4 -240 239 -1 -271 239 -1 -240 240 4 -241 240 -1 -272 240 -1 -241 241 4 -242 241 -1 -273 241 -1 -242 242 4 -243 242 -1 -274 242 -1 -243 243 4 -244 243 -1 -275 243 -1 -244 244 4 -245 244 -1 -276 244 -1 -245 245 4 -246 245 -1 -277 245 -1 -246 246 4 -247 246 -1 -278 246 -1 -247 247 4 -248 247 -1 -279 247 -1 -248 248 4 -249 248 -1 -280 248 -1 -249 249 4 -250 249 -1 -281 249 -1 -250 250 4 -251 250 -1 -282 250 -1 -251 251 4 -252 251 -1 -283 251 -1 -252 252 4 -253 252 -1 -284 252 -1 -253 253 4 -254 253 -1 -285 253 -1 -254 254 4 -255 254 -1 -286 254 -1 -255 255 4 -256 255 -1 -287 255 -1 -256 256 4 -288 256 -1 -257 257 4 -258 257 -1 -289 257 -1 -258 258 4 -259 258 -1 -290 258 -1 -259 259 4 -260 259 -1 -291 259 -1 -260 260 4 -261 260 -1 -292 260 -1 -261 261 4 -262 261 -1 -293 261 -1 -262 262 4 -263 262 -1 -294 262 -1 -263 263 4 -264 263 -1 -295 263 -1 -264 264 4 -265 264 -1 -296 264 -1 -265 265 4 -266 265 -1 -297 265 -1 -266 266 4 -267 266 -1 -298 266 -1 -267 267 4 -268 267 -1 -299 267 -1 -268 268 4 -269 268 -1 -300 268 -1 -269 269 4 -270 269 -1 -301 269 -1 -270 270 4 -271 270 -1 -302 270 -1 -271 271 4 -272 271 -1 -303 271 -1 -272 272 4 -273 272 -1 -304 272 -1 -273 273 4 -274 273 -1 -305 273 -1 -274 274 4 -275 274 -1 -306 274 -1 -275 275 4 -276 275 -1 -307 275 -1 -276 276 4 -277 276 -1 -308 276 -1 -277 277 4 -278 277 -1 -309 277 -1 -278 278 4 -279 278 -1 -310 278 -1 -279 279 4 -280 279 -1 -311 279 -1 -280 280 4 -281 280 -1 -312 280 -1 -281 281 4 -282 281 -1 -313 281 -1 -282 282 4 -283 282 -1 -314 282 -1 -283 283 4 -284 283 -1 -315 283 -1 -284 284 4 -285 284 -1 -316 284 -1 -285 285 4 -286 285 -1 -317 285 -1 -286 286 4 -287 286 -1 -318 286 -1 -287 287 4 -288 287 -1 -319 287 -1 -288 288 4 -320 288 -1 -289 289 4 -290 289 -1 -321 289 -1 -290 290 4 -291 290 -1 -322 290 -1 -291 291 4 -292 291 -1 -323 291 -1 -292 292 4 -293 292 -1 -324 292 -1 -293 293 4 -294 293 -1 -325 293 -1 -294 294 4 -295 294 -1 -326 294 -1 -295 295 4 -296 295 -1 -327 295 -1 -296 296 4 -297 296 -1 -328 296 -1 -297 297 4 -298 297 -1 -329 297 -1 -298 298 4 -299 298 -1 -330 298 -1 -299 299 4 -300 299 -1 -331 299 -1 -300 300 4 -301 300 -1 -332 300 -1 -301 301 4 -302 301 -1 -333 301 -1 -302 302 4 -303 302 -1 -334 302 -1 -303 303 4 -304 303 -1 -335 303 -1 -304 304 4 -305 304 -1 -336 304 -1 -305 305 4 -306 305 -1 -337 305 -1 -306 306 4 -307 306 -1 -338 306 -1 -307 307 4 -308 307 -1 -339 307 -1 -308 308 4 -309 308 -1 -340 308 -1 -309 309 4 -310 309 -1 -341 309 -1 -310 310 4 -311 310 -1 -342 310 -1 -311 311 4 -312 311 -1 -343 311 -1 -312 312 4 -313 312 -1 -344 312 -1 -313 313 4 -314 313 -1 -345 313 -1 -314 314 4 -315 314 -1 -346 314 -1 -315 315 4 -316 315 -1 -347 315 -1 -316 316 4 -317 316 -1 -348 316 -1 -317 317 4 -318 317 -1 -349 317 -1 -318 318 4 -319 318 -1 -350 318 -1 -319 319 4 -320 319 -1 -351 319 -1 -320 320 4 -352 320 -1 -321 321 4 -322 321 -1 -353 321 -1 -322 322 4 -323 322 -1 -354 322 -1 -323 323 4 -324 323 -1 -355 323 -1 -324 324 4 -325 324 -1 -356 324 -1 -325 325 4 -326 325 -1 -357 325 -1 -326 326 4 -327 326 -1 -358 326 -1 -327 327 4 -328 327 -1 -359 327 -1 -328 328 4 -329 328 -1 -360 328 -1 -329 329 4 -330 329 -1 -361 329 -1 -330 330 4 -331 330 -1 -362 330 -1 -331 331 4 -332 331 -1 -363 331 -1 -332 332 4 -333 332 -1 -364 332 -1 -333 333 4 -334 333 -1 -365 333 -1 -334 334 4 -335 334 -1 -366 334 -1 -335 335 4 -336 335 -1 -367 335 -1 -336 336 4 -337 336 -1 -368 336 -1 -337 337 4 -338 337 -1 -369 337 -1 -338 338 4 -339 338 -1 -370 338 -1 -339 339 4 -340 339 -1 -371 339 -1 -340 340 4 -341 340 -1 -372 340 -1 -341 341 4 -342 341 -1 -373 341 -1 -342 342 4 -343 342 -1 -374 342 -1 -343 343 4 -344 343 -1 -375 343 -1 -344 344 4 -345 344 -1 -376 344 -1 -345 345 4 -346 345 -1 -377 345 -1 -346 346 4 -347 346 -1 -378 346 -1 -347 347 4 -348 347 -1 -379 347 -1 -348 348 4 -349 348 -1 -380 348 -1 -349 349 4 -350 349 -1 -381 349 -1 -350 350 4 -351 350 -1 -382 350 -1 -351 351 4 -352 351 -1 -383 351 -1 -352 352 4 -384 352 -1 -353 353 4 -354 353 -1 -385 353 -1 -354 354 4 -355 354 -1 -386 354 -1 -355 355 4 -356 355 -1 -387 355 -1 -356 356 4 -357 356 -1 -388 356 -1 -357 357 4 -358 357 -1 -389 357 -1 -358 358 4 -359 358 -1 -390 358 -1 -359 359 4 -360 359 -1 -391 359 -1 -360 360 4 -361 360 -1 -392 360 -1 -361 361 4 -362 361 -1 -393 361 -1 -362 362 4 -363 362 -1 -394 362 -1 -363 363 4 -364 363 -1 -395 363 -1 -364 364 4 -365 364 -1 -396 364 -1 -365 365 4 -366 365 -1 -397 365 -1 -366 366 4 -367 366 -1 -398 366 -1 -367 367 4 -368 367 -1 -399 367 -1 -368 368 4 -369 368 -1 -400 368 -1 -369 369 4 -370 369 -1 -401 369 -1 -370 370 4 -371 370 -1 -402 370 -1 -371 371 4 -372 371 -1 -403 371 -1 -372 372 4 -373 372 -1 -404 372 -1 -373 373 4 -374 373 -1 -405 373 -1 -374 374 4 -375 374 -1 -406 374 -1 -375 375 4 -376 375 -1 -407 375 -1 -376 376 4 -377 376 -1 -408 376 -1 -377 377 4 -378 377 -1 -409 377 -1 -378 378 4 -379 378 -1 -410 378 -1 -379 379 4 -380 379 -1 -411 379 -1 -380 380 4 -381 380 -1 -412 380 -1 -381 381 4 -382 381 -1 -413 381 -1 -382 382 4 -383 382 -1 -414 382 -1 -383 383 4 -384 383 -1 -415 383 -1 -384 384 4 -416 384 -1 -385 385 4 -386 385 -1 -417 385 -1 -386 386 4 -387 386 -1 -418 386 -1 -387 387 4 -388 387 -1 -419 387 -1 -388 388 4 -389 388 -1 -420 388 -1 -389 389 4 -390 389 -1 -421 389 -1 -390 390 4 -391 390 -1 -422 390 -1 -391 391 4 -392 391 -1 -423 391 -1 -392 392 4 -393 392 -1 -424 392 -1 -393 393 4 -394 393 -1 -425 393 -1 -394 394 4 -395 394 -1 -426 394 -1 -395 395 4 -396 395 -1 -427 395 -1 -396 396 4 -397 396 -1 -428 396 -1 -397 397 4 -398 397 -1 -429 397 -1 -398 398 4 -399 398 -1 -430 398 -1 -399 399 4 -400 399 -1 -431 399 -1 -400 400 4 -401 400 -1 -432 400 -1 -401 401 4 -402 401 -1 -433 401 -1 -402 402 4 -403 402 -1 -434 402 -1 -403 403 4 -404 403 -1 -435 403 -1 -404 404 4 -405 404 -1 -436 404 -1 -405 405 4 -406 405 -1 -437 405 -1 -406 406 4 -407 406 -1 -438 406 -1 -407 407 4 -408 407 -1 -439 407 -1 -408 408 4 -409 408 -1 -440 408 -1 -409 409 4 -410 409 -1 -441 409 -1 -410 410 4 -411 410 -1 -442 410 -1 -411 411 4 -412 411 -1 -443 411 -1 -412 412 4 -413 412 -1 -444 412 -1 -413 413 4 -414 413 -1 -445 413 -1 -414 414 4 -415 414 -1 -446 414 -1 -415 415 4 -416 415 -1 -447 415 -1 -416 416 4 -448 416 -1 -417 417 4 -418 417 -1 -449 417 -1 -418 418 4 -419 418 -1 -450 418 -1 -419 419 4 -420 419 -1 -451 419 -1 -420 420 4 -421 420 -1 -452 420 -1 -421 421 4 -422 421 -1 -453 421 -1 -422 422 4 -423 422 -1 -454 422 -1 -423 423 4 -424 423 -1 -455 423 -1 -424 424 4 -425 424 -1 -456 424 -1 -425 425 4 -426 425 -1 -457 425 -1 -426 426 4 -427 426 -1 -458 426 -1 -427 427 4 -428 427 -1 -459 427 -1 -428 428 4 -429 428 -1 -460 428 -1 -429 429 4 -430 429 -1 -461 429 -1 -430 430 4 -431 430 -1 -462 430 -1 -431 431 4 -432 431 -1 -463 431 -1 -432 432 4 -433 432 -1 -464 432 -1 -433 433 4 -434 433 -1 -465 433 -1 -434 434 4 -435 434 -1 -466 434 -1 -435 435 4 -436 435 -1 -467 435 -1 -436 436 4 -437 436 -1 -468 436 -1 -437 437 4 -438 437 -1 -469 437 -1 -438 438 4 -439 438 -1 -470 438 -1 -439 439 4 -440 439 -1 -471 439 -1 -440 440 4 -441 440 -1 -472 440 -1 -441 441 4 -442 441 -1 -473 441 -1 -442 442 4 -443 442 -1 -474 442 -1 -443 443 4 -444 443 -1 -475 443 -1 -444 444 4 -445 444 -1 -476 444 -1 -445 445 4 -446 445 -1 -477 445 -1 -446 446 4 -447 446 -1 -478 446 -1 -447 447 4 -448 447 -1 -479 447 -1 -448 448 4 -480 448 -1 -449 449 4 -450 449 -1 -481 449 -1 -450 450 4 -451 450 -1 -482 450 -1 -451 451 4 -452 451 -1 -483 451 -1 -452 452 4 -453 452 -1 -484 452 -1 -453 453 4 -454 453 -1 -485 453 -1 -454 454 4 -455 454 -1 -486 454 -1 -455 455 4 -456 455 -1 -487 455 -1 -456 456 4 -457 456 -1 -488 456 -1 -457 457 4 -458 457 -1 -489 457 -1 -458 458 4 -459 458 -1 -490 458 -1 -459 459 4 -460 459 -1 -491 459 -1 -460 460 4 -461 460 -1 -492 460 -1 -461 461 4 -462 461 -1 -493 461 -1 -462 462 4 -463 462 -1 -494 462 -1 -463 463 4 -464 463 -1 -495 463 -1 -464 464 4 -465 464 -1 -496 464 -1 -465 465 4 -466 465 -1 -497 465 -1 -466 466 4 -467 466 -1 -498 466 -1 -467 467 4 -468 467 -1 -499 467 -1 -468 468 4 -469 468 -1 -500 468 -1 -469 469 4 -470 469 -1 -501 469 -1 -470 470 4 -471 470 -1 -502 470 -1 -471 471 4 -472 471 -1 -503 471 -1 -472 472 4 -473 472 -1 -504 472 -1 -473 473 4 -474 473 -1 -505 473 -1 -474 474 4 -475 474 -1 -506 474 -1 -475 475 4 -476 475 -1 -507 475 -1 -476 476 4 -477 476 -1 -508 476 -1 -477 477 4 -478 477 -1 -509 477 -1 -478 478 4 -479 478 -1 -510 478 -1 -479 479 4 -480 479 -1 -511 479 -1 -480 480 4 -512 480 -1 -481 481 4 -482 481 -1 -513 481 -1 -482 482 4 -483 482 -1 -514 482 -1 -483 483 4 -484 483 -1 -515 483 -1 -484 484 4 -485 484 -1 -516 484 -1 -485 485 4 -486 485 -1 -517 485 -1 -486 486 4 -487 486 -1 -518 486 -1 -487 487 4 -488 487 -1 -519 487 -1 -488 488 4 -489 488 -1 -520 488 -1 -489 489 4 -490 489 -1 -521 489 -1 -490 490 4 -491 490 -1 -522 490 -1 -491 491 4 -492 491 -1 -523 491 -1 -492 492 4 -493 492 -1 -524 492 -1 -493 493 4 -494 493 -1 -525 493 -1 -494 494 4 -495 494 -1 -526 494 -1 -495 495 4 -496 495 -1 -527 495 -1 -496 496 4 -497 496 -1 -528 496 -1 -497 497 4 -498 497 -1 -529 497 -1 -498 498 4 -499 498 -1 -530 498 -1 -499 499 4 -500 499 -1 -531 499 -1 -500 500 4 -501 500 -1 -532 500 -1 -501 501 4 -502 501 -1 -533 501 -1 -502 502 4 -503 502 -1 -534 502 -1 -503 503 4 -504 503 -1 -535 503 -1 -504 504 4 -505 504 -1 -536 504 -1 -505 505 4 -506 505 -1 -537 505 -1 -506 506 4 -507 506 -1 -538 506 -1 -507 507 4 -508 507 -1 -539 507 -1 -508 508 4 -509 508 -1 -540 508 -1 -509 509 4 -510 509 -1 -541 509 -1 -510 510 4 -511 510 -1 -542 510 -1 -511 511 4 -512 511 -1 -543 511 -1 -512 512 4 -544 512 -1 -513 513 4 -514 513 -1 -545 513 -1 -514 514 4 -515 514 -1 -546 514 -1 -515 515 4 -516 515 -1 -547 515 -1 -516 516 4 -517 516 -1 -548 516 -1 -517 517 4 -518 517 -1 -549 517 -1 -518 518 4 -519 518 -1 -550 518 -1 -519 519 4 -520 519 -1 -551 519 -1 -520 520 4 -521 520 -1 -552 520 -1 -521 521 4 -522 521 -1 -553 521 -1 -522 522 4 -523 522 -1 -554 522 -1 -523 523 4 -524 523 -1 -555 523 -1 -524 524 4 -525 524 -1 -556 524 -1 -525 525 4 -526 525 -1 -557 525 -1 -526 526 4 -527 526 -1 -558 526 -1 -527 527 4 -528 527 -1 -559 527 -1 -528 528 4 -529 528 -1 -560 528 -1 -529 529 4 -530 529 -1 -561 529 -1 -530 530 4 -531 530 -1 -562 530 -1 -531 531 4 -532 531 -1 -563 531 -1 -532 532 4 -533 532 -1 -564 532 -1 -533 533 4 -534 533 -1 -565 533 -1 -534 534 4 -535 534 -1 -566 534 -1 -535 535 4 -536 535 -1 -567 535 -1 -536 536 4 -537 536 -1 -568 536 -1 -537 537 4 -538 537 -1 -569 537 -1 -538 538 4 -539 538 -1 -570 538 -1 -539 539 4 -540 539 -1 -571 539 -1 -540 540 4 -541 540 -1 -572 540 -1 -541 541 4 -542 541 -1 -573 541 -1 -542 542 4 -543 542 -1 -574 542 -1 -543 543 4 -544 543 -1 -575 543 -1 -544 544 4 -576 544 -1 -545 545 4 -546 545 -1 -577 545 -1 -546 546 4 -547 546 -1 -578 546 -1 -547 547 4 -548 547 -1 -579 547 -1 -548 548 4 -549 548 -1 -580 548 -1 -549 549 4 -550 549 -1 -581 549 -1 -550 550 4 -551 550 -1 -582 550 -1 -551 551 4 -552 551 -1 -583 551 -1 -552 552 4 -553 552 -1 -584 552 -1 -553 553 4 -554 553 -1 -585 553 -1 -554 554 4 -555 554 -1 -586 554 -1 -555 555 4 -556 555 -1 -587 555 -1 -556 556 4 -557 556 -1 -588 556 -1 -557 557 4 -558 557 -1 -589 557 -1 -558 558 4 -559 558 -1 -590 558 -1 -559 559 4 -560 559 -1 -591 559 -1 -560 560 4 -561 560 -1 -592 560 -1 -561 561 4 -562 561 -1 -593 561 -1 -562 562 4 -563 562 -1 -594 562 -1 -563 563 4 -564 563 -1 -595 563 -1 -564 564 4 -565 564 -1 -596 564 -1 -565 565 4 -566 565 -1 -597 565 -1 -566 566 4 -567 566 -1 -598 566 -1 -567 567 4 -568 567 -1 -599 567 -1 -568 568 4 -569 568 -1 -600 568 -1 -569 569 4 -570 569 -1 -601 569 -1 -570 570 4 -571 570 -1 -602 570 -1 -571 571 4 -572 571 -1 -603 571 -1 -572 572 4 -573 572 -1 -604 572 -1 -573 573 4 -574 573 -1 -605 573 -1 -574 574 4 -575 574 -1 -606 574 -1 -575 575 4 -576 575 -1 -607 575 -1 -576 576 4 -608 576 -1 -577 577 4 -578 577 -1 -609 577 -1 -578 578 4 -579 578 -1 -610 578 -1 -579 579 4 -580 579 -1 -611 579 -1 -580 580 4 -581 580 -1 -612 580 -1 -581 581 4 -582 581 -1 -613 581 -1 -582 582 4 -583 582 -1 -614 582 -1 -583 583 4 -584 583 -1 -615 583 -1 -584 584 4 -585 584 -1 -616 584 -1 -585 585 4 -586 585 -1 -617 585 -1 -586 586 4 -587 586 -1 -618 586 -1 -587 587 4 -588 587 -1 -619 587 -1 -588 588 4 -589 588 -1 -620 588 -1 -589 589 4 -590 589 -1 -621 589 -1 -590 590 4 -591 590 -1 -622 590 -1 -591 591 4 -592 591 -1 -623 591 -1 -592 592 4 -593 592 -1 -624 592 -1 -593 593 4 -594 593 -1 -625 593 -1 -594 594 4 -595 594 -1 -626 594 -1 -595 595 4 -596 595 -1 -627 595 -1 -596 596 4 -597 596 -1 -628 596 -1 -597 597 4 -598 597 -1 -629 597 -1 -598 598 4 -599 598 -1 -630 598 -1 -599 599 4 -600 599 -1 -631 599 -1 -600 600 4 -601 600 -1 -632 600 -1 -601 601 4 -602 601 -1 -633 601 -1 -602 602 4 -603 602 -1 -634 602 -1 -603 603 4 -604 603 -1 -635 603 -1 -604 604 4 -605 604 -1 -636 604 -1 -605 605 4 -606 605 -1 -637 605 -1 -606 606 4 -607 606 -1 -638 606 -1 -607 607 4 -608 607 -1 -639 607 -1 -608 608 4 -640 608 -1 -609 609 4 -610 609 -1 -641 609 -1 -610 610 4 -611 610 -1 -642 610 -1 -611 611 4 -612 611 -1 -643 611 -1 -612 612 4 -613 612 -1 -644 612 -1 -613 613 4 -614 613 -1 -645 613 -1 -614 614 4 -615 614 -1 -646 614 -1 -615 615 4 -616 615 -1 -647 615 -1 -616 616 4 -617 616 -1 -648 616 -1 -617 617 4 -618 617 -1 -649 617 -1 -618 618 4 -619 618 -1 -650 618 -1 -619 619 4 -620 619 -1 -651 619 -1 -620 620 4 -621 620 -1 -652 620 -1 -621 621 4 -622 621 -1 -653 621 -1 -622 622 4 -623 622 -1 -654 622 -1 -623 623 4 -624 623 -1 -655 623 -1 -624 624 4 -625 624 -1 -656 624 -1 -625 625 4 -626 625 -1 -657 625 -1 -626 626 4 -627 626 -1 -658 626 -1 -627 627 4 -628 627 -1 -659 627 -1 -628 628 4 -629 628 -1 -660 628 -1 -629 629 4 -630 629 -1 -661 629 -1 -630 630 4 -631 630 -1 -662 630 -1 -631 631 4 -632 631 -1 -663 631 -1 -632 632 4 -633 632 -1 -664 632 -1 -633 633 4 -634 633 -1 -665 633 -1 -634 634 4 -635 634 -1 -666 634 -1 -635 635 4 -636 635 -1 -667 635 -1 -636 636 4 -637 636 -1 -668 636 -1 -637 637 4 -638 637 -1 -669 637 -1 -638 638 4 -639 638 -1 -670 638 -1 -639 639 4 -640 639 -1 -671 639 -1 -640 640 4 -672 640 -1 -641 641 4 -642 641 -1 -673 641 -1 -642 642 4 -643 642 -1 -674 642 -1 -643 643 4 -644 643 -1 -675 643 -1 -644 644 4 -645 644 -1 -676 644 -1 -645 645 4 -646 645 -1 -677 645 -1 -646 646 4 -647 646 -1 -678 646 -1 -647 647 4 -648 647 -1 -679 647 -1 -648 648 4 -649 648 -1 -680 648 -1 -649 649 4 -650 649 -1 -681 649 -1 -650 650 4 -651 650 -1 -682 650 -1 -651 651 4 -652 651 -1 -683 651 -1 -652 652 4 -653 652 -1 -684 652 -1 -653 653 4 -654 653 -1 -685 653 -1 -654 654 4 -655 654 -1 -686 654 -1 -655 655 4 -656 655 -1 -687 655 -1 -656 656 4 -657 656 -1 -688 656 -1 -657 657 4 -658 657 -1 -689 657 -1 -658 658 4 -659 658 -1 -690 658 -1 -659 659 4 -660 659 -1 -691 659 -1 -660 660 4 -661 660 -1 -692 660 -1 -661 661 4 -662 661 -1 -693 661 -1 -662 662 4 -663 662 -1 -694 662 -1 -663 663 4 -664 663 -1 -695 663 -1 -664 664 4 -665 664 -1 -696 664 -1 -665 665 4 -666 665 -1 -697 665 -1 -666 666 4 -667 666 -1 -698 666 -1 -667 667 4 -668 667 -1 -699 667 -1 -668 668 4 -669 668 -1 -700 668 -1 -669 669 4 -670 669 -1 -701 669 -1 -670 670 4 -671 670 -1 -702 670 -1 -671 671 4 -672 671 -1 -703 671 -1 -672 672 4 -704 672 -1 -673 673 4 -674 673 -1 -705 673 -1 -674 674 4 -675 674 -1 -706 674 -1 -675 675 4 -676 675 -1 -707 675 -1 -676 676 4 -677 676 -1 -708 676 -1 -677 677 4 -678 677 -1 -709 677 -1 -678 678 4 -679 678 -1 -710 678 -1 -679 679 4 -680 679 -1 -711 679 -1 -680 680 4 -681 680 -1 -712 680 -1 -681 681 4 -682 681 -1 -713 681 -1 -682 682 4 -683 682 -1 -714 682 -1 -683 683 4 -684 683 -1 -715 683 -1 -684 684 4 -685 684 -1 -716 684 -1 -685 685 4 -686 685 -1 -717 685 -1 -686 686 4 -687 686 -1 -718 686 -1 -687 687 4 -688 687 -1 -719 687 -1 -688 688 4 -689 688 -1 -720 688 -1 -689 689 4 -690 689 -1 -721 689 -1 -690 690 4 -691 690 -1 -722 690 -1 -691 691 4 -692 691 -1 -723 691 -1 -692 692 4 -693 692 -1 -724 692 -1 -693 693 4 -694 693 -1 -725 693 -1 -694 694 4 -695 694 -1 -726 694 -1 -695 695 4 -696 695 -1 -727 695 -1 -696 696 4 -697 696 -1 -728 696 -1 -697 697 4 -698 697 -1 -729 697 -1 -698 698 4 -699 698 -1 -730 698 -1 -699 699 4 -700 699 -1 -731 699 -1 -700 700 4 -701 700 -1 -732 700 -1 -701 701 4 -702 701 -1 -733 701 -1 -702 702 4 -703 702 -1 -734 702 -1 -703 703 4 -704 703 -1 -735 703 -1 -704 704 4 -736 704 -1 -705 705 4 -706 705 -1 -737 705 -1 -706 706 4 -707 706 -1 -738 706 -1 -707 707 4 -708 707 -1 -739 707 -1 -708 708 4 -709 708 -1 -740 708 -1 -709 709 4 -710 709 -1 -741 709 -1 -710 710 4 -711 710 -1 -742 710 -1 -711 711 4 -712 711 -1 -743 711 -1 -712 712 4 -713 712 -1 -744 712 -1 -713 713 4 -714 713 -1 -745 713 -1 -714 714 4 -715 714 -1 -746 714 -1 -715 715 4 -716 715 -1 -747 715 -1 -716 716 4 -717 716 -1 -748 716 -1 -717 717 4 -718 717 -1 -749 717 -1 -718 718 4 -719 718 -1 -750 718 -1 -719 719 4 -720 719 -1 -751 719 -1 -720 720 4 -721 720 -1 -752 720 -1 -721 721 4 -722 721 -1 -753 721 -1 -722 722 4 -723 722 -1 -754 722 -1 -723 723 4 -724 723 -1 -755 723 -1 -724 724 4 -725 724 -1 -756 724 -1 -725 725 4 -726 725 -1 -757 725 -1 -726 726 4 -727 726 -1 -758 726 -1 -727 727 4 -728 727 -1 -759 727 -1 -728 728 4 -729 728 -1 -760 728 -1 -729 729 4 -730 729 -1 -761 729 -1 -730 730 4 -731 730 -1 -762 730 -1 -731 731 4 -732 731 -1 -763 731 -1 -732 732 4 -733 732 -1 -764 732 -1 -733 733 4 -734 733 -1 -765 733 -1 -734 734 4 -735 734 -1 -766 734 -1 -735 735 4 -736 735 -1 -767 735 -1 -736 736 4 -768 736 -1 -737 737 4 -738 737 -1 -769 737 -1 -738 738 4 -739 738 -1 -770 738 -1 -739 739 4 -740 739 -1 -771 739 -1 -740 740 4 -741 740 -1 -772 740 -1 -741 741 4 -742 741 -1 -773 741 -1 -742 742 4 -743 742 -1 -774 742 -1 -743 743 4 -744 743 -1 -775 743 -1 -744 744 4 -745 744 -1 -776 744 -1 -745 745 4 -746 745 -1 -777 745 -1 -746 746 4 -747 746 -1 -778 746 -1 -747 747 4 -748 747 -1 -779 747 -1 -748 748 4 -749 748 -1 -780 748 -1 -749 749 4 -750 749 -1 -781 749 -1 -750 750 4 -751 750 -1 -782 750 -1 -751 751 4 -752 751 -1 -783 751 -1 -752 752 4 -753 752 -1 -784 752 -1 -753 753 4 -754 753 -1 -785 753 -1 -754 754 4 -755 754 -1 -786 754 -1 -755 755 4 -756 755 -1 -787 755 -1 -756 756 4 -757 756 -1 -788 756 -1 -757 757 4 -758 757 -1 -789 757 -1 -758 758 4 -759 758 -1 -790 758 -1 -759 759 4 -760 759 -1 -791 759 -1 -760 760 4 -761 760 -1 -792 760 -1 -761 761 4 -762 761 -1 -793 761 -1 -762 762 4 -763 762 -1 -794 762 -1 -763 763 4 -764 763 -1 -795 763 -1 -764 764 4 -765 764 -1 -796 764 -1 -765 765 4 -766 765 -1 -797 765 -1 -766 766 4 -767 766 -1 -798 766 -1 -767 767 4 -768 767 -1 -799 767 -1 -768 768 4 -800 768 -1 -769 769 4 -770 769 -1 -801 769 -1 -770 770 4 -771 770 -1 -802 770 -1 -771 771 4 -772 771 -1 -803 771 -1 -772 772 4 -773 772 -1 -804 772 -1 -773 773 4 -774 773 -1 -805 773 -1 -774 774 4 -775 774 -1 -806 774 -1 -775 775 4 -776 775 -1 -807 775 -1 -776 776 4 -777 776 -1 -808 776 -1 -777 777 4 -778 777 -1 -809 777 -1 -778 778 4 -779 778 -1 -810 778 -1 -779 779 4 -780 779 -1 -811 779 -1 -780 780 4 -781 780 -1 -812 780 -1 -781 781 4 -782 781 -1 -813 781 -1 -782 782 4 -783 782 -1 -814 782 -1 -783 783 4 -784 783 -1 -815 783 -1 -784 784 4 -785 784 -1 -816 784 -1 -785 785 4 -786 785 -1 -817 785 -1 -786 786 4 -787 786 -1 -818 786 -1 -787 787 4 -788 787 -1 -819 787 -1 -788 788 4 -789 788 -1 -820 788 -1 -789 789 4 -790 789 -1 -821 789 -1 -790 790 4 -791 790 -1 -822 790 -1 -791 791 4 -792 791 -1 -823 791 -1 -792 792 4 -793 792 -1 -824 792 -1 -793 793 4 -794 793 -1 -825 793 -1 -794 794 4 -795 794 -1 -826 794 -1 -795 795 4 -796 795 -1 -827 795 -1 -796 796 4 -797 796 -1 -828 796 -1 -797 797 4 -798 797 -1 -829 797 -1 -798 798 4 -799 798 -1 -830 798 -1 -799 799 4 -800 799 -1 -831 799 -1 -800 800 4 -832 800 -1 -801 801 4 -802 801 -1 -833 801 -1 -802 802 4 -803 802 -1 -834 802 -1 -803 803 4 -804 803 -1 -835 803 -1 -804 804 4 -805 804 -1 -836 804 -1 -805 805 4 -806 805 -1 -837 805 -1 -806 806 4 -807 806 -1 -838 806 -1 -807 807 4 -808 807 -1 -839 807 -1 -808 808 4 -809 808 -1 -840 808 -1 -809 809 4 -810 809 -1 -841 809 -1 -810 810 4 -811 810 -1 -842 810 -1 -811 811 4 -812 811 -1 -843 811 -1 -812 812 4 -813 812 -1 -844 812 -1 -813 813 4 -814 813 -1 -845 813 -1 -814 814 4 -815 814 -1 -846 814 -1 -815 815 4 -816 815 -1 -847 815 -1 -816 816 4 -817 816 -1 -848 816 -1 -817 817 4 -818 817 -1 -849 817 -1 -818 818 4 -819 818 -1 -850 818 -1 -819 819 4 -820 819 -1 -851 819 -1 -820 820 4 -821 820 -1 -852 820 -1 -821 821 4 -822 821 -1 -853 821 -1 -822 822 4 -823 822 -1 -854 822 -1 -823 823 4 -824 823 -1 -855 823 -1 -824 824 4 -825 824 -1 -856 824 -1 -825 825 4 -826 825 -1 -857 825 -1 -826 826 4 -827 826 -1 -858 826 -1 -827 827 4 -828 827 -1 -859 827 -1 -828 828 4 -829 828 -1 -860 828 -1 -829 829 4 -830 829 -1 -861 829 -1 -830 830 4 -831 830 -1 -862 830 -1 -831 831 4 -832 831 -1 -863 831 -1 -832 832 4 -864 832 -1 -833 833 4 -834 833 -1 -865 833 -1 -834 834 4 -835 834 -1 -866 834 -1 -835 835 4 -836 835 -1 -867 835 -1 -836 836 4 -837 836 -1 -868 836 -1 -837 837 4 -838 837 -1 -869 837 -1 -838 838 4 -839 838 -1 -870 838 -1 -839 839 4 -840 839 -1 -871 839 -1 -840 840 4 -841 840 -1 -872 840 -1 -841 841 4 -842 841 -1 -873 841 -1 -842 842 4 -843 842 -1 -874 842 -1 -843 843 4 -844 843 -1 -875 843 -1 -844 844 4 -845 844 -1 -876 844 -1 -845 845 4 -846 845 -1 -877 845 -1 -846 846 4 -847 846 -1 -878 846 -1 -847 847 4 -848 847 -1 -879 847 -1 -848 848 4 -849 848 -1 -880 848 -1 -849 849 4 -850 849 -1 -881 849 -1 -850 850 4 -851 850 -1 -882 850 -1 -851 851 4 -852 851 -1 -883 851 -1 -852 852 4 -853 852 -1 -884 852 -1 -853 853 4 -854 853 -1 -885 853 -1 -854 854 4 -855 854 -1 -886 854 -1 -855 855 4 -856 855 -1 -887 855 -1 -856 856 4 -857 856 -1 -888 856 -1 -857 857 4 -858 857 -1 -889 857 -1 -858 858 4 -859 858 -1 -890 858 -1 -859 859 4 -860 859 -1 -891 859 -1 -860 860 4 -861 860 -1 -892 860 -1 -861 861 4 -862 861 -1 -893 861 -1 -862 862 4 -863 862 -1 -894 862 -1 -863 863 4 -864 863 -1 -895 863 -1 -864 864 4 -896 864 -1 -865 865 4 -866 865 -1 -897 865 -1 -866 866 4 -867 866 -1 -898 866 -1 -867 867 4 -868 867 -1 -899 867 -1 -868 868 4 -869 868 -1 -900 868 -1 -869 869 4 -870 869 -1 -901 869 -1 -870 870 4 -871 870 -1 -902 870 -1 -871 871 4 -872 871 -1 -903 871 -1 -872 872 4 -873 872 -1 -904 872 -1 -873 873 4 -874 873 -1 -905 873 -1 -874 874 4 -875 874 -1 -906 874 -1 -875 875 4 -876 875 -1 -907 875 -1 -876 876 4 -877 876 -1 -908 876 -1 -877 877 4 -878 877 -1 -909 877 -1 -878 878 4 -879 878 -1 -910 878 -1 -879 879 4 -880 879 -1 -911 879 -1 -880 880 4 -881 880 -1 -912 880 -1 -881 881 4 -882 881 -1 -913 881 -1 -882 882 4 -883 882 -1 -914 882 -1 -883 883 4 -884 883 -1 -915 883 -1 -884 884 4 -885 884 -1 -916 884 -1 -885 885 4 -886 885 -1 -917 885 -1 -886 886 4 -887 886 -1 -918 886 -1 -887 887 4 -888 887 -1 -919 887 -1 -888 888 4 -889 888 -1 -920 888 -1 -889 889 4 -890 889 -1 -921 889 -1 -890 890 4 -891 890 -1 -922 890 -1 -891 891 4 -892 891 -1 -923 891 -1 -892 892 4 -893 892 -1 -924 892 -1 -893 893 4 -894 893 -1 -925 893 -1 -894 894 4 -895 894 -1 -926 894 -1 -895 895 4 -896 895 -1 -927 895 -1 -896 896 4 -928 896 -1 -897 897 4 -898 897 -1 -929 897 -1 -898 898 4 -899 898 -1 -930 898 -1 -899 899 4 -900 899 -1 -931 899 -1 -900 900 4 -901 900 -1 -932 900 -1 -901 901 4 -902 901 -1 -933 901 -1 -902 902 4 -903 902 -1 -934 902 -1 -903 903 4 -904 903 -1 -935 903 -1 -904 904 4 -905 904 -1 -936 904 -1 -905 905 4 -906 905 -1 -937 905 -1 -906 906 4 -907 906 -1 -938 906 -1 -907 907 4 -908 907 -1 -939 907 -1 -908 908 4 -909 908 -1 -940 908 -1 -909 909 4 -910 909 -1 -941 909 -1 -910 910 4 -911 910 -1 -942 910 -1 -911 911 4 -912 911 -1 -943 911 -1 -912 912 4 -913 912 -1 -944 912 -1 -913 913 4 -914 913 -1 -945 913 -1 -914 914 4 -915 914 -1 -946 914 -1 -915 915 4 -916 915 -1 -947 915 -1 -916 916 4 -917 916 -1 -948 916 -1 -917 917 4 -918 917 -1 -949 917 -1 -918 918 4 -919 918 -1 -950 918 -1 -919 919 4 -920 919 -1 -951 919 -1 -920 920 4 -921 920 -1 -952 920 -1 -921 921 4 -922 921 -1 -953 921 -1 -922 922 4 -923 922 -1 -954 922 -1 -923 923 4 -924 923 -1 -955 923 -1 -924 924 4 -925 924 -1 -956 924 -1 -925 925 4 -926 925 -1 -957 925 -1 -926 926 4 -927 926 -1 -958 926 -1 -927 927 4 -928 927 -1 -959 927 -1 -928 928 4 -960 928 -1 -929 929 4 -930 929 -1 -961 929 -1 -930 930 4 -931 930 -1 -962 930 -1 -931 931 4 -932 931 -1 -963 931 -1 -932 932 4 -933 932 -1 -964 932 -1 -933 933 4 -934 933 -1 -965 933 -1 -934 934 4 -935 934 -1 -966 934 -1 -935 935 4 -936 935 -1 -967 935 -1 -936 936 4 -937 936 -1 -968 936 -1 -937 937 4 -938 937 -1 -969 937 -1 -938 938 4 -939 938 -1 -970 938 -1 -939 939 4 -940 939 -1 -971 939 -1 -940 940 4 -941 940 -1 -972 940 -1 -941 941 4 -942 941 -1 -973 941 -1 -942 942 4 -943 942 -1 -974 942 -1 -943 943 4 -944 943 -1 -975 943 -1 -944 944 4 -945 944 -1 -976 944 -1 -945 945 4 -946 945 -1 -977 945 -1 -946 946 4 -947 946 -1 -978 946 -1 -947 947 4 -948 947 -1 -979 947 -1 -948 948 4 -949 948 -1 -980 948 -1 -949 949 4 -950 949 -1 -981 949 -1 -950 950 4 -951 950 -1 -982 950 -1 -951 951 4 -952 951 -1 -983 951 -1 -952 952 4 -953 952 -1 -984 952 -1 -953 953 4 -954 953 -1 -985 953 -1 -954 954 4 -955 954 -1 -986 954 -1 -955 955 4 -956 955 -1 -987 955 -1 -956 956 4 -957 956 -1 -988 956 -1 -957 957 4 -958 957 -1 -989 957 -1 -958 958 4 -959 958 -1 -990 958 -1 -959 959 4 -960 959 -1 -991 959 -1 -960 960 4 -992 960 -1 -961 961 4 -962 961 -1 -993 961 -1 -962 962 4 -963 962 -1 -994 962 -1 -963 963 4 -964 963 -1 -995 963 -1 -964 964 4 -965 964 -1 -996 964 -1 -965 965 4 -966 965 -1 -997 965 -1 -966 966 4 -967 966 -1 -998 966 -1 -967 967 4 -968 967 -1 -999 967 -1 -968 968 4 -969 968 -1 -1000 968 -1 -969 969 4 -970 969 -1 -1001 969 -1 -970 970 4 -971 970 -1 -1002 970 -1 -971 971 4 -972 971 -1 -1003 971 -1 -972 972 4 -973 972 -1 -1004 972 -1 -973 973 4 -974 973 -1 -1005 973 -1 -974 974 4 -975 974 -1 -1006 974 -1 -975 975 4 -976 975 -1 -1007 975 -1 -976 976 4 -977 976 -1 -1008 976 -1 -977 977 4 -978 977 -1 -1009 977 -1 -978 978 4 -979 978 -1 -1010 978 -1 -979 979 4 -980 979 -1 -1011 979 -1 -980 980 4 -981 980 -1 -1012 980 -1 -981 981 4 -982 981 -1 -1013 981 -1 -982 982 4 -983 982 -1 -1014 982 -1 -983 983 4 -984 983 -1 -1015 983 -1 -984 984 4 -985 984 -1 -1016 984 -1 -985 985 4 -986 985 -1 -1017 985 -1 -986 986 4 -987 986 -1 -1018 986 -1 -987 987 4 -988 987 -1 -1019 987 -1 -988 988 4 -989 988 -1 -1020 988 -1 -989 989 4 -990 989 -1 -1021 989 -1 -990 990 4 -991 990 -1 -1022 990 -1 -991 991 4 -992 991 -1 -1023 991 -1 -992 992 4 -1024 992 -1 -993 993 4 -994 993 -1 -994 994 4 -995 994 -1 -995 995 4 -996 995 -1 -996 996 4 -997 996 -1 -997 997 4 -998 997 -1 -998 998 4 -999 998 -1 -999 999 4 -1000 999 -1 -1000 1000 4 -1001 1000 -1 -1001 1001 4 -1002 1001 -1 -1002 1002 4 -1003 1002 -1 -1003 1003 4 -1004 1003 -1 -1004 1004 4 -1005 1004 -1 -1005 1005 4 -1006 1005 -1 -1006 1006 4 -1007 1006 -1 -1007 1007 4 -1008 1007 -1 -1008 1008 4 -1009 1008 -1 -1009 1009 4 -1010 1009 -1 -1010 1010 4 -1011 1010 -1 -1011 1011 4 -1012 1011 -1 -1012 1012 4 -1013 1012 -1 -1013 1013 4 -1014 1013 -1 -1014 1014 4 -1015 1014 -1 -1015 1015 4 -1016 1015 -1 -1016 1016 4 -1017 1016 -1 -1017 1017 4 -1018 1017 -1 -1018 1018 4 -1019 1018 -1 -1019 1019 4 -1020 1019 -1 -1020 1020 4 -1021 1020 -1 -1021 1021 4 -1022 1021 -1 -1022 1022 4 -1023 1022 -1 -1023 1023 4 -1024 1023 -1 -1024 1024 4 diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/lap3D_7pt_n20.mtx b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/lap3D_7pt_n20.mtx deleted file mode 100644 index 29f4f69f..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/lap3D_7pt_n20.mtx +++ /dev/null @@ -1,30803 +0,0 @@ -%%MatrixMarket matrix coordinate real symmetric -% Generated 20-Nov-2014 -8000 8000 30800 -1 1 6 -2 1 -1 -21 1 -1 -401 1 -1 -2 2 6 -3 2 -1 -22 2 -1 -402 2 -1 -3 3 6 -4 3 -1 -23 3 -1 -403 3 -1 -4 4 6 -5 4 -1 -24 4 -1 -404 4 -1 -5 5 6 -6 5 -1 -25 5 -1 -405 5 -1 -6 6 6 -7 6 -1 -26 6 -1 -406 6 -1 -7 7 6 -8 7 -1 -27 7 -1 -407 7 -1 -8 8 6 -9 8 -1 -28 8 -1 -408 8 -1 -9 9 6 -10 9 -1 -29 9 -1 -409 9 -1 -10 10 6 -11 10 -1 -30 10 -1 -410 10 -1 -11 11 6 -12 11 -1 -31 11 -1 -411 11 -1 -12 12 6 -13 12 -1 -32 12 -1 -412 12 -1 -13 13 6 -14 13 -1 -33 13 -1 -413 13 -1 -14 14 6 -15 14 -1 -34 14 -1 -414 14 -1 -15 15 6 -16 15 -1 -35 15 -1 -415 15 -1 -16 16 6 -17 16 -1 -36 16 -1 -416 16 -1 -17 17 6 -18 17 -1 -37 17 -1 -417 17 -1 -18 18 6 -19 18 -1 -38 18 -1 -418 18 -1 -19 19 6 -20 19 -1 -39 19 -1 -419 19 -1 -20 20 6 -40 20 -1 -420 20 -1 -21 21 6 -22 21 -1 -41 21 -1 -421 21 -1 -22 22 6 -23 22 -1 -42 22 -1 -422 22 -1 -23 23 6 -24 23 -1 -43 23 -1 -423 23 -1 -24 24 6 -25 24 -1 -44 24 -1 -424 24 -1 -25 25 6 -26 25 -1 -45 25 -1 -425 25 -1 -26 26 6 -27 26 -1 -46 26 -1 -426 26 -1 -27 27 6 -28 27 -1 -47 27 -1 -427 27 -1 -28 28 6 -29 28 -1 -48 28 -1 -428 28 -1 -29 29 6 -30 29 -1 -49 29 -1 -429 29 -1 -30 30 6 -31 30 -1 -50 30 -1 -430 30 -1 -31 31 6 -32 31 -1 -51 31 -1 -431 31 -1 -32 32 6 -33 32 -1 -52 32 -1 -432 32 -1 -33 33 6 -34 33 -1 -53 33 -1 -433 33 -1 -34 34 6 -35 34 -1 -54 34 -1 -434 34 -1 -35 35 6 -36 35 -1 -55 35 -1 -435 35 -1 -36 36 6 -37 36 -1 -56 36 -1 -436 36 -1 -37 37 6 -38 37 -1 -57 37 -1 -437 37 -1 -38 38 6 -39 38 -1 -58 38 -1 -438 38 -1 -39 39 6 -40 39 -1 -59 39 -1 -439 39 -1 -40 40 6 -60 40 -1 -440 40 -1 -41 41 6 -42 41 -1 -61 41 -1 -441 41 -1 -42 42 6 -43 42 -1 -62 42 -1 -442 42 -1 -43 43 6 -44 43 -1 -63 43 -1 -443 43 -1 -44 44 6 -45 44 -1 -64 44 -1 -444 44 -1 -45 45 6 -46 45 -1 -65 45 -1 -445 45 -1 -46 46 6 -47 46 -1 -66 46 -1 -446 46 -1 -47 47 6 -48 47 -1 -67 47 -1 -447 47 -1 -48 48 6 -49 48 -1 -68 48 -1 -448 48 -1 -49 49 6 -50 49 -1 -69 49 -1 -449 49 -1 -50 50 6 -51 50 -1 -70 50 -1 -450 50 -1 -51 51 6 -52 51 -1 -71 51 -1 -451 51 -1 -52 52 6 -53 52 -1 -72 52 -1 -452 52 -1 -53 53 6 -54 53 -1 -73 53 -1 -453 53 -1 -54 54 6 -55 54 -1 -74 54 -1 -454 54 -1 -55 55 6 -56 55 -1 -75 55 -1 -455 55 -1 -56 56 6 -57 56 -1 -76 56 -1 -456 56 -1 -57 57 6 -58 57 -1 -77 57 -1 -457 57 -1 -58 58 6 -59 58 -1 -78 58 -1 -458 58 -1 -59 59 6 -60 59 -1 -79 59 -1 -459 59 -1 -60 60 6 -80 60 -1 -460 60 -1 -61 61 6 -62 61 -1 -81 61 -1 -461 61 -1 -62 62 6 -63 62 -1 -82 62 -1 -462 62 -1 -63 63 6 -64 63 -1 -83 63 -1 -463 63 -1 -64 64 6 -65 64 -1 -84 64 -1 -464 64 -1 -65 65 6 -66 65 -1 -85 65 -1 -465 65 -1 -66 66 6 -67 66 -1 -86 66 -1 -466 66 -1 -67 67 6 -68 67 -1 -87 67 -1 -467 67 -1 -68 68 6 -69 68 -1 -88 68 -1 -468 68 -1 -69 69 6 -70 69 -1 -89 69 -1 -469 69 -1 -70 70 6 -71 70 -1 -90 70 -1 -470 70 -1 -71 71 6 -72 71 -1 -91 71 -1 -471 71 -1 -72 72 6 -73 72 -1 -92 72 -1 -472 72 -1 -73 73 6 -74 73 -1 -93 73 -1 -473 73 -1 -74 74 6 -75 74 -1 -94 74 -1 -474 74 -1 -75 75 6 -76 75 -1 -95 75 -1 -475 75 -1 -76 76 6 -77 76 -1 -96 76 -1 -476 76 -1 -77 77 6 -78 77 -1 -97 77 -1 -477 77 -1 -78 78 6 -79 78 -1 -98 78 -1 -478 78 -1 -79 79 6 -80 79 -1 -99 79 -1 -479 79 -1 -80 80 6 -100 80 -1 -480 80 -1 -81 81 6 -82 81 -1 -101 81 -1 -481 81 -1 -82 82 6 -83 82 -1 -102 82 -1 -482 82 -1 -83 83 6 -84 83 -1 -103 83 -1 -483 83 -1 -84 84 6 -85 84 -1 -104 84 -1 -484 84 -1 -85 85 6 -86 85 -1 -105 85 -1 -485 85 -1 -86 86 6 -87 86 -1 -106 86 -1 -486 86 -1 -87 87 6 -88 87 -1 -107 87 -1 -487 87 -1 -88 88 6 -89 88 -1 -108 88 -1 -488 88 -1 -89 89 6 -90 89 -1 -109 89 -1 -489 89 -1 -90 90 6 -91 90 -1 -110 90 -1 -490 90 -1 -91 91 6 -92 91 -1 -111 91 -1 -491 91 -1 -92 92 6 -93 92 -1 -112 92 -1 -492 92 -1 -93 93 6 -94 93 -1 -113 93 -1 -493 93 -1 -94 94 6 -95 94 -1 -114 94 -1 -494 94 -1 -95 95 6 -96 95 -1 -115 95 -1 -495 95 -1 -96 96 6 -97 96 -1 -116 96 -1 -496 96 -1 -97 97 6 -98 97 -1 -117 97 -1 -497 97 -1 -98 98 6 -99 98 -1 -118 98 -1 -498 98 -1 -99 99 6 -100 99 -1 -119 99 -1 -499 99 -1 -100 100 6 -120 100 -1 -500 100 -1 -101 101 6 -102 101 -1 -121 101 -1 -501 101 -1 -102 102 6 -103 102 -1 -122 102 -1 -502 102 -1 -103 103 6 -104 103 -1 -123 103 -1 -503 103 -1 -104 104 6 -105 104 -1 -124 104 -1 -504 104 -1 -105 105 6 -106 105 -1 -125 105 -1 -505 105 -1 -106 106 6 -107 106 -1 -126 106 -1 -506 106 -1 -107 107 6 -108 107 -1 -127 107 -1 -507 107 -1 -108 108 6 -109 108 -1 -128 108 -1 -508 108 -1 -109 109 6 -110 109 -1 -129 109 -1 -509 109 -1 -110 110 6 -111 110 -1 -130 110 -1 -510 110 -1 -111 111 6 -112 111 -1 -131 111 -1 -511 111 -1 -112 112 6 -113 112 -1 -132 112 -1 -512 112 -1 -113 113 6 -114 113 -1 -133 113 -1 -513 113 -1 -114 114 6 -115 114 -1 -134 114 -1 -514 114 -1 -115 115 6 -116 115 -1 -135 115 -1 -515 115 -1 -116 116 6 -117 116 -1 -136 116 -1 -516 116 -1 -117 117 6 -118 117 -1 -137 117 -1 -517 117 -1 -118 118 6 -119 118 -1 -138 118 -1 -518 118 -1 -119 119 6 -120 119 -1 -139 119 -1 -519 119 -1 -120 120 6 -140 120 -1 -520 120 -1 -121 121 6 -122 121 -1 -141 121 -1 -521 121 -1 -122 122 6 -123 122 -1 -142 122 -1 -522 122 -1 -123 123 6 -124 123 -1 -143 123 -1 -523 123 -1 -124 124 6 -125 124 -1 -144 124 -1 -524 124 -1 -125 125 6 -126 125 -1 -145 125 -1 -525 125 -1 -126 126 6 -127 126 -1 -146 126 -1 -526 126 -1 -127 127 6 -128 127 -1 -147 127 -1 -527 127 -1 -128 128 6 -129 128 -1 -148 128 -1 -528 128 -1 -129 129 6 -130 129 -1 -149 129 -1 -529 129 -1 -130 130 6 -131 130 -1 -150 130 -1 -530 130 -1 -131 131 6 -132 131 -1 -151 131 -1 -531 131 -1 -132 132 6 -133 132 -1 -152 132 -1 -532 132 -1 -133 133 6 -134 133 -1 -153 133 -1 -533 133 -1 -134 134 6 -135 134 -1 -154 134 -1 -534 134 -1 -135 135 6 -136 135 -1 -155 135 -1 -535 135 -1 -136 136 6 -137 136 -1 -156 136 -1 -536 136 -1 -137 137 6 -138 137 -1 -157 137 -1 -537 137 -1 -138 138 6 -139 138 -1 -158 138 -1 -538 138 -1 -139 139 6 -140 139 -1 -159 139 -1 -539 139 -1 -140 140 6 -160 140 -1 -540 140 -1 -141 141 6 -142 141 -1 -161 141 -1 -541 141 -1 -142 142 6 -143 142 -1 -162 142 -1 -542 142 -1 -143 143 6 -144 143 -1 -163 143 -1 -543 143 -1 -144 144 6 -145 144 -1 -164 144 -1 -544 144 -1 -145 145 6 -146 145 -1 -165 145 -1 -545 145 -1 -146 146 6 -147 146 -1 -166 146 -1 -546 146 -1 -147 147 6 -148 147 -1 -167 147 -1 -547 147 -1 -148 148 6 -149 148 -1 -168 148 -1 -548 148 -1 -149 149 6 -150 149 -1 -169 149 -1 -549 149 -1 -150 150 6 -151 150 -1 -170 150 -1 -550 150 -1 -151 151 6 -152 151 -1 -171 151 -1 -551 151 -1 -152 152 6 -153 152 -1 -172 152 -1 -552 152 -1 -153 153 6 -154 153 -1 -173 153 -1 -553 153 -1 -154 154 6 -155 154 -1 -174 154 -1 -554 154 -1 -155 155 6 -156 155 -1 -175 155 -1 -555 155 -1 -156 156 6 -157 156 -1 -176 156 -1 -556 156 -1 -157 157 6 -158 157 -1 -177 157 -1 -557 157 -1 -158 158 6 -159 158 -1 -178 158 -1 -558 158 -1 -159 159 6 -160 159 -1 -179 159 -1 -559 159 -1 -160 160 6 -180 160 -1 -560 160 -1 -161 161 6 -162 161 -1 -181 161 -1 -561 161 -1 -162 162 6 -163 162 -1 -182 162 -1 -562 162 -1 -163 163 6 -164 163 -1 -183 163 -1 -563 163 -1 -164 164 6 -165 164 -1 -184 164 -1 -564 164 -1 -165 165 6 -166 165 -1 -185 165 -1 -565 165 -1 -166 166 6 -167 166 -1 -186 166 -1 -566 166 -1 -167 167 6 -168 167 -1 -187 167 -1 -567 167 -1 -168 168 6 -169 168 -1 -188 168 -1 -568 168 -1 -169 169 6 -170 169 -1 -189 169 -1 -569 169 -1 -170 170 6 -171 170 -1 -190 170 -1 -570 170 -1 -171 171 6 -172 171 -1 -191 171 -1 -571 171 -1 -172 172 6 -173 172 -1 -192 172 -1 -572 172 -1 -173 173 6 -174 173 -1 -193 173 -1 -573 173 -1 -174 174 6 -175 174 -1 -194 174 -1 -574 174 -1 -175 175 6 -176 175 -1 -195 175 -1 -575 175 -1 -176 176 6 -177 176 -1 -196 176 -1 -576 176 -1 -177 177 6 -178 177 -1 -197 177 -1 -577 177 -1 -178 178 6 -179 178 -1 -198 178 -1 -578 178 -1 -179 179 6 -180 179 -1 -199 179 -1 -579 179 -1 -180 180 6 -200 180 -1 -580 180 -1 -181 181 6 -182 181 -1 -201 181 -1 -581 181 -1 -182 182 6 -183 182 -1 -202 182 -1 -582 182 -1 -183 183 6 -184 183 -1 -203 183 -1 -583 183 -1 -184 184 6 -185 184 -1 -204 184 -1 -584 184 -1 -185 185 6 -186 185 -1 -205 185 -1 -585 185 -1 -186 186 6 -187 186 -1 -206 186 -1 -586 186 -1 -187 187 6 -188 187 -1 -207 187 -1 -587 187 -1 -188 188 6 -189 188 -1 -208 188 -1 -588 188 -1 -189 189 6 -190 189 -1 -209 189 -1 -589 189 -1 -190 190 6 -191 190 -1 -210 190 -1 -590 190 -1 -191 191 6 -192 191 -1 -211 191 -1 -591 191 -1 -192 192 6 -193 192 -1 -212 192 -1 -592 192 -1 -193 193 6 -194 193 -1 -213 193 -1 -593 193 -1 -194 194 6 -195 194 -1 -214 194 -1 -594 194 -1 -195 195 6 -196 195 -1 -215 195 -1 -595 195 -1 -196 196 6 -197 196 -1 -216 196 -1 -596 196 -1 -197 197 6 -198 197 -1 -217 197 -1 -597 197 -1 -198 198 6 -199 198 -1 -218 198 -1 -598 198 -1 -199 199 6 -200 199 -1 -219 199 -1 -599 199 -1 -200 200 6 -220 200 -1 -600 200 -1 -201 201 6 -202 201 -1 -221 201 -1 -601 201 -1 -202 202 6 -203 202 -1 -222 202 -1 -602 202 -1 -203 203 6 -204 203 -1 -223 203 -1 -603 203 -1 -204 204 6 -205 204 -1 -224 204 -1 -604 204 -1 -205 205 6 -206 205 -1 -225 205 -1 -605 205 -1 -206 206 6 -207 206 -1 -226 206 -1 -606 206 -1 -207 207 6 -208 207 -1 -227 207 -1 -607 207 -1 -208 208 6 -209 208 -1 -228 208 -1 -608 208 -1 -209 209 6 -210 209 -1 -229 209 -1 -609 209 -1 -210 210 6 -211 210 -1 -230 210 -1 -610 210 -1 -211 211 6 -212 211 -1 -231 211 -1 -611 211 -1 -212 212 6 -213 212 -1 -232 212 -1 -612 212 -1 -213 213 6 -214 213 -1 -233 213 -1 -613 213 -1 -214 214 6 -215 214 -1 -234 214 -1 -614 214 -1 -215 215 6 -216 215 -1 -235 215 -1 -615 215 -1 -216 216 6 -217 216 -1 -236 216 -1 -616 216 -1 -217 217 6 -218 217 -1 -237 217 -1 -617 217 -1 -218 218 6 -219 218 -1 -238 218 -1 -618 218 -1 -219 219 6 -220 219 -1 -239 219 -1 -619 219 -1 -220 220 6 -240 220 -1 -620 220 -1 -221 221 6 -222 221 -1 -241 221 -1 -621 221 -1 -222 222 6 -223 222 -1 -242 222 -1 -622 222 -1 -223 223 6 -224 223 -1 -243 223 -1 -623 223 -1 -224 224 6 -225 224 -1 -244 224 -1 -624 224 -1 -225 225 6 -226 225 -1 -245 225 -1 -625 225 -1 -226 226 6 -227 226 -1 -246 226 -1 -626 226 -1 -227 227 6 -228 227 -1 -247 227 -1 -627 227 -1 -228 228 6 -229 228 -1 -248 228 -1 -628 228 -1 -229 229 6 -230 229 -1 -249 229 -1 -629 229 -1 -230 230 6 -231 230 -1 -250 230 -1 -630 230 -1 -231 231 6 -232 231 -1 -251 231 -1 -631 231 -1 -232 232 6 -233 232 -1 -252 232 -1 -632 232 -1 -233 233 6 -234 233 -1 -253 233 -1 -633 233 -1 -234 234 6 -235 234 -1 -254 234 -1 -634 234 -1 -235 235 6 -236 235 -1 -255 235 -1 -635 235 -1 -236 236 6 -237 236 -1 -256 236 -1 -636 236 -1 -237 237 6 -238 237 -1 -257 237 -1 -637 237 -1 -238 238 6 -239 238 -1 -258 238 -1 -638 238 -1 -239 239 6 -240 239 -1 -259 239 -1 -639 239 -1 -240 240 6 -260 240 -1 -640 240 -1 -241 241 6 -242 241 -1 -261 241 -1 -641 241 -1 -242 242 6 -243 242 -1 -262 242 -1 -642 242 -1 -243 243 6 -244 243 -1 -263 243 -1 -643 243 -1 -244 244 6 -245 244 -1 -264 244 -1 -644 244 -1 -245 245 6 -246 245 -1 -265 245 -1 -645 245 -1 -246 246 6 -247 246 -1 -266 246 -1 -646 246 -1 -247 247 6 -248 247 -1 -267 247 -1 -647 247 -1 -248 248 6 -249 248 -1 -268 248 -1 -648 248 -1 -249 249 6 -250 249 -1 -269 249 -1 -649 249 -1 -250 250 6 -251 250 -1 -270 250 -1 -650 250 -1 -251 251 6 -252 251 -1 -271 251 -1 -651 251 -1 -252 252 6 -253 252 -1 -272 252 -1 -652 252 -1 -253 253 6 -254 253 -1 -273 253 -1 -653 253 -1 -254 254 6 -255 254 -1 -274 254 -1 -654 254 -1 -255 255 6 -256 255 -1 -275 255 -1 -655 255 -1 -256 256 6 -257 256 -1 -276 256 -1 -656 256 -1 -257 257 6 -258 257 -1 -277 257 -1 -657 257 -1 -258 258 6 -259 258 -1 -278 258 -1 -658 258 -1 -259 259 6 -260 259 -1 -279 259 -1 -659 259 -1 -260 260 6 -280 260 -1 -660 260 -1 -261 261 6 -262 261 -1 -281 261 -1 -661 261 -1 -262 262 6 -263 262 -1 -282 262 -1 -662 262 -1 -263 263 6 -264 263 -1 -283 263 -1 -663 263 -1 -264 264 6 -265 264 -1 -284 264 -1 -664 264 -1 -265 265 6 -266 265 -1 -285 265 -1 -665 265 -1 -266 266 6 -267 266 -1 -286 266 -1 -666 266 -1 -267 267 6 -268 267 -1 -287 267 -1 -667 267 -1 -268 268 6 -269 268 -1 -288 268 -1 -668 268 -1 -269 269 6 -270 269 -1 -289 269 -1 -669 269 -1 -270 270 6 -271 270 -1 -290 270 -1 -670 270 -1 -271 271 6 -272 271 -1 -291 271 -1 -671 271 -1 -272 272 6 -273 272 -1 -292 272 -1 -672 272 -1 -273 273 6 -274 273 -1 -293 273 -1 -673 273 -1 -274 274 6 -275 274 -1 -294 274 -1 -674 274 -1 -275 275 6 -276 275 -1 -295 275 -1 -675 275 -1 -276 276 6 -277 276 -1 -296 276 -1 -676 276 -1 -277 277 6 -278 277 -1 -297 277 -1 -677 277 -1 -278 278 6 -279 278 -1 -298 278 -1 -678 278 -1 -279 279 6 -280 279 -1 -299 279 -1 -679 279 -1 -280 280 6 -300 280 -1 -680 280 -1 -281 281 6 -282 281 -1 -301 281 -1 -681 281 -1 -282 282 6 -283 282 -1 -302 282 -1 -682 282 -1 -283 283 6 -284 283 -1 -303 283 -1 -683 283 -1 -284 284 6 -285 284 -1 -304 284 -1 -684 284 -1 -285 285 6 -286 285 -1 -305 285 -1 -685 285 -1 -286 286 6 -287 286 -1 -306 286 -1 -686 286 -1 -287 287 6 -288 287 -1 -307 287 -1 -687 287 -1 -288 288 6 -289 288 -1 -308 288 -1 -688 288 -1 -289 289 6 -290 289 -1 -309 289 -1 -689 289 -1 -290 290 6 -291 290 -1 -310 290 -1 -690 290 -1 -291 291 6 -292 291 -1 -311 291 -1 -691 291 -1 -292 292 6 -293 292 -1 -312 292 -1 -692 292 -1 -293 293 6 -294 293 -1 -313 293 -1 -693 293 -1 -294 294 6 -295 294 -1 -314 294 -1 -694 294 -1 -295 295 6 -296 295 -1 -315 295 -1 -695 295 -1 -296 296 6 -297 296 -1 -316 296 -1 -696 296 -1 -297 297 6 -298 297 -1 -317 297 -1 -697 297 -1 -298 298 6 -299 298 -1 -318 298 -1 -698 298 -1 -299 299 6 -300 299 -1 -319 299 -1 -699 299 -1 -300 300 6 -320 300 -1 -700 300 -1 -301 301 6 -302 301 -1 -321 301 -1 -701 301 -1 -302 302 6 -303 302 -1 -322 302 -1 -702 302 -1 -303 303 6 -304 303 -1 -323 303 -1 -703 303 -1 -304 304 6 -305 304 -1 -324 304 -1 -704 304 -1 -305 305 6 -306 305 -1 -325 305 -1 -705 305 -1 -306 306 6 -307 306 -1 -326 306 -1 -706 306 -1 -307 307 6 -308 307 -1 -327 307 -1 -707 307 -1 -308 308 6 -309 308 -1 -328 308 -1 -708 308 -1 -309 309 6 -310 309 -1 -329 309 -1 -709 309 -1 -310 310 6 -311 310 -1 -330 310 -1 -710 310 -1 -311 311 6 -312 311 -1 -331 311 -1 -711 311 -1 -312 312 6 -313 312 -1 -332 312 -1 -712 312 -1 -313 313 6 -314 313 -1 -333 313 -1 -713 313 -1 -314 314 6 -315 314 -1 -334 314 -1 -714 314 -1 -315 315 6 -316 315 -1 -335 315 -1 -715 315 -1 -316 316 6 -317 316 -1 -336 316 -1 -716 316 -1 -317 317 6 -318 317 -1 -337 317 -1 -717 317 -1 -318 318 6 -319 318 -1 -338 318 -1 -718 318 -1 -319 319 6 -320 319 -1 -339 319 -1 -719 319 -1 -320 320 6 -340 320 -1 -720 320 -1 -321 321 6 -322 321 -1 -341 321 -1 -721 321 -1 -322 322 6 -323 322 -1 -342 322 -1 -722 322 -1 -323 323 6 -324 323 -1 -343 323 -1 -723 323 -1 -324 324 6 -325 324 -1 -344 324 -1 -724 324 -1 -325 325 6 -326 325 -1 -345 325 -1 -725 325 -1 -326 326 6 -327 326 -1 -346 326 -1 -726 326 -1 -327 327 6 -328 327 -1 -347 327 -1 -727 327 -1 -328 328 6 -329 328 -1 -348 328 -1 -728 328 -1 -329 329 6 -330 329 -1 -349 329 -1 -729 329 -1 -330 330 6 -331 330 -1 -350 330 -1 -730 330 -1 -331 331 6 -332 331 -1 -351 331 -1 -731 331 -1 -332 332 6 -333 332 -1 -352 332 -1 -732 332 -1 -333 333 6 -334 333 -1 -353 333 -1 -733 333 -1 -334 334 6 -335 334 -1 -354 334 -1 -734 334 -1 -335 335 6 -336 335 -1 -355 335 -1 -735 335 -1 -336 336 6 -337 336 -1 -356 336 -1 -736 336 -1 -337 337 6 -338 337 -1 -357 337 -1 -737 337 -1 -338 338 6 -339 338 -1 -358 338 -1 -738 338 -1 -339 339 6 -340 339 -1 -359 339 -1 -739 339 -1 -340 340 6 -360 340 -1 -740 340 -1 -341 341 6 -342 341 -1 -361 341 -1 -741 341 -1 -342 342 6 -343 342 -1 -362 342 -1 -742 342 -1 -343 343 6 -344 343 -1 -363 343 -1 -743 343 -1 -344 344 6 -345 344 -1 -364 344 -1 -744 344 -1 -345 345 6 -346 345 -1 -365 345 -1 -745 345 -1 -346 346 6 -347 346 -1 -366 346 -1 -746 346 -1 -347 347 6 -348 347 -1 -367 347 -1 -747 347 -1 -348 348 6 -349 348 -1 -368 348 -1 -748 348 -1 -349 349 6 -350 349 -1 -369 349 -1 -749 349 -1 -350 350 6 -351 350 -1 -370 350 -1 -750 350 -1 -351 351 6 -352 351 -1 -371 351 -1 -751 351 -1 -352 352 6 -353 352 -1 -372 352 -1 -752 352 -1 -353 353 6 -354 353 -1 -373 353 -1 -753 353 -1 -354 354 6 -355 354 -1 -374 354 -1 -754 354 -1 -355 355 6 -356 355 -1 -375 355 -1 -755 355 -1 -356 356 6 -357 356 -1 -376 356 -1 -756 356 -1 -357 357 6 -358 357 -1 -377 357 -1 -757 357 -1 -358 358 6 -359 358 -1 -378 358 -1 -758 358 -1 -359 359 6 -360 359 -1 -379 359 -1 -759 359 -1 -360 360 6 -380 360 -1 -760 360 -1 -361 361 6 -362 361 -1 -381 361 -1 -761 361 -1 -362 362 6 -363 362 -1 -382 362 -1 -762 362 -1 -363 363 6 -364 363 -1 -383 363 -1 -763 363 -1 -364 364 6 -365 364 -1 -384 364 -1 -764 364 -1 -365 365 6 -366 365 -1 -385 365 -1 -765 365 -1 -366 366 6 -367 366 -1 -386 366 -1 -766 366 -1 -367 367 6 -368 367 -1 -387 367 -1 -767 367 -1 -368 368 6 -369 368 -1 -388 368 -1 -768 368 -1 -369 369 6 -370 369 -1 -389 369 -1 -769 369 -1 -370 370 6 -371 370 -1 -390 370 -1 -770 370 -1 -371 371 6 -372 371 -1 -391 371 -1 -771 371 -1 -372 372 6 -373 372 -1 -392 372 -1 -772 372 -1 -373 373 6 -374 373 -1 -393 373 -1 -773 373 -1 -374 374 6 -375 374 -1 -394 374 -1 -774 374 -1 -375 375 6 -376 375 -1 -395 375 -1 -775 375 -1 -376 376 6 -377 376 -1 -396 376 -1 -776 376 -1 -377 377 6 -378 377 -1 -397 377 -1 -777 377 -1 -378 378 6 -379 378 -1 -398 378 -1 -778 378 -1 -379 379 6 -380 379 -1 -399 379 -1 -779 379 -1 -380 380 6 -400 380 -1 -780 380 -1 -381 381 6 -382 381 -1 -781 381 -1 -382 382 6 -383 382 -1 -782 382 -1 -383 383 6 -384 383 -1 -783 383 -1 -384 384 6 -385 384 -1 -784 384 -1 -385 385 6 -386 385 -1 -785 385 -1 -386 386 6 -387 386 -1 -786 386 -1 -387 387 6 -388 387 -1 -787 387 -1 -388 388 6 -389 388 -1 -788 388 -1 -389 389 6 -390 389 -1 -789 389 -1 -390 390 6 -391 390 -1 -790 390 -1 -391 391 6 -392 391 -1 -791 391 -1 -392 392 6 -393 392 -1 -792 392 -1 -393 393 6 -394 393 -1 -793 393 -1 -394 394 6 -395 394 -1 -794 394 -1 -395 395 6 -396 395 -1 -795 395 -1 -396 396 6 -397 396 -1 -796 396 -1 -397 397 6 -398 397 -1 -797 397 -1 -398 398 6 -399 398 -1 -798 398 -1 -399 399 6 -400 399 -1 -799 399 -1 -400 400 6 -800 400 -1 -401 401 6 -402 401 -1 -421 401 -1 -801 401 -1 -402 402 6 -403 402 -1 -422 402 -1 -802 402 -1 -403 403 6 -404 403 -1 -423 403 -1 -803 403 -1 -404 404 6 -405 404 -1 -424 404 -1 -804 404 -1 -405 405 6 -406 405 -1 -425 405 -1 -805 405 -1 -406 406 6 -407 406 -1 -426 406 -1 -806 406 -1 -407 407 6 -408 407 -1 -427 407 -1 -807 407 -1 -408 408 6 -409 408 -1 -428 408 -1 -808 408 -1 -409 409 6 -410 409 -1 -429 409 -1 -809 409 -1 -410 410 6 -411 410 -1 -430 410 -1 -810 410 -1 -411 411 6 -412 411 -1 -431 411 -1 -811 411 -1 -412 412 6 -413 412 -1 -432 412 -1 -812 412 -1 -413 413 6 -414 413 -1 -433 413 -1 -813 413 -1 -414 414 6 -415 414 -1 -434 414 -1 -814 414 -1 -415 415 6 -416 415 -1 -435 415 -1 -815 415 -1 -416 416 6 -417 416 -1 -436 416 -1 -816 416 -1 -417 417 6 -418 417 -1 -437 417 -1 -817 417 -1 -418 418 6 -419 418 -1 -438 418 -1 -818 418 -1 -419 419 6 -420 419 -1 -439 419 -1 -819 419 -1 -420 420 6 -440 420 -1 -820 420 -1 -421 421 6 -422 421 -1 -441 421 -1 -821 421 -1 -422 422 6 -423 422 -1 -442 422 -1 -822 422 -1 -423 423 6 -424 423 -1 -443 423 -1 -823 423 -1 -424 424 6 -425 424 -1 -444 424 -1 -824 424 -1 -425 425 6 -426 425 -1 -445 425 -1 -825 425 -1 -426 426 6 -427 426 -1 -446 426 -1 -826 426 -1 -427 427 6 -428 427 -1 -447 427 -1 -827 427 -1 -428 428 6 -429 428 -1 -448 428 -1 -828 428 -1 -429 429 6 -430 429 -1 -449 429 -1 -829 429 -1 -430 430 6 -431 430 -1 -450 430 -1 -830 430 -1 -431 431 6 -432 431 -1 -451 431 -1 -831 431 -1 -432 432 6 -433 432 -1 -452 432 -1 -832 432 -1 -433 433 6 -434 433 -1 -453 433 -1 -833 433 -1 -434 434 6 -435 434 -1 -454 434 -1 -834 434 -1 -435 435 6 -436 435 -1 -455 435 -1 -835 435 -1 -436 436 6 -437 436 -1 -456 436 -1 -836 436 -1 -437 437 6 -438 437 -1 -457 437 -1 -837 437 -1 -438 438 6 -439 438 -1 -458 438 -1 -838 438 -1 -439 439 6 -440 439 -1 -459 439 -1 -839 439 -1 -440 440 6 -460 440 -1 -840 440 -1 -441 441 6 -442 441 -1 -461 441 -1 -841 441 -1 -442 442 6 -443 442 -1 -462 442 -1 -842 442 -1 -443 443 6 -444 443 -1 -463 443 -1 -843 443 -1 -444 444 6 -445 444 -1 -464 444 -1 -844 444 -1 -445 445 6 -446 445 -1 -465 445 -1 -845 445 -1 -446 446 6 -447 446 -1 -466 446 -1 -846 446 -1 -447 447 6 -448 447 -1 -467 447 -1 -847 447 -1 -448 448 6 -449 448 -1 -468 448 -1 -848 448 -1 -449 449 6 -450 449 -1 -469 449 -1 -849 449 -1 -450 450 6 -451 450 -1 -470 450 -1 -850 450 -1 -451 451 6 -452 451 -1 -471 451 -1 -851 451 -1 -452 452 6 -453 452 -1 -472 452 -1 -852 452 -1 -453 453 6 -454 453 -1 -473 453 -1 -853 453 -1 -454 454 6 -455 454 -1 -474 454 -1 -854 454 -1 -455 455 6 -456 455 -1 -475 455 -1 -855 455 -1 -456 456 6 -457 456 -1 -476 456 -1 -856 456 -1 -457 457 6 -458 457 -1 -477 457 -1 -857 457 -1 -458 458 6 -459 458 -1 -478 458 -1 -858 458 -1 -459 459 6 -460 459 -1 -479 459 -1 -859 459 -1 -460 460 6 -480 460 -1 -860 460 -1 -461 461 6 -462 461 -1 -481 461 -1 -861 461 -1 -462 462 6 -463 462 -1 -482 462 -1 -862 462 -1 -463 463 6 -464 463 -1 -483 463 -1 -863 463 -1 -464 464 6 -465 464 -1 -484 464 -1 -864 464 -1 -465 465 6 -466 465 -1 -485 465 -1 -865 465 -1 -466 466 6 -467 466 -1 -486 466 -1 -866 466 -1 -467 467 6 -468 467 -1 -487 467 -1 -867 467 -1 -468 468 6 -469 468 -1 -488 468 -1 -868 468 -1 -469 469 6 -470 469 -1 -489 469 -1 -869 469 -1 -470 470 6 -471 470 -1 -490 470 -1 -870 470 -1 -471 471 6 -472 471 -1 -491 471 -1 -871 471 -1 -472 472 6 -473 472 -1 -492 472 -1 -872 472 -1 -473 473 6 -474 473 -1 -493 473 -1 -873 473 -1 -474 474 6 -475 474 -1 -494 474 -1 -874 474 -1 -475 475 6 -476 475 -1 -495 475 -1 -875 475 -1 -476 476 6 -477 476 -1 -496 476 -1 -876 476 -1 -477 477 6 -478 477 -1 -497 477 -1 -877 477 -1 -478 478 6 -479 478 -1 -498 478 -1 -878 478 -1 -479 479 6 -480 479 -1 -499 479 -1 -879 479 -1 -480 480 6 -500 480 -1 -880 480 -1 -481 481 6 -482 481 -1 -501 481 -1 -881 481 -1 -482 482 6 -483 482 -1 -502 482 -1 -882 482 -1 -483 483 6 -484 483 -1 -503 483 -1 -883 483 -1 -484 484 6 -485 484 -1 -504 484 -1 -884 484 -1 -485 485 6 -486 485 -1 -505 485 -1 -885 485 -1 -486 486 6 -487 486 -1 -506 486 -1 -886 486 -1 -487 487 6 -488 487 -1 -507 487 -1 -887 487 -1 -488 488 6 -489 488 -1 -508 488 -1 -888 488 -1 -489 489 6 -490 489 -1 -509 489 -1 -889 489 -1 -490 490 6 -491 490 -1 -510 490 -1 -890 490 -1 -491 491 6 -492 491 -1 -511 491 -1 -891 491 -1 -492 492 6 -493 492 -1 -512 492 -1 -892 492 -1 -493 493 6 -494 493 -1 -513 493 -1 -893 493 -1 -494 494 6 -495 494 -1 -514 494 -1 -894 494 -1 -495 495 6 -496 495 -1 -515 495 -1 -895 495 -1 -496 496 6 -497 496 -1 -516 496 -1 -896 496 -1 -497 497 6 -498 497 -1 -517 497 -1 -897 497 -1 -498 498 6 -499 498 -1 -518 498 -1 -898 498 -1 -499 499 6 -500 499 -1 -519 499 -1 -899 499 -1 -500 500 6 -520 500 -1 -900 500 -1 -501 501 6 -502 501 -1 -521 501 -1 -901 501 -1 -502 502 6 -503 502 -1 -522 502 -1 -902 502 -1 -503 503 6 -504 503 -1 -523 503 -1 -903 503 -1 -504 504 6 -505 504 -1 -524 504 -1 -904 504 -1 -505 505 6 -506 505 -1 -525 505 -1 -905 505 -1 -506 506 6 -507 506 -1 -526 506 -1 -906 506 -1 -507 507 6 -508 507 -1 -527 507 -1 -907 507 -1 -508 508 6 -509 508 -1 -528 508 -1 -908 508 -1 -509 509 6 -510 509 -1 -529 509 -1 -909 509 -1 -510 510 6 -511 510 -1 -530 510 -1 -910 510 -1 -511 511 6 -512 511 -1 -531 511 -1 -911 511 -1 -512 512 6 -513 512 -1 -532 512 -1 -912 512 -1 -513 513 6 -514 513 -1 -533 513 -1 -913 513 -1 -514 514 6 -515 514 -1 -534 514 -1 -914 514 -1 -515 515 6 -516 515 -1 -535 515 -1 -915 515 -1 -516 516 6 -517 516 -1 -536 516 -1 -916 516 -1 -517 517 6 -518 517 -1 -537 517 -1 -917 517 -1 -518 518 6 -519 518 -1 -538 518 -1 -918 518 -1 -519 519 6 -520 519 -1 -539 519 -1 -919 519 -1 -520 520 6 -540 520 -1 -920 520 -1 -521 521 6 -522 521 -1 -541 521 -1 -921 521 -1 -522 522 6 -523 522 -1 -542 522 -1 -922 522 -1 -523 523 6 -524 523 -1 -543 523 -1 -923 523 -1 -524 524 6 -525 524 -1 -544 524 -1 -924 524 -1 -525 525 6 -526 525 -1 -545 525 -1 -925 525 -1 -526 526 6 -527 526 -1 -546 526 -1 -926 526 -1 -527 527 6 -528 527 -1 -547 527 -1 -927 527 -1 -528 528 6 -529 528 -1 -548 528 -1 -928 528 -1 -529 529 6 -530 529 -1 -549 529 -1 -929 529 -1 -530 530 6 -531 530 -1 -550 530 -1 -930 530 -1 -531 531 6 -532 531 -1 -551 531 -1 -931 531 -1 -532 532 6 -533 532 -1 -552 532 -1 -932 532 -1 -533 533 6 -534 533 -1 -553 533 -1 -933 533 -1 -534 534 6 -535 534 -1 -554 534 -1 -934 534 -1 -535 535 6 -536 535 -1 -555 535 -1 -935 535 -1 -536 536 6 -537 536 -1 -556 536 -1 -936 536 -1 -537 537 6 -538 537 -1 -557 537 -1 -937 537 -1 -538 538 6 -539 538 -1 -558 538 -1 -938 538 -1 -539 539 6 -540 539 -1 -559 539 -1 -939 539 -1 -540 540 6 -560 540 -1 -940 540 -1 -541 541 6 -542 541 -1 -561 541 -1 -941 541 -1 -542 542 6 -543 542 -1 -562 542 -1 -942 542 -1 -543 543 6 -544 543 -1 -563 543 -1 -943 543 -1 -544 544 6 -545 544 -1 -564 544 -1 -944 544 -1 -545 545 6 -546 545 -1 -565 545 -1 -945 545 -1 -546 546 6 -547 546 -1 -566 546 -1 -946 546 -1 -547 547 6 -548 547 -1 -567 547 -1 -947 547 -1 -548 548 6 -549 548 -1 -568 548 -1 -948 548 -1 -549 549 6 -550 549 -1 -569 549 -1 -949 549 -1 -550 550 6 -551 550 -1 -570 550 -1 -950 550 -1 -551 551 6 -552 551 -1 -571 551 -1 -951 551 -1 -552 552 6 -553 552 -1 -572 552 -1 -952 552 -1 -553 553 6 -554 553 -1 -573 553 -1 -953 553 -1 -554 554 6 -555 554 -1 -574 554 -1 -954 554 -1 -555 555 6 -556 555 -1 -575 555 -1 -955 555 -1 -556 556 6 -557 556 -1 -576 556 -1 -956 556 -1 -557 557 6 -558 557 -1 -577 557 -1 -957 557 -1 -558 558 6 -559 558 -1 -578 558 -1 -958 558 -1 -559 559 6 -560 559 -1 -579 559 -1 -959 559 -1 -560 560 6 -580 560 -1 -960 560 -1 -561 561 6 -562 561 -1 -581 561 -1 -961 561 -1 -562 562 6 -563 562 -1 -582 562 -1 -962 562 -1 -563 563 6 -564 563 -1 -583 563 -1 -963 563 -1 -564 564 6 -565 564 -1 -584 564 -1 -964 564 -1 -565 565 6 -566 565 -1 -585 565 -1 -965 565 -1 -566 566 6 -567 566 -1 -586 566 -1 -966 566 -1 -567 567 6 -568 567 -1 -587 567 -1 -967 567 -1 -568 568 6 -569 568 -1 -588 568 -1 -968 568 -1 -569 569 6 -570 569 -1 -589 569 -1 -969 569 -1 -570 570 6 -571 570 -1 -590 570 -1 -970 570 -1 -571 571 6 -572 571 -1 -591 571 -1 -971 571 -1 -572 572 6 -573 572 -1 -592 572 -1 -972 572 -1 -573 573 6 -574 573 -1 -593 573 -1 -973 573 -1 -574 574 6 -575 574 -1 -594 574 -1 -974 574 -1 -575 575 6 -576 575 -1 -595 575 -1 -975 575 -1 -576 576 6 -577 576 -1 -596 576 -1 -976 576 -1 -577 577 6 -578 577 -1 -597 577 -1 -977 577 -1 -578 578 6 -579 578 -1 -598 578 -1 -978 578 -1 -579 579 6 -580 579 -1 -599 579 -1 -979 579 -1 -580 580 6 -600 580 -1 -980 580 -1 -581 581 6 -582 581 -1 -601 581 -1 -981 581 -1 -582 582 6 -583 582 -1 -602 582 -1 -982 582 -1 -583 583 6 -584 583 -1 -603 583 -1 -983 583 -1 -584 584 6 -585 584 -1 -604 584 -1 -984 584 -1 -585 585 6 -586 585 -1 -605 585 -1 -985 585 -1 -586 586 6 -587 586 -1 -606 586 -1 -986 586 -1 -587 587 6 -588 587 -1 -607 587 -1 -987 587 -1 -588 588 6 -589 588 -1 -608 588 -1 -988 588 -1 -589 589 6 -590 589 -1 -609 589 -1 -989 589 -1 -590 590 6 -591 590 -1 -610 590 -1 -990 590 -1 -591 591 6 -592 591 -1 -611 591 -1 -991 591 -1 -592 592 6 -593 592 -1 -612 592 -1 -992 592 -1 -593 593 6 -594 593 -1 -613 593 -1 -993 593 -1 -594 594 6 -595 594 -1 -614 594 -1 -994 594 -1 -595 595 6 -596 595 -1 -615 595 -1 -995 595 -1 -596 596 6 -597 596 -1 -616 596 -1 -996 596 -1 -597 597 6 -598 597 -1 -617 597 -1 -997 597 -1 -598 598 6 -599 598 -1 -618 598 -1 -998 598 -1 -599 599 6 -600 599 -1 -619 599 -1 -999 599 -1 -600 600 6 -620 600 -1 -1000 600 -1 -601 601 6 -602 601 -1 -621 601 -1 -1001 601 -1 -602 602 6 -603 602 -1 -622 602 -1 -1002 602 -1 -603 603 6 -604 603 -1 -623 603 -1 -1003 603 -1 -604 604 6 -605 604 -1 -624 604 -1 -1004 604 -1 -605 605 6 -606 605 -1 -625 605 -1 -1005 605 -1 -606 606 6 -607 606 -1 -626 606 -1 -1006 606 -1 -607 607 6 -608 607 -1 -627 607 -1 -1007 607 -1 -608 608 6 -609 608 -1 -628 608 -1 -1008 608 -1 -609 609 6 -610 609 -1 -629 609 -1 -1009 609 -1 -610 610 6 -611 610 -1 -630 610 -1 -1010 610 -1 -611 611 6 -612 611 -1 -631 611 -1 -1011 611 -1 -612 612 6 -613 612 -1 -632 612 -1 -1012 612 -1 -613 613 6 -614 613 -1 -633 613 -1 -1013 613 -1 -614 614 6 -615 614 -1 -634 614 -1 -1014 614 -1 -615 615 6 -616 615 -1 -635 615 -1 -1015 615 -1 -616 616 6 -617 616 -1 -636 616 -1 -1016 616 -1 -617 617 6 -618 617 -1 -637 617 -1 -1017 617 -1 -618 618 6 -619 618 -1 -638 618 -1 -1018 618 -1 -619 619 6 -620 619 -1 -639 619 -1 -1019 619 -1 -620 620 6 -640 620 -1 -1020 620 -1 -621 621 6 -622 621 -1 -641 621 -1 -1021 621 -1 -622 622 6 -623 622 -1 -642 622 -1 -1022 622 -1 -623 623 6 -624 623 -1 -643 623 -1 -1023 623 -1 -624 624 6 -625 624 -1 -644 624 -1 -1024 624 -1 -625 625 6 -626 625 -1 -645 625 -1 -1025 625 -1 -626 626 6 -627 626 -1 -646 626 -1 -1026 626 -1 -627 627 6 -628 627 -1 -647 627 -1 -1027 627 -1 -628 628 6 -629 628 -1 -648 628 -1 -1028 628 -1 -629 629 6 -630 629 -1 -649 629 -1 -1029 629 -1 -630 630 6 -631 630 -1 -650 630 -1 -1030 630 -1 -631 631 6 -632 631 -1 -651 631 -1 -1031 631 -1 -632 632 6 -633 632 -1 -652 632 -1 -1032 632 -1 -633 633 6 -634 633 -1 -653 633 -1 -1033 633 -1 -634 634 6 -635 634 -1 -654 634 -1 -1034 634 -1 -635 635 6 -636 635 -1 -655 635 -1 -1035 635 -1 -636 636 6 -637 636 -1 -656 636 -1 -1036 636 -1 -637 637 6 -638 637 -1 -657 637 -1 -1037 637 -1 -638 638 6 -639 638 -1 -658 638 -1 -1038 638 -1 -639 639 6 -640 639 -1 -659 639 -1 -1039 639 -1 -640 640 6 -660 640 -1 -1040 640 -1 -641 641 6 -642 641 -1 -661 641 -1 -1041 641 -1 -642 642 6 -643 642 -1 -662 642 -1 -1042 642 -1 -643 643 6 -644 643 -1 -663 643 -1 -1043 643 -1 -644 644 6 -645 644 -1 -664 644 -1 -1044 644 -1 -645 645 6 -646 645 -1 -665 645 -1 -1045 645 -1 -646 646 6 -647 646 -1 -666 646 -1 -1046 646 -1 -647 647 6 -648 647 -1 -667 647 -1 -1047 647 -1 -648 648 6 -649 648 -1 -668 648 -1 -1048 648 -1 -649 649 6 -650 649 -1 -669 649 -1 -1049 649 -1 -650 650 6 -651 650 -1 -670 650 -1 -1050 650 -1 -651 651 6 -652 651 -1 -671 651 -1 -1051 651 -1 -652 652 6 -653 652 -1 -672 652 -1 -1052 652 -1 -653 653 6 -654 653 -1 -673 653 -1 -1053 653 -1 -654 654 6 -655 654 -1 -674 654 -1 -1054 654 -1 -655 655 6 -656 655 -1 -675 655 -1 -1055 655 -1 -656 656 6 -657 656 -1 -676 656 -1 -1056 656 -1 -657 657 6 -658 657 -1 -677 657 -1 -1057 657 -1 -658 658 6 -659 658 -1 -678 658 -1 -1058 658 -1 -659 659 6 -660 659 -1 -679 659 -1 -1059 659 -1 -660 660 6 -680 660 -1 -1060 660 -1 -661 661 6 -662 661 -1 -681 661 -1 -1061 661 -1 -662 662 6 -663 662 -1 -682 662 -1 -1062 662 -1 -663 663 6 -664 663 -1 -683 663 -1 -1063 663 -1 -664 664 6 -665 664 -1 -684 664 -1 -1064 664 -1 -665 665 6 -666 665 -1 -685 665 -1 -1065 665 -1 -666 666 6 -667 666 -1 -686 666 -1 -1066 666 -1 -667 667 6 -668 667 -1 -687 667 -1 -1067 667 -1 -668 668 6 -669 668 -1 -688 668 -1 -1068 668 -1 -669 669 6 -670 669 -1 -689 669 -1 -1069 669 -1 -670 670 6 -671 670 -1 -690 670 -1 -1070 670 -1 -671 671 6 -672 671 -1 -691 671 -1 -1071 671 -1 -672 672 6 -673 672 -1 -692 672 -1 -1072 672 -1 -673 673 6 -674 673 -1 -693 673 -1 -1073 673 -1 -674 674 6 -675 674 -1 -694 674 -1 -1074 674 -1 -675 675 6 -676 675 -1 -695 675 -1 -1075 675 -1 -676 676 6 -677 676 -1 -696 676 -1 -1076 676 -1 -677 677 6 -678 677 -1 -697 677 -1 -1077 677 -1 -678 678 6 -679 678 -1 -698 678 -1 -1078 678 -1 -679 679 6 -680 679 -1 -699 679 -1 -1079 679 -1 -680 680 6 -700 680 -1 -1080 680 -1 -681 681 6 -682 681 -1 -701 681 -1 -1081 681 -1 -682 682 6 -683 682 -1 -702 682 -1 -1082 682 -1 -683 683 6 -684 683 -1 -703 683 -1 -1083 683 -1 -684 684 6 -685 684 -1 -704 684 -1 -1084 684 -1 -685 685 6 -686 685 -1 -705 685 -1 -1085 685 -1 -686 686 6 -687 686 -1 -706 686 -1 -1086 686 -1 -687 687 6 -688 687 -1 -707 687 -1 -1087 687 -1 -688 688 6 -689 688 -1 -708 688 -1 -1088 688 -1 -689 689 6 -690 689 -1 -709 689 -1 -1089 689 -1 -690 690 6 -691 690 -1 -710 690 -1 -1090 690 -1 -691 691 6 -692 691 -1 -711 691 -1 -1091 691 -1 -692 692 6 -693 692 -1 -712 692 -1 -1092 692 -1 -693 693 6 -694 693 -1 -713 693 -1 -1093 693 -1 -694 694 6 -695 694 -1 -714 694 -1 -1094 694 -1 -695 695 6 -696 695 -1 -715 695 -1 -1095 695 -1 -696 696 6 -697 696 -1 -716 696 -1 -1096 696 -1 -697 697 6 -698 697 -1 -717 697 -1 -1097 697 -1 -698 698 6 -699 698 -1 -718 698 -1 -1098 698 -1 -699 699 6 -700 699 -1 -719 699 -1 -1099 699 -1 -700 700 6 -720 700 -1 -1100 700 -1 -701 701 6 -702 701 -1 -721 701 -1 -1101 701 -1 -702 702 6 -703 702 -1 -722 702 -1 -1102 702 -1 -703 703 6 -704 703 -1 -723 703 -1 -1103 703 -1 -704 704 6 -705 704 -1 -724 704 -1 -1104 704 -1 -705 705 6 -706 705 -1 -725 705 -1 -1105 705 -1 -706 706 6 -707 706 -1 -726 706 -1 -1106 706 -1 -707 707 6 -708 707 -1 -727 707 -1 -1107 707 -1 -708 708 6 -709 708 -1 -728 708 -1 -1108 708 -1 -709 709 6 -710 709 -1 -729 709 -1 -1109 709 -1 -710 710 6 -711 710 -1 -730 710 -1 -1110 710 -1 -711 711 6 -712 711 -1 -731 711 -1 -1111 711 -1 -712 712 6 -713 712 -1 -732 712 -1 -1112 712 -1 -713 713 6 -714 713 -1 -733 713 -1 -1113 713 -1 -714 714 6 -715 714 -1 -734 714 -1 -1114 714 -1 -715 715 6 -716 715 -1 -735 715 -1 -1115 715 -1 -716 716 6 -717 716 -1 -736 716 -1 -1116 716 -1 -717 717 6 -718 717 -1 -737 717 -1 -1117 717 -1 -718 718 6 -719 718 -1 -738 718 -1 -1118 718 -1 -719 719 6 -720 719 -1 -739 719 -1 -1119 719 -1 -720 720 6 -740 720 -1 -1120 720 -1 -721 721 6 -722 721 -1 -741 721 -1 -1121 721 -1 -722 722 6 -723 722 -1 -742 722 -1 -1122 722 -1 -723 723 6 -724 723 -1 -743 723 -1 -1123 723 -1 -724 724 6 -725 724 -1 -744 724 -1 -1124 724 -1 -725 725 6 -726 725 -1 -745 725 -1 -1125 725 -1 -726 726 6 -727 726 -1 -746 726 -1 -1126 726 -1 -727 727 6 -728 727 -1 -747 727 -1 -1127 727 -1 -728 728 6 -729 728 -1 -748 728 -1 -1128 728 -1 -729 729 6 -730 729 -1 -749 729 -1 -1129 729 -1 -730 730 6 -731 730 -1 -750 730 -1 -1130 730 -1 -731 731 6 -732 731 -1 -751 731 -1 -1131 731 -1 -732 732 6 -733 732 -1 -752 732 -1 -1132 732 -1 -733 733 6 -734 733 -1 -753 733 -1 -1133 733 -1 -734 734 6 -735 734 -1 -754 734 -1 -1134 734 -1 -735 735 6 -736 735 -1 -755 735 -1 -1135 735 -1 -736 736 6 -737 736 -1 -756 736 -1 -1136 736 -1 -737 737 6 -738 737 -1 -757 737 -1 -1137 737 -1 -738 738 6 -739 738 -1 -758 738 -1 -1138 738 -1 -739 739 6 -740 739 -1 -759 739 -1 -1139 739 -1 -740 740 6 -760 740 -1 -1140 740 -1 -741 741 6 -742 741 -1 -761 741 -1 -1141 741 -1 -742 742 6 -743 742 -1 -762 742 -1 -1142 742 -1 -743 743 6 -744 743 -1 -763 743 -1 -1143 743 -1 -744 744 6 -745 744 -1 -764 744 -1 -1144 744 -1 -745 745 6 -746 745 -1 -765 745 -1 -1145 745 -1 -746 746 6 -747 746 -1 -766 746 -1 -1146 746 -1 -747 747 6 -748 747 -1 -767 747 -1 -1147 747 -1 -748 748 6 -749 748 -1 -768 748 -1 -1148 748 -1 -749 749 6 -750 749 -1 -769 749 -1 -1149 749 -1 -750 750 6 -751 750 -1 -770 750 -1 -1150 750 -1 -751 751 6 -752 751 -1 -771 751 -1 -1151 751 -1 -752 752 6 -753 752 -1 -772 752 -1 -1152 752 -1 -753 753 6 -754 753 -1 -773 753 -1 -1153 753 -1 -754 754 6 -755 754 -1 -774 754 -1 -1154 754 -1 -755 755 6 -756 755 -1 -775 755 -1 -1155 755 -1 -756 756 6 -757 756 -1 -776 756 -1 -1156 756 -1 -757 757 6 -758 757 -1 -777 757 -1 -1157 757 -1 -758 758 6 -759 758 -1 -778 758 -1 -1158 758 -1 -759 759 6 -760 759 -1 -779 759 -1 -1159 759 -1 -760 760 6 -780 760 -1 -1160 760 -1 -761 761 6 -762 761 -1 -781 761 -1 -1161 761 -1 -762 762 6 -763 762 -1 -782 762 -1 -1162 762 -1 -763 763 6 -764 763 -1 -783 763 -1 -1163 763 -1 -764 764 6 -765 764 -1 -784 764 -1 -1164 764 -1 -765 765 6 -766 765 -1 -785 765 -1 -1165 765 -1 -766 766 6 -767 766 -1 -786 766 -1 -1166 766 -1 -767 767 6 -768 767 -1 -787 767 -1 -1167 767 -1 -768 768 6 -769 768 -1 -788 768 -1 -1168 768 -1 -769 769 6 -770 769 -1 -789 769 -1 -1169 769 -1 -770 770 6 -771 770 -1 -790 770 -1 -1170 770 -1 -771 771 6 -772 771 -1 -791 771 -1 -1171 771 -1 -772 772 6 -773 772 -1 -792 772 -1 -1172 772 -1 -773 773 6 -774 773 -1 -793 773 -1 -1173 773 -1 -774 774 6 -775 774 -1 -794 774 -1 -1174 774 -1 -775 775 6 -776 775 -1 -795 775 -1 -1175 775 -1 -776 776 6 -777 776 -1 -796 776 -1 -1176 776 -1 -777 777 6 -778 777 -1 -797 777 -1 -1177 777 -1 -778 778 6 -779 778 -1 -798 778 -1 -1178 778 -1 -779 779 6 -780 779 -1 -799 779 -1 -1179 779 -1 -780 780 6 -800 780 -1 -1180 780 -1 -781 781 6 -782 781 -1 -1181 781 -1 -782 782 6 -783 782 -1 -1182 782 -1 -783 783 6 -784 783 -1 -1183 783 -1 -784 784 6 -785 784 -1 -1184 784 -1 -785 785 6 -786 785 -1 -1185 785 -1 -786 786 6 -787 786 -1 -1186 786 -1 -787 787 6 -788 787 -1 -1187 787 -1 -788 788 6 -789 788 -1 -1188 788 -1 -789 789 6 -790 789 -1 -1189 789 -1 -790 790 6 -791 790 -1 -1190 790 -1 -791 791 6 -792 791 -1 -1191 791 -1 -792 792 6 -793 792 -1 -1192 792 -1 -793 793 6 -794 793 -1 -1193 793 -1 -794 794 6 -795 794 -1 -1194 794 -1 -795 795 6 -796 795 -1 -1195 795 -1 -796 796 6 -797 796 -1 -1196 796 -1 -797 797 6 -798 797 -1 -1197 797 -1 -798 798 6 -799 798 -1 -1198 798 -1 -799 799 6 -800 799 -1 -1199 799 -1 -800 800 6 -1200 800 -1 -801 801 6 -802 801 -1 -821 801 -1 -1201 801 -1 -802 802 6 -803 802 -1 -822 802 -1 -1202 802 -1 -803 803 6 -804 803 -1 -823 803 -1 -1203 803 -1 -804 804 6 -805 804 -1 -824 804 -1 -1204 804 -1 -805 805 6 -806 805 -1 -825 805 -1 -1205 805 -1 -806 806 6 -807 806 -1 -826 806 -1 -1206 806 -1 -807 807 6 -808 807 -1 -827 807 -1 -1207 807 -1 -808 808 6 -809 808 -1 -828 808 -1 -1208 808 -1 -809 809 6 -810 809 -1 -829 809 -1 -1209 809 -1 -810 810 6 -811 810 -1 -830 810 -1 -1210 810 -1 -811 811 6 -812 811 -1 -831 811 -1 -1211 811 -1 -812 812 6 -813 812 -1 -832 812 -1 -1212 812 -1 -813 813 6 -814 813 -1 -833 813 -1 -1213 813 -1 -814 814 6 -815 814 -1 -834 814 -1 -1214 814 -1 -815 815 6 -816 815 -1 -835 815 -1 -1215 815 -1 -816 816 6 -817 816 -1 -836 816 -1 -1216 816 -1 -817 817 6 -818 817 -1 -837 817 -1 -1217 817 -1 -818 818 6 -819 818 -1 -838 818 -1 -1218 818 -1 -819 819 6 -820 819 -1 -839 819 -1 -1219 819 -1 -820 820 6 -840 820 -1 -1220 820 -1 -821 821 6 -822 821 -1 -841 821 -1 -1221 821 -1 -822 822 6 -823 822 -1 -842 822 -1 -1222 822 -1 -823 823 6 -824 823 -1 -843 823 -1 -1223 823 -1 -824 824 6 -825 824 -1 -844 824 -1 -1224 824 -1 -825 825 6 -826 825 -1 -845 825 -1 -1225 825 -1 -826 826 6 -827 826 -1 -846 826 -1 -1226 826 -1 -827 827 6 -828 827 -1 -847 827 -1 -1227 827 -1 -828 828 6 -829 828 -1 -848 828 -1 -1228 828 -1 -829 829 6 -830 829 -1 -849 829 -1 -1229 829 -1 -830 830 6 -831 830 -1 -850 830 -1 -1230 830 -1 -831 831 6 -832 831 -1 -851 831 -1 -1231 831 -1 -832 832 6 -833 832 -1 -852 832 -1 -1232 832 -1 -833 833 6 -834 833 -1 -853 833 -1 -1233 833 -1 -834 834 6 -835 834 -1 -854 834 -1 -1234 834 -1 -835 835 6 -836 835 -1 -855 835 -1 -1235 835 -1 -836 836 6 -837 836 -1 -856 836 -1 -1236 836 -1 -837 837 6 -838 837 -1 -857 837 -1 -1237 837 -1 -838 838 6 -839 838 -1 -858 838 -1 -1238 838 -1 -839 839 6 -840 839 -1 -859 839 -1 -1239 839 -1 -840 840 6 -860 840 -1 -1240 840 -1 -841 841 6 -842 841 -1 -861 841 -1 -1241 841 -1 -842 842 6 -843 842 -1 -862 842 -1 -1242 842 -1 -843 843 6 -844 843 -1 -863 843 -1 -1243 843 -1 -844 844 6 -845 844 -1 -864 844 -1 -1244 844 -1 -845 845 6 -846 845 -1 -865 845 -1 -1245 845 -1 -846 846 6 -847 846 -1 -866 846 -1 -1246 846 -1 -847 847 6 -848 847 -1 -867 847 -1 -1247 847 -1 -848 848 6 -849 848 -1 -868 848 -1 -1248 848 -1 -849 849 6 -850 849 -1 -869 849 -1 -1249 849 -1 -850 850 6 -851 850 -1 -870 850 -1 -1250 850 -1 -851 851 6 -852 851 -1 -871 851 -1 -1251 851 -1 -852 852 6 -853 852 -1 -872 852 -1 -1252 852 -1 -853 853 6 -854 853 -1 -873 853 -1 -1253 853 -1 -854 854 6 -855 854 -1 -874 854 -1 -1254 854 -1 -855 855 6 -856 855 -1 -875 855 -1 -1255 855 -1 -856 856 6 -857 856 -1 -876 856 -1 -1256 856 -1 -857 857 6 -858 857 -1 -877 857 -1 -1257 857 -1 -858 858 6 -859 858 -1 -878 858 -1 -1258 858 -1 -859 859 6 -860 859 -1 -879 859 -1 -1259 859 -1 -860 860 6 -880 860 -1 -1260 860 -1 -861 861 6 -862 861 -1 -881 861 -1 -1261 861 -1 -862 862 6 -863 862 -1 -882 862 -1 -1262 862 -1 -863 863 6 -864 863 -1 -883 863 -1 -1263 863 -1 -864 864 6 -865 864 -1 -884 864 -1 -1264 864 -1 -865 865 6 -866 865 -1 -885 865 -1 -1265 865 -1 -866 866 6 -867 866 -1 -886 866 -1 -1266 866 -1 -867 867 6 -868 867 -1 -887 867 -1 -1267 867 -1 -868 868 6 -869 868 -1 -888 868 -1 -1268 868 -1 -869 869 6 -870 869 -1 -889 869 -1 -1269 869 -1 -870 870 6 -871 870 -1 -890 870 -1 -1270 870 -1 -871 871 6 -872 871 -1 -891 871 -1 -1271 871 -1 -872 872 6 -873 872 -1 -892 872 -1 -1272 872 -1 -873 873 6 -874 873 -1 -893 873 -1 -1273 873 -1 -874 874 6 -875 874 -1 -894 874 -1 -1274 874 -1 -875 875 6 -876 875 -1 -895 875 -1 -1275 875 -1 -876 876 6 -877 876 -1 -896 876 -1 -1276 876 -1 -877 877 6 -878 877 -1 -897 877 -1 -1277 877 -1 -878 878 6 -879 878 -1 -898 878 -1 -1278 878 -1 -879 879 6 -880 879 -1 -899 879 -1 -1279 879 -1 -880 880 6 -900 880 -1 -1280 880 -1 -881 881 6 -882 881 -1 -901 881 -1 -1281 881 -1 -882 882 6 -883 882 -1 -902 882 -1 -1282 882 -1 -883 883 6 -884 883 -1 -903 883 -1 -1283 883 -1 -884 884 6 -885 884 -1 -904 884 -1 -1284 884 -1 -885 885 6 -886 885 -1 -905 885 -1 -1285 885 -1 -886 886 6 -887 886 -1 -906 886 -1 -1286 886 -1 -887 887 6 -888 887 -1 -907 887 -1 -1287 887 -1 -888 888 6 -889 888 -1 -908 888 -1 -1288 888 -1 -889 889 6 -890 889 -1 -909 889 -1 -1289 889 -1 -890 890 6 -891 890 -1 -910 890 -1 -1290 890 -1 -891 891 6 -892 891 -1 -911 891 -1 -1291 891 -1 -892 892 6 -893 892 -1 -912 892 -1 -1292 892 -1 -893 893 6 -894 893 -1 -913 893 -1 -1293 893 -1 -894 894 6 -895 894 -1 -914 894 -1 -1294 894 -1 -895 895 6 -896 895 -1 -915 895 -1 -1295 895 -1 -896 896 6 -897 896 -1 -916 896 -1 -1296 896 -1 -897 897 6 -898 897 -1 -917 897 -1 -1297 897 -1 -898 898 6 -899 898 -1 -918 898 -1 -1298 898 -1 -899 899 6 -900 899 -1 -919 899 -1 -1299 899 -1 -900 900 6 -920 900 -1 -1300 900 -1 -901 901 6 -902 901 -1 -921 901 -1 -1301 901 -1 -902 902 6 -903 902 -1 -922 902 -1 -1302 902 -1 -903 903 6 -904 903 -1 -923 903 -1 -1303 903 -1 -904 904 6 -905 904 -1 -924 904 -1 -1304 904 -1 -905 905 6 -906 905 -1 -925 905 -1 -1305 905 -1 -906 906 6 -907 906 -1 -926 906 -1 -1306 906 -1 -907 907 6 -908 907 -1 -927 907 -1 -1307 907 -1 -908 908 6 -909 908 -1 -928 908 -1 -1308 908 -1 -909 909 6 -910 909 -1 -929 909 -1 -1309 909 -1 -910 910 6 -911 910 -1 -930 910 -1 -1310 910 -1 -911 911 6 -912 911 -1 -931 911 -1 -1311 911 -1 -912 912 6 -913 912 -1 -932 912 -1 -1312 912 -1 -913 913 6 -914 913 -1 -933 913 -1 -1313 913 -1 -914 914 6 -915 914 -1 -934 914 -1 -1314 914 -1 -915 915 6 -916 915 -1 -935 915 -1 -1315 915 -1 -916 916 6 -917 916 -1 -936 916 -1 -1316 916 -1 -917 917 6 -918 917 -1 -937 917 -1 -1317 917 -1 -918 918 6 -919 918 -1 -938 918 -1 -1318 918 -1 -919 919 6 -920 919 -1 -939 919 -1 -1319 919 -1 -920 920 6 -940 920 -1 -1320 920 -1 -921 921 6 -922 921 -1 -941 921 -1 -1321 921 -1 -922 922 6 -923 922 -1 -942 922 -1 -1322 922 -1 -923 923 6 -924 923 -1 -943 923 -1 -1323 923 -1 -924 924 6 -925 924 -1 -944 924 -1 -1324 924 -1 -925 925 6 -926 925 -1 -945 925 -1 -1325 925 -1 -926 926 6 -927 926 -1 -946 926 -1 -1326 926 -1 -927 927 6 -928 927 -1 -947 927 -1 -1327 927 -1 -928 928 6 -929 928 -1 -948 928 -1 -1328 928 -1 -929 929 6 -930 929 -1 -949 929 -1 -1329 929 -1 -930 930 6 -931 930 -1 -950 930 -1 -1330 930 -1 -931 931 6 -932 931 -1 -951 931 -1 -1331 931 -1 -932 932 6 -933 932 -1 -952 932 -1 -1332 932 -1 -933 933 6 -934 933 -1 -953 933 -1 -1333 933 -1 -934 934 6 -935 934 -1 -954 934 -1 -1334 934 -1 -935 935 6 -936 935 -1 -955 935 -1 -1335 935 -1 -936 936 6 -937 936 -1 -956 936 -1 -1336 936 -1 -937 937 6 -938 937 -1 -957 937 -1 -1337 937 -1 -938 938 6 -939 938 -1 -958 938 -1 -1338 938 -1 -939 939 6 -940 939 -1 -959 939 -1 -1339 939 -1 -940 940 6 -960 940 -1 -1340 940 -1 -941 941 6 -942 941 -1 -961 941 -1 -1341 941 -1 -942 942 6 -943 942 -1 -962 942 -1 -1342 942 -1 -943 943 6 -944 943 -1 -963 943 -1 -1343 943 -1 -944 944 6 -945 944 -1 -964 944 -1 -1344 944 -1 -945 945 6 -946 945 -1 -965 945 -1 -1345 945 -1 -946 946 6 -947 946 -1 -966 946 -1 -1346 946 -1 -947 947 6 -948 947 -1 -967 947 -1 -1347 947 -1 -948 948 6 -949 948 -1 -968 948 -1 -1348 948 -1 -949 949 6 -950 949 -1 -969 949 -1 -1349 949 -1 -950 950 6 -951 950 -1 -970 950 -1 -1350 950 -1 -951 951 6 -952 951 -1 -971 951 -1 -1351 951 -1 -952 952 6 -953 952 -1 -972 952 -1 -1352 952 -1 -953 953 6 -954 953 -1 -973 953 -1 -1353 953 -1 -954 954 6 -955 954 -1 -974 954 -1 -1354 954 -1 -955 955 6 -956 955 -1 -975 955 -1 -1355 955 -1 -956 956 6 -957 956 -1 -976 956 -1 -1356 956 -1 -957 957 6 -958 957 -1 -977 957 -1 -1357 957 -1 -958 958 6 -959 958 -1 -978 958 -1 -1358 958 -1 -959 959 6 -960 959 -1 -979 959 -1 -1359 959 -1 -960 960 6 -980 960 -1 -1360 960 -1 -961 961 6 -962 961 -1 -981 961 -1 -1361 961 -1 -962 962 6 -963 962 -1 -982 962 -1 -1362 962 -1 -963 963 6 -964 963 -1 -983 963 -1 -1363 963 -1 -964 964 6 -965 964 -1 -984 964 -1 -1364 964 -1 -965 965 6 -966 965 -1 -985 965 -1 -1365 965 -1 -966 966 6 -967 966 -1 -986 966 -1 -1366 966 -1 -967 967 6 -968 967 -1 -987 967 -1 -1367 967 -1 -968 968 6 -969 968 -1 -988 968 -1 -1368 968 -1 -969 969 6 -970 969 -1 -989 969 -1 -1369 969 -1 -970 970 6 -971 970 -1 -990 970 -1 -1370 970 -1 -971 971 6 -972 971 -1 -991 971 -1 -1371 971 -1 -972 972 6 -973 972 -1 -992 972 -1 -1372 972 -1 -973 973 6 -974 973 -1 -993 973 -1 -1373 973 -1 -974 974 6 -975 974 -1 -994 974 -1 -1374 974 -1 -975 975 6 -976 975 -1 -995 975 -1 -1375 975 -1 -976 976 6 -977 976 -1 -996 976 -1 -1376 976 -1 -977 977 6 -978 977 -1 -997 977 -1 -1377 977 -1 -978 978 6 -979 978 -1 -998 978 -1 -1378 978 -1 -979 979 6 -980 979 -1 -999 979 -1 -1379 979 -1 -980 980 6 -1000 980 -1 -1380 980 -1 -981 981 6 -982 981 -1 -1001 981 -1 -1381 981 -1 -982 982 6 -983 982 -1 -1002 982 -1 -1382 982 -1 -983 983 6 -984 983 -1 -1003 983 -1 -1383 983 -1 -984 984 6 -985 984 -1 -1004 984 -1 -1384 984 -1 -985 985 6 -986 985 -1 -1005 985 -1 -1385 985 -1 -986 986 6 -987 986 -1 -1006 986 -1 -1386 986 -1 -987 987 6 -988 987 -1 -1007 987 -1 -1387 987 -1 -988 988 6 -989 988 -1 -1008 988 -1 -1388 988 -1 -989 989 6 -990 989 -1 -1009 989 -1 -1389 989 -1 -990 990 6 -991 990 -1 -1010 990 -1 -1390 990 -1 -991 991 6 -992 991 -1 -1011 991 -1 -1391 991 -1 -992 992 6 -993 992 -1 -1012 992 -1 -1392 992 -1 -993 993 6 -994 993 -1 -1013 993 -1 -1393 993 -1 -994 994 6 -995 994 -1 -1014 994 -1 -1394 994 -1 -995 995 6 -996 995 -1 -1015 995 -1 -1395 995 -1 -996 996 6 -997 996 -1 -1016 996 -1 -1396 996 -1 -997 997 6 -998 997 -1 -1017 997 -1 -1397 997 -1 -998 998 6 -999 998 -1 -1018 998 -1 -1398 998 -1 -999 999 6 -1000 999 -1 -1019 999 -1 -1399 999 -1 -1000 1000 6 -1020 1000 -1 -1400 1000 -1 -1001 1001 6 -1002 1001 -1 -1021 1001 -1 -1401 1001 -1 -1002 1002 6 -1003 1002 -1 -1022 1002 -1 -1402 1002 -1 -1003 1003 6 -1004 1003 -1 -1023 1003 -1 -1403 1003 -1 -1004 1004 6 -1005 1004 -1 -1024 1004 -1 -1404 1004 -1 -1005 1005 6 -1006 1005 -1 -1025 1005 -1 -1405 1005 -1 -1006 1006 6 -1007 1006 -1 -1026 1006 -1 -1406 1006 -1 -1007 1007 6 -1008 1007 -1 -1027 1007 -1 -1407 1007 -1 -1008 1008 6 -1009 1008 -1 -1028 1008 -1 -1408 1008 -1 -1009 1009 6 -1010 1009 -1 -1029 1009 -1 -1409 1009 -1 -1010 1010 6 -1011 1010 -1 -1030 1010 -1 -1410 1010 -1 -1011 1011 6 -1012 1011 -1 -1031 1011 -1 -1411 1011 -1 -1012 1012 6 -1013 1012 -1 -1032 1012 -1 -1412 1012 -1 -1013 1013 6 -1014 1013 -1 -1033 1013 -1 -1413 1013 -1 -1014 1014 6 -1015 1014 -1 -1034 1014 -1 -1414 1014 -1 -1015 1015 6 -1016 1015 -1 -1035 1015 -1 -1415 1015 -1 -1016 1016 6 -1017 1016 -1 -1036 1016 -1 -1416 1016 -1 -1017 1017 6 -1018 1017 -1 -1037 1017 -1 -1417 1017 -1 -1018 1018 6 -1019 1018 -1 -1038 1018 -1 -1418 1018 -1 -1019 1019 6 -1020 1019 -1 -1039 1019 -1 -1419 1019 -1 -1020 1020 6 -1040 1020 -1 -1420 1020 -1 -1021 1021 6 -1022 1021 -1 -1041 1021 -1 -1421 1021 -1 -1022 1022 6 -1023 1022 -1 -1042 1022 -1 -1422 1022 -1 -1023 1023 6 -1024 1023 -1 -1043 1023 -1 -1423 1023 -1 -1024 1024 6 -1025 1024 -1 -1044 1024 -1 -1424 1024 -1 -1025 1025 6 -1026 1025 -1 -1045 1025 -1 -1425 1025 -1 -1026 1026 6 -1027 1026 -1 -1046 1026 -1 -1426 1026 -1 -1027 1027 6 -1028 1027 -1 -1047 1027 -1 -1427 1027 -1 -1028 1028 6 -1029 1028 -1 -1048 1028 -1 -1428 1028 -1 -1029 1029 6 -1030 1029 -1 -1049 1029 -1 -1429 1029 -1 -1030 1030 6 -1031 1030 -1 -1050 1030 -1 -1430 1030 -1 -1031 1031 6 -1032 1031 -1 -1051 1031 -1 -1431 1031 -1 -1032 1032 6 -1033 1032 -1 -1052 1032 -1 -1432 1032 -1 -1033 1033 6 -1034 1033 -1 -1053 1033 -1 -1433 1033 -1 -1034 1034 6 -1035 1034 -1 -1054 1034 -1 -1434 1034 -1 -1035 1035 6 -1036 1035 -1 -1055 1035 -1 -1435 1035 -1 -1036 1036 6 -1037 1036 -1 -1056 1036 -1 -1436 1036 -1 -1037 1037 6 -1038 1037 -1 -1057 1037 -1 -1437 1037 -1 -1038 1038 6 -1039 1038 -1 -1058 1038 -1 -1438 1038 -1 -1039 1039 6 -1040 1039 -1 -1059 1039 -1 -1439 1039 -1 -1040 1040 6 -1060 1040 -1 -1440 1040 -1 -1041 1041 6 -1042 1041 -1 -1061 1041 -1 -1441 1041 -1 -1042 1042 6 -1043 1042 -1 -1062 1042 -1 -1442 1042 -1 -1043 1043 6 -1044 1043 -1 -1063 1043 -1 -1443 1043 -1 -1044 1044 6 -1045 1044 -1 -1064 1044 -1 -1444 1044 -1 -1045 1045 6 -1046 1045 -1 -1065 1045 -1 -1445 1045 -1 -1046 1046 6 -1047 1046 -1 -1066 1046 -1 -1446 1046 -1 -1047 1047 6 -1048 1047 -1 -1067 1047 -1 -1447 1047 -1 -1048 1048 6 -1049 1048 -1 -1068 1048 -1 -1448 1048 -1 -1049 1049 6 -1050 1049 -1 -1069 1049 -1 -1449 1049 -1 -1050 1050 6 -1051 1050 -1 -1070 1050 -1 -1450 1050 -1 -1051 1051 6 -1052 1051 -1 -1071 1051 -1 -1451 1051 -1 -1052 1052 6 -1053 1052 -1 -1072 1052 -1 -1452 1052 -1 -1053 1053 6 -1054 1053 -1 -1073 1053 -1 -1453 1053 -1 -1054 1054 6 -1055 1054 -1 -1074 1054 -1 -1454 1054 -1 -1055 1055 6 -1056 1055 -1 -1075 1055 -1 -1455 1055 -1 -1056 1056 6 -1057 1056 -1 -1076 1056 -1 -1456 1056 -1 -1057 1057 6 -1058 1057 -1 -1077 1057 -1 -1457 1057 -1 -1058 1058 6 -1059 1058 -1 -1078 1058 -1 -1458 1058 -1 -1059 1059 6 -1060 1059 -1 -1079 1059 -1 -1459 1059 -1 -1060 1060 6 -1080 1060 -1 -1460 1060 -1 -1061 1061 6 -1062 1061 -1 -1081 1061 -1 -1461 1061 -1 -1062 1062 6 -1063 1062 -1 -1082 1062 -1 -1462 1062 -1 -1063 1063 6 -1064 1063 -1 -1083 1063 -1 -1463 1063 -1 -1064 1064 6 -1065 1064 -1 -1084 1064 -1 -1464 1064 -1 -1065 1065 6 -1066 1065 -1 -1085 1065 -1 -1465 1065 -1 -1066 1066 6 -1067 1066 -1 -1086 1066 -1 -1466 1066 -1 -1067 1067 6 -1068 1067 -1 -1087 1067 -1 -1467 1067 -1 -1068 1068 6 -1069 1068 -1 -1088 1068 -1 -1468 1068 -1 -1069 1069 6 -1070 1069 -1 -1089 1069 -1 -1469 1069 -1 -1070 1070 6 -1071 1070 -1 -1090 1070 -1 -1470 1070 -1 -1071 1071 6 -1072 1071 -1 -1091 1071 -1 -1471 1071 -1 -1072 1072 6 -1073 1072 -1 -1092 1072 -1 -1472 1072 -1 -1073 1073 6 -1074 1073 -1 -1093 1073 -1 -1473 1073 -1 -1074 1074 6 -1075 1074 -1 -1094 1074 -1 -1474 1074 -1 -1075 1075 6 -1076 1075 -1 -1095 1075 -1 -1475 1075 -1 -1076 1076 6 -1077 1076 -1 -1096 1076 -1 -1476 1076 -1 -1077 1077 6 -1078 1077 -1 -1097 1077 -1 -1477 1077 -1 -1078 1078 6 -1079 1078 -1 -1098 1078 -1 -1478 1078 -1 -1079 1079 6 -1080 1079 -1 -1099 1079 -1 -1479 1079 -1 -1080 1080 6 -1100 1080 -1 -1480 1080 -1 -1081 1081 6 -1082 1081 -1 -1101 1081 -1 -1481 1081 -1 -1082 1082 6 -1083 1082 -1 -1102 1082 -1 -1482 1082 -1 -1083 1083 6 -1084 1083 -1 -1103 1083 -1 -1483 1083 -1 -1084 1084 6 -1085 1084 -1 -1104 1084 -1 -1484 1084 -1 -1085 1085 6 -1086 1085 -1 -1105 1085 -1 -1485 1085 -1 -1086 1086 6 -1087 1086 -1 -1106 1086 -1 -1486 1086 -1 -1087 1087 6 -1088 1087 -1 -1107 1087 -1 -1487 1087 -1 -1088 1088 6 -1089 1088 -1 -1108 1088 -1 -1488 1088 -1 -1089 1089 6 -1090 1089 -1 -1109 1089 -1 -1489 1089 -1 -1090 1090 6 -1091 1090 -1 -1110 1090 -1 -1490 1090 -1 -1091 1091 6 -1092 1091 -1 -1111 1091 -1 -1491 1091 -1 -1092 1092 6 -1093 1092 -1 -1112 1092 -1 -1492 1092 -1 -1093 1093 6 -1094 1093 -1 -1113 1093 -1 -1493 1093 -1 -1094 1094 6 -1095 1094 -1 -1114 1094 -1 -1494 1094 -1 -1095 1095 6 -1096 1095 -1 -1115 1095 -1 -1495 1095 -1 -1096 1096 6 -1097 1096 -1 -1116 1096 -1 -1496 1096 -1 -1097 1097 6 -1098 1097 -1 -1117 1097 -1 -1497 1097 -1 -1098 1098 6 -1099 1098 -1 -1118 1098 -1 -1498 1098 -1 -1099 1099 6 -1100 1099 -1 -1119 1099 -1 -1499 1099 -1 -1100 1100 6 -1120 1100 -1 -1500 1100 -1 -1101 1101 6 -1102 1101 -1 -1121 1101 -1 -1501 1101 -1 -1102 1102 6 -1103 1102 -1 -1122 1102 -1 -1502 1102 -1 -1103 1103 6 -1104 1103 -1 -1123 1103 -1 -1503 1103 -1 -1104 1104 6 -1105 1104 -1 -1124 1104 -1 -1504 1104 -1 -1105 1105 6 -1106 1105 -1 -1125 1105 -1 -1505 1105 -1 -1106 1106 6 -1107 1106 -1 -1126 1106 -1 -1506 1106 -1 -1107 1107 6 -1108 1107 -1 -1127 1107 -1 -1507 1107 -1 -1108 1108 6 -1109 1108 -1 -1128 1108 -1 -1508 1108 -1 -1109 1109 6 -1110 1109 -1 -1129 1109 -1 -1509 1109 -1 -1110 1110 6 -1111 1110 -1 -1130 1110 -1 -1510 1110 -1 -1111 1111 6 -1112 1111 -1 -1131 1111 -1 -1511 1111 -1 -1112 1112 6 -1113 1112 -1 -1132 1112 -1 -1512 1112 -1 -1113 1113 6 -1114 1113 -1 -1133 1113 -1 -1513 1113 -1 -1114 1114 6 -1115 1114 -1 -1134 1114 -1 -1514 1114 -1 -1115 1115 6 -1116 1115 -1 -1135 1115 -1 -1515 1115 -1 -1116 1116 6 -1117 1116 -1 -1136 1116 -1 -1516 1116 -1 -1117 1117 6 -1118 1117 -1 -1137 1117 -1 -1517 1117 -1 -1118 1118 6 -1119 1118 -1 -1138 1118 -1 -1518 1118 -1 -1119 1119 6 -1120 1119 -1 -1139 1119 -1 -1519 1119 -1 -1120 1120 6 -1140 1120 -1 -1520 1120 -1 -1121 1121 6 -1122 1121 -1 -1141 1121 -1 -1521 1121 -1 -1122 1122 6 -1123 1122 -1 -1142 1122 -1 -1522 1122 -1 -1123 1123 6 -1124 1123 -1 -1143 1123 -1 -1523 1123 -1 -1124 1124 6 -1125 1124 -1 -1144 1124 -1 -1524 1124 -1 -1125 1125 6 -1126 1125 -1 -1145 1125 -1 -1525 1125 -1 -1126 1126 6 -1127 1126 -1 -1146 1126 -1 -1526 1126 -1 -1127 1127 6 -1128 1127 -1 -1147 1127 -1 -1527 1127 -1 -1128 1128 6 -1129 1128 -1 -1148 1128 -1 -1528 1128 -1 -1129 1129 6 -1130 1129 -1 -1149 1129 -1 -1529 1129 -1 -1130 1130 6 -1131 1130 -1 -1150 1130 -1 -1530 1130 -1 -1131 1131 6 -1132 1131 -1 -1151 1131 -1 -1531 1131 -1 -1132 1132 6 -1133 1132 -1 -1152 1132 -1 -1532 1132 -1 -1133 1133 6 -1134 1133 -1 -1153 1133 -1 -1533 1133 -1 -1134 1134 6 -1135 1134 -1 -1154 1134 -1 -1534 1134 -1 -1135 1135 6 -1136 1135 -1 -1155 1135 -1 -1535 1135 -1 -1136 1136 6 -1137 1136 -1 -1156 1136 -1 -1536 1136 -1 -1137 1137 6 -1138 1137 -1 -1157 1137 -1 -1537 1137 -1 -1138 1138 6 -1139 1138 -1 -1158 1138 -1 -1538 1138 -1 -1139 1139 6 -1140 1139 -1 -1159 1139 -1 -1539 1139 -1 -1140 1140 6 -1160 1140 -1 -1540 1140 -1 -1141 1141 6 -1142 1141 -1 -1161 1141 -1 -1541 1141 -1 -1142 1142 6 -1143 1142 -1 -1162 1142 -1 -1542 1142 -1 -1143 1143 6 -1144 1143 -1 -1163 1143 -1 -1543 1143 -1 -1144 1144 6 -1145 1144 -1 -1164 1144 -1 -1544 1144 -1 -1145 1145 6 -1146 1145 -1 -1165 1145 -1 -1545 1145 -1 -1146 1146 6 -1147 1146 -1 -1166 1146 -1 -1546 1146 -1 -1147 1147 6 -1148 1147 -1 -1167 1147 -1 -1547 1147 -1 -1148 1148 6 -1149 1148 -1 -1168 1148 -1 -1548 1148 -1 -1149 1149 6 -1150 1149 -1 -1169 1149 -1 -1549 1149 -1 -1150 1150 6 -1151 1150 -1 -1170 1150 -1 -1550 1150 -1 -1151 1151 6 -1152 1151 -1 -1171 1151 -1 -1551 1151 -1 -1152 1152 6 -1153 1152 -1 -1172 1152 -1 -1552 1152 -1 -1153 1153 6 -1154 1153 -1 -1173 1153 -1 -1553 1153 -1 -1154 1154 6 -1155 1154 -1 -1174 1154 -1 -1554 1154 -1 -1155 1155 6 -1156 1155 -1 -1175 1155 -1 -1555 1155 -1 -1156 1156 6 -1157 1156 -1 -1176 1156 -1 -1556 1156 -1 -1157 1157 6 -1158 1157 -1 -1177 1157 -1 -1557 1157 -1 -1158 1158 6 -1159 1158 -1 -1178 1158 -1 -1558 1158 -1 -1159 1159 6 -1160 1159 -1 -1179 1159 -1 -1559 1159 -1 -1160 1160 6 -1180 1160 -1 -1560 1160 -1 -1161 1161 6 -1162 1161 -1 -1181 1161 -1 -1561 1161 -1 -1162 1162 6 -1163 1162 -1 -1182 1162 -1 -1562 1162 -1 -1163 1163 6 -1164 1163 -1 -1183 1163 -1 -1563 1163 -1 -1164 1164 6 -1165 1164 -1 -1184 1164 -1 -1564 1164 -1 -1165 1165 6 -1166 1165 -1 -1185 1165 -1 -1565 1165 -1 -1166 1166 6 -1167 1166 -1 -1186 1166 -1 -1566 1166 -1 -1167 1167 6 -1168 1167 -1 -1187 1167 -1 -1567 1167 -1 -1168 1168 6 -1169 1168 -1 -1188 1168 -1 -1568 1168 -1 -1169 1169 6 -1170 1169 -1 -1189 1169 -1 -1569 1169 -1 -1170 1170 6 -1171 1170 -1 -1190 1170 -1 -1570 1170 -1 -1171 1171 6 -1172 1171 -1 -1191 1171 -1 -1571 1171 -1 -1172 1172 6 -1173 1172 -1 -1192 1172 -1 -1572 1172 -1 -1173 1173 6 -1174 1173 -1 -1193 1173 -1 -1573 1173 -1 -1174 1174 6 -1175 1174 -1 -1194 1174 -1 -1574 1174 -1 -1175 1175 6 -1176 1175 -1 -1195 1175 -1 -1575 1175 -1 -1176 1176 6 -1177 1176 -1 -1196 1176 -1 -1576 1176 -1 -1177 1177 6 -1178 1177 -1 -1197 1177 -1 -1577 1177 -1 -1178 1178 6 -1179 1178 -1 -1198 1178 -1 -1578 1178 -1 -1179 1179 6 -1180 1179 -1 -1199 1179 -1 -1579 1179 -1 -1180 1180 6 -1200 1180 -1 -1580 1180 -1 -1181 1181 6 -1182 1181 -1 -1581 1181 -1 -1182 1182 6 -1183 1182 -1 -1582 1182 -1 -1183 1183 6 -1184 1183 -1 -1583 1183 -1 -1184 1184 6 -1185 1184 -1 -1584 1184 -1 -1185 1185 6 -1186 1185 -1 -1585 1185 -1 -1186 1186 6 -1187 1186 -1 -1586 1186 -1 -1187 1187 6 -1188 1187 -1 -1587 1187 -1 -1188 1188 6 -1189 1188 -1 -1588 1188 -1 -1189 1189 6 -1190 1189 -1 -1589 1189 -1 -1190 1190 6 -1191 1190 -1 -1590 1190 -1 -1191 1191 6 -1192 1191 -1 -1591 1191 -1 -1192 1192 6 -1193 1192 -1 -1592 1192 -1 -1193 1193 6 -1194 1193 -1 -1593 1193 -1 -1194 1194 6 -1195 1194 -1 -1594 1194 -1 -1195 1195 6 -1196 1195 -1 -1595 1195 -1 -1196 1196 6 -1197 1196 -1 -1596 1196 -1 -1197 1197 6 -1198 1197 -1 -1597 1197 -1 -1198 1198 6 -1199 1198 -1 -1598 1198 -1 -1199 1199 6 -1200 1199 -1 -1599 1199 -1 -1200 1200 6 -1600 1200 -1 -1201 1201 6 -1202 1201 -1 -1221 1201 -1 -1601 1201 -1 -1202 1202 6 -1203 1202 -1 -1222 1202 -1 -1602 1202 -1 -1203 1203 6 -1204 1203 -1 -1223 1203 -1 -1603 1203 -1 -1204 1204 6 -1205 1204 -1 -1224 1204 -1 -1604 1204 -1 -1205 1205 6 -1206 1205 -1 -1225 1205 -1 -1605 1205 -1 -1206 1206 6 -1207 1206 -1 -1226 1206 -1 -1606 1206 -1 -1207 1207 6 -1208 1207 -1 -1227 1207 -1 -1607 1207 -1 -1208 1208 6 -1209 1208 -1 -1228 1208 -1 -1608 1208 -1 -1209 1209 6 -1210 1209 -1 -1229 1209 -1 -1609 1209 -1 -1210 1210 6 -1211 1210 -1 -1230 1210 -1 -1610 1210 -1 -1211 1211 6 -1212 1211 -1 -1231 1211 -1 -1611 1211 -1 -1212 1212 6 -1213 1212 -1 -1232 1212 -1 -1612 1212 -1 -1213 1213 6 -1214 1213 -1 -1233 1213 -1 -1613 1213 -1 -1214 1214 6 -1215 1214 -1 -1234 1214 -1 -1614 1214 -1 -1215 1215 6 -1216 1215 -1 -1235 1215 -1 -1615 1215 -1 -1216 1216 6 -1217 1216 -1 -1236 1216 -1 -1616 1216 -1 -1217 1217 6 -1218 1217 -1 -1237 1217 -1 -1617 1217 -1 -1218 1218 6 -1219 1218 -1 -1238 1218 -1 -1618 1218 -1 -1219 1219 6 -1220 1219 -1 -1239 1219 -1 -1619 1219 -1 -1220 1220 6 -1240 1220 -1 -1620 1220 -1 -1221 1221 6 -1222 1221 -1 -1241 1221 -1 -1621 1221 -1 -1222 1222 6 -1223 1222 -1 -1242 1222 -1 -1622 1222 -1 -1223 1223 6 -1224 1223 -1 -1243 1223 -1 -1623 1223 -1 -1224 1224 6 -1225 1224 -1 -1244 1224 -1 -1624 1224 -1 -1225 1225 6 -1226 1225 -1 -1245 1225 -1 -1625 1225 -1 -1226 1226 6 -1227 1226 -1 -1246 1226 -1 -1626 1226 -1 -1227 1227 6 -1228 1227 -1 -1247 1227 -1 -1627 1227 -1 -1228 1228 6 -1229 1228 -1 -1248 1228 -1 -1628 1228 -1 -1229 1229 6 -1230 1229 -1 -1249 1229 -1 -1629 1229 -1 -1230 1230 6 -1231 1230 -1 -1250 1230 -1 -1630 1230 -1 -1231 1231 6 -1232 1231 -1 -1251 1231 -1 -1631 1231 -1 -1232 1232 6 -1233 1232 -1 -1252 1232 -1 -1632 1232 -1 -1233 1233 6 -1234 1233 -1 -1253 1233 -1 -1633 1233 -1 -1234 1234 6 -1235 1234 -1 -1254 1234 -1 -1634 1234 -1 -1235 1235 6 -1236 1235 -1 -1255 1235 -1 -1635 1235 -1 -1236 1236 6 -1237 1236 -1 -1256 1236 -1 -1636 1236 -1 -1237 1237 6 -1238 1237 -1 -1257 1237 -1 -1637 1237 -1 -1238 1238 6 -1239 1238 -1 -1258 1238 -1 -1638 1238 -1 -1239 1239 6 -1240 1239 -1 -1259 1239 -1 -1639 1239 -1 -1240 1240 6 -1260 1240 -1 -1640 1240 -1 -1241 1241 6 -1242 1241 -1 -1261 1241 -1 -1641 1241 -1 -1242 1242 6 -1243 1242 -1 -1262 1242 -1 -1642 1242 -1 -1243 1243 6 -1244 1243 -1 -1263 1243 -1 -1643 1243 -1 -1244 1244 6 -1245 1244 -1 -1264 1244 -1 -1644 1244 -1 -1245 1245 6 -1246 1245 -1 -1265 1245 -1 -1645 1245 -1 -1246 1246 6 -1247 1246 -1 -1266 1246 -1 -1646 1246 -1 -1247 1247 6 -1248 1247 -1 -1267 1247 -1 -1647 1247 -1 -1248 1248 6 -1249 1248 -1 -1268 1248 -1 -1648 1248 -1 -1249 1249 6 -1250 1249 -1 -1269 1249 -1 -1649 1249 -1 -1250 1250 6 -1251 1250 -1 -1270 1250 -1 -1650 1250 -1 -1251 1251 6 -1252 1251 -1 -1271 1251 -1 -1651 1251 -1 -1252 1252 6 -1253 1252 -1 -1272 1252 -1 -1652 1252 -1 -1253 1253 6 -1254 1253 -1 -1273 1253 -1 -1653 1253 -1 -1254 1254 6 -1255 1254 -1 -1274 1254 -1 -1654 1254 -1 -1255 1255 6 -1256 1255 -1 -1275 1255 -1 -1655 1255 -1 -1256 1256 6 -1257 1256 -1 -1276 1256 -1 -1656 1256 -1 -1257 1257 6 -1258 1257 -1 -1277 1257 -1 -1657 1257 -1 -1258 1258 6 -1259 1258 -1 -1278 1258 -1 -1658 1258 -1 -1259 1259 6 -1260 1259 -1 -1279 1259 -1 -1659 1259 -1 -1260 1260 6 -1280 1260 -1 -1660 1260 -1 -1261 1261 6 -1262 1261 -1 -1281 1261 -1 -1661 1261 -1 -1262 1262 6 -1263 1262 -1 -1282 1262 -1 -1662 1262 -1 -1263 1263 6 -1264 1263 -1 -1283 1263 -1 -1663 1263 -1 -1264 1264 6 -1265 1264 -1 -1284 1264 -1 -1664 1264 -1 -1265 1265 6 -1266 1265 -1 -1285 1265 -1 -1665 1265 -1 -1266 1266 6 -1267 1266 -1 -1286 1266 -1 -1666 1266 -1 -1267 1267 6 -1268 1267 -1 -1287 1267 -1 -1667 1267 -1 -1268 1268 6 -1269 1268 -1 -1288 1268 -1 -1668 1268 -1 -1269 1269 6 -1270 1269 -1 -1289 1269 -1 -1669 1269 -1 -1270 1270 6 -1271 1270 -1 -1290 1270 -1 -1670 1270 -1 -1271 1271 6 -1272 1271 -1 -1291 1271 -1 -1671 1271 -1 -1272 1272 6 -1273 1272 -1 -1292 1272 -1 -1672 1272 -1 -1273 1273 6 -1274 1273 -1 -1293 1273 -1 -1673 1273 -1 -1274 1274 6 -1275 1274 -1 -1294 1274 -1 -1674 1274 -1 -1275 1275 6 -1276 1275 -1 -1295 1275 -1 -1675 1275 -1 -1276 1276 6 -1277 1276 -1 -1296 1276 -1 -1676 1276 -1 -1277 1277 6 -1278 1277 -1 -1297 1277 -1 -1677 1277 -1 -1278 1278 6 -1279 1278 -1 -1298 1278 -1 -1678 1278 -1 -1279 1279 6 -1280 1279 -1 -1299 1279 -1 -1679 1279 -1 -1280 1280 6 -1300 1280 -1 -1680 1280 -1 -1281 1281 6 -1282 1281 -1 -1301 1281 -1 -1681 1281 -1 -1282 1282 6 -1283 1282 -1 -1302 1282 -1 -1682 1282 -1 -1283 1283 6 -1284 1283 -1 -1303 1283 -1 -1683 1283 -1 -1284 1284 6 -1285 1284 -1 -1304 1284 -1 -1684 1284 -1 -1285 1285 6 -1286 1285 -1 -1305 1285 -1 -1685 1285 -1 -1286 1286 6 -1287 1286 -1 -1306 1286 -1 -1686 1286 -1 -1287 1287 6 -1288 1287 -1 -1307 1287 -1 -1687 1287 -1 -1288 1288 6 -1289 1288 -1 -1308 1288 -1 -1688 1288 -1 -1289 1289 6 -1290 1289 -1 -1309 1289 -1 -1689 1289 -1 -1290 1290 6 -1291 1290 -1 -1310 1290 -1 -1690 1290 -1 -1291 1291 6 -1292 1291 -1 -1311 1291 -1 -1691 1291 -1 -1292 1292 6 -1293 1292 -1 -1312 1292 -1 -1692 1292 -1 -1293 1293 6 -1294 1293 -1 -1313 1293 -1 -1693 1293 -1 -1294 1294 6 -1295 1294 -1 -1314 1294 -1 -1694 1294 -1 -1295 1295 6 -1296 1295 -1 -1315 1295 -1 -1695 1295 -1 -1296 1296 6 -1297 1296 -1 -1316 1296 -1 -1696 1296 -1 -1297 1297 6 -1298 1297 -1 -1317 1297 -1 -1697 1297 -1 -1298 1298 6 -1299 1298 -1 -1318 1298 -1 -1698 1298 -1 -1299 1299 6 -1300 1299 -1 -1319 1299 -1 -1699 1299 -1 -1300 1300 6 -1320 1300 -1 -1700 1300 -1 -1301 1301 6 -1302 1301 -1 -1321 1301 -1 -1701 1301 -1 -1302 1302 6 -1303 1302 -1 -1322 1302 -1 -1702 1302 -1 -1303 1303 6 -1304 1303 -1 -1323 1303 -1 -1703 1303 -1 -1304 1304 6 -1305 1304 -1 -1324 1304 -1 -1704 1304 -1 -1305 1305 6 -1306 1305 -1 -1325 1305 -1 -1705 1305 -1 -1306 1306 6 -1307 1306 -1 -1326 1306 -1 -1706 1306 -1 -1307 1307 6 -1308 1307 -1 -1327 1307 -1 -1707 1307 -1 -1308 1308 6 -1309 1308 -1 -1328 1308 -1 -1708 1308 -1 -1309 1309 6 -1310 1309 -1 -1329 1309 -1 -1709 1309 -1 -1310 1310 6 -1311 1310 -1 -1330 1310 -1 -1710 1310 -1 -1311 1311 6 -1312 1311 -1 -1331 1311 -1 -1711 1311 -1 -1312 1312 6 -1313 1312 -1 -1332 1312 -1 -1712 1312 -1 -1313 1313 6 -1314 1313 -1 -1333 1313 -1 -1713 1313 -1 -1314 1314 6 -1315 1314 -1 -1334 1314 -1 -1714 1314 -1 -1315 1315 6 -1316 1315 -1 -1335 1315 -1 -1715 1315 -1 -1316 1316 6 -1317 1316 -1 -1336 1316 -1 -1716 1316 -1 -1317 1317 6 -1318 1317 -1 -1337 1317 -1 -1717 1317 -1 -1318 1318 6 -1319 1318 -1 -1338 1318 -1 -1718 1318 -1 -1319 1319 6 -1320 1319 -1 -1339 1319 -1 -1719 1319 -1 -1320 1320 6 -1340 1320 -1 -1720 1320 -1 -1321 1321 6 -1322 1321 -1 -1341 1321 -1 -1721 1321 -1 -1322 1322 6 -1323 1322 -1 -1342 1322 -1 -1722 1322 -1 -1323 1323 6 -1324 1323 -1 -1343 1323 -1 -1723 1323 -1 -1324 1324 6 -1325 1324 -1 -1344 1324 -1 -1724 1324 -1 -1325 1325 6 -1326 1325 -1 -1345 1325 -1 -1725 1325 -1 -1326 1326 6 -1327 1326 -1 -1346 1326 -1 -1726 1326 -1 -1327 1327 6 -1328 1327 -1 -1347 1327 -1 -1727 1327 -1 -1328 1328 6 -1329 1328 -1 -1348 1328 -1 -1728 1328 -1 -1329 1329 6 -1330 1329 -1 -1349 1329 -1 -1729 1329 -1 -1330 1330 6 -1331 1330 -1 -1350 1330 -1 -1730 1330 -1 -1331 1331 6 -1332 1331 -1 -1351 1331 -1 -1731 1331 -1 -1332 1332 6 -1333 1332 -1 -1352 1332 -1 -1732 1332 -1 -1333 1333 6 -1334 1333 -1 -1353 1333 -1 -1733 1333 -1 -1334 1334 6 -1335 1334 -1 -1354 1334 -1 -1734 1334 -1 -1335 1335 6 -1336 1335 -1 -1355 1335 -1 -1735 1335 -1 -1336 1336 6 -1337 1336 -1 -1356 1336 -1 -1736 1336 -1 -1337 1337 6 -1338 1337 -1 -1357 1337 -1 -1737 1337 -1 -1338 1338 6 -1339 1338 -1 -1358 1338 -1 -1738 1338 -1 -1339 1339 6 -1340 1339 -1 -1359 1339 -1 -1739 1339 -1 -1340 1340 6 -1360 1340 -1 -1740 1340 -1 -1341 1341 6 -1342 1341 -1 -1361 1341 -1 -1741 1341 -1 -1342 1342 6 -1343 1342 -1 -1362 1342 -1 -1742 1342 -1 -1343 1343 6 -1344 1343 -1 -1363 1343 -1 -1743 1343 -1 -1344 1344 6 -1345 1344 -1 -1364 1344 -1 -1744 1344 -1 -1345 1345 6 -1346 1345 -1 -1365 1345 -1 -1745 1345 -1 -1346 1346 6 -1347 1346 -1 -1366 1346 -1 -1746 1346 -1 -1347 1347 6 -1348 1347 -1 -1367 1347 -1 -1747 1347 -1 -1348 1348 6 -1349 1348 -1 -1368 1348 -1 -1748 1348 -1 -1349 1349 6 -1350 1349 -1 -1369 1349 -1 -1749 1349 -1 -1350 1350 6 -1351 1350 -1 -1370 1350 -1 -1750 1350 -1 -1351 1351 6 -1352 1351 -1 -1371 1351 -1 -1751 1351 -1 -1352 1352 6 -1353 1352 -1 -1372 1352 -1 -1752 1352 -1 -1353 1353 6 -1354 1353 -1 -1373 1353 -1 -1753 1353 -1 -1354 1354 6 -1355 1354 -1 -1374 1354 -1 -1754 1354 -1 -1355 1355 6 -1356 1355 -1 -1375 1355 -1 -1755 1355 -1 -1356 1356 6 -1357 1356 -1 -1376 1356 -1 -1756 1356 -1 -1357 1357 6 -1358 1357 -1 -1377 1357 -1 -1757 1357 -1 -1358 1358 6 -1359 1358 -1 -1378 1358 -1 -1758 1358 -1 -1359 1359 6 -1360 1359 -1 -1379 1359 -1 -1759 1359 -1 -1360 1360 6 -1380 1360 -1 -1760 1360 -1 -1361 1361 6 -1362 1361 -1 -1381 1361 -1 -1761 1361 -1 -1362 1362 6 -1363 1362 -1 -1382 1362 -1 -1762 1362 -1 -1363 1363 6 -1364 1363 -1 -1383 1363 -1 -1763 1363 -1 -1364 1364 6 -1365 1364 -1 -1384 1364 -1 -1764 1364 -1 -1365 1365 6 -1366 1365 -1 -1385 1365 -1 -1765 1365 -1 -1366 1366 6 -1367 1366 -1 -1386 1366 -1 -1766 1366 -1 -1367 1367 6 -1368 1367 -1 -1387 1367 -1 -1767 1367 -1 -1368 1368 6 -1369 1368 -1 -1388 1368 -1 -1768 1368 -1 -1369 1369 6 -1370 1369 -1 -1389 1369 -1 -1769 1369 -1 -1370 1370 6 -1371 1370 -1 -1390 1370 -1 -1770 1370 -1 -1371 1371 6 -1372 1371 -1 -1391 1371 -1 -1771 1371 -1 -1372 1372 6 -1373 1372 -1 -1392 1372 -1 -1772 1372 -1 -1373 1373 6 -1374 1373 -1 -1393 1373 -1 -1773 1373 -1 -1374 1374 6 -1375 1374 -1 -1394 1374 -1 -1774 1374 -1 -1375 1375 6 -1376 1375 -1 -1395 1375 -1 -1775 1375 -1 -1376 1376 6 -1377 1376 -1 -1396 1376 -1 -1776 1376 -1 -1377 1377 6 -1378 1377 -1 -1397 1377 -1 -1777 1377 -1 -1378 1378 6 -1379 1378 -1 -1398 1378 -1 -1778 1378 -1 -1379 1379 6 -1380 1379 -1 -1399 1379 -1 -1779 1379 -1 -1380 1380 6 -1400 1380 -1 -1780 1380 -1 -1381 1381 6 -1382 1381 -1 -1401 1381 -1 -1781 1381 -1 -1382 1382 6 -1383 1382 -1 -1402 1382 -1 -1782 1382 -1 -1383 1383 6 -1384 1383 -1 -1403 1383 -1 -1783 1383 -1 -1384 1384 6 -1385 1384 -1 -1404 1384 -1 -1784 1384 -1 -1385 1385 6 -1386 1385 -1 -1405 1385 -1 -1785 1385 -1 -1386 1386 6 -1387 1386 -1 -1406 1386 -1 -1786 1386 -1 -1387 1387 6 -1388 1387 -1 -1407 1387 -1 -1787 1387 -1 -1388 1388 6 -1389 1388 -1 -1408 1388 -1 -1788 1388 -1 -1389 1389 6 -1390 1389 -1 -1409 1389 -1 -1789 1389 -1 -1390 1390 6 -1391 1390 -1 -1410 1390 -1 -1790 1390 -1 -1391 1391 6 -1392 1391 -1 -1411 1391 -1 -1791 1391 -1 -1392 1392 6 -1393 1392 -1 -1412 1392 -1 -1792 1392 -1 -1393 1393 6 -1394 1393 -1 -1413 1393 -1 -1793 1393 -1 -1394 1394 6 -1395 1394 -1 -1414 1394 -1 -1794 1394 -1 -1395 1395 6 -1396 1395 -1 -1415 1395 -1 -1795 1395 -1 -1396 1396 6 -1397 1396 -1 -1416 1396 -1 -1796 1396 -1 -1397 1397 6 -1398 1397 -1 -1417 1397 -1 -1797 1397 -1 -1398 1398 6 -1399 1398 -1 -1418 1398 -1 -1798 1398 -1 -1399 1399 6 -1400 1399 -1 -1419 1399 -1 -1799 1399 -1 -1400 1400 6 -1420 1400 -1 -1800 1400 -1 -1401 1401 6 -1402 1401 -1 -1421 1401 -1 -1801 1401 -1 -1402 1402 6 -1403 1402 -1 -1422 1402 -1 -1802 1402 -1 -1403 1403 6 -1404 1403 -1 -1423 1403 -1 -1803 1403 -1 -1404 1404 6 -1405 1404 -1 -1424 1404 -1 -1804 1404 -1 -1405 1405 6 -1406 1405 -1 -1425 1405 -1 -1805 1405 -1 -1406 1406 6 -1407 1406 -1 -1426 1406 -1 -1806 1406 -1 -1407 1407 6 -1408 1407 -1 -1427 1407 -1 -1807 1407 -1 -1408 1408 6 -1409 1408 -1 -1428 1408 -1 -1808 1408 -1 -1409 1409 6 -1410 1409 -1 -1429 1409 -1 -1809 1409 -1 -1410 1410 6 -1411 1410 -1 -1430 1410 -1 -1810 1410 -1 -1411 1411 6 -1412 1411 -1 -1431 1411 -1 -1811 1411 -1 -1412 1412 6 -1413 1412 -1 -1432 1412 -1 -1812 1412 -1 -1413 1413 6 -1414 1413 -1 -1433 1413 -1 -1813 1413 -1 -1414 1414 6 -1415 1414 -1 -1434 1414 -1 -1814 1414 -1 -1415 1415 6 -1416 1415 -1 -1435 1415 -1 -1815 1415 -1 -1416 1416 6 -1417 1416 -1 -1436 1416 -1 -1816 1416 -1 -1417 1417 6 -1418 1417 -1 -1437 1417 -1 -1817 1417 -1 -1418 1418 6 -1419 1418 -1 -1438 1418 -1 -1818 1418 -1 -1419 1419 6 -1420 1419 -1 -1439 1419 -1 -1819 1419 -1 -1420 1420 6 -1440 1420 -1 -1820 1420 -1 -1421 1421 6 -1422 1421 -1 -1441 1421 -1 -1821 1421 -1 -1422 1422 6 -1423 1422 -1 -1442 1422 -1 -1822 1422 -1 -1423 1423 6 -1424 1423 -1 -1443 1423 -1 -1823 1423 -1 -1424 1424 6 -1425 1424 -1 -1444 1424 -1 -1824 1424 -1 -1425 1425 6 -1426 1425 -1 -1445 1425 -1 -1825 1425 -1 -1426 1426 6 -1427 1426 -1 -1446 1426 -1 -1826 1426 -1 -1427 1427 6 -1428 1427 -1 -1447 1427 -1 -1827 1427 -1 -1428 1428 6 -1429 1428 -1 -1448 1428 -1 -1828 1428 -1 -1429 1429 6 -1430 1429 -1 -1449 1429 -1 -1829 1429 -1 -1430 1430 6 -1431 1430 -1 -1450 1430 -1 -1830 1430 -1 -1431 1431 6 -1432 1431 -1 -1451 1431 -1 -1831 1431 -1 -1432 1432 6 -1433 1432 -1 -1452 1432 -1 -1832 1432 -1 -1433 1433 6 -1434 1433 -1 -1453 1433 -1 -1833 1433 -1 -1434 1434 6 -1435 1434 -1 -1454 1434 -1 -1834 1434 -1 -1435 1435 6 -1436 1435 -1 -1455 1435 -1 -1835 1435 -1 -1436 1436 6 -1437 1436 -1 -1456 1436 -1 -1836 1436 -1 -1437 1437 6 -1438 1437 -1 -1457 1437 -1 -1837 1437 -1 -1438 1438 6 -1439 1438 -1 -1458 1438 -1 -1838 1438 -1 -1439 1439 6 -1440 1439 -1 -1459 1439 -1 -1839 1439 -1 -1440 1440 6 -1460 1440 -1 -1840 1440 -1 -1441 1441 6 -1442 1441 -1 -1461 1441 -1 -1841 1441 -1 -1442 1442 6 -1443 1442 -1 -1462 1442 -1 -1842 1442 -1 -1443 1443 6 -1444 1443 -1 -1463 1443 -1 -1843 1443 -1 -1444 1444 6 -1445 1444 -1 -1464 1444 -1 -1844 1444 -1 -1445 1445 6 -1446 1445 -1 -1465 1445 -1 -1845 1445 -1 -1446 1446 6 -1447 1446 -1 -1466 1446 -1 -1846 1446 -1 -1447 1447 6 -1448 1447 -1 -1467 1447 -1 -1847 1447 -1 -1448 1448 6 -1449 1448 -1 -1468 1448 -1 -1848 1448 -1 -1449 1449 6 -1450 1449 -1 -1469 1449 -1 -1849 1449 -1 -1450 1450 6 -1451 1450 -1 -1470 1450 -1 -1850 1450 -1 -1451 1451 6 -1452 1451 -1 -1471 1451 -1 -1851 1451 -1 -1452 1452 6 -1453 1452 -1 -1472 1452 -1 -1852 1452 -1 -1453 1453 6 -1454 1453 -1 -1473 1453 -1 -1853 1453 -1 -1454 1454 6 -1455 1454 -1 -1474 1454 -1 -1854 1454 -1 -1455 1455 6 -1456 1455 -1 -1475 1455 -1 -1855 1455 -1 -1456 1456 6 -1457 1456 -1 -1476 1456 -1 -1856 1456 -1 -1457 1457 6 -1458 1457 -1 -1477 1457 -1 -1857 1457 -1 -1458 1458 6 -1459 1458 -1 -1478 1458 -1 -1858 1458 -1 -1459 1459 6 -1460 1459 -1 -1479 1459 -1 -1859 1459 -1 -1460 1460 6 -1480 1460 -1 -1860 1460 -1 -1461 1461 6 -1462 1461 -1 -1481 1461 -1 -1861 1461 -1 -1462 1462 6 -1463 1462 -1 -1482 1462 -1 -1862 1462 -1 -1463 1463 6 -1464 1463 -1 -1483 1463 -1 -1863 1463 -1 -1464 1464 6 -1465 1464 -1 -1484 1464 -1 -1864 1464 -1 -1465 1465 6 -1466 1465 -1 -1485 1465 -1 -1865 1465 -1 -1466 1466 6 -1467 1466 -1 -1486 1466 -1 -1866 1466 -1 -1467 1467 6 -1468 1467 -1 -1487 1467 -1 -1867 1467 -1 -1468 1468 6 -1469 1468 -1 -1488 1468 -1 -1868 1468 -1 -1469 1469 6 -1470 1469 -1 -1489 1469 -1 -1869 1469 -1 -1470 1470 6 -1471 1470 -1 -1490 1470 -1 -1870 1470 -1 -1471 1471 6 -1472 1471 -1 -1491 1471 -1 -1871 1471 -1 -1472 1472 6 -1473 1472 -1 -1492 1472 -1 -1872 1472 -1 -1473 1473 6 -1474 1473 -1 -1493 1473 -1 -1873 1473 -1 -1474 1474 6 -1475 1474 -1 -1494 1474 -1 -1874 1474 -1 -1475 1475 6 -1476 1475 -1 -1495 1475 -1 -1875 1475 -1 -1476 1476 6 -1477 1476 -1 -1496 1476 -1 -1876 1476 -1 -1477 1477 6 -1478 1477 -1 -1497 1477 -1 -1877 1477 -1 -1478 1478 6 -1479 1478 -1 -1498 1478 -1 -1878 1478 -1 -1479 1479 6 -1480 1479 -1 -1499 1479 -1 -1879 1479 -1 -1480 1480 6 -1500 1480 -1 -1880 1480 -1 -1481 1481 6 -1482 1481 -1 -1501 1481 -1 -1881 1481 -1 -1482 1482 6 -1483 1482 -1 -1502 1482 -1 -1882 1482 -1 -1483 1483 6 -1484 1483 -1 -1503 1483 -1 -1883 1483 -1 -1484 1484 6 -1485 1484 -1 -1504 1484 -1 -1884 1484 -1 -1485 1485 6 -1486 1485 -1 -1505 1485 -1 -1885 1485 -1 -1486 1486 6 -1487 1486 -1 -1506 1486 -1 -1886 1486 -1 -1487 1487 6 -1488 1487 -1 -1507 1487 -1 -1887 1487 -1 -1488 1488 6 -1489 1488 -1 -1508 1488 -1 -1888 1488 -1 -1489 1489 6 -1490 1489 -1 -1509 1489 -1 -1889 1489 -1 -1490 1490 6 -1491 1490 -1 -1510 1490 -1 -1890 1490 -1 -1491 1491 6 -1492 1491 -1 -1511 1491 -1 -1891 1491 -1 -1492 1492 6 -1493 1492 -1 -1512 1492 -1 -1892 1492 -1 -1493 1493 6 -1494 1493 -1 -1513 1493 -1 -1893 1493 -1 -1494 1494 6 -1495 1494 -1 -1514 1494 -1 -1894 1494 -1 -1495 1495 6 -1496 1495 -1 -1515 1495 -1 -1895 1495 -1 -1496 1496 6 -1497 1496 -1 -1516 1496 -1 -1896 1496 -1 -1497 1497 6 -1498 1497 -1 -1517 1497 -1 -1897 1497 -1 -1498 1498 6 -1499 1498 -1 -1518 1498 -1 -1898 1498 -1 -1499 1499 6 -1500 1499 -1 -1519 1499 -1 -1899 1499 -1 -1500 1500 6 -1520 1500 -1 -1900 1500 -1 -1501 1501 6 -1502 1501 -1 -1521 1501 -1 -1901 1501 -1 -1502 1502 6 -1503 1502 -1 -1522 1502 -1 -1902 1502 -1 -1503 1503 6 -1504 1503 -1 -1523 1503 -1 -1903 1503 -1 -1504 1504 6 -1505 1504 -1 -1524 1504 -1 -1904 1504 -1 -1505 1505 6 -1506 1505 -1 -1525 1505 -1 -1905 1505 -1 -1506 1506 6 -1507 1506 -1 -1526 1506 -1 -1906 1506 -1 -1507 1507 6 -1508 1507 -1 -1527 1507 -1 -1907 1507 -1 -1508 1508 6 -1509 1508 -1 -1528 1508 -1 -1908 1508 -1 -1509 1509 6 -1510 1509 -1 -1529 1509 -1 -1909 1509 -1 -1510 1510 6 -1511 1510 -1 -1530 1510 -1 -1910 1510 -1 -1511 1511 6 -1512 1511 -1 -1531 1511 -1 -1911 1511 -1 -1512 1512 6 -1513 1512 -1 -1532 1512 -1 -1912 1512 -1 -1513 1513 6 -1514 1513 -1 -1533 1513 -1 -1913 1513 -1 -1514 1514 6 -1515 1514 -1 -1534 1514 -1 -1914 1514 -1 -1515 1515 6 -1516 1515 -1 -1535 1515 -1 -1915 1515 -1 -1516 1516 6 -1517 1516 -1 -1536 1516 -1 -1916 1516 -1 -1517 1517 6 -1518 1517 -1 -1537 1517 -1 -1917 1517 -1 -1518 1518 6 -1519 1518 -1 -1538 1518 -1 -1918 1518 -1 -1519 1519 6 -1520 1519 -1 -1539 1519 -1 -1919 1519 -1 -1520 1520 6 -1540 1520 -1 -1920 1520 -1 -1521 1521 6 -1522 1521 -1 -1541 1521 -1 -1921 1521 -1 -1522 1522 6 -1523 1522 -1 -1542 1522 -1 -1922 1522 -1 -1523 1523 6 -1524 1523 -1 -1543 1523 -1 -1923 1523 -1 -1524 1524 6 -1525 1524 -1 -1544 1524 -1 -1924 1524 -1 -1525 1525 6 -1526 1525 -1 -1545 1525 -1 -1925 1525 -1 -1526 1526 6 -1527 1526 -1 -1546 1526 -1 -1926 1526 -1 -1527 1527 6 -1528 1527 -1 -1547 1527 -1 -1927 1527 -1 -1528 1528 6 -1529 1528 -1 -1548 1528 -1 -1928 1528 -1 -1529 1529 6 -1530 1529 -1 -1549 1529 -1 -1929 1529 -1 -1530 1530 6 -1531 1530 -1 -1550 1530 -1 -1930 1530 -1 -1531 1531 6 -1532 1531 -1 -1551 1531 -1 -1931 1531 -1 -1532 1532 6 -1533 1532 -1 -1552 1532 -1 -1932 1532 -1 -1533 1533 6 -1534 1533 -1 -1553 1533 -1 -1933 1533 -1 -1534 1534 6 -1535 1534 -1 -1554 1534 -1 -1934 1534 -1 -1535 1535 6 -1536 1535 -1 -1555 1535 -1 -1935 1535 -1 -1536 1536 6 -1537 1536 -1 -1556 1536 -1 -1936 1536 -1 -1537 1537 6 -1538 1537 -1 -1557 1537 -1 -1937 1537 -1 -1538 1538 6 -1539 1538 -1 -1558 1538 -1 -1938 1538 -1 -1539 1539 6 -1540 1539 -1 -1559 1539 -1 -1939 1539 -1 -1540 1540 6 -1560 1540 -1 -1940 1540 -1 -1541 1541 6 -1542 1541 -1 -1561 1541 -1 -1941 1541 -1 -1542 1542 6 -1543 1542 -1 -1562 1542 -1 -1942 1542 -1 -1543 1543 6 -1544 1543 -1 -1563 1543 -1 -1943 1543 -1 -1544 1544 6 -1545 1544 -1 -1564 1544 -1 -1944 1544 -1 -1545 1545 6 -1546 1545 -1 -1565 1545 -1 -1945 1545 -1 -1546 1546 6 -1547 1546 -1 -1566 1546 -1 -1946 1546 -1 -1547 1547 6 -1548 1547 -1 -1567 1547 -1 -1947 1547 -1 -1548 1548 6 -1549 1548 -1 -1568 1548 -1 -1948 1548 -1 -1549 1549 6 -1550 1549 -1 -1569 1549 -1 -1949 1549 -1 -1550 1550 6 -1551 1550 -1 -1570 1550 -1 -1950 1550 -1 -1551 1551 6 -1552 1551 -1 -1571 1551 -1 -1951 1551 -1 -1552 1552 6 -1553 1552 -1 -1572 1552 -1 -1952 1552 -1 -1553 1553 6 -1554 1553 -1 -1573 1553 -1 -1953 1553 -1 -1554 1554 6 -1555 1554 -1 -1574 1554 -1 -1954 1554 -1 -1555 1555 6 -1556 1555 -1 -1575 1555 -1 -1955 1555 -1 -1556 1556 6 -1557 1556 -1 -1576 1556 -1 -1956 1556 -1 -1557 1557 6 -1558 1557 -1 -1577 1557 -1 -1957 1557 -1 -1558 1558 6 -1559 1558 -1 -1578 1558 -1 -1958 1558 -1 -1559 1559 6 -1560 1559 -1 -1579 1559 -1 -1959 1559 -1 -1560 1560 6 -1580 1560 -1 -1960 1560 -1 -1561 1561 6 -1562 1561 -1 -1581 1561 -1 -1961 1561 -1 -1562 1562 6 -1563 1562 -1 -1582 1562 -1 -1962 1562 -1 -1563 1563 6 -1564 1563 -1 -1583 1563 -1 -1963 1563 -1 -1564 1564 6 -1565 1564 -1 -1584 1564 -1 -1964 1564 -1 -1565 1565 6 -1566 1565 -1 -1585 1565 -1 -1965 1565 -1 -1566 1566 6 -1567 1566 -1 -1586 1566 -1 -1966 1566 -1 -1567 1567 6 -1568 1567 -1 -1587 1567 -1 -1967 1567 -1 -1568 1568 6 -1569 1568 -1 -1588 1568 -1 -1968 1568 -1 -1569 1569 6 -1570 1569 -1 -1589 1569 -1 -1969 1569 -1 -1570 1570 6 -1571 1570 -1 -1590 1570 -1 -1970 1570 -1 -1571 1571 6 -1572 1571 -1 -1591 1571 -1 -1971 1571 -1 -1572 1572 6 -1573 1572 -1 -1592 1572 -1 -1972 1572 -1 -1573 1573 6 -1574 1573 -1 -1593 1573 -1 -1973 1573 -1 -1574 1574 6 -1575 1574 -1 -1594 1574 -1 -1974 1574 -1 -1575 1575 6 -1576 1575 -1 -1595 1575 -1 -1975 1575 -1 -1576 1576 6 -1577 1576 -1 -1596 1576 -1 -1976 1576 -1 -1577 1577 6 -1578 1577 -1 -1597 1577 -1 -1977 1577 -1 -1578 1578 6 -1579 1578 -1 -1598 1578 -1 -1978 1578 -1 -1579 1579 6 -1580 1579 -1 -1599 1579 -1 -1979 1579 -1 -1580 1580 6 -1600 1580 -1 -1980 1580 -1 -1581 1581 6 -1582 1581 -1 -1981 1581 -1 -1582 1582 6 -1583 1582 -1 -1982 1582 -1 -1583 1583 6 -1584 1583 -1 -1983 1583 -1 -1584 1584 6 -1585 1584 -1 -1984 1584 -1 -1585 1585 6 -1586 1585 -1 -1985 1585 -1 -1586 1586 6 -1587 1586 -1 -1986 1586 -1 -1587 1587 6 -1588 1587 -1 -1987 1587 -1 -1588 1588 6 -1589 1588 -1 -1988 1588 -1 -1589 1589 6 -1590 1589 -1 -1989 1589 -1 -1590 1590 6 -1591 1590 -1 -1990 1590 -1 -1591 1591 6 -1592 1591 -1 -1991 1591 -1 -1592 1592 6 -1593 1592 -1 -1992 1592 -1 -1593 1593 6 -1594 1593 -1 -1993 1593 -1 -1594 1594 6 -1595 1594 -1 -1994 1594 -1 -1595 1595 6 -1596 1595 -1 -1995 1595 -1 -1596 1596 6 -1597 1596 -1 -1996 1596 -1 -1597 1597 6 -1598 1597 -1 -1997 1597 -1 -1598 1598 6 -1599 1598 -1 -1998 1598 -1 -1599 1599 6 -1600 1599 -1 -1999 1599 -1 -1600 1600 6 -2000 1600 -1 -1601 1601 6 -1602 1601 -1 -1621 1601 -1 -2001 1601 -1 -1602 1602 6 -1603 1602 -1 -1622 1602 -1 -2002 1602 -1 -1603 1603 6 -1604 1603 -1 -1623 1603 -1 -2003 1603 -1 -1604 1604 6 -1605 1604 -1 -1624 1604 -1 -2004 1604 -1 -1605 1605 6 -1606 1605 -1 -1625 1605 -1 -2005 1605 -1 -1606 1606 6 -1607 1606 -1 -1626 1606 -1 -2006 1606 -1 -1607 1607 6 -1608 1607 -1 -1627 1607 -1 -2007 1607 -1 -1608 1608 6 -1609 1608 -1 -1628 1608 -1 -2008 1608 -1 -1609 1609 6 -1610 1609 -1 -1629 1609 -1 -2009 1609 -1 -1610 1610 6 -1611 1610 -1 -1630 1610 -1 -2010 1610 -1 -1611 1611 6 -1612 1611 -1 -1631 1611 -1 -2011 1611 -1 -1612 1612 6 -1613 1612 -1 -1632 1612 -1 -2012 1612 -1 -1613 1613 6 -1614 1613 -1 -1633 1613 -1 -2013 1613 -1 -1614 1614 6 -1615 1614 -1 -1634 1614 -1 -2014 1614 -1 -1615 1615 6 -1616 1615 -1 -1635 1615 -1 -2015 1615 -1 -1616 1616 6 -1617 1616 -1 -1636 1616 -1 -2016 1616 -1 -1617 1617 6 -1618 1617 -1 -1637 1617 -1 -2017 1617 -1 -1618 1618 6 -1619 1618 -1 -1638 1618 -1 -2018 1618 -1 -1619 1619 6 -1620 1619 -1 -1639 1619 -1 -2019 1619 -1 -1620 1620 6 -1640 1620 -1 -2020 1620 -1 -1621 1621 6 -1622 1621 -1 -1641 1621 -1 -2021 1621 -1 -1622 1622 6 -1623 1622 -1 -1642 1622 -1 -2022 1622 -1 -1623 1623 6 -1624 1623 -1 -1643 1623 -1 -2023 1623 -1 -1624 1624 6 -1625 1624 -1 -1644 1624 -1 -2024 1624 -1 -1625 1625 6 -1626 1625 -1 -1645 1625 -1 -2025 1625 -1 -1626 1626 6 -1627 1626 -1 -1646 1626 -1 -2026 1626 -1 -1627 1627 6 -1628 1627 -1 -1647 1627 -1 -2027 1627 -1 -1628 1628 6 -1629 1628 -1 -1648 1628 -1 -2028 1628 -1 -1629 1629 6 -1630 1629 -1 -1649 1629 -1 -2029 1629 -1 -1630 1630 6 -1631 1630 -1 -1650 1630 -1 -2030 1630 -1 -1631 1631 6 -1632 1631 -1 -1651 1631 -1 -2031 1631 -1 -1632 1632 6 -1633 1632 -1 -1652 1632 -1 -2032 1632 -1 -1633 1633 6 -1634 1633 -1 -1653 1633 -1 -2033 1633 -1 -1634 1634 6 -1635 1634 -1 -1654 1634 -1 -2034 1634 -1 -1635 1635 6 -1636 1635 -1 -1655 1635 -1 -2035 1635 -1 -1636 1636 6 -1637 1636 -1 -1656 1636 -1 -2036 1636 -1 -1637 1637 6 -1638 1637 -1 -1657 1637 -1 -2037 1637 -1 -1638 1638 6 -1639 1638 -1 -1658 1638 -1 -2038 1638 -1 -1639 1639 6 -1640 1639 -1 -1659 1639 -1 -2039 1639 -1 -1640 1640 6 -1660 1640 -1 -2040 1640 -1 -1641 1641 6 -1642 1641 -1 -1661 1641 -1 -2041 1641 -1 -1642 1642 6 -1643 1642 -1 -1662 1642 -1 -2042 1642 -1 -1643 1643 6 -1644 1643 -1 -1663 1643 -1 -2043 1643 -1 -1644 1644 6 -1645 1644 -1 -1664 1644 -1 -2044 1644 -1 -1645 1645 6 -1646 1645 -1 -1665 1645 -1 -2045 1645 -1 -1646 1646 6 -1647 1646 -1 -1666 1646 -1 -2046 1646 -1 -1647 1647 6 -1648 1647 -1 -1667 1647 -1 -2047 1647 -1 -1648 1648 6 -1649 1648 -1 -1668 1648 -1 -2048 1648 -1 -1649 1649 6 -1650 1649 -1 -1669 1649 -1 -2049 1649 -1 -1650 1650 6 -1651 1650 -1 -1670 1650 -1 -2050 1650 -1 -1651 1651 6 -1652 1651 -1 -1671 1651 -1 -2051 1651 -1 -1652 1652 6 -1653 1652 -1 -1672 1652 -1 -2052 1652 -1 -1653 1653 6 -1654 1653 -1 -1673 1653 -1 -2053 1653 -1 -1654 1654 6 -1655 1654 -1 -1674 1654 -1 -2054 1654 -1 -1655 1655 6 -1656 1655 -1 -1675 1655 -1 -2055 1655 -1 -1656 1656 6 -1657 1656 -1 -1676 1656 -1 -2056 1656 -1 -1657 1657 6 -1658 1657 -1 -1677 1657 -1 -2057 1657 -1 -1658 1658 6 -1659 1658 -1 -1678 1658 -1 -2058 1658 -1 -1659 1659 6 -1660 1659 -1 -1679 1659 -1 -2059 1659 -1 -1660 1660 6 -1680 1660 -1 -2060 1660 -1 -1661 1661 6 -1662 1661 -1 -1681 1661 -1 -2061 1661 -1 -1662 1662 6 -1663 1662 -1 -1682 1662 -1 -2062 1662 -1 -1663 1663 6 -1664 1663 -1 -1683 1663 -1 -2063 1663 -1 -1664 1664 6 -1665 1664 -1 -1684 1664 -1 -2064 1664 -1 -1665 1665 6 -1666 1665 -1 -1685 1665 -1 -2065 1665 -1 -1666 1666 6 -1667 1666 -1 -1686 1666 -1 -2066 1666 -1 -1667 1667 6 -1668 1667 -1 -1687 1667 -1 -2067 1667 -1 -1668 1668 6 -1669 1668 -1 -1688 1668 -1 -2068 1668 -1 -1669 1669 6 -1670 1669 -1 -1689 1669 -1 -2069 1669 -1 -1670 1670 6 -1671 1670 -1 -1690 1670 -1 -2070 1670 -1 -1671 1671 6 -1672 1671 -1 -1691 1671 -1 -2071 1671 -1 -1672 1672 6 -1673 1672 -1 -1692 1672 -1 -2072 1672 -1 -1673 1673 6 -1674 1673 -1 -1693 1673 -1 -2073 1673 -1 -1674 1674 6 -1675 1674 -1 -1694 1674 -1 -2074 1674 -1 -1675 1675 6 -1676 1675 -1 -1695 1675 -1 -2075 1675 -1 -1676 1676 6 -1677 1676 -1 -1696 1676 -1 -2076 1676 -1 -1677 1677 6 -1678 1677 -1 -1697 1677 -1 -2077 1677 -1 -1678 1678 6 -1679 1678 -1 -1698 1678 -1 -2078 1678 -1 -1679 1679 6 -1680 1679 -1 -1699 1679 -1 -2079 1679 -1 -1680 1680 6 -1700 1680 -1 -2080 1680 -1 -1681 1681 6 -1682 1681 -1 -1701 1681 -1 -2081 1681 -1 -1682 1682 6 -1683 1682 -1 -1702 1682 -1 -2082 1682 -1 -1683 1683 6 -1684 1683 -1 -1703 1683 -1 -2083 1683 -1 -1684 1684 6 -1685 1684 -1 -1704 1684 -1 -2084 1684 -1 -1685 1685 6 -1686 1685 -1 -1705 1685 -1 -2085 1685 -1 -1686 1686 6 -1687 1686 -1 -1706 1686 -1 -2086 1686 -1 -1687 1687 6 -1688 1687 -1 -1707 1687 -1 -2087 1687 -1 -1688 1688 6 -1689 1688 -1 -1708 1688 -1 -2088 1688 -1 -1689 1689 6 -1690 1689 -1 -1709 1689 -1 -2089 1689 -1 -1690 1690 6 -1691 1690 -1 -1710 1690 -1 -2090 1690 -1 -1691 1691 6 -1692 1691 -1 -1711 1691 -1 -2091 1691 -1 -1692 1692 6 -1693 1692 -1 -1712 1692 -1 -2092 1692 -1 -1693 1693 6 -1694 1693 -1 -1713 1693 -1 -2093 1693 -1 -1694 1694 6 -1695 1694 -1 -1714 1694 -1 -2094 1694 -1 -1695 1695 6 -1696 1695 -1 -1715 1695 -1 -2095 1695 -1 -1696 1696 6 -1697 1696 -1 -1716 1696 -1 -2096 1696 -1 -1697 1697 6 -1698 1697 -1 -1717 1697 -1 -2097 1697 -1 -1698 1698 6 -1699 1698 -1 -1718 1698 -1 -2098 1698 -1 -1699 1699 6 -1700 1699 -1 -1719 1699 -1 -2099 1699 -1 -1700 1700 6 -1720 1700 -1 -2100 1700 -1 -1701 1701 6 -1702 1701 -1 -1721 1701 -1 -2101 1701 -1 -1702 1702 6 -1703 1702 -1 -1722 1702 -1 -2102 1702 -1 -1703 1703 6 -1704 1703 -1 -1723 1703 -1 -2103 1703 -1 -1704 1704 6 -1705 1704 -1 -1724 1704 -1 -2104 1704 -1 -1705 1705 6 -1706 1705 -1 -1725 1705 -1 -2105 1705 -1 -1706 1706 6 -1707 1706 -1 -1726 1706 -1 -2106 1706 -1 -1707 1707 6 -1708 1707 -1 -1727 1707 -1 -2107 1707 -1 -1708 1708 6 -1709 1708 -1 -1728 1708 -1 -2108 1708 -1 -1709 1709 6 -1710 1709 -1 -1729 1709 -1 -2109 1709 -1 -1710 1710 6 -1711 1710 -1 -1730 1710 -1 -2110 1710 -1 -1711 1711 6 -1712 1711 -1 -1731 1711 -1 -2111 1711 -1 -1712 1712 6 -1713 1712 -1 -1732 1712 -1 -2112 1712 -1 -1713 1713 6 -1714 1713 -1 -1733 1713 -1 -2113 1713 -1 -1714 1714 6 -1715 1714 -1 -1734 1714 -1 -2114 1714 -1 -1715 1715 6 -1716 1715 -1 -1735 1715 -1 -2115 1715 -1 -1716 1716 6 -1717 1716 -1 -1736 1716 -1 -2116 1716 -1 -1717 1717 6 -1718 1717 -1 -1737 1717 -1 -2117 1717 -1 -1718 1718 6 -1719 1718 -1 -1738 1718 -1 -2118 1718 -1 -1719 1719 6 -1720 1719 -1 -1739 1719 -1 -2119 1719 -1 -1720 1720 6 -1740 1720 -1 -2120 1720 -1 -1721 1721 6 -1722 1721 -1 -1741 1721 -1 -2121 1721 -1 -1722 1722 6 -1723 1722 -1 -1742 1722 -1 -2122 1722 -1 -1723 1723 6 -1724 1723 -1 -1743 1723 -1 -2123 1723 -1 -1724 1724 6 -1725 1724 -1 -1744 1724 -1 -2124 1724 -1 -1725 1725 6 -1726 1725 -1 -1745 1725 -1 -2125 1725 -1 -1726 1726 6 -1727 1726 -1 -1746 1726 -1 -2126 1726 -1 -1727 1727 6 -1728 1727 -1 -1747 1727 -1 -2127 1727 -1 -1728 1728 6 -1729 1728 -1 -1748 1728 -1 -2128 1728 -1 -1729 1729 6 -1730 1729 -1 -1749 1729 -1 -2129 1729 -1 -1730 1730 6 -1731 1730 -1 -1750 1730 -1 -2130 1730 -1 -1731 1731 6 -1732 1731 -1 -1751 1731 -1 -2131 1731 -1 -1732 1732 6 -1733 1732 -1 -1752 1732 -1 -2132 1732 -1 -1733 1733 6 -1734 1733 -1 -1753 1733 -1 -2133 1733 -1 -1734 1734 6 -1735 1734 -1 -1754 1734 -1 -2134 1734 -1 -1735 1735 6 -1736 1735 -1 -1755 1735 -1 -2135 1735 -1 -1736 1736 6 -1737 1736 -1 -1756 1736 -1 -2136 1736 -1 -1737 1737 6 -1738 1737 -1 -1757 1737 -1 -2137 1737 -1 -1738 1738 6 -1739 1738 -1 -1758 1738 -1 -2138 1738 -1 -1739 1739 6 -1740 1739 -1 -1759 1739 -1 -2139 1739 -1 -1740 1740 6 -1760 1740 -1 -2140 1740 -1 -1741 1741 6 -1742 1741 -1 -1761 1741 -1 -2141 1741 -1 -1742 1742 6 -1743 1742 -1 -1762 1742 -1 -2142 1742 -1 -1743 1743 6 -1744 1743 -1 -1763 1743 -1 -2143 1743 -1 -1744 1744 6 -1745 1744 -1 -1764 1744 -1 -2144 1744 -1 -1745 1745 6 -1746 1745 -1 -1765 1745 -1 -2145 1745 -1 -1746 1746 6 -1747 1746 -1 -1766 1746 -1 -2146 1746 -1 -1747 1747 6 -1748 1747 -1 -1767 1747 -1 -2147 1747 -1 -1748 1748 6 -1749 1748 -1 -1768 1748 -1 -2148 1748 -1 -1749 1749 6 -1750 1749 -1 -1769 1749 -1 -2149 1749 -1 -1750 1750 6 -1751 1750 -1 -1770 1750 -1 -2150 1750 -1 -1751 1751 6 -1752 1751 -1 -1771 1751 -1 -2151 1751 -1 -1752 1752 6 -1753 1752 -1 -1772 1752 -1 -2152 1752 -1 -1753 1753 6 -1754 1753 -1 -1773 1753 -1 -2153 1753 -1 -1754 1754 6 -1755 1754 -1 -1774 1754 -1 -2154 1754 -1 -1755 1755 6 -1756 1755 -1 -1775 1755 -1 -2155 1755 -1 -1756 1756 6 -1757 1756 -1 -1776 1756 -1 -2156 1756 -1 -1757 1757 6 -1758 1757 -1 -1777 1757 -1 -2157 1757 -1 -1758 1758 6 -1759 1758 -1 -1778 1758 -1 -2158 1758 -1 -1759 1759 6 -1760 1759 -1 -1779 1759 -1 -2159 1759 -1 -1760 1760 6 -1780 1760 -1 -2160 1760 -1 -1761 1761 6 -1762 1761 -1 -1781 1761 -1 -2161 1761 -1 -1762 1762 6 -1763 1762 -1 -1782 1762 -1 -2162 1762 -1 -1763 1763 6 -1764 1763 -1 -1783 1763 -1 -2163 1763 -1 -1764 1764 6 -1765 1764 -1 -1784 1764 -1 -2164 1764 -1 -1765 1765 6 -1766 1765 -1 -1785 1765 -1 -2165 1765 -1 -1766 1766 6 -1767 1766 -1 -1786 1766 -1 -2166 1766 -1 -1767 1767 6 -1768 1767 -1 -1787 1767 -1 -2167 1767 -1 -1768 1768 6 -1769 1768 -1 -1788 1768 -1 -2168 1768 -1 -1769 1769 6 -1770 1769 -1 -1789 1769 -1 -2169 1769 -1 -1770 1770 6 -1771 1770 -1 -1790 1770 -1 -2170 1770 -1 -1771 1771 6 -1772 1771 -1 -1791 1771 -1 -2171 1771 -1 -1772 1772 6 -1773 1772 -1 -1792 1772 -1 -2172 1772 -1 -1773 1773 6 -1774 1773 -1 -1793 1773 -1 -2173 1773 -1 -1774 1774 6 -1775 1774 -1 -1794 1774 -1 -2174 1774 -1 -1775 1775 6 -1776 1775 -1 -1795 1775 -1 -2175 1775 -1 -1776 1776 6 -1777 1776 -1 -1796 1776 -1 -2176 1776 -1 -1777 1777 6 -1778 1777 -1 -1797 1777 -1 -2177 1777 -1 -1778 1778 6 -1779 1778 -1 -1798 1778 -1 -2178 1778 -1 -1779 1779 6 -1780 1779 -1 -1799 1779 -1 -2179 1779 -1 -1780 1780 6 -1800 1780 -1 -2180 1780 -1 -1781 1781 6 -1782 1781 -1 -1801 1781 -1 -2181 1781 -1 -1782 1782 6 -1783 1782 -1 -1802 1782 -1 -2182 1782 -1 -1783 1783 6 -1784 1783 -1 -1803 1783 -1 -2183 1783 -1 -1784 1784 6 -1785 1784 -1 -1804 1784 -1 -2184 1784 -1 -1785 1785 6 -1786 1785 -1 -1805 1785 -1 -2185 1785 -1 -1786 1786 6 -1787 1786 -1 -1806 1786 -1 -2186 1786 -1 -1787 1787 6 -1788 1787 -1 -1807 1787 -1 -2187 1787 -1 -1788 1788 6 -1789 1788 -1 -1808 1788 -1 -2188 1788 -1 -1789 1789 6 -1790 1789 -1 -1809 1789 -1 -2189 1789 -1 -1790 1790 6 -1791 1790 -1 -1810 1790 -1 -2190 1790 -1 -1791 1791 6 -1792 1791 -1 -1811 1791 -1 -2191 1791 -1 -1792 1792 6 -1793 1792 -1 -1812 1792 -1 -2192 1792 -1 -1793 1793 6 -1794 1793 -1 -1813 1793 -1 -2193 1793 -1 -1794 1794 6 -1795 1794 -1 -1814 1794 -1 -2194 1794 -1 -1795 1795 6 -1796 1795 -1 -1815 1795 -1 -2195 1795 -1 -1796 1796 6 -1797 1796 -1 -1816 1796 -1 -2196 1796 -1 -1797 1797 6 -1798 1797 -1 -1817 1797 -1 -2197 1797 -1 -1798 1798 6 -1799 1798 -1 -1818 1798 -1 -2198 1798 -1 -1799 1799 6 -1800 1799 -1 -1819 1799 -1 -2199 1799 -1 -1800 1800 6 -1820 1800 -1 -2200 1800 -1 -1801 1801 6 -1802 1801 -1 -1821 1801 -1 -2201 1801 -1 -1802 1802 6 -1803 1802 -1 -1822 1802 -1 -2202 1802 -1 -1803 1803 6 -1804 1803 -1 -1823 1803 -1 -2203 1803 -1 -1804 1804 6 -1805 1804 -1 -1824 1804 -1 -2204 1804 -1 -1805 1805 6 -1806 1805 -1 -1825 1805 -1 -2205 1805 -1 -1806 1806 6 -1807 1806 -1 -1826 1806 -1 -2206 1806 -1 -1807 1807 6 -1808 1807 -1 -1827 1807 -1 -2207 1807 -1 -1808 1808 6 -1809 1808 -1 -1828 1808 -1 -2208 1808 -1 -1809 1809 6 -1810 1809 -1 -1829 1809 -1 -2209 1809 -1 -1810 1810 6 -1811 1810 -1 -1830 1810 -1 -2210 1810 -1 -1811 1811 6 -1812 1811 -1 -1831 1811 -1 -2211 1811 -1 -1812 1812 6 -1813 1812 -1 -1832 1812 -1 -2212 1812 -1 -1813 1813 6 -1814 1813 -1 -1833 1813 -1 -2213 1813 -1 -1814 1814 6 -1815 1814 -1 -1834 1814 -1 -2214 1814 -1 -1815 1815 6 -1816 1815 -1 -1835 1815 -1 -2215 1815 -1 -1816 1816 6 -1817 1816 -1 -1836 1816 -1 -2216 1816 -1 -1817 1817 6 -1818 1817 -1 -1837 1817 -1 -2217 1817 -1 -1818 1818 6 -1819 1818 -1 -1838 1818 -1 -2218 1818 -1 -1819 1819 6 -1820 1819 -1 -1839 1819 -1 -2219 1819 -1 -1820 1820 6 -1840 1820 -1 -2220 1820 -1 -1821 1821 6 -1822 1821 -1 -1841 1821 -1 -2221 1821 -1 -1822 1822 6 -1823 1822 -1 -1842 1822 -1 -2222 1822 -1 -1823 1823 6 -1824 1823 -1 -1843 1823 -1 -2223 1823 -1 -1824 1824 6 -1825 1824 -1 -1844 1824 -1 -2224 1824 -1 -1825 1825 6 -1826 1825 -1 -1845 1825 -1 -2225 1825 -1 -1826 1826 6 -1827 1826 -1 -1846 1826 -1 -2226 1826 -1 -1827 1827 6 -1828 1827 -1 -1847 1827 -1 -2227 1827 -1 -1828 1828 6 -1829 1828 -1 -1848 1828 -1 -2228 1828 -1 -1829 1829 6 -1830 1829 -1 -1849 1829 -1 -2229 1829 -1 -1830 1830 6 -1831 1830 -1 -1850 1830 -1 -2230 1830 -1 -1831 1831 6 -1832 1831 -1 -1851 1831 -1 -2231 1831 -1 -1832 1832 6 -1833 1832 -1 -1852 1832 -1 -2232 1832 -1 -1833 1833 6 -1834 1833 -1 -1853 1833 -1 -2233 1833 -1 -1834 1834 6 -1835 1834 -1 -1854 1834 -1 -2234 1834 -1 -1835 1835 6 -1836 1835 -1 -1855 1835 -1 -2235 1835 -1 -1836 1836 6 -1837 1836 -1 -1856 1836 -1 -2236 1836 -1 -1837 1837 6 -1838 1837 -1 -1857 1837 -1 -2237 1837 -1 -1838 1838 6 -1839 1838 -1 -1858 1838 -1 -2238 1838 -1 -1839 1839 6 -1840 1839 -1 -1859 1839 -1 -2239 1839 -1 -1840 1840 6 -1860 1840 -1 -2240 1840 -1 -1841 1841 6 -1842 1841 -1 -1861 1841 -1 -2241 1841 -1 -1842 1842 6 -1843 1842 -1 -1862 1842 -1 -2242 1842 -1 -1843 1843 6 -1844 1843 -1 -1863 1843 -1 -2243 1843 -1 -1844 1844 6 -1845 1844 -1 -1864 1844 -1 -2244 1844 -1 -1845 1845 6 -1846 1845 -1 -1865 1845 -1 -2245 1845 -1 -1846 1846 6 -1847 1846 -1 -1866 1846 -1 -2246 1846 -1 -1847 1847 6 -1848 1847 -1 -1867 1847 -1 -2247 1847 -1 -1848 1848 6 -1849 1848 -1 -1868 1848 -1 -2248 1848 -1 -1849 1849 6 -1850 1849 -1 -1869 1849 -1 -2249 1849 -1 -1850 1850 6 -1851 1850 -1 -1870 1850 -1 -2250 1850 -1 -1851 1851 6 -1852 1851 -1 -1871 1851 -1 -2251 1851 -1 -1852 1852 6 -1853 1852 -1 -1872 1852 -1 -2252 1852 -1 -1853 1853 6 -1854 1853 -1 -1873 1853 -1 -2253 1853 -1 -1854 1854 6 -1855 1854 -1 -1874 1854 -1 -2254 1854 -1 -1855 1855 6 -1856 1855 -1 -1875 1855 -1 -2255 1855 -1 -1856 1856 6 -1857 1856 -1 -1876 1856 -1 -2256 1856 -1 -1857 1857 6 -1858 1857 -1 -1877 1857 -1 -2257 1857 -1 -1858 1858 6 -1859 1858 -1 -1878 1858 -1 -2258 1858 -1 -1859 1859 6 -1860 1859 -1 -1879 1859 -1 -2259 1859 -1 -1860 1860 6 -1880 1860 -1 -2260 1860 -1 -1861 1861 6 -1862 1861 -1 -1881 1861 -1 -2261 1861 -1 -1862 1862 6 -1863 1862 -1 -1882 1862 -1 -2262 1862 -1 -1863 1863 6 -1864 1863 -1 -1883 1863 -1 -2263 1863 -1 -1864 1864 6 -1865 1864 -1 -1884 1864 -1 -2264 1864 -1 -1865 1865 6 -1866 1865 -1 -1885 1865 -1 -2265 1865 -1 -1866 1866 6 -1867 1866 -1 -1886 1866 -1 -2266 1866 -1 -1867 1867 6 -1868 1867 -1 -1887 1867 -1 -2267 1867 -1 -1868 1868 6 -1869 1868 -1 -1888 1868 -1 -2268 1868 -1 -1869 1869 6 -1870 1869 -1 -1889 1869 -1 -2269 1869 -1 -1870 1870 6 -1871 1870 -1 -1890 1870 -1 -2270 1870 -1 -1871 1871 6 -1872 1871 -1 -1891 1871 -1 -2271 1871 -1 -1872 1872 6 -1873 1872 -1 -1892 1872 -1 -2272 1872 -1 -1873 1873 6 -1874 1873 -1 -1893 1873 -1 -2273 1873 -1 -1874 1874 6 -1875 1874 -1 -1894 1874 -1 -2274 1874 -1 -1875 1875 6 -1876 1875 -1 -1895 1875 -1 -2275 1875 -1 -1876 1876 6 -1877 1876 -1 -1896 1876 -1 -2276 1876 -1 -1877 1877 6 -1878 1877 -1 -1897 1877 -1 -2277 1877 -1 -1878 1878 6 -1879 1878 -1 -1898 1878 -1 -2278 1878 -1 -1879 1879 6 -1880 1879 -1 -1899 1879 -1 -2279 1879 -1 -1880 1880 6 -1900 1880 -1 -2280 1880 -1 -1881 1881 6 -1882 1881 -1 -1901 1881 -1 -2281 1881 -1 -1882 1882 6 -1883 1882 -1 -1902 1882 -1 -2282 1882 -1 -1883 1883 6 -1884 1883 -1 -1903 1883 -1 -2283 1883 -1 -1884 1884 6 -1885 1884 -1 -1904 1884 -1 -2284 1884 -1 -1885 1885 6 -1886 1885 -1 -1905 1885 -1 -2285 1885 -1 -1886 1886 6 -1887 1886 -1 -1906 1886 -1 -2286 1886 -1 -1887 1887 6 -1888 1887 -1 -1907 1887 -1 -2287 1887 -1 -1888 1888 6 -1889 1888 -1 -1908 1888 -1 -2288 1888 -1 -1889 1889 6 -1890 1889 -1 -1909 1889 -1 -2289 1889 -1 -1890 1890 6 -1891 1890 -1 -1910 1890 -1 -2290 1890 -1 -1891 1891 6 -1892 1891 -1 -1911 1891 -1 -2291 1891 -1 -1892 1892 6 -1893 1892 -1 -1912 1892 -1 -2292 1892 -1 -1893 1893 6 -1894 1893 -1 -1913 1893 -1 -2293 1893 -1 -1894 1894 6 -1895 1894 -1 -1914 1894 -1 -2294 1894 -1 -1895 1895 6 -1896 1895 -1 -1915 1895 -1 -2295 1895 -1 -1896 1896 6 -1897 1896 -1 -1916 1896 -1 -2296 1896 -1 -1897 1897 6 -1898 1897 -1 -1917 1897 -1 -2297 1897 -1 -1898 1898 6 -1899 1898 -1 -1918 1898 -1 -2298 1898 -1 -1899 1899 6 -1900 1899 -1 -1919 1899 -1 -2299 1899 -1 -1900 1900 6 -1920 1900 -1 -2300 1900 -1 -1901 1901 6 -1902 1901 -1 -1921 1901 -1 -2301 1901 -1 -1902 1902 6 -1903 1902 -1 -1922 1902 -1 -2302 1902 -1 -1903 1903 6 -1904 1903 -1 -1923 1903 -1 -2303 1903 -1 -1904 1904 6 -1905 1904 -1 -1924 1904 -1 -2304 1904 -1 -1905 1905 6 -1906 1905 -1 -1925 1905 -1 -2305 1905 -1 -1906 1906 6 -1907 1906 -1 -1926 1906 -1 -2306 1906 -1 -1907 1907 6 -1908 1907 -1 -1927 1907 -1 -2307 1907 -1 -1908 1908 6 -1909 1908 -1 -1928 1908 -1 -2308 1908 -1 -1909 1909 6 -1910 1909 -1 -1929 1909 -1 -2309 1909 -1 -1910 1910 6 -1911 1910 -1 -1930 1910 -1 -2310 1910 -1 -1911 1911 6 -1912 1911 -1 -1931 1911 -1 -2311 1911 -1 -1912 1912 6 -1913 1912 -1 -1932 1912 -1 -2312 1912 -1 -1913 1913 6 -1914 1913 -1 -1933 1913 -1 -2313 1913 -1 -1914 1914 6 -1915 1914 -1 -1934 1914 -1 -2314 1914 -1 -1915 1915 6 -1916 1915 -1 -1935 1915 -1 -2315 1915 -1 -1916 1916 6 -1917 1916 -1 -1936 1916 -1 -2316 1916 -1 -1917 1917 6 -1918 1917 -1 -1937 1917 -1 -2317 1917 -1 -1918 1918 6 -1919 1918 -1 -1938 1918 -1 -2318 1918 -1 -1919 1919 6 -1920 1919 -1 -1939 1919 -1 -2319 1919 -1 -1920 1920 6 -1940 1920 -1 -2320 1920 -1 -1921 1921 6 -1922 1921 -1 -1941 1921 -1 -2321 1921 -1 -1922 1922 6 -1923 1922 -1 -1942 1922 -1 -2322 1922 -1 -1923 1923 6 -1924 1923 -1 -1943 1923 -1 -2323 1923 -1 -1924 1924 6 -1925 1924 -1 -1944 1924 -1 -2324 1924 -1 -1925 1925 6 -1926 1925 -1 -1945 1925 -1 -2325 1925 -1 -1926 1926 6 -1927 1926 -1 -1946 1926 -1 -2326 1926 -1 -1927 1927 6 -1928 1927 -1 -1947 1927 -1 -2327 1927 -1 -1928 1928 6 -1929 1928 -1 -1948 1928 -1 -2328 1928 -1 -1929 1929 6 -1930 1929 -1 -1949 1929 -1 -2329 1929 -1 -1930 1930 6 -1931 1930 -1 -1950 1930 -1 -2330 1930 -1 -1931 1931 6 -1932 1931 -1 -1951 1931 -1 -2331 1931 -1 -1932 1932 6 -1933 1932 -1 -1952 1932 -1 -2332 1932 -1 -1933 1933 6 -1934 1933 -1 -1953 1933 -1 -2333 1933 -1 -1934 1934 6 -1935 1934 -1 -1954 1934 -1 -2334 1934 -1 -1935 1935 6 -1936 1935 -1 -1955 1935 -1 -2335 1935 -1 -1936 1936 6 -1937 1936 -1 -1956 1936 -1 -2336 1936 -1 -1937 1937 6 -1938 1937 -1 -1957 1937 -1 -2337 1937 -1 -1938 1938 6 -1939 1938 -1 -1958 1938 -1 -2338 1938 -1 -1939 1939 6 -1940 1939 -1 -1959 1939 -1 -2339 1939 -1 -1940 1940 6 -1960 1940 -1 -2340 1940 -1 -1941 1941 6 -1942 1941 -1 -1961 1941 -1 -2341 1941 -1 -1942 1942 6 -1943 1942 -1 -1962 1942 -1 -2342 1942 -1 -1943 1943 6 -1944 1943 -1 -1963 1943 -1 -2343 1943 -1 -1944 1944 6 -1945 1944 -1 -1964 1944 -1 -2344 1944 -1 -1945 1945 6 -1946 1945 -1 -1965 1945 -1 -2345 1945 -1 -1946 1946 6 -1947 1946 -1 -1966 1946 -1 -2346 1946 -1 -1947 1947 6 -1948 1947 -1 -1967 1947 -1 -2347 1947 -1 -1948 1948 6 -1949 1948 -1 -1968 1948 -1 -2348 1948 -1 -1949 1949 6 -1950 1949 -1 -1969 1949 -1 -2349 1949 -1 -1950 1950 6 -1951 1950 -1 -1970 1950 -1 -2350 1950 -1 -1951 1951 6 -1952 1951 -1 -1971 1951 -1 -2351 1951 -1 -1952 1952 6 -1953 1952 -1 -1972 1952 -1 -2352 1952 -1 -1953 1953 6 -1954 1953 -1 -1973 1953 -1 -2353 1953 -1 -1954 1954 6 -1955 1954 -1 -1974 1954 -1 -2354 1954 -1 -1955 1955 6 -1956 1955 -1 -1975 1955 -1 -2355 1955 -1 -1956 1956 6 -1957 1956 -1 -1976 1956 -1 -2356 1956 -1 -1957 1957 6 -1958 1957 -1 -1977 1957 -1 -2357 1957 -1 -1958 1958 6 -1959 1958 -1 -1978 1958 -1 -2358 1958 -1 -1959 1959 6 -1960 1959 -1 -1979 1959 -1 -2359 1959 -1 -1960 1960 6 -1980 1960 -1 -2360 1960 -1 -1961 1961 6 -1962 1961 -1 -1981 1961 -1 -2361 1961 -1 -1962 1962 6 -1963 1962 -1 -1982 1962 -1 -2362 1962 -1 -1963 1963 6 -1964 1963 -1 -1983 1963 -1 -2363 1963 -1 -1964 1964 6 -1965 1964 -1 -1984 1964 -1 -2364 1964 -1 -1965 1965 6 -1966 1965 -1 -1985 1965 -1 -2365 1965 -1 -1966 1966 6 -1967 1966 -1 -1986 1966 -1 -2366 1966 -1 -1967 1967 6 -1968 1967 -1 -1987 1967 -1 -2367 1967 -1 -1968 1968 6 -1969 1968 -1 -1988 1968 -1 -2368 1968 -1 -1969 1969 6 -1970 1969 -1 -1989 1969 -1 -2369 1969 -1 -1970 1970 6 -1971 1970 -1 -1990 1970 -1 -2370 1970 -1 -1971 1971 6 -1972 1971 -1 -1991 1971 -1 -2371 1971 -1 -1972 1972 6 -1973 1972 -1 -1992 1972 -1 -2372 1972 -1 -1973 1973 6 -1974 1973 -1 -1993 1973 -1 -2373 1973 -1 -1974 1974 6 -1975 1974 -1 -1994 1974 -1 -2374 1974 -1 -1975 1975 6 -1976 1975 -1 -1995 1975 -1 -2375 1975 -1 -1976 1976 6 -1977 1976 -1 -1996 1976 -1 -2376 1976 -1 -1977 1977 6 -1978 1977 -1 -1997 1977 -1 -2377 1977 -1 -1978 1978 6 -1979 1978 -1 -1998 1978 -1 -2378 1978 -1 -1979 1979 6 -1980 1979 -1 -1999 1979 -1 -2379 1979 -1 -1980 1980 6 -2000 1980 -1 -2380 1980 -1 -1981 1981 6 -1982 1981 -1 -2381 1981 -1 -1982 1982 6 -1983 1982 -1 -2382 1982 -1 -1983 1983 6 -1984 1983 -1 -2383 1983 -1 -1984 1984 6 -1985 1984 -1 -2384 1984 -1 -1985 1985 6 -1986 1985 -1 -2385 1985 -1 -1986 1986 6 -1987 1986 -1 -2386 1986 -1 -1987 1987 6 -1988 1987 -1 -2387 1987 -1 -1988 1988 6 -1989 1988 -1 -2388 1988 -1 -1989 1989 6 -1990 1989 -1 -2389 1989 -1 -1990 1990 6 -1991 1990 -1 -2390 1990 -1 -1991 1991 6 -1992 1991 -1 -2391 1991 -1 -1992 1992 6 -1993 1992 -1 -2392 1992 -1 -1993 1993 6 -1994 1993 -1 -2393 1993 -1 -1994 1994 6 -1995 1994 -1 -2394 1994 -1 -1995 1995 6 -1996 1995 -1 -2395 1995 -1 -1996 1996 6 -1997 1996 -1 -2396 1996 -1 -1997 1997 6 -1998 1997 -1 -2397 1997 -1 -1998 1998 6 -1999 1998 -1 -2398 1998 -1 -1999 1999 6 -2000 1999 -1 -2399 1999 -1 -2000 2000 6 -2400 2000 -1 -2001 2001 6 -2002 2001 -1 -2021 2001 -1 -2401 2001 -1 -2002 2002 6 -2003 2002 -1 -2022 2002 -1 -2402 2002 -1 -2003 2003 6 -2004 2003 -1 -2023 2003 -1 -2403 2003 -1 -2004 2004 6 -2005 2004 -1 -2024 2004 -1 -2404 2004 -1 -2005 2005 6 -2006 2005 -1 -2025 2005 -1 -2405 2005 -1 -2006 2006 6 -2007 2006 -1 -2026 2006 -1 -2406 2006 -1 -2007 2007 6 -2008 2007 -1 -2027 2007 -1 -2407 2007 -1 -2008 2008 6 -2009 2008 -1 -2028 2008 -1 -2408 2008 -1 -2009 2009 6 -2010 2009 -1 -2029 2009 -1 -2409 2009 -1 -2010 2010 6 -2011 2010 -1 -2030 2010 -1 -2410 2010 -1 -2011 2011 6 -2012 2011 -1 -2031 2011 -1 -2411 2011 -1 -2012 2012 6 -2013 2012 -1 -2032 2012 -1 -2412 2012 -1 -2013 2013 6 -2014 2013 -1 -2033 2013 -1 -2413 2013 -1 -2014 2014 6 -2015 2014 -1 -2034 2014 -1 -2414 2014 -1 -2015 2015 6 -2016 2015 -1 -2035 2015 -1 -2415 2015 -1 -2016 2016 6 -2017 2016 -1 -2036 2016 -1 -2416 2016 -1 -2017 2017 6 -2018 2017 -1 -2037 2017 -1 -2417 2017 -1 -2018 2018 6 -2019 2018 -1 -2038 2018 -1 -2418 2018 -1 -2019 2019 6 -2020 2019 -1 -2039 2019 -1 -2419 2019 -1 -2020 2020 6 -2040 2020 -1 -2420 2020 -1 -2021 2021 6 -2022 2021 -1 -2041 2021 -1 -2421 2021 -1 -2022 2022 6 -2023 2022 -1 -2042 2022 -1 -2422 2022 -1 -2023 2023 6 -2024 2023 -1 -2043 2023 -1 -2423 2023 -1 -2024 2024 6 -2025 2024 -1 -2044 2024 -1 -2424 2024 -1 -2025 2025 6 -2026 2025 -1 -2045 2025 -1 -2425 2025 -1 -2026 2026 6 -2027 2026 -1 -2046 2026 -1 -2426 2026 -1 -2027 2027 6 -2028 2027 -1 -2047 2027 -1 -2427 2027 -1 -2028 2028 6 -2029 2028 -1 -2048 2028 -1 -2428 2028 -1 -2029 2029 6 -2030 2029 -1 -2049 2029 -1 -2429 2029 -1 -2030 2030 6 -2031 2030 -1 -2050 2030 -1 -2430 2030 -1 -2031 2031 6 -2032 2031 -1 -2051 2031 -1 -2431 2031 -1 -2032 2032 6 -2033 2032 -1 -2052 2032 -1 -2432 2032 -1 -2033 2033 6 -2034 2033 -1 -2053 2033 -1 -2433 2033 -1 -2034 2034 6 -2035 2034 -1 -2054 2034 -1 -2434 2034 -1 -2035 2035 6 -2036 2035 -1 -2055 2035 -1 -2435 2035 -1 -2036 2036 6 -2037 2036 -1 -2056 2036 -1 -2436 2036 -1 -2037 2037 6 -2038 2037 -1 -2057 2037 -1 -2437 2037 -1 -2038 2038 6 -2039 2038 -1 -2058 2038 -1 -2438 2038 -1 -2039 2039 6 -2040 2039 -1 -2059 2039 -1 -2439 2039 -1 -2040 2040 6 -2060 2040 -1 -2440 2040 -1 -2041 2041 6 -2042 2041 -1 -2061 2041 -1 -2441 2041 -1 -2042 2042 6 -2043 2042 -1 -2062 2042 -1 -2442 2042 -1 -2043 2043 6 -2044 2043 -1 -2063 2043 -1 -2443 2043 -1 -2044 2044 6 -2045 2044 -1 -2064 2044 -1 -2444 2044 -1 -2045 2045 6 -2046 2045 -1 -2065 2045 -1 -2445 2045 -1 -2046 2046 6 -2047 2046 -1 -2066 2046 -1 -2446 2046 -1 -2047 2047 6 -2048 2047 -1 -2067 2047 -1 -2447 2047 -1 -2048 2048 6 -2049 2048 -1 -2068 2048 -1 -2448 2048 -1 -2049 2049 6 -2050 2049 -1 -2069 2049 -1 -2449 2049 -1 -2050 2050 6 -2051 2050 -1 -2070 2050 -1 -2450 2050 -1 -2051 2051 6 -2052 2051 -1 -2071 2051 -1 -2451 2051 -1 -2052 2052 6 -2053 2052 -1 -2072 2052 -1 -2452 2052 -1 -2053 2053 6 -2054 2053 -1 -2073 2053 -1 -2453 2053 -1 -2054 2054 6 -2055 2054 -1 -2074 2054 -1 -2454 2054 -1 -2055 2055 6 -2056 2055 -1 -2075 2055 -1 -2455 2055 -1 -2056 2056 6 -2057 2056 -1 -2076 2056 -1 -2456 2056 -1 -2057 2057 6 -2058 2057 -1 -2077 2057 -1 -2457 2057 -1 -2058 2058 6 -2059 2058 -1 -2078 2058 -1 -2458 2058 -1 -2059 2059 6 -2060 2059 -1 -2079 2059 -1 -2459 2059 -1 -2060 2060 6 -2080 2060 -1 -2460 2060 -1 -2061 2061 6 -2062 2061 -1 -2081 2061 -1 -2461 2061 -1 -2062 2062 6 -2063 2062 -1 -2082 2062 -1 -2462 2062 -1 -2063 2063 6 -2064 2063 -1 -2083 2063 -1 -2463 2063 -1 -2064 2064 6 -2065 2064 -1 -2084 2064 -1 -2464 2064 -1 -2065 2065 6 -2066 2065 -1 -2085 2065 -1 -2465 2065 -1 -2066 2066 6 -2067 2066 -1 -2086 2066 -1 -2466 2066 -1 -2067 2067 6 -2068 2067 -1 -2087 2067 -1 -2467 2067 -1 -2068 2068 6 -2069 2068 -1 -2088 2068 -1 -2468 2068 -1 -2069 2069 6 -2070 2069 -1 -2089 2069 -1 -2469 2069 -1 -2070 2070 6 -2071 2070 -1 -2090 2070 -1 -2470 2070 -1 -2071 2071 6 -2072 2071 -1 -2091 2071 -1 -2471 2071 -1 -2072 2072 6 -2073 2072 -1 -2092 2072 -1 -2472 2072 -1 -2073 2073 6 -2074 2073 -1 -2093 2073 -1 -2473 2073 -1 -2074 2074 6 -2075 2074 -1 -2094 2074 -1 -2474 2074 -1 -2075 2075 6 -2076 2075 -1 -2095 2075 -1 -2475 2075 -1 -2076 2076 6 -2077 2076 -1 -2096 2076 -1 -2476 2076 -1 -2077 2077 6 -2078 2077 -1 -2097 2077 -1 -2477 2077 -1 -2078 2078 6 -2079 2078 -1 -2098 2078 -1 -2478 2078 -1 -2079 2079 6 -2080 2079 -1 -2099 2079 -1 -2479 2079 -1 -2080 2080 6 -2100 2080 -1 -2480 2080 -1 -2081 2081 6 -2082 2081 -1 -2101 2081 -1 -2481 2081 -1 -2082 2082 6 -2083 2082 -1 -2102 2082 -1 -2482 2082 -1 -2083 2083 6 -2084 2083 -1 -2103 2083 -1 -2483 2083 -1 -2084 2084 6 -2085 2084 -1 -2104 2084 -1 -2484 2084 -1 -2085 2085 6 -2086 2085 -1 -2105 2085 -1 -2485 2085 -1 -2086 2086 6 -2087 2086 -1 -2106 2086 -1 -2486 2086 -1 -2087 2087 6 -2088 2087 -1 -2107 2087 -1 -2487 2087 -1 -2088 2088 6 -2089 2088 -1 -2108 2088 -1 -2488 2088 -1 -2089 2089 6 -2090 2089 -1 -2109 2089 -1 -2489 2089 -1 -2090 2090 6 -2091 2090 -1 -2110 2090 -1 -2490 2090 -1 -2091 2091 6 -2092 2091 -1 -2111 2091 -1 -2491 2091 -1 -2092 2092 6 -2093 2092 -1 -2112 2092 -1 -2492 2092 -1 -2093 2093 6 -2094 2093 -1 -2113 2093 -1 -2493 2093 -1 -2094 2094 6 -2095 2094 -1 -2114 2094 -1 -2494 2094 -1 -2095 2095 6 -2096 2095 -1 -2115 2095 -1 -2495 2095 -1 -2096 2096 6 -2097 2096 -1 -2116 2096 -1 -2496 2096 -1 -2097 2097 6 -2098 2097 -1 -2117 2097 -1 -2497 2097 -1 -2098 2098 6 -2099 2098 -1 -2118 2098 -1 -2498 2098 -1 -2099 2099 6 -2100 2099 -1 -2119 2099 -1 -2499 2099 -1 -2100 2100 6 -2120 2100 -1 -2500 2100 -1 -2101 2101 6 -2102 2101 -1 -2121 2101 -1 -2501 2101 -1 -2102 2102 6 -2103 2102 -1 -2122 2102 -1 -2502 2102 -1 -2103 2103 6 -2104 2103 -1 -2123 2103 -1 -2503 2103 -1 -2104 2104 6 -2105 2104 -1 -2124 2104 -1 -2504 2104 -1 -2105 2105 6 -2106 2105 -1 -2125 2105 -1 -2505 2105 -1 -2106 2106 6 -2107 2106 -1 -2126 2106 -1 -2506 2106 -1 -2107 2107 6 -2108 2107 -1 -2127 2107 -1 -2507 2107 -1 -2108 2108 6 -2109 2108 -1 -2128 2108 -1 -2508 2108 -1 -2109 2109 6 -2110 2109 -1 -2129 2109 -1 -2509 2109 -1 -2110 2110 6 -2111 2110 -1 -2130 2110 -1 -2510 2110 -1 -2111 2111 6 -2112 2111 -1 -2131 2111 -1 -2511 2111 -1 -2112 2112 6 -2113 2112 -1 -2132 2112 -1 -2512 2112 -1 -2113 2113 6 -2114 2113 -1 -2133 2113 -1 -2513 2113 -1 -2114 2114 6 -2115 2114 -1 -2134 2114 -1 -2514 2114 -1 -2115 2115 6 -2116 2115 -1 -2135 2115 -1 -2515 2115 -1 -2116 2116 6 -2117 2116 -1 -2136 2116 -1 -2516 2116 -1 -2117 2117 6 -2118 2117 -1 -2137 2117 -1 -2517 2117 -1 -2118 2118 6 -2119 2118 -1 -2138 2118 -1 -2518 2118 -1 -2119 2119 6 -2120 2119 -1 -2139 2119 -1 -2519 2119 -1 -2120 2120 6 -2140 2120 -1 -2520 2120 -1 -2121 2121 6 -2122 2121 -1 -2141 2121 -1 -2521 2121 -1 -2122 2122 6 -2123 2122 -1 -2142 2122 -1 -2522 2122 -1 -2123 2123 6 -2124 2123 -1 -2143 2123 -1 -2523 2123 -1 -2124 2124 6 -2125 2124 -1 -2144 2124 -1 -2524 2124 -1 -2125 2125 6 -2126 2125 -1 -2145 2125 -1 -2525 2125 -1 -2126 2126 6 -2127 2126 -1 -2146 2126 -1 -2526 2126 -1 -2127 2127 6 -2128 2127 -1 -2147 2127 -1 -2527 2127 -1 -2128 2128 6 -2129 2128 -1 -2148 2128 -1 -2528 2128 -1 -2129 2129 6 -2130 2129 -1 -2149 2129 -1 -2529 2129 -1 -2130 2130 6 -2131 2130 -1 -2150 2130 -1 -2530 2130 -1 -2131 2131 6 -2132 2131 -1 -2151 2131 -1 -2531 2131 -1 -2132 2132 6 -2133 2132 -1 -2152 2132 -1 -2532 2132 -1 -2133 2133 6 -2134 2133 -1 -2153 2133 -1 -2533 2133 -1 -2134 2134 6 -2135 2134 -1 -2154 2134 -1 -2534 2134 -1 -2135 2135 6 -2136 2135 -1 -2155 2135 -1 -2535 2135 -1 -2136 2136 6 -2137 2136 -1 -2156 2136 -1 -2536 2136 -1 -2137 2137 6 -2138 2137 -1 -2157 2137 -1 -2537 2137 -1 -2138 2138 6 -2139 2138 -1 -2158 2138 -1 -2538 2138 -1 -2139 2139 6 -2140 2139 -1 -2159 2139 -1 -2539 2139 -1 -2140 2140 6 -2160 2140 -1 -2540 2140 -1 -2141 2141 6 -2142 2141 -1 -2161 2141 -1 -2541 2141 -1 -2142 2142 6 -2143 2142 -1 -2162 2142 -1 -2542 2142 -1 -2143 2143 6 -2144 2143 -1 -2163 2143 -1 -2543 2143 -1 -2144 2144 6 -2145 2144 -1 -2164 2144 -1 -2544 2144 -1 -2145 2145 6 -2146 2145 -1 -2165 2145 -1 -2545 2145 -1 -2146 2146 6 -2147 2146 -1 -2166 2146 -1 -2546 2146 -1 -2147 2147 6 -2148 2147 -1 -2167 2147 -1 -2547 2147 -1 -2148 2148 6 -2149 2148 -1 -2168 2148 -1 -2548 2148 -1 -2149 2149 6 -2150 2149 -1 -2169 2149 -1 -2549 2149 -1 -2150 2150 6 -2151 2150 -1 -2170 2150 -1 -2550 2150 -1 -2151 2151 6 -2152 2151 -1 -2171 2151 -1 -2551 2151 -1 -2152 2152 6 -2153 2152 -1 -2172 2152 -1 -2552 2152 -1 -2153 2153 6 -2154 2153 -1 -2173 2153 -1 -2553 2153 -1 -2154 2154 6 -2155 2154 -1 -2174 2154 -1 -2554 2154 -1 -2155 2155 6 -2156 2155 -1 -2175 2155 -1 -2555 2155 -1 -2156 2156 6 -2157 2156 -1 -2176 2156 -1 -2556 2156 -1 -2157 2157 6 -2158 2157 -1 -2177 2157 -1 -2557 2157 -1 -2158 2158 6 -2159 2158 -1 -2178 2158 -1 -2558 2158 -1 -2159 2159 6 -2160 2159 -1 -2179 2159 -1 -2559 2159 -1 -2160 2160 6 -2180 2160 -1 -2560 2160 -1 -2161 2161 6 -2162 2161 -1 -2181 2161 -1 -2561 2161 -1 -2162 2162 6 -2163 2162 -1 -2182 2162 -1 -2562 2162 -1 -2163 2163 6 -2164 2163 -1 -2183 2163 -1 -2563 2163 -1 -2164 2164 6 -2165 2164 -1 -2184 2164 -1 -2564 2164 -1 -2165 2165 6 -2166 2165 -1 -2185 2165 -1 -2565 2165 -1 -2166 2166 6 -2167 2166 -1 -2186 2166 -1 -2566 2166 -1 -2167 2167 6 -2168 2167 -1 -2187 2167 -1 -2567 2167 -1 -2168 2168 6 -2169 2168 -1 -2188 2168 -1 -2568 2168 -1 -2169 2169 6 -2170 2169 -1 -2189 2169 -1 -2569 2169 -1 -2170 2170 6 -2171 2170 -1 -2190 2170 -1 -2570 2170 -1 -2171 2171 6 -2172 2171 -1 -2191 2171 -1 -2571 2171 -1 -2172 2172 6 -2173 2172 -1 -2192 2172 -1 -2572 2172 -1 -2173 2173 6 -2174 2173 -1 -2193 2173 -1 -2573 2173 -1 -2174 2174 6 -2175 2174 -1 -2194 2174 -1 -2574 2174 -1 -2175 2175 6 -2176 2175 -1 -2195 2175 -1 -2575 2175 -1 -2176 2176 6 -2177 2176 -1 -2196 2176 -1 -2576 2176 -1 -2177 2177 6 -2178 2177 -1 -2197 2177 -1 -2577 2177 -1 -2178 2178 6 -2179 2178 -1 -2198 2178 -1 -2578 2178 -1 -2179 2179 6 -2180 2179 -1 -2199 2179 -1 -2579 2179 -1 -2180 2180 6 -2200 2180 -1 -2580 2180 -1 -2181 2181 6 -2182 2181 -1 -2201 2181 -1 -2581 2181 -1 -2182 2182 6 -2183 2182 -1 -2202 2182 -1 -2582 2182 -1 -2183 2183 6 -2184 2183 -1 -2203 2183 -1 -2583 2183 -1 -2184 2184 6 -2185 2184 -1 -2204 2184 -1 -2584 2184 -1 -2185 2185 6 -2186 2185 -1 -2205 2185 -1 -2585 2185 -1 -2186 2186 6 -2187 2186 -1 -2206 2186 -1 -2586 2186 -1 -2187 2187 6 -2188 2187 -1 -2207 2187 -1 -2587 2187 -1 -2188 2188 6 -2189 2188 -1 -2208 2188 -1 -2588 2188 -1 -2189 2189 6 -2190 2189 -1 -2209 2189 -1 -2589 2189 -1 -2190 2190 6 -2191 2190 -1 -2210 2190 -1 -2590 2190 -1 -2191 2191 6 -2192 2191 -1 -2211 2191 -1 -2591 2191 -1 -2192 2192 6 -2193 2192 -1 -2212 2192 -1 -2592 2192 -1 -2193 2193 6 -2194 2193 -1 -2213 2193 -1 -2593 2193 -1 -2194 2194 6 -2195 2194 -1 -2214 2194 -1 -2594 2194 -1 -2195 2195 6 -2196 2195 -1 -2215 2195 -1 -2595 2195 -1 -2196 2196 6 -2197 2196 -1 -2216 2196 -1 -2596 2196 -1 -2197 2197 6 -2198 2197 -1 -2217 2197 -1 -2597 2197 -1 -2198 2198 6 -2199 2198 -1 -2218 2198 -1 -2598 2198 -1 -2199 2199 6 -2200 2199 -1 -2219 2199 -1 -2599 2199 -1 -2200 2200 6 -2220 2200 -1 -2600 2200 -1 -2201 2201 6 -2202 2201 -1 -2221 2201 -1 -2601 2201 -1 -2202 2202 6 -2203 2202 -1 -2222 2202 -1 -2602 2202 -1 -2203 2203 6 -2204 2203 -1 -2223 2203 -1 -2603 2203 -1 -2204 2204 6 -2205 2204 -1 -2224 2204 -1 -2604 2204 -1 -2205 2205 6 -2206 2205 -1 -2225 2205 -1 -2605 2205 -1 -2206 2206 6 -2207 2206 -1 -2226 2206 -1 -2606 2206 -1 -2207 2207 6 -2208 2207 -1 -2227 2207 -1 -2607 2207 -1 -2208 2208 6 -2209 2208 -1 -2228 2208 -1 -2608 2208 -1 -2209 2209 6 -2210 2209 -1 -2229 2209 -1 -2609 2209 -1 -2210 2210 6 -2211 2210 -1 -2230 2210 -1 -2610 2210 -1 -2211 2211 6 -2212 2211 -1 -2231 2211 -1 -2611 2211 -1 -2212 2212 6 -2213 2212 -1 -2232 2212 -1 -2612 2212 -1 -2213 2213 6 -2214 2213 -1 -2233 2213 -1 -2613 2213 -1 -2214 2214 6 -2215 2214 -1 -2234 2214 -1 -2614 2214 -1 -2215 2215 6 -2216 2215 -1 -2235 2215 -1 -2615 2215 -1 -2216 2216 6 -2217 2216 -1 -2236 2216 -1 -2616 2216 -1 -2217 2217 6 -2218 2217 -1 -2237 2217 -1 -2617 2217 -1 -2218 2218 6 -2219 2218 -1 -2238 2218 -1 -2618 2218 -1 -2219 2219 6 -2220 2219 -1 -2239 2219 -1 -2619 2219 -1 -2220 2220 6 -2240 2220 -1 -2620 2220 -1 -2221 2221 6 -2222 2221 -1 -2241 2221 -1 -2621 2221 -1 -2222 2222 6 -2223 2222 -1 -2242 2222 -1 -2622 2222 -1 -2223 2223 6 -2224 2223 -1 -2243 2223 -1 -2623 2223 -1 -2224 2224 6 -2225 2224 -1 -2244 2224 -1 -2624 2224 -1 -2225 2225 6 -2226 2225 -1 -2245 2225 -1 -2625 2225 -1 -2226 2226 6 -2227 2226 -1 -2246 2226 -1 -2626 2226 -1 -2227 2227 6 -2228 2227 -1 -2247 2227 -1 -2627 2227 -1 -2228 2228 6 -2229 2228 -1 -2248 2228 -1 -2628 2228 -1 -2229 2229 6 -2230 2229 -1 -2249 2229 -1 -2629 2229 -1 -2230 2230 6 -2231 2230 -1 -2250 2230 -1 -2630 2230 -1 -2231 2231 6 -2232 2231 -1 -2251 2231 -1 -2631 2231 -1 -2232 2232 6 -2233 2232 -1 -2252 2232 -1 -2632 2232 -1 -2233 2233 6 -2234 2233 -1 -2253 2233 -1 -2633 2233 -1 -2234 2234 6 -2235 2234 -1 -2254 2234 -1 -2634 2234 -1 -2235 2235 6 -2236 2235 -1 -2255 2235 -1 -2635 2235 -1 -2236 2236 6 -2237 2236 -1 -2256 2236 -1 -2636 2236 -1 -2237 2237 6 -2238 2237 -1 -2257 2237 -1 -2637 2237 -1 -2238 2238 6 -2239 2238 -1 -2258 2238 -1 -2638 2238 -1 -2239 2239 6 -2240 2239 -1 -2259 2239 -1 -2639 2239 -1 -2240 2240 6 -2260 2240 -1 -2640 2240 -1 -2241 2241 6 -2242 2241 -1 -2261 2241 -1 -2641 2241 -1 -2242 2242 6 -2243 2242 -1 -2262 2242 -1 -2642 2242 -1 -2243 2243 6 -2244 2243 -1 -2263 2243 -1 -2643 2243 -1 -2244 2244 6 -2245 2244 -1 -2264 2244 -1 -2644 2244 -1 -2245 2245 6 -2246 2245 -1 -2265 2245 -1 -2645 2245 -1 -2246 2246 6 -2247 2246 -1 -2266 2246 -1 -2646 2246 -1 -2247 2247 6 -2248 2247 -1 -2267 2247 -1 -2647 2247 -1 -2248 2248 6 -2249 2248 -1 -2268 2248 -1 -2648 2248 -1 -2249 2249 6 -2250 2249 -1 -2269 2249 -1 -2649 2249 -1 -2250 2250 6 -2251 2250 -1 -2270 2250 -1 -2650 2250 -1 -2251 2251 6 -2252 2251 -1 -2271 2251 -1 -2651 2251 -1 -2252 2252 6 -2253 2252 -1 -2272 2252 -1 -2652 2252 -1 -2253 2253 6 -2254 2253 -1 -2273 2253 -1 -2653 2253 -1 -2254 2254 6 -2255 2254 -1 -2274 2254 -1 -2654 2254 -1 -2255 2255 6 -2256 2255 -1 -2275 2255 -1 -2655 2255 -1 -2256 2256 6 -2257 2256 -1 -2276 2256 -1 -2656 2256 -1 -2257 2257 6 -2258 2257 -1 -2277 2257 -1 -2657 2257 -1 -2258 2258 6 -2259 2258 -1 -2278 2258 -1 -2658 2258 -1 -2259 2259 6 -2260 2259 -1 -2279 2259 -1 -2659 2259 -1 -2260 2260 6 -2280 2260 -1 -2660 2260 -1 -2261 2261 6 -2262 2261 -1 -2281 2261 -1 -2661 2261 -1 -2262 2262 6 -2263 2262 -1 -2282 2262 -1 -2662 2262 -1 -2263 2263 6 -2264 2263 -1 -2283 2263 -1 -2663 2263 -1 -2264 2264 6 -2265 2264 -1 -2284 2264 -1 -2664 2264 -1 -2265 2265 6 -2266 2265 -1 -2285 2265 -1 -2665 2265 -1 -2266 2266 6 -2267 2266 -1 -2286 2266 -1 -2666 2266 -1 -2267 2267 6 -2268 2267 -1 -2287 2267 -1 -2667 2267 -1 -2268 2268 6 -2269 2268 -1 -2288 2268 -1 -2668 2268 -1 -2269 2269 6 -2270 2269 -1 -2289 2269 -1 -2669 2269 -1 -2270 2270 6 -2271 2270 -1 -2290 2270 -1 -2670 2270 -1 -2271 2271 6 -2272 2271 -1 -2291 2271 -1 -2671 2271 -1 -2272 2272 6 -2273 2272 -1 -2292 2272 -1 -2672 2272 -1 -2273 2273 6 -2274 2273 -1 -2293 2273 -1 -2673 2273 -1 -2274 2274 6 -2275 2274 -1 -2294 2274 -1 -2674 2274 -1 -2275 2275 6 -2276 2275 -1 -2295 2275 -1 -2675 2275 -1 -2276 2276 6 -2277 2276 -1 -2296 2276 -1 -2676 2276 -1 -2277 2277 6 -2278 2277 -1 -2297 2277 -1 -2677 2277 -1 -2278 2278 6 -2279 2278 -1 -2298 2278 -1 -2678 2278 -1 -2279 2279 6 -2280 2279 -1 -2299 2279 -1 -2679 2279 -1 -2280 2280 6 -2300 2280 -1 -2680 2280 -1 -2281 2281 6 -2282 2281 -1 -2301 2281 -1 -2681 2281 -1 -2282 2282 6 -2283 2282 -1 -2302 2282 -1 -2682 2282 -1 -2283 2283 6 -2284 2283 -1 -2303 2283 -1 -2683 2283 -1 -2284 2284 6 -2285 2284 -1 -2304 2284 -1 -2684 2284 -1 -2285 2285 6 -2286 2285 -1 -2305 2285 -1 -2685 2285 -1 -2286 2286 6 -2287 2286 -1 -2306 2286 -1 -2686 2286 -1 -2287 2287 6 -2288 2287 -1 -2307 2287 -1 -2687 2287 -1 -2288 2288 6 -2289 2288 -1 -2308 2288 -1 -2688 2288 -1 -2289 2289 6 -2290 2289 -1 -2309 2289 -1 -2689 2289 -1 -2290 2290 6 -2291 2290 -1 -2310 2290 -1 -2690 2290 -1 -2291 2291 6 -2292 2291 -1 -2311 2291 -1 -2691 2291 -1 -2292 2292 6 -2293 2292 -1 -2312 2292 -1 -2692 2292 -1 -2293 2293 6 -2294 2293 -1 -2313 2293 -1 -2693 2293 -1 -2294 2294 6 -2295 2294 -1 -2314 2294 -1 -2694 2294 -1 -2295 2295 6 -2296 2295 -1 -2315 2295 -1 -2695 2295 -1 -2296 2296 6 -2297 2296 -1 -2316 2296 -1 -2696 2296 -1 -2297 2297 6 -2298 2297 -1 -2317 2297 -1 -2697 2297 -1 -2298 2298 6 -2299 2298 -1 -2318 2298 -1 -2698 2298 -1 -2299 2299 6 -2300 2299 -1 -2319 2299 -1 -2699 2299 -1 -2300 2300 6 -2320 2300 -1 -2700 2300 -1 -2301 2301 6 -2302 2301 -1 -2321 2301 -1 -2701 2301 -1 -2302 2302 6 -2303 2302 -1 -2322 2302 -1 -2702 2302 -1 -2303 2303 6 -2304 2303 -1 -2323 2303 -1 -2703 2303 -1 -2304 2304 6 -2305 2304 -1 -2324 2304 -1 -2704 2304 -1 -2305 2305 6 -2306 2305 -1 -2325 2305 -1 -2705 2305 -1 -2306 2306 6 -2307 2306 -1 -2326 2306 -1 -2706 2306 -1 -2307 2307 6 -2308 2307 -1 -2327 2307 -1 -2707 2307 -1 -2308 2308 6 -2309 2308 -1 -2328 2308 -1 -2708 2308 -1 -2309 2309 6 -2310 2309 -1 -2329 2309 -1 -2709 2309 -1 -2310 2310 6 -2311 2310 -1 -2330 2310 -1 -2710 2310 -1 -2311 2311 6 -2312 2311 -1 -2331 2311 -1 -2711 2311 -1 -2312 2312 6 -2313 2312 -1 -2332 2312 -1 -2712 2312 -1 -2313 2313 6 -2314 2313 -1 -2333 2313 -1 -2713 2313 -1 -2314 2314 6 -2315 2314 -1 -2334 2314 -1 -2714 2314 -1 -2315 2315 6 -2316 2315 -1 -2335 2315 -1 -2715 2315 -1 -2316 2316 6 -2317 2316 -1 -2336 2316 -1 -2716 2316 -1 -2317 2317 6 -2318 2317 -1 -2337 2317 -1 -2717 2317 -1 -2318 2318 6 -2319 2318 -1 -2338 2318 -1 -2718 2318 -1 -2319 2319 6 -2320 2319 -1 -2339 2319 -1 -2719 2319 -1 -2320 2320 6 -2340 2320 -1 -2720 2320 -1 -2321 2321 6 -2322 2321 -1 -2341 2321 -1 -2721 2321 -1 -2322 2322 6 -2323 2322 -1 -2342 2322 -1 -2722 2322 -1 -2323 2323 6 -2324 2323 -1 -2343 2323 -1 -2723 2323 -1 -2324 2324 6 -2325 2324 -1 -2344 2324 -1 -2724 2324 -1 -2325 2325 6 -2326 2325 -1 -2345 2325 -1 -2725 2325 -1 -2326 2326 6 -2327 2326 -1 -2346 2326 -1 -2726 2326 -1 -2327 2327 6 -2328 2327 -1 -2347 2327 -1 -2727 2327 -1 -2328 2328 6 -2329 2328 -1 -2348 2328 -1 -2728 2328 -1 -2329 2329 6 -2330 2329 -1 -2349 2329 -1 -2729 2329 -1 -2330 2330 6 -2331 2330 -1 -2350 2330 -1 -2730 2330 -1 -2331 2331 6 -2332 2331 -1 -2351 2331 -1 -2731 2331 -1 -2332 2332 6 -2333 2332 -1 -2352 2332 -1 -2732 2332 -1 -2333 2333 6 -2334 2333 -1 -2353 2333 -1 -2733 2333 -1 -2334 2334 6 -2335 2334 -1 -2354 2334 -1 -2734 2334 -1 -2335 2335 6 -2336 2335 -1 -2355 2335 -1 -2735 2335 -1 -2336 2336 6 -2337 2336 -1 -2356 2336 -1 -2736 2336 -1 -2337 2337 6 -2338 2337 -1 -2357 2337 -1 -2737 2337 -1 -2338 2338 6 -2339 2338 -1 -2358 2338 -1 -2738 2338 -1 -2339 2339 6 -2340 2339 -1 -2359 2339 -1 -2739 2339 -1 -2340 2340 6 -2360 2340 -1 -2740 2340 -1 -2341 2341 6 -2342 2341 -1 -2361 2341 -1 -2741 2341 -1 -2342 2342 6 -2343 2342 -1 -2362 2342 -1 -2742 2342 -1 -2343 2343 6 -2344 2343 -1 -2363 2343 -1 -2743 2343 -1 -2344 2344 6 -2345 2344 -1 -2364 2344 -1 -2744 2344 -1 -2345 2345 6 -2346 2345 -1 -2365 2345 -1 -2745 2345 -1 -2346 2346 6 -2347 2346 -1 -2366 2346 -1 -2746 2346 -1 -2347 2347 6 -2348 2347 -1 -2367 2347 -1 -2747 2347 -1 -2348 2348 6 -2349 2348 -1 -2368 2348 -1 -2748 2348 -1 -2349 2349 6 -2350 2349 -1 -2369 2349 -1 -2749 2349 -1 -2350 2350 6 -2351 2350 -1 -2370 2350 -1 -2750 2350 -1 -2351 2351 6 -2352 2351 -1 -2371 2351 -1 -2751 2351 -1 -2352 2352 6 -2353 2352 -1 -2372 2352 -1 -2752 2352 -1 -2353 2353 6 -2354 2353 -1 -2373 2353 -1 -2753 2353 -1 -2354 2354 6 -2355 2354 -1 -2374 2354 -1 -2754 2354 -1 -2355 2355 6 -2356 2355 -1 -2375 2355 -1 -2755 2355 -1 -2356 2356 6 -2357 2356 -1 -2376 2356 -1 -2756 2356 -1 -2357 2357 6 -2358 2357 -1 -2377 2357 -1 -2757 2357 -1 -2358 2358 6 -2359 2358 -1 -2378 2358 -1 -2758 2358 -1 -2359 2359 6 -2360 2359 -1 -2379 2359 -1 -2759 2359 -1 -2360 2360 6 -2380 2360 -1 -2760 2360 -1 -2361 2361 6 -2362 2361 -1 -2381 2361 -1 -2761 2361 -1 -2362 2362 6 -2363 2362 -1 -2382 2362 -1 -2762 2362 -1 -2363 2363 6 -2364 2363 -1 -2383 2363 -1 -2763 2363 -1 -2364 2364 6 -2365 2364 -1 -2384 2364 -1 -2764 2364 -1 -2365 2365 6 -2366 2365 -1 -2385 2365 -1 -2765 2365 -1 -2366 2366 6 -2367 2366 -1 -2386 2366 -1 -2766 2366 -1 -2367 2367 6 -2368 2367 -1 -2387 2367 -1 -2767 2367 -1 -2368 2368 6 -2369 2368 -1 -2388 2368 -1 -2768 2368 -1 -2369 2369 6 -2370 2369 -1 -2389 2369 -1 -2769 2369 -1 -2370 2370 6 -2371 2370 -1 -2390 2370 -1 -2770 2370 -1 -2371 2371 6 -2372 2371 -1 -2391 2371 -1 -2771 2371 -1 -2372 2372 6 -2373 2372 -1 -2392 2372 -1 -2772 2372 -1 -2373 2373 6 -2374 2373 -1 -2393 2373 -1 -2773 2373 -1 -2374 2374 6 -2375 2374 -1 -2394 2374 -1 -2774 2374 -1 -2375 2375 6 -2376 2375 -1 -2395 2375 -1 -2775 2375 -1 -2376 2376 6 -2377 2376 -1 -2396 2376 -1 -2776 2376 -1 -2377 2377 6 -2378 2377 -1 -2397 2377 -1 -2777 2377 -1 -2378 2378 6 -2379 2378 -1 -2398 2378 -1 -2778 2378 -1 -2379 2379 6 -2380 2379 -1 -2399 2379 -1 -2779 2379 -1 -2380 2380 6 -2400 2380 -1 -2780 2380 -1 -2381 2381 6 -2382 2381 -1 -2781 2381 -1 -2382 2382 6 -2383 2382 -1 -2782 2382 -1 -2383 2383 6 -2384 2383 -1 -2783 2383 -1 -2384 2384 6 -2385 2384 -1 -2784 2384 -1 -2385 2385 6 -2386 2385 -1 -2785 2385 -1 -2386 2386 6 -2387 2386 -1 -2786 2386 -1 -2387 2387 6 -2388 2387 -1 -2787 2387 -1 -2388 2388 6 -2389 2388 -1 -2788 2388 -1 -2389 2389 6 -2390 2389 -1 -2789 2389 -1 -2390 2390 6 -2391 2390 -1 -2790 2390 -1 -2391 2391 6 -2392 2391 -1 -2791 2391 -1 -2392 2392 6 -2393 2392 -1 -2792 2392 -1 -2393 2393 6 -2394 2393 -1 -2793 2393 -1 -2394 2394 6 -2395 2394 -1 -2794 2394 -1 -2395 2395 6 -2396 2395 -1 -2795 2395 -1 -2396 2396 6 -2397 2396 -1 -2796 2396 -1 -2397 2397 6 -2398 2397 -1 -2797 2397 -1 -2398 2398 6 -2399 2398 -1 -2798 2398 -1 -2399 2399 6 -2400 2399 -1 -2799 2399 -1 -2400 2400 6 -2800 2400 -1 -2401 2401 6 -2402 2401 -1 -2421 2401 -1 -2801 2401 -1 -2402 2402 6 -2403 2402 -1 -2422 2402 -1 -2802 2402 -1 -2403 2403 6 -2404 2403 -1 -2423 2403 -1 -2803 2403 -1 -2404 2404 6 -2405 2404 -1 -2424 2404 -1 -2804 2404 -1 -2405 2405 6 -2406 2405 -1 -2425 2405 -1 -2805 2405 -1 -2406 2406 6 -2407 2406 -1 -2426 2406 -1 -2806 2406 -1 -2407 2407 6 -2408 2407 -1 -2427 2407 -1 -2807 2407 -1 -2408 2408 6 -2409 2408 -1 -2428 2408 -1 -2808 2408 -1 -2409 2409 6 -2410 2409 -1 -2429 2409 -1 -2809 2409 -1 -2410 2410 6 -2411 2410 -1 -2430 2410 -1 -2810 2410 -1 -2411 2411 6 -2412 2411 -1 -2431 2411 -1 -2811 2411 -1 -2412 2412 6 -2413 2412 -1 -2432 2412 -1 -2812 2412 -1 -2413 2413 6 -2414 2413 -1 -2433 2413 -1 -2813 2413 -1 -2414 2414 6 -2415 2414 -1 -2434 2414 -1 -2814 2414 -1 -2415 2415 6 -2416 2415 -1 -2435 2415 -1 -2815 2415 -1 -2416 2416 6 -2417 2416 -1 -2436 2416 -1 -2816 2416 -1 -2417 2417 6 -2418 2417 -1 -2437 2417 -1 -2817 2417 -1 -2418 2418 6 -2419 2418 -1 -2438 2418 -1 -2818 2418 -1 -2419 2419 6 -2420 2419 -1 -2439 2419 -1 -2819 2419 -1 -2420 2420 6 -2440 2420 -1 -2820 2420 -1 -2421 2421 6 -2422 2421 -1 -2441 2421 -1 -2821 2421 -1 -2422 2422 6 -2423 2422 -1 -2442 2422 -1 -2822 2422 -1 -2423 2423 6 -2424 2423 -1 -2443 2423 -1 -2823 2423 -1 -2424 2424 6 -2425 2424 -1 -2444 2424 -1 -2824 2424 -1 -2425 2425 6 -2426 2425 -1 -2445 2425 -1 -2825 2425 -1 -2426 2426 6 -2427 2426 -1 -2446 2426 -1 -2826 2426 -1 -2427 2427 6 -2428 2427 -1 -2447 2427 -1 -2827 2427 -1 -2428 2428 6 -2429 2428 -1 -2448 2428 -1 -2828 2428 -1 -2429 2429 6 -2430 2429 -1 -2449 2429 -1 -2829 2429 -1 -2430 2430 6 -2431 2430 -1 -2450 2430 -1 -2830 2430 -1 -2431 2431 6 -2432 2431 -1 -2451 2431 -1 -2831 2431 -1 -2432 2432 6 -2433 2432 -1 -2452 2432 -1 -2832 2432 -1 -2433 2433 6 -2434 2433 -1 -2453 2433 -1 -2833 2433 -1 -2434 2434 6 -2435 2434 -1 -2454 2434 -1 -2834 2434 -1 -2435 2435 6 -2436 2435 -1 -2455 2435 -1 -2835 2435 -1 -2436 2436 6 -2437 2436 -1 -2456 2436 -1 -2836 2436 -1 -2437 2437 6 -2438 2437 -1 -2457 2437 -1 -2837 2437 -1 -2438 2438 6 -2439 2438 -1 -2458 2438 -1 -2838 2438 -1 -2439 2439 6 -2440 2439 -1 -2459 2439 -1 -2839 2439 -1 -2440 2440 6 -2460 2440 -1 -2840 2440 -1 -2441 2441 6 -2442 2441 -1 -2461 2441 -1 -2841 2441 -1 -2442 2442 6 -2443 2442 -1 -2462 2442 -1 -2842 2442 -1 -2443 2443 6 -2444 2443 -1 -2463 2443 -1 -2843 2443 -1 -2444 2444 6 -2445 2444 -1 -2464 2444 -1 -2844 2444 -1 -2445 2445 6 -2446 2445 -1 -2465 2445 -1 -2845 2445 -1 -2446 2446 6 -2447 2446 -1 -2466 2446 -1 -2846 2446 -1 -2447 2447 6 -2448 2447 -1 -2467 2447 -1 -2847 2447 -1 -2448 2448 6 -2449 2448 -1 -2468 2448 -1 -2848 2448 -1 -2449 2449 6 -2450 2449 -1 -2469 2449 -1 -2849 2449 -1 -2450 2450 6 -2451 2450 -1 -2470 2450 -1 -2850 2450 -1 -2451 2451 6 -2452 2451 -1 -2471 2451 -1 -2851 2451 -1 -2452 2452 6 -2453 2452 -1 -2472 2452 -1 -2852 2452 -1 -2453 2453 6 -2454 2453 -1 -2473 2453 -1 -2853 2453 -1 -2454 2454 6 -2455 2454 -1 -2474 2454 -1 -2854 2454 -1 -2455 2455 6 -2456 2455 -1 -2475 2455 -1 -2855 2455 -1 -2456 2456 6 -2457 2456 -1 -2476 2456 -1 -2856 2456 -1 -2457 2457 6 -2458 2457 -1 -2477 2457 -1 -2857 2457 -1 -2458 2458 6 -2459 2458 -1 -2478 2458 -1 -2858 2458 -1 -2459 2459 6 -2460 2459 -1 -2479 2459 -1 -2859 2459 -1 -2460 2460 6 -2480 2460 -1 -2860 2460 -1 -2461 2461 6 -2462 2461 -1 -2481 2461 -1 -2861 2461 -1 -2462 2462 6 -2463 2462 -1 -2482 2462 -1 -2862 2462 -1 -2463 2463 6 -2464 2463 -1 -2483 2463 -1 -2863 2463 -1 -2464 2464 6 -2465 2464 -1 -2484 2464 -1 -2864 2464 -1 -2465 2465 6 -2466 2465 -1 -2485 2465 -1 -2865 2465 -1 -2466 2466 6 -2467 2466 -1 -2486 2466 -1 -2866 2466 -1 -2467 2467 6 -2468 2467 -1 -2487 2467 -1 -2867 2467 -1 -2468 2468 6 -2469 2468 -1 -2488 2468 -1 -2868 2468 -1 -2469 2469 6 -2470 2469 -1 -2489 2469 -1 -2869 2469 -1 -2470 2470 6 -2471 2470 -1 -2490 2470 -1 -2870 2470 -1 -2471 2471 6 -2472 2471 -1 -2491 2471 -1 -2871 2471 -1 -2472 2472 6 -2473 2472 -1 -2492 2472 -1 -2872 2472 -1 -2473 2473 6 -2474 2473 -1 -2493 2473 -1 -2873 2473 -1 -2474 2474 6 -2475 2474 -1 -2494 2474 -1 -2874 2474 -1 -2475 2475 6 -2476 2475 -1 -2495 2475 -1 -2875 2475 -1 -2476 2476 6 -2477 2476 -1 -2496 2476 -1 -2876 2476 -1 -2477 2477 6 -2478 2477 -1 -2497 2477 -1 -2877 2477 -1 -2478 2478 6 -2479 2478 -1 -2498 2478 -1 -2878 2478 -1 -2479 2479 6 -2480 2479 -1 -2499 2479 -1 -2879 2479 -1 -2480 2480 6 -2500 2480 -1 -2880 2480 -1 -2481 2481 6 -2482 2481 -1 -2501 2481 -1 -2881 2481 -1 -2482 2482 6 -2483 2482 -1 -2502 2482 -1 -2882 2482 -1 -2483 2483 6 -2484 2483 -1 -2503 2483 -1 -2883 2483 -1 -2484 2484 6 -2485 2484 -1 -2504 2484 -1 -2884 2484 -1 -2485 2485 6 -2486 2485 -1 -2505 2485 -1 -2885 2485 -1 -2486 2486 6 -2487 2486 -1 -2506 2486 -1 -2886 2486 -1 -2487 2487 6 -2488 2487 -1 -2507 2487 -1 -2887 2487 -1 -2488 2488 6 -2489 2488 -1 -2508 2488 -1 -2888 2488 -1 -2489 2489 6 -2490 2489 -1 -2509 2489 -1 -2889 2489 -1 -2490 2490 6 -2491 2490 -1 -2510 2490 -1 -2890 2490 -1 -2491 2491 6 -2492 2491 -1 -2511 2491 -1 -2891 2491 -1 -2492 2492 6 -2493 2492 -1 -2512 2492 -1 -2892 2492 -1 -2493 2493 6 -2494 2493 -1 -2513 2493 -1 -2893 2493 -1 -2494 2494 6 -2495 2494 -1 -2514 2494 -1 -2894 2494 -1 -2495 2495 6 -2496 2495 -1 -2515 2495 -1 -2895 2495 -1 -2496 2496 6 -2497 2496 -1 -2516 2496 -1 -2896 2496 -1 -2497 2497 6 -2498 2497 -1 -2517 2497 -1 -2897 2497 -1 -2498 2498 6 -2499 2498 -1 -2518 2498 -1 -2898 2498 -1 -2499 2499 6 -2500 2499 -1 -2519 2499 -1 -2899 2499 -1 -2500 2500 6 -2520 2500 -1 -2900 2500 -1 -2501 2501 6 -2502 2501 -1 -2521 2501 -1 -2901 2501 -1 -2502 2502 6 -2503 2502 -1 -2522 2502 -1 -2902 2502 -1 -2503 2503 6 -2504 2503 -1 -2523 2503 -1 -2903 2503 -1 -2504 2504 6 -2505 2504 -1 -2524 2504 -1 -2904 2504 -1 -2505 2505 6 -2506 2505 -1 -2525 2505 -1 -2905 2505 -1 -2506 2506 6 -2507 2506 -1 -2526 2506 -1 -2906 2506 -1 -2507 2507 6 -2508 2507 -1 -2527 2507 -1 -2907 2507 -1 -2508 2508 6 -2509 2508 -1 -2528 2508 -1 -2908 2508 -1 -2509 2509 6 -2510 2509 -1 -2529 2509 -1 -2909 2509 -1 -2510 2510 6 -2511 2510 -1 -2530 2510 -1 -2910 2510 -1 -2511 2511 6 -2512 2511 -1 -2531 2511 -1 -2911 2511 -1 -2512 2512 6 -2513 2512 -1 -2532 2512 -1 -2912 2512 -1 -2513 2513 6 -2514 2513 -1 -2533 2513 -1 -2913 2513 -1 -2514 2514 6 -2515 2514 -1 -2534 2514 -1 -2914 2514 -1 -2515 2515 6 -2516 2515 -1 -2535 2515 -1 -2915 2515 -1 -2516 2516 6 -2517 2516 -1 -2536 2516 -1 -2916 2516 -1 -2517 2517 6 -2518 2517 -1 -2537 2517 -1 -2917 2517 -1 -2518 2518 6 -2519 2518 -1 -2538 2518 -1 -2918 2518 -1 -2519 2519 6 -2520 2519 -1 -2539 2519 -1 -2919 2519 -1 -2520 2520 6 -2540 2520 -1 -2920 2520 -1 -2521 2521 6 -2522 2521 -1 -2541 2521 -1 -2921 2521 -1 -2522 2522 6 -2523 2522 -1 -2542 2522 -1 -2922 2522 -1 -2523 2523 6 -2524 2523 -1 -2543 2523 -1 -2923 2523 -1 -2524 2524 6 -2525 2524 -1 -2544 2524 -1 -2924 2524 -1 -2525 2525 6 -2526 2525 -1 -2545 2525 -1 -2925 2525 -1 -2526 2526 6 -2527 2526 -1 -2546 2526 -1 -2926 2526 -1 -2527 2527 6 -2528 2527 -1 -2547 2527 -1 -2927 2527 -1 -2528 2528 6 -2529 2528 -1 -2548 2528 -1 -2928 2528 -1 -2529 2529 6 -2530 2529 -1 -2549 2529 -1 -2929 2529 -1 -2530 2530 6 -2531 2530 -1 -2550 2530 -1 -2930 2530 -1 -2531 2531 6 -2532 2531 -1 -2551 2531 -1 -2931 2531 -1 -2532 2532 6 -2533 2532 -1 -2552 2532 -1 -2932 2532 -1 -2533 2533 6 -2534 2533 -1 -2553 2533 -1 -2933 2533 -1 -2534 2534 6 -2535 2534 -1 -2554 2534 -1 -2934 2534 -1 -2535 2535 6 -2536 2535 -1 -2555 2535 -1 -2935 2535 -1 -2536 2536 6 -2537 2536 -1 -2556 2536 -1 -2936 2536 -1 -2537 2537 6 -2538 2537 -1 -2557 2537 -1 -2937 2537 -1 -2538 2538 6 -2539 2538 -1 -2558 2538 -1 -2938 2538 -1 -2539 2539 6 -2540 2539 -1 -2559 2539 -1 -2939 2539 -1 -2540 2540 6 -2560 2540 -1 -2940 2540 -1 -2541 2541 6 -2542 2541 -1 -2561 2541 -1 -2941 2541 -1 -2542 2542 6 -2543 2542 -1 -2562 2542 -1 -2942 2542 -1 -2543 2543 6 -2544 2543 -1 -2563 2543 -1 -2943 2543 -1 -2544 2544 6 -2545 2544 -1 -2564 2544 -1 -2944 2544 -1 -2545 2545 6 -2546 2545 -1 -2565 2545 -1 -2945 2545 -1 -2546 2546 6 -2547 2546 -1 -2566 2546 -1 -2946 2546 -1 -2547 2547 6 -2548 2547 -1 -2567 2547 -1 -2947 2547 -1 -2548 2548 6 -2549 2548 -1 -2568 2548 -1 -2948 2548 -1 -2549 2549 6 -2550 2549 -1 -2569 2549 -1 -2949 2549 -1 -2550 2550 6 -2551 2550 -1 -2570 2550 -1 -2950 2550 -1 -2551 2551 6 -2552 2551 -1 -2571 2551 -1 -2951 2551 -1 -2552 2552 6 -2553 2552 -1 -2572 2552 -1 -2952 2552 -1 -2553 2553 6 -2554 2553 -1 -2573 2553 -1 -2953 2553 -1 -2554 2554 6 -2555 2554 -1 -2574 2554 -1 -2954 2554 -1 -2555 2555 6 -2556 2555 -1 -2575 2555 -1 -2955 2555 -1 -2556 2556 6 -2557 2556 -1 -2576 2556 -1 -2956 2556 -1 -2557 2557 6 -2558 2557 -1 -2577 2557 -1 -2957 2557 -1 -2558 2558 6 -2559 2558 -1 -2578 2558 -1 -2958 2558 -1 -2559 2559 6 -2560 2559 -1 -2579 2559 -1 -2959 2559 -1 -2560 2560 6 -2580 2560 -1 -2960 2560 -1 -2561 2561 6 -2562 2561 -1 -2581 2561 -1 -2961 2561 -1 -2562 2562 6 -2563 2562 -1 -2582 2562 -1 -2962 2562 -1 -2563 2563 6 -2564 2563 -1 -2583 2563 -1 -2963 2563 -1 -2564 2564 6 -2565 2564 -1 -2584 2564 -1 -2964 2564 -1 -2565 2565 6 -2566 2565 -1 -2585 2565 -1 -2965 2565 -1 -2566 2566 6 -2567 2566 -1 -2586 2566 -1 -2966 2566 -1 -2567 2567 6 -2568 2567 -1 -2587 2567 -1 -2967 2567 -1 -2568 2568 6 -2569 2568 -1 -2588 2568 -1 -2968 2568 -1 -2569 2569 6 -2570 2569 -1 -2589 2569 -1 -2969 2569 -1 -2570 2570 6 -2571 2570 -1 -2590 2570 -1 -2970 2570 -1 -2571 2571 6 -2572 2571 -1 -2591 2571 -1 -2971 2571 -1 -2572 2572 6 -2573 2572 -1 -2592 2572 -1 -2972 2572 -1 -2573 2573 6 -2574 2573 -1 -2593 2573 -1 -2973 2573 -1 -2574 2574 6 -2575 2574 -1 -2594 2574 -1 -2974 2574 -1 -2575 2575 6 -2576 2575 -1 -2595 2575 -1 -2975 2575 -1 -2576 2576 6 -2577 2576 -1 -2596 2576 -1 -2976 2576 -1 -2577 2577 6 -2578 2577 -1 -2597 2577 -1 -2977 2577 -1 -2578 2578 6 -2579 2578 -1 -2598 2578 -1 -2978 2578 -1 -2579 2579 6 -2580 2579 -1 -2599 2579 -1 -2979 2579 -1 -2580 2580 6 -2600 2580 -1 -2980 2580 -1 -2581 2581 6 -2582 2581 -1 -2601 2581 -1 -2981 2581 -1 -2582 2582 6 -2583 2582 -1 -2602 2582 -1 -2982 2582 -1 -2583 2583 6 -2584 2583 -1 -2603 2583 -1 -2983 2583 -1 -2584 2584 6 -2585 2584 -1 -2604 2584 -1 -2984 2584 -1 -2585 2585 6 -2586 2585 -1 -2605 2585 -1 -2985 2585 -1 -2586 2586 6 -2587 2586 -1 -2606 2586 -1 -2986 2586 -1 -2587 2587 6 -2588 2587 -1 -2607 2587 -1 -2987 2587 -1 -2588 2588 6 -2589 2588 -1 -2608 2588 -1 -2988 2588 -1 -2589 2589 6 -2590 2589 -1 -2609 2589 -1 -2989 2589 -1 -2590 2590 6 -2591 2590 -1 -2610 2590 -1 -2990 2590 -1 -2591 2591 6 -2592 2591 -1 -2611 2591 -1 -2991 2591 -1 -2592 2592 6 -2593 2592 -1 -2612 2592 -1 -2992 2592 -1 -2593 2593 6 -2594 2593 -1 -2613 2593 -1 -2993 2593 -1 -2594 2594 6 -2595 2594 -1 -2614 2594 -1 -2994 2594 -1 -2595 2595 6 -2596 2595 -1 -2615 2595 -1 -2995 2595 -1 -2596 2596 6 -2597 2596 -1 -2616 2596 -1 -2996 2596 -1 -2597 2597 6 -2598 2597 -1 -2617 2597 -1 -2997 2597 -1 -2598 2598 6 -2599 2598 -1 -2618 2598 -1 -2998 2598 -1 -2599 2599 6 -2600 2599 -1 -2619 2599 -1 -2999 2599 -1 -2600 2600 6 -2620 2600 -1 -3000 2600 -1 -2601 2601 6 -2602 2601 -1 -2621 2601 -1 -3001 2601 -1 -2602 2602 6 -2603 2602 -1 -2622 2602 -1 -3002 2602 -1 -2603 2603 6 -2604 2603 -1 -2623 2603 -1 -3003 2603 -1 -2604 2604 6 -2605 2604 -1 -2624 2604 -1 -3004 2604 -1 -2605 2605 6 -2606 2605 -1 -2625 2605 -1 -3005 2605 -1 -2606 2606 6 -2607 2606 -1 -2626 2606 -1 -3006 2606 -1 -2607 2607 6 -2608 2607 -1 -2627 2607 -1 -3007 2607 -1 -2608 2608 6 -2609 2608 -1 -2628 2608 -1 -3008 2608 -1 -2609 2609 6 -2610 2609 -1 -2629 2609 -1 -3009 2609 -1 -2610 2610 6 -2611 2610 -1 -2630 2610 -1 -3010 2610 -1 -2611 2611 6 -2612 2611 -1 -2631 2611 -1 -3011 2611 -1 -2612 2612 6 -2613 2612 -1 -2632 2612 -1 -3012 2612 -1 -2613 2613 6 -2614 2613 -1 -2633 2613 -1 -3013 2613 -1 -2614 2614 6 -2615 2614 -1 -2634 2614 -1 -3014 2614 -1 -2615 2615 6 -2616 2615 -1 -2635 2615 -1 -3015 2615 -1 -2616 2616 6 -2617 2616 -1 -2636 2616 -1 -3016 2616 -1 -2617 2617 6 -2618 2617 -1 -2637 2617 -1 -3017 2617 -1 -2618 2618 6 -2619 2618 -1 -2638 2618 -1 -3018 2618 -1 -2619 2619 6 -2620 2619 -1 -2639 2619 -1 -3019 2619 -1 -2620 2620 6 -2640 2620 -1 -3020 2620 -1 -2621 2621 6 -2622 2621 -1 -2641 2621 -1 -3021 2621 -1 -2622 2622 6 -2623 2622 -1 -2642 2622 -1 -3022 2622 -1 -2623 2623 6 -2624 2623 -1 -2643 2623 -1 -3023 2623 -1 -2624 2624 6 -2625 2624 -1 -2644 2624 -1 -3024 2624 -1 -2625 2625 6 -2626 2625 -1 -2645 2625 -1 -3025 2625 -1 -2626 2626 6 -2627 2626 -1 -2646 2626 -1 -3026 2626 -1 -2627 2627 6 -2628 2627 -1 -2647 2627 -1 -3027 2627 -1 -2628 2628 6 -2629 2628 -1 -2648 2628 -1 -3028 2628 -1 -2629 2629 6 -2630 2629 -1 -2649 2629 -1 -3029 2629 -1 -2630 2630 6 -2631 2630 -1 -2650 2630 -1 -3030 2630 -1 -2631 2631 6 -2632 2631 -1 -2651 2631 -1 -3031 2631 -1 -2632 2632 6 -2633 2632 -1 -2652 2632 -1 -3032 2632 -1 -2633 2633 6 -2634 2633 -1 -2653 2633 -1 -3033 2633 -1 -2634 2634 6 -2635 2634 -1 -2654 2634 -1 -3034 2634 -1 -2635 2635 6 -2636 2635 -1 -2655 2635 -1 -3035 2635 -1 -2636 2636 6 -2637 2636 -1 -2656 2636 -1 -3036 2636 -1 -2637 2637 6 -2638 2637 -1 -2657 2637 -1 -3037 2637 -1 -2638 2638 6 -2639 2638 -1 -2658 2638 -1 -3038 2638 -1 -2639 2639 6 -2640 2639 -1 -2659 2639 -1 -3039 2639 -1 -2640 2640 6 -2660 2640 -1 -3040 2640 -1 -2641 2641 6 -2642 2641 -1 -2661 2641 -1 -3041 2641 -1 -2642 2642 6 -2643 2642 -1 -2662 2642 -1 -3042 2642 -1 -2643 2643 6 -2644 2643 -1 -2663 2643 -1 -3043 2643 -1 -2644 2644 6 -2645 2644 -1 -2664 2644 -1 -3044 2644 -1 -2645 2645 6 -2646 2645 -1 -2665 2645 -1 -3045 2645 -1 -2646 2646 6 -2647 2646 -1 -2666 2646 -1 -3046 2646 -1 -2647 2647 6 -2648 2647 -1 -2667 2647 -1 -3047 2647 -1 -2648 2648 6 -2649 2648 -1 -2668 2648 -1 -3048 2648 -1 -2649 2649 6 -2650 2649 -1 -2669 2649 -1 -3049 2649 -1 -2650 2650 6 -2651 2650 -1 -2670 2650 -1 -3050 2650 -1 -2651 2651 6 -2652 2651 -1 -2671 2651 -1 -3051 2651 -1 -2652 2652 6 -2653 2652 -1 -2672 2652 -1 -3052 2652 -1 -2653 2653 6 -2654 2653 -1 -2673 2653 -1 -3053 2653 -1 -2654 2654 6 -2655 2654 -1 -2674 2654 -1 -3054 2654 -1 -2655 2655 6 -2656 2655 -1 -2675 2655 -1 -3055 2655 -1 -2656 2656 6 -2657 2656 -1 -2676 2656 -1 -3056 2656 -1 -2657 2657 6 -2658 2657 -1 -2677 2657 -1 -3057 2657 -1 -2658 2658 6 -2659 2658 -1 -2678 2658 -1 -3058 2658 -1 -2659 2659 6 -2660 2659 -1 -2679 2659 -1 -3059 2659 -1 -2660 2660 6 -2680 2660 -1 -3060 2660 -1 -2661 2661 6 -2662 2661 -1 -2681 2661 -1 -3061 2661 -1 -2662 2662 6 -2663 2662 -1 -2682 2662 -1 -3062 2662 -1 -2663 2663 6 -2664 2663 -1 -2683 2663 -1 -3063 2663 -1 -2664 2664 6 -2665 2664 -1 -2684 2664 -1 -3064 2664 -1 -2665 2665 6 -2666 2665 -1 -2685 2665 -1 -3065 2665 -1 -2666 2666 6 -2667 2666 -1 -2686 2666 -1 -3066 2666 -1 -2667 2667 6 -2668 2667 -1 -2687 2667 -1 -3067 2667 -1 -2668 2668 6 -2669 2668 -1 -2688 2668 -1 -3068 2668 -1 -2669 2669 6 -2670 2669 -1 -2689 2669 -1 -3069 2669 -1 -2670 2670 6 -2671 2670 -1 -2690 2670 -1 -3070 2670 -1 -2671 2671 6 -2672 2671 -1 -2691 2671 -1 -3071 2671 -1 -2672 2672 6 -2673 2672 -1 -2692 2672 -1 -3072 2672 -1 -2673 2673 6 -2674 2673 -1 -2693 2673 -1 -3073 2673 -1 -2674 2674 6 -2675 2674 -1 -2694 2674 -1 -3074 2674 -1 -2675 2675 6 -2676 2675 -1 -2695 2675 -1 -3075 2675 -1 -2676 2676 6 -2677 2676 -1 -2696 2676 -1 -3076 2676 -1 -2677 2677 6 -2678 2677 -1 -2697 2677 -1 -3077 2677 -1 -2678 2678 6 -2679 2678 -1 -2698 2678 -1 -3078 2678 -1 -2679 2679 6 -2680 2679 -1 -2699 2679 -1 -3079 2679 -1 -2680 2680 6 -2700 2680 -1 -3080 2680 -1 -2681 2681 6 -2682 2681 -1 -2701 2681 -1 -3081 2681 -1 -2682 2682 6 -2683 2682 -1 -2702 2682 -1 -3082 2682 -1 -2683 2683 6 -2684 2683 -1 -2703 2683 -1 -3083 2683 -1 -2684 2684 6 -2685 2684 -1 -2704 2684 -1 -3084 2684 -1 -2685 2685 6 -2686 2685 -1 -2705 2685 -1 -3085 2685 -1 -2686 2686 6 -2687 2686 -1 -2706 2686 -1 -3086 2686 -1 -2687 2687 6 -2688 2687 -1 -2707 2687 -1 -3087 2687 -1 -2688 2688 6 -2689 2688 -1 -2708 2688 -1 -3088 2688 -1 -2689 2689 6 -2690 2689 -1 -2709 2689 -1 -3089 2689 -1 -2690 2690 6 -2691 2690 -1 -2710 2690 -1 -3090 2690 -1 -2691 2691 6 -2692 2691 -1 -2711 2691 -1 -3091 2691 -1 -2692 2692 6 -2693 2692 -1 -2712 2692 -1 -3092 2692 -1 -2693 2693 6 -2694 2693 -1 -2713 2693 -1 -3093 2693 -1 -2694 2694 6 -2695 2694 -1 -2714 2694 -1 -3094 2694 -1 -2695 2695 6 -2696 2695 -1 -2715 2695 -1 -3095 2695 -1 -2696 2696 6 -2697 2696 -1 -2716 2696 -1 -3096 2696 -1 -2697 2697 6 -2698 2697 -1 -2717 2697 -1 -3097 2697 -1 -2698 2698 6 -2699 2698 -1 -2718 2698 -1 -3098 2698 -1 -2699 2699 6 -2700 2699 -1 -2719 2699 -1 -3099 2699 -1 -2700 2700 6 -2720 2700 -1 -3100 2700 -1 -2701 2701 6 -2702 2701 -1 -2721 2701 -1 -3101 2701 -1 -2702 2702 6 -2703 2702 -1 -2722 2702 -1 -3102 2702 -1 -2703 2703 6 -2704 2703 -1 -2723 2703 -1 -3103 2703 -1 -2704 2704 6 -2705 2704 -1 -2724 2704 -1 -3104 2704 -1 -2705 2705 6 -2706 2705 -1 -2725 2705 -1 -3105 2705 -1 -2706 2706 6 -2707 2706 -1 -2726 2706 -1 -3106 2706 -1 -2707 2707 6 -2708 2707 -1 -2727 2707 -1 -3107 2707 -1 -2708 2708 6 -2709 2708 -1 -2728 2708 -1 -3108 2708 -1 -2709 2709 6 -2710 2709 -1 -2729 2709 -1 -3109 2709 -1 -2710 2710 6 -2711 2710 -1 -2730 2710 -1 -3110 2710 -1 -2711 2711 6 -2712 2711 -1 -2731 2711 -1 -3111 2711 -1 -2712 2712 6 -2713 2712 -1 -2732 2712 -1 -3112 2712 -1 -2713 2713 6 -2714 2713 -1 -2733 2713 -1 -3113 2713 -1 -2714 2714 6 -2715 2714 -1 -2734 2714 -1 -3114 2714 -1 -2715 2715 6 -2716 2715 -1 -2735 2715 -1 -3115 2715 -1 -2716 2716 6 -2717 2716 -1 -2736 2716 -1 -3116 2716 -1 -2717 2717 6 -2718 2717 -1 -2737 2717 -1 -3117 2717 -1 -2718 2718 6 -2719 2718 -1 -2738 2718 -1 -3118 2718 -1 -2719 2719 6 -2720 2719 -1 -2739 2719 -1 -3119 2719 -1 -2720 2720 6 -2740 2720 -1 -3120 2720 -1 -2721 2721 6 -2722 2721 -1 -2741 2721 -1 -3121 2721 -1 -2722 2722 6 -2723 2722 -1 -2742 2722 -1 -3122 2722 -1 -2723 2723 6 -2724 2723 -1 -2743 2723 -1 -3123 2723 -1 -2724 2724 6 -2725 2724 -1 -2744 2724 -1 -3124 2724 -1 -2725 2725 6 -2726 2725 -1 -2745 2725 -1 -3125 2725 -1 -2726 2726 6 -2727 2726 -1 -2746 2726 -1 -3126 2726 -1 -2727 2727 6 -2728 2727 -1 -2747 2727 -1 -3127 2727 -1 -2728 2728 6 -2729 2728 -1 -2748 2728 -1 -3128 2728 -1 -2729 2729 6 -2730 2729 -1 -2749 2729 -1 -3129 2729 -1 -2730 2730 6 -2731 2730 -1 -2750 2730 -1 -3130 2730 -1 -2731 2731 6 -2732 2731 -1 -2751 2731 -1 -3131 2731 -1 -2732 2732 6 -2733 2732 -1 -2752 2732 -1 -3132 2732 -1 -2733 2733 6 -2734 2733 -1 -2753 2733 -1 -3133 2733 -1 -2734 2734 6 -2735 2734 -1 -2754 2734 -1 -3134 2734 -1 -2735 2735 6 -2736 2735 -1 -2755 2735 -1 -3135 2735 -1 -2736 2736 6 -2737 2736 -1 -2756 2736 -1 -3136 2736 -1 -2737 2737 6 -2738 2737 -1 -2757 2737 -1 -3137 2737 -1 -2738 2738 6 -2739 2738 -1 -2758 2738 -1 -3138 2738 -1 -2739 2739 6 -2740 2739 -1 -2759 2739 -1 -3139 2739 -1 -2740 2740 6 -2760 2740 -1 -3140 2740 -1 -2741 2741 6 -2742 2741 -1 -2761 2741 -1 -3141 2741 -1 -2742 2742 6 -2743 2742 -1 -2762 2742 -1 -3142 2742 -1 -2743 2743 6 -2744 2743 -1 -2763 2743 -1 -3143 2743 -1 -2744 2744 6 -2745 2744 -1 -2764 2744 -1 -3144 2744 -1 -2745 2745 6 -2746 2745 -1 -2765 2745 -1 -3145 2745 -1 -2746 2746 6 -2747 2746 -1 -2766 2746 -1 -3146 2746 -1 -2747 2747 6 -2748 2747 -1 -2767 2747 -1 -3147 2747 -1 -2748 2748 6 -2749 2748 -1 -2768 2748 -1 -3148 2748 -1 -2749 2749 6 -2750 2749 -1 -2769 2749 -1 -3149 2749 -1 -2750 2750 6 -2751 2750 -1 -2770 2750 -1 -3150 2750 -1 -2751 2751 6 -2752 2751 -1 -2771 2751 -1 -3151 2751 -1 -2752 2752 6 -2753 2752 -1 -2772 2752 -1 -3152 2752 -1 -2753 2753 6 -2754 2753 -1 -2773 2753 -1 -3153 2753 -1 -2754 2754 6 -2755 2754 -1 -2774 2754 -1 -3154 2754 -1 -2755 2755 6 -2756 2755 -1 -2775 2755 -1 -3155 2755 -1 -2756 2756 6 -2757 2756 -1 -2776 2756 -1 -3156 2756 -1 -2757 2757 6 -2758 2757 -1 -2777 2757 -1 -3157 2757 -1 -2758 2758 6 -2759 2758 -1 -2778 2758 -1 -3158 2758 -1 -2759 2759 6 -2760 2759 -1 -2779 2759 -1 -3159 2759 -1 -2760 2760 6 -2780 2760 -1 -3160 2760 -1 -2761 2761 6 -2762 2761 -1 -2781 2761 -1 -3161 2761 -1 -2762 2762 6 -2763 2762 -1 -2782 2762 -1 -3162 2762 -1 -2763 2763 6 -2764 2763 -1 -2783 2763 -1 -3163 2763 -1 -2764 2764 6 -2765 2764 -1 -2784 2764 -1 -3164 2764 -1 -2765 2765 6 -2766 2765 -1 -2785 2765 -1 -3165 2765 -1 -2766 2766 6 -2767 2766 -1 -2786 2766 -1 -3166 2766 -1 -2767 2767 6 -2768 2767 -1 -2787 2767 -1 -3167 2767 -1 -2768 2768 6 -2769 2768 -1 -2788 2768 -1 -3168 2768 -1 -2769 2769 6 -2770 2769 -1 -2789 2769 -1 -3169 2769 -1 -2770 2770 6 -2771 2770 -1 -2790 2770 -1 -3170 2770 -1 -2771 2771 6 -2772 2771 -1 -2791 2771 -1 -3171 2771 -1 -2772 2772 6 -2773 2772 -1 -2792 2772 -1 -3172 2772 -1 -2773 2773 6 -2774 2773 -1 -2793 2773 -1 -3173 2773 -1 -2774 2774 6 -2775 2774 -1 -2794 2774 -1 -3174 2774 -1 -2775 2775 6 -2776 2775 -1 -2795 2775 -1 -3175 2775 -1 -2776 2776 6 -2777 2776 -1 -2796 2776 -1 -3176 2776 -1 -2777 2777 6 -2778 2777 -1 -2797 2777 -1 -3177 2777 -1 -2778 2778 6 -2779 2778 -1 -2798 2778 -1 -3178 2778 -1 -2779 2779 6 -2780 2779 -1 -2799 2779 -1 -3179 2779 -1 -2780 2780 6 -2800 2780 -1 -3180 2780 -1 -2781 2781 6 -2782 2781 -1 -3181 2781 -1 -2782 2782 6 -2783 2782 -1 -3182 2782 -1 -2783 2783 6 -2784 2783 -1 -3183 2783 -1 -2784 2784 6 -2785 2784 -1 -3184 2784 -1 -2785 2785 6 -2786 2785 -1 -3185 2785 -1 -2786 2786 6 -2787 2786 -1 -3186 2786 -1 -2787 2787 6 -2788 2787 -1 -3187 2787 -1 -2788 2788 6 -2789 2788 -1 -3188 2788 -1 -2789 2789 6 -2790 2789 -1 -3189 2789 -1 -2790 2790 6 -2791 2790 -1 -3190 2790 -1 -2791 2791 6 -2792 2791 -1 -3191 2791 -1 -2792 2792 6 -2793 2792 -1 -3192 2792 -1 -2793 2793 6 -2794 2793 -1 -3193 2793 -1 -2794 2794 6 -2795 2794 -1 -3194 2794 -1 -2795 2795 6 -2796 2795 -1 -3195 2795 -1 -2796 2796 6 -2797 2796 -1 -3196 2796 -1 -2797 2797 6 -2798 2797 -1 -3197 2797 -1 -2798 2798 6 -2799 2798 -1 -3198 2798 -1 -2799 2799 6 -2800 2799 -1 -3199 2799 -1 -2800 2800 6 -3200 2800 -1 -2801 2801 6 -2802 2801 -1 -2821 2801 -1 -3201 2801 -1 -2802 2802 6 -2803 2802 -1 -2822 2802 -1 -3202 2802 -1 -2803 2803 6 -2804 2803 -1 -2823 2803 -1 -3203 2803 -1 -2804 2804 6 -2805 2804 -1 -2824 2804 -1 -3204 2804 -1 -2805 2805 6 -2806 2805 -1 -2825 2805 -1 -3205 2805 -1 -2806 2806 6 -2807 2806 -1 -2826 2806 -1 -3206 2806 -1 -2807 2807 6 -2808 2807 -1 -2827 2807 -1 -3207 2807 -1 -2808 2808 6 -2809 2808 -1 -2828 2808 -1 -3208 2808 -1 -2809 2809 6 -2810 2809 -1 -2829 2809 -1 -3209 2809 -1 -2810 2810 6 -2811 2810 -1 -2830 2810 -1 -3210 2810 -1 -2811 2811 6 -2812 2811 -1 -2831 2811 -1 -3211 2811 -1 -2812 2812 6 -2813 2812 -1 -2832 2812 -1 -3212 2812 -1 -2813 2813 6 -2814 2813 -1 -2833 2813 -1 -3213 2813 -1 -2814 2814 6 -2815 2814 -1 -2834 2814 -1 -3214 2814 -1 -2815 2815 6 -2816 2815 -1 -2835 2815 -1 -3215 2815 -1 -2816 2816 6 -2817 2816 -1 -2836 2816 -1 -3216 2816 -1 -2817 2817 6 -2818 2817 -1 -2837 2817 -1 -3217 2817 -1 -2818 2818 6 -2819 2818 -1 -2838 2818 -1 -3218 2818 -1 -2819 2819 6 -2820 2819 -1 -2839 2819 -1 -3219 2819 -1 -2820 2820 6 -2840 2820 -1 -3220 2820 -1 -2821 2821 6 -2822 2821 -1 -2841 2821 -1 -3221 2821 -1 -2822 2822 6 -2823 2822 -1 -2842 2822 -1 -3222 2822 -1 -2823 2823 6 -2824 2823 -1 -2843 2823 -1 -3223 2823 -1 -2824 2824 6 -2825 2824 -1 -2844 2824 -1 -3224 2824 -1 -2825 2825 6 -2826 2825 -1 -2845 2825 -1 -3225 2825 -1 -2826 2826 6 -2827 2826 -1 -2846 2826 -1 -3226 2826 -1 -2827 2827 6 -2828 2827 -1 -2847 2827 -1 -3227 2827 -1 -2828 2828 6 -2829 2828 -1 -2848 2828 -1 -3228 2828 -1 -2829 2829 6 -2830 2829 -1 -2849 2829 -1 -3229 2829 -1 -2830 2830 6 -2831 2830 -1 -2850 2830 -1 -3230 2830 -1 -2831 2831 6 -2832 2831 -1 -2851 2831 -1 -3231 2831 -1 -2832 2832 6 -2833 2832 -1 -2852 2832 -1 -3232 2832 -1 -2833 2833 6 -2834 2833 -1 -2853 2833 -1 -3233 2833 -1 -2834 2834 6 -2835 2834 -1 -2854 2834 -1 -3234 2834 -1 -2835 2835 6 -2836 2835 -1 -2855 2835 -1 -3235 2835 -1 -2836 2836 6 -2837 2836 -1 -2856 2836 -1 -3236 2836 -1 -2837 2837 6 -2838 2837 -1 -2857 2837 -1 -3237 2837 -1 -2838 2838 6 -2839 2838 -1 -2858 2838 -1 -3238 2838 -1 -2839 2839 6 -2840 2839 -1 -2859 2839 -1 -3239 2839 -1 -2840 2840 6 -2860 2840 -1 -3240 2840 -1 -2841 2841 6 -2842 2841 -1 -2861 2841 -1 -3241 2841 -1 -2842 2842 6 -2843 2842 -1 -2862 2842 -1 -3242 2842 -1 -2843 2843 6 -2844 2843 -1 -2863 2843 -1 -3243 2843 -1 -2844 2844 6 -2845 2844 -1 -2864 2844 -1 -3244 2844 -1 -2845 2845 6 -2846 2845 -1 -2865 2845 -1 -3245 2845 -1 -2846 2846 6 -2847 2846 -1 -2866 2846 -1 -3246 2846 -1 -2847 2847 6 -2848 2847 -1 -2867 2847 -1 -3247 2847 -1 -2848 2848 6 -2849 2848 -1 -2868 2848 -1 -3248 2848 -1 -2849 2849 6 -2850 2849 -1 -2869 2849 -1 -3249 2849 -1 -2850 2850 6 -2851 2850 -1 -2870 2850 -1 -3250 2850 -1 -2851 2851 6 -2852 2851 -1 -2871 2851 -1 -3251 2851 -1 -2852 2852 6 -2853 2852 -1 -2872 2852 -1 -3252 2852 -1 -2853 2853 6 -2854 2853 -1 -2873 2853 -1 -3253 2853 -1 -2854 2854 6 -2855 2854 -1 -2874 2854 -1 -3254 2854 -1 -2855 2855 6 -2856 2855 -1 -2875 2855 -1 -3255 2855 -1 -2856 2856 6 -2857 2856 -1 -2876 2856 -1 -3256 2856 -1 -2857 2857 6 -2858 2857 -1 -2877 2857 -1 -3257 2857 -1 -2858 2858 6 -2859 2858 -1 -2878 2858 -1 -3258 2858 -1 -2859 2859 6 -2860 2859 -1 -2879 2859 -1 -3259 2859 -1 -2860 2860 6 -2880 2860 -1 -3260 2860 -1 -2861 2861 6 -2862 2861 -1 -2881 2861 -1 -3261 2861 -1 -2862 2862 6 -2863 2862 -1 -2882 2862 -1 -3262 2862 -1 -2863 2863 6 -2864 2863 -1 -2883 2863 -1 -3263 2863 -1 -2864 2864 6 -2865 2864 -1 -2884 2864 -1 -3264 2864 -1 -2865 2865 6 -2866 2865 -1 -2885 2865 -1 -3265 2865 -1 -2866 2866 6 -2867 2866 -1 -2886 2866 -1 -3266 2866 -1 -2867 2867 6 -2868 2867 -1 -2887 2867 -1 -3267 2867 -1 -2868 2868 6 -2869 2868 -1 -2888 2868 -1 -3268 2868 -1 -2869 2869 6 -2870 2869 -1 -2889 2869 -1 -3269 2869 -1 -2870 2870 6 -2871 2870 -1 -2890 2870 -1 -3270 2870 -1 -2871 2871 6 -2872 2871 -1 -2891 2871 -1 -3271 2871 -1 -2872 2872 6 -2873 2872 -1 -2892 2872 -1 -3272 2872 -1 -2873 2873 6 -2874 2873 -1 -2893 2873 -1 -3273 2873 -1 -2874 2874 6 -2875 2874 -1 -2894 2874 -1 -3274 2874 -1 -2875 2875 6 -2876 2875 -1 -2895 2875 -1 -3275 2875 -1 -2876 2876 6 -2877 2876 -1 -2896 2876 -1 -3276 2876 -1 -2877 2877 6 -2878 2877 -1 -2897 2877 -1 -3277 2877 -1 -2878 2878 6 -2879 2878 -1 -2898 2878 -1 -3278 2878 -1 -2879 2879 6 -2880 2879 -1 -2899 2879 -1 -3279 2879 -1 -2880 2880 6 -2900 2880 -1 -3280 2880 -1 -2881 2881 6 -2882 2881 -1 -2901 2881 -1 -3281 2881 -1 -2882 2882 6 -2883 2882 -1 -2902 2882 -1 -3282 2882 -1 -2883 2883 6 -2884 2883 -1 -2903 2883 -1 -3283 2883 -1 -2884 2884 6 -2885 2884 -1 -2904 2884 -1 -3284 2884 -1 -2885 2885 6 -2886 2885 -1 -2905 2885 -1 -3285 2885 -1 -2886 2886 6 -2887 2886 -1 -2906 2886 -1 -3286 2886 -1 -2887 2887 6 -2888 2887 -1 -2907 2887 -1 -3287 2887 -1 -2888 2888 6 -2889 2888 -1 -2908 2888 -1 -3288 2888 -1 -2889 2889 6 -2890 2889 -1 -2909 2889 -1 -3289 2889 -1 -2890 2890 6 -2891 2890 -1 -2910 2890 -1 -3290 2890 -1 -2891 2891 6 -2892 2891 -1 -2911 2891 -1 -3291 2891 -1 -2892 2892 6 -2893 2892 -1 -2912 2892 -1 -3292 2892 -1 -2893 2893 6 -2894 2893 -1 -2913 2893 -1 -3293 2893 -1 -2894 2894 6 -2895 2894 -1 -2914 2894 -1 -3294 2894 -1 -2895 2895 6 -2896 2895 -1 -2915 2895 -1 -3295 2895 -1 -2896 2896 6 -2897 2896 -1 -2916 2896 -1 -3296 2896 -1 -2897 2897 6 -2898 2897 -1 -2917 2897 -1 -3297 2897 -1 -2898 2898 6 -2899 2898 -1 -2918 2898 -1 -3298 2898 -1 -2899 2899 6 -2900 2899 -1 -2919 2899 -1 -3299 2899 -1 -2900 2900 6 -2920 2900 -1 -3300 2900 -1 -2901 2901 6 -2902 2901 -1 -2921 2901 -1 -3301 2901 -1 -2902 2902 6 -2903 2902 -1 -2922 2902 -1 -3302 2902 -1 -2903 2903 6 -2904 2903 -1 -2923 2903 -1 -3303 2903 -1 -2904 2904 6 -2905 2904 -1 -2924 2904 -1 -3304 2904 -1 -2905 2905 6 -2906 2905 -1 -2925 2905 -1 -3305 2905 -1 -2906 2906 6 -2907 2906 -1 -2926 2906 -1 -3306 2906 -1 -2907 2907 6 -2908 2907 -1 -2927 2907 -1 -3307 2907 -1 -2908 2908 6 -2909 2908 -1 -2928 2908 -1 -3308 2908 -1 -2909 2909 6 -2910 2909 -1 -2929 2909 -1 -3309 2909 -1 -2910 2910 6 -2911 2910 -1 -2930 2910 -1 -3310 2910 -1 -2911 2911 6 -2912 2911 -1 -2931 2911 -1 -3311 2911 -1 -2912 2912 6 -2913 2912 -1 -2932 2912 -1 -3312 2912 -1 -2913 2913 6 -2914 2913 -1 -2933 2913 -1 -3313 2913 -1 -2914 2914 6 -2915 2914 -1 -2934 2914 -1 -3314 2914 -1 -2915 2915 6 -2916 2915 -1 -2935 2915 -1 -3315 2915 -1 -2916 2916 6 -2917 2916 -1 -2936 2916 -1 -3316 2916 -1 -2917 2917 6 -2918 2917 -1 -2937 2917 -1 -3317 2917 -1 -2918 2918 6 -2919 2918 -1 -2938 2918 -1 -3318 2918 -1 -2919 2919 6 -2920 2919 -1 -2939 2919 -1 -3319 2919 -1 -2920 2920 6 -2940 2920 -1 -3320 2920 -1 -2921 2921 6 -2922 2921 -1 -2941 2921 -1 -3321 2921 -1 -2922 2922 6 -2923 2922 -1 -2942 2922 -1 -3322 2922 -1 -2923 2923 6 -2924 2923 -1 -2943 2923 -1 -3323 2923 -1 -2924 2924 6 -2925 2924 -1 -2944 2924 -1 -3324 2924 -1 -2925 2925 6 -2926 2925 -1 -2945 2925 -1 -3325 2925 -1 -2926 2926 6 -2927 2926 -1 -2946 2926 -1 -3326 2926 -1 -2927 2927 6 -2928 2927 -1 -2947 2927 -1 -3327 2927 -1 -2928 2928 6 -2929 2928 -1 -2948 2928 -1 -3328 2928 -1 -2929 2929 6 -2930 2929 -1 -2949 2929 -1 -3329 2929 -1 -2930 2930 6 -2931 2930 -1 -2950 2930 -1 -3330 2930 -1 -2931 2931 6 -2932 2931 -1 -2951 2931 -1 -3331 2931 -1 -2932 2932 6 -2933 2932 -1 -2952 2932 -1 -3332 2932 -1 -2933 2933 6 -2934 2933 -1 -2953 2933 -1 -3333 2933 -1 -2934 2934 6 -2935 2934 -1 -2954 2934 -1 -3334 2934 -1 -2935 2935 6 -2936 2935 -1 -2955 2935 -1 -3335 2935 -1 -2936 2936 6 -2937 2936 -1 -2956 2936 -1 -3336 2936 -1 -2937 2937 6 -2938 2937 -1 -2957 2937 -1 -3337 2937 -1 -2938 2938 6 -2939 2938 -1 -2958 2938 -1 -3338 2938 -1 -2939 2939 6 -2940 2939 -1 -2959 2939 -1 -3339 2939 -1 -2940 2940 6 -2960 2940 -1 -3340 2940 -1 -2941 2941 6 -2942 2941 -1 -2961 2941 -1 -3341 2941 -1 -2942 2942 6 -2943 2942 -1 -2962 2942 -1 -3342 2942 -1 -2943 2943 6 -2944 2943 -1 -2963 2943 -1 -3343 2943 -1 -2944 2944 6 -2945 2944 -1 -2964 2944 -1 -3344 2944 -1 -2945 2945 6 -2946 2945 -1 -2965 2945 -1 -3345 2945 -1 -2946 2946 6 -2947 2946 -1 -2966 2946 -1 -3346 2946 -1 -2947 2947 6 -2948 2947 -1 -2967 2947 -1 -3347 2947 -1 -2948 2948 6 -2949 2948 -1 -2968 2948 -1 -3348 2948 -1 -2949 2949 6 -2950 2949 -1 -2969 2949 -1 -3349 2949 -1 -2950 2950 6 -2951 2950 -1 -2970 2950 -1 -3350 2950 -1 -2951 2951 6 -2952 2951 -1 -2971 2951 -1 -3351 2951 -1 -2952 2952 6 -2953 2952 -1 -2972 2952 -1 -3352 2952 -1 -2953 2953 6 -2954 2953 -1 -2973 2953 -1 -3353 2953 -1 -2954 2954 6 -2955 2954 -1 -2974 2954 -1 -3354 2954 -1 -2955 2955 6 -2956 2955 -1 -2975 2955 -1 -3355 2955 -1 -2956 2956 6 -2957 2956 -1 -2976 2956 -1 -3356 2956 -1 -2957 2957 6 -2958 2957 -1 -2977 2957 -1 -3357 2957 -1 -2958 2958 6 -2959 2958 -1 -2978 2958 -1 -3358 2958 -1 -2959 2959 6 -2960 2959 -1 -2979 2959 -1 -3359 2959 -1 -2960 2960 6 -2980 2960 -1 -3360 2960 -1 -2961 2961 6 -2962 2961 -1 -2981 2961 -1 -3361 2961 -1 -2962 2962 6 -2963 2962 -1 -2982 2962 -1 -3362 2962 -1 -2963 2963 6 -2964 2963 -1 -2983 2963 -1 -3363 2963 -1 -2964 2964 6 -2965 2964 -1 -2984 2964 -1 -3364 2964 -1 -2965 2965 6 -2966 2965 -1 -2985 2965 -1 -3365 2965 -1 -2966 2966 6 -2967 2966 -1 -2986 2966 -1 -3366 2966 -1 -2967 2967 6 -2968 2967 -1 -2987 2967 -1 -3367 2967 -1 -2968 2968 6 -2969 2968 -1 -2988 2968 -1 -3368 2968 -1 -2969 2969 6 -2970 2969 -1 -2989 2969 -1 -3369 2969 -1 -2970 2970 6 -2971 2970 -1 -2990 2970 -1 -3370 2970 -1 -2971 2971 6 -2972 2971 -1 -2991 2971 -1 -3371 2971 -1 -2972 2972 6 -2973 2972 -1 -2992 2972 -1 -3372 2972 -1 -2973 2973 6 -2974 2973 -1 -2993 2973 -1 -3373 2973 -1 -2974 2974 6 -2975 2974 -1 -2994 2974 -1 -3374 2974 -1 -2975 2975 6 -2976 2975 -1 -2995 2975 -1 -3375 2975 -1 -2976 2976 6 -2977 2976 -1 -2996 2976 -1 -3376 2976 -1 -2977 2977 6 -2978 2977 -1 -2997 2977 -1 -3377 2977 -1 -2978 2978 6 -2979 2978 -1 -2998 2978 -1 -3378 2978 -1 -2979 2979 6 -2980 2979 -1 -2999 2979 -1 -3379 2979 -1 -2980 2980 6 -3000 2980 -1 -3380 2980 -1 -2981 2981 6 -2982 2981 -1 -3001 2981 -1 -3381 2981 -1 -2982 2982 6 -2983 2982 -1 -3002 2982 -1 -3382 2982 -1 -2983 2983 6 -2984 2983 -1 -3003 2983 -1 -3383 2983 -1 -2984 2984 6 -2985 2984 -1 -3004 2984 -1 -3384 2984 -1 -2985 2985 6 -2986 2985 -1 -3005 2985 -1 -3385 2985 -1 -2986 2986 6 -2987 2986 -1 -3006 2986 -1 -3386 2986 -1 -2987 2987 6 -2988 2987 -1 -3007 2987 -1 -3387 2987 -1 -2988 2988 6 -2989 2988 -1 -3008 2988 -1 -3388 2988 -1 -2989 2989 6 -2990 2989 -1 -3009 2989 -1 -3389 2989 -1 -2990 2990 6 -2991 2990 -1 -3010 2990 -1 -3390 2990 -1 -2991 2991 6 -2992 2991 -1 -3011 2991 -1 -3391 2991 -1 -2992 2992 6 -2993 2992 -1 -3012 2992 -1 -3392 2992 -1 -2993 2993 6 -2994 2993 -1 -3013 2993 -1 -3393 2993 -1 -2994 2994 6 -2995 2994 -1 -3014 2994 -1 -3394 2994 -1 -2995 2995 6 -2996 2995 -1 -3015 2995 -1 -3395 2995 -1 -2996 2996 6 -2997 2996 -1 -3016 2996 -1 -3396 2996 -1 -2997 2997 6 -2998 2997 -1 -3017 2997 -1 -3397 2997 -1 -2998 2998 6 -2999 2998 -1 -3018 2998 -1 -3398 2998 -1 -2999 2999 6 -3000 2999 -1 -3019 2999 -1 -3399 2999 -1 -3000 3000 6 -3020 3000 -1 -3400 3000 -1 -3001 3001 6 -3002 3001 -1 -3021 3001 -1 -3401 3001 -1 -3002 3002 6 -3003 3002 -1 -3022 3002 -1 -3402 3002 -1 -3003 3003 6 -3004 3003 -1 -3023 3003 -1 -3403 3003 -1 -3004 3004 6 -3005 3004 -1 -3024 3004 -1 -3404 3004 -1 -3005 3005 6 -3006 3005 -1 -3025 3005 -1 -3405 3005 -1 -3006 3006 6 -3007 3006 -1 -3026 3006 -1 -3406 3006 -1 -3007 3007 6 -3008 3007 -1 -3027 3007 -1 -3407 3007 -1 -3008 3008 6 -3009 3008 -1 -3028 3008 -1 -3408 3008 -1 -3009 3009 6 -3010 3009 -1 -3029 3009 -1 -3409 3009 -1 -3010 3010 6 -3011 3010 -1 -3030 3010 -1 -3410 3010 -1 -3011 3011 6 -3012 3011 -1 -3031 3011 -1 -3411 3011 -1 -3012 3012 6 -3013 3012 -1 -3032 3012 -1 -3412 3012 -1 -3013 3013 6 -3014 3013 -1 -3033 3013 -1 -3413 3013 -1 -3014 3014 6 -3015 3014 -1 -3034 3014 -1 -3414 3014 -1 -3015 3015 6 -3016 3015 -1 -3035 3015 -1 -3415 3015 -1 -3016 3016 6 -3017 3016 -1 -3036 3016 -1 -3416 3016 -1 -3017 3017 6 -3018 3017 -1 -3037 3017 -1 -3417 3017 -1 -3018 3018 6 -3019 3018 -1 -3038 3018 -1 -3418 3018 -1 -3019 3019 6 -3020 3019 -1 -3039 3019 -1 -3419 3019 -1 -3020 3020 6 -3040 3020 -1 -3420 3020 -1 -3021 3021 6 -3022 3021 -1 -3041 3021 -1 -3421 3021 -1 -3022 3022 6 -3023 3022 -1 -3042 3022 -1 -3422 3022 -1 -3023 3023 6 -3024 3023 -1 -3043 3023 -1 -3423 3023 -1 -3024 3024 6 -3025 3024 -1 -3044 3024 -1 -3424 3024 -1 -3025 3025 6 -3026 3025 -1 -3045 3025 -1 -3425 3025 -1 -3026 3026 6 -3027 3026 -1 -3046 3026 -1 -3426 3026 -1 -3027 3027 6 -3028 3027 -1 -3047 3027 -1 -3427 3027 -1 -3028 3028 6 -3029 3028 -1 -3048 3028 -1 -3428 3028 -1 -3029 3029 6 -3030 3029 -1 -3049 3029 -1 -3429 3029 -1 -3030 3030 6 -3031 3030 -1 -3050 3030 -1 -3430 3030 -1 -3031 3031 6 -3032 3031 -1 -3051 3031 -1 -3431 3031 -1 -3032 3032 6 -3033 3032 -1 -3052 3032 -1 -3432 3032 -1 -3033 3033 6 -3034 3033 -1 -3053 3033 -1 -3433 3033 -1 -3034 3034 6 -3035 3034 -1 -3054 3034 -1 -3434 3034 -1 -3035 3035 6 -3036 3035 -1 -3055 3035 -1 -3435 3035 -1 -3036 3036 6 -3037 3036 -1 -3056 3036 -1 -3436 3036 -1 -3037 3037 6 -3038 3037 -1 -3057 3037 -1 -3437 3037 -1 -3038 3038 6 -3039 3038 -1 -3058 3038 -1 -3438 3038 -1 -3039 3039 6 -3040 3039 -1 -3059 3039 -1 -3439 3039 -1 -3040 3040 6 -3060 3040 -1 -3440 3040 -1 -3041 3041 6 -3042 3041 -1 -3061 3041 -1 -3441 3041 -1 -3042 3042 6 -3043 3042 -1 -3062 3042 -1 -3442 3042 -1 -3043 3043 6 -3044 3043 -1 -3063 3043 -1 -3443 3043 -1 -3044 3044 6 -3045 3044 -1 -3064 3044 -1 -3444 3044 -1 -3045 3045 6 -3046 3045 -1 -3065 3045 -1 -3445 3045 -1 -3046 3046 6 -3047 3046 -1 -3066 3046 -1 -3446 3046 -1 -3047 3047 6 -3048 3047 -1 -3067 3047 -1 -3447 3047 -1 -3048 3048 6 -3049 3048 -1 -3068 3048 -1 -3448 3048 -1 -3049 3049 6 -3050 3049 -1 -3069 3049 -1 -3449 3049 -1 -3050 3050 6 -3051 3050 -1 -3070 3050 -1 -3450 3050 -1 -3051 3051 6 -3052 3051 -1 -3071 3051 -1 -3451 3051 -1 -3052 3052 6 -3053 3052 -1 -3072 3052 -1 -3452 3052 -1 -3053 3053 6 -3054 3053 -1 -3073 3053 -1 -3453 3053 -1 -3054 3054 6 -3055 3054 -1 -3074 3054 -1 -3454 3054 -1 -3055 3055 6 -3056 3055 -1 -3075 3055 -1 -3455 3055 -1 -3056 3056 6 -3057 3056 -1 -3076 3056 -1 -3456 3056 -1 -3057 3057 6 -3058 3057 -1 -3077 3057 -1 -3457 3057 -1 -3058 3058 6 -3059 3058 -1 -3078 3058 -1 -3458 3058 -1 -3059 3059 6 -3060 3059 -1 -3079 3059 -1 -3459 3059 -1 -3060 3060 6 -3080 3060 -1 -3460 3060 -1 -3061 3061 6 -3062 3061 -1 -3081 3061 -1 -3461 3061 -1 -3062 3062 6 -3063 3062 -1 -3082 3062 -1 -3462 3062 -1 -3063 3063 6 -3064 3063 -1 -3083 3063 -1 -3463 3063 -1 -3064 3064 6 -3065 3064 -1 -3084 3064 -1 -3464 3064 -1 -3065 3065 6 -3066 3065 -1 -3085 3065 -1 -3465 3065 -1 -3066 3066 6 -3067 3066 -1 -3086 3066 -1 -3466 3066 -1 -3067 3067 6 -3068 3067 -1 -3087 3067 -1 -3467 3067 -1 -3068 3068 6 -3069 3068 -1 -3088 3068 -1 -3468 3068 -1 -3069 3069 6 -3070 3069 -1 -3089 3069 -1 -3469 3069 -1 -3070 3070 6 -3071 3070 -1 -3090 3070 -1 -3470 3070 -1 -3071 3071 6 -3072 3071 -1 -3091 3071 -1 -3471 3071 -1 -3072 3072 6 -3073 3072 -1 -3092 3072 -1 -3472 3072 -1 -3073 3073 6 -3074 3073 -1 -3093 3073 -1 -3473 3073 -1 -3074 3074 6 -3075 3074 -1 -3094 3074 -1 -3474 3074 -1 -3075 3075 6 -3076 3075 -1 -3095 3075 -1 -3475 3075 -1 -3076 3076 6 -3077 3076 -1 -3096 3076 -1 -3476 3076 -1 -3077 3077 6 -3078 3077 -1 -3097 3077 -1 -3477 3077 -1 -3078 3078 6 -3079 3078 -1 -3098 3078 -1 -3478 3078 -1 -3079 3079 6 -3080 3079 -1 -3099 3079 -1 -3479 3079 -1 -3080 3080 6 -3100 3080 -1 -3480 3080 -1 -3081 3081 6 -3082 3081 -1 -3101 3081 -1 -3481 3081 -1 -3082 3082 6 -3083 3082 -1 -3102 3082 -1 -3482 3082 -1 -3083 3083 6 -3084 3083 -1 -3103 3083 -1 -3483 3083 -1 -3084 3084 6 -3085 3084 -1 -3104 3084 -1 -3484 3084 -1 -3085 3085 6 -3086 3085 -1 -3105 3085 -1 -3485 3085 -1 -3086 3086 6 -3087 3086 -1 -3106 3086 -1 -3486 3086 -1 -3087 3087 6 -3088 3087 -1 -3107 3087 -1 -3487 3087 -1 -3088 3088 6 -3089 3088 -1 -3108 3088 -1 -3488 3088 -1 -3089 3089 6 -3090 3089 -1 -3109 3089 -1 -3489 3089 -1 -3090 3090 6 -3091 3090 -1 -3110 3090 -1 -3490 3090 -1 -3091 3091 6 -3092 3091 -1 -3111 3091 -1 -3491 3091 -1 -3092 3092 6 -3093 3092 -1 -3112 3092 -1 -3492 3092 -1 -3093 3093 6 -3094 3093 -1 -3113 3093 -1 -3493 3093 -1 -3094 3094 6 -3095 3094 -1 -3114 3094 -1 -3494 3094 -1 -3095 3095 6 -3096 3095 -1 -3115 3095 -1 -3495 3095 -1 -3096 3096 6 -3097 3096 -1 -3116 3096 -1 -3496 3096 -1 -3097 3097 6 -3098 3097 -1 -3117 3097 -1 -3497 3097 -1 -3098 3098 6 -3099 3098 -1 -3118 3098 -1 -3498 3098 -1 -3099 3099 6 -3100 3099 -1 -3119 3099 -1 -3499 3099 -1 -3100 3100 6 -3120 3100 -1 -3500 3100 -1 -3101 3101 6 -3102 3101 -1 -3121 3101 -1 -3501 3101 -1 -3102 3102 6 -3103 3102 -1 -3122 3102 -1 -3502 3102 -1 -3103 3103 6 -3104 3103 -1 -3123 3103 -1 -3503 3103 -1 -3104 3104 6 -3105 3104 -1 -3124 3104 -1 -3504 3104 -1 -3105 3105 6 -3106 3105 -1 -3125 3105 -1 -3505 3105 -1 -3106 3106 6 -3107 3106 -1 -3126 3106 -1 -3506 3106 -1 -3107 3107 6 -3108 3107 -1 -3127 3107 -1 -3507 3107 -1 -3108 3108 6 -3109 3108 -1 -3128 3108 -1 -3508 3108 -1 -3109 3109 6 -3110 3109 -1 -3129 3109 -1 -3509 3109 -1 -3110 3110 6 -3111 3110 -1 -3130 3110 -1 -3510 3110 -1 -3111 3111 6 -3112 3111 -1 -3131 3111 -1 -3511 3111 -1 -3112 3112 6 -3113 3112 -1 -3132 3112 -1 -3512 3112 -1 -3113 3113 6 -3114 3113 -1 -3133 3113 -1 -3513 3113 -1 -3114 3114 6 -3115 3114 -1 -3134 3114 -1 -3514 3114 -1 -3115 3115 6 -3116 3115 -1 -3135 3115 -1 -3515 3115 -1 -3116 3116 6 -3117 3116 -1 -3136 3116 -1 -3516 3116 -1 -3117 3117 6 -3118 3117 -1 -3137 3117 -1 -3517 3117 -1 -3118 3118 6 -3119 3118 -1 -3138 3118 -1 -3518 3118 -1 -3119 3119 6 -3120 3119 -1 -3139 3119 -1 -3519 3119 -1 -3120 3120 6 -3140 3120 -1 -3520 3120 -1 -3121 3121 6 -3122 3121 -1 -3141 3121 -1 -3521 3121 -1 -3122 3122 6 -3123 3122 -1 -3142 3122 -1 -3522 3122 -1 -3123 3123 6 -3124 3123 -1 -3143 3123 -1 -3523 3123 -1 -3124 3124 6 -3125 3124 -1 -3144 3124 -1 -3524 3124 -1 -3125 3125 6 -3126 3125 -1 -3145 3125 -1 -3525 3125 -1 -3126 3126 6 -3127 3126 -1 -3146 3126 -1 -3526 3126 -1 -3127 3127 6 -3128 3127 -1 -3147 3127 -1 -3527 3127 -1 -3128 3128 6 -3129 3128 -1 -3148 3128 -1 -3528 3128 -1 -3129 3129 6 -3130 3129 -1 -3149 3129 -1 -3529 3129 -1 -3130 3130 6 -3131 3130 -1 -3150 3130 -1 -3530 3130 -1 -3131 3131 6 -3132 3131 -1 -3151 3131 -1 -3531 3131 -1 -3132 3132 6 -3133 3132 -1 -3152 3132 -1 -3532 3132 -1 -3133 3133 6 -3134 3133 -1 -3153 3133 -1 -3533 3133 -1 -3134 3134 6 -3135 3134 -1 -3154 3134 -1 -3534 3134 -1 -3135 3135 6 -3136 3135 -1 -3155 3135 -1 -3535 3135 -1 -3136 3136 6 -3137 3136 -1 -3156 3136 -1 -3536 3136 -1 -3137 3137 6 -3138 3137 -1 -3157 3137 -1 -3537 3137 -1 -3138 3138 6 -3139 3138 -1 -3158 3138 -1 -3538 3138 -1 -3139 3139 6 -3140 3139 -1 -3159 3139 -1 -3539 3139 -1 -3140 3140 6 -3160 3140 -1 -3540 3140 -1 -3141 3141 6 -3142 3141 -1 -3161 3141 -1 -3541 3141 -1 -3142 3142 6 -3143 3142 -1 -3162 3142 -1 -3542 3142 -1 -3143 3143 6 -3144 3143 -1 -3163 3143 -1 -3543 3143 -1 -3144 3144 6 -3145 3144 -1 -3164 3144 -1 -3544 3144 -1 -3145 3145 6 -3146 3145 -1 -3165 3145 -1 -3545 3145 -1 -3146 3146 6 -3147 3146 -1 -3166 3146 -1 -3546 3146 -1 -3147 3147 6 -3148 3147 -1 -3167 3147 -1 -3547 3147 -1 -3148 3148 6 -3149 3148 -1 -3168 3148 -1 -3548 3148 -1 -3149 3149 6 -3150 3149 -1 -3169 3149 -1 -3549 3149 -1 -3150 3150 6 -3151 3150 -1 -3170 3150 -1 -3550 3150 -1 -3151 3151 6 -3152 3151 -1 -3171 3151 -1 -3551 3151 -1 -3152 3152 6 -3153 3152 -1 -3172 3152 -1 -3552 3152 -1 -3153 3153 6 -3154 3153 -1 -3173 3153 -1 -3553 3153 -1 -3154 3154 6 -3155 3154 -1 -3174 3154 -1 -3554 3154 -1 -3155 3155 6 -3156 3155 -1 -3175 3155 -1 -3555 3155 -1 -3156 3156 6 -3157 3156 -1 -3176 3156 -1 -3556 3156 -1 -3157 3157 6 -3158 3157 -1 -3177 3157 -1 -3557 3157 -1 -3158 3158 6 -3159 3158 -1 -3178 3158 -1 -3558 3158 -1 -3159 3159 6 -3160 3159 -1 -3179 3159 -1 -3559 3159 -1 -3160 3160 6 -3180 3160 -1 -3560 3160 -1 -3161 3161 6 -3162 3161 -1 -3181 3161 -1 -3561 3161 -1 -3162 3162 6 -3163 3162 -1 -3182 3162 -1 -3562 3162 -1 -3163 3163 6 -3164 3163 -1 -3183 3163 -1 -3563 3163 -1 -3164 3164 6 -3165 3164 -1 -3184 3164 -1 -3564 3164 -1 -3165 3165 6 -3166 3165 -1 -3185 3165 -1 -3565 3165 -1 -3166 3166 6 -3167 3166 -1 -3186 3166 -1 -3566 3166 -1 -3167 3167 6 -3168 3167 -1 -3187 3167 -1 -3567 3167 -1 -3168 3168 6 -3169 3168 -1 -3188 3168 -1 -3568 3168 -1 -3169 3169 6 -3170 3169 -1 -3189 3169 -1 -3569 3169 -1 -3170 3170 6 -3171 3170 -1 -3190 3170 -1 -3570 3170 -1 -3171 3171 6 -3172 3171 -1 -3191 3171 -1 -3571 3171 -1 -3172 3172 6 -3173 3172 -1 -3192 3172 -1 -3572 3172 -1 -3173 3173 6 -3174 3173 -1 -3193 3173 -1 -3573 3173 -1 -3174 3174 6 -3175 3174 -1 -3194 3174 -1 -3574 3174 -1 -3175 3175 6 -3176 3175 -1 -3195 3175 -1 -3575 3175 -1 -3176 3176 6 -3177 3176 -1 -3196 3176 -1 -3576 3176 -1 -3177 3177 6 -3178 3177 -1 -3197 3177 -1 -3577 3177 -1 -3178 3178 6 -3179 3178 -1 -3198 3178 -1 -3578 3178 -1 -3179 3179 6 -3180 3179 -1 -3199 3179 -1 -3579 3179 -1 -3180 3180 6 -3200 3180 -1 -3580 3180 -1 -3181 3181 6 -3182 3181 -1 -3581 3181 -1 -3182 3182 6 -3183 3182 -1 -3582 3182 -1 -3183 3183 6 -3184 3183 -1 -3583 3183 -1 -3184 3184 6 -3185 3184 -1 -3584 3184 -1 -3185 3185 6 -3186 3185 -1 -3585 3185 -1 -3186 3186 6 -3187 3186 -1 -3586 3186 -1 -3187 3187 6 -3188 3187 -1 -3587 3187 -1 -3188 3188 6 -3189 3188 -1 -3588 3188 -1 -3189 3189 6 -3190 3189 -1 -3589 3189 -1 -3190 3190 6 -3191 3190 -1 -3590 3190 -1 -3191 3191 6 -3192 3191 -1 -3591 3191 -1 -3192 3192 6 -3193 3192 -1 -3592 3192 -1 -3193 3193 6 -3194 3193 -1 -3593 3193 -1 -3194 3194 6 -3195 3194 -1 -3594 3194 -1 -3195 3195 6 -3196 3195 -1 -3595 3195 -1 -3196 3196 6 -3197 3196 -1 -3596 3196 -1 -3197 3197 6 -3198 3197 -1 -3597 3197 -1 -3198 3198 6 -3199 3198 -1 -3598 3198 -1 -3199 3199 6 -3200 3199 -1 -3599 3199 -1 -3200 3200 6 -3600 3200 -1 -3201 3201 6 -3202 3201 -1 -3221 3201 -1 -3601 3201 -1 -3202 3202 6 -3203 3202 -1 -3222 3202 -1 -3602 3202 -1 -3203 3203 6 -3204 3203 -1 -3223 3203 -1 -3603 3203 -1 -3204 3204 6 -3205 3204 -1 -3224 3204 -1 -3604 3204 -1 -3205 3205 6 -3206 3205 -1 -3225 3205 -1 -3605 3205 -1 -3206 3206 6 -3207 3206 -1 -3226 3206 -1 -3606 3206 -1 -3207 3207 6 -3208 3207 -1 -3227 3207 -1 -3607 3207 -1 -3208 3208 6 -3209 3208 -1 -3228 3208 -1 -3608 3208 -1 -3209 3209 6 -3210 3209 -1 -3229 3209 -1 -3609 3209 -1 -3210 3210 6 -3211 3210 -1 -3230 3210 -1 -3610 3210 -1 -3211 3211 6 -3212 3211 -1 -3231 3211 -1 -3611 3211 -1 -3212 3212 6 -3213 3212 -1 -3232 3212 -1 -3612 3212 -1 -3213 3213 6 -3214 3213 -1 -3233 3213 -1 -3613 3213 -1 -3214 3214 6 -3215 3214 -1 -3234 3214 -1 -3614 3214 -1 -3215 3215 6 -3216 3215 -1 -3235 3215 -1 -3615 3215 -1 -3216 3216 6 -3217 3216 -1 -3236 3216 -1 -3616 3216 -1 -3217 3217 6 -3218 3217 -1 -3237 3217 -1 -3617 3217 -1 -3218 3218 6 -3219 3218 -1 -3238 3218 -1 -3618 3218 -1 -3219 3219 6 -3220 3219 -1 -3239 3219 -1 -3619 3219 -1 -3220 3220 6 -3240 3220 -1 -3620 3220 -1 -3221 3221 6 -3222 3221 -1 -3241 3221 -1 -3621 3221 -1 -3222 3222 6 -3223 3222 -1 -3242 3222 -1 -3622 3222 -1 -3223 3223 6 -3224 3223 -1 -3243 3223 -1 -3623 3223 -1 -3224 3224 6 -3225 3224 -1 -3244 3224 -1 -3624 3224 -1 -3225 3225 6 -3226 3225 -1 -3245 3225 -1 -3625 3225 -1 -3226 3226 6 -3227 3226 -1 -3246 3226 -1 -3626 3226 -1 -3227 3227 6 -3228 3227 -1 -3247 3227 -1 -3627 3227 -1 -3228 3228 6 -3229 3228 -1 -3248 3228 -1 -3628 3228 -1 -3229 3229 6 -3230 3229 -1 -3249 3229 -1 -3629 3229 -1 -3230 3230 6 -3231 3230 -1 -3250 3230 -1 -3630 3230 -1 -3231 3231 6 -3232 3231 -1 -3251 3231 -1 -3631 3231 -1 -3232 3232 6 -3233 3232 -1 -3252 3232 -1 -3632 3232 -1 -3233 3233 6 -3234 3233 -1 -3253 3233 -1 -3633 3233 -1 -3234 3234 6 -3235 3234 -1 -3254 3234 -1 -3634 3234 -1 -3235 3235 6 -3236 3235 -1 -3255 3235 -1 -3635 3235 -1 -3236 3236 6 -3237 3236 -1 -3256 3236 -1 -3636 3236 -1 -3237 3237 6 -3238 3237 -1 -3257 3237 -1 -3637 3237 -1 -3238 3238 6 -3239 3238 -1 -3258 3238 -1 -3638 3238 -1 -3239 3239 6 -3240 3239 -1 -3259 3239 -1 -3639 3239 -1 -3240 3240 6 -3260 3240 -1 -3640 3240 -1 -3241 3241 6 -3242 3241 -1 -3261 3241 -1 -3641 3241 -1 -3242 3242 6 -3243 3242 -1 -3262 3242 -1 -3642 3242 -1 -3243 3243 6 -3244 3243 -1 -3263 3243 -1 -3643 3243 -1 -3244 3244 6 -3245 3244 -1 -3264 3244 -1 -3644 3244 -1 -3245 3245 6 -3246 3245 -1 -3265 3245 -1 -3645 3245 -1 -3246 3246 6 -3247 3246 -1 -3266 3246 -1 -3646 3246 -1 -3247 3247 6 -3248 3247 -1 -3267 3247 -1 -3647 3247 -1 -3248 3248 6 -3249 3248 -1 -3268 3248 -1 -3648 3248 -1 -3249 3249 6 -3250 3249 -1 -3269 3249 -1 -3649 3249 -1 -3250 3250 6 -3251 3250 -1 -3270 3250 -1 -3650 3250 -1 -3251 3251 6 -3252 3251 -1 -3271 3251 -1 -3651 3251 -1 -3252 3252 6 -3253 3252 -1 -3272 3252 -1 -3652 3252 -1 -3253 3253 6 -3254 3253 -1 -3273 3253 -1 -3653 3253 -1 -3254 3254 6 -3255 3254 -1 -3274 3254 -1 -3654 3254 -1 -3255 3255 6 -3256 3255 -1 -3275 3255 -1 -3655 3255 -1 -3256 3256 6 -3257 3256 -1 -3276 3256 -1 -3656 3256 -1 -3257 3257 6 -3258 3257 -1 -3277 3257 -1 -3657 3257 -1 -3258 3258 6 -3259 3258 -1 -3278 3258 -1 -3658 3258 -1 -3259 3259 6 -3260 3259 -1 -3279 3259 -1 -3659 3259 -1 -3260 3260 6 -3280 3260 -1 -3660 3260 -1 -3261 3261 6 -3262 3261 -1 -3281 3261 -1 -3661 3261 -1 -3262 3262 6 -3263 3262 -1 -3282 3262 -1 -3662 3262 -1 -3263 3263 6 -3264 3263 -1 -3283 3263 -1 -3663 3263 -1 -3264 3264 6 -3265 3264 -1 -3284 3264 -1 -3664 3264 -1 -3265 3265 6 -3266 3265 -1 -3285 3265 -1 -3665 3265 -1 -3266 3266 6 -3267 3266 -1 -3286 3266 -1 -3666 3266 -1 -3267 3267 6 -3268 3267 -1 -3287 3267 -1 -3667 3267 -1 -3268 3268 6 -3269 3268 -1 -3288 3268 -1 -3668 3268 -1 -3269 3269 6 -3270 3269 -1 -3289 3269 -1 -3669 3269 -1 -3270 3270 6 -3271 3270 -1 -3290 3270 -1 -3670 3270 -1 -3271 3271 6 -3272 3271 -1 -3291 3271 -1 -3671 3271 -1 -3272 3272 6 -3273 3272 -1 -3292 3272 -1 -3672 3272 -1 -3273 3273 6 -3274 3273 -1 -3293 3273 -1 -3673 3273 -1 -3274 3274 6 -3275 3274 -1 -3294 3274 -1 -3674 3274 -1 -3275 3275 6 -3276 3275 -1 -3295 3275 -1 -3675 3275 -1 -3276 3276 6 -3277 3276 -1 -3296 3276 -1 -3676 3276 -1 -3277 3277 6 -3278 3277 -1 -3297 3277 -1 -3677 3277 -1 -3278 3278 6 -3279 3278 -1 -3298 3278 -1 -3678 3278 -1 -3279 3279 6 -3280 3279 -1 -3299 3279 -1 -3679 3279 -1 -3280 3280 6 -3300 3280 -1 -3680 3280 -1 -3281 3281 6 -3282 3281 -1 -3301 3281 -1 -3681 3281 -1 -3282 3282 6 -3283 3282 -1 -3302 3282 -1 -3682 3282 -1 -3283 3283 6 -3284 3283 -1 -3303 3283 -1 -3683 3283 -1 -3284 3284 6 -3285 3284 -1 -3304 3284 -1 -3684 3284 -1 -3285 3285 6 -3286 3285 -1 -3305 3285 -1 -3685 3285 -1 -3286 3286 6 -3287 3286 -1 -3306 3286 -1 -3686 3286 -1 -3287 3287 6 -3288 3287 -1 -3307 3287 -1 -3687 3287 -1 -3288 3288 6 -3289 3288 -1 -3308 3288 -1 -3688 3288 -1 -3289 3289 6 -3290 3289 -1 -3309 3289 -1 -3689 3289 -1 -3290 3290 6 -3291 3290 -1 -3310 3290 -1 -3690 3290 -1 -3291 3291 6 -3292 3291 -1 -3311 3291 -1 -3691 3291 -1 -3292 3292 6 -3293 3292 -1 -3312 3292 -1 -3692 3292 -1 -3293 3293 6 -3294 3293 -1 -3313 3293 -1 -3693 3293 -1 -3294 3294 6 -3295 3294 -1 -3314 3294 -1 -3694 3294 -1 -3295 3295 6 -3296 3295 -1 -3315 3295 -1 -3695 3295 -1 -3296 3296 6 -3297 3296 -1 -3316 3296 -1 -3696 3296 -1 -3297 3297 6 -3298 3297 -1 -3317 3297 -1 -3697 3297 -1 -3298 3298 6 -3299 3298 -1 -3318 3298 -1 -3698 3298 -1 -3299 3299 6 -3300 3299 -1 -3319 3299 -1 -3699 3299 -1 -3300 3300 6 -3320 3300 -1 -3700 3300 -1 -3301 3301 6 -3302 3301 -1 -3321 3301 -1 -3701 3301 -1 -3302 3302 6 -3303 3302 -1 -3322 3302 -1 -3702 3302 -1 -3303 3303 6 -3304 3303 -1 -3323 3303 -1 -3703 3303 -1 -3304 3304 6 -3305 3304 -1 -3324 3304 -1 -3704 3304 -1 -3305 3305 6 -3306 3305 -1 -3325 3305 -1 -3705 3305 -1 -3306 3306 6 -3307 3306 -1 -3326 3306 -1 -3706 3306 -1 -3307 3307 6 -3308 3307 -1 -3327 3307 -1 -3707 3307 -1 -3308 3308 6 -3309 3308 -1 -3328 3308 -1 -3708 3308 -1 -3309 3309 6 -3310 3309 -1 -3329 3309 -1 -3709 3309 -1 -3310 3310 6 -3311 3310 -1 -3330 3310 -1 -3710 3310 -1 -3311 3311 6 -3312 3311 -1 -3331 3311 -1 -3711 3311 -1 -3312 3312 6 -3313 3312 -1 -3332 3312 -1 -3712 3312 -1 -3313 3313 6 -3314 3313 -1 -3333 3313 -1 -3713 3313 -1 -3314 3314 6 -3315 3314 -1 -3334 3314 -1 -3714 3314 -1 -3315 3315 6 -3316 3315 -1 -3335 3315 -1 -3715 3315 -1 -3316 3316 6 -3317 3316 -1 -3336 3316 -1 -3716 3316 -1 -3317 3317 6 -3318 3317 -1 -3337 3317 -1 -3717 3317 -1 -3318 3318 6 -3319 3318 -1 -3338 3318 -1 -3718 3318 -1 -3319 3319 6 -3320 3319 -1 -3339 3319 -1 -3719 3319 -1 -3320 3320 6 -3340 3320 -1 -3720 3320 -1 -3321 3321 6 -3322 3321 -1 -3341 3321 -1 -3721 3321 -1 -3322 3322 6 -3323 3322 -1 -3342 3322 -1 -3722 3322 -1 -3323 3323 6 -3324 3323 -1 -3343 3323 -1 -3723 3323 -1 -3324 3324 6 -3325 3324 -1 -3344 3324 -1 -3724 3324 -1 -3325 3325 6 -3326 3325 -1 -3345 3325 -1 -3725 3325 -1 -3326 3326 6 -3327 3326 -1 -3346 3326 -1 -3726 3326 -1 -3327 3327 6 -3328 3327 -1 -3347 3327 -1 -3727 3327 -1 -3328 3328 6 -3329 3328 -1 -3348 3328 -1 -3728 3328 -1 -3329 3329 6 -3330 3329 -1 -3349 3329 -1 -3729 3329 -1 -3330 3330 6 -3331 3330 -1 -3350 3330 -1 -3730 3330 -1 -3331 3331 6 -3332 3331 -1 -3351 3331 -1 -3731 3331 -1 -3332 3332 6 -3333 3332 -1 -3352 3332 -1 -3732 3332 -1 -3333 3333 6 -3334 3333 -1 -3353 3333 -1 -3733 3333 -1 -3334 3334 6 -3335 3334 -1 -3354 3334 -1 -3734 3334 -1 -3335 3335 6 -3336 3335 -1 -3355 3335 -1 -3735 3335 -1 -3336 3336 6 -3337 3336 -1 -3356 3336 -1 -3736 3336 -1 -3337 3337 6 -3338 3337 -1 -3357 3337 -1 -3737 3337 -1 -3338 3338 6 -3339 3338 -1 -3358 3338 -1 -3738 3338 -1 -3339 3339 6 -3340 3339 -1 -3359 3339 -1 -3739 3339 -1 -3340 3340 6 -3360 3340 -1 -3740 3340 -1 -3341 3341 6 -3342 3341 -1 -3361 3341 -1 -3741 3341 -1 -3342 3342 6 -3343 3342 -1 -3362 3342 -1 -3742 3342 -1 -3343 3343 6 -3344 3343 -1 -3363 3343 -1 -3743 3343 -1 -3344 3344 6 -3345 3344 -1 -3364 3344 -1 -3744 3344 -1 -3345 3345 6 -3346 3345 -1 -3365 3345 -1 -3745 3345 -1 -3346 3346 6 -3347 3346 -1 -3366 3346 -1 -3746 3346 -1 -3347 3347 6 -3348 3347 -1 -3367 3347 -1 -3747 3347 -1 -3348 3348 6 -3349 3348 -1 -3368 3348 -1 -3748 3348 -1 -3349 3349 6 -3350 3349 -1 -3369 3349 -1 -3749 3349 -1 -3350 3350 6 -3351 3350 -1 -3370 3350 -1 -3750 3350 -1 -3351 3351 6 -3352 3351 -1 -3371 3351 -1 -3751 3351 -1 -3352 3352 6 -3353 3352 -1 -3372 3352 -1 -3752 3352 -1 -3353 3353 6 -3354 3353 -1 -3373 3353 -1 -3753 3353 -1 -3354 3354 6 -3355 3354 -1 -3374 3354 -1 -3754 3354 -1 -3355 3355 6 -3356 3355 -1 -3375 3355 -1 -3755 3355 -1 -3356 3356 6 -3357 3356 -1 -3376 3356 -1 -3756 3356 -1 -3357 3357 6 -3358 3357 -1 -3377 3357 -1 -3757 3357 -1 -3358 3358 6 -3359 3358 -1 -3378 3358 -1 -3758 3358 -1 -3359 3359 6 -3360 3359 -1 -3379 3359 -1 -3759 3359 -1 -3360 3360 6 -3380 3360 -1 -3760 3360 -1 -3361 3361 6 -3362 3361 -1 -3381 3361 -1 -3761 3361 -1 -3362 3362 6 -3363 3362 -1 -3382 3362 -1 -3762 3362 -1 -3363 3363 6 -3364 3363 -1 -3383 3363 -1 -3763 3363 -1 -3364 3364 6 -3365 3364 -1 -3384 3364 -1 -3764 3364 -1 -3365 3365 6 -3366 3365 -1 -3385 3365 -1 -3765 3365 -1 -3366 3366 6 -3367 3366 -1 -3386 3366 -1 -3766 3366 -1 -3367 3367 6 -3368 3367 -1 -3387 3367 -1 -3767 3367 -1 -3368 3368 6 -3369 3368 -1 -3388 3368 -1 -3768 3368 -1 -3369 3369 6 -3370 3369 -1 -3389 3369 -1 -3769 3369 -1 -3370 3370 6 -3371 3370 -1 -3390 3370 -1 -3770 3370 -1 -3371 3371 6 -3372 3371 -1 -3391 3371 -1 -3771 3371 -1 -3372 3372 6 -3373 3372 -1 -3392 3372 -1 -3772 3372 -1 -3373 3373 6 -3374 3373 -1 -3393 3373 -1 -3773 3373 -1 -3374 3374 6 -3375 3374 -1 -3394 3374 -1 -3774 3374 -1 -3375 3375 6 -3376 3375 -1 -3395 3375 -1 -3775 3375 -1 -3376 3376 6 -3377 3376 -1 -3396 3376 -1 -3776 3376 -1 -3377 3377 6 -3378 3377 -1 -3397 3377 -1 -3777 3377 -1 -3378 3378 6 -3379 3378 -1 -3398 3378 -1 -3778 3378 -1 -3379 3379 6 -3380 3379 -1 -3399 3379 -1 -3779 3379 -1 -3380 3380 6 -3400 3380 -1 -3780 3380 -1 -3381 3381 6 -3382 3381 -1 -3401 3381 -1 -3781 3381 -1 -3382 3382 6 -3383 3382 -1 -3402 3382 -1 -3782 3382 -1 -3383 3383 6 -3384 3383 -1 -3403 3383 -1 -3783 3383 -1 -3384 3384 6 -3385 3384 -1 -3404 3384 -1 -3784 3384 -1 -3385 3385 6 -3386 3385 -1 -3405 3385 -1 -3785 3385 -1 -3386 3386 6 -3387 3386 -1 -3406 3386 -1 -3786 3386 -1 -3387 3387 6 -3388 3387 -1 -3407 3387 -1 -3787 3387 -1 -3388 3388 6 -3389 3388 -1 -3408 3388 -1 -3788 3388 -1 -3389 3389 6 -3390 3389 -1 -3409 3389 -1 -3789 3389 -1 -3390 3390 6 -3391 3390 -1 -3410 3390 -1 -3790 3390 -1 -3391 3391 6 -3392 3391 -1 -3411 3391 -1 -3791 3391 -1 -3392 3392 6 -3393 3392 -1 -3412 3392 -1 -3792 3392 -1 -3393 3393 6 -3394 3393 -1 -3413 3393 -1 -3793 3393 -1 -3394 3394 6 -3395 3394 -1 -3414 3394 -1 -3794 3394 -1 -3395 3395 6 -3396 3395 -1 -3415 3395 -1 -3795 3395 -1 -3396 3396 6 -3397 3396 -1 -3416 3396 -1 -3796 3396 -1 -3397 3397 6 -3398 3397 -1 -3417 3397 -1 -3797 3397 -1 -3398 3398 6 -3399 3398 -1 -3418 3398 -1 -3798 3398 -1 -3399 3399 6 -3400 3399 -1 -3419 3399 -1 -3799 3399 -1 -3400 3400 6 -3420 3400 -1 -3800 3400 -1 -3401 3401 6 -3402 3401 -1 -3421 3401 -1 -3801 3401 -1 -3402 3402 6 -3403 3402 -1 -3422 3402 -1 -3802 3402 -1 -3403 3403 6 -3404 3403 -1 -3423 3403 -1 -3803 3403 -1 -3404 3404 6 -3405 3404 -1 -3424 3404 -1 -3804 3404 -1 -3405 3405 6 -3406 3405 -1 -3425 3405 -1 -3805 3405 -1 -3406 3406 6 -3407 3406 -1 -3426 3406 -1 -3806 3406 -1 -3407 3407 6 -3408 3407 -1 -3427 3407 -1 -3807 3407 -1 -3408 3408 6 -3409 3408 -1 -3428 3408 -1 -3808 3408 -1 -3409 3409 6 -3410 3409 -1 -3429 3409 -1 -3809 3409 -1 -3410 3410 6 -3411 3410 -1 -3430 3410 -1 -3810 3410 -1 -3411 3411 6 -3412 3411 -1 -3431 3411 -1 -3811 3411 -1 -3412 3412 6 -3413 3412 -1 -3432 3412 -1 -3812 3412 -1 -3413 3413 6 -3414 3413 -1 -3433 3413 -1 -3813 3413 -1 -3414 3414 6 -3415 3414 -1 -3434 3414 -1 -3814 3414 -1 -3415 3415 6 -3416 3415 -1 -3435 3415 -1 -3815 3415 -1 -3416 3416 6 -3417 3416 -1 -3436 3416 -1 -3816 3416 -1 -3417 3417 6 -3418 3417 -1 -3437 3417 -1 -3817 3417 -1 -3418 3418 6 -3419 3418 -1 -3438 3418 -1 -3818 3418 -1 -3419 3419 6 -3420 3419 -1 -3439 3419 -1 -3819 3419 -1 -3420 3420 6 -3440 3420 -1 -3820 3420 -1 -3421 3421 6 -3422 3421 -1 -3441 3421 -1 -3821 3421 -1 -3422 3422 6 -3423 3422 -1 -3442 3422 -1 -3822 3422 -1 -3423 3423 6 -3424 3423 -1 -3443 3423 -1 -3823 3423 -1 -3424 3424 6 -3425 3424 -1 -3444 3424 -1 -3824 3424 -1 -3425 3425 6 -3426 3425 -1 -3445 3425 -1 -3825 3425 -1 -3426 3426 6 -3427 3426 -1 -3446 3426 -1 -3826 3426 -1 -3427 3427 6 -3428 3427 -1 -3447 3427 -1 -3827 3427 -1 -3428 3428 6 -3429 3428 -1 -3448 3428 -1 -3828 3428 -1 -3429 3429 6 -3430 3429 -1 -3449 3429 -1 -3829 3429 -1 -3430 3430 6 -3431 3430 -1 -3450 3430 -1 -3830 3430 -1 -3431 3431 6 -3432 3431 -1 -3451 3431 -1 -3831 3431 -1 -3432 3432 6 -3433 3432 -1 -3452 3432 -1 -3832 3432 -1 -3433 3433 6 -3434 3433 -1 -3453 3433 -1 -3833 3433 -1 -3434 3434 6 -3435 3434 -1 -3454 3434 -1 -3834 3434 -1 -3435 3435 6 -3436 3435 -1 -3455 3435 -1 -3835 3435 -1 -3436 3436 6 -3437 3436 -1 -3456 3436 -1 -3836 3436 -1 -3437 3437 6 -3438 3437 -1 -3457 3437 -1 -3837 3437 -1 -3438 3438 6 -3439 3438 -1 -3458 3438 -1 -3838 3438 -1 -3439 3439 6 -3440 3439 -1 -3459 3439 -1 -3839 3439 -1 -3440 3440 6 -3460 3440 -1 -3840 3440 -1 -3441 3441 6 -3442 3441 -1 -3461 3441 -1 -3841 3441 -1 -3442 3442 6 -3443 3442 -1 -3462 3442 -1 -3842 3442 -1 -3443 3443 6 -3444 3443 -1 -3463 3443 -1 -3843 3443 -1 -3444 3444 6 -3445 3444 -1 -3464 3444 -1 -3844 3444 -1 -3445 3445 6 -3446 3445 -1 -3465 3445 -1 -3845 3445 -1 -3446 3446 6 -3447 3446 -1 -3466 3446 -1 -3846 3446 -1 -3447 3447 6 -3448 3447 -1 -3467 3447 -1 -3847 3447 -1 -3448 3448 6 -3449 3448 -1 -3468 3448 -1 -3848 3448 -1 -3449 3449 6 -3450 3449 -1 -3469 3449 -1 -3849 3449 -1 -3450 3450 6 -3451 3450 -1 -3470 3450 -1 -3850 3450 -1 -3451 3451 6 -3452 3451 -1 -3471 3451 -1 -3851 3451 -1 -3452 3452 6 -3453 3452 -1 -3472 3452 -1 -3852 3452 -1 -3453 3453 6 -3454 3453 -1 -3473 3453 -1 -3853 3453 -1 -3454 3454 6 -3455 3454 -1 -3474 3454 -1 -3854 3454 -1 -3455 3455 6 -3456 3455 -1 -3475 3455 -1 -3855 3455 -1 -3456 3456 6 -3457 3456 -1 -3476 3456 -1 -3856 3456 -1 -3457 3457 6 -3458 3457 -1 -3477 3457 -1 -3857 3457 -1 -3458 3458 6 -3459 3458 -1 -3478 3458 -1 -3858 3458 -1 -3459 3459 6 -3460 3459 -1 -3479 3459 -1 -3859 3459 -1 -3460 3460 6 -3480 3460 -1 -3860 3460 -1 -3461 3461 6 -3462 3461 -1 -3481 3461 -1 -3861 3461 -1 -3462 3462 6 -3463 3462 -1 -3482 3462 -1 -3862 3462 -1 -3463 3463 6 -3464 3463 -1 -3483 3463 -1 -3863 3463 -1 -3464 3464 6 -3465 3464 -1 -3484 3464 -1 -3864 3464 -1 -3465 3465 6 -3466 3465 -1 -3485 3465 -1 -3865 3465 -1 -3466 3466 6 -3467 3466 -1 -3486 3466 -1 -3866 3466 -1 -3467 3467 6 -3468 3467 -1 -3487 3467 -1 -3867 3467 -1 -3468 3468 6 -3469 3468 -1 -3488 3468 -1 -3868 3468 -1 -3469 3469 6 -3470 3469 -1 -3489 3469 -1 -3869 3469 -1 -3470 3470 6 -3471 3470 -1 -3490 3470 -1 -3870 3470 -1 -3471 3471 6 -3472 3471 -1 -3491 3471 -1 -3871 3471 -1 -3472 3472 6 -3473 3472 -1 -3492 3472 -1 -3872 3472 -1 -3473 3473 6 -3474 3473 -1 -3493 3473 -1 -3873 3473 -1 -3474 3474 6 -3475 3474 -1 -3494 3474 -1 -3874 3474 -1 -3475 3475 6 -3476 3475 -1 -3495 3475 -1 -3875 3475 -1 -3476 3476 6 -3477 3476 -1 -3496 3476 -1 -3876 3476 -1 -3477 3477 6 -3478 3477 -1 -3497 3477 -1 -3877 3477 -1 -3478 3478 6 -3479 3478 -1 -3498 3478 -1 -3878 3478 -1 -3479 3479 6 -3480 3479 -1 -3499 3479 -1 -3879 3479 -1 -3480 3480 6 -3500 3480 -1 -3880 3480 -1 -3481 3481 6 -3482 3481 -1 -3501 3481 -1 -3881 3481 -1 -3482 3482 6 -3483 3482 -1 -3502 3482 -1 -3882 3482 -1 -3483 3483 6 -3484 3483 -1 -3503 3483 -1 -3883 3483 -1 -3484 3484 6 -3485 3484 -1 -3504 3484 -1 -3884 3484 -1 -3485 3485 6 -3486 3485 -1 -3505 3485 -1 -3885 3485 -1 -3486 3486 6 -3487 3486 -1 -3506 3486 -1 -3886 3486 -1 -3487 3487 6 -3488 3487 -1 -3507 3487 -1 -3887 3487 -1 -3488 3488 6 -3489 3488 -1 -3508 3488 -1 -3888 3488 -1 -3489 3489 6 -3490 3489 -1 -3509 3489 -1 -3889 3489 -1 -3490 3490 6 -3491 3490 -1 -3510 3490 -1 -3890 3490 -1 -3491 3491 6 -3492 3491 -1 -3511 3491 -1 -3891 3491 -1 -3492 3492 6 -3493 3492 -1 -3512 3492 -1 -3892 3492 -1 -3493 3493 6 -3494 3493 -1 -3513 3493 -1 -3893 3493 -1 -3494 3494 6 -3495 3494 -1 -3514 3494 -1 -3894 3494 -1 -3495 3495 6 -3496 3495 -1 -3515 3495 -1 -3895 3495 -1 -3496 3496 6 -3497 3496 -1 -3516 3496 -1 -3896 3496 -1 -3497 3497 6 -3498 3497 -1 -3517 3497 -1 -3897 3497 -1 -3498 3498 6 -3499 3498 -1 -3518 3498 -1 -3898 3498 -1 -3499 3499 6 -3500 3499 -1 -3519 3499 -1 -3899 3499 -1 -3500 3500 6 -3520 3500 -1 -3900 3500 -1 -3501 3501 6 -3502 3501 -1 -3521 3501 -1 -3901 3501 -1 -3502 3502 6 -3503 3502 -1 -3522 3502 -1 -3902 3502 -1 -3503 3503 6 -3504 3503 -1 -3523 3503 -1 -3903 3503 -1 -3504 3504 6 -3505 3504 -1 -3524 3504 -1 -3904 3504 -1 -3505 3505 6 -3506 3505 -1 -3525 3505 -1 -3905 3505 -1 -3506 3506 6 -3507 3506 -1 -3526 3506 -1 -3906 3506 -1 -3507 3507 6 -3508 3507 -1 -3527 3507 -1 -3907 3507 -1 -3508 3508 6 -3509 3508 -1 -3528 3508 -1 -3908 3508 -1 -3509 3509 6 -3510 3509 -1 -3529 3509 -1 -3909 3509 -1 -3510 3510 6 -3511 3510 -1 -3530 3510 -1 -3910 3510 -1 -3511 3511 6 -3512 3511 -1 -3531 3511 -1 -3911 3511 -1 -3512 3512 6 -3513 3512 -1 -3532 3512 -1 -3912 3512 -1 -3513 3513 6 -3514 3513 -1 -3533 3513 -1 -3913 3513 -1 -3514 3514 6 -3515 3514 -1 -3534 3514 -1 -3914 3514 -1 -3515 3515 6 -3516 3515 -1 -3535 3515 -1 -3915 3515 -1 -3516 3516 6 -3517 3516 -1 -3536 3516 -1 -3916 3516 -1 -3517 3517 6 -3518 3517 -1 -3537 3517 -1 -3917 3517 -1 -3518 3518 6 -3519 3518 -1 -3538 3518 -1 -3918 3518 -1 -3519 3519 6 -3520 3519 -1 -3539 3519 -1 -3919 3519 -1 -3520 3520 6 -3540 3520 -1 -3920 3520 -1 -3521 3521 6 -3522 3521 -1 -3541 3521 -1 -3921 3521 -1 -3522 3522 6 -3523 3522 -1 -3542 3522 -1 -3922 3522 -1 -3523 3523 6 -3524 3523 -1 -3543 3523 -1 -3923 3523 -1 -3524 3524 6 -3525 3524 -1 -3544 3524 -1 -3924 3524 -1 -3525 3525 6 -3526 3525 -1 -3545 3525 -1 -3925 3525 -1 -3526 3526 6 -3527 3526 -1 -3546 3526 -1 -3926 3526 -1 -3527 3527 6 -3528 3527 -1 -3547 3527 -1 -3927 3527 -1 -3528 3528 6 -3529 3528 -1 -3548 3528 -1 -3928 3528 -1 -3529 3529 6 -3530 3529 -1 -3549 3529 -1 -3929 3529 -1 -3530 3530 6 -3531 3530 -1 -3550 3530 -1 -3930 3530 -1 -3531 3531 6 -3532 3531 -1 -3551 3531 -1 -3931 3531 -1 -3532 3532 6 -3533 3532 -1 -3552 3532 -1 -3932 3532 -1 -3533 3533 6 -3534 3533 -1 -3553 3533 -1 -3933 3533 -1 -3534 3534 6 -3535 3534 -1 -3554 3534 -1 -3934 3534 -1 -3535 3535 6 -3536 3535 -1 -3555 3535 -1 -3935 3535 -1 -3536 3536 6 -3537 3536 -1 -3556 3536 -1 -3936 3536 -1 -3537 3537 6 -3538 3537 -1 -3557 3537 -1 -3937 3537 -1 -3538 3538 6 -3539 3538 -1 -3558 3538 -1 -3938 3538 -1 -3539 3539 6 -3540 3539 -1 -3559 3539 -1 -3939 3539 -1 -3540 3540 6 -3560 3540 -1 -3940 3540 -1 -3541 3541 6 -3542 3541 -1 -3561 3541 -1 -3941 3541 -1 -3542 3542 6 -3543 3542 -1 -3562 3542 -1 -3942 3542 -1 -3543 3543 6 -3544 3543 -1 -3563 3543 -1 -3943 3543 -1 -3544 3544 6 -3545 3544 -1 -3564 3544 -1 -3944 3544 -1 -3545 3545 6 -3546 3545 -1 -3565 3545 -1 -3945 3545 -1 -3546 3546 6 -3547 3546 -1 -3566 3546 -1 -3946 3546 -1 -3547 3547 6 -3548 3547 -1 -3567 3547 -1 -3947 3547 -1 -3548 3548 6 -3549 3548 -1 -3568 3548 -1 -3948 3548 -1 -3549 3549 6 -3550 3549 -1 -3569 3549 -1 -3949 3549 -1 -3550 3550 6 -3551 3550 -1 -3570 3550 -1 -3950 3550 -1 -3551 3551 6 -3552 3551 -1 -3571 3551 -1 -3951 3551 -1 -3552 3552 6 -3553 3552 -1 -3572 3552 -1 -3952 3552 -1 -3553 3553 6 -3554 3553 -1 -3573 3553 -1 -3953 3553 -1 -3554 3554 6 -3555 3554 -1 -3574 3554 -1 -3954 3554 -1 -3555 3555 6 -3556 3555 -1 -3575 3555 -1 -3955 3555 -1 -3556 3556 6 -3557 3556 -1 -3576 3556 -1 -3956 3556 -1 -3557 3557 6 -3558 3557 -1 -3577 3557 -1 -3957 3557 -1 -3558 3558 6 -3559 3558 -1 -3578 3558 -1 -3958 3558 -1 -3559 3559 6 -3560 3559 -1 -3579 3559 -1 -3959 3559 -1 -3560 3560 6 -3580 3560 -1 -3960 3560 -1 -3561 3561 6 -3562 3561 -1 -3581 3561 -1 -3961 3561 -1 -3562 3562 6 -3563 3562 -1 -3582 3562 -1 -3962 3562 -1 -3563 3563 6 -3564 3563 -1 -3583 3563 -1 -3963 3563 -1 -3564 3564 6 -3565 3564 -1 -3584 3564 -1 -3964 3564 -1 -3565 3565 6 -3566 3565 -1 -3585 3565 -1 -3965 3565 -1 -3566 3566 6 -3567 3566 -1 -3586 3566 -1 -3966 3566 -1 -3567 3567 6 -3568 3567 -1 -3587 3567 -1 -3967 3567 -1 -3568 3568 6 -3569 3568 -1 -3588 3568 -1 -3968 3568 -1 -3569 3569 6 -3570 3569 -1 -3589 3569 -1 -3969 3569 -1 -3570 3570 6 -3571 3570 -1 -3590 3570 -1 -3970 3570 -1 -3571 3571 6 -3572 3571 -1 -3591 3571 -1 -3971 3571 -1 -3572 3572 6 -3573 3572 -1 -3592 3572 -1 -3972 3572 -1 -3573 3573 6 -3574 3573 -1 -3593 3573 -1 -3973 3573 -1 -3574 3574 6 -3575 3574 -1 -3594 3574 -1 -3974 3574 -1 -3575 3575 6 -3576 3575 -1 -3595 3575 -1 -3975 3575 -1 -3576 3576 6 -3577 3576 -1 -3596 3576 -1 -3976 3576 -1 -3577 3577 6 -3578 3577 -1 -3597 3577 -1 -3977 3577 -1 -3578 3578 6 -3579 3578 -1 -3598 3578 -1 -3978 3578 -1 -3579 3579 6 -3580 3579 -1 -3599 3579 -1 -3979 3579 -1 -3580 3580 6 -3600 3580 -1 -3980 3580 -1 -3581 3581 6 -3582 3581 -1 -3981 3581 -1 -3582 3582 6 -3583 3582 -1 -3982 3582 -1 -3583 3583 6 -3584 3583 -1 -3983 3583 -1 -3584 3584 6 -3585 3584 -1 -3984 3584 -1 -3585 3585 6 -3586 3585 -1 -3985 3585 -1 -3586 3586 6 -3587 3586 -1 -3986 3586 -1 -3587 3587 6 -3588 3587 -1 -3987 3587 -1 -3588 3588 6 -3589 3588 -1 -3988 3588 -1 -3589 3589 6 -3590 3589 -1 -3989 3589 -1 -3590 3590 6 -3591 3590 -1 -3990 3590 -1 -3591 3591 6 -3592 3591 -1 -3991 3591 -1 -3592 3592 6 -3593 3592 -1 -3992 3592 -1 -3593 3593 6 -3594 3593 -1 -3993 3593 -1 -3594 3594 6 -3595 3594 -1 -3994 3594 -1 -3595 3595 6 -3596 3595 -1 -3995 3595 -1 -3596 3596 6 -3597 3596 -1 -3996 3596 -1 -3597 3597 6 -3598 3597 -1 -3997 3597 -1 -3598 3598 6 -3599 3598 -1 -3998 3598 -1 -3599 3599 6 -3600 3599 -1 -3999 3599 -1 -3600 3600 6 -4000 3600 -1 -3601 3601 6 -3602 3601 -1 -3621 3601 -1 -4001 3601 -1 -3602 3602 6 -3603 3602 -1 -3622 3602 -1 -4002 3602 -1 -3603 3603 6 -3604 3603 -1 -3623 3603 -1 -4003 3603 -1 -3604 3604 6 -3605 3604 -1 -3624 3604 -1 -4004 3604 -1 -3605 3605 6 -3606 3605 -1 -3625 3605 -1 -4005 3605 -1 -3606 3606 6 -3607 3606 -1 -3626 3606 -1 -4006 3606 -1 -3607 3607 6 -3608 3607 -1 -3627 3607 -1 -4007 3607 -1 -3608 3608 6 -3609 3608 -1 -3628 3608 -1 -4008 3608 -1 -3609 3609 6 -3610 3609 -1 -3629 3609 -1 -4009 3609 -1 -3610 3610 6 -3611 3610 -1 -3630 3610 -1 -4010 3610 -1 -3611 3611 6 -3612 3611 -1 -3631 3611 -1 -4011 3611 -1 -3612 3612 6 -3613 3612 -1 -3632 3612 -1 -4012 3612 -1 -3613 3613 6 -3614 3613 -1 -3633 3613 -1 -4013 3613 -1 -3614 3614 6 -3615 3614 -1 -3634 3614 -1 -4014 3614 -1 -3615 3615 6 -3616 3615 -1 -3635 3615 -1 -4015 3615 -1 -3616 3616 6 -3617 3616 -1 -3636 3616 -1 -4016 3616 -1 -3617 3617 6 -3618 3617 -1 -3637 3617 -1 -4017 3617 -1 -3618 3618 6 -3619 3618 -1 -3638 3618 -1 -4018 3618 -1 -3619 3619 6 -3620 3619 -1 -3639 3619 -1 -4019 3619 -1 -3620 3620 6 -3640 3620 -1 -4020 3620 -1 -3621 3621 6 -3622 3621 -1 -3641 3621 -1 -4021 3621 -1 -3622 3622 6 -3623 3622 -1 -3642 3622 -1 -4022 3622 -1 -3623 3623 6 -3624 3623 -1 -3643 3623 -1 -4023 3623 -1 -3624 3624 6 -3625 3624 -1 -3644 3624 -1 -4024 3624 -1 -3625 3625 6 -3626 3625 -1 -3645 3625 -1 -4025 3625 -1 -3626 3626 6 -3627 3626 -1 -3646 3626 -1 -4026 3626 -1 -3627 3627 6 -3628 3627 -1 -3647 3627 -1 -4027 3627 -1 -3628 3628 6 -3629 3628 -1 -3648 3628 -1 -4028 3628 -1 -3629 3629 6 -3630 3629 -1 -3649 3629 -1 -4029 3629 -1 -3630 3630 6 -3631 3630 -1 -3650 3630 -1 -4030 3630 -1 -3631 3631 6 -3632 3631 -1 -3651 3631 -1 -4031 3631 -1 -3632 3632 6 -3633 3632 -1 -3652 3632 -1 -4032 3632 -1 -3633 3633 6 -3634 3633 -1 -3653 3633 -1 -4033 3633 -1 -3634 3634 6 -3635 3634 -1 -3654 3634 -1 -4034 3634 -1 -3635 3635 6 -3636 3635 -1 -3655 3635 -1 -4035 3635 -1 -3636 3636 6 -3637 3636 -1 -3656 3636 -1 -4036 3636 -1 -3637 3637 6 -3638 3637 -1 -3657 3637 -1 -4037 3637 -1 -3638 3638 6 -3639 3638 -1 -3658 3638 -1 -4038 3638 -1 -3639 3639 6 -3640 3639 -1 -3659 3639 -1 -4039 3639 -1 -3640 3640 6 -3660 3640 -1 -4040 3640 -1 -3641 3641 6 -3642 3641 -1 -3661 3641 -1 -4041 3641 -1 -3642 3642 6 -3643 3642 -1 -3662 3642 -1 -4042 3642 -1 -3643 3643 6 -3644 3643 -1 -3663 3643 -1 -4043 3643 -1 -3644 3644 6 -3645 3644 -1 -3664 3644 -1 -4044 3644 -1 -3645 3645 6 -3646 3645 -1 -3665 3645 -1 -4045 3645 -1 -3646 3646 6 -3647 3646 -1 -3666 3646 -1 -4046 3646 -1 -3647 3647 6 -3648 3647 -1 -3667 3647 -1 -4047 3647 -1 -3648 3648 6 -3649 3648 -1 -3668 3648 -1 -4048 3648 -1 -3649 3649 6 -3650 3649 -1 -3669 3649 -1 -4049 3649 -1 -3650 3650 6 -3651 3650 -1 -3670 3650 -1 -4050 3650 -1 -3651 3651 6 -3652 3651 -1 -3671 3651 -1 -4051 3651 -1 -3652 3652 6 -3653 3652 -1 -3672 3652 -1 -4052 3652 -1 -3653 3653 6 -3654 3653 -1 -3673 3653 -1 -4053 3653 -1 -3654 3654 6 -3655 3654 -1 -3674 3654 -1 -4054 3654 -1 -3655 3655 6 -3656 3655 -1 -3675 3655 -1 -4055 3655 -1 -3656 3656 6 -3657 3656 -1 -3676 3656 -1 -4056 3656 -1 -3657 3657 6 -3658 3657 -1 -3677 3657 -1 -4057 3657 -1 -3658 3658 6 -3659 3658 -1 -3678 3658 -1 -4058 3658 -1 -3659 3659 6 -3660 3659 -1 -3679 3659 -1 -4059 3659 -1 -3660 3660 6 -3680 3660 -1 -4060 3660 -1 -3661 3661 6 -3662 3661 -1 -3681 3661 -1 -4061 3661 -1 -3662 3662 6 -3663 3662 -1 -3682 3662 -1 -4062 3662 -1 -3663 3663 6 -3664 3663 -1 -3683 3663 -1 -4063 3663 -1 -3664 3664 6 -3665 3664 -1 -3684 3664 -1 -4064 3664 -1 -3665 3665 6 -3666 3665 -1 -3685 3665 -1 -4065 3665 -1 -3666 3666 6 -3667 3666 -1 -3686 3666 -1 -4066 3666 -1 -3667 3667 6 -3668 3667 -1 -3687 3667 -1 -4067 3667 -1 -3668 3668 6 -3669 3668 -1 -3688 3668 -1 -4068 3668 -1 -3669 3669 6 -3670 3669 -1 -3689 3669 -1 -4069 3669 -1 -3670 3670 6 -3671 3670 -1 -3690 3670 -1 -4070 3670 -1 -3671 3671 6 -3672 3671 -1 -3691 3671 -1 -4071 3671 -1 -3672 3672 6 -3673 3672 -1 -3692 3672 -1 -4072 3672 -1 -3673 3673 6 -3674 3673 -1 -3693 3673 -1 -4073 3673 -1 -3674 3674 6 -3675 3674 -1 -3694 3674 -1 -4074 3674 -1 -3675 3675 6 -3676 3675 -1 -3695 3675 -1 -4075 3675 -1 -3676 3676 6 -3677 3676 -1 -3696 3676 -1 -4076 3676 -1 -3677 3677 6 -3678 3677 -1 -3697 3677 -1 -4077 3677 -1 -3678 3678 6 -3679 3678 -1 -3698 3678 -1 -4078 3678 -1 -3679 3679 6 -3680 3679 -1 -3699 3679 -1 -4079 3679 -1 -3680 3680 6 -3700 3680 -1 -4080 3680 -1 -3681 3681 6 -3682 3681 -1 -3701 3681 -1 -4081 3681 -1 -3682 3682 6 -3683 3682 -1 -3702 3682 -1 -4082 3682 -1 -3683 3683 6 -3684 3683 -1 -3703 3683 -1 -4083 3683 -1 -3684 3684 6 -3685 3684 -1 -3704 3684 -1 -4084 3684 -1 -3685 3685 6 -3686 3685 -1 -3705 3685 -1 -4085 3685 -1 -3686 3686 6 -3687 3686 -1 -3706 3686 -1 -4086 3686 -1 -3687 3687 6 -3688 3687 -1 -3707 3687 -1 -4087 3687 -1 -3688 3688 6 -3689 3688 -1 -3708 3688 -1 -4088 3688 -1 -3689 3689 6 -3690 3689 -1 -3709 3689 -1 -4089 3689 -1 -3690 3690 6 -3691 3690 -1 -3710 3690 -1 -4090 3690 -1 -3691 3691 6 -3692 3691 -1 -3711 3691 -1 -4091 3691 -1 -3692 3692 6 -3693 3692 -1 -3712 3692 -1 -4092 3692 -1 -3693 3693 6 -3694 3693 -1 -3713 3693 -1 -4093 3693 -1 -3694 3694 6 -3695 3694 -1 -3714 3694 -1 -4094 3694 -1 -3695 3695 6 -3696 3695 -1 -3715 3695 -1 -4095 3695 -1 -3696 3696 6 -3697 3696 -1 -3716 3696 -1 -4096 3696 -1 -3697 3697 6 -3698 3697 -1 -3717 3697 -1 -4097 3697 -1 -3698 3698 6 -3699 3698 -1 -3718 3698 -1 -4098 3698 -1 -3699 3699 6 -3700 3699 -1 -3719 3699 -1 -4099 3699 -1 -3700 3700 6 -3720 3700 -1 -4100 3700 -1 -3701 3701 6 -3702 3701 -1 -3721 3701 -1 -4101 3701 -1 -3702 3702 6 -3703 3702 -1 -3722 3702 -1 -4102 3702 -1 -3703 3703 6 -3704 3703 -1 -3723 3703 -1 -4103 3703 -1 -3704 3704 6 -3705 3704 -1 -3724 3704 -1 -4104 3704 -1 -3705 3705 6 -3706 3705 -1 -3725 3705 -1 -4105 3705 -1 -3706 3706 6 -3707 3706 -1 -3726 3706 -1 -4106 3706 -1 -3707 3707 6 -3708 3707 -1 -3727 3707 -1 -4107 3707 -1 -3708 3708 6 -3709 3708 -1 -3728 3708 -1 -4108 3708 -1 -3709 3709 6 -3710 3709 -1 -3729 3709 -1 -4109 3709 -1 -3710 3710 6 -3711 3710 -1 -3730 3710 -1 -4110 3710 -1 -3711 3711 6 -3712 3711 -1 -3731 3711 -1 -4111 3711 -1 -3712 3712 6 -3713 3712 -1 -3732 3712 -1 -4112 3712 -1 -3713 3713 6 -3714 3713 -1 -3733 3713 -1 -4113 3713 -1 -3714 3714 6 -3715 3714 -1 -3734 3714 -1 -4114 3714 -1 -3715 3715 6 -3716 3715 -1 -3735 3715 -1 -4115 3715 -1 -3716 3716 6 -3717 3716 -1 -3736 3716 -1 -4116 3716 -1 -3717 3717 6 -3718 3717 -1 -3737 3717 -1 -4117 3717 -1 -3718 3718 6 -3719 3718 -1 -3738 3718 -1 -4118 3718 -1 -3719 3719 6 -3720 3719 -1 -3739 3719 -1 -4119 3719 -1 -3720 3720 6 -3740 3720 -1 -4120 3720 -1 -3721 3721 6 -3722 3721 -1 -3741 3721 -1 -4121 3721 -1 -3722 3722 6 -3723 3722 -1 -3742 3722 -1 -4122 3722 -1 -3723 3723 6 -3724 3723 -1 -3743 3723 -1 -4123 3723 -1 -3724 3724 6 -3725 3724 -1 -3744 3724 -1 -4124 3724 -1 -3725 3725 6 -3726 3725 -1 -3745 3725 -1 -4125 3725 -1 -3726 3726 6 -3727 3726 -1 -3746 3726 -1 -4126 3726 -1 -3727 3727 6 -3728 3727 -1 -3747 3727 -1 -4127 3727 -1 -3728 3728 6 -3729 3728 -1 -3748 3728 -1 -4128 3728 -1 -3729 3729 6 -3730 3729 -1 -3749 3729 -1 -4129 3729 -1 -3730 3730 6 -3731 3730 -1 -3750 3730 -1 -4130 3730 -1 -3731 3731 6 -3732 3731 -1 -3751 3731 -1 -4131 3731 -1 -3732 3732 6 -3733 3732 -1 -3752 3732 -1 -4132 3732 -1 -3733 3733 6 -3734 3733 -1 -3753 3733 -1 -4133 3733 -1 -3734 3734 6 -3735 3734 -1 -3754 3734 -1 -4134 3734 -1 -3735 3735 6 -3736 3735 -1 -3755 3735 -1 -4135 3735 -1 -3736 3736 6 -3737 3736 -1 -3756 3736 -1 -4136 3736 -1 -3737 3737 6 -3738 3737 -1 -3757 3737 -1 -4137 3737 -1 -3738 3738 6 -3739 3738 -1 -3758 3738 -1 -4138 3738 -1 -3739 3739 6 -3740 3739 -1 -3759 3739 -1 -4139 3739 -1 -3740 3740 6 -3760 3740 -1 -4140 3740 -1 -3741 3741 6 -3742 3741 -1 -3761 3741 -1 -4141 3741 -1 -3742 3742 6 -3743 3742 -1 -3762 3742 -1 -4142 3742 -1 -3743 3743 6 -3744 3743 -1 -3763 3743 -1 -4143 3743 -1 -3744 3744 6 -3745 3744 -1 -3764 3744 -1 -4144 3744 -1 -3745 3745 6 -3746 3745 -1 -3765 3745 -1 -4145 3745 -1 -3746 3746 6 -3747 3746 -1 -3766 3746 -1 -4146 3746 -1 -3747 3747 6 -3748 3747 -1 -3767 3747 -1 -4147 3747 -1 -3748 3748 6 -3749 3748 -1 -3768 3748 -1 -4148 3748 -1 -3749 3749 6 -3750 3749 -1 -3769 3749 -1 -4149 3749 -1 -3750 3750 6 -3751 3750 -1 -3770 3750 -1 -4150 3750 -1 -3751 3751 6 -3752 3751 -1 -3771 3751 -1 -4151 3751 -1 -3752 3752 6 -3753 3752 -1 -3772 3752 -1 -4152 3752 -1 -3753 3753 6 -3754 3753 -1 -3773 3753 -1 -4153 3753 -1 -3754 3754 6 -3755 3754 -1 -3774 3754 -1 -4154 3754 -1 -3755 3755 6 -3756 3755 -1 -3775 3755 -1 -4155 3755 -1 -3756 3756 6 -3757 3756 -1 -3776 3756 -1 -4156 3756 -1 -3757 3757 6 -3758 3757 -1 -3777 3757 -1 -4157 3757 -1 -3758 3758 6 -3759 3758 -1 -3778 3758 -1 -4158 3758 -1 -3759 3759 6 -3760 3759 -1 -3779 3759 -1 -4159 3759 -1 -3760 3760 6 -3780 3760 -1 -4160 3760 -1 -3761 3761 6 -3762 3761 -1 -3781 3761 -1 -4161 3761 -1 -3762 3762 6 -3763 3762 -1 -3782 3762 -1 -4162 3762 -1 -3763 3763 6 -3764 3763 -1 -3783 3763 -1 -4163 3763 -1 -3764 3764 6 -3765 3764 -1 -3784 3764 -1 -4164 3764 -1 -3765 3765 6 -3766 3765 -1 -3785 3765 -1 -4165 3765 -1 -3766 3766 6 -3767 3766 -1 -3786 3766 -1 -4166 3766 -1 -3767 3767 6 -3768 3767 -1 -3787 3767 -1 -4167 3767 -1 -3768 3768 6 -3769 3768 -1 -3788 3768 -1 -4168 3768 -1 -3769 3769 6 -3770 3769 -1 -3789 3769 -1 -4169 3769 -1 -3770 3770 6 -3771 3770 -1 -3790 3770 -1 -4170 3770 -1 -3771 3771 6 -3772 3771 -1 -3791 3771 -1 -4171 3771 -1 -3772 3772 6 -3773 3772 -1 -3792 3772 -1 -4172 3772 -1 -3773 3773 6 -3774 3773 -1 -3793 3773 -1 -4173 3773 -1 -3774 3774 6 -3775 3774 -1 -3794 3774 -1 -4174 3774 -1 -3775 3775 6 -3776 3775 -1 -3795 3775 -1 -4175 3775 -1 -3776 3776 6 -3777 3776 -1 -3796 3776 -1 -4176 3776 -1 -3777 3777 6 -3778 3777 -1 -3797 3777 -1 -4177 3777 -1 -3778 3778 6 -3779 3778 -1 -3798 3778 -1 -4178 3778 -1 -3779 3779 6 -3780 3779 -1 -3799 3779 -1 -4179 3779 -1 -3780 3780 6 -3800 3780 -1 -4180 3780 -1 -3781 3781 6 -3782 3781 -1 -3801 3781 -1 -4181 3781 -1 -3782 3782 6 -3783 3782 -1 -3802 3782 -1 -4182 3782 -1 -3783 3783 6 -3784 3783 -1 -3803 3783 -1 -4183 3783 -1 -3784 3784 6 -3785 3784 -1 -3804 3784 -1 -4184 3784 -1 -3785 3785 6 -3786 3785 -1 -3805 3785 -1 -4185 3785 -1 -3786 3786 6 -3787 3786 -1 -3806 3786 -1 -4186 3786 -1 -3787 3787 6 -3788 3787 -1 -3807 3787 -1 -4187 3787 -1 -3788 3788 6 -3789 3788 -1 -3808 3788 -1 -4188 3788 -1 -3789 3789 6 -3790 3789 -1 -3809 3789 -1 -4189 3789 -1 -3790 3790 6 -3791 3790 -1 -3810 3790 -1 -4190 3790 -1 -3791 3791 6 -3792 3791 -1 -3811 3791 -1 -4191 3791 -1 -3792 3792 6 -3793 3792 -1 -3812 3792 -1 -4192 3792 -1 -3793 3793 6 -3794 3793 -1 -3813 3793 -1 -4193 3793 -1 -3794 3794 6 -3795 3794 -1 -3814 3794 -1 -4194 3794 -1 -3795 3795 6 -3796 3795 -1 -3815 3795 -1 -4195 3795 -1 -3796 3796 6 -3797 3796 -1 -3816 3796 -1 -4196 3796 -1 -3797 3797 6 -3798 3797 -1 -3817 3797 -1 -4197 3797 -1 -3798 3798 6 -3799 3798 -1 -3818 3798 -1 -4198 3798 -1 -3799 3799 6 -3800 3799 -1 -3819 3799 -1 -4199 3799 -1 -3800 3800 6 -3820 3800 -1 -4200 3800 -1 -3801 3801 6 -3802 3801 -1 -3821 3801 -1 -4201 3801 -1 -3802 3802 6 -3803 3802 -1 -3822 3802 -1 -4202 3802 -1 -3803 3803 6 -3804 3803 -1 -3823 3803 -1 -4203 3803 -1 -3804 3804 6 -3805 3804 -1 -3824 3804 -1 -4204 3804 -1 -3805 3805 6 -3806 3805 -1 -3825 3805 -1 -4205 3805 -1 -3806 3806 6 -3807 3806 -1 -3826 3806 -1 -4206 3806 -1 -3807 3807 6 -3808 3807 -1 -3827 3807 -1 -4207 3807 -1 -3808 3808 6 -3809 3808 -1 -3828 3808 -1 -4208 3808 -1 -3809 3809 6 -3810 3809 -1 -3829 3809 -1 -4209 3809 -1 -3810 3810 6 -3811 3810 -1 -3830 3810 -1 -4210 3810 -1 -3811 3811 6 -3812 3811 -1 -3831 3811 -1 -4211 3811 -1 -3812 3812 6 -3813 3812 -1 -3832 3812 -1 -4212 3812 -1 -3813 3813 6 -3814 3813 -1 -3833 3813 -1 -4213 3813 -1 -3814 3814 6 -3815 3814 -1 -3834 3814 -1 -4214 3814 -1 -3815 3815 6 -3816 3815 -1 -3835 3815 -1 -4215 3815 -1 -3816 3816 6 -3817 3816 -1 -3836 3816 -1 -4216 3816 -1 -3817 3817 6 -3818 3817 -1 -3837 3817 -1 -4217 3817 -1 -3818 3818 6 -3819 3818 -1 -3838 3818 -1 -4218 3818 -1 -3819 3819 6 -3820 3819 -1 -3839 3819 -1 -4219 3819 -1 -3820 3820 6 -3840 3820 -1 -4220 3820 -1 -3821 3821 6 -3822 3821 -1 -3841 3821 -1 -4221 3821 -1 -3822 3822 6 -3823 3822 -1 -3842 3822 -1 -4222 3822 -1 -3823 3823 6 -3824 3823 -1 -3843 3823 -1 -4223 3823 -1 -3824 3824 6 -3825 3824 -1 -3844 3824 -1 -4224 3824 -1 -3825 3825 6 -3826 3825 -1 -3845 3825 -1 -4225 3825 -1 -3826 3826 6 -3827 3826 -1 -3846 3826 -1 -4226 3826 -1 -3827 3827 6 -3828 3827 -1 -3847 3827 -1 -4227 3827 -1 -3828 3828 6 -3829 3828 -1 -3848 3828 -1 -4228 3828 -1 -3829 3829 6 -3830 3829 -1 -3849 3829 -1 -4229 3829 -1 -3830 3830 6 -3831 3830 -1 -3850 3830 -1 -4230 3830 -1 -3831 3831 6 -3832 3831 -1 -3851 3831 -1 -4231 3831 -1 -3832 3832 6 -3833 3832 -1 -3852 3832 -1 -4232 3832 -1 -3833 3833 6 -3834 3833 -1 -3853 3833 -1 -4233 3833 -1 -3834 3834 6 -3835 3834 -1 -3854 3834 -1 -4234 3834 -1 -3835 3835 6 -3836 3835 -1 -3855 3835 -1 -4235 3835 -1 -3836 3836 6 -3837 3836 -1 -3856 3836 -1 -4236 3836 -1 -3837 3837 6 -3838 3837 -1 -3857 3837 -1 -4237 3837 -1 -3838 3838 6 -3839 3838 -1 -3858 3838 -1 -4238 3838 -1 -3839 3839 6 -3840 3839 -1 -3859 3839 -1 -4239 3839 -1 -3840 3840 6 -3860 3840 -1 -4240 3840 -1 -3841 3841 6 -3842 3841 -1 -3861 3841 -1 -4241 3841 -1 -3842 3842 6 -3843 3842 -1 -3862 3842 -1 -4242 3842 -1 -3843 3843 6 -3844 3843 -1 -3863 3843 -1 -4243 3843 -1 -3844 3844 6 -3845 3844 -1 -3864 3844 -1 -4244 3844 -1 -3845 3845 6 -3846 3845 -1 -3865 3845 -1 -4245 3845 -1 -3846 3846 6 -3847 3846 -1 -3866 3846 -1 -4246 3846 -1 -3847 3847 6 -3848 3847 -1 -3867 3847 -1 -4247 3847 -1 -3848 3848 6 -3849 3848 -1 -3868 3848 -1 -4248 3848 -1 -3849 3849 6 -3850 3849 -1 -3869 3849 -1 -4249 3849 -1 -3850 3850 6 -3851 3850 -1 -3870 3850 -1 -4250 3850 -1 -3851 3851 6 -3852 3851 -1 -3871 3851 -1 -4251 3851 -1 -3852 3852 6 -3853 3852 -1 -3872 3852 -1 -4252 3852 -1 -3853 3853 6 -3854 3853 -1 -3873 3853 -1 -4253 3853 -1 -3854 3854 6 -3855 3854 -1 -3874 3854 -1 -4254 3854 -1 -3855 3855 6 -3856 3855 -1 -3875 3855 -1 -4255 3855 -1 -3856 3856 6 -3857 3856 -1 -3876 3856 -1 -4256 3856 -1 -3857 3857 6 -3858 3857 -1 -3877 3857 -1 -4257 3857 -1 -3858 3858 6 -3859 3858 -1 -3878 3858 -1 -4258 3858 -1 -3859 3859 6 -3860 3859 -1 -3879 3859 -1 -4259 3859 -1 -3860 3860 6 -3880 3860 -1 -4260 3860 -1 -3861 3861 6 -3862 3861 -1 -3881 3861 -1 -4261 3861 -1 -3862 3862 6 -3863 3862 -1 -3882 3862 -1 -4262 3862 -1 -3863 3863 6 -3864 3863 -1 -3883 3863 -1 -4263 3863 -1 -3864 3864 6 -3865 3864 -1 -3884 3864 -1 -4264 3864 -1 -3865 3865 6 -3866 3865 -1 -3885 3865 -1 -4265 3865 -1 -3866 3866 6 -3867 3866 -1 -3886 3866 -1 -4266 3866 -1 -3867 3867 6 -3868 3867 -1 -3887 3867 -1 -4267 3867 -1 -3868 3868 6 -3869 3868 -1 -3888 3868 -1 -4268 3868 -1 -3869 3869 6 -3870 3869 -1 -3889 3869 -1 -4269 3869 -1 -3870 3870 6 -3871 3870 -1 -3890 3870 -1 -4270 3870 -1 -3871 3871 6 -3872 3871 -1 -3891 3871 -1 -4271 3871 -1 -3872 3872 6 -3873 3872 -1 -3892 3872 -1 -4272 3872 -1 -3873 3873 6 -3874 3873 -1 -3893 3873 -1 -4273 3873 -1 -3874 3874 6 -3875 3874 -1 -3894 3874 -1 -4274 3874 -1 -3875 3875 6 -3876 3875 -1 -3895 3875 -1 -4275 3875 -1 -3876 3876 6 -3877 3876 -1 -3896 3876 -1 -4276 3876 -1 -3877 3877 6 -3878 3877 -1 -3897 3877 -1 -4277 3877 -1 -3878 3878 6 -3879 3878 -1 -3898 3878 -1 -4278 3878 -1 -3879 3879 6 -3880 3879 -1 -3899 3879 -1 -4279 3879 -1 -3880 3880 6 -3900 3880 -1 -4280 3880 -1 -3881 3881 6 -3882 3881 -1 -3901 3881 -1 -4281 3881 -1 -3882 3882 6 -3883 3882 -1 -3902 3882 -1 -4282 3882 -1 -3883 3883 6 -3884 3883 -1 -3903 3883 -1 -4283 3883 -1 -3884 3884 6 -3885 3884 -1 -3904 3884 -1 -4284 3884 -1 -3885 3885 6 -3886 3885 -1 -3905 3885 -1 -4285 3885 -1 -3886 3886 6 -3887 3886 -1 -3906 3886 -1 -4286 3886 -1 -3887 3887 6 -3888 3887 -1 -3907 3887 -1 -4287 3887 -1 -3888 3888 6 -3889 3888 -1 -3908 3888 -1 -4288 3888 -1 -3889 3889 6 -3890 3889 -1 -3909 3889 -1 -4289 3889 -1 -3890 3890 6 -3891 3890 -1 -3910 3890 -1 -4290 3890 -1 -3891 3891 6 -3892 3891 -1 -3911 3891 -1 -4291 3891 -1 -3892 3892 6 -3893 3892 -1 -3912 3892 -1 -4292 3892 -1 -3893 3893 6 -3894 3893 -1 -3913 3893 -1 -4293 3893 -1 -3894 3894 6 -3895 3894 -1 -3914 3894 -1 -4294 3894 -1 -3895 3895 6 -3896 3895 -1 -3915 3895 -1 -4295 3895 -1 -3896 3896 6 -3897 3896 -1 -3916 3896 -1 -4296 3896 -1 -3897 3897 6 -3898 3897 -1 -3917 3897 -1 -4297 3897 -1 -3898 3898 6 -3899 3898 -1 -3918 3898 -1 -4298 3898 -1 -3899 3899 6 -3900 3899 -1 -3919 3899 -1 -4299 3899 -1 -3900 3900 6 -3920 3900 -1 -4300 3900 -1 -3901 3901 6 -3902 3901 -1 -3921 3901 -1 -4301 3901 -1 -3902 3902 6 -3903 3902 -1 -3922 3902 -1 -4302 3902 -1 -3903 3903 6 -3904 3903 -1 -3923 3903 -1 -4303 3903 -1 -3904 3904 6 -3905 3904 -1 -3924 3904 -1 -4304 3904 -1 -3905 3905 6 -3906 3905 -1 -3925 3905 -1 -4305 3905 -1 -3906 3906 6 -3907 3906 -1 -3926 3906 -1 -4306 3906 -1 -3907 3907 6 -3908 3907 -1 -3927 3907 -1 -4307 3907 -1 -3908 3908 6 -3909 3908 -1 -3928 3908 -1 -4308 3908 -1 -3909 3909 6 -3910 3909 -1 -3929 3909 -1 -4309 3909 -1 -3910 3910 6 -3911 3910 -1 -3930 3910 -1 -4310 3910 -1 -3911 3911 6 -3912 3911 -1 -3931 3911 -1 -4311 3911 -1 -3912 3912 6 -3913 3912 -1 -3932 3912 -1 -4312 3912 -1 -3913 3913 6 -3914 3913 -1 -3933 3913 -1 -4313 3913 -1 -3914 3914 6 -3915 3914 -1 -3934 3914 -1 -4314 3914 -1 -3915 3915 6 -3916 3915 -1 -3935 3915 -1 -4315 3915 -1 -3916 3916 6 -3917 3916 -1 -3936 3916 -1 -4316 3916 -1 -3917 3917 6 -3918 3917 -1 -3937 3917 -1 -4317 3917 -1 -3918 3918 6 -3919 3918 -1 -3938 3918 -1 -4318 3918 -1 -3919 3919 6 -3920 3919 -1 -3939 3919 -1 -4319 3919 -1 -3920 3920 6 -3940 3920 -1 -4320 3920 -1 -3921 3921 6 -3922 3921 -1 -3941 3921 -1 -4321 3921 -1 -3922 3922 6 -3923 3922 -1 -3942 3922 -1 -4322 3922 -1 -3923 3923 6 -3924 3923 -1 -3943 3923 -1 -4323 3923 -1 -3924 3924 6 -3925 3924 -1 -3944 3924 -1 -4324 3924 -1 -3925 3925 6 -3926 3925 -1 -3945 3925 -1 -4325 3925 -1 -3926 3926 6 -3927 3926 -1 -3946 3926 -1 -4326 3926 -1 -3927 3927 6 -3928 3927 -1 -3947 3927 -1 -4327 3927 -1 -3928 3928 6 -3929 3928 -1 -3948 3928 -1 -4328 3928 -1 -3929 3929 6 -3930 3929 -1 -3949 3929 -1 -4329 3929 -1 -3930 3930 6 -3931 3930 -1 -3950 3930 -1 -4330 3930 -1 -3931 3931 6 -3932 3931 -1 -3951 3931 -1 -4331 3931 -1 -3932 3932 6 -3933 3932 -1 -3952 3932 -1 -4332 3932 -1 -3933 3933 6 -3934 3933 -1 -3953 3933 -1 -4333 3933 -1 -3934 3934 6 -3935 3934 -1 -3954 3934 -1 -4334 3934 -1 -3935 3935 6 -3936 3935 -1 -3955 3935 -1 -4335 3935 -1 -3936 3936 6 -3937 3936 -1 -3956 3936 -1 -4336 3936 -1 -3937 3937 6 -3938 3937 -1 -3957 3937 -1 -4337 3937 -1 -3938 3938 6 -3939 3938 -1 -3958 3938 -1 -4338 3938 -1 -3939 3939 6 -3940 3939 -1 -3959 3939 -1 -4339 3939 -1 -3940 3940 6 -3960 3940 -1 -4340 3940 -1 -3941 3941 6 -3942 3941 -1 -3961 3941 -1 -4341 3941 -1 -3942 3942 6 -3943 3942 -1 -3962 3942 -1 -4342 3942 -1 -3943 3943 6 -3944 3943 -1 -3963 3943 -1 -4343 3943 -1 -3944 3944 6 -3945 3944 -1 -3964 3944 -1 -4344 3944 -1 -3945 3945 6 -3946 3945 -1 -3965 3945 -1 -4345 3945 -1 -3946 3946 6 -3947 3946 -1 -3966 3946 -1 -4346 3946 -1 -3947 3947 6 -3948 3947 -1 -3967 3947 -1 -4347 3947 -1 -3948 3948 6 -3949 3948 -1 -3968 3948 -1 -4348 3948 -1 -3949 3949 6 -3950 3949 -1 -3969 3949 -1 -4349 3949 -1 -3950 3950 6 -3951 3950 -1 -3970 3950 -1 -4350 3950 -1 -3951 3951 6 -3952 3951 -1 -3971 3951 -1 -4351 3951 -1 -3952 3952 6 -3953 3952 -1 -3972 3952 -1 -4352 3952 -1 -3953 3953 6 -3954 3953 -1 -3973 3953 -1 -4353 3953 -1 -3954 3954 6 -3955 3954 -1 -3974 3954 -1 -4354 3954 -1 -3955 3955 6 -3956 3955 -1 -3975 3955 -1 -4355 3955 -1 -3956 3956 6 -3957 3956 -1 -3976 3956 -1 -4356 3956 -1 -3957 3957 6 -3958 3957 -1 -3977 3957 -1 -4357 3957 -1 -3958 3958 6 -3959 3958 -1 -3978 3958 -1 -4358 3958 -1 -3959 3959 6 -3960 3959 -1 -3979 3959 -1 -4359 3959 -1 -3960 3960 6 -3980 3960 -1 -4360 3960 -1 -3961 3961 6 -3962 3961 -1 -3981 3961 -1 -4361 3961 -1 -3962 3962 6 -3963 3962 -1 -3982 3962 -1 -4362 3962 -1 -3963 3963 6 -3964 3963 -1 -3983 3963 -1 -4363 3963 -1 -3964 3964 6 -3965 3964 -1 -3984 3964 -1 -4364 3964 -1 -3965 3965 6 -3966 3965 -1 -3985 3965 -1 -4365 3965 -1 -3966 3966 6 -3967 3966 -1 -3986 3966 -1 -4366 3966 -1 -3967 3967 6 -3968 3967 -1 -3987 3967 -1 -4367 3967 -1 -3968 3968 6 -3969 3968 -1 -3988 3968 -1 -4368 3968 -1 -3969 3969 6 -3970 3969 -1 -3989 3969 -1 -4369 3969 -1 -3970 3970 6 -3971 3970 -1 -3990 3970 -1 -4370 3970 -1 -3971 3971 6 -3972 3971 -1 -3991 3971 -1 -4371 3971 -1 -3972 3972 6 -3973 3972 -1 -3992 3972 -1 -4372 3972 -1 -3973 3973 6 -3974 3973 -1 -3993 3973 -1 -4373 3973 -1 -3974 3974 6 -3975 3974 -1 -3994 3974 -1 -4374 3974 -1 -3975 3975 6 -3976 3975 -1 -3995 3975 -1 -4375 3975 -1 -3976 3976 6 -3977 3976 -1 -3996 3976 -1 -4376 3976 -1 -3977 3977 6 -3978 3977 -1 -3997 3977 -1 -4377 3977 -1 -3978 3978 6 -3979 3978 -1 -3998 3978 -1 -4378 3978 -1 -3979 3979 6 -3980 3979 -1 -3999 3979 -1 -4379 3979 -1 -3980 3980 6 -4000 3980 -1 -4380 3980 -1 -3981 3981 6 -3982 3981 -1 -4381 3981 -1 -3982 3982 6 -3983 3982 -1 -4382 3982 -1 -3983 3983 6 -3984 3983 -1 -4383 3983 -1 -3984 3984 6 -3985 3984 -1 -4384 3984 -1 -3985 3985 6 -3986 3985 -1 -4385 3985 -1 -3986 3986 6 -3987 3986 -1 -4386 3986 -1 -3987 3987 6 -3988 3987 -1 -4387 3987 -1 -3988 3988 6 -3989 3988 -1 -4388 3988 -1 -3989 3989 6 -3990 3989 -1 -4389 3989 -1 -3990 3990 6 -3991 3990 -1 -4390 3990 -1 -3991 3991 6 -3992 3991 -1 -4391 3991 -1 -3992 3992 6 -3993 3992 -1 -4392 3992 -1 -3993 3993 6 -3994 3993 -1 -4393 3993 -1 -3994 3994 6 -3995 3994 -1 -4394 3994 -1 -3995 3995 6 -3996 3995 -1 -4395 3995 -1 -3996 3996 6 -3997 3996 -1 -4396 3996 -1 -3997 3997 6 -3998 3997 -1 -4397 3997 -1 -3998 3998 6 -3999 3998 -1 -4398 3998 -1 -3999 3999 6 -4000 3999 -1 -4399 3999 -1 -4000 4000 6 -4400 4000 -1 -4001 4001 6 -4002 4001 -1 -4021 4001 -1 -4401 4001 -1 -4002 4002 6 -4003 4002 -1 -4022 4002 -1 -4402 4002 -1 -4003 4003 6 -4004 4003 -1 -4023 4003 -1 -4403 4003 -1 -4004 4004 6 -4005 4004 -1 -4024 4004 -1 -4404 4004 -1 -4005 4005 6 -4006 4005 -1 -4025 4005 -1 -4405 4005 -1 -4006 4006 6 -4007 4006 -1 -4026 4006 -1 -4406 4006 -1 -4007 4007 6 -4008 4007 -1 -4027 4007 -1 -4407 4007 -1 -4008 4008 6 -4009 4008 -1 -4028 4008 -1 -4408 4008 -1 -4009 4009 6 -4010 4009 -1 -4029 4009 -1 -4409 4009 -1 -4010 4010 6 -4011 4010 -1 -4030 4010 -1 -4410 4010 -1 -4011 4011 6 -4012 4011 -1 -4031 4011 -1 -4411 4011 -1 -4012 4012 6 -4013 4012 -1 -4032 4012 -1 -4412 4012 -1 -4013 4013 6 -4014 4013 -1 -4033 4013 -1 -4413 4013 -1 -4014 4014 6 -4015 4014 -1 -4034 4014 -1 -4414 4014 -1 -4015 4015 6 -4016 4015 -1 -4035 4015 -1 -4415 4015 -1 -4016 4016 6 -4017 4016 -1 -4036 4016 -1 -4416 4016 -1 -4017 4017 6 -4018 4017 -1 -4037 4017 -1 -4417 4017 -1 -4018 4018 6 -4019 4018 -1 -4038 4018 -1 -4418 4018 -1 -4019 4019 6 -4020 4019 -1 -4039 4019 -1 -4419 4019 -1 -4020 4020 6 -4040 4020 -1 -4420 4020 -1 -4021 4021 6 -4022 4021 -1 -4041 4021 -1 -4421 4021 -1 -4022 4022 6 -4023 4022 -1 -4042 4022 -1 -4422 4022 -1 -4023 4023 6 -4024 4023 -1 -4043 4023 -1 -4423 4023 -1 -4024 4024 6 -4025 4024 -1 -4044 4024 -1 -4424 4024 -1 -4025 4025 6 -4026 4025 -1 -4045 4025 -1 -4425 4025 -1 -4026 4026 6 -4027 4026 -1 -4046 4026 -1 -4426 4026 -1 -4027 4027 6 -4028 4027 -1 -4047 4027 -1 -4427 4027 -1 -4028 4028 6 -4029 4028 -1 -4048 4028 -1 -4428 4028 -1 -4029 4029 6 -4030 4029 -1 -4049 4029 -1 -4429 4029 -1 -4030 4030 6 -4031 4030 -1 -4050 4030 -1 -4430 4030 -1 -4031 4031 6 -4032 4031 -1 -4051 4031 -1 -4431 4031 -1 -4032 4032 6 -4033 4032 -1 -4052 4032 -1 -4432 4032 -1 -4033 4033 6 -4034 4033 -1 -4053 4033 -1 -4433 4033 -1 -4034 4034 6 -4035 4034 -1 -4054 4034 -1 -4434 4034 -1 -4035 4035 6 -4036 4035 -1 -4055 4035 -1 -4435 4035 -1 -4036 4036 6 -4037 4036 -1 -4056 4036 -1 -4436 4036 -1 -4037 4037 6 -4038 4037 -1 -4057 4037 -1 -4437 4037 -1 -4038 4038 6 -4039 4038 -1 -4058 4038 -1 -4438 4038 -1 -4039 4039 6 -4040 4039 -1 -4059 4039 -1 -4439 4039 -1 -4040 4040 6 -4060 4040 -1 -4440 4040 -1 -4041 4041 6 -4042 4041 -1 -4061 4041 -1 -4441 4041 -1 -4042 4042 6 -4043 4042 -1 -4062 4042 -1 -4442 4042 -1 -4043 4043 6 -4044 4043 -1 -4063 4043 -1 -4443 4043 -1 -4044 4044 6 -4045 4044 -1 -4064 4044 -1 -4444 4044 -1 -4045 4045 6 -4046 4045 -1 -4065 4045 -1 -4445 4045 -1 -4046 4046 6 -4047 4046 -1 -4066 4046 -1 -4446 4046 -1 -4047 4047 6 -4048 4047 -1 -4067 4047 -1 -4447 4047 -1 -4048 4048 6 -4049 4048 -1 -4068 4048 -1 -4448 4048 -1 -4049 4049 6 -4050 4049 -1 -4069 4049 -1 -4449 4049 -1 -4050 4050 6 -4051 4050 -1 -4070 4050 -1 -4450 4050 -1 -4051 4051 6 -4052 4051 -1 -4071 4051 -1 -4451 4051 -1 -4052 4052 6 -4053 4052 -1 -4072 4052 -1 -4452 4052 -1 -4053 4053 6 -4054 4053 -1 -4073 4053 -1 -4453 4053 -1 -4054 4054 6 -4055 4054 -1 -4074 4054 -1 -4454 4054 -1 -4055 4055 6 -4056 4055 -1 -4075 4055 -1 -4455 4055 -1 -4056 4056 6 -4057 4056 -1 -4076 4056 -1 -4456 4056 -1 -4057 4057 6 -4058 4057 -1 -4077 4057 -1 -4457 4057 -1 -4058 4058 6 -4059 4058 -1 -4078 4058 -1 -4458 4058 -1 -4059 4059 6 -4060 4059 -1 -4079 4059 -1 -4459 4059 -1 -4060 4060 6 -4080 4060 -1 -4460 4060 -1 -4061 4061 6 -4062 4061 -1 -4081 4061 -1 -4461 4061 -1 -4062 4062 6 -4063 4062 -1 -4082 4062 -1 -4462 4062 -1 -4063 4063 6 -4064 4063 -1 -4083 4063 -1 -4463 4063 -1 -4064 4064 6 -4065 4064 -1 -4084 4064 -1 -4464 4064 -1 -4065 4065 6 -4066 4065 -1 -4085 4065 -1 -4465 4065 -1 -4066 4066 6 -4067 4066 -1 -4086 4066 -1 -4466 4066 -1 -4067 4067 6 -4068 4067 -1 -4087 4067 -1 -4467 4067 -1 -4068 4068 6 -4069 4068 -1 -4088 4068 -1 -4468 4068 -1 -4069 4069 6 -4070 4069 -1 -4089 4069 -1 -4469 4069 -1 -4070 4070 6 -4071 4070 -1 -4090 4070 -1 -4470 4070 -1 -4071 4071 6 -4072 4071 -1 -4091 4071 -1 -4471 4071 -1 -4072 4072 6 -4073 4072 -1 -4092 4072 -1 -4472 4072 -1 -4073 4073 6 -4074 4073 -1 -4093 4073 -1 -4473 4073 -1 -4074 4074 6 -4075 4074 -1 -4094 4074 -1 -4474 4074 -1 -4075 4075 6 -4076 4075 -1 -4095 4075 -1 -4475 4075 -1 -4076 4076 6 -4077 4076 -1 -4096 4076 -1 -4476 4076 -1 -4077 4077 6 -4078 4077 -1 -4097 4077 -1 -4477 4077 -1 -4078 4078 6 -4079 4078 -1 -4098 4078 -1 -4478 4078 -1 -4079 4079 6 -4080 4079 -1 -4099 4079 -1 -4479 4079 -1 -4080 4080 6 -4100 4080 -1 -4480 4080 -1 -4081 4081 6 -4082 4081 -1 -4101 4081 -1 -4481 4081 -1 -4082 4082 6 -4083 4082 -1 -4102 4082 -1 -4482 4082 -1 -4083 4083 6 -4084 4083 -1 -4103 4083 -1 -4483 4083 -1 -4084 4084 6 -4085 4084 -1 -4104 4084 -1 -4484 4084 -1 -4085 4085 6 -4086 4085 -1 -4105 4085 -1 -4485 4085 -1 -4086 4086 6 -4087 4086 -1 -4106 4086 -1 -4486 4086 -1 -4087 4087 6 -4088 4087 -1 -4107 4087 -1 -4487 4087 -1 -4088 4088 6 -4089 4088 -1 -4108 4088 -1 -4488 4088 -1 -4089 4089 6 -4090 4089 -1 -4109 4089 -1 -4489 4089 -1 -4090 4090 6 -4091 4090 -1 -4110 4090 -1 -4490 4090 -1 -4091 4091 6 -4092 4091 -1 -4111 4091 -1 -4491 4091 -1 -4092 4092 6 -4093 4092 -1 -4112 4092 -1 -4492 4092 -1 -4093 4093 6 -4094 4093 -1 -4113 4093 -1 -4493 4093 -1 -4094 4094 6 -4095 4094 -1 -4114 4094 -1 -4494 4094 -1 -4095 4095 6 -4096 4095 -1 -4115 4095 -1 -4495 4095 -1 -4096 4096 6 -4097 4096 -1 -4116 4096 -1 -4496 4096 -1 -4097 4097 6 -4098 4097 -1 -4117 4097 -1 -4497 4097 -1 -4098 4098 6 -4099 4098 -1 -4118 4098 -1 -4498 4098 -1 -4099 4099 6 -4100 4099 -1 -4119 4099 -1 -4499 4099 -1 -4100 4100 6 -4120 4100 -1 -4500 4100 -1 -4101 4101 6 -4102 4101 -1 -4121 4101 -1 -4501 4101 -1 -4102 4102 6 -4103 4102 -1 -4122 4102 -1 -4502 4102 -1 -4103 4103 6 -4104 4103 -1 -4123 4103 -1 -4503 4103 -1 -4104 4104 6 -4105 4104 -1 -4124 4104 -1 -4504 4104 -1 -4105 4105 6 -4106 4105 -1 -4125 4105 -1 -4505 4105 -1 -4106 4106 6 -4107 4106 -1 -4126 4106 -1 -4506 4106 -1 -4107 4107 6 -4108 4107 -1 -4127 4107 -1 -4507 4107 -1 -4108 4108 6 -4109 4108 -1 -4128 4108 -1 -4508 4108 -1 -4109 4109 6 -4110 4109 -1 -4129 4109 -1 -4509 4109 -1 -4110 4110 6 -4111 4110 -1 -4130 4110 -1 -4510 4110 -1 -4111 4111 6 -4112 4111 -1 -4131 4111 -1 -4511 4111 -1 -4112 4112 6 -4113 4112 -1 -4132 4112 -1 -4512 4112 -1 -4113 4113 6 -4114 4113 -1 -4133 4113 -1 -4513 4113 -1 -4114 4114 6 -4115 4114 -1 -4134 4114 -1 -4514 4114 -1 -4115 4115 6 -4116 4115 -1 -4135 4115 -1 -4515 4115 -1 -4116 4116 6 -4117 4116 -1 -4136 4116 -1 -4516 4116 -1 -4117 4117 6 -4118 4117 -1 -4137 4117 -1 -4517 4117 -1 -4118 4118 6 -4119 4118 -1 -4138 4118 -1 -4518 4118 -1 -4119 4119 6 -4120 4119 -1 -4139 4119 -1 -4519 4119 -1 -4120 4120 6 -4140 4120 -1 -4520 4120 -1 -4121 4121 6 -4122 4121 -1 -4141 4121 -1 -4521 4121 -1 -4122 4122 6 -4123 4122 -1 -4142 4122 -1 -4522 4122 -1 -4123 4123 6 -4124 4123 -1 -4143 4123 -1 -4523 4123 -1 -4124 4124 6 -4125 4124 -1 -4144 4124 -1 -4524 4124 -1 -4125 4125 6 -4126 4125 -1 -4145 4125 -1 -4525 4125 -1 -4126 4126 6 -4127 4126 -1 -4146 4126 -1 -4526 4126 -1 -4127 4127 6 -4128 4127 -1 -4147 4127 -1 -4527 4127 -1 -4128 4128 6 -4129 4128 -1 -4148 4128 -1 -4528 4128 -1 -4129 4129 6 -4130 4129 -1 -4149 4129 -1 -4529 4129 -1 -4130 4130 6 -4131 4130 -1 -4150 4130 -1 -4530 4130 -1 -4131 4131 6 -4132 4131 -1 -4151 4131 -1 -4531 4131 -1 -4132 4132 6 -4133 4132 -1 -4152 4132 -1 -4532 4132 -1 -4133 4133 6 -4134 4133 -1 -4153 4133 -1 -4533 4133 -1 -4134 4134 6 -4135 4134 -1 -4154 4134 -1 -4534 4134 -1 -4135 4135 6 -4136 4135 -1 -4155 4135 -1 -4535 4135 -1 -4136 4136 6 -4137 4136 -1 -4156 4136 -1 -4536 4136 -1 -4137 4137 6 -4138 4137 -1 -4157 4137 -1 -4537 4137 -1 -4138 4138 6 -4139 4138 -1 -4158 4138 -1 -4538 4138 -1 -4139 4139 6 -4140 4139 -1 -4159 4139 -1 -4539 4139 -1 -4140 4140 6 -4160 4140 -1 -4540 4140 -1 -4141 4141 6 -4142 4141 -1 -4161 4141 -1 -4541 4141 -1 -4142 4142 6 -4143 4142 -1 -4162 4142 -1 -4542 4142 -1 -4143 4143 6 -4144 4143 -1 -4163 4143 -1 -4543 4143 -1 -4144 4144 6 -4145 4144 -1 -4164 4144 -1 -4544 4144 -1 -4145 4145 6 -4146 4145 -1 -4165 4145 -1 -4545 4145 -1 -4146 4146 6 -4147 4146 -1 -4166 4146 -1 -4546 4146 -1 -4147 4147 6 -4148 4147 -1 -4167 4147 -1 -4547 4147 -1 -4148 4148 6 -4149 4148 -1 -4168 4148 -1 -4548 4148 -1 -4149 4149 6 -4150 4149 -1 -4169 4149 -1 -4549 4149 -1 -4150 4150 6 -4151 4150 -1 -4170 4150 -1 -4550 4150 -1 -4151 4151 6 -4152 4151 -1 -4171 4151 -1 -4551 4151 -1 -4152 4152 6 -4153 4152 -1 -4172 4152 -1 -4552 4152 -1 -4153 4153 6 -4154 4153 -1 -4173 4153 -1 -4553 4153 -1 -4154 4154 6 -4155 4154 -1 -4174 4154 -1 -4554 4154 -1 -4155 4155 6 -4156 4155 -1 -4175 4155 -1 -4555 4155 -1 -4156 4156 6 -4157 4156 -1 -4176 4156 -1 -4556 4156 -1 -4157 4157 6 -4158 4157 -1 -4177 4157 -1 -4557 4157 -1 -4158 4158 6 -4159 4158 -1 -4178 4158 -1 -4558 4158 -1 -4159 4159 6 -4160 4159 -1 -4179 4159 -1 -4559 4159 -1 -4160 4160 6 -4180 4160 -1 -4560 4160 -1 -4161 4161 6 -4162 4161 -1 -4181 4161 -1 -4561 4161 -1 -4162 4162 6 -4163 4162 -1 -4182 4162 -1 -4562 4162 -1 -4163 4163 6 -4164 4163 -1 -4183 4163 -1 -4563 4163 -1 -4164 4164 6 -4165 4164 -1 -4184 4164 -1 -4564 4164 -1 -4165 4165 6 -4166 4165 -1 -4185 4165 -1 -4565 4165 -1 -4166 4166 6 -4167 4166 -1 -4186 4166 -1 -4566 4166 -1 -4167 4167 6 -4168 4167 -1 -4187 4167 -1 -4567 4167 -1 -4168 4168 6 -4169 4168 -1 -4188 4168 -1 -4568 4168 -1 -4169 4169 6 -4170 4169 -1 -4189 4169 -1 -4569 4169 -1 -4170 4170 6 -4171 4170 -1 -4190 4170 -1 -4570 4170 -1 -4171 4171 6 -4172 4171 -1 -4191 4171 -1 -4571 4171 -1 -4172 4172 6 -4173 4172 -1 -4192 4172 -1 -4572 4172 -1 -4173 4173 6 -4174 4173 -1 -4193 4173 -1 -4573 4173 -1 -4174 4174 6 -4175 4174 -1 -4194 4174 -1 -4574 4174 -1 -4175 4175 6 -4176 4175 -1 -4195 4175 -1 -4575 4175 -1 -4176 4176 6 -4177 4176 -1 -4196 4176 -1 -4576 4176 -1 -4177 4177 6 -4178 4177 -1 -4197 4177 -1 -4577 4177 -1 -4178 4178 6 -4179 4178 -1 -4198 4178 -1 -4578 4178 -1 -4179 4179 6 -4180 4179 -1 -4199 4179 -1 -4579 4179 -1 -4180 4180 6 -4200 4180 -1 -4580 4180 -1 -4181 4181 6 -4182 4181 -1 -4201 4181 -1 -4581 4181 -1 -4182 4182 6 -4183 4182 -1 -4202 4182 -1 -4582 4182 -1 -4183 4183 6 -4184 4183 -1 -4203 4183 -1 -4583 4183 -1 -4184 4184 6 -4185 4184 -1 -4204 4184 -1 -4584 4184 -1 -4185 4185 6 -4186 4185 -1 -4205 4185 -1 -4585 4185 -1 -4186 4186 6 -4187 4186 -1 -4206 4186 -1 -4586 4186 -1 -4187 4187 6 -4188 4187 -1 -4207 4187 -1 -4587 4187 -1 -4188 4188 6 -4189 4188 -1 -4208 4188 -1 -4588 4188 -1 -4189 4189 6 -4190 4189 -1 -4209 4189 -1 -4589 4189 -1 -4190 4190 6 -4191 4190 -1 -4210 4190 -1 -4590 4190 -1 -4191 4191 6 -4192 4191 -1 -4211 4191 -1 -4591 4191 -1 -4192 4192 6 -4193 4192 -1 -4212 4192 -1 -4592 4192 -1 -4193 4193 6 -4194 4193 -1 -4213 4193 -1 -4593 4193 -1 -4194 4194 6 -4195 4194 -1 -4214 4194 -1 -4594 4194 -1 -4195 4195 6 -4196 4195 -1 -4215 4195 -1 -4595 4195 -1 -4196 4196 6 -4197 4196 -1 -4216 4196 -1 -4596 4196 -1 -4197 4197 6 -4198 4197 -1 -4217 4197 -1 -4597 4197 -1 -4198 4198 6 -4199 4198 -1 -4218 4198 -1 -4598 4198 -1 -4199 4199 6 -4200 4199 -1 -4219 4199 -1 -4599 4199 -1 -4200 4200 6 -4220 4200 -1 -4600 4200 -1 -4201 4201 6 -4202 4201 -1 -4221 4201 -1 -4601 4201 -1 -4202 4202 6 -4203 4202 -1 -4222 4202 -1 -4602 4202 -1 -4203 4203 6 -4204 4203 -1 -4223 4203 -1 -4603 4203 -1 -4204 4204 6 -4205 4204 -1 -4224 4204 -1 -4604 4204 -1 -4205 4205 6 -4206 4205 -1 -4225 4205 -1 -4605 4205 -1 -4206 4206 6 -4207 4206 -1 -4226 4206 -1 -4606 4206 -1 -4207 4207 6 -4208 4207 -1 -4227 4207 -1 -4607 4207 -1 -4208 4208 6 -4209 4208 -1 -4228 4208 -1 -4608 4208 -1 -4209 4209 6 -4210 4209 -1 -4229 4209 -1 -4609 4209 -1 -4210 4210 6 -4211 4210 -1 -4230 4210 -1 -4610 4210 -1 -4211 4211 6 -4212 4211 -1 -4231 4211 -1 -4611 4211 -1 -4212 4212 6 -4213 4212 -1 -4232 4212 -1 -4612 4212 -1 -4213 4213 6 -4214 4213 -1 -4233 4213 -1 -4613 4213 -1 -4214 4214 6 -4215 4214 -1 -4234 4214 -1 -4614 4214 -1 -4215 4215 6 -4216 4215 -1 -4235 4215 -1 -4615 4215 -1 -4216 4216 6 -4217 4216 -1 -4236 4216 -1 -4616 4216 -1 -4217 4217 6 -4218 4217 -1 -4237 4217 -1 -4617 4217 -1 -4218 4218 6 -4219 4218 -1 -4238 4218 -1 -4618 4218 -1 -4219 4219 6 -4220 4219 -1 -4239 4219 -1 -4619 4219 -1 -4220 4220 6 -4240 4220 -1 -4620 4220 -1 -4221 4221 6 -4222 4221 -1 -4241 4221 -1 -4621 4221 -1 -4222 4222 6 -4223 4222 -1 -4242 4222 -1 -4622 4222 -1 -4223 4223 6 -4224 4223 -1 -4243 4223 -1 -4623 4223 -1 -4224 4224 6 -4225 4224 -1 -4244 4224 -1 -4624 4224 -1 -4225 4225 6 -4226 4225 -1 -4245 4225 -1 -4625 4225 -1 -4226 4226 6 -4227 4226 -1 -4246 4226 -1 -4626 4226 -1 -4227 4227 6 -4228 4227 -1 -4247 4227 -1 -4627 4227 -1 -4228 4228 6 -4229 4228 -1 -4248 4228 -1 -4628 4228 -1 -4229 4229 6 -4230 4229 -1 -4249 4229 -1 -4629 4229 -1 -4230 4230 6 -4231 4230 -1 -4250 4230 -1 -4630 4230 -1 -4231 4231 6 -4232 4231 -1 -4251 4231 -1 -4631 4231 -1 -4232 4232 6 -4233 4232 -1 -4252 4232 -1 -4632 4232 -1 -4233 4233 6 -4234 4233 -1 -4253 4233 -1 -4633 4233 -1 -4234 4234 6 -4235 4234 -1 -4254 4234 -1 -4634 4234 -1 -4235 4235 6 -4236 4235 -1 -4255 4235 -1 -4635 4235 -1 -4236 4236 6 -4237 4236 -1 -4256 4236 -1 -4636 4236 -1 -4237 4237 6 -4238 4237 -1 -4257 4237 -1 -4637 4237 -1 -4238 4238 6 -4239 4238 -1 -4258 4238 -1 -4638 4238 -1 -4239 4239 6 -4240 4239 -1 -4259 4239 -1 -4639 4239 -1 -4240 4240 6 -4260 4240 -1 -4640 4240 -1 -4241 4241 6 -4242 4241 -1 -4261 4241 -1 -4641 4241 -1 -4242 4242 6 -4243 4242 -1 -4262 4242 -1 -4642 4242 -1 -4243 4243 6 -4244 4243 -1 -4263 4243 -1 -4643 4243 -1 -4244 4244 6 -4245 4244 -1 -4264 4244 -1 -4644 4244 -1 -4245 4245 6 -4246 4245 -1 -4265 4245 -1 -4645 4245 -1 -4246 4246 6 -4247 4246 -1 -4266 4246 -1 -4646 4246 -1 -4247 4247 6 -4248 4247 -1 -4267 4247 -1 -4647 4247 -1 -4248 4248 6 -4249 4248 -1 -4268 4248 -1 -4648 4248 -1 -4249 4249 6 -4250 4249 -1 -4269 4249 -1 -4649 4249 -1 -4250 4250 6 -4251 4250 -1 -4270 4250 -1 -4650 4250 -1 -4251 4251 6 -4252 4251 -1 -4271 4251 -1 -4651 4251 -1 -4252 4252 6 -4253 4252 -1 -4272 4252 -1 -4652 4252 -1 -4253 4253 6 -4254 4253 -1 -4273 4253 -1 -4653 4253 -1 -4254 4254 6 -4255 4254 -1 -4274 4254 -1 -4654 4254 -1 -4255 4255 6 -4256 4255 -1 -4275 4255 -1 -4655 4255 -1 -4256 4256 6 -4257 4256 -1 -4276 4256 -1 -4656 4256 -1 -4257 4257 6 -4258 4257 -1 -4277 4257 -1 -4657 4257 -1 -4258 4258 6 -4259 4258 -1 -4278 4258 -1 -4658 4258 -1 -4259 4259 6 -4260 4259 -1 -4279 4259 -1 -4659 4259 -1 -4260 4260 6 -4280 4260 -1 -4660 4260 -1 -4261 4261 6 -4262 4261 -1 -4281 4261 -1 -4661 4261 -1 -4262 4262 6 -4263 4262 -1 -4282 4262 -1 -4662 4262 -1 -4263 4263 6 -4264 4263 -1 -4283 4263 -1 -4663 4263 -1 -4264 4264 6 -4265 4264 -1 -4284 4264 -1 -4664 4264 -1 -4265 4265 6 -4266 4265 -1 -4285 4265 -1 -4665 4265 -1 -4266 4266 6 -4267 4266 -1 -4286 4266 -1 -4666 4266 -1 -4267 4267 6 -4268 4267 -1 -4287 4267 -1 -4667 4267 -1 -4268 4268 6 -4269 4268 -1 -4288 4268 -1 -4668 4268 -1 -4269 4269 6 -4270 4269 -1 -4289 4269 -1 -4669 4269 -1 -4270 4270 6 -4271 4270 -1 -4290 4270 -1 -4670 4270 -1 -4271 4271 6 -4272 4271 -1 -4291 4271 -1 -4671 4271 -1 -4272 4272 6 -4273 4272 -1 -4292 4272 -1 -4672 4272 -1 -4273 4273 6 -4274 4273 -1 -4293 4273 -1 -4673 4273 -1 -4274 4274 6 -4275 4274 -1 -4294 4274 -1 -4674 4274 -1 -4275 4275 6 -4276 4275 -1 -4295 4275 -1 -4675 4275 -1 -4276 4276 6 -4277 4276 -1 -4296 4276 -1 -4676 4276 -1 -4277 4277 6 -4278 4277 -1 -4297 4277 -1 -4677 4277 -1 -4278 4278 6 -4279 4278 -1 -4298 4278 -1 -4678 4278 -1 -4279 4279 6 -4280 4279 -1 -4299 4279 -1 -4679 4279 -1 -4280 4280 6 -4300 4280 -1 -4680 4280 -1 -4281 4281 6 -4282 4281 -1 -4301 4281 -1 -4681 4281 -1 -4282 4282 6 -4283 4282 -1 -4302 4282 -1 -4682 4282 -1 -4283 4283 6 -4284 4283 -1 -4303 4283 -1 -4683 4283 -1 -4284 4284 6 -4285 4284 -1 -4304 4284 -1 -4684 4284 -1 -4285 4285 6 -4286 4285 -1 -4305 4285 -1 -4685 4285 -1 -4286 4286 6 -4287 4286 -1 -4306 4286 -1 -4686 4286 -1 -4287 4287 6 -4288 4287 -1 -4307 4287 -1 -4687 4287 -1 -4288 4288 6 -4289 4288 -1 -4308 4288 -1 -4688 4288 -1 -4289 4289 6 -4290 4289 -1 -4309 4289 -1 -4689 4289 -1 -4290 4290 6 -4291 4290 -1 -4310 4290 -1 -4690 4290 -1 -4291 4291 6 -4292 4291 -1 -4311 4291 -1 -4691 4291 -1 -4292 4292 6 -4293 4292 -1 -4312 4292 -1 -4692 4292 -1 -4293 4293 6 -4294 4293 -1 -4313 4293 -1 -4693 4293 -1 -4294 4294 6 -4295 4294 -1 -4314 4294 -1 -4694 4294 -1 -4295 4295 6 -4296 4295 -1 -4315 4295 -1 -4695 4295 -1 -4296 4296 6 -4297 4296 -1 -4316 4296 -1 -4696 4296 -1 -4297 4297 6 -4298 4297 -1 -4317 4297 -1 -4697 4297 -1 -4298 4298 6 -4299 4298 -1 -4318 4298 -1 -4698 4298 -1 -4299 4299 6 -4300 4299 -1 -4319 4299 -1 -4699 4299 -1 -4300 4300 6 -4320 4300 -1 -4700 4300 -1 -4301 4301 6 -4302 4301 -1 -4321 4301 -1 -4701 4301 -1 -4302 4302 6 -4303 4302 -1 -4322 4302 -1 -4702 4302 -1 -4303 4303 6 -4304 4303 -1 -4323 4303 -1 -4703 4303 -1 -4304 4304 6 -4305 4304 -1 -4324 4304 -1 -4704 4304 -1 -4305 4305 6 -4306 4305 -1 -4325 4305 -1 -4705 4305 -1 -4306 4306 6 -4307 4306 -1 -4326 4306 -1 -4706 4306 -1 -4307 4307 6 -4308 4307 -1 -4327 4307 -1 -4707 4307 -1 -4308 4308 6 -4309 4308 -1 -4328 4308 -1 -4708 4308 -1 -4309 4309 6 -4310 4309 -1 -4329 4309 -1 -4709 4309 -1 -4310 4310 6 -4311 4310 -1 -4330 4310 -1 -4710 4310 -1 -4311 4311 6 -4312 4311 -1 -4331 4311 -1 -4711 4311 -1 -4312 4312 6 -4313 4312 -1 -4332 4312 -1 -4712 4312 -1 -4313 4313 6 -4314 4313 -1 -4333 4313 -1 -4713 4313 -1 -4314 4314 6 -4315 4314 -1 -4334 4314 -1 -4714 4314 -1 -4315 4315 6 -4316 4315 -1 -4335 4315 -1 -4715 4315 -1 -4316 4316 6 -4317 4316 -1 -4336 4316 -1 -4716 4316 -1 -4317 4317 6 -4318 4317 -1 -4337 4317 -1 -4717 4317 -1 -4318 4318 6 -4319 4318 -1 -4338 4318 -1 -4718 4318 -1 -4319 4319 6 -4320 4319 -1 -4339 4319 -1 -4719 4319 -1 -4320 4320 6 -4340 4320 -1 -4720 4320 -1 -4321 4321 6 -4322 4321 -1 -4341 4321 -1 -4721 4321 -1 -4322 4322 6 -4323 4322 -1 -4342 4322 -1 -4722 4322 -1 -4323 4323 6 -4324 4323 -1 -4343 4323 -1 -4723 4323 -1 -4324 4324 6 -4325 4324 -1 -4344 4324 -1 -4724 4324 -1 -4325 4325 6 -4326 4325 -1 -4345 4325 -1 -4725 4325 -1 -4326 4326 6 -4327 4326 -1 -4346 4326 -1 -4726 4326 -1 -4327 4327 6 -4328 4327 -1 -4347 4327 -1 -4727 4327 -1 -4328 4328 6 -4329 4328 -1 -4348 4328 -1 -4728 4328 -1 -4329 4329 6 -4330 4329 -1 -4349 4329 -1 -4729 4329 -1 -4330 4330 6 -4331 4330 -1 -4350 4330 -1 -4730 4330 -1 -4331 4331 6 -4332 4331 -1 -4351 4331 -1 -4731 4331 -1 -4332 4332 6 -4333 4332 -1 -4352 4332 -1 -4732 4332 -1 -4333 4333 6 -4334 4333 -1 -4353 4333 -1 -4733 4333 -1 -4334 4334 6 -4335 4334 -1 -4354 4334 -1 -4734 4334 -1 -4335 4335 6 -4336 4335 -1 -4355 4335 -1 -4735 4335 -1 -4336 4336 6 -4337 4336 -1 -4356 4336 -1 -4736 4336 -1 -4337 4337 6 -4338 4337 -1 -4357 4337 -1 -4737 4337 -1 -4338 4338 6 -4339 4338 -1 -4358 4338 -1 -4738 4338 -1 -4339 4339 6 -4340 4339 -1 -4359 4339 -1 -4739 4339 -1 -4340 4340 6 -4360 4340 -1 -4740 4340 -1 -4341 4341 6 -4342 4341 -1 -4361 4341 -1 -4741 4341 -1 -4342 4342 6 -4343 4342 -1 -4362 4342 -1 -4742 4342 -1 -4343 4343 6 -4344 4343 -1 -4363 4343 -1 -4743 4343 -1 -4344 4344 6 -4345 4344 -1 -4364 4344 -1 -4744 4344 -1 -4345 4345 6 -4346 4345 -1 -4365 4345 -1 -4745 4345 -1 -4346 4346 6 -4347 4346 -1 -4366 4346 -1 -4746 4346 -1 -4347 4347 6 -4348 4347 -1 -4367 4347 -1 -4747 4347 -1 -4348 4348 6 -4349 4348 -1 -4368 4348 -1 -4748 4348 -1 -4349 4349 6 -4350 4349 -1 -4369 4349 -1 -4749 4349 -1 -4350 4350 6 -4351 4350 -1 -4370 4350 -1 -4750 4350 -1 -4351 4351 6 -4352 4351 -1 -4371 4351 -1 -4751 4351 -1 -4352 4352 6 -4353 4352 -1 -4372 4352 -1 -4752 4352 -1 -4353 4353 6 -4354 4353 -1 -4373 4353 -1 -4753 4353 -1 -4354 4354 6 -4355 4354 -1 -4374 4354 -1 -4754 4354 -1 -4355 4355 6 -4356 4355 -1 -4375 4355 -1 -4755 4355 -1 -4356 4356 6 -4357 4356 -1 -4376 4356 -1 -4756 4356 -1 -4357 4357 6 -4358 4357 -1 -4377 4357 -1 -4757 4357 -1 -4358 4358 6 -4359 4358 -1 -4378 4358 -1 -4758 4358 -1 -4359 4359 6 -4360 4359 -1 -4379 4359 -1 -4759 4359 -1 -4360 4360 6 -4380 4360 -1 -4760 4360 -1 -4361 4361 6 -4362 4361 -1 -4381 4361 -1 -4761 4361 -1 -4362 4362 6 -4363 4362 -1 -4382 4362 -1 -4762 4362 -1 -4363 4363 6 -4364 4363 -1 -4383 4363 -1 -4763 4363 -1 -4364 4364 6 -4365 4364 -1 -4384 4364 -1 -4764 4364 -1 -4365 4365 6 -4366 4365 -1 -4385 4365 -1 -4765 4365 -1 -4366 4366 6 -4367 4366 -1 -4386 4366 -1 -4766 4366 -1 -4367 4367 6 -4368 4367 -1 -4387 4367 -1 -4767 4367 -1 -4368 4368 6 -4369 4368 -1 -4388 4368 -1 -4768 4368 -1 -4369 4369 6 -4370 4369 -1 -4389 4369 -1 -4769 4369 -1 -4370 4370 6 -4371 4370 -1 -4390 4370 -1 -4770 4370 -1 -4371 4371 6 -4372 4371 -1 -4391 4371 -1 -4771 4371 -1 -4372 4372 6 -4373 4372 -1 -4392 4372 -1 -4772 4372 -1 -4373 4373 6 -4374 4373 -1 -4393 4373 -1 -4773 4373 -1 -4374 4374 6 -4375 4374 -1 -4394 4374 -1 -4774 4374 -1 -4375 4375 6 -4376 4375 -1 -4395 4375 -1 -4775 4375 -1 -4376 4376 6 -4377 4376 -1 -4396 4376 -1 -4776 4376 -1 -4377 4377 6 -4378 4377 -1 -4397 4377 -1 -4777 4377 -1 -4378 4378 6 -4379 4378 -1 -4398 4378 -1 -4778 4378 -1 -4379 4379 6 -4380 4379 -1 -4399 4379 -1 -4779 4379 -1 -4380 4380 6 -4400 4380 -1 -4780 4380 -1 -4381 4381 6 -4382 4381 -1 -4781 4381 -1 -4382 4382 6 -4383 4382 -1 -4782 4382 -1 -4383 4383 6 -4384 4383 -1 -4783 4383 -1 -4384 4384 6 -4385 4384 -1 -4784 4384 -1 -4385 4385 6 -4386 4385 -1 -4785 4385 -1 -4386 4386 6 -4387 4386 -1 -4786 4386 -1 -4387 4387 6 -4388 4387 -1 -4787 4387 -1 -4388 4388 6 -4389 4388 -1 -4788 4388 -1 -4389 4389 6 -4390 4389 -1 -4789 4389 -1 -4390 4390 6 -4391 4390 -1 -4790 4390 -1 -4391 4391 6 -4392 4391 -1 -4791 4391 -1 -4392 4392 6 -4393 4392 -1 -4792 4392 -1 -4393 4393 6 -4394 4393 -1 -4793 4393 -1 -4394 4394 6 -4395 4394 -1 -4794 4394 -1 -4395 4395 6 -4396 4395 -1 -4795 4395 -1 -4396 4396 6 -4397 4396 -1 -4796 4396 -1 -4397 4397 6 -4398 4397 -1 -4797 4397 -1 -4398 4398 6 -4399 4398 -1 -4798 4398 -1 -4399 4399 6 -4400 4399 -1 -4799 4399 -1 -4400 4400 6 -4800 4400 -1 -4401 4401 6 -4402 4401 -1 -4421 4401 -1 -4801 4401 -1 -4402 4402 6 -4403 4402 -1 -4422 4402 -1 -4802 4402 -1 -4403 4403 6 -4404 4403 -1 -4423 4403 -1 -4803 4403 -1 -4404 4404 6 -4405 4404 -1 -4424 4404 -1 -4804 4404 -1 -4405 4405 6 -4406 4405 -1 -4425 4405 -1 -4805 4405 -1 -4406 4406 6 -4407 4406 -1 -4426 4406 -1 -4806 4406 -1 -4407 4407 6 -4408 4407 -1 -4427 4407 -1 -4807 4407 -1 -4408 4408 6 -4409 4408 -1 -4428 4408 -1 -4808 4408 -1 -4409 4409 6 -4410 4409 -1 -4429 4409 -1 -4809 4409 -1 -4410 4410 6 -4411 4410 -1 -4430 4410 -1 -4810 4410 -1 -4411 4411 6 -4412 4411 -1 -4431 4411 -1 -4811 4411 -1 -4412 4412 6 -4413 4412 -1 -4432 4412 -1 -4812 4412 -1 -4413 4413 6 -4414 4413 -1 -4433 4413 -1 -4813 4413 -1 -4414 4414 6 -4415 4414 -1 -4434 4414 -1 -4814 4414 -1 -4415 4415 6 -4416 4415 -1 -4435 4415 -1 -4815 4415 -1 -4416 4416 6 -4417 4416 -1 -4436 4416 -1 -4816 4416 -1 -4417 4417 6 -4418 4417 -1 -4437 4417 -1 -4817 4417 -1 -4418 4418 6 -4419 4418 -1 -4438 4418 -1 -4818 4418 -1 -4419 4419 6 -4420 4419 -1 -4439 4419 -1 -4819 4419 -1 -4420 4420 6 -4440 4420 -1 -4820 4420 -1 -4421 4421 6 -4422 4421 -1 -4441 4421 -1 -4821 4421 -1 -4422 4422 6 -4423 4422 -1 -4442 4422 -1 -4822 4422 -1 -4423 4423 6 -4424 4423 -1 -4443 4423 -1 -4823 4423 -1 -4424 4424 6 -4425 4424 -1 -4444 4424 -1 -4824 4424 -1 -4425 4425 6 -4426 4425 -1 -4445 4425 -1 -4825 4425 -1 -4426 4426 6 -4427 4426 -1 -4446 4426 -1 -4826 4426 -1 -4427 4427 6 -4428 4427 -1 -4447 4427 -1 -4827 4427 -1 -4428 4428 6 -4429 4428 -1 -4448 4428 -1 -4828 4428 -1 -4429 4429 6 -4430 4429 -1 -4449 4429 -1 -4829 4429 -1 -4430 4430 6 -4431 4430 -1 -4450 4430 -1 -4830 4430 -1 -4431 4431 6 -4432 4431 -1 -4451 4431 -1 -4831 4431 -1 -4432 4432 6 -4433 4432 -1 -4452 4432 -1 -4832 4432 -1 -4433 4433 6 -4434 4433 -1 -4453 4433 -1 -4833 4433 -1 -4434 4434 6 -4435 4434 -1 -4454 4434 -1 -4834 4434 -1 -4435 4435 6 -4436 4435 -1 -4455 4435 -1 -4835 4435 -1 -4436 4436 6 -4437 4436 -1 -4456 4436 -1 -4836 4436 -1 -4437 4437 6 -4438 4437 -1 -4457 4437 -1 -4837 4437 -1 -4438 4438 6 -4439 4438 -1 -4458 4438 -1 -4838 4438 -1 -4439 4439 6 -4440 4439 -1 -4459 4439 -1 -4839 4439 -1 -4440 4440 6 -4460 4440 -1 -4840 4440 -1 -4441 4441 6 -4442 4441 -1 -4461 4441 -1 -4841 4441 -1 -4442 4442 6 -4443 4442 -1 -4462 4442 -1 -4842 4442 -1 -4443 4443 6 -4444 4443 -1 -4463 4443 -1 -4843 4443 -1 -4444 4444 6 -4445 4444 -1 -4464 4444 -1 -4844 4444 -1 -4445 4445 6 -4446 4445 -1 -4465 4445 -1 -4845 4445 -1 -4446 4446 6 -4447 4446 -1 -4466 4446 -1 -4846 4446 -1 -4447 4447 6 -4448 4447 -1 -4467 4447 -1 -4847 4447 -1 -4448 4448 6 -4449 4448 -1 -4468 4448 -1 -4848 4448 -1 -4449 4449 6 -4450 4449 -1 -4469 4449 -1 -4849 4449 -1 -4450 4450 6 -4451 4450 -1 -4470 4450 -1 -4850 4450 -1 -4451 4451 6 -4452 4451 -1 -4471 4451 -1 -4851 4451 -1 -4452 4452 6 -4453 4452 -1 -4472 4452 -1 -4852 4452 -1 -4453 4453 6 -4454 4453 -1 -4473 4453 -1 -4853 4453 -1 -4454 4454 6 -4455 4454 -1 -4474 4454 -1 -4854 4454 -1 -4455 4455 6 -4456 4455 -1 -4475 4455 -1 -4855 4455 -1 -4456 4456 6 -4457 4456 -1 -4476 4456 -1 -4856 4456 -1 -4457 4457 6 -4458 4457 -1 -4477 4457 -1 -4857 4457 -1 -4458 4458 6 -4459 4458 -1 -4478 4458 -1 -4858 4458 -1 -4459 4459 6 -4460 4459 -1 -4479 4459 -1 -4859 4459 -1 -4460 4460 6 -4480 4460 -1 -4860 4460 -1 -4461 4461 6 -4462 4461 -1 -4481 4461 -1 -4861 4461 -1 -4462 4462 6 -4463 4462 -1 -4482 4462 -1 -4862 4462 -1 -4463 4463 6 -4464 4463 -1 -4483 4463 -1 -4863 4463 -1 -4464 4464 6 -4465 4464 -1 -4484 4464 -1 -4864 4464 -1 -4465 4465 6 -4466 4465 -1 -4485 4465 -1 -4865 4465 -1 -4466 4466 6 -4467 4466 -1 -4486 4466 -1 -4866 4466 -1 -4467 4467 6 -4468 4467 -1 -4487 4467 -1 -4867 4467 -1 -4468 4468 6 -4469 4468 -1 -4488 4468 -1 -4868 4468 -1 -4469 4469 6 -4470 4469 -1 -4489 4469 -1 -4869 4469 -1 -4470 4470 6 -4471 4470 -1 -4490 4470 -1 -4870 4470 -1 -4471 4471 6 -4472 4471 -1 -4491 4471 -1 -4871 4471 -1 -4472 4472 6 -4473 4472 -1 -4492 4472 -1 -4872 4472 -1 -4473 4473 6 -4474 4473 -1 -4493 4473 -1 -4873 4473 -1 -4474 4474 6 -4475 4474 -1 -4494 4474 -1 -4874 4474 -1 -4475 4475 6 -4476 4475 -1 -4495 4475 -1 -4875 4475 -1 -4476 4476 6 -4477 4476 -1 -4496 4476 -1 -4876 4476 -1 -4477 4477 6 -4478 4477 -1 -4497 4477 -1 -4877 4477 -1 -4478 4478 6 -4479 4478 -1 -4498 4478 -1 -4878 4478 -1 -4479 4479 6 -4480 4479 -1 -4499 4479 -1 -4879 4479 -1 -4480 4480 6 -4500 4480 -1 -4880 4480 -1 -4481 4481 6 -4482 4481 -1 -4501 4481 -1 -4881 4481 -1 -4482 4482 6 -4483 4482 -1 -4502 4482 -1 -4882 4482 -1 -4483 4483 6 -4484 4483 -1 -4503 4483 -1 -4883 4483 -1 -4484 4484 6 -4485 4484 -1 -4504 4484 -1 -4884 4484 -1 -4485 4485 6 -4486 4485 -1 -4505 4485 -1 -4885 4485 -1 -4486 4486 6 -4487 4486 -1 -4506 4486 -1 -4886 4486 -1 -4487 4487 6 -4488 4487 -1 -4507 4487 -1 -4887 4487 -1 -4488 4488 6 -4489 4488 -1 -4508 4488 -1 -4888 4488 -1 -4489 4489 6 -4490 4489 -1 -4509 4489 -1 -4889 4489 -1 -4490 4490 6 -4491 4490 -1 -4510 4490 -1 -4890 4490 -1 -4491 4491 6 -4492 4491 -1 -4511 4491 -1 -4891 4491 -1 -4492 4492 6 -4493 4492 -1 -4512 4492 -1 -4892 4492 -1 -4493 4493 6 -4494 4493 -1 -4513 4493 -1 -4893 4493 -1 -4494 4494 6 -4495 4494 -1 -4514 4494 -1 -4894 4494 -1 -4495 4495 6 -4496 4495 -1 -4515 4495 -1 -4895 4495 -1 -4496 4496 6 -4497 4496 -1 -4516 4496 -1 -4896 4496 -1 -4497 4497 6 -4498 4497 -1 -4517 4497 -1 -4897 4497 -1 -4498 4498 6 -4499 4498 -1 -4518 4498 -1 -4898 4498 -1 -4499 4499 6 -4500 4499 -1 -4519 4499 -1 -4899 4499 -1 -4500 4500 6 -4520 4500 -1 -4900 4500 -1 -4501 4501 6 -4502 4501 -1 -4521 4501 -1 -4901 4501 -1 -4502 4502 6 -4503 4502 -1 -4522 4502 -1 -4902 4502 -1 -4503 4503 6 -4504 4503 -1 -4523 4503 -1 -4903 4503 -1 -4504 4504 6 -4505 4504 -1 -4524 4504 -1 -4904 4504 -1 -4505 4505 6 -4506 4505 -1 -4525 4505 -1 -4905 4505 -1 -4506 4506 6 -4507 4506 -1 -4526 4506 -1 -4906 4506 -1 -4507 4507 6 -4508 4507 -1 -4527 4507 -1 -4907 4507 -1 -4508 4508 6 -4509 4508 -1 -4528 4508 -1 -4908 4508 -1 -4509 4509 6 -4510 4509 -1 -4529 4509 -1 -4909 4509 -1 -4510 4510 6 -4511 4510 -1 -4530 4510 -1 -4910 4510 -1 -4511 4511 6 -4512 4511 -1 -4531 4511 -1 -4911 4511 -1 -4512 4512 6 -4513 4512 -1 -4532 4512 -1 -4912 4512 -1 -4513 4513 6 -4514 4513 -1 -4533 4513 -1 -4913 4513 -1 -4514 4514 6 -4515 4514 -1 -4534 4514 -1 -4914 4514 -1 -4515 4515 6 -4516 4515 -1 -4535 4515 -1 -4915 4515 -1 -4516 4516 6 -4517 4516 -1 -4536 4516 -1 -4916 4516 -1 -4517 4517 6 -4518 4517 -1 -4537 4517 -1 -4917 4517 -1 -4518 4518 6 -4519 4518 -1 -4538 4518 -1 -4918 4518 -1 -4519 4519 6 -4520 4519 -1 -4539 4519 -1 -4919 4519 -1 -4520 4520 6 -4540 4520 -1 -4920 4520 -1 -4521 4521 6 -4522 4521 -1 -4541 4521 -1 -4921 4521 -1 -4522 4522 6 -4523 4522 -1 -4542 4522 -1 -4922 4522 -1 -4523 4523 6 -4524 4523 -1 -4543 4523 -1 -4923 4523 -1 -4524 4524 6 -4525 4524 -1 -4544 4524 -1 -4924 4524 -1 -4525 4525 6 -4526 4525 -1 -4545 4525 -1 -4925 4525 -1 -4526 4526 6 -4527 4526 -1 -4546 4526 -1 -4926 4526 -1 -4527 4527 6 -4528 4527 -1 -4547 4527 -1 -4927 4527 -1 -4528 4528 6 -4529 4528 -1 -4548 4528 -1 -4928 4528 -1 -4529 4529 6 -4530 4529 -1 -4549 4529 -1 -4929 4529 -1 -4530 4530 6 -4531 4530 -1 -4550 4530 -1 -4930 4530 -1 -4531 4531 6 -4532 4531 -1 -4551 4531 -1 -4931 4531 -1 -4532 4532 6 -4533 4532 -1 -4552 4532 -1 -4932 4532 -1 -4533 4533 6 -4534 4533 -1 -4553 4533 -1 -4933 4533 -1 -4534 4534 6 -4535 4534 -1 -4554 4534 -1 -4934 4534 -1 -4535 4535 6 -4536 4535 -1 -4555 4535 -1 -4935 4535 -1 -4536 4536 6 -4537 4536 -1 -4556 4536 -1 -4936 4536 -1 -4537 4537 6 -4538 4537 -1 -4557 4537 -1 -4937 4537 -1 -4538 4538 6 -4539 4538 -1 -4558 4538 -1 -4938 4538 -1 -4539 4539 6 -4540 4539 -1 -4559 4539 -1 -4939 4539 -1 -4540 4540 6 -4560 4540 -1 -4940 4540 -1 -4541 4541 6 -4542 4541 -1 -4561 4541 -1 -4941 4541 -1 -4542 4542 6 -4543 4542 -1 -4562 4542 -1 -4942 4542 -1 -4543 4543 6 -4544 4543 -1 -4563 4543 -1 -4943 4543 -1 -4544 4544 6 -4545 4544 -1 -4564 4544 -1 -4944 4544 -1 -4545 4545 6 -4546 4545 -1 -4565 4545 -1 -4945 4545 -1 -4546 4546 6 -4547 4546 -1 -4566 4546 -1 -4946 4546 -1 -4547 4547 6 -4548 4547 -1 -4567 4547 -1 -4947 4547 -1 -4548 4548 6 -4549 4548 -1 -4568 4548 -1 -4948 4548 -1 -4549 4549 6 -4550 4549 -1 -4569 4549 -1 -4949 4549 -1 -4550 4550 6 -4551 4550 -1 -4570 4550 -1 -4950 4550 -1 -4551 4551 6 -4552 4551 -1 -4571 4551 -1 -4951 4551 -1 -4552 4552 6 -4553 4552 -1 -4572 4552 -1 -4952 4552 -1 -4553 4553 6 -4554 4553 -1 -4573 4553 -1 -4953 4553 -1 -4554 4554 6 -4555 4554 -1 -4574 4554 -1 -4954 4554 -1 -4555 4555 6 -4556 4555 -1 -4575 4555 -1 -4955 4555 -1 -4556 4556 6 -4557 4556 -1 -4576 4556 -1 -4956 4556 -1 -4557 4557 6 -4558 4557 -1 -4577 4557 -1 -4957 4557 -1 -4558 4558 6 -4559 4558 -1 -4578 4558 -1 -4958 4558 -1 -4559 4559 6 -4560 4559 -1 -4579 4559 -1 -4959 4559 -1 -4560 4560 6 -4580 4560 -1 -4960 4560 -1 -4561 4561 6 -4562 4561 -1 -4581 4561 -1 -4961 4561 -1 -4562 4562 6 -4563 4562 -1 -4582 4562 -1 -4962 4562 -1 -4563 4563 6 -4564 4563 -1 -4583 4563 -1 -4963 4563 -1 -4564 4564 6 -4565 4564 -1 -4584 4564 -1 -4964 4564 -1 -4565 4565 6 -4566 4565 -1 -4585 4565 -1 -4965 4565 -1 -4566 4566 6 -4567 4566 -1 -4586 4566 -1 -4966 4566 -1 -4567 4567 6 -4568 4567 -1 -4587 4567 -1 -4967 4567 -1 -4568 4568 6 -4569 4568 -1 -4588 4568 -1 -4968 4568 -1 -4569 4569 6 -4570 4569 -1 -4589 4569 -1 -4969 4569 -1 -4570 4570 6 -4571 4570 -1 -4590 4570 -1 -4970 4570 -1 -4571 4571 6 -4572 4571 -1 -4591 4571 -1 -4971 4571 -1 -4572 4572 6 -4573 4572 -1 -4592 4572 -1 -4972 4572 -1 -4573 4573 6 -4574 4573 -1 -4593 4573 -1 -4973 4573 -1 -4574 4574 6 -4575 4574 -1 -4594 4574 -1 -4974 4574 -1 -4575 4575 6 -4576 4575 -1 -4595 4575 -1 -4975 4575 -1 -4576 4576 6 -4577 4576 -1 -4596 4576 -1 -4976 4576 -1 -4577 4577 6 -4578 4577 -1 -4597 4577 -1 -4977 4577 -1 -4578 4578 6 -4579 4578 -1 -4598 4578 -1 -4978 4578 -1 -4579 4579 6 -4580 4579 -1 -4599 4579 -1 -4979 4579 -1 -4580 4580 6 -4600 4580 -1 -4980 4580 -1 -4581 4581 6 -4582 4581 -1 -4601 4581 -1 -4981 4581 -1 -4582 4582 6 -4583 4582 -1 -4602 4582 -1 -4982 4582 -1 -4583 4583 6 -4584 4583 -1 -4603 4583 -1 -4983 4583 -1 -4584 4584 6 -4585 4584 -1 -4604 4584 -1 -4984 4584 -1 -4585 4585 6 -4586 4585 -1 -4605 4585 -1 -4985 4585 -1 -4586 4586 6 -4587 4586 -1 -4606 4586 -1 -4986 4586 -1 -4587 4587 6 -4588 4587 -1 -4607 4587 -1 -4987 4587 -1 -4588 4588 6 -4589 4588 -1 -4608 4588 -1 -4988 4588 -1 -4589 4589 6 -4590 4589 -1 -4609 4589 -1 -4989 4589 -1 -4590 4590 6 -4591 4590 -1 -4610 4590 -1 -4990 4590 -1 -4591 4591 6 -4592 4591 -1 -4611 4591 -1 -4991 4591 -1 -4592 4592 6 -4593 4592 -1 -4612 4592 -1 -4992 4592 -1 -4593 4593 6 -4594 4593 -1 -4613 4593 -1 -4993 4593 -1 -4594 4594 6 -4595 4594 -1 -4614 4594 -1 -4994 4594 -1 -4595 4595 6 -4596 4595 -1 -4615 4595 -1 -4995 4595 -1 -4596 4596 6 -4597 4596 -1 -4616 4596 -1 -4996 4596 -1 -4597 4597 6 -4598 4597 -1 -4617 4597 -1 -4997 4597 -1 -4598 4598 6 -4599 4598 -1 -4618 4598 -1 -4998 4598 -1 -4599 4599 6 -4600 4599 -1 -4619 4599 -1 -4999 4599 -1 -4600 4600 6 -4620 4600 -1 -5000 4600 -1 -4601 4601 6 -4602 4601 -1 -4621 4601 -1 -5001 4601 -1 -4602 4602 6 -4603 4602 -1 -4622 4602 -1 -5002 4602 -1 -4603 4603 6 -4604 4603 -1 -4623 4603 -1 -5003 4603 -1 -4604 4604 6 -4605 4604 -1 -4624 4604 -1 -5004 4604 -1 -4605 4605 6 -4606 4605 -1 -4625 4605 -1 -5005 4605 -1 -4606 4606 6 -4607 4606 -1 -4626 4606 -1 -5006 4606 -1 -4607 4607 6 -4608 4607 -1 -4627 4607 -1 -5007 4607 -1 -4608 4608 6 -4609 4608 -1 -4628 4608 -1 -5008 4608 -1 -4609 4609 6 -4610 4609 -1 -4629 4609 -1 -5009 4609 -1 -4610 4610 6 -4611 4610 -1 -4630 4610 -1 -5010 4610 -1 -4611 4611 6 -4612 4611 -1 -4631 4611 -1 -5011 4611 -1 -4612 4612 6 -4613 4612 -1 -4632 4612 -1 -5012 4612 -1 -4613 4613 6 -4614 4613 -1 -4633 4613 -1 -5013 4613 -1 -4614 4614 6 -4615 4614 -1 -4634 4614 -1 -5014 4614 -1 -4615 4615 6 -4616 4615 -1 -4635 4615 -1 -5015 4615 -1 -4616 4616 6 -4617 4616 -1 -4636 4616 -1 -5016 4616 -1 -4617 4617 6 -4618 4617 -1 -4637 4617 -1 -5017 4617 -1 -4618 4618 6 -4619 4618 -1 -4638 4618 -1 -5018 4618 -1 -4619 4619 6 -4620 4619 -1 -4639 4619 -1 -5019 4619 -1 -4620 4620 6 -4640 4620 -1 -5020 4620 -1 -4621 4621 6 -4622 4621 -1 -4641 4621 -1 -5021 4621 -1 -4622 4622 6 -4623 4622 -1 -4642 4622 -1 -5022 4622 -1 -4623 4623 6 -4624 4623 -1 -4643 4623 -1 -5023 4623 -1 -4624 4624 6 -4625 4624 -1 -4644 4624 -1 -5024 4624 -1 -4625 4625 6 -4626 4625 -1 -4645 4625 -1 -5025 4625 -1 -4626 4626 6 -4627 4626 -1 -4646 4626 -1 -5026 4626 -1 -4627 4627 6 -4628 4627 -1 -4647 4627 -1 -5027 4627 -1 -4628 4628 6 -4629 4628 -1 -4648 4628 -1 -5028 4628 -1 -4629 4629 6 -4630 4629 -1 -4649 4629 -1 -5029 4629 -1 -4630 4630 6 -4631 4630 -1 -4650 4630 -1 -5030 4630 -1 -4631 4631 6 -4632 4631 -1 -4651 4631 -1 -5031 4631 -1 -4632 4632 6 -4633 4632 -1 -4652 4632 -1 -5032 4632 -1 -4633 4633 6 -4634 4633 -1 -4653 4633 -1 -5033 4633 -1 -4634 4634 6 -4635 4634 -1 -4654 4634 -1 -5034 4634 -1 -4635 4635 6 -4636 4635 -1 -4655 4635 -1 -5035 4635 -1 -4636 4636 6 -4637 4636 -1 -4656 4636 -1 -5036 4636 -1 -4637 4637 6 -4638 4637 -1 -4657 4637 -1 -5037 4637 -1 -4638 4638 6 -4639 4638 -1 -4658 4638 -1 -5038 4638 -1 -4639 4639 6 -4640 4639 -1 -4659 4639 -1 -5039 4639 -1 -4640 4640 6 -4660 4640 -1 -5040 4640 -1 -4641 4641 6 -4642 4641 -1 -4661 4641 -1 -5041 4641 -1 -4642 4642 6 -4643 4642 -1 -4662 4642 -1 -5042 4642 -1 -4643 4643 6 -4644 4643 -1 -4663 4643 -1 -5043 4643 -1 -4644 4644 6 -4645 4644 -1 -4664 4644 -1 -5044 4644 -1 -4645 4645 6 -4646 4645 -1 -4665 4645 -1 -5045 4645 -1 -4646 4646 6 -4647 4646 -1 -4666 4646 -1 -5046 4646 -1 -4647 4647 6 -4648 4647 -1 -4667 4647 -1 -5047 4647 -1 -4648 4648 6 -4649 4648 -1 -4668 4648 -1 -5048 4648 -1 -4649 4649 6 -4650 4649 -1 -4669 4649 -1 -5049 4649 -1 -4650 4650 6 -4651 4650 -1 -4670 4650 -1 -5050 4650 -1 -4651 4651 6 -4652 4651 -1 -4671 4651 -1 -5051 4651 -1 -4652 4652 6 -4653 4652 -1 -4672 4652 -1 -5052 4652 -1 -4653 4653 6 -4654 4653 -1 -4673 4653 -1 -5053 4653 -1 -4654 4654 6 -4655 4654 -1 -4674 4654 -1 -5054 4654 -1 -4655 4655 6 -4656 4655 -1 -4675 4655 -1 -5055 4655 -1 -4656 4656 6 -4657 4656 -1 -4676 4656 -1 -5056 4656 -1 -4657 4657 6 -4658 4657 -1 -4677 4657 -1 -5057 4657 -1 -4658 4658 6 -4659 4658 -1 -4678 4658 -1 -5058 4658 -1 -4659 4659 6 -4660 4659 -1 -4679 4659 -1 -5059 4659 -1 -4660 4660 6 -4680 4660 -1 -5060 4660 -1 -4661 4661 6 -4662 4661 -1 -4681 4661 -1 -5061 4661 -1 -4662 4662 6 -4663 4662 -1 -4682 4662 -1 -5062 4662 -1 -4663 4663 6 -4664 4663 -1 -4683 4663 -1 -5063 4663 -1 -4664 4664 6 -4665 4664 -1 -4684 4664 -1 -5064 4664 -1 -4665 4665 6 -4666 4665 -1 -4685 4665 -1 -5065 4665 -1 -4666 4666 6 -4667 4666 -1 -4686 4666 -1 -5066 4666 -1 -4667 4667 6 -4668 4667 -1 -4687 4667 -1 -5067 4667 -1 -4668 4668 6 -4669 4668 -1 -4688 4668 -1 -5068 4668 -1 -4669 4669 6 -4670 4669 -1 -4689 4669 -1 -5069 4669 -1 -4670 4670 6 -4671 4670 -1 -4690 4670 -1 -5070 4670 -1 -4671 4671 6 -4672 4671 -1 -4691 4671 -1 -5071 4671 -1 -4672 4672 6 -4673 4672 -1 -4692 4672 -1 -5072 4672 -1 -4673 4673 6 -4674 4673 -1 -4693 4673 -1 -5073 4673 -1 -4674 4674 6 -4675 4674 -1 -4694 4674 -1 -5074 4674 -1 -4675 4675 6 -4676 4675 -1 -4695 4675 -1 -5075 4675 -1 -4676 4676 6 -4677 4676 -1 -4696 4676 -1 -5076 4676 -1 -4677 4677 6 -4678 4677 -1 -4697 4677 -1 -5077 4677 -1 -4678 4678 6 -4679 4678 -1 -4698 4678 -1 -5078 4678 -1 -4679 4679 6 -4680 4679 -1 -4699 4679 -1 -5079 4679 -1 -4680 4680 6 -4700 4680 -1 -5080 4680 -1 -4681 4681 6 -4682 4681 -1 -4701 4681 -1 -5081 4681 -1 -4682 4682 6 -4683 4682 -1 -4702 4682 -1 -5082 4682 -1 -4683 4683 6 -4684 4683 -1 -4703 4683 -1 -5083 4683 -1 -4684 4684 6 -4685 4684 -1 -4704 4684 -1 -5084 4684 -1 -4685 4685 6 -4686 4685 -1 -4705 4685 -1 -5085 4685 -1 -4686 4686 6 -4687 4686 -1 -4706 4686 -1 -5086 4686 -1 -4687 4687 6 -4688 4687 -1 -4707 4687 -1 -5087 4687 -1 -4688 4688 6 -4689 4688 -1 -4708 4688 -1 -5088 4688 -1 -4689 4689 6 -4690 4689 -1 -4709 4689 -1 -5089 4689 -1 -4690 4690 6 -4691 4690 -1 -4710 4690 -1 -5090 4690 -1 -4691 4691 6 -4692 4691 -1 -4711 4691 -1 -5091 4691 -1 -4692 4692 6 -4693 4692 -1 -4712 4692 -1 -5092 4692 -1 -4693 4693 6 -4694 4693 -1 -4713 4693 -1 -5093 4693 -1 -4694 4694 6 -4695 4694 -1 -4714 4694 -1 -5094 4694 -1 -4695 4695 6 -4696 4695 -1 -4715 4695 -1 -5095 4695 -1 -4696 4696 6 -4697 4696 -1 -4716 4696 -1 -5096 4696 -1 -4697 4697 6 -4698 4697 -1 -4717 4697 -1 -5097 4697 -1 -4698 4698 6 -4699 4698 -1 -4718 4698 -1 -5098 4698 -1 -4699 4699 6 -4700 4699 -1 -4719 4699 -1 -5099 4699 -1 -4700 4700 6 -4720 4700 -1 -5100 4700 -1 -4701 4701 6 -4702 4701 -1 -4721 4701 -1 -5101 4701 -1 -4702 4702 6 -4703 4702 -1 -4722 4702 -1 -5102 4702 -1 -4703 4703 6 -4704 4703 -1 -4723 4703 -1 -5103 4703 -1 -4704 4704 6 -4705 4704 -1 -4724 4704 -1 -5104 4704 -1 -4705 4705 6 -4706 4705 -1 -4725 4705 -1 -5105 4705 -1 -4706 4706 6 -4707 4706 -1 -4726 4706 -1 -5106 4706 -1 -4707 4707 6 -4708 4707 -1 -4727 4707 -1 -5107 4707 -1 -4708 4708 6 -4709 4708 -1 -4728 4708 -1 -5108 4708 -1 -4709 4709 6 -4710 4709 -1 -4729 4709 -1 -5109 4709 -1 -4710 4710 6 -4711 4710 -1 -4730 4710 -1 -5110 4710 -1 -4711 4711 6 -4712 4711 -1 -4731 4711 -1 -5111 4711 -1 -4712 4712 6 -4713 4712 -1 -4732 4712 -1 -5112 4712 -1 -4713 4713 6 -4714 4713 -1 -4733 4713 -1 -5113 4713 -1 -4714 4714 6 -4715 4714 -1 -4734 4714 -1 -5114 4714 -1 -4715 4715 6 -4716 4715 -1 -4735 4715 -1 -5115 4715 -1 -4716 4716 6 -4717 4716 -1 -4736 4716 -1 -5116 4716 -1 -4717 4717 6 -4718 4717 -1 -4737 4717 -1 -5117 4717 -1 -4718 4718 6 -4719 4718 -1 -4738 4718 -1 -5118 4718 -1 -4719 4719 6 -4720 4719 -1 -4739 4719 -1 -5119 4719 -1 -4720 4720 6 -4740 4720 -1 -5120 4720 -1 -4721 4721 6 -4722 4721 -1 -4741 4721 -1 -5121 4721 -1 -4722 4722 6 -4723 4722 -1 -4742 4722 -1 -5122 4722 -1 -4723 4723 6 -4724 4723 -1 -4743 4723 -1 -5123 4723 -1 -4724 4724 6 -4725 4724 -1 -4744 4724 -1 -5124 4724 -1 -4725 4725 6 -4726 4725 -1 -4745 4725 -1 -5125 4725 -1 -4726 4726 6 -4727 4726 -1 -4746 4726 -1 -5126 4726 -1 -4727 4727 6 -4728 4727 -1 -4747 4727 -1 -5127 4727 -1 -4728 4728 6 -4729 4728 -1 -4748 4728 -1 -5128 4728 -1 -4729 4729 6 -4730 4729 -1 -4749 4729 -1 -5129 4729 -1 -4730 4730 6 -4731 4730 -1 -4750 4730 -1 -5130 4730 -1 -4731 4731 6 -4732 4731 -1 -4751 4731 -1 -5131 4731 -1 -4732 4732 6 -4733 4732 -1 -4752 4732 -1 -5132 4732 -1 -4733 4733 6 -4734 4733 -1 -4753 4733 -1 -5133 4733 -1 -4734 4734 6 -4735 4734 -1 -4754 4734 -1 -5134 4734 -1 -4735 4735 6 -4736 4735 -1 -4755 4735 -1 -5135 4735 -1 -4736 4736 6 -4737 4736 -1 -4756 4736 -1 -5136 4736 -1 -4737 4737 6 -4738 4737 -1 -4757 4737 -1 -5137 4737 -1 -4738 4738 6 -4739 4738 -1 -4758 4738 -1 -5138 4738 -1 -4739 4739 6 -4740 4739 -1 -4759 4739 -1 -5139 4739 -1 -4740 4740 6 -4760 4740 -1 -5140 4740 -1 -4741 4741 6 -4742 4741 -1 -4761 4741 -1 -5141 4741 -1 -4742 4742 6 -4743 4742 -1 -4762 4742 -1 -5142 4742 -1 -4743 4743 6 -4744 4743 -1 -4763 4743 -1 -5143 4743 -1 -4744 4744 6 -4745 4744 -1 -4764 4744 -1 -5144 4744 -1 -4745 4745 6 -4746 4745 -1 -4765 4745 -1 -5145 4745 -1 -4746 4746 6 -4747 4746 -1 -4766 4746 -1 -5146 4746 -1 -4747 4747 6 -4748 4747 -1 -4767 4747 -1 -5147 4747 -1 -4748 4748 6 -4749 4748 -1 -4768 4748 -1 -5148 4748 -1 -4749 4749 6 -4750 4749 -1 -4769 4749 -1 -5149 4749 -1 -4750 4750 6 -4751 4750 -1 -4770 4750 -1 -5150 4750 -1 -4751 4751 6 -4752 4751 -1 -4771 4751 -1 -5151 4751 -1 -4752 4752 6 -4753 4752 -1 -4772 4752 -1 -5152 4752 -1 -4753 4753 6 -4754 4753 -1 -4773 4753 -1 -5153 4753 -1 -4754 4754 6 -4755 4754 -1 -4774 4754 -1 -5154 4754 -1 -4755 4755 6 -4756 4755 -1 -4775 4755 -1 -5155 4755 -1 -4756 4756 6 -4757 4756 -1 -4776 4756 -1 -5156 4756 -1 -4757 4757 6 -4758 4757 -1 -4777 4757 -1 -5157 4757 -1 -4758 4758 6 -4759 4758 -1 -4778 4758 -1 -5158 4758 -1 -4759 4759 6 -4760 4759 -1 -4779 4759 -1 -5159 4759 -1 -4760 4760 6 -4780 4760 -1 -5160 4760 -1 -4761 4761 6 -4762 4761 -1 -4781 4761 -1 -5161 4761 -1 -4762 4762 6 -4763 4762 -1 -4782 4762 -1 -5162 4762 -1 -4763 4763 6 -4764 4763 -1 -4783 4763 -1 -5163 4763 -1 -4764 4764 6 -4765 4764 -1 -4784 4764 -1 -5164 4764 -1 -4765 4765 6 -4766 4765 -1 -4785 4765 -1 -5165 4765 -1 -4766 4766 6 -4767 4766 -1 -4786 4766 -1 -5166 4766 -1 -4767 4767 6 -4768 4767 -1 -4787 4767 -1 -5167 4767 -1 -4768 4768 6 -4769 4768 -1 -4788 4768 -1 -5168 4768 -1 -4769 4769 6 -4770 4769 -1 -4789 4769 -1 -5169 4769 -1 -4770 4770 6 -4771 4770 -1 -4790 4770 -1 -5170 4770 -1 -4771 4771 6 -4772 4771 -1 -4791 4771 -1 -5171 4771 -1 -4772 4772 6 -4773 4772 -1 -4792 4772 -1 -5172 4772 -1 -4773 4773 6 -4774 4773 -1 -4793 4773 -1 -5173 4773 -1 -4774 4774 6 -4775 4774 -1 -4794 4774 -1 -5174 4774 -1 -4775 4775 6 -4776 4775 -1 -4795 4775 -1 -5175 4775 -1 -4776 4776 6 -4777 4776 -1 -4796 4776 -1 -5176 4776 -1 -4777 4777 6 -4778 4777 -1 -4797 4777 -1 -5177 4777 -1 -4778 4778 6 -4779 4778 -1 -4798 4778 -1 -5178 4778 -1 -4779 4779 6 -4780 4779 -1 -4799 4779 -1 -5179 4779 -1 -4780 4780 6 -4800 4780 -1 -5180 4780 -1 -4781 4781 6 -4782 4781 -1 -5181 4781 -1 -4782 4782 6 -4783 4782 -1 -5182 4782 -1 -4783 4783 6 -4784 4783 -1 -5183 4783 -1 -4784 4784 6 -4785 4784 -1 -5184 4784 -1 -4785 4785 6 -4786 4785 -1 -5185 4785 -1 -4786 4786 6 -4787 4786 -1 -5186 4786 -1 -4787 4787 6 -4788 4787 -1 -5187 4787 -1 -4788 4788 6 -4789 4788 -1 -5188 4788 -1 -4789 4789 6 -4790 4789 -1 -5189 4789 -1 -4790 4790 6 -4791 4790 -1 -5190 4790 -1 -4791 4791 6 -4792 4791 -1 -5191 4791 -1 -4792 4792 6 -4793 4792 -1 -5192 4792 -1 -4793 4793 6 -4794 4793 -1 -5193 4793 -1 -4794 4794 6 -4795 4794 -1 -5194 4794 -1 -4795 4795 6 -4796 4795 -1 -5195 4795 -1 -4796 4796 6 -4797 4796 -1 -5196 4796 -1 -4797 4797 6 -4798 4797 -1 -5197 4797 -1 -4798 4798 6 -4799 4798 -1 -5198 4798 -1 -4799 4799 6 -4800 4799 -1 -5199 4799 -1 -4800 4800 6 -5200 4800 -1 -4801 4801 6 -4802 4801 -1 -4821 4801 -1 -5201 4801 -1 -4802 4802 6 -4803 4802 -1 -4822 4802 -1 -5202 4802 -1 -4803 4803 6 -4804 4803 -1 -4823 4803 -1 -5203 4803 -1 -4804 4804 6 -4805 4804 -1 -4824 4804 -1 -5204 4804 -1 -4805 4805 6 -4806 4805 -1 -4825 4805 -1 -5205 4805 -1 -4806 4806 6 -4807 4806 -1 -4826 4806 -1 -5206 4806 -1 -4807 4807 6 -4808 4807 -1 -4827 4807 -1 -5207 4807 -1 -4808 4808 6 -4809 4808 -1 -4828 4808 -1 -5208 4808 -1 -4809 4809 6 -4810 4809 -1 -4829 4809 -1 -5209 4809 -1 -4810 4810 6 -4811 4810 -1 -4830 4810 -1 -5210 4810 -1 -4811 4811 6 -4812 4811 -1 -4831 4811 -1 -5211 4811 -1 -4812 4812 6 -4813 4812 -1 -4832 4812 -1 -5212 4812 -1 -4813 4813 6 -4814 4813 -1 -4833 4813 -1 -5213 4813 -1 -4814 4814 6 -4815 4814 -1 -4834 4814 -1 -5214 4814 -1 -4815 4815 6 -4816 4815 -1 -4835 4815 -1 -5215 4815 -1 -4816 4816 6 -4817 4816 -1 -4836 4816 -1 -5216 4816 -1 -4817 4817 6 -4818 4817 -1 -4837 4817 -1 -5217 4817 -1 -4818 4818 6 -4819 4818 -1 -4838 4818 -1 -5218 4818 -1 -4819 4819 6 -4820 4819 -1 -4839 4819 -1 -5219 4819 -1 -4820 4820 6 -4840 4820 -1 -5220 4820 -1 -4821 4821 6 -4822 4821 -1 -4841 4821 -1 -5221 4821 -1 -4822 4822 6 -4823 4822 -1 -4842 4822 -1 -5222 4822 -1 -4823 4823 6 -4824 4823 -1 -4843 4823 -1 -5223 4823 -1 -4824 4824 6 -4825 4824 -1 -4844 4824 -1 -5224 4824 -1 -4825 4825 6 -4826 4825 -1 -4845 4825 -1 -5225 4825 -1 -4826 4826 6 -4827 4826 -1 -4846 4826 -1 -5226 4826 -1 -4827 4827 6 -4828 4827 -1 -4847 4827 -1 -5227 4827 -1 -4828 4828 6 -4829 4828 -1 -4848 4828 -1 -5228 4828 -1 -4829 4829 6 -4830 4829 -1 -4849 4829 -1 -5229 4829 -1 -4830 4830 6 -4831 4830 -1 -4850 4830 -1 -5230 4830 -1 -4831 4831 6 -4832 4831 -1 -4851 4831 -1 -5231 4831 -1 -4832 4832 6 -4833 4832 -1 -4852 4832 -1 -5232 4832 -1 -4833 4833 6 -4834 4833 -1 -4853 4833 -1 -5233 4833 -1 -4834 4834 6 -4835 4834 -1 -4854 4834 -1 -5234 4834 -1 -4835 4835 6 -4836 4835 -1 -4855 4835 -1 -5235 4835 -1 -4836 4836 6 -4837 4836 -1 -4856 4836 -1 -5236 4836 -1 -4837 4837 6 -4838 4837 -1 -4857 4837 -1 -5237 4837 -1 -4838 4838 6 -4839 4838 -1 -4858 4838 -1 -5238 4838 -1 -4839 4839 6 -4840 4839 -1 -4859 4839 -1 -5239 4839 -1 -4840 4840 6 -4860 4840 -1 -5240 4840 -1 -4841 4841 6 -4842 4841 -1 -4861 4841 -1 -5241 4841 -1 -4842 4842 6 -4843 4842 -1 -4862 4842 -1 -5242 4842 -1 -4843 4843 6 -4844 4843 -1 -4863 4843 -1 -5243 4843 -1 -4844 4844 6 -4845 4844 -1 -4864 4844 -1 -5244 4844 -1 -4845 4845 6 -4846 4845 -1 -4865 4845 -1 -5245 4845 -1 -4846 4846 6 -4847 4846 -1 -4866 4846 -1 -5246 4846 -1 -4847 4847 6 -4848 4847 -1 -4867 4847 -1 -5247 4847 -1 -4848 4848 6 -4849 4848 -1 -4868 4848 -1 -5248 4848 -1 -4849 4849 6 -4850 4849 -1 -4869 4849 -1 -5249 4849 -1 -4850 4850 6 -4851 4850 -1 -4870 4850 -1 -5250 4850 -1 -4851 4851 6 -4852 4851 -1 -4871 4851 -1 -5251 4851 -1 -4852 4852 6 -4853 4852 -1 -4872 4852 -1 -5252 4852 -1 -4853 4853 6 -4854 4853 -1 -4873 4853 -1 -5253 4853 -1 -4854 4854 6 -4855 4854 -1 -4874 4854 -1 -5254 4854 -1 -4855 4855 6 -4856 4855 -1 -4875 4855 -1 -5255 4855 -1 -4856 4856 6 -4857 4856 -1 -4876 4856 -1 -5256 4856 -1 -4857 4857 6 -4858 4857 -1 -4877 4857 -1 -5257 4857 -1 -4858 4858 6 -4859 4858 -1 -4878 4858 -1 -5258 4858 -1 -4859 4859 6 -4860 4859 -1 -4879 4859 -1 -5259 4859 -1 -4860 4860 6 -4880 4860 -1 -5260 4860 -1 -4861 4861 6 -4862 4861 -1 -4881 4861 -1 -5261 4861 -1 -4862 4862 6 -4863 4862 -1 -4882 4862 -1 -5262 4862 -1 -4863 4863 6 -4864 4863 -1 -4883 4863 -1 -5263 4863 -1 -4864 4864 6 -4865 4864 -1 -4884 4864 -1 -5264 4864 -1 -4865 4865 6 -4866 4865 -1 -4885 4865 -1 -5265 4865 -1 -4866 4866 6 -4867 4866 -1 -4886 4866 -1 -5266 4866 -1 -4867 4867 6 -4868 4867 -1 -4887 4867 -1 -5267 4867 -1 -4868 4868 6 -4869 4868 -1 -4888 4868 -1 -5268 4868 -1 -4869 4869 6 -4870 4869 -1 -4889 4869 -1 -5269 4869 -1 -4870 4870 6 -4871 4870 -1 -4890 4870 -1 -5270 4870 -1 -4871 4871 6 -4872 4871 -1 -4891 4871 -1 -5271 4871 -1 -4872 4872 6 -4873 4872 -1 -4892 4872 -1 -5272 4872 -1 -4873 4873 6 -4874 4873 -1 -4893 4873 -1 -5273 4873 -1 -4874 4874 6 -4875 4874 -1 -4894 4874 -1 -5274 4874 -1 -4875 4875 6 -4876 4875 -1 -4895 4875 -1 -5275 4875 -1 -4876 4876 6 -4877 4876 -1 -4896 4876 -1 -5276 4876 -1 -4877 4877 6 -4878 4877 -1 -4897 4877 -1 -5277 4877 -1 -4878 4878 6 -4879 4878 -1 -4898 4878 -1 -5278 4878 -1 -4879 4879 6 -4880 4879 -1 -4899 4879 -1 -5279 4879 -1 -4880 4880 6 -4900 4880 -1 -5280 4880 -1 -4881 4881 6 -4882 4881 -1 -4901 4881 -1 -5281 4881 -1 -4882 4882 6 -4883 4882 -1 -4902 4882 -1 -5282 4882 -1 -4883 4883 6 -4884 4883 -1 -4903 4883 -1 -5283 4883 -1 -4884 4884 6 -4885 4884 -1 -4904 4884 -1 -5284 4884 -1 -4885 4885 6 -4886 4885 -1 -4905 4885 -1 -5285 4885 -1 -4886 4886 6 -4887 4886 -1 -4906 4886 -1 -5286 4886 -1 -4887 4887 6 -4888 4887 -1 -4907 4887 -1 -5287 4887 -1 -4888 4888 6 -4889 4888 -1 -4908 4888 -1 -5288 4888 -1 -4889 4889 6 -4890 4889 -1 -4909 4889 -1 -5289 4889 -1 -4890 4890 6 -4891 4890 -1 -4910 4890 -1 -5290 4890 -1 -4891 4891 6 -4892 4891 -1 -4911 4891 -1 -5291 4891 -1 -4892 4892 6 -4893 4892 -1 -4912 4892 -1 -5292 4892 -1 -4893 4893 6 -4894 4893 -1 -4913 4893 -1 -5293 4893 -1 -4894 4894 6 -4895 4894 -1 -4914 4894 -1 -5294 4894 -1 -4895 4895 6 -4896 4895 -1 -4915 4895 -1 -5295 4895 -1 -4896 4896 6 -4897 4896 -1 -4916 4896 -1 -5296 4896 -1 -4897 4897 6 -4898 4897 -1 -4917 4897 -1 -5297 4897 -1 -4898 4898 6 -4899 4898 -1 -4918 4898 -1 -5298 4898 -1 -4899 4899 6 -4900 4899 -1 -4919 4899 -1 -5299 4899 -1 -4900 4900 6 -4920 4900 -1 -5300 4900 -1 -4901 4901 6 -4902 4901 -1 -4921 4901 -1 -5301 4901 -1 -4902 4902 6 -4903 4902 -1 -4922 4902 -1 -5302 4902 -1 -4903 4903 6 -4904 4903 -1 -4923 4903 -1 -5303 4903 -1 -4904 4904 6 -4905 4904 -1 -4924 4904 -1 -5304 4904 -1 -4905 4905 6 -4906 4905 -1 -4925 4905 -1 -5305 4905 -1 -4906 4906 6 -4907 4906 -1 -4926 4906 -1 -5306 4906 -1 -4907 4907 6 -4908 4907 -1 -4927 4907 -1 -5307 4907 -1 -4908 4908 6 -4909 4908 -1 -4928 4908 -1 -5308 4908 -1 -4909 4909 6 -4910 4909 -1 -4929 4909 -1 -5309 4909 -1 -4910 4910 6 -4911 4910 -1 -4930 4910 -1 -5310 4910 -1 -4911 4911 6 -4912 4911 -1 -4931 4911 -1 -5311 4911 -1 -4912 4912 6 -4913 4912 -1 -4932 4912 -1 -5312 4912 -1 -4913 4913 6 -4914 4913 -1 -4933 4913 -1 -5313 4913 -1 -4914 4914 6 -4915 4914 -1 -4934 4914 -1 -5314 4914 -1 -4915 4915 6 -4916 4915 -1 -4935 4915 -1 -5315 4915 -1 -4916 4916 6 -4917 4916 -1 -4936 4916 -1 -5316 4916 -1 -4917 4917 6 -4918 4917 -1 -4937 4917 -1 -5317 4917 -1 -4918 4918 6 -4919 4918 -1 -4938 4918 -1 -5318 4918 -1 -4919 4919 6 -4920 4919 -1 -4939 4919 -1 -5319 4919 -1 -4920 4920 6 -4940 4920 -1 -5320 4920 -1 -4921 4921 6 -4922 4921 -1 -4941 4921 -1 -5321 4921 -1 -4922 4922 6 -4923 4922 -1 -4942 4922 -1 -5322 4922 -1 -4923 4923 6 -4924 4923 -1 -4943 4923 -1 -5323 4923 -1 -4924 4924 6 -4925 4924 -1 -4944 4924 -1 -5324 4924 -1 -4925 4925 6 -4926 4925 -1 -4945 4925 -1 -5325 4925 -1 -4926 4926 6 -4927 4926 -1 -4946 4926 -1 -5326 4926 -1 -4927 4927 6 -4928 4927 -1 -4947 4927 -1 -5327 4927 -1 -4928 4928 6 -4929 4928 -1 -4948 4928 -1 -5328 4928 -1 -4929 4929 6 -4930 4929 -1 -4949 4929 -1 -5329 4929 -1 -4930 4930 6 -4931 4930 -1 -4950 4930 -1 -5330 4930 -1 -4931 4931 6 -4932 4931 -1 -4951 4931 -1 -5331 4931 -1 -4932 4932 6 -4933 4932 -1 -4952 4932 -1 -5332 4932 -1 -4933 4933 6 -4934 4933 -1 -4953 4933 -1 -5333 4933 -1 -4934 4934 6 -4935 4934 -1 -4954 4934 -1 -5334 4934 -1 -4935 4935 6 -4936 4935 -1 -4955 4935 -1 -5335 4935 -1 -4936 4936 6 -4937 4936 -1 -4956 4936 -1 -5336 4936 -1 -4937 4937 6 -4938 4937 -1 -4957 4937 -1 -5337 4937 -1 -4938 4938 6 -4939 4938 -1 -4958 4938 -1 -5338 4938 -1 -4939 4939 6 -4940 4939 -1 -4959 4939 -1 -5339 4939 -1 -4940 4940 6 -4960 4940 -1 -5340 4940 -1 -4941 4941 6 -4942 4941 -1 -4961 4941 -1 -5341 4941 -1 -4942 4942 6 -4943 4942 -1 -4962 4942 -1 -5342 4942 -1 -4943 4943 6 -4944 4943 -1 -4963 4943 -1 -5343 4943 -1 -4944 4944 6 -4945 4944 -1 -4964 4944 -1 -5344 4944 -1 -4945 4945 6 -4946 4945 -1 -4965 4945 -1 -5345 4945 -1 -4946 4946 6 -4947 4946 -1 -4966 4946 -1 -5346 4946 -1 -4947 4947 6 -4948 4947 -1 -4967 4947 -1 -5347 4947 -1 -4948 4948 6 -4949 4948 -1 -4968 4948 -1 -5348 4948 -1 -4949 4949 6 -4950 4949 -1 -4969 4949 -1 -5349 4949 -1 -4950 4950 6 -4951 4950 -1 -4970 4950 -1 -5350 4950 -1 -4951 4951 6 -4952 4951 -1 -4971 4951 -1 -5351 4951 -1 -4952 4952 6 -4953 4952 -1 -4972 4952 -1 -5352 4952 -1 -4953 4953 6 -4954 4953 -1 -4973 4953 -1 -5353 4953 -1 -4954 4954 6 -4955 4954 -1 -4974 4954 -1 -5354 4954 -1 -4955 4955 6 -4956 4955 -1 -4975 4955 -1 -5355 4955 -1 -4956 4956 6 -4957 4956 -1 -4976 4956 -1 -5356 4956 -1 -4957 4957 6 -4958 4957 -1 -4977 4957 -1 -5357 4957 -1 -4958 4958 6 -4959 4958 -1 -4978 4958 -1 -5358 4958 -1 -4959 4959 6 -4960 4959 -1 -4979 4959 -1 -5359 4959 -1 -4960 4960 6 -4980 4960 -1 -5360 4960 -1 -4961 4961 6 -4962 4961 -1 -4981 4961 -1 -5361 4961 -1 -4962 4962 6 -4963 4962 -1 -4982 4962 -1 -5362 4962 -1 -4963 4963 6 -4964 4963 -1 -4983 4963 -1 -5363 4963 -1 -4964 4964 6 -4965 4964 -1 -4984 4964 -1 -5364 4964 -1 -4965 4965 6 -4966 4965 -1 -4985 4965 -1 -5365 4965 -1 -4966 4966 6 -4967 4966 -1 -4986 4966 -1 -5366 4966 -1 -4967 4967 6 -4968 4967 -1 -4987 4967 -1 -5367 4967 -1 -4968 4968 6 -4969 4968 -1 -4988 4968 -1 -5368 4968 -1 -4969 4969 6 -4970 4969 -1 -4989 4969 -1 -5369 4969 -1 -4970 4970 6 -4971 4970 -1 -4990 4970 -1 -5370 4970 -1 -4971 4971 6 -4972 4971 -1 -4991 4971 -1 -5371 4971 -1 -4972 4972 6 -4973 4972 -1 -4992 4972 -1 -5372 4972 -1 -4973 4973 6 -4974 4973 -1 -4993 4973 -1 -5373 4973 -1 -4974 4974 6 -4975 4974 -1 -4994 4974 -1 -5374 4974 -1 -4975 4975 6 -4976 4975 -1 -4995 4975 -1 -5375 4975 -1 -4976 4976 6 -4977 4976 -1 -4996 4976 -1 -5376 4976 -1 -4977 4977 6 -4978 4977 -1 -4997 4977 -1 -5377 4977 -1 -4978 4978 6 -4979 4978 -1 -4998 4978 -1 -5378 4978 -1 -4979 4979 6 -4980 4979 -1 -4999 4979 -1 -5379 4979 -1 -4980 4980 6 -5000 4980 -1 -5380 4980 -1 -4981 4981 6 -4982 4981 -1 -5001 4981 -1 -5381 4981 -1 -4982 4982 6 -4983 4982 -1 -5002 4982 -1 -5382 4982 -1 -4983 4983 6 -4984 4983 -1 -5003 4983 -1 -5383 4983 -1 -4984 4984 6 -4985 4984 -1 -5004 4984 -1 -5384 4984 -1 -4985 4985 6 -4986 4985 -1 -5005 4985 -1 -5385 4985 -1 -4986 4986 6 -4987 4986 -1 -5006 4986 -1 -5386 4986 -1 -4987 4987 6 -4988 4987 -1 -5007 4987 -1 -5387 4987 -1 -4988 4988 6 -4989 4988 -1 -5008 4988 -1 -5388 4988 -1 -4989 4989 6 -4990 4989 -1 -5009 4989 -1 -5389 4989 -1 -4990 4990 6 -4991 4990 -1 -5010 4990 -1 -5390 4990 -1 -4991 4991 6 -4992 4991 -1 -5011 4991 -1 -5391 4991 -1 -4992 4992 6 -4993 4992 -1 -5012 4992 -1 -5392 4992 -1 -4993 4993 6 -4994 4993 -1 -5013 4993 -1 -5393 4993 -1 -4994 4994 6 -4995 4994 -1 -5014 4994 -1 -5394 4994 -1 -4995 4995 6 -4996 4995 -1 -5015 4995 -1 -5395 4995 -1 -4996 4996 6 -4997 4996 -1 -5016 4996 -1 -5396 4996 -1 -4997 4997 6 -4998 4997 -1 -5017 4997 -1 -5397 4997 -1 -4998 4998 6 -4999 4998 -1 -5018 4998 -1 -5398 4998 -1 -4999 4999 6 -5000 4999 -1 -5019 4999 -1 -5399 4999 -1 -5000 5000 6 -5020 5000 -1 -5400 5000 -1 -5001 5001 6 -5002 5001 -1 -5021 5001 -1 -5401 5001 -1 -5002 5002 6 -5003 5002 -1 -5022 5002 -1 -5402 5002 -1 -5003 5003 6 -5004 5003 -1 -5023 5003 -1 -5403 5003 -1 -5004 5004 6 -5005 5004 -1 -5024 5004 -1 -5404 5004 -1 -5005 5005 6 -5006 5005 -1 -5025 5005 -1 -5405 5005 -1 -5006 5006 6 -5007 5006 -1 -5026 5006 -1 -5406 5006 -1 -5007 5007 6 -5008 5007 -1 -5027 5007 -1 -5407 5007 -1 -5008 5008 6 -5009 5008 -1 -5028 5008 -1 -5408 5008 -1 -5009 5009 6 -5010 5009 -1 -5029 5009 -1 -5409 5009 -1 -5010 5010 6 -5011 5010 -1 -5030 5010 -1 -5410 5010 -1 -5011 5011 6 -5012 5011 -1 -5031 5011 -1 -5411 5011 -1 -5012 5012 6 -5013 5012 -1 -5032 5012 -1 -5412 5012 -1 -5013 5013 6 -5014 5013 -1 -5033 5013 -1 -5413 5013 -1 -5014 5014 6 -5015 5014 -1 -5034 5014 -1 -5414 5014 -1 -5015 5015 6 -5016 5015 -1 -5035 5015 -1 -5415 5015 -1 -5016 5016 6 -5017 5016 -1 -5036 5016 -1 -5416 5016 -1 -5017 5017 6 -5018 5017 -1 -5037 5017 -1 -5417 5017 -1 -5018 5018 6 -5019 5018 -1 -5038 5018 -1 -5418 5018 -1 -5019 5019 6 -5020 5019 -1 -5039 5019 -1 -5419 5019 -1 -5020 5020 6 -5040 5020 -1 -5420 5020 -1 -5021 5021 6 -5022 5021 -1 -5041 5021 -1 -5421 5021 -1 -5022 5022 6 -5023 5022 -1 -5042 5022 -1 -5422 5022 -1 -5023 5023 6 -5024 5023 -1 -5043 5023 -1 -5423 5023 -1 -5024 5024 6 -5025 5024 -1 -5044 5024 -1 -5424 5024 -1 -5025 5025 6 -5026 5025 -1 -5045 5025 -1 -5425 5025 -1 -5026 5026 6 -5027 5026 -1 -5046 5026 -1 -5426 5026 -1 -5027 5027 6 -5028 5027 -1 -5047 5027 -1 -5427 5027 -1 -5028 5028 6 -5029 5028 -1 -5048 5028 -1 -5428 5028 -1 -5029 5029 6 -5030 5029 -1 -5049 5029 -1 -5429 5029 -1 -5030 5030 6 -5031 5030 -1 -5050 5030 -1 -5430 5030 -1 -5031 5031 6 -5032 5031 -1 -5051 5031 -1 -5431 5031 -1 -5032 5032 6 -5033 5032 -1 -5052 5032 -1 -5432 5032 -1 -5033 5033 6 -5034 5033 -1 -5053 5033 -1 -5433 5033 -1 -5034 5034 6 -5035 5034 -1 -5054 5034 -1 -5434 5034 -1 -5035 5035 6 -5036 5035 -1 -5055 5035 -1 -5435 5035 -1 -5036 5036 6 -5037 5036 -1 -5056 5036 -1 -5436 5036 -1 -5037 5037 6 -5038 5037 -1 -5057 5037 -1 -5437 5037 -1 -5038 5038 6 -5039 5038 -1 -5058 5038 -1 -5438 5038 -1 -5039 5039 6 -5040 5039 -1 -5059 5039 -1 -5439 5039 -1 -5040 5040 6 -5060 5040 -1 -5440 5040 -1 -5041 5041 6 -5042 5041 -1 -5061 5041 -1 -5441 5041 -1 -5042 5042 6 -5043 5042 -1 -5062 5042 -1 -5442 5042 -1 -5043 5043 6 -5044 5043 -1 -5063 5043 -1 -5443 5043 -1 -5044 5044 6 -5045 5044 -1 -5064 5044 -1 -5444 5044 -1 -5045 5045 6 -5046 5045 -1 -5065 5045 -1 -5445 5045 -1 -5046 5046 6 -5047 5046 -1 -5066 5046 -1 -5446 5046 -1 -5047 5047 6 -5048 5047 -1 -5067 5047 -1 -5447 5047 -1 -5048 5048 6 -5049 5048 -1 -5068 5048 -1 -5448 5048 -1 -5049 5049 6 -5050 5049 -1 -5069 5049 -1 -5449 5049 -1 -5050 5050 6 -5051 5050 -1 -5070 5050 -1 -5450 5050 -1 -5051 5051 6 -5052 5051 -1 -5071 5051 -1 -5451 5051 -1 -5052 5052 6 -5053 5052 -1 -5072 5052 -1 -5452 5052 -1 -5053 5053 6 -5054 5053 -1 -5073 5053 -1 -5453 5053 -1 -5054 5054 6 -5055 5054 -1 -5074 5054 -1 -5454 5054 -1 -5055 5055 6 -5056 5055 -1 -5075 5055 -1 -5455 5055 -1 -5056 5056 6 -5057 5056 -1 -5076 5056 -1 -5456 5056 -1 -5057 5057 6 -5058 5057 -1 -5077 5057 -1 -5457 5057 -1 -5058 5058 6 -5059 5058 -1 -5078 5058 -1 -5458 5058 -1 -5059 5059 6 -5060 5059 -1 -5079 5059 -1 -5459 5059 -1 -5060 5060 6 -5080 5060 -1 -5460 5060 -1 -5061 5061 6 -5062 5061 -1 -5081 5061 -1 -5461 5061 -1 -5062 5062 6 -5063 5062 -1 -5082 5062 -1 -5462 5062 -1 -5063 5063 6 -5064 5063 -1 -5083 5063 -1 -5463 5063 -1 -5064 5064 6 -5065 5064 -1 -5084 5064 -1 -5464 5064 -1 -5065 5065 6 -5066 5065 -1 -5085 5065 -1 -5465 5065 -1 -5066 5066 6 -5067 5066 -1 -5086 5066 -1 -5466 5066 -1 -5067 5067 6 -5068 5067 -1 -5087 5067 -1 -5467 5067 -1 -5068 5068 6 -5069 5068 -1 -5088 5068 -1 -5468 5068 -1 -5069 5069 6 -5070 5069 -1 -5089 5069 -1 -5469 5069 -1 -5070 5070 6 -5071 5070 -1 -5090 5070 -1 -5470 5070 -1 -5071 5071 6 -5072 5071 -1 -5091 5071 -1 -5471 5071 -1 -5072 5072 6 -5073 5072 -1 -5092 5072 -1 -5472 5072 -1 -5073 5073 6 -5074 5073 -1 -5093 5073 -1 -5473 5073 -1 -5074 5074 6 -5075 5074 -1 -5094 5074 -1 -5474 5074 -1 -5075 5075 6 -5076 5075 -1 -5095 5075 -1 -5475 5075 -1 -5076 5076 6 -5077 5076 -1 -5096 5076 -1 -5476 5076 -1 -5077 5077 6 -5078 5077 -1 -5097 5077 -1 -5477 5077 -1 -5078 5078 6 -5079 5078 -1 -5098 5078 -1 -5478 5078 -1 -5079 5079 6 -5080 5079 -1 -5099 5079 -1 -5479 5079 -1 -5080 5080 6 -5100 5080 -1 -5480 5080 -1 -5081 5081 6 -5082 5081 -1 -5101 5081 -1 -5481 5081 -1 -5082 5082 6 -5083 5082 -1 -5102 5082 -1 -5482 5082 -1 -5083 5083 6 -5084 5083 -1 -5103 5083 -1 -5483 5083 -1 -5084 5084 6 -5085 5084 -1 -5104 5084 -1 -5484 5084 -1 -5085 5085 6 -5086 5085 -1 -5105 5085 -1 -5485 5085 -1 -5086 5086 6 -5087 5086 -1 -5106 5086 -1 -5486 5086 -1 -5087 5087 6 -5088 5087 -1 -5107 5087 -1 -5487 5087 -1 -5088 5088 6 -5089 5088 -1 -5108 5088 -1 -5488 5088 -1 -5089 5089 6 -5090 5089 -1 -5109 5089 -1 -5489 5089 -1 -5090 5090 6 -5091 5090 -1 -5110 5090 -1 -5490 5090 -1 -5091 5091 6 -5092 5091 -1 -5111 5091 -1 -5491 5091 -1 -5092 5092 6 -5093 5092 -1 -5112 5092 -1 -5492 5092 -1 -5093 5093 6 -5094 5093 -1 -5113 5093 -1 -5493 5093 -1 -5094 5094 6 -5095 5094 -1 -5114 5094 -1 -5494 5094 -1 -5095 5095 6 -5096 5095 -1 -5115 5095 -1 -5495 5095 -1 -5096 5096 6 -5097 5096 -1 -5116 5096 -1 -5496 5096 -1 -5097 5097 6 -5098 5097 -1 -5117 5097 -1 -5497 5097 -1 -5098 5098 6 -5099 5098 -1 -5118 5098 -1 -5498 5098 -1 -5099 5099 6 -5100 5099 -1 -5119 5099 -1 -5499 5099 -1 -5100 5100 6 -5120 5100 -1 -5500 5100 -1 -5101 5101 6 -5102 5101 -1 -5121 5101 -1 -5501 5101 -1 -5102 5102 6 -5103 5102 -1 -5122 5102 -1 -5502 5102 -1 -5103 5103 6 -5104 5103 -1 -5123 5103 -1 -5503 5103 -1 -5104 5104 6 -5105 5104 -1 -5124 5104 -1 -5504 5104 -1 -5105 5105 6 -5106 5105 -1 -5125 5105 -1 -5505 5105 -1 -5106 5106 6 -5107 5106 -1 -5126 5106 -1 -5506 5106 -1 -5107 5107 6 -5108 5107 -1 -5127 5107 -1 -5507 5107 -1 -5108 5108 6 -5109 5108 -1 -5128 5108 -1 -5508 5108 -1 -5109 5109 6 -5110 5109 -1 -5129 5109 -1 -5509 5109 -1 -5110 5110 6 -5111 5110 -1 -5130 5110 -1 -5510 5110 -1 -5111 5111 6 -5112 5111 -1 -5131 5111 -1 -5511 5111 -1 -5112 5112 6 -5113 5112 -1 -5132 5112 -1 -5512 5112 -1 -5113 5113 6 -5114 5113 -1 -5133 5113 -1 -5513 5113 -1 -5114 5114 6 -5115 5114 -1 -5134 5114 -1 -5514 5114 -1 -5115 5115 6 -5116 5115 -1 -5135 5115 -1 -5515 5115 -1 -5116 5116 6 -5117 5116 -1 -5136 5116 -1 -5516 5116 -1 -5117 5117 6 -5118 5117 -1 -5137 5117 -1 -5517 5117 -1 -5118 5118 6 -5119 5118 -1 -5138 5118 -1 -5518 5118 -1 -5119 5119 6 -5120 5119 -1 -5139 5119 -1 -5519 5119 -1 -5120 5120 6 -5140 5120 -1 -5520 5120 -1 -5121 5121 6 -5122 5121 -1 -5141 5121 -1 -5521 5121 -1 -5122 5122 6 -5123 5122 -1 -5142 5122 -1 -5522 5122 -1 -5123 5123 6 -5124 5123 -1 -5143 5123 -1 -5523 5123 -1 -5124 5124 6 -5125 5124 -1 -5144 5124 -1 -5524 5124 -1 -5125 5125 6 -5126 5125 -1 -5145 5125 -1 -5525 5125 -1 -5126 5126 6 -5127 5126 -1 -5146 5126 -1 -5526 5126 -1 -5127 5127 6 -5128 5127 -1 -5147 5127 -1 -5527 5127 -1 -5128 5128 6 -5129 5128 -1 -5148 5128 -1 -5528 5128 -1 -5129 5129 6 -5130 5129 -1 -5149 5129 -1 -5529 5129 -1 -5130 5130 6 -5131 5130 -1 -5150 5130 -1 -5530 5130 -1 -5131 5131 6 -5132 5131 -1 -5151 5131 -1 -5531 5131 -1 -5132 5132 6 -5133 5132 -1 -5152 5132 -1 -5532 5132 -1 -5133 5133 6 -5134 5133 -1 -5153 5133 -1 -5533 5133 -1 -5134 5134 6 -5135 5134 -1 -5154 5134 -1 -5534 5134 -1 -5135 5135 6 -5136 5135 -1 -5155 5135 -1 -5535 5135 -1 -5136 5136 6 -5137 5136 -1 -5156 5136 -1 -5536 5136 -1 -5137 5137 6 -5138 5137 -1 -5157 5137 -1 -5537 5137 -1 -5138 5138 6 -5139 5138 -1 -5158 5138 -1 -5538 5138 -1 -5139 5139 6 -5140 5139 -1 -5159 5139 -1 -5539 5139 -1 -5140 5140 6 -5160 5140 -1 -5540 5140 -1 -5141 5141 6 -5142 5141 -1 -5161 5141 -1 -5541 5141 -1 -5142 5142 6 -5143 5142 -1 -5162 5142 -1 -5542 5142 -1 -5143 5143 6 -5144 5143 -1 -5163 5143 -1 -5543 5143 -1 -5144 5144 6 -5145 5144 -1 -5164 5144 -1 -5544 5144 -1 -5145 5145 6 -5146 5145 -1 -5165 5145 -1 -5545 5145 -1 -5146 5146 6 -5147 5146 -1 -5166 5146 -1 -5546 5146 -1 -5147 5147 6 -5148 5147 -1 -5167 5147 -1 -5547 5147 -1 -5148 5148 6 -5149 5148 -1 -5168 5148 -1 -5548 5148 -1 -5149 5149 6 -5150 5149 -1 -5169 5149 -1 -5549 5149 -1 -5150 5150 6 -5151 5150 -1 -5170 5150 -1 -5550 5150 -1 -5151 5151 6 -5152 5151 -1 -5171 5151 -1 -5551 5151 -1 -5152 5152 6 -5153 5152 -1 -5172 5152 -1 -5552 5152 -1 -5153 5153 6 -5154 5153 -1 -5173 5153 -1 -5553 5153 -1 -5154 5154 6 -5155 5154 -1 -5174 5154 -1 -5554 5154 -1 -5155 5155 6 -5156 5155 -1 -5175 5155 -1 -5555 5155 -1 -5156 5156 6 -5157 5156 -1 -5176 5156 -1 -5556 5156 -1 -5157 5157 6 -5158 5157 -1 -5177 5157 -1 -5557 5157 -1 -5158 5158 6 -5159 5158 -1 -5178 5158 -1 -5558 5158 -1 -5159 5159 6 -5160 5159 -1 -5179 5159 -1 -5559 5159 -1 -5160 5160 6 -5180 5160 -1 -5560 5160 -1 -5161 5161 6 -5162 5161 -1 -5181 5161 -1 -5561 5161 -1 -5162 5162 6 -5163 5162 -1 -5182 5162 -1 -5562 5162 -1 -5163 5163 6 -5164 5163 -1 -5183 5163 -1 -5563 5163 -1 -5164 5164 6 -5165 5164 -1 -5184 5164 -1 -5564 5164 -1 -5165 5165 6 -5166 5165 -1 -5185 5165 -1 -5565 5165 -1 -5166 5166 6 -5167 5166 -1 -5186 5166 -1 -5566 5166 -1 -5167 5167 6 -5168 5167 -1 -5187 5167 -1 -5567 5167 -1 -5168 5168 6 -5169 5168 -1 -5188 5168 -1 -5568 5168 -1 -5169 5169 6 -5170 5169 -1 -5189 5169 -1 -5569 5169 -1 -5170 5170 6 -5171 5170 -1 -5190 5170 -1 -5570 5170 -1 -5171 5171 6 -5172 5171 -1 -5191 5171 -1 -5571 5171 -1 -5172 5172 6 -5173 5172 -1 -5192 5172 -1 -5572 5172 -1 -5173 5173 6 -5174 5173 -1 -5193 5173 -1 -5573 5173 -1 -5174 5174 6 -5175 5174 -1 -5194 5174 -1 -5574 5174 -1 -5175 5175 6 -5176 5175 -1 -5195 5175 -1 -5575 5175 -1 -5176 5176 6 -5177 5176 -1 -5196 5176 -1 -5576 5176 -1 -5177 5177 6 -5178 5177 -1 -5197 5177 -1 -5577 5177 -1 -5178 5178 6 -5179 5178 -1 -5198 5178 -1 -5578 5178 -1 -5179 5179 6 -5180 5179 -1 -5199 5179 -1 -5579 5179 -1 -5180 5180 6 -5200 5180 -1 -5580 5180 -1 -5181 5181 6 -5182 5181 -1 -5581 5181 -1 -5182 5182 6 -5183 5182 -1 -5582 5182 -1 -5183 5183 6 -5184 5183 -1 -5583 5183 -1 -5184 5184 6 -5185 5184 -1 -5584 5184 -1 -5185 5185 6 -5186 5185 -1 -5585 5185 -1 -5186 5186 6 -5187 5186 -1 -5586 5186 -1 -5187 5187 6 -5188 5187 -1 -5587 5187 -1 -5188 5188 6 -5189 5188 -1 -5588 5188 -1 -5189 5189 6 -5190 5189 -1 -5589 5189 -1 -5190 5190 6 -5191 5190 -1 -5590 5190 -1 -5191 5191 6 -5192 5191 -1 -5591 5191 -1 -5192 5192 6 -5193 5192 -1 -5592 5192 -1 -5193 5193 6 -5194 5193 -1 -5593 5193 -1 -5194 5194 6 -5195 5194 -1 -5594 5194 -1 -5195 5195 6 -5196 5195 -1 -5595 5195 -1 -5196 5196 6 -5197 5196 -1 -5596 5196 -1 -5197 5197 6 -5198 5197 -1 -5597 5197 -1 -5198 5198 6 -5199 5198 -1 -5598 5198 -1 -5199 5199 6 -5200 5199 -1 -5599 5199 -1 -5200 5200 6 -5600 5200 -1 -5201 5201 6 -5202 5201 -1 -5221 5201 -1 -5601 5201 -1 -5202 5202 6 -5203 5202 -1 -5222 5202 -1 -5602 5202 -1 -5203 5203 6 -5204 5203 -1 -5223 5203 -1 -5603 5203 -1 -5204 5204 6 -5205 5204 -1 -5224 5204 -1 -5604 5204 -1 -5205 5205 6 -5206 5205 -1 -5225 5205 -1 -5605 5205 -1 -5206 5206 6 -5207 5206 -1 -5226 5206 -1 -5606 5206 -1 -5207 5207 6 -5208 5207 -1 -5227 5207 -1 -5607 5207 -1 -5208 5208 6 -5209 5208 -1 -5228 5208 -1 -5608 5208 -1 -5209 5209 6 -5210 5209 -1 -5229 5209 -1 -5609 5209 -1 -5210 5210 6 -5211 5210 -1 -5230 5210 -1 -5610 5210 -1 -5211 5211 6 -5212 5211 -1 -5231 5211 -1 -5611 5211 -1 -5212 5212 6 -5213 5212 -1 -5232 5212 -1 -5612 5212 -1 -5213 5213 6 -5214 5213 -1 -5233 5213 -1 -5613 5213 -1 -5214 5214 6 -5215 5214 -1 -5234 5214 -1 -5614 5214 -1 -5215 5215 6 -5216 5215 -1 -5235 5215 -1 -5615 5215 -1 -5216 5216 6 -5217 5216 -1 -5236 5216 -1 -5616 5216 -1 -5217 5217 6 -5218 5217 -1 -5237 5217 -1 -5617 5217 -1 -5218 5218 6 -5219 5218 -1 -5238 5218 -1 -5618 5218 -1 -5219 5219 6 -5220 5219 -1 -5239 5219 -1 -5619 5219 -1 -5220 5220 6 -5240 5220 -1 -5620 5220 -1 -5221 5221 6 -5222 5221 -1 -5241 5221 -1 -5621 5221 -1 -5222 5222 6 -5223 5222 -1 -5242 5222 -1 -5622 5222 -1 -5223 5223 6 -5224 5223 -1 -5243 5223 -1 -5623 5223 -1 -5224 5224 6 -5225 5224 -1 -5244 5224 -1 -5624 5224 -1 -5225 5225 6 -5226 5225 -1 -5245 5225 -1 -5625 5225 -1 -5226 5226 6 -5227 5226 -1 -5246 5226 -1 -5626 5226 -1 -5227 5227 6 -5228 5227 -1 -5247 5227 -1 -5627 5227 -1 -5228 5228 6 -5229 5228 -1 -5248 5228 -1 -5628 5228 -1 -5229 5229 6 -5230 5229 -1 -5249 5229 -1 -5629 5229 -1 -5230 5230 6 -5231 5230 -1 -5250 5230 -1 -5630 5230 -1 -5231 5231 6 -5232 5231 -1 -5251 5231 -1 -5631 5231 -1 -5232 5232 6 -5233 5232 -1 -5252 5232 -1 -5632 5232 -1 -5233 5233 6 -5234 5233 -1 -5253 5233 -1 -5633 5233 -1 -5234 5234 6 -5235 5234 -1 -5254 5234 -1 -5634 5234 -1 -5235 5235 6 -5236 5235 -1 -5255 5235 -1 -5635 5235 -1 -5236 5236 6 -5237 5236 -1 -5256 5236 -1 -5636 5236 -1 -5237 5237 6 -5238 5237 -1 -5257 5237 -1 -5637 5237 -1 -5238 5238 6 -5239 5238 -1 -5258 5238 -1 -5638 5238 -1 -5239 5239 6 -5240 5239 -1 -5259 5239 -1 -5639 5239 -1 -5240 5240 6 -5260 5240 -1 -5640 5240 -1 -5241 5241 6 -5242 5241 -1 -5261 5241 -1 -5641 5241 -1 -5242 5242 6 -5243 5242 -1 -5262 5242 -1 -5642 5242 -1 -5243 5243 6 -5244 5243 -1 -5263 5243 -1 -5643 5243 -1 -5244 5244 6 -5245 5244 -1 -5264 5244 -1 -5644 5244 -1 -5245 5245 6 -5246 5245 -1 -5265 5245 -1 -5645 5245 -1 -5246 5246 6 -5247 5246 -1 -5266 5246 -1 -5646 5246 -1 -5247 5247 6 -5248 5247 -1 -5267 5247 -1 -5647 5247 -1 -5248 5248 6 -5249 5248 -1 -5268 5248 -1 -5648 5248 -1 -5249 5249 6 -5250 5249 -1 -5269 5249 -1 -5649 5249 -1 -5250 5250 6 -5251 5250 -1 -5270 5250 -1 -5650 5250 -1 -5251 5251 6 -5252 5251 -1 -5271 5251 -1 -5651 5251 -1 -5252 5252 6 -5253 5252 -1 -5272 5252 -1 -5652 5252 -1 -5253 5253 6 -5254 5253 -1 -5273 5253 -1 -5653 5253 -1 -5254 5254 6 -5255 5254 -1 -5274 5254 -1 -5654 5254 -1 -5255 5255 6 -5256 5255 -1 -5275 5255 -1 -5655 5255 -1 -5256 5256 6 -5257 5256 -1 -5276 5256 -1 -5656 5256 -1 -5257 5257 6 -5258 5257 -1 -5277 5257 -1 -5657 5257 -1 -5258 5258 6 -5259 5258 -1 -5278 5258 -1 -5658 5258 -1 -5259 5259 6 -5260 5259 -1 -5279 5259 -1 -5659 5259 -1 -5260 5260 6 -5280 5260 -1 -5660 5260 -1 -5261 5261 6 -5262 5261 -1 -5281 5261 -1 -5661 5261 -1 -5262 5262 6 -5263 5262 -1 -5282 5262 -1 -5662 5262 -1 -5263 5263 6 -5264 5263 -1 -5283 5263 -1 -5663 5263 -1 -5264 5264 6 -5265 5264 -1 -5284 5264 -1 -5664 5264 -1 -5265 5265 6 -5266 5265 -1 -5285 5265 -1 -5665 5265 -1 -5266 5266 6 -5267 5266 -1 -5286 5266 -1 -5666 5266 -1 -5267 5267 6 -5268 5267 -1 -5287 5267 -1 -5667 5267 -1 -5268 5268 6 -5269 5268 -1 -5288 5268 -1 -5668 5268 -1 -5269 5269 6 -5270 5269 -1 -5289 5269 -1 -5669 5269 -1 -5270 5270 6 -5271 5270 -1 -5290 5270 -1 -5670 5270 -1 -5271 5271 6 -5272 5271 -1 -5291 5271 -1 -5671 5271 -1 -5272 5272 6 -5273 5272 -1 -5292 5272 -1 -5672 5272 -1 -5273 5273 6 -5274 5273 -1 -5293 5273 -1 -5673 5273 -1 -5274 5274 6 -5275 5274 -1 -5294 5274 -1 -5674 5274 -1 -5275 5275 6 -5276 5275 -1 -5295 5275 -1 -5675 5275 -1 -5276 5276 6 -5277 5276 -1 -5296 5276 -1 -5676 5276 -1 -5277 5277 6 -5278 5277 -1 -5297 5277 -1 -5677 5277 -1 -5278 5278 6 -5279 5278 -1 -5298 5278 -1 -5678 5278 -1 -5279 5279 6 -5280 5279 -1 -5299 5279 -1 -5679 5279 -1 -5280 5280 6 -5300 5280 -1 -5680 5280 -1 -5281 5281 6 -5282 5281 -1 -5301 5281 -1 -5681 5281 -1 -5282 5282 6 -5283 5282 -1 -5302 5282 -1 -5682 5282 -1 -5283 5283 6 -5284 5283 -1 -5303 5283 -1 -5683 5283 -1 -5284 5284 6 -5285 5284 -1 -5304 5284 -1 -5684 5284 -1 -5285 5285 6 -5286 5285 -1 -5305 5285 -1 -5685 5285 -1 -5286 5286 6 -5287 5286 -1 -5306 5286 -1 -5686 5286 -1 -5287 5287 6 -5288 5287 -1 -5307 5287 -1 -5687 5287 -1 -5288 5288 6 -5289 5288 -1 -5308 5288 -1 -5688 5288 -1 -5289 5289 6 -5290 5289 -1 -5309 5289 -1 -5689 5289 -1 -5290 5290 6 -5291 5290 -1 -5310 5290 -1 -5690 5290 -1 -5291 5291 6 -5292 5291 -1 -5311 5291 -1 -5691 5291 -1 -5292 5292 6 -5293 5292 -1 -5312 5292 -1 -5692 5292 -1 -5293 5293 6 -5294 5293 -1 -5313 5293 -1 -5693 5293 -1 -5294 5294 6 -5295 5294 -1 -5314 5294 -1 -5694 5294 -1 -5295 5295 6 -5296 5295 -1 -5315 5295 -1 -5695 5295 -1 -5296 5296 6 -5297 5296 -1 -5316 5296 -1 -5696 5296 -1 -5297 5297 6 -5298 5297 -1 -5317 5297 -1 -5697 5297 -1 -5298 5298 6 -5299 5298 -1 -5318 5298 -1 -5698 5298 -1 -5299 5299 6 -5300 5299 -1 -5319 5299 -1 -5699 5299 -1 -5300 5300 6 -5320 5300 -1 -5700 5300 -1 -5301 5301 6 -5302 5301 -1 -5321 5301 -1 -5701 5301 -1 -5302 5302 6 -5303 5302 -1 -5322 5302 -1 -5702 5302 -1 -5303 5303 6 -5304 5303 -1 -5323 5303 -1 -5703 5303 -1 -5304 5304 6 -5305 5304 -1 -5324 5304 -1 -5704 5304 -1 -5305 5305 6 -5306 5305 -1 -5325 5305 -1 -5705 5305 -1 -5306 5306 6 -5307 5306 -1 -5326 5306 -1 -5706 5306 -1 -5307 5307 6 -5308 5307 -1 -5327 5307 -1 -5707 5307 -1 -5308 5308 6 -5309 5308 -1 -5328 5308 -1 -5708 5308 -1 -5309 5309 6 -5310 5309 -1 -5329 5309 -1 -5709 5309 -1 -5310 5310 6 -5311 5310 -1 -5330 5310 -1 -5710 5310 -1 -5311 5311 6 -5312 5311 -1 -5331 5311 -1 -5711 5311 -1 -5312 5312 6 -5313 5312 -1 -5332 5312 -1 -5712 5312 -1 -5313 5313 6 -5314 5313 -1 -5333 5313 -1 -5713 5313 -1 -5314 5314 6 -5315 5314 -1 -5334 5314 -1 -5714 5314 -1 -5315 5315 6 -5316 5315 -1 -5335 5315 -1 -5715 5315 -1 -5316 5316 6 -5317 5316 -1 -5336 5316 -1 -5716 5316 -1 -5317 5317 6 -5318 5317 -1 -5337 5317 -1 -5717 5317 -1 -5318 5318 6 -5319 5318 -1 -5338 5318 -1 -5718 5318 -1 -5319 5319 6 -5320 5319 -1 -5339 5319 -1 -5719 5319 -1 -5320 5320 6 -5340 5320 -1 -5720 5320 -1 -5321 5321 6 -5322 5321 -1 -5341 5321 -1 -5721 5321 -1 -5322 5322 6 -5323 5322 -1 -5342 5322 -1 -5722 5322 -1 -5323 5323 6 -5324 5323 -1 -5343 5323 -1 -5723 5323 -1 -5324 5324 6 -5325 5324 -1 -5344 5324 -1 -5724 5324 -1 -5325 5325 6 -5326 5325 -1 -5345 5325 -1 -5725 5325 -1 -5326 5326 6 -5327 5326 -1 -5346 5326 -1 -5726 5326 -1 -5327 5327 6 -5328 5327 -1 -5347 5327 -1 -5727 5327 -1 -5328 5328 6 -5329 5328 -1 -5348 5328 -1 -5728 5328 -1 -5329 5329 6 -5330 5329 -1 -5349 5329 -1 -5729 5329 -1 -5330 5330 6 -5331 5330 -1 -5350 5330 -1 -5730 5330 -1 -5331 5331 6 -5332 5331 -1 -5351 5331 -1 -5731 5331 -1 -5332 5332 6 -5333 5332 -1 -5352 5332 -1 -5732 5332 -1 -5333 5333 6 -5334 5333 -1 -5353 5333 -1 -5733 5333 -1 -5334 5334 6 -5335 5334 -1 -5354 5334 -1 -5734 5334 -1 -5335 5335 6 -5336 5335 -1 -5355 5335 -1 -5735 5335 -1 -5336 5336 6 -5337 5336 -1 -5356 5336 -1 -5736 5336 -1 -5337 5337 6 -5338 5337 -1 -5357 5337 -1 -5737 5337 -1 -5338 5338 6 -5339 5338 -1 -5358 5338 -1 -5738 5338 -1 -5339 5339 6 -5340 5339 -1 -5359 5339 -1 -5739 5339 -1 -5340 5340 6 -5360 5340 -1 -5740 5340 -1 -5341 5341 6 -5342 5341 -1 -5361 5341 -1 -5741 5341 -1 -5342 5342 6 -5343 5342 -1 -5362 5342 -1 -5742 5342 -1 -5343 5343 6 -5344 5343 -1 -5363 5343 -1 -5743 5343 -1 -5344 5344 6 -5345 5344 -1 -5364 5344 -1 -5744 5344 -1 -5345 5345 6 -5346 5345 -1 -5365 5345 -1 -5745 5345 -1 -5346 5346 6 -5347 5346 -1 -5366 5346 -1 -5746 5346 -1 -5347 5347 6 -5348 5347 -1 -5367 5347 -1 -5747 5347 -1 -5348 5348 6 -5349 5348 -1 -5368 5348 -1 -5748 5348 -1 -5349 5349 6 -5350 5349 -1 -5369 5349 -1 -5749 5349 -1 -5350 5350 6 -5351 5350 -1 -5370 5350 -1 -5750 5350 -1 -5351 5351 6 -5352 5351 -1 -5371 5351 -1 -5751 5351 -1 -5352 5352 6 -5353 5352 -1 -5372 5352 -1 -5752 5352 -1 -5353 5353 6 -5354 5353 -1 -5373 5353 -1 -5753 5353 -1 -5354 5354 6 -5355 5354 -1 -5374 5354 -1 -5754 5354 -1 -5355 5355 6 -5356 5355 -1 -5375 5355 -1 -5755 5355 -1 -5356 5356 6 -5357 5356 -1 -5376 5356 -1 -5756 5356 -1 -5357 5357 6 -5358 5357 -1 -5377 5357 -1 -5757 5357 -1 -5358 5358 6 -5359 5358 -1 -5378 5358 -1 -5758 5358 -1 -5359 5359 6 -5360 5359 -1 -5379 5359 -1 -5759 5359 -1 -5360 5360 6 -5380 5360 -1 -5760 5360 -1 -5361 5361 6 -5362 5361 -1 -5381 5361 -1 -5761 5361 -1 -5362 5362 6 -5363 5362 -1 -5382 5362 -1 -5762 5362 -1 -5363 5363 6 -5364 5363 -1 -5383 5363 -1 -5763 5363 -1 -5364 5364 6 -5365 5364 -1 -5384 5364 -1 -5764 5364 -1 -5365 5365 6 -5366 5365 -1 -5385 5365 -1 -5765 5365 -1 -5366 5366 6 -5367 5366 -1 -5386 5366 -1 -5766 5366 -1 -5367 5367 6 -5368 5367 -1 -5387 5367 -1 -5767 5367 -1 -5368 5368 6 -5369 5368 -1 -5388 5368 -1 -5768 5368 -1 -5369 5369 6 -5370 5369 -1 -5389 5369 -1 -5769 5369 -1 -5370 5370 6 -5371 5370 -1 -5390 5370 -1 -5770 5370 -1 -5371 5371 6 -5372 5371 -1 -5391 5371 -1 -5771 5371 -1 -5372 5372 6 -5373 5372 -1 -5392 5372 -1 -5772 5372 -1 -5373 5373 6 -5374 5373 -1 -5393 5373 -1 -5773 5373 -1 -5374 5374 6 -5375 5374 -1 -5394 5374 -1 -5774 5374 -1 -5375 5375 6 -5376 5375 -1 -5395 5375 -1 -5775 5375 -1 -5376 5376 6 -5377 5376 -1 -5396 5376 -1 -5776 5376 -1 -5377 5377 6 -5378 5377 -1 -5397 5377 -1 -5777 5377 -1 -5378 5378 6 -5379 5378 -1 -5398 5378 -1 -5778 5378 -1 -5379 5379 6 -5380 5379 -1 -5399 5379 -1 -5779 5379 -1 -5380 5380 6 -5400 5380 -1 -5780 5380 -1 -5381 5381 6 -5382 5381 -1 -5401 5381 -1 -5781 5381 -1 -5382 5382 6 -5383 5382 -1 -5402 5382 -1 -5782 5382 -1 -5383 5383 6 -5384 5383 -1 -5403 5383 -1 -5783 5383 -1 -5384 5384 6 -5385 5384 -1 -5404 5384 -1 -5784 5384 -1 -5385 5385 6 -5386 5385 -1 -5405 5385 -1 -5785 5385 -1 -5386 5386 6 -5387 5386 -1 -5406 5386 -1 -5786 5386 -1 -5387 5387 6 -5388 5387 -1 -5407 5387 -1 -5787 5387 -1 -5388 5388 6 -5389 5388 -1 -5408 5388 -1 -5788 5388 -1 -5389 5389 6 -5390 5389 -1 -5409 5389 -1 -5789 5389 -1 -5390 5390 6 -5391 5390 -1 -5410 5390 -1 -5790 5390 -1 -5391 5391 6 -5392 5391 -1 -5411 5391 -1 -5791 5391 -1 -5392 5392 6 -5393 5392 -1 -5412 5392 -1 -5792 5392 -1 -5393 5393 6 -5394 5393 -1 -5413 5393 -1 -5793 5393 -1 -5394 5394 6 -5395 5394 -1 -5414 5394 -1 -5794 5394 -1 -5395 5395 6 -5396 5395 -1 -5415 5395 -1 -5795 5395 -1 -5396 5396 6 -5397 5396 -1 -5416 5396 -1 -5796 5396 -1 -5397 5397 6 -5398 5397 -1 -5417 5397 -1 -5797 5397 -1 -5398 5398 6 -5399 5398 -1 -5418 5398 -1 -5798 5398 -1 -5399 5399 6 -5400 5399 -1 -5419 5399 -1 -5799 5399 -1 -5400 5400 6 -5420 5400 -1 -5800 5400 -1 -5401 5401 6 -5402 5401 -1 -5421 5401 -1 -5801 5401 -1 -5402 5402 6 -5403 5402 -1 -5422 5402 -1 -5802 5402 -1 -5403 5403 6 -5404 5403 -1 -5423 5403 -1 -5803 5403 -1 -5404 5404 6 -5405 5404 -1 -5424 5404 -1 -5804 5404 -1 -5405 5405 6 -5406 5405 -1 -5425 5405 -1 -5805 5405 -1 -5406 5406 6 -5407 5406 -1 -5426 5406 -1 -5806 5406 -1 -5407 5407 6 -5408 5407 -1 -5427 5407 -1 -5807 5407 -1 -5408 5408 6 -5409 5408 -1 -5428 5408 -1 -5808 5408 -1 -5409 5409 6 -5410 5409 -1 -5429 5409 -1 -5809 5409 -1 -5410 5410 6 -5411 5410 -1 -5430 5410 -1 -5810 5410 -1 -5411 5411 6 -5412 5411 -1 -5431 5411 -1 -5811 5411 -1 -5412 5412 6 -5413 5412 -1 -5432 5412 -1 -5812 5412 -1 -5413 5413 6 -5414 5413 -1 -5433 5413 -1 -5813 5413 -1 -5414 5414 6 -5415 5414 -1 -5434 5414 -1 -5814 5414 -1 -5415 5415 6 -5416 5415 -1 -5435 5415 -1 -5815 5415 -1 -5416 5416 6 -5417 5416 -1 -5436 5416 -1 -5816 5416 -1 -5417 5417 6 -5418 5417 -1 -5437 5417 -1 -5817 5417 -1 -5418 5418 6 -5419 5418 -1 -5438 5418 -1 -5818 5418 -1 -5419 5419 6 -5420 5419 -1 -5439 5419 -1 -5819 5419 -1 -5420 5420 6 -5440 5420 -1 -5820 5420 -1 -5421 5421 6 -5422 5421 -1 -5441 5421 -1 -5821 5421 -1 -5422 5422 6 -5423 5422 -1 -5442 5422 -1 -5822 5422 -1 -5423 5423 6 -5424 5423 -1 -5443 5423 -1 -5823 5423 -1 -5424 5424 6 -5425 5424 -1 -5444 5424 -1 -5824 5424 -1 -5425 5425 6 -5426 5425 -1 -5445 5425 -1 -5825 5425 -1 -5426 5426 6 -5427 5426 -1 -5446 5426 -1 -5826 5426 -1 -5427 5427 6 -5428 5427 -1 -5447 5427 -1 -5827 5427 -1 -5428 5428 6 -5429 5428 -1 -5448 5428 -1 -5828 5428 -1 -5429 5429 6 -5430 5429 -1 -5449 5429 -1 -5829 5429 -1 -5430 5430 6 -5431 5430 -1 -5450 5430 -1 -5830 5430 -1 -5431 5431 6 -5432 5431 -1 -5451 5431 -1 -5831 5431 -1 -5432 5432 6 -5433 5432 -1 -5452 5432 -1 -5832 5432 -1 -5433 5433 6 -5434 5433 -1 -5453 5433 -1 -5833 5433 -1 -5434 5434 6 -5435 5434 -1 -5454 5434 -1 -5834 5434 -1 -5435 5435 6 -5436 5435 -1 -5455 5435 -1 -5835 5435 -1 -5436 5436 6 -5437 5436 -1 -5456 5436 -1 -5836 5436 -1 -5437 5437 6 -5438 5437 -1 -5457 5437 -1 -5837 5437 -1 -5438 5438 6 -5439 5438 -1 -5458 5438 -1 -5838 5438 -1 -5439 5439 6 -5440 5439 -1 -5459 5439 -1 -5839 5439 -1 -5440 5440 6 -5460 5440 -1 -5840 5440 -1 -5441 5441 6 -5442 5441 -1 -5461 5441 -1 -5841 5441 -1 -5442 5442 6 -5443 5442 -1 -5462 5442 -1 -5842 5442 -1 -5443 5443 6 -5444 5443 -1 -5463 5443 -1 -5843 5443 -1 -5444 5444 6 -5445 5444 -1 -5464 5444 -1 -5844 5444 -1 -5445 5445 6 -5446 5445 -1 -5465 5445 -1 -5845 5445 -1 -5446 5446 6 -5447 5446 -1 -5466 5446 -1 -5846 5446 -1 -5447 5447 6 -5448 5447 -1 -5467 5447 -1 -5847 5447 -1 -5448 5448 6 -5449 5448 -1 -5468 5448 -1 -5848 5448 -1 -5449 5449 6 -5450 5449 -1 -5469 5449 -1 -5849 5449 -1 -5450 5450 6 -5451 5450 -1 -5470 5450 -1 -5850 5450 -1 -5451 5451 6 -5452 5451 -1 -5471 5451 -1 -5851 5451 -1 -5452 5452 6 -5453 5452 -1 -5472 5452 -1 -5852 5452 -1 -5453 5453 6 -5454 5453 -1 -5473 5453 -1 -5853 5453 -1 -5454 5454 6 -5455 5454 -1 -5474 5454 -1 -5854 5454 -1 -5455 5455 6 -5456 5455 -1 -5475 5455 -1 -5855 5455 -1 -5456 5456 6 -5457 5456 -1 -5476 5456 -1 -5856 5456 -1 -5457 5457 6 -5458 5457 -1 -5477 5457 -1 -5857 5457 -1 -5458 5458 6 -5459 5458 -1 -5478 5458 -1 -5858 5458 -1 -5459 5459 6 -5460 5459 -1 -5479 5459 -1 -5859 5459 -1 -5460 5460 6 -5480 5460 -1 -5860 5460 -1 -5461 5461 6 -5462 5461 -1 -5481 5461 -1 -5861 5461 -1 -5462 5462 6 -5463 5462 -1 -5482 5462 -1 -5862 5462 -1 -5463 5463 6 -5464 5463 -1 -5483 5463 -1 -5863 5463 -1 -5464 5464 6 -5465 5464 -1 -5484 5464 -1 -5864 5464 -1 -5465 5465 6 -5466 5465 -1 -5485 5465 -1 -5865 5465 -1 -5466 5466 6 -5467 5466 -1 -5486 5466 -1 -5866 5466 -1 -5467 5467 6 -5468 5467 -1 -5487 5467 -1 -5867 5467 -1 -5468 5468 6 -5469 5468 -1 -5488 5468 -1 -5868 5468 -1 -5469 5469 6 -5470 5469 -1 -5489 5469 -1 -5869 5469 -1 -5470 5470 6 -5471 5470 -1 -5490 5470 -1 -5870 5470 -1 -5471 5471 6 -5472 5471 -1 -5491 5471 -1 -5871 5471 -1 -5472 5472 6 -5473 5472 -1 -5492 5472 -1 -5872 5472 -1 -5473 5473 6 -5474 5473 -1 -5493 5473 -1 -5873 5473 -1 -5474 5474 6 -5475 5474 -1 -5494 5474 -1 -5874 5474 -1 -5475 5475 6 -5476 5475 -1 -5495 5475 -1 -5875 5475 -1 -5476 5476 6 -5477 5476 -1 -5496 5476 -1 -5876 5476 -1 -5477 5477 6 -5478 5477 -1 -5497 5477 -1 -5877 5477 -1 -5478 5478 6 -5479 5478 -1 -5498 5478 -1 -5878 5478 -1 -5479 5479 6 -5480 5479 -1 -5499 5479 -1 -5879 5479 -1 -5480 5480 6 -5500 5480 -1 -5880 5480 -1 -5481 5481 6 -5482 5481 -1 -5501 5481 -1 -5881 5481 -1 -5482 5482 6 -5483 5482 -1 -5502 5482 -1 -5882 5482 -1 -5483 5483 6 -5484 5483 -1 -5503 5483 -1 -5883 5483 -1 -5484 5484 6 -5485 5484 -1 -5504 5484 -1 -5884 5484 -1 -5485 5485 6 -5486 5485 -1 -5505 5485 -1 -5885 5485 -1 -5486 5486 6 -5487 5486 -1 -5506 5486 -1 -5886 5486 -1 -5487 5487 6 -5488 5487 -1 -5507 5487 -1 -5887 5487 -1 -5488 5488 6 -5489 5488 -1 -5508 5488 -1 -5888 5488 -1 -5489 5489 6 -5490 5489 -1 -5509 5489 -1 -5889 5489 -1 -5490 5490 6 -5491 5490 -1 -5510 5490 -1 -5890 5490 -1 -5491 5491 6 -5492 5491 -1 -5511 5491 -1 -5891 5491 -1 -5492 5492 6 -5493 5492 -1 -5512 5492 -1 -5892 5492 -1 -5493 5493 6 -5494 5493 -1 -5513 5493 -1 -5893 5493 -1 -5494 5494 6 -5495 5494 -1 -5514 5494 -1 -5894 5494 -1 -5495 5495 6 -5496 5495 -1 -5515 5495 -1 -5895 5495 -1 -5496 5496 6 -5497 5496 -1 -5516 5496 -1 -5896 5496 -1 -5497 5497 6 -5498 5497 -1 -5517 5497 -1 -5897 5497 -1 -5498 5498 6 -5499 5498 -1 -5518 5498 -1 -5898 5498 -1 -5499 5499 6 -5500 5499 -1 -5519 5499 -1 -5899 5499 -1 -5500 5500 6 -5520 5500 -1 -5900 5500 -1 -5501 5501 6 -5502 5501 -1 -5521 5501 -1 -5901 5501 -1 -5502 5502 6 -5503 5502 -1 -5522 5502 -1 -5902 5502 -1 -5503 5503 6 -5504 5503 -1 -5523 5503 -1 -5903 5503 -1 -5504 5504 6 -5505 5504 -1 -5524 5504 -1 -5904 5504 -1 -5505 5505 6 -5506 5505 -1 -5525 5505 -1 -5905 5505 -1 -5506 5506 6 -5507 5506 -1 -5526 5506 -1 -5906 5506 -1 -5507 5507 6 -5508 5507 -1 -5527 5507 -1 -5907 5507 -1 -5508 5508 6 -5509 5508 -1 -5528 5508 -1 -5908 5508 -1 -5509 5509 6 -5510 5509 -1 -5529 5509 -1 -5909 5509 -1 -5510 5510 6 -5511 5510 -1 -5530 5510 -1 -5910 5510 -1 -5511 5511 6 -5512 5511 -1 -5531 5511 -1 -5911 5511 -1 -5512 5512 6 -5513 5512 -1 -5532 5512 -1 -5912 5512 -1 -5513 5513 6 -5514 5513 -1 -5533 5513 -1 -5913 5513 -1 -5514 5514 6 -5515 5514 -1 -5534 5514 -1 -5914 5514 -1 -5515 5515 6 -5516 5515 -1 -5535 5515 -1 -5915 5515 -1 -5516 5516 6 -5517 5516 -1 -5536 5516 -1 -5916 5516 -1 -5517 5517 6 -5518 5517 -1 -5537 5517 -1 -5917 5517 -1 -5518 5518 6 -5519 5518 -1 -5538 5518 -1 -5918 5518 -1 -5519 5519 6 -5520 5519 -1 -5539 5519 -1 -5919 5519 -1 -5520 5520 6 -5540 5520 -1 -5920 5520 -1 -5521 5521 6 -5522 5521 -1 -5541 5521 -1 -5921 5521 -1 -5522 5522 6 -5523 5522 -1 -5542 5522 -1 -5922 5522 -1 -5523 5523 6 -5524 5523 -1 -5543 5523 -1 -5923 5523 -1 -5524 5524 6 -5525 5524 -1 -5544 5524 -1 -5924 5524 -1 -5525 5525 6 -5526 5525 -1 -5545 5525 -1 -5925 5525 -1 -5526 5526 6 -5527 5526 -1 -5546 5526 -1 -5926 5526 -1 -5527 5527 6 -5528 5527 -1 -5547 5527 -1 -5927 5527 -1 -5528 5528 6 -5529 5528 -1 -5548 5528 -1 -5928 5528 -1 -5529 5529 6 -5530 5529 -1 -5549 5529 -1 -5929 5529 -1 -5530 5530 6 -5531 5530 -1 -5550 5530 -1 -5930 5530 -1 -5531 5531 6 -5532 5531 -1 -5551 5531 -1 -5931 5531 -1 -5532 5532 6 -5533 5532 -1 -5552 5532 -1 -5932 5532 -1 -5533 5533 6 -5534 5533 -1 -5553 5533 -1 -5933 5533 -1 -5534 5534 6 -5535 5534 -1 -5554 5534 -1 -5934 5534 -1 -5535 5535 6 -5536 5535 -1 -5555 5535 -1 -5935 5535 -1 -5536 5536 6 -5537 5536 -1 -5556 5536 -1 -5936 5536 -1 -5537 5537 6 -5538 5537 -1 -5557 5537 -1 -5937 5537 -1 -5538 5538 6 -5539 5538 -1 -5558 5538 -1 -5938 5538 -1 -5539 5539 6 -5540 5539 -1 -5559 5539 -1 -5939 5539 -1 -5540 5540 6 -5560 5540 -1 -5940 5540 -1 -5541 5541 6 -5542 5541 -1 -5561 5541 -1 -5941 5541 -1 -5542 5542 6 -5543 5542 -1 -5562 5542 -1 -5942 5542 -1 -5543 5543 6 -5544 5543 -1 -5563 5543 -1 -5943 5543 -1 -5544 5544 6 -5545 5544 -1 -5564 5544 -1 -5944 5544 -1 -5545 5545 6 -5546 5545 -1 -5565 5545 -1 -5945 5545 -1 -5546 5546 6 -5547 5546 -1 -5566 5546 -1 -5946 5546 -1 -5547 5547 6 -5548 5547 -1 -5567 5547 -1 -5947 5547 -1 -5548 5548 6 -5549 5548 -1 -5568 5548 -1 -5948 5548 -1 -5549 5549 6 -5550 5549 -1 -5569 5549 -1 -5949 5549 -1 -5550 5550 6 -5551 5550 -1 -5570 5550 -1 -5950 5550 -1 -5551 5551 6 -5552 5551 -1 -5571 5551 -1 -5951 5551 -1 -5552 5552 6 -5553 5552 -1 -5572 5552 -1 -5952 5552 -1 -5553 5553 6 -5554 5553 -1 -5573 5553 -1 -5953 5553 -1 -5554 5554 6 -5555 5554 -1 -5574 5554 -1 -5954 5554 -1 -5555 5555 6 -5556 5555 -1 -5575 5555 -1 -5955 5555 -1 -5556 5556 6 -5557 5556 -1 -5576 5556 -1 -5956 5556 -1 -5557 5557 6 -5558 5557 -1 -5577 5557 -1 -5957 5557 -1 -5558 5558 6 -5559 5558 -1 -5578 5558 -1 -5958 5558 -1 -5559 5559 6 -5560 5559 -1 -5579 5559 -1 -5959 5559 -1 -5560 5560 6 -5580 5560 -1 -5960 5560 -1 -5561 5561 6 -5562 5561 -1 -5581 5561 -1 -5961 5561 -1 -5562 5562 6 -5563 5562 -1 -5582 5562 -1 -5962 5562 -1 -5563 5563 6 -5564 5563 -1 -5583 5563 -1 -5963 5563 -1 -5564 5564 6 -5565 5564 -1 -5584 5564 -1 -5964 5564 -1 -5565 5565 6 -5566 5565 -1 -5585 5565 -1 -5965 5565 -1 -5566 5566 6 -5567 5566 -1 -5586 5566 -1 -5966 5566 -1 -5567 5567 6 -5568 5567 -1 -5587 5567 -1 -5967 5567 -1 -5568 5568 6 -5569 5568 -1 -5588 5568 -1 -5968 5568 -1 -5569 5569 6 -5570 5569 -1 -5589 5569 -1 -5969 5569 -1 -5570 5570 6 -5571 5570 -1 -5590 5570 -1 -5970 5570 -1 -5571 5571 6 -5572 5571 -1 -5591 5571 -1 -5971 5571 -1 -5572 5572 6 -5573 5572 -1 -5592 5572 -1 -5972 5572 -1 -5573 5573 6 -5574 5573 -1 -5593 5573 -1 -5973 5573 -1 -5574 5574 6 -5575 5574 -1 -5594 5574 -1 -5974 5574 -1 -5575 5575 6 -5576 5575 -1 -5595 5575 -1 -5975 5575 -1 -5576 5576 6 -5577 5576 -1 -5596 5576 -1 -5976 5576 -1 -5577 5577 6 -5578 5577 -1 -5597 5577 -1 -5977 5577 -1 -5578 5578 6 -5579 5578 -1 -5598 5578 -1 -5978 5578 -1 -5579 5579 6 -5580 5579 -1 -5599 5579 -1 -5979 5579 -1 -5580 5580 6 -5600 5580 -1 -5980 5580 -1 -5581 5581 6 -5582 5581 -1 -5981 5581 -1 -5582 5582 6 -5583 5582 -1 -5982 5582 -1 -5583 5583 6 -5584 5583 -1 -5983 5583 -1 -5584 5584 6 -5585 5584 -1 -5984 5584 -1 -5585 5585 6 -5586 5585 -1 -5985 5585 -1 -5586 5586 6 -5587 5586 -1 -5986 5586 -1 -5587 5587 6 -5588 5587 -1 -5987 5587 -1 -5588 5588 6 -5589 5588 -1 -5988 5588 -1 -5589 5589 6 -5590 5589 -1 -5989 5589 -1 -5590 5590 6 -5591 5590 -1 -5990 5590 -1 -5591 5591 6 -5592 5591 -1 -5991 5591 -1 -5592 5592 6 -5593 5592 -1 -5992 5592 -1 -5593 5593 6 -5594 5593 -1 -5993 5593 -1 -5594 5594 6 -5595 5594 -1 -5994 5594 -1 -5595 5595 6 -5596 5595 -1 -5995 5595 -1 -5596 5596 6 -5597 5596 -1 -5996 5596 -1 -5597 5597 6 -5598 5597 -1 -5997 5597 -1 -5598 5598 6 -5599 5598 -1 -5998 5598 -1 -5599 5599 6 -5600 5599 -1 -5999 5599 -1 -5600 5600 6 -6000 5600 -1 -5601 5601 6 -5602 5601 -1 -5621 5601 -1 -6001 5601 -1 -5602 5602 6 -5603 5602 -1 -5622 5602 -1 -6002 5602 -1 -5603 5603 6 -5604 5603 -1 -5623 5603 -1 -6003 5603 -1 -5604 5604 6 -5605 5604 -1 -5624 5604 -1 -6004 5604 -1 -5605 5605 6 -5606 5605 -1 -5625 5605 -1 -6005 5605 -1 -5606 5606 6 -5607 5606 -1 -5626 5606 -1 -6006 5606 -1 -5607 5607 6 -5608 5607 -1 -5627 5607 -1 -6007 5607 -1 -5608 5608 6 -5609 5608 -1 -5628 5608 -1 -6008 5608 -1 -5609 5609 6 -5610 5609 -1 -5629 5609 -1 -6009 5609 -1 -5610 5610 6 -5611 5610 -1 -5630 5610 -1 -6010 5610 -1 -5611 5611 6 -5612 5611 -1 -5631 5611 -1 -6011 5611 -1 -5612 5612 6 -5613 5612 -1 -5632 5612 -1 -6012 5612 -1 -5613 5613 6 -5614 5613 -1 -5633 5613 -1 -6013 5613 -1 -5614 5614 6 -5615 5614 -1 -5634 5614 -1 -6014 5614 -1 -5615 5615 6 -5616 5615 -1 -5635 5615 -1 -6015 5615 -1 -5616 5616 6 -5617 5616 -1 -5636 5616 -1 -6016 5616 -1 -5617 5617 6 -5618 5617 -1 -5637 5617 -1 -6017 5617 -1 -5618 5618 6 -5619 5618 -1 -5638 5618 -1 -6018 5618 -1 -5619 5619 6 -5620 5619 -1 -5639 5619 -1 -6019 5619 -1 -5620 5620 6 -5640 5620 -1 -6020 5620 -1 -5621 5621 6 -5622 5621 -1 -5641 5621 -1 -6021 5621 -1 -5622 5622 6 -5623 5622 -1 -5642 5622 -1 -6022 5622 -1 -5623 5623 6 -5624 5623 -1 -5643 5623 -1 -6023 5623 -1 -5624 5624 6 -5625 5624 -1 -5644 5624 -1 -6024 5624 -1 -5625 5625 6 -5626 5625 -1 -5645 5625 -1 -6025 5625 -1 -5626 5626 6 -5627 5626 -1 -5646 5626 -1 -6026 5626 -1 -5627 5627 6 -5628 5627 -1 -5647 5627 -1 -6027 5627 -1 -5628 5628 6 -5629 5628 -1 -5648 5628 -1 -6028 5628 -1 -5629 5629 6 -5630 5629 -1 -5649 5629 -1 -6029 5629 -1 -5630 5630 6 -5631 5630 -1 -5650 5630 -1 -6030 5630 -1 -5631 5631 6 -5632 5631 -1 -5651 5631 -1 -6031 5631 -1 -5632 5632 6 -5633 5632 -1 -5652 5632 -1 -6032 5632 -1 -5633 5633 6 -5634 5633 -1 -5653 5633 -1 -6033 5633 -1 -5634 5634 6 -5635 5634 -1 -5654 5634 -1 -6034 5634 -1 -5635 5635 6 -5636 5635 -1 -5655 5635 -1 -6035 5635 -1 -5636 5636 6 -5637 5636 -1 -5656 5636 -1 -6036 5636 -1 -5637 5637 6 -5638 5637 -1 -5657 5637 -1 -6037 5637 -1 -5638 5638 6 -5639 5638 -1 -5658 5638 -1 -6038 5638 -1 -5639 5639 6 -5640 5639 -1 -5659 5639 -1 -6039 5639 -1 -5640 5640 6 -5660 5640 -1 -6040 5640 -1 -5641 5641 6 -5642 5641 -1 -5661 5641 -1 -6041 5641 -1 -5642 5642 6 -5643 5642 -1 -5662 5642 -1 -6042 5642 -1 -5643 5643 6 -5644 5643 -1 -5663 5643 -1 -6043 5643 -1 -5644 5644 6 -5645 5644 -1 -5664 5644 -1 -6044 5644 -1 -5645 5645 6 -5646 5645 -1 -5665 5645 -1 -6045 5645 -1 -5646 5646 6 -5647 5646 -1 -5666 5646 -1 -6046 5646 -1 -5647 5647 6 -5648 5647 -1 -5667 5647 -1 -6047 5647 -1 -5648 5648 6 -5649 5648 -1 -5668 5648 -1 -6048 5648 -1 -5649 5649 6 -5650 5649 -1 -5669 5649 -1 -6049 5649 -1 -5650 5650 6 -5651 5650 -1 -5670 5650 -1 -6050 5650 -1 -5651 5651 6 -5652 5651 -1 -5671 5651 -1 -6051 5651 -1 -5652 5652 6 -5653 5652 -1 -5672 5652 -1 -6052 5652 -1 -5653 5653 6 -5654 5653 -1 -5673 5653 -1 -6053 5653 -1 -5654 5654 6 -5655 5654 -1 -5674 5654 -1 -6054 5654 -1 -5655 5655 6 -5656 5655 -1 -5675 5655 -1 -6055 5655 -1 -5656 5656 6 -5657 5656 -1 -5676 5656 -1 -6056 5656 -1 -5657 5657 6 -5658 5657 -1 -5677 5657 -1 -6057 5657 -1 -5658 5658 6 -5659 5658 -1 -5678 5658 -1 -6058 5658 -1 -5659 5659 6 -5660 5659 -1 -5679 5659 -1 -6059 5659 -1 -5660 5660 6 -5680 5660 -1 -6060 5660 -1 -5661 5661 6 -5662 5661 -1 -5681 5661 -1 -6061 5661 -1 -5662 5662 6 -5663 5662 -1 -5682 5662 -1 -6062 5662 -1 -5663 5663 6 -5664 5663 -1 -5683 5663 -1 -6063 5663 -1 -5664 5664 6 -5665 5664 -1 -5684 5664 -1 -6064 5664 -1 -5665 5665 6 -5666 5665 -1 -5685 5665 -1 -6065 5665 -1 -5666 5666 6 -5667 5666 -1 -5686 5666 -1 -6066 5666 -1 -5667 5667 6 -5668 5667 -1 -5687 5667 -1 -6067 5667 -1 -5668 5668 6 -5669 5668 -1 -5688 5668 -1 -6068 5668 -1 -5669 5669 6 -5670 5669 -1 -5689 5669 -1 -6069 5669 -1 -5670 5670 6 -5671 5670 -1 -5690 5670 -1 -6070 5670 -1 -5671 5671 6 -5672 5671 -1 -5691 5671 -1 -6071 5671 -1 -5672 5672 6 -5673 5672 -1 -5692 5672 -1 -6072 5672 -1 -5673 5673 6 -5674 5673 -1 -5693 5673 -1 -6073 5673 -1 -5674 5674 6 -5675 5674 -1 -5694 5674 -1 -6074 5674 -1 -5675 5675 6 -5676 5675 -1 -5695 5675 -1 -6075 5675 -1 -5676 5676 6 -5677 5676 -1 -5696 5676 -1 -6076 5676 -1 -5677 5677 6 -5678 5677 -1 -5697 5677 -1 -6077 5677 -1 -5678 5678 6 -5679 5678 -1 -5698 5678 -1 -6078 5678 -1 -5679 5679 6 -5680 5679 -1 -5699 5679 -1 -6079 5679 -1 -5680 5680 6 -5700 5680 -1 -6080 5680 -1 -5681 5681 6 -5682 5681 -1 -5701 5681 -1 -6081 5681 -1 -5682 5682 6 -5683 5682 -1 -5702 5682 -1 -6082 5682 -1 -5683 5683 6 -5684 5683 -1 -5703 5683 -1 -6083 5683 -1 -5684 5684 6 -5685 5684 -1 -5704 5684 -1 -6084 5684 -1 -5685 5685 6 -5686 5685 -1 -5705 5685 -1 -6085 5685 -1 -5686 5686 6 -5687 5686 -1 -5706 5686 -1 -6086 5686 -1 -5687 5687 6 -5688 5687 -1 -5707 5687 -1 -6087 5687 -1 -5688 5688 6 -5689 5688 -1 -5708 5688 -1 -6088 5688 -1 -5689 5689 6 -5690 5689 -1 -5709 5689 -1 -6089 5689 -1 -5690 5690 6 -5691 5690 -1 -5710 5690 -1 -6090 5690 -1 -5691 5691 6 -5692 5691 -1 -5711 5691 -1 -6091 5691 -1 -5692 5692 6 -5693 5692 -1 -5712 5692 -1 -6092 5692 -1 -5693 5693 6 -5694 5693 -1 -5713 5693 -1 -6093 5693 -1 -5694 5694 6 -5695 5694 -1 -5714 5694 -1 -6094 5694 -1 -5695 5695 6 -5696 5695 -1 -5715 5695 -1 -6095 5695 -1 -5696 5696 6 -5697 5696 -1 -5716 5696 -1 -6096 5696 -1 -5697 5697 6 -5698 5697 -1 -5717 5697 -1 -6097 5697 -1 -5698 5698 6 -5699 5698 -1 -5718 5698 -1 -6098 5698 -1 -5699 5699 6 -5700 5699 -1 -5719 5699 -1 -6099 5699 -1 -5700 5700 6 -5720 5700 -1 -6100 5700 -1 -5701 5701 6 -5702 5701 -1 -5721 5701 -1 -6101 5701 -1 -5702 5702 6 -5703 5702 -1 -5722 5702 -1 -6102 5702 -1 -5703 5703 6 -5704 5703 -1 -5723 5703 -1 -6103 5703 -1 -5704 5704 6 -5705 5704 -1 -5724 5704 -1 -6104 5704 -1 -5705 5705 6 -5706 5705 -1 -5725 5705 -1 -6105 5705 -1 -5706 5706 6 -5707 5706 -1 -5726 5706 -1 -6106 5706 -1 -5707 5707 6 -5708 5707 -1 -5727 5707 -1 -6107 5707 -1 -5708 5708 6 -5709 5708 -1 -5728 5708 -1 -6108 5708 -1 -5709 5709 6 -5710 5709 -1 -5729 5709 -1 -6109 5709 -1 -5710 5710 6 -5711 5710 -1 -5730 5710 -1 -6110 5710 -1 -5711 5711 6 -5712 5711 -1 -5731 5711 -1 -6111 5711 -1 -5712 5712 6 -5713 5712 -1 -5732 5712 -1 -6112 5712 -1 -5713 5713 6 -5714 5713 -1 -5733 5713 -1 -6113 5713 -1 -5714 5714 6 -5715 5714 -1 -5734 5714 -1 -6114 5714 -1 -5715 5715 6 -5716 5715 -1 -5735 5715 -1 -6115 5715 -1 -5716 5716 6 -5717 5716 -1 -5736 5716 -1 -6116 5716 -1 -5717 5717 6 -5718 5717 -1 -5737 5717 -1 -6117 5717 -1 -5718 5718 6 -5719 5718 -1 -5738 5718 -1 -6118 5718 -1 -5719 5719 6 -5720 5719 -1 -5739 5719 -1 -6119 5719 -1 -5720 5720 6 -5740 5720 -1 -6120 5720 -1 -5721 5721 6 -5722 5721 -1 -5741 5721 -1 -6121 5721 -1 -5722 5722 6 -5723 5722 -1 -5742 5722 -1 -6122 5722 -1 -5723 5723 6 -5724 5723 -1 -5743 5723 -1 -6123 5723 -1 -5724 5724 6 -5725 5724 -1 -5744 5724 -1 -6124 5724 -1 -5725 5725 6 -5726 5725 -1 -5745 5725 -1 -6125 5725 -1 -5726 5726 6 -5727 5726 -1 -5746 5726 -1 -6126 5726 -1 -5727 5727 6 -5728 5727 -1 -5747 5727 -1 -6127 5727 -1 -5728 5728 6 -5729 5728 -1 -5748 5728 -1 -6128 5728 -1 -5729 5729 6 -5730 5729 -1 -5749 5729 -1 -6129 5729 -1 -5730 5730 6 -5731 5730 -1 -5750 5730 -1 -6130 5730 -1 -5731 5731 6 -5732 5731 -1 -5751 5731 -1 -6131 5731 -1 -5732 5732 6 -5733 5732 -1 -5752 5732 -1 -6132 5732 -1 -5733 5733 6 -5734 5733 -1 -5753 5733 -1 -6133 5733 -1 -5734 5734 6 -5735 5734 -1 -5754 5734 -1 -6134 5734 -1 -5735 5735 6 -5736 5735 -1 -5755 5735 -1 -6135 5735 -1 -5736 5736 6 -5737 5736 -1 -5756 5736 -1 -6136 5736 -1 -5737 5737 6 -5738 5737 -1 -5757 5737 -1 -6137 5737 -1 -5738 5738 6 -5739 5738 -1 -5758 5738 -1 -6138 5738 -1 -5739 5739 6 -5740 5739 -1 -5759 5739 -1 -6139 5739 -1 -5740 5740 6 -5760 5740 -1 -6140 5740 -1 -5741 5741 6 -5742 5741 -1 -5761 5741 -1 -6141 5741 -1 -5742 5742 6 -5743 5742 -1 -5762 5742 -1 -6142 5742 -1 -5743 5743 6 -5744 5743 -1 -5763 5743 -1 -6143 5743 -1 -5744 5744 6 -5745 5744 -1 -5764 5744 -1 -6144 5744 -1 -5745 5745 6 -5746 5745 -1 -5765 5745 -1 -6145 5745 -1 -5746 5746 6 -5747 5746 -1 -5766 5746 -1 -6146 5746 -1 -5747 5747 6 -5748 5747 -1 -5767 5747 -1 -6147 5747 -1 -5748 5748 6 -5749 5748 -1 -5768 5748 -1 -6148 5748 -1 -5749 5749 6 -5750 5749 -1 -5769 5749 -1 -6149 5749 -1 -5750 5750 6 -5751 5750 -1 -5770 5750 -1 -6150 5750 -1 -5751 5751 6 -5752 5751 -1 -5771 5751 -1 -6151 5751 -1 -5752 5752 6 -5753 5752 -1 -5772 5752 -1 -6152 5752 -1 -5753 5753 6 -5754 5753 -1 -5773 5753 -1 -6153 5753 -1 -5754 5754 6 -5755 5754 -1 -5774 5754 -1 -6154 5754 -1 -5755 5755 6 -5756 5755 -1 -5775 5755 -1 -6155 5755 -1 -5756 5756 6 -5757 5756 -1 -5776 5756 -1 -6156 5756 -1 -5757 5757 6 -5758 5757 -1 -5777 5757 -1 -6157 5757 -1 -5758 5758 6 -5759 5758 -1 -5778 5758 -1 -6158 5758 -1 -5759 5759 6 -5760 5759 -1 -5779 5759 -1 -6159 5759 -1 -5760 5760 6 -5780 5760 -1 -6160 5760 -1 -5761 5761 6 -5762 5761 -1 -5781 5761 -1 -6161 5761 -1 -5762 5762 6 -5763 5762 -1 -5782 5762 -1 -6162 5762 -1 -5763 5763 6 -5764 5763 -1 -5783 5763 -1 -6163 5763 -1 -5764 5764 6 -5765 5764 -1 -5784 5764 -1 -6164 5764 -1 -5765 5765 6 -5766 5765 -1 -5785 5765 -1 -6165 5765 -1 -5766 5766 6 -5767 5766 -1 -5786 5766 -1 -6166 5766 -1 -5767 5767 6 -5768 5767 -1 -5787 5767 -1 -6167 5767 -1 -5768 5768 6 -5769 5768 -1 -5788 5768 -1 -6168 5768 -1 -5769 5769 6 -5770 5769 -1 -5789 5769 -1 -6169 5769 -1 -5770 5770 6 -5771 5770 -1 -5790 5770 -1 -6170 5770 -1 -5771 5771 6 -5772 5771 -1 -5791 5771 -1 -6171 5771 -1 -5772 5772 6 -5773 5772 -1 -5792 5772 -1 -6172 5772 -1 -5773 5773 6 -5774 5773 -1 -5793 5773 -1 -6173 5773 -1 -5774 5774 6 -5775 5774 -1 -5794 5774 -1 -6174 5774 -1 -5775 5775 6 -5776 5775 -1 -5795 5775 -1 -6175 5775 -1 -5776 5776 6 -5777 5776 -1 -5796 5776 -1 -6176 5776 -1 -5777 5777 6 -5778 5777 -1 -5797 5777 -1 -6177 5777 -1 -5778 5778 6 -5779 5778 -1 -5798 5778 -1 -6178 5778 -1 -5779 5779 6 -5780 5779 -1 -5799 5779 -1 -6179 5779 -1 -5780 5780 6 -5800 5780 -1 -6180 5780 -1 -5781 5781 6 -5782 5781 -1 -5801 5781 -1 -6181 5781 -1 -5782 5782 6 -5783 5782 -1 -5802 5782 -1 -6182 5782 -1 -5783 5783 6 -5784 5783 -1 -5803 5783 -1 -6183 5783 -1 -5784 5784 6 -5785 5784 -1 -5804 5784 -1 -6184 5784 -1 -5785 5785 6 -5786 5785 -1 -5805 5785 -1 -6185 5785 -1 -5786 5786 6 -5787 5786 -1 -5806 5786 -1 -6186 5786 -1 -5787 5787 6 -5788 5787 -1 -5807 5787 -1 -6187 5787 -1 -5788 5788 6 -5789 5788 -1 -5808 5788 -1 -6188 5788 -1 -5789 5789 6 -5790 5789 -1 -5809 5789 -1 -6189 5789 -1 -5790 5790 6 -5791 5790 -1 -5810 5790 -1 -6190 5790 -1 -5791 5791 6 -5792 5791 -1 -5811 5791 -1 -6191 5791 -1 -5792 5792 6 -5793 5792 -1 -5812 5792 -1 -6192 5792 -1 -5793 5793 6 -5794 5793 -1 -5813 5793 -1 -6193 5793 -1 -5794 5794 6 -5795 5794 -1 -5814 5794 -1 -6194 5794 -1 -5795 5795 6 -5796 5795 -1 -5815 5795 -1 -6195 5795 -1 -5796 5796 6 -5797 5796 -1 -5816 5796 -1 -6196 5796 -1 -5797 5797 6 -5798 5797 -1 -5817 5797 -1 -6197 5797 -1 -5798 5798 6 -5799 5798 -1 -5818 5798 -1 -6198 5798 -1 -5799 5799 6 -5800 5799 -1 -5819 5799 -1 -6199 5799 -1 -5800 5800 6 -5820 5800 -1 -6200 5800 -1 -5801 5801 6 -5802 5801 -1 -5821 5801 -1 -6201 5801 -1 -5802 5802 6 -5803 5802 -1 -5822 5802 -1 -6202 5802 -1 -5803 5803 6 -5804 5803 -1 -5823 5803 -1 -6203 5803 -1 -5804 5804 6 -5805 5804 -1 -5824 5804 -1 -6204 5804 -1 -5805 5805 6 -5806 5805 -1 -5825 5805 -1 -6205 5805 -1 -5806 5806 6 -5807 5806 -1 -5826 5806 -1 -6206 5806 -1 -5807 5807 6 -5808 5807 -1 -5827 5807 -1 -6207 5807 -1 -5808 5808 6 -5809 5808 -1 -5828 5808 -1 -6208 5808 -1 -5809 5809 6 -5810 5809 -1 -5829 5809 -1 -6209 5809 -1 -5810 5810 6 -5811 5810 -1 -5830 5810 -1 -6210 5810 -1 -5811 5811 6 -5812 5811 -1 -5831 5811 -1 -6211 5811 -1 -5812 5812 6 -5813 5812 -1 -5832 5812 -1 -6212 5812 -1 -5813 5813 6 -5814 5813 -1 -5833 5813 -1 -6213 5813 -1 -5814 5814 6 -5815 5814 -1 -5834 5814 -1 -6214 5814 -1 -5815 5815 6 -5816 5815 -1 -5835 5815 -1 -6215 5815 -1 -5816 5816 6 -5817 5816 -1 -5836 5816 -1 -6216 5816 -1 -5817 5817 6 -5818 5817 -1 -5837 5817 -1 -6217 5817 -1 -5818 5818 6 -5819 5818 -1 -5838 5818 -1 -6218 5818 -1 -5819 5819 6 -5820 5819 -1 -5839 5819 -1 -6219 5819 -1 -5820 5820 6 -5840 5820 -1 -6220 5820 -1 -5821 5821 6 -5822 5821 -1 -5841 5821 -1 -6221 5821 -1 -5822 5822 6 -5823 5822 -1 -5842 5822 -1 -6222 5822 -1 -5823 5823 6 -5824 5823 -1 -5843 5823 -1 -6223 5823 -1 -5824 5824 6 -5825 5824 -1 -5844 5824 -1 -6224 5824 -1 -5825 5825 6 -5826 5825 -1 -5845 5825 -1 -6225 5825 -1 -5826 5826 6 -5827 5826 -1 -5846 5826 -1 -6226 5826 -1 -5827 5827 6 -5828 5827 -1 -5847 5827 -1 -6227 5827 -1 -5828 5828 6 -5829 5828 -1 -5848 5828 -1 -6228 5828 -1 -5829 5829 6 -5830 5829 -1 -5849 5829 -1 -6229 5829 -1 -5830 5830 6 -5831 5830 -1 -5850 5830 -1 -6230 5830 -1 -5831 5831 6 -5832 5831 -1 -5851 5831 -1 -6231 5831 -1 -5832 5832 6 -5833 5832 -1 -5852 5832 -1 -6232 5832 -1 -5833 5833 6 -5834 5833 -1 -5853 5833 -1 -6233 5833 -1 -5834 5834 6 -5835 5834 -1 -5854 5834 -1 -6234 5834 -1 -5835 5835 6 -5836 5835 -1 -5855 5835 -1 -6235 5835 -1 -5836 5836 6 -5837 5836 -1 -5856 5836 -1 -6236 5836 -1 -5837 5837 6 -5838 5837 -1 -5857 5837 -1 -6237 5837 -1 -5838 5838 6 -5839 5838 -1 -5858 5838 -1 -6238 5838 -1 -5839 5839 6 -5840 5839 -1 -5859 5839 -1 -6239 5839 -1 -5840 5840 6 -5860 5840 -1 -6240 5840 -1 -5841 5841 6 -5842 5841 -1 -5861 5841 -1 -6241 5841 -1 -5842 5842 6 -5843 5842 -1 -5862 5842 -1 -6242 5842 -1 -5843 5843 6 -5844 5843 -1 -5863 5843 -1 -6243 5843 -1 -5844 5844 6 -5845 5844 -1 -5864 5844 -1 -6244 5844 -1 -5845 5845 6 -5846 5845 -1 -5865 5845 -1 -6245 5845 -1 -5846 5846 6 -5847 5846 -1 -5866 5846 -1 -6246 5846 -1 -5847 5847 6 -5848 5847 -1 -5867 5847 -1 -6247 5847 -1 -5848 5848 6 -5849 5848 -1 -5868 5848 -1 -6248 5848 -1 -5849 5849 6 -5850 5849 -1 -5869 5849 -1 -6249 5849 -1 -5850 5850 6 -5851 5850 -1 -5870 5850 -1 -6250 5850 -1 -5851 5851 6 -5852 5851 -1 -5871 5851 -1 -6251 5851 -1 -5852 5852 6 -5853 5852 -1 -5872 5852 -1 -6252 5852 -1 -5853 5853 6 -5854 5853 -1 -5873 5853 -1 -6253 5853 -1 -5854 5854 6 -5855 5854 -1 -5874 5854 -1 -6254 5854 -1 -5855 5855 6 -5856 5855 -1 -5875 5855 -1 -6255 5855 -1 -5856 5856 6 -5857 5856 -1 -5876 5856 -1 -6256 5856 -1 -5857 5857 6 -5858 5857 -1 -5877 5857 -1 -6257 5857 -1 -5858 5858 6 -5859 5858 -1 -5878 5858 -1 -6258 5858 -1 -5859 5859 6 -5860 5859 -1 -5879 5859 -1 -6259 5859 -1 -5860 5860 6 -5880 5860 -1 -6260 5860 -1 -5861 5861 6 -5862 5861 -1 -5881 5861 -1 -6261 5861 -1 -5862 5862 6 -5863 5862 -1 -5882 5862 -1 -6262 5862 -1 -5863 5863 6 -5864 5863 -1 -5883 5863 -1 -6263 5863 -1 -5864 5864 6 -5865 5864 -1 -5884 5864 -1 -6264 5864 -1 -5865 5865 6 -5866 5865 -1 -5885 5865 -1 -6265 5865 -1 -5866 5866 6 -5867 5866 -1 -5886 5866 -1 -6266 5866 -1 -5867 5867 6 -5868 5867 -1 -5887 5867 -1 -6267 5867 -1 -5868 5868 6 -5869 5868 -1 -5888 5868 -1 -6268 5868 -1 -5869 5869 6 -5870 5869 -1 -5889 5869 -1 -6269 5869 -1 -5870 5870 6 -5871 5870 -1 -5890 5870 -1 -6270 5870 -1 -5871 5871 6 -5872 5871 -1 -5891 5871 -1 -6271 5871 -1 -5872 5872 6 -5873 5872 -1 -5892 5872 -1 -6272 5872 -1 -5873 5873 6 -5874 5873 -1 -5893 5873 -1 -6273 5873 -1 -5874 5874 6 -5875 5874 -1 -5894 5874 -1 -6274 5874 -1 -5875 5875 6 -5876 5875 -1 -5895 5875 -1 -6275 5875 -1 -5876 5876 6 -5877 5876 -1 -5896 5876 -1 -6276 5876 -1 -5877 5877 6 -5878 5877 -1 -5897 5877 -1 -6277 5877 -1 -5878 5878 6 -5879 5878 -1 -5898 5878 -1 -6278 5878 -1 -5879 5879 6 -5880 5879 -1 -5899 5879 -1 -6279 5879 -1 -5880 5880 6 -5900 5880 -1 -6280 5880 -1 -5881 5881 6 -5882 5881 -1 -5901 5881 -1 -6281 5881 -1 -5882 5882 6 -5883 5882 -1 -5902 5882 -1 -6282 5882 -1 -5883 5883 6 -5884 5883 -1 -5903 5883 -1 -6283 5883 -1 -5884 5884 6 -5885 5884 -1 -5904 5884 -1 -6284 5884 -1 -5885 5885 6 -5886 5885 -1 -5905 5885 -1 -6285 5885 -1 -5886 5886 6 -5887 5886 -1 -5906 5886 -1 -6286 5886 -1 -5887 5887 6 -5888 5887 -1 -5907 5887 -1 -6287 5887 -1 -5888 5888 6 -5889 5888 -1 -5908 5888 -1 -6288 5888 -1 -5889 5889 6 -5890 5889 -1 -5909 5889 -1 -6289 5889 -1 -5890 5890 6 -5891 5890 -1 -5910 5890 -1 -6290 5890 -1 -5891 5891 6 -5892 5891 -1 -5911 5891 -1 -6291 5891 -1 -5892 5892 6 -5893 5892 -1 -5912 5892 -1 -6292 5892 -1 -5893 5893 6 -5894 5893 -1 -5913 5893 -1 -6293 5893 -1 -5894 5894 6 -5895 5894 -1 -5914 5894 -1 -6294 5894 -1 -5895 5895 6 -5896 5895 -1 -5915 5895 -1 -6295 5895 -1 -5896 5896 6 -5897 5896 -1 -5916 5896 -1 -6296 5896 -1 -5897 5897 6 -5898 5897 -1 -5917 5897 -1 -6297 5897 -1 -5898 5898 6 -5899 5898 -1 -5918 5898 -1 -6298 5898 -1 -5899 5899 6 -5900 5899 -1 -5919 5899 -1 -6299 5899 -1 -5900 5900 6 -5920 5900 -1 -6300 5900 -1 -5901 5901 6 -5902 5901 -1 -5921 5901 -1 -6301 5901 -1 -5902 5902 6 -5903 5902 -1 -5922 5902 -1 -6302 5902 -1 -5903 5903 6 -5904 5903 -1 -5923 5903 -1 -6303 5903 -1 -5904 5904 6 -5905 5904 -1 -5924 5904 -1 -6304 5904 -1 -5905 5905 6 -5906 5905 -1 -5925 5905 -1 -6305 5905 -1 -5906 5906 6 -5907 5906 -1 -5926 5906 -1 -6306 5906 -1 -5907 5907 6 -5908 5907 -1 -5927 5907 -1 -6307 5907 -1 -5908 5908 6 -5909 5908 -1 -5928 5908 -1 -6308 5908 -1 -5909 5909 6 -5910 5909 -1 -5929 5909 -1 -6309 5909 -1 -5910 5910 6 -5911 5910 -1 -5930 5910 -1 -6310 5910 -1 -5911 5911 6 -5912 5911 -1 -5931 5911 -1 -6311 5911 -1 -5912 5912 6 -5913 5912 -1 -5932 5912 -1 -6312 5912 -1 -5913 5913 6 -5914 5913 -1 -5933 5913 -1 -6313 5913 -1 -5914 5914 6 -5915 5914 -1 -5934 5914 -1 -6314 5914 -1 -5915 5915 6 -5916 5915 -1 -5935 5915 -1 -6315 5915 -1 -5916 5916 6 -5917 5916 -1 -5936 5916 -1 -6316 5916 -1 -5917 5917 6 -5918 5917 -1 -5937 5917 -1 -6317 5917 -1 -5918 5918 6 -5919 5918 -1 -5938 5918 -1 -6318 5918 -1 -5919 5919 6 -5920 5919 -1 -5939 5919 -1 -6319 5919 -1 -5920 5920 6 -5940 5920 -1 -6320 5920 -1 -5921 5921 6 -5922 5921 -1 -5941 5921 -1 -6321 5921 -1 -5922 5922 6 -5923 5922 -1 -5942 5922 -1 -6322 5922 -1 -5923 5923 6 -5924 5923 -1 -5943 5923 -1 -6323 5923 -1 -5924 5924 6 -5925 5924 -1 -5944 5924 -1 -6324 5924 -1 -5925 5925 6 -5926 5925 -1 -5945 5925 -1 -6325 5925 -1 -5926 5926 6 -5927 5926 -1 -5946 5926 -1 -6326 5926 -1 -5927 5927 6 -5928 5927 -1 -5947 5927 -1 -6327 5927 -1 -5928 5928 6 -5929 5928 -1 -5948 5928 -1 -6328 5928 -1 -5929 5929 6 -5930 5929 -1 -5949 5929 -1 -6329 5929 -1 -5930 5930 6 -5931 5930 -1 -5950 5930 -1 -6330 5930 -1 -5931 5931 6 -5932 5931 -1 -5951 5931 -1 -6331 5931 -1 -5932 5932 6 -5933 5932 -1 -5952 5932 -1 -6332 5932 -1 -5933 5933 6 -5934 5933 -1 -5953 5933 -1 -6333 5933 -1 -5934 5934 6 -5935 5934 -1 -5954 5934 -1 -6334 5934 -1 -5935 5935 6 -5936 5935 -1 -5955 5935 -1 -6335 5935 -1 -5936 5936 6 -5937 5936 -1 -5956 5936 -1 -6336 5936 -1 -5937 5937 6 -5938 5937 -1 -5957 5937 -1 -6337 5937 -1 -5938 5938 6 -5939 5938 -1 -5958 5938 -1 -6338 5938 -1 -5939 5939 6 -5940 5939 -1 -5959 5939 -1 -6339 5939 -1 -5940 5940 6 -5960 5940 -1 -6340 5940 -1 -5941 5941 6 -5942 5941 -1 -5961 5941 -1 -6341 5941 -1 -5942 5942 6 -5943 5942 -1 -5962 5942 -1 -6342 5942 -1 -5943 5943 6 -5944 5943 -1 -5963 5943 -1 -6343 5943 -1 -5944 5944 6 -5945 5944 -1 -5964 5944 -1 -6344 5944 -1 -5945 5945 6 -5946 5945 -1 -5965 5945 -1 -6345 5945 -1 -5946 5946 6 -5947 5946 -1 -5966 5946 -1 -6346 5946 -1 -5947 5947 6 -5948 5947 -1 -5967 5947 -1 -6347 5947 -1 -5948 5948 6 -5949 5948 -1 -5968 5948 -1 -6348 5948 -1 -5949 5949 6 -5950 5949 -1 -5969 5949 -1 -6349 5949 -1 -5950 5950 6 -5951 5950 -1 -5970 5950 -1 -6350 5950 -1 -5951 5951 6 -5952 5951 -1 -5971 5951 -1 -6351 5951 -1 -5952 5952 6 -5953 5952 -1 -5972 5952 -1 -6352 5952 -1 -5953 5953 6 -5954 5953 -1 -5973 5953 -1 -6353 5953 -1 -5954 5954 6 -5955 5954 -1 -5974 5954 -1 -6354 5954 -1 -5955 5955 6 -5956 5955 -1 -5975 5955 -1 -6355 5955 -1 -5956 5956 6 -5957 5956 -1 -5976 5956 -1 -6356 5956 -1 -5957 5957 6 -5958 5957 -1 -5977 5957 -1 -6357 5957 -1 -5958 5958 6 -5959 5958 -1 -5978 5958 -1 -6358 5958 -1 -5959 5959 6 -5960 5959 -1 -5979 5959 -1 -6359 5959 -1 -5960 5960 6 -5980 5960 -1 -6360 5960 -1 -5961 5961 6 -5962 5961 -1 -5981 5961 -1 -6361 5961 -1 -5962 5962 6 -5963 5962 -1 -5982 5962 -1 -6362 5962 -1 -5963 5963 6 -5964 5963 -1 -5983 5963 -1 -6363 5963 -1 -5964 5964 6 -5965 5964 -1 -5984 5964 -1 -6364 5964 -1 -5965 5965 6 -5966 5965 -1 -5985 5965 -1 -6365 5965 -1 -5966 5966 6 -5967 5966 -1 -5986 5966 -1 -6366 5966 -1 -5967 5967 6 -5968 5967 -1 -5987 5967 -1 -6367 5967 -1 -5968 5968 6 -5969 5968 -1 -5988 5968 -1 -6368 5968 -1 -5969 5969 6 -5970 5969 -1 -5989 5969 -1 -6369 5969 -1 -5970 5970 6 -5971 5970 -1 -5990 5970 -1 -6370 5970 -1 -5971 5971 6 -5972 5971 -1 -5991 5971 -1 -6371 5971 -1 -5972 5972 6 -5973 5972 -1 -5992 5972 -1 -6372 5972 -1 -5973 5973 6 -5974 5973 -1 -5993 5973 -1 -6373 5973 -1 -5974 5974 6 -5975 5974 -1 -5994 5974 -1 -6374 5974 -1 -5975 5975 6 -5976 5975 -1 -5995 5975 -1 -6375 5975 -1 -5976 5976 6 -5977 5976 -1 -5996 5976 -1 -6376 5976 -1 -5977 5977 6 -5978 5977 -1 -5997 5977 -1 -6377 5977 -1 -5978 5978 6 -5979 5978 -1 -5998 5978 -1 -6378 5978 -1 -5979 5979 6 -5980 5979 -1 -5999 5979 -1 -6379 5979 -1 -5980 5980 6 -6000 5980 -1 -6380 5980 -1 -5981 5981 6 -5982 5981 -1 -6381 5981 -1 -5982 5982 6 -5983 5982 -1 -6382 5982 -1 -5983 5983 6 -5984 5983 -1 -6383 5983 -1 -5984 5984 6 -5985 5984 -1 -6384 5984 -1 -5985 5985 6 -5986 5985 -1 -6385 5985 -1 -5986 5986 6 -5987 5986 -1 -6386 5986 -1 -5987 5987 6 -5988 5987 -1 -6387 5987 -1 -5988 5988 6 -5989 5988 -1 -6388 5988 -1 -5989 5989 6 -5990 5989 -1 -6389 5989 -1 -5990 5990 6 -5991 5990 -1 -6390 5990 -1 -5991 5991 6 -5992 5991 -1 -6391 5991 -1 -5992 5992 6 -5993 5992 -1 -6392 5992 -1 -5993 5993 6 -5994 5993 -1 -6393 5993 -1 -5994 5994 6 -5995 5994 -1 -6394 5994 -1 -5995 5995 6 -5996 5995 -1 -6395 5995 -1 -5996 5996 6 -5997 5996 -1 -6396 5996 -1 -5997 5997 6 -5998 5997 -1 -6397 5997 -1 -5998 5998 6 -5999 5998 -1 -6398 5998 -1 -5999 5999 6 -6000 5999 -1 -6399 5999 -1 -6000 6000 6 -6400 6000 -1 -6001 6001 6 -6002 6001 -1 -6021 6001 -1 -6401 6001 -1 -6002 6002 6 -6003 6002 -1 -6022 6002 -1 -6402 6002 -1 -6003 6003 6 -6004 6003 -1 -6023 6003 -1 -6403 6003 -1 -6004 6004 6 -6005 6004 -1 -6024 6004 -1 -6404 6004 -1 -6005 6005 6 -6006 6005 -1 -6025 6005 -1 -6405 6005 -1 -6006 6006 6 -6007 6006 -1 -6026 6006 -1 -6406 6006 -1 -6007 6007 6 -6008 6007 -1 -6027 6007 -1 -6407 6007 -1 -6008 6008 6 -6009 6008 -1 -6028 6008 -1 -6408 6008 -1 -6009 6009 6 -6010 6009 -1 -6029 6009 -1 -6409 6009 -1 -6010 6010 6 -6011 6010 -1 -6030 6010 -1 -6410 6010 -1 -6011 6011 6 -6012 6011 -1 -6031 6011 -1 -6411 6011 -1 -6012 6012 6 -6013 6012 -1 -6032 6012 -1 -6412 6012 -1 -6013 6013 6 -6014 6013 -1 -6033 6013 -1 -6413 6013 -1 -6014 6014 6 -6015 6014 -1 -6034 6014 -1 -6414 6014 -1 -6015 6015 6 -6016 6015 -1 -6035 6015 -1 -6415 6015 -1 -6016 6016 6 -6017 6016 -1 -6036 6016 -1 -6416 6016 -1 -6017 6017 6 -6018 6017 -1 -6037 6017 -1 -6417 6017 -1 -6018 6018 6 -6019 6018 -1 -6038 6018 -1 -6418 6018 -1 -6019 6019 6 -6020 6019 -1 -6039 6019 -1 -6419 6019 -1 -6020 6020 6 -6040 6020 -1 -6420 6020 -1 -6021 6021 6 -6022 6021 -1 -6041 6021 -1 -6421 6021 -1 -6022 6022 6 -6023 6022 -1 -6042 6022 -1 -6422 6022 -1 -6023 6023 6 -6024 6023 -1 -6043 6023 -1 -6423 6023 -1 -6024 6024 6 -6025 6024 -1 -6044 6024 -1 -6424 6024 -1 -6025 6025 6 -6026 6025 -1 -6045 6025 -1 -6425 6025 -1 -6026 6026 6 -6027 6026 -1 -6046 6026 -1 -6426 6026 -1 -6027 6027 6 -6028 6027 -1 -6047 6027 -1 -6427 6027 -1 -6028 6028 6 -6029 6028 -1 -6048 6028 -1 -6428 6028 -1 -6029 6029 6 -6030 6029 -1 -6049 6029 -1 -6429 6029 -1 -6030 6030 6 -6031 6030 -1 -6050 6030 -1 -6430 6030 -1 -6031 6031 6 -6032 6031 -1 -6051 6031 -1 -6431 6031 -1 -6032 6032 6 -6033 6032 -1 -6052 6032 -1 -6432 6032 -1 -6033 6033 6 -6034 6033 -1 -6053 6033 -1 -6433 6033 -1 -6034 6034 6 -6035 6034 -1 -6054 6034 -1 -6434 6034 -1 -6035 6035 6 -6036 6035 -1 -6055 6035 -1 -6435 6035 -1 -6036 6036 6 -6037 6036 -1 -6056 6036 -1 -6436 6036 -1 -6037 6037 6 -6038 6037 -1 -6057 6037 -1 -6437 6037 -1 -6038 6038 6 -6039 6038 -1 -6058 6038 -1 -6438 6038 -1 -6039 6039 6 -6040 6039 -1 -6059 6039 -1 -6439 6039 -1 -6040 6040 6 -6060 6040 -1 -6440 6040 -1 -6041 6041 6 -6042 6041 -1 -6061 6041 -1 -6441 6041 -1 -6042 6042 6 -6043 6042 -1 -6062 6042 -1 -6442 6042 -1 -6043 6043 6 -6044 6043 -1 -6063 6043 -1 -6443 6043 -1 -6044 6044 6 -6045 6044 -1 -6064 6044 -1 -6444 6044 -1 -6045 6045 6 -6046 6045 -1 -6065 6045 -1 -6445 6045 -1 -6046 6046 6 -6047 6046 -1 -6066 6046 -1 -6446 6046 -1 -6047 6047 6 -6048 6047 -1 -6067 6047 -1 -6447 6047 -1 -6048 6048 6 -6049 6048 -1 -6068 6048 -1 -6448 6048 -1 -6049 6049 6 -6050 6049 -1 -6069 6049 -1 -6449 6049 -1 -6050 6050 6 -6051 6050 -1 -6070 6050 -1 -6450 6050 -1 -6051 6051 6 -6052 6051 -1 -6071 6051 -1 -6451 6051 -1 -6052 6052 6 -6053 6052 -1 -6072 6052 -1 -6452 6052 -1 -6053 6053 6 -6054 6053 -1 -6073 6053 -1 -6453 6053 -1 -6054 6054 6 -6055 6054 -1 -6074 6054 -1 -6454 6054 -1 -6055 6055 6 -6056 6055 -1 -6075 6055 -1 -6455 6055 -1 -6056 6056 6 -6057 6056 -1 -6076 6056 -1 -6456 6056 -1 -6057 6057 6 -6058 6057 -1 -6077 6057 -1 -6457 6057 -1 -6058 6058 6 -6059 6058 -1 -6078 6058 -1 -6458 6058 -1 -6059 6059 6 -6060 6059 -1 -6079 6059 -1 -6459 6059 -1 -6060 6060 6 -6080 6060 -1 -6460 6060 -1 -6061 6061 6 -6062 6061 -1 -6081 6061 -1 -6461 6061 -1 -6062 6062 6 -6063 6062 -1 -6082 6062 -1 -6462 6062 -1 -6063 6063 6 -6064 6063 -1 -6083 6063 -1 -6463 6063 -1 -6064 6064 6 -6065 6064 -1 -6084 6064 -1 -6464 6064 -1 -6065 6065 6 -6066 6065 -1 -6085 6065 -1 -6465 6065 -1 -6066 6066 6 -6067 6066 -1 -6086 6066 -1 -6466 6066 -1 -6067 6067 6 -6068 6067 -1 -6087 6067 -1 -6467 6067 -1 -6068 6068 6 -6069 6068 -1 -6088 6068 -1 -6468 6068 -1 -6069 6069 6 -6070 6069 -1 -6089 6069 -1 -6469 6069 -1 -6070 6070 6 -6071 6070 -1 -6090 6070 -1 -6470 6070 -1 -6071 6071 6 -6072 6071 -1 -6091 6071 -1 -6471 6071 -1 -6072 6072 6 -6073 6072 -1 -6092 6072 -1 -6472 6072 -1 -6073 6073 6 -6074 6073 -1 -6093 6073 -1 -6473 6073 -1 -6074 6074 6 -6075 6074 -1 -6094 6074 -1 -6474 6074 -1 -6075 6075 6 -6076 6075 -1 -6095 6075 -1 -6475 6075 -1 -6076 6076 6 -6077 6076 -1 -6096 6076 -1 -6476 6076 -1 -6077 6077 6 -6078 6077 -1 -6097 6077 -1 -6477 6077 -1 -6078 6078 6 -6079 6078 -1 -6098 6078 -1 -6478 6078 -1 -6079 6079 6 -6080 6079 -1 -6099 6079 -1 -6479 6079 -1 -6080 6080 6 -6100 6080 -1 -6480 6080 -1 -6081 6081 6 -6082 6081 -1 -6101 6081 -1 -6481 6081 -1 -6082 6082 6 -6083 6082 -1 -6102 6082 -1 -6482 6082 -1 -6083 6083 6 -6084 6083 -1 -6103 6083 -1 -6483 6083 -1 -6084 6084 6 -6085 6084 -1 -6104 6084 -1 -6484 6084 -1 -6085 6085 6 -6086 6085 -1 -6105 6085 -1 -6485 6085 -1 -6086 6086 6 -6087 6086 -1 -6106 6086 -1 -6486 6086 -1 -6087 6087 6 -6088 6087 -1 -6107 6087 -1 -6487 6087 -1 -6088 6088 6 -6089 6088 -1 -6108 6088 -1 -6488 6088 -1 -6089 6089 6 -6090 6089 -1 -6109 6089 -1 -6489 6089 -1 -6090 6090 6 -6091 6090 -1 -6110 6090 -1 -6490 6090 -1 -6091 6091 6 -6092 6091 -1 -6111 6091 -1 -6491 6091 -1 -6092 6092 6 -6093 6092 -1 -6112 6092 -1 -6492 6092 -1 -6093 6093 6 -6094 6093 -1 -6113 6093 -1 -6493 6093 -1 -6094 6094 6 -6095 6094 -1 -6114 6094 -1 -6494 6094 -1 -6095 6095 6 -6096 6095 -1 -6115 6095 -1 -6495 6095 -1 -6096 6096 6 -6097 6096 -1 -6116 6096 -1 -6496 6096 -1 -6097 6097 6 -6098 6097 -1 -6117 6097 -1 -6497 6097 -1 -6098 6098 6 -6099 6098 -1 -6118 6098 -1 -6498 6098 -1 -6099 6099 6 -6100 6099 -1 -6119 6099 -1 -6499 6099 -1 -6100 6100 6 -6120 6100 -1 -6500 6100 -1 -6101 6101 6 -6102 6101 -1 -6121 6101 -1 -6501 6101 -1 -6102 6102 6 -6103 6102 -1 -6122 6102 -1 -6502 6102 -1 -6103 6103 6 -6104 6103 -1 -6123 6103 -1 -6503 6103 -1 -6104 6104 6 -6105 6104 -1 -6124 6104 -1 -6504 6104 -1 -6105 6105 6 -6106 6105 -1 -6125 6105 -1 -6505 6105 -1 -6106 6106 6 -6107 6106 -1 -6126 6106 -1 -6506 6106 -1 -6107 6107 6 -6108 6107 -1 -6127 6107 -1 -6507 6107 -1 -6108 6108 6 -6109 6108 -1 -6128 6108 -1 -6508 6108 -1 -6109 6109 6 -6110 6109 -1 -6129 6109 -1 -6509 6109 -1 -6110 6110 6 -6111 6110 -1 -6130 6110 -1 -6510 6110 -1 -6111 6111 6 -6112 6111 -1 -6131 6111 -1 -6511 6111 -1 -6112 6112 6 -6113 6112 -1 -6132 6112 -1 -6512 6112 -1 -6113 6113 6 -6114 6113 -1 -6133 6113 -1 -6513 6113 -1 -6114 6114 6 -6115 6114 -1 -6134 6114 -1 -6514 6114 -1 -6115 6115 6 -6116 6115 -1 -6135 6115 -1 -6515 6115 -1 -6116 6116 6 -6117 6116 -1 -6136 6116 -1 -6516 6116 -1 -6117 6117 6 -6118 6117 -1 -6137 6117 -1 -6517 6117 -1 -6118 6118 6 -6119 6118 -1 -6138 6118 -1 -6518 6118 -1 -6119 6119 6 -6120 6119 -1 -6139 6119 -1 -6519 6119 -1 -6120 6120 6 -6140 6120 -1 -6520 6120 -1 -6121 6121 6 -6122 6121 -1 -6141 6121 -1 -6521 6121 -1 -6122 6122 6 -6123 6122 -1 -6142 6122 -1 -6522 6122 -1 -6123 6123 6 -6124 6123 -1 -6143 6123 -1 -6523 6123 -1 -6124 6124 6 -6125 6124 -1 -6144 6124 -1 -6524 6124 -1 -6125 6125 6 -6126 6125 -1 -6145 6125 -1 -6525 6125 -1 -6126 6126 6 -6127 6126 -1 -6146 6126 -1 -6526 6126 -1 -6127 6127 6 -6128 6127 -1 -6147 6127 -1 -6527 6127 -1 -6128 6128 6 -6129 6128 -1 -6148 6128 -1 -6528 6128 -1 -6129 6129 6 -6130 6129 -1 -6149 6129 -1 -6529 6129 -1 -6130 6130 6 -6131 6130 -1 -6150 6130 -1 -6530 6130 -1 -6131 6131 6 -6132 6131 -1 -6151 6131 -1 -6531 6131 -1 -6132 6132 6 -6133 6132 -1 -6152 6132 -1 -6532 6132 -1 -6133 6133 6 -6134 6133 -1 -6153 6133 -1 -6533 6133 -1 -6134 6134 6 -6135 6134 -1 -6154 6134 -1 -6534 6134 -1 -6135 6135 6 -6136 6135 -1 -6155 6135 -1 -6535 6135 -1 -6136 6136 6 -6137 6136 -1 -6156 6136 -1 -6536 6136 -1 -6137 6137 6 -6138 6137 -1 -6157 6137 -1 -6537 6137 -1 -6138 6138 6 -6139 6138 -1 -6158 6138 -1 -6538 6138 -1 -6139 6139 6 -6140 6139 -1 -6159 6139 -1 -6539 6139 -1 -6140 6140 6 -6160 6140 -1 -6540 6140 -1 -6141 6141 6 -6142 6141 -1 -6161 6141 -1 -6541 6141 -1 -6142 6142 6 -6143 6142 -1 -6162 6142 -1 -6542 6142 -1 -6143 6143 6 -6144 6143 -1 -6163 6143 -1 -6543 6143 -1 -6144 6144 6 -6145 6144 -1 -6164 6144 -1 -6544 6144 -1 -6145 6145 6 -6146 6145 -1 -6165 6145 -1 -6545 6145 -1 -6146 6146 6 -6147 6146 -1 -6166 6146 -1 -6546 6146 -1 -6147 6147 6 -6148 6147 -1 -6167 6147 -1 -6547 6147 -1 -6148 6148 6 -6149 6148 -1 -6168 6148 -1 -6548 6148 -1 -6149 6149 6 -6150 6149 -1 -6169 6149 -1 -6549 6149 -1 -6150 6150 6 -6151 6150 -1 -6170 6150 -1 -6550 6150 -1 -6151 6151 6 -6152 6151 -1 -6171 6151 -1 -6551 6151 -1 -6152 6152 6 -6153 6152 -1 -6172 6152 -1 -6552 6152 -1 -6153 6153 6 -6154 6153 -1 -6173 6153 -1 -6553 6153 -1 -6154 6154 6 -6155 6154 -1 -6174 6154 -1 -6554 6154 -1 -6155 6155 6 -6156 6155 -1 -6175 6155 -1 -6555 6155 -1 -6156 6156 6 -6157 6156 -1 -6176 6156 -1 -6556 6156 -1 -6157 6157 6 -6158 6157 -1 -6177 6157 -1 -6557 6157 -1 -6158 6158 6 -6159 6158 -1 -6178 6158 -1 -6558 6158 -1 -6159 6159 6 -6160 6159 -1 -6179 6159 -1 -6559 6159 -1 -6160 6160 6 -6180 6160 -1 -6560 6160 -1 -6161 6161 6 -6162 6161 -1 -6181 6161 -1 -6561 6161 -1 -6162 6162 6 -6163 6162 -1 -6182 6162 -1 -6562 6162 -1 -6163 6163 6 -6164 6163 -1 -6183 6163 -1 -6563 6163 -1 -6164 6164 6 -6165 6164 -1 -6184 6164 -1 -6564 6164 -1 -6165 6165 6 -6166 6165 -1 -6185 6165 -1 -6565 6165 -1 -6166 6166 6 -6167 6166 -1 -6186 6166 -1 -6566 6166 -1 -6167 6167 6 -6168 6167 -1 -6187 6167 -1 -6567 6167 -1 -6168 6168 6 -6169 6168 -1 -6188 6168 -1 -6568 6168 -1 -6169 6169 6 -6170 6169 -1 -6189 6169 -1 -6569 6169 -1 -6170 6170 6 -6171 6170 -1 -6190 6170 -1 -6570 6170 -1 -6171 6171 6 -6172 6171 -1 -6191 6171 -1 -6571 6171 -1 -6172 6172 6 -6173 6172 -1 -6192 6172 -1 -6572 6172 -1 -6173 6173 6 -6174 6173 -1 -6193 6173 -1 -6573 6173 -1 -6174 6174 6 -6175 6174 -1 -6194 6174 -1 -6574 6174 -1 -6175 6175 6 -6176 6175 -1 -6195 6175 -1 -6575 6175 -1 -6176 6176 6 -6177 6176 -1 -6196 6176 -1 -6576 6176 -1 -6177 6177 6 -6178 6177 -1 -6197 6177 -1 -6577 6177 -1 -6178 6178 6 -6179 6178 -1 -6198 6178 -1 -6578 6178 -1 -6179 6179 6 -6180 6179 -1 -6199 6179 -1 -6579 6179 -1 -6180 6180 6 -6200 6180 -1 -6580 6180 -1 -6181 6181 6 -6182 6181 -1 -6201 6181 -1 -6581 6181 -1 -6182 6182 6 -6183 6182 -1 -6202 6182 -1 -6582 6182 -1 -6183 6183 6 -6184 6183 -1 -6203 6183 -1 -6583 6183 -1 -6184 6184 6 -6185 6184 -1 -6204 6184 -1 -6584 6184 -1 -6185 6185 6 -6186 6185 -1 -6205 6185 -1 -6585 6185 -1 -6186 6186 6 -6187 6186 -1 -6206 6186 -1 -6586 6186 -1 -6187 6187 6 -6188 6187 -1 -6207 6187 -1 -6587 6187 -1 -6188 6188 6 -6189 6188 -1 -6208 6188 -1 -6588 6188 -1 -6189 6189 6 -6190 6189 -1 -6209 6189 -1 -6589 6189 -1 -6190 6190 6 -6191 6190 -1 -6210 6190 -1 -6590 6190 -1 -6191 6191 6 -6192 6191 -1 -6211 6191 -1 -6591 6191 -1 -6192 6192 6 -6193 6192 -1 -6212 6192 -1 -6592 6192 -1 -6193 6193 6 -6194 6193 -1 -6213 6193 -1 -6593 6193 -1 -6194 6194 6 -6195 6194 -1 -6214 6194 -1 -6594 6194 -1 -6195 6195 6 -6196 6195 -1 -6215 6195 -1 -6595 6195 -1 -6196 6196 6 -6197 6196 -1 -6216 6196 -1 -6596 6196 -1 -6197 6197 6 -6198 6197 -1 -6217 6197 -1 -6597 6197 -1 -6198 6198 6 -6199 6198 -1 -6218 6198 -1 -6598 6198 -1 -6199 6199 6 -6200 6199 -1 -6219 6199 -1 -6599 6199 -1 -6200 6200 6 -6220 6200 -1 -6600 6200 -1 -6201 6201 6 -6202 6201 -1 -6221 6201 -1 -6601 6201 -1 -6202 6202 6 -6203 6202 -1 -6222 6202 -1 -6602 6202 -1 -6203 6203 6 -6204 6203 -1 -6223 6203 -1 -6603 6203 -1 -6204 6204 6 -6205 6204 -1 -6224 6204 -1 -6604 6204 -1 -6205 6205 6 -6206 6205 -1 -6225 6205 -1 -6605 6205 -1 -6206 6206 6 -6207 6206 -1 -6226 6206 -1 -6606 6206 -1 -6207 6207 6 -6208 6207 -1 -6227 6207 -1 -6607 6207 -1 -6208 6208 6 -6209 6208 -1 -6228 6208 -1 -6608 6208 -1 -6209 6209 6 -6210 6209 -1 -6229 6209 -1 -6609 6209 -1 -6210 6210 6 -6211 6210 -1 -6230 6210 -1 -6610 6210 -1 -6211 6211 6 -6212 6211 -1 -6231 6211 -1 -6611 6211 -1 -6212 6212 6 -6213 6212 -1 -6232 6212 -1 -6612 6212 -1 -6213 6213 6 -6214 6213 -1 -6233 6213 -1 -6613 6213 -1 -6214 6214 6 -6215 6214 -1 -6234 6214 -1 -6614 6214 -1 -6215 6215 6 -6216 6215 -1 -6235 6215 -1 -6615 6215 -1 -6216 6216 6 -6217 6216 -1 -6236 6216 -1 -6616 6216 -1 -6217 6217 6 -6218 6217 -1 -6237 6217 -1 -6617 6217 -1 -6218 6218 6 -6219 6218 -1 -6238 6218 -1 -6618 6218 -1 -6219 6219 6 -6220 6219 -1 -6239 6219 -1 -6619 6219 -1 -6220 6220 6 -6240 6220 -1 -6620 6220 -1 -6221 6221 6 -6222 6221 -1 -6241 6221 -1 -6621 6221 -1 -6222 6222 6 -6223 6222 -1 -6242 6222 -1 -6622 6222 -1 -6223 6223 6 -6224 6223 -1 -6243 6223 -1 -6623 6223 -1 -6224 6224 6 -6225 6224 -1 -6244 6224 -1 -6624 6224 -1 -6225 6225 6 -6226 6225 -1 -6245 6225 -1 -6625 6225 -1 -6226 6226 6 -6227 6226 -1 -6246 6226 -1 -6626 6226 -1 -6227 6227 6 -6228 6227 -1 -6247 6227 -1 -6627 6227 -1 -6228 6228 6 -6229 6228 -1 -6248 6228 -1 -6628 6228 -1 -6229 6229 6 -6230 6229 -1 -6249 6229 -1 -6629 6229 -1 -6230 6230 6 -6231 6230 -1 -6250 6230 -1 -6630 6230 -1 -6231 6231 6 -6232 6231 -1 -6251 6231 -1 -6631 6231 -1 -6232 6232 6 -6233 6232 -1 -6252 6232 -1 -6632 6232 -1 -6233 6233 6 -6234 6233 -1 -6253 6233 -1 -6633 6233 -1 -6234 6234 6 -6235 6234 -1 -6254 6234 -1 -6634 6234 -1 -6235 6235 6 -6236 6235 -1 -6255 6235 -1 -6635 6235 -1 -6236 6236 6 -6237 6236 -1 -6256 6236 -1 -6636 6236 -1 -6237 6237 6 -6238 6237 -1 -6257 6237 -1 -6637 6237 -1 -6238 6238 6 -6239 6238 -1 -6258 6238 -1 -6638 6238 -1 -6239 6239 6 -6240 6239 -1 -6259 6239 -1 -6639 6239 -1 -6240 6240 6 -6260 6240 -1 -6640 6240 -1 -6241 6241 6 -6242 6241 -1 -6261 6241 -1 -6641 6241 -1 -6242 6242 6 -6243 6242 -1 -6262 6242 -1 -6642 6242 -1 -6243 6243 6 -6244 6243 -1 -6263 6243 -1 -6643 6243 -1 -6244 6244 6 -6245 6244 -1 -6264 6244 -1 -6644 6244 -1 -6245 6245 6 -6246 6245 -1 -6265 6245 -1 -6645 6245 -1 -6246 6246 6 -6247 6246 -1 -6266 6246 -1 -6646 6246 -1 -6247 6247 6 -6248 6247 -1 -6267 6247 -1 -6647 6247 -1 -6248 6248 6 -6249 6248 -1 -6268 6248 -1 -6648 6248 -1 -6249 6249 6 -6250 6249 -1 -6269 6249 -1 -6649 6249 -1 -6250 6250 6 -6251 6250 -1 -6270 6250 -1 -6650 6250 -1 -6251 6251 6 -6252 6251 -1 -6271 6251 -1 -6651 6251 -1 -6252 6252 6 -6253 6252 -1 -6272 6252 -1 -6652 6252 -1 -6253 6253 6 -6254 6253 -1 -6273 6253 -1 -6653 6253 -1 -6254 6254 6 -6255 6254 -1 -6274 6254 -1 -6654 6254 -1 -6255 6255 6 -6256 6255 -1 -6275 6255 -1 -6655 6255 -1 -6256 6256 6 -6257 6256 -1 -6276 6256 -1 -6656 6256 -1 -6257 6257 6 -6258 6257 -1 -6277 6257 -1 -6657 6257 -1 -6258 6258 6 -6259 6258 -1 -6278 6258 -1 -6658 6258 -1 -6259 6259 6 -6260 6259 -1 -6279 6259 -1 -6659 6259 -1 -6260 6260 6 -6280 6260 -1 -6660 6260 -1 -6261 6261 6 -6262 6261 -1 -6281 6261 -1 -6661 6261 -1 -6262 6262 6 -6263 6262 -1 -6282 6262 -1 -6662 6262 -1 -6263 6263 6 -6264 6263 -1 -6283 6263 -1 -6663 6263 -1 -6264 6264 6 -6265 6264 -1 -6284 6264 -1 -6664 6264 -1 -6265 6265 6 -6266 6265 -1 -6285 6265 -1 -6665 6265 -1 -6266 6266 6 -6267 6266 -1 -6286 6266 -1 -6666 6266 -1 -6267 6267 6 -6268 6267 -1 -6287 6267 -1 -6667 6267 -1 -6268 6268 6 -6269 6268 -1 -6288 6268 -1 -6668 6268 -1 -6269 6269 6 -6270 6269 -1 -6289 6269 -1 -6669 6269 -1 -6270 6270 6 -6271 6270 -1 -6290 6270 -1 -6670 6270 -1 -6271 6271 6 -6272 6271 -1 -6291 6271 -1 -6671 6271 -1 -6272 6272 6 -6273 6272 -1 -6292 6272 -1 -6672 6272 -1 -6273 6273 6 -6274 6273 -1 -6293 6273 -1 -6673 6273 -1 -6274 6274 6 -6275 6274 -1 -6294 6274 -1 -6674 6274 -1 -6275 6275 6 -6276 6275 -1 -6295 6275 -1 -6675 6275 -1 -6276 6276 6 -6277 6276 -1 -6296 6276 -1 -6676 6276 -1 -6277 6277 6 -6278 6277 -1 -6297 6277 -1 -6677 6277 -1 -6278 6278 6 -6279 6278 -1 -6298 6278 -1 -6678 6278 -1 -6279 6279 6 -6280 6279 -1 -6299 6279 -1 -6679 6279 -1 -6280 6280 6 -6300 6280 -1 -6680 6280 -1 -6281 6281 6 -6282 6281 -1 -6301 6281 -1 -6681 6281 -1 -6282 6282 6 -6283 6282 -1 -6302 6282 -1 -6682 6282 -1 -6283 6283 6 -6284 6283 -1 -6303 6283 -1 -6683 6283 -1 -6284 6284 6 -6285 6284 -1 -6304 6284 -1 -6684 6284 -1 -6285 6285 6 -6286 6285 -1 -6305 6285 -1 -6685 6285 -1 -6286 6286 6 -6287 6286 -1 -6306 6286 -1 -6686 6286 -1 -6287 6287 6 -6288 6287 -1 -6307 6287 -1 -6687 6287 -1 -6288 6288 6 -6289 6288 -1 -6308 6288 -1 -6688 6288 -1 -6289 6289 6 -6290 6289 -1 -6309 6289 -1 -6689 6289 -1 -6290 6290 6 -6291 6290 -1 -6310 6290 -1 -6690 6290 -1 -6291 6291 6 -6292 6291 -1 -6311 6291 -1 -6691 6291 -1 -6292 6292 6 -6293 6292 -1 -6312 6292 -1 -6692 6292 -1 -6293 6293 6 -6294 6293 -1 -6313 6293 -1 -6693 6293 -1 -6294 6294 6 -6295 6294 -1 -6314 6294 -1 -6694 6294 -1 -6295 6295 6 -6296 6295 -1 -6315 6295 -1 -6695 6295 -1 -6296 6296 6 -6297 6296 -1 -6316 6296 -1 -6696 6296 -1 -6297 6297 6 -6298 6297 -1 -6317 6297 -1 -6697 6297 -1 -6298 6298 6 -6299 6298 -1 -6318 6298 -1 -6698 6298 -1 -6299 6299 6 -6300 6299 -1 -6319 6299 -1 -6699 6299 -1 -6300 6300 6 -6320 6300 -1 -6700 6300 -1 -6301 6301 6 -6302 6301 -1 -6321 6301 -1 -6701 6301 -1 -6302 6302 6 -6303 6302 -1 -6322 6302 -1 -6702 6302 -1 -6303 6303 6 -6304 6303 -1 -6323 6303 -1 -6703 6303 -1 -6304 6304 6 -6305 6304 -1 -6324 6304 -1 -6704 6304 -1 -6305 6305 6 -6306 6305 -1 -6325 6305 -1 -6705 6305 -1 -6306 6306 6 -6307 6306 -1 -6326 6306 -1 -6706 6306 -1 -6307 6307 6 -6308 6307 -1 -6327 6307 -1 -6707 6307 -1 -6308 6308 6 -6309 6308 -1 -6328 6308 -1 -6708 6308 -1 -6309 6309 6 -6310 6309 -1 -6329 6309 -1 -6709 6309 -1 -6310 6310 6 -6311 6310 -1 -6330 6310 -1 -6710 6310 -1 -6311 6311 6 -6312 6311 -1 -6331 6311 -1 -6711 6311 -1 -6312 6312 6 -6313 6312 -1 -6332 6312 -1 -6712 6312 -1 -6313 6313 6 -6314 6313 -1 -6333 6313 -1 -6713 6313 -1 -6314 6314 6 -6315 6314 -1 -6334 6314 -1 -6714 6314 -1 -6315 6315 6 -6316 6315 -1 -6335 6315 -1 -6715 6315 -1 -6316 6316 6 -6317 6316 -1 -6336 6316 -1 -6716 6316 -1 -6317 6317 6 -6318 6317 -1 -6337 6317 -1 -6717 6317 -1 -6318 6318 6 -6319 6318 -1 -6338 6318 -1 -6718 6318 -1 -6319 6319 6 -6320 6319 -1 -6339 6319 -1 -6719 6319 -1 -6320 6320 6 -6340 6320 -1 -6720 6320 -1 -6321 6321 6 -6322 6321 -1 -6341 6321 -1 -6721 6321 -1 -6322 6322 6 -6323 6322 -1 -6342 6322 -1 -6722 6322 -1 -6323 6323 6 -6324 6323 -1 -6343 6323 -1 -6723 6323 -1 -6324 6324 6 -6325 6324 -1 -6344 6324 -1 -6724 6324 -1 -6325 6325 6 -6326 6325 -1 -6345 6325 -1 -6725 6325 -1 -6326 6326 6 -6327 6326 -1 -6346 6326 -1 -6726 6326 -1 -6327 6327 6 -6328 6327 -1 -6347 6327 -1 -6727 6327 -1 -6328 6328 6 -6329 6328 -1 -6348 6328 -1 -6728 6328 -1 -6329 6329 6 -6330 6329 -1 -6349 6329 -1 -6729 6329 -1 -6330 6330 6 -6331 6330 -1 -6350 6330 -1 -6730 6330 -1 -6331 6331 6 -6332 6331 -1 -6351 6331 -1 -6731 6331 -1 -6332 6332 6 -6333 6332 -1 -6352 6332 -1 -6732 6332 -1 -6333 6333 6 -6334 6333 -1 -6353 6333 -1 -6733 6333 -1 -6334 6334 6 -6335 6334 -1 -6354 6334 -1 -6734 6334 -1 -6335 6335 6 -6336 6335 -1 -6355 6335 -1 -6735 6335 -1 -6336 6336 6 -6337 6336 -1 -6356 6336 -1 -6736 6336 -1 -6337 6337 6 -6338 6337 -1 -6357 6337 -1 -6737 6337 -1 -6338 6338 6 -6339 6338 -1 -6358 6338 -1 -6738 6338 -1 -6339 6339 6 -6340 6339 -1 -6359 6339 -1 -6739 6339 -1 -6340 6340 6 -6360 6340 -1 -6740 6340 -1 -6341 6341 6 -6342 6341 -1 -6361 6341 -1 -6741 6341 -1 -6342 6342 6 -6343 6342 -1 -6362 6342 -1 -6742 6342 -1 -6343 6343 6 -6344 6343 -1 -6363 6343 -1 -6743 6343 -1 -6344 6344 6 -6345 6344 -1 -6364 6344 -1 -6744 6344 -1 -6345 6345 6 -6346 6345 -1 -6365 6345 -1 -6745 6345 -1 -6346 6346 6 -6347 6346 -1 -6366 6346 -1 -6746 6346 -1 -6347 6347 6 -6348 6347 -1 -6367 6347 -1 -6747 6347 -1 -6348 6348 6 -6349 6348 -1 -6368 6348 -1 -6748 6348 -1 -6349 6349 6 -6350 6349 -1 -6369 6349 -1 -6749 6349 -1 -6350 6350 6 -6351 6350 -1 -6370 6350 -1 -6750 6350 -1 -6351 6351 6 -6352 6351 -1 -6371 6351 -1 -6751 6351 -1 -6352 6352 6 -6353 6352 -1 -6372 6352 -1 -6752 6352 -1 -6353 6353 6 -6354 6353 -1 -6373 6353 -1 -6753 6353 -1 -6354 6354 6 -6355 6354 -1 -6374 6354 -1 -6754 6354 -1 -6355 6355 6 -6356 6355 -1 -6375 6355 -1 -6755 6355 -1 -6356 6356 6 -6357 6356 -1 -6376 6356 -1 -6756 6356 -1 -6357 6357 6 -6358 6357 -1 -6377 6357 -1 -6757 6357 -1 -6358 6358 6 -6359 6358 -1 -6378 6358 -1 -6758 6358 -1 -6359 6359 6 -6360 6359 -1 -6379 6359 -1 -6759 6359 -1 -6360 6360 6 -6380 6360 -1 -6760 6360 -1 -6361 6361 6 -6362 6361 -1 -6381 6361 -1 -6761 6361 -1 -6362 6362 6 -6363 6362 -1 -6382 6362 -1 -6762 6362 -1 -6363 6363 6 -6364 6363 -1 -6383 6363 -1 -6763 6363 -1 -6364 6364 6 -6365 6364 -1 -6384 6364 -1 -6764 6364 -1 -6365 6365 6 -6366 6365 -1 -6385 6365 -1 -6765 6365 -1 -6366 6366 6 -6367 6366 -1 -6386 6366 -1 -6766 6366 -1 -6367 6367 6 -6368 6367 -1 -6387 6367 -1 -6767 6367 -1 -6368 6368 6 -6369 6368 -1 -6388 6368 -1 -6768 6368 -1 -6369 6369 6 -6370 6369 -1 -6389 6369 -1 -6769 6369 -1 -6370 6370 6 -6371 6370 -1 -6390 6370 -1 -6770 6370 -1 -6371 6371 6 -6372 6371 -1 -6391 6371 -1 -6771 6371 -1 -6372 6372 6 -6373 6372 -1 -6392 6372 -1 -6772 6372 -1 -6373 6373 6 -6374 6373 -1 -6393 6373 -1 -6773 6373 -1 -6374 6374 6 -6375 6374 -1 -6394 6374 -1 -6774 6374 -1 -6375 6375 6 -6376 6375 -1 -6395 6375 -1 -6775 6375 -1 -6376 6376 6 -6377 6376 -1 -6396 6376 -1 -6776 6376 -1 -6377 6377 6 -6378 6377 -1 -6397 6377 -1 -6777 6377 -1 -6378 6378 6 -6379 6378 -1 -6398 6378 -1 -6778 6378 -1 -6379 6379 6 -6380 6379 -1 -6399 6379 -1 -6779 6379 -1 -6380 6380 6 -6400 6380 -1 -6780 6380 -1 -6381 6381 6 -6382 6381 -1 -6781 6381 -1 -6382 6382 6 -6383 6382 -1 -6782 6382 -1 -6383 6383 6 -6384 6383 -1 -6783 6383 -1 -6384 6384 6 -6385 6384 -1 -6784 6384 -1 -6385 6385 6 -6386 6385 -1 -6785 6385 -1 -6386 6386 6 -6387 6386 -1 -6786 6386 -1 -6387 6387 6 -6388 6387 -1 -6787 6387 -1 -6388 6388 6 -6389 6388 -1 -6788 6388 -1 -6389 6389 6 -6390 6389 -1 -6789 6389 -1 -6390 6390 6 -6391 6390 -1 -6790 6390 -1 -6391 6391 6 -6392 6391 -1 -6791 6391 -1 -6392 6392 6 -6393 6392 -1 -6792 6392 -1 -6393 6393 6 -6394 6393 -1 -6793 6393 -1 -6394 6394 6 -6395 6394 -1 -6794 6394 -1 -6395 6395 6 -6396 6395 -1 -6795 6395 -1 -6396 6396 6 -6397 6396 -1 -6796 6396 -1 -6397 6397 6 -6398 6397 -1 -6797 6397 -1 -6398 6398 6 -6399 6398 -1 -6798 6398 -1 -6399 6399 6 -6400 6399 -1 -6799 6399 -1 -6400 6400 6 -6800 6400 -1 -6401 6401 6 -6402 6401 -1 -6421 6401 -1 -6801 6401 -1 -6402 6402 6 -6403 6402 -1 -6422 6402 -1 -6802 6402 -1 -6403 6403 6 -6404 6403 -1 -6423 6403 -1 -6803 6403 -1 -6404 6404 6 -6405 6404 -1 -6424 6404 -1 -6804 6404 -1 -6405 6405 6 -6406 6405 -1 -6425 6405 -1 -6805 6405 -1 -6406 6406 6 -6407 6406 -1 -6426 6406 -1 -6806 6406 -1 -6407 6407 6 -6408 6407 -1 -6427 6407 -1 -6807 6407 -1 -6408 6408 6 -6409 6408 -1 -6428 6408 -1 -6808 6408 -1 -6409 6409 6 -6410 6409 -1 -6429 6409 -1 -6809 6409 -1 -6410 6410 6 -6411 6410 -1 -6430 6410 -1 -6810 6410 -1 -6411 6411 6 -6412 6411 -1 -6431 6411 -1 -6811 6411 -1 -6412 6412 6 -6413 6412 -1 -6432 6412 -1 -6812 6412 -1 -6413 6413 6 -6414 6413 -1 -6433 6413 -1 -6813 6413 -1 -6414 6414 6 -6415 6414 -1 -6434 6414 -1 -6814 6414 -1 -6415 6415 6 -6416 6415 -1 -6435 6415 -1 -6815 6415 -1 -6416 6416 6 -6417 6416 -1 -6436 6416 -1 -6816 6416 -1 -6417 6417 6 -6418 6417 -1 -6437 6417 -1 -6817 6417 -1 -6418 6418 6 -6419 6418 -1 -6438 6418 -1 -6818 6418 -1 -6419 6419 6 -6420 6419 -1 -6439 6419 -1 -6819 6419 -1 -6420 6420 6 -6440 6420 -1 -6820 6420 -1 -6421 6421 6 -6422 6421 -1 -6441 6421 -1 -6821 6421 -1 -6422 6422 6 -6423 6422 -1 -6442 6422 -1 -6822 6422 -1 -6423 6423 6 -6424 6423 -1 -6443 6423 -1 -6823 6423 -1 -6424 6424 6 -6425 6424 -1 -6444 6424 -1 -6824 6424 -1 -6425 6425 6 -6426 6425 -1 -6445 6425 -1 -6825 6425 -1 -6426 6426 6 -6427 6426 -1 -6446 6426 -1 -6826 6426 -1 -6427 6427 6 -6428 6427 -1 -6447 6427 -1 -6827 6427 -1 -6428 6428 6 -6429 6428 -1 -6448 6428 -1 -6828 6428 -1 -6429 6429 6 -6430 6429 -1 -6449 6429 -1 -6829 6429 -1 -6430 6430 6 -6431 6430 -1 -6450 6430 -1 -6830 6430 -1 -6431 6431 6 -6432 6431 -1 -6451 6431 -1 -6831 6431 -1 -6432 6432 6 -6433 6432 -1 -6452 6432 -1 -6832 6432 -1 -6433 6433 6 -6434 6433 -1 -6453 6433 -1 -6833 6433 -1 -6434 6434 6 -6435 6434 -1 -6454 6434 -1 -6834 6434 -1 -6435 6435 6 -6436 6435 -1 -6455 6435 -1 -6835 6435 -1 -6436 6436 6 -6437 6436 -1 -6456 6436 -1 -6836 6436 -1 -6437 6437 6 -6438 6437 -1 -6457 6437 -1 -6837 6437 -1 -6438 6438 6 -6439 6438 -1 -6458 6438 -1 -6838 6438 -1 -6439 6439 6 -6440 6439 -1 -6459 6439 -1 -6839 6439 -1 -6440 6440 6 -6460 6440 -1 -6840 6440 -1 -6441 6441 6 -6442 6441 -1 -6461 6441 -1 -6841 6441 -1 -6442 6442 6 -6443 6442 -1 -6462 6442 -1 -6842 6442 -1 -6443 6443 6 -6444 6443 -1 -6463 6443 -1 -6843 6443 -1 -6444 6444 6 -6445 6444 -1 -6464 6444 -1 -6844 6444 -1 -6445 6445 6 -6446 6445 -1 -6465 6445 -1 -6845 6445 -1 -6446 6446 6 -6447 6446 -1 -6466 6446 -1 -6846 6446 -1 -6447 6447 6 -6448 6447 -1 -6467 6447 -1 -6847 6447 -1 -6448 6448 6 -6449 6448 -1 -6468 6448 -1 -6848 6448 -1 -6449 6449 6 -6450 6449 -1 -6469 6449 -1 -6849 6449 -1 -6450 6450 6 -6451 6450 -1 -6470 6450 -1 -6850 6450 -1 -6451 6451 6 -6452 6451 -1 -6471 6451 -1 -6851 6451 -1 -6452 6452 6 -6453 6452 -1 -6472 6452 -1 -6852 6452 -1 -6453 6453 6 -6454 6453 -1 -6473 6453 -1 -6853 6453 -1 -6454 6454 6 -6455 6454 -1 -6474 6454 -1 -6854 6454 -1 -6455 6455 6 -6456 6455 -1 -6475 6455 -1 -6855 6455 -1 -6456 6456 6 -6457 6456 -1 -6476 6456 -1 -6856 6456 -1 -6457 6457 6 -6458 6457 -1 -6477 6457 -1 -6857 6457 -1 -6458 6458 6 -6459 6458 -1 -6478 6458 -1 -6858 6458 -1 -6459 6459 6 -6460 6459 -1 -6479 6459 -1 -6859 6459 -1 -6460 6460 6 -6480 6460 -1 -6860 6460 -1 -6461 6461 6 -6462 6461 -1 -6481 6461 -1 -6861 6461 -1 -6462 6462 6 -6463 6462 -1 -6482 6462 -1 -6862 6462 -1 -6463 6463 6 -6464 6463 -1 -6483 6463 -1 -6863 6463 -1 -6464 6464 6 -6465 6464 -1 -6484 6464 -1 -6864 6464 -1 -6465 6465 6 -6466 6465 -1 -6485 6465 -1 -6865 6465 -1 -6466 6466 6 -6467 6466 -1 -6486 6466 -1 -6866 6466 -1 -6467 6467 6 -6468 6467 -1 -6487 6467 -1 -6867 6467 -1 -6468 6468 6 -6469 6468 -1 -6488 6468 -1 -6868 6468 -1 -6469 6469 6 -6470 6469 -1 -6489 6469 -1 -6869 6469 -1 -6470 6470 6 -6471 6470 -1 -6490 6470 -1 -6870 6470 -1 -6471 6471 6 -6472 6471 -1 -6491 6471 -1 -6871 6471 -1 -6472 6472 6 -6473 6472 -1 -6492 6472 -1 -6872 6472 -1 -6473 6473 6 -6474 6473 -1 -6493 6473 -1 -6873 6473 -1 -6474 6474 6 -6475 6474 -1 -6494 6474 -1 -6874 6474 -1 -6475 6475 6 -6476 6475 -1 -6495 6475 -1 -6875 6475 -1 -6476 6476 6 -6477 6476 -1 -6496 6476 -1 -6876 6476 -1 -6477 6477 6 -6478 6477 -1 -6497 6477 -1 -6877 6477 -1 -6478 6478 6 -6479 6478 -1 -6498 6478 -1 -6878 6478 -1 -6479 6479 6 -6480 6479 -1 -6499 6479 -1 -6879 6479 -1 -6480 6480 6 -6500 6480 -1 -6880 6480 -1 -6481 6481 6 -6482 6481 -1 -6501 6481 -1 -6881 6481 -1 -6482 6482 6 -6483 6482 -1 -6502 6482 -1 -6882 6482 -1 -6483 6483 6 -6484 6483 -1 -6503 6483 -1 -6883 6483 -1 -6484 6484 6 -6485 6484 -1 -6504 6484 -1 -6884 6484 -1 -6485 6485 6 -6486 6485 -1 -6505 6485 -1 -6885 6485 -1 -6486 6486 6 -6487 6486 -1 -6506 6486 -1 -6886 6486 -1 -6487 6487 6 -6488 6487 -1 -6507 6487 -1 -6887 6487 -1 -6488 6488 6 -6489 6488 -1 -6508 6488 -1 -6888 6488 -1 -6489 6489 6 -6490 6489 -1 -6509 6489 -1 -6889 6489 -1 -6490 6490 6 -6491 6490 -1 -6510 6490 -1 -6890 6490 -1 -6491 6491 6 -6492 6491 -1 -6511 6491 -1 -6891 6491 -1 -6492 6492 6 -6493 6492 -1 -6512 6492 -1 -6892 6492 -1 -6493 6493 6 -6494 6493 -1 -6513 6493 -1 -6893 6493 -1 -6494 6494 6 -6495 6494 -1 -6514 6494 -1 -6894 6494 -1 -6495 6495 6 -6496 6495 -1 -6515 6495 -1 -6895 6495 -1 -6496 6496 6 -6497 6496 -1 -6516 6496 -1 -6896 6496 -1 -6497 6497 6 -6498 6497 -1 -6517 6497 -1 -6897 6497 -1 -6498 6498 6 -6499 6498 -1 -6518 6498 -1 -6898 6498 -1 -6499 6499 6 -6500 6499 -1 -6519 6499 -1 -6899 6499 -1 -6500 6500 6 -6520 6500 -1 -6900 6500 -1 -6501 6501 6 -6502 6501 -1 -6521 6501 -1 -6901 6501 -1 -6502 6502 6 -6503 6502 -1 -6522 6502 -1 -6902 6502 -1 -6503 6503 6 -6504 6503 -1 -6523 6503 -1 -6903 6503 -1 -6504 6504 6 -6505 6504 -1 -6524 6504 -1 -6904 6504 -1 -6505 6505 6 -6506 6505 -1 -6525 6505 -1 -6905 6505 -1 -6506 6506 6 -6507 6506 -1 -6526 6506 -1 -6906 6506 -1 -6507 6507 6 -6508 6507 -1 -6527 6507 -1 -6907 6507 -1 -6508 6508 6 -6509 6508 -1 -6528 6508 -1 -6908 6508 -1 -6509 6509 6 -6510 6509 -1 -6529 6509 -1 -6909 6509 -1 -6510 6510 6 -6511 6510 -1 -6530 6510 -1 -6910 6510 -1 -6511 6511 6 -6512 6511 -1 -6531 6511 -1 -6911 6511 -1 -6512 6512 6 -6513 6512 -1 -6532 6512 -1 -6912 6512 -1 -6513 6513 6 -6514 6513 -1 -6533 6513 -1 -6913 6513 -1 -6514 6514 6 -6515 6514 -1 -6534 6514 -1 -6914 6514 -1 -6515 6515 6 -6516 6515 -1 -6535 6515 -1 -6915 6515 -1 -6516 6516 6 -6517 6516 -1 -6536 6516 -1 -6916 6516 -1 -6517 6517 6 -6518 6517 -1 -6537 6517 -1 -6917 6517 -1 -6518 6518 6 -6519 6518 -1 -6538 6518 -1 -6918 6518 -1 -6519 6519 6 -6520 6519 -1 -6539 6519 -1 -6919 6519 -1 -6520 6520 6 -6540 6520 -1 -6920 6520 -1 -6521 6521 6 -6522 6521 -1 -6541 6521 -1 -6921 6521 -1 -6522 6522 6 -6523 6522 -1 -6542 6522 -1 -6922 6522 -1 -6523 6523 6 -6524 6523 -1 -6543 6523 -1 -6923 6523 -1 -6524 6524 6 -6525 6524 -1 -6544 6524 -1 -6924 6524 -1 -6525 6525 6 -6526 6525 -1 -6545 6525 -1 -6925 6525 -1 -6526 6526 6 -6527 6526 -1 -6546 6526 -1 -6926 6526 -1 -6527 6527 6 -6528 6527 -1 -6547 6527 -1 -6927 6527 -1 -6528 6528 6 -6529 6528 -1 -6548 6528 -1 -6928 6528 -1 -6529 6529 6 -6530 6529 -1 -6549 6529 -1 -6929 6529 -1 -6530 6530 6 -6531 6530 -1 -6550 6530 -1 -6930 6530 -1 -6531 6531 6 -6532 6531 -1 -6551 6531 -1 -6931 6531 -1 -6532 6532 6 -6533 6532 -1 -6552 6532 -1 -6932 6532 -1 -6533 6533 6 -6534 6533 -1 -6553 6533 -1 -6933 6533 -1 -6534 6534 6 -6535 6534 -1 -6554 6534 -1 -6934 6534 -1 -6535 6535 6 -6536 6535 -1 -6555 6535 -1 -6935 6535 -1 -6536 6536 6 -6537 6536 -1 -6556 6536 -1 -6936 6536 -1 -6537 6537 6 -6538 6537 -1 -6557 6537 -1 -6937 6537 -1 -6538 6538 6 -6539 6538 -1 -6558 6538 -1 -6938 6538 -1 -6539 6539 6 -6540 6539 -1 -6559 6539 -1 -6939 6539 -1 -6540 6540 6 -6560 6540 -1 -6940 6540 -1 -6541 6541 6 -6542 6541 -1 -6561 6541 -1 -6941 6541 -1 -6542 6542 6 -6543 6542 -1 -6562 6542 -1 -6942 6542 -1 -6543 6543 6 -6544 6543 -1 -6563 6543 -1 -6943 6543 -1 -6544 6544 6 -6545 6544 -1 -6564 6544 -1 -6944 6544 -1 -6545 6545 6 -6546 6545 -1 -6565 6545 -1 -6945 6545 -1 -6546 6546 6 -6547 6546 -1 -6566 6546 -1 -6946 6546 -1 -6547 6547 6 -6548 6547 -1 -6567 6547 -1 -6947 6547 -1 -6548 6548 6 -6549 6548 -1 -6568 6548 -1 -6948 6548 -1 -6549 6549 6 -6550 6549 -1 -6569 6549 -1 -6949 6549 -1 -6550 6550 6 -6551 6550 -1 -6570 6550 -1 -6950 6550 -1 -6551 6551 6 -6552 6551 -1 -6571 6551 -1 -6951 6551 -1 -6552 6552 6 -6553 6552 -1 -6572 6552 -1 -6952 6552 -1 -6553 6553 6 -6554 6553 -1 -6573 6553 -1 -6953 6553 -1 -6554 6554 6 -6555 6554 -1 -6574 6554 -1 -6954 6554 -1 -6555 6555 6 -6556 6555 -1 -6575 6555 -1 -6955 6555 -1 -6556 6556 6 -6557 6556 -1 -6576 6556 -1 -6956 6556 -1 -6557 6557 6 -6558 6557 -1 -6577 6557 -1 -6957 6557 -1 -6558 6558 6 -6559 6558 -1 -6578 6558 -1 -6958 6558 -1 -6559 6559 6 -6560 6559 -1 -6579 6559 -1 -6959 6559 -1 -6560 6560 6 -6580 6560 -1 -6960 6560 -1 -6561 6561 6 -6562 6561 -1 -6581 6561 -1 -6961 6561 -1 -6562 6562 6 -6563 6562 -1 -6582 6562 -1 -6962 6562 -1 -6563 6563 6 -6564 6563 -1 -6583 6563 -1 -6963 6563 -1 -6564 6564 6 -6565 6564 -1 -6584 6564 -1 -6964 6564 -1 -6565 6565 6 -6566 6565 -1 -6585 6565 -1 -6965 6565 -1 -6566 6566 6 -6567 6566 -1 -6586 6566 -1 -6966 6566 -1 -6567 6567 6 -6568 6567 -1 -6587 6567 -1 -6967 6567 -1 -6568 6568 6 -6569 6568 -1 -6588 6568 -1 -6968 6568 -1 -6569 6569 6 -6570 6569 -1 -6589 6569 -1 -6969 6569 -1 -6570 6570 6 -6571 6570 -1 -6590 6570 -1 -6970 6570 -1 -6571 6571 6 -6572 6571 -1 -6591 6571 -1 -6971 6571 -1 -6572 6572 6 -6573 6572 -1 -6592 6572 -1 -6972 6572 -1 -6573 6573 6 -6574 6573 -1 -6593 6573 -1 -6973 6573 -1 -6574 6574 6 -6575 6574 -1 -6594 6574 -1 -6974 6574 -1 -6575 6575 6 -6576 6575 -1 -6595 6575 -1 -6975 6575 -1 -6576 6576 6 -6577 6576 -1 -6596 6576 -1 -6976 6576 -1 -6577 6577 6 -6578 6577 -1 -6597 6577 -1 -6977 6577 -1 -6578 6578 6 -6579 6578 -1 -6598 6578 -1 -6978 6578 -1 -6579 6579 6 -6580 6579 -1 -6599 6579 -1 -6979 6579 -1 -6580 6580 6 -6600 6580 -1 -6980 6580 -1 -6581 6581 6 -6582 6581 -1 -6601 6581 -1 -6981 6581 -1 -6582 6582 6 -6583 6582 -1 -6602 6582 -1 -6982 6582 -1 -6583 6583 6 -6584 6583 -1 -6603 6583 -1 -6983 6583 -1 -6584 6584 6 -6585 6584 -1 -6604 6584 -1 -6984 6584 -1 -6585 6585 6 -6586 6585 -1 -6605 6585 -1 -6985 6585 -1 -6586 6586 6 -6587 6586 -1 -6606 6586 -1 -6986 6586 -1 -6587 6587 6 -6588 6587 -1 -6607 6587 -1 -6987 6587 -1 -6588 6588 6 -6589 6588 -1 -6608 6588 -1 -6988 6588 -1 -6589 6589 6 -6590 6589 -1 -6609 6589 -1 -6989 6589 -1 -6590 6590 6 -6591 6590 -1 -6610 6590 -1 -6990 6590 -1 -6591 6591 6 -6592 6591 -1 -6611 6591 -1 -6991 6591 -1 -6592 6592 6 -6593 6592 -1 -6612 6592 -1 -6992 6592 -1 -6593 6593 6 -6594 6593 -1 -6613 6593 -1 -6993 6593 -1 -6594 6594 6 -6595 6594 -1 -6614 6594 -1 -6994 6594 -1 -6595 6595 6 -6596 6595 -1 -6615 6595 -1 -6995 6595 -1 -6596 6596 6 -6597 6596 -1 -6616 6596 -1 -6996 6596 -1 -6597 6597 6 -6598 6597 -1 -6617 6597 -1 -6997 6597 -1 -6598 6598 6 -6599 6598 -1 -6618 6598 -1 -6998 6598 -1 -6599 6599 6 -6600 6599 -1 -6619 6599 -1 -6999 6599 -1 -6600 6600 6 -6620 6600 -1 -7000 6600 -1 -6601 6601 6 -6602 6601 -1 -6621 6601 -1 -7001 6601 -1 -6602 6602 6 -6603 6602 -1 -6622 6602 -1 -7002 6602 -1 -6603 6603 6 -6604 6603 -1 -6623 6603 -1 -7003 6603 -1 -6604 6604 6 -6605 6604 -1 -6624 6604 -1 -7004 6604 -1 -6605 6605 6 -6606 6605 -1 -6625 6605 -1 -7005 6605 -1 -6606 6606 6 -6607 6606 -1 -6626 6606 -1 -7006 6606 -1 -6607 6607 6 -6608 6607 -1 -6627 6607 -1 -7007 6607 -1 -6608 6608 6 -6609 6608 -1 -6628 6608 -1 -7008 6608 -1 -6609 6609 6 -6610 6609 -1 -6629 6609 -1 -7009 6609 -1 -6610 6610 6 -6611 6610 -1 -6630 6610 -1 -7010 6610 -1 -6611 6611 6 -6612 6611 -1 -6631 6611 -1 -7011 6611 -1 -6612 6612 6 -6613 6612 -1 -6632 6612 -1 -7012 6612 -1 -6613 6613 6 -6614 6613 -1 -6633 6613 -1 -7013 6613 -1 -6614 6614 6 -6615 6614 -1 -6634 6614 -1 -7014 6614 -1 -6615 6615 6 -6616 6615 -1 -6635 6615 -1 -7015 6615 -1 -6616 6616 6 -6617 6616 -1 -6636 6616 -1 -7016 6616 -1 -6617 6617 6 -6618 6617 -1 -6637 6617 -1 -7017 6617 -1 -6618 6618 6 -6619 6618 -1 -6638 6618 -1 -7018 6618 -1 -6619 6619 6 -6620 6619 -1 -6639 6619 -1 -7019 6619 -1 -6620 6620 6 -6640 6620 -1 -7020 6620 -1 -6621 6621 6 -6622 6621 -1 -6641 6621 -1 -7021 6621 -1 -6622 6622 6 -6623 6622 -1 -6642 6622 -1 -7022 6622 -1 -6623 6623 6 -6624 6623 -1 -6643 6623 -1 -7023 6623 -1 -6624 6624 6 -6625 6624 -1 -6644 6624 -1 -7024 6624 -1 -6625 6625 6 -6626 6625 -1 -6645 6625 -1 -7025 6625 -1 -6626 6626 6 -6627 6626 -1 -6646 6626 -1 -7026 6626 -1 -6627 6627 6 -6628 6627 -1 -6647 6627 -1 -7027 6627 -1 -6628 6628 6 -6629 6628 -1 -6648 6628 -1 -7028 6628 -1 -6629 6629 6 -6630 6629 -1 -6649 6629 -1 -7029 6629 -1 -6630 6630 6 -6631 6630 -1 -6650 6630 -1 -7030 6630 -1 -6631 6631 6 -6632 6631 -1 -6651 6631 -1 -7031 6631 -1 -6632 6632 6 -6633 6632 -1 -6652 6632 -1 -7032 6632 -1 -6633 6633 6 -6634 6633 -1 -6653 6633 -1 -7033 6633 -1 -6634 6634 6 -6635 6634 -1 -6654 6634 -1 -7034 6634 -1 -6635 6635 6 -6636 6635 -1 -6655 6635 -1 -7035 6635 -1 -6636 6636 6 -6637 6636 -1 -6656 6636 -1 -7036 6636 -1 -6637 6637 6 -6638 6637 -1 -6657 6637 -1 -7037 6637 -1 -6638 6638 6 -6639 6638 -1 -6658 6638 -1 -7038 6638 -1 -6639 6639 6 -6640 6639 -1 -6659 6639 -1 -7039 6639 -1 -6640 6640 6 -6660 6640 -1 -7040 6640 -1 -6641 6641 6 -6642 6641 -1 -6661 6641 -1 -7041 6641 -1 -6642 6642 6 -6643 6642 -1 -6662 6642 -1 -7042 6642 -1 -6643 6643 6 -6644 6643 -1 -6663 6643 -1 -7043 6643 -1 -6644 6644 6 -6645 6644 -1 -6664 6644 -1 -7044 6644 -1 -6645 6645 6 -6646 6645 -1 -6665 6645 -1 -7045 6645 -1 -6646 6646 6 -6647 6646 -1 -6666 6646 -1 -7046 6646 -1 -6647 6647 6 -6648 6647 -1 -6667 6647 -1 -7047 6647 -1 -6648 6648 6 -6649 6648 -1 -6668 6648 -1 -7048 6648 -1 -6649 6649 6 -6650 6649 -1 -6669 6649 -1 -7049 6649 -1 -6650 6650 6 -6651 6650 -1 -6670 6650 -1 -7050 6650 -1 -6651 6651 6 -6652 6651 -1 -6671 6651 -1 -7051 6651 -1 -6652 6652 6 -6653 6652 -1 -6672 6652 -1 -7052 6652 -1 -6653 6653 6 -6654 6653 -1 -6673 6653 -1 -7053 6653 -1 -6654 6654 6 -6655 6654 -1 -6674 6654 -1 -7054 6654 -1 -6655 6655 6 -6656 6655 -1 -6675 6655 -1 -7055 6655 -1 -6656 6656 6 -6657 6656 -1 -6676 6656 -1 -7056 6656 -1 -6657 6657 6 -6658 6657 -1 -6677 6657 -1 -7057 6657 -1 -6658 6658 6 -6659 6658 -1 -6678 6658 -1 -7058 6658 -1 -6659 6659 6 -6660 6659 -1 -6679 6659 -1 -7059 6659 -1 -6660 6660 6 -6680 6660 -1 -7060 6660 -1 -6661 6661 6 -6662 6661 -1 -6681 6661 -1 -7061 6661 -1 -6662 6662 6 -6663 6662 -1 -6682 6662 -1 -7062 6662 -1 -6663 6663 6 -6664 6663 -1 -6683 6663 -1 -7063 6663 -1 -6664 6664 6 -6665 6664 -1 -6684 6664 -1 -7064 6664 -1 -6665 6665 6 -6666 6665 -1 -6685 6665 -1 -7065 6665 -1 -6666 6666 6 -6667 6666 -1 -6686 6666 -1 -7066 6666 -1 -6667 6667 6 -6668 6667 -1 -6687 6667 -1 -7067 6667 -1 -6668 6668 6 -6669 6668 -1 -6688 6668 -1 -7068 6668 -1 -6669 6669 6 -6670 6669 -1 -6689 6669 -1 -7069 6669 -1 -6670 6670 6 -6671 6670 -1 -6690 6670 -1 -7070 6670 -1 -6671 6671 6 -6672 6671 -1 -6691 6671 -1 -7071 6671 -1 -6672 6672 6 -6673 6672 -1 -6692 6672 -1 -7072 6672 -1 -6673 6673 6 -6674 6673 -1 -6693 6673 -1 -7073 6673 -1 -6674 6674 6 -6675 6674 -1 -6694 6674 -1 -7074 6674 -1 -6675 6675 6 -6676 6675 -1 -6695 6675 -1 -7075 6675 -1 -6676 6676 6 -6677 6676 -1 -6696 6676 -1 -7076 6676 -1 -6677 6677 6 -6678 6677 -1 -6697 6677 -1 -7077 6677 -1 -6678 6678 6 -6679 6678 -1 -6698 6678 -1 -7078 6678 -1 -6679 6679 6 -6680 6679 -1 -6699 6679 -1 -7079 6679 -1 -6680 6680 6 -6700 6680 -1 -7080 6680 -1 -6681 6681 6 -6682 6681 -1 -6701 6681 -1 -7081 6681 -1 -6682 6682 6 -6683 6682 -1 -6702 6682 -1 -7082 6682 -1 -6683 6683 6 -6684 6683 -1 -6703 6683 -1 -7083 6683 -1 -6684 6684 6 -6685 6684 -1 -6704 6684 -1 -7084 6684 -1 -6685 6685 6 -6686 6685 -1 -6705 6685 -1 -7085 6685 -1 -6686 6686 6 -6687 6686 -1 -6706 6686 -1 -7086 6686 -1 -6687 6687 6 -6688 6687 -1 -6707 6687 -1 -7087 6687 -1 -6688 6688 6 -6689 6688 -1 -6708 6688 -1 -7088 6688 -1 -6689 6689 6 -6690 6689 -1 -6709 6689 -1 -7089 6689 -1 -6690 6690 6 -6691 6690 -1 -6710 6690 -1 -7090 6690 -1 -6691 6691 6 -6692 6691 -1 -6711 6691 -1 -7091 6691 -1 -6692 6692 6 -6693 6692 -1 -6712 6692 -1 -7092 6692 -1 -6693 6693 6 -6694 6693 -1 -6713 6693 -1 -7093 6693 -1 -6694 6694 6 -6695 6694 -1 -6714 6694 -1 -7094 6694 -1 -6695 6695 6 -6696 6695 -1 -6715 6695 -1 -7095 6695 -1 -6696 6696 6 -6697 6696 -1 -6716 6696 -1 -7096 6696 -1 -6697 6697 6 -6698 6697 -1 -6717 6697 -1 -7097 6697 -1 -6698 6698 6 -6699 6698 -1 -6718 6698 -1 -7098 6698 -1 -6699 6699 6 -6700 6699 -1 -6719 6699 -1 -7099 6699 -1 -6700 6700 6 -6720 6700 -1 -7100 6700 -1 -6701 6701 6 -6702 6701 -1 -6721 6701 -1 -7101 6701 -1 -6702 6702 6 -6703 6702 -1 -6722 6702 -1 -7102 6702 -1 -6703 6703 6 -6704 6703 -1 -6723 6703 -1 -7103 6703 -1 -6704 6704 6 -6705 6704 -1 -6724 6704 -1 -7104 6704 -1 -6705 6705 6 -6706 6705 -1 -6725 6705 -1 -7105 6705 -1 -6706 6706 6 -6707 6706 -1 -6726 6706 -1 -7106 6706 -1 -6707 6707 6 -6708 6707 -1 -6727 6707 -1 -7107 6707 -1 -6708 6708 6 -6709 6708 -1 -6728 6708 -1 -7108 6708 -1 -6709 6709 6 -6710 6709 -1 -6729 6709 -1 -7109 6709 -1 -6710 6710 6 -6711 6710 -1 -6730 6710 -1 -7110 6710 -1 -6711 6711 6 -6712 6711 -1 -6731 6711 -1 -7111 6711 -1 -6712 6712 6 -6713 6712 -1 -6732 6712 -1 -7112 6712 -1 -6713 6713 6 -6714 6713 -1 -6733 6713 -1 -7113 6713 -1 -6714 6714 6 -6715 6714 -1 -6734 6714 -1 -7114 6714 -1 -6715 6715 6 -6716 6715 -1 -6735 6715 -1 -7115 6715 -1 -6716 6716 6 -6717 6716 -1 -6736 6716 -1 -7116 6716 -1 -6717 6717 6 -6718 6717 -1 -6737 6717 -1 -7117 6717 -1 -6718 6718 6 -6719 6718 -1 -6738 6718 -1 -7118 6718 -1 -6719 6719 6 -6720 6719 -1 -6739 6719 -1 -7119 6719 -1 -6720 6720 6 -6740 6720 -1 -7120 6720 -1 -6721 6721 6 -6722 6721 -1 -6741 6721 -1 -7121 6721 -1 -6722 6722 6 -6723 6722 -1 -6742 6722 -1 -7122 6722 -1 -6723 6723 6 -6724 6723 -1 -6743 6723 -1 -7123 6723 -1 -6724 6724 6 -6725 6724 -1 -6744 6724 -1 -7124 6724 -1 -6725 6725 6 -6726 6725 -1 -6745 6725 -1 -7125 6725 -1 -6726 6726 6 -6727 6726 -1 -6746 6726 -1 -7126 6726 -1 -6727 6727 6 -6728 6727 -1 -6747 6727 -1 -7127 6727 -1 -6728 6728 6 -6729 6728 -1 -6748 6728 -1 -7128 6728 -1 -6729 6729 6 -6730 6729 -1 -6749 6729 -1 -7129 6729 -1 -6730 6730 6 -6731 6730 -1 -6750 6730 -1 -7130 6730 -1 -6731 6731 6 -6732 6731 -1 -6751 6731 -1 -7131 6731 -1 -6732 6732 6 -6733 6732 -1 -6752 6732 -1 -7132 6732 -1 -6733 6733 6 -6734 6733 -1 -6753 6733 -1 -7133 6733 -1 -6734 6734 6 -6735 6734 -1 -6754 6734 -1 -7134 6734 -1 -6735 6735 6 -6736 6735 -1 -6755 6735 -1 -7135 6735 -1 -6736 6736 6 -6737 6736 -1 -6756 6736 -1 -7136 6736 -1 -6737 6737 6 -6738 6737 -1 -6757 6737 -1 -7137 6737 -1 -6738 6738 6 -6739 6738 -1 -6758 6738 -1 -7138 6738 -1 -6739 6739 6 -6740 6739 -1 -6759 6739 -1 -7139 6739 -1 -6740 6740 6 -6760 6740 -1 -7140 6740 -1 -6741 6741 6 -6742 6741 -1 -6761 6741 -1 -7141 6741 -1 -6742 6742 6 -6743 6742 -1 -6762 6742 -1 -7142 6742 -1 -6743 6743 6 -6744 6743 -1 -6763 6743 -1 -7143 6743 -1 -6744 6744 6 -6745 6744 -1 -6764 6744 -1 -7144 6744 -1 -6745 6745 6 -6746 6745 -1 -6765 6745 -1 -7145 6745 -1 -6746 6746 6 -6747 6746 -1 -6766 6746 -1 -7146 6746 -1 -6747 6747 6 -6748 6747 -1 -6767 6747 -1 -7147 6747 -1 -6748 6748 6 -6749 6748 -1 -6768 6748 -1 -7148 6748 -1 -6749 6749 6 -6750 6749 -1 -6769 6749 -1 -7149 6749 -1 -6750 6750 6 -6751 6750 -1 -6770 6750 -1 -7150 6750 -1 -6751 6751 6 -6752 6751 -1 -6771 6751 -1 -7151 6751 -1 -6752 6752 6 -6753 6752 -1 -6772 6752 -1 -7152 6752 -1 -6753 6753 6 -6754 6753 -1 -6773 6753 -1 -7153 6753 -1 -6754 6754 6 -6755 6754 -1 -6774 6754 -1 -7154 6754 -1 -6755 6755 6 -6756 6755 -1 -6775 6755 -1 -7155 6755 -1 -6756 6756 6 -6757 6756 -1 -6776 6756 -1 -7156 6756 -1 -6757 6757 6 -6758 6757 -1 -6777 6757 -1 -7157 6757 -1 -6758 6758 6 -6759 6758 -1 -6778 6758 -1 -7158 6758 -1 -6759 6759 6 -6760 6759 -1 -6779 6759 -1 -7159 6759 -1 -6760 6760 6 -6780 6760 -1 -7160 6760 -1 -6761 6761 6 -6762 6761 -1 -6781 6761 -1 -7161 6761 -1 -6762 6762 6 -6763 6762 -1 -6782 6762 -1 -7162 6762 -1 -6763 6763 6 -6764 6763 -1 -6783 6763 -1 -7163 6763 -1 -6764 6764 6 -6765 6764 -1 -6784 6764 -1 -7164 6764 -1 -6765 6765 6 -6766 6765 -1 -6785 6765 -1 -7165 6765 -1 -6766 6766 6 -6767 6766 -1 -6786 6766 -1 -7166 6766 -1 -6767 6767 6 -6768 6767 -1 -6787 6767 -1 -7167 6767 -1 -6768 6768 6 -6769 6768 -1 -6788 6768 -1 -7168 6768 -1 -6769 6769 6 -6770 6769 -1 -6789 6769 -1 -7169 6769 -1 -6770 6770 6 -6771 6770 -1 -6790 6770 -1 -7170 6770 -1 -6771 6771 6 -6772 6771 -1 -6791 6771 -1 -7171 6771 -1 -6772 6772 6 -6773 6772 -1 -6792 6772 -1 -7172 6772 -1 -6773 6773 6 -6774 6773 -1 -6793 6773 -1 -7173 6773 -1 -6774 6774 6 -6775 6774 -1 -6794 6774 -1 -7174 6774 -1 -6775 6775 6 -6776 6775 -1 -6795 6775 -1 -7175 6775 -1 -6776 6776 6 -6777 6776 -1 -6796 6776 -1 -7176 6776 -1 -6777 6777 6 -6778 6777 -1 -6797 6777 -1 -7177 6777 -1 -6778 6778 6 -6779 6778 -1 -6798 6778 -1 -7178 6778 -1 -6779 6779 6 -6780 6779 -1 -6799 6779 -1 -7179 6779 -1 -6780 6780 6 -6800 6780 -1 -7180 6780 -1 -6781 6781 6 -6782 6781 -1 -7181 6781 -1 -6782 6782 6 -6783 6782 -1 -7182 6782 -1 -6783 6783 6 -6784 6783 -1 -7183 6783 -1 -6784 6784 6 -6785 6784 -1 -7184 6784 -1 -6785 6785 6 -6786 6785 -1 -7185 6785 -1 -6786 6786 6 -6787 6786 -1 -7186 6786 -1 -6787 6787 6 -6788 6787 -1 -7187 6787 -1 -6788 6788 6 -6789 6788 -1 -7188 6788 -1 -6789 6789 6 -6790 6789 -1 -7189 6789 -1 -6790 6790 6 -6791 6790 -1 -7190 6790 -1 -6791 6791 6 -6792 6791 -1 -7191 6791 -1 -6792 6792 6 -6793 6792 -1 -7192 6792 -1 -6793 6793 6 -6794 6793 -1 -7193 6793 -1 -6794 6794 6 -6795 6794 -1 -7194 6794 -1 -6795 6795 6 -6796 6795 -1 -7195 6795 -1 -6796 6796 6 -6797 6796 -1 -7196 6796 -1 -6797 6797 6 -6798 6797 -1 -7197 6797 -1 -6798 6798 6 -6799 6798 -1 -7198 6798 -1 -6799 6799 6 -6800 6799 -1 -7199 6799 -1 -6800 6800 6 -7200 6800 -1 -6801 6801 6 -6802 6801 -1 -6821 6801 -1 -7201 6801 -1 -6802 6802 6 -6803 6802 -1 -6822 6802 -1 -7202 6802 -1 -6803 6803 6 -6804 6803 -1 -6823 6803 -1 -7203 6803 -1 -6804 6804 6 -6805 6804 -1 -6824 6804 -1 -7204 6804 -1 -6805 6805 6 -6806 6805 -1 -6825 6805 -1 -7205 6805 -1 -6806 6806 6 -6807 6806 -1 -6826 6806 -1 -7206 6806 -1 -6807 6807 6 -6808 6807 -1 -6827 6807 -1 -7207 6807 -1 -6808 6808 6 -6809 6808 -1 -6828 6808 -1 -7208 6808 -1 -6809 6809 6 -6810 6809 -1 -6829 6809 -1 -7209 6809 -1 -6810 6810 6 -6811 6810 -1 -6830 6810 -1 -7210 6810 -1 -6811 6811 6 -6812 6811 -1 -6831 6811 -1 -7211 6811 -1 -6812 6812 6 -6813 6812 -1 -6832 6812 -1 -7212 6812 -1 -6813 6813 6 -6814 6813 -1 -6833 6813 -1 -7213 6813 -1 -6814 6814 6 -6815 6814 -1 -6834 6814 -1 -7214 6814 -1 -6815 6815 6 -6816 6815 -1 -6835 6815 -1 -7215 6815 -1 -6816 6816 6 -6817 6816 -1 -6836 6816 -1 -7216 6816 -1 -6817 6817 6 -6818 6817 -1 -6837 6817 -1 -7217 6817 -1 -6818 6818 6 -6819 6818 -1 -6838 6818 -1 -7218 6818 -1 -6819 6819 6 -6820 6819 -1 -6839 6819 -1 -7219 6819 -1 -6820 6820 6 -6840 6820 -1 -7220 6820 -1 -6821 6821 6 -6822 6821 -1 -6841 6821 -1 -7221 6821 -1 -6822 6822 6 -6823 6822 -1 -6842 6822 -1 -7222 6822 -1 -6823 6823 6 -6824 6823 -1 -6843 6823 -1 -7223 6823 -1 -6824 6824 6 -6825 6824 -1 -6844 6824 -1 -7224 6824 -1 -6825 6825 6 -6826 6825 -1 -6845 6825 -1 -7225 6825 -1 -6826 6826 6 -6827 6826 -1 -6846 6826 -1 -7226 6826 -1 -6827 6827 6 -6828 6827 -1 -6847 6827 -1 -7227 6827 -1 -6828 6828 6 -6829 6828 -1 -6848 6828 -1 -7228 6828 -1 -6829 6829 6 -6830 6829 -1 -6849 6829 -1 -7229 6829 -1 -6830 6830 6 -6831 6830 -1 -6850 6830 -1 -7230 6830 -1 -6831 6831 6 -6832 6831 -1 -6851 6831 -1 -7231 6831 -1 -6832 6832 6 -6833 6832 -1 -6852 6832 -1 -7232 6832 -1 -6833 6833 6 -6834 6833 -1 -6853 6833 -1 -7233 6833 -1 -6834 6834 6 -6835 6834 -1 -6854 6834 -1 -7234 6834 -1 -6835 6835 6 -6836 6835 -1 -6855 6835 -1 -7235 6835 -1 -6836 6836 6 -6837 6836 -1 -6856 6836 -1 -7236 6836 -1 -6837 6837 6 -6838 6837 -1 -6857 6837 -1 -7237 6837 -1 -6838 6838 6 -6839 6838 -1 -6858 6838 -1 -7238 6838 -1 -6839 6839 6 -6840 6839 -1 -6859 6839 -1 -7239 6839 -1 -6840 6840 6 -6860 6840 -1 -7240 6840 -1 -6841 6841 6 -6842 6841 -1 -6861 6841 -1 -7241 6841 -1 -6842 6842 6 -6843 6842 -1 -6862 6842 -1 -7242 6842 -1 -6843 6843 6 -6844 6843 -1 -6863 6843 -1 -7243 6843 -1 -6844 6844 6 -6845 6844 -1 -6864 6844 -1 -7244 6844 -1 -6845 6845 6 -6846 6845 -1 -6865 6845 -1 -7245 6845 -1 -6846 6846 6 -6847 6846 -1 -6866 6846 -1 -7246 6846 -1 -6847 6847 6 -6848 6847 -1 -6867 6847 -1 -7247 6847 -1 -6848 6848 6 -6849 6848 -1 -6868 6848 -1 -7248 6848 -1 -6849 6849 6 -6850 6849 -1 -6869 6849 -1 -7249 6849 -1 -6850 6850 6 -6851 6850 -1 -6870 6850 -1 -7250 6850 -1 -6851 6851 6 -6852 6851 -1 -6871 6851 -1 -7251 6851 -1 -6852 6852 6 -6853 6852 -1 -6872 6852 -1 -7252 6852 -1 -6853 6853 6 -6854 6853 -1 -6873 6853 -1 -7253 6853 -1 -6854 6854 6 -6855 6854 -1 -6874 6854 -1 -7254 6854 -1 -6855 6855 6 -6856 6855 -1 -6875 6855 -1 -7255 6855 -1 -6856 6856 6 -6857 6856 -1 -6876 6856 -1 -7256 6856 -1 -6857 6857 6 -6858 6857 -1 -6877 6857 -1 -7257 6857 -1 -6858 6858 6 -6859 6858 -1 -6878 6858 -1 -7258 6858 -1 -6859 6859 6 -6860 6859 -1 -6879 6859 -1 -7259 6859 -1 -6860 6860 6 -6880 6860 -1 -7260 6860 -1 -6861 6861 6 -6862 6861 -1 -6881 6861 -1 -7261 6861 -1 -6862 6862 6 -6863 6862 -1 -6882 6862 -1 -7262 6862 -1 -6863 6863 6 -6864 6863 -1 -6883 6863 -1 -7263 6863 -1 -6864 6864 6 -6865 6864 -1 -6884 6864 -1 -7264 6864 -1 -6865 6865 6 -6866 6865 -1 -6885 6865 -1 -7265 6865 -1 -6866 6866 6 -6867 6866 -1 -6886 6866 -1 -7266 6866 -1 -6867 6867 6 -6868 6867 -1 -6887 6867 -1 -7267 6867 -1 -6868 6868 6 -6869 6868 -1 -6888 6868 -1 -7268 6868 -1 -6869 6869 6 -6870 6869 -1 -6889 6869 -1 -7269 6869 -1 -6870 6870 6 -6871 6870 -1 -6890 6870 -1 -7270 6870 -1 -6871 6871 6 -6872 6871 -1 -6891 6871 -1 -7271 6871 -1 -6872 6872 6 -6873 6872 -1 -6892 6872 -1 -7272 6872 -1 -6873 6873 6 -6874 6873 -1 -6893 6873 -1 -7273 6873 -1 -6874 6874 6 -6875 6874 -1 -6894 6874 -1 -7274 6874 -1 -6875 6875 6 -6876 6875 -1 -6895 6875 -1 -7275 6875 -1 -6876 6876 6 -6877 6876 -1 -6896 6876 -1 -7276 6876 -1 -6877 6877 6 -6878 6877 -1 -6897 6877 -1 -7277 6877 -1 -6878 6878 6 -6879 6878 -1 -6898 6878 -1 -7278 6878 -1 -6879 6879 6 -6880 6879 -1 -6899 6879 -1 -7279 6879 -1 -6880 6880 6 -6900 6880 -1 -7280 6880 -1 -6881 6881 6 -6882 6881 -1 -6901 6881 -1 -7281 6881 -1 -6882 6882 6 -6883 6882 -1 -6902 6882 -1 -7282 6882 -1 -6883 6883 6 -6884 6883 -1 -6903 6883 -1 -7283 6883 -1 -6884 6884 6 -6885 6884 -1 -6904 6884 -1 -7284 6884 -1 -6885 6885 6 -6886 6885 -1 -6905 6885 -1 -7285 6885 -1 -6886 6886 6 -6887 6886 -1 -6906 6886 -1 -7286 6886 -1 -6887 6887 6 -6888 6887 -1 -6907 6887 -1 -7287 6887 -1 -6888 6888 6 -6889 6888 -1 -6908 6888 -1 -7288 6888 -1 -6889 6889 6 -6890 6889 -1 -6909 6889 -1 -7289 6889 -1 -6890 6890 6 -6891 6890 -1 -6910 6890 -1 -7290 6890 -1 -6891 6891 6 -6892 6891 -1 -6911 6891 -1 -7291 6891 -1 -6892 6892 6 -6893 6892 -1 -6912 6892 -1 -7292 6892 -1 -6893 6893 6 -6894 6893 -1 -6913 6893 -1 -7293 6893 -1 -6894 6894 6 -6895 6894 -1 -6914 6894 -1 -7294 6894 -1 -6895 6895 6 -6896 6895 -1 -6915 6895 -1 -7295 6895 -1 -6896 6896 6 -6897 6896 -1 -6916 6896 -1 -7296 6896 -1 -6897 6897 6 -6898 6897 -1 -6917 6897 -1 -7297 6897 -1 -6898 6898 6 -6899 6898 -1 -6918 6898 -1 -7298 6898 -1 -6899 6899 6 -6900 6899 -1 -6919 6899 -1 -7299 6899 -1 -6900 6900 6 -6920 6900 -1 -7300 6900 -1 -6901 6901 6 -6902 6901 -1 -6921 6901 -1 -7301 6901 -1 -6902 6902 6 -6903 6902 -1 -6922 6902 -1 -7302 6902 -1 -6903 6903 6 -6904 6903 -1 -6923 6903 -1 -7303 6903 -1 -6904 6904 6 -6905 6904 -1 -6924 6904 -1 -7304 6904 -1 -6905 6905 6 -6906 6905 -1 -6925 6905 -1 -7305 6905 -1 -6906 6906 6 -6907 6906 -1 -6926 6906 -1 -7306 6906 -1 -6907 6907 6 -6908 6907 -1 -6927 6907 -1 -7307 6907 -1 -6908 6908 6 -6909 6908 -1 -6928 6908 -1 -7308 6908 -1 -6909 6909 6 -6910 6909 -1 -6929 6909 -1 -7309 6909 -1 -6910 6910 6 -6911 6910 -1 -6930 6910 -1 -7310 6910 -1 -6911 6911 6 -6912 6911 -1 -6931 6911 -1 -7311 6911 -1 -6912 6912 6 -6913 6912 -1 -6932 6912 -1 -7312 6912 -1 -6913 6913 6 -6914 6913 -1 -6933 6913 -1 -7313 6913 -1 -6914 6914 6 -6915 6914 -1 -6934 6914 -1 -7314 6914 -1 -6915 6915 6 -6916 6915 -1 -6935 6915 -1 -7315 6915 -1 -6916 6916 6 -6917 6916 -1 -6936 6916 -1 -7316 6916 -1 -6917 6917 6 -6918 6917 -1 -6937 6917 -1 -7317 6917 -1 -6918 6918 6 -6919 6918 -1 -6938 6918 -1 -7318 6918 -1 -6919 6919 6 -6920 6919 -1 -6939 6919 -1 -7319 6919 -1 -6920 6920 6 -6940 6920 -1 -7320 6920 -1 -6921 6921 6 -6922 6921 -1 -6941 6921 -1 -7321 6921 -1 -6922 6922 6 -6923 6922 -1 -6942 6922 -1 -7322 6922 -1 -6923 6923 6 -6924 6923 -1 -6943 6923 -1 -7323 6923 -1 -6924 6924 6 -6925 6924 -1 -6944 6924 -1 -7324 6924 -1 -6925 6925 6 -6926 6925 -1 -6945 6925 -1 -7325 6925 -1 -6926 6926 6 -6927 6926 -1 -6946 6926 -1 -7326 6926 -1 -6927 6927 6 -6928 6927 -1 -6947 6927 -1 -7327 6927 -1 -6928 6928 6 -6929 6928 -1 -6948 6928 -1 -7328 6928 -1 -6929 6929 6 -6930 6929 -1 -6949 6929 -1 -7329 6929 -1 -6930 6930 6 -6931 6930 -1 -6950 6930 -1 -7330 6930 -1 -6931 6931 6 -6932 6931 -1 -6951 6931 -1 -7331 6931 -1 -6932 6932 6 -6933 6932 -1 -6952 6932 -1 -7332 6932 -1 -6933 6933 6 -6934 6933 -1 -6953 6933 -1 -7333 6933 -1 -6934 6934 6 -6935 6934 -1 -6954 6934 -1 -7334 6934 -1 -6935 6935 6 -6936 6935 -1 -6955 6935 -1 -7335 6935 -1 -6936 6936 6 -6937 6936 -1 -6956 6936 -1 -7336 6936 -1 -6937 6937 6 -6938 6937 -1 -6957 6937 -1 -7337 6937 -1 -6938 6938 6 -6939 6938 -1 -6958 6938 -1 -7338 6938 -1 -6939 6939 6 -6940 6939 -1 -6959 6939 -1 -7339 6939 -1 -6940 6940 6 -6960 6940 -1 -7340 6940 -1 -6941 6941 6 -6942 6941 -1 -6961 6941 -1 -7341 6941 -1 -6942 6942 6 -6943 6942 -1 -6962 6942 -1 -7342 6942 -1 -6943 6943 6 -6944 6943 -1 -6963 6943 -1 -7343 6943 -1 -6944 6944 6 -6945 6944 -1 -6964 6944 -1 -7344 6944 -1 -6945 6945 6 -6946 6945 -1 -6965 6945 -1 -7345 6945 -1 -6946 6946 6 -6947 6946 -1 -6966 6946 -1 -7346 6946 -1 -6947 6947 6 -6948 6947 -1 -6967 6947 -1 -7347 6947 -1 -6948 6948 6 -6949 6948 -1 -6968 6948 -1 -7348 6948 -1 -6949 6949 6 -6950 6949 -1 -6969 6949 -1 -7349 6949 -1 -6950 6950 6 -6951 6950 -1 -6970 6950 -1 -7350 6950 -1 -6951 6951 6 -6952 6951 -1 -6971 6951 -1 -7351 6951 -1 -6952 6952 6 -6953 6952 -1 -6972 6952 -1 -7352 6952 -1 -6953 6953 6 -6954 6953 -1 -6973 6953 -1 -7353 6953 -1 -6954 6954 6 -6955 6954 -1 -6974 6954 -1 -7354 6954 -1 -6955 6955 6 -6956 6955 -1 -6975 6955 -1 -7355 6955 -1 -6956 6956 6 -6957 6956 -1 -6976 6956 -1 -7356 6956 -1 -6957 6957 6 -6958 6957 -1 -6977 6957 -1 -7357 6957 -1 -6958 6958 6 -6959 6958 -1 -6978 6958 -1 -7358 6958 -1 -6959 6959 6 -6960 6959 -1 -6979 6959 -1 -7359 6959 -1 -6960 6960 6 -6980 6960 -1 -7360 6960 -1 -6961 6961 6 -6962 6961 -1 -6981 6961 -1 -7361 6961 -1 -6962 6962 6 -6963 6962 -1 -6982 6962 -1 -7362 6962 -1 -6963 6963 6 -6964 6963 -1 -6983 6963 -1 -7363 6963 -1 -6964 6964 6 -6965 6964 -1 -6984 6964 -1 -7364 6964 -1 -6965 6965 6 -6966 6965 -1 -6985 6965 -1 -7365 6965 -1 -6966 6966 6 -6967 6966 -1 -6986 6966 -1 -7366 6966 -1 -6967 6967 6 -6968 6967 -1 -6987 6967 -1 -7367 6967 -1 -6968 6968 6 -6969 6968 -1 -6988 6968 -1 -7368 6968 -1 -6969 6969 6 -6970 6969 -1 -6989 6969 -1 -7369 6969 -1 -6970 6970 6 -6971 6970 -1 -6990 6970 -1 -7370 6970 -1 -6971 6971 6 -6972 6971 -1 -6991 6971 -1 -7371 6971 -1 -6972 6972 6 -6973 6972 -1 -6992 6972 -1 -7372 6972 -1 -6973 6973 6 -6974 6973 -1 -6993 6973 -1 -7373 6973 -1 -6974 6974 6 -6975 6974 -1 -6994 6974 -1 -7374 6974 -1 -6975 6975 6 -6976 6975 -1 -6995 6975 -1 -7375 6975 -1 -6976 6976 6 -6977 6976 -1 -6996 6976 -1 -7376 6976 -1 -6977 6977 6 -6978 6977 -1 -6997 6977 -1 -7377 6977 -1 -6978 6978 6 -6979 6978 -1 -6998 6978 -1 -7378 6978 -1 -6979 6979 6 -6980 6979 -1 -6999 6979 -1 -7379 6979 -1 -6980 6980 6 -7000 6980 -1 -7380 6980 -1 -6981 6981 6 -6982 6981 -1 -7001 6981 -1 -7381 6981 -1 -6982 6982 6 -6983 6982 -1 -7002 6982 -1 -7382 6982 -1 -6983 6983 6 -6984 6983 -1 -7003 6983 -1 -7383 6983 -1 -6984 6984 6 -6985 6984 -1 -7004 6984 -1 -7384 6984 -1 -6985 6985 6 -6986 6985 -1 -7005 6985 -1 -7385 6985 -1 -6986 6986 6 -6987 6986 -1 -7006 6986 -1 -7386 6986 -1 -6987 6987 6 -6988 6987 -1 -7007 6987 -1 -7387 6987 -1 -6988 6988 6 -6989 6988 -1 -7008 6988 -1 -7388 6988 -1 -6989 6989 6 -6990 6989 -1 -7009 6989 -1 -7389 6989 -1 -6990 6990 6 -6991 6990 -1 -7010 6990 -1 -7390 6990 -1 -6991 6991 6 -6992 6991 -1 -7011 6991 -1 -7391 6991 -1 -6992 6992 6 -6993 6992 -1 -7012 6992 -1 -7392 6992 -1 -6993 6993 6 -6994 6993 -1 -7013 6993 -1 -7393 6993 -1 -6994 6994 6 -6995 6994 -1 -7014 6994 -1 -7394 6994 -1 -6995 6995 6 -6996 6995 -1 -7015 6995 -1 -7395 6995 -1 -6996 6996 6 -6997 6996 -1 -7016 6996 -1 -7396 6996 -1 -6997 6997 6 -6998 6997 -1 -7017 6997 -1 -7397 6997 -1 -6998 6998 6 -6999 6998 -1 -7018 6998 -1 -7398 6998 -1 -6999 6999 6 -7000 6999 -1 -7019 6999 -1 -7399 6999 -1 -7000 7000 6 -7020 7000 -1 -7400 7000 -1 -7001 7001 6 -7002 7001 -1 -7021 7001 -1 -7401 7001 -1 -7002 7002 6 -7003 7002 -1 -7022 7002 -1 -7402 7002 -1 -7003 7003 6 -7004 7003 -1 -7023 7003 -1 -7403 7003 -1 -7004 7004 6 -7005 7004 -1 -7024 7004 -1 -7404 7004 -1 -7005 7005 6 -7006 7005 -1 -7025 7005 -1 -7405 7005 -1 -7006 7006 6 -7007 7006 -1 -7026 7006 -1 -7406 7006 -1 -7007 7007 6 -7008 7007 -1 -7027 7007 -1 -7407 7007 -1 -7008 7008 6 -7009 7008 -1 -7028 7008 -1 -7408 7008 -1 -7009 7009 6 -7010 7009 -1 -7029 7009 -1 -7409 7009 -1 -7010 7010 6 -7011 7010 -1 -7030 7010 -1 -7410 7010 -1 -7011 7011 6 -7012 7011 -1 -7031 7011 -1 -7411 7011 -1 -7012 7012 6 -7013 7012 -1 -7032 7012 -1 -7412 7012 -1 -7013 7013 6 -7014 7013 -1 -7033 7013 -1 -7413 7013 -1 -7014 7014 6 -7015 7014 -1 -7034 7014 -1 -7414 7014 -1 -7015 7015 6 -7016 7015 -1 -7035 7015 -1 -7415 7015 -1 -7016 7016 6 -7017 7016 -1 -7036 7016 -1 -7416 7016 -1 -7017 7017 6 -7018 7017 -1 -7037 7017 -1 -7417 7017 -1 -7018 7018 6 -7019 7018 -1 -7038 7018 -1 -7418 7018 -1 -7019 7019 6 -7020 7019 -1 -7039 7019 -1 -7419 7019 -1 -7020 7020 6 -7040 7020 -1 -7420 7020 -1 -7021 7021 6 -7022 7021 -1 -7041 7021 -1 -7421 7021 -1 -7022 7022 6 -7023 7022 -1 -7042 7022 -1 -7422 7022 -1 -7023 7023 6 -7024 7023 -1 -7043 7023 -1 -7423 7023 -1 -7024 7024 6 -7025 7024 -1 -7044 7024 -1 -7424 7024 -1 -7025 7025 6 -7026 7025 -1 -7045 7025 -1 -7425 7025 -1 -7026 7026 6 -7027 7026 -1 -7046 7026 -1 -7426 7026 -1 -7027 7027 6 -7028 7027 -1 -7047 7027 -1 -7427 7027 -1 -7028 7028 6 -7029 7028 -1 -7048 7028 -1 -7428 7028 -1 -7029 7029 6 -7030 7029 -1 -7049 7029 -1 -7429 7029 -1 -7030 7030 6 -7031 7030 -1 -7050 7030 -1 -7430 7030 -1 -7031 7031 6 -7032 7031 -1 -7051 7031 -1 -7431 7031 -1 -7032 7032 6 -7033 7032 -1 -7052 7032 -1 -7432 7032 -1 -7033 7033 6 -7034 7033 -1 -7053 7033 -1 -7433 7033 -1 -7034 7034 6 -7035 7034 -1 -7054 7034 -1 -7434 7034 -1 -7035 7035 6 -7036 7035 -1 -7055 7035 -1 -7435 7035 -1 -7036 7036 6 -7037 7036 -1 -7056 7036 -1 -7436 7036 -1 -7037 7037 6 -7038 7037 -1 -7057 7037 -1 -7437 7037 -1 -7038 7038 6 -7039 7038 -1 -7058 7038 -1 -7438 7038 -1 -7039 7039 6 -7040 7039 -1 -7059 7039 -1 -7439 7039 -1 -7040 7040 6 -7060 7040 -1 -7440 7040 -1 -7041 7041 6 -7042 7041 -1 -7061 7041 -1 -7441 7041 -1 -7042 7042 6 -7043 7042 -1 -7062 7042 -1 -7442 7042 -1 -7043 7043 6 -7044 7043 -1 -7063 7043 -1 -7443 7043 -1 -7044 7044 6 -7045 7044 -1 -7064 7044 -1 -7444 7044 -1 -7045 7045 6 -7046 7045 -1 -7065 7045 -1 -7445 7045 -1 -7046 7046 6 -7047 7046 -1 -7066 7046 -1 -7446 7046 -1 -7047 7047 6 -7048 7047 -1 -7067 7047 -1 -7447 7047 -1 -7048 7048 6 -7049 7048 -1 -7068 7048 -1 -7448 7048 -1 -7049 7049 6 -7050 7049 -1 -7069 7049 -1 -7449 7049 -1 -7050 7050 6 -7051 7050 -1 -7070 7050 -1 -7450 7050 -1 -7051 7051 6 -7052 7051 -1 -7071 7051 -1 -7451 7051 -1 -7052 7052 6 -7053 7052 -1 -7072 7052 -1 -7452 7052 -1 -7053 7053 6 -7054 7053 -1 -7073 7053 -1 -7453 7053 -1 -7054 7054 6 -7055 7054 -1 -7074 7054 -1 -7454 7054 -1 -7055 7055 6 -7056 7055 -1 -7075 7055 -1 -7455 7055 -1 -7056 7056 6 -7057 7056 -1 -7076 7056 -1 -7456 7056 -1 -7057 7057 6 -7058 7057 -1 -7077 7057 -1 -7457 7057 -1 -7058 7058 6 -7059 7058 -1 -7078 7058 -1 -7458 7058 -1 -7059 7059 6 -7060 7059 -1 -7079 7059 -1 -7459 7059 -1 -7060 7060 6 -7080 7060 -1 -7460 7060 -1 -7061 7061 6 -7062 7061 -1 -7081 7061 -1 -7461 7061 -1 -7062 7062 6 -7063 7062 -1 -7082 7062 -1 -7462 7062 -1 -7063 7063 6 -7064 7063 -1 -7083 7063 -1 -7463 7063 -1 -7064 7064 6 -7065 7064 -1 -7084 7064 -1 -7464 7064 -1 -7065 7065 6 -7066 7065 -1 -7085 7065 -1 -7465 7065 -1 -7066 7066 6 -7067 7066 -1 -7086 7066 -1 -7466 7066 -1 -7067 7067 6 -7068 7067 -1 -7087 7067 -1 -7467 7067 -1 -7068 7068 6 -7069 7068 -1 -7088 7068 -1 -7468 7068 -1 -7069 7069 6 -7070 7069 -1 -7089 7069 -1 -7469 7069 -1 -7070 7070 6 -7071 7070 -1 -7090 7070 -1 -7470 7070 -1 -7071 7071 6 -7072 7071 -1 -7091 7071 -1 -7471 7071 -1 -7072 7072 6 -7073 7072 -1 -7092 7072 -1 -7472 7072 -1 -7073 7073 6 -7074 7073 -1 -7093 7073 -1 -7473 7073 -1 -7074 7074 6 -7075 7074 -1 -7094 7074 -1 -7474 7074 -1 -7075 7075 6 -7076 7075 -1 -7095 7075 -1 -7475 7075 -1 -7076 7076 6 -7077 7076 -1 -7096 7076 -1 -7476 7076 -1 -7077 7077 6 -7078 7077 -1 -7097 7077 -1 -7477 7077 -1 -7078 7078 6 -7079 7078 -1 -7098 7078 -1 -7478 7078 -1 -7079 7079 6 -7080 7079 -1 -7099 7079 -1 -7479 7079 -1 -7080 7080 6 -7100 7080 -1 -7480 7080 -1 -7081 7081 6 -7082 7081 -1 -7101 7081 -1 -7481 7081 -1 -7082 7082 6 -7083 7082 -1 -7102 7082 -1 -7482 7082 -1 -7083 7083 6 -7084 7083 -1 -7103 7083 -1 -7483 7083 -1 -7084 7084 6 -7085 7084 -1 -7104 7084 -1 -7484 7084 -1 -7085 7085 6 -7086 7085 -1 -7105 7085 -1 -7485 7085 -1 -7086 7086 6 -7087 7086 -1 -7106 7086 -1 -7486 7086 -1 -7087 7087 6 -7088 7087 -1 -7107 7087 -1 -7487 7087 -1 -7088 7088 6 -7089 7088 -1 -7108 7088 -1 -7488 7088 -1 -7089 7089 6 -7090 7089 -1 -7109 7089 -1 -7489 7089 -1 -7090 7090 6 -7091 7090 -1 -7110 7090 -1 -7490 7090 -1 -7091 7091 6 -7092 7091 -1 -7111 7091 -1 -7491 7091 -1 -7092 7092 6 -7093 7092 -1 -7112 7092 -1 -7492 7092 -1 -7093 7093 6 -7094 7093 -1 -7113 7093 -1 -7493 7093 -1 -7094 7094 6 -7095 7094 -1 -7114 7094 -1 -7494 7094 -1 -7095 7095 6 -7096 7095 -1 -7115 7095 -1 -7495 7095 -1 -7096 7096 6 -7097 7096 -1 -7116 7096 -1 -7496 7096 -1 -7097 7097 6 -7098 7097 -1 -7117 7097 -1 -7497 7097 -1 -7098 7098 6 -7099 7098 -1 -7118 7098 -1 -7498 7098 -1 -7099 7099 6 -7100 7099 -1 -7119 7099 -1 -7499 7099 -1 -7100 7100 6 -7120 7100 -1 -7500 7100 -1 -7101 7101 6 -7102 7101 -1 -7121 7101 -1 -7501 7101 -1 -7102 7102 6 -7103 7102 -1 -7122 7102 -1 -7502 7102 -1 -7103 7103 6 -7104 7103 -1 -7123 7103 -1 -7503 7103 -1 -7104 7104 6 -7105 7104 -1 -7124 7104 -1 -7504 7104 -1 -7105 7105 6 -7106 7105 -1 -7125 7105 -1 -7505 7105 -1 -7106 7106 6 -7107 7106 -1 -7126 7106 -1 -7506 7106 -1 -7107 7107 6 -7108 7107 -1 -7127 7107 -1 -7507 7107 -1 -7108 7108 6 -7109 7108 -1 -7128 7108 -1 -7508 7108 -1 -7109 7109 6 -7110 7109 -1 -7129 7109 -1 -7509 7109 -1 -7110 7110 6 -7111 7110 -1 -7130 7110 -1 -7510 7110 -1 -7111 7111 6 -7112 7111 -1 -7131 7111 -1 -7511 7111 -1 -7112 7112 6 -7113 7112 -1 -7132 7112 -1 -7512 7112 -1 -7113 7113 6 -7114 7113 -1 -7133 7113 -1 -7513 7113 -1 -7114 7114 6 -7115 7114 -1 -7134 7114 -1 -7514 7114 -1 -7115 7115 6 -7116 7115 -1 -7135 7115 -1 -7515 7115 -1 -7116 7116 6 -7117 7116 -1 -7136 7116 -1 -7516 7116 -1 -7117 7117 6 -7118 7117 -1 -7137 7117 -1 -7517 7117 -1 -7118 7118 6 -7119 7118 -1 -7138 7118 -1 -7518 7118 -1 -7119 7119 6 -7120 7119 -1 -7139 7119 -1 -7519 7119 -1 -7120 7120 6 -7140 7120 -1 -7520 7120 -1 -7121 7121 6 -7122 7121 -1 -7141 7121 -1 -7521 7121 -1 -7122 7122 6 -7123 7122 -1 -7142 7122 -1 -7522 7122 -1 -7123 7123 6 -7124 7123 -1 -7143 7123 -1 -7523 7123 -1 -7124 7124 6 -7125 7124 -1 -7144 7124 -1 -7524 7124 -1 -7125 7125 6 -7126 7125 -1 -7145 7125 -1 -7525 7125 -1 -7126 7126 6 -7127 7126 -1 -7146 7126 -1 -7526 7126 -1 -7127 7127 6 -7128 7127 -1 -7147 7127 -1 -7527 7127 -1 -7128 7128 6 -7129 7128 -1 -7148 7128 -1 -7528 7128 -1 -7129 7129 6 -7130 7129 -1 -7149 7129 -1 -7529 7129 -1 -7130 7130 6 -7131 7130 -1 -7150 7130 -1 -7530 7130 -1 -7131 7131 6 -7132 7131 -1 -7151 7131 -1 -7531 7131 -1 -7132 7132 6 -7133 7132 -1 -7152 7132 -1 -7532 7132 -1 -7133 7133 6 -7134 7133 -1 -7153 7133 -1 -7533 7133 -1 -7134 7134 6 -7135 7134 -1 -7154 7134 -1 -7534 7134 -1 -7135 7135 6 -7136 7135 -1 -7155 7135 -1 -7535 7135 -1 -7136 7136 6 -7137 7136 -1 -7156 7136 -1 -7536 7136 -1 -7137 7137 6 -7138 7137 -1 -7157 7137 -1 -7537 7137 -1 -7138 7138 6 -7139 7138 -1 -7158 7138 -1 -7538 7138 -1 -7139 7139 6 -7140 7139 -1 -7159 7139 -1 -7539 7139 -1 -7140 7140 6 -7160 7140 -1 -7540 7140 -1 -7141 7141 6 -7142 7141 -1 -7161 7141 -1 -7541 7141 -1 -7142 7142 6 -7143 7142 -1 -7162 7142 -1 -7542 7142 -1 -7143 7143 6 -7144 7143 -1 -7163 7143 -1 -7543 7143 -1 -7144 7144 6 -7145 7144 -1 -7164 7144 -1 -7544 7144 -1 -7145 7145 6 -7146 7145 -1 -7165 7145 -1 -7545 7145 -1 -7146 7146 6 -7147 7146 -1 -7166 7146 -1 -7546 7146 -1 -7147 7147 6 -7148 7147 -1 -7167 7147 -1 -7547 7147 -1 -7148 7148 6 -7149 7148 -1 -7168 7148 -1 -7548 7148 -1 -7149 7149 6 -7150 7149 -1 -7169 7149 -1 -7549 7149 -1 -7150 7150 6 -7151 7150 -1 -7170 7150 -1 -7550 7150 -1 -7151 7151 6 -7152 7151 -1 -7171 7151 -1 -7551 7151 -1 -7152 7152 6 -7153 7152 -1 -7172 7152 -1 -7552 7152 -1 -7153 7153 6 -7154 7153 -1 -7173 7153 -1 -7553 7153 -1 -7154 7154 6 -7155 7154 -1 -7174 7154 -1 -7554 7154 -1 -7155 7155 6 -7156 7155 -1 -7175 7155 -1 -7555 7155 -1 -7156 7156 6 -7157 7156 -1 -7176 7156 -1 -7556 7156 -1 -7157 7157 6 -7158 7157 -1 -7177 7157 -1 -7557 7157 -1 -7158 7158 6 -7159 7158 -1 -7178 7158 -1 -7558 7158 -1 -7159 7159 6 -7160 7159 -1 -7179 7159 -1 -7559 7159 -1 -7160 7160 6 -7180 7160 -1 -7560 7160 -1 -7161 7161 6 -7162 7161 -1 -7181 7161 -1 -7561 7161 -1 -7162 7162 6 -7163 7162 -1 -7182 7162 -1 -7562 7162 -1 -7163 7163 6 -7164 7163 -1 -7183 7163 -1 -7563 7163 -1 -7164 7164 6 -7165 7164 -1 -7184 7164 -1 -7564 7164 -1 -7165 7165 6 -7166 7165 -1 -7185 7165 -1 -7565 7165 -1 -7166 7166 6 -7167 7166 -1 -7186 7166 -1 -7566 7166 -1 -7167 7167 6 -7168 7167 -1 -7187 7167 -1 -7567 7167 -1 -7168 7168 6 -7169 7168 -1 -7188 7168 -1 -7568 7168 -1 -7169 7169 6 -7170 7169 -1 -7189 7169 -1 -7569 7169 -1 -7170 7170 6 -7171 7170 -1 -7190 7170 -1 -7570 7170 -1 -7171 7171 6 -7172 7171 -1 -7191 7171 -1 -7571 7171 -1 -7172 7172 6 -7173 7172 -1 -7192 7172 -1 -7572 7172 -1 -7173 7173 6 -7174 7173 -1 -7193 7173 -1 -7573 7173 -1 -7174 7174 6 -7175 7174 -1 -7194 7174 -1 -7574 7174 -1 -7175 7175 6 -7176 7175 -1 -7195 7175 -1 -7575 7175 -1 -7176 7176 6 -7177 7176 -1 -7196 7176 -1 -7576 7176 -1 -7177 7177 6 -7178 7177 -1 -7197 7177 -1 -7577 7177 -1 -7178 7178 6 -7179 7178 -1 -7198 7178 -1 -7578 7178 -1 -7179 7179 6 -7180 7179 -1 -7199 7179 -1 -7579 7179 -1 -7180 7180 6 -7200 7180 -1 -7580 7180 -1 -7181 7181 6 -7182 7181 -1 -7581 7181 -1 -7182 7182 6 -7183 7182 -1 -7582 7182 -1 -7183 7183 6 -7184 7183 -1 -7583 7183 -1 -7184 7184 6 -7185 7184 -1 -7584 7184 -1 -7185 7185 6 -7186 7185 -1 -7585 7185 -1 -7186 7186 6 -7187 7186 -1 -7586 7186 -1 -7187 7187 6 -7188 7187 -1 -7587 7187 -1 -7188 7188 6 -7189 7188 -1 -7588 7188 -1 -7189 7189 6 -7190 7189 -1 -7589 7189 -1 -7190 7190 6 -7191 7190 -1 -7590 7190 -1 -7191 7191 6 -7192 7191 -1 -7591 7191 -1 -7192 7192 6 -7193 7192 -1 -7592 7192 -1 -7193 7193 6 -7194 7193 -1 -7593 7193 -1 -7194 7194 6 -7195 7194 -1 -7594 7194 -1 -7195 7195 6 -7196 7195 -1 -7595 7195 -1 -7196 7196 6 -7197 7196 -1 -7596 7196 -1 -7197 7197 6 -7198 7197 -1 -7597 7197 -1 -7198 7198 6 -7199 7198 -1 -7598 7198 -1 -7199 7199 6 -7200 7199 -1 -7599 7199 -1 -7200 7200 6 -7600 7200 -1 -7201 7201 6 -7202 7201 -1 -7221 7201 -1 -7601 7201 -1 -7202 7202 6 -7203 7202 -1 -7222 7202 -1 -7602 7202 -1 -7203 7203 6 -7204 7203 -1 -7223 7203 -1 -7603 7203 -1 -7204 7204 6 -7205 7204 -1 -7224 7204 -1 -7604 7204 -1 -7205 7205 6 -7206 7205 -1 -7225 7205 -1 -7605 7205 -1 -7206 7206 6 -7207 7206 -1 -7226 7206 -1 -7606 7206 -1 -7207 7207 6 -7208 7207 -1 -7227 7207 -1 -7607 7207 -1 -7208 7208 6 -7209 7208 -1 -7228 7208 -1 -7608 7208 -1 -7209 7209 6 -7210 7209 -1 -7229 7209 -1 -7609 7209 -1 -7210 7210 6 -7211 7210 -1 -7230 7210 -1 -7610 7210 -1 -7211 7211 6 -7212 7211 -1 -7231 7211 -1 -7611 7211 -1 -7212 7212 6 -7213 7212 -1 -7232 7212 -1 -7612 7212 -1 -7213 7213 6 -7214 7213 -1 -7233 7213 -1 -7613 7213 -1 -7214 7214 6 -7215 7214 -1 -7234 7214 -1 -7614 7214 -1 -7215 7215 6 -7216 7215 -1 -7235 7215 -1 -7615 7215 -1 -7216 7216 6 -7217 7216 -1 -7236 7216 -1 -7616 7216 -1 -7217 7217 6 -7218 7217 -1 -7237 7217 -1 -7617 7217 -1 -7218 7218 6 -7219 7218 -1 -7238 7218 -1 -7618 7218 -1 -7219 7219 6 -7220 7219 -1 -7239 7219 -1 -7619 7219 -1 -7220 7220 6 -7240 7220 -1 -7620 7220 -1 -7221 7221 6 -7222 7221 -1 -7241 7221 -1 -7621 7221 -1 -7222 7222 6 -7223 7222 -1 -7242 7222 -1 -7622 7222 -1 -7223 7223 6 -7224 7223 -1 -7243 7223 -1 -7623 7223 -1 -7224 7224 6 -7225 7224 -1 -7244 7224 -1 -7624 7224 -1 -7225 7225 6 -7226 7225 -1 -7245 7225 -1 -7625 7225 -1 -7226 7226 6 -7227 7226 -1 -7246 7226 -1 -7626 7226 -1 -7227 7227 6 -7228 7227 -1 -7247 7227 -1 -7627 7227 -1 -7228 7228 6 -7229 7228 -1 -7248 7228 -1 -7628 7228 -1 -7229 7229 6 -7230 7229 -1 -7249 7229 -1 -7629 7229 -1 -7230 7230 6 -7231 7230 -1 -7250 7230 -1 -7630 7230 -1 -7231 7231 6 -7232 7231 -1 -7251 7231 -1 -7631 7231 -1 -7232 7232 6 -7233 7232 -1 -7252 7232 -1 -7632 7232 -1 -7233 7233 6 -7234 7233 -1 -7253 7233 -1 -7633 7233 -1 -7234 7234 6 -7235 7234 -1 -7254 7234 -1 -7634 7234 -1 -7235 7235 6 -7236 7235 -1 -7255 7235 -1 -7635 7235 -1 -7236 7236 6 -7237 7236 -1 -7256 7236 -1 -7636 7236 -1 -7237 7237 6 -7238 7237 -1 -7257 7237 -1 -7637 7237 -1 -7238 7238 6 -7239 7238 -1 -7258 7238 -1 -7638 7238 -1 -7239 7239 6 -7240 7239 -1 -7259 7239 -1 -7639 7239 -1 -7240 7240 6 -7260 7240 -1 -7640 7240 -1 -7241 7241 6 -7242 7241 -1 -7261 7241 -1 -7641 7241 -1 -7242 7242 6 -7243 7242 -1 -7262 7242 -1 -7642 7242 -1 -7243 7243 6 -7244 7243 -1 -7263 7243 -1 -7643 7243 -1 -7244 7244 6 -7245 7244 -1 -7264 7244 -1 -7644 7244 -1 -7245 7245 6 -7246 7245 -1 -7265 7245 -1 -7645 7245 -1 -7246 7246 6 -7247 7246 -1 -7266 7246 -1 -7646 7246 -1 -7247 7247 6 -7248 7247 -1 -7267 7247 -1 -7647 7247 -1 -7248 7248 6 -7249 7248 -1 -7268 7248 -1 -7648 7248 -1 -7249 7249 6 -7250 7249 -1 -7269 7249 -1 -7649 7249 -1 -7250 7250 6 -7251 7250 -1 -7270 7250 -1 -7650 7250 -1 -7251 7251 6 -7252 7251 -1 -7271 7251 -1 -7651 7251 -1 -7252 7252 6 -7253 7252 -1 -7272 7252 -1 -7652 7252 -1 -7253 7253 6 -7254 7253 -1 -7273 7253 -1 -7653 7253 -1 -7254 7254 6 -7255 7254 -1 -7274 7254 -1 -7654 7254 -1 -7255 7255 6 -7256 7255 -1 -7275 7255 -1 -7655 7255 -1 -7256 7256 6 -7257 7256 -1 -7276 7256 -1 -7656 7256 -1 -7257 7257 6 -7258 7257 -1 -7277 7257 -1 -7657 7257 -1 -7258 7258 6 -7259 7258 -1 -7278 7258 -1 -7658 7258 -1 -7259 7259 6 -7260 7259 -1 -7279 7259 -1 -7659 7259 -1 -7260 7260 6 -7280 7260 -1 -7660 7260 -1 -7261 7261 6 -7262 7261 -1 -7281 7261 -1 -7661 7261 -1 -7262 7262 6 -7263 7262 -1 -7282 7262 -1 -7662 7262 -1 -7263 7263 6 -7264 7263 -1 -7283 7263 -1 -7663 7263 -1 -7264 7264 6 -7265 7264 -1 -7284 7264 -1 -7664 7264 -1 -7265 7265 6 -7266 7265 -1 -7285 7265 -1 -7665 7265 -1 -7266 7266 6 -7267 7266 -1 -7286 7266 -1 -7666 7266 -1 -7267 7267 6 -7268 7267 -1 -7287 7267 -1 -7667 7267 -1 -7268 7268 6 -7269 7268 -1 -7288 7268 -1 -7668 7268 -1 -7269 7269 6 -7270 7269 -1 -7289 7269 -1 -7669 7269 -1 -7270 7270 6 -7271 7270 -1 -7290 7270 -1 -7670 7270 -1 -7271 7271 6 -7272 7271 -1 -7291 7271 -1 -7671 7271 -1 -7272 7272 6 -7273 7272 -1 -7292 7272 -1 -7672 7272 -1 -7273 7273 6 -7274 7273 -1 -7293 7273 -1 -7673 7273 -1 -7274 7274 6 -7275 7274 -1 -7294 7274 -1 -7674 7274 -1 -7275 7275 6 -7276 7275 -1 -7295 7275 -1 -7675 7275 -1 -7276 7276 6 -7277 7276 -1 -7296 7276 -1 -7676 7276 -1 -7277 7277 6 -7278 7277 -1 -7297 7277 -1 -7677 7277 -1 -7278 7278 6 -7279 7278 -1 -7298 7278 -1 -7678 7278 -1 -7279 7279 6 -7280 7279 -1 -7299 7279 -1 -7679 7279 -1 -7280 7280 6 -7300 7280 -1 -7680 7280 -1 -7281 7281 6 -7282 7281 -1 -7301 7281 -1 -7681 7281 -1 -7282 7282 6 -7283 7282 -1 -7302 7282 -1 -7682 7282 -1 -7283 7283 6 -7284 7283 -1 -7303 7283 -1 -7683 7283 -1 -7284 7284 6 -7285 7284 -1 -7304 7284 -1 -7684 7284 -1 -7285 7285 6 -7286 7285 -1 -7305 7285 -1 -7685 7285 -1 -7286 7286 6 -7287 7286 -1 -7306 7286 -1 -7686 7286 -1 -7287 7287 6 -7288 7287 -1 -7307 7287 -1 -7687 7287 -1 -7288 7288 6 -7289 7288 -1 -7308 7288 -1 -7688 7288 -1 -7289 7289 6 -7290 7289 -1 -7309 7289 -1 -7689 7289 -1 -7290 7290 6 -7291 7290 -1 -7310 7290 -1 -7690 7290 -1 -7291 7291 6 -7292 7291 -1 -7311 7291 -1 -7691 7291 -1 -7292 7292 6 -7293 7292 -1 -7312 7292 -1 -7692 7292 -1 -7293 7293 6 -7294 7293 -1 -7313 7293 -1 -7693 7293 -1 -7294 7294 6 -7295 7294 -1 -7314 7294 -1 -7694 7294 -1 -7295 7295 6 -7296 7295 -1 -7315 7295 -1 -7695 7295 -1 -7296 7296 6 -7297 7296 -1 -7316 7296 -1 -7696 7296 -1 -7297 7297 6 -7298 7297 -1 -7317 7297 -1 -7697 7297 -1 -7298 7298 6 -7299 7298 -1 -7318 7298 -1 -7698 7298 -1 -7299 7299 6 -7300 7299 -1 -7319 7299 -1 -7699 7299 -1 -7300 7300 6 -7320 7300 -1 -7700 7300 -1 -7301 7301 6 -7302 7301 -1 -7321 7301 -1 -7701 7301 -1 -7302 7302 6 -7303 7302 -1 -7322 7302 -1 -7702 7302 -1 -7303 7303 6 -7304 7303 -1 -7323 7303 -1 -7703 7303 -1 -7304 7304 6 -7305 7304 -1 -7324 7304 -1 -7704 7304 -1 -7305 7305 6 -7306 7305 -1 -7325 7305 -1 -7705 7305 -1 -7306 7306 6 -7307 7306 -1 -7326 7306 -1 -7706 7306 -1 -7307 7307 6 -7308 7307 -1 -7327 7307 -1 -7707 7307 -1 -7308 7308 6 -7309 7308 -1 -7328 7308 -1 -7708 7308 -1 -7309 7309 6 -7310 7309 -1 -7329 7309 -1 -7709 7309 -1 -7310 7310 6 -7311 7310 -1 -7330 7310 -1 -7710 7310 -1 -7311 7311 6 -7312 7311 -1 -7331 7311 -1 -7711 7311 -1 -7312 7312 6 -7313 7312 -1 -7332 7312 -1 -7712 7312 -1 -7313 7313 6 -7314 7313 -1 -7333 7313 -1 -7713 7313 -1 -7314 7314 6 -7315 7314 -1 -7334 7314 -1 -7714 7314 -1 -7315 7315 6 -7316 7315 -1 -7335 7315 -1 -7715 7315 -1 -7316 7316 6 -7317 7316 -1 -7336 7316 -1 -7716 7316 -1 -7317 7317 6 -7318 7317 -1 -7337 7317 -1 -7717 7317 -1 -7318 7318 6 -7319 7318 -1 -7338 7318 -1 -7718 7318 -1 -7319 7319 6 -7320 7319 -1 -7339 7319 -1 -7719 7319 -1 -7320 7320 6 -7340 7320 -1 -7720 7320 -1 -7321 7321 6 -7322 7321 -1 -7341 7321 -1 -7721 7321 -1 -7322 7322 6 -7323 7322 -1 -7342 7322 -1 -7722 7322 -1 -7323 7323 6 -7324 7323 -1 -7343 7323 -1 -7723 7323 -1 -7324 7324 6 -7325 7324 -1 -7344 7324 -1 -7724 7324 -1 -7325 7325 6 -7326 7325 -1 -7345 7325 -1 -7725 7325 -1 -7326 7326 6 -7327 7326 -1 -7346 7326 -1 -7726 7326 -1 -7327 7327 6 -7328 7327 -1 -7347 7327 -1 -7727 7327 -1 -7328 7328 6 -7329 7328 -1 -7348 7328 -1 -7728 7328 -1 -7329 7329 6 -7330 7329 -1 -7349 7329 -1 -7729 7329 -1 -7330 7330 6 -7331 7330 -1 -7350 7330 -1 -7730 7330 -1 -7331 7331 6 -7332 7331 -1 -7351 7331 -1 -7731 7331 -1 -7332 7332 6 -7333 7332 -1 -7352 7332 -1 -7732 7332 -1 -7333 7333 6 -7334 7333 -1 -7353 7333 -1 -7733 7333 -1 -7334 7334 6 -7335 7334 -1 -7354 7334 -1 -7734 7334 -1 -7335 7335 6 -7336 7335 -1 -7355 7335 -1 -7735 7335 -1 -7336 7336 6 -7337 7336 -1 -7356 7336 -1 -7736 7336 -1 -7337 7337 6 -7338 7337 -1 -7357 7337 -1 -7737 7337 -1 -7338 7338 6 -7339 7338 -1 -7358 7338 -1 -7738 7338 -1 -7339 7339 6 -7340 7339 -1 -7359 7339 -1 -7739 7339 -1 -7340 7340 6 -7360 7340 -1 -7740 7340 -1 -7341 7341 6 -7342 7341 -1 -7361 7341 -1 -7741 7341 -1 -7342 7342 6 -7343 7342 -1 -7362 7342 -1 -7742 7342 -1 -7343 7343 6 -7344 7343 -1 -7363 7343 -1 -7743 7343 -1 -7344 7344 6 -7345 7344 -1 -7364 7344 -1 -7744 7344 -1 -7345 7345 6 -7346 7345 -1 -7365 7345 -1 -7745 7345 -1 -7346 7346 6 -7347 7346 -1 -7366 7346 -1 -7746 7346 -1 -7347 7347 6 -7348 7347 -1 -7367 7347 -1 -7747 7347 -1 -7348 7348 6 -7349 7348 -1 -7368 7348 -1 -7748 7348 -1 -7349 7349 6 -7350 7349 -1 -7369 7349 -1 -7749 7349 -1 -7350 7350 6 -7351 7350 -1 -7370 7350 -1 -7750 7350 -1 -7351 7351 6 -7352 7351 -1 -7371 7351 -1 -7751 7351 -1 -7352 7352 6 -7353 7352 -1 -7372 7352 -1 -7752 7352 -1 -7353 7353 6 -7354 7353 -1 -7373 7353 -1 -7753 7353 -1 -7354 7354 6 -7355 7354 -1 -7374 7354 -1 -7754 7354 -1 -7355 7355 6 -7356 7355 -1 -7375 7355 -1 -7755 7355 -1 -7356 7356 6 -7357 7356 -1 -7376 7356 -1 -7756 7356 -1 -7357 7357 6 -7358 7357 -1 -7377 7357 -1 -7757 7357 -1 -7358 7358 6 -7359 7358 -1 -7378 7358 -1 -7758 7358 -1 -7359 7359 6 -7360 7359 -1 -7379 7359 -1 -7759 7359 -1 -7360 7360 6 -7380 7360 -1 -7760 7360 -1 -7361 7361 6 -7362 7361 -1 -7381 7361 -1 -7761 7361 -1 -7362 7362 6 -7363 7362 -1 -7382 7362 -1 -7762 7362 -1 -7363 7363 6 -7364 7363 -1 -7383 7363 -1 -7763 7363 -1 -7364 7364 6 -7365 7364 -1 -7384 7364 -1 -7764 7364 -1 -7365 7365 6 -7366 7365 -1 -7385 7365 -1 -7765 7365 -1 -7366 7366 6 -7367 7366 -1 -7386 7366 -1 -7766 7366 -1 -7367 7367 6 -7368 7367 -1 -7387 7367 -1 -7767 7367 -1 -7368 7368 6 -7369 7368 -1 -7388 7368 -1 -7768 7368 -1 -7369 7369 6 -7370 7369 -1 -7389 7369 -1 -7769 7369 -1 -7370 7370 6 -7371 7370 -1 -7390 7370 -1 -7770 7370 -1 -7371 7371 6 -7372 7371 -1 -7391 7371 -1 -7771 7371 -1 -7372 7372 6 -7373 7372 -1 -7392 7372 -1 -7772 7372 -1 -7373 7373 6 -7374 7373 -1 -7393 7373 -1 -7773 7373 -1 -7374 7374 6 -7375 7374 -1 -7394 7374 -1 -7774 7374 -1 -7375 7375 6 -7376 7375 -1 -7395 7375 -1 -7775 7375 -1 -7376 7376 6 -7377 7376 -1 -7396 7376 -1 -7776 7376 -1 -7377 7377 6 -7378 7377 -1 -7397 7377 -1 -7777 7377 -1 -7378 7378 6 -7379 7378 -1 -7398 7378 -1 -7778 7378 -1 -7379 7379 6 -7380 7379 -1 -7399 7379 -1 -7779 7379 -1 -7380 7380 6 -7400 7380 -1 -7780 7380 -1 -7381 7381 6 -7382 7381 -1 -7401 7381 -1 -7781 7381 -1 -7382 7382 6 -7383 7382 -1 -7402 7382 -1 -7782 7382 -1 -7383 7383 6 -7384 7383 -1 -7403 7383 -1 -7783 7383 -1 -7384 7384 6 -7385 7384 -1 -7404 7384 -1 -7784 7384 -1 -7385 7385 6 -7386 7385 -1 -7405 7385 -1 -7785 7385 -1 -7386 7386 6 -7387 7386 -1 -7406 7386 -1 -7786 7386 -1 -7387 7387 6 -7388 7387 -1 -7407 7387 -1 -7787 7387 -1 -7388 7388 6 -7389 7388 -1 -7408 7388 -1 -7788 7388 -1 -7389 7389 6 -7390 7389 -1 -7409 7389 -1 -7789 7389 -1 -7390 7390 6 -7391 7390 -1 -7410 7390 -1 -7790 7390 -1 -7391 7391 6 -7392 7391 -1 -7411 7391 -1 -7791 7391 -1 -7392 7392 6 -7393 7392 -1 -7412 7392 -1 -7792 7392 -1 -7393 7393 6 -7394 7393 -1 -7413 7393 -1 -7793 7393 -1 -7394 7394 6 -7395 7394 -1 -7414 7394 -1 -7794 7394 -1 -7395 7395 6 -7396 7395 -1 -7415 7395 -1 -7795 7395 -1 -7396 7396 6 -7397 7396 -1 -7416 7396 -1 -7796 7396 -1 -7397 7397 6 -7398 7397 -1 -7417 7397 -1 -7797 7397 -1 -7398 7398 6 -7399 7398 -1 -7418 7398 -1 -7798 7398 -1 -7399 7399 6 -7400 7399 -1 -7419 7399 -1 -7799 7399 -1 -7400 7400 6 -7420 7400 -1 -7800 7400 -1 -7401 7401 6 -7402 7401 -1 -7421 7401 -1 -7801 7401 -1 -7402 7402 6 -7403 7402 -1 -7422 7402 -1 -7802 7402 -1 -7403 7403 6 -7404 7403 -1 -7423 7403 -1 -7803 7403 -1 -7404 7404 6 -7405 7404 -1 -7424 7404 -1 -7804 7404 -1 -7405 7405 6 -7406 7405 -1 -7425 7405 -1 -7805 7405 -1 -7406 7406 6 -7407 7406 -1 -7426 7406 -1 -7806 7406 -1 -7407 7407 6 -7408 7407 -1 -7427 7407 -1 -7807 7407 -1 -7408 7408 6 -7409 7408 -1 -7428 7408 -1 -7808 7408 -1 -7409 7409 6 -7410 7409 -1 -7429 7409 -1 -7809 7409 -1 -7410 7410 6 -7411 7410 -1 -7430 7410 -1 -7810 7410 -1 -7411 7411 6 -7412 7411 -1 -7431 7411 -1 -7811 7411 -1 -7412 7412 6 -7413 7412 -1 -7432 7412 -1 -7812 7412 -1 -7413 7413 6 -7414 7413 -1 -7433 7413 -1 -7813 7413 -1 -7414 7414 6 -7415 7414 -1 -7434 7414 -1 -7814 7414 -1 -7415 7415 6 -7416 7415 -1 -7435 7415 -1 -7815 7415 -1 -7416 7416 6 -7417 7416 -1 -7436 7416 -1 -7816 7416 -1 -7417 7417 6 -7418 7417 -1 -7437 7417 -1 -7817 7417 -1 -7418 7418 6 -7419 7418 -1 -7438 7418 -1 -7818 7418 -1 -7419 7419 6 -7420 7419 -1 -7439 7419 -1 -7819 7419 -1 -7420 7420 6 -7440 7420 -1 -7820 7420 -1 -7421 7421 6 -7422 7421 -1 -7441 7421 -1 -7821 7421 -1 -7422 7422 6 -7423 7422 -1 -7442 7422 -1 -7822 7422 -1 -7423 7423 6 -7424 7423 -1 -7443 7423 -1 -7823 7423 -1 -7424 7424 6 -7425 7424 -1 -7444 7424 -1 -7824 7424 -1 -7425 7425 6 -7426 7425 -1 -7445 7425 -1 -7825 7425 -1 -7426 7426 6 -7427 7426 -1 -7446 7426 -1 -7826 7426 -1 -7427 7427 6 -7428 7427 -1 -7447 7427 -1 -7827 7427 -1 -7428 7428 6 -7429 7428 -1 -7448 7428 -1 -7828 7428 -1 -7429 7429 6 -7430 7429 -1 -7449 7429 -1 -7829 7429 -1 -7430 7430 6 -7431 7430 -1 -7450 7430 -1 -7830 7430 -1 -7431 7431 6 -7432 7431 -1 -7451 7431 -1 -7831 7431 -1 -7432 7432 6 -7433 7432 -1 -7452 7432 -1 -7832 7432 -1 -7433 7433 6 -7434 7433 -1 -7453 7433 -1 -7833 7433 -1 -7434 7434 6 -7435 7434 -1 -7454 7434 -1 -7834 7434 -1 -7435 7435 6 -7436 7435 -1 -7455 7435 -1 -7835 7435 -1 -7436 7436 6 -7437 7436 -1 -7456 7436 -1 -7836 7436 -1 -7437 7437 6 -7438 7437 -1 -7457 7437 -1 -7837 7437 -1 -7438 7438 6 -7439 7438 -1 -7458 7438 -1 -7838 7438 -1 -7439 7439 6 -7440 7439 -1 -7459 7439 -1 -7839 7439 -1 -7440 7440 6 -7460 7440 -1 -7840 7440 -1 -7441 7441 6 -7442 7441 -1 -7461 7441 -1 -7841 7441 -1 -7442 7442 6 -7443 7442 -1 -7462 7442 -1 -7842 7442 -1 -7443 7443 6 -7444 7443 -1 -7463 7443 -1 -7843 7443 -1 -7444 7444 6 -7445 7444 -1 -7464 7444 -1 -7844 7444 -1 -7445 7445 6 -7446 7445 -1 -7465 7445 -1 -7845 7445 -1 -7446 7446 6 -7447 7446 -1 -7466 7446 -1 -7846 7446 -1 -7447 7447 6 -7448 7447 -1 -7467 7447 -1 -7847 7447 -1 -7448 7448 6 -7449 7448 -1 -7468 7448 -1 -7848 7448 -1 -7449 7449 6 -7450 7449 -1 -7469 7449 -1 -7849 7449 -1 -7450 7450 6 -7451 7450 -1 -7470 7450 -1 -7850 7450 -1 -7451 7451 6 -7452 7451 -1 -7471 7451 -1 -7851 7451 -1 -7452 7452 6 -7453 7452 -1 -7472 7452 -1 -7852 7452 -1 -7453 7453 6 -7454 7453 -1 -7473 7453 -1 -7853 7453 -1 -7454 7454 6 -7455 7454 -1 -7474 7454 -1 -7854 7454 -1 -7455 7455 6 -7456 7455 -1 -7475 7455 -1 -7855 7455 -1 -7456 7456 6 -7457 7456 -1 -7476 7456 -1 -7856 7456 -1 -7457 7457 6 -7458 7457 -1 -7477 7457 -1 -7857 7457 -1 -7458 7458 6 -7459 7458 -1 -7478 7458 -1 -7858 7458 -1 -7459 7459 6 -7460 7459 -1 -7479 7459 -1 -7859 7459 -1 -7460 7460 6 -7480 7460 -1 -7860 7460 -1 -7461 7461 6 -7462 7461 -1 -7481 7461 -1 -7861 7461 -1 -7462 7462 6 -7463 7462 -1 -7482 7462 -1 -7862 7462 -1 -7463 7463 6 -7464 7463 -1 -7483 7463 -1 -7863 7463 -1 -7464 7464 6 -7465 7464 -1 -7484 7464 -1 -7864 7464 -1 -7465 7465 6 -7466 7465 -1 -7485 7465 -1 -7865 7465 -1 -7466 7466 6 -7467 7466 -1 -7486 7466 -1 -7866 7466 -1 -7467 7467 6 -7468 7467 -1 -7487 7467 -1 -7867 7467 -1 -7468 7468 6 -7469 7468 -1 -7488 7468 -1 -7868 7468 -1 -7469 7469 6 -7470 7469 -1 -7489 7469 -1 -7869 7469 -1 -7470 7470 6 -7471 7470 -1 -7490 7470 -1 -7870 7470 -1 -7471 7471 6 -7472 7471 -1 -7491 7471 -1 -7871 7471 -1 -7472 7472 6 -7473 7472 -1 -7492 7472 -1 -7872 7472 -1 -7473 7473 6 -7474 7473 -1 -7493 7473 -1 -7873 7473 -1 -7474 7474 6 -7475 7474 -1 -7494 7474 -1 -7874 7474 -1 -7475 7475 6 -7476 7475 -1 -7495 7475 -1 -7875 7475 -1 -7476 7476 6 -7477 7476 -1 -7496 7476 -1 -7876 7476 -1 -7477 7477 6 -7478 7477 -1 -7497 7477 -1 -7877 7477 -1 -7478 7478 6 -7479 7478 -1 -7498 7478 -1 -7878 7478 -1 -7479 7479 6 -7480 7479 -1 -7499 7479 -1 -7879 7479 -1 -7480 7480 6 -7500 7480 -1 -7880 7480 -1 -7481 7481 6 -7482 7481 -1 -7501 7481 -1 -7881 7481 -1 -7482 7482 6 -7483 7482 -1 -7502 7482 -1 -7882 7482 -1 -7483 7483 6 -7484 7483 -1 -7503 7483 -1 -7883 7483 -1 -7484 7484 6 -7485 7484 -1 -7504 7484 -1 -7884 7484 -1 -7485 7485 6 -7486 7485 -1 -7505 7485 -1 -7885 7485 -1 -7486 7486 6 -7487 7486 -1 -7506 7486 -1 -7886 7486 -1 -7487 7487 6 -7488 7487 -1 -7507 7487 -1 -7887 7487 -1 -7488 7488 6 -7489 7488 -1 -7508 7488 -1 -7888 7488 -1 -7489 7489 6 -7490 7489 -1 -7509 7489 -1 -7889 7489 -1 -7490 7490 6 -7491 7490 -1 -7510 7490 -1 -7890 7490 -1 -7491 7491 6 -7492 7491 -1 -7511 7491 -1 -7891 7491 -1 -7492 7492 6 -7493 7492 -1 -7512 7492 -1 -7892 7492 -1 -7493 7493 6 -7494 7493 -1 -7513 7493 -1 -7893 7493 -1 -7494 7494 6 -7495 7494 -1 -7514 7494 -1 -7894 7494 -1 -7495 7495 6 -7496 7495 -1 -7515 7495 -1 -7895 7495 -1 -7496 7496 6 -7497 7496 -1 -7516 7496 -1 -7896 7496 -1 -7497 7497 6 -7498 7497 -1 -7517 7497 -1 -7897 7497 -1 -7498 7498 6 -7499 7498 -1 -7518 7498 -1 -7898 7498 -1 -7499 7499 6 -7500 7499 -1 -7519 7499 -1 -7899 7499 -1 -7500 7500 6 -7520 7500 -1 -7900 7500 -1 -7501 7501 6 -7502 7501 -1 -7521 7501 -1 -7901 7501 -1 -7502 7502 6 -7503 7502 -1 -7522 7502 -1 -7902 7502 -1 -7503 7503 6 -7504 7503 -1 -7523 7503 -1 -7903 7503 -1 -7504 7504 6 -7505 7504 -1 -7524 7504 -1 -7904 7504 -1 -7505 7505 6 -7506 7505 -1 -7525 7505 -1 -7905 7505 -1 -7506 7506 6 -7507 7506 -1 -7526 7506 -1 -7906 7506 -1 -7507 7507 6 -7508 7507 -1 -7527 7507 -1 -7907 7507 -1 -7508 7508 6 -7509 7508 -1 -7528 7508 -1 -7908 7508 -1 -7509 7509 6 -7510 7509 -1 -7529 7509 -1 -7909 7509 -1 -7510 7510 6 -7511 7510 -1 -7530 7510 -1 -7910 7510 -1 -7511 7511 6 -7512 7511 -1 -7531 7511 -1 -7911 7511 -1 -7512 7512 6 -7513 7512 -1 -7532 7512 -1 -7912 7512 -1 -7513 7513 6 -7514 7513 -1 -7533 7513 -1 -7913 7513 -1 -7514 7514 6 -7515 7514 -1 -7534 7514 -1 -7914 7514 -1 -7515 7515 6 -7516 7515 -1 -7535 7515 -1 -7915 7515 -1 -7516 7516 6 -7517 7516 -1 -7536 7516 -1 -7916 7516 -1 -7517 7517 6 -7518 7517 -1 -7537 7517 -1 -7917 7517 -1 -7518 7518 6 -7519 7518 -1 -7538 7518 -1 -7918 7518 -1 -7519 7519 6 -7520 7519 -1 -7539 7519 -1 -7919 7519 -1 -7520 7520 6 -7540 7520 -1 -7920 7520 -1 -7521 7521 6 -7522 7521 -1 -7541 7521 -1 -7921 7521 -1 -7522 7522 6 -7523 7522 -1 -7542 7522 -1 -7922 7522 -1 -7523 7523 6 -7524 7523 -1 -7543 7523 -1 -7923 7523 -1 -7524 7524 6 -7525 7524 -1 -7544 7524 -1 -7924 7524 -1 -7525 7525 6 -7526 7525 -1 -7545 7525 -1 -7925 7525 -1 -7526 7526 6 -7527 7526 -1 -7546 7526 -1 -7926 7526 -1 -7527 7527 6 -7528 7527 -1 -7547 7527 -1 -7927 7527 -1 -7528 7528 6 -7529 7528 -1 -7548 7528 -1 -7928 7528 -1 -7529 7529 6 -7530 7529 -1 -7549 7529 -1 -7929 7529 -1 -7530 7530 6 -7531 7530 -1 -7550 7530 -1 -7930 7530 -1 -7531 7531 6 -7532 7531 -1 -7551 7531 -1 -7931 7531 -1 -7532 7532 6 -7533 7532 -1 -7552 7532 -1 -7932 7532 -1 -7533 7533 6 -7534 7533 -1 -7553 7533 -1 -7933 7533 -1 -7534 7534 6 -7535 7534 -1 -7554 7534 -1 -7934 7534 -1 -7535 7535 6 -7536 7535 -1 -7555 7535 -1 -7935 7535 -1 -7536 7536 6 -7537 7536 -1 -7556 7536 -1 -7936 7536 -1 -7537 7537 6 -7538 7537 -1 -7557 7537 -1 -7937 7537 -1 -7538 7538 6 -7539 7538 -1 -7558 7538 -1 -7938 7538 -1 -7539 7539 6 -7540 7539 -1 -7559 7539 -1 -7939 7539 -1 -7540 7540 6 -7560 7540 -1 -7940 7540 -1 -7541 7541 6 -7542 7541 -1 -7561 7541 -1 -7941 7541 -1 -7542 7542 6 -7543 7542 -1 -7562 7542 -1 -7942 7542 -1 -7543 7543 6 -7544 7543 -1 -7563 7543 -1 -7943 7543 -1 -7544 7544 6 -7545 7544 -1 -7564 7544 -1 -7944 7544 -1 -7545 7545 6 -7546 7545 -1 -7565 7545 -1 -7945 7545 -1 -7546 7546 6 -7547 7546 -1 -7566 7546 -1 -7946 7546 -1 -7547 7547 6 -7548 7547 -1 -7567 7547 -1 -7947 7547 -1 -7548 7548 6 -7549 7548 -1 -7568 7548 -1 -7948 7548 -1 -7549 7549 6 -7550 7549 -1 -7569 7549 -1 -7949 7549 -1 -7550 7550 6 -7551 7550 -1 -7570 7550 -1 -7950 7550 -1 -7551 7551 6 -7552 7551 -1 -7571 7551 -1 -7951 7551 -1 -7552 7552 6 -7553 7552 -1 -7572 7552 -1 -7952 7552 -1 -7553 7553 6 -7554 7553 -1 -7573 7553 -1 -7953 7553 -1 -7554 7554 6 -7555 7554 -1 -7574 7554 -1 -7954 7554 -1 -7555 7555 6 -7556 7555 -1 -7575 7555 -1 -7955 7555 -1 -7556 7556 6 -7557 7556 -1 -7576 7556 -1 -7956 7556 -1 -7557 7557 6 -7558 7557 -1 -7577 7557 -1 -7957 7557 -1 -7558 7558 6 -7559 7558 -1 -7578 7558 -1 -7958 7558 -1 -7559 7559 6 -7560 7559 -1 -7579 7559 -1 -7959 7559 -1 -7560 7560 6 -7580 7560 -1 -7960 7560 -1 -7561 7561 6 -7562 7561 -1 -7581 7561 -1 -7961 7561 -1 -7562 7562 6 -7563 7562 -1 -7582 7562 -1 -7962 7562 -1 -7563 7563 6 -7564 7563 -1 -7583 7563 -1 -7963 7563 -1 -7564 7564 6 -7565 7564 -1 -7584 7564 -1 -7964 7564 -1 -7565 7565 6 -7566 7565 -1 -7585 7565 -1 -7965 7565 -1 -7566 7566 6 -7567 7566 -1 -7586 7566 -1 -7966 7566 -1 -7567 7567 6 -7568 7567 -1 -7587 7567 -1 -7967 7567 -1 -7568 7568 6 -7569 7568 -1 -7588 7568 -1 -7968 7568 -1 -7569 7569 6 -7570 7569 -1 -7589 7569 -1 -7969 7569 -1 -7570 7570 6 -7571 7570 -1 -7590 7570 -1 -7970 7570 -1 -7571 7571 6 -7572 7571 -1 -7591 7571 -1 -7971 7571 -1 -7572 7572 6 -7573 7572 -1 -7592 7572 -1 -7972 7572 -1 -7573 7573 6 -7574 7573 -1 -7593 7573 -1 -7973 7573 -1 -7574 7574 6 -7575 7574 -1 -7594 7574 -1 -7974 7574 -1 -7575 7575 6 -7576 7575 -1 -7595 7575 -1 -7975 7575 -1 -7576 7576 6 -7577 7576 -1 -7596 7576 -1 -7976 7576 -1 -7577 7577 6 -7578 7577 -1 -7597 7577 -1 -7977 7577 -1 -7578 7578 6 -7579 7578 -1 -7598 7578 -1 -7978 7578 -1 -7579 7579 6 -7580 7579 -1 -7599 7579 -1 -7979 7579 -1 -7580 7580 6 -7600 7580 -1 -7980 7580 -1 -7581 7581 6 -7582 7581 -1 -7981 7581 -1 -7582 7582 6 -7583 7582 -1 -7982 7582 -1 -7583 7583 6 -7584 7583 -1 -7983 7583 -1 -7584 7584 6 -7585 7584 -1 -7984 7584 -1 -7585 7585 6 -7586 7585 -1 -7985 7585 -1 -7586 7586 6 -7587 7586 -1 -7986 7586 -1 -7587 7587 6 -7588 7587 -1 -7987 7587 -1 -7588 7588 6 -7589 7588 -1 -7988 7588 -1 -7589 7589 6 -7590 7589 -1 -7989 7589 -1 -7590 7590 6 -7591 7590 -1 -7990 7590 -1 -7591 7591 6 -7592 7591 -1 -7991 7591 -1 -7592 7592 6 -7593 7592 -1 -7992 7592 -1 -7593 7593 6 -7594 7593 -1 -7993 7593 -1 -7594 7594 6 -7595 7594 -1 -7994 7594 -1 -7595 7595 6 -7596 7595 -1 -7995 7595 -1 -7596 7596 6 -7597 7596 -1 -7996 7596 -1 -7597 7597 6 -7598 7597 -1 -7997 7597 -1 -7598 7598 6 -7599 7598 -1 -7998 7598 -1 -7599 7599 6 -7600 7599 -1 -7999 7599 -1 -7600 7600 6 -8000 7600 -1 -7601 7601 6 -7602 7601 -1 -7621 7601 -1 -7602 7602 6 -7603 7602 -1 -7622 7602 -1 -7603 7603 6 -7604 7603 -1 -7623 7603 -1 -7604 7604 6 -7605 7604 -1 -7624 7604 -1 -7605 7605 6 -7606 7605 -1 -7625 7605 -1 -7606 7606 6 -7607 7606 -1 -7626 7606 -1 -7607 7607 6 -7608 7607 -1 -7627 7607 -1 -7608 7608 6 -7609 7608 -1 -7628 7608 -1 -7609 7609 6 -7610 7609 -1 -7629 7609 -1 -7610 7610 6 -7611 7610 -1 -7630 7610 -1 -7611 7611 6 -7612 7611 -1 -7631 7611 -1 -7612 7612 6 -7613 7612 -1 -7632 7612 -1 -7613 7613 6 -7614 7613 -1 -7633 7613 -1 -7614 7614 6 -7615 7614 -1 -7634 7614 -1 -7615 7615 6 -7616 7615 -1 -7635 7615 -1 -7616 7616 6 -7617 7616 -1 -7636 7616 -1 -7617 7617 6 -7618 7617 -1 -7637 7617 -1 -7618 7618 6 -7619 7618 -1 -7638 7618 -1 -7619 7619 6 -7620 7619 -1 -7639 7619 -1 -7620 7620 6 -7640 7620 -1 -7621 7621 6 -7622 7621 -1 -7641 7621 -1 -7622 7622 6 -7623 7622 -1 -7642 7622 -1 -7623 7623 6 -7624 7623 -1 -7643 7623 -1 -7624 7624 6 -7625 7624 -1 -7644 7624 -1 -7625 7625 6 -7626 7625 -1 -7645 7625 -1 -7626 7626 6 -7627 7626 -1 -7646 7626 -1 -7627 7627 6 -7628 7627 -1 -7647 7627 -1 -7628 7628 6 -7629 7628 -1 -7648 7628 -1 -7629 7629 6 -7630 7629 -1 -7649 7629 -1 -7630 7630 6 -7631 7630 -1 -7650 7630 -1 -7631 7631 6 -7632 7631 -1 -7651 7631 -1 -7632 7632 6 -7633 7632 -1 -7652 7632 -1 -7633 7633 6 -7634 7633 -1 -7653 7633 -1 -7634 7634 6 -7635 7634 -1 -7654 7634 -1 -7635 7635 6 -7636 7635 -1 -7655 7635 -1 -7636 7636 6 -7637 7636 -1 -7656 7636 -1 -7637 7637 6 -7638 7637 -1 -7657 7637 -1 -7638 7638 6 -7639 7638 -1 -7658 7638 -1 -7639 7639 6 -7640 7639 -1 -7659 7639 -1 -7640 7640 6 -7660 7640 -1 -7641 7641 6 -7642 7641 -1 -7661 7641 -1 -7642 7642 6 -7643 7642 -1 -7662 7642 -1 -7643 7643 6 -7644 7643 -1 -7663 7643 -1 -7644 7644 6 -7645 7644 -1 -7664 7644 -1 -7645 7645 6 -7646 7645 -1 -7665 7645 -1 -7646 7646 6 -7647 7646 -1 -7666 7646 -1 -7647 7647 6 -7648 7647 -1 -7667 7647 -1 -7648 7648 6 -7649 7648 -1 -7668 7648 -1 -7649 7649 6 -7650 7649 -1 -7669 7649 -1 -7650 7650 6 -7651 7650 -1 -7670 7650 -1 -7651 7651 6 -7652 7651 -1 -7671 7651 -1 -7652 7652 6 -7653 7652 -1 -7672 7652 -1 -7653 7653 6 -7654 7653 -1 -7673 7653 -1 -7654 7654 6 -7655 7654 -1 -7674 7654 -1 -7655 7655 6 -7656 7655 -1 -7675 7655 -1 -7656 7656 6 -7657 7656 -1 -7676 7656 -1 -7657 7657 6 -7658 7657 -1 -7677 7657 -1 -7658 7658 6 -7659 7658 -1 -7678 7658 -1 -7659 7659 6 -7660 7659 -1 -7679 7659 -1 -7660 7660 6 -7680 7660 -1 -7661 7661 6 -7662 7661 -1 -7681 7661 -1 -7662 7662 6 -7663 7662 -1 -7682 7662 -1 -7663 7663 6 -7664 7663 -1 -7683 7663 -1 -7664 7664 6 -7665 7664 -1 -7684 7664 -1 -7665 7665 6 -7666 7665 -1 -7685 7665 -1 -7666 7666 6 -7667 7666 -1 -7686 7666 -1 -7667 7667 6 -7668 7667 -1 -7687 7667 -1 -7668 7668 6 -7669 7668 -1 -7688 7668 -1 -7669 7669 6 -7670 7669 -1 -7689 7669 -1 -7670 7670 6 -7671 7670 -1 -7690 7670 -1 -7671 7671 6 -7672 7671 -1 -7691 7671 -1 -7672 7672 6 -7673 7672 -1 -7692 7672 -1 -7673 7673 6 -7674 7673 -1 -7693 7673 -1 -7674 7674 6 -7675 7674 -1 -7694 7674 -1 -7675 7675 6 -7676 7675 -1 -7695 7675 -1 -7676 7676 6 -7677 7676 -1 -7696 7676 -1 -7677 7677 6 -7678 7677 -1 -7697 7677 -1 -7678 7678 6 -7679 7678 -1 -7698 7678 -1 -7679 7679 6 -7680 7679 -1 -7699 7679 -1 -7680 7680 6 -7700 7680 -1 -7681 7681 6 -7682 7681 -1 -7701 7681 -1 -7682 7682 6 -7683 7682 -1 -7702 7682 -1 -7683 7683 6 -7684 7683 -1 -7703 7683 -1 -7684 7684 6 -7685 7684 -1 -7704 7684 -1 -7685 7685 6 -7686 7685 -1 -7705 7685 -1 -7686 7686 6 -7687 7686 -1 -7706 7686 -1 -7687 7687 6 -7688 7687 -1 -7707 7687 -1 -7688 7688 6 -7689 7688 -1 -7708 7688 -1 -7689 7689 6 -7690 7689 -1 -7709 7689 -1 -7690 7690 6 -7691 7690 -1 -7710 7690 -1 -7691 7691 6 -7692 7691 -1 -7711 7691 -1 -7692 7692 6 -7693 7692 -1 -7712 7692 -1 -7693 7693 6 -7694 7693 -1 -7713 7693 -1 -7694 7694 6 -7695 7694 -1 -7714 7694 -1 -7695 7695 6 -7696 7695 -1 -7715 7695 -1 -7696 7696 6 -7697 7696 -1 -7716 7696 -1 -7697 7697 6 -7698 7697 -1 -7717 7697 -1 -7698 7698 6 -7699 7698 -1 -7718 7698 -1 -7699 7699 6 -7700 7699 -1 -7719 7699 -1 -7700 7700 6 -7720 7700 -1 -7701 7701 6 -7702 7701 -1 -7721 7701 -1 -7702 7702 6 -7703 7702 -1 -7722 7702 -1 -7703 7703 6 -7704 7703 -1 -7723 7703 -1 -7704 7704 6 -7705 7704 -1 -7724 7704 -1 -7705 7705 6 -7706 7705 -1 -7725 7705 -1 -7706 7706 6 -7707 7706 -1 -7726 7706 -1 -7707 7707 6 -7708 7707 -1 -7727 7707 -1 -7708 7708 6 -7709 7708 -1 -7728 7708 -1 -7709 7709 6 -7710 7709 -1 -7729 7709 -1 -7710 7710 6 -7711 7710 -1 -7730 7710 -1 -7711 7711 6 -7712 7711 -1 -7731 7711 -1 -7712 7712 6 -7713 7712 -1 -7732 7712 -1 -7713 7713 6 -7714 7713 -1 -7733 7713 -1 -7714 7714 6 -7715 7714 -1 -7734 7714 -1 -7715 7715 6 -7716 7715 -1 -7735 7715 -1 -7716 7716 6 -7717 7716 -1 -7736 7716 -1 -7717 7717 6 -7718 7717 -1 -7737 7717 -1 -7718 7718 6 -7719 7718 -1 -7738 7718 -1 -7719 7719 6 -7720 7719 -1 -7739 7719 -1 -7720 7720 6 -7740 7720 -1 -7721 7721 6 -7722 7721 -1 -7741 7721 -1 -7722 7722 6 -7723 7722 -1 -7742 7722 -1 -7723 7723 6 -7724 7723 -1 -7743 7723 -1 -7724 7724 6 -7725 7724 -1 -7744 7724 -1 -7725 7725 6 -7726 7725 -1 -7745 7725 -1 -7726 7726 6 -7727 7726 -1 -7746 7726 -1 -7727 7727 6 -7728 7727 -1 -7747 7727 -1 -7728 7728 6 -7729 7728 -1 -7748 7728 -1 -7729 7729 6 -7730 7729 -1 -7749 7729 -1 -7730 7730 6 -7731 7730 -1 -7750 7730 -1 -7731 7731 6 -7732 7731 -1 -7751 7731 -1 -7732 7732 6 -7733 7732 -1 -7752 7732 -1 -7733 7733 6 -7734 7733 -1 -7753 7733 -1 -7734 7734 6 -7735 7734 -1 -7754 7734 -1 -7735 7735 6 -7736 7735 -1 -7755 7735 -1 -7736 7736 6 -7737 7736 -1 -7756 7736 -1 -7737 7737 6 -7738 7737 -1 -7757 7737 -1 -7738 7738 6 -7739 7738 -1 -7758 7738 -1 -7739 7739 6 -7740 7739 -1 -7759 7739 -1 -7740 7740 6 -7760 7740 -1 -7741 7741 6 -7742 7741 -1 -7761 7741 -1 -7742 7742 6 -7743 7742 -1 -7762 7742 -1 -7743 7743 6 -7744 7743 -1 -7763 7743 -1 -7744 7744 6 -7745 7744 -1 -7764 7744 -1 -7745 7745 6 -7746 7745 -1 -7765 7745 -1 -7746 7746 6 -7747 7746 -1 -7766 7746 -1 -7747 7747 6 -7748 7747 -1 -7767 7747 -1 -7748 7748 6 -7749 7748 -1 -7768 7748 -1 -7749 7749 6 -7750 7749 -1 -7769 7749 -1 -7750 7750 6 -7751 7750 -1 -7770 7750 -1 -7751 7751 6 -7752 7751 -1 -7771 7751 -1 -7752 7752 6 -7753 7752 -1 -7772 7752 -1 -7753 7753 6 -7754 7753 -1 -7773 7753 -1 -7754 7754 6 -7755 7754 -1 -7774 7754 -1 -7755 7755 6 -7756 7755 -1 -7775 7755 -1 -7756 7756 6 -7757 7756 -1 -7776 7756 -1 -7757 7757 6 -7758 7757 -1 -7777 7757 -1 -7758 7758 6 -7759 7758 -1 -7778 7758 -1 -7759 7759 6 -7760 7759 -1 -7779 7759 -1 -7760 7760 6 -7780 7760 -1 -7761 7761 6 -7762 7761 -1 -7781 7761 -1 -7762 7762 6 -7763 7762 -1 -7782 7762 -1 -7763 7763 6 -7764 7763 -1 -7783 7763 -1 -7764 7764 6 -7765 7764 -1 -7784 7764 -1 -7765 7765 6 -7766 7765 -1 -7785 7765 -1 -7766 7766 6 -7767 7766 -1 -7786 7766 -1 -7767 7767 6 -7768 7767 -1 -7787 7767 -1 -7768 7768 6 -7769 7768 -1 -7788 7768 -1 -7769 7769 6 -7770 7769 -1 -7789 7769 -1 -7770 7770 6 -7771 7770 -1 -7790 7770 -1 -7771 7771 6 -7772 7771 -1 -7791 7771 -1 -7772 7772 6 -7773 7772 -1 -7792 7772 -1 -7773 7773 6 -7774 7773 -1 -7793 7773 -1 -7774 7774 6 -7775 7774 -1 -7794 7774 -1 -7775 7775 6 -7776 7775 -1 -7795 7775 -1 -7776 7776 6 -7777 7776 -1 -7796 7776 -1 -7777 7777 6 -7778 7777 -1 -7797 7777 -1 -7778 7778 6 -7779 7778 -1 -7798 7778 -1 -7779 7779 6 -7780 7779 -1 -7799 7779 -1 -7780 7780 6 -7800 7780 -1 -7781 7781 6 -7782 7781 -1 -7801 7781 -1 -7782 7782 6 -7783 7782 -1 -7802 7782 -1 -7783 7783 6 -7784 7783 -1 -7803 7783 -1 -7784 7784 6 -7785 7784 -1 -7804 7784 -1 -7785 7785 6 -7786 7785 -1 -7805 7785 -1 -7786 7786 6 -7787 7786 -1 -7806 7786 -1 -7787 7787 6 -7788 7787 -1 -7807 7787 -1 -7788 7788 6 -7789 7788 -1 -7808 7788 -1 -7789 7789 6 -7790 7789 -1 -7809 7789 -1 -7790 7790 6 -7791 7790 -1 -7810 7790 -1 -7791 7791 6 -7792 7791 -1 -7811 7791 -1 -7792 7792 6 -7793 7792 -1 -7812 7792 -1 -7793 7793 6 -7794 7793 -1 -7813 7793 -1 -7794 7794 6 -7795 7794 -1 -7814 7794 -1 -7795 7795 6 -7796 7795 -1 -7815 7795 -1 -7796 7796 6 -7797 7796 -1 -7816 7796 -1 -7797 7797 6 -7798 7797 -1 -7817 7797 -1 -7798 7798 6 -7799 7798 -1 -7818 7798 -1 -7799 7799 6 -7800 7799 -1 -7819 7799 -1 -7800 7800 6 -7820 7800 -1 -7801 7801 6 -7802 7801 -1 -7821 7801 -1 -7802 7802 6 -7803 7802 -1 -7822 7802 -1 -7803 7803 6 -7804 7803 -1 -7823 7803 -1 -7804 7804 6 -7805 7804 -1 -7824 7804 -1 -7805 7805 6 -7806 7805 -1 -7825 7805 -1 -7806 7806 6 -7807 7806 -1 -7826 7806 -1 -7807 7807 6 -7808 7807 -1 -7827 7807 -1 -7808 7808 6 -7809 7808 -1 -7828 7808 -1 -7809 7809 6 -7810 7809 -1 -7829 7809 -1 -7810 7810 6 -7811 7810 -1 -7830 7810 -1 -7811 7811 6 -7812 7811 -1 -7831 7811 -1 -7812 7812 6 -7813 7812 -1 -7832 7812 -1 -7813 7813 6 -7814 7813 -1 -7833 7813 -1 -7814 7814 6 -7815 7814 -1 -7834 7814 -1 -7815 7815 6 -7816 7815 -1 -7835 7815 -1 -7816 7816 6 -7817 7816 -1 -7836 7816 -1 -7817 7817 6 -7818 7817 -1 -7837 7817 -1 -7818 7818 6 -7819 7818 -1 -7838 7818 -1 -7819 7819 6 -7820 7819 -1 -7839 7819 -1 -7820 7820 6 -7840 7820 -1 -7821 7821 6 -7822 7821 -1 -7841 7821 -1 -7822 7822 6 -7823 7822 -1 -7842 7822 -1 -7823 7823 6 -7824 7823 -1 -7843 7823 -1 -7824 7824 6 -7825 7824 -1 -7844 7824 -1 -7825 7825 6 -7826 7825 -1 -7845 7825 -1 -7826 7826 6 -7827 7826 -1 -7846 7826 -1 -7827 7827 6 -7828 7827 -1 -7847 7827 -1 -7828 7828 6 -7829 7828 -1 -7848 7828 -1 -7829 7829 6 -7830 7829 -1 -7849 7829 -1 -7830 7830 6 -7831 7830 -1 -7850 7830 -1 -7831 7831 6 -7832 7831 -1 -7851 7831 -1 -7832 7832 6 -7833 7832 -1 -7852 7832 -1 -7833 7833 6 -7834 7833 -1 -7853 7833 -1 -7834 7834 6 -7835 7834 -1 -7854 7834 -1 -7835 7835 6 -7836 7835 -1 -7855 7835 -1 -7836 7836 6 -7837 7836 -1 -7856 7836 -1 -7837 7837 6 -7838 7837 -1 -7857 7837 -1 -7838 7838 6 -7839 7838 -1 -7858 7838 -1 -7839 7839 6 -7840 7839 -1 -7859 7839 -1 -7840 7840 6 -7860 7840 -1 -7841 7841 6 -7842 7841 -1 -7861 7841 -1 -7842 7842 6 -7843 7842 -1 -7862 7842 -1 -7843 7843 6 -7844 7843 -1 -7863 7843 -1 -7844 7844 6 -7845 7844 -1 -7864 7844 -1 -7845 7845 6 -7846 7845 -1 -7865 7845 -1 -7846 7846 6 -7847 7846 -1 -7866 7846 -1 -7847 7847 6 -7848 7847 -1 -7867 7847 -1 -7848 7848 6 -7849 7848 -1 -7868 7848 -1 -7849 7849 6 -7850 7849 -1 -7869 7849 -1 -7850 7850 6 -7851 7850 -1 -7870 7850 -1 -7851 7851 6 -7852 7851 -1 -7871 7851 -1 -7852 7852 6 -7853 7852 -1 -7872 7852 -1 -7853 7853 6 -7854 7853 -1 -7873 7853 -1 -7854 7854 6 -7855 7854 -1 -7874 7854 -1 -7855 7855 6 -7856 7855 -1 -7875 7855 -1 -7856 7856 6 -7857 7856 -1 -7876 7856 -1 -7857 7857 6 -7858 7857 -1 -7877 7857 -1 -7858 7858 6 -7859 7858 -1 -7878 7858 -1 -7859 7859 6 -7860 7859 -1 -7879 7859 -1 -7860 7860 6 -7880 7860 -1 -7861 7861 6 -7862 7861 -1 -7881 7861 -1 -7862 7862 6 -7863 7862 -1 -7882 7862 -1 -7863 7863 6 -7864 7863 -1 -7883 7863 -1 -7864 7864 6 -7865 7864 -1 -7884 7864 -1 -7865 7865 6 -7866 7865 -1 -7885 7865 -1 -7866 7866 6 -7867 7866 -1 -7886 7866 -1 -7867 7867 6 -7868 7867 -1 -7887 7867 -1 -7868 7868 6 -7869 7868 -1 -7888 7868 -1 -7869 7869 6 -7870 7869 -1 -7889 7869 -1 -7870 7870 6 -7871 7870 -1 -7890 7870 -1 -7871 7871 6 -7872 7871 -1 -7891 7871 -1 -7872 7872 6 -7873 7872 -1 -7892 7872 -1 -7873 7873 6 -7874 7873 -1 -7893 7873 -1 -7874 7874 6 -7875 7874 -1 -7894 7874 -1 -7875 7875 6 -7876 7875 -1 -7895 7875 -1 -7876 7876 6 -7877 7876 -1 -7896 7876 -1 -7877 7877 6 -7878 7877 -1 -7897 7877 -1 -7878 7878 6 -7879 7878 -1 -7898 7878 -1 -7879 7879 6 -7880 7879 -1 -7899 7879 -1 -7880 7880 6 -7900 7880 -1 -7881 7881 6 -7882 7881 -1 -7901 7881 -1 -7882 7882 6 -7883 7882 -1 -7902 7882 -1 -7883 7883 6 -7884 7883 -1 -7903 7883 -1 -7884 7884 6 -7885 7884 -1 -7904 7884 -1 -7885 7885 6 -7886 7885 -1 -7905 7885 -1 -7886 7886 6 -7887 7886 -1 -7906 7886 -1 -7887 7887 6 -7888 7887 -1 -7907 7887 -1 -7888 7888 6 -7889 7888 -1 -7908 7888 -1 -7889 7889 6 -7890 7889 -1 -7909 7889 -1 -7890 7890 6 -7891 7890 -1 -7910 7890 -1 -7891 7891 6 -7892 7891 -1 -7911 7891 -1 -7892 7892 6 -7893 7892 -1 -7912 7892 -1 -7893 7893 6 -7894 7893 -1 -7913 7893 -1 -7894 7894 6 -7895 7894 -1 -7914 7894 -1 -7895 7895 6 -7896 7895 -1 -7915 7895 -1 -7896 7896 6 -7897 7896 -1 -7916 7896 -1 -7897 7897 6 -7898 7897 -1 -7917 7897 -1 -7898 7898 6 -7899 7898 -1 -7918 7898 -1 -7899 7899 6 -7900 7899 -1 -7919 7899 -1 -7900 7900 6 -7920 7900 -1 -7901 7901 6 -7902 7901 -1 -7921 7901 -1 -7902 7902 6 -7903 7902 -1 -7922 7902 -1 -7903 7903 6 -7904 7903 -1 -7923 7903 -1 -7904 7904 6 -7905 7904 -1 -7924 7904 -1 -7905 7905 6 -7906 7905 -1 -7925 7905 -1 -7906 7906 6 -7907 7906 -1 -7926 7906 -1 -7907 7907 6 -7908 7907 -1 -7927 7907 -1 -7908 7908 6 -7909 7908 -1 -7928 7908 -1 -7909 7909 6 -7910 7909 -1 -7929 7909 -1 -7910 7910 6 -7911 7910 -1 -7930 7910 -1 -7911 7911 6 -7912 7911 -1 -7931 7911 -1 -7912 7912 6 -7913 7912 -1 -7932 7912 -1 -7913 7913 6 -7914 7913 -1 -7933 7913 -1 -7914 7914 6 -7915 7914 -1 -7934 7914 -1 -7915 7915 6 -7916 7915 -1 -7935 7915 -1 -7916 7916 6 -7917 7916 -1 -7936 7916 -1 -7917 7917 6 -7918 7917 -1 -7937 7917 -1 -7918 7918 6 -7919 7918 -1 -7938 7918 -1 -7919 7919 6 -7920 7919 -1 -7939 7919 -1 -7920 7920 6 -7940 7920 -1 -7921 7921 6 -7922 7921 -1 -7941 7921 -1 -7922 7922 6 -7923 7922 -1 -7942 7922 -1 -7923 7923 6 -7924 7923 -1 -7943 7923 -1 -7924 7924 6 -7925 7924 -1 -7944 7924 -1 -7925 7925 6 -7926 7925 -1 -7945 7925 -1 -7926 7926 6 -7927 7926 -1 -7946 7926 -1 -7927 7927 6 -7928 7927 -1 -7947 7927 -1 -7928 7928 6 -7929 7928 -1 -7948 7928 -1 -7929 7929 6 -7930 7929 -1 -7949 7929 -1 -7930 7930 6 -7931 7930 -1 -7950 7930 -1 -7931 7931 6 -7932 7931 -1 -7951 7931 -1 -7932 7932 6 -7933 7932 -1 -7952 7932 -1 -7933 7933 6 -7934 7933 -1 -7953 7933 -1 -7934 7934 6 -7935 7934 -1 -7954 7934 -1 -7935 7935 6 -7936 7935 -1 -7955 7935 -1 -7936 7936 6 -7937 7936 -1 -7956 7936 -1 -7937 7937 6 -7938 7937 -1 -7957 7937 -1 -7938 7938 6 -7939 7938 -1 -7958 7938 -1 -7939 7939 6 -7940 7939 -1 -7959 7939 -1 -7940 7940 6 -7960 7940 -1 -7941 7941 6 -7942 7941 -1 -7961 7941 -1 -7942 7942 6 -7943 7942 -1 -7962 7942 -1 -7943 7943 6 -7944 7943 -1 -7963 7943 -1 -7944 7944 6 -7945 7944 -1 -7964 7944 -1 -7945 7945 6 -7946 7945 -1 -7965 7945 -1 -7946 7946 6 -7947 7946 -1 -7966 7946 -1 -7947 7947 6 -7948 7947 -1 -7967 7947 -1 -7948 7948 6 -7949 7948 -1 -7968 7948 -1 -7949 7949 6 -7950 7949 -1 -7969 7949 -1 -7950 7950 6 -7951 7950 -1 -7970 7950 -1 -7951 7951 6 -7952 7951 -1 -7971 7951 -1 -7952 7952 6 -7953 7952 -1 -7972 7952 -1 -7953 7953 6 -7954 7953 -1 -7973 7953 -1 -7954 7954 6 -7955 7954 -1 -7974 7954 -1 -7955 7955 6 -7956 7955 -1 -7975 7955 -1 -7956 7956 6 -7957 7956 -1 -7976 7956 -1 -7957 7957 6 -7958 7957 -1 -7977 7957 -1 -7958 7958 6 -7959 7958 -1 -7978 7958 -1 -7959 7959 6 -7960 7959 -1 -7979 7959 -1 -7960 7960 6 -7980 7960 -1 -7961 7961 6 -7962 7961 -1 -7981 7961 -1 -7962 7962 6 -7963 7962 -1 -7982 7962 -1 -7963 7963 6 -7964 7963 -1 -7983 7963 -1 -7964 7964 6 -7965 7964 -1 -7984 7964 -1 -7965 7965 6 -7966 7965 -1 -7985 7965 -1 -7966 7966 6 -7967 7966 -1 -7986 7966 -1 -7967 7967 6 -7968 7967 -1 -7987 7967 -1 -7968 7968 6 -7969 7968 -1 -7988 7968 -1 -7969 7969 6 -7970 7969 -1 -7989 7969 -1 -7970 7970 6 -7971 7970 -1 -7990 7970 -1 -7971 7971 6 -7972 7971 -1 -7991 7971 -1 -7972 7972 6 -7973 7972 -1 -7992 7972 -1 -7973 7973 6 -7974 7973 -1 -7993 7973 -1 -7974 7974 6 -7975 7974 -1 -7994 7974 -1 -7975 7975 6 -7976 7975 -1 -7995 7975 -1 -7976 7976 6 -7977 7976 -1 -7996 7976 -1 -7977 7977 6 -7978 7977 -1 -7997 7977 -1 -7978 7978 6 -7979 7978 -1 -7998 7978 -1 -7979 7979 6 -7980 7979 -1 -7999 7979 -1 -7980 7980 6 -8000 7980 -1 -7981 7981 6 -7982 7981 -1 -7982 7982 6 -7983 7982 -1 -7983 7983 6 -7984 7983 -1 -7984 7984 6 -7985 7984 -1 -7985 7985 6 -7986 7985 -1 -7986 7986 6 -7987 7986 -1 -7987 7987 6 -7988 7987 -1 -7988 7988 6 -7989 7988 -1 -7989 7989 6 -7990 7989 -1 -7990 7990 6 -7991 7990 -1 -7991 7991 6 -7992 7991 -1 -7992 7992 6 -7993 7992 -1 -7993 7993 6 -7994 7993 -1 -7994 7994 6 -7995 7994 -1 -7995 7995 6 -7996 7995 -1 -7996 7996 6 -7997 7996 -1 -7997 7997 6 -7998 7997 -1 -7998 7998 6 -7999 7998 -1 -7999 7999 6 -8000 7999 -1 -8000 8000 6 diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/mmio.c b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/mmio.c deleted file mode 100644 index 7ecf9c2c..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/mmio.c +++ /dev/null @@ -1,477 +0,0 @@ -/* - * Matrix Market I/O library for ANSI C - * - * See http://math.nist.gov/MatrixMarket for details. - * - * - */ - -/* avoid Windows warnings (for example: strcpy, fscanf, etc.) */ -#if defined(_WIN32) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "mmio.h" - -#include -#include -#include -#include - -int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_) -{ - FILE *f; - MM_typecode matcode; - int M, N, nz; - int i; - double *val; - int *I, *J; - - if ((f = fopen(fname, "r")) == NULL) - return -1; - - - if (mm_read_banner(f, &matcode) != 0) { - printf("mm_read_unsymetric: Could not process Matrix Market banner "); - printf(" in file [%s]\n", fname); - return -1; - } - - - if (!(mm_is_real(matcode) && mm_is_matrix(matcode) && mm_is_sparse(matcode))) { - fprintf(stderr, "Sorry, this application does not support "); - fprintf(stderr, "Market Market type: [%s]\n", mm_typecode_to_str(matcode)); - return -1; - } - - /* find out size of sparse matrix: M, N, nz .... */ - - if (mm_read_mtx_crd_size(f, &M, &N, &nz) != 0) { - fprintf(stderr, "read_unsymmetric_sparse(): could not parse matrix size.\n"); - return -1; - } - - *M_ = M; - *N_ = N; - *nz_ = nz; - - /* reserve memory for matrices */ - - I = (int *)malloc(nz * sizeof(int)); - J = (int *)malloc(nz * sizeof(int)); - val = (double *)malloc(nz * sizeof(double)); - - *val_ = val; - *I_ = I; - *J_ = J; - - /* NOTE: when reading in doubles, ANSI C requires the use of the "l" */ - /* specifier as in "%lg", "%lf", "%le", otherwise errors will occur */ - /* (ANSI C X3.159-1989, Sec. 4.9.6.2, p. 136 lines 13-15) */ - - for (i = 0; i < nz; i++) { - if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3) { - return -1; - } - I[i]--; /* adjust from 1-based to 0-based */ - J[i]--; - } - fclose(f); - - return 0; -} - -int mm_is_valid(MM_typecode matcode) -{ - if (!mm_is_matrix(matcode)) - return 0; - if (mm_is_dense(matcode) && mm_is_pattern(matcode)) - return 0; - if (mm_is_real(matcode) && mm_is_hermitian(matcode)) - return 0; - if (mm_is_pattern(matcode) && (mm_is_hermitian(matcode) || mm_is_skew(matcode))) - return 0; - return 1; -} - -int mm_read_banner(FILE *f, MM_typecode *matcode) -{ - char line[MM_MAX_LINE_LENGTH]; - char banner[MM_MAX_TOKEN_LENGTH]; - char mtx[MM_MAX_TOKEN_LENGTH]; - char crd[MM_MAX_TOKEN_LENGTH]; - char data_type[MM_MAX_TOKEN_LENGTH]; - char storage_scheme[MM_MAX_TOKEN_LENGTH]; - char *p; - - - mm_clear_typecode(matcode); - - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - - if (sscanf(line, "%s %s %s %s %s", banner, mtx, crd, data_type, storage_scheme) != 5) - return MM_PREMATURE_EOF; - - for (p = mtx; *p != '\0'; *p = tolower(*p), p++) - ; /* convert to lower case */ - for (p = crd; *p != '\0'; *p = tolower(*p), p++) - ; - for (p = data_type; *p != '\0'; *p = tolower(*p), p++) - ; - for (p = storage_scheme; *p != '\0'; *p = tolower(*p), p++) - ; - - /* check for banner */ - if (strncmp(banner, MatrixMarketBanner, strlen(MatrixMarketBanner)) != 0) - return MM_NO_HEADER; - - /* first field should be "mtx" */ - if (strcmp(mtx, MM_MTX_STR) != 0) - return MM_UNSUPPORTED_TYPE; - mm_set_matrix(matcode); - - - /* second field describes whether this is a sparse matrix (in coordinate - storage) or a dense array */ - - - if (strcmp(crd, MM_SPARSE_STR) == 0) - mm_set_sparse(matcode); - else if (strcmp(crd, MM_DENSE_STR) == 0) - mm_set_dense(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - /* third field */ - - if (strcmp(data_type, MM_REAL_STR) == 0) - mm_set_real(matcode); - else if (strcmp(data_type, MM_COMPLEX_STR) == 0) - mm_set_complex(matcode); - else if (strcmp(data_type, MM_PATTERN_STR) == 0) - mm_set_pattern(matcode); - else if (strcmp(data_type, MM_INT_STR) == 0) - mm_set_integer(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - /* fourth field */ - - if (strcmp(storage_scheme, MM_GENERAL_STR) == 0) - mm_set_general(matcode); - else if (strcmp(storage_scheme, MM_SYMM_STR) == 0) - mm_set_symmetric(matcode); - else if (strcmp(storage_scheme, MM_HERM_STR) == 0) - mm_set_hermitian(matcode); - else if (strcmp(storage_scheme, MM_SKEW_STR) == 0) - mm_set_skew(matcode); - else - return MM_UNSUPPORTED_TYPE; - - - return 0; -} - -int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz) -{ - if (fprintf(f, "%d %d %d\n", M, N, nz) != 3) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - -int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz) -{ - char line[MM_MAX_LINE_LENGTH]; - int num_items_read; - - /* set return null parameter values, in case we exit with errors */ - *M = *N = *nz = 0; - - /* now continue scanning until you reach the end-of-comments */ - do { - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - } while (line[0] == '%'); - - /* line[] is either blank or has M,N, nz */ - if (sscanf(line, "%d %d %d", M, N, nz) == 3) - return 0; - - else - do { - num_items_read = fscanf(f, "%d %d %d", M, N, nz); - if (num_items_read == EOF) - return MM_PREMATURE_EOF; - } while (num_items_read != 3); - - return 0; -} - - -int mm_read_mtx_array_size(FILE *f, int *M, int *N) -{ - char line[MM_MAX_LINE_LENGTH]; - int num_items_read; - /* set return null parameter values, in case we exit with errors */ - *M = *N = 0; - - /* now continue scanning until you reach the end-of-comments */ - do { - if (fgets(line, MM_MAX_LINE_LENGTH, f) == NULL) - return MM_PREMATURE_EOF; - } while (line[0] == '%'); - - /* line[] is either blank or has M,N, nz */ - if (sscanf(line, "%d %d", M, N) == 2) - return 0; - - else /* we have a blank line */ - do { - num_items_read = fscanf(f, "%d %d", M, N); - if (num_items_read == EOF) - return MM_PREMATURE_EOF; - } while (num_items_read != 2); - - return 0; -} - -int mm_write_mtx_array_size(FILE *f, int M, int N) -{ - if (fprintf(f, "%d %d\n", M, N) != 2) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - - -/*-------------------------------------------------------------------------*/ - -/******************************************************************/ -/* use when I[], J[], and val[]J, and val[] are already allocated */ -/******************************************************************/ - -int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode) -{ - int i; - if (mm_is_complex(matcode)) { - for (i = 0; i < nz; i++) - if (fscanf(f, "%d %d %lg %lg", &I[i], &J[i], &val[2 * i], &val[2 * i + 1]) != 4) - return MM_PREMATURE_EOF; - } - else if (mm_is_real(matcode) || mm_is_integer(matcode)) { - for (i = 0; i < nz; i++) { - if (fscanf(f, "%d %d %lg\n", &I[i], &J[i], &val[i]) != 3) - return MM_PREMATURE_EOF; - } - } - - else if (mm_is_pattern(matcode)) { - for (i = 0; i < nz; i++) - if (fscanf(f, "%d %d", &I[i], &J[i]) != 2) - return MM_PREMATURE_EOF; - } - else - return MM_UNSUPPORTED_TYPE; - - return 0; -} - -int mm_read_mtx_crd_entry(FILE *f, int *I, int *J, double *real, double *imag, MM_typecode matcode) -{ - if (mm_is_complex(matcode)) { - if (fscanf(f, "%d %d %lg %lg", I, J, real, imag) != 4) - return MM_PREMATURE_EOF; - } - else if (mm_is_real(matcode) || mm_is_integer(matcode)) { - if (fscanf(f, "%d %d %lg\n", I, J, real) != 3) - return MM_PREMATURE_EOF; - } - - else if (mm_is_pattern(matcode)) { - if (fscanf(f, "%d %d", I, J) != 2) - return MM_PREMATURE_EOF; - } - else - return MM_UNSUPPORTED_TYPE; - - return 0; -} - - -/************************************************************************ - mm_read_mtx_crd() fills M, N, nz, array of values, and return - type code, e.g. 'MCRS' - - if matrix is complex, values[] is of size 2*nz, - (nz pairs of real/imaginary values) -************************************************************************/ - -int mm_read_mtx_crd(char *fname, int *M, int *N, int *nz, int **I, int **J, double **val, MM_typecode *matcode) -{ - int ret_code; - FILE *f; - - if (strcmp(fname, "stdin") == 0) - f = stdin; - else if ((f = fopen(fname, "r")) == NULL) - return MM_COULD_NOT_READ_FILE; - - - if ((ret_code = mm_read_banner(f, matcode)) != 0) - return ret_code; - - if (!(mm_is_valid(*matcode) && mm_is_sparse(*matcode) && mm_is_matrix(*matcode))) - return MM_UNSUPPORTED_TYPE; - - if ((ret_code = mm_read_mtx_crd_size(f, M, N, nz)) != 0) - return ret_code; - - - *I = (int *)malloc(*nz * sizeof(int)); - *J = (int *)malloc(*nz * sizeof(int)); - *val = NULL; - - if (mm_is_complex(*matcode)) { - *val = (double *)malloc(*nz * 2 * sizeof(double)); - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - else if (mm_is_real(*matcode) || mm_is_integer(*matcode)) { - *val = (double *)malloc(*nz * sizeof(double)); - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - - else if (mm_is_pattern(*matcode)) { - ret_code = mm_read_mtx_crd_data(f, *M, *N, *nz, *I, *J, *val, *matcode); - if (ret_code != 0) - return ret_code; - } - - if (f != stdin) - fclose(f); - return 0; -} - -int mm_write_banner(FILE *f, MM_typecode matcode) -{ - char *str = mm_typecode_to_str(matcode); - int ret_code; - - ret_code = fprintf(f, "%s %s\n", MatrixMarketBanner, str); - free(str); - if (ret_code != 2) - return MM_COULD_NOT_WRITE_FILE; - else - return 0; -} - -int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode) -{ - FILE *f; - int i; - - if (strcmp(fname, "stdout") == 0) - f = stdout; - else if ((f = fopen(fname, "w")) == NULL) - return MM_COULD_NOT_WRITE_FILE; - - /* print banner followed by typecode */ - fprintf(f, "%s ", MatrixMarketBanner); - fprintf(f, "%s\n", mm_typecode_to_str(matcode)); - - /* print matrix sizes and nonzeros */ - fprintf(f, "%d %d %d\n", M, N, nz); - - /* print values */ - if (mm_is_pattern(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d\n", I[i], J[i]); - else if (mm_is_integer(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %d\n", I[i], J[i], (int)val[i]); - else if (mm_is_real(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %20.16g\n", I[i], J[i], val[i]); - else if (mm_is_complex(matcode)) - for (i = 0; i < nz; i++) - fprintf(f, "%d %d %20.16g %20.16g\n", I[i], J[i], val[2 * i], val[2 * i + 1]); - else { - if (f != stdout) - fclose(f); - return MM_UNSUPPORTED_TYPE; - } - - if (f != stdout) - fclose(f); - - return 0; -} - -/** - * Create a new copy of a string s. mm_strdup() is a common routine, but - * not part of ANSI C, so it is included here. Used by mm_typecode_to_str(). - * - */ -static char *mm_strdup(const char *s) -{ - size_t len = strlen(s); - char *s2 = (char *)malloc((len + 1) * sizeof(char)); - return strcpy(s2, s); -} - -char *mm_typecode_to_str(MM_typecode matcode) -{ - char buffer[MM_MAX_LINE_LENGTH]; - char *types[4]; - // char *mm_strdup(const char *); - // int error =0; - - /* check for MTX type */ - if (mm_is_matrix(matcode)) - types[0] = MM_MTX_STR; - else - return NULL; // error=1; - - /* check for CRD or ARR matrix */ - if (mm_is_sparse(matcode)) - types[1] = MM_SPARSE_STR; - else if (mm_is_dense(matcode)) - types[1] = MM_DENSE_STR; - else - return NULL; - - /* check for element data type */ - if (mm_is_real(matcode)) - types[2] = MM_REAL_STR; - else if (mm_is_complex(matcode)) - types[2] = MM_COMPLEX_STR; - else if (mm_is_pattern(matcode)) - types[2] = MM_PATTERN_STR; - else if (mm_is_integer(matcode)) - types[2] = MM_INT_STR; - else - return NULL; - - - /* check for symmetry type */ - if (mm_is_general(matcode)) - types[3] = MM_GENERAL_STR; - else if (mm_is_symmetric(matcode)) - types[3] = MM_SYMM_STR; - else if (mm_is_hermitian(matcode)) - types[3] = MM_HERM_STR; - else if (mm_is_skew(matcode)) - types[3] = MM_SKEW_STR; - else - return NULL; - - sprintf(buffer, "%s %s %s %s", types[0], types[1], types[2], types[3]); - return mm_strdup(buffer); -} diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/mmio.h b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/mmio.h deleted file mode 100644 index a05f6063..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/mmio.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Matrix Market I/O library for ANSI C - * - * See http://math.nist.gov/MatrixMarket for details. - * - * - */ - -#ifndef MM_IO_H -#define MM_IO_H - -#include - -#if defined(__cplusplus) -extern "C" -{ -#endif /* __cplusplus */ - -#define MM_MAX_LINE_LENGTH 1025 -#define MatrixMarketBanner "%%MatrixMarket" -#define MM_MAX_TOKEN_LENGTH 64 - - typedef char MM_typecode[4]; - - char *mm_typecode_to_str(MM_typecode matcode); - - int mm_read_banner(FILE *f, MM_typecode *matcode); - int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz); - int mm_read_mtx_array_size(FILE *f, int *M, int *N); - - int mm_write_banner(FILE *f, MM_typecode matcode); - int mm_write_mtx_crd_size(FILE *f, int M, int N, int nz); - int mm_write_mtx_array_size(FILE *f, int M, int N); - - - /********************* MM_typecode query fucntions ***************************/ - -#define mm_is_matrix(typecode) ((typecode)[0] == 'M') - -#define mm_is_sparse(typecode) ((typecode)[1] == 'C') -#define mm_is_coordinate(typecode) ((typecode)[1] == 'C') -#define mm_is_dense(typecode) ((typecode)[1] == 'A') -#define mm_is_array(typecode) ((typecode)[1] == 'A') - -#define mm_is_complex(typecode) ((typecode)[2] == 'C') -#define mm_is_real(typecode) ((typecode)[2] == 'R') -#define mm_is_pattern(typecode) ((typecode)[2] == 'P') -#define mm_is_integer(typecode) ((typecode)[2] == 'I') - -#define mm_is_symmetric(typecode) ((typecode)[3] == 'S') -#define mm_is_general(typecode) ((typecode)[3] == 'G') -#define mm_is_skew(typecode) ((typecode)[3] == 'K') -#define mm_is_hermitian(typecode) ((typecode)[3] == 'H') - - int mm_is_valid(MM_typecode matcode); /* too complex for a macro */ - - - /********************* MM_typecode modify fucntions ***************************/ - -#define mm_set_matrix(typecode) ((*typecode)[0] = 'M') -#define mm_set_coordinate(typecode) ((*typecode)[1] = 'C') -#define mm_set_array(typecode) ((*typecode)[1] = 'A') -#define mm_set_dense(typecode) mm_set_array(typecode) -#define mm_set_sparse(typecode) mm_set_coordinate(typecode) - -#define mm_set_complex(typecode) ((*typecode)[2] = 'C') -#define mm_set_real(typecode) ((*typecode)[2] = 'R') -#define mm_set_pattern(typecode) ((*typecode)[2] = 'P') -#define mm_set_integer(typecode) ((*typecode)[2] = 'I') - - -#define mm_set_symmetric(typecode) ((*typecode)[3] = 'S') -#define mm_set_general(typecode) ((*typecode)[3] = 'G') -#define mm_set_skew(typecode) ((*typecode)[3] = 'K') -#define mm_set_hermitian(typecode) ((*typecode)[3] = 'H') - -#define mm_clear_typecode(typecode) ((*typecode)[0] = (*typecode)[1] = (*typecode)[2] = ' ', (*typecode)[3] = 'G') - -#define mm_initialize_typecode(typecode) mm_clear_typecode(typecode) - - - /********************* Matrix Market error codes ***************************/ - - -#define MM_COULD_NOT_READ_FILE 11 -#define MM_PREMATURE_EOF 12 -#define MM_NOT_MTX 13 -#define MM_NO_HEADER 14 -#define MM_UNSUPPORTED_TYPE 15 -#define MM_LINE_TOO_LONG 16 -#define MM_COULD_NOT_WRITE_FILE 17 - - - /******************** Matrix Market internal definitions ******************** - - MM_matrix_typecode: 4-character sequence - - ojbect sparse/ data storage - dense type scheme - - string position: [0] [1] [2] [3] - - Matrix typecode: M(atrix) C(oord) R(eal) G(eneral) - A(array) C(omplex) H(ermitian) - P(attern) S(ymmetric) - I(nteger) K(kew) - - ***********************************************************************/ - -#define MM_MTX_STR "matrix" -#define MM_ARRAY_STR "array" -#define MM_DENSE_STR "array" -#define MM_COORDINATE_STR "coordinate" -#define MM_SPARSE_STR "coordinate" -#define MM_COMPLEX_STR "complex" -#define MM_REAL_STR "real" -#define MM_INT_STR "integer" -#define MM_GENERAL_STR "general" -#define MM_SYMM_STR "symmetric" -#define MM_HERM_STR "hermitian" -#define MM_SKEW_STR "skew-symmetric" -#define MM_PATTERN_STR "pattern" - - - /* high level routines */ - int mm_read_mtx_crd(char *fname, int *M, int *N, int *nz, int **I, int **J, double **val, MM_typecode *matcode); - - int mm_write_mtx_crd(char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode); - int mm_read_mtx_crd_data(FILE *f, int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode); - int mm_read_mtx_crd_entry(FILE *f, int *I, int *J, double *real, double *img, MM_typecode matcode); - - int mm_read_unsymmetric_sparse(const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_); - -#if defined(__cplusplus) -} -#endif /* __cplusplus */ - -#endif diff --git a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/mmio_wrapper.cpp b/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/mmio_wrapper.cpp deleted file mode 100644 index 3f798d53..00000000 --- a/cpp/4_CUDA_Libraries/cuSolverSp_LowlevelQR/mmio_wrapper.cpp +++ /dev/null @@ -1,492 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include -#include -#include - -#include "mmio.h" - -/* avoid Windows warnings (for example: strcpy, fscanf, etc.) */ -#if defined(_WIN32) -#define _CRT_SECURE_NO_WARNINGS -#endif - -/* various __inline__ __device__ function to initialize a T_ELEM */ -template __inline__ T_ELEM cuGet(int); -template <> __inline__ float cuGet(int x) { return float(x); } - -template <> __inline__ double cuGet(int x) { return double(x); } - -template <> __inline__ cuComplex cuGet(int x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(int x) { return (make_cuDoubleComplex(double(x), 0.0)); } - -template __inline__ T_ELEM cuGet(int, int); -template <> __inline__ float cuGet(int x, int y) { return float(x); } - -template <> __inline__ double cuGet(int x, int y) { return double(x); } - -template <> __inline__ cuComplex cuGet(int x, int y) { return make_cuComplex(float(x), float(y)); } - -template <> __inline__ cuDoubleComplex cuGet(int x, int y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - -template __inline__ T_ELEM cuGet(float); -template <> __inline__ float cuGet(float x) { return float(x); } - -template <> __inline__ double cuGet(float x) { return double(x); } - -template <> __inline__ cuComplex cuGet(float x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(float x) -{ - return (make_cuDoubleComplex(double(x), 0.0)); -} - -template __inline__ T_ELEM cuGet(float, float); -template <> __inline__ float cuGet(float x, float y) { return float(x); } - -template <> __inline__ double cuGet(float x, float y) { return double(x); } - -template <> __inline__ cuComplex cuGet(float x, float y) { return (make_cuComplex(float(x), float(y))); } - -template <> __inline__ cuDoubleComplex cuGet(float x, float y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - -template __inline__ T_ELEM cuGet(double); -template <> __inline__ float cuGet(double x) { return float(x); } - -template <> __inline__ double cuGet(double x) { return double(x); } - -template <> __inline__ cuComplex cuGet(double x) { return (make_cuComplex(float(x), 0.0f)); } - -template <> __inline__ cuDoubleComplex cuGet(double x) -{ - return (make_cuDoubleComplex(double(x), 0.0)); -} - -template __inline__ T_ELEM cuGet(double, double); -template <> __inline__ float cuGet(double x, double y) { return float(x); } - -template <> __inline__ double cuGet(double x, double y) { return double(x); } - -template <> __inline__ cuComplex cuGet(double x, double y) { return (make_cuComplex(float(x), float(y))); } - -template <> __inline__ cuDoubleComplex cuGet(double x, double y) -{ - return (make_cuDoubleComplex(double(x), double(y))); -} - -static void compress_index(const int *Ind, int nnz, int m, int *Ptr, int base) -{ - int i; - - /* initialize everything to zero */ - for (i = 0; i < m + 1; i++) { - Ptr[i] = 0; - } - /* count elements in every row */ - Ptr[0] = base; - for (i = 0; i < nnz; i++) { - Ptr[Ind[i] + (1 - base)]++; - } - /* add all the values */ - for (i = 0; i < m; i++) { - Ptr[i + 1] += Ptr[i]; - } -} - -struct cooFormat -{ - int i; - int j; - int p; // permutation -}; - -int cmp_cooFormat_csr(struct cooFormat *s, struct cooFormat *t) -{ - if (s->i < t->i) { - return -1; - } - else if (s->i > t->i) { - return 1; - } - else { - return s->j - t->j; - } -} - -int cmp_cooFormat_csc(struct cooFormat *s, struct cooFormat *t) -{ - if (s->j < t->j) { - return -1; - } - else if (s->j > t->j) { - return 1; - } - else { - return s->i - t->i; - } -} - -typedef int (*FUNPTR)(const void *, const void *); -typedef int (*FUNPTR2)(struct cooFormat *s, struct cooFormat *t); - -static FUNPTR2 fptr_array[2] = { - cmp_cooFormat_csr, - cmp_cooFormat_csc, -}; - -static int verify_pattern(int m, int nnz, int *csrRowPtr, int *csrColInd) -{ - int i, col, start, end, base_index; - int error_found = 0; - - if (nnz != (csrRowPtr[m] - csrRowPtr[0])) { - fprintf(stderr, - "Error (nnz check failed): (csrRowPtr[%d]=%d - csrRowPtr[%d]=%d) " - "!= (nnz=%d)\n", - 0, - csrRowPtr[0], - m, - csrRowPtr[m], - nnz); - error_found = 1; - } - - base_index = csrRowPtr[0]; - if ((0 != base_index) && (1 != base_index)) { - fprintf(stderr, "Error (base index check failed): base index = %d\n", base_index); - error_found = 1; - } - - for (i = 0; (!error_found) && (i < m); i++) { - start = csrRowPtr[i] - base_index; - end = csrRowPtr[i + 1] - base_index; - if (start > end) { - fprintf(stderr, - "Error (corrupted row): csrRowPtr[%d] (=%d) > csrRowPtr[%d] (=%d)\n", - i, - start + base_index, - i + 1, - end + base_index); - error_found = 1; - } - for (col = start; col < end; col++) { - if (csrColInd[col] < base_index) { - fprintf(stderr, "Error (column vs. base index check failed): csrColInd[%d] < %d\n", col, base_index); - error_found = 1; - } - if ((col < (end - 1)) && (csrColInd[col] >= csrColInd[col + 1])) { - fprintf(stderr, - "Error (sorting of the column indecis check failed): " - "(csrColInd[%d]=%d) >= (csrColInd[%d]=%d)\n", - col, - csrColInd[col], - col + 1, - csrColInd[col + 1]); - error_found = 1; - } - } - } - return error_found; -} - -template -int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - T_ELEM **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix) -{ - MM_typecode matcode; - double *tempVal; - int *tempRowInd, *tempColInd; - double *tval; - int *trow, *tcol; - int *csrRowPtr, *cscColPtr; - int i, j, error, base, count; - struct cooFormat *work; - - /* read the matrix */ - error = mm_read_mtx_crd(filename, m, n, nnz, &trow, &tcol, &tval, &matcode); - if (error) { - fprintf(stderr, "!!!! can not open file: '%s'\n", filename); - return 1; - } - - /* start error checking */ - if (mm_is_complex(matcode) && ((elem_type != 'z') && (elem_type != 'c'))) { - fprintf(stderr, "!!!! complex matrix requires type 'z' or 'c'\n"); - return 1; - } - - if (mm_is_dense(matcode) || mm_is_array(matcode) || mm_is_pattern(matcode) /*|| mm_is_integer(matcode)*/) { - fprintf(stderr, "!!!! dense, array, pattern and integer matrices are not supported\n"); - return 1; - } - - /* if necessary symmetrize the pattern (transform from triangular to full) */ - if ((extendSymMatrix) && (mm_is_symmetric(matcode) || mm_is_hermitian(matcode) || mm_is_skew(matcode))) { - // count number of non-diagonal elements - count = 0; - for (i = 0; i < (*nnz); i++) { - if (trow[i] != tcol[i]) { - count++; - } - } - // allocate space for the symmetrized matrix - tempRowInd = (int *)malloc((*nnz + count) * sizeof(int)); - tempColInd = (int *)malloc((*nnz + count) * sizeof(int)); - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - tempVal = (double *)malloc((*nnz + count) * sizeof(double)); - } - else { - tempVal = (double *)malloc(2 * (*nnz + count) * sizeof(double)); - } - // copy the elements regular and transposed locations - for (j = 0, i = 0; i < (*nnz); i++) { - tempRowInd[j] = trow[i]; - tempColInd[j] = tcol[i]; - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - tempVal[j] = tval[i]; - } - else { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = tval[2 * i + 1]; - } - j++; - if (trow[i] != tcol[i]) { - tempRowInd[j] = tcol[i]; - tempColInd[j] = trow[i]; - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - if (mm_is_skew(matcode)) { - tempVal[j] = -tval[i]; - } - else { - tempVal[j] = tval[i]; - } - } - else { - if (mm_is_hermitian(matcode)) { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = -tval[2 * i + 1]; - } - else { - tempVal[2 * j] = tval[2 * i]; - tempVal[2 * j + 1] = tval[2 * i + 1]; - } - } - j++; - } - } - (*nnz) += count; - // free temporary storage - free(trow); - free(tcol); - free(tval); - } - else { - tempRowInd = trow; - tempColInd = tcol; - tempVal = tval; - } - // life time of (trow, tcol, tval) is over. - // please use COO format (tempRowInd, tempColInd, tempVal) - - // use qsort to sort COO format - work = (struct cooFormat *)malloc(sizeof(struct cooFormat) * (*nnz)); - if (NULL == work) { - fprintf(stderr, "!!!! allocation error, malloc failed\n"); - return 1; - } - for (i = 0; i < (*nnz); i++) { - work[i].i = tempRowInd[i]; - work[i].j = tempColInd[i]; - work[i].p = i; // permutation is identity - } - - if (csrFormat) { - /* create row-major ordering of indices (sorted by row and within each row - * by column) */ - qsort(work, *nnz, sizeof(struct cooFormat), (FUNPTR)fptr_array[0]); - } - else { - /* create column-major ordering of indices (sorted by column and within each - * column by row) */ - qsort(work, *nnz, sizeof(struct cooFormat), (FUNPTR)fptr_array[1]); - } - - // (tempRowInd, tempColInd) is sorted either by row-major or by col-major - for (i = 0; i < (*nnz); i++) { - tempRowInd[i] = work[i].i; - tempColInd[i] = work[i].j; - } - - // setup base - // check if there is any row/col 0, if so base-0 - // check if there is any row/col equal to matrix dimension m/n, if so base-1 - int base0 = 0; - int base1 = 0; - for (i = 0; i < (*nnz); i++) { - const int row = tempRowInd[i]; - const int col = tempColInd[i]; - if ((0 == row) || (0 == col)) { - base0 = 1; - } - if ((*m == row) || (*n == col)) { - base1 = 1; - } - } - if (base0 && base1) { - printf("Error: input matrix is base-0 and base-1 \n"); - return 1; - } - - base = 0; - if (base1) { - base = 1; - } - - /* compress the appropriate indices */ - if (csrFormat) { - /* CSR format (assuming row-major format) */ - csrRowPtr = (int *)malloc(((*m) + 1) * sizeof(csrRowPtr[0])); - if (!csrRowPtr) - return 1; - compress_index(tempRowInd, *nnz, *m, csrRowPtr, base); - - *aRowInd = csrRowPtr; - *aColInd = (int *)malloc((*nnz) * sizeof(int)); - } - else { - /* CSC format (assuming column-major format) */ - cscColPtr = (int *)malloc(((*n) + 1) * sizeof(cscColPtr[0])); - if (!cscColPtr) - return 1; - compress_index(tempColInd, *nnz, *n, cscColPtr, base); - - *aColInd = cscColPtr; - *aRowInd = (int *)malloc((*nnz) * sizeof(int)); - } - - /* transfrom the matrix values of type double into one of the cusparse library - * types */ - *aVal = (T_ELEM *)malloc((*nnz) * sizeof(T_ELEM)); - - for (i = 0; i < (*nnz); i++) { - if (csrFormat) { - (*aColInd)[i] = tempColInd[i]; - } - else { - (*aRowInd)[i] = tempRowInd[i]; - } - if (mm_is_real(matcode) || mm_is_integer(matcode)) { - (*aVal)[i] = cuGet(tempVal[work[i].p]); - } - else { - (*aVal)[i] = cuGet(tempVal[2 * work[i].p], tempVal[2 * work[i].p + 1]); - } - } - - /* check for corruption */ - int error_found; - if (csrFormat) { - error_found = verify_pattern(*m, *nnz, *aRowInd, *aColInd); - } - else { - error_found = verify_pattern(*n, *nnz, *aColInd, *aRowInd); - } - if (error_found) { - fprintf(stderr, "!!!! verify_pattern failed\n"); - return 1; - } - - /* cleanup and exit */ - free(work); - free(tempVal); - free(tempColInd); - free(tempRowInd); - - return 0; -} - -/* specific instantiation */ -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - float **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - double **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - cuComplex **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); - -template int loadMMSparseMatrix(char *filename, - char elem_type, - bool csrFormat, - int *m, - int *n, - int *nnz, - cuDoubleComplex **aVal, - int **aRowInd, - int **aColInd, - int extendSymMatrix); diff --git a/cpp/4_CUDA_Libraries/cubDeviceFind/CMakeLists.txt b/cpp/4_CUDA_Libraries/cubDeviceFind/CMakeLists.txt index 2937b837..303e44b0 100644 --- a/cpp/4_CUDA_Libraries/cubDeviceFind/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/cubDeviceFind/CMakeLists.txt @@ -1,9 +1,16 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cubDeviceFind LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + # Disable response file for libraries on QNX as qcc does not support lib paths with double quotes if(CMAKE_SYSTEM_NAME STREQUAL "QNX") set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES OFF) @@ -11,16 +18,6 @@ endif() find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - # Fetch CCCL via CPM. # Override with -DCCCL_SOURCE_DIR=/path/to/cccl to use a local checkout set(CCCL_SAMPLES_CCCL_TAG "v3.3.3" CACHE STRING @@ -39,24 +36,18 @@ if(NOT TARGET CCCL::CCCL) endif() endif() -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for cubDeviceFind add_executable(cubDeviceFind cubDeviceFind.cu) target_compile_options(cubDeviceFind PRIVATE $<$:--extended-lambda>) target_compile_features(cubDeviceFind PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(cubDeviceFind PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_link_libraries(cubDeviceFind PRIVATE CUDA::cudart CCCL::CCCL ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/cubDeviceSegmentedScan/CMakeLists.txt b/cpp/4_CUDA_Libraries/cubDeviceSegmentedScan/CMakeLists.txt index 60a402c1..b22a8a68 100644 --- a/cpp/4_CUDA_Libraries/cubDeviceSegmentedScan/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/cubDeviceSegmentedScan/CMakeLists.txt @@ -1,9 +1,16 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cubDeviceSegmentedScan LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + # Disable response file for libraries on QNX as qcc does not support lib paths with double quotes if(CMAKE_SYSTEM_NAME STREQUAL "QNX") set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES OFF) @@ -11,16 +18,6 @@ endif() find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - # Fetch CCCL via CPM. # Override with -DCCCL_SOURCE_DIR=/path/to/cccl to use a local checkout # instead of fetching from GitHub. @@ -40,24 +37,18 @@ if(NOT TARGET CCCL::CCCL) endif() endif() -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for cubDeviceSegmentedScan add_executable(cubDeviceSegmentedScan cubDeviceSegmentedScan.cu) target_compile_options(cubDeviceSegmentedScan PRIVATE $<$:--extended-lambda>) target_compile_features(cubDeviceSegmentedScan PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(cubDeviceSegmentedScan PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_link_libraries(cubDeviceSegmentedScan PRIVATE CUDA::cudart CCCL::CCCL ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/cubDeviceTransform/CMakeLists.txt b/cpp/4_CUDA_Libraries/cubDeviceTransform/CMakeLists.txt index ecacbd10..6a0abec6 100644 --- a/cpp/4_CUDA_Libraries/cubDeviceTransform/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/cubDeviceTransform/CMakeLists.txt @@ -1,9 +1,16 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cubDeviceTransform LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + # Disable response file for libraries on QNX as qcc does not support lib paths with double quotes if(CMAKE_SYSTEM_NAME STREQUAL "QNX") set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES OFF) @@ -11,16 +18,6 @@ endif() find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - # Fetch CCCL via CPM. # Override with -DCCCL_SOURCE_DIR=/path/to/cccl to use a local checkout set(CCCL_SAMPLES_CCCL_TAG "v3.3.3" CACHE STRING @@ -39,24 +36,18 @@ if(NOT TARGET CCCL::CCCL) endif() endif() -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for cubDeviceTransform add_executable(cubDeviceTransform cubDeviceTransform.cu) target_compile_options(cubDeviceTransform PRIVATE $<$:--extended-lambda>) target_compile_features(cubDeviceTransform PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(cubDeviceTransform PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_link_libraries(cubDeviceTransform PRIVATE CUDA::cudart CCCL::CCCL ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/cudaNvSci/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/cudaNvSci/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/cudaNvSci/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/cudaNvSci/.vscode/extensions.json b/cpp/4_CUDA_Libraries/cudaNvSci/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/cudaNvSci/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/cudaNvSci/CMakeLists.txt b/cpp/4_CUDA_Libraries/cudaNvSci/CMakeLists.txt index 005501c6..4784f4f1 100644 --- a/cpp/4_CUDA_Libraries/cudaNvSci/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/cudaNvSci/CMakeLists.txt @@ -1,46 +1,32 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cudaNvSci LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 90 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) find_package(NVSCI) -if(CMAKE_SYSTEM_NAME STREQUAL "Linux") +if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "QNX") if(NVSCI_FOUND) message(STATUS "FOUND NVSCI libs: ${NVSCIBUF_LIB} ${NVSCISYNC_LIB}") message(STATUS "Using NVSCI headers path: ${NVSCIBUF_INCLUDE_DIR} ${NVSCIBUF_INCLUDE_DIR}") - # Source file - # Add target for cudaNvSci add_executable(cudaNvSci imageKernels.cu cudaNvSci.cpp main.cpp) - target_compile_options(cudaNvSci PRIVATE $<$:--extended-lambda>) - target_compile_features(cudaNvSci PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(cudaNvSci PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(cudaNvSci PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ${NVSCI_INCLUDE_DIRS} ) - target_link_libraries(cudaNvSci CUDA::cuda_driver ${NVSCI_LIBRARIES} @@ -50,18 +36,15 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/teapot1024.ppm ${CMAKE_CURRENT_BINARY_DIR}/teapot1024.ppm ) - # Specify additional clean files set_target_properties(cudaNvSci PROPERTIES ADDITIONAL_CLEAN_FILES "teapot1024_out.ppm" ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "NvSCI not found - will not build sample 'cudaNvSci'") endif() else() - message(STATUS "Will not build sample cudaNvSci - requires Linux OS") + message(STATUS "Will not build sample cudaNvSci - requires Linux or QNX") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/cudaNvSci/README.md b/cpp/4_CUDA_Libraries/cudaNvSci/README.md index ac7ff197..d0d1d484 100644 --- a/cpp/4_CUDA_Libraries/cudaNvSci/README.md +++ b/cpp/4_CUDA_Libraries/cudaNvSci/README.md @@ -2,7 +2,7 @@ ## Description -This sample demonstrates CUDA-NvSciBuf/NvSciSync Interop. Two CPU threads import the NvSciBuf and NvSciSync into CUDA to perform two image processing algorithms on a ppm image - image rotation in 1st thread & rgba to grayscale conversion of rotated image in 2nd thread. Currently only supported on Ubuntu 18.04 +This sample demonstrates CUDA-NvSciBuf/NvSciSync Interop. Two CPU threads import the NvSciBuf and NvSciSync into CUDA to perform two image processing algorithms on a ppm image - image rotation in 1st thread & rgba to grayscale conversion of rotated image in 2nd thread. ## Key Concepts @@ -14,7 +14,7 @@ CUDA NvSci Interop, Data Parallel Algorithms, Image Processing ## Supported OSes -Linux +Linux, QNX (standard and safety cross-builds) ## Supported CPU Architecture @@ -36,4 +36,6 @@ cudaExternalMemoryGetMappedBuffer, cudaImportExternalSemaphore, cudaDeviceGetAtt Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. Make sure the dependencies mentioned in [Dependencies]() section above are installed. +On a QNX cross-build the NvSci headers and libraries come from the target filesystem, so pass `-DTARGET_FS=/path/to/qnx/targetfs` to cmake. Without it the build reports `NvSCI not found` and skips this sample. See the [QNX build instructions](../../../README.md#qnx). + ## References (for more details) diff --git a/cpp/4_CUDA_Libraries/cudaNvSci/imageKernels.cu b/cpp/4_CUDA_Libraries/cudaNvSci/imageKernels.cu index 1d86d23b..8eddb407 100644 --- a/cpp/4_CUDA_Libraries/cudaNvSci/imageKernels.cu +++ b/cpp/4_CUDA_Libraries/cudaNvSci/imageKernels.cu @@ -91,7 +91,7 @@ void launchGrayScaleKernel(unsigned int *d_rgbaImage, rgbToGrayscaleKernel<<>>(d_rgbaImage, imageWidth, imageHeight); unsigned int *outputData; - checkCudaErrors(cudaMallocHost((void **)&outputData, sizeof(unsigned int) * imageWidth * imageHeight)); + checkCudaErrors(cudaMallocHost((void **)&outputData, sizeof(unsigned int) * imageWidth * imageHeight, 0)); checkCudaErrors(cudaMemcpyAsync( outputData, d_rgbaImage, sizeof(unsigned int) * imageWidth * imageHeight, cudaMemcpyDeviceToHost, stream)); checkCudaErrors(cudaStreamSynchronize(stream)); diff --git a/cpp/4_CUDA_Libraries/freeImageInteropNPP/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/freeImageInteropNPP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/freeImageInteropNPP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/freeImageInteropNPP/.vscode/extensions.json b/cpp/4_CUDA_Libraries/freeImageInteropNPP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/freeImageInteropNPP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/freeImageInteropNPP/CMakeLists.txt b/cpp/4_CUDA_Libraries/freeImageInteropNPP/CMakeLists.txt deleted file mode 100644 index b3e89dc6..00000000 --- a/cpp/4_CUDA_Libraries/freeImageInteropNPP/CMakeLists.txt +++ /dev/null @@ -1,71 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(freeImageInteropNPP LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories( - ../../../Common - ../../../Common/UtilNPP -) - -# Source file -find_package(FreeImage) - -if(${FreeImage_FOUND}) - # Add target for freeImageInteropNPP - add_executable(freeImageInteropNPP freeImageInteropNPP.cpp) - - target_compile_options(freeImageInteropNPP PRIVATE $<$:--extended-lambda>) - - target_compile_features(freeImageInteropNPP PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(freeImageInteropNPP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - - target_include_directories(freeImageInteropNPP PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} - ${FreeImage_INCLUDE_DIRS} - ) - - target_link_libraries(freeImageInteropNPP PRIVATE - CUDA::nppc - CUDA::nppisu - CUDA::nppif - CUDA::cudart - ${FreeImage_LIBRARIES} - ) - - # Copy data files to output directory - add_custom_command(TARGET freeImageInteropNPP POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/../../../Common/data/teapot512.pgm - ${CMAKE_CURRENT_BINARY_DIR}/ - ) - if(WIN32) - add_custom_command(TARGET freeImageInteropNPP - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${FreeImage_LIBRARY}/../FreeImage.dll - ${CMAKE_CURRENT_BINARY_DIR}/$ - ) - endif() -else() - message(STATUS "FreeImage not found - will not build sample 'freeImageInteropNPP'") -endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/freeImageInteropNPP/README.md b/cpp/4_CUDA_Libraries/freeImageInteropNPP/README.md deleted file mode 100644 index d59152e3..00000000 --- a/cpp/4_CUDA_Libraries/freeImageInteropNPP/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# freeImageInteropNPP - FreeImage and NPP Interopability - -## Description - -A simple CUDA Sample demonstrate how to use FreeImage library with NPP. - -## Key Concepts - -Performance Strategies, Image Processing, NPP Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaRuntimeGetVersion, cudaSetDevice, cudaGetDeviceCount, cudaDeviceInit, cudaDriverGetVersion, cudaGetDeviceProperties - -## Dependencies needed to build/run -[FreeImage](../../../README.md#freeimage), [NPP](../../../README.md#npp) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/freeImageInteropNPP/freeImageInteropNPP.cpp b/cpp/4_CUDA_Libraries/freeImageInteropNPP/freeImageInteropNPP.cpp deleted file mode 100644 index 36987695..00000000 --- a/cpp/4_CUDA_Libraries/freeImageInteropNPP/freeImageInteropNPP.cpp +++ /dev/null @@ -1,325 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -// A simple CUDA Sample demonstrates how to use FreeImage library with NPP. -// Detailed description of this example can be found as comments in the source -// code. - -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) -#pragma warning(disable : 4819) -#define WINDOWS_LEAN_AND_MEAN -#define NOMINMAX -#include -#endif - -// Common Helpers - -#include "Exceptions.h" -#include "FreeImage.h" - -// Other Includes -#include -#include -#include -#include // CUDA NPP Definitions -#include - -// Other helpers -#include // helper for CUDA Error handling and initialization -#include // helper for string parsing - -inline int cudaDeviceInit(int argc, const char **argv) -{ - int deviceCount; - checkCudaErrors(cudaGetDeviceCount(&deviceCount)); - - if (deviceCount == 0) { - std::cerr << "CUDA error: no devices supporting CUDA." << std::endl; - exit(EXIT_FAILURE); - } - - int dev = findCudaDevice(argc, argv); - - cudaDeviceProp deviceProp; - cudaGetDeviceProperties(&deviceProp, dev); - std::cerr << "cudaSetDevice GPU" << dev << " = " << deviceProp.name << std::endl; - - checkCudaErrors(cudaSetDevice(dev)); - - return dev; -} - -// Error handler for FreeImage library. -// In case this handler is invoked, it throws an NPP exception. -extern "C" void FreeImageErrorHandler(FREE_IMAGE_FORMAT oFif, const char *zMessage) { throw npp::Exception(zMessage); } - -std::ostream &operator<<(std::ostream &rOutputStream, const FIBITMAP &rBitmap) -{ - unsigned int nImageWidth = FreeImage_GetWidth(const_cast(&rBitmap)); - unsigned int nImageHeight = FreeImage_GetHeight(const_cast(&rBitmap)); - unsigned int nPitch = FreeImage_GetPitch(const_cast(&rBitmap)); - unsigned int nBPP = FreeImage_GetBPP(const_cast(&rBitmap)); - - FREE_IMAGE_COLOR_TYPE eType = FreeImage_GetColorType(const_cast(&rBitmap)); - - rOutputStream << "Size (" << nImageWidth << ", " << nImageHeight << ")\n"; - rOutputStream << "Pitch " << nPitch << "\n"; - rOutputStream << "Type "; - - switch (eType) { - case FIC_MINISWHITE: - rOutputStream << "FIC_MINISWHITE\n"; - break; - - case FIC_MINISBLACK: - rOutputStream << "FIC_MINISBLACK\n"; - break; - - case FIC_RGB: - rOutputStream << "FIC_RGB\n"; - break; - - case FIC_PALETTE: - rOutputStream << "FIC_PALETTE\n"; - break; - - case FIC_RGBALPHA: - rOutputStream << "FIC_RGBALPHA\n"; - break; - - case FIC_CMYK: - rOutputStream << "FIC_CMYK\n"; - break; - - default: - rOutputStream << "Unknown pixel format.\n"; - } - - rOutputStream << "BPP " << nBPP << std::endl; - - return rOutputStream; -} - -int main(int argc, char *argv[]) -{ - printf("%s Starting...\n\n", argv[0]); - - try { - std::string sFilename; - char *filePath; - - // set your own FreeImage error handler - FreeImage_SetOutputMessage(FreeImageErrorHandler); - - cudaDeviceInit(argc, (const char **)argv); - - NppStreamContext nppStreamCtx; - nppStreamCtx.hStream = - 0; // The NULL stream by default, set this to whatever your stream ID is if not the NULL stream. - - cudaError_t cudaError = cudaGetDevice(&nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) { - printf("CUDA error: no devices supporting CUDA.\n"); - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - } - - const NppLibraryVersion *libVer = nppGetLibVersion(); - - printf("NPP Library Version %d.%d.%d\n", libVer->major, libVer->minor, libVer->build); - - int driverVersion, runtimeVersion; - cudaDriverGetVersion(&driverVersion); - cudaRuntimeGetVersion(&runtimeVersion); - - printf("CUDA Driver Version: %d.%d\n", driverVersion / 1000, (driverVersion % 100) / 10); - printf("CUDA Runtime Version: %d.%d\n\n", runtimeVersion / 1000, (runtimeVersion % 100) / 10); - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMajor, - cudaDevAttrComputeCapabilityMajor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMinor, - cudaDevAttrComputeCapabilityMinor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaStreamGetFlags(nppStreamCtx.hStream, &nppStreamCtx.nStreamFlags); - - cudaDeviceProp oDeviceProperties; - - cudaError = cudaGetDeviceProperties(&oDeviceProperties, nppStreamCtx.nCudaDeviceId); - - nppStreamCtx.nMultiProcessorCount = oDeviceProperties.multiProcessorCount; - nppStreamCtx.nMaxThreadsPerMultiProcessor = oDeviceProperties.maxThreadsPerMultiProcessor; - nppStreamCtx.nMaxThreadsPerBlock = oDeviceProperties.maxThreadsPerBlock; - nppStreamCtx.nSharedMemPerBlock = oDeviceProperties.sharedMemPerBlock; - - if (checkCmdLineFlag(argc, (const char **)argv, "input")) { - getCmdLineArgumentString(argc, (const char **)argv, "input", &filePath); - } - else { - filePath = sdkFindFilePath("teapot512.pgm", argv[0]); - } - - if (filePath) { - sFilename = filePath; - } - else { - sFilename = "teapot512.pgm"; - } - - // if we specify the filename at the command line, then we only test - // sFilename otherwise we will check both sFilename[0,1] - int file_errors = 0; - std::ifstream infile(sFilename.data(), std::ifstream::in); - - if (infile.good()) { - std::cout << "freeImageInteropNPP opened: <" << sFilename.data() << "> successfully!" << std::endl; - file_errors = 0; - infile.close(); - } - else { - std::cout << "freeImageInteropNPP unable to open: <" << sFilename.data() << ">" << std::endl; - file_errors++; - infile.close(); - } - - if (file_errors > 0) { - exit(EXIT_FAILURE); - } - - std::string sResultFilename = sFilename; - - std::string::size_type dot = sResultFilename.rfind('.'); - - if (dot != std::string::npos) { - sResultFilename = sResultFilename.substr(0, dot); - } - - sResultFilename += "_boxFilterFII.pgm"; - - if (checkCmdLineFlag(argc, (const char **)argv, "output")) { - char *outputFilePath; - getCmdLineArgumentString(argc, (const char **)argv, "output", &outputFilePath); - sResultFilename = outputFilePath; - } - - FREE_IMAGE_FORMAT eFormat = FreeImage_GetFileType(sFilename.c_str()); - - // no signature? try to guess the file format from the file extension - if (eFormat == FIF_UNKNOWN) { - eFormat = FreeImage_GetFIFFromFilename(sFilename.c_str()); - } - - NPP_ASSERT(eFormat != FIF_UNKNOWN); - // check that the plugin has reading capabilities ... - FIBITMAP *pBitmap; - - if (FreeImage_FIFSupportsReading(eFormat)) { - pBitmap = FreeImage_Load(eFormat, sFilename.c_str()); - } - - NPP_ASSERT(pBitmap != 0); - // Dump the bitmap information to the console - std::cout << (*pBitmap) << std::endl; - // make sure this is an 8-bit single channel image - NPP_ASSERT(FreeImage_GetColorType(pBitmap) == FIC_MINISBLACK); - NPP_ASSERT(FreeImage_GetBPP(pBitmap) == 8); - - unsigned int nImageWidth = FreeImage_GetWidth(pBitmap); - unsigned int nImageHeight = FreeImage_GetHeight(pBitmap); - unsigned int nSrcPitch = FreeImage_GetPitch(pBitmap); - unsigned char *pSrcData = FreeImage_GetBits(pBitmap); - - int nSrcPitchCUDA; - Npp8u *pSrcImageCUDA = nppiMalloc_8u_C1(nImageWidth, nImageHeight, &nSrcPitchCUDA); - NPP_ASSERT_NOT_NULL(pSrcImageCUDA); - // copy image loaded via FreeImage to into CUDA device memory, i.e. - // transfer the image-data up to the GPU's video-memory - NPP_CHECK_CUDA(cudaMemcpy2D( - pSrcImageCUDA, nSrcPitchCUDA, pSrcData, nSrcPitch, nImageWidth, nImageHeight, cudaMemcpyHostToDevice)); - - // define size of the box filter - const NppiSize oMaskSize = {7, 7}; - const NppiPoint oMaskAchnor = {0, 0}; - // compute maximal result image size - const NppiSize oSizeROI = {(int)nImageWidth - (oMaskSize.width - 1), - (int)nImageHeight - (oMaskSize.height - 1)}; - // allocate result image memory - int nDstPitchCUDA; - Npp8u *pDstImageCUDA = nppiMalloc_8u_C1(oSizeROI.width, oSizeROI.height, &nDstPitchCUDA); - NPP_ASSERT_NOT_NULL(pDstImageCUDA); - NPP_CHECK_NPP(nppiFilterBox_8u_C1R_Ctx(pSrcImageCUDA, - nSrcPitchCUDA, - pDstImageCUDA, - nDstPitchCUDA, - oSizeROI, - oMaskSize, - oMaskAchnor, - nppStreamCtx)); - // create the result image storage using FreeImage so we can easily - // save - FIBITMAP *pResultBitmap = FreeImage_Allocate(oSizeROI.width, oSizeROI.height, 8 /* bits per pixel */); - NPP_ASSERT_NOT_NULL(pResultBitmap); - unsigned int nResultPitch = FreeImage_GetPitch(pResultBitmap); - unsigned char *pResultData = FreeImage_GetBits(pResultBitmap); - - NPP_CHECK_CUDA(cudaMemcpy2D(pResultData, - nResultPitch, - pDstImageCUDA, - nDstPitchCUDA, - oSizeROI.width, - oSizeROI.height, - cudaMemcpyDeviceToHost)); - // now save the result image - bool bSuccess; - bSuccess = FreeImage_Save(FIF_PGM, pResultBitmap, sResultFilename.c_str(), 0) == TRUE; - NPP_ASSERT_MSG(bSuccess, "Failed to save result image."); - - // free nppiImage - nppiFree(pSrcImageCUDA); - nppiFree(pDstImageCUDA); - - exit(EXIT_SUCCESS); - } - catch (npp::Exception &rException) { - std::cerr << "Program error! The following exception occurred: \n"; - std::cerr << rException << std::endl; - std::cerr << "Aborting." << std::endl; - exit(EXIT_FAILURE); - } - catch (...) { - std::cerr << "Program error! An unknow type of exception occurred. \n"; - std::cerr << "Aborting." << std::endl; - exit(EXIT_FAILURE); - } - - exit(EXIT_SUCCESS); -} diff --git a/cpp/4_CUDA_Libraries/histEqualizationNPP/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/histEqualizationNPP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/histEqualizationNPP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/histEqualizationNPP/.vscode/extensions.json b/cpp/4_CUDA_Libraries/histEqualizationNPP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/histEqualizationNPP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/histEqualizationNPP/CMakeLists.txt b/cpp/4_CUDA_Libraries/histEqualizationNPP/CMakeLists.txt deleted file mode 100644 index 616d2c8a..00000000 --- a/cpp/4_CUDA_Libraries/histEqualizationNPP/CMakeLists.txt +++ /dev/null @@ -1,72 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(histEqualizationNPP LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories( - ../../../Common - ../../../Common/UtilNPP -) - -# Source file -find_package(FreeImage) - -if(${FreeImage_FOUND}) - # Add target for histEqualizationNPP - add_executable(histEqualizationNPP histEqualizationNPP.cpp) - - target_compile_options(histEqualizationNPP PRIVATE $<$:--extended-lambda>) - - target_compile_features(histEqualizationNPP PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(histEqualizationNPP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - - target_include_directories(histEqualizationNPP PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} - ${FreeImage_INCLUDE_DIRS} - ) - - target_link_libraries(histEqualizationNPP PRIVATE - CUDA::nppc - CUDA::nppisu - CUDA::nppist - CUDA::nppicc - CUDA::cudart - ${FreeImage_LIBRARIES} - ) - - # Copy data files to output directory - add_custom_command(TARGET histEqualizationNPP POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/../../../Common/data/teapot512.pgm - ${CMAKE_CURRENT_BINARY_DIR}/ - ) - if(WIN32) - add_custom_command(TARGET histEqualizationNPP - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${FreeImage_LIBRARY}/../FreeImage.dll - ${CMAKE_CURRENT_BINARY_DIR}/$ - ) - endif() -else() - message(STATUS "FreeImage not found - will not build sample 'histEqualizationNPP'") -endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/histEqualizationNPP/README.md b/cpp/4_CUDA_Libraries/histEqualizationNPP/README.md deleted file mode 100644 index e27ee2d5..00000000 --- a/cpp/4_CUDA_Libraries/histEqualizationNPP/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# histEqualizationNPP - Histogram Equalization with NPP - -## Description - -This CUDA Sample demonstrates how to use NPP for histogram equalization for image data. - -## Key Concepts - -Image Processing, Performance Strategies, NPP Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaRuntimeGetVersion, cudaMemcpy, cudaFree, cudaSetDevice, cudaGetDeviceCount, cudaDeviceInit, cudaDriverGetVersion, cudaMalloc, cudaGetDeviceProperties - -## Dependencies needed to build/run -[FreeImage](../../../README.md#freeimage), [NPP](../../../README.md#npp) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/histEqualizationNPP/histEqualizationNPP.cpp b/cpp/4_CUDA_Libraries/histEqualizationNPP/histEqualizationNPP.cpp deleted file mode 100644 index a0a43412..00000000 --- a/cpp/4_CUDA_Libraries/histEqualizationNPP/histEqualizationNPP.cpp +++ /dev/null @@ -1,326 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) -#pragma warning(disable : 4819) -#define WINDOWS_LEAN_AND_MEAN -#define NOMINMAX -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) -#define STRCASECMP _stricmp -#define STRNCASECMP _strnicmp -#else -#define STRCASECMP strcasecmp -#define STRNCASECMP strncasecmp -#endif - -inline int cudaDeviceInit(int argc, const char **argv) -{ - int deviceCount; - checkCudaErrors(cudaGetDeviceCount(&deviceCount)); - - if (deviceCount == 0) { - std::cerr << "CUDA error: no devices supporting CUDA." << std::endl; - exit(EXIT_FAILURE); - } - - int dev = findCudaDevice(argc, argv); - - cudaDeviceProp deviceProp; - cudaGetDeviceProperties(&deviceProp, dev); - std::cerr << "cudaSetDevice GPU" << dev << " = " << deviceProp.name << std::endl; - - checkCudaErrors(cudaSetDevice(dev)); - - return dev; -} - -int main(int argc, char *argv[]) -{ - printf("%s Starting...\n\n", argv[0]); - - try { - std::string sFilename; - char *filePath; - - cudaDeviceInit(argc, (const char **)argv); - - NppStreamContext nppStreamCtx; - nppStreamCtx.hStream = - 0; // The NULL stream by default, set this to whatever your stream ID is if not the NULL stream. - - cudaError_t cudaError = cudaGetDevice(&nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) { - printf("CUDA error: no devices supporting CUDA.\n"); - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - } - - const NppLibraryVersion *libVer = nppGetLibVersion(); - - printf("NPP Library Version %d.%d.%d\n", libVer->major, libVer->minor, libVer->build); - - int driverVersion, runtimeVersion; - cudaDriverGetVersion(&driverVersion); - cudaRuntimeGetVersion(&runtimeVersion); - - printf("CUDA Driver Version: %d.%d\n", driverVersion / 1000, (driverVersion % 100) / 10); - printf("CUDA Runtime Version: %d.%d\n\n", runtimeVersion / 1000, (runtimeVersion % 100) / 10); - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMajor, - cudaDevAttrComputeCapabilityMajor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMinor, - cudaDevAttrComputeCapabilityMinor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaStreamGetFlags(nppStreamCtx.hStream, &nppStreamCtx.nStreamFlags); - - cudaDeviceProp oDeviceProperties; - - cudaError = cudaGetDeviceProperties(&oDeviceProperties, nppStreamCtx.nCudaDeviceId); - - nppStreamCtx.nMultiProcessorCount = oDeviceProperties.multiProcessorCount; - nppStreamCtx.nMaxThreadsPerMultiProcessor = oDeviceProperties.maxThreadsPerMultiProcessor; - nppStreamCtx.nMaxThreadsPerBlock = oDeviceProperties.maxThreadsPerBlock; - nppStreamCtx.nSharedMemPerBlock = oDeviceProperties.sharedMemPerBlock; - - if (checkCmdLineFlag(argc, (const char **)argv, "input")) { - getCmdLineArgumentString(argc, (const char **)argv, "input", &filePath); - } - else { - filePath = sdkFindFilePath("teapot512.pgm", argv[0]); - } - - if (filePath) { - sFilename = filePath; - } - else { - sFilename = "teapot512.pgm"; - } - - // if we specify the filename at the command line, then we only test - // sFilename. - int file_errors = 0; - std::ifstream infile(sFilename.data(), std::ifstream::in); - - if (infile.good()) { - std::cout << "histEqualizationNPP opened: <" << sFilename.data() << "> successfully!" << std::endl; - file_errors = 0; - infile.close(); - } - else { - std::cout << "histEqualizationNPP unable to open: <" << sFilename.data() << ">" << std::endl; - file_errors++; - infile.close(); - } - - if (file_errors > 0) { - exit(EXIT_FAILURE); - } - - std::string dstFileName = sFilename; - - std::string::size_type dot = dstFileName.rfind('.'); - - if (dot != std::string::npos) { - dstFileName = dstFileName.substr(0, dot); - } - - dstFileName += "_histEqualization.pgm"; - - if (checkCmdLineFlag(argc, (const char **)argv, "output")) { - char *outputFilePath; - getCmdLineArgumentString(argc, (const char **)argv, "output", &outputFilePath); - dstFileName = outputFilePath; - } - - npp::ImageCPU_8u_C1 oHostSrc; - npp::loadImage(sFilename, oHostSrc); - npp::ImageNPP_8u_C1 oDeviceSrc(oHostSrc); - - // - // allocate arrays for histogram and levels - // - - const int binCount = 255; - const int levelCount = binCount + 1; // levels array has one more element - - Npp32s *histDevice = 0; - Npp32s *levelsDevice = 0; - - NPP_CHECK_CUDA(cudaMalloc((void **)&histDevice, binCount * sizeof(Npp32s))); - NPP_CHECK_CUDA(cudaMalloc((void **)&levelsDevice, levelCount * sizeof(Npp32s))); - - // - // compute histogram - // - - NppiSize oSizeROI = {(int)oDeviceSrc.width(), (int)oDeviceSrc.height()}; // full image - // create device scratch buffer for nppiHistogram - size_t nDeviceBufferSize; - nppiHistogramEvenGetBufferSize_8u_C1R_Ctx(oSizeROI, levelCount, &nDeviceBufferSize, nppStreamCtx); - Npp8u *pDeviceBuffer; - NPP_CHECK_CUDA(cudaMalloc((void **)&pDeviceBuffer, nDeviceBufferSize)); - - // compute levels values on host - Npp32s levelsHost[levelCount]; - NPP_CHECK_NPP(nppiEvenLevelsHost_32s(levelsHost, levelCount, 0, binCount)); - // compute the histogram - NPP_CHECK_NPP(nppiHistogramEven_8u_C1R_Ctx(oDeviceSrc.data(), - oDeviceSrc.pitch(), - oSizeROI, - histDevice, - levelCount, - 0, - binCount, - pDeviceBuffer, - nppStreamCtx)); - // copy histogram and levels to host memory - Npp32s histHost[binCount]; - NPP_CHECK_CUDA(cudaMemcpy(histHost, histDevice, binCount * sizeof(Npp32s), cudaMemcpyDeviceToHost)); - - Npp32s lutHost[levelCount]; - - // fill LUT - { - Npp32s *pHostHistogram = histHost; - Npp32s totalSum = 0; - - for (; pHostHistogram < histHost + binCount; ++pHostHistogram) { - totalSum += *pHostHistogram; - } - - NPP_ASSERT(totalSum <= oSizeROI.width * oSizeROI.height); - - if (totalSum == 0) { - totalSum = 1; - } - - float multiplier = 1.0f / float(oSizeROI.width * oSizeROI.height) * 0xFF; - - Npp32s runningSum = 0; - Npp32s *pLookupTable = lutHost; - - for (pHostHistogram = histHost; pHostHistogram < histHost + binCount; ++pHostHistogram) { - *pLookupTable = (Npp32s)(runningSum * multiplier + 0.5f); - pLookupTable++; - runningSum += *pHostHistogram; - } - - lutHost[binCount] = 0xFF; // last element is always 1 - } - - // - // apply LUT transformation to the image - // - // Create a device image for the result. - npp::ImageNPP_8u_C1 oDeviceDst(oDeviceSrc.size()); - -#if CUDART_VERSION >= 5000 - // Note for CUDA 5.0, that nppiLUT_Linear_8u_C1R requires these pointers to - // be in GPU device memory - Npp32s *lutDevice = 0; - Npp32s *lvlsDevice = 0; - - NPP_CHECK_CUDA(cudaMalloc((void **)&lutDevice, sizeof(Npp32s) * (levelCount))); - NPP_CHECK_CUDA(cudaMalloc((void **)&lvlsDevice, sizeof(Npp32s) * (levelCount))); - - NPP_CHECK_CUDA(cudaMemcpy(lutDevice, lutHost, sizeof(Npp32s) * (levelCount), cudaMemcpyHostToDevice)); - NPP_CHECK_CUDA(cudaMemcpy(lvlsDevice, levelsHost, sizeof(Npp32s) * (levelCount), cudaMemcpyHostToDevice)); - - NPP_CHECK_NPP(nppiLUT_Linear_8u_C1R_Ctx(oDeviceSrc.data(), - oDeviceSrc.pitch(), - oDeviceDst.data(), - oDeviceDst.pitch(), - oSizeROI, - lutDevice, // value and level arrays are in host memory - lvlsDevice, - levelCount, - nppStreamCtx)); - - NPP_CHECK_CUDA(cudaFree(lutDevice)); - NPP_CHECK_CUDA(cudaFree(lvlsDevice)); -#else - NPP_CHECK_NPP(nppiLUT_Linear_8u_C1R_Ctx(oDeviceSrc.data(), - oDeviceSrc.pitch(), - oDeviceDst.data(), - oDeviceDst.pitch(), - oSizeROI, - lutHost, // value and level arrays are in host memory - levelsHost, - levelCount, - nppStreamCtx)); -#endif - - // copy the result image back into the storage that contained the - // input image - npp::ImageCPU_8u_C1 oHostDst(oDeviceDst.size()); - oDeviceDst.copyTo(oHostDst.data(), oHostDst.pitch()); - - cudaFree(histDevice); - cudaFree(levelsDevice); - cudaFree(pDeviceBuffer); - nppiFree(oDeviceSrc.data()); - nppiFree(oDeviceDst.data()); - - // save the result - npp::saveImage(dstFileName.c_str(), oHostDst); - std::cout << "Saved image file " << dstFileName << std::endl; - exit(EXIT_SUCCESS); - } - catch (npp::Exception &rException) { - std::cerr << "Program error! The following exception occurred: \n"; - std::cerr << rException << std::endl; - std::cerr << "Aborting." << std::endl; - exit(EXIT_FAILURE); - } - catch (...) { - std::cerr << "Program error! An unknow type of exception occurred. \n"; - std::cerr << "Aborting." << std::endl; - exit(EXIT_FAILURE); - } - - return 0; -} diff --git a/cpp/4_CUDA_Libraries/jitLto/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/jitLto/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/jitLto/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/jitLto/.vscode/extensions.json b/cpp/4_CUDA_Libraries/jitLto/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/jitLto/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/jitLto/CMakeLists.txt b/cpp/4_CUDA_Libraries/jitLto/CMakeLists.txt index 9baef1d8..19a2a4d3 100644 --- a/cpp/4_CUDA_Libraries/jitLto/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/jitLto/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(jitLto LANGUAGES CXX) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) # This sample is not supported on QNX @@ -25,16 +21,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "QNX") return() endif() -# Source file -# Add target for jitLto add_executable(jitLto jitLto.cpp) target_compile_options(jitLto PRIVATE $<$:--extended-lambda>) target_compile_features(jitLto PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(jitLto PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - find_library(NVJITLINK_LIB NAME nvJitLink PATHS "${CUDAToolkit_LIBRARY_DIR}" "${CMAKE_LIBRARY_PATH}") @@ -49,6 +41,5 @@ target_link_libraries(jitLto PRIVATE ${NVJITLINK_LIB} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/libcuxxMdspan/CMakeLists.txt b/cpp/4_CUDA_Libraries/libcuxxMdspan/CMakeLists.txt index 5f66f5f1..bc748ac6 100644 --- a/cpp/4_CUDA_Libraries/libcuxxMdspan/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/libcuxxMdspan/CMakeLists.txt @@ -1,9 +1,16 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(libcuxxMdspan LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + # Disable response file for libraries on QNX as qcc does not support lib paths with double quotes if(CMAKE_SYSTEM_NAME STREQUAL "QNX") set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES OFF) @@ -11,16 +18,6 @@ endif() find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - # Fetch CCCL (CUB + libcu++ + Thrust) via CPM. The toolkit that ships # with CUDA 13.2 bundles CCCL 3.2, but this sample uses APIs added in # CCCL 3.3. Pinning the tag here lets the sample build on any toolkit @@ -68,25 +65,19 @@ if(NOT TARGET dlpack::dlpack) endif() endif() -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for libcuxxMdspan add_executable(libcuxxMdspan libcuxxMdspan.cu) target_compile_options(libcuxxMdspan PRIVATE $<$:--extended-lambda>) target_compile_features(libcuxxMdspan PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(libcuxxMdspan PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_link_libraries(libcuxxMdspan PRIVATE CUDA::cudart CCCL::CCCL dlpack::dlpack ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/libcuxxMdspan/libcuxxMdspan.cu b/cpp/4_CUDA_Libraries/libcuxxMdspan/libcuxxMdspan.cu index 90016faa..f47145c0 100644 --- a/cpp/4_CUDA_Libraries/libcuxxMdspan/libcuxxMdspan.cu +++ b/cpp/4_CUDA_Libraries/libcuxxMdspan/libcuxxMdspan.cu @@ -113,6 +113,26 @@ struct DLTensorStorage ::DLTensor tensor{}; cuda::std::array shape{}; cuda::std::array strides{}; + + DLTensorStorage() = default; + + /* tensor.shape / tensor.strides point back into this object's own shape / + * strides members, so the object is self-referential. Any copy or move + * (including the by-value return from make_row_major_dltensor) must re-seat + * those pointers at the new location. Relying on NRVO to elide the copy is + * not portable -- NRVO is not guaranteed for named returns -- and a stale + * pointer into a moved-from temporary makes cuda::to_device_mdspan read + * garbage extents and abort. */ + DLTensorStorage(const DLTensorStorage &other) { *this = other; } + DLTensorStorage &operator=(const DLTensorStorage &other) + { + tensor = other.tensor; + shape = other.shape; + strides = other.strides; + tensor.shape = shape.data(); + tensor.strides = strides.data(); + return *this; + } }; static DLTensorStorage make_row_major_dltensor(float *device_ptr, int rows, int cols, int device_ordinal) diff --git a/cpp/4_CUDA_Libraries/libcuxxRandom/CMakeLists.txt b/cpp/4_CUDA_Libraries/libcuxxRandom/CMakeLists.txt index 1164c560..470e2408 100644 --- a/cpp/4_CUDA_Libraries/libcuxxRandom/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/libcuxxRandom/CMakeLists.txt @@ -1,9 +1,16 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(libcuxxRandom LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + # Disable response file for libraries on QNX as qcc does not support lib paths with double quotes if(CMAKE_SYSTEM_NAME STREQUAL "QNX") set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES OFF) @@ -11,16 +18,6 @@ endif() find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - # Fetch CCCL (CUB + libcu++ + Thrust) via CPM. The toolkit that ships # with CUDA 13.2 bundles CCCL 3.2, but this sample uses APIs added in # CCCL 3.3. Pinning the tag here lets the sample build on any toolkit @@ -42,24 +39,18 @@ if(NOT TARGET CCCL::CCCL) endif() endif() -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for libcuxxRandom add_executable(libcuxxRandom libcuxxRandom.cu) target_compile_options(libcuxxRandom PRIVATE $<$:--extended-lambda>) target_compile_features(libcuxxRandom PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(libcuxxRandom PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_link_libraries(libcuxxRandom PRIVATE CUDA::cudart CCCL::CCCL ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/lineOfSight/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/lineOfSight/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/lineOfSight/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/lineOfSight/.vscode/extensions.json b/cpp/4_CUDA_Libraries/lineOfSight/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/lineOfSight/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/lineOfSight/CMakeLists.txt b/cpp/4_CUDA_Libraries/lineOfSight/CMakeLists.txt index a77c1b53..c6d4d620 100644 --- a/cpp/4_CUDA_Libraries/lineOfSight/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/lineOfSight/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(lineOfSight LANGUAGES CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for lineOfSight add_executable(lineOfSight lineOfSight.cu) target_compile_options(lineOfSight PRIVATE $<$:--extended-lambda>) target_compile_features(lineOfSight PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(lineOfSight PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/lineOfSight/lineOfSight.cu b/cpp/4_CUDA_Libraries/lineOfSight/lineOfSight.cu index 0bb46993..d3319012 100644 --- a/cpp/4_CUDA_Libraries/lineOfSight/lineOfSight.cu +++ b/cpp/4_CUDA_Libraries/lineOfSight/lineOfSight.cu @@ -215,6 +215,9 @@ int runTest(int argc, char **argv) ////////////////////////////////////////////////////////////////////////////// // Device solution + // Enlarge the per-thread device stack: under -G the CUB warpspeed inclusive_scan is not inlined and its deep call chain overflows the default 1KB stack. + checkCudaErrors(cudaDeviceSetLimit(cudaLimitStackSize, 8192)); + // Execution configuration dim3 block(256); dim3 grid((uint)ceil(ray.length / (double)block.x)); diff --git a/cpp/4_CUDA_Libraries/matrixMulCUBLAS/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/matrixMulCUBLAS/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/matrixMulCUBLAS/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/matrixMulCUBLAS/.vscode/extensions.json b/cpp/4_CUDA_Libraries/matrixMulCUBLAS/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/matrixMulCUBLAS/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/matrixMulCUBLAS/CMakeLists.txt b/cpp/4_CUDA_Libraries/matrixMulCUBLAS/CMakeLists.txt deleted file mode 100644 index 260cf239..00000000 --- a/cpp/4_CUDA_Libraries/matrixMulCUBLAS/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(matrixMulCUBLAS LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for matrixMulCUBLAS -add_executable(matrixMulCUBLAS matrixMulCUBLAS.cpp) - -target_compile_options(matrixMulCUBLAS PRIVATE $<$:--extended-lambda>) - -target_compile_features(matrixMulCUBLAS PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(matrixMulCUBLAS PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(matrixMulCUBLAS PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(matrixMulCUBLAS PRIVATE - CUDA::cudart - CUDA::cublas -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/matrixMulCUBLAS/README.md b/cpp/4_CUDA_Libraries/matrixMulCUBLAS/README.md deleted file mode 100644 index 2d4b9b8e..00000000 --- a/cpp/4_CUDA_Libraries/matrixMulCUBLAS/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# matrixMulCUBLAS - Matrix Multiplication (CUBLAS) - -## Description - -This sample implements matrix multiplication from Chapter 3 of the programming guide. To illustrate GPU performance for matrix multiply, this sample also shows how to use the new CUDA 4.0 interface for CUBLAS to demonstrate high-performance performance for matrix multiplication. - -## Key Concepts - -CUDA Runtime API, Performance Strategies, Linear Algebra, CUBLAS - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaFree, cudaEventSynchronize, cudaEventRecord, cudaMalloc, cudaEventElapsedTime, cudaGetDeviceProperties, cudaEventCreate - -## Dependencies needed to build/run -[CUBLAS](../../../README.md#cublas) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/matrixMulCUBLAS/matrixMulCUBLAS.cpp b/cpp/4_CUDA_Libraries/matrixMulCUBLAS/matrixMulCUBLAS.cpp deleted file mode 100644 index 0a5adb0b..00000000 --- a/cpp/4_CUDA_Libraries/matrixMulCUBLAS/matrixMulCUBLAS.cpp +++ /dev/null @@ -1,388 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* -* Matrix multiplication: C = A * B. -* Host code. -* -* This sample implements matrix multiplication as described in Chapter 3 -* of the programming guide and uses the CUBLAS library to demonstrate -* the best performance. - -* SOME PRECAUTIONS: -* IF WE WANT TO CALCULATE ROW-MAJOR MATRIX MULTIPLY C = A * B, -* WE JUST NEED CALL CUBLAS API IN A REVERSE ORDER: cublasSegemm(B, A)! -* The reason is explained as follows: - -* CUBLAS library uses column-major storage, but C/C++ use row-major storage. -* When passing the matrix pointer to CUBLAS, the memory layout alters from -* row-major to column-major, which is equivalent to an implicit transpose. - -* In the case of row-major C/C++ matrix A, B, and a simple matrix multiplication -* C = A * B, we can't use the input order like cublasSgemm(A, B) because of -* implicit transpose. The actual result of cublasSegemm(A, B) is A(T) * B(T). -* If col(A(T)) != row(B(T)), equal to row(A) != col(B), A(T) and B(T) are not -* multipliable. Moreover, even if A(T) and B(T) are multipliable, the result C -* is a column-based cublas matrix, which means C(T) in C/C++, we need extra -* transpose code to convert it to a row-based C/C++ matrix. - -* To solve the problem, let's consider our desired result C, a row-major matrix. -* In cublas format, it is C(T) actually (because of the implicit transpose). -* C = A * B, so C(T) = (A * B) (T) = B(T) * A(T). Cublas matrice B(T) and A(T) -* happen to be C/C++ matrice B and A (still because of the implicit transpose)! -* We don't need extra transpose code, we only need alter the input order! -* -* CUBLAS provides high-performance matrix multiplication. -* See also: -* V. Volkov and J. Demmel, "Benchmarking GPUs to tune dense linear algebra," -* in Proc. 2008 ACM/IEEE Conf. on Supercomputing (SC '08), -* Piscataway, NJ: IEEE Press, 2008, pp. Art. 31:1-11. -*/ - -// Utilities and system includes -#include -#include // helper for shared functions common to CUDA Samples - -// CUDA runtime -#include -#include - -// CUDA and CUBLAS functions -#include -#include - -#ifndef min -#define min(a, b) ((a < b) ? a : b) -#endif -#ifndef max -#define max(a, b) ((a > b) ? a : b) -#endif - -// Optional Command-line multiplier for matrix sizes -typedef struct _matrixSize -{ - unsigned int uiWA, uiHA, uiWB, uiHB, uiWC, uiHC; -} sMatrixSize; - -//////////////////////////////////////////////////////////////////////////////// -//! Compute reference data set matrix multiply on CPU -//! C = A * B -//! @param C reference data, computed but preallocated -//! @param A matrix A as provided to device -//! @param B matrix B as provided to device -//! @param hA height of matrix A -//! @param wB width of matrix B -//////////////////////////////////////////////////////////////////////////////// -void matrixMulCPU(float *C, const float *A, const float *B, unsigned int hA, unsigned int wA, unsigned int wB) -{ - for (unsigned int i = 0; i < hA; ++i) - for (unsigned int j = 0; j < wB; ++j) { - double sum = 0; - - for (unsigned int k = 0; k < wA; ++k) { - double a = A[i * wA + k]; - double b = B[k * wB + j]; - sum += a * b; - } - - C[i * wB + j] = (float)sum; - } -} - -// Allocates a matrix with random float entries. -void randomInit(float *data, int size) -{ - for (int i = 0; i < size; ++i) - data[i] = rand() / (float)RAND_MAX; -} - -void printDiff(float *data1, float *data2, int width, int height, int iListLength, float fListTol) -{ - printf("Listing first %d Differences > %.6f...\n", iListLength, fListTol); - int i, j, k; - int error_count = 0; - - for (j = 0; j < height; j++) { - if (error_count < iListLength) { - printf("\n Row %d:\n", j); - } - - for (i = 0; i < width; i++) { - k = j * width + i; - float fDiff = fabs(data1[k] - data2[k]); - - if (fDiff > fListTol) { - if (error_count < iListLength) { - printf(" Loc(%d,%d)\tCPU=%.5f\tGPU=%.5f\tDiff=%.6f\n", i, j, data1[k], data2[k], fDiff); - } - - error_count++; - } - } - } - - printf(" \n Total Errors = %d\n", error_count); -} - -void initializeCUDA(int argc, char **argv, int &devID, int &iSizeMultiple, sMatrixSize &matrix_size) -{ - // By default, we use device 0, otherwise we override the device ID based on - // what is provided at the command line - cudaError_t error; - devID = 0; - - devID = findCudaDevice(argc, (const char **)argv); - - if (checkCmdLineFlag(argc, (const char **)argv, "sizemult")) { - iSizeMultiple = getCmdLineArgumentInt(argc, (const char **)argv, "sizemult"); - } - - iSizeMultiple = min(iSizeMultiple, 10); - iSizeMultiple = max(iSizeMultiple, 1); - - cudaDeviceProp deviceProp; - - error = cudaGetDeviceProperties(&deviceProp, devID); - - if (error != cudaSuccess) { - printf("cudaGetDeviceProperties returned error code %d, line(%d)\n", error, __LINE__); - exit(EXIT_FAILURE); - } - - printf("GPU Device %d: \"%s\" with compute capability %d.%d\n\n", - devID, - deviceProp.name, - deviceProp.major, - deviceProp.minor); - - int block_size = 32; - - matrix_size.uiWA = 3 * block_size * iSizeMultiple; - matrix_size.uiHA = 4 * block_size * iSizeMultiple; - matrix_size.uiWB = 2 * block_size * iSizeMultiple; - matrix_size.uiHB = 3 * block_size * iSizeMultiple; - matrix_size.uiWC = 2 * block_size * iSizeMultiple; - matrix_size.uiHC = 4 * block_size * iSizeMultiple; - - printf("MatrixA(%u,%u), MatrixB(%u,%u), MatrixC(%u,%u)\n", - matrix_size.uiHA, - matrix_size.uiWA, - matrix_size.uiHB, - matrix_size.uiWB, - matrix_size.uiHC, - matrix_size.uiWC); - - if (matrix_size.uiWA != matrix_size.uiHB || matrix_size.uiHA != matrix_size.uiHC - || matrix_size.uiWB != matrix_size.uiWC) { - printf("ERROR: Matrix sizes do not match!\n"); - exit(-1); - } -} - -//////////////////////////////////////////////////////////////////////////////// -//! Run a simple test matrix multiply using CUBLAS -//////////////////////////////////////////////////////////////////////////////// -int matrixMultiply(int argc, char **argv, int devID, sMatrixSize &matrix_size) -{ - cudaDeviceProp deviceProp; - - checkCudaErrors(cudaGetDeviceProperties(&deviceProp, devID)); - - int block_size = 32; - - // set seed for rand() - srand(2006); - - // allocate host memory for matrices A and B - unsigned int size_A = matrix_size.uiWA * matrix_size.uiHA; - unsigned int mem_size_A = sizeof(float) * size_A; - float *h_A = (float *)malloc(mem_size_A); - unsigned int size_B = matrix_size.uiWB * matrix_size.uiHB; - unsigned int mem_size_B = sizeof(float) * size_B; - float *h_B = (float *)malloc(mem_size_B); - - // set seed for rand() - srand(2006); - - // initialize host memory - randomInit(h_A, size_A); - randomInit(h_B, size_B); - - // allocate device memory - float *d_A, *d_B, *d_C; - unsigned int size_C = matrix_size.uiWC * matrix_size.uiHC; - unsigned int mem_size_C = sizeof(float) * size_C; - - // allocate host memory for the result - float *h_C = (float *)malloc(mem_size_C); - float *h_CUBLAS = (float *)malloc(mem_size_C); - - checkCudaErrors(cudaMalloc((void **)&d_A, mem_size_A)); - checkCudaErrors(cudaMalloc((void **)&d_B, mem_size_B)); - checkCudaErrors(cudaMemcpy(d_A, h_A, mem_size_A, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMemcpy(d_B, h_B, mem_size_B, cudaMemcpyHostToDevice)); - checkCudaErrors(cudaMalloc((void **)&d_C, mem_size_C)); - - // setup execution parameters - dim3 threads(block_size, block_size); - dim3 grid(matrix_size.uiWC / threads.x, matrix_size.uiHC / threads.y); - - // create and start timer - printf("Computing result using CUBLAS..."); - - // execute the kernel - int nIter = 30; - - // CUBLAS version 2.0 - { - const float alpha = 1.0f; - const float beta = 0.0f; - cublasHandle_t handle; - cudaEvent_t start, stop; - - checkCudaErrors(cublasCreate(&handle)); - - // Perform warmup operation with cublas - checkCudaErrors(cublasSgemm(handle, - CUBLAS_OP_N, - CUBLAS_OP_N, - matrix_size.uiWB, - matrix_size.uiHA, - matrix_size.uiWA, - &alpha, - d_B, - matrix_size.uiWB, - d_A, - matrix_size.uiWA, - &beta, - d_C, - matrix_size.uiWB)); - - // Allocate CUDA events that we'll use for timing - checkCudaErrors(cudaEventCreate(&start)); - checkCudaErrors(cudaEventCreate(&stop)); - - // Record the start event - checkCudaErrors(cudaEventRecord(start, NULL)); - - for (int j = 0; j < nIter; j++) { - // note cublas is column primary! - // need to transpose the order - checkCudaErrors(cublasSgemm(handle, - CUBLAS_OP_N, - CUBLAS_OP_N, - matrix_size.uiWB, - matrix_size.uiHA, - matrix_size.uiWA, - &alpha, - d_B, - matrix_size.uiWB, - d_A, - matrix_size.uiWA, - &beta, - d_C, - matrix_size.uiWB)); - } - - printf("done.\n"); - - // Record the stop event - checkCudaErrors(cudaEventRecord(stop, NULL)); - - // Wait for the stop event to complete - checkCudaErrors(cudaEventSynchronize(stop)); - - float msecTotal = 0.0f; - checkCudaErrors(cudaEventElapsedTime(&msecTotal, start, stop)); - - // Compute and print the performance - float msecPerMatrixMul = msecTotal / nIter; - double flopsPerMatrixMul = 2.0 * (double)matrix_size.uiHC * (double)matrix_size.uiWC * (double)matrix_size.uiHB; - double gigaFlops = (flopsPerMatrixMul * 1.0e-9f) / (msecPerMatrixMul / 1000.0f); - printf("Performance= %.2f GFlop/s, Time= %.3f msec, Size= %.0f Ops\n", - gigaFlops, - msecPerMatrixMul, - flopsPerMatrixMul); - - // copy result from device to host - checkCudaErrors(cudaMemcpy(h_CUBLAS, d_C, mem_size_C, cudaMemcpyDeviceToHost)); - - // Destroy the handle - checkCudaErrors(cublasDestroy(handle)); - } - - // compute reference solution - printf("Computing result using host CPU..."); - float *reference = (float *)malloc(mem_size_C); - matrixMulCPU(reference, h_A, h_B, matrix_size.uiHA, matrix_size.uiWA, matrix_size.uiWB); - printf("done.\n"); - - // check result (CUBLAS) - bool resCUBLAS = sdkCompareL2fe(reference, h_CUBLAS, size_C, 1.0e-6f); - - if (resCUBLAS != true) { - printDiff(reference, h_CUBLAS, matrix_size.uiWC, matrix_size.uiHC, 100, 1.0e-5f); - } - - printf("Comparing CUBLAS Matrix Multiply with CPU results: %s\n", (true == resCUBLAS) ? "PASS" : "FAIL"); - - printf("\nNOTE: The CUDA Samples are not meant for performance measurements. " - "Results may vary when GPU Boost is enabled.\n"); - - // clean up memory - free(h_A); - free(h_B); - free(h_C); - free(reference); - checkCudaErrors(cudaFree(d_A)); - checkCudaErrors(cudaFree(d_B)); - checkCudaErrors(cudaFree(d_C)); - - if (resCUBLAS == true) { - return EXIT_SUCCESS; // return value = 1 - } - else { - return EXIT_FAILURE; // return value = 0 - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Program main -//////////////////////////////////////////////////////////////////////////////// -int main(int argc, char **argv) -{ - printf("[Matrix Multiply CUBLAS] - Starting...\n"); - - int devID = 0, sizeMult = 5; - sMatrixSize matrix_size; - - initializeCUDA(argc, argv, devID, sizeMult, matrix_size); - - int matrix_result = matrixMultiply(argc, argv, devID, matrix_size); - - return matrix_result; -} diff --git a/cpp/4_CUDA_Libraries/nvJPEG/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/nvJPEG/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/nvJPEG/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/nvJPEG/.vscode/extensions.json b/cpp/4_CUDA_Libraries/nvJPEG/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/nvJPEG/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/nvJPEG/CMakeLists.txt b/cpp/4_CUDA_Libraries/nvJPEG/CMakeLists.txt deleted file mode 100644 index 215cc96e..00000000 --- a/cpp/4_CUDA_Libraries/nvJPEG/CMakeLists.txt +++ /dev/null @@ -1,50 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(nvJPEG LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for nvJPEG -add_executable(nvJPEG nvJPEG.cpp) - -target_compile_options(nvJPEG PRIVATE $<$:--extended-lambda>) - -target_compile_features(nvJPEG PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(nvJPEG PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(nvJPEG PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(nvJPEG PRIVATE - CUDA::cudart - CUDA::nvjpeg -) - -# Copy data to the output directory -add_custom_command(TARGET nvJPEG POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/images - ${CMAKE_CURRENT_BINARY_DIR}/images -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/nvJPEG/README.md b/cpp/4_CUDA_Libraries/nvJPEG/README.md deleted file mode 100644 index 973834d5..00000000 --- a/cpp/4_CUDA_Libraries/nvJPEG/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# nvJPEG - NVJPEG simple - -## Description - -A CUDA Sample that demonstrates single and batched decoding of jpeg images using NVJPEG Library. - -## Key Concepts - -Image Decoding, NVJPEG Library - -## Supported SM Architectures - -## Supported OSes - -Linux, Windows, QNX - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaHostAlloc, cudaStreamCreateWithFlags, cudaStreamDestroy, cudaFree, cudaEventSynchronize, cudaEventRecord, cudaFreeHost, cudaStreamSynchronize, cudaMalloc, cudaEventElapsedTime, cudaGetDeviceProperties, cudaEventCreate - -## Dependencies needed to build/run -[NVJPEG](../../../README.md#nvjpeg) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/nvJPEG/images/img1.jpg b/cpp/4_CUDA_Libraries/nvJPEG/images/img1.jpg deleted file mode 100644 index 7413faf0..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG/images/img1.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG/images/img2.jpg b/cpp/4_CUDA_Libraries/nvJPEG/images/img2.jpg deleted file mode 100644 index d5b53b26..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG/images/img2.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG/images/img3.jpg b/cpp/4_CUDA_Libraries/nvJPEG/images/img3.jpg deleted file mode 100644 index 41b1d9b4..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG/images/img3.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG/images/img4.jpg b/cpp/4_CUDA_Libraries/nvJPEG/images/img4.jpg deleted file mode 100644 index 17fa69ef..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG/images/img4.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG/images/img5.jpg b/cpp/4_CUDA_Libraries/nvJPEG/images/img5.jpg deleted file mode 100644 index 148ccb41..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG/images/img5.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG/images/img6.jpg b/cpp/4_CUDA_Libraries/nvJPEG/images/img6.jpg deleted file mode 100644 index a58ef7c5..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG/images/img6.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG/images/img7.jpg b/cpp/4_CUDA_Libraries/nvJPEG/images/img7.jpg deleted file mode 100644 index f49d9122..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG/images/img7.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG/images/img8.jpg b/cpp/4_CUDA_Libraries/nvJPEG/images/img8.jpg deleted file mode 100644 index ab51a789..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG/images/img8.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG/nvJPEG.cpp b/cpp/4_CUDA_Libraries/nvJPEG/nvJPEG.cpp deleted file mode 100644 index ab3644bd..00000000 --- a/cpp/4_CUDA_Libraries/nvJPEG/nvJPEG.cpp +++ /dev/null @@ -1,640 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -// This sample needs at least CUDA 10.0. It demonstrates usages of the nvJPEG -// library nvJPEG supports single and multiple image(batched) decode. Multiple -// images can be decoded using the API for batch mode - -#include - -#include "helper_nvJPEG.hxx" - -int dev_malloc(void **p, size_t s) { return (int)cudaMalloc(p, s); } - -int dev_free(void *p) { return (int)cudaFree(p); } - -int host_malloc(void **p, size_t s, unsigned int f) { return (int)cudaHostAlloc(p, s, f); } - -int host_free(void *p) { return (int)cudaFreeHost(p); } - -typedef std::vector FileNames; -typedef std::vector> FileData; - -struct decode_params_t -{ - std::string input_dir; - int batch_size; - int total_images; - int dev; - int warmup; - - nvjpegJpegState_t nvjpeg_state; - nvjpegHandle_t nvjpeg_handle; - cudaStream_t stream; - - // used with decoupled API - nvjpegJpegState_t nvjpeg_decoupled_state; - nvjpegBufferPinned_t pinned_buffers[2]; // 2 buffers for pipelining - nvjpegBufferDevice_t device_buffer; - nvjpegJpegStream_t jpeg_streams[2]; // 2 streams for pipelining - nvjpegDecodeParams_t nvjpeg_decode_params; - nvjpegJpegDecoder_t nvjpeg_decoder; - - nvjpegOutputFormat_t fmt; - bool write_decoded; - std::string output_dir; - - bool pipelined; - bool batched; -}; - -int read_next_batch(FileNames &image_names, - int batch_size, - FileNames::iterator &cur_iter, - FileData &raw_data, - std::vector &raw_len, - FileNames ¤t_names) -{ - int counter = 0; - - while (counter < batch_size) { - if (cur_iter == image_names.end()) { - std::cerr << "Image list is too short to fill the batch, adding files " - "from the beginning of the image list" - << std::endl; - cur_iter = image_names.begin(); - } - - if (image_names.size() == 0) { - std::cerr << "No valid images left in the input list, exit" << std::endl; - return EXIT_FAILURE; - } - - // Read an image from disk. - std::ifstream input(cur_iter->c_str(), std::ios::in | std::ios::binary | std::ios::ate); - if (!(input.is_open())) { - std::cerr << "Cannot open image: " << *cur_iter << ", removing it from image list" << std::endl; - image_names.erase(cur_iter); - continue; - } - - // Get the size - std::streamsize file_size = input.tellg(); - input.seekg(0, std::ios::beg); - // resize if buffer is too small - if (raw_data[counter].size() < file_size) { - raw_data[counter].resize(file_size); - } - if (!input.read(raw_data[counter].data(), file_size)) { - std::cerr << "Cannot read from file: " << *cur_iter << ", removing it from image list" << std::endl; - image_names.erase(cur_iter); - continue; - } - raw_len[counter] = file_size; - - current_names[counter] = *cur_iter; - - counter++; - cur_iter++; - } - return EXIT_SUCCESS; -} - -// prepare buffers for RGBi output format -int prepare_buffers(FileData &file_data, - std::vector &file_len, - std::vector &img_width, - std::vector &img_height, - std::vector &ibuf, - std::vector &isz, - FileNames ¤t_names, - decode_params_t ¶ms) -{ - int widths[NVJPEG_MAX_COMPONENT]; - int heights[NVJPEG_MAX_COMPONENT]; - int channels; - nvjpegChromaSubsampling_t subsampling; - - for (int i = 0; i < file_data.size(); i++) { - checkCudaErrors(nvjpegGetImageInfo(params.nvjpeg_handle, - (unsigned char *)file_data[i].data(), - file_len[i], - &channels, - &subsampling, - widths, - heights)); - - img_width[i] = widths[0]; - img_height[i] = heights[0]; - - std::cout << "Processing: " << current_names[i] << std::endl; - std::cout << "Image is " << channels << " channels." << std::endl; - for (int c = 0; c < channels; c++) { - std::cout << "Channel #" << c << " size: " << widths[c] << " x " << heights[c] << std::endl; - } - - switch (subsampling) { - case NVJPEG_CSS_444: - std::cout << "YUV 4:4:4 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_440: - std::cout << "YUV 4:4:0 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_422: - std::cout << "YUV 4:2:2 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_420: - std::cout << "YUV 4:2:0 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_411: - std::cout << "YUV 4:1:1 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_410: - std::cout << "YUV 4:1:0 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_GRAY: - std::cout << "Grayscale JPEG " << std::endl; - break; - case NVJPEG_CSS_UNKNOWN: - std::cout << "Unknown chroma subsampling" << std::endl; - return EXIT_FAILURE; - } - - int mul = 1; - // in the case of interleaved RGB output, write only to single channel, but - // 3 samples at once - if (params.fmt == NVJPEG_OUTPUT_RGBI || params.fmt == NVJPEG_OUTPUT_BGRI) { - channels = 1; - mul = 3; - } - // in the case of rgb create 3 buffers with sizes of original image - else if (params.fmt == NVJPEG_OUTPUT_RGB || params.fmt == NVJPEG_OUTPUT_BGR) { - channels = 3; - widths[1] = widths[2] = widths[0]; - heights[1] = heights[2] = heights[0]; - } - - // realloc output buffer if required - for (int c = 0; c < channels; c++) { - int aw = mul * widths[c]; - int ah = heights[c]; - int sz = aw * ah; - ibuf[i].pitch[c] = aw; - if (sz > isz[i].pitch[c]) { - if (ibuf[i].channel[c]) { - checkCudaErrors(cudaFree(ibuf[i].channel[c])); - } - checkCudaErrors(cudaMalloc(&ibuf[i].channel[c], sz)); - isz[i].pitch[c] = sz; - } - } - } - return EXIT_SUCCESS; -} - -void create_decoupled_api_handles(decode_params_t ¶ms) -{ - - checkCudaErrors(nvjpegDecoderCreate(params.nvjpeg_handle, NVJPEG_BACKEND_DEFAULT, ¶ms.nvjpeg_decoder)); - checkCudaErrors( - nvjpegDecoderStateCreate(params.nvjpeg_handle, params.nvjpeg_decoder, ¶ms.nvjpeg_decoupled_state)); - - checkCudaErrors(nvjpegBufferPinnedCreate(params.nvjpeg_handle, NULL, ¶ms.pinned_buffers[0])); - checkCudaErrors(nvjpegBufferPinnedCreate(params.nvjpeg_handle, NULL, ¶ms.pinned_buffers[1])); - checkCudaErrors(nvjpegBufferDeviceCreate(params.nvjpeg_handle, NULL, ¶ms.device_buffer)); - - checkCudaErrors(nvjpegJpegStreamCreate(params.nvjpeg_handle, ¶ms.jpeg_streams[0])); - checkCudaErrors(nvjpegJpegStreamCreate(params.nvjpeg_handle, ¶ms.jpeg_streams[1])); - - checkCudaErrors(nvjpegDecodeParamsCreate(params.nvjpeg_handle, ¶ms.nvjpeg_decode_params)); -} - -void destroy_decoupled_api_handles(decode_params_t ¶ms) -{ - - checkCudaErrors(nvjpegDecodeParamsDestroy(params.nvjpeg_decode_params)); - checkCudaErrors(nvjpegJpegStreamDestroy(params.jpeg_streams[0])); - checkCudaErrors(nvjpegJpegStreamDestroy(params.jpeg_streams[1])); - checkCudaErrors(nvjpegBufferPinnedDestroy(params.pinned_buffers[0])); - checkCudaErrors(nvjpegBufferPinnedDestroy(params.pinned_buffers[1])); - checkCudaErrors(nvjpegBufferDeviceDestroy(params.device_buffer)); - checkCudaErrors(nvjpegJpegStateDestroy(params.nvjpeg_decoupled_state)); - checkCudaErrors(nvjpegDecoderDestroy(params.nvjpeg_decoder)); -} - -void release_buffers(std::vector &ibuf) -{ - for (int i = 0; i < ibuf.size(); i++) { - for (int c = 0; c < NVJPEG_MAX_COMPONENT; c++) - if (ibuf[i].channel[c]) - checkCudaErrors(cudaFree(ibuf[i].channel[c])); - } -} - -int decode_images(const FileData &img_data, - const std::vector &img_len, - std::vector &out, - decode_params_t ¶ms, - double &time) -{ - checkCudaErrors(cudaStreamSynchronize(params.stream)); - cudaEvent_t startEvent = NULL, stopEvent = NULL; - float loopTime = 0; - - checkCudaErrors(cudaEventCreate(&startEvent, cudaEventBlockingSync)); - checkCudaErrors(cudaEventCreate(&stopEvent, cudaEventBlockingSync)); - - if (!params.batched) { - if (!params.pipelined) // decode one image at a time - { - checkCudaErrors(cudaEventRecord(startEvent, params.stream)); - for (int i = 0; i < params.batch_size; i++) { - checkCudaErrors(nvjpegDecode(params.nvjpeg_handle, - params.nvjpeg_state, - (const unsigned char *)img_data[i].data(), - img_len[i], - params.fmt, - &out[i], - params.stream)); - } - checkCudaErrors(cudaEventRecord(stopEvent, params.stream)); - } - else { - // use de-coupled API in pipelined mode - checkCudaErrors(cudaEventRecord(startEvent, params.stream)); - checkCudaErrors(nvjpegStateAttachDeviceBuffer(params.nvjpeg_decoupled_state, params.device_buffer)); - int buffer_index = 0; - checkCudaErrors(nvjpegDecodeParamsSetOutputFormat(params.nvjpeg_decode_params, params.fmt)); - for (int i = 0; i < params.batch_size; i++) { - checkCudaErrors(nvjpegJpegStreamParse(params.nvjpeg_handle, - (const unsigned char *)img_data[i].data(), - img_len[i], - 0, - 0, - params.jpeg_streams[buffer_index])); - - checkCudaErrors( - nvjpegStateAttachPinnedBuffer(params.nvjpeg_decoupled_state, params.pinned_buffers[buffer_index])); - - checkCudaErrors(nvjpegDecodeJpegHost(params.nvjpeg_handle, - params.nvjpeg_decoder, - params.nvjpeg_decoupled_state, - params.nvjpeg_decode_params, - params.jpeg_streams[buffer_index])); - - checkCudaErrors(cudaStreamSynchronize(params.stream)); - - checkCudaErrors(nvjpegDecodeJpegTransferToDevice(params.nvjpeg_handle, - params.nvjpeg_decoder, - params.nvjpeg_decoupled_state, - params.jpeg_streams[buffer_index], - params.stream)); - - buffer_index = 1 - buffer_index; // switch pinned buffer in pipeline mode to avoid an extra sync - - checkCudaErrors(nvjpegDecodeJpegDevice(params.nvjpeg_handle, - params.nvjpeg_decoder, - params.nvjpeg_decoupled_state, - &out[i], - params.stream)); - } - checkCudaErrors(cudaEventRecord(stopEvent, params.stream)); - } - } - else { - std::vector raw_inputs; - for (int i = 0; i < params.batch_size; i++) { - raw_inputs.push_back((const unsigned char *)img_data[i].data()); - } - - checkCudaErrors(cudaEventRecord(startEvent, params.stream)); - checkCudaErrors(nvjpegDecodeBatched( - params.nvjpeg_handle, params.nvjpeg_state, raw_inputs.data(), img_len.data(), out.data(), params.stream)); - checkCudaErrors(cudaEventRecord(stopEvent, params.stream)); - } - checkCudaErrors(cudaEventSynchronize(stopEvent)); - checkCudaErrors(cudaEventElapsedTime(&loopTime, startEvent, stopEvent)); - time = static_cast(loopTime); - - return EXIT_SUCCESS; -} - -void write_images(std::vector &iout, - std::vector &widths, - std::vector &heights, - decode_params_t ¶ms, - FileNames &filenames) -{ - for (int i = 0; i < params.batch_size; i++) { - // Get the file name, without extension. - // This will be used to rename the output file. - size_t position = filenames[i].rfind("/"); - std::string sFileName = - (std::string::npos == position) ? filenames[i] : filenames[i].substr(position + 1, filenames[i].size()); - position = sFileName.rfind("."); - sFileName = (std::string::npos == position) ? sFileName : sFileName.substr(0, position); - std::string fname(params.output_dir + "/" + sFileName + ".bmp"); - - int err; - if (params.fmt == NVJPEG_OUTPUT_RGB || params.fmt == NVJPEG_OUTPUT_BGR) { - err = writeBMP(fname.c_str(), - iout[i].channel[0], - iout[i].pitch[0], - iout[i].channel[1], - iout[i].pitch[1], - iout[i].channel[2], - iout[i].pitch[2], - widths[i], - heights[i]); - } - else if (params.fmt == NVJPEG_OUTPUT_RGBI || params.fmt == NVJPEG_OUTPUT_BGRI) { - // Write BMP from interleaved data - err = writeBMPi(fname.c_str(), iout[i].channel[0], iout[i].pitch[0], widths[i], heights[i]); - } - if (err) { - std::cout << "Cannot write output file: " << fname << std::endl; - return; - } - std::cout << "Done writing decoded image to file: " << fname << std::endl; - } -} - -double process_images(FileNames &image_names, decode_params_t ¶ms, double &total) -{ - // vector for storing raw files and file lengths - FileData file_data(params.batch_size); - std::vector file_len(params.batch_size); - FileNames current_names(params.batch_size); - std::vector widths(params.batch_size); - std::vector heights(params.batch_size); - // we wrap over image files to process total_images of files - FileNames::iterator file_iter = image_names.begin(); - - // stream for decoding - checkCudaErrors(cudaStreamCreateWithFlags(¶ms.stream, cudaStreamNonBlocking)); - - int total_processed = 0; - - // output buffers - std::vector iout(params.batch_size); - // output buffer sizes, for convenience - std::vector isz(params.batch_size); - - for (int i = 0; i < iout.size(); i++) { - for (int c = 0; c < NVJPEG_MAX_COMPONENT; c++) { - iout[i].channel[c] = NULL; - iout[i].pitch[c] = 0; - isz[i].pitch[c] = 0; - } - } - - double test_time = 0; - int warmup = 0; - while (total_processed < params.total_images) { - if (read_next_batch(image_names, params.batch_size, file_iter, file_data, file_len, current_names)) - return EXIT_FAILURE; - - if (prepare_buffers(file_data, file_len, widths, heights, iout, isz, current_names, params)) - return EXIT_FAILURE; - - double time; - if (decode_images(file_data, file_len, iout, params, time)) - return EXIT_FAILURE; - if (warmup < params.warmup) { - warmup++; - } - else { - total_processed += params.batch_size; - test_time += time; - } - - if (params.write_decoded) - write_images(iout, widths, heights, params, current_names); - } - total = test_time; - - release_buffers(iout); - - checkCudaErrors(cudaStreamDestroy(params.stream)); - - return EXIT_SUCCESS; -} - -// parse parameters -int findParamIndex(const char **argv, int argc, const char *parm) -{ - int count = 0; - int index = -1; - - for (int i = 0; i < argc; i++) { - if (strncmp(argv[i], parm, 100) == 0) { - index = i; - count++; - } - } - - if (count == 0 || count == 1) { - return index; - } - else { - std::cout << "Error, parameter " << parm << " has been specified more than once, exiting\n" << std::endl; - return -1; - } - - return -1; -} - -int main(int argc, const char *argv[]) -{ - int pidx; - - if ((pidx = findParamIndex(argv, argc, "-h")) != -1 || (pidx = findParamIndex(argv, argc, "--help")) != -1) { - std::cout << "Usage: " << argv[0] - << " -i images_dir [-b batch_size] [-t total_images] [-device= " - "device_id] [-w warmup_iterations] [-o output_dir] " - "[-pipelined] [-batched] [-fmt output_format]\n"; - std::cout << "Parameters: " << std::endl; - std::cout << "\timages_dir\t:\tPath to single image or directory of images" << std::endl; - std::cout << "\tbatch_size\t:\tDecode images from input by batches of " - "specified size" - << std::endl; - std::cout << "\ttotal_images\t:\tDecode this much images, if there are " - "less images \n" - << "\t\t\t\t\tin the input than total images, decoder will loop " - "over the input" - << std::endl; - std::cout << "\tdevice_id\t:\tWhich device to use for decoding" << std::endl; - std::cout << "\twarmup_iterations\t:\tRun this amount of batches first " - "without measuring performance" - << std::endl; - std::cout << "\toutput_dir\t:\tWrite decoded images as BMPs to this directory" << std::endl; - std::cout << "\tpipelined\t:\tUse decoding in phases" << std::endl; - std::cout << "\tbatched\t\t:\tUse batched interface" << std::endl; - std::cout << "\toutput_format\t:\tnvJPEG output format for decoding. One " - "of [rgb, rgbi, bgr, bgri, yuv, y, unchanged]" - << std::endl; - return EXIT_SUCCESS; - } - - decode_params_t params; - - params.input_dir = "./"; - if ((pidx = findParamIndex(argv, argc, "-i")) != -1) { - params.input_dir = argv[pidx + 1]; - } - else { - // Search in default paths for input images. - int found = getInputDir(params.input_dir, argv[0]); - if (!found) { - std::cout << "Please specify input directory with encoded images" << std::endl; - return EXIT_WAIVED; - } - } - - params.batch_size = 1; - if ((pidx = findParamIndex(argv, argc, "-b")) != -1) { - params.batch_size = std::atoi(argv[pidx + 1]); - } - - params.total_images = -1; - if ((pidx = findParamIndex(argv, argc, "-t")) != -1) { - params.total_images = std::atoi(argv[pidx + 1]); - } - - params.dev = 0; - params.dev = findCudaDevice(argc, argv); - - params.warmup = 0; - if ((pidx = findParamIndex(argv, argc, "-w")) != -1) { - params.warmup = std::atoi(argv[pidx + 1]); - } - - params.batched = false; - if ((pidx = findParamIndex(argv, argc, "-batched")) != -1) { - params.batched = true; - } - - params.pipelined = false; - if ((pidx = findParamIndex(argv, argc, "-pipelined")) != -1) { - params.pipelined = true; - } - - params.fmt = NVJPEG_OUTPUT_RGB; - if ((pidx = findParamIndex(argv, argc, "-fmt")) != -1) { - std::string sfmt = argv[pidx + 1]; - if (sfmt == "rgb") - params.fmt = NVJPEG_OUTPUT_RGB; - else if (sfmt == "bgr") - params.fmt = NVJPEG_OUTPUT_BGR; - else if (sfmt == "rgbi") - params.fmt = NVJPEG_OUTPUT_RGBI; - else if (sfmt == "bgri") - params.fmt = NVJPEG_OUTPUT_BGRI; - else if (sfmt == "yuv") - params.fmt = NVJPEG_OUTPUT_YUV; - else if (sfmt == "y") - params.fmt = NVJPEG_OUTPUT_Y; - else if (sfmt == "unchanged") - params.fmt = NVJPEG_OUTPUT_UNCHANGED; - else { - std::cout << "Unknown format: " << sfmt << std::endl; - return EXIT_FAILURE; - } - } - - params.write_decoded = false; - if ((pidx = findParamIndex(argv, argc, "-o")) != -1) { - params.output_dir = argv[pidx + 1]; - if (params.fmt != NVJPEG_OUTPUT_RGB && params.fmt != NVJPEG_OUTPUT_BGR && params.fmt != NVJPEG_OUTPUT_RGBI - && params.fmt != NVJPEG_OUTPUT_BGRI) { - std::cout << "We can write ony BMPs, which require output format be " - "either RGB/BGR or RGBi/BGRi" - << std::endl; - return EXIT_FAILURE; - } - params.write_decoded = true; - } - - cudaDeviceProp props; - checkCudaErrors(cudaGetDeviceProperties(&props, params.dev)); - - printf("Using GPU %d (%s, %d SMs, %d th/SM max, CC %d.%d, ECC %s)\n", - params.dev, - props.name, - props.multiProcessorCount, - props.maxThreadsPerMultiProcessor, - props.major, - props.minor, - props.ECCEnabled ? "on" : "off"); - - nvjpegDevAllocator_t dev_allocator = {&dev_malloc, &dev_free}; - nvjpegPinnedAllocator_t pinned_allocator = {&host_malloc, &host_free}; - int flags = 0; - checkCudaErrors( - nvjpegCreateEx(NVJPEG_BACKEND_DEFAULT, &dev_allocator, &pinned_allocator, flags, ¶ms.nvjpeg_handle)); - - checkCudaErrors(nvjpegJpegStateCreate(params.nvjpeg_handle, ¶ms.nvjpeg_state)); - checkCudaErrors( - nvjpegDecodeBatchedInitialize(params.nvjpeg_handle, params.nvjpeg_state, params.batch_size, 1, params.fmt)); - - if (params.pipelined) { - create_decoupled_api_handles(params); - } - // read source images - FileNames image_names; - readInput(params.input_dir, image_names); - - if (params.total_images == -1) { - params.total_images = image_names.size(); - } - else if (params.total_images % params.batch_size) { - params.total_images = ((params.total_images) / params.batch_size) * params.batch_size; - std::cout << "Changing total_images number to " << params.total_images << " to be multiple of batch_size - " - << params.batch_size << std::endl; - } - - std::cout << "Decoding images in directory: " << params.input_dir << ", total " << params.total_images - << ", batchsize " << params.batch_size << std::endl; - - double total; - if (process_images(image_names, params, total)) - return EXIT_FAILURE; - std::cout << "Total decoding time: " << total << std::endl; - std::cout << "Avg decoding time per image: " << total / params.total_images << std::endl; - std::cout << "Avg images per sec: " << params.total_images / total << std::endl; - std::cout << "Avg decoding time per batch: " - << total / ((params.total_images + params.batch_size - 1) / params.batch_size) << std::endl; - - if (params.pipelined) { - destroy_decoupled_api_handles(params); - } - - checkCudaErrors(nvjpegJpegStateDestroy(params.nvjpeg_state)); - checkCudaErrors(nvjpegDestroy(params.nvjpeg_handle)); - - return EXIT_SUCCESS; -} diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/nvJPEG_encoder/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/nvJPEG_encoder/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/.vscode/extensions.json b/cpp/4_CUDA_Libraries/nvJPEG_encoder/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/nvJPEG_encoder/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/CMakeLists.txt b/cpp/4_CUDA_Libraries/nvJPEG_encoder/CMakeLists.txt deleted file mode 100644 index 47ebb087..00000000 --- a/cpp/4_CUDA_Libraries/nvJPEG_encoder/CMakeLists.txt +++ /dev/null @@ -1,56 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(nvJPEG_encoder LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for nvJPEG_encoder -add_executable(nvJPEG_encoder nvJPEG_encoder.cpp) - -target_compile_options(nvJPEG_encoder PRIVATE $<$:--extended-lambda>) - -target_compile_features(nvJPEG_encoder PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(nvJPEG_encoder PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(nvJPEG_encoder PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(nvJPEG_encoder PRIVATE - CUDA::cudart - CUDA::nvjpeg -) - -# Copy data to the output directory -add_custom_command(TARGET nvJPEG_encoder POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/images - ${CMAKE_CURRENT_BINARY_DIR}/images -) - -add_custom_command(TARGET nvJPEG_encoder POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/encode_output - ${CMAKE_CURRENT_BINARY_DIR}/encode_output -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/README.md b/cpp/4_CUDA_Libraries/nvJPEG_encoder/README.md deleted file mode 100644 index 15f109de..00000000 --- a/cpp/4_CUDA_Libraries/nvJPEG_encoder/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# nvJPEG_encoder - NVJPEG Encoder - -## Description - -A CUDA Sample that demonstrates single encoding of jpeg images using NVJPEG Library. - -## Key Concepts - -Image Encoding, NVJPEG Library - -## Supported SM Architectures - -## Supported OSes - -Linux, Windows, QNX - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaFree, cudaGetErrorString, cudaEventSynchronize, cudaDeviceSynchronize, cudaEventRecord, cudaMalloc, cudaEventElapsedTime, cudaGetDeviceProperties, cudaEventCreate - -## Dependencies needed to build/run -[NVJPEG](../../../README.md#nvjpeg) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img1.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img1.jpg deleted file mode 100644 index d89c7bac..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img1.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img2.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img2.jpg deleted file mode 100644 index d346f621..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img2.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img3.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img3.jpg deleted file mode 100644 index 90964cfa..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img3.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img4.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img4.jpg deleted file mode 100644 index 04564ad4..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img4.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img5.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img5.jpg deleted file mode 100644 index 0d3c37f2..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img5.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img6.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img6.jpg deleted file mode 100644 index c07f36f8..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img6.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img7.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img7.jpg deleted file mode 100644 index fed15ee7..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img7.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img8.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img8.jpg deleted file mode 100644 index e7bc8374..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/encode_output/img8.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img1.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img1.jpg deleted file mode 100644 index 7413faf0..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img1.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img2.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img2.jpg deleted file mode 100644 index d5b53b26..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img2.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img3.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img3.jpg deleted file mode 100644 index 41b1d9b4..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img3.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img4.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img4.jpg deleted file mode 100644 index 17fa69ef..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img4.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img5.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img5.jpg deleted file mode 100644 index 148ccb41..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img5.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img6.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img6.jpg deleted file mode 100644 index a58ef7c5..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img6.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img7.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img7.jpg deleted file mode 100644 index f49d9122..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img7.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img8.jpg b/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img8.jpg deleted file mode 100644 index ab51a789..00000000 Binary files a/cpp/4_CUDA_Libraries/nvJPEG_encoder/images/img8.jpg and /dev/null differ diff --git a/cpp/4_CUDA_Libraries/nvJPEG_encoder/nvJPEG_encoder.cpp b/cpp/4_CUDA_Libraries/nvJPEG_encoder/nvJPEG_encoder.cpp deleted file mode 100644 index 0bf7aaa6..00000000 --- a/cpp/4_CUDA_Libraries/nvJPEG_encoder/nvJPEG_encoder.cpp +++ /dev/null @@ -1,466 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -// This sample needs at least CUDA 10.1. It demonstrates usages of the nvJPEG -// library nvJPEG encoder supports single and multiple image encode. - -#include - -#include "helper_nvJPEG.hxx" - - -int dev_malloc(void **p, size_t s) { return (int)cudaMalloc(p, s); } -int dev_free(void *p) { return (int)cudaFree(p); } - -bool is_interleaved(nvjpegOutputFormat_t format) -{ - if (format == NVJPEG_OUTPUT_RGBI || format == NVJPEG_OUTPUT_BGRI) - return true; - else - return false; -} - -struct encode_params_t -{ - std::string input_dir; - std::string output_dir; - std::string format; - std::string subsampling; - int quality; - int huf; - int dev; -}; - -nvjpegEncoderParams_t encode_params; -nvjpegHandle_t nvjpeg_handle; -nvjpegJpegState_t jpeg_state; -nvjpegEncoderState_t encoder_state; - -int decodeEncodeOneImage(std::string sImagePath, - std::string sOutputPath, - double &time, - nvjpegOutputFormat_t output_format, - nvjpegInputFormat_t input_format) -{ - time = 0.; - cudaEvent_t startEvent = NULL, stopEvent = NULL; - float loopTime = 0; - checkCudaErrors(cudaEventCreate(&startEvent, cudaEventBlockingSync)); - checkCudaErrors(cudaEventCreate(&stopEvent, cudaEventBlockingSync)); - - // Get the file name, without extension. - // This will be used to rename the output file. - size_t position = sImagePath.rfind("/"); - std::string sFileName = - (std::string::npos == position) ? sImagePath : sImagePath.substr(position + 1, sImagePath.size()); - position = sFileName.rfind("."); - sFileName = (std::string::npos == position) ? sFileName : sFileName.substr(0, position); - position = sFileName.rfind("/"); - sFileName = (std::string::npos == position) ? sFileName : sFileName.substr(position + 1, sFileName.length()); - position = sFileName.rfind("\\"); - sFileName = (std::string::npos == position) ? sFileName : sFileName.substr(position + 1, sFileName.length()); - - // Read an image from disk. - std::ifstream oInputStream(sImagePath.c_str(), std::ios::in | std::ios::binary | std::ios::ate); - if (!(oInputStream.is_open())) { - std::cerr << "Cannot open image: " << sImagePath << std::endl; - return 1; - } - - // Get the size. - std::streamsize nSize = oInputStream.tellg(); - oInputStream.seekg(0, std::ios::beg); - - // Image buffers. - unsigned char *pBuffer = NULL; - double encoder_time = 0.; - - std::vector vBuffer(nSize); - - if (oInputStream.read(vBuffer.data(), nSize)) { - unsigned char *dpImage = (unsigned char *)vBuffer.data(); - - // Retrieve the componenet and size info. - int nComponent = 0; - nvjpegChromaSubsampling_t subsampling; - int widths[NVJPEG_MAX_COMPONENT]; - int heights[NVJPEG_MAX_COMPONENT]; - if (NVJPEG_STATUS_SUCCESS - != nvjpegGetImageInfo(nvjpeg_handle, dpImage, nSize, &nComponent, &subsampling, widths, heights)) { - std::cerr << "Error decoding JPEG header: " << sImagePath << std::endl; - return 1; - } - - // image information - std::cout << "Image is " << nComponent << " channels." << std::endl; - for (int i = 0; i < nComponent; i++) { - std::cout << "Channel #" << i << " size: " << widths[i] << " x " << heights[i] << std::endl; - } - - switch (subsampling) { - case NVJPEG_CSS_444: - std::cout << "YUV 4:4:4 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_440: - std::cout << "YUV 4:4:0 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_422: - std::cout << "YUV 4:2:2 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_420: - std::cout << "YUV 4:2:0 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_411: - std::cout << "YUV 4:1:1 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_410: - std::cout << "YUV 4:1:0 chroma subsampling" << std::endl; - break; - case NVJPEG_CSS_GRAY: - std::cout << "Grayscale JPEG " << std::endl; - break; - case NVJPEG_CSS_UNKNOWN: - std::cout << "Unknown chroma subsampling" << std::endl; - return 1; - } - - { - - cudaError_t eCopy = cudaMalloc(&pBuffer, widths[0] * heights[0] * NVJPEG_MAX_COMPONENT); - if (cudaSuccess != eCopy) { - std::cerr << "cudaMalloc failed for component Y: " << cudaGetErrorString(eCopy) << std::endl; - return 1; - } - - nvjpegImage_t imgdesc = {{pBuffer, - pBuffer + widths[0] * heights[0], - pBuffer + widths[0] * heights[0] * 2, - pBuffer + widths[0] * heights[0] * 3}, - {(unsigned int)(is_interleaved(output_format) ? widths[0] * 3 : widths[0]), - (unsigned int)widths[0], - (unsigned int)widths[0], - (unsigned int)widths[0]}}; - - int nReturnCode = 0; - - cudaDeviceSynchronize(); - - nReturnCode = nvjpegDecode(nvjpeg_handle, jpeg_state, dpImage, nSize, output_format, &imgdesc, NULL); - - // alternatively decode by stages - /*int nReturnCode = nvjpegDecodeCPU(nvjpeg_handle, dpImage, nSize, output_format, &imgdesc, NULL); - nReturnCode = nvjpegDecodeMixed(nvjpeg_handle, NULL); - nReturnCode = nvjpegDecodeGPU(nvjpeg_handle, NULL);*/ - cudaDeviceSynchronize(); - - if (nReturnCode != 0) { - std::cerr << "Error in nvjpegDecode." << std::endl; - return 1; - } - - checkCudaErrors(cudaEventRecord(startEvent, NULL)); - /////////////////////// encode //////////////////// - if (NVJPEG_OUTPUT_YUV == output_format) { - checkCudaErrors(nvjpegEncodeYUV( - nvjpeg_handle, encoder_state, encode_params, &imgdesc, subsampling, widths[0], heights[0], NULL)); - } - else { - checkCudaErrors(nvjpegEncodeImage( - nvjpeg_handle, encoder_state, encode_params, &imgdesc, input_format, widths[0], heights[0], NULL)); - } - - std::vector obuffer; - size_t length; - checkCudaErrors(nvjpegEncodeRetrieveBitstream(nvjpeg_handle, encoder_state, NULL, &length, NULL)); - obuffer.resize(length); - checkCudaErrors(nvjpegEncodeRetrieveBitstream(nvjpeg_handle, encoder_state, obuffer.data(), &length, NULL)); - - checkCudaErrors(cudaEventRecord(stopEvent, NULL)); - checkCudaErrors(cudaEventSynchronize(stopEvent)); - checkCudaErrors(cudaEventElapsedTime(&loopTime, startEvent, stopEvent)); - encoder_time = static_cast(loopTime); - - std::string output_filename = sOutputPath + "/" + sFileName + ".jpg"; - char directory[120]; - char mkdir_cmd[256]; - std::string folder = sOutputPath; - output_filename = folder + "/" + sFileName + ".jpg"; -#if !defined(_WIN32) - sprintf(directory, "%s", folder.c_str()); - sprintf(mkdir_cmd, "mkdir -p %s 2> /dev/null", directory); -#else - sprintf(directory, "%s", folder.c_str()); - sprintf(mkdir_cmd, "mkdir %s 2> nul", directory); -#endif - - int ret = system(mkdir_cmd); - - std::cout << "Writing JPEG file: " << output_filename << std::endl; - std::ofstream outputFile(output_filename.c_str(), std::ios::out | std::ios::binary); - outputFile.write(reinterpret_cast(obuffer.data()), static_cast(length)); - - // Free memory - checkCudaErrors(cudaFree(pBuffer)); - } - } - - time = encoder_time; - - return 0; -} - -int processArgs(encode_params_t param) -{ - std::string sInputPath(param.input_dir); - std::string sOutputPath(param.output_dir); - std::string sFormat(param.format); - std::string sSubsampling(param.subsampling); - nvjpegOutputFormat_t oformat = NVJPEG_OUTPUT_RGB; - nvjpegInputFormat_t iformat = NVJPEG_INPUT_RGB; - - int error_code = 1; - - if (sFormat == "yuv") { - oformat = NVJPEG_OUTPUT_YUV; - } - else if (sFormat == "rgb") { - oformat = NVJPEG_OUTPUT_RGB; - iformat = NVJPEG_INPUT_RGB; - } - else if (sFormat == "bgr") { - oformat = NVJPEG_OUTPUT_BGR; - iformat = NVJPEG_INPUT_BGR; - } - else if (sFormat == "rgbi") { - oformat = NVJPEG_OUTPUT_RGBI; - iformat = NVJPEG_INPUT_RGBI; - } - else if (sFormat == "bgri") { - oformat = NVJPEG_OUTPUT_BGRI; - iformat = NVJPEG_INPUT_BGRI; - } - else { - std::cerr << "Unknown or unsupported output format: " << sFormat << std::endl; - return error_code; - } - - if (sSubsampling == "444") { - checkCudaErrors(nvjpegEncoderParamsSetSamplingFactors(encode_params, NVJPEG_CSS_444, NULL)); - } - else if (sSubsampling == "422") { - checkCudaErrors(nvjpegEncoderParamsSetSamplingFactors(encode_params, NVJPEG_CSS_422, NULL)); - } - else if (sSubsampling == "420") { - checkCudaErrors(nvjpegEncoderParamsSetSamplingFactors(encode_params, NVJPEG_CSS_420, NULL)); - } - else if (sSubsampling == "440") { - checkCudaErrors(nvjpegEncoderParamsSetSamplingFactors(encode_params, NVJPEG_CSS_440, NULL)); - } - else if (sSubsampling == "411") { - checkCudaErrors(nvjpegEncoderParamsSetSamplingFactors(encode_params, NVJPEG_CSS_411, NULL)); - } - else if (sSubsampling == "410") { - checkCudaErrors(nvjpegEncoderParamsSetSamplingFactors(encode_params, NVJPEG_CSS_410, NULL)); - } - else if (sSubsampling == "400") { - checkCudaErrors(nvjpegEncoderParamsSetSamplingFactors(encode_params, NVJPEG_CSS_GRAY, NULL)); - } - else { - std::cerr << "Unknown or unsupported subsampling: " << sSubsampling << std::endl; - return error_code; - } - /*if( stat(sOutputPath.c_str(), &s) == 0 ) - { - if( !(s.st_mode & S_IFDIR) ) - { - std::cout << "Output path already exist as non-directory: " << sOutputPath << std::endl; - return error_code; - } - } - else - { - if (mkdir(sOutputPath.c_str(), 0775)) - { - std::cout << "Cannot create output directory: " << sOutputPath << std::endl; - return error_code; - } - }*/ - - std::vector inputFiles; - if (readInput(sInputPath, inputFiles)) { - return error_code; - } - - double total_time = 0., encoder_time = 0.; - int total_images = 0; - - for (unsigned int i = 0; i < inputFiles.size(); i++) { - std::string &sFileName = inputFiles[i]; - std::cout << "Processing file: " << sFileName << std::endl; - int image_error_code = decodeEncodeOneImage(sFileName, sOutputPath, encoder_time, oformat, iformat); - if (image_error_code) { - std::cerr << "Error processing file: " << sFileName << std::endl; - // return image_error_code; - } - else { - total_images++; - total_time += encoder_time; - } - } - std::cout << "Total images processed: " << total_images << std::endl; - std::cout << "Total time spent on encoding: " << total_time << std::endl; - std::cout << "Avg time/image: " << total_time / total_images << std::endl; - - return 0; -} - -// parse parameters -int findParamIndex(const char **argv, int argc, const char *parm) -{ - int count = 0; - int index = -1; - - for (int i = 0; i < argc; i++) { - if (strncmp(argv[i], parm, 100) == 0) { - index = i; - count++; - } - } - - if (count == 0 || count == 1) { - return index; - } - else { - std::cout << "Error, parameter " << parm << " has been specified more than once, exiting\n" << std::endl; - return -1; - } - - return -1; -} - - -int main(int argc, const char *argv[]) -{ - int pidx; - - if ((pidx = findParamIndex(argv, argc, "-h")) != -1 || (pidx = findParamIndex(argv, argc, "--help")) != -1) { - std::cout << "Usage: " << argv[0] - << " -i images_dir [-o output_dir] [-device=device_id]" - "[-q quality][-s 420/444] [-fmt output_format] [-huf 0]\n"; - std::cout << "Parameters: " << std::endl; - std::cout << "\timages_dir\t:\tPath to single image or directory of images" << std::endl; - std::cout << "\toutput_dir\t:\tWrite encoded images as jpeg to this directory" << std::endl; - std::cout << "\tdevice_id\t:\tWhich device to use for encoding" << std::endl; - std::cout << "\tQuality\t:\tUse image quality [default 70]" << std::endl; - std::cout << "\tsubsampling\t:\tUse Subsampling [420, 444]" << std::endl; - std::cout << "\toutput_format\t:\tnvJPEG output format for encoding. One " - "of [rgb, rgbi, bgr, bgri, yuv, y, unchanged]" - << std::endl; - std::cout << "\tHuffman Optimization\t:\tUse Huffman optimization [default 0]" << std::endl; - return EXIT_SUCCESS; - } - - encode_params_t params; - - params.input_dir = "./"; - if ((pidx = findParamIndex(argv, argc, "-i")) != -1) { - params.input_dir = argv[pidx + 1]; - } - else { - // Search in default paths for input images. - int found = getInputDir(params.input_dir, argv[0]); - if (!found) { - std::cout << "Please specify input directory with encoded images" << std::endl; - return EXIT_WAIVED; - } - } - if ((pidx = findParamIndex(argv, argc, "-o")) != -1) { - params.output_dir = argv[pidx + 1]; - } - else { - // by-default write the folder named "output" in cwd - params.output_dir = "encode_output"; - } - params.dev = 0; - params.dev = findCudaDevice(argc, argv); - - params.quality = 70; - if ((pidx = findParamIndex(argv, argc, "-q")) != -1) { - params.quality = std::atoi(argv[pidx + 1]); - } - - if ((pidx = findParamIndex(argv, argc, "-s")) != -1) { - params.subsampling = argv[pidx + 1]; - } - else { - // by-default use subsampling as 420 - params.subsampling = "420"; - } - if ((pidx = findParamIndex(argv, argc, "-fmt")) != -1) { - params.format = argv[pidx + 1]; - } - else { - // by-default use output format yuv - params.format = "yuv"; - } - - params.huf = 0; - if ((pidx = findParamIndex(argv, argc, "-huf")) != -1) { - params.huf = std::atoi(argv[pidx + 1]); - } - - cudaDeviceProp props; - checkCudaErrors(cudaGetDeviceProperties(&props, params.dev)); - - printf("Using GPU %d (%s, %d SMs, %d th/SM max, CC %d.%d, ECC %s)\n", - params.dev, - props.name, - props.multiProcessorCount, - props.maxThreadsPerMultiProcessor, - props.major, - props.minor, - props.ECCEnabled ? "on" : "off"); - - nvjpegDevAllocator_t dev_allocator = {&dev_malloc, &dev_free}; - checkCudaErrors(nvjpegCreate(NVJPEG_BACKEND_DEFAULT, &dev_allocator, &nvjpeg_handle)); - checkCudaErrors(nvjpegJpegStateCreate(nvjpeg_handle, &jpeg_state)); - checkCudaErrors(nvjpegEncoderStateCreate(nvjpeg_handle, &encoder_state, NULL)); - checkCudaErrors(nvjpegEncoderParamsCreate(nvjpeg_handle, &encode_params, NULL)); - - // sample input parameters - checkCudaErrors(nvjpegEncoderParamsSetQuality(encode_params, params.quality, NULL)); - checkCudaErrors(nvjpegEncoderParamsSetOptimizedHuffman(encode_params, params.huf, NULL)); - - pidx = processArgs(params); - - checkCudaErrors(nvjpegEncoderParamsDestroy(encode_params)); - checkCudaErrors(nvjpegEncoderStateDestroy(encoder_state)); - checkCudaErrors(nvjpegJpegStateDestroy(jpeg_state)); - checkCudaErrors(nvjpegDestroy(nvjpeg_handle)); - - return pidx; -} diff --git a/cpp/4_CUDA_Libraries/oceanFFT/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/oceanFFT/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/oceanFFT/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/oceanFFT/.vscode/extensions.json b/cpp/4_CUDA_Libraries/oceanFFT/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/oceanFFT/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/oceanFFT/CMakeLists.txt b/cpp/4_CUDA_Libraries/oceanFFT/CMakeLists.txt index 99aa0e07..f2e1418b 100644 --- a/cpp/4_CUDA_Libraries/oceanFFT/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/oceanFFT/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(oceanFFT LANGUAGES CUDA CXX) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -30,54 +26,41 @@ if(WIN32) endif() endif() - find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for oceanFFT add_executable(oceanFFT oceanFFT.cpp oceanFFT_kernel.cu) - -target_compile_options(oceanFFT PRIVATE $<$:--extended-lambda>) - -target_compile_features(oceanFFT PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(oceanFFT PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - + target_compile_options(oceanFFT PRIVATE $<$:--extended-lambda>) + target_compile_features(oceanFFT PRIVATE cxx_std_17 cuda_std_17) target_include_directories(oceanFFT PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(oceanFFT ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} CUDA::cufft ) - # Copy data files to the output directory add_custom_command(TARGET oceanFFT POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(oceanFFT ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET oceanFFT POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET oceanFFT POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -85,15 +68,11 @@ target_compile_features(oceanFFT PRIVATE cxx_std_17 cuda_std_17) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'oceanFFT'") endif() else() message(STATUS "OpenGL not found - will not build sample 'oceanFFT'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/randomFog/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/randomFog/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/randomFog/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/randomFog/.vscode/extensions.json b/cpp/4_CUDA_Libraries/randomFog/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/randomFog/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/randomFog/CMakeLists.txt b/cpp/4_CUDA_Libraries/randomFog/CMakeLists.txt index 635a2960..fc2d67d1 100644 --- a/cpp/4_CUDA_Libraries/randomFog/CMakeLists.txt +++ b/cpp/4_CUDA_Libraries/randomFog/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(randomFog LANGUAGES CXX) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) # Check for Debian13 or later @@ -43,24 +39,16 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for randomFog add_executable(randomFog randomFog.cpp rng.cpp) - target_compile_options(randomFog PRIVATE $<$:--extended-lambda>) - target_compile_features(randomFog PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(randomFog PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(randomFog PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(randomFog ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} @@ -76,27 +64,23 @@ if(${OpenGL_FOUND}) Xext ) endif() - # Copy data files to the output directory add_custom_command(TARGET randomFog POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(randomFog ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET randomFog POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET randomFog POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -104,14 +88,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'randomFog'") endif() else() message(STATUS "OpenGL not found - will not build sample 'randomFog'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/simpleCUBLAS/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/simpleCUBLAS/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLAS/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/simpleCUBLAS/.vscode/extensions.json b/cpp/4_CUDA_Libraries/simpleCUBLAS/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLAS/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/simpleCUBLAS/CMakeLists.txt b/cpp/4_CUDA_Libraries/simpleCUBLAS/CMakeLists.txt deleted file mode 100644 index cc7f7149..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLAS/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(simpleCUBLAS LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for simpleCUBLAS -add_executable(simpleCUBLAS simpleCUBLAS.cpp) - -target_compile_options(simpleCUBLAS PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleCUBLAS PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(simpleCUBLAS PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(simpleCUBLAS PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(simpleCUBLAS PRIVATE - CUDA::cudart - CUDA::cublas -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/simpleCUBLAS/README.md b/cpp/4_CUDA_Libraries/simpleCUBLAS/README.md deleted file mode 100644 index b381aac3..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLAS/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# simpleCUBLAS - Simple CUBLAS - -## Description - -Example of using CUBLAS API interface to perform GEMM operations. - -## Key Concepts - -Image Processing, CUBLAS Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l, aarch64 - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMalloc, cudaFree - -## Dependencies needed to build/run -[CUBLAS](../../../README.md#cublas) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/simpleCUBLAS/simpleCUBLAS.cpp b/cpp/4_CUDA_Libraries/simpleCUBLAS/simpleCUBLAS.cpp deleted file mode 100644 index 6197a4ee..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLAS/simpleCUBLAS.cpp +++ /dev/null @@ -1,253 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* This example demonstrates how to use the CUBLAS library - * by scaling an array of floating-point values on the device - * and comparing the result to the same operation performed - * on the host. - */ - -/* Includes, system */ -#include -#include -#include - -/* Includes, cuda */ -#include -#include -#include - -/* Matrix size */ -#define N (275) - -/* Host implementation of a simple version of sgemm */ -static void simple_sgemm(int n, float alpha, const float *A, const float *B, float beta, float *C) -{ - int i; - int j; - int k; - - for (i = 0; i < n; ++i) { - for (j = 0; j < n; ++j) { - float prod = 0; - - for (k = 0; k < n; ++k) { - prod += A[k * n + i] * B[j * n + k]; - } - - C[j * n + i] = alpha * prod + beta * C[j * n + i]; - } - } -} - -/* Main */ -int main(int argc, char **argv) -{ - cublasStatus_t status; - float *h_A; - float *h_B; - float *h_C; - float *h_C_ref; - float *d_A = 0; - float *d_B = 0; - float *d_C = 0; - float alpha = 1.0f; - float beta = 0.0f; - int n2 = N * N; - int i; - float error_norm; - float ref_norm; - float diff; - cublasHandle_t handle; - - int dev = findCudaDevice(argc, (const char **)argv); - - if (dev == -1) { - return EXIT_FAILURE; - } - - /* Initialize CUBLAS */ - printf("simpleCUBLAS test running..\n"); - - status = cublasCreate(&handle); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! CUBLAS initialization error\n"); - return EXIT_FAILURE; - } - - /* Allocate host memory for the matrices */ - h_A = reinterpret_cast(malloc(n2 * sizeof(h_A[0]))); - - if (h_A == 0) { - fprintf(stderr, "!!!! host memory allocation error (A)\n"); - return EXIT_FAILURE; - } - - h_B = reinterpret_cast(malloc(n2 * sizeof(h_B[0]))); - - if (h_B == 0) { - fprintf(stderr, "!!!! host memory allocation error (B)\n"); - return EXIT_FAILURE; - } - - h_C = reinterpret_cast(malloc(n2 * sizeof(h_C[0]))); - - if (h_C == 0) { - fprintf(stderr, "!!!! host memory allocation error (C)\n"); - return EXIT_FAILURE; - } - - /* Fill the matrices with test data */ - for (i = 0; i < n2; i++) { - h_A[i] = rand() / static_cast(RAND_MAX); - h_B[i] = rand() / static_cast(RAND_MAX); - h_C[i] = rand() / static_cast(RAND_MAX); - } - - /* Allocate device memory for the matrices */ - if (cudaMalloc(reinterpret_cast(&d_A), n2 * sizeof(d_A[0])) != cudaSuccess) { - fprintf(stderr, "!!!! device memory allocation error (allocate A)\n"); - return EXIT_FAILURE; - } - - if (cudaMalloc(reinterpret_cast(&d_B), n2 * sizeof(d_B[0])) != cudaSuccess) { - fprintf(stderr, "!!!! device memory allocation error (allocate B)\n"); - return EXIT_FAILURE; - } - - if (cudaMalloc(reinterpret_cast(&d_C), n2 * sizeof(d_C[0])) != cudaSuccess) { - fprintf(stderr, "!!!! device memory allocation error (allocate C)\n"); - return EXIT_FAILURE; - } - - /* Initialize the device matrices with the host matrices */ - status = cublasSetVector(n2, sizeof(h_A[0]), h_A, 1, d_A, 1); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! device access error (write A)\n"); - return EXIT_FAILURE; - } - - status = cublasSetVector(n2, sizeof(h_B[0]), h_B, 1, d_B, 1); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! device access error (write B)\n"); - return EXIT_FAILURE; - } - - status = cublasSetVector(n2, sizeof(h_C[0]), h_C, 1, d_C, 1); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! device access error (write C)\n"); - return EXIT_FAILURE; - } - - /* Performs operation using plain C code */ - simple_sgemm(N, alpha, h_A, h_B, beta, h_C); - h_C_ref = h_C; - - /* Performs operation using cublas */ - status = cublasSgemm(handle, CUBLAS_OP_N, CUBLAS_OP_N, N, N, N, &alpha, d_A, N, d_B, N, &beta, d_C, N); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! kernel execution error.\n"); - return EXIT_FAILURE; - } - - /* Allocate host memory for reading back the result from device memory */ - h_C = reinterpret_cast(malloc(n2 * sizeof(h_C[0]))); - - if (h_C == 0) { - fprintf(stderr, "!!!! host memory allocation error (C)\n"); - return EXIT_FAILURE; - } - - /* Read the result back */ - status = cublasGetVector(n2, sizeof(h_C[0]), d_C, 1, h_C, 1); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! device access error (read C)\n"); - return EXIT_FAILURE; - } - - /* Check result against reference */ - error_norm = 0; - ref_norm = 0; - - for (i = 0; i < n2; ++i) { - diff = h_C_ref[i] - h_C[i]; - error_norm += diff * diff; - ref_norm += h_C_ref[i] * h_C_ref[i]; - } - - error_norm = static_cast(sqrt(static_cast(error_norm))); - ref_norm = static_cast(sqrt(static_cast(ref_norm))); - - if (fabs(ref_norm) < 1e-7) { - fprintf(stderr, "!!!! reference norm is 0\n"); - return EXIT_FAILURE; - } - - /* Memory clean up */ - free(h_A); - free(h_B); - free(h_C); - free(h_C_ref); - - if (cudaFree(d_A) != cudaSuccess) { - fprintf(stderr, "!!!! memory free error (A)\n"); - return EXIT_FAILURE; - } - - if (cudaFree(d_B) != cudaSuccess) { - fprintf(stderr, "!!!! memory free error (B)\n"); - return EXIT_FAILURE; - } - - if (cudaFree(d_C) != cudaSuccess) { - fprintf(stderr, "!!!! memory free error (C)\n"); - return EXIT_FAILURE; - } - - /* Shutdown */ - status = cublasDestroy(handle); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! shutdown error (A)\n"); - return EXIT_FAILURE; - } - - if (error_norm / ref_norm < 1e-6f) { - printf("simpleCUBLAS test passed.\n"); - exit(EXIT_SUCCESS); - } - else { - printf("simpleCUBLAS test failed.\n"); - exit(EXIT_FAILURE); - } -} diff --git a/cpp/4_CUDA_Libraries/simpleCUBLASXT/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/simpleCUBLASXT/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLASXT/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/simpleCUBLASXT/.vscode/extensions.json b/cpp/4_CUDA_Libraries/simpleCUBLASXT/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLASXT/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/simpleCUBLASXT/CMakeLists.txt b/cpp/4_CUDA_Libraries/simpleCUBLASXT/CMakeLists.txt deleted file mode 100644 index 72d33680..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLASXT/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(simpleCUBLASXT LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for simpleCUBLASXT -add_executable(simpleCUBLASXT simpleCUBLASXT.cpp) - -target_compile_options(simpleCUBLASXT PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleCUBLASXT PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(simpleCUBLASXT PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(simpleCUBLASXT PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(simpleCUBLASXT PRIVATE - CUDA::cudart - CUDA::cublas -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/simpleCUBLASXT/README.md b/cpp/4_CUDA_Libraries/simpleCUBLASXT/README.md deleted file mode 100644 index 64a884b2..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLASXT/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# simpleCUBLASXT - Simple CUBLAS XT - -## Description - -Example of using CUBLAS-XT library which performs GEMM operations over Multiple GPUs. - -## Key Concepts - -CUBLAS-XT Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaGetDeviceProperties, cudaGetDeviceCount, cudaFree - -## Dependencies needed to build/run -[CUBLAS](../../../README.md#cublas) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/simpleCUBLASXT/simpleCUBLASXT.cpp b/cpp/4_CUDA_Libraries/simpleCUBLASXT/simpleCUBLASXT.cpp deleted file mode 100644 index b100f1ae..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLASXT/simpleCUBLASXT.cpp +++ /dev/null @@ -1,308 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* This example demonstrates how to use the CUBLAS library - * by scaling an array of floating-point values on the device - * and comparing the result to the same operation performed - * on the host. - */ - -/* Includes, system */ -#include -#include -#include - -/* Includes, cuda */ -#include -#include -#include - -/* Matrix size */ -// #define N (275) -#define N (1024) -// Restricting the max used GPUs as input matrix is not so large -#define MAX_NUM_OF_GPUS 2 - -/* Host implementation of a simple version of sgemm */ -static void simple_sgemm(int n, float alpha, const float *A, const float *B, float beta, float *C) -{ - int i; - int j; - int k; - - for (i = 0; i < n; ++i) { - for (j = 0; j < n; ++j) { - float prod = 0; - - for (k = 0; k < n; ++k) { - prod += A[k * n + i] * B[j * n + k]; - } - - C[j * n + i] = alpha * prod + beta * C[j * n + i]; - } - } -} - -void findMultipleBestGPUs(int &num_of_devices, int *device_ids) -{ - // Find the best CUDA capable GPU device - int current_device = 0; - - int device_count; - checkCudaErrors(cudaGetDeviceCount(&device_count)); - typedef struct gpu_perf_t - { - uint64_t compute_perf; - int device_id; - } gpu_perf; - - gpu_perf *gpu_stats = (gpu_perf *)malloc(sizeof(gpu_perf) * device_count); - - cudaDeviceProp deviceProp; - int devices_prohibited = 0; - int computeMode; - int clockRate; - - while (current_device < device_count) { - cudaGetDeviceProperties(&deviceProp, current_device); - checkCudaErrors(cudaDeviceGetAttribute(&computeMode, cudaDevAttrComputeMode, current_device)); - checkCudaErrors(cudaDeviceGetAttribute(&clockRate, cudaDevAttrClockRate, current_device)); - // If this GPU is not running on Compute Mode prohibited, - // then we can add it to the list - int sm_per_multiproc; - if (computeMode != cudaComputeModeProhibited) { - if (deviceProp.major == 9999 && deviceProp.minor == 9999) { - sm_per_multiproc = 1; - } - else { - sm_per_multiproc = _ConvertSMVer2Cores(deviceProp.major, deviceProp.minor); - } - - gpu_stats[current_device].compute_perf = - (uint64_t)deviceProp.multiProcessorCount * sm_per_multiproc * clockRate; - gpu_stats[current_device].device_id = current_device; - } - else { - devices_prohibited++; - } - - ++current_device; - } - if (devices_prohibited == device_count) { - fprintf(stderr, - "gpuGetMaxGflopsDeviceId() CUDA error:" - " all devices have compute mode prohibited.\n"); - exit(EXIT_FAILURE); - } - else { - gpu_perf temp_elem; - // Sort the GPUs by highest compute perf. - for (int i = 0; i < current_device - 1; i++) { - for (int j = 0; j < current_device - i - 1; j++) { - if (gpu_stats[j].compute_perf < gpu_stats[j + 1].compute_perf) { - temp_elem = gpu_stats[j]; - gpu_stats[j] = gpu_stats[j + 1]; - gpu_stats[j + 1] = temp_elem; - } - } - } - - for (int i = 0; i < num_of_devices; i++) { - device_ids[i] = gpu_stats[i].device_id; - } - } - free(gpu_stats); -} - -/* Main */ -int main(int argc, char **argv) -{ - cublasStatus_t status; - float *h_A; - float *h_B; - float *h_C; - float *h_C_ref; - float *d_A = 0; - float *d_B = 0; - float *d_C = 0; - float alpha = 1.0f; - float beta = 0.0f; - int n2 = N * N; - int i; - float error_norm; - float ref_norm; - float diff; - cublasXtHandle_t handle; - int *devices = NULL; - - int num_of_devices = 0; - - checkCudaErrors(cudaGetDeviceCount(&num_of_devices)); - - if (num_of_devices > MAX_NUM_OF_GPUS) { - num_of_devices = MAX_NUM_OF_GPUS; - } - devices = (int *)malloc(sizeof(int) * num_of_devices); - - findMultipleBestGPUs(num_of_devices, devices); - cudaDeviceProp deviceProp; - printf("Using %d GPUs\n", num_of_devices); - for (i = 0; i < num_of_devices; i++) { - checkCudaErrors(cudaGetDeviceProperties(&deviceProp, devices[i])); - printf("GPU ID = %d, Name = %s \n", devices[i], deviceProp.name); - } - - /* Initialize CUBLAS */ - printf("simpleCUBLASXT test running..\n"); - - status = cublasXtCreate(&handle); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! CUBLASXT initialization error\n"); - return EXIT_FAILURE; - } - - /* Select devices for use in CUBLASXT math functions */ - status = cublasXtDeviceSelect(handle, num_of_devices, devices); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! CUBLASXT device selection error\n"); - return EXIT_FAILURE; - } - - /* Optional: Set a block size for CUBLASXT math functions */ - status = cublasXtSetBlockDim(handle, 64); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! CUBLASXT set block dimension error\n"); - return EXIT_FAILURE; - } - - /* Allocate host memory for the matrices */ - h_A = (float *)malloc(n2 * sizeof(h_A[0])); - - if (h_A == 0) { - fprintf(stderr, "!!!! host memory allocation error (A)\n"); - return EXIT_FAILURE; - } - - h_B = (float *)malloc(n2 * sizeof(h_B[0])); - - if (h_B == 0) { - fprintf(stderr, "!!!! host memory allocation error (B)\n"); - return EXIT_FAILURE; - } - - h_C_ref = (float *)malloc(n2 * sizeof(h_C[0])); - - if (h_C_ref == 0) { - fprintf(stderr, "!!!! host memory allocation error (C_ref)\n"); - return EXIT_FAILURE; - } - - h_C = (float *)malloc(n2 * sizeof(h_C[0])); - - if (h_C == 0) { - fprintf(stderr, "!!!! host memory allocation error (C)\n"); - return EXIT_FAILURE; - } - - /* Fill the matrices with test data */ - for (i = 0; i < n2; i++) { - h_A[i] = rand() / (float)RAND_MAX; - h_B[i] = rand() / (float)RAND_MAX; - h_C[i] = rand() / (float)RAND_MAX; - h_C_ref[i] = h_C[i]; - } - - /* Performs operation using plain C code */ - simple_sgemm(N, alpha, h_A, h_B, beta, h_C_ref); - - /* Performs operation using cublas */ - status = cublasXtSgemm(handle, CUBLAS_OP_N, CUBLAS_OP_N, N, N, N, &alpha, h_A, N, h_B, N, &beta, h_C, N); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! kernel execution error.\n"); - return EXIT_FAILURE; - } - - /* Check result against reference */ - error_norm = 0; - ref_norm = 0; - - for (i = 0; i < n2; ++i) { - diff = h_C_ref[i] - h_C[i]; - error_norm += diff * diff; - ref_norm += h_C_ref[i] * h_C_ref[i]; - } - - error_norm = (float)sqrt((double)error_norm); - ref_norm = (float)sqrt((double)ref_norm); - - if (fabs(ref_norm) < 1e-7) { - fprintf(stderr, "!!!! reference norm is 0\n"); - return EXIT_FAILURE; - } - - /* Memory clean up */ - free(h_A); - free(h_B); - free(h_C); - free(h_C_ref); - - if (cudaFree(d_A) != cudaSuccess) { - fprintf(stderr, "!!!! memory free error (A)\n"); - return EXIT_FAILURE; - } - - if (cudaFree(d_B) != cudaSuccess) { - fprintf(stderr, "!!!! memory free error (B)\n"); - return EXIT_FAILURE; - } - - if (cudaFree(d_C) != cudaSuccess) { - fprintf(stderr, "!!!! memory free error (C)\n"); - return EXIT_FAILURE; - } - - /* Shutdown */ - status = cublasXtDestroy(handle); - - if (status != CUBLAS_STATUS_SUCCESS) { - fprintf(stderr, "!!!! shutdown error (A)\n"); - return EXIT_FAILURE; - } - - if (error_norm / ref_norm < 1e-6f) { - printf("simpleCUBLASXT test passed.\n"); - exit(EXIT_SUCCESS); - } - else { - printf("simpleCUBLASXT test failed.\n"); - exit(EXIT_FAILURE); - } -} diff --git a/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/.vscode/extensions.json b/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/CMakeLists.txt b/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/CMakeLists.txt deleted file mode 100644 index 01f8c8a0..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(simpleCUBLAS_LU LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for simpleCUBLAS_LU -add_executable(simpleCUBLAS_LU simpleCUBLAS_LU.cpp) - -target_compile_options(simpleCUBLAS_LU PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleCUBLAS_LU PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(simpleCUBLAS_LU PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(simpleCUBLAS_LU PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) - -target_link_libraries(simpleCUBLAS_LU PRIVATE - CUDA::cudart - CUDA::cublas -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/README.md b/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/README.md deleted file mode 100644 index 1b6e2bbc..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# simpleCUBLAS_LU - Simple CUBLAS LU - -## Description - -CUDA sample demonstrating cuBLAS API cublasDgetrfBatched() for lower-upper (LU) decomposition of a matrix. - -## Key Concepts - -CUBLAS Library, LU decomposition - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaGetErrorEnum, cudaMalloc, cudaMemcpy, cudaFree - -## Dependencies needed to build/run -[CUBLAS](../../../README.md#cublas) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp b/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp deleted file mode 100644 index 201301c5..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp +++ /dev/null @@ -1,418 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This example demonstrates how to use the cuBLAS library API - * for lower-upper (LU) decomposition of a matrix. LU decomposition - * factors a matrix as the product of upper triangular matrix and - * lower trianglular matrix. - * - * https://en.wikipedia.org/wiki/LU_decomposition - * - * This sample uses 10000 matrices of size 4x4 and performs - * LU decomposition of them using batched decomposition API - * of cuBLAS library. To test the correctness of upper and lower - * matrices generated, they are multiplied and compared with the - * original input matrix. - * - */ - -#include -#include - -// cuda libraries and helpers -#include -#include -#include - -// configurable parameters -// dimension of matrix -#define N 4 -#define BATCH_SIZE 10000 - -// use double precision data type -#define DOUBLE_PRECISION /* comment this to use single precision */ -#ifdef DOUBLE_PRECISION -#define DATA_TYPE double -#define MAX_ERROR 1e-15 -#else -#define DATA_TYPE float -#define MAX_ERROR 1e-6 -#endif /* DOUBLE_PRCISION */ - -// use pivot vector while decomposing -#define PIVOT /* comment this to disable pivot use */ - -// helper functions - -// wrapper around cublasgetrfBatched() -cublasStatus_t -cublasXgetrfBatched(cublasHandle_t handle, int n, DATA_TYPE *const A[], int lda, int *P, int *info, int batchSize) -{ -#ifdef DOUBLE_PRECISION - return cublasDgetrfBatched(handle, n, A, lda, P, info, batchSize); -#else - return cublasSgetrfBatched(handle, n, A, lda, P, info, batchSize); -#endif -} - -// wrapper around malloc -// clears the allocated memory to 0 -// terminates the program if malloc fails -void *xmalloc(size_t size) -{ - void *ptr = malloc(size); - if (ptr == NULL) { - printf("> ERROR: malloc for size %zu failed..\n", size); - exit(EXIT_FAILURE); - } - memset(ptr, 0, size); - return ptr; -} - -// initalize identity matrix -void initIdentityMatrix(DATA_TYPE *mat) -{ - // clear the matrix - memset(mat, 0, N * N * sizeof(DATA_TYPE)); - - // set all diagonals to 1 - for (int i = 0; i < N; i++) { - mat[(i * N) + i] = 1.0; - } -} - -// initialize matrix with all elements as 0 -void initZeroMatrix(DATA_TYPE *mat) { memset(mat, 0, N * N * sizeof(DATA_TYPE)); } - -// fill random value in column-major matrix -void initRandomMatrix(DATA_TYPE *mat) -{ - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - mat[(j * N) + i] = (DATA_TYPE)1.0 + ((DATA_TYPE)rand() / (DATA_TYPE)RAND_MAX); - } - } - - // diagonal dominant matrix to insure it is invertible matrix - for (int i = 0; i < N; i++) { - mat[(i * N) + i] += (DATA_TYPE)N; - } -} - -// print column-major matrix -void printMatrix(DATA_TYPE *mat) -{ - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - printf("%20.16f ", mat[(j * N) + i]); - } - printf("\n"); - } - printf("\n"); -} - -// matrix mulitplication -void matrixMultiply(DATA_TYPE *res, DATA_TYPE *mat1, DATA_TYPE *mat2) -{ - initZeroMatrix(res); - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - res[(j * N) + i] += mat1[(k * N) + i] * mat2[(j * N) + k]; - } - } - } -} - -// check matrix equality -bool checkRelativeError(DATA_TYPE *mat1, DATA_TYPE *mat2, DATA_TYPE maxError) -{ - DATA_TYPE err = (DATA_TYPE)0.0; - DATA_TYPE refNorm = (DATA_TYPE)0.0; - DATA_TYPE relError = (DATA_TYPE)0.0; - DATA_TYPE relMaxError = (DATA_TYPE)0.0; - - for (int i = 0; i < N * N; i++) { - refNorm = abs(mat1[i]); - err = abs(mat1[i] - mat2[i]); - - if (refNorm != 0.0 && err > 0.0) { - relError = err / refNorm; - relMaxError = MAX(relMaxError, relError); - } - - if (relMaxError > maxError) - return false; - } - return true; -} - -// decode lower and upper matrix from single matrix -// returned by getrfBatched() -void getLUdecoded(DATA_TYPE *mat, DATA_TYPE *L, DATA_TYPE *U) -{ - // init L as identity matrix - initIdentityMatrix(L); - - // copy lower triangular values from mat to L (skip diagonal) - for (int i = 0; i < N; i++) { - for (int j = 0; j < i; j++) { - L[(j * N) + i] = mat[(j * N) + i]; - } - } - - // init U as all zero - initZeroMatrix(U); - - // copy upper triangular values from mat to U - for (int i = 0; i < N; i++) { - for (int j = i; j < N; j++) { - U[(j * N) + i] = mat[(j * N) + i]; - } - } -} - -// generate permutation matrix from pivot vector -void getPmatFromPivot(DATA_TYPE *Pmat, int *P) -{ - int pivot[N]; - - // pivot vector in base-1 - // convert it to base-0 - for (int i = 0; i < N; i++) { - P[i]--; - } - - // generate permutation vector from pivot - // initialize pivot with identity sequence - for (int k = 0; k < N; k++) { - pivot[k] = k; - } - - // swap the indices according to pivot vector - for (int k = 0; k < N; k++) { - int q = P[k]; - - // swap pivot(k) and pivot(q) - int s = pivot[k]; - int t = pivot[q]; - pivot[k] = t; - pivot[q] = s; - } - - // generate permutation matrix from pivot vector - initZeroMatrix(Pmat); - for (int i = 0; i < N; i++) { - int j = pivot[i]; - Pmat[(j * N) + i] = (DATA_TYPE)1.0; - } -} - -int main(int argc, char **argv) -{ - // cuBLAS variables - cublasStatus_t status; - cublasHandle_t handle; - - // host variables - size_t matSize = N * N * sizeof(DATA_TYPE); - - DATA_TYPE *h_AarrayInput; - DATA_TYPE *h_AarrayOutput; - DATA_TYPE *h_ptr_array[BATCH_SIZE]; - - int *h_pivotArray; - int *h_infoArray; - - // device variables - DATA_TYPE *d_Aarray; - DATA_TYPE **d_ptr_array; - - int *d_pivotArray; - int *d_infoArray; - - int err_count = 0; - - // seed the rand() function with time - srand(12345); - - // find cuda device - printf("> initializing..\n"); - int dev = findCudaDevice(argc, (const char **)argv); - if (dev == -1) { - return (EXIT_FAILURE); - } - - // initialize cuBLAS - status = cublasCreate(&handle); - if (status != CUBLAS_STATUS_SUCCESS) { - printf("> ERROR: cuBLAS initialization failed..\n"); - return (EXIT_FAILURE); - } - -#ifdef DOUBLE_PRECISION - printf("> using DOUBLE precision..\n"); -#else - printf("> using SINGLE precision..\n"); -#endif - -#ifdef PIVOT - printf("> pivot ENABLED..\n"); -#else - printf("> pivot DISABLED..\n"); -#endif - - // allocate memory for host variables - h_AarrayInput = (DATA_TYPE *)xmalloc(BATCH_SIZE * matSize); - h_AarrayOutput = (DATA_TYPE *)xmalloc(BATCH_SIZE * matSize); - - h_pivotArray = (int *)xmalloc(N * BATCH_SIZE * sizeof(int)); - h_infoArray = (int *)xmalloc(BATCH_SIZE * sizeof(int)); - - // allocate memory for device variables - checkCudaErrors(cudaMalloc((void **)&d_Aarray, BATCH_SIZE * matSize)); - checkCudaErrors(cudaMalloc((void **)&d_pivotArray, N * BATCH_SIZE * sizeof(int))); - checkCudaErrors(cudaMalloc((void **)&d_infoArray, BATCH_SIZE * sizeof(int))); - checkCudaErrors(cudaMalloc((void **)&d_ptr_array, BATCH_SIZE * sizeof(DATA_TYPE *))); - - // fill matrix with random data - printf("> generating random matrices..\n"); - for (int i = 0; i < BATCH_SIZE; i++) { - initRandomMatrix(h_AarrayInput + (i * N * N)); - } - - // copy data to device from host - printf("> copying data from host memory to GPU memory..\n"); - checkCudaErrors(cudaMemcpy(d_Aarray, h_AarrayInput, BATCH_SIZE * matSize, cudaMemcpyHostToDevice)); - - // create pointer array for matrices - for (int i = 0; i < BATCH_SIZE; i++) - h_ptr_array[i] = d_Aarray + (i * N * N); - - // copy pointer array to device memory - checkCudaErrors(cudaMemcpy(d_ptr_array, h_ptr_array, BATCH_SIZE * sizeof(DATA_TYPE *), cudaMemcpyHostToDevice)); - - // perform LU decomposition - printf("> performing LU decomposition..\n"); -#ifdef PIVOT - status = cublasXgetrfBatched(handle, N, d_ptr_array, N, d_pivotArray, d_infoArray, BATCH_SIZE); -#else - status = cublasXgetrfBatched(handle, N, d_ptr_array, N, NULL, d_infoArray, BATCH_SIZE); -#endif /* PIVOT */ - if (status != CUBLAS_STATUS_SUCCESS) { - printf("> ERROR: cublasDgetrfBatched() failed with error %s..\n", _cudaGetErrorEnum(status)); - return (EXIT_FAILURE); - } - - // copy data to host from device - printf("> copying data from GPU memory to host memory..\n"); - checkCudaErrors(cudaMemcpy(h_AarrayOutput, d_Aarray, BATCH_SIZE * matSize, cudaMemcpyDeviceToHost)); - checkCudaErrors(cudaMemcpy(h_infoArray, d_infoArray, BATCH_SIZE * sizeof(int), cudaMemcpyDeviceToHost)); -#ifdef PIVOT - checkCudaErrors(cudaMemcpy(h_pivotArray, d_pivotArray, N * BATCH_SIZE * sizeof(int), cudaMemcpyDeviceToHost)); -#endif /* PIVOT */ - - // verify the result - printf("> verifying the result..\n"); - for (int i = 0; i < BATCH_SIZE; i++) { - if (h_infoArray[i] == 0) { - DATA_TYPE *A = h_AarrayInput + (i * N * N); - DATA_TYPE *LU = h_AarrayOutput + (i * N * N); - DATA_TYPE L[N * N]; - DATA_TYPE U[N * N]; - getLUdecoded(LU, L, U); - - // test P * A = L * U - int *P = h_pivotArray + (i * N); - DATA_TYPE Pmat[N * N]; -#ifdef PIVOT - getPmatFromPivot(Pmat, P); -#else - initIdentityMatrix(Pmat); -#endif /* PIVOT */ - - // perform matrix multiplication - DATA_TYPE PxA[N * N]; - DATA_TYPE LxU[N * N]; - matrixMultiply(PxA, Pmat, A); - matrixMultiply(LxU, L, U); - - // check for equality of matrices - if (!checkRelativeError(PxA, LxU, (DATA_TYPE)MAX_ERROR)) { - printf("> ERROR: accuracy check failed for matrix number %05d..\n", i + 1); - err_count++; - } - } - else if (h_infoArray[i] > 0) { - printf("> execution for matrix %05d is successful, but U is singular and " - "U(%d,%d) = 0..\n", - i + 1, - h_infoArray[i] - 1, - h_infoArray[i] - 1); - } - else // (h_infoArray[i] < 0) - { - printf("> ERROR: matrix %05d have an illegal value at index %d = %lf..\n", - i + 1, - -h_infoArray[i], - *(h_AarrayInput + (i * N * N) + (-h_infoArray[i]))); - } - } - - // free device variables - checkCudaErrors(cudaFree(d_ptr_array)); - checkCudaErrors(cudaFree(d_infoArray)); - checkCudaErrors(cudaFree(d_pivotArray)); - checkCudaErrors(cudaFree(d_Aarray)); - - // free host variables - if (h_infoArray) - free(h_infoArray); - if (h_pivotArray) - free(h_pivotArray); - if (h_AarrayOutput) - free(h_AarrayOutput); - if (h_AarrayInput) - free(h_AarrayInput); - - // destroy cuBLAS handle - status = cublasDestroy(handle); - if (status != CUBLAS_STATUS_SUCCESS) { - printf("> ERROR: cuBLAS uninitialization failed..\n"); - return (EXIT_FAILURE); - } - - if (err_count > 0) { - printf("> TEST FAILED for %d matrices, with precision: %g\n", err_count, MAX_ERROR); - return (EXIT_FAILURE); - } - - printf("> TEST SUCCESSFUL, with precision: %g\n", MAX_ERROR); - return (EXIT_SUCCESS); -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/simpleCUFFT/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT/.vscode/extensions.json b/cpp/4_CUDA_Libraries/simpleCUFFT/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT/CMakeLists.txt b/cpp/4_CUDA_Libraries/simpleCUFFT/CMakeLists.txt deleted file mode 100644 index a3db2d0a..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(simpleCUFFT LANGUAGES CUDA) - -# Disable response file for libraries on QNX as qcc does not support lib paths with double quotes -if(CMAKE_SYSTEM_NAME STREQUAL "QNX") - set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES OFF) -endif() - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for simpleCUFFT -add_executable(simpleCUFFT simpleCUFFT.cu) - -target_compile_options(simpleCUFFT PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleCUFFT PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(simpleCUFFT PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_link_libraries(simpleCUFFT PRIVATE - CUDA::cufft -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT/README.md b/cpp/4_CUDA_Libraries/simpleCUFFT/README.md deleted file mode 100644 index ac63e813..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# simpleCUFFT - Simple CUFFT - -## Description - -Example of using CUFFT. In this example, CUFFT is used to compute the 1D-convolution of some signal with some filter by transforming both into frequency domain, multiplying them together, and transforming the signal back to time domain. cuFFT plans are created using simple and advanced API functions. - -## Key Concepts - -Image Processing, CUFFT Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l, aarch64 - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMalloc, cudaMemcpy, cudaFree - -## Dependencies needed to build/run -[CUFFT](../../../README.md#cufft) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT/simpleCUFFT.cu b/cpp/4_CUDA_Libraries/simpleCUFFT/simpleCUFFT.cu deleted file mode 100644 index 6180b990..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT/simpleCUFFT.cu +++ /dev/null @@ -1,281 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* Example showing the use of CUFFT for fast 1D-convolution using FFT. */ - -// includes, system -#include -#include -#include -#include - -// includes, project -#include -#include -#include -#include -#include - -// Complex data type -typedef float2 Complex; -static __device__ __host__ inline Complex ComplexAdd(Complex, Complex); -static __device__ __host__ inline Complex ComplexScale(Complex, float); -static __device__ __host__ inline Complex ComplexMul(Complex, Complex); -static __global__ void ComplexPointwiseMulAndScale(Complex *, const Complex *, int, float); - -// Filtering functions -void Convolve(const Complex *, int, const Complex *, int, Complex *); - -// Padding functions -int PadData(const Complex *, Complex **, int, const Complex *, Complex **, int); - -//////////////////////////////////////////////////////////////////////////////// -// declaration, forward -void runTest(int argc, char **argv); - -// The filter size is assumed to be a number smaller than the signal size -#define SIGNAL_SIZE 50 -#define FILTER_KERNEL_SIZE 11 - -//////////////////////////////////////////////////////////////////////////////// -// Program main -//////////////////////////////////////////////////////////////////////////////// -int main(int argc, char **argv) { runTest(argc, argv); } - -//////////////////////////////////////////////////////////////////////////////// -//! Run a simple test for CUDA -//////////////////////////////////////////////////////////////////////////////// -void runTest(int argc, char **argv) -{ - printf("[simpleCUFFT] is starting...\n"); - - findCudaDevice(argc, (const char **)argv); - - // Allocate host memory for the signal - Complex *h_signal = reinterpret_cast(malloc(sizeof(Complex) * SIGNAL_SIZE)); - - // Initialize the memory for the signal - for (unsigned int i = 0; i < SIGNAL_SIZE; ++i) { - h_signal[i].x = rand() / static_cast(RAND_MAX); - h_signal[i].y = 0; - } - - // Allocate host memory for the filter - Complex *h_filter_kernel = reinterpret_cast(malloc(sizeof(Complex) * FILTER_KERNEL_SIZE)); - - // Initialize the memory for the filter - for (unsigned int i = 0; i < FILTER_KERNEL_SIZE; ++i) { - h_filter_kernel[i].x = rand() / static_cast(RAND_MAX); - h_filter_kernel[i].y = 0; - } - - // Pad signal and filter kernel - Complex *h_padded_signal; - Complex *h_padded_filter_kernel; - int new_size = - PadData(h_signal, &h_padded_signal, SIGNAL_SIZE, h_filter_kernel, &h_padded_filter_kernel, FILTER_KERNEL_SIZE); - int mem_size = sizeof(Complex) * new_size; - - // Allocate device memory for signal - Complex *d_signal; - checkCudaErrors(cudaMalloc(reinterpret_cast(&d_signal), mem_size)); - // Copy host memory to device - checkCudaErrors(cudaMemcpy(d_signal, h_padded_signal, mem_size, cudaMemcpyHostToDevice)); - - // Allocate device memory for filter kernel - Complex *d_filter_kernel; - checkCudaErrors(cudaMalloc(reinterpret_cast(&d_filter_kernel), mem_size)); - - // Copy host memory to device - checkCudaErrors(cudaMemcpy(d_filter_kernel, h_padded_filter_kernel, mem_size, cudaMemcpyHostToDevice)); - - // CUFFT plan simple API - cufftHandle plan; - checkCudaErrors(cufftPlan1d(&plan, new_size, CUFFT_C2C, 1)); - - // CUFFT plan advanced API - cufftHandle plan_adv; - size_t workSize; - long long int new_size_long = new_size; - - checkCudaErrors(cufftCreate(&plan_adv)); - checkCudaErrors(cufftXtMakePlanMany( - plan_adv, 1, &new_size_long, NULL, 1, 1, CUDA_C_32F, NULL, 1, 1, CUDA_C_32F, 1, &workSize, CUDA_C_32F)); - printf("Temporary buffer size %li bytes\n", workSize); - - // Transform signal and kernel - printf("Transforming signal cufftExecC2C\n"); - checkCudaErrors(cufftExecC2C( - plan, reinterpret_cast(d_signal), reinterpret_cast(d_signal), CUFFT_FORWARD)); - checkCudaErrors(cufftExecC2C(plan_adv, - reinterpret_cast(d_filter_kernel), - reinterpret_cast(d_filter_kernel), - CUFFT_FORWARD)); - - // Multiply the coefficients together and normalize the result - printf("Launching ComplexPointwiseMulAndScale<<< >>>\n"); - ComplexPointwiseMulAndScale<<<32, 256>>>(d_signal, d_filter_kernel, new_size, 1.0f / new_size); - - // Check if kernel execution generated and error - getLastCudaError("Kernel execution failed [ ComplexPointwiseMulAndScale ]"); - - // Transform signal back - printf("Transforming signal back cufftExecC2C\n"); - checkCudaErrors(cufftExecC2C( - plan, reinterpret_cast(d_signal), reinterpret_cast(d_signal), CUFFT_INVERSE)); - - // Copy device memory to host - Complex *h_convolved_signal = h_padded_signal; - checkCudaErrors(cudaMemcpy(h_convolved_signal, d_signal, mem_size, cudaMemcpyDeviceToHost)); - - // Allocate host memory for the convolution result - Complex *h_convolved_signal_ref = reinterpret_cast(malloc(sizeof(Complex) * SIGNAL_SIZE)); - - // Convolve on the host - Convolve(h_signal, SIGNAL_SIZE, h_filter_kernel, FILTER_KERNEL_SIZE, h_convolved_signal_ref); - - // check result - bool bTestResult = sdkCompareL2fe(reinterpret_cast(h_convolved_signal_ref), - reinterpret_cast(h_convolved_signal), - 2 * SIGNAL_SIZE, - 1e-5f); - - // Destroy CUFFT context - checkCudaErrors(cufftDestroy(plan)); - checkCudaErrors(cufftDestroy(plan_adv)); - - // cleanup memory - free(h_signal); - free(h_filter_kernel); - free(h_padded_signal); - free(h_padded_filter_kernel); - free(h_convolved_signal_ref); - checkCudaErrors(cudaFree(d_signal)); - checkCudaErrors(cudaFree(d_filter_kernel)); - - exit(bTestResult ? EXIT_SUCCESS : EXIT_FAILURE); -} - -// Pad data -int PadData(const Complex *signal, - Complex **padded_signal, - int signal_size, - const Complex *filter_kernel, - Complex **padded_filter_kernel, - int filter_kernel_size) -{ - int minRadius = filter_kernel_size / 2; - int maxRadius = filter_kernel_size - minRadius; - int new_size = signal_size + maxRadius; - - // Pad signal - Complex *new_data = reinterpret_cast(malloc(sizeof(Complex) * new_size)); - memcpy(new_data + 0, signal, signal_size * sizeof(Complex)); - memset(new_data + signal_size, 0, (new_size - signal_size) * sizeof(Complex)); - *padded_signal = new_data; - - // Pad filter - new_data = reinterpret_cast(malloc(sizeof(Complex) * new_size)); - memcpy(new_data + 0, filter_kernel + minRadius, maxRadius * sizeof(Complex)); - memset(new_data + maxRadius, 0, (new_size - filter_kernel_size) * sizeof(Complex)); - memcpy(new_data + new_size - minRadius, filter_kernel, minRadius * sizeof(Complex)); - *padded_filter_kernel = new_data; - - return new_size; -} - -//////////////////////////////////////////////////////////////////////////////// -// Filtering operations -//////////////////////////////////////////////////////////////////////////////// - -// Computes convolution on the host -void Convolve(const Complex *signal, - int signal_size, - const Complex *filter_kernel, - int filter_kernel_size, - Complex *filtered_signal) -{ - int minRadius = filter_kernel_size / 2; - int maxRadius = filter_kernel_size - minRadius; - - // Loop over output element indices - for (int i = 0; i < signal_size; ++i) { - filtered_signal[i].x = filtered_signal[i].y = 0; - - // Loop over convolution indices - for (int j = -maxRadius + 1; j <= minRadius; ++j) { - int k = i + j; - - if (k >= 0 && k < signal_size) { - filtered_signal[i] = - ComplexAdd(filtered_signal[i], ComplexMul(signal[k], filter_kernel[minRadius - j])); - } - } - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Complex operations -//////////////////////////////////////////////////////////////////////////////// - -// Complex addition -static __device__ __host__ inline Complex ComplexAdd(Complex a, Complex b) -{ - Complex c; - c.x = a.x + b.x; - c.y = a.y + b.y; - return c; -} - -// Complex scale -static __device__ __host__ inline Complex ComplexScale(Complex a, float s) -{ - Complex c; - c.x = s * a.x; - c.y = s * a.y; - return c; -} - -// Complex multiplication -static __device__ __host__ inline Complex ComplexMul(Complex a, Complex b) -{ - Complex c; - c.x = a.x * b.x - a.y * b.y; - c.y = a.x * b.y + a.y * b.x; - return c; -} - -// Complex pointwise multiplication -static __global__ void ComplexPointwiseMulAndScale(Complex *a, const Complex *b, int size, float scale) -{ - const int numThreads = blockDim.x * gridDim.x; - const int threadID = blockIdx.x * blockDim.x + threadIdx.x; - - for (int i = threadID; i < size; i += numThreads) { - a[i] = ComplexScale(ComplexMul(a[i], b[i]), scale); - } -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/.vscode/extensions.json b/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/CMakeLists.txt b/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/CMakeLists.txt deleted file mode 100644 index 28d435f6..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/CMakeLists.txt +++ /dev/null @@ -1,47 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(simpleCUFFT_2d_MGPU LANGUAGES CUDA) - -# Disable response file for libraries on QNX as qcc does not support lib paths with double quotes -if(CMAKE_SYSTEM_NAME STREQUAL "QNX") - set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES OFF) -endif() - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for simpleCUFFT_2d_MGPU -add_executable(simpleCUFFT_2d_MGPU simpleCUFFT_2d_MGPU.cu) - -if(MSVC) - add_compile_definitions(_USE_MATH_DEFINES) -endif() - -target_compile_options(simpleCUFFT_2d_MGPU PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleCUFFT_2d_MGPU PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(simpleCUFFT_2d_MGPU PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_link_libraries(simpleCUFFT_2d_MGPU PRIVATE - CUDA::cufft -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/README.md b/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/README.md deleted file mode 100644 index 8d98df78..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# simpleCUFFT_2d_MGPU - SimpleCUFFT_2d_MGPU - -## Description - -Example of using CUFFT. In this example, CUFFT is used to compute the 2D-convolution of some signal with some filter by transforming both into frequency domain, multiplying them together, and transforming the signal back to time domain on Multiple GPU. - -## Key Concepts - -Image Processing, CUFFT Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaXtFree, cudaMemcpy, cudaFree, cudaSetDevice, cudaGetDeviceCount, cudaDeviceSynchronize, cudaMalloc, cudaGetDeviceProperties - -## Dependencies needed to build/run -[CUFFT](../../../README.md#cufft) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/simpleCUFFT_2d_MGPU.cu b/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/simpleCUFFT_2d_MGPU.cu deleted file mode 100644 index 11fe5fdd..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_2d_MGPU/simpleCUFFT_2d_MGPU.cu +++ /dev/null @@ -1,375 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -//////////////////////////////////////////////////////////////////////////////// -// -// simpleCUFFT_2d_MGPU.cu -// -// This sample code demonstrate the use of CUFFT library for 2D data on multiple GPU. -// Example showing the use of CUFFT for solving 2D-POISSON equation using FFT on multiple GPU. -// For reference we have used the equation given in http://www.bu.edu/pasi/files/2011/07/ -// Lecture83.pdf -// -//////////////////////////////////////////////////////////////////////////////// - - -// System includes -#include -#include -#include -#include - -// CUDA runtime -#include - -// CUFFT Header file -#include - -// helper functions and utilities to work with CUDA -#include -#include - -// Complex data type -typedef float2 Complex; - -// Data configuration -const int GPU_COUNT = 2; -const int BSZ_Y = 4; -const int BSZ_X = 4; - -// Forward Declaration -void solvePoissonEquation(cudaLibXtDesc *, cudaLibXtDesc *, float **, int, int); - -__global__ void solvePoisson(cufftComplex *, cufftComplex *, float *, int, int, int n_gpu); - -/////////////////////////////////////////////////////////////////////////////// -// Program main -//////////////////////////////////////////////////////////////////////////////// -int main(int argc, char **argv) -{ - printf("\nPoisson equation using CUFFT library on Multiple GPUs is " - "starting...\n\n"); - - int GPU_N; - checkCudaErrors(cudaGetDeviceCount(&GPU_N)); - - if (GPU_N < GPU_COUNT) { - printf("No. of GPU on node %d\n", GPU_N); - printf("Two GPUs are required to run simpleCUFFT_2d_MGPU sample code\n"); - exit(EXIT_WAIVED); - } - - int *major_minor = (int *)malloc(sizeof(int) * GPU_N * 2); - int found2IdenticalGPUs = 0; - int nGPUs = 2; - int *whichGPUs; - whichGPUs = (int *)malloc(sizeof(int) * nGPUs); - - for (int i = 0; i < GPU_N; i++) { - cudaDeviceProp deviceProp; - checkCudaErrors(cudaGetDeviceProperties(&deviceProp, i)); - major_minor[i * 2] = deviceProp.major; - major_minor[i * 2 + 1] = deviceProp.minor; - printf("GPU Device %d: \"%s\" with compute capability %d.%d\n", - i, - deviceProp.name, - deviceProp.major, - deviceProp.minor); - } - - for (int i = 0; i < GPU_N; i++) { - for (int j = i + 1; j < GPU_N; j++) { - if ((major_minor[i * 2] == major_minor[j * 2]) && (major_minor[i * 2 + 1] == major_minor[j * 2 + 1])) { - whichGPUs[0] = i; - whichGPUs[1] = j; - found2IdenticalGPUs = 1; - break; - } - } - if (found2IdenticalGPUs) { - break; - } - } - - free(major_minor); - if (!found2IdenticalGPUs) { - printf("No Two GPUs with same architecture found\nWaiving simpleCUFFT_2d_MGPU " - "sample\n"); - exit(EXIT_WAIVED); - } - - int N = 64; - float xMAX = 1.0f, xMIN = 0.0f, yMIN = 0.0f, h = (xMAX - xMIN) / ((float)N), s = 0.1f, s2 = s * s; - float *x, *y, *f, *u_a, r2; - - x = (float *)malloc(sizeof(float) * N * N); - y = (float *)malloc(sizeof(float) * N * N); - f = (float *)malloc(sizeof(float) * N * N); - u_a = (float *)malloc(sizeof(float) * N * N); - - for (int j = 0; j < N; j++) - for (int i = 0; i < N; i++) { - x[N * j + i] = xMIN + i * h; - y[N * j + i] = yMIN + j * h; - r2 = (x[N * j + i] - 0.5f) * (x[N * j + i] - 0.5f) + (y[N * j + i] - 0.5f) * (y[N * j + i] - 0.5f); - f[N * j + i] = (r2 - 2 * s2) / (s2 * s2) * exp(-r2 / (2 * s2)); - u_a[N * j + i] = exp(-r2 / (2 * s2)); // analytical solution - } - - float *k, *d_k[GPU_COUNT]; - k = (float *)malloc(sizeof(float) * N); - for (int i = 0; i <= N / 2; i++) { - k[i] = i * 2 * (float)M_PI; - } - for (int i = N / 2 + 1; i < N; i++) { - k[i] = (i - N) * 2 * (float)M_PI; - } - - // Create a complex variable on host - Complex *h_f = (Complex *)malloc(sizeof(Complex) * N * N); - - // Initialize the memory for the signal - for (int i = 0; i < (N * N); i++) { - h_f[i].x = f[i]; - h_f[i].y = 0.0f; - } - - // cufftCreate() - Create an empty plan - cufftResult result; - cufftHandle planComplex; - result = cufftCreate(&planComplex); - if (result != CUFFT_SUCCESS) { - printf("cufftCreate failed\n"); - exit(EXIT_FAILURE); - } - - // cufftXtSetGPUs() - Define which GPUs to use - result = cufftXtSetGPUs(planComplex, nGPUs, whichGPUs); - - if (result == CUFFT_INVALID_DEVICE) { - printf("This sample requires two GPUs on the same board.\n"); - printf("No such board was found. Waiving sample.\n"); - exit(EXIT_WAIVED); - } - else if (result != CUFFT_SUCCESS) { - printf("cufftXtSetGPUs failed\n"); - exit(EXIT_FAILURE); - } - - // Print the device information to run the code - printf("\nRunning on GPUs\n"); - for (int i = 0; i < 2; i++) { - cudaDeviceProp deviceProp; - checkCudaErrors(cudaGetDeviceProperties(&deviceProp, whichGPUs[i])); - printf("GPU Device %d: \"%s\" with compute capability %d.%d\n", - whichGPUs[i], - deviceProp.name, - deviceProp.major, - deviceProp.minor); - } - - size_t *worksize; - worksize = (size_t *)malloc(sizeof(size_t) * nGPUs); - - // cufftMakePlan2d() - Create the plan - result = cufftMakePlan2d(planComplex, N, N, CUFFT_C2C, worksize); - if (result != CUFFT_SUCCESS) { - printf("*MakePlan* failed\n"); - exit(EXIT_FAILURE); - } - - for (int i = 0; i < nGPUs; i++) { - cudaSetDevice(whichGPUs[i]); - cudaMalloc((void **)&d_k[i], sizeof(float) * N); - cudaMemcpy(d_k[i], k, sizeof(float) * N, cudaMemcpyHostToDevice); - } - - // Create a variable on device - // d_f - variable on device to store the input data - // d_d_f - variable that store the natural order of d_f data - // d_out - device output - cudaLibXtDesc *d_f, *d_d_f, *d_out; - - // cufftXtMalloc() - Malloc data on multiple GPUs - - result = cufftXtMalloc(planComplex, (cudaLibXtDesc **)&d_f, CUFFT_XT_FORMAT_INPLACE); - if (result != CUFFT_SUCCESS) { - printf("*XtMalloc failed\n"); - exit(EXIT_FAILURE); - } - - result = cufftXtMalloc(planComplex, (cudaLibXtDesc **)&d_d_f, CUFFT_XT_FORMAT_INPLACE); - if (result != CUFFT_SUCCESS) { - printf("*XtMalloc failed\n"); - exit(EXIT_FAILURE); - } - - result = cufftXtMalloc(planComplex, (cudaLibXtDesc **)&d_out, CUFFT_XT_FORMAT_INPLACE); - if (result != CUFFT_SUCCESS) { - printf("*XtMalloc failed\n"); - exit(EXIT_FAILURE); - } - - // cufftXtMemcpy() - Copy the data from host to device - result = cufftXtMemcpy(planComplex, d_f, h_f, CUFFT_COPY_HOST_TO_DEVICE); - if (result != CUFFT_SUCCESS) { - printf("*XtMemcpy failed\n"); - exit(EXIT_FAILURE); - } - - // cufftXtExecDescriptorC2C() - Execute FFT on data on multiple GPUs - printf("Forward 2d FFT on multiple GPUs\n"); - result = cufftXtExecDescriptorC2C(planComplex, d_f, d_f, CUFFT_FORWARD); - if (result != CUFFT_SUCCESS) { - printf("*XtExecC2C failed\n"); - exit(EXIT_FAILURE); - } - - // cufftXtMemcpy() - Copy the data to natural order on GPUs - result = cufftXtMemcpy(planComplex, d_d_f, d_f, CUFFT_COPY_DEVICE_TO_DEVICE); - if (result != CUFFT_SUCCESS) { - printf("*XtMemcpy failed\n"); - exit(EXIT_FAILURE); - } - - printf("Solve Poisson Equation\n"); - solvePoissonEquation(d_d_f, d_out, d_k, N, nGPUs); - - printf("Inverse 2d FFT on multiple GPUs\n"); - // cufftXtExecDescriptorC2C() - Execute inverse FFT on data on multiple GPUs - result = cufftXtExecDescriptorC2C(planComplex, d_out, d_out, CUFFT_INVERSE); - if (result != CUFFT_SUCCESS) { - printf("*XtExecC2C failed\n"); - exit(EXIT_FAILURE); - } - - // Create a variable on host to copy the data from device - // h_d_out - variable store the output of device - Complex *h_d_out = (Complex *)malloc(sizeof(Complex) * N * N); - - // cufftXtMemcpy() - Copy data from multiple GPUs to host - result = cufftXtMemcpy(planComplex, h_d_out, d_out, CUFFT_COPY_DEVICE_TO_HOST); - if (result != CUFFT_SUCCESS) { - printf("*XtMemcpy failed\n"); - exit(EXIT_FAILURE); - } - - float *out = (float *)malloc(sizeof(float) * N * N); - float constant = h_d_out[0].x / N * N; - for (int i = 0; i < N * N; i++) { - // subtract u[0] to force the arbitrary constant to be 0 - out[i] = (h_d_out[i].x / (N * N)) - constant; - } - - // cleanup memory - - free(h_f); - free(k); - free(out); - free(h_d_out); - free(x); - free(whichGPUs); - free(y); - free(f); - free(u_a); - free(worksize); - - // cudaXtFree() - Free GPU memory - for (int i = 0; i < GPU_COUNT; i++) { - cudaFree(d_k[i]); - } - result = cufftXtFree(d_out); - if (result != CUFFT_SUCCESS) { - printf("*XtFree failed\n"); - exit(EXIT_FAILURE); - } - result = cufftXtFree(d_f); - if (result != CUFFT_SUCCESS) { - printf("*XtFree failed\n"); - exit(EXIT_FAILURE); - } - result = cufftXtFree(d_d_f); - if (result != CUFFT_SUCCESS) { - printf("*XtFree failed\n"); - exit(EXIT_FAILURE); - } - - // cufftDestroy() - Destroy FFT plan - result = cufftDestroy(planComplex); - if (result != CUFFT_SUCCESS) { - printf("cufftDestroy failed: code %d\n", (int)result); - exit(EXIT_FAILURE); - } - - exit(EXIT_SUCCESS); -} - -//////////////////////////////////////////////////////////////////////////////////// -// Launch kernel on multiple GPU -/////////////////////////////////////////////////////////////////////////////////// -void solvePoissonEquation(cudaLibXtDesc *d_ft, cudaLibXtDesc *d_ft_k, float **k, int N, int nGPUs) -{ - int device; - dim3 dimGrid(int(N / BSZ_X), int((N / 2) / BSZ_Y)); - dim3 dimBlock(BSZ_X, BSZ_Y); - - for (int i = 0; i < nGPUs; i++) { - device = d_ft_k->descriptor->GPUs[i]; - cudaSetDevice(device); - solvePoisson<<>>( - (cufftComplex *)d_ft->descriptor->data[i], (cufftComplex *)d_ft_k->descriptor->data[i], k[i], N, i, nGPUs); - } - - // Wait for device to finish all operation - for (int i = 0; i < nGPUs; i++) { - device = d_ft_k->descriptor->GPUs[i]; - cudaSetDevice(device); - cudaDeviceSynchronize(); - - // Check if kernel execution generated and error - getLastCudaError("Kernel execution failed [ solvePoisson ]"); - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Kernel for Solving Poisson equation on GPU -//////////////////////////////////////////////////////////////////////////////// -__global__ void solvePoisson(cufftComplex *ft, cufftComplex *ft_k, float *k, int N, int gpu_id, int n_gpu) -{ - int i = threadIdx.x + blockIdx.x * blockDim.x; - int j = threadIdx.y + blockIdx.y * blockDim.y; - int index = j * N + i; - if (i < N && j < N / n_gpu) { - float k2 = k[i] * k[i] + k[j + gpu_id * N / n_gpu] * k[j + gpu_id * N / n_gpu]; - if (i == 0 && j == 0 && gpu_id == 0) { - k2 = 1.0f; - } - - ft_k[index].x = -ft[index].x * 1 / k2; - ft_k[index].y = -ft[index].y * 1 / k2; - } -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/.vscode/extensions.json b/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/CMakeLists.txt b/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/CMakeLists.txt deleted file mode 100644 index 4f0f1aaa..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(simpleCUFFT_MGPU LANGUAGES CUDA) - -# Disable response file for libraries on QNX as qcc does not support lib paths with double quotes -if(CMAKE_SYSTEM_NAME STREQUAL "QNX") - set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES OFF) -endif() - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for simpleCUFFT_MGPU -add_executable(simpleCUFFT_MGPU simpleCUFFT_MGPU.cu) - -target_compile_options(simpleCUFFT_MGPU PRIVATE $<$:--extended-lambda>) - -target_compile_features(simpleCUFFT_MGPU PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(simpleCUFFT_MGPU PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_link_libraries(simpleCUFFT_MGPU PRIVATE - CUDA::cufft -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/README.md b/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/README.md deleted file mode 100644 index ac4a57c4..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# simpleCUFFT_MGPU - Simple CUFFT_MGPU - -## Description - -Example of using CUFFT. In this example, CUFFT is used to compute the 1D-convolution of some signal with some filter by transforming both into frequency domain, multiplying them together, and transforming the signal back to time domain on Multiple GPU. - -## Key Concepts - -Image Processing, CUFFT Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaXtFree, cudaSetDevice, cudaGetDeviceCount, cudaDeviceSynchronize, cudaGetDeviceProperties - -## Dependencies needed to build/run -[CUFFT](../../../README.md#cufft) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/simpleCUFFT_MGPU.cu b/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/simpleCUFFT_MGPU.cu deleted file mode 100644 index ede799b0..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_MGPU/simpleCUFFT_MGPU.cu +++ /dev/null @@ -1,387 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* Example showing the use of CUFFT for fast 1D-convolution using FFT. */ - -// System includes -#include -#include -#include -#include - -// CUDA runtime -#include - -// CUFFT Header file -#include - -// helper functions and utilities to work with CUDA -#include -#include - -// Complex data type -typedef float2 Complex; - -static __device__ __host__ inline Complex ComplexAdd(Complex, Complex); -static __device__ __host__ inline Complex ComplexScale(Complex, float); -static __device__ __host__ inline Complex ComplexMul(Complex, Complex); -static __global__ void ComplexPointwiseMulAndScale(cufftComplex *, cufftComplex *, int, float); - -// Kernel for GPU -void multiplyCoefficient(cudaLibXtDesc *, cudaLibXtDesc *, int, float, int); - -// Filtering functions -void Convolve(const Complex *, int, const Complex *, int, Complex *); - -// Padding functions -int PadData(const Complex *, Complex **, int, const Complex *, Complex **, int); - -//////////////////////////////////////////////////////////////////////////////// -// Data configuration -// The filter size is assumed to be a number smaller than the signal size -/////////////////////////////////////////////////////////////////////////////// -const int SIGNAL_SIZE = 1018; -const int FILTER_KERNEL_SIZE = 11; -const int GPU_COUNT = 2; - -//////////////////////////////////////////////////////////////////////////////// -// Program main -//////////////////////////////////////////////////////////////////////////////// -int main(int argc, char **argv) -{ - printf("\n[simpleCUFFT_MGPU] is starting...\n\n"); - - int GPU_N; - checkCudaErrors(cudaGetDeviceCount(&GPU_N)); - - if (GPU_N < GPU_COUNT) { - printf("No. of GPU on node %d\n", GPU_N); - printf("Two GPUs are required to run simpleCUFFT_MGPU sample code\n"); - exit(EXIT_WAIVED); - } - - int *major_minor = (int *)malloc(sizeof(int) * GPU_N * 2); - int found2IdenticalGPUs = 0; - int nGPUs = 2; - int *whichGPUs; - whichGPUs = (int *)malloc(sizeof(int) * nGPUs); - - for (int i = 0; i < GPU_N; i++) { - cudaDeviceProp deviceProp; - checkCudaErrors(cudaGetDeviceProperties(&deviceProp, i)); - major_minor[i * 2] = deviceProp.major; - major_minor[i * 2 + 1] = deviceProp.minor; - printf("GPU Device %d: \"%s\" with compute capability %d.%d\n", - i, - deviceProp.name, - deviceProp.major, - deviceProp.minor); - } - - for (int i = 0; i < GPU_N; i++) { - for (int j = i + 1; j < GPU_N; j++) { - if ((major_minor[i * 2] == major_minor[j * 2]) && (major_minor[i * 2 + 1] == major_minor[j * 2 + 1])) { - whichGPUs[0] = i; - whichGPUs[1] = j; - found2IdenticalGPUs = 1; - break; - } - } - if (found2IdenticalGPUs) { - break; - } - } - - free(major_minor); - if (!found2IdenticalGPUs) { - printf("No Two GPUs with same architecture found\nWaiving simpleCUFFT_2d_MGPU " - "sample\n"); - exit(EXIT_WAIVED); - } - - // Allocate host memory for the signal - Complex *h_signal = (Complex *)malloc(sizeof(Complex) * SIGNAL_SIZE); - - // Initialize the memory for the signal - for (int i = 0; i < SIGNAL_SIZE; ++i) { - h_signal[i].x = rand() / (float)RAND_MAX; - h_signal[i].y = 0; - } - - // Allocate host memory for the filter - Complex *h_filter_kernel = (Complex *)malloc(sizeof(Complex) * FILTER_KERNEL_SIZE); - - // Initialize the memory for the filter - for (int i = 0; i < FILTER_KERNEL_SIZE; ++i) { - h_filter_kernel[i].x = rand() / (float)RAND_MAX; - h_filter_kernel[i].y = 0; - } - - // Pad signal and filter kernel - Complex *h_padded_signal; - Complex *h_padded_filter_kernel; - int new_size = - PadData(h_signal, &h_padded_signal, SIGNAL_SIZE, h_filter_kernel, &h_padded_filter_kernel, FILTER_KERNEL_SIZE); - - // cufftCreate() - Create an empty plan - cufftResult result; - cufftHandle plan_input; - checkCudaErrors(cufftCreate(&plan_input)); - - // cufftXtSetGPUs() - Define which GPUs to use - result = cufftXtSetGPUs(plan_input, nGPUs, whichGPUs); - - if (result == CUFFT_INVALID_DEVICE) { - printf("This sample requires two GPUs on the same board.\n"); - printf("No such board was found. Waiving sample.\n"); - exit(EXIT_WAIVED); - } - else if (result != CUFFT_SUCCESS) { - printf("cufftXtSetGPUs failed\n"); - exit(EXIT_FAILURE); - } - - // Print the device information to run the code - printf("\nRunning on GPUs\n"); - for (int i = 0; i < nGPUs; i++) { - cudaDeviceProp deviceProp; - checkCudaErrors(cudaGetDeviceProperties(&deviceProp, whichGPUs[i])); - printf("GPU Device %d: \"%s\" with compute capability %d.%d\n", - whichGPUs[i], - deviceProp.name, - deviceProp.major, - deviceProp.minor); - } - - size_t *worksize; - worksize = (size_t *)malloc(sizeof(size_t) * nGPUs); - - // cufftMakePlan1d() - Create the plan - checkCudaErrors(cufftMakePlan1d(plan_input, new_size, CUFFT_C2C, 1, worksize)); - - // cufftXtMalloc() - Malloc data on multiple GPUs - cudaLibXtDesc *d_signal; - checkCudaErrors(cufftXtMalloc(plan_input, (cudaLibXtDesc **)&d_signal, CUFFT_XT_FORMAT_INPLACE)); - cudaLibXtDesc *d_out_signal; - checkCudaErrors(cufftXtMalloc(plan_input, (cudaLibXtDesc **)&d_out_signal, CUFFT_XT_FORMAT_INPLACE)); - cudaLibXtDesc *d_filter_kernel; - checkCudaErrors(cufftXtMalloc(plan_input, (cudaLibXtDesc **)&d_filter_kernel, CUFFT_XT_FORMAT_INPLACE)); - cudaLibXtDesc *d_out_filter_kernel; - checkCudaErrors(cufftXtMalloc(plan_input, (cudaLibXtDesc **)&d_out_filter_kernel, CUFFT_XT_FORMAT_INPLACE)); - - // cufftXtMemcpy() - Copy data from host to multiple GPUs - checkCudaErrors(cufftXtMemcpy(plan_input, d_signal, h_padded_signal, CUFFT_COPY_HOST_TO_DEVICE)); - checkCudaErrors(cufftXtMemcpy(plan_input, d_filter_kernel, h_padded_filter_kernel, CUFFT_COPY_HOST_TO_DEVICE)); - - // cufftXtExecDescriptorC2C() - Execute FFT on data on multiple GPUs - checkCudaErrors(cufftXtExecDescriptorC2C(plan_input, d_signal, d_signal, CUFFT_FORWARD)); - checkCudaErrors(cufftXtExecDescriptorC2C(plan_input, d_filter_kernel, d_filter_kernel, CUFFT_FORWARD)); - - // cufftXtMemcpy() - Copy the data to natural order on GPUs - checkCudaErrors(cufftXtMemcpy(plan_input, d_out_signal, d_signal, CUFFT_COPY_DEVICE_TO_DEVICE)); - checkCudaErrors(cufftXtMemcpy(plan_input, d_out_filter_kernel, d_filter_kernel, CUFFT_COPY_DEVICE_TO_DEVICE)); - - printf("\n\nValue of Library Descriptor\n"); - printf("Number of GPUs %d\n", d_out_signal->descriptor->nGPUs); - printf("Device id %d %d\n", d_out_signal->descriptor->GPUs[0], d_out_signal->descriptor->GPUs[1]); - printf("Data size on GPU %ld %ld\n", - (long)(d_out_signal->descriptor->size[0] / sizeof(cufftComplex)), - (long)(d_out_signal->descriptor->size[1] / sizeof(cufftComplex))); - - // Multiply the coefficients together and normalize the result - printf("Launching ComplexPointwiseMulAndScale<<< >>>\n"); - multiplyCoefficient(d_out_signal, d_out_filter_kernel, new_size, 1.0f / new_size, nGPUs); - - // cufftXtExecDescriptorC2C() - Execute inverse FFT on data on multiple GPUs - printf("Transforming signal back cufftExecC2C\n"); - checkCudaErrors(cufftXtExecDescriptorC2C(plan_input, d_out_signal, d_out_signal, CUFFT_INVERSE)); - - // Create host pointer pointing to padded signal - Complex *h_convolved_signal = h_padded_signal; - - // Allocate host memory for the convolution result - Complex *h_convolved_signal_ref = (Complex *)malloc(sizeof(Complex) * SIGNAL_SIZE); - - // cufftXtMemcpy() - Copy data from multiple GPUs to host - checkCudaErrors(cufftXtMemcpy(plan_input, h_convolved_signal, d_out_signal, CUFFT_COPY_DEVICE_TO_HOST)); - - // Convolve on the host - Convolve(h_signal, SIGNAL_SIZE, h_filter_kernel, FILTER_KERNEL_SIZE, h_convolved_signal_ref); - - // Compare CPU and GPU result - bool bTestResult = - sdkCompareL2fe((float *)h_convolved_signal_ref, (float *)h_convolved_signal, 2 * SIGNAL_SIZE, 1e-5f); - printf("\nvalue of TestResult %d\n", bTestResult); - - // Cleanup memory - free(whichGPUs); - free(worksize); - free(h_signal); - free(h_filter_kernel); - free(h_padded_signal); - free(h_padded_filter_kernel); - free(h_convolved_signal_ref); - - // cudaXtFree() - Free GPU memory - checkCudaErrors(cufftXtFree(d_signal)); - checkCudaErrors(cufftXtFree(d_filter_kernel)); - checkCudaErrors(cufftXtFree(d_out_signal)); - checkCudaErrors(cufftXtFree(d_out_filter_kernel)); - - // cufftDestroy() - Destroy FFT plan - checkCudaErrors(cufftDestroy(plan_input)); - - exit(bTestResult ? EXIT_SUCCESS : EXIT_FAILURE); -} - -/////////////////////////////////////////////////////////////////////////////////// -// Function for padding original data -////////////////////////////////////////////////////////////////////////////////// -int PadData(const Complex *signal, - Complex **padded_signal, - int signal_size, - const Complex *filter_kernel, - Complex **padded_filter_kernel, - int filter_kernel_size) -{ - int minRadius = filter_kernel_size / 2; - int maxRadius = filter_kernel_size - minRadius; - int new_size = signal_size + maxRadius; - - // Pad signal - Complex *new_data = (Complex *)malloc(sizeof(Complex) * new_size); - memcpy(new_data + 0, signal, signal_size * sizeof(Complex)); - memset(new_data + signal_size, 0, (new_size - signal_size) * sizeof(Complex)); - *padded_signal = new_data; - - // Pad filter - new_data = (Complex *)malloc(sizeof(Complex) * new_size); - memcpy(new_data + 0, filter_kernel + minRadius, maxRadius * sizeof(Complex)); - memset(new_data + maxRadius, 0, (new_size - filter_kernel_size) * sizeof(Complex)); - memcpy(new_data + new_size - minRadius, filter_kernel, minRadius * sizeof(Complex)); - *padded_filter_kernel = new_data; - - return new_size; -} - -//////////////////////////////////////////////////////////////////////////////// -// Filtering operations - Computing Convolution on the host -//////////////////////////////////////////////////////////////////////////////// -void Convolve(const Complex *signal, - int signal_size, - const Complex *filter_kernel, - int filter_kernel_size, - Complex *filtered_signal) -{ - int minRadius = filter_kernel_size / 2; - int maxRadius = filter_kernel_size - minRadius; - - // Loop over output element indices - for (int i = 0; i < signal_size; ++i) { - filtered_signal[i].x = filtered_signal[i].y = 0; - - // Loop over convolution indices - for (int j = -maxRadius + 1; j <= minRadius; ++j) { - int k = i + j; - - if (k >= 0 && k < signal_size) { - filtered_signal[i] = - ComplexAdd(filtered_signal[i], ComplexMul(signal[k], filter_kernel[minRadius - j])); - } - } - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Launch Kernel on multiple GPU -//////////////////////////////////////////////////////////////////////////////// -void multiplyCoefficient(cudaLibXtDesc *d_signal, cudaLibXtDesc *d_filter_kernel, int new_size, float val, int nGPUs) -{ - int device; - // Launch the ComplexPointwiseMulAndScale<<< >>> kernel on multiple GPU - for (int i = 0; i < nGPUs; i++) { - device = d_signal->descriptor->GPUs[i]; - - // Set device - checkCudaErrors(cudaSetDevice(device)); - - // Perform GPU computations - ComplexPointwiseMulAndScale<<<32, 256>>>((cufftComplex *)d_signal->descriptor->data[i], - (cufftComplex *)d_filter_kernel->descriptor->data[i], - int(d_signal->descriptor->size[i] / sizeof(cufftComplex)), - val); - } - - // Wait for device to finish all operation - for (int i = 0; i < nGPUs; i++) { - device = d_signal->descriptor->GPUs[i]; - checkCudaErrors(cudaSetDevice(device)); - cudaDeviceSynchronize(); - // Check if kernel execution generated and error - getLastCudaError("Kernel execution failed [ ComplexPointwiseMulAndScale ]"); - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Complex operations -//////////////////////////////////////////////////////////////////////////////// - -// Complex addition -static __device__ __host__ inline Complex ComplexAdd(Complex a, Complex b) -{ - Complex c; - c.x = a.x + b.x; - c.y = a.y + b.y; - return c; -} - -// Complex scale -static __device__ __host__ inline Complex ComplexScale(Complex a, float s) -{ - Complex c; - c.x = s * a.x; - c.y = s * a.y; - return c; -} - -// Complex multiplication -static __device__ __host__ inline Complex ComplexMul(Complex a, Complex b) -{ - Complex c; - c.x = a.x * b.x - a.y * b.y; - c.y = a.x * b.y + a.y * b.x; - return c; -} -// Complex pointwise multiplication -static __global__ void ComplexPointwiseMulAndScale(cufftComplex *a, cufftComplex *b, int size, float scale) -{ - const int numThreads = blockDim.x * gridDim.x; - const int threadID = blockIdx.x * blockDim.x + threadIdx.x; - for (int i = threadID; i < size; i += numThreads) { - a[i] = ComplexScale(ComplexMul(a[i], b[i]), scale); - } -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_callback/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/simpleCUFFT_callback/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_callback/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_callback/.vscode/extensions.json b/cpp/4_CUDA_Libraries/simpleCUFFT_callback/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_callback/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_callback/CMakeLists.txt b/cpp/4_CUDA_Libraries/simpleCUFFT_callback/CMakeLists.txt deleted file mode 100644 index 341796e9..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_callback/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(simpleCUFFT_callback LANGUAGES CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - # Source file - # Add target for simpleCUFFT_callback - add_executable(simpleCUFFT_callback simpleCUFFT_callback.cu) - - target_compile_options(simpleCUFFT_callback PRIVATE $<$:--extended-lambda>) - - target_compile_features(simpleCUFFT_callback PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleCUFFT_callback PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - - target_link_libraries(simpleCUFFT_callback PRIVATE - CUDA::cufft_static - culibos - ) -else() - message(STATUS "Will not build sample simpleCUFFT_callback - requires Linux OS") -endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_callback/README.md b/cpp/4_CUDA_Libraries/simpleCUFFT_callback/README.md deleted file mode 100644 index 0ac3eafc..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_callback/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# simpleCUFFT_callback - Simple CUFFT Callbacks - -## Description - -Example of using CUFFT. In this example, CUFFT is used to compute the 1D-convolution of some signal with some filter by transforming both into frequency domain, multiplying them together, and transforming the signal back to time domain. The difference between this example and the Simple CUFFT example is that the multiplication step is done by the CUFFT kernel with a user-supplied CUFFT callback routine, rather than by a separate kernel call. - -## Key Concepts - -Image Processing, CUFFT Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaMemcpy, cudaFree, cudaMemcpyFromSymbol, cudaGetDevice, cudaMalloc, cudaGetDeviceProperties - -## Dependencies needed to build/run -[CUFFT Callback Routines](../../../README.md#cufft-callback-routines), [CUFFT](../../../README.md#cufft) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/simpleCUFFT_callback/simpleCUFFT_callback.cu b/cpp/4_CUDA_Libraries/simpleCUFFT_callback/simpleCUFFT_callback.cu deleted file mode 100644 index 5f636e1d..00000000 --- a/cpp/4_CUDA_Libraries/simpleCUFFT_callback/simpleCUFFT_callback.cu +++ /dev/null @@ -1,317 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - - -/* - * Example showing the use of CUFFT for fast 1D-convolution using FFT. - * This sample is the same as simpleCUFFT, except that it uses a callback - * function to perform the pointwise multiply and scale, on input to the - * inverse transform. - * - */ - -// includes, system -#include -#include -#include -#include - -// includes, project -#include -#include -#include -#include -#include - -// Complex data type -typedef float2 Complex; -static __device__ __host__ inline Complex ComplexAdd(Complex, Complex); -static __device__ __host__ inline Complex ComplexScale(Complex, float); -static __device__ __host__ inline Complex ComplexMul(Complex, Complex); - -// This is the callback routine prototype -static __device__ cufftComplex ComplexPointwiseMulAndScale(void *a, size_t index, void *cb_info, void *sharedmem); - -typedef struct _cb_params -{ - Complex *filter; - float scale; -} cb_params; - -// This is the callback routine. It does complex pointwise multiplication with -// scaling. -static __device__ cufftComplex ComplexPointwiseMulAndScale(void *a, size_t index, void *cb_info, void *sharedmem) -{ - cb_params *my_params = (cb_params *)cb_info; - return (cufftComplex)ComplexScale(ComplexMul(((Complex *)a)[index], (my_params->filter)[index]), my_params->scale); -} - -// Define the device pointer to the callback routine. The host code will fetch -// this and pass it to CUFFT -__device__ cufftCallbackLoadC myOwnCallbackPtr = ComplexPointwiseMulAndScale; -// Filtering functions -void Convolve(const Complex *, int, const Complex *, int, Complex *); - -// Padding functions -int PadData(const Complex *, Complex **, int, const Complex *, Complex **, int); - -//////////////////////////////////////////////////////////////////////////////// -// declaration, forward -int runTest(int argc, char **argv); - -// The filter size is assumed to be a number smaller than the signal size -#define SIGNAL_SIZE 50 -#define FILTER_KERNEL_SIZE 11 - -//////////////////////////////////////////////////////////////////////////////// -// Program main -//////////////////////////////////////////////////////////////////////////////// -int main(int argc, char **argv) -{ - struct cudaDeviceProp properties; - int device; - checkCudaErrors(cudaGetDevice(&device)); - checkCudaErrors(cudaGetDeviceProperties(&properties, device)); - if (!(properties.major >= 2)) { - printf("simpleCUFFT_callback requires CUDA architecture SM2.0 or higher\n"); - return EXIT_WAIVED; - } - - return runTest(argc, argv); -} - -//////////////////////////////////////////////////////////////////////////////// -//! Run a simple test for CUFFT callbacks -//////////////////////////////////////////////////////////////////////////////// -int runTest(int argc, char **argv) -{ - printf("[simpleCUFFT_callback] is starting...\n"); - - findCudaDevice(argc, (const char **)argv); - - // Allocate host memory for the signal - Complex *h_signal = (Complex *)malloc(sizeof(Complex) * SIGNAL_SIZE); - - // Initialize the memory for the signal - for (unsigned int i = 0; i < SIGNAL_SIZE; ++i) { - h_signal[i].x = rand() / (float)RAND_MAX; - h_signal[i].y = 0; - } - - // Allocate host memory for the filter - Complex *h_filter_kernel = (Complex *)malloc(sizeof(Complex) * FILTER_KERNEL_SIZE); - - // Initialize the memory for the filter - for (unsigned int i = 0; i < FILTER_KERNEL_SIZE; ++i) { - h_filter_kernel[i].x = rand() / (float)RAND_MAX; - h_filter_kernel[i].y = 0; - } - - // Pad signal and filter kernel - Complex *h_padded_signal; - Complex *h_padded_filter_kernel; - int new_size = - PadData(h_signal, &h_padded_signal, SIGNAL_SIZE, h_filter_kernel, &h_padded_filter_kernel, FILTER_KERNEL_SIZE); - int mem_size = sizeof(Complex) * new_size; - - // Allocate device memory for signal - Complex *d_signal; - checkCudaErrors(cudaMalloc((void **)&d_signal, mem_size)); - // Copy host memory to device - checkCudaErrors(cudaMemcpy(d_signal, h_padded_signal, mem_size, cudaMemcpyHostToDevice)); - - // Allocate device memory for filter kernel - Complex *d_filter_kernel; - checkCudaErrors(cudaMalloc((void **)&d_filter_kernel, mem_size)); - - // Copy host memory to device - checkCudaErrors(cudaMemcpy(d_filter_kernel, h_padded_filter_kernel, mem_size, cudaMemcpyHostToDevice)); - - // Create one CUFFT plan for the forward transforms, and one for the reverse - // transform with load callback. - cufftHandle plan, cb_plan; - size_t work_size; - - checkCudaErrors(cufftCreate(&plan)); - checkCudaErrors(cufftCreate(&cb_plan)); - - checkCudaErrors(cufftMakePlan1d(plan, new_size, CUFFT_C2C, 1, &work_size)); - checkCudaErrors(cufftMakePlan1d(cb_plan, new_size, CUFFT_C2C, 1, &work_size)); - - // Define a structure used to pass in the device address of the filter kernel, - // and the scale factor - cb_params h_params; - - h_params.filter = d_filter_kernel; - h_params.scale = 1.0f / new_size; - - // Allocate device memory for parameters - cb_params *d_params; - checkCudaErrors(cudaMalloc((void **)&d_params, sizeof(cb_params))); - - // Copy host memory to device - checkCudaErrors(cudaMemcpy(d_params, &h_params, sizeof(cb_params), cudaMemcpyHostToDevice)); - - // The host needs to get a copy of the device pointer to the callback - cufftCallbackLoadC hostCopyOfCallbackPtr; - - checkCudaErrors(cudaMemcpyFromSymbol(&hostCopyOfCallbackPtr, myOwnCallbackPtr, sizeof(hostCopyOfCallbackPtr))); - - // Now associate the load callback with the plan. - checkCudaErrors( - cufftXtSetCallback(cb_plan, (void **)&hostCopyOfCallbackPtr, CUFFT_CB_LD_COMPLEX, (void **)&d_params)); - - // Transform signal and kernel - printf("Transforming signal cufftExecC2C\n"); - checkCudaErrors(cufftExecC2C(plan, (cufftComplex *)d_signal, (cufftComplex *)d_signal, CUFFT_FORWARD)); - checkCudaErrors( - cufftExecC2C(plan, (cufftComplex *)d_filter_kernel, (cufftComplex *)d_filter_kernel, CUFFT_FORWARD)); - - // Transform signal back, using the callback to do the pointwise multiply on - // the way in. - printf("Transforming signal back cufftExecC2C\n"); - checkCudaErrors(cufftExecC2C(cb_plan, (cufftComplex *)d_signal, (cufftComplex *)d_signal, CUFFT_INVERSE)); - - // Copy device memory to host - Complex *h_convolved_signal = h_padded_signal; - checkCudaErrors(cudaMemcpy(h_convolved_signal, d_signal, mem_size, cudaMemcpyDeviceToHost)); - - // Allocate host memory for the convolution result - Complex *h_convolved_signal_ref = (Complex *)malloc(sizeof(Complex) * SIGNAL_SIZE); - - // Convolve on the host - Convolve(h_signal, SIGNAL_SIZE, h_filter_kernel, FILTER_KERNEL_SIZE, h_convolved_signal_ref); - - // check result - bool bTestResult = - sdkCompareL2fe((float *)h_convolved_signal_ref, (float *)h_convolved_signal, 2 * SIGNAL_SIZE, 1e-5f); - - // Destroy CUFFT context - checkCudaErrors(cufftDestroy(plan)); - checkCudaErrors(cufftDestroy(cb_plan)); - - // cleanup memory - free(h_signal); - free(h_filter_kernel); - free(h_padded_signal); - free(h_padded_filter_kernel); - free(h_convolved_signal_ref); - checkCudaErrors(cudaFree(d_signal)); - checkCudaErrors(cudaFree(d_filter_kernel)); - checkCudaErrors(cudaFree(d_params)); - - return bTestResult ? EXIT_SUCCESS : EXIT_FAILURE; -} - -// Pad data -int PadData(const Complex *signal, - Complex **padded_signal, - int signal_size, - const Complex *filter_kernel, - Complex **padded_filter_kernel, - int filter_kernel_size) -{ - int minRadius = filter_kernel_size / 2; - int maxRadius = filter_kernel_size - minRadius; - int new_size = signal_size + maxRadius; - - // Pad signal - Complex *new_data = (Complex *)malloc(sizeof(Complex) * new_size); - memcpy(new_data + 0, signal, signal_size * sizeof(Complex)); - memset(new_data + signal_size, 0, (new_size - signal_size) * sizeof(Complex)); - *padded_signal = new_data; - - // Pad filter - new_data = (Complex *)malloc(sizeof(Complex) * new_size); - memcpy(new_data + 0, filter_kernel + minRadius, maxRadius * sizeof(Complex)); - memset(new_data + maxRadius, 0, (new_size - filter_kernel_size) * sizeof(Complex)); - memcpy(new_data + new_size - minRadius, filter_kernel, minRadius * sizeof(Complex)); - *padded_filter_kernel = new_data; - - return new_size; -} - -//////////////////////////////////////////////////////////////////////////////// -// Filtering operations -//////////////////////////////////////////////////////////////////////////////// - -// Computes convolution on the host -void Convolve(const Complex *signal, - int signal_size, - const Complex *filter_kernel, - int filter_kernel_size, - Complex *filtered_signal) -{ - int minRadius = filter_kernel_size / 2; - int maxRadius = filter_kernel_size - minRadius; - - // Loop over output element indices - for (int i = 0; i < signal_size; ++i) { - filtered_signal[i].x = filtered_signal[i].y = 0; - - // Loop over convolution indices - for (int j = -maxRadius + 1; j <= minRadius; ++j) { - int k = i + j; - - if (k >= 0 && k < signal_size) { - filtered_signal[i] = - ComplexAdd(filtered_signal[i], ComplexMul(signal[k], filter_kernel[minRadius - j])); - } - } - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Complex operations -//////////////////////////////////////////////////////////////////////////////// - -// Complex addition -static __device__ __host__ inline Complex ComplexAdd(Complex a, Complex b) -{ - Complex c; - c.x = a.x + b.x; - c.y = a.y + b.y; - return c; -} - -// Complex scale -static __device__ __host__ inline Complex ComplexScale(Complex a, float s) -{ - Complex c; - c.x = s * a.x; - c.y = s * a.y; - return c; -} - -// Complex multiplication -static __device__ __host__ inline Complex ComplexMul(Complex a, Complex b) -{ - Complex c; - c.x = a.x * b.x - a.y * b.y; - c.y = a.x * b.y + a.y * b.x; - return c; -} diff --git a/cpp/4_CUDA_Libraries/watershedSegmentationNPP/.vscode/c_cpp_properties.json b/cpp/4_CUDA_Libraries/watershedSegmentationNPP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/4_CUDA_Libraries/watershedSegmentationNPP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/4_CUDA_Libraries/watershedSegmentationNPP/.vscode/extensions.json b/cpp/4_CUDA_Libraries/watershedSegmentationNPP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/4_CUDA_Libraries/watershedSegmentationNPP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/4_CUDA_Libraries/watershedSegmentationNPP/CMakeLists.txt b/cpp/4_CUDA_Libraries/watershedSegmentationNPP/CMakeLists.txt deleted file mode 100644 index 744a4920..00000000 --- a/cpp/4_CUDA_Libraries/watershedSegmentationNPP/CMakeLists.txt +++ /dev/null @@ -1,71 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(watershedSegmentationNPP LANGUAGES CXX) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# This sample is not supported on QNX -if(CMAKE_SYSTEM_NAME STREQUAL "QNX") - message(STATUS "Will not build sample ${PROJECT_NAME} - not supported on QNX") - return() -endif() - -# Source file -# Add target for watershedSegmentationNPP -add_executable(watershedSegmentationNPP watershedSegmentationNPP.cpp) - -target_compile_options(watershedSegmentationNPP PRIVATE $<$:--extended-lambda>) - -target_compile_features(watershedSegmentationNPP PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(watershedSegmentationNPP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_include_directories(watershedSegmentationNPP PRIVATE - ${CUDAToolkit_INCLUDE_DIRS} -) -target_link_libraries(watershedSegmentationNPP PRIVATE - CUDA::nppc - CUDA::nppisu - CUDA::nppif - CUDA::cudart -) - -# Copy data files to output directory -add_custom_command(TARGET watershedSegmentationNPP POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/../../../Common/data/teapot_512x512_8u_Gray.raw - $/ -) - -# Copy data files to output directory -add_custom_command(TARGET watershedSegmentationNPP POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/../../../Common/data/CT_skull_512x512_8u_Gray.raw - $/ -) - -# Copy data files to output directory -add_custom_command(TARGET watershedSegmentationNPP POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/../../../Common/data/Rocks_512x512_8u_Gray.raw - $/ -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/4_CUDA_Libraries/watershedSegmentationNPP/README.md b/cpp/4_CUDA_Libraries/watershedSegmentationNPP/README.md deleted file mode 100644 index 6db12b81..00000000 --- a/cpp/4_CUDA_Libraries/watershedSegmentationNPP/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# watershedSegmentationNPP - Watershed Segmentation NPP - -## Description - -An NPP CUDA Sample that demonstrates how to use the NPP watershed segmentation function. - -## Key Concepts - -Performance Strategies, Image Processing, NPP Library - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaRuntimeGetVersion, cudaFree, cudaDeviceGetAttribute, cudaDriverGetVersion, cudaGetDevice, cudaStreamGetFlags, cudaStreamSynchronize, cudaGetDeviceProperties - -## Dependencies needed to build/run -[NPP](../../../README.md#npp) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/4_CUDA_Libraries/watershedSegmentationNPP/watershedSegmentationNPP.cpp b/cpp/4_CUDA_Libraries/watershedSegmentationNPP/watershedSegmentationNPP.cpp deleted file mode 100644 index bcd8c572..00000000 --- a/cpp/4_CUDA_Libraries/watershedSegmentationNPP/watershedSegmentationNPP.cpp +++ /dev/null @@ -1,596 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - - -#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) -#define WINDOWS_LEAN_AND_MEAN -#define NOMINMAX -#include -#pragma warning(disable : 4819) -#endif - -#include -#include -#include -#include -#include - -// Note: If you want to view these images we HIGHLY recommend using imagej which is free on the internet and works on -// most platforms -// because it is one of the few image viewing apps that can display 32 bit integer image data. While it -// normalizes the data to floating point values for viewing it still provides a good representation of the -// relative brightness of each label value. -// -// The files read and written by this sample app use RAW image format, that is, only the image data itself exists -// in the files with no image format information. When viewing RAW files with imagej just enter the image size -// and bit depth values that are part of the file name when requested by imagej. -// - -#define NUMBER_OF_IMAGES 3 - -Npp8u *pInputImageDev[NUMBER_OF_IMAGES]; -Npp8u *pInputImageHost[NUMBER_OF_IMAGES]; -Npp8u *pSegmentationScratchBufferDev[NUMBER_OF_IMAGES]; -Npp8u *pSegmentsDev[NUMBER_OF_IMAGES]; -Npp8u *pSegmentsHost[NUMBER_OF_IMAGES]; -Npp32u *pSegmentLabelsOutputBufferDev[NUMBER_OF_IMAGES]; -Npp32u *pSegmentLabelsOutputBufferHost[NUMBER_OF_IMAGES]; - -void tearDown() // Clean up and tear down -{ - for (int j = 0; j < NUMBER_OF_IMAGES; j++) { - if (pSegmentLabelsOutputBufferDev[j] != 0) - cudaFree(pSegmentLabelsOutputBufferDev[j]); - if (pSegmentationScratchBufferDev[j] != 0) - cudaFree(pSegmentationScratchBufferDev[j]); - if (pSegmentsDev[j] != 0) - cudaFree(pSegmentsDev[j]); - if (pInputImageDev[j] != 0) - cudaFree(pInputImageDev[j]); - if (pSegmentLabelsOutputBufferHost[j] != 0) - free(pSegmentLabelsOutputBufferHost[j]); - if (pSegmentsHost[j] != 0) - free(pSegmentsHost[j]); - if (pInputImageHost[j] != 0) - free(pInputImageHost[j]); - } -} - -const std::string &SegmentsOutputFile0 = "teapot_Segments_8Way_512x512_8u.raw"; -const std::string &SegmentsOutputFile1 = "CT_skull_Segments_8Way_512x512_8u.raw"; -const std::string &SegmentsOutputFile2 = "Rocks_Segments_8Way_512x512_8u.raw"; - -const std::string &SegmentBoundariesOutputFile0 = "teapot_SegmentBoundaries_8Way_512x512_8u.raw"; -const std::string &SegmentBoundariesOutputFile1 = "CT_skull_SegmentBoundaries_8Way_512x512_8u.raw"; -const std::string &SegmentBoundariesOutputFile2 = "Rocks_SegmentBoundaries_8Way_512x512_8u.raw"; - -const std::string &SegmentsWithContrastingBoundariesOutputFile0 = - "teapot_SegmentsWithContrastingBoundaries_8Way_512x512_8u.raw"; -const std::string &SegmentsWithContrastingBoundariesOutputFile1 = - "CT_skull_SegmentsWithContrastingBoundaries_8Way_512x512_8u.raw"; -const std::string &SegmentsWithContrastingBoundariesOutputFile2 = - "Rocks_SegmentsWithContrastingBoundaries_8Way_512x512_8u.raw"; - -const std::string &CompressedSegmentLabelsOutputFile0 = "teapot_CompressedSegmentLabels_8Way_512x512_32u.raw"; -const std::string &CompressedSegmentLabelsOutputFile1 = "CT_skull_CompressedSegmentLabels_8Way_512x512_32u.raw"; -const std::string &CompressedSegmentLabelsOutputFile2 = "Rocks_CompressedSegmentLabels_8Way_512x512_32u.raw"; - -int loadRaw8BitImage(Npp8u *pImage, int nWidth, int nHeight, int nImage) -{ - FILE *bmpFile; - size_t nSize; - - if (nImage == 0) { - if (nWidth != 512 || nHeight != 512) - return -1; - const char *fileName = "teapot_512x512_8u_Gray.raw"; - const char *InputFile = sdkFindFilePath(fileName, "."); - if (InputFile == NULL) { - printf("%s file not found.. exiting\n", fileName); - exit(EXIT_WAIVED); - } - - bmpFile = fopen(InputFile, "rb"); - } - else if (nImage == 1) { - if (nWidth != 512 || nHeight != 512) - return -1; - const char *fileName = "CT_skull_512x512_8u_Gray.raw"; - const char *InputFile = sdkFindFilePath(fileName, "."); - if (InputFile == NULL) { - printf("%s file not found.. exiting\n", fileName); - exit(EXIT_WAIVED); - } - - bmpFile = fopen(InputFile, "rb"); - } - else if (nImage == 2) { - if (nWidth != 512 || nHeight != 512) - return -1; - const char *fileName = "Rocks_512x512_8u_Gray.raw"; - const char *InputFile = sdkFindFilePath(fileName, "."); - if (InputFile == NULL) { - printf("%s file not found.. exiting\n", fileName); - exit(EXIT_WAIVED); - } - - bmpFile = fopen(InputFile, "rb"); - } - else { - printf("Input file load failed.\n"); - return -1; - } - - if (bmpFile == NULL) { - printf("Input file load failed.\n"); - return -1; - } - nSize = fread(pImage, 1, nWidth * nHeight, bmpFile); - if (nSize < nWidth * nHeight) { - printf("Input file load failed.\n"); - fclose(bmpFile); - return -1; - } - fclose(bmpFile); - - printf("Input file load succeeded.\n"); - - return 0; -} - -int main(int argc, char **argv) -{ - - size_t aSegmentationScratchBufferSize[NUMBER_OF_IMAGES]; - int aSegmentLabelsOutputBufferSize[NUMBER_OF_IMAGES]; - - cudaError_t cudaError; - NppStatus nppStatus; - NppStreamContext nppStreamCtx; - FILE *bmpFile; - NppiNorm eNorm = nppiNormInf; // default to 8 way neighbor search - - for (int j = 0; j < NUMBER_OF_IMAGES; j++) { - pInputImageDev[j] = 0; - pInputImageHost[j] = 0; - pSegmentationScratchBufferDev[j] = 0; - pSegmentLabelsOutputBufferDev[j] = 0; - pSegmentLabelsOutputBufferHost[j] = 0; - pSegmentsDev[j] = 0; - pSegmentsHost[j] = 0; - } - - nppStreamCtx.hStream = - 0; // The NULL stream by default, set this to whatever your stream ID is if not the NULL stream. - - cudaError = cudaGetDevice(&nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) { - printf("CUDA error: no devices supporting CUDA.\n"); - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - } - - const NppLibraryVersion *libVer = nppGetLibVersion(); - - printf("NPP Library Version %d.%d.%d\n", libVer->major, libVer->minor, libVer->build); - - int driverVersion, runtimeVersion; - cudaDriverGetVersion(&driverVersion); - cudaRuntimeGetVersion(&runtimeVersion); - - printf("CUDA Driver Version: %d.%d\n", driverVersion / 1000, (driverVersion % 100) / 10); - printf("CUDA Runtime Version: %d.%d\n\n", runtimeVersion / 1000, (runtimeVersion % 100) / 10); - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMajor, - cudaDevAttrComputeCapabilityMajor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaDeviceGetAttribute(&nppStreamCtx.nCudaDevAttrComputeCapabilityMinor, - cudaDevAttrComputeCapabilityMinor, - nppStreamCtx.nCudaDeviceId); - if (cudaError != cudaSuccess) - return NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY; - - cudaError = cudaStreamGetFlags(nppStreamCtx.hStream, &nppStreamCtx.nStreamFlags); - - cudaDeviceProp oDeviceProperties; - - cudaError = cudaGetDeviceProperties(&oDeviceProperties, nppStreamCtx.nCudaDeviceId); - - nppStreamCtx.nMultiProcessorCount = oDeviceProperties.multiProcessorCount; - nppStreamCtx.nMaxThreadsPerMultiProcessor = oDeviceProperties.maxThreadsPerMultiProcessor; - nppStreamCtx.nMaxThreadsPerBlock = oDeviceProperties.maxThreadsPerBlock; - nppStreamCtx.nSharedMemPerBlock = oDeviceProperties.sharedMemPerBlock; - - NppiSize oSizeROI[NUMBER_OF_IMAGES]; - - for (int nImage = 0; nImage < NUMBER_OF_IMAGES; nImage++) { - if (nImage == 0) { - oSizeROI[nImage].width = 512; - oSizeROI[nImage].height = 512; - } - else if (nImage == 1) { - oSizeROI[nImage].width = 512; - oSizeROI[nImage].height = 512; - } - else if (nImage == 2) { - oSizeROI[nImage].width = 512; - oSizeROI[nImage].height = 512; - } - - // cudaMallocPitch OR cudaMalloc can be used here, in this sample case width == pitch. - - cudaError = cudaMalloc((void **)&pInputImageDev[nImage], - oSizeROI[nImage].width * sizeof(Npp8u) * oSizeROI[nImage].height); - if (cudaError != cudaSuccess) - return NPP_MEMORY_ALLOCATION_ERR; - - cudaError = cudaMalloc((void **)&pSegmentsDev[nImage], - oSizeROI[nImage].width * sizeof(Npp32u) * oSizeROI[nImage].height); - if (cudaError != cudaSuccess) - return NPP_MEMORY_ALLOCATION_ERR; - - pInputImageHost[nImage] = - reinterpret_cast(malloc(oSizeROI[nImage].width * sizeof(Npp8u) * oSizeROI[nImage].height)); - pSegmentsHost[nImage] = - reinterpret_cast(malloc(oSizeROI[nImage].width * sizeof(Npp32u) * oSizeROI[nImage].height)); - - nppStatus = nppiSegmentWatershedGetBufferSize_8u_C1R(oSizeROI[nImage], &aSegmentationScratchBufferSize[nImage]); - - cudaError = cudaMalloc((void **)&pSegmentationScratchBufferDev[nImage], aSegmentationScratchBufferSize[nImage]); - if (cudaError != cudaSuccess) - return NPP_MEMORY_ALLOCATION_ERR; - - // Output label marker buffers are only needed if you want to same the generated segmentation labels, they ARE - // compatible with NPP UF generated labels. Requesting segmentation output may slightly decrease segmentation - // function performance. Regardless of the pitch of the segmentation image the segment labels output buffer - // will have a pitch of oSizeROI[nImage].width * sizeof(Npp32u). - - aSegmentLabelsOutputBufferSize[nImage] = oSizeROI[nImage].width * sizeof(Npp32u) * oSizeROI[nImage].height; - - cudaError = cudaMalloc((void **)&pSegmentLabelsOutputBufferDev[nImage], aSegmentLabelsOutputBufferSize[nImage]); - if (cudaError != cudaSuccess) - return NPP_MEMORY_ALLOCATION_ERR; - - pSegmentLabelsOutputBufferHost[nImage] = - reinterpret_cast(malloc(oSizeROI[nImage].width * sizeof(Npp32u) * oSizeROI[nImage].height)); - - if (loadRaw8BitImage( - pInputImageHost[nImage], oSizeROI[nImage].width * sizeof(Npp8u), oSizeROI[nImage].height, nImage) - == 0) { - cudaError = cudaMemcpy2DAsync(pInputImageDev[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - pInputImageHost[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].height, - cudaMemcpyHostToDevice, - nppStreamCtx.hStream); - - // Make a second copy of the unaltered input image since this function works in place and we want to reuse - // the input image multiple times. - cudaError = cudaMemcpy2DAsync(pSegmentsDev[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - pInputImageHost[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].height, - cudaMemcpyHostToDevice, - nppStreamCtx.hStream); - - nppStatus = nppiSegmentWatershed_8u_C1IR_Ctx(pSegmentsDev[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - pSegmentLabelsOutputBufferDev[nImage], - oSizeROI[nImage].width * sizeof(Npp32u), - eNorm, - NPP_WATERSHED_SEGMENT_BOUNDARIES_NONE, - oSizeROI[nImage], - pSegmentationScratchBufferDev[nImage], - nppStreamCtx); - - if (nppStatus != NPP_SUCCESS) { - if (nImage == 0) - printf("Lena segments 8Way 512x512 8u failed.\n"); - else if (nImage == 1) - printf("CT skull segments 8Way 512x512 8u failed.\n"); - else if (nImage == 2) - printf("Rocks segments 8Way 512x512 8u failed.\n"); - tearDown(); - return -1; - } - - // Now compress the label markers output to make them easier to view. - int nCompressedLabelsScratchBufferSize; - Npp8u *pCompressedLabelsScratchBufferDev; - - nppStatus = nppiCompressMarkerLabelsGetBufferSize_32u_C1R(oSizeROI[nImage].width * oSizeROI[nImage].height, - &nCompressedLabelsScratchBufferSize); - if (nppStatus != NPP_NO_ERROR) - return nppStatus; - - cudaError = cudaMalloc((void **)&pCompressedLabelsScratchBufferDev, nCompressedLabelsScratchBufferSize); - if (cudaError != cudaSuccess) - return NPP_MEMORY_ALLOCATION_ERR; - - int nCompressedLabelCount = 0; - - nppStatus = nppiCompressMarkerLabelsUF_32u_C1IR_Ctx(pSegmentLabelsOutputBufferDev[nImage], - oSizeROI[nImage].width * sizeof(Npp32u), - oSizeROI[nImage], - oSizeROI[nImage].width * oSizeROI[nImage].height, - &nCompressedLabelCount, - pCompressedLabelsScratchBufferDev, - nppStreamCtx); - - if (nppStatus != NPP_SUCCESS) { - if (nImage == 0) - printf("teapot_CompressedLabelMarkersUF_8Way_512x512_32u failed.\n"); - else if (nImage == 1) - printf("CT_Skull_CompressedLabelMarkersUF_8Way_512x512_32u failed.\n"); - else if (nImage == 2) - printf("Rocks_CompressedLabelMarkersUF_8Way_512x512_32u failed.\n"); - tearDown(); - return -1; - } - - // Copy segmented image to host - cudaError = cudaMemcpy2DAsync(pSegmentsHost[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - pSegmentsDev[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].height, - cudaMemcpyDeviceToHost, - nppStreamCtx.hStream); - - // Copy segment labels image to host - cudaError = cudaMemcpy2DAsync(pSegmentLabelsOutputBufferHost[nImage], - oSizeROI[nImage].width * sizeof(Npp32u), - pSegmentLabelsOutputBufferDev[nImage], - oSizeROI[nImage].width * sizeof(Npp32u), - oSizeROI[nImage].width * sizeof(Npp32u), - oSizeROI[nImage].height, - cudaMemcpyDeviceToHost, - nppStreamCtx.hStream); - - // Wait host image read backs to complete, not necessary if no need to synchronize - if ((cudaError = cudaStreamSynchronize(nppStreamCtx.hStream)) != cudaSuccess) { - printf("Post segmentation cudaStreamSynchronize failed\n"); - tearDown(); - return -1; - } - - // Free single image scratch buffer - cudaFree(pCompressedLabelsScratchBufferDev); - - // Save default segments file. - if (nImage == 0) - bmpFile = fopen(SegmentsOutputFile0.c_str(), "wb"); - else if (nImage == 1) - bmpFile = fopen(SegmentsOutputFile1.c_str(), "wb"); - else if (nImage == 2) - bmpFile = fopen(SegmentsOutputFile2.c_str(), "wb"); - - if (bmpFile == NULL) - return -1; - size_t nSize = 0; - for (int j = 0; j < oSizeROI[nImage].height; j++) { - nSize += fwrite( - &pSegmentsHost[nImage][j * oSizeROI[nImage].width], sizeof(Npp8u), oSizeROI[nImage].width, bmpFile); - } - fclose(bmpFile); - - if (nImage == 0) - printf("teapot_Segments_8Way_512x512_8u succeeded.\n"); - else if (nImage == 1) - printf("CT_Skull_Segments_8Way_512x512_8u succeeded.\n"); - else if (nImage == 2) - printf("Rocks_Segments_8Way_512x512_8u succeeded.\n"); - - // Save segment labels file. - if (nImage == 0) - bmpFile = fopen(CompressedSegmentLabelsOutputFile0.c_str(), "wb"); - else if (nImage == 1) - bmpFile = fopen(CompressedSegmentLabelsOutputFile1.c_str(), "wb"); - else if (nImage == 2) - bmpFile = fopen(CompressedSegmentLabelsOutputFile2.c_str(), "wb"); - - if (bmpFile == NULL) - return -1; - nSize = 0; - for (int j = 0; j < oSizeROI[nImage].height; j++) { - nSize += fwrite(&pSegmentLabelsOutputBufferHost[nImage][j * oSizeROI[nImage].width], - sizeof(Npp32u), - oSizeROI[nImage].width, - bmpFile); - } - fclose(bmpFile); - - if (nImage == 0) - printf("teapot_CompressedSegmentLabels_8Way_512x512_32u succeeded.\n"); - else if (nImage == 1) - printf("CT_Skull_CompressedSegmentLabels_8Way_512x512_32u succeeded.\n"); - else if (nImage == 2) - printf("Rocks_CompressedSegmentLabels_8Way_512x512_32u succeeded.\n"); - - // Now generate a segment boundaries only output image - - // Make a second copy of the unaltered input image since this function works in place and we want to reuse - // the input image multiple times. - cudaError = cudaMemcpy2DAsync(pSegmentsDev[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - pInputImageHost[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].height, - cudaMemcpyHostToDevice, - nppStreamCtx.hStream); - - // We already generated segment labels images to skip that this time - nppStatus = nppiSegmentWatershed_8u_C1IR_Ctx(pSegmentsDev[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - 0, - 0, - eNorm, - NPP_WATERSHED_SEGMENT_BOUNDARIES_ONLY, - oSizeROI[nImage], - pSegmentationScratchBufferDev[nImage], - nppStreamCtx); - - if (nppStatus != NPP_SUCCESS) { - if (nImage == 0) - printf("Lena segment boundaries 8Way 512x512 8u failed.\n"); - else if (nImage == 1) - printf("CT skull segment boundaries 8Way 512x512 8u failed.\n"); - else if (nImage == 2) - printf("Rocks segment boundaries 8Way 512x512 8u failed.\n"); - tearDown(); - return -1; - } - - // Copy segment boundaries image to host - cudaError = cudaMemcpy2DAsync(pSegmentsHost[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - pSegmentsDev[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].height, - cudaMemcpyDeviceToHost, - nppStreamCtx.hStream); - - // Wait host image read backs to complete, not necessary if no need to synchronize - if ((cudaError = cudaStreamSynchronize(nppStreamCtx.hStream)) != cudaSuccess) { - printf("Post segmentation cudaStreamSynchronize failed\n"); - tearDown(); - return -1; - } - - if (nImage == 0) - bmpFile = fopen(SegmentBoundariesOutputFile0.c_str(), "wb"); - else if (nImage == 1) - bmpFile = fopen(SegmentBoundariesOutputFile1.c_str(), "wb"); - else if (nImage == 2) - bmpFile = fopen(SegmentBoundariesOutputFile2.c_str(), "wb"); - - if (bmpFile == NULL) - return -1; - nSize = 0; - for (int j = 0; j < oSizeROI[nImage].height; j++) { - nSize += fwrite( - &pSegmentsHost[nImage][j * oSizeROI[nImage].width], sizeof(Npp8u), oSizeROI[nImage].width, bmpFile); - } - fclose(bmpFile); - - if (nImage == 0) - printf("teapot_SegmentBoundaries_8Way_512x512_8u succeeded.\n"); - else if (nImage == 1) - printf("CT_Skull_SegmentBoundaries_8Way_512x512_8u succeeded.\n"); - else if (nImage == 2) - printf("Rocks_SegmentBoundaries_8Way_512x512_8u succeeded.\n"); - - // Now generate a segmented with contrasting boundaries output image - - // Make a second copy of the unaltered input image since this function works in place and we want to reuse - // the input image multiple times. - cudaError = cudaMemcpy2DAsync(pSegmentsDev[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - pInputImageHost[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].height, - cudaMemcpyHostToDevice, - nppStreamCtx.hStream); - - // We already generated segment labels images to skip that this time - nppStatus = nppiSegmentWatershed_8u_C1IR_Ctx(pSegmentsDev[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - 0, - 0, - eNorm, - NPP_WATERSHED_SEGMENT_BOUNDARIES_CONTRAST, - oSizeROI[nImage], - pSegmentationScratchBufferDev[nImage], - nppStreamCtx); - - if (nppStatus != NPP_SUCCESS) { - if (nImage == 0) - printf("Lena segments with contrasting boundaries 8Way 512x512 8u failed.\n"); - else if (nImage == 1) - printf("CT skull segments with contrasting boundaries 8Way 512x512 8u failed.\n"); - else if (nImage == 2) - printf("Rocks segments with contrasting boundaries 8Way 512x512 8u failed.\n"); - tearDown(); - return -1; - } - - // Copy segment boundaries image to host - cudaError = cudaMemcpy2DAsync(pSegmentsHost[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - pSegmentsDev[nImage], - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].width * sizeof(Npp8u), - oSizeROI[nImage].height, - cudaMemcpyDeviceToHost, - nppStreamCtx.hStream); - - // Wait host image read backs to complete, not necessary if no need to synchronize - if ((cudaError = cudaStreamSynchronize(nppStreamCtx.hStream)) != cudaSuccess) { - printf("Post segmentation cudaStreamSynchronize failed\n"); - tearDown(); - return -1; - } - - if (nImage == 0) - bmpFile = fopen(SegmentsWithContrastingBoundariesOutputFile0.c_str(), "wb"); - else if (nImage == 1) - bmpFile = fopen(SegmentsWithContrastingBoundariesOutputFile1.c_str(), "wb"); - else if (nImage == 2) - bmpFile = fopen(SegmentsWithContrastingBoundariesOutputFile2.c_str(), "wb"); - - if (bmpFile == NULL) - return -1; - nSize = 0; - for (int j = 0; j < oSizeROI[nImage].height; j++) { - nSize += fwrite( - &pSegmentsHost[nImage][j * oSizeROI[nImage].width], sizeof(Npp8u), oSizeROI[nImage].width, bmpFile); - } - fclose(bmpFile); - - if (nImage == 0) - printf("teapot_SegmentsWithContrastingBoundaries_8Way_512x512_8u succeeded.\n"); - else if (nImage == 1) - printf("CT_Skull_SegmentsWithContrastingBoundaries_8Way_512x512_8u succeeded.\n"); - else if (nImage == 2) - printf("Rocks_SegmentsWithContrastingBoundaries_8Way_512x512_8u succeeded.\n"); - } - } - - tearDown(); - - return 0; -} diff --git a/cpp/5_Domain_Specific/BlackScholes/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/BlackScholes/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/BlackScholes/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/BlackScholes/.vscode/extensions.json b/cpp/5_Domain_Specific/BlackScholes/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/BlackScholes/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/BlackScholes/CMakeLists.txt b/cpp/5_Domain_Specific/BlackScholes/CMakeLists.txt index 01329a83..acce64db 100644 --- a/cpp/5_Domain_Specific/BlackScholes/CMakeLists.txt +++ b/cpp/5_Domain_Specific/BlackScholes/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(BlackScholes LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for BlackScholes add_executable(BlackScholes BlackScholes.cu BlackScholes_gold.cpp) target_compile_options(BlackScholes PRIVATE $<$:--extended-lambda>) target_compile_features(BlackScholes PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(BlackScholes PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/BlackScholes_nvrtc/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/BlackScholes_nvrtc/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/BlackScholes_nvrtc/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/BlackScholes_nvrtc/.vscode/extensions.json b/cpp/5_Domain_Specific/BlackScholes_nvrtc/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/BlackScholes_nvrtc/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/BlackScholes_nvrtc/BlackScholes.cpp b/cpp/5_Domain_Specific/BlackScholes_nvrtc/BlackScholes.cpp deleted file mode 100644 index bd538c87..00000000 --- a/cpp/5_Domain_Specific/BlackScholes_nvrtc/BlackScholes.cpp +++ /dev/null @@ -1,281 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This sample evaluates fair call and put prices for a - * given set of European options by Black-Scholes formula. - * See supplied whitepaper for more explanations. - */ - -#include -#include // helper functions for string parsing -#include - -//////////////////////////////////////////////////////////////////////////////// -// Process an array of optN options on CPU -//////////////////////////////////////////////////////////////////////////////// - -extern "C" void BlackScholesCPU(float *h_CallResult, - float *h_PutResult, - float *h_StockPrice, - float *h_OptionStrike, - float *h_OptionYears, - float Riskfree, - float Volatility, - int optN); - -//////////////////////////////////////////////////////////////////////////////// -// Process an array of OptN options on GPU -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// - -// Helper function, returning uniformly distributed -// random float in [low, high] range -//////////////////////////////////////////////////////////////////////////////// - -float RandFloat(float low, float high) -{ - float t = (float)rand() / (float)RAND_MAX; - return (1.0f - t) * low + t * high; -} - -//////////////////////////////////////////////////////////////////////////////// -// Data configuration -//////////////////////////////////////////////////////////////////////////////// - -const int OPT_N = 4000000; -const int NUM_ITERATIONS = 512; -const int OPT_SZ = OPT_N * sizeof(float); -const float RISKFREE = 0.02f; -const float VOLATILITY = 0.30f; - -#define DIV_UP(a, b) (((a) + (b) - 1) / (b)) - -//////////////////////////////////////////////////////////////////////////////// -// Main program -//////////////////////////////////////////////////////////////////////////////// - -int main(int argc, char **argv) -{ - // Start logs - printf("[%s] - Starting...\n", argv[0]); - - //'h_' prefix - CPU (host) memory space - float - // Results calculated by CPU for reference - *h_CallResultCPU, - *h_PutResultCPU, - // CPU copy of GPU results - *h_CallResultGPU, *h_PutResultGPU, - // CPU instance of input data - *h_StockPrice, *h_OptionStrike, *h_OptionYears; - - //'d_' prefix - GPU (device) memory space - CUdeviceptr - // Results calculated by GPU - d_CallResult, - d_PutResult, - - // GPU instance of input data - d_StockPrice, d_OptionStrike, d_OptionYears; - - double delta, ref, sum_delta, sum_ref, max_delta, L1norm, gpuTime; - - StopWatchInterface *hTimer = NULL; - int i; - - sdkCreateTimer(&hTimer); - - printf("Initializing data...\n"); - printf("...allocating CPU memory for options.\n"); - - h_CallResultCPU = (float *)malloc(OPT_SZ); - h_PutResultCPU = (float *)malloc(OPT_SZ); - h_CallResultGPU = (float *)malloc(OPT_SZ); - h_PutResultGPU = (float *)malloc(OPT_SZ); - h_StockPrice = (float *)malloc(OPT_SZ); - h_OptionStrike = (float *)malloc(OPT_SZ); - h_OptionYears = (float *)malloc(OPT_SZ); - - char *cubin, *kernel_file; - size_t cubinSize; - kernel_file = sdkFindFilePath("BlackScholes_kernel.cuh", argv[0]); - - // Compile the kernel BlackScholes_kernel. - compileFileToCUBIN(kernel_file, argc, argv, &cubin, &cubinSize, 0); - CUmodule module = loadCUBIN(cubin, argc, argv); - - CUfunction kernel_addr; - checkCudaErrors(cuModuleGetFunction(&kernel_addr, module, "BlackScholesGPU")); - - printf("...allocating GPU memory for options.\n"); - checkCudaErrors(cuMemAlloc(&d_CallResult, OPT_SZ)); - checkCudaErrors(cuMemAlloc(&d_PutResult, OPT_SZ)); - checkCudaErrors(cuMemAlloc(&d_StockPrice, OPT_SZ)); - checkCudaErrors(cuMemAlloc(&d_OptionStrike, OPT_SZ)); - checkCudaErrors(cuMemAlloc(&d_OptionYears, OPT_SZ)); - - printf("...generating input data in CPU mem.\n"); - srand(5347); - - // Generate options set - for (i = 0; i < OPT_N; i++) { - h_CallResultCPU[i] = 0.0f; - h_PutResultCPU[i] = -1.0f; - h_StockPrice[i] = RandFloat(5.0f, 30.0f); - h_OptionStrike[i] = RandFloat(1.0f, 100.0f); - h_OptionYears[i] = RandFloat(0.25f, 10.0f); - } - - printf("...copying input data to GPU mem.\n"); - // Copy options data to GPU memory for further processing - checkCudaErrors(cuMemcpyHtoD(d_StockPrice, h_StockPrice, OPT_SZ)); - checkCudaErrors(cuMemcpyHtoD(d_OptionStrike, h_OptionStrike, OPT_SZ)); - checkCudaErrors(cuMemcpyHtoD(d_OptionYears, h_OptionYears, OPT_SZ)); - - printf("Data init done.\n\n"); - printf("Executing Black-Scholes GPU kernel (%i iterations)...\n", NUM_ITERATIONS); - - sdkResetTimer(&hTimer); - sdkStartTimer(&hTimer); - - dim3 cudaBlockSize(128, 1, 1); - dim3 cudaGridSize(DIV_UP(OPT_N / 2, 128), 1, 1); - - float risk = RISKFREE; - float volatility = VOLATILITY; - int optval = OPT_N; - - void *arr[] = {(void *)&d_CallResult, - (void *)&d_PutResult, - (void *)&d_StockPrice, - (void *)&d_OptionStrike, - (void *)&d_OptionYears, - (void *)&risk, - (void *)&volatility, - (void *)&optval}; - - for (i = 0; i < NUM_ITERATIONS; i++) { - checkCudaErrors(cuLaunchKernel(kernel_addr, - cudaGridSize.x, - cudaGridSize.y, - cudaGridSize.z, /* grid dim */ - cudaBlockSize.x, - cudaBlockSize.y, - cudaBlockSize.z, /* block dim */ - 0, - 0, /* shared mem, stream */ - &arr[0], /* arguments */ - 0)); - } - - checkCudaErrors(cuCtxSynchronize()); - - sdkStopTimer(&hTimer); - gpuTime = sdkGetTimerValue(&hTimer) / NUM_ITERATIONS; - - // Both call and put is calculated - printf("Options count : %i \n", 2 * OPT_N); - printf("BlackScholesGPU() time : %f msec\n", gpuTime); - printf("Effective memory bandwidth: %f GB/s\n", ((double)(5 * OPT_N * sizeof(float)) * 1E-9) / (gpuTime * 1E-3)); - printf("Gigaoptions per second : %f \n\n", ((double)(2 * OPT_N) * 1E-9) / (gpuTime * 1E-3)); - printf("BlackScholes, Throughput = %.4f GOptions/s, Time = %.5f s, Size = %u " - "options, NumDevsUsed = %u, Workgroup = %u\n", - (((double)(2.0 * OPT_N) * 1.0E-9) / (gpuTime * 1.0E-3)), - gpuTime * 1e-3, - (2 * OPT_N), - 1, - 128); - - printf("\nReading back GPU results...\n"); - - // Read back GPU results to compare them to CPU results - checkCudaErrors(cuMemcpyDtoH(h_CallResultGPU, d_CallResult, OPT_SZ)); - checkCudaErrors(cuMemcpyDtoH(h_PutResultGPU, d_PutResult, OPT_SZ)); - - printf("Checking the results...\n"); - printf("...running CPU calculations.\n\n"); - - // Calculate options values on CPU - BlackScholesCPU( - h_CallResultCPU, h_PutResultCPU, h_StockPrice, h_OptionStrike, h_OptionYears, RISKFREE, VOLATILITY, OPT_N); - - printf("Comparing the results...\n"); - // Calculate max absolute difference and L1 distance - // between CPU and GPU results - sum_delta = 0; - sum_ref = 0; - max_delta = 0; - - for (i = 0; i < OPT_N; i++) { - ref = h_CallResultCPU[i]; - delta = fabs(h_CallResultCPU[i] - h_CallResultGPU[i]); - - if (delta > max_delta) { - max_delta = delta; - } - - sum_delta += delta; - sum_ref += fabs(ref); - } - - L1norm = sum_delta / sum_ref; - printf("L1 norm: %E\n", L1norm); - printf("Max absolute error: %E\n\n", max_delta); - - printf("Shutting down...\n"); - printf("...releasing GPU memory.\n"); - - checkCudaErrors(cuMemFree(d_OptionYears)); - checkCudaErrors(cuMemFree(d_OptionStrike)); - checkCudaErrors(cuMemFree(d_StockPrice)); - checkCudaErrors(cuMemFree(d_PutResult)); - checkCudaErrors(cuMemFree(d_CallResult)); - - printf("...releasing CPU memory.\n"); - - free(h_OptionYears); - free(h_OptionStrike); - free(h_StockPrice); - free(h_PutResultGPU); - free(h_CallResultGPU); - free(h_PutResultCPU); - free(h_CallResultCPU); - - sdkDeleteTimer(&hTimer); - printf("Shutdown done.\n"); - - printf("\n[%s] - Test Summary\n", argv[0]); - - if (L1norm > 1e-6) { - printf("Test failed!\n"); - exit(EXIT_FAILURE); - } - - printf("Test passed\n"); - exit(EXIT_SUCCESS); -} diff --git a/cpp/5_Domain_Specific/BlackScholes_nvrtc/BlackScholes_gold.cpp b/cpp/5_Domain_Specific/BlackScholes_nvrtc/BlackScholes_gold.cpp deleted file mode 100644 index ea76cabe..00000000 --- a/cpp/5_Domain_Specific/BlackScholes_nvrtc/BlackScholes_gold.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include - -/////////////////////////////////////////////////////////////////////////////// -// Polynomial approximation of cumulative normal distribution function -/////////////////////////////////////////////////////////////////////////////// - -static double CND(double d) -{ - const double A1 = 0.31938153; - const double A2 = -0.356563782; - const double A3 = 1.781477937; - const double A4 = -1.821255978; - const double A5 = 1.330274429; - const double RSQRT2PI = 0.39894228040143267793994605993438; - - double K = 1.0 / (1.0 + 0.2316419 * fabs(d)); - - double cnd = RSQRT2PI * exp(-0.5 * d * d) * (K * (A1 + K * (A2 + K * (A3 + K * (A4 + K * A5))))); - - if (d > 0) - cnd = 1.0 - cnd; - - return cnd; -} - -/////////////////////////////////////////////////////////////////////////////// -// Black-Scholes formula for both call and put -/////////////////////////////////////////////////////////////////////////////// -static void BlackScholesBodyCPU(float &callResult, - float &putResult, - float Sf, // Stock price - float Xf, // Option strike - float Tf, // Option years - float Rf, // Riskless rate - float Vf // Volatility rate -) -{ - double S = Sf, X = Xf, T = Tf, R = Rf, V = Vf; - double sqrtT = sqrt(T); - double d1 = (log(S / X) + (R + 0.5 * V * V) * T) / (V * sqrtT); - double d2 = d1 - V * sqrtT; - double CNDD1 = CND(d1); - double CNDD2 = CND(d2); - - // Calculate Call and Put simultaneously - double expRT = exp(-R * T); - - callResult = (float)(S * CNDD1 - X * expRT * CNDD2); - putResult = (float)(X * expRT * (1.0 - CNDD2) - S * (1.0 - CNDD1)); -} - -//////////////////////////////////////////////////////////////////////////////// -// Process an array of optN options -//////////////////////////////////////////////////////////////////////////////// - -extern "C" void BlackScholesCPU(float *h_CallResult, - float *h_PutResult, - float *h_StockPrice, - float *h_OptionStrike, - float *h_OptionYears, - float Riskfree, - float Volatility, - int optN) -{ - for (int opt = 0; opt < optN; opt++) - BlackScholesBodyCPU(h_CallResult[opt], - h_PutResult[opt], - h_StockPrice[opt], - h_OptionStrike[opt], - h_OptionYears[opt], - Riskfree, - Volatility); -} diff --git a/cpp/5_Domain_Specific/BlackScholes_nvrtc/BlackScholes_kernel.cuh b/cpp/5_Domain_Specific/BlackScholes_nvrtc/BlackScholes_kernel.cuh deleted file mode 100644 index 8d67b7d2..00000000 --- a/cpp/5_Domain_Specific/BlackScholes_nvrtc/BlackScholes_kernel.cuh +++ /dev/null @@ -1,116 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/////////////////////////////////////////////////////////////////////////////// -// Polynomial approximation of cumulative normal distribution function -/////////////////////////////////////////////////////////////////////////////// - -__device__ inline float cndGPU(float d) -{ - const float A1 = 0.31938153f; - const float A2 = -0.356563782f; - const float A3 = 1.781477937f; - const float A4 = -1.821255978f; - const float A5 = 1.330274429f; - const float RSQRT2PI = 0.39894228040143267793994605993438f; - - float K = __fdividef(1.0f, (1.0f + 0.2316419f * fabsf(d))); - - float cnd = RSQRT2PI * __expf(-0.5f * d * d) * (K * (A1 + K * (A2 + K * (A3 + K * (A4 + K * A5))))); - - if (d > 0) - cnd = 1.0f - cnd; - - return cnd; -} - -/////////////////////////////////////////////////////////////////////////////// -// Black-Scholes formula for both call and put -/////////////////////////////////////////////////////////////////////////////// -__device__ inline void BlackScholesBodyGPU(float &CallResult, - float &PutResult, - float S, // Stock price - float X, // Option strike - float T, // Option years - float R, // Riskless rate - float V // Volatility rate -) -{ - float sqrtT, expRT; - float d1, d2, CNDD1, CNDD2; - - sqrtT = __fdividef(1.0F, rsqrtf(T)); - d1 = __fdividef(__logf(S / X) + (R + 0.5f * V * V) * T, V * sqrtT); - d2 = d1 - V * sqrtT; - - CNDD1 = cndGPU(d1); - CNDD2 = cndGPU(d2); - - // Calculate Call and Put simultaneously - expRT = __expf(-R * T); - CallResult = S * CNDD1 - X * expRT * CNDD2; - PutResult = X * expRT * (1.0f - CNDD2) - S * (1.0f - CNDD1); -} - -//////////////////////////////////////////////////////////////////////////////// -// Process an array of optN options on GPU -//////////////////////////////////////////////////////////////////////////////// -extern "C" __launch_bounds__(128) __global__ void BlackScholesGPU(float2 *__restrict d_CallResult, - float2 *__restrict d_PutResult, - float2 *__restrict d_StockPrice, - float2 *__restrict d_OptionStrike, - float2 *__restrict d_OptionYears, - float Riskfree, - float Volatility, - int optN) -{ - ////Thread index - const int opt = blockDim.x * blockIdx.x + threadIdx.x; - - // Calculating 2 options per thread to increase ILP (instruction level - // parallelism) - if (opt < (optN / 2)) { - float callResult1, callResult2; - float putResult1, putResult2; - BlackScholesBodyGPU(callResult1, - putResult1, - d_StockPrice[opt].x, - d_OptionStrike[opt].x, - d_OptionYears[opt].x, - Riskfree, - Volatility); - BlackScholesBodyGPU(callResult2, - putResult2, - d_StockPrice[opt].y, - d_OptionStrike[opt].y, - d_OptionYears[opt].y, - Riskfree, - Volatility); - d_CallResult[opt] = make_float2(callResult1, callResult2); - d_PutResult[opt] = make_float2(putResult1, putResult2); - } -} diff --git a/cpp/5_Domain_Specific/BlackScholes_nvrtc/CMakeLists.txt b/cpp/5_Domain_Specific/BlackScholes_nvrtc/CMakeLists.txt deleted file mode 100644 index eae3d403..00000000 --- a/cpp/5_Domain_Specific/BlackScholes_nvrtc/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(BlackScholes_nvrtc LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for BlackScholes_nvrtc -add_executable(BlackScholes_nvrtc BlackScholes.cpp BlackScholes_gold.cpp) - -target_compile_options(BlackScholes_nvrtc PRIVATE $<$:--extended-lambda>) - -target_compile_features(BlackScholes_nvrtc PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(BlackScholes_nvrtc PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_link_libraries(BlackScholes_nvrtc PRIVATE - CUDA::nvrtc - CUDA::cuda_driver -) - -# Copy kernel to the output directory -add_custom_command(TARGET BlackScholes_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/BlackScholes_kernel.cuh ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/BlackScholes_nvrtc/README.md b/cpp/5_Domain_Specific/BlackScholes_nvrtc/README.md deleted file mode 100644 index e719e0bc..00000000 --- a/cpp/5_Domain_Specific/BlackScholes_nvrtc/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# BlackScholes_nvrtc - Black-Scholes Option Pricing with libNVRTC - -## Description - -This sample evaluates fair call and put prices for a given set of European options by Black-Scholes formula, compiling the CUDA kernels involved at runtime using NVRTC. - -## Key Concepts - -Computational Finance, Runtime Compilation - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows, QNX - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuMemcpyDtoH, cuLaunchKernel, cuMemcpyHtoD, cuCtxSynchronize, cuMemAlloc, cuMemFree, cuModuleGetFunction - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaBlockSize, cudaGridSize - -## Dependencies needed to build/run -[NVRTC](../../../README.md#nvrtc) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/5_Domain_Specific/CMakeLists.txt b/cpp/5_Domain_Specific/CMakeLists.txt index 9ded8e5a..730c6eaf 100644 --- a/cpp/5_Domain_Specific/CMakeLists.txt +++ b/cpp/5_Domain_Specific/CMakeLists.txt @@ -1,5 +1,4 @@ add_subdirectory(BlackScholes) -add_subdirectory(BlackScholes_nvrtc) add_subdirectory(FDTD3d) add_subdirectory(HSOpticalFlow) add_subdirectory(Mandelbrot) @@ -10,7 +9,6 @@ add_subdirectory(SobolQRNG) add_subdirectory(bicubicTexture) add_subdirectory(bilateralFilter) add_subdirectory(binomialOptions) -add_subdirectory(binomialOptions_nvrtc) add_subdirectory(convolutionFFT2D) add_subdirectory(dwtHaar1D) add_subdirectory(dxtc) @@ -18,10 +16,8 @@ add_subdirectory(fastWalshTransform) add_subdirectory(fluidsGL) add_subdirectory(marchingCubes) add_subdirectory(nbody) -add_subdirectory(p2pBandwidthLatencyTest) add_subdirectory(postProcessGL) add_subdirectory(quasirandomGenerator) -add_subdirectory(quasirandomGenerator_nvrtc) add_subdirectory(recursiveGaussian) add_subdirectory(simpleD3D11) add_subdirectory(simpleD3D11Texture) diff --git a/cpp/5_Domain_Specific/FDTD3d/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/FDTD3d/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/FDTD3d/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/FDTD3d/.vscode/extensions.json b/cpp/5_Domain_Specific/FDTD3d/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/FDTD3d/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/FDTD3d/CMakeLists.txt b/cpp/5_Domain_Specific/FDTD3d/CMakeLists.txt index 1a1d50b2..90357df0 100644 --- a/cpp/5_Domain_Specific/FDTD3d/CMakeLists.txt +++ b/cpp/5_Domain_Specific/FDTD3d/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(FDTD3d LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for FDTD3d add_executable(FDTD3d src/FDTD3d.cpp src/FDTD3dGPU.cu src/FDTD3dReference.cpp) target_compile_options(FDTD3d PRIVATE $<$:--extended-lambda>) target_compile_features(FDTD3d PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(FDTD3d PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(FDTD3d PRIVATE inc ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/HSOpticalFlow/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/HSOpticalFlow/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/HSOpticalFlow/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/HSOpticalFlow/.vscode/extensions.json b/cpp/5_Domain_Specific/HSOpticalFlow/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/HSOpticalFlow/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/HSOpticalFlow/CMakeLists.txt b/cpp/5_Domain_Specific/HSOpticalFlow/CMakeLists.txt index b80b2466..acf9d5c1 100644 --- a/cpp/5_Domain_Specific/HSOpticalFlow/CMakeLists.txt +++ b/cpp/5_Domain_Specific/HSOpticalFlow/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(HSOpticalFlow LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for HSOpticalFlow add_executable(HSOpticalFlow flowCUDA.cu flowGold.cpp main.cpp) target_compile_options(HSOpticalFlow PRIVATE $<$:--extended-lambda>) target_compile_features(HSOpticalFlow PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(HSOpticalFlow PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(HSOpticalFlow PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -39,6 +31,5 @@ add_custom_command(TARGET HSOpticalFlow POST_BUILD ${CMAKE_CURRENT_BINARY_DIR}/data ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/Mandelbrot/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/Mandelbrot/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/Mandelbrot/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/Mandelbrot/.vscode/extensions.json b/cpp/5_Domain_Specific/Mandelbrot/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/Mandelbrot/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/Mandelbrot/CMakeLists.txt b/cpp/5_Domain_Specific/Mandelbrot/CMakeLists.txt index 4bfcc926..1039cd93 100644 --- a/cpp/5_Domain_Specific/Mandelbrot/CMakeLists.txt +++ b/cpp/5_Domain_Specific/Mandelbrot/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(Mandelbrot LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,49 +29,37 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for Mandelbrot add_executable(Mandelbrot Mandelbrot_cuda.cu Mandelbrot_gold.cpp Mandelbrot.cpp) - -target_compile_options(Mandelbrot PRIVATE $<$:--extended-lambda>) - -target_compile_features(Mandelbrot PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(Mandelbrot PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - + target_compile_options(Mandelbrot PRIVATE $<$:--extended-lambda>) + target_compile_features(Mandelbrot PRIVATE cxx_std_17 cuda_std_17) target_include_directories(Mandelbrot PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(Mandelbrot ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - # Copy data files to the output directory add_custom_command(TARGET Mandelbrot POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(Mandelbrot ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET Mandelbrot POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET Mandelbrot POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -83,14 +67,11 @@ target_compile_features(Mandelbrot PRIVATE cxx_std_17 cuda_std_17) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'Mandelbrot'") endif() else() message(STATUS "OpenGL not found - will not build sample 'Mandelbrot'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/MonteCarloMultiGPU/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/MonteCarloMultiGPU/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/MonteCarloMultiGPU/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/MonteCarloMultiGPU/.vscode/extensions.json b/cpp/5_Domain_Specific/MonteCarloMultiGPU/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/MonteCarloMultiGPU/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/MonteCarloMultiGPU/CMakeLists.txt b/cpp/5_Domain_Specific/MonteCarloMultiGPU/CMakeLists.txt index 1c8522c7..73c94489 100644 --- a/cpp/5_Domain_Specific/MonteCarloMultiGPU/CMakeLists.txt +++ b/cpp/5_Domain_Specific/MonteCarloMultiGPU/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(MonteCarloMultiGPU LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for MonteCarloMultiGPU add_executable(MonteCarloMultiGPU MonteCarlo_gold.cpp MonteCarlo_kernel.cu multithreading.cpp MonteCarloMultiGPU.cpp) target_compile_options(MonteCarloMultiGPU PRIVATE $<$:--extended-lambda>) target_compile_features(MonteCarloMultiGPU PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(MonteCarloMultiGPU PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(MonteCarloMultiGPU PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -37,6 +29,5 @@ target_link_libraries(MonteCarloMultiGPU PRIVATE CUDA::curand ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/NV12toBGRandResize/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/NV12toBGRandResize/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/NV12toBGRandResize/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/NV12toBGRandResize/.vscode/extensions.json b/cpp/5_Domain_Specific/NV12toBGRandResize/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/NV12toBGRandResize/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/NV12toBGRandResize/CMakeLists.txt b/cpp/5_Domain_Specific/NV12toBGRandResize/CMakeLists.txt index 765a82a6..b2dd44bb 100644 --- a/cpp/5_Domain_Specific/NV12toBGRandResize/CMakeLists.txt +++ b/cpp/5_Domain_Specific/NV12toBGRandResize/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(NV12toBGRandResize LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for NV12toBGRandResize add_executable(NV12toBGRandResize bgr_resize.cu nv12_resize.cu nv12_to_bgr_planar.cu resize_convert_main.cpp utils.cu) target_compile_options(NV12toBGRandResize PRIVATE $<$:--extended-lambda>) target_compile_features(NV12toBGRandResize PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(NV12toBGRandResize PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(NV12toBGRandResize PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -39,6 +31,5 @@ add_custom_command(TARGET NV12toBGRandResize POST_BUILD ${CMAKE_CURRENT_BINARY_DIR}/data ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/README.md b/cpp/5_Domain_Specific/README.md index b7809e86..6d90fa77 100644 --- a/cpp/5_Domain_Specific/README.md +++ b/cpp/5_Domain_Specific/README.md @@ -10,15 +10,9 @@ Bilateral filter is an edge-preserving non-linear smoothing filter that is imple ### [binomialOptions](./binomialOptions) This sample evaluates fair call price for a given set of European options under binomial model. -### [binomialOptions_nvrtc](./binomialOptions_nvrtc) -This sample evaluates fair call price for a given set of European options under binomial model. This sample makes use of NVRTC for Runtime Compilation. - ### [BlackScholes](./BlackScholes) This sample evaluates fair call and put prices for a given set of European options by Black-Scholes formula. -### [BlackScholes_nvrtc](./BlackScholes_nvrtc) -This sample evaluates fair call and put prices for a given set of European options by Black-Scholes formula, compiling the CUDA kernels involved at runtime using NVRTC. - ### [convolutionFFT2D](./convolutionFFT2D) This sample demonstrates how 2D convolutions with very large kernel sizes can be efficiently implemented using FFT transformations. @@ -59,18 +53,12 @@ This sample demonstrates efficient all-pairs simulation of a gravitational n-bod ### [NV12toBGRandResize](./NV12toBGRandResize) This code shows two ways to convert and resize NV12 frames to BGR 3 planars frames using CUDA in batch. Way-1, Convert NV12 Input to BGR @ Input Resolution-1, then Resize to Resolution#2. Way-2, resize NV12 Input to Resolution#2 then convert it to BGR Output. NVIDIA HW Decoder, both dGPU and Tegra, normally outputs NV12 pitch format frames. For the inference using TensorRT, the input frame needs to be BGR planar format with possibly different size. So, conversion and resizing from NV12 to BGR planar is usually required for the inference following decoding. This CUDA code provides a reference implementation for conversion and resizing. -### [p2pBandwidthLatencyTest](./p2pBandwidthLatencyTest) -This application demonstrates the CUDA Peer-To-Peer (P2P) data transfers between pairs of GPUs and computes latency and bandwidth. Tests on GPU pairs using P2P and without P2P are tested. - ### [postProcessGL](./postProcessGL) This sample shows how to post-process an image rendered in OpenGL using CUDA. ### [quasirandomGenerator](./quasirandomGenerator) This sample implements Niederreiter Quasirandom Sequence Generator and Inverse Cumulative Normal Distribution functions for the generation of Standard Normal Distributions. -### [quasirandomGenerator_nvrtc](./quasirandomGenerator_nvrtc) -This sample implements Niederreiter Quasirandom Sequence Generator and Inverse Cumulative Normal Distribution functions for the generation of Standard Normal Distributions, compiling the CUDA kernels involved at runtime using NVRTC. - ### [recursiveGaussian](./recursiveGaussian) This sample implements a Gaussian blur using Deriche's recursive method. The advantage of this method is that the execution time is independent of the filter width. diff --git a/cpp/5_Domain_Specific/SobelFilter/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/SobelFilter/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/SobelFilter/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/SobelFilter/.vscode/extensions.json b/cpp/5_Domain_Specific/SobelFilter/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/SobelFilter/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/SobelFilter/CMakeLists.txt b/cpp/5_Domain_Specific/SobelFilter/CMakeLists.txt index 31d1694f..bc8ba5e1 100644 --- a/cpp/5_Domain_Specific/SobelFilter/CMakeLists.txt +++ b/cpp/5_Domain_Specific/SobelFilter/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(SobelFilter LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,48 +29,36 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for SobelFilter add_executable(SobelFilter SobelFilter.cpp SobelFilter_kernels.cu) - target_compile_options(SobelFilter PRIVATE $<$:--extended-lambda>) - target_compile_features(SobelFilter PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(SobelFilter PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(SobelFilter PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(SobelFilter ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - add_custom_command(TARGET SobelFilter POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(SobelFilter ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET SobelFilter POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET SobelFilter POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -82,14 +66,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'SobelFilter'") endif() else() message(STATUS "OpenGL not found - will not build sample 'SobelFilter'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/SobolQRNG/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/SobolQRNG/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/SobolQRNG/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/SobolQRNG/.vscode/extensions.json b/cpp/5_Domain_Specific/SobolQRNG/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/SobolQRNG/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/SobolQRNG/CMakeLists.txt b/cpp/5_Domain_Specific/SobolQRNG/CMakeLists.txt index 341c4f2d..de01c2da 100644 --- a/cpp/5_Domain_Specific/SobolQRNG/CMakeLists.txt +++ b/cpp/5_Domain_Specific/SobolQRNG/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(SobolQRNG LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for SobolQRNG add_executable(SobolQRNG sobol_gold.cpp sobol_gpu.cu sobol_primitives.cpp sobol.cpp) target_compile_options(SobolQRNG PRIVATE $<$:--extended-lambda>) target_compile_features(SobolQRNG PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(SobolQRNG PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(SobolQRNG PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/bicubicTexture/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/bicubicTexture/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/bicubicTexture/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/bicubicTexture/.vscode/extensions.json b/cpp/5_Domain_Specific/bicubicTexture/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/bicubicTexture/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/bicubicTexture/CMakeLists.txt b/cpp/5_Domain_Specific/bicubicTexture/CMakeLists.txt index 4e4f375b..020e6ceb 100644 --- a/cpp/5_Domain_Specific/bicubicTexture/CMakeLists.txt +++ b/cpp/5_Domain_Specific/bicubicTexture/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(bicubicTexture LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,49 +29,37 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for bicubicTexture add_executable(bicubicTexture bicubicTexture.cpp bicubicTexture_cuda.cu) - - target_compile_options(bicubicTexture PRIVATE $<$:--extended-lambda>) - + target_compile_options(bicubicTexture PRIVATE $<$:--extended-lambda;--expt-relaxed-constexpr>) target_compile_features(bicubicTexture PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(bicubicTexture PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(bicubicTexture PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(bicubicTexture ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - # Copy data files to the output directory add_custom_command(TARGET bicubicTexture POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(bicubicTexture ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET bicubicTexture POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET bicubicTexture POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -83,14 +67,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'bicubicTexture'") endif() else() message(STATUS "OpenGL not found - will not build sample 'bicubicTexture'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/bilateralFilter/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/bilateralFilter/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/bilateralFilter/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/bilateralFilter/.vscode/extensions.json b/cpp/5_Domain_Specific/bilateralFilter/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/bilateralFilter/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/bilateralFilter/CMakeLists.txt b/cpp/5_Domain_Specific/bilateralFilter/CMakeLists.txt index 94a8b1ca..e56f9a6a 100644 --- a/cpp/5_Domain_Specific/bilateralFilter/CMakeLists.txt +++ b/cpp/5_Domain_Specific/bilateralFilter/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(bilateralFilter LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,49 +29,37 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for bilateralFilter add_executable(bilateralFilter bilateralFilter.cpp bilateralFilter_cpu.cpp bilateral_kernel.cu bmploader.cpp) - -target_compile_options(bilateralFilter PRIVATE $<$:--extended-lambda>) - -target_compile_features(bilateralFilter PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(bilateralFilter PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - + target_compile_options(bilateralFilter PRIVATE $<$:--extended-lambda>) + target_compile_features(bilateralFilter PRIVATE cxx_std_17 cuda_std_17) target_include_directories(bilateralFilter PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(bilateralFilter ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - # Copy data files to the output directory add_custom_command(TARGET bilateralFilter POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(bilateralFilter ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET bilateralFilter POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET bilateralFilter POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -83,15 +67,11 @@ target_compile_features(bilateralFilter PRIVATE cxx_std_17 cuda_std_17) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'bilateralFilter'") endif() else() message(STATUS "OpenGL not found - will not build sample 'bilateralFilter'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/binomialOptions/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/binomialOptions/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/binomialOptions/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/binomialOptions/.vscode/extensions.json b/cpp/5_Domain_Specific/binomialOptions/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/binomialOptions/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/binomialOptions/CMakeLists.txt b/cpp/5_Domain_Specific/binomialOptions/CMakeLists.txt index 63eaf820..f5640f6f 100644 --- a/cpp/5_Domain_Specific/binomialOptions/CMakeLists.txt +++ b/cpp/5_Domain_Specific/binomialOptions/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(binomialOptions LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for binomialOptions add_executable(binomialOptions binomialOptions.cpp binomialOptions_gold.cpp binomialOptions_kernel.cu) target_compile_options(binomialOptions PRIVATE $<$:--extended-lambda>) target_compile_features(binomialOptions PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(binomialOptions PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(binomialOptions PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/binomialOptions_nvrtc/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/binomialOptions_nvrtc/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/binomialOptions_nvrtc/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/binomialOptions_nvrtc/.vscode/extensions.json b/cpp/5_Domain_Specific/binomialOptions_nvrtc/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/binomialOptions_nvrtc/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/binomialOptions_nvrtc/CMakeLists.txt b/cpp/5_Domain_Specific/binomialOptions_nvrtc/CMakeLists.txt deleted file mode 100644 index dcde9f41..00000000 --- a/cpp/5_Domain_Specific/binomialOptions_nvrtc/CMakeLists.txt +++ /dev/null @@ -1,63 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(binomialOptions_nvrtc LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for binomialOptions_nvrtc -add_executable(binomialOptions_nvrtc binomialOptions.cpp binomialOptions_gold.cpp binomialOptions_gpu.cpp) - -target_compile_options(binomialOptions_nvrtc PRIVATE $<$:--extended-lambda>) - -target_compile_features(binomialOptions_nvrtc PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(binomialOptions_nvrtc PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_link_libraries(binomialOptions_nvrtc PRIVATE - CUDA::nvrtc - CUDA::cuda_driver -) - -# Copy kernel to the output directory -add_custom_command(TARGET binomialOptions_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/binomialOptions_kernel.cu ${CMAKE_CURRENT_BINARY_DIR} -) - -# Copy header to the output directory -add_custom_command(TARGET binomialOptions_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/common_gpu_header.h ${CMAKE_CURRENT_BINARY_DIR} -) - -# Copy header to the output directory -add_custom_command(TARGET binomialOptions_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/binomialOptions_common.h ${CMAKE_CURRENT_BINARY_DIR} -) - -# Copy header to the output directory -add_custom_command(TARGET binomialOptions_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/realtype.h ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/binomialOptions_nvrtc/README.md b/cpp/5_Domain_Specific/binomialOptions_nvrtc/README.md deleted file mode 100644 index 5e1ad8f4..00000000 --- a/cpp/5_Domain_Specific/binomialOptions_nvrtc/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# binomialOptions_nvrtc - Binomial Option Pricing with libNVRTC - -## Description - -This sample evaluates fair call price for a given set of European options under binomial model. This sample makes use of NVRTC for Runtime Compilation. - -## Key Concepts - -Computational Finance, Runtime Compilation - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows, QNX - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuMemcpyDtoH, cuLaunchKernel, cuMemcpyHtoD, cuModuleGetGlobal, cuCtxSynchronize, cuModuleGetFunction - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaBlockSize, cudaGridSize - -## Dependencies needed to build/run -[NVRTC](../../../README.md#nvrtc) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions.cpp b/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions.cpp deleted file mode 100644 index 6567e0e6..00000000 --- a/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions.cpp +++ /dev/null @@ -1,198 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -/* - * This sample evaluates fair call price for a - * given set of European options under binomial model. - * See supplied whitepaper for more explanations. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "binomialOptions_common.h" -#include "realtype.h" - -//////////////////////////////////////////////////////////////////////////////// -// Black-Scholes formula for binomial tree results validation -//////////////////////////////////////////////////////////////////////////////// - -extern "C" void BlackScholesCall(real &callResult, TOptionData optionData); - -//////////////////////////////////////////////////////////////////////////////// -// Process single option on CPU -// Note that CPU code is for correctness testing only and not for benchmarking. -//////////////////////////////////////////////////////////////////////////////// - -extern "C" void binomialOptionsCPU(real &callResult, TOptionData optionData); - -//////////////////////////////////////////////////////////////////////////////// -// Process an array of OptN options on GPU -//////////////////////////////////////////////////////////////////////////////// - -extern "C" void binomialOptionsGPU(real *callValue, TOptionData *optionData, int optN, int argc, char **argv); - -//////////////////////////////////////////////////////////////////////////////// -// Helper function, returning uniformly distributed -// random float in [low, high] range -//////////////////////////////////////////////////////////////////////////////// - -real randData(real low, real high) -{ - real t = (real)rand() / (real)RAND_MAX; - return ((real)1.0 - t) * low + t * high; -} - -//////////////////////////////////////////////////////////////////////////////// -// Main program -//////////////////////////////////////////////////////////////////////////////// - -int main(int argc, char **argv) -{ - printf("[%s] - Starting...\n", argv[0]); - - const int OPT_N = MAX_OPTIONS; - - TOptionData optionData[MAX_OPTIONS]; - real callValueBS[MAX_OPTIONS], callValueGPU[MAX_OPTIONS], callValueCPU[MAX_OPTIONS]; - - real sumDelta, sumRef, gpuTime, errorVal; - - StopWatchInterface *hTimer = NULL; - - int i; - - sdkCreateTimer(&hTimer); - - printf("Generating input data...\n"); - - // Generate options set - srand(123); - - for (i = 0; i < OPT_N; i++) { - optionData[i].S = randData(5.0f, 30.0f); - optionData[i].X = randData(1.0f, 100.0f); - optionData[i].T = randData(0.25f, 10.0f); - optionData[i].R = 0.06f; - optionData[i].V = 0.10f; - - BlackScholesCall(callValueBS[i], optionData[i]); - } - - printf("Running GPU binomial tree...\n"); - - sdkResetTimer(&hTimer); - sdkStartTimer(&hTimer); - - binomialOptionsGPU(callValueGPU, optionData, OPT_N, argc, argv); - - sdkStopTimer(&hTimer); - - gpuTime = sdkGetTimerValue(&hTimer); - - printf("Options count : %i \n", OPT_N); - printf("Time steps : %i \n", NUM_STEPS); - printf("binomialOptionsGPU() time: %f msec\n", gpuTime); - printf("Options per second : %f \n", OPT_N / (gpuTime * 0.001)); - - printf("Running CPU binomial tree...\n"); - - for (i = 0; i < OPT_N; i++) { - binomialOptionsCPU(callValueCPU[i], optionData[i]); - } - - printf("Comparing the results...\n"); - - sumDelta = 0; - sumRef = 0; - printf("GPU binomial vs. Black-Scholes\n"); - - for (i = 0; i < OPT_N; i++) { - sumDelta += fabs(callValueBS[i] - callValueGPU[i]); - sumRef += fabs(callValueBS[i]); - } - - if (sumRef > 1E-5) { - printf("L1 norm: %E\n", (double)(sumDelta / sumRef)); - } - else { - printf("Avg. diff: %E\n", (double)(sumDelta / (real)OPT_N)); - } - - printf("CPU binomial vs. Black-Scholes\n"); - sumDelta = 0; - sumRef = 0; - - for (i = 0; i < OPT_N; i++) { - sumDelta += fabs(callValueBS[i] - callValueCPU[i]); - sumRef += fabs(callValueBS[i]); - } - - if (sumRef > 1E-5) { - printf("L1 norm: %E\n", sumDelta / sumRef); - } - else { - printf("Avg. diff: %E\n", (double)(sumDelta / (real)OPT_N)); - } - - printf("CPU binomial vs. GPU binomial\n"); - sumDelta = 0; - sumRef = 0; - - for (i = 0; i < OPT_N; i++) { - sumDelta += fabs(callValueGPU[i] - callValueCPU[i]); - sumRef += callValueCPU[i]; - } - - if (sumRef > 1E-5) { - printf("L1 norm: %E\n", errorVal = sumDelta / sumRef); - } - else { - printf("Avg. diff: %E\n", (double)(sumDelta / (real)OPT_N)); - } - - printf("Shutting down...\n"); - - sdkDeleteTimer(&hTimer); - - printf("\nNOTE: The CUDA Samples are not meant for performance measurements. " - "Results may vary when GPU Boost is enabled.\n\n"); - - if (errorVal > 5e-4) { - printf("Test failed!\n"); - exit(EXIT_FAILURE); - } - - printf("Test passed\n"); - - exit(EXIT_SUCCESS); -} diff --git a/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_common.h b/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_common.h deleted file mode 100644 index 1b4d9dfe..00000000 --- a/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_common.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 BINOMIALOPTIONS_COMMON_H -#define BINOMIALOPTIONS_COMMON_H - -//////////////////////////////////////////////////////////////////////////////// -// Global types -//////////////////////////////////////////////////////////////////////////////// - -typedef struct -{ - float S; - float X; - float T; - float R; - float V; -} TOptionData; - -//////////////////////////////////////////////////////////////////////////////// -// Global parameters -//////////////////////////////////////////////////////////////////////////////// - -// Number of time steps -#define NUM_STEPS 2048 - -// Max option batch size -#define MAX_OPTIONS 1024 - -#endif diff --git a/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_gold.cpp b/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_gold.cpp deleted file mode 100644 index 934b70cd..00000000 --- a/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_gold.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include - -#include "binomialOptions_common.h" - -/////////////////////////////////////////////////////////////////////////////// -// Polynomial approximation of cumulative normal distribution function -/////////////////////////////////////////////////////////////////////////////// - -static double CND(double d) -{ - const double A1 = 0.31938153; - const double A2 = -0.356563782; - const double A3 = 1.781477937; - const double A4 = -1.821255978; - const double A5 = 1.330274429; - const double RSQRT2PI = 0.39894228040143267793994605993438; - - double K = 1.0 / (1.0 + 0.2316419 * fabs(d)); - - double cnd = RSQRT2PI * exp(-0.5 * d * d) * (K * (A1 + K * (A2 + K * (A3 + K * (A4 + K * A5))))); - - if (d > 0) - cnd = 1.0 - cnd; - - return cnd; -} - -extern "C" void BlackScholesCall(float &callResult, TOptionData optionData) -{ - double S = optionData.S; - double X = optionData.X; - double T = optionData.T; - double R = optionData.R; - double V = optionData.V; - double sqrtT = sqrt(T); - - double d1 = (log(S / X) + (R + 0.5 * V * V) * T) / (V * sqrtT); - double d2 = d1 - V * sqrtT; - - double CNDD1 = CND(d1); - double CNDD2 = CND(d2); - - // Calculate Call and Put simultaneously - double expRT = exp(-R * T); - - callResult = (float)(S * CNDD1 - X * expRT * CNDD2); -} - -//////////////////////////////////////////////////////////////////////////////// -// Process an array of OptN options on CPU -// Note that CPU code is for correctness testing only and not for benchmarking. -//////////////////////////////////////////////////////////////////////////////// - -static double expiryCallValue(double S, double X, double vDt, int i) -{ - double d = S * exp(vDt * (2.0 * i - NUM_STEPS)) - X; - return (d > 0) ? d : 0; -} - -extern "C" void binomialOptionsCPU(float &callResult, TOptionData optionData) -{ - static double Call[NUM_STEPS + 1]; - const double S = optionData.S; - const double X = optionData.X; - const double T = optionData.T; - const double R = optionData.R; - const double V = optionData.V; - - const double dt = T / (double)NUM_STEPS; - const double vDt = V * sqrt(dt); - const double rDt = R * dt; - - // Per-step interest and discount factors - const double If = exp(rDt); - const double Df = exp(-rDt); - - // Values and pseudoprobabilities of upward and downward moves - const double u = exp(vDt); - const double d = exp(-vDt); - const double pu = (If - d) / (u - d); - const double pd = 1.0 - pu; - const double puByDf = pu * Df; - const double pdByDf = pd * Df; - - /////////////////////////////////////////////////////////////////////// - // Compute values at expiration date: - // call option value at period end is V(T) = S(T) - X - // if S(T) is greater than X, or zero otherwise. - // The computation is similar for put options. - /////////////////////////////////////////////////////////////////////// - - for (int i = 0; i <= NUM_STEPS; i++) - Call[i] = expiryCallValue(S, X, vDt, i); - - //////////////////////////////////////////////////////////////////////// - // Walk backwards up binomial tree - //////////////////////////////////////////////////////////////////////// - - for (int i = NUM_STEPS; i > 0; i--) - for (int j = 0; j <= i - 1; j++) - Call[j] = puByDf * Call[j + 1] + pdByDf * Call[j]; - - callResult = (float)Call[0]; -} diff --git a/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_gpu.cpp b/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_gpu.cpp deleted file mode 100644 index 0fb12d13..00000000 --- a/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_gpu.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -//////////////////////////////////////////////////////////////////////////////// -// Global types and parameters -//////////////////////////////////////////////////////////////////////////////// - -#include -#include -#include - -// Other helpers -#include -#include - -// CUDA runtime -#include - -#include "binomialOptions_common.h" -#include "common_gpu_header.h" -#include "realtype.h" - - -// Preprocessed input option data -typedef struct -{ - real S; - real X; - real vDt; - real puByDf; - real pdByDf; - -} __TOptionData; - -static bool moduleLoaded = false; -char *cubin, *kernel_file; -size_t cubinSize; -CUmodule module; - -//////////////////////////////////////////////////////////////////////////////// -// Host-side interface to GPU binomialOptions -//////////////////////////////////////////////////////////////////////////////// - -extern "C" void binomialOptionsGPU(real *callValue, TOptionData *optionData, int optN, int argc, char **argv) -{ - if (!moduleLoaded) { - kernel_file = sdkFindFilePath("binomialOptions_kernel.cu", argv[0]); - compileFileToCUBIN(kernel_file, argc, argv, &cubin, &cubinSize, 0); - module = loadCUBIN(cubin, argc, argv); - moduleLoaded = true; - } - - __TOptionData h_OptionData[MAX_OPTIONS]; - - for (int i = 0; i < optN; i++) { - const real T = optionData[i].T; - const real R = optionData[i].R; - const real V = optionData[i].V; - - const real dt = T / (real)NUM_STEPS; - const real vDt = V * sqrt(dt); - const real rDt = R * dt; - // Per-step interest and discount factors - const real If = exp(rDt); - const real Df = exp(-rDt); - // Values and pseudoprobabilities of upward and downward moves - const real u = exp(vDt); - const real d = exp(-vDt); - const real pu = (If - d) / (u - d); - const real pd = (real)1.0 - pu; - const real puByDf = pu * Df; - const real pdByDf = pd * Df; - - h_OptionData[i].S = (real)optionData[i].S; - h_OptionData[i].X = (real)optionData[i].X; - h_OptionData[i].vDt = (real)vDt; - h_OptionData[i].puByDf = (real)puByDf; - h_OptionData[i].pdByDf = (real)pdByDf; - } - - CUfunction kernel_addr; - checkCudaErrors(cuModuleGetFunction(&kernel_addr, module, "binomialOptionsKernel")); - - CUdeviceptr d_OptionData; - checkCudaErrors(cuModuleGetGlobal(&d_OptionData, NULL, module, "d_OptionData")); - checkCudaErrors(cuMemcpyHtoD(d_OptionData, h_OptionData, optN * sizeof(__TOptionData))); - - dim3 cudaBlockSize(128, 1, 1); - dim3 cudaGridSize(optN, 1, 1); - - checkCudaErrors(cuLaunchKernel(kernel_addr, - cudaGridSize.x, - cudaGridSize.y, - cudaGridSize.z, /* grid dim */ - cudaBlockSize.x, - cudaBlockSize.y, - cudaBlockSize.z, /* block dim */ - 0, - 0, /* shared mem, stream */ - NULL, /* arguments */ - 0)); - - checkCudaErrors(cuCtxSynchronize()); - - CUdeviceptr d_CallValue; - checkCudaErrors(cuModuleGetGlobal(&d_CallValue, NULL, module, "d_CallValue")); - checkCudaErrors(cuMemcpyDtoH(callValue, d_CallValue, optN * sizeof(real))); -} diff --git a/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_kernel.cu b/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_kernel.cu deleted file mode 100644 index 9d50ca82..00000000 --- a/cpp/5_Domain_Specific/binomialOptions_nvrtc/binomialOptions_kernel.cu +++ /dev/null @@ -1,110 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include "binomialOptions_common.h" -#include "common_gpu_header.h" -#include "realtype.h" - -// Preprocessed input option data -typedef struct -{ - real S; - real X; - real vDt; - real puByDf; - real pdByDf; -} __TOptionData; -static __constant__ __TOptionData d_OptionData[MAX_OPTIONS]; -__device__ real d_CallValue[MAX_OPTIONS]; - -#define THREADBLOCK_SIZE 128 -#define ELEMS_PER_THREAD (NUM_STEPS / THREADBLOCK_SIZE) -#if NUM_STEPS % THREADBLOCK_SIZE -#error Bad constants -#endif - -//////////////////////////////////////////////////////////////////////////////// -// Overloaded shortcut functions for different precision modes -//////////////////////////////////////////////////////////////////////////////// - -#ifndef DOUBLE_PRECISION -__device__ inline float expiryCallValue(float S, float X, float vDt, int i) -{ - float d = S * __expf(vDt * (2.0f * i - NUM_STEPS)) - X; - return (d > 0.0F) ? d : 0.0F; -} - -#else -__device__ inline double expiryCallValue(double S, double X, double vDt, int i) -{ - double d = S * exp(vDt * (2.0 * i - NUM_STEPS)) - X; - return (d > 0.0) ? d : 0.0; -} -#endif - -//////////////////////////////////////////////////////////////////////////////// -// GPU kernel -//////////////////////////////////////////////////////////////////////////////// -extern "C" __global__ void binomialOptionsKernel() -{ - __shared__ real call_exchange[THREADBLOCK_SIZE + 1]; - - const int tid = threadIdx.x; - const real S = d_OptionData[blockIdx.x].S; - const real X = d_OptionData[blockIdx.x].X; - const real vDt = d_OptionData[blockIdx.x].vDt; - const real puByDf = d_OptionData[blockIdx.x].puByDf; - const real pdByDf = d_OptionData[blockIdx.x].pdByDf; - - real call[ELEMS_PER_THREAD + 1]; -#pragma unroll - for (int i = 0; i < ELEMS_PER_THREAD; ++i) - call[i] = expiryCallValue(S, X, vDt, tid * ELEMS_PER_THREAD + i); - - if (tid == 0) - call_exchange[THREADBLOCK_SIZE] = expiryCallValue(S, X, vDt, NUM_STEPS); - - int final_it = max(0, tid * ELEMS_PER_THREAD - 1); - -#pragma unroll 16 - for (int i = NUM_STEPS; i > 0; --i) { - call_exchange[tid] = call[0]; - __syncthreads(); - call[ELEMS_PER_THREAD] = call_exchange[tid + 1]; - __syncthreads(); - - if (i > final_it) { -#pragma unroll - for (int j = 0; j < ELEMS_PER_THREAD; ++j) - call[j] = puByDf * call[j + 1] + pdByDf * call[j]; - } - } - - if (tid == 0) { - d_CallValue[blockIdx.x] = call[0]; - } -} diff --git a/cpp/5_Domain_Specific/binomialOptions_nvrtc/common_gpu_header.h b/cpp/5_Domain_Specific/binomialOptions_nvrtc/common_gpu_header.h deleted file mode 100644 index 88dc2936..00000000 --- a/cpp/5_Domain_Specific/binomialOptions_nvrtc/common_gpu_header.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 1993-2015 NVIDIA Corporation. All rights reserved. - * - * Please refer to the NVIDIA end user license agreement (EULA) associated - * with this source code for terms and conditions that govern your use of - * this software. Any use, reproduction, disclosure, or distribution of - * this software and related documentation outside the terms of the EULA - * is strictly prohibited. - * - */ - -#if !defined(__COMMON_GPU_HEADER_H) -#define __COMMON_GPU_HEADER_H - -//////////////////////////////////////////////////////////////////////////////// -// Internal GPU-side constants and data structures -//////////////////////////////////////////////////////////////////////////////// - -#define TIME_STEPS 16 - -#define CACHE_DELTA (2 * TIME_STEPS) - -#define CACHE_SIZE (256) - -#define CACHE_STEP (CACHE_SIZE - CACHE_DELTA) - -#if NUM_STEPS % CACHE_DELTA -#error Bad constants -#endif - -#endif diff --git a/cpp/5_Domain_Specific/binomialOptions_nvrtc/realtype.h b/cpp/5_Domain_Specific/binomialOptions_nvrtc/realtype.h deleted file mode 100644 index 031d7b59..00000000 --- a/cpp/5_Domain_Specific/binomialOptions_nvrtc/realtype.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 REALTYPE_H -#define REALTYPE_H - -// To use double precision uncomment the macro DOUBLE_PRECISION below, default -// is single precision. -// #define DOUBLE_PRECISION - -#ifndef DOUBLE_PRECISION -typedef float real; -#else -typedef double real; -#endif - -#endif diff --git a/cpp/5_Domain_Specific/convolutionFFT2D/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/convolutionFFT2D/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/convolutionFFT2D/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/convolutionFFT2D/.vscode/extensions.json b/cpp/5_Domain_Specific/convolutionFFT2D/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/convolutionFFT2D/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/convolutionFFT2D/CMakeLists.txt b/cpp/5_Domain_Specific/convolutionFFT2D/CMakeLists.txt index 4e61664f..b1e073ae 100644 --- a/cpp/5_Domain_Specific/convolutionFFT2D/CMakeLists.txt +++ b/cpp/5_Domain_Specific/convolutionFFT2D/CMakeLists.txt @@ -1,34 +1,26 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(convolutionFFT2D LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for convolutionFFT2D add_executable(convolutionFFT2D convolutionFFT2D.cu convolutionFFT2D_gold.cpp main.cpp) target_compile_options(convolutionFFT2D PRIVATE $<$:--extended-lambda>) target_compile_features(convolutionFFT2D PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(convolutionFFT2D PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(convolutionFFT2D PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) @@ -37,6 +29,5 @@ target_link_libraries(convolutionFFT2D PUBLIC CUDA::cufft ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/dwtHaar1D/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/dwtHaar1D/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/dwtHaar1D/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/dwtHaar1D/.vscode/extensions.json b/cpp/5_Domain_Specific/dwtHaar1D/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/dwtHaar1D/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/dwtHaar1D/CMakeLists.txt b/cpp/5_Domain_Specific/dwtHaar1D/CMakeLists.txt index 0e1bfdbf..de79a959 100644 --- a/cpp/5_Domain_Specific/dwtHaar1D/CMakeLists.txt +++ b/cpp/5_Domain_Specific/dwtHaar1D/CMakeLists.txt @@ -1,40 +1,31 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(dwtHaar1D LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for dwtHaar1D add_executable(dwtHaar1D dwtHaar1D.cu) target_compile_options(dwtHaar1D PRIVATE $<$:--extended-lambda>) target_compile_features(dwtHaar1D PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(dwtHaar1D PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - add_custom_command(TARGET dwtHaar1D POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/dxtc/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/dxtc/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/dxtc/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/dxtc/.vscode/extensions.json b/cpp/5_Domain_Specific/dxtc/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/dxtc/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/dxtc/CMakeLists.txt b/cpp/5_Domain_Specific/dxtc/CMakeLists.txt index 90b336ba..6d224dd7 100644 --- a/cpp/5_Domain_Specific/dxtc/CMakeLists.txt +++ b/cpp/5_Domain_Specific/dxtc/CMakeLists.txt @@ -1,40 +1,31 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(dxtc LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for dxtc add_executable(dxtc dxtc.cu) target_compile_options(dxtc PRIVATE $<$:--extended-lambda>) target_compile_features(dxtc PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(dxtc PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - add_custom_command(TARGET dxtc POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/fastWalshTransform/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/fastWalshTransform/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/fastWalshTransform/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/fastWalshTransform/.vscode/extensions.json b/cpp/5_Domain_Specific/fastWalshTransform/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/fastWalshTransform/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/fastWalshTransform/CMakeLists.txt b/cpp/5_Domain_Specific/fastWalshTransform/CMakeLists.txt index d893e7a3..944cd26f 100644 --- a/cpp/5_Domain_Specific/fastWalshTransform/CMakeLists.txt +++ b/cpp/5_Domain_Specific/fastWalshTransform/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(fastWalshTransform LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for fastWalshTransform add_executable(fastWalshTransform fastWalshTransform.cu fastWalshTransform_gold.cpp) target_compile_options(fastWalshTransform PRIVATE $<$:--extended-lambda>) target_compile_features(fastWalshTransform PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(fastWalshTransform PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/fluidsGL/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/fluidsGL/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/fluidsGL/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/fluidsGL/.vscode/extensions.json b/cpp/5_Domain_Specific/fluidsGL/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/fluidsGL/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/fluidsGL/CMakeLists.txt b/cpp/5_Domain_Specific/fluidsGL/CMakeLists.txt index b9e70239..8e075a1d 100644 --- a/cpp/5_Domain_Specific/fluidsGL/CMakeLists.txt +++ b/cpp/5_Domain_Specific/fluidsGL/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(fluidsGL LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,50 +29,38 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for fluidsGL add_executable(fluidsGL fluidsGL_kernels.cu fluidsGL.cpp) - -target_compile_options(fluidsGL PRIVATE $<$:--extended-lambda>) - -target_compile_features(fluidsGL PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(fluidsGL PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - + target_compile_options(fluidsGL PRIVATE $<$:--extended-lambda>) + target_compile_features(fluidsGL PRIVATE cxx_std_17 cuda_std_17) target_include_directories(fluidsGL PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(fluidsGL ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} CUDA::cufft ) - # Copy data files to the output directory add_custom_command(TARGET fluidsGL POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(fluidsGL ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET fluidsGL POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET fluidsGL POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -84,14 +68,11 @@ target_compile_features(fluidsGL PRIVATE cxx_std_17 cuda_std_17) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'fluidsGL'") endif() else() message(STATUS "OpenGL not found - will not build sample 'fluidsGL'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/marchingCubes/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/marchingCubes/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/marchingCubes/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/marchingCubes/.vscode/extensions.json b/cpp/5_Domain_Specific/marchingCubes/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/marchingCubes/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/marchingCubes/CMakeLists.txt b/cpp/5_Domain_Specific/marchingCubes/CMakeLists.txt index 7970b60b..5a847258 100644 --- a/cpp/5_Domain_Specific/marchingCubes/CMakeLists.txt +++ b/cpp/5_Domain_Specific/marchingCubes/CMakeLists.txt @@ -1,90 +1,77 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(marchingCubes LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) set(PC_GLUT_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/../../../Common") set(PC_GLUT_LIBRARY_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/../../../Common/lib/x64") + # The GLEW library built on Windows on Arm system is named as glew32.lib/glew32.dll by default. + if(EXISTS "${PC_GLUT_LIBRARY_DIRS}/glew32.lib") + set(GLEW_LIB_NAME "glew32") + else() + set(GLEW_LIB_NAME "glew64") + endif() endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for marchingCubes add_executable(marchingCubes marchingCubes_kernel.cu marchingCubes.cpp) - -target_compile_options(marchingCubes PRIVATE $<$:--extended-lambda>) - -target_compile_features(marchingCubes PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(marchingCubes PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - + target_compile_options(marchingCubes PRIVATE $<$:--extended-lambda;--expt-relaxed-constexpr>) + target_compile_features(marchingCubes PRIVATE cxx_std_17 cuda_std_17) target_include_directories(marchingCubes PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(marchingCubes ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - # Copy data files to the output directory add_custom_command(TARGET marchingCubes POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(marchingCubes ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib - ${PC_GLUT_LIBRARY_DIRS}/glew64.lib + ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET marchingCubes POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET marchingCubes POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/glew64.dll + ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/${GLEW_LIB_NAME}.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'marchingCubes'") endif() else() message(STATUS "OpenGL not found - will not build sample 'marchingCubes'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/marchingCubes/marchingCubes.cpp b/cpp/5_Domain_Specific/marchingCubes/marchingCubes.cpp index c6bcb450..0438d88c 100644 --- a/cpp/5_Domain_Specific/marchingCubes/marchingCubes.cpp +++ b/cpp/5_Domain_Specific/marchingCubes/marchingCubes.cpp @@ -431,6 +431,9 @@ int main(int argc, char **argv) //////////////////////////////////////////////////////////////////////////////// void initMC(int argc, char **argv) { + // Enlarge the per-thread device stack: under -G the CUB warpspeed exclusive_scan is not inlined and its deep call chain overflows the default 1KB stack. + checkCudaErrors(cudaDeviceSetLimit(cudaLimitStackSize, 8192)); + // parse command line arguments int n; diff --git a/cpp/5_Domain_Specific/nbody/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/nbody/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/nbody/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/nbody/.vscode/extensions.json b/cpp/5_Domain_Specific/nbody/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/nbody/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/nbody/CMakeLists.txt b/cpp/5_Domain_Specific/nbody/CMakeLists.txt index e8ff90a3..d09c43cd 100644 --- a/cpp/5_Domain_Specific/nbody/CMakeLists.txt +++ b/cpp/5_Domain_Specific/nbody/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(nbody LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,42 +29,31 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for nbody add_executable(nbody bodysystemcuda.cu render_particles.cpp nbody.cpp) - target_compile_options(nbody PRIVATE $<$:--extended-lambda>) - target_compile_features(nbody PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(nbody PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(nbody PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(nbody ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - if(WIN32) target_link_libraries(nbody ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET nbody POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET nbody POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -76,14 +61,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'nbody'") endif() else() message(STATUS "OpenGL not found - will not build sample 'nbody'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/.vscode/extensions.json b/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/CMakeLists.txt b/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/CMakeLists.txt deleted file mode 100644 index 0f60b103..00000000 --- a/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(p2pBandwidthLatencyTest LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for p2pBandwidthLatencyTest -add_executable(p2pBandwidthLatencyTest p2pBandwidthLatencyTest.cu) - -target_compile_options(p2pBandwidthLatencyTest PRIVATE $<$:--extended-lambda>) - -target_compile_features(p2pBandwidthLatencyTest PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(p2pBandwidthLatencyTest PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/README.md b/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/README.md deleted file mode 100644 index 1e5ef8c1..00000000 --- a/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# p2pBandwidthLatencyTest - Peer-to-Peer Bandwidth Latency Test with Multi-GPUs - -## Description - -This application demonstrates the CUDA Peer-To-Peer (P2P) data transfers between pairs of GPUs and computes latency and bandwidth. Tests on GPU pairs using P2P and without P2P are tested. - -## Key Concepts - -Performance Strategies, Asynchronous Data Transfers, Unified Virtual Address Space, Peer to Peer Data Transfers, Multi-GPU - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows - -## Supported CPU Architecture - -x86_64, armv7l - -## CUDA APIs involved - -### [CUDA Runtime API](http://docs.nvidia.com/cuda/cuda-runtime-api/index.html) -cudaSetDevice, cudaEventDestroy, cudaOccupancyMaxPotentialBlockSize, cudaCheckError, cudaFreeHost, cudaGetDeviceCount, cudaDeviceCanAccessPeer, cudaStreamCreateWithFlags, cudaStreamDestroy, cudaGetLastError, cudaMemset, cudaStreamWaitEvent, cudaEventElapsedTime, cudaEventCreate, cudaHostAlloc, cudaFree, cudaGetErrorString, cudaMemcpyPeerAsync, cudaDeviceDisablePeerAccess, cudaEventRecord, cudaStreamSynchronize, cudaDeviceEnablePeerAccess, cudaMalloc, cudaGetDeviceProperties - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. - -## References (for more details) diff --git a/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/p2pBandwidthLatencyTest.cu b/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/p2pBandwidthLatencyTest.cu deleted file mode 100644 index 0c642fcd..00000000 --- a/cpp/5_Domain_Specific/p2pBandwidthLatencyTest/p2pBandwidthLatencyTest.cu +++ /dev/null @@ -1,836 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include -#include -#include - -using namespace std; - -const char *sSampleName = "P2P (Peer-to-Peer) GPU Bandwidth Latency Test"; - -typedef enum { - P2P_WRITE = 0, - P2P_READ = 1, -} P2PDataTransfer; - -typedef enum { - CE = 0, - SM = 1, -} P2PEngine; - -P2PEngine p2p_mechanism = CE; // By default use Copy Engine - -// Macro for checking cuda errors following a cuda launch or api call -#define cudaCheckError() \ - { \ - cudaError_t e = cudaGetLastError(); \ - if (e != cudaSuccess) { \ - printf("Cuda failure %s:%d: '%s'\n", __FILE__, __LINE__, cudaGetErrorString(e)); \ - exit(EXIT_FAILURE); \ - } \ - } -__global__ void delay(volatile int *flag, unsigned long long timeout_clocks = 10000000) -{ - // Wait until the application notifies us that it has completed queuing up the - // experiment, or timeout and exit, allowing the application to make progress - long long int start_clock, sample_clock; - start_clock = clock64(); - - while (!*flag) { - sample_clock = clock64(); - - if (sample_clock - start_clock > timeout_clocks) { - break; - } - } -} - -// This kernel is for demonstration purposes only, not a performant kernel for -// p2p transfers. -__global__ void copyp2p(int4 *__restrict__ dest, int4 const *__restrict__ src, size_t num_elems) -{ - size_t globalId = blockIdx.x * blockDim.x + threadIdx.x; - size_t gridSize = blockDim.x * gridDim.x; - -#pragma unroll(5) - for (size_t i = globalId; i < num_elems; i += gridSize) { - dest[i] = src[i]; - } -} - -/////////////////////////////////////////////////////////////////////////// -// Print help screen -/////////////////////////////////////////////////////////////////////////// -void printHelp(void) -{ - printf("Usage: p2pBandwidthLatencyTest [OPTION]...\n"); - printf("Tests bandwidth/latency of GPU pairs using P2P and without P2P\n"); - printf("\n"); - - printf("Options:\n"); - printf("--help\t\tDisplay this help menu\n"); - printf("--p2p_read\tUse P2P reads for data transfers between GPU pairs and show " - "corresponding results.\n \t\tDefault used is P2P write operation.\n"); - printf("--sm_copy Use SM intiated p2p transfers instead of Copy Engine\n"); - printf("--numElems= Number of integer elements to be used in p2p copy.\n"); -} - -/////////////////////////////////////////////////////////////////////////// -// Detect if cudaMemcpyPeerAsync will automatically fall back to -// host-staged copies when P2P is disabled. -// -// We probe a single representative pair (device 0 -> device 1). -// On a given system, confidential-computing (CC) and security -// policies are uniform across GPUs, so if this pair is blocked -// with cudaErrorNotSupported in P2P-off mode, it is reasonable -// to assume all cross-GPU pairs behave the same. -// -// For a production application that must handle heterogeneous -// environments, users may want to probe all device pairs. -/////////////////////////////////////////////////////////////////////////// -bool detectFallback(int numGPUs) -{ - if (numGPUs <= 1) - return false; - - cudaSetDevice(0); - int *tmp0 = nullptr, *tmp1 = nullptr; - cudaStream_t s; - cudaStreamCreateWithFlags(&s, cudaStreamNonBlocking); - - size_t testElems = 1; - cudaMalloc(&tmp0, testElems * sizeof(int)); - cudaSetDevice(1); - cudaMalloc(&tmp1, testElems * sizeof(int)); - cudaCheckError(); - - // Explicitly ensure P2P is disabled for this test - // (Clear any pre-existing P2P access if it happens to be enabled) - cudaSetDevice(0); - cudaDeviceDisablePeerAccess(1); - cudaGetLastError(); // Clear error if peer access was not enabled - - cudaSetDevice(1); - cudaDeviceDisablePeerAccess(0); - cudaGetLastError(); // Clear error if peer access was not enabled - - bool needsFallback = false; - cudaError_t testErr = cudaMemcpyPeerAsync(tmp1, 1, tmp0, 0, testElems * sizeof(int), s); - - if (testErr == cudaErrorPeerAccessNotEnabled || testErr == cudaErrorNotSupported) { - needsFallback = true; - printf("Note: cudaMemcpyPeerAsync reported '%s' - will use host-mediated copy when P2P is disabled\n", - cudaGetErrorString(testErr)); - cudaGetLastError(); - } - - cudaStreamSynchronize(s); - cudaFree(tmp0); - cudaFree(tmp1); - cudaStreamDestroy(s); - cudaCheckError(); - - return needsFallback; -} - -void checkP2Paccess(int numGPUs) -{ - for (int i = 0; i < numGPUs; i++) { - cudaSetDevice(i); - cudaCheckError(); - - for (int j = 0; j < numGPUs; j++) { - int access; - if (i != j) { - cudaDeviceCanAccessPeer(&access, i, j); - cudaCheckError(); - printf("Device=%d %s Access Peer Device=%d\n", i, access ? "CAN" : "CANNOT", j); - } - } - } - printf("\n***NOTE: In case a device doesn't have P2P access to other one, it " - "falls back to normal memcopy procedure.\nSo you can see lesser " - "Bandwidth (GB/s) and unstable Latency (us) in those cases.\n\n"); -} - -void performP2PCopy(int *dest, - int destDevice, - int *src, - int srcDevice, - int num_elems, - int repeat, - bool p2paccess, - cudaStream_t streamToRun, - bool useFallback, - int *hostBuffer) -{ - int blockSize = 0; - int numBlocks = 0; - - cudaOccupancyMaxPotentialBlockSize(&numBlocks, &blockSize, copyp2p); - cudaCheckError(); - - if (p2p_mechanism == SM && p2paccess) { - for (int r = 0; r < repeat; r++) { - copyp2p<<>>((int4 *)dest, (int4 *)src, num_elems / 4); - } - cudaCheckError(); - } - else if (useFallback && srcDevice != destDevice) { - // Use host-mediated copy for cross-GPU transfers when cudaMemcpyPeerAsync is not supported - for (int r = 0; r < repeat; r++) { - cudaMemcpyAsync(hostBuffer, src, sizeof(int) * num_elems, cudaMemcpyDeviceToHost, streamToRun); - cudaMemcpyAsync(dest, hostBuffer, sizeof(int) * num_elems, cudaMemcpyHostToDevice, streamToRun); - } - cudaCheckError(); - } - else if (useFallback && srcDevice == destDevice) { - // Same device copy - for (int r = 0; r < repeat; r++) { - cudaMemcpyAsync(dest, src, sizeof(int) * num_elems, cudaMemcpyDeviceToDevice, streamToRun); - } - cudaCheckError(); - } - else { - // Use cudaMemcpyPeerAsync - for (int r = 0; r < repeat; r++) { - cudaMemcpyPeerAsync(dest, destDevice, src, srcDevice, sizeof(int) * num_elems, streamToRun); - } - cudaCheckError(); - } -} - -void outputBandwidthMatrix(int numElems, int numGPUs, bool p2p, P2PDataTransfer p2p_method, bool needsFallback) -{ - int repeat = 5; - volatile int *flag = NULL; - vector buffers(numGPUs); - vector buffersD2D(numGPUs); // buffer for D2D, that is, intra-GPU copy - vector start(numGPUs); - vector stop(numGPUs); - vector stream(numGPUs); - - cudaHostAlloc((void **)&flag, sizeof(*flag), cudaHostAllocPortable); - cudaCheckError(); - - for (int d = 0; d < numGPUs; d++) { - cudaSetDevice(d); - cudaStreamCreateWithFlags(&stream[d], cudaStreamNonBlocking); - cudaMalloc(&buffers[d], numElems * sizeof(int)); - cudaCheckError(); - cudaMemset(buffers[d], 0, numElems * sizeof(int)); - cudaCheckError(); - cudaMalloc(&buffersD2D[d], numElems * sizeof(int)); - cudaCheckError(); - cudaMemset(buffersD2D[d], 0, numElems * sizeof(int)); - cudaCheckError(); - cudaEventCreate(&start[d]); - cudaCheckError(); - cudaEventCreate(&stop[d]); - cudaCheckError(); - } - - // Decide if fallback is needed based on global detection result and current test scenario - bool useFallback = (!p2p && needsFallback); - int *hostBuffer = nullptr; - - if (useFallback) { - // Allocate hostBuffer for this function's numElems - cudaHostAlloc((void **)&hostBuffer, sizeof(int) * numElems, cudaHostAllocDefault); - cudaCheckError(); - } - - vector bandwidthMatrix(numGPUs * numGPUs); - - for (int i = 0; i < numGPUs; i++) { - cudaSetDevice(i); - - for (int j = 0; j < numGPUs; j++) { - int access = 0; - if (p2p) { - cudaDeviceCanAccessPeer(&access, i, j); - if (access) { - cudaDeviceEnablePeerAccess(j, 0); - cudaCheckError(); - cudaSetDevice(j); - cudaCheckError(); - cudaDeviceEnablePeerAccess(i, 0); - cudaCheckError(); - cudaSetDevice(i); - cudaCheckError(); - } - } - - cudaStreamSynchronize(stream[i]); - cudaCheckError(); - - // Block the stream until all the work is queued up - // DANGER! - cudaMemcpy*Async may infinitely block waiting for - // room to push the operation, so keep the number of repeatitions - // relatively low. Higher repeatitions will cause the delay kernel - // to timeout and lead to unstable results. - *flag = 0; - delay<<<1, 1, 0, stream[i]>>>(flag); - cudaCheckError(); - cudaEventRecord(start[i], stream[i]); - cudaCheckError(); - - if (i == j) { - // Perform intra-GPU, D2D copies - performP2PCopy( - buffers[i], i, buffersD2D[i], i, numElems, repeat, access, stream[i], useFallback, hostBuffer); - } - else { - if (p2p_method == P2P_WRITE) { - performP2PCopy( - buffers[j], j, buffers[i], i, numElems, repeat, access, stream[i], useFallback, hostBuffer); - } - else { - performP2PCopy( - buffers[i], i, buffers[j], j, numElems, repeat, access, stream[i], useFallback, hostBuffer); - } - } - cudaCheckError(); - - cudaEventRecord(stop[i], stream[i]); - cudaCheckError(); - - // Release the queued events - *flag = 1; - cudaStreamSynchronize(stream[i]); - cudaCheckError(); - - float time_ms; - cudaEventElapsedTime(&time_ms, start[i], stop[i]); - double time_s = time_ms / 1e3; - - double gb = numElems * sizeof(int) * repeat / (double)1e9; - if (i == j) { - gb *= 2; // must count both the read and the write here - } - bandwidthMatrix[i * numGPUs + j] = gb / time_s; - if (p2p && access) { - cudaDeviceDisablePeerAccess(j); - cudaSetDevice(j); - cudaDeviceDisablePeerAccess(i); - cudaSetDevice(i); - cudaCheckError(); - } - } - } - - printf(" D\\D"); - - for (int j = 0; j < numGPUs; j++) { - printf("%6d ", j); - } - - printf("\n"); - - for (int i = 0; i < numGPUs; i++) { - printf("%6d ", i); - - for (int j = 0; j < numGPUs; j++) { - printf("%6.02f ", bandwidthMatrix[i * numGPUs + j]); - } - - printf("\n"); - } - - for (int d = 0; d < numGPUs; d++) { - cudaSetDevice(d); - cudaFree(buffers[d]); - cudaFree(buffersD2D[d]); - cudaCheckError(); - cudaEventDestroy(start[d]); - cudaCheckError(); - cudaEventDestroy(stop[d]); - cudaCheckError(); - cudaStreamDestroy(stream[d]); - cudaCheckError(); - } - - if (hostBuffer) { - cudaFreeHost(hostBuffer); - cudaCheckError(); - } - - cudaFreeHost((void *)flag); - cudaCheckError(); -} - -void outputBidirectionalBandwidthMatrix(int numElems, int numGPUs, bool p2p, bool needsFallback) -{ - int repeat = 5; - volatile int *flag = NULL; - vector buffers(numGPUs); - vector buffersD2D(numGPUs); - vector start(numGPUs); - vector stop(numGPUs); - vector stream0(numGPUs); - vector stream1(numGPUs); - - cudaHostAlloc((void **)&flag, sizeof(*flag), cudaHostAllocPortable); - cudaCheckError(); - - for (int d = 0; d < numGPUs; d++) { - cudaSetDevice(d); - cudaMalloc(&buffers[d], numElems * sizeof(int)); - cudaMemset(buffers[d], 0, numElems * sizeof(int)); - cudaMalloc(&buffersD2D[d], numElems * sizeof(int)); - cudaMemset(buffersD2D[d], 0, numElems * sizeof(int)); - cudaCheckError(); - cudaEventCreate(&start[d]); - cudaCheckError(); - cudaEventCreate(&stop[d]); - cudaCheckError(); - cudaStreamCreateWithFlags(&stream0[d], cudaStreamNonBlocking); - cudaCheckError(); - cudaStreamCreateWithFlags(&stream1[d], cudaStreamNonBlocking); - cudaCheckError(); - } - - // Decide if fallback is needed based on global detection result and current test scenario - bool useFallback = (!p2p && needsFallback); - int *hostBuffer = nullptr; - - if (useFallback) { - // Allocate hostBuffer for this function's numElems - cudaHostAlloc((void **)&hostBuffer, sizeof(int) * numElems, cudaHostAllocDefault); - cudaCheckError(); - } - - vector bandwidthMatrix(numGPUs * numGPUs); - - for (int i = 0; i < numGPUs; i++) { - cudaSetDevice(i); - - for (int j = 0; j < numGPUs; j++) { - int access = 0; - if (p2p) { - cudaDeviceCanAccessPeer(&access, i, j); - if (access) { - cudaSetDevice(i); - cudaDeviceEnablePeerAccess(j, 0); - cudaCheckError(); - cudaSetDevice(j); - cudaDeviceEnablePeerAccess(i, 0); - cudaCheckError(); - } - } - - cudaSetDevice(i); - cudaStreamSynchronize(stream0[i]); - cudaStreamSynchronize(stream1[j]); - cudaCheckError(); - - // Block the stream until all the work is queued up - // DANGER! - cudaMemcpy*Async may infinitely block waiting for - // room to push the operation, so keep the number of repeatitions - // relatively low. Higher repeatitions will cause the delay kernel - // to timeout and lead to unstable results. - *flag = 0; - cudaSetDevice(i); - // No need to block stream1 since it'll be blocked on stream0's event - delay<<<1, 1, 0, stream0[i]>>>(flag); - cudaCheckError(); - - // Force stream1 not to start until stream0 does, in order to ensure - // the events on stream0 fully encompass the time needed for all - // operations - cudaEventRecord(start[i], stream0[i]); - cudaStreamWaitEvent(stream1[j], start[i], 0); - - if (i == j) { - // For intra-GPU perform 2 memcopies buffersD2D <-> buffers - performP2PCopy( - buffers[i], i, buffersD2D[i], i, numElems, repeat, access, stream0[i], useFallback, hostBuffer); - performP2PCopy( - buffersD2D[i], i, buffers[i], i, numElems, repeat, access, stream1[i], useFallback, hostBuffer); - } - else { - if (access && p2p_mechanism == SM) { - cudaSetDevice(j); - } - performP2PCopy( - buffers[i], i, buffers[j], j, numElems, repeat, access, stream1[j], useFallback, hostBuffer); - if (access && p2p_mechanism == SM) { - cudaSetDevice(i); - } - performP2PCopy( - buffers[j], j, buffers[i], i, numElems, repeat, access, stream0[i], useFallback, hostBuffer); - } - - // Notify stream0 that stream1 is complete and record the time of - // the total transaction - cudaEventRecord(stop[j], stream1[j]); - cudaStreamWaitEvent(stream0[i], stop[j], 0); - cudaEventRecord(stop[i], stream0[i]); - - // Release the queued operations - *flag = 1; - cudaStreamSynchronize(stream0[i]); - cudaStreamSynchronize(stream1[j]); - cudaCheckError(); - - float time_ms; - cudaEventElapsedTime(&time_ms, start[i], stop[i]); - double time_s = time_ms / 1e3; - - double gb = 2.0 * numElems * sizeof(int) * repeat / (double)1e9; - if (i == j) { - gb *= 2; // must count both the read and the write here - } - bandwidthMatrix[i * numGPUs + j] = gb / time_s; - if (p2p && access) { - cudaSetDevice(i); - cudaDeviceDisablePeerAccess(j); - cudaSetDevice(j); - cudaDeviceDisablePeerAccess(i); - } - } - } - - printf(" D\\D"); - - for (int j = 0; j < numGPUs; j++) { - printf("%6d ", j); - } - - printf("\n"); - - for (int i = 0; i < numGPUs; i++) { - printf("%6d ", i); - - for (int j = 0; j < numGPUs; j++) { - printf("%6.02f ", bandwidthMatrix[i * numGPUs + j]); - } - - printf("\n"); - } - - for (int d = 0; d < numGPUs; d++) { - cudaSetDevice(d); - cudaFree(buffers[d]); - cudaFree(buffersD2D[d]); - cudaCheckError(); - cudaEventDestroy(start[d]); - cudaCheckError(); - cudaEventDestroy(stop[d]); - cudaCheckError(); - cudaStreamDestroy(stream0[d]); - cudaCheckError(); - cudaStreamDestroy(stream1[d]); - cudaCheckError(); - } - - if (hostBuffer) { - cudaFreeHost(hostBuffer); - cudaCheckError(); - } - - cudaFreeHost((void *)flag); - cudaCheckError(); -} - -void outputLatencyMatrix(int numGPUs, bool p2p, P2PDataTransfer p2p_method, bool needsFallback) -{ - int repeat = 100; - int numElems = 4; // perform 1-int4 transfer. - volatile int *flag = NULL; - StopWatchInterface *stopWatch = NULL; - vector buffers(numGPUs); - vector buffersD2D(numGPUs); // buffer for D2D, that is, intra-GPU copy - vector stream(numGPUs); - vector start(numGPUs); - vector stop(numGPUs); - - cudaHostAlloc((void **)&flag, sizeof(*flag), cudaHostAllocPortable); - cudaCheckError(); - - if (!sdkCreateTimer(&stopWatch)) { - printf("Failed to create stop watch\n"); - exit(EXIT_FAILURE); - } - sdkStartTimer(&stopWatch); - - for (int d = 0; d < numGPUs; d++) { - cudaSetDevice(d); - cudaStreamCreateWithFlags(&stream[d], cudaStreamNonBlocking); - cudaMalloc(&buffers[d], sizeof(int) * numElems); - cudaMemset(buffers[d], 0, sizeof(int) * numElems); - cudaMalloc(&buffersD2D[d], sizeof(int) * numElems); - cudaMemset(buffersD2D[d], 0, sizeof(int) * numElems); - cudaCheckError(); - cudaEventCreate(&start[d]); - cudaCheckError(); - cudaEventCreate(&stop[d]); - cudaCheckError(); - } - - // Decide if fallback is needed based on global detection result and current test scenario - bool useFallback = (!p2p && needsFallback); - int *hostBuffer = nullptr; - - if (useFallback) { - // Allocate hostBuffer for this function's numElems - cudaHostAlloc((void **)&hostBuffer, sizeof(int) * numElems, cudaHostAllocDefault); - cudaCheckError(); - } - - vector gpuLatencyMatrix(numGPUs * numGPUs); - vector cpuLatencyMatrix(numGPUs * numGPUs); - - for (int i = 0; i < numGPUs; i++) { - cudaSetDevice(i); - - for (int j = 0; j < numGPUs; j++) { - int access = 0; - if (p2p) { - cudaDeviceCanAccessPeer(&access, i, j); - if (access) { - cudaDeviceEnablePeerAccess(j, 0); - cudaCheckError(); - cudaSetDevice(j); - cudaDeviceEnablePeerAccess(i, 0); - cudaSetDevice(i); - cudaCheckError(); - } - } - cudaStreamSynchronize(stream[i]); - cudaCheckError(); - - // Block the stream until all the work is queued up - // DANGER! - cudaMemcpy*Async may infinitely block waiting for - // room to push the operation, so keep the number of repeatitions - // relatively low. Higher repeatitions will cause the delay kernel - // to timeout and lead to unstable results. - *flag = 0; - delay<<<1, 1, 0, stream[i]>>>(flag); - cudaCheckError(); - cudaEventRecord(start[i], stream[i]); - - sdkResetTimer(&stopWatch); - if (i == j) { - // Perform intra-GPU, D2D copies - performP2PCopy( - buffers[i], i, buffersD2D[i], i, numElems, repeat, access, stream[i], useFallback, hostBuffer); - } - else { - if (p2p_method == P2P_WRITE) { - performP2PCopy( - buffers[j], j, buffers[i], i, numElems, repeat, access, stream[i], useFallback, hostBuffer); - } - else { - performP2PCopy( - buffers[i], i, buffers[j], j, numElems, repeat, access, stream[i], useFallback, hostBuffer); - } - } - float cpu_time_ms = sdkGetTimerValue(&stopWatch); - - cudaEventRecord(stop[i], stream[i]); - // Now that the work has been queued up, release the stream - *flag = 1; - cudaStreamSynchronize(stream[i]); - cudaCheckError(); - - float gpu_time_ms; - cudaEventElapsedTime(&gpu_time_ms, start[i], stop[i]); - - gpuLatencyMatrix[i * numGPUs + j] = gpu_time_ms * 1e3 / repeat; - cpuLatencyMatrix[i * numGPUs + j] = cpu_time_ms * 1e3 / repeat; - if (p2p && access) { - cudaDeviceDisablePeerAccess(j); - cudaSetDevice(j); - cudaDeviceDisablePeerAccess(i); - cudaSetDevice(i); - cudaCheckError(); - } - } - } - - printf(" GPU"); - - for (int j = 0; j < numGPUs; j++) { - printf("%6d ", j); - } - - printf("\n"); - - for (int i = 0; i < numGPUs; i++) { - printf("%6d ", i); - - for (int j = 0; j < numGPUs; j++) { - printf("%6.02f ", gpuLatencyMatrix[i * numGPUs + j]); - } - - printf("\n"); - } - - printf("\n CPU"); - - for (int j = 0; j < numGPUs; j++) { - printf("%6d ", j); - } - - printf("\n"); - - for (int i = 0; i < numGPUs; i++) { - printf("%6d ", i); - - for (int j = 0; j < numGPUs; j++) { - printf("%6.02f ", cpuLatencyMatrix[i * numGPUs + j]); - } - - printf("\n"); - } - - for (int d = 0; d < numGPUs; d++) { - cudaSetDevice(d); - cudaFree(buffers[d]); - cudaFree(buffersD2D[d]); - cudaCheckError(); - cudaEventDestroy(start[d]); - cudaCheckError(); - cudaEventDestroy(stop[d]); - cudaCheckError(); - cudaStreamDestroy(stream[d]); - cudaCheckError(); - } - - sdkDeleteTimer(&stopWatch); - - if (hostBuffer) { - cudaFreeHost(hostBuffer); - cudaCheckError(); - } - - cudaFreeHost((void *)flag); - cudaCheckError(); -} - -int main(int argc, char **argv) -{ - int numGPUs, numElems = 40000000; - P2PDataTransfer p2p_method = P2P_WRITE; - - cudaGetDeviceCount(&numGPUs); - cudaCheckError(); - - // process command line args - if (checkCmdLineFlag(argc, (const char **)argv, "help")) { - printHelp(); - return 0; - } - - if (checkCmdLineFlag(argc, (const char **)argv, "p2p_read")) { - p2p_method = P2P_READ; - } - - if (checkCmdLineFlag(argc, (const char **)argv, "sm_copy")) { - p2p_mechanism = SM; - } - - // number of elements of int to be used in copy. - if (checkCmdLineFlag(argc, (const char **)argv, "numElems")) { - numElems = getCmdLineArgumentInt(argc, (const char **)argv, "numElems"); - } - - printf("[%s]\n", sSampleName); - - // output devices - for (int i = 0; i < numGPUs; i++) { - cudaDeviceProp prop; - cudaGetDeviceProperties(&prop, i); - cudaCheckError(); - printf("Device: %d, %s, pciBusID: %x, pciDeviceID: %x, pciDomainID:%x\n", - i, - prop.name, - prop.pciBusID, - prop.pciDeviceID, - prop.pciDomainID); - } - - checkP2Paccess(numGPUs); - - // Environment detection: One-time check if cudaMemcpyPeerAsync is supported when P2P is disabled - bool needsFallback = detectFallback(numGPUs); - - // Check peer-to-peer connectivity - printf("P2P Connectivity Matrix\n"); - printf(" D\\D"); - - for (int j = 0; j < numGPUs; j++) { - printf("%6d", j); - } - printf("\n"); - - for (int i = 0; i < numGPUs; i++) { - printf("%6d\t", i); - for (int j = 0; j < numGPUs; j++) { - if (i != j) { - int access; - cudaDeviceCanAccessPeer(&access, i, j); - cudaCheckError(); - printf("%6d", (access) ? 1 : 0); - } - else { - printf("%6d", 1); - } - } - printf("\n"); - } - - printf("Unidirectional P2P=Disabled Bandwidth Matrix (GB/s)\n"); - outputBandwidthMatrix(numElems, numGPUs, false, P2P_WRITE, needsFallback); - printf("Unidirectional P2P=Enabled Bandwidth (P2P Writes) Matrix (GB/s)\n"); - outputBandwidthMatrix(numElems, numGPUs, true, P2P_WRITE, needsFallback); - if (p2p_method == P2P_READ) { - printf("Unidirectional P2P=Enabled Bandwidth (P2P Reads) Matrix (GB/s)\n"); - outputBandwidthMatrix(numElems, numGPUs, true, p2p_method, needsFallback); - } - printf("Bidirectional P2P=Disabled Bandwidth Matrix (GB/s)\n"); - outputBidirectionalBandwidthMatrix(numElems, numGPUs, false, needsFallback); - printf("Bidirectional P2P=Enabled Bandwidth Matrix (GB/s)\n"); - outputBidirectionalBandwidthMatrix(numElems, numGPUs, true, needsFallback); - - printf("P2P=Disabled Latency Matrix (us)\n"); - outputLatencyMatrix(numGPUs, false, P2P_WRITE, needsFallback); - printf("P2P=Enabled Latency (P2P Writes) Matrix (us)\n"); - outputLatencyMatrix(numGPUs, true, P2P_WRITE, needsFallback); - if (p2p_method == P2P_READ) { - printf("P2P=Enabled Latency (P2P Reads) Matrix (us)\n"); - outputLatencyMatrix(numGPUs, true, p2p_method, needsFallback); - } - - printf("\nNOTE: The CUDA Samples are not meant for performance measurements. " - "Results may vary when GPU Boost is enabled.\n"); - - exit(EXIT_SUCCESS); -} diff --git a/cpp/5_Domain_Specific/postProcessGL/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/postProcessGL/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/postProcessGL/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/postProcessGL/.vscode/extensions.json b/cpp/5_Domain_Specific/postProcessGL/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/postProcessGL/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/postProcessGL/CMakeLists.txt b/cpp/5_Domain_Specific/postProcessGL/CMakeLists.txt index a8bf5460..05bbf342 100644 --- a/cpp/5_Domain_Specific/postProcessGL/CMakeLists.txt +++ b/cpp/5_Domain_Specific/postProcessGL/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(postProcessGL LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,48 +29,36 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for postProcessGL add_executable(postProcessGL main.cpp postProcessGL.cu) - target_compile_options(postProcessGL PRIVATE $<$:--extended-lambda>) - target_compile_features(postProcessGL PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(postProcessGL PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(postProcessGL PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(postProcessGL ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - add_custom_command(TARGET postProcessGL POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(postProcessGL ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET postProcessGL POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET postProcessGL POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -82,14 +66,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'postProcessGL'") endif() else() message(STATUS "OpenGL not found - will not build sample 'postProcessGL'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/quasirandomGenerator/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/quasirandomGenerator/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/quasirandomGenerator/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/quasirandomGenerator/.vscode/extensions.json b/cpp/5_Domain_Specific/quasirandomGenerator/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/quasirandomGenerator/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/quasirandomGenerator/CMakeLists.txt b/cpp/5_Domain_Specific/quasirandomGenerator/CMakeLists.txt index 55b4308b..a57cc52d 100644 --- a/cpp/5_Domain_Specific/quasirandomGenerator/CMakeLists.txt +++ b/cpp/5_Domain_Specific/quasirandomGenerator/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(quasirandomGenerator LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for quasirandomGenerator add_executable(quasirandomGenerator quasirandomGenerator.cpp quasirandomGenerator_gold.cpp quasirandomGenerator_kernel.cu) target_compile_options(quasirandomGenerator PRIVATE $<$:--extended-lambda>) target_compile_features(quasirandomGenerator PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(quasirandomGenerator PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(quasirandomGenerator PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/.vscode/extensions.json b/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/CMakeLists.txt b/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/CMakeLists.txt deleted file mode 100644 index 1b9d16e5..00000000 --- a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -cmake_minimum_required(VERSION 3.20) - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") - -project(quasirandomGenerator_nvrtc LANGUAGES C CXX CUDA) - -find_package(CUDAToolkit REQUIRED) - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries -include_directories(../../../Common) - -# Source file -# Add target for quasirandomGenerator_nvrtc -add_executable(quasirandomGenerator_nvrtc quasirandomGenerator.cpp quasirandomGenerator_gold.cpp) - -target_compile_options(quasirandomGenerator_nvrtc PRIVATE $<$:--extended-lambda>) - -target_compile_features(quasirandomGenerator_nvrtc PRIVATE cxx_std_17 cuda_std_17) - -set_target_properties(quasirandomGenerator_nvrtc PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -target_link_libraries(quasirandomGenerator_nvrtc PRIVATE - CUDA::nvrtc - CUDA::cuda_driver -) - -# Copy kernel to the output directory -add_custom_command(TARGET quasirandomGenerator_nvrtc POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/quasirandomGenerator_kernel.cu ${CMAKE_CURRENT_SOURCE_DIR}/quasirandomGenerator_gpu.cuh ${CMAKE_CURRENT_SOURCE_DIR}/quasirandomGenerator_common.h ${CMAKE_CURRENT_BINARY_DIR} -) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/README.md b/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/README.md deleted file mode 100644 index 642db3f1..00000000 --- a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# quasirandomGenerator_nvrtc - Niederreiter Quasirandom Sequence Generator with libNVRTC - -## Description - -This sample implements Niederreiter Quasirandom Sequence Generator and Inverse Cumulative Normal Distribution functions for the generation of Standard Normal Distributions, compiling the CUDA kernels involved at runtime using NVRTC. - -## Key Concepts - -Computational Finance, Runtime Compilation - -## Supported SM Architectures - -[SM 5.0 ](https://developer.nvidia.com/cuda-gpus) [SM 5.2 ](https://developer.nvidia.com/cuda-gpus) [SM 5.3 ](https://developer.nvidia.com/cuda-gpus) [SM 6.0 ](https://developer.nvidia.com/cuda-gpus) [SM 6.1 ](https://developer.nvidia.com/cuda-gpus) [SM 7.0 ](https://developer.nvidia.com/cuda-gpus) [SM 7.2 ](https://developer.nvidia.com/cuda-gpus) [SM 7.5 ](https://developer.nvidia.com/cuda-gpus) [SM 8.0 ](https://developer.nvidia.com/cuda-gpus) [SM 8.6 ](https://developer.nvidia.com/cuda-gpus) [SM 8.7 ](https://developer.nvidia.com/cuda-gpus) [SM 8.9 ](https://developer.nvidia.com/cuda-gpus) [SM 9.0 ](https://developer.nvidia.com/cuda-gpus) - -## Supported OSes - -Linux, Windows, QNX - -## Supported CPU Architecture - -x86_64, aarch64 - -## CUDA APIs involved - -### [CUDA Driver API](http://docs.nvidia.com/cuda/cuda-driver-api/index.html) -cuMemcpyDtoH, cuMemAlloc, cuMemFree - -## Dependencies needed to build/run -[NVRTC](../../../README.md#nvrtc) - -## Prerequisites - -Download and install the [CUDA Toolkit](https://developer.nvidia.com/cuda-downloads) for your corresponding platform. -Make sure the dependencies mentioned in [Dependencies]() section above are installed. - -## References (for more details) diff --git a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator.cpp b/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator.cpp deleted file mode 100644 index 3f4c0636..00000000 --- a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator.cpp +++ /dev/null @@ -1,180 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -// CUDA Runtime -#include -#include - -// Utilities and system includes -#include - -#include "quasirandomGenerator_common.h" -#include "quasirandomGenerator_gpu.cuh" - -//////////////////////////////////////////////////////////////////////////////// -// CPU code -//////////////////////////////////////////////////////////////////////////////// - -extern "C" void initQuasirandomGenerator(unsigned int table[QRNG_DIMENSIONS][QRNG_RESOLUTION]); - -extern "C" float getQuasirandomValue(unsigned int table[QRNG_DIMENSIONS][QRNG_RESOLUTION], int i, int dim); - -extern "C" double getQuasirandomValue63(INT64 i, int dim); -extern "C" double MoroInvCNDcpu(unsigned int p); - -const int N = 1048576; - -int main(int argc, char **argv) -{ - // Start logs - printf("%s Starting...\n\n", argv[0]); - - // Compile the kernels - char *kernel_file = sdkFindFilePath("quasirandomGenerator_kernel.cu", argv[0]); - compileFileToCUBIN(kernel_file, argc, argv, &cubin, &cubinSize, 0); - module = loadCUBIN(cubin, argc, argv); - - unsigned int tableCPU[QRNG_DIMENSIONS][QRNG_RESOLUTION]; - float *h_OutputGPU; - CUdeviceptr d_Output; - - int dim, pos; - double delta, ref, sumDelta, sumRef, L1norm, gpuTime; - - StopWatchInterface *hTimer = NULL; - - if (sizeof(INT64) != 8) { - printf("sizeof(INT64) != 8\n"); - return 0; - } - - sdkCreateTimer(&hTimer); - - printf("Allocating GPU memory...\n"); - checkCudaErrors(cuMemAlloc(&d_Output, QRNG_DIMENSIONS * N * sizeof(float))); - - printf("Allocating CPU memory...\n"); - h_OutputGPU = (float *)malloc(QRNG_DIMENSIONS * N * sizeof(float)); - - printf("Initializing QRNG tables...\n\n"); - initQuasirandomGenerator(tableCPU); - - initTableGPU(tableCPU); - - printf("Testing QRNG...\n\n"); - - checkCudaErrors(cuMemsetD8(d_Output, 0, QRNG_DIMENSIONS * N * sizeof(float))); - - int numIterations = 20; - - for (int i = -1; i < numIterations; i++) { - if (i == 0) { - sdkResetTimer(&hTimer); - sdkStartTimer(&hTimer); - } - - quasirandomGeneratorGPU(d_Output, 0, N); - } - - sdkStopTimer(&hTimer); - gpuTime = sdkGetTimerValue(&hTimer) / (double)numIterations * 1e-3; - printf("quasirandomGenerator, Throughput = %.4f GNumbers/s, Time = %.5f s, Size " - "= %u Numbers, NumDevsUsed = %u, Workgroup = %u\n", - (double)QRNG_DIMENSIONS * (double)N * 1.0E-9 / gpuTime, - gpuTime, - QRNG_DIMENSIONS * N, - 1, - 128 * QRNG_DIMENSIONS); - - printf("\nReading GPU results...\n"); - - checkCudaErrors(cuMemcpyDtoH(h_OutputGPU, d_Output, QRNG_DIMENSIONS * N * sizeof(float))); - - printf("Comparing to the CPU results...\n\n"); - sumDelta = 0; - sumRef = 0; - - for (dim = 0; dim < QRNG_DIMENSIONS; dim++) - for (pos = 0; pos < N; pos++) { - ref = getQuasirandomValue63(pos, dim); - delta = (double)h_OutputGPU[dim * N + pos] - ref; - sumDelta += fabs(delta); - sumRef += fabs(ref); - } - - printf("L1 norm: %E\n", sumDelta / sumRef); - - printf("\nTesting inverseCNDgpu()...\n\n"); - - checkCudaErrors(cuMemsetD8(d_Output, 0, QRNG_DIMENSIONS * N * sizeof(float))); - - for (int i = -1; i < numIterations; i++) { - if (i == 0) { - sdkResetTimer(&hTimer); - sdkStartTimer(&hTimer); - } - - inverseCNDgpu(d_Output, QRNG_DIMENSIONS * N); - } - - sdkStopTimer(&hTimer); - gpuTime = sdkGetTimerValue(&hTimer) / (double)numIterations * 1e-3; - printf("quasirandomGenerator-inverse, Throughput = %.4f GNumbers/s, Time = %.5f " - "s, Size = %u Numbers, NumDevsUsed = %u, Workgroup = %u\n", - (double)QRNG_DIMENSIONS * (double)N * 1E-9 / gpuTime, - gpuTime, - QRNG_DIMENSIONS * N, - 1, - 128); - - printf("Reading GPU results...\n"); - checkCudaErrors(cuMemcpyDtoH(h_OutputGPU, d_Output, QRNG_DIMENSIONS * N * sizeof(float))); - - printf("\nComparing to the CPU results...\n"); - - sumDelta = 0; - sumRef = 0; - unsigned int distance = ((unsigned int)-1) / (QRNG_DIMENSIONS * N + 1); - - for (pos = 0; pos < QRNG_DIMENSIONS * N; pos++) { - unsigned int d = (pos + 1) * distance; - ref = MoroInvCNDcpu(d); - delta = (double)h_OutputGPU[pos] - ref; - sumDelta += fabs(delta); - sumRef += fabs(ref); - } - - printf("L1 norm: %E\n\n", L1norm = sumDelta / sumRef); - printf("Shutting down...\n"); - - sdkDeleteTimer(&hTimer); - free(h_OutputGPU); - - checkCudaErrors(cuMemFree(d_Output)); - - exit(L1norm < 1e-6 ? EXIT_SUCCESS : EXIT_FAILURE); -} diff --git a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_common.h b/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_common.h deleted file mode 100644 index f6e1b124..00000000 --- a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_common.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 QUASIRANDOMGENERATOR_COMMON_H -#define QUASIRANDOMGENERATOR_COMMON_H - -//////////////////////////////////////////////////////////////////////////////// -// Global types and constants -//////////////////////////////////////////////////////////////////////////////// - -typedef long long int INT64; - -#define QRNG_DIMENSIONS 3 -#define QRNG_RESOLUTION 31 -#define INT_SCALE (1.0f / (float)0x80000001U) - -#endif diff --git a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_gold.cpp b/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_gold.cpp deleted file mode 100644 index 5037967e..00000000 --- a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_gold.cpp +++ /dev/null @@ -1,339 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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. - */ - -#include -#include - -#include "quasirandomGenerator_common.h" - -//////////////////////////////////////////////////////////////////////////////// -// Table generation functions -//////////////////////////////////////////////////////////////////////////////// - -// Internal 64(63)-bit table -static INT64 cjn[63][QRNG_DIMENSIONS]; - -static int GeneratePolynomials(int buffer[QRNG_DIMENSIONS], bool primitive) -{ - int i, j, n, p1, p2, l; - int e_p1, e_p2, e_b; - - // generate all polynomials to buffer - for (n = 1, buffer[0] = 0x2, p2 = 0, l = 0; n < QRNG_DIMENSIONS; ++n) { - // search for the next irreducible polynomial - for (p1 = buffer[n - 1] + 1;; ++p1) { - // find degree of polynomial p1 - for (e_p1 = 30; (p1 & (1 << e_p1)) == 0; --e_p1) { - } - - // try to divide p1 by all polynomials in buffer - for (i = 0; i < n; ++i) { - // find the degree of buffer[i] - for (e_b = e_p1; (buffer[i] & (1 << e_b)) == 0; --e_b) { - } - - // divide p2 by buffer[i] until the end - for (p2 = (buffer[i] << ((e_p2 = e_p1) - e_b)) ^ p1; p2 >= buffer[i]; - p2 = (buffer[i] << (e_p2 - e_b)) ^ p2) { - for (; (p2 & (1 << e_p2)) == 0; --e_p2) { - } - } // compute new degree of p2 - - // division without remainder!!! p1 is not irreducible - if (p2 == 0) { - break; - } - } - - // all divisions were with remainder - p1 is irreducible - if (p2 != 0) { - e_p2 = 0; - - if (primitive) { - // check that p1 has only one cycle (i.e. is monic, or primitive) - j = ~(0xffffffff << (e_p1 + 1)); - e_b = (1 << e_p1) | 0x1; - - for (p2 = e_b, e_p2 = (1 << e_p1) - 2; e_p2 > 0; --e_p2) { - p2 <<= 1; - i = p2 & p1; - i = (i & 0x55555555) + ((i >> 1) & 0x55555555); - i = (i & 0x33333333) + ((i >> 2) & 0x33333333); - i = (i & 0x07070707) + ((i >> 4) & 0x07070707); - p2 |= (i % 255) & 1; - - if ((p2 & j) == e_b) - break; - } - } - - // it is monic - add it to the list of polynomials - if (e_p2 == 0) { - buffer[n] = p1; - l += e_p1; - break; - } - } - } - } - - return l + 1; -} - -//////////////////////////////////////////////////////////////////////////////// -// @misc{Bratley92:LDS, -// author = "B. Fox and P. Bratley and H. Niederreiter", -// title = "Implementation and test of low discrepancy sequences", -// text = "B. L. Fox, P. Bratley, and H. Niederreiter. Implementation and -// test of -// low discrepancy sequences. ACM Trans. Model. Comput. Simul., -// 2(3):195--213, -// July 1992.", -// year = "1992" } -//////////////////////////////////////////////////////////////////////////////// - -static void GenerateCJ() -{ - int buffer[QRNG_DIMENSIONS]; - int *polynomials; - int n, p1, l, e_p1; - - // Niederreiter (in contrast to Sobol) allows to use not primitive, but just - // irreducible polynomials - l = GeneratePolynomials(buffer, false); - - // convert all polynomials from buffer to polynomials table - polynomials = new int[l + 2 * QRNG_DIMENSIONS + 1]; - - for (n = 0, l = 0; n < QRNG_DIMENSIONS; ++n) { - // find degree of polynomial p1 - for (p1 = buffer[n], e_p1 = 30; (p1 & (1 << e_p1)) == 0; --e_p1) { - } - - // fill polynomials table with values for this polynomial - polynomials[l++] = 1; - - for (--e_p1; e_p1 >= 0; --e_p1) { - polynomials[l++] = (p1 >> e_p1) & 1; - } - - polynomials[l++] = -1; - } - - polynomials[l] = -1; - - // irreducible polynomial p - int *p = polynomials, e, d; - - // polynomial b - int b_arr[1024], *b, m; - - // v array - int v_arr[1024], *v; - - // temporary polynomial, required to do multiplication of p and b - int t_arr[1024], *t; - - // subsidiary variables - int i, j, u, m1, ip, it; - - // cycle over monic irreducible polynomials - for (d = 0; p[0] != -1; p += e + 2) { - // allocate memory for cj array for dimension (ip + 1) - for (i = 0; i < 63; ++i) { - cjn[i][d] = 0; - } - - // determine the power of irreducible polynomial - for (e = 0; p[e + 1] != -1; ++e) { - } - - // polynomial b in the beginning is just '1' - (b = b_arr + 1023)[m = 0] = 1; - - // v array needs only (63 + e - 2) length - v = v_arr + 1023 - (63 + e - 2); - - // cycle over all coefficients - for (j = 63 - 1, u = e; j >= 0; --j, ++u) { - if (u == e) { - u = 0; - - // multiply b by p (polynomials multiplication) - for (i = 0, t = t_arr + 1023 - (m1 = m); i <= m; ++i) { - t[i] = b[i]; - } - - b = b_arr + 1023 - (m += e); - - for (i = 0; i <= m; ++i) { - b[i] = 0; - - for (ip = e - (m - i), it = m1; ip <= e && it >= 0; ++ip, --it) { - if (ip >= 0) { - b[i] ^= p[ip] & t[it]; - } - } - } - - // multiplication of polynomials finished - // calculate v - for (i = 0; i < m1; ++i) { - v[i] = 0; - } - - for (; i < m; ++i) { - v[i] = 1; - } - - for (; i <= 63 + e - 2; ++i) { - v[i] = 0; - for (it = 1; it <= m; ++it) { - v[i] ^= v[i - it] & b[it]; - } - } - } - - // copy calculated v to cj - for (i = 0; i < 63; i++) { - cjn[i][d] |= (INT64)v[i + u] << j; - } - } - - ++d; - } - - delete[] polynomials; -} - -// Generate 63-bit quasirandom number for given index and dimension and -// normalize - -extern "C" double getQuasirandomValue63(INT64 i, int dim) -{ - const double INT63_SCALE = (1.0 / (double)0x8000000000000001ULL); - INT64 result = 0; - - for (int bit = 0; bit < 63; bit++, i >>= 1) - if (i & 1) - result ^= cjn[bit][dim]; - - return (double)(result + 1) * INT63_SCALE; -} - -//////////////////////////////////////////////////////////////////////////////// -// Initialization (table setup) -//////////////////////////////////////////////////////////////////////////////// - -extern "C" void initQuasirandomGenerator(unsigned int table[QRNG_DIMENSIONS][QRNG_RESOLUTION]) -{ - GenerateCJ(); - - for (int dim = 0; dim < QRNG_DIMENSIONS; dim++) - for (int bit = 0; bit < QRNG_RESOLUTION; bit++) - table[dim][bit] = (int)((cjn[bit][dim] >> 32) & 0x7FFFFFFF); -} - -//////////////////////////////////////////////////////////////////////////////// -// Generate 31-bit quasirandom number for given index and dimension -//////////////////////////////////////////////////////////////////////////////// -extern "C" float getQuasirandomValue(unsigned int table[QRNG_DIMENSIONS][QRNG_RESOLUTION], int i, int dim) -{ - int result = 0; - - for (int bit = 0; bit < QRNG_RESOLUTION; bit++, i >>= 1) - if (i & 1) - result ^= table[dim][bit]; - - return (float)(result + 1) * INT_SCALE; -} - -//////////////////////////////////////////////////////////////////////////////// -// Moro's Inverse Cumulative Normal Distribution function approximation -//////////////////////////////////////////////////////////////////////////////// -extern "C" double MoroInvCNDcpu(unsigned int x) -{ - const double a1 = 2.50662823884; - const double a2 = -18.61500062529; - const double a3 = 41.39119773534; - const double a4 = -25.44106049637; - const double b1 = -8.4735109309; - const double b2 = 23.08336743743; - const double b3 = -21.06224101826; - const double b4 = 3.13082909833; - const double c1 = 0.337475482272615; - const double c2 = 0.976169019091719; - const double c3 = 0.160797971491821; - const double c4 = 2.76438810333863E-02; - const double c5 = 3.8405729373609E-03; - const double c6 = 3.951896511919E-04; - const double c7 = 3.21767881768E-05; - const double c8 = 2.888167364E-07; - const double c9 = 3.960315187E-07; - - double z; - - bool negate = false; - - // Ensure the conversion to floating point will give a value in the - // range (0,0.5] by restricting the input to the bottom half of the - // input domain. We will later reflect the result if the input was - // originally in the top half of the input domain - - if (x >= 0x80000000UL) { - x = 0xffffffffUL - x; - negate = true; - } - - // x is now in the range [0,0x80000000) (i.e. [0,0x7fffffff]) - // Convert to floating point in (0,0.5] - const double x1 = 1.0 / static_cast(0xffffffffUL); - const double x2 = x1 / 2.0; - double p1 = x * x1 + x2; - - // Convert to floating point in (-0.5,0] - double p2 = p1 - 0.5; - - // The input to the Moro inversion is p2 which is in the range - // (-0.5,0]. This means that our output will be the negative side - // of the bell curve (which we will reflect if "negate" is true). - - // Main body of the bell curve for |p| < 0.42 - if (p2 > -0.42) { - z = p2 * p2; - z = p2 * (((a4 * z + a3) * z + a2) * z + a1) / ((((b4 * z + b3) * z + b2) * z + b1) * z + 1.0); - } - // Special case (Chebychev) for tail - else { - z = log(-log(p1)); - z = -(c1 + z * (c2 + z * (c3 + z * (c4 + z * (c5 + z * (c6 + z * (c7 + z * (c8 + z * c9)))))))); - } - - // If the original input (x) was in the top half of the range, reflect - // to get the positive side of the bell curve - return negate ? -z : z; -} diff --git a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_gpu.cuh b/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_gpu.cuh deleted file mode 100644 index ca100d30..00000000 --- a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_gpu.cuh +++ /dev/null @@ -1,108 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 QUASIRANDOMGENERATOR_GPU_CUH -#define QUASIRANDOMGENERATOR_GPU_CUH - -#include - -#include "quasirandomGenerator_common.h" - -// Fast integer multiplication -#define MUL(a, b) __umul24(a, b) - -// Global variables for nvrtc outputs -char *cubin; -size_t cubinSize; -CUmodule module; - -//////////////////////////////////////////////////////////////////////////////// -// GPU code -//////////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////// -// Niederreiter quasirandom number generation kernel -//////////////////////////////////////////////////////////////////////////////// - -// Table initialization routine -void initTableGPU(unsigned int tableCPU[QRNG_DIMENSIONS][QRNG_RESOLUTION]) -{ - CUdeviceptr c_Table; - checkCudaErrors(cuModuleGetGlobal(&c_Table, NULL, module, "c_Table")); - checkCudaErrors(cuMemcpyHtoD(c_Table, tableCPU, QRNG_DIMENSIONS * QRNG_RESOLUTION * sizeof(unsigned int))); -} - -// Host-side interface -void quasirandomGeneratorGPU(CUdeviceptr d_Output, unsigned int seed, unsigned int N) -{ - dim3 threads(128, QRNG_DIMENSIONS); - dim3 cudaGridSize(128, 1, 1); - - CUfunction kernel_addr; - checkCudaErrors(cuModuleGetFunction(&kernel_addr, module, "quasirandomGeneratorKernel")); - - void *args[] = {(void *)&d_Output, (void *)&seed, (void *)&N}; - checkCudaErrors(cuLaunchKernel(kernel_addr, - cudaGridSize.x, - cudaGridSize.y, - cudaGridSize.z, /* grid dim */ - threads.x, - threads.y, - threads.z, /* block dim */ - 0, - 0, /* shared mem, stream */ - &args[0], /* arguments */ - 0)); - - checkCudaErrors(cuCtxSynchronize()); -} - -void inverseCNDgpu(CUdeviceptr d_Output, unsigned int N) -{ - dim3 threads(128, 1, 1); - dim3 cudaGridSize(128, 1, 1); - - CUfunction kernel_addr; - checkCudaErrors(cuModuleGetFunction(&kernel_addr, module, "inverseCNDKernel")); - - void *args[] = {(void *)&d_Output, (void *)&N}; - checkCudaErrors(cuLaunchKernel(kernel_addr, - cudaGridSize.x, - cudaGridSize.y, - cudaGridSize.z, /* grid dim */ - threads.x, - threads.y, - threads.z, /* block dim */ - 0, - 0, /* shared mem, stream */ - &args[0], /* arguments */ - 0)); - - checkCudaErrors(cuCtxSynchronize()); -} - -#endif diff --git a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_kernel.cu b/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_kernel.cu deleted file mode 100644 index 3b445c31..00000000 --- a/cpp/5_Domain_Specific/quasirandomGenerator_nvrtc/quasirandomGenerator_kernel.cu +++ /dev/null @@ -1,157 +0,0 @@ -/* Copyright (c) 2022, NVIDIA CORPORATION. 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. - * * Neither the name of NVIDIA CORPORATION nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 OWNER 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 QUASIRANDOMGENERATOR_KERNEL_CUH -#define QUASIRANDOMGENERATOR_KERNEL_CUH - -#include "quasirandomGenerator_common.h" - -// Fast integer multiplication -#define MUL(a, b) __umul24(a, b) - -//////////////////////////////////////////////////////////////////////////////// -// Niederreiter quasirandom number generation kernel -//////////////////////////////////////////////////////////////////////////////// -__constant__ unsigned int c_Table[QRNG_DIMENSIONS][QRNG_RESOLUTION]; - -extern "C" __global__ void quasirandomGeneratorKernel(float *d_Output, unsigned int seed, unsigned int N) -{ - unsigned int *dimBase = &c_Table[threadIdx.y][0]; - unsigned int tid = MUL(blockDim.x, blockIdx.x) + threadIdx.x; - unsigned int threadN = MUL(blockDim.x, gridDim.x); - - for (unsigned int pos = tid; pos < N; pos += threadN) { - unsigned int result = 0; - unsigned int data = seed + pos; - - for (int bit = 0; bit < QRNG_RESOLUTION; bit++, data >>= 1) - if (data & 1) { - result ^= dimBase[bit]; - } - - d_Output[MUL(threadIdx.y, N) + pos] = (float)(result + 1) * INT_SCALE; - } -} - -//////////////////////////////////////////////////////////////////////////////// -// Moro's Inverse Cumulative Normal Distribution function approximation -//////////////////////////////////////////////////////////////////////////////// -__device__ inline float MoroInvCNDgpu(unsigned int x) -{ - const float a1 = 2.50662823884f; - const float a2 = -18.61500062529f; - const float a3 = 41.39119773534f; - const float a4 = -25.44106049637f; - const float b1 = -8.4735109309f; - const float b2 = 23.08336743743f; - const float b3 = -21.06224101826f; - const float b4 = 3.13082909833f; - const float c1 = 0.337475482272615f; - const float c2 = 0.976169019091719f; - const float c3 = 0.160797971491821f; - const float c4 = 2.76438810333863E-02f; - const float c5 = 3.8405729373609E-03f; - const float c6 = 3.951896511919E-04f; - const float c7 = 3.21767881768E-05f; - const float c8 = 2.888167364E-07f; - const float c9 = 3.960315187E-07f; - - float z; - - bool negate = false; - - // Ensure the conversion to floating point will give a value in the - // range (0,0.5] by restricting the input to the bottom half of the - // input domain. We will later reflect the result if the input was - // originally in the top half of the input domain - if (x >= 0x80000000UL) { - x = 0xffffffffUL - x; - negate = true; - } - - // x is now in the range [0,0x80000000) (i.e. [0,0x7fffffff]) - // Convert to floating point in (0,0.5] - const float x1 = 1.0f / static_cast(0xffffffffUL); - const float x2 = x1 / 2.0f; - float p1 = x * x1 + x2; - // Convert to floating point in (-0.5,0] - float p2 = p1 - 0.5f; - - // The input to the Moro inversion is p2 which is in the range - // (-0.5,0]. This means that our output will be the negative side - // of the bell curve (which we will reflect if "negate" is true). - - // Main body of the bell curve for |p| < 0.42 - if (p2 > -0.42f) { - z = p2 * p2; - z = p2 * (((a4 * z + a3) * z + a2) * z + a1) / ((((b4 * z + b3) * z + b2) * z + b1) * z + 1.0f); - } - // Special case (Chebychev) for tail - else { - z = __logf(-__logf(p1)); - z = -(c1 + z * (c2 + z * (c3 + z * (c4 + z * (c5 + z * (c6 + z * (c7 + z * (c8 + z * c9)))))))); - } - - // If the original input (x) was in the top half of the range, reflect - // to get the positive side of the bell curve - - return negate ? -z : z; -} - -//////////////////////////////////////////////////////////////////////////////// -// Main kernel. Choose between transforming -// input sequence and uniform ascending (0, 1) sequence -//////////////////////////////////////////////////////////////////////////////// - -extern "C" __global__ void inverseCNDKernel(float *d_Output, unsigned int pathN) -{ - unsigned int distance = ((unsigned int)-1) / (pathN + 1); - unsigned int tid = MUL(blockDim.x, blockIdx.x) + threadIdx.x; - unsigned int threadN = MUL(blockDim.x, gridDim.x); - - // Transform input number sequence if it's supplied - if (0) // d_Input) - { - /* - for (unsigned int pos = tid; pos < pathN; pos += threadN) - { - unsigned int d = d_Input[pos]; - d_Output[pos] = (float)MoroInvCNDgpu(d); - } - */ - } - // Else generate input uniformly placed samples on the fly - // and write to destination - else { - for (unsigned int pos = tid; pos < pathN; pos += threadN) { - unsigned int d = (pos + 1) * distance; - d_Output[pos] = (float)MoroInvCNDgpu(d); - } - } -} - -#endif diff --git a/cpp/5_Domain_Specific/recursiveGaussian/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/recursiveGaussian/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/recursiveGaussian/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/recursiveGaussian/.vscode/extensions.json b/cpp/5_Domain_Specific/recursiveGaussian/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/recursiveGaussian/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/recursiveGaussian/CMakeLists.txt b/cpp/5_Domain_Specific/recursiveGaussian/CMakeLists.txt index f62df8d2..a61a4837 100644 --- a/cpp/5_Domain_Specific/recursiveGaussian/CMakeLists.txt +++ b/cpp/5_Domain_Specific/recursiveGaussian/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(recursiveGaussian LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,48 +29,36 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for recursiveGaussian add_executable(recursiveGaussian recursiveGaussian_cuda.cu recursiveGaussian.cpp) - target_compile_options(recursiveGaussian PRIVATE $<$:--extended-lambda>) - target_compile_features(recursiveGaussian PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(recursiveGaussian PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(recursiveGaussian PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(recursiveGaussian ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - add_custom_command(TARGET recursiveGaussian POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(recursiveGaussian ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET recursiveGaussian POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET recursiveGaussian POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -82,14 +66,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'recursiveGaussian'") endif() else() message(STATUS "OpenGL not found - will not build sample 'recursiveGaussian'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/simpleD3D11/CMakeLists.txt b/cpp/5_Domain_Specific/simpleD3D11/CMakeLists.txt index 713ce7ea..49c33c99 100644 --- a/cpp/5_Domain_Specific/simpleD3D11/CMakeLists.txt +++ b/cpp/5_Domain_Specific/simpleD3D11/CMakeLists.txt @@ -1,59 +1,44 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleD3D11 LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) - # Source file - # Add target for simpleD3D11 add_executable(simpleD3D11 simpleD3D11.cpp sinewave_cuda.cu ../../../Common/rendercheck_d3d11.cpp ) - target_compile_options(simpleD3D11 PRIVATE $<$:--extended-lambda>) - target_compile_features(simpleD3D11 PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleD3D11 PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleD3D11 PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) - target_link_libraries(simpleD3D11 PRIVATE d3d11 dxgi dxguid d3dcompiler ) - add_custom_command(TARGET simpleD3D11 POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "Sample 'simpleD3D11' is Windows-only - skipping") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/simpleD3D11Texture/CMakeLists.txt b/cpp/5_Domain_Specific/simpleD3D11Texture/CMakeLists.txt index 86c90844..abac7d6b 100644 --- a/cpp/5_Domain_Specific/simpleD3D11Texture/CMakeLists.txt +++ b/cpp/5_Domain_Specific/simpleD3D11Texture/CMakeLists.txt @@ -1,27 +1,21 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleD3D11Texture LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) - # Source file - # Add target for simpleD3D11Texture add_executable(simpleD3D11Texture simpleD3D11Texture.cpp ../../../Common/rendercheck_d3d11.cpp @@ -29,33 +23,24 @@ if(WIN32) texture_3d.cu texture_cube.cu ) - target_compile_options(simpleD3D11Texture PRIVATE $<$:--extended-lambda>) - target_compile_features(simpleD3D11Texture PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleD3D11Texture PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleD3D11Texture PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) - target_link_libraries(simpleD3D11Texture PRIVATE d3d11 dxgi dxguid d3dcompiler ) - add_custom_command(TARGET simpleD3D11Texture POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "Sample 'simpleD3D11Texture' is Windows-only - skipping") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/simpleD3D12/CMakeLists.txt b/cpp/5_Domain_Specific/simpleD3D12/CMakeLists.txt index 7291c8db..0b79baec 100644 --- a/cpp/5_Domain_Specific/simpleD3D12/CMakeLists.txt +++ b/cpp/5_Domain_Specific/simpleD3D12/CMakeLists.txt @@ -1,27 +1,21 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleD3D12 LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) - # Source file - # Add target for simpleD3D12 add_executable(simpleD3D12 WIN32 DX12CudaSample.cpp Main.cpp @@ -30,34 +24,24 @@ if(WIN32) stdafx.cpp sinewave_cuda.cu ) - target_compile_options(simpleD3D12 PRIVATE $<$:--extended-lambda>) - target_compile_features(simpleD3D12 PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleD3D12 PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleD3D12 PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) - target_link_libraries(simpleD3D12 PRIVATE d3d12 dxgi dxguid d3dcompiler ) - add_custom_command(TARGET simpleD3D12 POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/shaders.hlsl ${CMAKE_CURRENT_BINARY_DIR}/shaders.hlsl ) - + include(InstallSamples) + setup_samples_install() else() message(STATUS "Sample 'simpleD3D12' is Windows-only - skipping") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/simpleGL/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/simpleGL/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/simpleGL/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/simpleGL/.vscode/extensions.json b/cpp/5_Domain_Specific/simpleGL/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/simpleGL/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/simpleGL/CMakeLists.txt b/cpp/5_Domain_Specific/simpleGL/CMakeLists.txt index 782a4737..3c46652f 100644 --- a/cpp/5_Domain_Specific/simpleGL/CMakeLists.txt +++ b/cpp/5_Domain_Specific/simpleGL/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleGL LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,42 +29,31 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for simpleGL add_executable(simpleGL simpleGL.cu) - target_compile_options(simpleGL PRIVATE $<$:--extended-lambda>) - target_compile_features(simpleGL PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleGL PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleGL PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(simpleGL ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - if(WIN32) target_link_libraries(simpleGL ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET simpleGL POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET simpleGL POST_BUILD COMMAND ${CMAKE_COMMAND} -E @@ -76,20 +61,16 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - add_custom_command(TARGET simpleGL POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'simpleGL'") endif() else() message(STATUS "OpenGL not found - will not build sample 'simpleGL'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/simpleVulkan/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/simpleVulkan/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/simpleVulkan/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/simpleVulkan/.vscode/extensions.json b/cpp/5_Domain_Specific/simpleVulkan/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/simpleVulkan/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/simpleVulkan/CMakeLists.txt b/cpp/5_Domain_Specific/simpleVulkan/CMakeLists.txt index 14624790..92b5ee82 100644 --- a/cpp/5_Domain_Specific/simpleVulkan/CMakeLists.txt +++ b/cpp/5_Domain_Specific/simpleVulkan/CMakeLists.txt @@ -1,28 +1,23 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleVulkan LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) find_package(Vulkan) find_package(OpenGL) - # Include the check_include_file macro include(CheckIncludeFile) @@ -52,19 +47,12 @@ if(WIN32 OR CMAKE_CROSSCOMPILING OR SUSE_LINUX) endif() endif() -# Source file if(${Vulkan_FOUND}) if(${OPENGL_FOUND}) if(${HAVE_GLFW3_H}) - # Add target for simpleVulkan add_executable(simpleVulkan main.cpp SineWaveSimulation.cu VulkanBaseApp.cpp) - target_compile_options(simpleVulkan PRIVATE $<$:--extended-lambda>) - target_compile_features(simpleVulkan PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleVulkan PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleVulkan PUBLIC ${Vulkan_INCLUDE_DIRS} ${CUDAToolkit_INCLUDE_DIRS} @@ -99,6 +87,8 @@ if(${Vulkan_FOUND}) ${CMAKE_CURRENT_SOURCE_DIR}/frag.spv ${CMAKE_CURRENT_BINARY_DIR} ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "glfw3 not found - will not build sample 'simpleVulkan'") endif() @@ -108,7 +98,3 @@ if(${Vulkan_FOUND}) else() message(STATUS "Vulkan not found - will not build sample 'simpleVulkan'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/simpleVulkanMMAP/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/simpleVulkanMMAP/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/simpleVulkanMMAP/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/simpleVulkanMMAP/.vscode/extensions.json b/cpp/5_Domain_Specific/simpleVulkanMMAP/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/simpleVulkanMMAP/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/simpleVulkanMMAP/CMakeLists.txt b/cpp/5_Domain_Specific/simpleVulkanMMAP/CMakeLists.txt index cc185068..9990cf49 100644 --- a/cpp/5_Domain_Specific/simpleVulkanMMAP/CMakeLists.txt +++ b/cpp/5_Domain_Specific/simpleVulkanMMAP/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleVulkanMMAP LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) find_package(Vulkan) @@ -51,19 +47,12 @@ if(WIN32 OR CMAKE_CROSSCOMPILING OR SUSE_LINUX) endif() endif() -# Source file if(${Vulkan_FOUND}) if(${OPENGL_FOUND}) if(${HAVE_GLFW3_H}) - # Add target for simpleVulkanMMAP add_executable(simpleVulkanMMAP ../../../Common/helper_multiprocess.cpp MonteCarloPi.cu VulkanBaseApp.cpp main.cpp) - target_compile_options(simpleVulkanMMAP PRIVATE $<$:--extended-lambda>) - target_compile_features(simpleVulkanMMAP PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleVulkanMMAP PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleVulkanMMAP PUBLIC ${Vulkan_INCLUDE_DIRS} ${CUDAToolkit_INCLUDE_DIRS} @@ -99,6 +88,8 @@ if(${Vulkan_FOUND}) ${CMAKE_CURRENT_SOURCE_DIR}/frag.spv ${CMAKE_CURRENT_BINARY_DIR} ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "glfw3 not found - will not build sample 'simpleVulkanMMAP'") endif() @@ -108,7 +99,3 @@ if(${Vulkan_FOUND}) else() message(STATUS "Vulkan not found - will not build sample 'simpleVulkanMMAP'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/smokeParticles/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/smokeParticles/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/smokeParticles/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/smokeParticles/.vscode/extensions.json b/cpp/5_Domain_Specific/smokeParticles/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/smokeParticles/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/smokeParticles/CMakeLists.txt b/cpp/5_Domain_Specific/smokeParticles/CMakeLists.txt index ccee88f8..672f6ccf 100644 --- a/cpp/5_Domain_Specific/smokeParticles/CMakeLists.txt +++ b/cpp/5_Domain_Specific/smokeParticles/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(smokeParticles LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,48 +29,36 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for smokeParticles add_executable(smokeParticles GLSLProgram.cpp ParticleSystem.cpp ParticleSystem_cuda.cu SmokeRenderer.cpp SmokeShaders.cpp framebufferObject.cpp particleDemo.cpp renderbuffer.cpp) - target_compile_options(smokeParticles PRIVATE $<$:--extended-lambda>) - target_compile_features(smokeParticles PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(smokeParticles PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(smokeParticles PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(smokeParticles ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - add_custom_command(TARGET smokeParticles POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(smokeParticles ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET smokeParticles POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET smokeParticles POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -82,14 +66,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'smokeParticles'") endif() else() message(STATUS "OpenGL not found - will not build sample 'smokeParticles'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/stereoDisparity/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/stereoDisparity/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/stereoDisparity/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/stereoDisparity/.vscode/extensions.json b/cpp/5_Domain_Specific/stereoDisparity/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/stereoDisparity/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/stereoDisparity/CMakeLists.txt b/cpp/5_Domain_Specific/stereoDisparity/CMakeLists.txt index ad2ff7be..41c1c064 100644 --- a/cpp/5_Domain_Specific/stereoDisparity/CMakeLists.txt +++ b/cpp/5_Domain_Specific/stereoDisparity/CMakeLists.txt @@ -1,40 +1,31 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(stereoDisparity LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for stereoDisparity add_executable(stereoDisparity stereoDisparity.cu) target_compile_options(stereoDisparity PRIVATE $<$:--extended-lambda>) target_compile_features(stereoDisparity PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(stereoDisparity PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - add_custom_command(TARGET stereoDisparity POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/5_Domain_Specific/volumeFiltering/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/volumeFiltering/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/volumeFiltering/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/volumeFiltering/.vscode/extensions.json b/cpp/5_Domain_Specific/volumeFiltering/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/volumeFiltering/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/volumeFiltering/CMakeLists.txt b/cpp/5_Domain_Specific/volumeFiltering/CMakeLists.txt index 639b4f1e..7b06ae9b 100644 --- a/cpp/5_Domain_Specific/volumeFiltering/CMakeLists.txt +++ b/cpp/5_Domain_Specific/volumeFiltering/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(volumeFiltering LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,48 +29,36 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for volumeFiltering add_executable(volumeFiltering volume.cpp volumeFilter_kernel.cu volumeFiltering.cpp volumeRender_kernel.cu) - target_compile_options(volumeFiltering PRIVATE $<$:--extended-lambda>) - target_compile_features(volumeFiltering PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(volumeFiltering PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(volumeFiltering PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(volumeFiltering ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - add_custom_command(TARGET volumeFiltering POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(volumeFiltering ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET volumeFiltering POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET volumeFiltering POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -82,14 +66,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'volumeFiltering'") endif() else() message(STATUS "OpenGL not found - will not build sample 'volumeFiltering'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/volumeRender/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/volumeRender/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/volumeRender/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/volumeRender/.vscode/extensions.json b/cpp/5_Domain_Specific/volumeRender/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/volumeRender/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/volumeRender/CMakeLists.txt b/cpp/5_Domain_Specific/volumeRender/CMakeLists.txt index bd9928ec..fcd77b14 100644 --- a/cpp/5_Domain_Specific/volumeRender/CMakeLists.txt +++ b/cpp/5_Domain_Specific/volumeRender/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(volumeRender LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) if(WIN32) @@ -33,48 +29,36 @@ endif() find_package(OpenGL) find_package(GLUT) -# Source file if(${OpenGL_FOUND}) if (${GLUT_FOUND}) - # Add target for volumeRender add_executable(volumeRender volumeRender_kernel.cu volumeRender.cpp) - target_compile_options(volumeRender PRIVATE $<$:--extended-lambda>) - target_compile_features(volumeRender PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(volumeRender PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(volumeRender PUBLIC ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) - target_link_libraries(volumeRender ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ) - add_custom_command(TARGET volumeRender POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}/data ) - if(WIN32) target_link_libraries(volumeRender ${PC_GLUT_LIBRARY_DIRS}/freeglut.lib ${PC_GLUT_LIBRARY_DIRS}/${GLEW_LIB_NAME}.lib ) - add_custom_command(TARGET volumeRender POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/win64/$/freeglut.dll ${CMAKE_CURRENT_BINARY_DIR}/$ ) - add_custom_command(TARGET volumeRender POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy @@ -82,14 +66,11 @@ if(${OpenGL_FOUND}) ${CMAKE_CURRENT_BINARY_DIR}/$ ) endif() - + include(InstallSamples) + setup_samples_install() else() message(STATUS "GLUT not found - will not build sample 'volumeRender'") endif() else() message(STATUS "OpenGL not found - will not build sample 'volumeRender'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/5_Domain_Specific/vulkanImageCUDA/.vscode/c_cpp_properties.json b/cpp/5_Domain_Specific/vulkanImageCUDA/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/5_Domain_Specific/vulkanImageCUDA/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/5_Domain_Specific/vulkanImageCUDA/.vscode/extensions.json b/cpp/5_Domain_Specific/vulkanImageCUDA/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/5_Domain_Specific/vulkanImageCUDA/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/5_Domain_Specific/vulkanImageCUDA/CMakeLists.txt b/cpp/5_Domain_Specific/vulkanImageCUDA/CMakeLists.txt index c7dcd993..68bf475e 100644 --- a/cpp/5_Domain_Specific/vulkanImageCUDA/CMakeLists.txt +++ b/cpp/5_Domain_Specific/vulkanImageCUDA/CMakeLists.txt @@ -1,22 +1,18 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(vulkanImageCUDA LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) find_package(Vulkan) @@ -51,19 +47,12 @@ if(WIN32 OR CMAKE_CROSSCOMPILING OR SUSE_LINUX) endif() endif() -# Source file if(${Vulkan_FOUND}) if(${OPENGL_FOUND}) if(${HAVE_GLFW3_H}) - # Add target for vulkanImageCUDA add_executable(vulkanImageCUDA vulkanImageCUDA.cu) - target_compile_options(vulkanImageCUDA PRIVATE $<$:--extended-lambda>) - target_compile_features(vulkanImageCUDA PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(vulkanImageCUDA PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(vulkanImageCUDA PUBLIC ${Vulkan_INCLUDE_DIRS} ${CUDAToolkit_INCLUDE_DIRS} @@ -99,6 +88,8 @@ if(${Vulkan_FOUND}) ${CMAKE_CURRENT_SOURCE_DIR}/teapot1024.ppm ${CMAKE_CURRENT_BINARY_DIR} ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "glfw3 not found - will not build sample 'vulkanImageCUDA'") endif() @@ -108,7 +99,3 @@ if(${Vulkan_FOUND}) else() message(STATUS "Vulkan not found - will not build sample 'vulkanImageCUDA'") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/6_Performance/LargeKernelParameter/.vscode/c_cpp_properties.json b/cpp/6_Performance/LargeKernelParameter/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/6_Performance/LargeKernelParameter/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/6_Performance/LargeKernelParameter/.vscode/extensions.json b/cpp/6_Performance/LargeKernelParameter/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/6_Performance/LargeKernelParameter/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/6_Performance/LargeKernelParameter/CMakeLists.txt b/cpp/6_Performance/LargeKernelParameter/CMakeLists.txt index 81317224..34030401 100644 --- a/cpp/6_Performance/LargeKernelParameter/CMakeLists.txt +++ b/cpp/6_Performance/LargeKernelParameter/CMakeLists.txt @@ -1,35 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(LargeKernelParameter LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for LargeKernelParameter add_executable(LargeKernelParameter LargeKernelParameter.cu) target_compile_options(LargeKernelParameter PRIVATE $<$:--extended-lambda>) target_compile_features(LargeKernelParameter PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(LargeKernelParameter PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/6_Performance/UnifiedMemoryPerf/.vscode/c_cpp_properties.json b/cpp/6_Performance/UnifiedMemoryPerf/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/6_Performance/UnifiedMemoryPerf/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/6_Performance/UnifiedMemoryPerf/.vscode/extensions.json b/cpp/6_Performance/UnifiedMemoryPerf/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/6_Performance/UnifiedMemoryPerf/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/6_Performance/UnifiedMemoryPerf/CMakeLists.txt b/cpp/6_Performance/UnifiedMemoryPerf/CMakeLists.txt index 9ebabf27..b44c2fa7 100644 --- a/cpp/6_Performance/UnifiedMemoryPerf/CMakeLists.txt +++ b/cpp/6_Performance/UnifiedMemoryPerf/CMakeLists.txt @@ -1,38 +1,29 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(UnifiedMemoryPerf LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for UnifiedMemoryPerf add_executable(UnifiedMemoryPerf helperFunctions.cpp matrixMultiplyPerf.cu commonKernels.cu) target_compile_options(UnifiedMemoryPerf PRIVATE $<$:--extended-lambda>) target_compile_features(UnifiedMemoryPerf PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(UnifiedMemoryPerf PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(UnifiedMemoryPerf PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ) -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/6_Performance/alignedTypes/.vscode/c_cpp_properties.json b/cpp/6_Performance/alignedTypes/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/6_Performance/alignedTypes/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/6_Performance/alignedTypes/.vscode/extensions.json b/cpp/6_Performance/alignedTypes/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/6_Performance/alignedTypes/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/6_Performance/alignedTypes/CMakeLists.txt b/cpp/6_Performance/alignedTypes/CMakeLists.txt index fc74c459..dd0ec46c 100644 --- a/cpp/6_Performance/alignedTypes/CMakeLists.txt +++ b/cpp/6_Performance/alignedTypes/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(alignedTypes LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for alignedTypes add_executable(alignedTypes alignedTypes.cu) target_compile_options(alignedTypes PRIVATE $<$:--extended-lambda>) target_compile_features(alignedTypes PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(alignedTypes PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/6_Performance/cudaGraphsPerfScaling/.vscode/c_cpp_properties.json b/cpp/6_Performance/cudaGraphsPerfScaling/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/6_Performance/cudaGraphsPerfScaling/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/6_Performance/cudaGraphsPerfScaling/.vscode/extensions.json b/cpp/6_Performance/cudaGraphsPerfScaling/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/6_Performance/cudaGraphsPerfScaling/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/6_Performance/cudaGraphsPerfScaling/CMakeLists.txt b/cpp/6_Performance/cudaGraphsPerfScaling/CMakeLists.txt index 0a89460c..63f2dad6 100644 --- a/cpp/6_Performance/cudaGraphsPerfScaling/CMakeLists.txt +++ b/cpp/6_Performance/cudaGraphsPerfScaling/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cudaGraphsPerfScaling LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for cudaGraphsPerfScaling add_executable(cudaGraphsPerfScaling cudaGraphPerfScaling.cu) target_compile_options(cudaGraphsPerfScaling PRIVATE $<$:--extended-lambda>) target_compile_features(cudaGraphsPerfScaling PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(cudaGraphsPerfScaling PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/6_Performance/transpose/.vscode/c_cpp_properties.json b/cpp/6_Performance/transpose/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/6_Performance/transpose/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/6_Performance/transpose/.vscode/extensions.json b/cpp/6_Performance/transpose/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/6_Performance/transpose/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/6_Performance/transpose/CMakeLists.txt b/cpp/6_Performance/transpose/CMakeLists.txt index 5c92d03c..08b82280 100644 --- a/cpp/6_Performance/transpose/CMakeLists.txt +++ b/cpp/6_Performance/transpose/CMakeLists.txt @@ -1,34 +1,25 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(transpose LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 75 80 86 87 89 90 100 110 120) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../Common) -# Source file -# Add target for transpose add_executable(transpose transpose.cu) target_compile_options(transpose PRIVATE $<$:--extended-lambda>) target_compile_features(transpose PRIVATE cxx_std_17 cuda_std_17) -set_target_properties(transpose PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/InstallSamples.cmake) +include(InstallSamples) setup_samples_install() diff --git a/cpp/7_libNVVM/CMakeLists.txt b/cpp/7_libNVVM/CMakeLists.txt index 83605b83..0e3c376f 100644 --- a/cpp/7_libNVVM/CMakeLists.txt +++ b/cpp/7_libNVVM/CMakeLists.txt @@ -71,8 +71,8 @@ find_file(LIBNVVM_HOME nvvm PATHS "$ENV{LIBNVVM_HOME}" "${CUDA_HOME}") message(STATUS "Using LIBNVVM_HOME: ${LIBNVVM_HOME}") # Find libNVVM and nvvm.h. -# (Linux: nvvm/lib64, windows: nvvm/lib/x64) -find_library(NVVM_LIB nvvm PATHS "${LIBNVVM_HOME}/lib64" "${LIBNVVM_HOME}/lib/x64") +# (Linux: nvvm/lib64, windows: nvvm/lib/x64, windows on arm:nvvm/lib/arm64) +find_library(NVVM_LIB nvvm PATHS "${LIBNVVM_HOME}/lib64" "${LIBNVVM_HOME}/lib/x64" "${LIBNVVM_HOME}/lib/arm64") find_file(NVVM_H nvvm.h PATH "${LIBNVVM_HOME}/include") get_filename_component(NVVM_INCLUDE_DIR ${NVVM_H} DIRECTORY) include_directories(${NVVM_INCLUDE_DIR}) @@ -110,7 +110,9 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}/common/include") # invocation. See the note about "cuda-c-linking" in README.md. if (ENABLE_CUDA_C_LINKING_SAMPLE) # Include the LLVM dev package which is required to build cuda-c-linking. - find_package(LLVM CONFIG PATHS "$ENV{LLVM_HOME}") + # LLVM_HOME is a HINTS entry rather than a PATHS one so that it is searched + # before the system directories, letting it select among installed LLVMs. + find_package(LLVM CONFIG HINTS "$ENV{LLVM_HOME}") if (LLVM_FOUND) add_subdirectory(cuda-c-linking) else () diff --git a/cpp/7_libNVVM/README.md b/cpp/7_libNVVM/README.md index cdabae0b..25e29750 100644 --- a/cpp/7_libNVVM/README.md +++ b/cpp/7_libNVVM/README.md @@ -71,27 +71,50 @@ update the CMake invocation in utils/build.sh or build.bat by adding A Note About the cuda-c-linking Sample -------------------------------------- -This sample requires a development package (or locally-built) LLVM library -between versions 7 to 14 inclusive. LLVM 15 defaults to using opaque pointers, -which are not supported in libNVVM for pre-Blackwell architectures. +This sample requires a development package (or locally-built) LLVM library, +version 7 or newer. -The LLVM_HOME environment variable is required for users who wish to build the -cuda-c-linking sample and have a locally built copy of LLVM that they wish to -use. That sample requires the development package of LLVM with the LLVM header -files and libraries. +Which LLVM versions are usable depends on the GPU the sample runs on. LLVM 15 +and newer emit opaque pointers, and libNVVM accepts those only for Blackwell +and later architectures; older architectures require the typed pointers that +LLVM 14 and older emit. The sample queries libNVVM for the LLVM IR version its +target accepts, so building against a newer LLVM and running on a pre-Blackwell +device reports the requirement and exits with code 2 rather than failing. Use +LLVM 7 to 14 if you need a single build that runs on any supported device. + +The LLVM_HOME environment variable selects which LLVM to build against. It is +required for users who have a locally built copy of LLVM they wish to use, and +it also picks between installed versions: several LLVM versions install side by +side, so a newer default LLVM does not prevent building this sample against an +older one. With more than one installed and LLVM_HOME unset, which of them is +found is unspecified, so set it explicitly. Whichever copy is used has to be a +development install, with the LLVM header files and libraries. If the LLVM dependencies are met, the user can enable the building of this sample by setting the CMake variable "ENABLE_CUDA_C_LINKING_SAMPLE" from either the command line invocation of CMake or by modifying the CMakeLists.txt in this directory. -Windows users should download LLVM 14 sources from llvm.org and build+install +Windows users should download LLVM sources from llvm.org and build+install LLVM locally. Using the llvm.org provided Windows installer lacks some of the required components the cuda-c-linking sample depends on. -For Ubuntu users, the "llvm-dev" package contains the LLVM headers and libraries -this sample requires, the user should not have to explicitly define an LLVM_HOME -in this case. +For Ubuntu users, the "llvm-dev" package contains the LLVM headers and +libraries this sample requires, and is found without any further configuration. +Note that "llvm-dev" is an unversioned metapackage that tracks the +distribution's current LLVM: on Ubuntu 24.04 it installs "llvm-18-dev", which +runs only on Blackwell and later. To build for an older device, add the +versioned package and select it explicitly: + +```bash +sudo apt install llvm-14-dev +LLVM_HOME=/usr/lib/llvm-14 cmake -S . -B build -DENABLE_CUDA_C_LINKING_SAMPLE=1 +``` + +LLVM 15 and newer reference zstd from their CMake package, which the Ubuntu +"llvm-*-dev" packages do not pull in. Install "libzstd-dev" alongside them, +or CMake fails while loading the LLVM package with a missing +"zstd::libzstd_shared" target. Windows users will want to build this sample using the same CMake build mode as they built LLVM with. For instance if they built LLVM in Release mode, diff --git a/cpp/7_libNVVM/cuda-c-linking/CMakeLists.txt b/cpp/7_libNVVM/cuda-c-linking/CMakeLists.txt index 719b17d1..42b3592c 100644 --- a/cpp/7_libNVVM/cuda-c-linking/CMakeLists.txt +++ b/cpp/7_libNVVM/cuda-c-linking/CMakeLists.txt @@ -25,26 +25,46 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. message(STATUS "Found LLVM Version ${LLVM_PACKAGE_VERSION}") -if (LLVM_PACKAGE_VERSION VERSION_GREATER_EQUAL "15" OR - LLVM_PACKAGE_VERSION VERSION_LESS "7") - message(STATUS "The cuda-c-linking sample is expected to build with " - "LLVM development libraries v7 to v14, opaque pointers are " - "not supported in libNVVM for pre-Blackwell architectures.") +if (LLVM_PACKAGE_VERSION VERSION_LESS "7") + message(STATUS "The cuda-c-linking sample requires LLVM development " + "libraries v7 or newer.") return() endif () +if (LLVM_PACKAGE_VERSION VERSION_GREATER_EQUAL "15") + message(STATUS "LLVM 15 and newer emit opaque pointers, which libNVVM " + "accepts only for Blackwell and later architectures. The " + "cuda-c-linking sample will build, and reports the " + "requirement at run time if the device is older. Build " + "against LLVM 14 or older to run on pre-Blackwell devices.") +endif () add_executable(cuda-c-linking cuda-c-linking.cpp) +# LLVM 16 and newer headers use C++17 constructs, so build the sample as C++17 +# when they are in use. Older LLVM versions keep the compiler default. +if (LLVM_PACKAGE_VERSION VERSION_GREATER_EQUAL "16") + target_compile_features(cuda-c-linking PRIVATE cxx_std_17) +endif () + add_test(NAME cuda-c-linking COMMAND cuda-c-linking WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") +# The sample exits with 2 when the device cannot accept the IR this build +# emits, which is a requirement it does not meet rather than a failure. +set_tests_properties(cuda-c-linking PROPERTIES SKIP_RETURN_CODE 2) target_link_libraries(cuda-c-linking ${NVVM_LIB} ${CUDA_LIB}) # See https://llvm.org/docs/CMake.html#developing-llvm-passes-out-of-source separate_arguments(LLVM_DEFINITIONS_LIST NATIVE_COMMAND ${LLVM_DEFINITIONS}) add_definitions(${LLVM_DEFINITIONS_LIST}) include_directories(${LLVM_INCLUDE_DIRS}) -llvm_map_components_to_libnames(llvm_libs core support) +# Distributions often ship LLVM only as one shared library instead of the +# per-component static libraries, so link that library when it is in use. +if (LLVM_LINK_LLVM_DYLIB) + set(llvm_libs LLVM) +else () + llvm_map_components_to_libnames(llvm_libs core support) +endif () target_link_libraries(cuda-c-linking ${llvm_libs}) if (UNIX) diff --git a/cpp/7_libNVVM/cuda-c-linking/README.md b/cpp/7_libNVVM/cuda-c-linking/README.md index 3c150354..13ca57f4 100644 --- a/cpp/7_libNVVM/cuda-c-linking/README.md +++ b/cpp/7_libNVVM/cuda-c-linking/README.md @@ -27,6 +27,21 @@ This sample is optionally built as part of the libnvvm samples from the CUDA samples tree. Please see the README file at the root of the libnvvm samples for build instructions. +It requires the LLVM development headers and libraries, version 7 or newer. +LLVM 15 and newer emit opaque pointers, which libNVVM accepts only for +Blackwell and later architectures, so such a build cannot run on an older GPU: + + $ ./cuda-c-linking + Using CUDA Device [0]: NVIDIA L4 + Device Compute Capability: 8.9 + This sample was built against LLVM 18, which emits opaque pointers, but + libNVVM accepts only LLVM 7 IR for compute_89. Build against LLVM 14 or + older to run on this device, or run on a Blackwell or later device. + +The sample exits with code 2 in that case, reporting an unmet requirement +rather than a failure. Building against LLVM 7 to 14 produces a binary that +runs on any device this sample supports. + Usage ----- diff --git a/cpp/7_libNVVM/cuda-c-linking/cuda-c-linking.cpp b/cpp/7_libNVVM/cuda-c-linking/cuda-c-linking.cpp index de7d1be1..ffe0e8e5 100644 --- a/cpp/7_libNVVM/cuda-c-linking/cuda-c-linking.cpp +++ b/cpp/7_libNVVM/cuda-c-linking/cuda-c-linking.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -35,6 +36,9 @@ #include #include #include +#if LLVM_VERSION_MAJOR >= 21 +#include +#endif #include #include #include @@ -67,7 +71,9 @@ static void __checkCudaErrors(CUresult err, const char *filename, int line) ((CUDA_SUCCESS == res) ? ename : "Unknown"), filename, line); - exit(err); + // Exit with EXIT_FAILURE rather than the error code, which 'main' + // reserves to report an unmet requirement. + exit(EXIT_FAILURE); } } @@ -76,10 +82,14 @@ void checkNVVMCall(nvvmResult res) { if (res != NVVM_SUCCESS) { errs() << "libnvvm call failed\n"; - exit(res); + exit(EXIT_FAILURE); } } +// The libNVVM architecture string for a compute capability, e.g. 10.0 becomes +// "compute_100". +std::string computeArch(int devMajor, int devMinor) { return "compute_" + utostr(devMajor) + utostr(devMinor); } + /// generateModule - Generate and LLVM IR module that calls an /// externally-defined function std::unique_ptr generateModule(LLVMContext &context) @@ -89,13 +99,22 @@ std::unique_ptr generateModule(LLVMContext &context) mod->setDataLayout("e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-i128:128:128-" "f32:32:32-f64:64:64-v16:16:16-v32:32:32-v64:64:64-v128:128:128-n16:32:" "64"); +#if LLVM_VERSION_MAJOR >= 21 + // LLVM 21 dropped the overload that takes the triple as a string. + mod->setTargetTriple(Triple("nvptx64-nvidia-cuda")); +#else mod->setTargetTriple("nvptx64-nvidia-cuda"); +#endif // Get pointers to some commonly-used types. - Type *voidTy = Type::getVoidTy(context); - Type *floatTy = Type::getFloatTy(context); - Type *i32Ty = Type::getInt32Ty(context); - Type *floatGenericPtrTy = PointerType::get(floatTy, /* address space */ 0); + Type *voidTy = Type::getVoidTy(context); +#if LLVM_VERSION_MAJOR >= 17 + // Pointers are opaque from LLVM 15 on, and LLVM 17 dropped the overload + // that takes a pointee type. The resulting IR spells this type 'ptr'. + Type *floatGenericPtrTy = PointerType::get(context, /* address space */ 0); +#else + Type *floatGenericPtrTy = PointerType::get(Type::getFloatTy(context), /* address space */ 0); +#endif // void @mandelbrot(float*) Type *mandelbrotParamTys[] = {floatGenericPtrTy}; @@ -139,7 +158,7 @@ std::unique_ptr generateModule(LLVMContext &context) } // Use libNVVM to compile an NVVM IR module to PTX. -std::string generatePtx(const std::string &module, int devMajor, int devMinor, const char *moduleName) +std::string generatePtx(const std::string &module, const std::string &arch, const char *moduleName) { assert(moduleName); @@ -149,9 +168,7 @@ std::string generatePtx(const std::string &module, int devMajor, int devMinor, c // Create a libNVVM compilation unit from the NVVM IR. checkNVVMCall(nvvmAddModuleToProgram(compileUnit, module.c_str(), module.size(), moduleName)); - std::string computeArg = "-arch=compute_"; - computeArg += utostr(devMajor); - computeArg += utostr(devMinor); + std::string computeArg = "-arch=" + arch; // Compile the NVVM IR into PTX. const char *options[] = {computeArg.c_str()}; @@ -216,9 +233,36 @@ int main(int argc, char **argv) checkCudaErrors(cuDeviceGetAttribute(&devMajor, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR, device)); checkCudaErrors(cuDeviceGetAttribute(&devMinor, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR, device)); outs() << "Device Compute Capability: " << devMajor << "." << devMinor << "\n"; - if (devMajor < 7 && devMinor < 5) { - errs() << "ERROR: Device 0 is not sm_75 or later.\n"; - return 1; + if (devMajor < 7 || (devMajor == 7 && devMinor < 5)) { + outs() << "Device 0 is not sm_75 or later.\n"; + // 2 reports an unmet hardware/toolchain requirement rather than a failure. + return 2; + } + + const std::string arch = computeArch(devMajor, devMinor); + + // The LLVM IR that libNVVM accepts depends on the target architecture: + // pre-Blackwell targets take LLVM 7 IR, which spells pointers with their + // pointee type ('float*'), while Blackwell and later take a much newer IR + // that also accepts the opaque pointers ('ptr') LLVM 15 and later emit. + // Ask libNVVM which one applies to this device rather than assuming. + int nvvmLLVMMajor = 0; + const nvvmResult archSupported = nvvmLLVMVersion(arch.c_str(), &nvvmLLVMMajor); + if (archSupported == NVVM_ERROR_INVALID_INPUT) { + // The device is newer than the toolkit this sample builds against. + outs() << "The libNVVM of this CUDA toolkit does not support " << arch + << ". Use a toolkit that supports this device.\n"; + // 2 reports an unmet hardware/toolchain requirement rather than a failure. + return 2; + } + checkNVVMCall(archSupported); + if (LLVM_VERSION_MAJOR >= 15 && nvvmLLVMMajor < 15) { + outs() << "This sample was built against LLVM " << LLVM_VERSION_MAJOR + << ", which emits opaque pointers, but libNVVM accepts only LLVM " << nvvmLLVMMajor << " IR for " << arch + << ". Build against LLVM 14 or older to run on this device, or run on a " + "Blackwell or later device.\n"; + // 2 reports an unmet hardware/toolchain requirement rather than a failure. + return 2; } // Generate the IR module @@ -239,7 +283,7 @@ int main(int argc, char **argv) } // Generate PTX. - std::string ptx = generatePtx(moduleStr, devMajor, devMinor, module->getModuleIdentifier().c_str()); + std::string ptx = generatePtx(moduleStr, arch, module->getModuleIdentifier().c_str()); if (SavePTX) { std::error_code err; raw_fd_ostream out("cuda-c-linking.kernel.ptx", err); diff --git a/cpp/7_libNVVM/device-side-launch/README.md b/cpp/7_libNVVM/device-side-launch/README.md index e8949677..d9ef3e9c 100644 --- a/cpp/7_libNVVM/device-side-launch/README.md +++ b/cpp/7_libNVVM/device-side-launch/README.md @@ -10,8 +10,8 @@ This document assumes the CUDA runtime is used. The method for device-side launch using the OpenCL runtime is similar but different. This document is written after the "Device-Side Launch from PTX" -section from CUDA C Programming Guide -(http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#device-side-launch-from-ptx). +section from CUDA Programming Guide +(https://docs.nvidia.com/cuda/cuda-programming-guide/04-special-topics/dynamic-parallelism.html#device-side-launch-from-ptx). Kernel Launch APIs ------------------ diff --git a/cpp/8_Platform_Specific/Tegra/EGLSync_CUDAEvent_Interop/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/EGLSync_CUDAEvent_Interop/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/EGLSync_CUDAEvent_Interop/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/EGLSync_CUDAEvent_Interop/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/EGLSync_CUDAEvent_Interop/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/EGLSync_CUDAEvent_Interop/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/EGLSync_CUDAEvent_Interop/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/EGLSync_CUDAEvent_Interop/CMakeLists.txt index 32b2a0be..fa563ee4 100644 --- a/cpp/8_Platform_Specific/Tegra/EGLSync_CUDAEvent_Interop/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/EGLSync_CUDAEvent_Interop/CMakeLists.txt @@ -1,22 +1,19 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(EGLSync_CUDAEvent_Interop LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_package(EGL) @@ -24,26 +21,18 @@ find_package(X11) find_package(OpenGL) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - # Source file if(${OpenGL_FOUND}) if(${EGL_FOUND}) if(${X11_FOUND}) - # Add target for EGLSync_CUDAEvent_Interop add_executable(EGLSync_CUDAEvent_Interop EGLSync_CUDAEvent_Interop.cu) - target_compile_options(EGLSync_CUDAEvent_Interop PRIVATE $<$:--extended-lambda>) - target_compile_features(EGLSync_CUDAEvent_Interop PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(EGLSync_CUDAEvent_Interop PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(EGLSync_CUDAEvent_Interop PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ${EGL_INCLUDE_DIR} ${X11_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ) - target_link_libraries(EGLSync_CUDAEvent_Interop CUDA::cuda_driver #CUDA::cudart @@ -51,8 +40,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ${X11_LIBRARIES} ${OPENGL_LIBRARIES} ) + include(InstallSamples) + setup_samples_install() else() - message(STATUS "X11 libraries not found - will not build sample 'EGLSyncCUDAEvent_Interop'") + message(STATUS "X11 libraries not found - will not build sample 'EGLSync_CUDAEvent_Interop'") endif() else() message(STATUS "EGL not found - will not build sample 'EGLSync_CUDAEvent_Interop'") @@ -64,7 +55,3 @@ else() message(STATUS "Will not build sample EGLSync_CUDAEvent_Interop - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/8_Platform_Specific/Tegra/cuDLAErrorReporting/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/cuDLAErrorReporting/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/cuDLAErrorReporting/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/cuDLAErrorReporting/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/cuDLAErrorReporting/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/cuDLAErrorReporting/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/cuDLAErrorReporting/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/cuDLAErrorReporting/CMakeLists.txt index 10580406..3f7a50d4 100644 --- a/cpp/8_Platform_Specific/Tegra/cuDLAErrorReporting/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/cuDLAErrorReporting/CMakeLists.txt @@ -1,53 +1,39 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cuDLAErrorReporting LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_library(CUDLA_LIB cudla PATHS ${CUDAToolkit_LIBRARY_DIR} ${CMAKE_LIBRARY_PATH}) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") if(CUDLA_LIB) - # Source file - # Add target for cuDLAErrorReporting add_executable(cuDLAErrorReporting main.cu) - target_compile_options(cuDLAErrorReporting PRIVATE $<$:--extended-lambda>) - target_compile_features(cuDLAErrorReporting PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(cuDLAErrorReporting PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(cuDLAErrorReporting PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) - target_link_libraries(cuDLAErrorReporting ${CUDLA_LIB} ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "CUDLA not found - will not build sample 'cuDLAErrorReporting'") endif() else() message(STATUS "Will not build sample cuDLAErrorReporting - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/8_Platform_Specific/Tegra/cuDLAHybridMode/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/cuDLAHybridMode/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/cuDLAHybridMode/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/cuDLAHybridMode/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/cuDLAHybridMode/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/cuDLAHybridMode/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/cuDLAHybridMode/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/cuDLAHybridMode/CMakeLists.txt index b0dab5ca..42dcf6fd 100644 --- a/cpp/8_Platform_Specific/Tegra/cuDLAHybridMode/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/cuDLAHybridMode/CMakeLists.txt @@ -1,53 +1,39 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cuDLAHybridMode LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_library(CUDLA_LIB cudla PATHS ${CUDAToolkit_LIBRARY_DIR} ${CMAKE_LIBRARY_PATH}) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") if(CUDLA_LIB) - # Source file - # Add target for cuDLAHybridMode add_executable(cuDLAHybridMode main.cu) - target_compile_options(cuDLAHybridMode PRIVATE $<$:--extended-lambda>) - target_compile_features(cuDLAHybridMode PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(cuDLAHybridMode PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(cuDLAHybridMode PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) - target_link_libraries(cuDLAHybridMode ${CUDLA_LIB} ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "CUDLA not found - will not build sample 'cuDLAHybridMode'") endif() else() message(STATUS "Will not build sample cuDLAHybridMode - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsHybrid/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsHybrid/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsHybrid/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsHybrid/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsHybrid/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsHybrid/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsHybrid/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsHybrid/CMakeLists.txt index be17b563..197b908b 100644 --- a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsHybrid/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsHybrid/CMakeLists.txt @@ -1,53 +1,39 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cuDLALayerwiseStatsHybrid LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_library(CUDLA_LIB cudla PATHS ${CUDAToolkit_LIBRARY_DIR} ${CMAKE_LIBRARY_PATH}) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") if(CUDLA_LIB) - # Source file - # Add target for cuDLALayerwiseStatsHybrid add_executable(cuDLALayerwiseStatsHybrid main.cu) - target_compile_options(cuDLALayerwiseStatsHybrid PRIVATE $<$:--extended-lambda>) - target_compile_features(cuDLALayerwiseStatsHybrid PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(cuDLALayerwiseStatsHybrid PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(cuDLALayerwiseStatsHybrid PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ) - target_link_libraries(cuDLALayerwiseStatsHybrid ${CUDLA_LIB} ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "CUDLA not found - will not build sample 'cuDLALayerwiseStatsHybrid'") endif() else() message(STATUS "Will not build sample cuDLALayerwiseStatsHybrid - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsStandalone/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsStandalone/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsStandalone/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsStandalone/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsStandalone/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsStandalone/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsStandalone/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsStandalone/CMakeLists.txt index 8d7eee3a..69b06ab4 100644 --- a/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsStandalone/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/cuDLALayerwiseStatsStandalone/CMakeLists.txt @@ -1,23 +1,19 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cuDLALayerwiseStatsStandalone LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_package(NVSCI) @@ -26,25 +22,19 @@ find_library(CUDLA_LIB cudla PATHS ${CUDAToolkit_LIBRARY_DIR} ${CMAKE_LIBRARY_PA if(CMAKE_SYSTEM_NAME STREQUAL "Linux") if(CUDLA_LIB) if(NVSCI_FOUND) - # Source file - # Add target for cuDLALayerwiseStatsStandalone add_executable(cuDLALayerwiseStatsStandalone main.cpp) - target_compile_options(cuDLALayerwiseStatsStandalone PRIVATE $<$:--extended-lambda>) - target_compile_features(cuDLALayerwiseStatsStandalone PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(cuDLALayerwiseStatsStandalone PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(cuDLALayerwiseStatsStandalone PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ${NVSCI_INCLUDE_DIRS} ) - target_link_libraries(cuDLALayerwiseStatsStandalone ${CUDLA_LIB} ${NVSCI_LIBRARIES} ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "NvSCI not found - will not build sample 'cuDLALayerwiseStatsStandalone'") endif() @@ -54,7 +44,3 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") else() message(STATUS "Will not build sample cuDLALayerwiseStatsStandalone - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/8_Platform_Specific/Tegra/cuDLAStandaloneMode/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/cuDLAStandaloneMode/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/cuDLAStandaloneMode/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/cuDLAStandaloneMode/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/cuDLAStandaloneMode/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/cuDLAStandaloneMode/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/cuDLAStandaloneMode/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/cuDLAStandaloneMode/CMakeLists.txt index 86b3ffed..68178f9b 100644 --- a/cpp/8_Platform_Specific/Tegra/cuDLAStandaloneMode/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/cuDLAStandaloneMode/CMakeLists.txt @@ -1,23 +1,19 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cuDLAStandaloneMode LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_package(NVSCI) @@ -26,25 +22,19 @@ find_library(CUDLA_LIB cudla PATHS ${CUDAToolkit_LIBRARY_DIR} ${CMAKE_LIBRARY_PA if(CMAKE_SYSTEM_NAME STREQUAL "Linux") if(CUDLA_LIB) if(NVSCI_FOUND) - # Source file - # Add target for cuDLAStandaloneMode add_executable(cuDLAStandaloneMode main.cpp) - target_compile_options(cuDLAStandaloneMode PRIVATE $<$:--extended-lambda>) - target_compile_features(cuDLAStandaloneMode PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(cuDLAStandaloneMode PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(cuDLAStandaloneMode PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ${NVSCI_INCLUDE_DIRS} ) - target_link_libraries(cuDLAStandaloneMode ${CUDLA_LIB} ${NVSCI_LIBRARIES} ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "NvSCI not found - will not build sample 'cuDLAStandaloneMode'") endif() @@ -54,7 +44,3 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") else() message(STATUS "Will not build sample cuDLAStandaloneMode - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/8_Platform_Specific/Tegra/cudaNvSciBufMultiplanar/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/cudaNvSciBufMultiplanar/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/cudaNvSciBufMultiplanar/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/cudaNvSciBufMultiplanar/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/cudaNvSciBufMultiplanar/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/cudaNvSciBufMultiplanar/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/cudaNvSciBufMultiplanar/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/cudaNvSciBufMultiplanar/CMakeLists.txt index b6708b16..b29a5b2e 100644 --- a/cpp/8_Platform_Specific/Tegra/cudaNvSciBufMultiplanar/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/cudaNvSciBufMultiplanar/CMakeLists.txt @@ -1,44 +1,32 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cudaNvSciBufMultiplanar LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_package(NVSCI) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") if(NVSCI_FOUND) - # Source file - # Add target for cudaNvSciBufMultiplanar add_executable(cudaNvSciBufMultiplanar imageKernels.cu cudaNvSciBufMultiplanar.cpp main.cpp) - target_compile_options(cudaNvSciBufMultiplanar PRIVATE $<$:--extended-lambda>) - target_compile_features(cudaNvSciBufMultiplanar PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(cudaNvSciBufMultiplanar PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(cudaNvSciBufMultiplanar PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ${NVSCI_INCLUDE_DIRS} ) - target_link_libraries(cudaNvSciBufMultiplanar CUDA::cuda_driver ${NVSCI_LIBRARIES} @@ -52,13 +40,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") set_target_properties(cudaNvSciBufMultiplanar PROPERTIES ADDITIONAL_CLEAN_FILES "image_out.yuv" ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "NvSCI not found - will not build sample 'cudaNvSciBufMultiplanar'") endif() else() message(STATUS "Will not build sample cudaNvSciBufMultiplanar - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/8_Platform_Specific/Tegra/cudaNvSciNvMedia/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/cudaNvSciNvMedia/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/cudaNvSciNvMedia/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/cudaNvSciNvMedia/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/cudaNvSciNvMedia/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/cudaNvSciNvMedia/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/cudaNvSciNvMedia/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/cudaNvSciNvMedia/CMakeLists.txt index b043622f..8ebaaff2 100644 --- a/cpp/8_Platform_Specific/Tegra/cudaNvSciNvMedia/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/cudaNvSciNvMedia/CMakeLists.txt @@ -1,23 +1,19 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(cudaNvSciNvMedia LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_package(NVSCI) @@ -49,22 +45,14 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") if(NVMEDIA_LIB AND NVMEDIA_INCLUDE_DIR) message(STATUS "FOUND NVMEDIA libs: ${NVMEDIA_LIB}") message(STATUS "Using NVMEDIA headers path: ${NVMEDIA_INCLUDE_DIR}") - # Source file - # Add target for cudaNvSciNvMedia add_executable(cudaNvSciNvMedia imageKernels.cu cudaNvSciNvMedia.cpp main.cpp) - target_compile_options(cudaNvSciNvMedia PRIVATE $<$:--extended-lambda>) - target_compile_features(cudaNvSciNvMedia PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(cudaNvSciNvMedia PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(cudaNvSciNvMedia PUBLIC ${CUDAToolkit_INCLUDE_DIRS} ${NVSCI_INCLUDE_DIRS} ${NVMEDIA_INCLUDE_DIR} ) - target_link_libraries(cudaNvSciNvMedia CUDA::cuda_driver ${NVSCI_LIBRARIES} @@ -75,11 +63,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/teapot.rgba ${CMAKE_CURRENT_BINARY_DIR}/teapot.rgba ) - # Specify additional clean files set_target_properties(cudaNvSciNvMedia PROPERTIES ADDITIONAL_CLEAN_FILES "teapot_out.rgba" ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "NvMedia not found - will not build sample 'cudaNvSciNvMedia'") endif() @@ -89,7 +78,3 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") else() message(STATUS "Will not build sample cudaNvSciNvMedia - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/8_Platform_Specific/Tegra/fluidsGLES/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/fluidsGLES/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/fluidsGLES/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/fluidsGLES/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/fluidsGLES/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/fluidsGLES/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/fluidsGLES/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/fluidsGLES/CMakeLists.txt index 9f04ae7a..b449afb1 100644 --- a/cpp/8_Platform_Specific/Tegra/fluidsGLES/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/fluidsGLES/CMakeLists.txt @@ -1,22 +1,19 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(fluidsGLES LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_package(EGL) @@ -24,25 +21,17 @@ find_package(X11) find_package(OpenGL) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - # Source file if(${OpenGL_FOUND}) if(${EGL_FOUND}) if(${X11_FOUND}) - # Add target for fluidsGLES add_executable(fluidsGLES fluidsGLES.cpp fluidsGLES_kernels.cu) - target_compile_options(fluidsGLES PRIVATE $<$:--extended-lambda>) - target_compile_features(fluidsGLES PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(fluidsGLES PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(fluidsGLES PUBLIC ${EGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ) - target_link_libraries(fluidsGLES CUDA::cuda_driver CUDA::cufft @@ -50,7 +39,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ${X11_LIBRARIES} ${OPENGL_LIBRARIES} ) - # Copy the .glsl files to the output directory add_custom_command(TARGET fluidsGLES POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different @@ -58,6 +46,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ${CMAKE_CURRENT_SOURCE_DIR}/mesh.vert.glsl ${CMAKE_CURRENT_BINARY_DIR} ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "X11 libraries not found - will not build sample 'fluidsGLES'") endif() @@ -70,7 +60,3 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") else() message(STATUS "Will not build sample fluidsGLES - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/8_Platform_Specific/Tegra/nbody_opengles/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/nbody_opengles/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/nbody_opengles/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/nbody_opengles/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/nbody_opengles/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/nbody_opengles/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/nbody_opengles/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/nbody_opengles/CMakeLists.txt index d55101c5..4c56a287 100644 --- a/cpp/8_Platform_Specific/Tegra/nbody_opengles/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/nbody_opengles/CMakeLists.txt @@ -1,23 +1,19 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(nbody_opengles LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_package(EGL) @@ -25,30 +21,24 @@ find_package(X11) find_package(OpenGL) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - # Source file if(${OpenGL_FOUND}) if(${EGL_FOUND}) if(${X11_FOUND}) - # Add target for nbody_opengles add_executable(nbody_opengles bodysystemcuda.cu render_particles.cpp nbody_opengles.cpp) - target_compile_options(nbody_opengles PRIVATE $<$:--extended-lambda>) - target_compile_features(nbody_opengles PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(nbody_opengles PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(nbody_opengles PUBLIC ${EGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ) - target_link_libraries(nbody_opengles ${EGL_LIBRARY} ${X11_LIBRARIES} ${OPENGL_LIBRARIES} ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "X11 libraries not found - will not build sample 'nbody_opengles'") endif() @@ -61,7 +51,3 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") else() message(STATUS "Will not build sample nbody_opengles - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/8_Platform_Specific/Tegra/simpleGLES/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/simpleGLES/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/simpleGLES/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/simpleGLES/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/simpleGLES/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/simpleGLES/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/simpleGLES/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/simpleGLES/CMakeLists.txt index 3d88898b..7ad3bab3 100644 --- a/cpp/8_Platform_Specific/Tegra/simpleGLES/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/simpleGLES/CMakeLists.txt @@ -1,23 +1,19 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleGLES LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_package(EGL) @@ -25,31 +21,22 @@ find_package(X11) find_package(OpenGL) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - # Source file if(${OpenGL_FOUND}) if(${EGL_FOUND}) if(${X11_FOUND}) - # Add target for simpleGLES add_executable(simpleGLES simpleGLES.cu) - target_compile_options(simpleGLES PRIVATE $<$:--extended-lambda>) - target_compile_features(simpleGLES PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleGLES PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleGLES PUBLIC ${EGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} ) - target_link_libraries(simpleGLES ${EGL_LIBRARY} ${X11_LIBRARIES} ${OPENGL_LIBRARIES} ) - # Copy the .glsl files to the output directory add_custom_command(TARGET simpleGLES POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different @@ -57,7 +44,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ${CMAKE_CURRENT_SOURCE_DIR}/mesh.vert.glsl ${CMAKE_CURRENT_BINARY_DIR} ) - + include(InstallSamples) + setup_samples_install() else() message(STATUS "X11 libraries not found - will not build sample 'simpleGLES'") endif() @@ -70,7 +58,3 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") else() message(STATUS "Will not build sample simpleGLES - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/8_Platform_Specific/Tegra/simpleGLES_EGLOutput/.vscode/c_cpp_properties.json b/cpp/8_Platform_Specific/Tegra/simpleGLES_EGLOutput/.vscode/c_cpp_properties.json deleted file mode 100644 index f0066b0f..00000000 --- a/cpp/8_Platform_Specific/Tegra/simpleGLES_EGLOutput/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/../../../Common" - ], - "defines": [], - "compilerPath": "/usr/local/cuda/bin/nvcc", - "cStandard": "gnu17", - "cppStandard": "gnu++14", - "intelliSenseMode": "linux-gcc-x64", - "configurationProvider": "ms-vscode.makefile-tools" - } - ], - "version": 4 -} diff --git a/cpp/8_Platform_Specific/Tegra/simpleGLES_EGLOutput/.vscode/extensions.json b/cpp/8_Platform_Specific/Tegra/simpleGLES_EGLOutput/.vscode/extensions.json deleted file mode 100644 index c7eb54dc..00000000 --- a/cpp/8_Platform_Specific/Tegra/simpleGLES_EGLOutput/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "nvidia.nsight-vscode-edition", - "ms-vscode.cpptools", - "ms-vscode.makefile-tools" - ] -} diff --git a/cpp/8_Platform_Specific/Tegra/simpleGLES_EGLOutput/CMakeLists.txt b/cpp/8_Platform_Specific/Tegra/simpleGLES_EGLOutput/CMakeLists.txt index 7c362e1d..7c0232e7 100644 --- a/cpp/8_Platform_Specific/Tegra/simpleGLES_EGLOutput/CMakeLists.txt +++ b/cpp/8_Platform_Specific/Tegra/simpleGLES_EGLOutput/CMakeLists.txt @@ -1,23 +1,19 @@ cmake_minimum_required(VERSION 3.20) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/Modules") +set(SAMPLE_DISALLOW_ARCHS 75 80 86 89 90 100 103 107 120) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() project(simpleGLES_EGLOutput LANGUAGES C CXX CUDA) +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/CudaSampleCommon.cmake") + find_package(CUDAToolkit REQUIRED) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 87 110) -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Wno-deprecated-gpu-targets") - -if(ENABLE_CUDA_DEBUG) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G") # enable cuda-gdb (may significantly affect performance on some targets) -else() - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) -endif() - -# Include directories and libraries include_directories(../../../../Common) find_package(EGL) @@ -34,29 +30,21 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") set(CMAKE_LIBRARY_PATH "/usr/lib/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu" ${CMAKE_LIBRARY_PATH}) find_library(DRM_LIB drm PATHS ${CMAKE_LIBRARY_PATH}) - # Source file - # Add target for simpleGLES_EGLOutput add_executable(simpleGLES_EGLOutput simpleGLES_EGLOutput.cu) target_compile_options(simpleGLES_EGLOutput PRIVATE $<$:--extended-lambda>) - target_compile_features(simpleGLES_EGLOutput PRIVATE cxx_std_17 cuda_std_17) - - set_target_properties(simpleGLES_EGLOutput PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - target_include_directories(simpleGLES_EGLOutput PUBLIC ${EGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIR} ${DRM_INCLUDE_PATH} ) - target_link_libraries(simpleGLES_EGLOutput ${EGL_LIBRARY} ${X11_LIBRARIES} ${OPENGL_LIBRARIES} ${DRM_LIB} ) - # Copy the .glsl files to the output directory add_custom_command(TARGET simpleGLES_EGLOutput POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different @@ -64,6 +52,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ${CMAKE_CURRENT_SOURCE_DIR}/mesh.vert.glsl ${CMAKE_CURRENT_BINARY_DIR} ) + include(InstallSamples) + setup_samples_install() else() message(STATUS "X11 libraries not found - will not build sample 'simpleGLES_EGLOutput'") endif() @@ -76,7 +66,3 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") else() message(STATUS "Will not build sample simpleGLES_EGLOutput - requires Linux OS") endif() - -# Include installation configuration -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../../cmake/InstallSamples.cmake) -setup_samples_install() diff --git a/cpp/9_CUDA_Tile/helloTile/CMakeLists.txt b/cpp/9_CUDA_Tile/helloTile/CMakeLists.txt index 1406fea7..544e9171 100644 --- a/cpp/9_CUDA_Tile/helloTile/CMakeLists.txt +++ b/cpp/9_CUDA_Tile/helloTile/CMakeLists.txt @@ -1,12 +1,27 @@ cmake_minimum_required(VERSION 3.20) +set(SAMPLE_DISALLOW_ARCHS 75) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") project(helloTile LANGUAGES C CXX CUDA) -find_package(CUDAToolkit REQUIRED) +# Tile samples need C++20. If the host or CUDA compiler can't provide it, +# skip this sample instead of aborting configure. +if(NOT "cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES + OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) + OR NOT "cuda_std_20" IN_LIST CMAKE_CUDA_COMPILE_FEATURES) + message(STATUS "Compiler lacks required C++20 support - skipping ${PROJECT_NAME}") + return() +endif() -set(CMAKE_CUDA_ARCHITECTURES 80 86 87 89 90 100 110 120) +find_package(CUDAToolkit REQUIRED) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --enable-tile") diff --git a/cpp/9_CUDA_Tile/tileBmm/CMakeLists.txt b/cpp/9_CUDA_Tile/tileBmm/CMakeLists.txt index 0bcbbfcd..1b2ba8a8 100644 --- a/cpp/9_CUDA_Tile/tileBmm/CMakeLists.txt +++ b/cpp/9_CUDA_Tile/tileBmm/CMakeLists.txt @@ -1,12 +1,27 @@ cmake_minimum_required(VERSION 3.20) +set(SAMPLE_DISALLOW_ARCHS 75) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") project(tileBmm LANGUAGES C CXX CUDA) -find_package(CUDAToolkit REQUIRED) +# Tile samples need C++20. If the host or CUDA compiler can't provide it, +# skip this sample instead of aborting configure. +if(NOT "cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES + OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) + OR NOT "cuda_std_20" IN_LIST CMAKE_CUDA_COMPILE_FEATURES) + message(STATUS "Compiler lacks required C++20 support - skipping ${PROJECT_NAME}") + return() +endif() -set(CMAKE_CUDA_ARCHITECTURES 80 86 87 89 90 100 110 120) +find_package(CUDAToolkit REQUIRED) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --enable-tile") diff --git a/cpp/9_CUDA_Tile/tileLayerNorm/CMakeLists.txt b/cpp/9_CUDA_Tile/tileLayerNorm/CMakeLists.txt index 7010fe7a..e6b1f5c9 100644 --- a/cpp/9_CUDA_Tile/tileLayerNorm/CMakeLists.txt +++ b/cpp/9_CUDA_Tile/tileLayerNorm/CMakeLists.txt @@ -1,12 +1,27 @@ cmake_minimum_required(VERSION 3.20) +set(SAMPLE_DISALLOW_ARCHS 75) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") project(tileLayerNorm LANGUAGES C CXX CUDA) -find_package(CUDAToolkit REQUIRED) +# Tile samples need C++20. If the host or CUDA compiler can't provide it, +# skip this sample instead of aborting configure. +if(NOT "cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES + OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) + OR NOT "cuda_std_20" IN_LIST CMAKE_CUDA_COMPILE_FEATURES) + message(STATUS "Compiler lacks required C++20 support - skipping ${PROJECT_NAME}") + return() +endif() -set(CMAKE_CUDA_ARCHITECTURES 80 86 87 89 90 100 110 120) +find_package(CUDAToolkit REQUIRED) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --enable-tile") diff --git a/cpp/9_CUDA_Tile/tileMatmul/CMakeLists.txt b/cpp/9_CUDA_Tile/tileMatmul/CMakeLists.txt index bb496cf8..eee2dbf4 100644 --- a/cpp/9_CUDA_Tile/tileMatmul/CMakeLists.txt +++ b/cpp/9_CUDA_Tile/tileMatmul/CMakeLists.txt @@ -1,12 +1,27 @@ cmake_minimum_required(VERSION 3.20) +set(SAMPLE_DISALLOW_ARCHS 75) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") project(tileMatmul LANGUAGES C CXX CUDA) -find_package(CUDAToolkit REQUIRED) +# Tile samples need C++20. If the host or CUDA compiler can't provide it, +# skip this sample instead of aborting configure. +if(NOT "cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES + OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) + OR NOT "cuda_std_20" IN_LIST CMAKE_CUDA_COMPILE_FEATURES) + message(STATUS "Compiler lacks required C++20 support - skipping ${PROJECT_NAME}") + return() +endif() -set(CMAKE_CUDA_ARCHITECTURES 80 86 87 89 90 100 110 120) +find_package(CUDAToolkit REQUIRED) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --enable-tile") diff --git a/cpp/9_CUDA_Tile/tileMatmulAutotuner/CMakeLists.txt b/cpp/9_CUDA_Tile/tileMatmulAutotuner/CMakeLists.txt index 4ed4807c..1768e68c 100644 --- a/cpp/9_CUDA_Tile/tileMatmulAutotuner/CMakeLists.txt +++ b/cpp/9_CUDA_Tile/tileMatmulAutotuner/CMakeLists.txt @@ -1,9 +1,26 @@ cmake_minimum_required(VERSION 3.20) +set(SAMPLE_DISALLOW_ARCHS 75) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") project(tileMatmulAutotuner LANGUAGES C CXX CUDA) +# Tile samples need C++20. If the host or CUDA compiler can't provide it, +# skip this sample instead of aborting configure. +if(NOT "cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES + OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) + OR NOT "cuda_std_20" IN_LIST CMAKE_CUDA_COMPILE_FEATURES) + message(STATUS "Compiler lacks required C++20 support - skipping ${PROJECT_NAME}") + return() +endif() + find_package(CUDAToolkit REQUIRED) get_filename_component(CUDA_TOOLKIT_BIN_DIR "${CMAKE_CUDA_COMPILER}" DIRECTORY) @@ -12,9 +29,6 @@ find_program(TILEIRAS_EXECUTABLE tileiras REQUIRED ) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -set(CMAKE_CUDA_ARCHITECTURES 80 86 87 89 90 100 110 120) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --enable-tile") if(ENABLE_CUDA_DEBUG) @@ -23,6 +37,12 @@ else() set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") # add line information to all builds for debug tools (exclusive to -G option) endif() +# This sample is not supported on QNX (needs tileiras/nvcc at runtime). +if(CMAKE_SYSTEM_NAME STREQUAL "QNX") + message(STATUS "Will not build sample ${PROJECT_NAME} - not supported on QNX") + return() +endif() + # Include directories and libraries include_directories(../../../Common ../Benchmark_Common) diff --git a/cpp/9_CUDA_Tile/tileRope/CMakeLists.txt b/cpp/9_CUDA_Tile/tileRope/CMakeLists.txt index e9c0d7f7..ddf1dfb4 100644 --- a/cpp/9_CUDA_Tile/tileRope/CMakeLists.txt +++ b/cpp/9_CUDA_Tile/tileRope/CMakeLists.txt @@ -1,12 +1,27 @@ cmake_minimum_required(VERSION 3.20) +set(SAMPLE_DISALLOW_ARCHS 75) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") project(tileRope LANGUAGES C CXX CUDA) -find_package(CUDAToolkit REQUIRED) +# Tile samples need C++20. If the host or CUDA compiler can't provide it, +# skip this sample instead of aborting configure. +if(NOT "cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES + OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) + OR NOT "cuda_std_20" IN_LIST CMAKE_CUDA_COMPILE_FEATURES) + message(STATUS "Compiler lacks required C++20 support - skipping ${PROJECT_NAME}") + return() +endif() -set(CMAKE_CUDA_ARCHITECTURES 80 86 87 89 90 100 110 120) +find_package(CUDAToolkit REQUIRED) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --enable-tile") diff --git a/cpp/9_CUDA_Tile/tileSpMV/CMakeLists.txt b/cpp/9_CUDA_Tile/tileSpMV/CMakeLists.txt index 8228c74a..8c98591a 100644 --- a/cpp/9_CUDA_Tile/tileSpMV/CMakeLists.txt +++ b/cpp/9_CUDA_Tile/tileSpMV/CMakeLists.txt @@ -1,12 +1,27 @@ cmake_minimum_required(VERSION 3.20) +set(SAMPLE_DISALLOW_ARCHS 75) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") project(tileSpMV LANGUAGES C CXX CUDA) -find_package(CUDAToolkit REQUIRED) +# Tile samples need C++20. If the host or CUDA compiler can't provide it, +# skip this sample instead of aborting configure. +if(NOT "cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES + OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) + OR NOT "cuda_std_20" IN_LIST CMAKE_CUDA_COMPILE_FEATURES) + message(STATUS "Compiler lacks required C++20 support - skipping ${PROJECT_NAME}") + return() +endif() -set(CMAKE_CUDA_ARCHITECTURES 80 86 87 89 90 100 110 120) +find_package(CUDAToolkit REQUIRED) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --enable-tile") diff --git a/cpp/9_CUDA_Tile/tileTranspose/CMakeLists.txt b/cpp/9_CUDA_Tile/tileTranspose/CMakeLists.txt index 401c8634..ae7dd1d6 100644 --- a/cpp/9_CUDA_Tile/tileTranspose/CMakeLists.txt +++ b/cpp/9_CUDA_Tile/tileTranspose/CMakeLists.txt @@ -1,12 +1,27 @@ cmake_minimum_required(VERSION 3.20) +set(SAMPLE_DISALLOW_ARCHS 75) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") project(tileTranspose LANGUAGES C CXX CUDA) -find_package(CUDAToolkit REQUIRED) +# Tile samples need C++20. If the host or CUDA compiler can't provide it, +# skip this sample instead of aborting configure. +if(NOT "cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES + OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) + OR NOT "cuda_std_20" IN_LIST CMAKE_CUDA_COMPILE_FEATURES) + message(STATUS "Compiler lacks required C++20 support - skipping ${PROJECT_NAME}") + return() +endif() -set(CMAKE_CUDA_ARCHITECTURES 80 86 87 89 90 100 110 120) +find_package(CUDAToolkit REQUIRED) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --enable-tile") diff --git a/cpp/9_CUDA_Tile/tileVectorAdd/CMakeLists.txt b/cpp/9_CUDA_Tile/tileVectorAdd/CMakeLists.txt index a7f9ab2f..44ce10fe 100644 --- a/cpp/9_CUDA_Tile/tileVectorAdd/CMakeLists.txt +++ b/cpp/9_CUDA_Tile/tileVectorAdd/CMakeLists.txt @@ -1,12 +1,27 @@ cmake_minimum_required(VERSION 3.20) +set(SAMPLE_DISALLOW_ARCHS 75) + +include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/DetectCudaArch.cmake") + +if(SAMPLE_SKIP_BUILD) + return() +endif() + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/Modules") project(tileVectorAdd LANGUAGES C CXX CUDA) -find_package(CUDAToolkit REQUIRED) +# Tile samples need C++20. If the host or CUDA compiler can't provide it, +# skip this sample instead of aborting configure. +if(NOT "cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES + OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11) + OR NOT "cuda_std_20" IN_LIST CMAKE_CUDA_COMPILE_FEATURES) + message(STATUS "Compiler lacks required C++20 support - skipping ${PROJECT_NAME}") + return() +endif() -set(CMAKE_CUDA_ARCHITECTURES 80 86 87 89 90 100 110 120) +find_package(CUDAToolkit REQUIRED) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --enable-tile") diff --git a/python/1_GettingStarted/blurImageUnifiedMemory/README.md b/python/1_GettingStarted/blurImageUnifiedMemory/README.md index 93bdd26d..33d9184a 100644 --- a/python/1_GettingStarted/blurImageUnifiedMemory/README.md +++ b/python/1_GettingStarted/blurImageUnifiedMemory/README.md @@ -112,12 +112,12 @@ When returning a zero-copy view, the caller must close the buffers after use (e. ### Platform Support: -This sample relies on `ManagedMemoryResource` with **concurrent host access** -to managed allocations while GPU kernels are in flight. That behavior -requires the device property `concurrent_managed_access=True`, which is only -supported on Linux with HMM (Pascal and newer). On Windows (WDDM/MCDM/TCC) -the property is `False`, so the sample exits early with a waive message and -exit code `2` instead of attempting a run that would crash the process. +This sample builds host NumPy views over managed allocations, which requires +the device property `concurrent_managed_access=True`. Devices that report +`False` — Windows (WDDM/MCDM/TCC), and older integrated GPUs such as Jetson +Orin — keep managed allocations GPU-exclusive, so the sample reports the +missing capability and exits with code `2` instead of attempting a run that +would crash the process. ## Installation @@ -174,4 +174,4 @@ Verifying result... - [cuda.core Documentation](https://nvidia.github.io/cuda-python/cuda-core/latest/) - [cuda.core.Program](https://nvidia.github.io/cuda-python/cuda-core/latest/generated/cuda.core.Program.html) - [cuda.core.ManagedMemoryResource](https://nvidia.github.io/cuda-python/cuda-core/latest/generated/cuda.core.ManagedMemoryResource.html) -- [CUDA Managed Memory](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#um-unified-memory-programming-hd) +- [CUDA Managed Memory](https://docs.nvidia.com/cuda/cuda-programming-guide/04-special-topics/unified-memory.html#unified-memory) diff --git a/python/1_GettingStarted/blurImageUnifiedMemory/blurImageUnifiedMemory.py b/python/1_GettingStarted/blurImageUnifiedMemory/blurImageUnifiedMemory.py index 20a05d2e..b81f5e81 100644 --- a/python/1_GettingStarted/blurImageUnifiedMemory/blurImageUnifiedMemory.py +++ b/python/1_GettingStarted/blurImageUnifiedMemory/blurImageUnifiedMemory.py @@ -197,14 +197,6 @@ def main(): 3. Unified memory with cuda.core.ManagedMemoryResource 4. Kernel launch with cuda.core.launch and LaunchConfig """ - if sys.platform == "win32": - print( - "This sample relies on ManagedMemoryResource with concurrent host " - "access, which is not supported on Windows " - "(concurrent_managed_access=False). Waiving this sample." - ) - sys.exit(2) - print("=" * 60) print("Image Blur with Unified Memory (cuda.core)") print("=" * 60) @@ -213,6 +205,13 @@ def main(): device = Device(0) device.set_current() + # This sample builds host NumPy views over managed memory. Devices without + # concurrent managed access keep managed allocations GPU-exclusive while + # the GPU is active, so those host views fault. + if not device.properties.concurrent_managed_access: + print("Concurrent managed memory access is not supported on this platform.") + sys.exit(2) + print(f"\nDevice: {device.name}") print(f"Compute Capability: sm_{device.arch}") diff --git a/python/1_GettingStarted/copyImageArraytoGPU/copyImageArraytoGPU.py b/python/1_GettingStarted/copyImageArraytoGPU/copyImageArraytoGPU.py index 310fc361..812bd0c3 100644 --- a/python/1_GettingStarted/copyImageArraytoGPU/copyImageArraytoGPU.py +++ b/python/1_GettingStarted/copyImageArraytoGPU/copyImageArraytoGPU.py @@ -189,6 +189,14 @@ def main(): # Step 1: Set up CUDA device and stream dev = Device() # Get default CUDA device (GPU 0) dev.set_current() # Make this device the active one + + # Pinned memory resources are backed by a host memory pool, which requires + # CUDA memory-pool support. This is not available on every platform (for + # example, Windows in TCC mode), so check before using it. + if not dev.properties.host_memory_pools_supported: + print("Host pinned memory pools are not supported on this platform.") + return 2 + stream = dev.create_stream() # Create stream for async operations print(f"Device: {dev.name}") @@ -233,7 +241,8 @@ def main(): cp.cuda.Stream.null.use() # Reset CuPy's stream to default print("\nDone") + return 0 if __name__ == "__main__": - main() + sys.exit(main()) diff --git a/python/1_GettingStarted/deviceQuery/README.md b/python/1_GettingStarted/deviceQuery/README.md index 17e639c3..b1c8a2a3 100644 --- a/python/1_GettingStarted/deviceQuery/README.md +++ b/python/1_GettingStarted/deviceQuery/README.md @@ -186,4 +186,4 @@ For multi-GPU systems, the output will include information for all detected devi - [CUDA Python Documentation](https://nvidia.github.io/cuda-python/) - [cuda.core API Guide](https://nvidia.github.io/cuda-python/cuda-core/latest/) -- [CUDA Programming Guide - Device Information](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#device-enumeration) +- [CUDA Programming Guide - Device Information](https://docs.nvidia.com/cuda/cuda-programming-guide/03-advanced/multi-gpu-systems.html#device-enumeration) diff --git a/python/1_GettingStarted/deviceQuery/requirements.txt b/python/1_GettingStarted/deviceQuery/requirements.txt index a0e4feab..0a2dc302 100644 --- a/python/1_GettingStarted/deviceQuery/requirements.txt +++ b/python/1_GettingStarted/deviceQuery/requirements.txt @@ -1,4 +1,4 @@ # Device Query Sample Requirements cuda-python>=13.0.0 -cuda-core>=1.0.0 +cuda-core>=1.2.0 diff --git a/python/1_GettingStarted/simplePrint/README.md b/python/1_GettingStarted/simplePrint/README.md index 350694b0..d5834d43 100644 --- a/python/1_GettingStarted/simplePrint/README.md +++ b/python/1_GettingStarted/simplePrint/README.md @@ -259,5 +259,5 @@ Try modifying: - [nvmath-python Device APIs](https://docs.nvidia.com/cuda/nvmath-python/latest/device-apis/index.html) - Optimized math operations for Numba CUDA kernels ### CUDA References: -- [CUDA C Programming Guide - Printf](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#formatted-output) +- [CUDA C Programming Guide - Printf](https://docs.nvidia.com/cuda/cuda-programming-guide/05-appendices/cpp-language-support.html#printf) - [C++ simplePrintf Sample](https://github.com/NVIDIA/cuda-samples/tree/master/Samples/0_Introduction/simplePrintf) diff --git a/python/1_GettingStarted/simplePrint/requirements.txt b/python/1_GettingStarted/simplePrint/requirements.txt index a39c5e7e..8dce0f08 100644 --- a/python/1_GettingStarted/simplePrint/requirements.txt +++ b/python/1_GettingStarted/simplePrint/requirements.txt @@ -3,5 +3,9 @@ cuda-python>=13.0.0 cuda-core>=1.0.0 # Numba JIT uses nvJitLink from pip; keep in step with cuda-bindings (e.g. 13.2.x). +# Also pin libnvvm from pip so Numba doesn't fall back to a mismatched +# system-toolkit libnvvm (nvJitLink ERROR_OUTDATED_LIBRARY). +nvidia-nvvm>=13.2.0 nvidia-nvjitlink>=13.2.0 numba-cuda>=0.29.0 +numpy<2.5 diff --git a/python/2_CoreConcepts/blockwiseSum/README.md b/python/2_CoreConcepts/blockwiseSum/README.md index 19fcc922..486efc5c 100644 --- a/python/2_CoreConcepts/blockwiseSum/README.md +++ b/python/2_CoreConcepts/blockwiseSum/README.md @@ -98,5 +98,5 @@ Done ## See Also - [cuda.core Documentation](https://nvidia.github.io/cuda-python/cuda-core/latest/) -- [CUDA Shared Memory](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#shared-memory) +- [CUDA Shared Memory](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html#shared-memory) - [CuPy Documentation](https://docs.cupy.dev/) diff --git a/python/2_CoreConcepts/cudaComputeLambdas/cudaComputeLambdas.py b/python/2_CoreConcepts/cudaComputeLambdas/cudaComputeLambdas.py index d790bb4d..219bc1a1 100644 --- a/python/2_CoreConcepts/cudaComputeLambdas/cudaComputeLambdas.py +++ b/python/2_CoreConcepts/cudaComputeLambdas/cudaComputeLambdas.py @@ -160,6 +160,13 @@ def main(): print_gpu_info(device) print() + # cuda.compute allocates temporary storage from the device's default memory + # pool, which requires CUDA memory-pool support. This is not available on + # every platform (for example, Windows in TCC mode). + if not device.properties.memory_pools_supported: + print("CUDA memory pools are not supported on this platform.") + return 2 + ok = True ok &= demo_reduce_lambda() print() diff --git a/python/2_CoreConcepts/cudaGraphs/README.md b/python/2_CoreConcepts/cudaGraphs/README.md index 60b8c5bd..5cf11957 100644 --- a/python/2_CoreConcepts/cudaGraphs/README.md +++ b/python/2_CoreConcepts/cudaGraphs/README.md @@ -137,4 +137,4 @@ your GPU and host CPU. - [CUDA Python Documentation](https://nvidia.github.io/cuda-python/) - [`cuda.core` graphs API](https://nvidia.github.io/cuda-python/cuda-core/latest/api.html#cuda-graphs) - Upstream `cuda.core` example: [`cuda_graphs.py`](https://github.com/NVIDIA/cuda-python/blob/main/cuda_core/examples/cuda_graphs.py) -- [CUDA Graphs programming guide](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#cuda-graphs) +- [CUDA Graphs programming guide](https://docs.nvidia.com/cuda/cuda-programming-guide/04-special-topics/cuda-graphs.html#cuda-graphs) diff --git a/python/2_CoreConcepts/greenContext/README.md b/python/2_CoreConcepts/greenContext/README.md index 3afd8083..291f63ab 100644 --- a/python/2_CoreConcepts/greenContext/README.md +++ b/python/2_CoreConcepts/greenContext/README.md @@ -246,5 +246,5 @@ other concurrent GPU work. ## See Also - [CUDA Python Documentation](https://nvidia.github.io/cuda-python/) -- [Green Contexts in the CUDA C++ Programming Guide](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#green-contexts) +- [Green Contexts in the CUDA Programming Guide](https://docs.nvidia.com/cuda/cuda-programming-guide/04-special-topics/green-contexts.html#green-contexts) - [`cuda.core` green-context test suite](https://github.com/NVIDIA/cuda-python/blob/main/cuda_core/tests/test_green_context.py) - the authoritative API reference diff --git a/python/2_CoreConcepts/launchConfigTuning/README.md b/python/2_CoreConcepts/launchConfigTuning/README.md index 6870f1d7..098e5467 100644 --- a/python/2_CoreConcepts/launchConfigTuning/README.md +++ b/python/2_CoreConcepts/launchConfigTuning/README.md @@ -94,10 +94,10 @@ elapsed_ms = (end_event - start_event) / n_iterations The benchmark loops in this sample read kernel results back from `ManagedMemoryResource` allocations between launches, which requires the -device property `concurrent_managed_access=True`. This is only supported on -Linux with HMM (Pascal and newer). On Windows (WDDM/MCDM/TCC) the property -is `False`, so the sample exits early with a waive message and exit code -`2`. +device property `concurrent_managed_access=True`. Devices that report `False` +— Windows (WDDM/MCDM/TCC), and older integrated GPUs such as Jetson Orin — +keep managed allocations GPU-exclusive, so the sample reports the missing +capability and exits with code `2`. ## Installation diff --git a/python/2_CoreConcepts/launchConfigTuning/launchConfigTuning.py b/python/2_CoreConcepts/launchConfigTuning/launchConfigTuning.py index d854ee4f..68404898 100644 --- a/python/2_CoreConcepts/launchConfigTuning/launchConfigTuning.py +++ b/python/2_CoreConcepts/launchConfigTuning/launchConfigTuning.py @@ -341,14 +341,6 @@ def main(): 3. Benchmarking different thread block configurations 4. Finding optimal threads-per-block for various kernel types """ - if sys.platform == "win32": - print( - "This sample relies on ManagedMemoryResource with concurrent host " - "access, which is not supported on Windows " - "(concurrent_managed_access=False). Waiving this sample." - ) - sys.exit(2) - print("=" * 60) print("Launch Configuration Tuning (cuda.core)") print("Finding the Best Block Size for Your Kernel") @@ -358,6 +350,13 @@ def main(): device = Device(0) device.set_current() + # This sample builds host NumPy views over managed memory. Devices without + # concurrent managed access keep managed allocations GPU-exclusive while + # the GPU is active, so those host views fault. + if not device.properties.concurrent_managed_access: + print("Concurrent managed memory access is not supported on this platform.") + sys.exit(2) + # Print GPU information print_gpu_info(device) diff --git a/python/2_CoreConcepts/memoryResources/README.md b/python/2_CoreConcepts/memoryResources/README.md index 6d6d6a94..4bebbb1e 100644 --- a/python/2_CoreConcepts/memoryResources/README.md +++ b/python/2_CoreConcepts/memoryResources/README.md @@ -72,15 +72,19 @@ verified on the host. ### Platform Support -The `ManagedMemoryResource` demo in this sample exercises **concurrent host -access** to managed allocations while the GPU is active, which requires the -device property `concurrent_managed_access=True`. This is only supported on -Linux with HMM (Pascal and newer). On Windows (WDDM/MCDM/TCC) the property -is `False`, so the sample exits early with a waive message and exit code -`2`. The `DeviceMemoryResource` + `PinnedMemoryResource` demos in this -sample would still work on Windows on their own, but to keep the sample -self-contained the entire script waives when concurrent managed access is -unavailable. +This sample needs two device capabilities, and exits with code `2` when +either is missing: + +- `PinnedMemoryResource` is backed by a host memory pool, which requires + `host_memory_pools_supported=True`. Windows in TCC mode and older + integrated GPUs such as Jetson Orin report `False`. +- The `ManagedMemoryResource` demo builds host NumPy views over managed + allocations, which requires `concurrent_managed_access=True`. Windows + (WDDM/MCDM/TCC) and older integrated GPUs such as Jetson Orin report + `False`. + +The demos are checked up front rather than individually to keep the sample +self-contained. ## Installation diff --git a/python/2_CoreConcepts/memoryResources/memoryResources.py b/python/2_CoreConcepts/memoryResources/memoryResources.py index 07776c18..5e88c54d 100644 --- a/python/2_CoreConcepts/memoryResources/memoryResources.py +++ b/python/2_CoreConcepts/memoryResources/memoryResources.py @@ -222,18 +222,23 @@ def main(): parser.add_argument("--device", type=int, default=0, help="CUDA device id") args = parser.parse_args() - if sys.platform == "win32": - print( - "This sample relies on ManagedMemoryResource with concurrent host " - "access, which is not supported on Windows " - "(concurrent_managed_access=False). Waiving this sample." - ) - sys.exit(2) - device = Device(args.device) device.set_current() print_gpu_info(device) + # PinnedMemoryResource is backed by a host memory pool, which is not + # available on every device. + if not device.properties.host_memory_pools_supported: + print("Host pinned memory pools are not supported on this platform.") + return 2 + + # This sample builds host NumPy views over managed memory. Devices without + # concurrent managed access keep managed allocations GPU-exclusive while + # the GPU is active, so those host views fault. + if not device.properties.concurrent_managed_access: + print("Concurrent managed memory access is not supported on this platform.") + return 2 + stream = device.create_stream() try: diff --git a/python/2_CoreConcepts/parallelHistogram/README.md b/python/2_CoreConcepts/parallelHistogram/README.md index 2820102d..a267f42b 100644 --- a/python/2_CoreConcepts/parallelHistogram/README.md +++ b/python/2_CoreConcepts/parallelHistogram/README.md @@ -113,5 +113,5 @@ Test PASSED ## See Also - [cuda.core Documentation](https://nvidia.github.io/cuda-python/cuda-core/latest/) -- [CUDA Atomic Functions](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#atomic-functions) -- [CUDA Shared Memory](https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#shared-memory) +- [CUDA Atomic Functions](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html#atomics) +- [CUDA Shared Memory](https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html#shared-memory) diff --git a/python/2_CoreConcepts/parallelReduction/parallelReduction.py b/python/2_CoreConcepts/parallelReduction/parallelReduction.py index f056200d..b5d40696 100644 --- a/python/2_CoreConcepts/parallelReduction/parallelReduction.py +++ b/python/2_CoreConcepts/parallelReduction/parallelReduction.py @@ -290,7 +290,7 @@ def benchmark_cuda_compute( return result, float(np.mean(times)) -def main() -> bool: +def main() -> int: """Main function demonstrating parallel reduction.""" print("=" * 70) print("Parallel Reduction - Efficient GPU Array Summation") @@ -298,6 +298,14 @@ def main() -> bool: device = Device(0) device.set_current() + + # cuda.compute allocates temporary storage from the device's default memory + # pool, which requires CUDA memory-pool support. This is not available on + # every platform (for example, Windows in TCC mode). + if not device.properties.memory_pools_supported: + print("CUDA memory pools are not supported on this platform.") + return 2 + stream = device.create_stream() cp_stream = cp.cuda.Stream.from_external(stream) @@ -363,13 +371,13 @@ def main() -> bool: ) if custom_ok and compute_ok: print("\nTest PASSED!") - return True + return 0 else: print("\nTest FAILED - Error too large!") - return False + return 1 finally: stream.close() if __name__ == "__main__": - sys.exit(0 if main() else 1) + sys.exit(main()) diff --git a/python/2_CoreConcepts/persistentProgramCache/README.md b/python/2_CoreConcepts/persistentProgramCache/README.md new file mode 100644 index 00000000..dddbd474 --- /dev/null +++ b/python/2_CoreConcepts/persistentProgramCache/README.md @@ -0,0 +1,175 @@ +# Persistent Program Cache (Python) + +## Description + +This sample demonstrates how to persist and reuse compiled CUDA artifacts +with `cuda.core`. It generates a specialized matmul + epilogue kernel, +compiles it to CUBIN on a cache miss, stores the artifact in +`FileStreamProgramCache`, and reloads the CUBIN on later runs. + +## Core Cache Flow + +The central cache logic is in `compile_or_load_kernel`: + +```python +options = ProgramOptions(std="c++17", arch=f"sm_{device.arch}") +program = Program(source, code_type="c++", options=options) +key = make_program_cache_key(...) + +with FileStreamProgramCache(cache_dir) as cache: + cached = cache.get(key) + + if cached is None: + module = program.compile("cubin") + cache[key] = module + status = "MISS" + else: + module = ObjectCode.from_cubin(cached, name="persistentProgramCache") + status = "HIT" + +kernel = module.get_kernel(KERNEL_NAME) +``` + +## What You'll Learn + +- Generating a CUDA source string from workload configuration +- Building a persistent cache key with `make_program_cache_key` +- Storing compiled CUBIN bytes with `FileStreamProgramCache` +- Reconstructing a loadable `ObjectCode` with `ObjectCode.from_cubin` +- Measuring cache lookup, compile, module load, and kernel execution time +- Validating that cached and freshly compiled artifacts produce the same result + +## Key Libraries + +- [`cuda.core`][cuda-core] - Pythonic access to CUDA programs, object code, launches, and events +- `cupy` - input and output buffers on the GPU +- `numpy` - deterministic input generation and host reference computation + +## Key APIs + +### From `cuda.core` + +- `Program(...).compile("cubin")` - compile generated CUDA source to CUBIN +- `ObjectCode.from_cubin(...)` - reconstruct loadable object code from cached bytes +- `ObjectCode.get_kernel(name)` - fetch the kernel from the compiled artifact +- `LaunchConfig` and `launch(...)` - configure and launch the generated kernel +- `EventOptions(timing_enabled=True)` - time repeated kernel launches + +### From `cuda.core.utils` + +- `FileStreamProgramCache` - disk-backed, process-safe program cache +- `make_program_cache_key(...)` - derive a cache key from source, options, and target type + +## Requirements + +### Hardware + +- NVIDIA GPU with Compute Capability 7.0 or higher + +### Software + +- CUDA Toolkit 13.0 or newer (matches `cuda-python` 13.x) +- Python 3.10 or newer +- `cuda-python` (>=13.0.0) +- `cuda-core` (>=1.0.0) +- `cupy-cuda13x` (>=14.0.0) +- `numpy` (>=2.3.2) + +## Installation + +Install the required packages from `requirements.txt`: + +```bash +cd /path/to/cuda-samples/python/2_CoreConcepts/persistentProgramCache +pip install -r requirements.txt +``` + +The `requirements.txt` installs: + +- `cuda-python` (>=13.0.0) +- `cuda-core` (>=1.0.0) +- `cupy-cuda13x` (>=14.0.0) +- `numpy` (>=2.3.2) + +## How to Run + +### Basic usage + +Run once with a cleared cache to force compilation: + +```bash +cd cuda-samples/python/2_CoreConcepts/persistentProgramCache +python persistentProgramCache.py --clear-cache +``` + +Run again with the same configuration to reuse the cached artifact: + +```bash +python persistentProgramCache.py +``` + +### With custom parameters + +```bash +# Compile a different generated kernel variant +python persistentProgramCache.py --tile-size 32 --epilogue identity + +# Use a custom matrix size +python persistentProgramCache.py --m 1024 --n 1024 --k 1024 + +# Use a specific GPU +python persistentProgramCache.py --device 1 +``` + +Changing the tile size, epilogue, source code, compile options, or target +GPU architecture changes the cache key and produces a cache miss. + +## Expected Output + +The output includes the run configuration, cache status, timings, and +validation result: + +```text +Persistent Program Cache +Device: +Compute Capability: +Cache directory: +Workload: C = relu(A @ B + bias) +Matrix sizes: M=512, N=512, K=512 +Tile size: 16 +Timed launches: warmup=5, iterations=20 + +Cache status: MISS | HIT +Cache key: ... +Artifact size: KiB +Cache lookup: