From 06a907186558647c7379a8b189fb0db4f4a426ad Mon Sep 17 00:00:00 2001 From: gcielniak Date: Sun, 31 May 2015 20:37:59 +0100 Subject: [PATCH 01/97] Initial commit --- README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..d9b2de1 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# OpenCL-Tutorials +OpenCL Tutorials From bcbccf2af872615bfbdb3799b51aeb3097fdb38e Mon Sep 17 00:00:00 2001 From: gcielniak Date: Sun, 31 May 2015 21:42:28 +0100 Subject: [PATCH 02/97] Skeleton code --- .gitignore | 2 + CMakeLists.txt | 12 ++++++ src/Tutorial1.cpp | 105 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 src/Tutorial1.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f2720c8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +#CMake +build diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..a10e899 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 2.8) + +project(OpenCLTutorials) + +find_package(OPENCL) + +include_directories(${OpenCL_INCLUDE_DIRS}) + +add_executable(OpenCLTutorials src/Tutorial1.cpp) + +target_link_libraries(OpenCLTutorials ${OpenCL_LIBRARIES}) + diff --git a/src/Tutorial1.cpp b/src/Tutorial1.cpp new file mode 100644 index 0000000..874b5ff --- /dev/null +++ b/src/Tutorial1.cpp @@ -0,0 +1,105 @@ +#include +#include +#include +#include "CL/cl.h" + +std::string GetPlatformName (cl_platform_id id) +{ + size_t size = 0; + clGetPlatformInfo (id, CL_PLATFORM_NAME, 0, nullptr, &size); + + std::string result; + result.resize (size); + clGetPlatformInfo (id, CL_PLATFORM_NAME, size, + const_cast (result.data ()), nullptr); + + return result; +} + +std::string GetDeviceName (cl_device_id id) +{ + size_t size = 0; + clGetDeviceInfo (id, CL_DEVICE_NAME, 0, nullptr, &size); + + std::string result; + result.resize (size); + clGetDeviceInfo (id, CL_DEVICE_NAME, size, + const_cast (result.data ()), nullptr); + + return result; +} + +void CheckError(cl_int error) +{ + if (error != CL_SUCCESS) { + std::cerr << "OpenCL call failed with error " << error << std::endl; + std::exit (1); + } +} + +int main() +{ + cl_uint platformIdCount = 0; + cl_uint deviceIdCount = 0; + cl_uint platform = -1; + cl_uint device = -1; + + clGetPlatformIDs (0, nullptr, &platformIdCount); + + std::cout << "Found " << platformIdCount << " platform(s)" << std::endl; + + std::vector platformIds (platformIdCount); + clGetPlatformIDs (platformIdCount, platformIds.data (), nullptr); + if (platformIdCount) + platform = 0; + + for (cl_uint i = 0; i < platformIdCount; ++i) + { + std::cout << "\t (" << (i+1) << ") : " << GetPlatformName (platformIds [i]) << std::endl; + + clGetDeviceIDs (platformIds[i], CL_DEVICE_TYPE_ALL, 0, nullptr, &deviceIdCount); + std::cout << "\t\tFound " << deviceIdCount << " device(s)" << std::endl; + + std::vector deviceIds (deviceIdCount); + clGetDeviceIDs (platformIds[i], CL_DEVICE_TYPE_ALL, deviceIdCount, deviceIds.data (), nullptr); + + if (platform == i) + device = 0; + + for (cl_uint j = 0; j < deviceIdCount; ++j) + std::cout << "\t\t (" << (j+1) << ") : " << GetDeviceName (deviceIds[j]) << std::endl; + } + + if ((platform < 0) || (device < 0)) + { + std::cerr << "No compatible OpenCL device detected." << std::endl; + return 0; + } + + const cl_context_properties contextProperties [] = + { + CL_CONTEXT_PLATFORM, + reinterpret_cast (platformIds[platform]), + 0, 0 + }; + + cl_int error; + + clGetDeviceIDs (platformIds[platform], CL_DEVICE_TYPE_ALL, 0, nullptr, &deviceIdCount); + std::vector deviceIds (deviceIdCount); + clGetDeviceIDs (platformIds[platform], CL_DEVICE_TYPE_ALL, deviceIdCount, deviceIds.data (), nullptr); + + cl_context context = clCreateContext(contextProperties, deviceIdCount, deviceIds.data (), nullptr, + nullptr, &error); + + CheckError(error); + + cl_command_queue queue = clCreateCommandQueue (context, deviceIds[device], 0, &error); + + CheckError (error); + + clReleaseCommandQueue (queue); + clReleaseContext (context); + + return 0; +} \ No newline at end of file From 6efb39b113e628555ade71d09dbe5c8b2c07a63e Mon Sep 17 00:00:00 2001 From: gcielniak Date: Sun, 31 May 2015 22:31:04 +0100 Subject: [PATCH 03/97] MacOS compatibility --- src/Tutorial1.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Tutorial1.cpp b/src/Tutorial1.cpp index 874b5ff..bf4b468 100644 --- a/src/Tutorial1.cpp +++ b/src/Tutorial1.cpp @@ -1,7 +1,11 @@ #include #include #include -#include "CL/cl.h" +#ifdef __APPLE__ + #include "OpenCL/opencl.h" +#else + #include "CL/cl.h" +#endif std::string GetPlatformName (cl_platform_id id) { @@ -41,8 +45,8 @@ int main() { cl_uint platformIdCount = 0; cl_uint deviceIdCount = 0; - cl_uint platform = -1; - cl_uint device = -1; + cl_int platform = 0; + cl_int device = 0; clGetPlatformIDs (0, nullptr, &platformIdCount); From 6fbc3f846a7ab07d4dbd9aae3289bfd092f4d1c6 Mon Sep 17 00:00:00 2001 From: gcielniak Date: Tue, 25 Aug 2015 16:47:13 +0100 Subject: [PATCH 04/97] C++ bindings version --- src/Tutorial1.cpp | 193 +++++++++++++++++++++++++++++++++------------- 1 file changed, 139 insertions(+), 54 deletions(-) diff --git a/src/Tutorial1.cpp b/src/Tutorial1.cpp index bf4b468..4a73c8b 100644 --- a/src/Tutorial1.cpp +++ b/src/Tutorial1.cpp @@ -1,109 +1,194 @@ #include #include #include -#ifdef __APPLE__ - #include "OpenCL/opencl.h" + +#define CL_USE_DEPRECATED_OPENCL_2_0_APIS +#define __CL_ENABLE_EXCEPTIONS + +#if defined(__APPLE__) || defined(__MACOSX) +#include #else - #include "CL/cl.h" +#include #endif -std::string GetPlatformName (cl_platform_id id) +std::string GetPlatformName(cl_platform_id id) { size_t size = 0; - clGetPlatformInfo (id, CL_PLATFORM_NAME, 0, nullptr, &size); + clGetPlatformInfo(id, CL_PLATFORM_NAME, 0, nullptr, &size); std::string result; - result.resize (size); - clGetPlatformInfo (id, CL_PLATFORM_NAME, size, - const_cast (result.data ()), nullptr); + result.resize(size); + clGetPlatformInfo(id, CL_PLATFORM_NAME, size, + const_cast (result.data()), nullptr); return result; } -std::string GetDeviceName (cl_device_id id) +std::string GetDeviceName(cl_device_id id) { size_t size = 0; - clGetDeviceInfo (id, CL_DEVICE_NAME, 0, nullptr, &size); + clGetDeviceInfo(id, CL_DEVICE_NAME, 0, nullptr, &size); std::string result; - result.resize (size); - clGetDeviceInfo (id, CL_DEVICE_NAME, size, - const_cast (result.data ()), nullptr); + result.resize(size); + clGetDeviceInfo(id, CL_DEVICE_NAME, size, + const_cast (result.data()), nullptr); return result; } +const char *getErrorString(cl_int error) +{ + switch (error){ + // run-time and JIT compiler errors + case 0: return "CL_SUCCESS"; + case -1: return "CL_DEVICE_NOT_FOUND"; + case -2: return "CL_DEVICE_NOT_AVAILABLE"; + case -3: return "CL_COMPILER_NOT_AVAILABLE"; + case -4: return "CL_MEM_OBJECT_ALLOCATION_FAILURE"; + case -5: return "CL_OUT_OF_RESOURCES"; + case -6: return "CL_OUT_OF_HOST_MEMORY"; + case -7: return "CL_PROFILING_INFO_NOT_AVAILABLE"; + case -8: return "CL_MEM_COPY_OVERLAP"; + case -9: return "CL_IMAGE_FORMAT_MISMATCH"; + case -10: return "CL_IMAGE_FORMAT_NOT_SUPPORTED"; + case -11: return "CL_BUILD_PROGRAM_FAILURE"; + case -12: return "CL_MAP_FAILURE"; + case -13: return "CL_MISALIGNED_SUB_BUFFER_OFFSET"; + case -14: return "CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"; + case -15: return "CL_COMPILE_PROGRAM_FAILURE"; + case -16: return "CL_LINKER_NOT_AVAILABLE"; + case -17: return "CL_LINK_PROGRAM_FAILURE"; + case -18: return "CL_DEVICE_PARTITION_FAILED"; + case -19: return "CL_KERNEL_ARG_INFO_NOT_AVAILABLE"; + + // compile-time errors + case -30: return "CL_INVALID_VALUE"; + case -31: return "CL_INVALID_DEVICE_TYPE"; + case -32: return "CL_INVALID_PLATFORM"; + case -33: return "CL_INVALID_DEVICE"; + case -34: return "CL_INVALID_CONTEXT"; + case -35: return "CL_INVALID_QUEUE_PROPERTIES"; + case -36: return "CL_INVALID_COMMAND_QUEUE"; + case -37: return "CL_INVALID_HOST_PTR"; + case -38: return "CL_INVALID_MEM_OBJECT"; + case -39: return "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"; + case -40: return "CL_INVALID_IMAGE_SIZE"; + case -41: return "CL_INVALID_SAMPLER"; + case -42: return "CL_INVALID_BINARY"; + case -43: return "CL_INVALID_BUILD_OPTIONS"; + case -44: return "CL_INVALID_PROGRAM"; + case -45: return "CL_INVALID_PROGRAM_EXECUTABLE"; + case -46: return "CL_INVALID_KERNEL_NAME"; + case -47: return "CL_INVALID_KERNEL_DEFINITION"; + case -48: return "CL_INVALID_KERNEL"; + case -49: return "CL_INVALID_ARG_INDEX"; + case -50: return "CL_INVALID_ARG_VALUE"; + case -51: return "CL_INVALID_ARG_SIZE"; + case -52: return "CL_INVALID_KERNEL_ARGS"; + case -53: return "CL_INVALID_WORK_DIMENSION"; + case -54: return "CL_INVALID_WORK_GROUP_SIZE"; + case -55: return "CL_INVALID_WORK_ITEM_SIZE"; + case -56: return "CL_INVALID_GLOBAL_OFFSET"; + case -57: return "CL_INVALID_EVENT_WAIT_LIST"; + case -58: return "CL_INVALID_EVENT"; + case -59: return "CL_INVALID_OPERATION"; + case -60: return "CL_INVALID_GL_OBJECT"; + case -61: return "CL_INVALID_BUFFER_SIZE"; + case -62: return "CL_INVALID_MIP_LEVEL"; + case -63: return "CL_INVALID_GLOBAL_WORK_SIZE"; + case -64: return "CL_INVALID_PROPERTY"; + case -65: return "CL_INVALID_IMAGE_DESCRIPTOR"; + case -66: return "CL_INVALID_COMPILER_OPTIONS"; + case -67: return "CL_INVALID_LINKER_OPTIONS"; + case -68: return "CL_INVALID_DEVICE_PARTITION_COUNT"; + + // extension errors + case -1000: return "CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR"; + case -1001: return "CL_PLATFORM_NOT_FOUND_KHR"; + case -1002: return "CL_INVALID_D3D10_DEVICE_KHR"; + case -1003: return "CL_INVALID_D3D10_RESOURCE_KHR"; + case -1004: return "CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR"; + case -1005: return "CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR"; + default: return "Unknown OpenCL error"; + } +} + void CheckError(cl_int error) { if (error != CL_SUCCESS) { - std::cerr << "OpenCL call failed with error " << error << std::endl; - std::exit (1); + std::cerr << "OpenCL call failed with error " << getErrorString(error) << std::endl; + std::exit(1); } } +using namespace std; + int main() { - cl_uint platformIdCount = 0; - cl_uint deviceIdCount = 0; - cl_int platform = 0; - cl_int device = 0; + vector platforms; + + try + { + cl::Platform::get(&platforms); - clGetPlatformIDs (0, nullptr, &platformIdCount); + cout << "Found " << platforms.size() << " platform(s):" << endl; - std::cout << "Found " << platformIdCount << " platform(s)" << std::endl; + for (unsigned int i = 0; i < platforms.size(); i++) + { + string platform_name; + platforms[i].getInfo((cl_platform_info)CL_PLATFORM_NAME, &platform_name); + string platform_vendor; + platforms[i].getInfo((cl_platform_info)CL_PLATFORM_VENDOR, &platform_vendor); - std::vector platformIds (platformIdCount); - clGetPlatformIDs (platformIdCount, platformIds.data (), nullptr); - if (platformIdCount) - platform = 0; + cout << " " << (i + 1) << ") " << platform_name << " [" << platform_vendor << "]" << endl; - for (cl_uint i = 0; i < platformIdCount; ++i) - { - std::cout << "\t (" << (i+1) << ") : " << GetPlatformName (platformIds [i]) << std::endl; + vector devices; - clGetDeviceIDs (platformIds[i], CL_DEVICE_TYPE_ALL, 0, nullptr, &deviceIdCount); - std::cout << "\t\tFound " << deviceIdCount << " device(s)" << std::endl; + platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); - std::vector deviceIds (deviceIdCount); - clGetDeviceIDs (platformIds[i], CL_DEVICE_TYPE_ALL, deviceIdCount, deviceIds.data (), nullptr); + cout << "\tFound " << devices.size() << " device(s):" << endl; - if (platform == i) - device = 0; + for (unsigned int j = 0; j < devices.size(); j++) + { + string device_name; + devices[j].getInfo((cl_device_info)CL_DEVICE_NAME, &device_name); - for (cl_uint j = 0; j < deviceIdCount; ++j) - std::cout << "\t\t (" << (j+1) << ") : " << GetDeviceName (deviceIds[j]) << std::endl; - } + cl_device_type device_type; + devices[j].getInfo((cl_device_info)CL_DEVICE_TYPE, &device_type); - if ((platform < 0) || (device < 0)) - { - std::cerr << "No compatible OpenCL device detected." << std::endl; - return 0; + cout << "\t " << (j + 1) << ") " << device_name << endl; + } + } + } + catch (cl::Error err) { + cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; } - const cl_context_properties contextProperties [] = + /* + const cl_context_properties contextProperties[] = { CL_CONTEXT_PLATFORM, reinterpret_cast (platformIds[platform]), 0, 0 }; - - cl_int error; - clGetDeviceIDs (platformIds[platform], CL_DEVICE_TYPE_ALL, 0, nullptr, &deviceIdCount); - std::vector deviceIds (deviceIdCount); - clGetDeviceIDs (platformIds[platform], CL_DEVICE_TYPE_ALL, deviceIdCount, deviceIds.data (), nullptr); + clGetDeviceIDs(platformIds[platform], CL_DEVICE_TYPE_ALL, 0, nullptr, &deviceIdCount); + std::vector deviceIds(deviceIdCount); + clGetDeviceIDs(platformIds[platform], CL_DEVICE_TYPE_ALL, deviceIdCount, deviceIds.data(), nullptr); - cl_context context = clCreateContext(contextProperties, deviceIdCount, deviceIds.data (), nullptr, + cl_context context = clCreateContext(contextProperties, deviceIdCount, deviceIds.data(), nullptr, nullptr, &error); CheckError(error); - cl_command_queue queue = clCreateCommandQueue (context, deviceIds[device], 0, &error); - - CheckError (error); - - clReleaseCommandQueue (queue); - clReleaseContext (context); + cl_command_queue queue = clCreateCommandQueue(context, deviceIds[device], 0, &error); + + CheckError(error); + + clReleaseCommandQueue(queue); + clReleaseContext(context); + */ return 0; } \ No newline at end of file From c63caf63f166d86015301a0d01c6a53a68e0ae1a Mon Sep 17 00:00:00 2001 From: gcielniak Date: Wed, 26 Aug 2015 17:05:33 +0100 Subject: [PATCH 05/97] Simple Program --- src/Tutorial1.cpp | 160 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 132 insertions(+), 28 deletions(-) diff --git a/src/Tutorial1.cpp b/src/Tutorial1.cpp index 4a73c8b..3c307ae 100644 --- a/src/Tutorial1.cpp +++ b/src/Tutorial1.cpp @@ -122,10 +122,45 @@ void CheckError(cl_int error) } } +enum VerboseLevel +{ + VERBOSE_OFF, + VERBOSE_BRIEF, + VERBOSE_DETAILED, + VERBOSE_FULL +}; + using namespace std; -int main() +void print_help() { + cerr << "OpenCLTutorial usage:" << endl; + + cerr << " -v : verbose level [0, 1, 2, 3]" << endl; + cerr << " -h : print this message" << endl; +} + + +int main(int argc, char **argv) +{ + if (argc == 1) + { + print_help(); + exit(0); + } + + VerboseLevel verbose_level = VERBOSE_OFF; + int platform_id = 0; + int device_id = 0; + + for (int i = 1; i < argc; i++) + { + if ((strcmp(argv[i], "-p") == 0) && (i < (argc - 1))) { platform_id = atoi(argv[++i]); } + else if ((strcmp(argv[i], "-d") == 0) && (i < (argc - 1))) { device_id = atoi(argv[++i]); } + else if ((strcmp(argv[i], "-v") == 0) && (i < (argc - 1))) { verbose_level = (VerboseLevel)atoi(argv[++i]); } + else if (strcmp(argv[i], "-h") == 0) { print_help(); } + } + vector platforms; try @@ -136,12 +171,15 @@ int main() for (unsigned int i = 0; i < platforms.size(); i++) { - string platform_name; - platforms[i].getInfo((cl_platform_info)CL_PLATFORM_NAME, &platform_name); - string platform_vendor; - platforms[i].getInfo((cl_platform_info)CL_PLATFORM_VENDOR, &platform_vendor); + cout << "\n " << (i + 1) << ") " << platforms[i].getInfo() << ", version: " << platforms[i].getInfo(); - cout << " " << (i + 1) << ") " << platform_name << " [" << platform_vendor << "]" << endl; + if (verbose_level > VERBOSE_BRIEF) + cout << ", vendor: " << platforms[i].getInfo(); + + if (verbose_level > VERBOSE_DETAILED) + cout << ", profile: " << platforms[i].getInfo() << ", extensions: " << platforms[i].getInfo(); + + cout << endl; vector devices; @@ -151,13 +189,52 @@ int main() for (unsigned int j = 0; j < devices.size(); j++) { - string device_name; - devices[j].getInfo((cl_device_info)CL_DEVICE_NAME, &device_name); + cout << "\t " << (j + 1) << ") " << devices[j].getInfo() << ", version: " << devices[j].getInfo(); + + if (verbose_level > VERBOSE_BRIEF) + { + cout << ", vendor: " << devices[j].getInfo(); + cl_device_type device_type = devices[j].getInfo(); + cout << ", type: "; + if (device_type & CL_DEVICE_TYPE_DEFAULT) + cerr << "DEFAULT "; + if (device_type & CL_DEVICE_TYPE_CPU) + cerr << "CPU "; + if (device_type & CL_DEVICE_TYPE_GPU) + cerr << "GPU "; + if (device_type & CL_DEVICE_TYPE_ACCELERATOR) + cerr << "ACCELERATOR "; + cout << ", compute units: " << devices[j].getInfo(); + } + + if (verbose_level > VERBOSE_DETAILED) + { + } + + cout << endl; + } + } + } + catch (cl::Error err) { + cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; + } - cl_device_type device_type; - devices[j].getInfo((cl_device_info)CL_DEVICE_TYPE, &device_type); - cout << "\t " << (j + 1) << ") " << device_name << endl; + //select device + cl::Device device; + + try + { + for (unsigned int i = 0; i < platforms.size(); i++) + { + vector devices; + platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); + + for (unsigned int j = 0; j < devices.size(); j++) + { + if ((i == platform_id) && (j == device_id)) + device = devices[j]; + break; } } } @@ -165,30 +242,57 @@ int main() cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; } - /* - const cl_context_properties contextProperties[] = + cl::Context context({ device }); + + cl::Program::Sources sources; + + // kernel calculates for each element C=A+B + std::string kernel_code = + " void kernel simple_add(global const int* A, global const int* B, global int* C){ " + " int id = get_global_id(0);" + " C[id] = A[id] + B[id]; " + " } "; + sources.push_back({ kernel_code.c_str(), kernel_code.length() }); + + cl::Program program(context, sources); + + try { - CL_CONTEXT_PLATFORM, - reinterpret_cast (platformIds[platform]), - 0, 0 - }; + program.build({ device }); + } + catch (cl::Error err) { + cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; + } - clGetDeviceIDs(platformIds[platform], CL_DEVICE_TYPE_ALL, 0, nullptr, &deviceIdCount); - std::vector deviceIds(deviceIdCount); - clGetDeviceIDs(platformIds[platform], CL_DEVICE_TYPE_ALL, deviceIdCount, deviceIds.data(), nullptr); + // create buffers on the device + cl::Buffer buffer_A(context, CL_MEM_READ_WRITE, sizeof(int) * 10); + cl::Buffer buffer_B(context, CL_MEM_READ_WRITE, sizeof(int) * 10); + cl::Buffer buffer_C(context, CL_MEM_READ_WRITE, sizeof(int) * 10); - cl_context context = clCreateContext(contextProperties, deviceIdCount, deviceIds.data(), nullptr, - nullptr, &error); + int A[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + int B[] = { 0, 1, 2, 0, 1, 2, 0, 1, 2, 0 }; + int C[10]; - CheckError(error); + //create queue to which we will push commands for the device. + cl::CommandQueue queue(context, device); - cl_command_queue queue = clCreateCommandQueue(context, deviceIds[device], 0, &error); + //write arrays A and B to the device + queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, sizeof(int) * 10, A); + queue.enqueueWriteBuffer(buffer_B, CL_TRUE, 0, sizeof(int) * 10, B); + queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, sizeof(int) * 10, C); - CheckError(error); + cl::Kernel kernel_add = cl::Kernel(program, "simple_add"); + kernel_add.setArg(0, buffer_A); + kernel_add.setArg(1, buffer_B); + kernel_add.setArg(2, buffer_C); - clReleaseCommandQueue(queue); - clReleaseContext(context); + queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(10), cl::NullRange); + queue.finish(); + + std::cout << " result: \n"; + for (int i = 0; i<10; i++){ + std::cout << C[i] << " "; + } - */ return 0; } \ No newline at end of file From d208c4ea8afeb8d0ce13558dba8a668a065f9232 Mon Sep 17 00:00:00 2001 From: gcielniak Date: Thu, 27 Aug 2015 21:12:34 +0100 Subject: [PATCH 06/97] Buffer allocation --- src/Tutorial1.cpp | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/Tutorial1.cpp b/src/Tutorial1.cpp index 3c307ae..7000244 100644 --- a/src/Tutorial1.cpp +++ b/src/Tutorial1.cpp @@ -143,12 +143,6 @@ void print_help() int main(int argc, char **argv) { - if (argc == 1) - { - print_help(); - exit(0); - } - VerboseLevel verbose_level = VERBOSE_OFF; int platform_id = 0; int device_id = 0; @@ -163,6 +157,8 @@ int main(int argc, char **argv) vector platforms; + if (verbose_level != VERBOSE_OFF) + { try { cl::Platform::get(&platforms); @@ -218,6 +214,7 @@ int main(int argc, char **argv) catch (cl::Error err) { cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; } + } //select device @@ -225,6 +222,8 @@ int main(int argc, char **argv) try { + cl::Platform::get(&platforms); + for (unsigned int i = 0; i < platforms.size(); i++) { vector devices; @@ -264,31 +263,33 @@ int main(int argc, char **argv) cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; } - // create buffers on the device - cl::Buffer buffer_A(context, CL_MEM_READ_WRITE, sizeof(int) * 10); - cl::Buffer buffer_B(context, CL_MEM_READ_WRITE, sizeof(int) * 10); - cl::Buffer buffer_C(context, CL_MEM_READ_WRITE, sizeof(int) * 10); - + //host buffers int A[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int B[] = { 0, 1, 2, 0, 1, 2, 0, 1, 2, 0 }; - int C[10]; + int C[sizeof(A)/sizeof(A[0])]; + + // create buffers on the device + cl::Buffer buffer_A(context, CL_MEM_READ_WRITE, sizeof(A)); + cl::Buffer buffer_B(context, CL_MEM_READ_WRITE, sizeof(B)); + cl::Buffer buffer_C(context, CL_MEM_READ_WRITE, sizeof(C)); //create queue to which we will push commands for the device. cl::CommandQueue queue(context, device); //write arrays A and B to the device - queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, sizeof(int) * 10, A); - queue.enqueueWriteBuffer(buffer_B, CL_TRUE, 0, sizeof(int) * 10, B); - queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, sizeof(int) * 10, C); + queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, sizeof(A), A); + queue.enqueueWriteBuffer(buffer_B, CL_TRUE, 0, sizeof(B), B); cl::Kernel kernel_add = cl::Kernel(program, "simple_add"); kernel_add.setArg(0, buffer_A); kernel_add.setArg(1, buffer_B); kernel_add.setArg(2, buffer_C); - queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(10), cl::NullRange); + queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(sizeof(A) / sizeof(A[0])), cl::NullRange); queue.finish(); + queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, sizeof(C), C); + std::cout << " result: \n"; for (int i = 0; i<10; i++){ std::cout << C[i] << " "; From 4af80d447775cda77ff0b2a15859fb1c2c8c385e Mon Sep 17 00:00:00 2001 From: gcielniak Date: Wed, 4 Nov 2015 11:02:20 +0000 Subject: [PATCH 07/97] Visual Studio version --- .gitignore | 17 + CMakeLists.txt | 11 + VS/Tutorial1/Tutorial1.sln | 22 + VS/Tutorial1/Tutorial1/CL/cl.hpp | 12934 +++++++++++++++++ VS/Tutorial1/Tutorial1/Tutorial1.cpp | 295 + VS/Tutorial1/Tutorial1/Tutorial1.vcxproj | 147 + VS/Tutorial1/Tutorial1/kernels/simple_add.cl | 5 + src/Tutorial1.cpp | 10 +- src/opencl/simple_add.cl | 5 + 9 files changed, 13445 insertions(+), 1 deletion(-) create mode 100644 VS/Tutorial1/Tutorial1.sln create mode 100644 VS/Tutorial1/Tutorial1/CL/cl.hpp create mode 100644 VS/Tutorial1/Tutorial1/Tutorial1.cpp create mode 100644 VS/Tutorial1/Tutorial1/Tutorial1.vcxproj create mode 100644 VS/Tutorial1/Tutorial1/kernels/simple_add.cl create mode 100644 src/opencl/simple_add.cl diff --git a/.gitignore b/.gitignore index f2720c8..d6fd5d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,19 @@ #CMake build + +#Visual Studio +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ + +*.opensdf +*.sdf +*.suo +*.filters \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index a10e899..a01f00d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,4 +9,15 @@ include_directories(${OpenCL_INCLUDE_DIRS}) add_executable(OpenCLTutorials src/Tutorial1.cpp) target_link_libraries(OpenCLTutorials ${OpenCL_LIBRARIES}) + +message(STATUS "1: " ${EXECUTABLE_OUTPUT_PATH}) +message(STATUS "2: " ${CMAKE_BINARY_DIR}) + +message(STATUS "3: " ${CMAKE_CURRENT_BINARY_DIR}) + +message(STATUS "4: " ${PROJECT_BINARY_DIR}) + +#file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/src/opencl DESTINATION ) + + \ No newline at end of file diff --git a/VS/Tutorial1/Tutorial1.sln b/VS/Tutorial1/Tutorial1.sln new file mode 100644 index 0000000..db23609 --- /dev/null +++ b/VS/Tutorial1/Tutorial1.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.30723.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial1", "Tutorial1\Tutorial1.vcxproj", "{B9237F83-0D5A-4737-B260-24D4630C7173}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B9237F83-0D5A-4737-B260-24D4630C7173}.Debug|x64.ActiveCfg = Release|x64 + {B9237F83-0D5A-4737-B260-24D4630C7173}.Debug|x64.Build.0 = Release|x64 + {B9237F83-0D5A-4737-B260-24D4630C7173}.Release|x64.ActiveCfg = Debug|x64 + {B9237F83-0D5A-4737-B260-24D4630C7173}.Release|x64.Build.0 = Debug|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/VS/Tutorial1/Tutorial1/CL/cl.hpp b/VS/Tutorial1/Tutorial1/CL/cl.hpp new file mode 100644 index 0000000..396b867 --- /dev/null +++ b/VS/Tutorial1/Tutorial1/CL/cl.hpp @@ -0,0 +1,12934 @@ +/******************************************************************************* + * Copyright (c) 2008-2015 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + ******************************************************************************/ + +/*! \file + * + * \brief C++ bindings for OpenCL 1.0 (rev 48), OpenCL 1.1 (rev 33) and + * OpenCL 1.2 (rev 15) + * \author Benedict R. Gaster, Laurent Morichetti and Lee Howes + * + * Additions and fixes from: + * Brian Cole, March 3rd 2010 and April 2012 + * Matt Gruenke, April 2012. + * Bruce Merry, February 2013. + * Tom Deakin and Simon McIntosh-Smith, July 2013 + * + * \version 1.2.8 + * \date October 2015 + * + * Optional extension support + * + * cl + * cl_ext_device_fission + * #define USE_CL_DEVICE_FISSION + */ + +/*! \mainpage + * \section intro Introduction + * For many large applications C++ is the language of choice and so it seems + * reasonable to define C++ bindings for OpenCL. + * + * + * The interface is contained with a single C++ header file \em cl.hpp and all + * definitions are contained within the namespace \em cl. There is no additional + * requirement to include \em cl.h and to use either the C++ or original C + * bindings it is enough to simply include \em cl.hpp. + * + * The bindings themselves are lightweight and correspond closely to the + * underlying C API. Using the C++ bindings introduces no additional execution + * overhead. + * + * For detail documentation on the bindings see: + * + * The OpenCL C++ Wrapper API 1.2 (revision 09) + * http://www.khronos.org/registry/cl/specs/opencl-cplusplus-1.2.pdf + * + * \section example Example + * + * The following example shows a general use case for the C++ + * bindings, including support for the optional exception feature and + * also the supplied vector and string classes, see following sections for + * decriptions of these features. + * + * \code + * #define __CL_ENABLE_EXCEPTIONS + * + * #if defined(__APPLE__) || defined(__MACOSX) + * #include + * #else + * #include + * #endif + * #include + * #include + * #include + * + * const char * helloStr = "__kernel void " + * "hello(void) " + * "{ " + * " " + * "} "; + * + * int + * main(void) + * { + * cl_int err = CL_SUCCESS; + * try { + * + * std::vector platforms; + * cl::Platform::get(&platforms); + * if (platforms.size() == 0) { + * std::cout << "Platform size 0\n"; + * return -1; + * } + * + * cl_context_properties properties[] = + * { CL_CONTEXT_PLATFORM, (cl_context_properties)(platforms[0])(), 0}; + * cl::Context context(CL_DEVICE_TYPE_CPU, properties); + * + * std::vector devices = context.getInfo(); + * + * cl::Program::Sources source(1, + * std::make_pair(helloStr,strlen(helloStr))); + * cl::Program program_ = cl::Program(context, source); + * program_.build(devices); + * + * cl::Kernel kernel(program_, "hello", &err); + * + * cl::Event event; + * cl::CommandQueue queue(context, devices[0], 0, &err); + * queue.enqueueNDRangeKernel( + * kernel, + * cl::NullRange, + * cl::NDRange(4,4), + * cl::NullRange, + * NULL, + * &event); + * + * event.wait(); + * } + * catch (cl::Error err) { + * std::cerr + * << "ERROR: " + * << err.what() + * << "(" + * << err.err() + * << ")" + * << std::endl; + * } + * + * return EXIT_SUCCESS; + * } + * + * \endcode + * + */ +#ifndef CL_HPP_ +#define CL_HPP_ + +#ifdef _WIN32 + +#include + +#if defined(USE_DX_INTEROP) +#include +#include +#endif +#endif // _WIN32 + +#if defined(_MSC_VER) +#include +#endif // _MSC_VER + +// +#if defined(USE_CL_DEVICE_FISSION) +#include +#endif + +#if defined(__APPLE__) || defined(__MACOSX) +#include +#else +#include +#endif // !__APPLE__ + +#if (_MSC_VER >= 1700) || (__cplusplus >= 201103L) +#define CL_HPP_RVALUE_REFERENCES_SUPPORTED +#define CL_HPP_CPP11_ATOMICS_SUPPORTED +#include +#endif + +#if (__cplusplus >= 201103L) +#define CL_HPP_NOEXCEPT noexcept +#else +#define CL_HPP_NOEXCEPT +#endif + + +// To avoid accidentally taking ownership of core OpenCL types +// such as cl_kernel constructors are made explicit +// under OpenCL 1.2 +#if defined(CL_VERSION_1_2) && !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +#define __CL_EXPLICIT_CONSTRUCTORS explicit +#else // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +#define __CL_EXPLICIT_CONSTRUCTORS +#endif // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + +// Define deprecated prefixes and suffixes to ensure compilation +// in case they are not pre-defined +#if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED) +#define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED +#endif // #if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED) +#if !defined(CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED) +#define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED +#endif // #if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED) + +#if !defined(CL_CALLBACK) +#define CL_CALLBACK +#endif //CL_CALLBACK + +#include +#include +#include + +#if defined(__CL_ENABLE_EXCEPTIONS) +#include +#endif // #if defined(__CL_ENABLE_EXCEPTIONS) + +#if !defined(__NO_STD_VECTOR) +#include +#endif + +#if !defined(__NO_STD_STRING) +#include +#endif + +#if defined(__ANDROID__) || defined(linux) || defined(__APPLE__) || defined(__MACOSX) +#include +#endif // linux + +#include + + +/*! \namespace cl + * + * \brief The OpenCL C++ bindings are defined within this namespace. + * + */ +namespace cl { + +class Memory; + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2)) +#define __INIT_CL_EXT_FCN_PTR(name) \ + if(!pfn_##name) { \ + pfn_##name = (PFN_##name) \ + clGetExtensionFunctionAddress(#name); \ + if(!pfn_##name) { \ + } \ + } +#endif // #if defined(CL_VERSION_1_1) + +#if defined(CL_VERSION_1_2) +#define __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, name) \ + if(!pfn_##name) { \ + pfn_##name = (PFN_##name) \ + clGetExtensionFunctionAddressForPlatform(platform, #name); \ + if(!pfn_##name) { \ + } \ + } +#endif // #if defined(CL_VERSION_1_1) + +class Program; +class Device; +class Context; +class CommandQueue; +class Memory; +class Buffer; + +#if defined(__CL_ENABLE_EXCEPTIONS) +/*! \brief Exception class + * + * This may be thrown by API functions when __CL_ENABLE_EXCEPTIONS is defined. + */ +class Error : public std::exception +{ +private: + cl_int err_; + const char * errStr_; +public: + /*! \brief Create a new CL error exception for a given error code + * and corresponding message. + * + * \param err error code value. + * + * \param errStr a descriptive string that must remain in scope until + * handling of the exception has concluded. If set, it + * will be returned by what(). + */ + Error(cl_int err, const char * errStr = NULL) : err_(err), errStr_(errStr) + {} + + ~Error() throw() {} + + /*! \brief Get error string associated with exception + * + * \return A memory pointer to the error message string. + */ + virtual const char * what() const throw () + { + if (errStr_ == NULL) { + return "empty"; + } + else { + return errStr_; + } + } + + /*! \brief Get error code associated with exception + * + * \return The error code. + */ + cl_int err(void) const { return err_; } +}; + +#define __ERR_STR(x) #x +#else +#define __ERR_STR(x) NULL +#endif // __CL_ENABLE_EXCEPTIONS + + +namespace detail +{ +#if defined(__CL_ENABLE_EXCEPTIONS) +static inline cl_int errHandler ( + cl_int err, + const char * errStr = NULL) +{ + if (err != CL_SUCCESS) { + throw Error(err, errStr); + } + return err; +} +#else +static inline cl_int errHandler (cl_int err, const char * errStr = NULL) +{ + (void) errStr; // suppress unused variable warning + return err; +} +#endif // __CL_ENABLE_EXCEPTIONS +} + + + +//! \cond DOXYGEN_DETAIL +#if !defined(__CL_USER_OVERRIDE_ERROR_STRINGS) +#define __GET_DEVICE_INFO_ERR __ERR_STR(clGetDeviceInfo) +#define __GET_PLATFORM_INFO_ERR __ERR_STR(clGetPlatformInfo) +#define __GET_DEVICE_IDS_ERR __ERR_STR(clGetDeviceIDs) +#define __GET_PLATFORM_IDS_ERR __ERR_STR(clGetPlatformIDs) +#define __GET_CONTEXT_INFO_ERR __ERR_STR(clGetContextInfo) +#define __GET_EVENT_INFO_ERR __ERR_STR(clGetEventInfo) +#define __GET_EVENT_PROFILE_INFO_ERR __ERR_STR(clGetEventProfileInfo) +#define __GET_MEM_OBJECT_INFO_ERR __ERR_STR(clGetMemObjectInfo) +#define __GET_IMAGE_INFO_ERR __ERR_STR(clGetImageInfo) +#define __GET_SAMPLER_INFO_ERR __ERR_STR(clGetSamplerInfo) +#define __GET_KERNEL_INFO_ERR __ERR_STR(clGetKernelInfo) +#if defined(CL_VERSION_1_2) +#define __GET_KERNEL_ARG_INFO_ERR __ERR_STR(clGetKernelArgInfo) +#endif // #if defined(CL_VERSION_1_2) +#define __GET_KERNEL_WORK_GROUP_INFO_ERR __ERR_STR(clGetKernelWorkGroupInfo) +#define __GET_PROGRAM_INFO_ERR __ERR_STR(clGetProgramInfo) +#define __GET_PROGRAM_BUILD_INFO_ERR __ERR_STR(clGetProgramBuildInfo) +#define __GET_COMMAND_QUEUE_INFO_ERR __ERR_STR(clGetCommandQueueInfo) + +#define __CREATE_CONTEXT_ERR __ERR_STR(clCreateContext) +#define __CREATE_CONTEXT_FROM_TYPE_ERR __ERR_STR(clCreateContextFromType) +#define __GET_SUPPORTED_IMAGE_FORMATS_ERR __ERR_STR(clGetSupportedImageFormats) + +#define __CREATE_BUFFER_ERR __ERR_STR(clCreateBuffer) +#define __COPY_ERR __ERR_STR(cl::copy) +#define __CREATE_SUBBUFFER_ERR __ERR_STR(clCreateSubBuffer) +#define __CREATE_GL_BUFFER_ERR __ERR_STR(clCreateFromGLBuffer) +#define __CREATE_GL_RENDER_BUFFER_ERR __ERR_STR(clCreateFromGLBuffer) +#define __GET_GL_OBJECT_INFO_ERR __ERR_STR(clGetGLObjectInfo) +#if defined(CL_VERSION_1_2) +#define __CREATE_IMAGE_ERR __ERR_STR(clCreateImage) +#define __CREATE_GL_TEXTURE_ERR __ERR_STR(clCreateFromGLTexture) +#define __IMAGE_DIMENSION_ERR __ERR_STR(Incorrect image dimensions) +#endif // #if defined(CL_VERSION_1_2) +#define __CREATE_SAMPLER_ERR __ERR_STR(clCreateSampler) +#define __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR __ERR_STR(clSetMemObjectDestructorCallback) + +#define __CREATE_USER_EVENT_ERR __ERR_STR(clCreateUserEvent) +#define __SET_USER_EVENT_STATUS_ERR __ERR_STR(clSetUserEventStatus) +#define __SET_EVENT_CALLBACK_ERR __ERR_STR(clSetEventCallback) +#define __WAIT_FOR_EVENTS_ERR __ERR_STR(clWaitForEvents) + +#define __CREATE_KERNEL_ERR __ERR_STR(clCreateKernel) +#define __SET_KERNEL_ARGS_ERR __ERR_STR(clSetKernelArg) +#define __CREATE_PROGRAM_WITH_SOURCE_ERR __ERR_STR(clCreateProgramWithSource) +#define __CREATE_PROGRAM_WITH_BINARY_ERR __ERR_STR(clCreateProgramWithBinary) +#if defined(CL_VERSION_1_2) +#define __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR __ERR_STR(clCreateProgramWithBuiltInKernels) +#endif // #if defined(CL_VERSION_1_2) +#define __BUILD_PROGRAM_ERR __ERR_STR(clBuildProgram) +#if defined(CL_VERSION_1_2) +#define __COMPILE_PROGRAM_ERR __ERR_STR(clCompileProgram) +#define __LINK_PROGRAM_ERR __ERR_STR(clLinkProgram) +#endif // #if defined(CL_VERSION_1_2) +#define __CREATE_KERNELS_IN_PROGRAM_ERR __ERR_STR(clCreateKernelsInProgram) + +#define __CREATE_COMMAND_QUEUE_ERR __ERR_STR(clCreateCommandQueue) +#define __SET_COMMAND_QUEUE_PROPERTY_ERR __ERR_STR(clSetCommandQueueProperty) +#define __ENQUEUE_READ_BUFFER_ERR __ERR_STR(clEnqueueReadBuffer) +#define __ENQUEUE_READ_BUFFER_RECT_ERR __ERR_STR(clEnqueueReadBufferRect) +#define __ENQUEUE_WRITE_BUFFER_ERR __ERR_STR(clEnqueueWriteBuffer) +#define __ENQUEUE_WRITE_BUFFER_RECT_ERR __ERR_STR(clEnqueueWriteBufferRect) +#define __ENQEUE_COPY_BUFFER_ERR __ERR_STR(clEnqueueCopyBuffer) +#define __ENQEUE_COPY_BUFFER_RECT_ERR __ERR_STR(clEnqueueCopyBufferRect) +#define __ENQUEUE_FILL_BUFFER_ERR __ERR_STR(clEnqueueFillBuffer) +#define __ENQUEUE_READ_IMAGE_ERR __ERR_STR(clEnqueueReadImage) +#define __ENQUEUE_WRITE_IMAGE_ERR __ERR_STR(clEnqueueWriteImage) +#define __ENQUEUE_COPY_IMAGE_ERR __ERR_STR(clEnqueueCopyImage) +#define __ENQUEUE_FILL_IMAGE_ERR __ERR_STR(clEnqueueFillImage) +#define __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR __ERR_STR(clEnqueueCopyImageToBuffer) +#define __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR __ERR_STR(clEnqueueCopyBufferToImage) +#define __ENQUEUE_MAP_BUFFER_ERR __ERR_STR(clEnqueueMapBuffer) +#define __ENQUEUE_MAP_IMAGE_ERR __ERR_STR(clEnqueueMapImage) +#define __ENQUEUE_UNMAP_MEM_OBJECT_ERR __ERR_STR(clEnqueueUnMapMemObject) +#define __ENQUEUE_NDRANGE_KERNEL_ERR __ERR_STR(clEnqueueNDRangeKernel) +#define __ENQUEUE_TASK_ERR __ERR_STR(clEnqueueTask) +#define __ENQUEUE_NATIVE_KERNEL __ERR_STR(clEnqueueNativeKernel) +#if defined(CL_VERSION_1_2) +#define __ENQUEUE_MIGRATE_MEM_OBJECTS_ERR __ERR_STR(clEnqueueMigrateMemObjects) +#endif // #if defined(CL_VERSION_1_2) + +#define __ENQUEUE_ACQUIRE_GL_ERR __ERR_STR(clEnqueueAcquireGLObjects) +#define __ENQUEUE_RELEASE_GL_ERR __ERR_STR(clEnqueueReleaseGLObjects) + + +#define __RETAIN_ERR __ERR_STR(Retain Object) +#define __RELEASE_ERR __ERR_STR(Release Object) +#define __FLUSH_ERR __ERR_STR(clFlush) +#define __FINISH_ERR __ERR_STR(clFinish) +#define __VECTOR_CAPACITY_ERR __ERR_STR(Vector capacity error) + +/** + * CL 1.2 version that uses device fission. + */ +#if defined(CL_VERSION_1_2) +#define __CREATE_SUB_DEVICES __ERR_STR(clCreateSubDevices) +#else +#define __CREATE_SUB_DEVICES __ERR_STR(clCreateSubDevicesEXT) +#endif // #if defined(CL_VERSION_1_2) + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2)) +#define __ENQUEUE_MARKER_ERR __ERR_STR(clEnqueueMarker) +#define __ENQUEUE_WAIT_FOR_EVENTS_ERR __ERR_STR(clEnqueueWaitForEvents) +#define __ENQUEUE_BARRIER_ERR __ERR_STR(clEnqueueBarrier) +#define __UNLOAD_COMPILER_ERR __ERR_STR(clUnloadCompiler) +#define __CREATE_GL_TEXTURE_2D_ERR __ERR_STR(clCreateFromGLTexture2D) +#define __CREATE_GL_TEXTURE_3D_ERR __ERR_STR(clCreateFromGLTexture3D) +#define __CREATE_IMAGE2D_ERR __ERR_STR(clCreateImage2D) +#define __CREATE_IMAGE3D_ERR __ERR_STR(clCreateImage3D) +#endif // #if defined(CL_VERSION_1_1) + +#endif // __CL_USER_OVERRIDE_ERROR_STRINGS +//! \endcond + +/** + * CL 1.2 marker and barrier commands + */ +#if defined(CL_VERSION_1_2) +#define __ENQUEUE_MARKER_WAIT_LIST_ERR __ERR_STR(clEnqueueMarkerWithWaitList) +#define __ENQUEUE_BARRIER_WAIT_LIST_ERR __ERR_STR(clEnqueueBarrierWithWaitList) +#endif // #if defined(CL_VERSION_1_2) + +#if !defined(__USE_DEV_STRING) && !defined(__NO_STD_STRING) +typedef std::string STRING_CLASS; +#elif !defined(__USE_DEV_STRING) + +/*! \class string + * \brief Simple string class, that provides a limited subset of std::string + * functionality but avoids many of the issues that come with that class. + + * \note Deprecated. Please use std::string as default or + * re-define the string class to match the std::string + * interface by defining STRING_CLASS + */ +class CL_EXT_PREFIX__VERSION_1_1_DEPRECATED string CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED +{ +private: + ::size_t size_; + char * str_; +public: + //! \brief Constructs an empty string, allocating no memory. + string(void) : size_(0), str_(NULL) + { + } + + /*! \brief Constructs a string populated from an arbitrary value of + * specified size. + * + * An extra '\0' is added, in case none was contained in str. + * + * \param str the initial value of the string instance. Note that '\0' + * characters receive no special treatment. If NULL, + * the string is left empty, with a size of 0. + * + * \param size the number of characters to copy from str. + */ + string(const char * str, ::size_t size) : + size_(size), + str_(NULL) + { + if( size > 0 ) { + str_ = new char[size_+1]; + if (str_ != NULL) { + memcpy(str_, str, size_ * sizeof(char)); + str_[size_] = '\0'; + } + else { + size_ = 0; + } + } + } + + /*! \brief Constructs a string populated from a null-terminated value. + * + * \param str the null-terminated initial value of the string instance. + * If NULL, the string is left empty, with a size of 0. + */ + string(const char * str) : + size_(0), + str_(NULL) + { + if( str ) { + size_= ::strlen(str); + } + if( size_ > 0 ) { + str_ = new char[size_ + 1]; + if (str_ != NULL) { + memcpy(str_, str, (size_ + 1) * sizeof(char)); + } + } + } + + void resize( ::size_t n ) + { + if( size_ == n ) { + return; + } + if (n == 0) { + if( str_ ) { + delete [] str_; + } + str_ = NULL; + size_ = 0; + } + else { + char *newString = new char[n + 1]; + ::size_t copySize = n; + if( size_ < n ) { + copySize = size_; + } + size_ = n; + + if(str_) { + memcpy(newString, str_, (copySize + 1) * sizeof(char)); + } + if( copySize < size_ ) { + memset(newString + copySize, 0, size_ - copySize); + } + newString[size_] = '\0'; + + delete [] str_; + str_ = newString; + } + } + + const char& operator[] ( ::size_t pos ) const + { + return str_[pos]; + } + + char& operator[] ( ::size_t pos ) + { + return str_[pos]; + } + + /*! \brief Copies the value of another string to this one. + * + * \param rhs the string to copy. + * + * \returns a reference to the modified instance. + */ + string& operator=(const string& rhs) + { + if (this == &rhs) { + return *this; + } + + if( str_ != NULL ) { + delete [] str_; + str_ = NULL; + size_ = 0; + } + + if (rhs.size_ == 0 || rhs.str_ == NULL) { + str_ = NULL; + size_ = 0; + } + else { + str_ = new char[rhs.size_ + 1]; + size_ = rhs.size_; + + if (str_ != NULL) { + memcpy(str_, rhs.str_, (size_ + 1) * sizeof(char)); + } + else { + size_ = 0; + } + } + + return *this; + } + + /*! \brief Constructs a string by copying the value of another instance. + * + * \param rhs the string to copy. + */ + string(const string& rhs) : + size_(0), + str_(NULL) + { + *this = rhs; + } + + //! \brief Destructor - frees memory used to hold the current value. + ~string() + { + delete[] str_; + str_ = NULL; + } + + //! \brief Queries the length of the string, excluding any added '\0's. + ::size_t size(void) const { return size_; } + + //! \brief Queries the length of the string, excluding any added '\0's. + ::size_t length(void) const { return size(); } + + /*! \brief Returns a pointer to the private copy held by this instance, + * or "" if empty/unset. + */ + const char * c_str(void) const { return (str_) ? str_ : "";} +}; +typedef cl::string STRING_CLASS; +#endif // #elif !defined(__USE_DEV_STRING) + +#if !defined(__USE_DEV_VECTOR) && !defined(__NO_STD_VECTOR) +#define VECTOR_CLASS std::vector +#elif !defined(__USE_DEV_VECTOR) +#define VECTOR_CLASS cl::vector + +#if !defined(__MAX_DEFAULT_VECTOR_SIZE) +#define __MAX_DEFAULT_VECTOR_SIZE 10 +#endif + +/*! \class vector + * \brief Fixed sized vector implementation that mirroring + * + * \note Deprecated. Please use std::vector as default or + * re-define the vector class to match the std::vector + * interface by defining VECTOR_CLASS + + * \note Not recommended for use with custom objects as + * current implementation will construct N elements + * + * std::vector functionality. + * \brief Fixed sized vector compatible with std::vector. + * + * \note + * This differs from std::vector<> not just in memory allocation, + * but also in terms of when members are constructed, destroyed, + * and assigned instead of being copy constructed. + * + * \param T type of element contained in the vector. + * + * \param N maximum size of the vector. + */ +template +class CL_EXT_PREFIX__VERSION_1_1_DEPRECATED vector +{ +private: + T data_[N]; + unsigned int size_; + +public: + //! \brief Constructs an empty vector with no memory allocated. + vector() : + size_(static_cast(0)) + {} + + //! \brief Deallocates the vector's memory and destroys all of its elements. + ~vector() + { + clear(); + } + + //! \brief Returns the number of elements currently contained. + unsigned int size(void) const + { + return size_; + } + + /*! \brief Empties the vector of all elements. + * \note + * This does not deallocate memory but will invoke destructors + * on contained elements. + */ + void clear() + { + while(!empty()) { + pop_back(); + } + } + + /*! \brief Appends an element after the last valid element. + * Calling this on a vector that has reached capacity will throw an + * exception if exceptions are enabled. + */ + void push_back (const T& x) + { + if (size() < N) { + new (&data_[size_]) T(x); + size_++; + } else { + detail::errHandler(CL_MEM_OBJECT_ALLOCATION_FAILURE, __VECTOR_CAPACITY_ERR); + } + } + + /*! \brief Removes the last valid element from the vector. + * Calling this on an empty vector will throw an exception + * if exceptions are enabled. + */ + void pop_back(void) + { + if (size_ != 0) { + --size_; + data_[size_].~T(); + } else { + detail::errHandler(CL_MEM_OBJECT_ALLOCATION_FAILURE, __VECTOR_CAPACITY_ERR); + } + } + + /*! \brief Constructs with a value copied from another. + * + * \param vec the vector to copy. + */ + vector(const vector& vec) : + size_(vec.size_) + { + if (size_ != 0) { + assign(vec.begin(), vec.end()); + } + } + + /*! \brief Constructs with a specified number of initial elements. + * + * \param size number of initial elements. + * + * \param val value of initial elements. + */ + vector(unsigned int size, const T& val = T()) : + size_(0) + { + for (unsigned int i = 0; i < size; i++) { + push_back(val); + } + } + + /*! \brief Overwrites the current content with that copied from another + * instance. + * + * \param rhs vector to copy. + * + * \returns a reference to this. + */ + vector& operator=(const vector& rhs) + { + if (this == &rhs) { + return *this; + } + + if (rhs.size_ != 0) { + assign(rhs.begin(), rhs.end()); + } else { + clear(); + } + + return *this; + } + + /*! \brief Tests equality against another instance. + * + * \param vec the vector against which to compare. + */ + bool operator==(vector &vec) + { + if (size() != vec.size()) { + return false; + } + + for( unsigned int i = 0; i < size(); ++i ) { + if( operator[](i) != vec[i] ) { + return false; + } + } + return true; + } + + //! \brief Conversion operator to T*. + operator T* () { return data_; } + + //! \brief Conversion operator to const T*. + operator const T* () const { return data_; } + + //! \brief Tests whether this instance has any elements. + bool empty (void) const + { + return size_==0; + } + + //! \brief Returns the maximum number of elements this instance can hold. + unsigned int max_size (void) const + { + return N; + } + + //! \brief Returns the maximum number of elements this instance can hold. + unsigned int capacity () const + { + return N; + } + + //! \brief Resizes the vector to the given size + void resize(unsigned int newSize, T fill = T()) + { + if (newSize > N) + { + detail::errHandler(CL_MEM_OBJECT_ALLOCATION_FAILURE, __VECTOR_CAPACITY_ERR); + } + else + { + while (size_ < newSize) + { + new (&data_[size_]) T(fill); + size_++; + } + while (size_ > newSize) + { + --size_; + data_[size_].~T(); + } + } + } + + /*! \brief Returns a reference to a given element. + * + * \param index which element to access. * + * \note + * The caller is responsible for ensuring index is >= 0 and < size(). + */ + T& operator[](int index) + { + return data_[index]; + } + + /*! \brief Returns a const reference to a given element. + * + * \param index which element to access. + * + * \note + * The caller is responsible for ensuring index is >= 0 and < size(). + */ + const T& operator[](int index) const + { + return data_[index]; + } + + /*! \brief Assigns elements of the vector based on a source iterator range. + * + * \param start Beginning iterator of source range + * \param end Enditerator of source range + * + * \note + * Will throw an exception if exceptions are enabled and size exceeded. + */ + template + void assign(I start, I end) + { + clear(); + while(start != end) { + push_back(*start); + start++; + } + } + + /*! \class iterator + * \brief Const iterator class for vectors + */ + class iterator + { + private: + const vector *vec_; + int index_; + + /** + * Internal iterator constructor to capture reference + * to the vector it iterates over rather than taking + * the vector by copy. + */ + iterator (const vector &vec, int index) : + vec_(&vec) + { + if( !vec.empty() ) { + index_ = index; + } else { + index_ = -1; + } + } + + public: + iterator(void) : + index_(-1), + vec_(NULL) + { + } + + iterator(const iterator& rhs) : + vec_(rhs.vec_), + index_(rhs.index_) + { + } + + ~iterator(void) {} + + static iterator begin(const cl::vector &vec) + { + iterator i(vec, 0); + + return i; + } + + static iterator end(const cl::vector &vec) + { + iterator i(vec, vec.size()); + + return i; + } + + bool operator==(iterator i) + { + return ((vec_ == i.vec_) && + (index_ == i.index_)); + } + + bool operator!=(iterator i) + { + return (!(*this==i)); + } + + iterator& operator++() + { + ++index_; + return *this; + } + + iterator operator++(int) + { + iterator retVal(*this); + ++index_; + return retVal; + } + + iterator& operator--() + { + --index_; + return *this; + } + + iterator operator--(int) + { + iterator retVal(*this); + --index_; + return retVal; + } + + const T& operator *() const + { + return (*vec_)[index_]; + } + }; + + iterator begin(void) + { + return iterator::begin(*this); + } + + iterator begin(void) const + { + return iterator::begin(*this); + } + + iterator end(void) + { + return iterator::end(*this); + } + + iterator end(void) const + { + return iterator::end(*this); + } + + T& front(void) + { + return data_[0]; + } + + T& back(void) + { + return data_[size_]; + } + + const T& front(void) const + { + return data_[0]; + } + + const T& back(void) const + { + return data_[size_-1]; + } +} CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +#endif // #if !defined(__USE_DEV_VECTOR) && !defined(__NO_STD_VECTOR) + + + + + +namespace detail { +#define __DEFAULT_NOT_INITIALIZED 1 +#define __DEFAULT_BEING_INITIALIZED 2 +#define __DEFAULT_INITIALIZED 4 + + /* + * Compare and exchange primitives are needed for handling of defaults + */ + +#ifdef CL_HPP_CPP11_ATOMICS_SUPPORTED + inline int compare_exchange(std::atomic * dest, int exchange, int comparand) +#else // !CL_HPP_CPP11_ATOMICS_SUPPORTED + inline int compare_exchange(volatile int * dest, int exchange, int comparand) +#endif // !CL_HPP_CPP11_ATOMICS_SUPPORTED + { +#ifdef CL_HPP_CPP11_ATOMICS_SUPPORTED + std::atomic_compare_exchange_strong(dest, &comparand, exchange); + return comparand; +#elif _MSC_VER + return (int)(_InterlockedCompareExchange( + (volatile long*)dest, + (long)exchange, + (long)comparand)); +#else // !_MSC_VER && !CL_HPP_CPP11_ATOMICS_SUPPORTED + return (__sync_val_compare_and_swap( + dest, + comparand, + exchange)); +#endif // !CL_HPP_CPP11_ATOMICS_SUPPORTED + } + + inline void fence() { +#ifdef CL_HPP_CPP11_ATOMICS_SUPPORTED + std::atomic_thread_fence(std::memory_order_seq_cst); +#elif _MSC_VER // !CL_HPP_CPP11_ATOMICS_SUPPORTED + _ReadWriteBarrier(); +#else // !_MSC_VER && !CL_HPP_CPP11_ATOMICS_SUPPORTED + __sync_synchronize(); +#endif // !CL_HPP_CPP11_ATOMICS_SUPPORTED + } +} // namespace detail + + +/*! \brief class used to interface between C++ and + * OpenCL C calls that require arrays of size_t values, whose + * size is known statically. + */ +template +class size_t +{ +private: + ::size_t data_[N]; + +public: + //! \brief Initialize size_t to all 0s + size_t() + { + for( int i = 0; i < N; ++i ) { + data_[i] = 0; + } + } + + ::size_t& operator[](int index) + { + return data_[index]; + } + + const ::size_t& operator[](int index) const + { + return data_[index]; + } + + //! \brief Conversion operator to T*. + operator ::size_t* () { return data_; } + + //! \brief Conversion operator to const T*. + operator const ::size_t* () const { return data_; } +}; + +namespace detail { + +// Generic getInfoHelper. The final parameter is used to guide overload +// resolution: the actual parameter passed is an int, which makes this +// a worse conversion sequence than a specialization that declares the +// parameter as an int. +template +inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long) +{ + return f(name, sizeof(T), param, NULL); +} + +// Specialized getInfoHelper for VECTOR_CLASS params +template +inline cl_int getInfoHelper(Func f, cl_uint name, VECTOR_CLASS* param, long) +{ + ::size_t required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + T* value = (T*) alloca(required); + err = f(name, required, value, NULL); + if (err != CL_SUCCESS) { + return err; + } + + param->assign(&value[0], &value[required/sizeof(T)]); + return CL_SUCCESS; +} + +/* Specialization for reference-counted types. This depends on the + * existence of Wrapper::cl_type, and none of the other types having the + * cl_type member. Note that simplify specifying the parameter as Wrapper + * does not work, because when using a derived type (e.g. Context) the generic + * template will provide a better match. + */ +template +inline cl_int getInfoHelper(Func f, cl_uint name, VECTOR_CLASS* param, int, typename T::cl_type = 0) +{ + ::size_t required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + typename T::cl_type * value = (typename T::cl_type *) alloca(required); + err = f(name, required, value, NULL); + if (err != CL_SUCCESS) { + return err; + } + + ::size_t elements = required / sizeof(typename T::cl_type); + param->assign(&value[0], &value[elements]); + for (::size_t i = 0; i < elements; i++) + { + if (value[i] != NULL) + { + err = (*param)[i].retain(); + if (err != CL_SUCCESS) { + return err; + } + } + } + return CL_SUCCESS; +} + +// Specialized for getInfo +template +inline cl_int getInfoHelper(Func f, cl_uint name, VECTOR_CLASS* param, int) +{ + cl_int err = f(name, param->size() * sizeof(char *), &(*param)[0], NULL); + + if (err != CL_SUCCESS) { + return err; + } + + return CL_SUCCESS; +} + +// Specialized GetInfoHelper for STRING_CLASS params +template +inline cl_int getInfoHelper(Func f, cl_uint name, STRING_CLASS* param, long) +{ +#if defined(__NO_STD_VECTOR) || defined(__NO_STD_STRING) + ::size_t required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + char* value = (char*)alloca(required); + err = f(name, required, value, NULL); + if (err != CL_SUCCESS) { + return err; + } + + *param = value; + return CL_SUCCESS; +#else + ::size_t required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + // std::string has a constant data member + // a char vector does not + VECTOR_CLASS value(required); + err = f(name, required, value.data(), NULL); + if (err != CL_SUCCESS) { + return err; + } + if (param) { + param->assign(value.begin(), value.end()); + } +#endif + return CL_SUCCESS; +} + +// Specialized GetInfoHelper for cl::size_t params +template +inline cl_int getInfoHelper(Func f, cl_uint name, size_t* param, long) +{ + ::size_t required; + cl_int err = f(name, 0, NULL, &required); + if (err != CL_SUCCESS) { + return err; + } + + ::size_t* value = (::size_t*) alloca(required); + err = f(name, required, value, NULL); + if (err != CL_SUCCESS) { + return err; + } + + for(int i = 0; i < N; ++i) { + (*param)[i] = value[i]; + } + + return CL_SUCCESS; +} + +template struct ReferenceHandler; + +/* Specialization for reference-counted types. This depends on the + * existence of Wrapper::cl_type, and none of the other types having the + * cl_type member. Note that simplify specifying the parameter as Wrapper + * does not work, because when using a derived type (e.g. Context) the generic + * template will provide a better match. + */ +template +inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typename T::cl_type = 0) +{ + typename T::cl_type value; + cl_int err = f(name, sizeof(value), &value, NULL); + if (err != CL_SUCCESS) { + return err; + } + *param = value; + if (value != NULL) + { + err = param->retain(); + if (err != CL_SUCCESS) { + return err; + } + } + return CL_SUCCESS; +} + +#define __PARAM_NAME_INFO_1_0(F) \ + F(cl_platform_info, CL_PLATFORM_PROFILE, STRING_CLASS) \ + F(cl_platform_info, CL_PLATFORM_VERSION, STRING_CLASS) \ + F(cl_platform_info, CL_PLATFORM_NAME, STRING_CLASS) \ + F(cl_platform_info, CL_PLATFORM_VENDOR, STRING_CLASS) \ + F(cl_platform_info, CL_PLATFORM_EXTENSIONS, STRING_CLASS) \ + \ + F(cl_device_info, CL_DEVICE_TYPE, cl_device_type) \ + F(cl_device_info, CL_DEVICE_VENDOR_ID, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_COMPUTE_UNITS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_WORK_GROUP_SIZE, ::size_t) \ + F(cl_device_info, CL_DEVICE_MAX_WORK_ITEM_SIZES, VECTOR_CLASS< ::size_t>) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_CLOCK_FREQUENCY, cl_uint) \ + F(cl_device_info, CL_DEVICE_ADDRESS_BITS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_READ_IMAGE_ARGS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_WRITE_IMAGE_ARGS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MAX_MEM_ALLOC_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_IMAGE2D_MAX_WIDTH, ::size_t) \ + F(cl_device_info, CL_DEVICE_IMAGE2D_MAX_HEIGHT, ::size_t) \ + F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_WIDTH, ::size_t) \ + F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_HEIGHT, ::size_t) \ + F(cl_device_info, CL_DEVICE_IMAGE3D_MAX_DEPTH, ::size_t) \ + F(cl_device_info, CL_DEVICE_IMAGE_SUPPORT, cl_bool) \ + F(cl_device_info, CL_DEVICE_MAX_PARAMETER_SIZE, ::size_t) \ + F(cl_device_info, CL_DEVICE_MAX_SAMPLERS, cl_uint) \ + F(cl_device_info, CL_DEVICE_MEM_BASE_ADDR_ALIGN, cl_uint) \ + F(cl_device_info, CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE, cl_uint) \ + F(cl_device_info, CL_DEVICE_SINGLE_FP_CONFIG, cl_device_fp_config) \ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHE_TYPE, cl_device_mem_cache_type) \ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE, cl_uint)\ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_CACHE_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_GLOBAL_MEM_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_MAX_CONSTANT_ARGS, cl_uint) \ + F(cl_device_info, CL_DEVICE_LOCAL_MEM_TYPE, cl_device_local_mem_type) \ + F(cl_device_info, CL_DEVICE_LOCAL_MEM_SIZE, cl_ulong) \ + F(cl_device_info, CL_DEVICE_ERROR_CORRECTION_SUPPORT, cl_bool) \ + F(cl_device_info, CL_DEVICE_PROFILING_TIMER_RESOLUTION, ::size_t) \ + F(cl_device_info, CL_DEVICE_ENDIAN_LITTLE, cl_bool) \ + F(cl_device_info, CL_DEVICE_AVAILABLE, cl_bool) \ + F(cl_device_info, CL_DEVICE_COMPILER_AVAILABLE, cl_bool) \ + F(cl_device_info, CL_DEVICE_EXECUTION_CAPABILITIES, cl_device_exec_capabilities) \ + F(cl_device_info, CL_DEVICE_QUEUE_PROPERTIES, cl_command_queue_properties) \ + F(cl_device_info, CL_DEVICE_PLATFORM, cl_platform_id) \ + F(cl_device_info, CL_DEVICE_NAME, STRING_CLASS) \ + F(cl_device_info, CL_DEVICE_VENDOR, STRING_CLASS) \ + F(cl_device_info, CL_DRIVER_VERSION, STRING_CLASS) \ + F(cl_device_info, CL_DEVICE_PROFILE, STRING_CLASS) \ + F(cl_device_info, CL_DEVICE_VERSION, STRING_CLASS) \ + F(cl_device_info, CL_DEVICE_EXTENSIONS, STRING_CLASS) \ + \ + F(cl_context_info, CL_CONTEXT_REFERENCE_COUNT, cl_uint) \ + F(cl_context_info, CL_CONTEXT_DEVICES, VECTOR_CLASS) \ + F(cl_context_info, CL_CONTEXT_PROPERTIES, VECTOR_CLASS) \ + \ + F(cl_event_info, CL_EVENT_COMMAND_QUEUE, cl::CommandQueue) \ + F(cl_event_info, CL_EVENT_COMMAND_TYPE, cl_command_type) \ + F(cl_event_info, CL_EVENT_REFERENCE_COUNT, cl_uint) \ + F(cl_event_info, CL_EVENT_COMMAND_EXECUTION_STATUS, cl_int) \ + \ + F(cl_profiling_info, CL_PROFILING_COMMAND_QUEUED, cl_ulong) \ + F(cl_profiling_info, CL_PROFILING_COMMAND_SUBMIT, cl_ulong) \ + F(cl_profiling_info, CL_PROFILING_COMMAND_START, cl_ulong) \ + F(cl_profiling_info, CL_PROFILING_COMMAND_END, cl_ulong) \ + \ + F(cl_mem_info, CL_MEM_TYPE, cl_mem_object_type) \ + F(cl_mem_info, CL_MEM_FLAGS, cl_mem_flags) \ + F(cl_mem_info, CL_MEM_SIZE, ::size_t) \ + F(cl_mem_info, CL_MEM_HOST_PTR, void*) \ + F(cl_mem_info, CL_MEM_MAP_COUNT, cl_uint) \ + F(cl_mem_info, CL_MEM_REFERENCE_COUNT, cl_uint) \ + F(cl_mem_info, CL_MEM_CONTEXT, cl::Context) \ + \ + F(cl_image_info, CL_IMAGE_FORMAT, cl_image_format) \ + F(cl_image_info, CL_IMAGE_ELEMENT_SIZE, ::size_t) \ + F(cl_image_info, CL_IMAGE_ROW_PITCH, ::size_t) \ + F(cl_image_info, CL_IMAGE_SLICE_PITCH, ::size_t) \ + F(cl_image_info, CL_IMAGE_WIDTH, ::size_t) \ + F(cl_image_info, CL_IMAGE_HEIGHT, ::size_t) \ + F(cl_image_info, CL_IMAGE_DEPTH, ::size_t) \ + \ + F(cl_sampler_info, CL_SAMPLER_REFERENCE_COUNT, cl_uint) \ + F(cl_sampler_info, CL_SAMPLER_CONTEXT, cl::Context) \ + F(cl_sampler_info, CL_SAMPLER_NORMALIZED_COORDS, cl_bool) \ + F(cl_sampler_info, CL_SAMPLER_ADDRESSING_MODE, cl_addressing_mode) \ + F(cl_sampler_info, CL_SAMPLER_FILTER_MODE, cl_filter_mode) \ + \ + F(cl_program_info, CL_PROGRAM_REFERENCE_COUNT, cl_uint) \ + F(cl_program_info, CL_PROGRAM_CONTEXT, cl::Context) \ + F(cl_program_info, CL_PROGRAM_NUM_DEVICES, cl_uint) \ + F(cl_program_info, CL_PROGRAM_DEVICES, VECTOR_CLASS) \ + F(cl_program_info, CL_PROGRAM_SOURCE, STRING_CLASS) \ + F(cl_program_info, CL_PROGRAM_BINARY_SIZES, VECTOR_CLASS< ::size_t>) \ + F(cl_program_info, CL_PROGRAM_BINARIES, VECTOR_CLASS) \ + \ + F(cl_program_build_info, CL_PROGRAM_BUILD_STATUS, cl_build_status) \ + F(cl_program_build_info, CL_PROGRAM_BUILD_OPTIONS, STRING_CLASS) \ + F(cl_program_build_info, CL_PROGRAM_BUILD_LOG, STRING_CLASS) \ + \ + F(cl_kernel_info, CL_KERNEL_FUNCTION_NAME, STRING_CLASS) \ + F(cl_kernel_info, CL_KERNEL_NUM_ARGS, cl_uint) \ + F(cl_kernel_info, CL_KERNEL_REFERENCE_COUNT, cl_uint) \ + F(cl_kernel_info, CL_KERNEL_CONTEXT, cl::Context) \ + F(cl_kernel_info, CL_KERNEL_PROGRAM, cl::Program) \ + \ + F(cl_kernel_work_group_info, CL_KERNEL_WORK_GROUP_SIZE, ::size_t) \ + F(cl_kernel_work_group_info, CL_KERNEL_COMPILE_WORK_GROUP_SIZE, cl::size_t<3>) \ + F(cl_kernel_work_group_info, CL_KERNEL_LOCAL_MEM_SIZE, cl_ulong) \ + \ + F(cl_command_queue_info, CL_QUEUE_CONTEXT, cl::Context) \ + F(cl_command_queue_info, CL_QUEUE_DEVICE, cl::Device) \ + F(cl_command_queue_info, CL_QUEUE_REFERENCE_COUNT, cl_uint) \ + F(cl_command_queue_info, CL_QUEUE_PROPERTIES, cl_command_queue_properties) + +#if defined(CL_VERSION_1_1) +#define __PARAM_NAME_INFO_1_1(F) \ + F(cl_context_info, CL_CONTEXT_NUM_DEVICES, cl_uint)\ + F(cl_device_info, CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_INT, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE, cl_uint) \ + F(cl_device_info, CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF, cl_uint) \ + F(cl_device_info, CL_DEVICE_DOUBLE_FP_CONFIG, cl_device_fp_config) \ + F(cl_device_info, CL_DEVICE_HALF_FP_CONFIG, cl_device_fp_config) \ + F(cl_device_info, CL_DEVICE_HOST_UNIFIED_MEMORY, cl_bool) \ + F(cl_device_info, CL_DEVICE_OPENCL_C_VERSION, STRING_CLASS) \ + \ + F(cl_mem_info, CL_MEM_ASSOCIATED_MEMOBJECT, cl::Memory) \ + F(cl_mem_info, CL_MEM_OFFSET, ::size_t) \ + \ + F(cl_kernel_work_group_info, CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, ::size_t) \ + F(cl_kernel_work_group_info, CL_KERNEL_PRIVATE_MEM_SIZE, cl_ulong) \ + \ + F(cl_event_info, CL_EVENT_CONTEXT, cl::Context) +#endif // CL_VERSION_1_1 + + +#if defined(CL_VERSION_1_2) +#define __PARAM_NAME_INFO_1_2(F) \ + F(cl_image_info, CL_IMAGE_BUFFER, cl::Buffer) \ + \ + F(cl_program_info, CL_PROGRAM_NUM_KERNELS, ::size_t) \ + F(cl_program_info, CL_PROGRAM_KERNEL_NAMES, STRING_CLASS) \ + \ + F(cl_program_build_info, CL_PROGRAM_BINARY_TYPE, cl_program_binary_type) \ + \ + F(cl_kernel_info, CL_KERNEL_ATTRIBUTES, STRING_CLASS) \ + \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_ADDRESS_QUALIFIER, cl_kernel_arg_address_qualifier) \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_ACCESS_QUALIFIER, cl_kernel_arg_access_qualifier) \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_TYPE_NAME, STRING_CLASS) \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_NAME, STRING_CLASS) \ + F(cl_kernel_arg_info, CL_KERNEL_ARG_TYPE_QUALIFIER, cl_kernel_arg_type_qualifier) \ + \ + F(cl_device_info, CL_DEVICE_PARENT_DEVICE, cl_device_id) \ + F(cl_device_info, CL_DEVICE_PARTITION_PROPERTIES, VECTOR_CLASS) \ + F(cl_device_info, CL_DEVICE_PARTITION_TYPE, VECTOR_CLASS) \ + F(cl_device_info, CL_DEVICE_REFERENCE_COUNT, cl_uint) \ + F(cl_device_info, CL_DEVICE_PREFERRED_INTEROP_USER_SYNC, ::size_t) \ + F(cl_device_info, CL_DEVICE_PARTITION_AFFINITY_DOMAIN, cl_device_affinity_domain) \ + F(cl_device_info, CL_DEVICE_BUILT_IN_KERNELS, STRING_CLASS) +#endif // #if defined(CL_VERSION_1_2) + +#if defined(USE_CL_DEVICE_FISSION) +#define __PARAM_NAME_DEVICE_FISSION(F) \ + F(cl_device_info, CL_DEVICE_PARENT_DEVICE_EXT, cl_device_id) \ + F(cl_device_info, CL_DEVICE_PARTITION_TYPES_EXT, VECTOR_CLASS) \ + F(cl_device_info, CL_DEVICE_AFFINITY_DOMAINS_EXT, VECTOR_CLASS) \ + F(cl_device_info, CL_DEVICE_REFERENCE_COUNT_EXT , cl_uint) \ + F(cl_device_info, CL_DEVICE_PARTITION_STYLE_EXT, VECTOR_CLASS) +#endif // USE_CL_DEVICE_FISSION + +template +struct param_traits {}; + +#define __CL_DECLARE_PARAM_TRAITS(token, param_name, T) \ +struct token; \ +template<> \ +struct param_traits \ +{ \ + enum { value = param_name }; \ + typedef T param_type; \ +}; + +__PARAM_NAME_INFO_1_0(__CL_DECLARE_PARAM_TRAITS) +#if defined(CL_VERSION_1_1) +__PARAM_NAME_INFO_1_1(__CL_DECLARE_PARAM_TRAITS) +#endif // CL_VERSION_1_1 +#if defined(CL_VERSION_1_2) +__PARAM_NAME_INFO_1_2(__CL_DECLARE_PARAM_TRAITS) +#endif // CL_VERSION_1_1 + +#if defined(USE_CL_DEVICE_FISSION) +__PARAM_NAME_DEVICE_FISSION(__CL_DECLARE_PARAM_TRAITS); +#endif // USE_CL_DEVICE_FISSION + +#ifdef CL_PLATFORM_ICD_SUFFIX_KHR +__CL_DECLARE_PARAM_TRAITS(cl_platform_info, CL_PLATFORM_ICD_SUFFIX_KHR, STRING_CLASS) +#endif + +#ifdef CL_DEVICE_PROFILING_TIMER_OFFSET_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_PROFILING_TIMER_OFFSET_AMD, cl_ulong) +#endif + +#ifdef CL_DEVICE_GLOBAL_FREE_MEMORY_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_FREE_MEMORY_AMD, VECTOR_CLASS< ::size_t>) +#endif +#ifdef CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_SIMD_WIDTH_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_SIMD_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_WAVEFRONT_WIDTH_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_WAVEFRONT_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD, cl_uint) +#endif +#ifdef CL_DEVICE_LOCAL_MEM_BANKS_AMD +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_LOCAL_MEM_BANKS_AMD, cl_uint) +#endif + +#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV, cl_uint) +#endif +#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV, cl_uint) +#endif +#ifdef CL_DEVICE_REGISTERS_PER_BLOCK_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_REGISTERS_PER_BLOCK_NV, cl_uint) +#endif +#ifdef CL_DEVICE_WARP_SIZE_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_WARP_SIZE_NV, cl_uint) +#endif +#ifdef CL_DEVICE_GPU_OVERLAP_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GPU_OVERLAP_NV, cl_bool) +#endif +#ifdef CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV, cl_bool) +#endif +#ifdef CL_DEVICE_INTEGRATED_MEMORY_NV +__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_INTEGRATED_MEMORY_NV, cl_bool) +#endif + +// Convenience functions + +template +inline cl_int +getInfo(Func f, cl_uint name, T* param) +{ + return getInfoHelper(f, name, param, 0); +} + +template +struct GetInfoFunctor0 +{ + Func f_; const Arg0& arg0_; + cl_int operator ()( + cl_uint param, ::size_t size, void* value, ::size_t* size_ret) + { return f_(arg0_, param, size, value, size_ret); } +}; + +template +struct GetInfoFunctor1 +{ + Func f_; const Arg0& arg0_; const Arg1& arg1_; + cl_int operator ()( + cl_uint param, ::size_t size, void* value, ::size_t* size_ret) + { return f_(arg0_, arg1_, param, size, value, size_ret); } +}; + +template +inline cl_int +getInfo(Func f, const Arg0& arg0, cl_uint name, T* param) +{ + GetInfoFunctor0 f0 = { f, arg0 }; + return getInfoHelper(f0, name, param, 0); +} + +template +inline cl_int +getInfo(Func f, const Arg0& arg0, const Arg1& arg1, cl_uint name, T* param) +{ + GetInfoFunctor1 f0 = { f, arg0, arg1 }; + return getInfoHelper(f0, name, param, 0); +} + +template +struct ReferenceHandler +{ }; + +#if defined(CL_VERSION_1_2) +/** + * OpenCL 1.2 devices do have retain/release. + */ +template <> +struct ReferenceHandler +{ + /** + * Retain the device. + * \param device A valid device created using createSubDevices + * \return + * CL_SUCCESS if the function executed successfully. + * CL_INVALID_DEVICE if device was not a valid subdevice + * CL_OUT_OF_RESOURCES + * CL_OUT_OF_HOST_MEMORY + */ + static cl_int retain(cl_device_id device) + { return ::clRetainDevice(device); } + /** + * Retain the device. + * \param device A valid device created using createSubDevices + * \return + * CL_SUCCESS if the function executed successfully. + * CL_INVALID_DEVICE if device was not a valid subdevice + * CL_OUT_OF_RESOURCES + * CL_OUT_OF_HOST_MEMORY + */ + static cl_int release(cl_device_id device) + { return ::clReleaseDevice(device); } +}; +#else // #if defined(CL_VERSION_1_2) +/** + * OpenCL 1.1 devices do not have retain/release. + */ +template <> +struct ReferenceHandler +{ + // cl_device_id does not have retain(). + static cl_int retain(cl_device_id) + { return CL_SUCCESS; } + // cl_device_id does not have release(). + static cl_int release(cl_device_id) + { return CL_SUCCESS; } +}; +#endif // #if defined(CL_VERSION_1_2) + +template <> +struct ReferenceHandler +{ + // cl_platform_id does not have retain(). + static cl_int retain(cl_platform_id) + { return CL_SUCCESS; } + // cl_platform_id does not have release(). + static cl_int release(cl_platform_id) + { return CL_SUCCESS; } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_context context) + { return ::clRetainContext(context); } + static cl_int release(cl_context context) + { return ::clReleaseContext(context); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_command_queue queue) + { return ::clRetainCommandQueue(queue); } + static cl_int release(cl_command_queue queue) + { return ::clReleaseCommandQueue(queue); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_mem memory) + { return ::clRetainMemObject(memory); } + static cl_int release(cl_mem memory) + { return ::clReleaseMemObject(memory); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_sampler sampler) + { return ::clRetainSampler(sampler); } + static cl_int release(cl_sampler sampler) + { return ::clReleaseSampler(sampler); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_program program) + { return ::clRetainProgram(program); } + static cl_int release(cl_program program) + { return ::clReleaseProgram(program); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_kernel kernel) + { return ::clRetainKernel(kernel); } + static cl_int release(cl_kernel kernel) + { return ::clReleaseKernel(kernel); } +}; + +template <> +struct ReferenceHandler +{ + static cl_int retain(cl_event event) + { return ::clRetainEvent(event); } + static cl_int release(cl_event event) + { return ::clReleaseEvent(event); } +}; + + +// Extracts version number with major in the upper 16 bits, minor in the lower 16 +static cl_uint getVersion(const char *versionInfo) +{ + int highVersion = 0; + int lowVersion = 0; + int index = 7; + while(versionInfo[index] != '.' ) { + highVersion *= 10; + highVersion += versionInfo[index]-'0'; + ++index; + } + ++index; + while(versionInfo[index] != ' ' && versionInfo[index] != '\0') { + lowVersion *= 10; + lowVersion += versionInfo[index]-'0'; + ++index; + } + return (highVersion << 16) | lowVersion; +} + +static cl_uint getPlatformVersion(cl_platform_id platform) +{ + ::size_t size = 0; + clGetPlatformInfo(platform, CL_PLATFORM_VERSION, 0, NULL, &size); + char *versionInfo = (char *) alloca(size); + clGetPlatformInfo(platform, CL_PLATFORM_VERSION, size, &versionInfo[0], &size); + return getVersion(versionInfo); +} + +static cl_uint getDevicePlatformVersion(cl_device_id device) +{ + cl_platform_id platform; + clGetDeviceInfo(device, CL_DEVICE_PLATFORM, sizeof(platform), &platform, NULL); + return getPlatformVersion(platform); +} + +#if defined(CL_VERSION_1_2) && defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) +static cl_uint getContextPlatformVersion(cl_context context) +{ + // The platform cannot be queried directly, so we first have to grab a + // device and obtain its context + ::size_t size = 0; + clGetContextInfo(context, CL_CONTEXT_DEVICES, 0, NULL, &size); + if (size == 0) + return 0; + cl_device_id *devices = (cl_device_id *) alloca(size); + clGetContextInfo(context, CL_CONTEXT_DEVICES, size, devices, NULL); + return getDevicePlatformVersion(devices[0]); +} +#endif // #if defined(CL_VERSION_1_2) && defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + +template +class Wrapper +{ +public: + typedef T cl_type; + +protected: + cl_type object_; + +public: + Wrapper() : object_(NULL) { } + + Wrapper(const cl_type &obj) : object_(obj) { } + + ~Wrapper() + { + if (object_ != NULL) { release(); } + } + + Wrapper(const Wrapper& rhs) + { + object_ = rhs.object_; + if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); } + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + Wrapper(Wrapper&& rhs) CL_HPP_NOEXCEPT + { + object_ = rhs.object_; + rhs.object_ = NULL; + } +#endif + + Wrapper& operator = (const Wrapper& rhs) + { + if (this != &rhs) { + if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); } + object_ = rhs.object_; + if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); } + } + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + Wrapper& operator = (Wrapper&& rhs) + { + if (this != &rhs) { + if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); } + object_ = rhs.object_; + rhs.object_ = NULL; + } + return *this; + } +#endif + + Wrapper& operator = (const cl_type &rhs) + { + if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); } + object_ = rhs; + return *this; + } + + cl_type operator ()() const { return object_; } + + cl_type& operator ()() { return object_; } + +protected: + template + friend inline cl_int getInfoHelper(Func, cl_uint, U*, int, typename U::cl_type); + + cl_int retain() const + { + return ReferenceHandler::retain(object_); + } + + cl_int release() const + { + return ReferenceHandler::release(object_); + } +}; + +template <> +class Wrapper +{ +public: + typedef cl_device_id cl_type; + +protected: + cl_type object_; + bool referenceCountable_; + + static bool isReferenceCountable(cl_device_id device) + { + bool retVal = false; + if (device != NULL) { + int version = getDevicePlatformVersion(device); + if(version > ((1 << 16) + 1)) { + retVal = true; + } + } + return retVal; + } + +public: + Wrapper() : object_(NULL), referenceCountable_(false) + { + } + + Wrapper(const cl_type &obj) : object_(obj), referenceCountable_(false) + { + referenceCountable_ = isReferenceCountable(obj); + } + + ~Wrapper() + { + if (object_ != NULL) { release(); } + } + + Wrapper(const Wrapper& rhs) + { + object_ = rhs.object_; + referenceCountable_ = isReferenceCountable(object_); + if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); } + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + Wrapper(Wrapper&& rhs) CL_HPP_NOEXCEPT + { + object_ = rhs.object_; + referenceCountable_ = rhs.referenceCountable_; + rhs.object_ = NULL; + rhs.referenceCountable_ = false; + } +#endif + + Wrapper& operator = (const Wrapper& rhs) + { + if (this != &rhs) { + if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); } + object_ = rhs.object_; + referenceCountable_ = rhs.referenceCountable_; + if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); } + } + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + Wrapper& operator = (Wrapper&& rhs) + { + if (this != &rhs) { + if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); } + object_ = rhs.object_; + referenceCountable_ = rhs.referenceCountable_; + rhs.object_ = NULL; + rhs.referenceCountable_ = false; + } + return *this; + } +#endif + + Wrapper& operator = (const cl_type &rhs) + { + if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); } + object_ = rhs; + referenceCountable_ = isReferenceCountable(object_); + return *this; + } + + cl_type operator ()() const { return object_; } + + cl_type& operator ()() { return object_; } + +protected: + template + friend inline cl_int getInfoHelper(Func, cl_uint, U*, int, typename U::cl_type); + + template + friend inline cl_int getInfoHelper(Func, cl_uint, VECTOR_CLASS*, int, typename U::cl_type); + + cl_int retain() const + { + if( referenceCountable_ ) { + return ReferenceHandler::retain(object_); + } + else { + return CL_SUCCESS; + } + } + + cl_int release() const + { + if( referenceCountable_ ) { + return ReferenceHandler::release(object_); + } + else { + return CL_SUCCESS; + } + } +}; + +} // namespace detail +//! \endcond + +/*! \stuct ImageFormat + * \brief Adds constructors and member functions for cl_image_format. + * + * \see cl_image_format + */ +struct ImageFormat : public cl_image_format +{ + //! \brief Default constructor - performs no initialization. + ImageFormat(){} + + //! \brief Initializing constructor. + ImageFormat(cl_channel_order order, cl_channel_type type) + { + image_channel_order = order; + image_channel_data_type = type; + } + + //! \brief Assignment operator. + ImageFormat& operator = (const ImageFormat& rhs) + { + if (this != &rhs) { + this->image_channel_data_type = rhs.image_channel_data_type; + this->image_channel_order = rhs.image_channel_order; + } + return *this; + } +}; + +/*! \brief Class interface for cl_device_id. + * + * \note Copies of these objects are inexpensive, since they don't 'own' + * any underlying resources or data structures. + * + * \see cl_device_id + */ +class Device : public detail::Wrapper +{ +public: + //! \brief Default constructor - initializes to NULL. + Device() : detail::Wrapper() { } + + /*! \brief Constructor from cl_device_id. + * + * This simply copies the device ID value, which is an inexpensive operation. + */ + __CL_EXPLICIT_CONSTRUCTORS Device(const cl_device_id &device) : detail::Wrapper(device) { } + + /*! \brief Returns the first device on the default context. + * + * \see Context::getDefault() + */ + static Device getDefault(cl_int * err = NULL); + + /*! \brief Assignment operator from cl_device_id. + * + * This simply copies the device ID value, which is an inexpensive operation. + */ + Device& operator = (const cl_device_id& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Device(const Device& dev) : detail::Wrapper(dev) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Device& operator = (const Device &dev) + { + detail::Wrapper::operator=(dev); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Device(Device&& dev) CL_HPP_NOEXCEPT : detail::Wrapper(std::move(dev)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Device& operator = (Device &&dev) + { + detail::Wrapper::operator=(std::move(dev)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + + //! \brief Wrapper for clGetDeviceInfo(). + template + cl_int getInfo(cl_device_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetDeviceInfo, object_, name, param), + __GET_DEVICE_INFO_ERR); + } + + //! \brief Wrapper for clGetDeviceInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_device_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /** + * CL 1.2 version + */ +#if defined(CL_VERSION_1_2) + //! \brief Wrapper for clCreateSubDevicesEXT(). + cl_int createSubDevices( + const cl_device_partition_property * properties, + VECTOR_CLASS* devices) + { + cl_uint n = 0; + cl_int err = clCreateSubDevices(object_, properties, 0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES); + } + + cl_device_id* ids = (cl_device_id*) alloca(n * sizeof(cl_device_id)); + err = clCreateSubDevices(object_, properties, n, ids, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES); + } + + devices->assign(&ids[0], &ids[n]); + return CL_SUCCESS; + } +#endif // #if defined(CL_VERSION_1_2) + +/** + * CL 1.1 version that uses device fission. + */ +#if defined(CL_VERSION_1_1) +#if defined(USE_CL_DEVICE_FISSION) + cl_int createSubDevices( + const cl_device_partition_property_ext * properties, + VECTOR_CLASS* devices) + { + typedef CL_API_ENTRY cl_int + ( CL_API_CALL * PFN_clCreateSubDevicesEXT)( + cl_device_id /*in_device*/, + const cl_device_partition_property_ext * /* properties */, + cl_uint /*num_entries*/, + cl_device_id * /*out_devices*/, + cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1; + + static PFN_clCreateSubDevicesEXT pfn_clCreateSubDevicesEXT = NULL; + __INIT_CL_EXT_FCN_PTR(clCreateSubDevicesEXT); + + cl_uint n = 0; + cl_int err = pfn_clCreateSubDevicesEXT(object_, properties, 0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES); + } + + cl_device_id* ids = (cl_device_id*) alloca(n * sizeof(cl_device_id)); + err = pfn_clCreateSubDevicesEXT(object_, properties, n, ids, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_SUB_DEVICES); + } + + devices->assign(&ids[0], &ids[n]); + return CL_SUCCESS; + } +#endif // #if defined(USE_CL_DEVICE_FISSION) +#endif // #if defined(CL_VERSION_1_1) +}; + +/*! \brief Class interface for cl_platform_id. + * + * \note Copies of these objects are inexpensive, since they don't 'own' + * any underlying resources or data structures. + * + * \see cl_platform_id + */ +class Platform : public detail::Wrapper +{ +public: + //! \brief Default constructor - initializes to NULL. + Platform() : detail::Wrapper() { } + + /*! \brief Constructor from cl_platform_id. + * + * This simply copies the platform ID value, which is an inexpensive operation. + */ + __CL_EXPLICIT_CONSTRUCTORS Platform(const cl_platform_id &platform) : detail::Wrapper(platform) { } + + /*! \brief Assignment operator from cl_platform_id. + * + * This simply copies the platform ID value, which is an inexpensive operation. + */ + Platform& operator = (const cl_platform_id& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetPlatformInfo(). + cl_int getInfo(cl_platform_info name, STRING_CLASS* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetPlatformInfo, object_, name, param), + __GET_PLATFORM_INFO_ERR); + } + + //! \brief Wrapper for clGetPlatformInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_platform_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /*! \brief Gets a list of devices for this platform. + * + * Wraps clGetDeviceIDs(). + */ + cl_int getDevices( + cl_device_type type, + VECTOR_CLASS* devices) const + { + cl_uint n = 0; + if( devices == NULL ) { + return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_DEVICE_IDS_ERR); + } + cl_int err = ::clGetDeviceIDs(object_, type, 0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + cl_device_id* ids = (cl_device_id*) alloca(n * sizeof(cl_device_id)); + err = ::clGetDeviceIDs(object_, type, n, ids, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + devices->assign(&ids[0], &ids[n]); + return CL_SUCCESS; + } + +#if defined(USE_DX_INTEROP) + /*! \brief Get the list of available D3D10 devices. + * + * \param d3d_device_source. + * + * \param d3d_object. + * + * \param d3d_device_set. + * + * \param devices returns a vector of OpenCL D3D10 devices found. The cl::Device + * values returned in devices can be used to identify a specific OpenCL + * device. If \a devices argument is NULL, this argument is ignored. + * + * \return One of the following values: + * - CL_SUCCESS if the function is executed successfully. + * + * The application can query specific capabilities of the OpenCL device(s) + * returned by cl::getDevices. This can be used by the application to + * determine which device(s) to use. + * + * \note In the case that exceptions are enabled and a return value + * other than CL_SUCCESS is generated, then cl::Error exception is + * generated. + */ + cl_int getDevices( + cl_d3d10_device_source_khr d3d_device_source, + void * d3d_object, + cl_d3d10_device_set_khr d3d_device_set, + VECTOR_CLASS* devices) const + { + typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clGetDeviceIDsFromD3D10KHR)( + cl_platform_id platform, + cl_d3d10_device_source_khr d3d_device_source, + void * d3d_object, + cl_d3d10_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id * devices, + cl_uint* num_devices); + + if( devices == NULL ) { + return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_DEVICE_IDS_ERR); + } + + static PFN_clGetDeviceIDsFromD3D10KHR pfn_clGetDeviceIDsFromD3D10KHR = NULL; + __INIT_CL_EXT_FCN_PTR_PLATFORM(object_, clGetDeviceIDsFromD3D10KHR); + + cl_uint n = 0; + cl_int err = pfn_clGetDeviceIDsFromD3D10KHR( + object_, + d3d_device_source, + d3d_object, + d3d_device_set, + 0, + NULL, + &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + cl_device_id* ids = (cl_device_id*) alloca(n * sizeof(cl_device_id)); + err = pfn_clGetDeviceIDsFromD3D10KHR( + object_, + d3d_device_source, + d3d_object, + d3d_device_set, + n, + ids, + NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_DEVICE_IDS_ERR); + } + + devices->assign(&ids[0], &ids[n]); + return CL_SUCCESS; + } +#endif + + /*! \brief Gets a list of available platforms. + * + * Wraps clGetPlatformIDs(). + */ + static cl_int get( + VECTOR_CLASS* platforms) + { + cl_uint n = 0; + + if( platforms == NULL ) { + return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_PLATFORM_IDS_ERR); + } + + cl_int err = ::clGetPlatformIDs(0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + } + + cl_platform_id* ids = (cl_platform_id*) alloca( + n * sizeof(cl_platform_id)); + err = ::clGetPlatformIDs(n, ids, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + } + + platforms->assign(&ids[0], &ids[n]); + return CL_SUCCESS; + } + + /*! \brief Gets the first available platform. + * + * Wraps clGetPlatformIDs(), returning the first result. + */ + static cl_int get( + Platform * platform) + { + cl_uint n = 0; + + if( platform == NULL ) { + return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_PLATFORM_IDS_ERR); + } + + cl_int err = ::clGetPlatformIDs(0, NULL, &n); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + } + + cl_platform_id* ids = (cl_platform_id*) alloca( + n * sizeof(cl_platform_id)); + err = ::clGetPlatformIDs(n, ids, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + } + + *platform = ids[0]; + return CL_SUCCESS; + } + + /*! \brief Gets the first available platform, returning it by value. + * + * Wraps clGetPlatformIDs(), returning the first result. + */ + static Platform get( + cl_int * errResult = NULL) + { + Platform platform; + cl_uint n = 0; + cl_int err = ::clGetPlatformIDs(0, NULL, &n); + if (err != CL_SUCCESS) { + detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + if (errResult != NULL) { + *errResult = err; + } + return Platform(); + } + + cl_platform_id* ids = (cl_platform_id*) alloca( + n * sizeof(cl_platform_id)); + err = ::clGetPlatformIDs(n, ids, NULL); + + if (err != CL_SUCCESS) { + detail::errHandler(err, __GET_PLATFORM_IDS_ERR); + if (errResult != NULL) { + *errResult = err; + } + return Platform(); + } + + + return Platform(ids[0]); + } + + static Platform getDefault( + cl_int *errResult = NULL ) + { + return get(errResult); + } + + +#if defined(CL_VERSION_1_2) + //! \brief Wrapper for clUnloadCompiler(). + cl_int + unloadCompiler() + { + return ::clUnloadPlatformCompiler(object_); + } +#endif // #if defined(CL_VERSION_1_2) +}; // class Platform + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2)) +/** + * Unload the OpenCL compiler. + * \note Deprecated for OpenCL 1.2. Use Platform::unloadCompiler instead. + */ +inline CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int +UnloadCompiler() CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +inline cl_int +UnloadCompiler() +{ + return ::clUnloadCompiler(); +} +#endif // #if defined(CL_VERSION_1_1) + +/*! \brief Class interface for cl_context. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_context as the original. For details, see + * clRetainContext() and clReleaseContext(). + * + * \see cl_context + */ +class Context + : public detail::Wrapper +{ +private: + +#ifdef CL_HPP_CPP11_ATOMICS_SUPPORTED + static std::atomic default_initialized_; +#else // !CL_HPP_CPP11_ATOMICS_SUPPORTED + static volatile int default_initialized_; +#endif // !CL_HPP_CPP11_ATOMICS_SUPPORTED + static Context default_; + static volatile cl_int default_error_; +public: + /*! \brief Constructs a context including a list of specified devices. + * + * Wraps clCreateContext(). + */ + Context( + const VECTOR_CLASS& devices, + cl_context_properties* properties = NULL, + void (CL_CALLBACK * notifyFptr)( + const char *, + const void *, + ::size_t, + void *) = NULL, + void* data = NULL, + cl_int* err = NULL) + { + cl_int error; + + ::size_t numDevices = devices.size(); + cl_device_id* deviceIDs = (cl_device_id*) alloca(numDevices * sizeof(cl_device_id)); + for( ::size_t deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + object_ = ::clCreateContext( + properties, (cl_uint) numDevices, + deviceIDs, + notifyFptr, data, &error); + + detail::errHandler(error, __CREATE_CONTEXT_ERR); + if (err != NULL) { + *err = error; + } + } + + Context( + const Device& device, + cl_context_properties* properties = NULL, + void (CL_CALLBACK * notifyFptr)( + const char *, + const void *, + ::size_t, + void *) = NULL, + void* data = NULL, + cl_int* err = NULL) + { + cl_int error; + + cl_device_id deviceID = device(); + + object_ = ::clCreateContext( + properties, 1, + &deviceID, + notifyFptr, data, &error); + + detail::errHandler(error, __CREATE_CONTEXT_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Constructs a context including all or a subset of devices of a specified type. + * + * Wraps clCreateContextFromType(). + */ + Context( + cl_device_type type, + cl_context_properties* properties = NULL, + void (CL_CALLBACK * notifyFptr)( + const char *, + const void *, + ::size_t, + void *) = NULL, + void* data = NULL, + cl_int* err = NULL) + { + cl_int error; + +#if !defined(__APPLE__) && !defined(__MACOS) + cl_context_properties prop[4] = {CL_CONTEXT_PLATFORM, 0, 0, 0 }; + + if (properties == NULL) { + // Get a valid platform ID as we cannot send in a blank one + VECTOR_CLASS platforms; + error = Platform::get(&platforms); + if (error != CL_SUCCESS) { + detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = error; + } + return; + } + + // Check the platforms we found for a device of our specified type + cl_context_properties platform_id = 0; + for (unsigned int i = 0; i < platforms.size(); i++) { + + VECTOR_CLASS devices; + +#if defined(__CL_ENABLE_EXCEPTIONS) + try { +#endif + + error = platforms[i].getDevices(type, &devices); + +#if defined(__CL_ENABLE_EXCEPTIONS) + } catch (Error) {} + // Catch if exceptions are enabled as we don't want to exit if first platform has no devices of type + // We do error checking next anyway, and can throw there if needed +#endif + + // Only squash CL_SUCCESS and CL_DEVICE_NOT_FOUND + if (error != CL_SUCCESS && error != CL_DEVICE_NOT_FOUND) { + detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = error; + } + } + + if (devices.size() > 0) { + platform_id = (cl_context_properties)platforms[i](); + break; + } + } + + if (platform_id == 0) { + detail::errHandler(CL_DEVICE_NOT_FOUND, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = CL_DEVICE_NOT_FOUND; + } + return; + } + + prop[1] = platform_id; + properties = &prop[0]; + } +#endif + object_ = ::clCreateContextFromType( + properties, type, notifyFptr, data, &error); + + detail::errHandler(error, __CREATE_CONTEXT_FROM_TYPE_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Context(const Context& ctx) : detail::Wrapper(ctx) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Context& operator = (const Context &ctx) + { + detail::Wrapper::operator=(ctx); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Context(Context&& ctx) CL_HPP_NOEXCEPT : detail::Wrapper(std::move(ctx)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Context& operator = (Context &&ctx) + { + detail::Wrapper::operator=(std::move(ctx)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + + /*! \brief Returns a singleton context including all devices of CL_DEVICE_TYPE_DEFAULT. + * + * \note All calls to this function return the same cl_context as the first. + */ + static Context getDefault(cl_int * err = NULL) + { + int state = detail::compare_exchange( + &default_initialized_, + __DEFAULT_BEING_INITIALIZED, __DEFAULT_NOT_INITIALIZED); + + if (state & __DEFAULT_INITIALIZED) { + if (err != NULL) { + *err = default_error_; + } + return default_; + } + + if (state & __DEFAULT_BEING_INITIALIZED) { + // Assume writes will propagate eventually... + while(default_initialized_ != __DEFAULT_INITIALIZED) { + detail::fence(); + } + + if (err != NULL) { + *err = default_error_; + } + return default_; + } + + cl_int error; + default_ = Context( + CL_DEVICE_TYPE_DEFAULT, + NULL, + NULL, + NULL, + &error); + + detail::fence(); + + default_error_ = error; + // Assume writes will propagate eventually... + default_initialized_ = __DEFAULT_INITIALIZED; + + detail::fence(); + + if (err != NULL) { + *err = default_error_; + } + return default_; + + } + + //! \brief Default constructor - initializes to NULL. + Context() : detail::Wrapper() { } + + /*! \brief Constructor from cl_context - takes ownership. + * + * This effectively transfers ownership of a refcount on the cl_context + * into the new Context object. + */ + __CL_EXPLICIT_CONSTRUCTORS Context(const cl_context& context) : detail::Wrapper(context) { } + + /*! \brief Assignment operator from cl_context - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseContext() on the value previously held by this instance. + */ + Context& operator = (const cl_context& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetContextInfo(). + template + cl_int getInfo(cl_context_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetContextInfo, object_, name, param), + __GET_CONTEXT_INFO_ERR); + } + + //! \brief Wrapper for clGetContextInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_context_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /*! \brief Gets a list of supported image formats. + * + * Wraps clGetSupportedImageFormats(). + */ + cl_int getSupportedImageFormats( + cl_mem_flags flags, + cl_mem_object_type type, + VECTOR_CLASS* formats) const + { + cl_uint numEntries; + + if (!formats) { + return CL_SUCCESS; + } + + cl_int err = ::clGetSupportedImageFormats( + object_, + flags, + type, + 0, + NULL, + &numEntries); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_SUPPORTED_IMAGE_FORMATS_ERR); + } + + if (numEntries > 0) { + ImageFormat* value = (ImageFormat*) + alloca(numEntries * sizeof(ImageFormat)); + err = ::clGetSupportedImageFormats( + object_, + flags, + type, + numEntries, + (cl_image_format*)value, + NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __GET_SUPPORTED_IMAGE_FORMATS_ERR); + } + + formats->assign(&value[0], &value[numEntries]); + } + else { + formats->clear(); + } + return CL_SUCCESS; + } +}; + +inline Device Device::getDefault(cl_int * err) +{ + cl_int error; + Device device; + + Context context = Context::getDefault(&error); + detail::errHandler(error, __CREATE_CONTEXT_ERR); + + if (error != CL_SUCCESS) { + if (err != NULL) { + *err = error; + } + } + else { + device = context.getInfo()[0]; + if (err != NULL) { + *err = CL_SUCCESS; + } + } + + return device; +} + + +#ifdef _WIN32 +#ifdef CL_HPP_CPP11_ATOMICS_SUPPORTED +__declspec(selectany) std::atomic Context::default_initialized_; +#else // !CL_HPP_CPP11_ATOMICS_SUPPORTED +__declspec(selectany) volatile int Context::default_initialized_ = __DEFAULT_NOT_INITIALIZED; +#endif // !CL_HPP_CPP11_ATOMICS_SUPPORTED +__declspec(selectany) Context Context::default_; +__declspec(selectany) volatile cl_int Context::default_error_ = CL_SUCCESS; +#else // !_WIN32 +#ifdef CL_HPP_CPP11_ATOMICS_SUPPORTED +__attribute__((weak)) std::atomic Context::default_initialized_; +#else // !CL_HPP_CPP11_ATOMICS_SUPPORTED +__attribute__((weak)) volatile int Context::default_initialized_ = __DEFAULT_NOT_INITIALIZED; +#endif // !CL_HPP_CPP11_ATOMICS_SUPPORTED +__attribute__((weak)) Context Context::default_; +__attribute__((weak)) volatile cl_int Context::default_error_ = CL_SUCCESS; +#endif // !_WIN32 + +/*! \brief Class interface for cl_event. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_event as the original. For details, see + * clRetainEvent() and clReleaseEvent(). + * + * \see cl_event + */ +class Event : public detail::Wrapper +{ +public: + //! \brief Default constructor - initializes to NULL. + Event() : detail::Wrapper() { } + + /*! \brief Constructor from cl_event - takes ownership. + * + * This effectively transfers ownership of a refcount on the cl_event + * into the new Event object. + */ + __CL_EXPLICIT_CONSTRUCTORS Event(const cl_event& event) : detail::Wrapper(event) { } + + /*! \brief Assignment operator from cl_event - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseEvent() on the value previously held by this instance. + */ + Event& operator = (const cl_event& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + //! \brief Wrapper for clGetEventInfo(). + template + cl_int getInfo(cl_event_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetEventInfo, object_, name, param), + __GET_EVENT_INFO_ERR); + } + + //! \brief Wrapper for clGetEventInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_event_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + //! \brief Wrapper for clGetEventProfilingInfo(). + template + cl_int getProfilingInfo(cl_profiling_info name, T* param) const + { + return detail::errHandler(detail::getInfo( + &::clGetEventProfilingInfo, object_, name, param), + __GET_EVENT_PROFILE_INFO_ERR); + } + + //! \brief Wrapper for clGetEventProfilingInfo() that returns by value. + template typename + detail::param_traits::param_type + getProfilingInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_profiling_info, name>::param_type param; + cl_int result = getProfilingInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + /*! \brief Blocks the calling thread until this event completes. + * + * Wraps clWaitForEvents(). + */ + cl_int wait() const + { + return detail::errHandler( + ::clWaitForEvents(1, &object_), + __WAIT_FOR_EVENTS_ERR); + } + +#if defined(CL_VERSION_1_1) + /*! \brief Registers a user callback function for a specific command execution status. + * + * Wraps clSetEventCallback(). + */ + cl_int setCallback( + cl_int type, + void (CL_CALLBACK * pfn_notify)(cl_event, cl_int, void *), + void * user_data = NULL) + { + return detail::errHandler( + ::clSetEventCallback( + object_, + type, + pfn_notify, + user_data), + __SET_EVENT_CALLBACK_ERR); + } +#endif + + /*! \brief Blocks the calling thread until every event specified is complete. + * + * Wraps clWaitForEvents(). + */ + static cl_int + waitForEvents(const VECTOR_CLASS& events) + { + return detail::errHandler( + ::clWaitForEvents( + (cl_uint) events.size(), (events.size() > 0) ? (cl_event*)&events.front() : NULL), + __WAIT_FOR_EVENTS_ERR); + } +}; + +#if defined(CL_VERSION_1_1) +/*! \brief Class interface for user events (a subset of cl_event's). + * + * See Event for details about copy semantics, etc. + */ +class UserEvent : public Event +{ +public: + /*! \brief Constructs a user event on a given context. + * + * Wraps clCreateUserEvent(). + */ + UserEvent( + const Context& context, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateUserEvent( + context(), + &error); + + detail::errHandler(error, __CREATE_USER_EVENT_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + UserEvent() : Event() { } + + /*! \brief Sets the execution status of a user event object. + * + * Wraps clSetUserEventStatus(). + */ + cl_int setStatus(cl_int status) + { + return detail::errHandler( + ::clSetUserEventStatus(object_,status), + __SET_USER_EVENT_STATUS_ERR); + } +}; +#endif + +/*! \brief Blocks the calling thread until every event specified is complete. + * + * Wraps clWaitForEvents(). + */ +inline static cl_int +WaitForEvents(const VECTOR_CLASS& events) +{ + return detail::errHandler( + ::clWaitForEvents( + (cl_uint) events.size(), (events.size() > 0) ? (cl_event*)&events.front() : NULL), + __WAIT_FOR_EVENTS_ERR); +} + +/*! \brief Class interface for cl_mem. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_mem as the original. For details, see + * clRetainMemObject() and clReleaseMemObject(). + * + * \see cl_mem + */ +class Memory : public detail::Wrapper +{ +public: + //! \brief Default constructor - initializes to NULL. + Memory() : detail::Wrapper() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * This effectively transfers ownership of a refcount on the cl_mem + * into the new Memory object. + */ + __CL_EXPLICIT_CONSTRUCTORS Memory(const cl_mem& memory) : detail::Wrapper(memory) { } + + /*! \brief Assignment operator from cl_mem - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseMemObject() on the value previously held by this instance. + */ + Memory& operator = (const cl_mem& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Memory(const Memory& mem) : detail::Wrapper(mem) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Memory& operator = (const Memory &mem) + { + detail::Wrapper::operator=(mem); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Memory(Memory&& mem) CL_HPP_NOEXCEPT : detail::Wrapper(std::move(mem)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Memory& operator = (Memory &&mem) + { + detail::Wrapper::operator=(std::move(mem)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + + //! \brief Wrapper for clGetMemObjectInfo(). + template + cl_int getInfo(cl_mem_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetMemObjectInfo, object_, name, param), + __GET_MEM_OBJECT_INFO_ERR); + } + + //! \brief Wrapper for clGetMemObjectInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_mem_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + +#if defined(CL_VERSION_1_1) + /*! \brief Registers a callback function to be called when the memory object + * is no longer needed. + * + * Wraps clSetMemObjectDestructorCallback(). + * + * Repeated calls to this function, for a given cl_mem value, will append + * to the list of functions called (in reverse order) when memory object's + * resources are freed and the memory object is deleted. + * + * \note + * The registered callbacks are associated with the underlying cl_mem + * value - not the Memory class instance. + */ + cl_int setDestructorCallback( + void (CL_CALLBACK * pfn_notify)(cl_mem, void *), + void * user_data = NULL) + { + return detail::errHandler( + ::clSetMemObjectDestructorCallback( + object_, + pfn_notify, + user_data), + __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR); + } +#endif + +}; + +// Pre-declare copy functions +class Buffer; +template< typename IteratorType > +cl_int copy( IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ); +template< typename IteratorType > +cl_int copy( const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ); +template< typename IteratorType > +cl_int copy( const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ); +template< typename IteratorType > +cl_int copy( const CommandQueue &queue, const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ); + + +/*! \brief Class interface for Buffer Memory Objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Buffer : public Memory +{ +public: + + /*! \brief Constructs a Buffer in a specified context. + * + * Wraps clCreateBuffer(). + * + * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was + * specified. Note alignment & exclusivity requirements. + */ + Buffer( + const Context& context, + cl_mem_flags flags, + ::size_t size, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + object_ = ::clCreateBuffer(context(), flags, size, host_ptr, &error); + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Constructs a Buffer in the default context. + * + * Wraps clCreateBuffer(). + * + * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was + * specified. Note alignment & exclusivity requirements. + * + * \see Context::getDefault() + */ + Buffer( + cl_mem_flags flags, + ::size_t size, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + + Context context = Context::getDefault(err); + + object_ = ::clCreateBuffer(context(), flags, size, host_ptr, &error); + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! + * \brief Construct a Buffer from a host container via iterators. + * IteratorType must be random access. + * If useHostPtr is specified iterators must represent contiguous data. + */ + template< typename IteratorType > + Buffer( + IteratorType startIterator, + IteratorType endIterator, + bool readOnly, + bool useHostPtr = false, + cl_int* err = NULL) + { + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + cl_mem_flags flags = 0; + if( readOnly ) { + flags |= CL_MEM_READ_ONLY; + } + else { + flags |= CL_MEM_READ_WRITE; + } + if( useHostPtr ) { + flags |= CL_MEM_USE_HOST_PTR; + } + + ::size_t size = sizeof(DataType)*(endIterator - startIterator); + + Context context = Context::getDefault(err); + + if( useHostPtr ) { + object_ = ::clCreateBuffer(context(), flags, size, static_cast(&*startIterator), &error); + } else { + object_ = ::clCreateBuffer(context(), flags, size, 0, &error); + } + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + if( !useHostPtr ) { + error = cl::copy(startIterator, endIterator, *this); + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + } + + /*! + * \brief Construct a Buffer from a host container via iterators using a specified context. + * IteratorType must be random access. + * If useHostPtr is specified iterators must represent contiguous data. + */ + template< typename IteratorType > + Buffer(const Context &context, IteratorType startIterator, IteratorType endIterator, + bool readOnly, bool useHostPtr = false, cl_int* err = NULL); + + /*! + * \brief Construct a Buffer from a host container via iterators using a specified queue. + * If useHostPtr is specified iterators must represent contiguous data. + */ + template< typename IteratorType > + Buffer(const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, + bool readOnly, bool useHostPtr = false, cl_int* err = NULL); + + //! \brief Default constructor - initializes to NULL. + Buffer() : Memory() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Buffer(const cl_mem& buffer) : Memory(buffer) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Buffer& operator = (const cl_mem& rhs) + { + Memory::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Buffer(const Buffer& buf) : Memory(buf) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Buffer& operator = (const Buffer &buf) + { + Memory::operator=(buf); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Buffer(Buffer&& buf) CL_HPP_NOEXCEPT : Memory(std::move(buf)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Buffer& operator = (Buffer &&buf) + { + Memory::operator=(std::move(buf)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + +#if defined(CL_VERSION_1_1) + /*! \brief Creates a new buffer object from this. + * + * Wraps clCreateSubBuffer(). + */ + Buffer createSubBuffer( + cl_mem_flags flags, + cl_buffer_create_type buffer_create_type, + const void * buffer_create_info, + cl_int * err = NULL) + { + Buffer result; + cl_int error; + result.object_ = ::clCreateSubBuffer( + object_, + flags, + buffer_create_type, + buffer_create_info, + &error); + + detail::errHandler(error, __CREATE_SUBBUFFER_ERR); + if (err != NULL) { + *err = error; + } + + return result; + } +#endif +}; + +#if defined (USE_DX_INTEROP) +/*! \brief Class interface for creating OpenCL buffers from ID3D10Buffer's. + * + * This is provided to facilitate interoperability with Direct3D. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class BufferD3D10 : public Buffer +{ +public: + typedef CL_API_ENTRY cl_mem (CL_API_CALL *PFN_clCreateFromD3D10BufferKHR)( + cl_context context, cl_mem_flags flags, ID3D10Buffer* buffer, + cl_int* errcode_ret); + + /*! \brief Constructs a BufferD3D10, in a specified context, from a + * given ID3D10Buffer. + * + * Wraps clCreateFromD3D10BufferKHR(). + */ + BufferD3D10( + const Context& context, + cl_mem_flags flags, + ID3D10Buffer* bufobj, + cl_int * err = NULL) + { + static PFN_clCreateFromD3D10BufferKHR pfn_clCreateFromD3D10BufferKHR = NULL; + +#if defined(CL_VERSION_1_2) + vector props = context.getInfo(); + cl_platform platform = -1; + for( int i = 0; i < props.size(); ++i ) { + if( props[i] == CL_CONTEXT_PLATFORM ) { + platform = props[i+1]; + } + } + __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, clCreateFromD3D10BufferKHR); +#endif +#if defined(CL_VERSION_1_1) + __INIT_CL_EXT_FCN_PTR(clCreateFromD3D10BufferKHR); +#endif + + cl_int error; + object_ = pfn_clCreateFromD3D10BufferKHR( + context(), + flags, + bufobj, + &error); + + detail::errHandler(error, __CREATE_GL_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + BufferD3D10() : Buffer() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS BufferD3D10(const cl_mem& buffer) : Buffer(buffer) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + BufferD3D10& operator = (const cl_mem& rhs) + { + Buffer::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + BufferD3D10(const BufferD3D10& buf) : Buffer(buf) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + BufferD3D10& operator = (const BufferD3D10 &buf) + { + Buffer::operator=(buf); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + BufferD3D10(BufferD3D10&& buf) CL_HPP_NOEXCEPT : Buffer(std::move(buf)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + BufferD3D10& operator = (BufferD3D10 &&buf) + { + Buffer::operator=(std::move(buf)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) +}; +#endif + +/*! \brief Class interface for GL Buffer Memory Objects. + * + * This is provided to facilitate interoperability with OpenGL. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class BufferGL : public Buffer +{ +public: + /*! \brief Constructs a BufferGL in a specified context, from a given + * GL buffer. + * + * Wraps clCreateFromGLBuffer(). + */ + BufferGL( + const Context& context, + cl_mem_flags flags, + cl_GLuint bufobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLBuffer( + context(), + flags, + bufobj, + &error); + + detail::errHandler(error, __CREATE_GL_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + BufferGL() : Buffer() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS BufferGL(const cl_mem& buffer) : Buffer(buffer) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + BufferGL& operator = (const cl_mem& rhs) + { + Buffer::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + BufferGL(const BufferGL& buf) : Buffer(buf) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + BufferGL& operator = (const BufferGL &buf) + { + Buffer::operator=(buf); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + BufferGL(BufferGL&& buf) CL_HPP_NOEXCEPT : Buffer(std::move(buf)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + BufferGL& operator = (BufferGL &&buf) + { + Buffer::operator=(std::move(buf)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + + //! \brief Wrapper for clGetGLObjectInfo(). + cl_int getObjectInfo( + cl_gl_object_type *type, + cl_GLuint * gl_object_name) + { + return detail::errHandler( + ::clGetGLObjectInfo(object_,type,gl_object_name), + __GET_GL_OBJECT_INFO_ERR); + } +}; + +/*! \brief C++ base class for Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image : public Memory +{ +protected: + //! \brief Default constructor - initializes to NULL. + Image() : Memory() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image(const cl_mem& image) : Memory(image) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image& operator = (const cl_mem& rhs) + { + Memory::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image(const Image& img) : Memory(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image& operator = (const Image &img) + { + Memory::operator=(img); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image(Image&& img) CL_HPP_NOEXCEPT : Memory(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image& operator = (Image &&img) + { + Memory::operator=(std::move(img)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + +public: + //! \brief Wrapper for clGetImageInfo(). + template + cl_int getImageInfo(cl_image_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetImageInfo, object_, name, param), + __GET_IMAGE_INFO_ERR); + } + + //! \brief Wrapper for clGetImageInfo() that returns by value. + template typename + detail::param_traits::param_type + getImageInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_image_info, name>::param_type param; + cl_int result = getImageInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } +}; + +#if defined(CL_VERSION_1_2) +/*! \brief Class interface for 1D Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image1D : public Image +{ +public: + /*! \brief Constructs a 1D Image in a specified context. + * + * Wraps clCreateImage(). + */ + Image1D( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t width, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE1D, + width, + 0, 0, 0, 0, 0, 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + Image1D() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image1D(const cl_mem& image1D) : Image(image1D) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image1D& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1D(const Image1D& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1D& operator = (const Image1D &img) + { + Image::operator=(img); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1D(Image1D&& img) CL_HPP_NOEXCEPT : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1D& operator = (Image1D &&img) + { + Image::operator=(std::move(img)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) +}; + +/*! \class Image1DBuffer + * \brief Image interface for 1D buffer images. + */ +class Image1DBuffer : public Image +{ +public: + Image1DBuffer( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t width, + const Buffer &buffer, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE1D_BUFFER, + width, + 0, 0, 0, 0, 0, 0, 0, + buffer() + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + NULL, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + Image1DBuffer() { } + + __CL_EXPLICIT_CONSTRUCTORS Image1DBuffer(const cl_mem& image1D) : Image(image1D) { } + + Image1DBuffer& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1DBuffer(const Image1DBuffer& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1DBuffer& operator = (const Image1DBuffer &img) + { + Image::operator=(img); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1DBuffer(Image1DBuffer&& img) CL_HPP_NOEXCEPT : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1DBuffer& operator = (Image1DBuffer &&img) + { + Image::operator=(std::move(img)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) +}; + +/*! \class Image1DArray + * \brief Image interface for arrays of 1D images. + */ +class Image1DArray : public Image +{ +public: + Image1DArray( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t arraySize, + ::size_t width, + ::size_t rowPitch, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE1D_ARRAY, + width, + 0, 0, // height, depth (unused) + arraySize, + rowPitch, + 0, 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + Image1DArray() { } + + __CL_EXPLICIT_CONSTRUCTORS Image1DArray(const cl_mem& imageArray) : Image(imageArray) { } + + Image1DArray& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1DArray(const Image1DArray& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image1DArray& operator = (const Image1DArray &img) + { + Image::operator=(img); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1DArray(Image1DArray&& img) CL_HPP_NOEXCEPT : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image1DArray& operator = (Image1DArray &&img) + { + Image::operator=(std::move(img)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) +}; +#endif // #if defined(CL_VERSION_1_2) + + +/*! \brief Class interface for 2D Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image2D : public Image +{ +public: + /*! \brief Constructs a 1D Image in a specified context. + * + * Wraps clCreateImage(). + */ + Image2D( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t width, + ::size_t height, + ::size_t row_pitch = 0, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + bool useCreateImage; + +#if defined(CL_VERSION_1_2) && defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useCreateImage = (version >= 0x10002); // OpenCL 1.2 or above + } +#elif defined(CL_VERSION_1_2) + useCreateImage = true; +#else + useCreateImage = false; +#endif + +#if defined(CL_VERSION_1_2) + if (useCreateImage) + { + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE2D, + width, + height, + 0, 0, // depth, array size (unused) + row_pitch, + 0, 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // #if defined(CL_VERSION_1_2) +#if !defined(CL_VERSION_1_2) || defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + if (!useCreateImage) + { + object_ = ::clCreateImage2D( + context(), flags,&format, width, height, row_pitch, host_ptr, &error); + + detail::errHandler(error, __CREATE_IMAGE2D_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // #if !defined(CL_VERSION_1_2) || defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + } + + //! \brief Default constructor - initializes to NULL. + Image2D() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image2D(const cl_mem& image2D) : Image(image2D) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image2D& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2D(const Image2D& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2D& operator = (const Image2D &img) + { + Image::operator=(img); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2D(Image2D&& img) CL_HPP_NOEXCEPT : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2D& operator = (Image2D &&img) + { + Image::operator=(std::move(img)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) +}; + + +#if !defined(CL_VERSION_1_2) +/*! \brief Class interface for GL 2D Image Memory objects. + * + * This is provided to facilitate interoperability with OpenGL. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + * \note Deprecated for OpenCL 1.2. Please use ImageGL instead. + */ +class CL_EXT_PREFIX__VERSION_1_1_DEPRECATED Image2DGL CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED : public Image2D +{ +public: + /*! \brief Constructs an Image2DGL in a specified context, from a given + * GL Texture. + * + * Wraps clCreateFromGLTexture2D(). + */ + Image2DGL( + const Context& context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLTexture2D( + context(), + flags, + target, + miplevel, + texobj, + &error); + + detail::errHandler(error, __CREATE_GL_TEXTURE_2D_ERR); + if (err != NULL) { + *err = error; + } + + } + + //! \brief Default constructor - initializes to NULL. + Image2DGL() : Image2D() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image2DGL(const cl_mem& image) : Image2D(image) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image2DGL& operator = (const cl_mem& rhs) + { + Image2D::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2DGL(const Image2DGL& img) : Image2D(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2DGL& operator = (const Image2DGL &img) + { + Image2D::operator=(img); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2DGL(Image2DGL&& img) CL_HPP_NOEXCEPT : Image2D(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2DGL& operator = (Image2DGL &&img) + { + Image2D::operator=(std::move(img)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) +}; +#endif // #if !defined(CL_VERSION_1_2) + +#if defined(CL_VERSION_1_2) +/*! \class Image2DArray + * \brief Image interface for arrays of 2D images. + */ +class Image2DArray : public Image +{ +public: + Image2DArray( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t arraySize, + ::size_t width, + ::size_t height, + ::size_t rowPitch, + ::size_t slicePitch, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE2D_ARRAY, + width, + height, + 0, // depth (unused) + arraySize, + rowPitch, + slicePitch, + 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } + + Image2DArray() { } + + __CL_EXPLICIT_CONSTRUCTORS Image2DArray(const cl_mem& imageArray) : Image(imageArray) { } + + Image2DArray& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2DArray(const Image2DArray& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image2DArray& operator = (const Image2DArray &img) + { + Image::operator=(img); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2DArray(Image2DArray&& img) CL_HPP_NOEXCEPT : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image2DArray& operator = (Image2DArray &&img) + { + Image::operator=(std::move(img)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) +}; +#endif // #if defined(CL_VERSION_1_2) + +/*! \brief Class interface for 3D Image Memory objects. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image3D : public Image +{ +public: + /*! \brief Constructs a 3D Image in a specified context. + * + * Wraps clCreateImage(). + */ + Image3D( + const Context& context, + cl_mem_flags flags, + ImageFormat format, + ::size_t width, + ::size_t height, + ::size_t depth, + ::size_t row_pitch = 0, + ::size_t slice_pitch = 0, + void* host_ptr = NULL, + cl_int* err = NULL) + { + cl_int error; + bool useCreateImage; + +#if defined(CL_VERSION_1_2) && defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + // Run-time decision based on the actual platform + { + cl_uint version = detail::getContextPlatformVersion(context()); + useCreateImage = (version >= 0x10002); // OpenCL 1.2 or above + } +#elif defined(CL_VERSION_1_2) + useCreateImage = true; +#else + useCreateImage = false; +#endif + +#if defined(CL_VERSION_1_2) + if (useCreateImage) + { + cl_image_desc desc = + { + CL_MEM_OBJECT_IMAGE3D, + width, + height, + depth, + 0, // array size (unused) + row_pitch, + slice_pitch, + 0, 0, 0 + }; + object_ = ::clCreateImage( + context(), + flags, + &format, + &desc, + host_ptr, + &error); + + detail::errHandler(error, __CREATE_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // #if defined(CL_VERSION_1_2) +#if !defined(CL_VERSION_1_2) || defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + if (!useCreateImage) + { + object_ = ::clCreateImage3D( + context(), flags, &format, width, height, depth, row_pitch, + slice_pitch, host_ptr, &error); + + detail::errHandler(error, __CREATE_IMAGE3D_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // #if !defined(CL_VERSION_1_2) || defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) + } + + //! \brief Default constructor - initializes to NULL. + Image3D() : Image() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image3D(const cl_mem& image3D) : Image(image3D) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image3D& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image3D(const Image3D& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image3D& operator = (const Image3D &img) + { + Image::operator=(img); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image3D(Image3D&& img) CL_HPP_NOEXCEPT : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image3D& operator = (Image3D &&img) + { + Image::operator=(std::move(img)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) +}; + +#if !defined(CL_VERSION_1_2) +/*! \brief Class interface for GL 3D Image Memory objects. + * + * This is provided to facilitate interoperability with OpenGL. + * + * See Memory for details about copy semantics, etc. + * + * \see Memory + */ +class Image3DGL : public Image3D +{ +public: + /*! \brief Constructs an Image3DGL in a specified context, from a given + * GL Texture. + * + * Wraps clCreateFromGLTexture3D(). + */ + Image3DGL( + const Context& context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLTexture3D( + context(), + flags, + target, + miplevel, + texobj, + &error); + + detail::errHandler(error, __CREATE_GL_TEXTURE_3D_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. + Image3DGL() : Image3D() { } + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ + __CL_EXPLICIT_CONSTRUCTORS Image3DGL(const cl_mem& image) : Image3D(image) { } + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + Image3DGL& operator = (const cl_mem& rhs) + { + Image3D::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image3DGL(const Image3DGL& img) : Image3D(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Image3DGL& operator = (const Image3DGL &img) + { + Image3D::operator=(img); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Image3DGL(Image3DGL&& img) CL_HPP_NOEXCEPT : Image3D(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Image3DGL& operator = (Image3DGL &&img) + { + Image3D::operator=(std::move(img)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) +}; +#endif // #if !defined(CL_VERSION_1_2) + +#if defined(CL_VERSION_1_2) +/*! \class ImageGL + * \brief general image interface for GL interop. + * We abstract the 2D and 3D GL images into a single instance here + * that wraps all GL sourced images on the grounds that setup information + * was performed by OpenCL anyway. + */ +class ImageGL : public Image +{ +public: + ImageGL( + const Context& context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLTexture( + context(), + flags, + target, + miplevel, + texobj, + &error); + + detail::errHandler(error, __CREATE_GL_TEXTURE_ERR); + if (err != NULL) { + *err = error; + } + } + + ImageGL() : Image() { } + + __CL_EXPLICIT_CONSTRUCTORS ImageGL(const cl_mem& image) : Image(image) { } + + ImageGL& operator = (const cl_mem& rhs) + { + Image::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + ImageGL(const ImageGL& img) : Image(img) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + ImageGL& operator = (const ImageGL &img) + { + Image::operator=(img); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + ImageGL(ImageGL&& img) CL_HPP_NOEXCEPT : Image(std::move(img)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + ImageGL& operator = (ImageGL &&img) + { + Image::operator=(std::move(img)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) +}; +#endif // #if defined(CL_VERSION_1_2) + +/*! \brief Class interface for GL Render Buffer Memory Objects. +* +* This is provided to facilitate interoperability with OpenGL. +* +* See Memory for details about copy semantics, etc. +* +* \see Memory +*/ +class BufferRenderGL : +#if defined(CL_VERSION_1_2) + public ImageGL +#else // #if defined(CL_VERSION_1_2) + public Image2DGL +#endif //#if defined(CL_VERSION_1_2) +{ +public: + /*! \brief Constructs a BufferRenderGL in a specified context, from a given + * GL Renderbuffer. + * + * Wraps clCreateFromGLRenderbuffer(). + */ + BufferRenderGL( + const Context& context, + cl_mem_flags flags, + cl_GLuint bufobj, + cl_int * err = NULL) + { + cl_int error; + object_ = ::clCreateFromGLRenderbuffer( + context(), + flags, + bufobj, + &error); + + detail::errHandler(error, __CREATE_GL_RENDER_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } + + //! \brief Default constructor - initializes to NULL. +#if defined(CL_VERSION_1_2) + BufferRenderGL() : ImageGL() {}; +#else // #if defined(CL_VERSION_1_2) + BufferRenderGL() : Image2DGL() {}; +#endif //#if defined(CL_VERSION_1_2) + + /*! \brief Constructor from cl_mem - takes ownership. + * + * See Memory for further details. + */ +#if defined(CL_VERSION_1_2) + __CL_EXPLICIT_CONSTRUCTORS BufferRenderGL(const cl_mem& buffer) : ImageGL(buffer) { } +#else // #if defined(CL_VERSION_1_2) + __CL_EXPLICIT_CONSTRUCTORS BufferRenderGL(const cl_mem& buffer) : Image2DGL(buffer) { } +#endif //#if defined(CL_VERSION_1_2) + + + /*! \brief Assignment from cl_mem - performs shallow copy. + * + * See Memory for further details. + */ + BufferRenderGL& operator = (const cl_mem& rhs) + { +#if defined(CL_VERSION_1_2) + ImageGL::operator=(rhs); +#else // #if defined(CL_VERSION_1_2) + Image2DGL::operator=(rhs); +#endif //#if defined(CL_VERSION_1_2) + + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ +#if defined(CL_VERSION_1_2) + BufferRenderGL(const BufferRenderGL& buf) : ImageGL(buf) {} +#else // #if defined(CL_VERSION_1_2) + BufferRenderGL(const BufferRenderGL& buf) : Image2DGL(buf) {} +#endif //#if defined(CL_VERSION_1_2) + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + BufferRenderGL& operator = (const BufferRenderGL &rhs) + { +#if defined(CL_VERSION_1_2) + ImageGL::operator=(rhs); +#else // #if defined(CL_VERSION_1_2) + Image2DGL::operator=(rhs); +#endif //#if defined(CL_VERSION_1_2) + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ +#if defined(CL_VERSION_1_2) + BufferRenderGL(BufferRenderGL&& buf) CL_HPP_NOEXCEPT : ImageGL(std::move(buf)) {} +#else // #if defined(CL_VERSION_1_2) + BufferRenderGL(BufferRenderGL&& buf) CL_HPP_NOEXCEPT : Image2DGL(std::move(buf)) {} +#endif //#if defined(CL_VERSION_1_2) + + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + BufferRenderGL& operator = (BufferRenderGL &&buf) + { +#if defined(CL_VERSION_1_2) + ImageGL::operator=(std::move(buf)); +#else // #if defined(CL_VERSION_1_2) + Image2DGL::operator=(std::move(buf)); +#endif //#if defined(CL_VERSION_1_2) + + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + + //! \brief Wrapper for clGetGLObjectInfo(). + cl_int getObjectInfo( + cl_gl_object_type *type, + cl_GLuint * gl_object_name) + { + return detail::errHandler( + ::clGetGLObjectInfo(object_, type, gl_object_name), + __GET_GL_OBJECT_INFO_ERR); + } +}; + +/*! \brief Class interface for cl_sampler. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_sampler as the original. For details, see + * clRetainSampler() and clReleaseSampler(). + * + * \see cl_sampler + */ +class Sampler : public detail::Wrapper +{ +public: + //! \brief Default constructor - initializes to NULL. + Sampler() { } + + /*! \brief Constructs a Sampler in a specified context. + * + * Wraps clCreateSampler(). + */ + Sampler( + const Context& context, + cl_bool normalized_coords, + cl_addressing_mode addressing_mode, + cl_filter_mode filter_mode, + cl_int* err = NULL) + { + cl_int error; + object_ = ::clCreateSampler( + context(), + normalized_coords, + addressing_mode, + filter_mode, + &error); + + detail::errHandler(error, __CREATE_SAMPLER_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Constructor from cl_sampler - takes ownership. + * + * This effectively transfers ownership of a refcount on the cl_sampler + * into the new Sampler object. + */ + __CL_EXPLICIT_CONSTRUCTORS Sampler(const cl_sampler& sampler) : detail::Wrapper(sampler) { } + + /*! \brief Assignment operator from cl_sampler - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseSampler() on the value previously held by this instance. + */ + Sampler& operator = (const cl_sampler& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Sampler(const Sampler& sam) : detail::Wrapper(sam) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Sampler& operator = (const Sampler &sam) + { + detail::Wrapper::operator=(sam); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Sampler(Sampler&& sam) CL_HPP_NOEXCEPT : detail::Wrapper(std::move(sam)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Sampler& operator = (Sampler &&sam) + { + detail::Wrapper::operator=(std::move(sam)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + + //! \brief Wrapper for clGetSamplerInfo(). + template + cl_int getInfo(cl_sampler_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetSamplerInfo, object_, name, param), + __GET_SAMPLER_INFO_ERR); + } + + //! \brief Wrapper for clGetSamplerInfo() that returns by value. + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_sampler_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } +}; + +class Program; +class CommandQueue; +class Kernel; + +//! \brief Class interface for specifying NDRange values. +class NDRange +{ +private: + size_t<3> sizes_; + cl_uint dimensions_; + +public: + //! \brief Default constructor - resulting range has zero dimensions. + NDRange() + : dimensions_(0) + { } + + //! \brief Constructs one-dimensional range. + NDRange(::size_t size0) + : dimensions_(1) + { + sizes_[0] = size0; + } + + //! \brief Constructs two-dimensional range. + NDRange(::size_t size0, ::size_t size1) + : dimensions_(2) + { + sizes_[0] = size0; + sizes_[1] = size1; + } + + //! \brief Constructs three-dimensional range. + NDRange(::size_t size0, ::size_t size1, ::size_t size2) + : dimensions_(3) + { + sizes_[0] = size0; + sizes_[1] = size1; + sizes_[2] = size2; + } + + /*! \brief Conversion operator to const ::size_t *. + * + * \returns a pointer to the size of the first dimension. + */ + operator const ::size_t*() const { + return (const ::size_t*) sizes_; + } + + //! \brief Queries the number of dimensions in the range. + ::size_t dimensions() const { return dimensions_; } +}; + +//! \brief A zero-dimensional range. +static const NDRange NullRange; + +//! \brief Local address wrapper for use with Kernel::setArg +struct LocalSpaceArg +{ + ::size_t size_; +}; + +namespace detail { + +template +struct KernelArgumentHandler +{ + static ::size_t size(const T&) { return sizeof(T); } + static const T* ptr(const T& value) { return &value; } +}; + +template <> +struct KernelArgumentHandler +{ + static ::size_t size(const LocalSpaceArg& value) { return value.size_; } + static const void* ptr(const LocalSpaceArg&) { return NULL; } +}; + +} +//! \endcond + +/*! __local + * \brief Helper function for generating LocalSpaceArg objects. + * Deprecated. Replaced with Local. + */ +inline CL_EXT_PREFIX__VERSION_1_1_DEPRECATED LocalSpaceArg +__local(::size_t size) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +inline LocalSpaceArg +__local(::size_t size) +{ + LocalSpaceArg ret = { size }; + return ret; +} + +/*! Local + * \brief Helper function for generating LocalSpaceArg objects. + */ +inline LocalSpaceArg +Local(::size_t size) +{ + LocalSpaceArg ret = { size }; + return ret; +} + +//class KernelFunctor; + +/*! \brief Class interface for cl_kernel. + * + * \note Copies of these objects are shallow, meaning that the copy will refer + * to the same underlying cl_kernel as the original. For details, see + * clRetainKernel() and clReleaseKernel(). + * + * \see cl_kernel + */ +class Kernel : public detail::Wrapper +{ +public: + inline Kernel(const Program& program, const char* name, cl_int* err = NULL); + + //! \brief Default constructor - initializes to NULL. + Kernel() { } + + /*! \brief Constructor from cl_kernel - takes ownership. + * + * This effectively transfers ownership of a refcount on the cl_kernel + * into the new Kernel object. + */ + __CL_EXPLICIT_CONSTRUCTORS Kernel(const cl_kernel& kernel) : detail::Wrapper(kernel) { } + + /*! \brief Assignment operator from cl_kernel - takes ownership. + * + * This effectively transfers ownership of a refcount on the rhs and calls + * clReleaseKernel() on the value previously held by this instance. + */ + Kernel& operator = (const cl_kernel& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Kernel(const Kernel& kernel) : detail::Wrapper(kernel) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Kernel& operator = (const Kernel &kernel) + { + detail::Wrapper::operator=(kernel); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Kernel(Kernel&& kernel) CL_HPP_NOEXCEPT : detail::Wrapper(std::move(kernel)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Kernel& operator = (Kernel &&kernel) + { + detail::Wrapper::operator=(std::move(kernel)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + + template + cl_int getInfo(cl_kernel_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetKernelInfo, object_, name, param), + __GET_KERNEL_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_kernel_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + +#if defined(CL_VERSION_1_2) + template + cl_int getArgInfo(cl_uint argIndex, cl_kernel_arg_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetKernelArgInfo, object_, argIndex, name, param), + __GET_KERNEL_ARG_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getArgInfo(cl_uint argIndex, cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_kernel_arg_info, name>::param_type param; + cl_int result = getArgInfo(argIndex, name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } +#endif // #if defined(CL_VERSION_1_2) + + template + cl_int getWorkGroupInfo( + const Device& device, cl_kernel_work_group_info name, T* param) const + { + return detail::errHandler( + detail::getInfo( + &::clGetKernelWorkGroupInfo, object_, device(), name, param), + __GET_KERNEL_WORK_GROUP_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getWorkGroupInfo(const Device& device, cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_kernel_work_group_info, name>::param_type param; + cl_int result = getWorkGroupInfo(device, name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + template + cl_int setArg(cl_uint index, const T &value) + { + return detail::errHandler( + ::clSetKernelArg( + object_, + index, + detail::KernelArgumentHandler::size(value), + detail::KernelArgumentHandler::ptr(value)), + __SET_KERNEL_ARGS_ERR); + } + + cl_int setArg(cl_uint index, ::size_t size, const void* argPtr) + { + return detail::errHandler( + ::clSetKernelArg(object_, index, size, argPtr), + __SET_KERNEL_ARGS_ERR); + } +}; + +/*! \class Program + * \brief Program interface that implements cl_program. + */ +class Program : public detail::Wrapper +{ +public: + typedef VECTOR_CLASS > Binaries; + typedef VECTOR_CLASS > Sources; + + Program( + const STRING_CLASS& source, + bool build = false, + cl_int* err = NULL) + { + cl_int error; + + const char * strings = source.c_str(); + const ::size_t length = source.size(); + + Context context = Context::getDefault(err); + + object_ = ::clCreateProgramWithSource( + context(), (cl_uint)1, &strings, &length, &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); + + if (error == CL_SUCCESS && build) { + + error = ::clBuildProgram( + object_, + 0, + NULL, + "", + NULL, + NULL); + + detail::errHandler(error, __BUILD_PROGRAM_ERR); + } + + if (err != NULL) { + *err = error; + } + } + + Program( + const Context& context, + const STRING_CLASS& source, + bool build = false, + cl_int* err = NULL) + { + cl_int error; + + const char * strings = source.c_str(); + const ::size_t length = source.size(); + + object_ = ::clCreateProgramWithSource( + context(), (cl_uint)1, &strings, &length, &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); + + if (error == CL_SUCCESS && build) { + + error = ::clBuildProgram( + object_, + 0, + NULL, + "", + NULL, + NULL); + + detail::errHandler(error, __BUILD_PROGRAM_ERR); + } + + if (err != NULL) { + *err = error; + } + } + + Program( + const Context& context, + const Sources& sources, + cl_int* err = NULL) + { + cl_int error; + + const ::size_t n = (::size_t)sources.size(); + ::size_t* lengths = (::size_t*) alloca(n * sizeof(::size_t)); + const char** strings = (const char**) alloca(n * sizeof(const char*)); + + for (::size_t i = 0; i < n; ++i) { + strings[i] = sources[(int)i].first; + lengths[i] = sources[(int)i].second; + } + + object_ = ::clCreateProgramWithSource( + context(), (cl_uint)n, strings, lengths, &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_SOURCE_ERR); + if (err != NULL) { + *err = error; + } + } + + /** + * Construct a program object from a list of devices and a per-device list of binaries. + * \param context A valid OpenCL context in which to construct the program. + * \param devices A vector of OpenCL device objects for which the program will be created. + * \param binaries A vector of pairs of a pointer to a binary object and its length. + * \param binaryStatus An optional vector that on completion will be resized to + * match the size of binaries and filled with values to specify if each binary + * was successfully loaded. + * Set to CL_SUCCESS if the binary was successfully loaded. + * Set to CL_INVALID_VALUE if the length is 0 or the binary pointer is NULL. + * Set to CL_INVALID_BINARY if the binary provided is not valid for the matching device. + * \param err if non-NULL will be set to CL_SUCCESS on successful operation or one of the following errors: + * CL_INVALID_CONTEXT if context is not a valid context. + * CL_INVALID_VALUE if the length of devices is zero; or if the length of binaries does not match the length of devices; + * or if any entry in binaries is NULL or has length 0. + * CL_INVALID_DEVICE if OpenCL devices listed in devices are not in the list of devices associated with context. + * CL_INVALID_BINARY if an invalid program binary was encountered for any device. binaryStatus will return specific status for each device. + * CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host. + */ + Program( + const Context& context, + const VECTOR_CLASS& devices, + const Binaries& binaries, + VECTOR_CLASS* binaryStatus = NULL, + cl_int* err = NULL) + { + cl_int error; + + const ::size_t numDevices = devices.size(); + + // Catch size mismatch early and return + if(binaries.size() != numDevices) { + error = CL_INVALID_VALUE; + detail::errHandler(error, __CREATE_PROGRAM_WITH_BINARY_ERR); + if (err != NULL) { + *err = error; + } + return; + } + + ::size_t* lengths = (::size_t*) alloca(numDevices * sizeof(::size_t)); + const unsigned char** images = (const unsigned char**) alloca(numDevices * sizeof(const unsigned char**)); + + for (::size_t i = 0; i < numDevices; ++i) { + images[i] = (const unsigned char*)binaries[i].first; + lengths[i] = binaries[(int)i].second; + } + + cl_device_id* deviceIDs = (cl_device_id*) alloca(numDevices * sizeof(cl_device_id)); + for( ::size_t deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + if(binaryStatus) { + binaryStatus->resize(numDevices); + } + + object_ = ::clCreateProgramWithBinary( + context(), (cl_uint) devices.size(), + deviceIDs, + lengths, images, (binaryStatus != NULL && numDevices > 0) + ? &binaryStatus->front() + : NULL, &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_BINARY_ERR); + if (err != NULL) { + *err = error; + } + } + + +#if defined(CL_VERSION_1_2) + /** + * Create program using builtin kernels. + * \param kernelNames Semi-colon separated list of builtin kernel names + */ + Program( + const Context& context, + const VECTOR_CLASS& devices, + const STRING_CLASS& kernelNames, + cl_int* err = NULL) + { + cl_int error; + + + ::size_t numDevices = devices.size(); + cl_device_id* deviceIDs = (cl_device_id*) alloca(numDevices * sizeof(cl_device_id)); + for( ::size_t deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + object_ = ::clCreateProgramWithBuiltInKernels( + context(), + (cl_uint) devices.size(), + deviceIDs, + kernelNames.c_str(), + &error); + + detail::errHandler(error, __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR); + if (err != NULL) { + *err = error; + } + } +#endif // #if defined(CL_VERSION_1_2) + + Program() { } + + __CL_EXPLICIT_CONSTRUCTORS Program(const cl_program& program) : detail::Wrapper(program) { } + + Program& operator = (const cl_program& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + Program(const Program& program) : detail::Wrapper(program) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + Program& operator = (const Program &program) + { + detail::Wrapper::operator=(program); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + Program(Program&& program) CL_HPP_NOEXCEPT : detail::Wrapper(std::move(program)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + Program& operator = (Program &&program) + { + detail::Wrapper::operator=(std::move(program)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + + cl_int build( + const VECTOR_CLASS& devices, + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL) const + { + ::size_t numDevices = devices.size(); + cl_device_id* deviceIDs = (cl_device_id*) alloca(numDevices * sizeof(cl_device_id)); + for( ::size_t deviceIndex = 0; deviceIndex < numDevices; ++deviceIndex ) { + deviceIDs[deviceIndex] = (devices[deviceIndex])(); + } + + return detail::errHandler( + ::clBuildProgram( + object_, + (cl_uint) + devices.size(), + deviceIDs, + options, + notifyFptr, + data), + __BUILD_PROGRAM_ERR); + } + + cl_int build( + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL) const + { + return detail::errHandler( + ::clBuildProgram( + object_, + 0, + NULL, + options, + notifyFptr, + data), + __BUILD_PROGRAM_ERR); + } + +#if defined(CL_VERSION_1_2) + cl_int compile( + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL) const + { + return detail::errHandler( + ::clCompileProgram( + object_, + 0, + NULL, + options, + 0, + NULL, + NULL, + notifyFptr, + data), + __COMPILE_PROGRAM_ERR); + } +#endif + + template + cl_int getInfo(cl_program_info name, T* param) const + { + return detail::errHandler( + detail::getInfo(&::clGetProgramInfo, object_, name, param), + __GET_PROGRAM_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_program_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + template + cl_int getBuildInfo( + const Device& device, cl_program_build_info name, T* param) const + { + return detail::errHandler( + detail::getInfo( + &::clGetProgramBuildInfo, object_, device(), name, param), + __GET_PROGRAM_BUILD_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getBuildInfo(const Device& device, cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_program_build_info, name>::param_type param; + cl_int result = getBuildInfo(device, name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + cl_int createKernels(VECTOR_CLASS* kernels) + { + cl_uint numKernels; + cl_int err = ::clCreateKernelsInProgram(object_, 0, NULL, &numKernels); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_KERNELS_IN_PROGRAM_ERR); + } + + Kernel* value = (Kernel*) alloca(numKernels * sizeof(Kernel)); + err = ::clCreateKernelsInProgram( + object_, numKernels, (cl_kernel*) value, NULL); + if (err != CL_SUCCESS) { + return detail::errHandler(err, __CREATE_KERNELS_IN_PROGRAM_ERR); + } + + kernels->assign(&value[0], &value[numKernels]); + return CL_SUCCESS; + } +}; + +#if defined(CL_VERSION_1_2) +inline Program linkProgram( + Program input1, + Program input2, + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL, + cl_int* err = NULL) +{ + cl_int error_local = CL_SUCCESS; + + cl_program programs[2] = { input1(), input2() }; + + Context ctx = input1.getInfo(&error_local); + if(error_local!=CL_SUCCESS) { + detail::errHandler(error_local, __LINK_PROGRAM_ERR); + } + + cl_program prog = ::clLinkProgram( + ctx(), + 0, + NULL, + options, + 2, + programs, + notifyFptr, + data, + &error_local); + + detail::errHandler(error_local,__COMPILE_PROGRAM_ERR); + if (err != NULL) { + *err = error_local; + } + + return Program(prog); +} + +inline Program linkProgram( + VECTOR_CLASS inputPrograms, + const char* options = NULL, + void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL, + void* data = NULL, + cl_int* err = NULL) +{ + cl_int error_local = CL_SUCCESS; + + cl_program * programs = (cl_program*) alloca(inputPrograms.size() * sizeof(cl_program)); + + if (programs != NULL) { + for (unsigned int i = 0; i < inputPrograms.size(); i++) { + programs[i] = inputPrograms[i](); + } + } + + Context ctx; + if(inputPrograms.size() > 0) { + ctx = inputPrograms[0].getInfo(&error_local); + if(error_local!=CL_SUCCESS) { + detail::errHandler(error_local, __LINK_PROGRAM_ERR); + } + } + cl_program prog = ::clLinkProgram( + ctx(), + 0, + NULL, + options, + (cl_uint)inputPrograms.size(), + programs, + notifyFptr, + data, + &error_local); + + detail::errHandler(error_local,__COMPILE_PROGRAM_ERR); + if (err != NULL) { + *err = error_local; + } + + return Program(prog); +} +#endif + +template<> +inline VECTOR_CLASS cl::Program::getInfo(cl_int* err) const +{ + VECTOR_CLASS< ::size_t> sizes = getInfo(); + VECTOR_CLASS binaries; + for (VECTOR_CLASS< ::size_t>::iterator s = sizes.begin(); s != sizes.end(); ++s) + { + char *ptr = NULL; + if (*s != 0) + ptr = new char[*s]; + binaries.push_back(ptr); + } + + cl_int result = getInfo(CL_PROGRAM_BINARIES, &binaries); + if (err != NULL) { + *err = result; + } + return binaries; +} + +inline Kernel::Kernel(const Program& program, const char* name, cl_int* err) +{ + cl_int error; + + object_ = ::clCreateKernel(program(), name, &error); + detail::errHandler(error, __CREATE_KERNEL_ERR); + + if (err != NULL) { + *err = error; + } + +} + +/*! \class CommandQueue + * \brief CommandQueue interface for cl_command_queue. + */ +class CommandQueue : public detail::Wrapper +{ +private: +#ifdef CL_HPP_CPP11_ATOMICS_SUPPORTED + static std::atomic default_initialized_; +#else // !CL_HPP_CPP11_ATOMICS_SUPPORTED + static volatile int default_initialized_; +#endif // !CL_HPP_CPP11_ATOMICS_SUPPORTED + static CommandQueue default_; + static volatile cl_int default_error_; +public: + CommandQueue( + cl_command_queue_properties properties, + cl_int* err = NULL) + { + cl_int error; + + Context context = Context::getDefault(&error); + detail::errHandler(error, __CREATE_CONTEXT_ERR); + + if (error != CL_SUCCESS) { + if (err != NULL) { + *err = error; + } + } + else { + Device device = context.getInfo()[0]; + + object_ = ::clCreateCommandQueue( + context(), device(), properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } + } + /*! + * \brief Constructs a CommandQueue for an implementation defined device in the given context + */ + explicit CommandQueue( + const Context& context, + cl_command_queue_properties properties = 0, + cl_int* err = NULL) + { + cl_int error; + VECTOR_CLASS devices; + error = context.getInfo(CL_CONTEXT_DEVICES, &devices); + + detail::errHandler(error, __CREATE_CONTEXT_ERR); + + if (error != CL_SUCCESS) + { + if (err != NULL) { + *err = error; + } + return; + } + + object_ = ::clCreateCommandQueue(context(), devices[0](), properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + + if (err != NULL) { + *err = error; + } + + } + + CommandQueue( + const Context& context, + const Device& device, + cl_command_queue_properties properties = 0, + cl_int* err = NULL) + { + cl_int error; + object_ = ::clCreateCommandQueue( + context(), device(), properties, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } + + /*! \brief Copy constructor to forward copy to the superclass correctly. + * Required for MSVC. + */ + CommandQueue(const CommandQueue& queue) : detail::Wrapper(queue) {} + + /*! \brief Copy assignment to forward copy to the superclass correctly. + * Required for MSVC. + */ + CommandQueue& operator = (const CommandQueue &queue) + { + detail::Wrapper::operator=(queue); + return *this; + } + +#if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + /*! \brief Move constructor to forward move to the superclass correctly. + * Required for MSVC. + */ + CommandQueue(CommandQueue&& queue) CL_HPP_NOEXCEPT : detail::Wrapper(std::move(queue)) {} + + /*! \brief Move assignment to forward move to the superclass correctly. + * Required for MSVC. + */ + CommandQueue& operator = (CommandQueue &&queue) + { + detail::Wrapper::operator=(std::move(queue)); + return *this; + } +#endif // #if defined(CL_HPP_RVALUE_REFERENCES_SUPPORTED) + + static CommandQueue getDefault(cl_int * err = NULL) + { + int state = detail::compare_exchange( + &default_initialized_, + __DEFAULT_BEING_INITIALIZED, __DEFAULT_NOT_INITIALIZED); + + if (state & __DEFAULT_INITIALIZED) { + if (err != NULL) { + *err = default_error_; + } + return default_; + } + + if (state & __DEFAULT_BEING_INITIALIZED) { + // Assume writes will propagate eventually... + while(default_initialized_ != __DEFAULT_INITIALIZED) { + detail::fence(); + } + + if (err != NULL) { + *err = default_error_; + } + return default_; + } + + cl_int error; + + Context context = Context::getDefault(&error); + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + + if (error != CL_SUCCESS) { + if (err != NULL) { + *err = error; + } + } + else { + Device device = context.getInfo()[0]; + + default_ = CommandQueue(context, device, 0, &error); + + detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR); + if (err != NULL) { + *err = error; + } + } + + detail::fence(); + + default_error_ = error; + // Assume writes will propagate eventually... + default_initialized_ = __DEFAULT_INITIALIZED; + + detail::fence(); + + if (err != NULL) { + *err = default_error_; + } + return default_; + + } + + CommandQueue() { } + + __CL_EXPLICIT_CONSTRUCTORS CommandQueue(const cl_command_queue& commandQueue) : detail::Wrapper(commandQueue) { } + + CommandQueue& operator = (const cl_command_queue& rhs) + { + detail::Wrapper::operator=(rhs); + return *this; + } + + template + cl_int getInfo(cl_command_queue_info name, T* param) const + { + return detail::errHandler( + detail::getInfo( + &::clGetCommandQueueInfo, object_, name, param), + __GET_COMMAND_QUEUE_INFO_ERR); + } + + template typename + detail::param_traits::param_type + getInfo(cl_int* err = NULL) const + { + typename detail::param_traits< + detail::cl_command_queue_info, name>::param_type param; + cl_int result = getInfo(name, ¶m); + if (err != NULL) { + *err = result; + } + return param; + } + + cl_int enqueueReadBuffer( + const Buffer& buffer, + cl_bool blocking, + ::size_t offset, + ::size_t size, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReadBuffer( + object_, buffer(), blocking, offset, size, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_READ_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueWriteBuffer( + const Buffer& buffer, + cl_bool blocking, + ::size_t offset, + ::size_t size, + const void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueWriteBuffer( + object_, buffer(), blocking, offset, size, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_WRITE_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyBuffer( + const Buffer& src, + const Buffer& dst, + ::size_t src_offset, + ::size_t dst_offset, + ::size_t size, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyBuffer( + object_, src(), dst(), src_offset, dst_offset, size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQEUE_COPY_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueReadBufferRect( + const Buffer& buffer, + cl_bool blocking, + const size_t<3>& buffer_offset, + const size_t<3>& host_offset, + const size_t<3>& region, + ::size_t buffer_row_pitch, + ::size_t buffer_slice_pitch, + ::size_t host_row_pitch, + ::size_t host_slice_pitch, + void *ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReadBufferRect( + object_, + buffer(), + blocking, + (const ::size_t *)buffer_offset, + (const ::size_t *)host_offset, + (const ::size_t *)region, + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_READ_BUFFER_RECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueWriteBufferRect( + const Buffer& buffer, + cl_bool blocking, + const size_t<3>& buffer_offset, + const size_t<3>& host_offset, + const size_t<3>& region, + ::size_t buffer_row_pitch, + ::size_t buffer_slice_pitch, + ::size_t host_row_pitch, + ::size_t host_slice_pitch, + void *ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueWriteBufferRect( + object_, + buffer(), + blocking, + (const ::size_t *)buffer_offset, + (const ::size_t *)host_offset, + (const ::size_t *)region, + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_WRITE_BUFFER_RECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyBufferRect( + const Buffer& src, + const Buffer& dst, + const size_t<3>& src_origin, + const size_t<3>& dst_origin, + const size_t<3>& region, + ::size_t src_row_pitch, + ::size_t src_slice_pitch, + ::size_t dst_row_pitch, + ::size_t dst_slice_pitch, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyBufferRect( + object_, + src(), + dst(), + (const ::size_t *)src_origin, + (const ::size_t *)dst_origin, + (const ::size_t *)region, + src_row_pitch, + src_slice_pitch, + dst_row_pitch, + dst_slice_pitch, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQEUE_COPY_BUFFER_RECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +#if defined(CL_VERSION_1_2) + /** + * Enqueue a command to fill a buffer object with a pattern + * of a given size. The pattern is specified a as vector. + * \tparam PatternType The datatype of the pattern field. + * The pattern type must be an accepted OpenCL data type. + */ + template + cl_int enqueueFillBuffer( + const Buffer& buffer, + PatternType pattern, + ::size_t offset, + ::size_t size, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillBuffer( + object_, + buffer(), + static_cast(&pattern), + sizeof(PatternType), + offset, + size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // #if defined(CL_VERSION_1_2) + + cl_int enqueueReadImage( + const Image& image, + cl_bool blocking, + const size_t<3>& origin, + const size_t<3>& region, + ::size_t row_pitch, + ::size_t slice_pitch, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReadImage( + object_, image(), blocking, (const ::size_t *) origin, + (const ::size_t *) region, row_pitch, slice_pitch, ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_READ_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueWriteImage( + const Image& image, + cl_bool blocking, + const size_t<3>& origin, + const size_t<3>& region, + ::size_t row_pitch, + ::size_t slice_pitch, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueWriteImage( + object_, image(), blocking, (const ::size_t *) origin, + (const ::size_t *) region, row_pitch, slice_pitch, ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_WRITE_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyImage( + const Image& src, + const Image& dst, + const size_t<3>& src_origin, + const size_t<3>& dst_origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyImage( + object_, src(), dst(), (const ::size_t *) src_origin, + (const ::size_t *)dst_origin, (const ::size_t *) region, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_COPY_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +#if defined(CL_VERSION_1_2) + /** + * Enqueue a command to fill an image object with a specified color. + * \param fillColor is the color to use to fill the image. + * This is a four component RGBA floating-point color value if + * the image channel data type is not an unnormalized signed or + * unsigned data type. + */ + cl_int enqueueFillImage( + const Image& image, + cl_float4 fillColor, + const size_t<3>& origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillImage( + object_, + image(), + static_cast(&fillColor), + (const ::size_t *) origin, + (const ::size_t *) region, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueue a command to fill an image object with a specified color. + * \param fillColor is the color to use to fill the image. + * This is a four component RGBA signed integer color value if + * the image channel data type is an unnormalized signed integer + * type. + */ + cl_int enqueueFillImage( + const Image& image, + cl_int4 fillColor, + const size_t<3>& origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillImage( + object_, + image(), + static_cast(&fillColor), + (const ::size_t *) origin, + (const ::size_t *) region, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueue a command to fill an image object with a specified color. + * \param fillColor is the color to use to fill the image. + * This is a four component RGBA unsigned integer color value if + * the image channel data type is an unnormalized unsigned integer + * type. + */ + cl_int enqueueFillImage( + const Image& image, + cl_uint4 fillColor, + const size_t<3>& origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueFillImage( + object_, + image(), + static_cast(&fillColor), + (const ::size_t *) origin, + (const ::size_t *) region, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_FILL_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // #if defined(CL_VERSION_1_2) + + cl_int enqueueCopyImageToBuffer( + const Image& src, + const Buffer& dst, + const size_t<3>& src_origin, + const size_t<3>& region, + ::size_t dst_offset, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyImageToBuffer( + object_, src(), dst(), (const ::size_t *) src_origin, + (const ::size_t *) region, dst_offset, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueCopyBufferToImage( + const Buffer& src, + const Image& dst, + ::size_t src_offset, + const size_t<3>& dst_origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueCopyBufferToImage( + object_, src(), dst(), src_offset, + (const ::size_t *) dst_origin, (const ::size_t *) region, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + void* enqueueMapBuffer( + const Buffer& buffer, + cl_bool blocking, + cl_map_flags flags, + ::size_t offset, + ::size_t size, + const VECTOR_CLASS* events = NULL, + Event* event = NULL, + cl_int* err = NULL) const + { + cl_event tmp; + cl_int error; + void * result = ::clEnqueueMapBuffer( + object_, buffer(), blocking, flags, offset, size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL, + &error); + + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + if (event != NULL && error == CL_SUCCESS) + *event = tmp; + + return result; + } + + void* enqueueMapImage( + const Image& buffer, + cl_bool blocking, + cl_map_flags flags, + const size_t<3>& origin, + const size_t<3>& region, + ::size_t * row_pitch, + ::size_t * slice_pitch, + const VECTOR_CLASS* events = NULL, + Event* event = NULL, + cl_int* err = NULL) const + { + cl_event tmp; + cl_int error; + void * result = ::clEnqueueMapImage( + object_, buffer(), blocking, flags, + (const ::size_t *) origin, (const ::size_t *) region, + row_pitch, slice_pitch, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL, + &error); + + detail::errHandler(error, __ENQUEUE_MAP_IMAGE_ERR); + if (err != NULL) { + *err = error; + } + if (event != NULL && error == CL_SUCCESS) + *event = tmp; + return result; + } + + cl_int enqueueUnmapMemObject( + const Memory& memory, + void* mapped_ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueUnmapMemObject( + object_, memory(), mapped_ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +#if defined(CL_VERSION_1_2) + /** + * Enqueues a marker command which waits for either a list of events to complete, + * or all previously enqueued commands to complete. + * + * Enqueues a marker command which waits for either a list of events to complete, + * or if the list is empty it waits for all commands previously enqueued in command_queue + * to complete before it completes. This command returns an event which can be waited on, + * i.e. this event can be waited on to insure that all events either in the event_wait_list + * or all previously enqueued commands, queued before this command to command_queue, + * have completed. + */ + cl_int enqueueMarkerWithWaitList( + const VECTOR_CLASS *events = 0, + Event *event = 0) + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueMarkerWithWaitList( + object_, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_MARKER_WAIT_LIST_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * A synchronization point that enqueues a barrier operation. + * + * Enqueues a barrier command which waits for either a list of events to complete, + * or if the list is empty it waits for all commands previously enqueued in command_queue + * to complete before it completes. This command blocks command execution, that is, any + * following commands enqueued after it do not execute until it completes. This command + * returns an event which can be waited on, i.e. this event can be waited on to insure that + * all events either in the event_wait_list or all previously enqueued commands, queued + * before this command to command_queue, have completed. + */ + cl_int enqueueBarrierWithWaitList( + const VECTOR_CLASS *events = 0, + Event *event = 0) + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueBarrierWithWaitList( + object_, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_BARRIER_WAIT_LIST_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + /** + * Enqueues a command to indicate with which device a set of memory objects + * should be associated. + */ + cl_int enqueueMigrateMemObjects( + const VECTOR_CLASS &memObjects, + cl_mem_migration_flags flags, + const VECTOR_CLASS* events = NULL, + Event* event = NULL + ) + { + cl_event tmp; + + cl_mem* localMemObjects = static_cast(alloca(memObjects.size() * sizeof(cl_mem))); + for( int i = 0; i < (int)memObjects.size(); ++i ) { + localMemObjects[i] = memObjects[i](); + } + + + cl_int err = detail::errHandler( + ::clEnqueueMigrateMemObjects( + object_, + (cl_uint)memObjects.size(), + static_cast(localMemObjects), + flags, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif // #if defined(CL_VERSION_1_2) + + cl_int enqueueNDRangeKernel( + const Kernel& kernel, + const NDRange& offset, + const NDRange& global, + const NDRange& local = NullRange, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueNDRangeKernel( + object_, kernel(), (cl_uint) global.dimensions(), + offset.dimensions() != 0 ? (const ::size_t*) offset : NULL, + (const ::size_t*) global, + local.dimensions() != 0 ? (const ::size_t*) local : NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_NDRANGE_KERNEL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueTask( + const Kernel& kernel, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueTask( + object_, kernel(), + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_TASK_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueNativeKernel( + void (CL_CALLBACK *userFptr)(void *), + std::pair args, + const VECTOR_CLASS* mem_objects = NULL, + const VECTOR_CLASS* mem_locs = NULL, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_mem * mems = (mem_objects != NULL && mem_objects->size() > 0) + ? (cl_mem*) alloca(mem_objects->size() * sizeof(cl_mem)) + : NULL; + + if (mems != NULL) { + for (unsigned int i = 0; i < mem_objects->size(); i++) { + mems[i] = ((*mem_objects)[i])(); + } + } + + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueNativeKernel( + object_, userFptr, args.first, args.second, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + mems, + (mem_locs != NULL && mem_locs->size() > 0) ? (const void **) &mem_locs->front() : NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_NATIVE_KERNEL); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2)) + CL_EXT_PREFIX__VERSION_1_1_DEPRECATED + cl_int enqueueMarker(Event* event = NULL) const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueMarker( + object_, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_MARKER_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + CL_EXT_PREFIX__VERSION_1_1_DEPRECATED + cl_int enqueueWaitForEvents(const VECTOR_CLASS& events) const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED + { + return detail::errHandler( + ::clEnqueueWaitForEvents( + object_, + (cl_uint) events.size(), + events.size() > 0 ? (const cl_event*) &events.front() : NULL), + __ENQUEUE_WAIT_FOR_EVENTS_ERR); + } +#endif // #if defined(CL_VERSION_1_1) + + cl_int enqueueAcquireGLObjects( + const VECTOR_CLASS* mem_objects = NULL, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueAcquireGLObjects( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_ACQUIRE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueReleaseGLObjects( + const VECTOR_CLASS* mem_objects = NULL, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueReleaseGLObjects( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_RELEASE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + +#if defined (USE_DX_INTEROP) +typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clEnqueueAcquireD3D10ObjectsKHR)( + cl_command_queue command_queue, cl_uint num_objects, + const cl_mem* mem_objects, cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, cl_event* event); +typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clEnqueueReleaseD3D10ObjectsKHR)( + cl_command_queue command_queue, cl_uint num_objects, + const cl_mem* mem_objects, cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, cl_event* event); + + cl_int enqueueAcquireD3D10Objects( + const VECTOR_CLASS* mem_objects = NULL, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + static PFN_clEnqueueAcquireD3D10ObjectsKHR pfn_clEnqueueAcquireD3D10ObjectsKHR = NULL; +#if defined(CL_VERSION_1_2) + cl_context context = getInfo(); + cl::Device device(getInfo()); + cl_platform_id platform = device.getInfo(); + __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, clEnqueueAcquireD3D10ObjectsKHR); +#endif +#if defined(CL_VERSION_1_1) + __INIT_CL_EXT_FCN_PTR(clEnqueueAcquireD3D10ObjectsKHR); +#endif + + cl_event tmp; + cl_int err = detail::errHandler( + pfn_clEnqueueAcquireD3D10ObjectsKHR( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_ACQUIRE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } + + cl_int enqueueReleaseD3D10Objects( + const VECTOR_CLASS* mem_objects = NULL, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) const + { + static PFN_clEnqueueReleaseD3D10ObjectsKHR pfn_clEnqueueReleaseD3D10ObjectsKHR = NULL; +#if defined(CL_VERSION_1_2) + cl_context context = getInfo(); + cl::Device device(getInfo()); + cl_platform_id platform = device.getInfo(); + __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, clEnqueueReleaseD3D10ObjectsKHR); +#endif // #if defined(CL_VERSION_1_2) +#if defined(CL_VERSION_1_1) + __INIT_CL_EXT_FCN_PTR(clEnqueueReleaseD3D10ObjectsKHR); +#endif // #if defined(CL_VERSION_1_1) + + cl_event tmp; + cl_int err = detail::errHandler( + pfn_clEnqueueReleaseD3D10ObjectsKHR( + object_, + (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0, + (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_RELEASE_GL_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; + } +#endif + +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2)) + CL_EXT_PREFIX__VERSION_1_1_DEPRECATED + cl_int enqueueBarrier() const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED + { + return detail::errHandler( + ::clEnqueueBarrier(object_), + __ENQUEUE_BARRIER_ERR); + } +#endif // #if defined(CL_VERSION_1_1) + + cl_int flush() const + { + return detail::errHandler(::clFlush(object_), __FLUSH_ERR); + } + + cl_int finish() const + { + return detail::errHandler(::clFinish(object_), __FINISH_ERR); + } +}; + +#ifdef _WIN32 +#ifdef CL_HPP_CPP11_ATOMICS_SUPPORTED +__declspec(selectany) std::atomic CommandQueue::default_initialized_; +#else // !CL_HPP_CPP11_ATOMICS_SUPPORTED +__declspec(selectany) volatile int CommandQueue::default_initialized_ = __DEFAULT_NOT_INITIALIZED; +#endif // !CL_HPP_CPP11_ATOMICS_SUPPORTED +__declspec(selectany) CommandQueue CommandQueue::default_; +__declspec(selectany) volatile cl_int CommandQueue::default_error_ = CL_SUCCESS; +#else // !_WIN32 +#ifdef CL_HPP_CPP11_ATOMICS_SUPPORTED +__attribute__((weak)) std::atomic CommandQueue::default_initialized_; +#else // !CL_HPP_CPP11_ATOMICS_SUPPORTED +__attribute__((weak)) volatile int CommandQueue::default_initialized_ = __DEFAULT_NOT_INITIALIZED; +#endif // !CL_HPP_CPP11_ATOMICS_SUPPORTED +__attribute__((weak)) CommandQueue CommandQueue::default_; +__attribute__((weak)) volatile cl_int CommandQueue::default_error_ = CL_SUCCESS; +#endif // !_WIN32 + +template< typename IteratorType > +Buffer::Buffer( + const Context &context, + IteratorType startIterator, + IteratorType endIterator, + bool readOnly, + bool useHostPtr, + cl_int* err) +{ + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + cl_mem_flags flags = 0; + if( readOnly ) { + flags |= CL_MEM_READ_ONLY; + } + else { + flags |= CL_MEM_READ_WRITE; + } + if( useHostPtr ) { + flags |= CL_MEM_USE_HOST_PTR; + } + + ::size_t size = sizeof(DataType)*(endIterator - startIterator); + + if( useHostPtr ) { + object_ = ::clCreateBuffer(context(), flags, size, static_cast(&*startIterator), &error); + } else { + object_ = ::clCreateBuffer(context(), flags, size, 0, &error); + } + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + if( !useHostPtr ) { + CommandQueue queue(context, 0, &error); + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + error = cl::copy(queue, startIterator, endIterator, *this); + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } +} + +template< typename IteratorType > +Buffer::Buffer( + const CommandQueue &queue, + IteratorType startIterator, + IteratorType endIterator, + bool readOnly, + bool useHostPtr, + cl_int* err) +{ + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + cl_mem_flags flags = 0; + if (readOnly) { + flags |= CL_MEM_READ_ONLY; + } + else { + flags |= CL_MEM_READ_WRITE; + } + if (useHostPtr) { + flags |= CL_MEM_USE_HOST_PTR; + } + + ::size_t size = sizeof(DataType)*(endIterator - startIterator); + + Context context = queue.getInfo(); + + if (useHostPtr) { + object_ = ::clCreateBuffer(context(), flags, size, static_cast(&*startIterator), &error); + } + else { + object_ = ::clCreateBuffer(context(), flags, size, 0, &error); + } + + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + if (!useHostPtr) { + error = cl::copy(queue, startIterator, endIterator, *this); + detail::errHandler(error, __CREATE_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + } +} + +inline cl_int enqueueReadBuffer( + const Buffer& buffer, + cl_bool blocking, + ::size_t offset, + ::size_t size, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueReadBuffer(buffer, blocking, offset, size, ptr, events, event); +} + +inline cl_int enqueueWriteBuffer( + const Buffer& buffer, + cl_bool blocking, + ::size_t offset, + ::size_t size, + const void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueWriteBuffer(buffer, blocking, offset, size, ptr, events, event); +} + +inline void* enqueueMapBuffer( + const Buffer& buffer, + cl_bool blocking, + cl_map_flags flags, + ::size_t offset, + ::size_t size, + const VECTOR_CLASS* events = NULL, + Event* event = NULL, + cl_int* err = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + + void * result = ::clEnqueueMapBuffer( + queue(), buffer(), blocking, flags, offset, size, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (cl_event*) event, + &error); + + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (err != NULL) { + *err = error; + } + return result; +} + +inline cl_int enqueueUnmapMemObject( + const Memory& memory, + void* mapped_ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR); + if (error != CL_SUCCESS) { + return error; + } + + cl_event tmp; + cl_int err = detail::errHandler( + ::clEnqueueUnmapMemObject( + queue(), memory(), mapped_ptr, + (events != NULL) ? (cl_uint) events->size() : 0, + (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL, + (event != NULL) ? &tmp : NULL), + __ENQUEUE_UNMAP_MEM_OBJECT_ERR); + + if (event != NULL && err == CL_SUCCESS) + *event = tmp; + + return err; +} + +inline cl_int enqueueCopyBuffer( + const Buffer& src, + const Buffer& dst, + ::size_t src_offset, + ::size_t dst_offset, + ::size_t size, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyBuffer(src, dst, src_offset, dst_offset, size, events, event); +} + +/** + * Blocking copy operation between iterators and a buffer. + * Host to Device. + * Uses default command queue. + */ +template< typename IteratorType > +inline cl_int copy( IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) + return error; + + return cl::copy(queue, startIterator, endIterator, buffer); +} + +/** + * Blocking copy operation between iterators and a buffer. + * Device to Host. + * Uses default command queue. + */ +template< typename IteratorType > +inline cl_int copy( const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + if (error != CL_SUCCESS) + return error; + + return cl::copy(queue, buffer, startIterator, endIterator); +} + +/** + * Blocking copy operation between iterators and a buffer. + * Host to Device. + * Uses specified queue. + */ +template< typename IteratorType > +inline cl_int copy( const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer ) +{ + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + ::size_t length = endIterator-startIterator; + ::size_t byteLength = length*sizeof(DataType); + + DataType *pointer = + static_cast(queue.enqueueMapBuffer(buffer, CL_TRUE, CL_MAP_WRITE, 0, byteLength, 0, 0, &error)); + // if exceptions enabled, enqueueMapBuffer will throw + if( error != CL_SUCCESS ) { + return error; + } +#if defined(_MSC_VER) + std::copy( + startIterator, + endIterator, + stdext::checked_array_iterator( + pointer, length)); +#else + std::copy(startIterator, endIterator, pointer); +#endif + Event endEvent; + error = queue.enqueueUnmapMemObject(buffer, pointer, 0, &endEvent); + // if exceptions enabled, enqueueUnmapMemObject will throw + if( error != CL_SUCCESS ) { + return error; + } + endEvent.wait(); + return CL_SUCCESS; +} + +/** + * Blocking copy operation between iterators and a buffer. + * Device to Host. + * Uses specified queue. + */ +template< typename IteratorType > +inline cl_int copy( const CommandQueue &queue, const cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator ) +{ + typedef typename std::iterator_traits::value_type DataType; + cl_int error; + + ::size_t length = endIterator-startIterator; + ::size_t byteLength = length*sizeof(DataType); + + DataType *pointer = + static_cast(queue.enqueueMapBuffer(buffer, CL_TRUE, CL_MAP_READ, 0, byteLength, 0, 0, &error)); + // if exceptions enabled, enqueueMapBuffer will throw + if( error != CL_SUCCESS ) { + return error; + } + std::copy(pointer, pointer + length, startIterator); + Event endEvent; + error = queue.enqueueUnmapMemObject(buffer, pointer, 0, &endEvent); + // if exceptions enabled, enqueueUnmapMemObject will throw + if( error != CL_SUCCESS ) { + return error; + } + endEvent.wait(); + return CL_SUCCESS; +} + +#if defined(CL_VERSION_1_1) +inline cl_int enqueueReadBufferRect( + const Buffer& buffer, + cl_bool blocking, + const size_t<3>& buffer_offset, + const size_t<3>& host_offset, + const size_t<3>& region, + ::size_t buffer_row_pitch, + ::size_t buffer_slice_pitch, + ::size_t host_row_pitch, + ::size_t host_slice_pitch, + void *ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueReadBufferRect( + buffer, + blocking, + buffer_offset, + host_offset, + region, + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueWriteBufferRect( + const Buffer& buffer, + cl_bool blocking, + const size_t<3>& buffer_offset, + const size_t<3>& host_offset, + const size_t<3>& region, + ::size_t buffer_row_pitch, + ::size_t buffer_slice_pitch, + ::size_t host_row_pitch, + ::size_t host_slice_pitch, + void *ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueWriteBufferRect( + buffer, + blocking, + buffer_offset, + host_offset, + region, + buffer_row_pitch, + buffer_slice_pitch, + host_row_pitch, + host_slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueCopyBufferRect( + const Buffer& src, + const Buffer& dst, + const size_t<3>& src_origin, + const size_t<3>& dst_origin, + const size_t<3>& region, + ::size_t src_row_pitch, + ::size_t src_slice_pitch, + ::size_t dst_row_pitch, + ::size_t dst_slice_pitch, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyBufferRect( + src, + dst, + src_origin, + dst_origin, + region, + src_row_pitch, + src_slice_pitch, + dst_row_pitch, + dst_slice_pitch, + events, + event); +} +#endif + +inline cl_int enqueueReadImage( + const Image& image, + cl_bool blocking, + const size_t<3>& origin, + const size_t<3>& region, + ::size_t row_pitch, + ::size_t slice_pitch, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueReadImage( + image, + blocking, + origin, + region, + row_pitch, + slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueWriteImage( + const Image& image, + cl_bool blocking, + const size_t<3>& origin, + const size_t<3>& region, + ::size_t row_pitch, + ::size_t slice_pitch, + void* ptr, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueWriteImage( + image, + blocking, + origin, + region, + row_pitch, + slice_pitch, + ptr, + events, + event); +} + +inline cl_int enqueueCopyImage( + const Image& src, + const Image& dst, + const size_t<3>& src_origin, + const size_t<3>& dst_origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyImage( + src, + dst, + src_origin, + dst_origin, + region, + events, + event); +} + +inline cl_int enqueueCopyImageToBuffer( + const Image& src, + const Buffer& dst, + const size_t<3>& src_origin, + const size_t<3>& region, + ::size_t dst_offset, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyImageToBuffer( + src, + dst, + src_origin, + region, + dst_offset, + events, + event); +} + +inline cl_int enqueueCopyBufferToImage( + const Buffer& src, + const Image& dst, + ::size_t src_offset, + const size_t<3>& dst_origin, + const size_t<3>& region, + const VECTOR_CLASS* events = NULL, + Event* event = NULL) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.enqueueCopyBufferToImage( + src, + dst, + src_offset, + dst_origin, + region, + events, + event); +} + + +inline cl_int flush(void) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + return queue.flush(); +} + +inline cl_int finish(void) +{ + cl_int error; + CommandQueue queue = CommandQueue::getDefault(&error); + + if (error != CL_SUCCESS) { + return error; + } + + + return queue.finish(); +} + +// Kernel Functor support +// New interface as of September 2011 +// Requires the C++11 std::tr1::function (note do not support TR1) +// Visual Studio 2010 and GCC 4.2 + +struct EnqueueArgs +{ + CommandQueue queue_; + const NDRange offset_; + const NDRange global_; + const NDRange local_; + VECTOR_CLASS events_; + + EnqueueArgs(NDRange global) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(NullRange) + { + + } + + EnqueueArgs(NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(local) + { + + } + + EnqueueArgs(NDRange offset, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(offset), + global_(global), + local_(local) + { + + } + + EnqueueArgs(Event e, NDRange global) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(NullRange) + { + events_.push_back(e); + } + + EnqueueArgs(Event e, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(Event e, NDRange offset, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(offset), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(const VECTOR_CLASS &events, NDRange global) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(NullRange), + events_(events) + { + + } + + EnqueueArgs(const VECTOR_CLASS &events, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(NullRange), + global_(global), + local_(local), + events_(events) + { + + } + + EnqueueArgs(const VECTOR_CLASS &events, NDRange offset, NDRange global, NDRange local) : + queue_(CommandQueue::getDefault()), + offset_(offset), + global_(global), + local_(local), + events_(events) + { + + } + + EnqueueArgs(CommandQueue &queue, NDRange global) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(NullRange) + { + + } + + EnqueueArgs(CommandQueue &queue, NDRange global, NDRange local) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(local) + { + + } + + EnqueueArgs(CommandQueue &queue, NDRange offset, NDRange global, NDRange local) : + queue_(queue), + offset_(offset), + global_(global), + local_(local) + { + + } + + EnqueueArgs(CommandQueue &queue, Event e, NDRange global) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(NullRange) + { + events_.push_back(e); + } + + EnqueueArgs(CommandQueue &queue, Event e, NDRange global, NDRange local) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(CommandQueue &queue, Event e, NDRange offset, NDRange global, NDRange local) : + queue_(queue), + offset_(offset), + global_(global), + local_(local) + { + events_.push_back(e); + } + + EnqueueArgs(CommandQueue &queue, const VECTOR_CLASS &events, NDRange global) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(NullRange), + events_(events) + { + + } + + EnqueueArgs(CommandQueue &queue, const VECTOR_CLASS &events, NDRange global, NDRange local) : + queue_(queue), + offset_(NullRange), + global_(global), + local_(local), + events_(events) + { + + } + + EnqueueArgs(CommandQueue &queue, const VECTOR_CLASS &events, NDRange offset, NDRange global, NDRange local) : + queue_(queue), + offset_(offset), + global_(global), + local_(local), + events_(events) + { + + } +}; + +namespace detail { + +class NullType {}; + +template +struct SetArg +{ + static void set (Kernel kernel, T0 arg) + { + kernel.setArg(index, arg); + } +}; + +template +struct SetArg +{ + static void set (Kernel, NullType) + { + } +}; + +template < + typename T0, typename T1, typename T2, typename T3, + typename T4, typename T5, typename T6, typename T7, + typename T8, typename T9, typename T10, typename T11, + typename T12, typename T13, typename T14, typename T15, + typename T16, typename T17, typename T18, typename T19, + typename T20, typename T21, typename T22, typename T23, + typename T24, typename T25, typename T26, typename T27, + typename T28, typename T29, typename T30, typename T31 +> +class KernelFunctorGlobal +{ +private: + Kernel kernel_; + +public: + KernelFunctorGlobal( + Kernel kernel) : + kernel_(kernel) + {} + + KernelFunctorGlobal( + const Program& program, + const STRING_CLASS name, + cl_int * err = NULL) : + kernel_(program, name.c_str(), err) + {} + + Event operator() ( + const EnqueueArgs& args, + T0 t0, + T1 t1 = NullType(), + T2 t2 = NullType(), + T3 t3 = NullType(), + T4 t4 = NullType(), + T5 t5 = NullType(), + T6 t6 = NullType(), + T7 t7 = NullType(), + T8 t8 = NullType(), + T9 t9 = NullType(), + T10 t10 = NullType(), + T11 t11 = NullType(), + T12 t12 = NullType(), + T13 t13 = NullType(), + T14 t14 = NullType(), + T15 t15 = NullType(), + T16 t16 = NullType(), + T17 t17 = NullType(), + T18 t18 = NullType(), + T19 t19 = NullType(), + T20 t20 = NullType(), + T21 t21 = NullType(), + T22 t22 = NullType(), + T23 t23 = NullType(), + T24 t24 = NullType(), + T25 t25 = NullType(), + T26 t26 = NullType(), + T27 t27 = NullType(), + T28 t28 = NullType(), + T29 t29 = NullType(), + T30 t30 = NullType(), + T31 t31 = NullType() + ) + { + Event event; + SetArg<0, T0>::set(kernel_, t0); + SetArg<1, T1>::set(kernel_, t1); + SetArg<2, T2>::set(kernel_, t2); + SetArg<3, T3>::set(kernel_, t3); + SetArg<4, T4>::set(kernel_, t4); + SetArg<5, T5>::set(kernel_, t5); + SetArg<6, T6>::set(kernel_, t6); + SetArg<7, T7>::set(kernel_, t7); + SetArg<8, T8>::set(kernel_, t8); + SetArg<9, T9>::set(kernel_, t9); + SetArg<10, T10>::set(kernel_, t10); + SetArg<11, T11>::set(kernel_, t11); + SetArg<12, T12>::set(kernel_, t12); + SetArg<13, T13>::set(kernel_, t13); + SetArg<14, T14>::set(kernel_, t14); + SetArg<15, T15>::set(kernel_, t15); + SetArg<16, T16>::set(kernel_, t16); + SetArg<17, T17>::set(kernel_, t17); + SetArg<18, T18>::set(kernel_, t18); + SetArg<19, T19>::set(kernel_, t19); + SetArg<20, T20>::set(kernel_, t20); + SetArg<21, T21>::set(kernel_, t21); + SetArg<22, T22>::set(kernel_, t22); + SetArg<23, T23>::set(kernel_, t23); + SetArg<24, T24>::set(kernel_, t24); + SetArg<25, T25>::set(kernel_, t25); + SetArg<26, T26>::set(kernel_, t26); + SetArg<27, T27>::set(kernel_, t27); + SetArg<28, T28>::set(kernel_, t28); + SetArg<29, T29>::set(kernel_, t29); + SetArg<30, T30>::set(kernel_, t30); + SetArg<31, T31>::set(kernel_, t31); + + args.queue_.enqueueNDRangeKernel( + kernel_, + args.offset_, + args.global_, + args.local_, + &args.events_, + &event); + + return event; + } + +}; + +//------------------------------------------------------------------------------------------------------ + + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26, + typename T27, + typename T28, + typename T29, + typename T30, + typename T31> +struct functionImplementation_ +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + T30, + T31> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 32)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + T30, + T31); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26, + T27 arg27, + T28 arg28, + T29 arg29, + T30 arg30, + T31 arg31) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26, + arg27, + arg28, + arg29, + arg30, + arg31); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26, + typename T27, + typename T28, + typename T29, + typename T30> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + T30, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + T30, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 31)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + T30); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26, + T27 arg27, + T28 arg28, + T29 arg29, + T30 arg30) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26, + arg27, + arg28, + arg29, + arg30); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26, + typename T27, + typename T28, + typename T29> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 30)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + T29); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26, + T27 arg27, + T28 arg28, + T29 arg29) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26, + arg27, + arg28, + arg29); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26, + typename T27, + typename T28> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 29)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + T28); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26, + T27 arg27, + T28 arg28) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26, + arg27, + arg28); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26, + typename T27> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 28)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + T27); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26, + T27 arg27) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26, + arg27); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25, + typename T26> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 27)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + T26); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25, + T26 arg26) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25, + arg26); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24, + typename T25> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 26)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + T25); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24, + T25 arg25) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24, + arg25); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23, + typename T24> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 25)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + T24); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23, + T24 arg24) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23, + arg24); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22, + typename T23> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 24)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + T23); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22, + T23 arg23) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22, + arg23); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21, + typename T22> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 23)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + T22); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21, + T22 arg22) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21, + arg22); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20, + typename T21> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 22)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + T21); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20, + T21 arg21) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20, + arg21); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19, + typename T20> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 21)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + T20); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19, + T20 arg20) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19, + arg20); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18, + typename T19> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 20)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + T19); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18, + T19 arg19) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18, + arg19); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17, + typename T18> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 19)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + T18); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17, + T18 arg18) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17, + arg18); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16, + typename T17> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 18)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + T17); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16, + T17 arg17) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16, + arg17); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15, + typename T16> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 17)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + T16); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15, + T16 arg16) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15, + arg16); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14, + typename T15> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 16)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + T15); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14, + T15 arg15) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14, + arg15); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13, + typename T14> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 15)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + T14); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13, + T14 arg14) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13, + arg14); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12, + typename T13> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 14)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + T13); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12, + T13 arg13) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12, + arg13); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11, + typename T12> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 13)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + T12); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11, + T12 arg12) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11, + arg12); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10, + typename T11> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 12)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + T11); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10, + T11 arg11) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10, + arg11); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9, + typename T10> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 11)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + T10); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9, + T10 arg10) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9, + arg10); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8, + typename T9> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 10)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + T9); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8, + T9 arg9) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8, + arg9); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7, + typename T8> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 9)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + T8); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7, + T8 arg8) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7, + arg8); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6, + typename T7> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 8)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6, + T7); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6, + T7 arg7) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + arg7); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5, + typename T6> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + T6, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + T6, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 7)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5, + T6); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5, + T6 arg6) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4, + typename T5> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + T5, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + T5, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 6)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4, + T5); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4, + T5 arg5) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4, + arg5); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3, + typename T4> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + T4, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + T4, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 5)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3, + T4); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3, + T4 arg4) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3, + arg4); + } + + +}; + +template< + typename T0, + typename T1, + typename T2, + typename T3> +struct functionImplementation_ +< T0, + T1, + T2, + T3, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + T3, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 4)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2, + T3); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2, + T3 arg3) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2, + arg3); + } + + +}; + +template< + typename T0, + typename T1, + typename T2> +struct functionImplementation_ +< T0, + T1, + T2, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + T2, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 3)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1, + T2); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1, + T2 arg2) + { + return functor_( + enqueueArgs, + arg0, + arg1, + arg2); + } + + +}; + +template< + typename T0, + typename T1> +struct functionImplementation_ +< T0, + T1, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + T1, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 2)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0, + T1); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0, + T1 arg1) + { + return functor_( + enqueueArgs, + arg0, + arg1); + } + + +}; + +template< + typename T0> +struct functionImplementation_ +< T0, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> +{ + typedef detail::KernelFunctorGlobal< + T0, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType, + NullType> FunctorType; + + FunctorType functor_; + + functionImplementation_(const FunctorType &functor) : + functor_(functor) + { + + #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 1)) + // Fail variadic expansion for dev11 + static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it."); + #endif + + } + + //! \brief Return type of the functor + typedef Event result_type; + + //! \brief Function signature of kernel functor with no event dependency. + typedef Event type_( + const EnqueueArgs&, + T0); + + Event operator()( + const EnqueueArgs& enqueueArgs, + T0 arg0) + { + return functor_( + enqueueArgs, + arg0); + } + + +}; + + + + + +} // namespace detail + +//---------------------------------------------------------------------------------------------- + +template < + typename T0, typename T1 = detail::NullType, typename T2 = detail::NullType, + typename T3 = detail::NullType, typename T4 = detail::NullType, + typename T5 = detail::NullType, typename T6 = detail::NullType, + typename T7 = detail::NullType, typename T8 = detail::NullType, + typename T9 = detail::NullType, typename T10 = detail::NullType, + typename T11 = detail::NullType, typename T12 = detail::NullType, + typename T13 = detail::NullType, typename T14 = detail::NullType, + typename T15 = detail::NullType, typename T16 = detail::NullType, + typename T17 = detail::NullType, typename T18 = detail::NullType, + typename T19 = detail::NullType, typename T20 = detail::NullType, + typename T21 = detail::NullType, typename T22 = detail::NullType, + typename T23 = detail::NullType, typename T24 = detail::NullType, + typename T25 = detail::NullType, typename T26 = detail::NullType, + typename T27 = detail::NullType, typename T28 = detail::NullType, + typename T29 = detail::NullType, typename T30 = detail::NullType, + typename T31 = detail::NullType +> +struct make_kernel : + public detail::functionImplementation_< + T0, T1, T2, T3, + T4, T5, T6, T7, + T8, T9, T10, T11, + T12, T13, T14, T15, + T16, T17, T18, T19, + T20, T21, T22, T23, + T24, T25, T26, T27, + T28, T29, T30, T31 + > +{ +public: + typedef detail::KernelFunctorGlobal< + T0, T1, T2, T3, + T4, T5, T6, T7, + T8, T9, T10, T11, + T12, T13, T14, T15, + T16, T17, T18, T19, + T20, T21, T22, T23, + T24, T25, T26, T27, + T28, T29, T30, T31 + > FunctorType; + + make_kernel( + const Program& program, + const STRING_CLASS name, + cl_int * err = NULL) : + detail::functionImplementation_< + T0, T1, T2, T3, + T4, T5, T6, T7, + T8, T9, T10, T11, + T12, T13, T14, T15, + T16, T17, T18, T19, + T20, T21, T22, T23, + T24, T25, T26, T27, + T28, T29, T30, T31 + >( + FunctorType(program, name, err)) + {} + + make_kernel( + const Kernel kernel) : + detail::functionImplementation_< + T0, T1, T2, T3, + T4, T5, T6, T7, + T8, T9, T10, T11, + T12, T13, T14, T15, + T16, T17, T18, T19, + T20, T21, T22, T23, + T24, T25, T26, T27, + T28, T29, T30, T31 + >( + FunctorType(kernel)) + {} +}; + + +//---------------------------------------------------------------------------------------------------------------------- + +#undef __ERR_STR +#if !defined(__CL_USER_OVERRIDE_ERROR_STRINGS) +#undef __GET_DEVICE_INFO_ERR +#undef __GET_PLATFORM_INFO_ERR +#undef __GET_DEVICE_IDS_ERR +#undef __GET_CONTEXT_INFO_ERR +#undef __GET_EVENT_INFO_ERR +#undef __GET_EVENT_PROFILE_INFO_ERR +#undef __GET_MEM_OBJECT_INFO_ERR +#undef __GET_IMAGE_INFO_ERR +#undef __GET_SAMPLER_INFO_ERR +#undef __GET_KERNEL_INFO_ERR +#undef __GET_KERNEL_ARG_INFO_ERR +#undef __GET_KERNEL_WORK_GROUP_INFO_ERR +#undef __GET_PROGRAM_INFO_ERR +#undef __GET_PROGRAM_BUILD_INFO_ERR +#undef __GET_COMMAND_QUEUE_INFO_ERR + +#undef __CREATE_CONTEXT_ERR +#undef __CREATE_CONTEXT_FROM_TYPE_ERR +#undef __GET_SUPPORTED_IMAGE_FORMATS_ERR + +#undef __CREATE_BUFFER_ERR +#undef __CREATE_SUBBUFFER_ERR +#undef __CREATE_IMAGE2D_ERR +#undef __CREATE_IMAGE3D_ERR +#undef __CREATE_SAMPLER_ERR +#undef __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR + +#undef __CREATE_USER_EVENT_ERR +#undef __SET_USER_EVENT_STATUS_ERR +#undef __SET_EVENT_CALLBACK_ERR +#undef __SET_PRINTF_CALLBACK_ERR + +#undef __WAIT_FOR_EVENTS_ERR + +#undef __CREATE_KERNEL_ERR +#undef __SET_KERNEL_ARGS_ERR +#undef __CREATE_PROGRAM_WITH_SOURCE_ERR +#undef __CREATE_PROGRAM_WITH_BINARY_ERR +#undef __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR +#undef __BUILD_PROGRAM_ERR +#undef __CREATE_KERNELS_IN_PROGRAM_ERR + +#undef __CREATE_COMMAND_QUEUE_ERR +#undef __SET_COMMAND_QUEUE_PROPERTY_ERR +#undef __ENQUEUE_READ_BUFFER_ERR +#undef __ENQUEUE_WRITE_BUFFER_ERR +#undef __ENQUEUE_READ_BUFFER_RECT_ERR +#undef __ENQUEUE_WRITE_BUFFER_RECT_ERR +#undef __ENQEUE_COPY_BUFFER_ERR +#undef __ENQEUE_COPY_BUFFER_RECT_ERR +#undef __ENQUEUE_READ_IMAGE_ERR +#undef __ENQUEUE_WRITE_IMAGE_ERR +#undef __ENQUEUE_COPY_IMAGE_ERR +#undef __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR +#undef __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR +#undef __ENQUEUE_MAP_BUFFER_ERR +#undef __ENQUEUE_MAP_IMAGE_ERR +#undef __ENQUEUE_UNMAP_MEM_OBJECT_ERR +#undef __ENQUEUE_NDRANGE_KERNEL_ERR +#undef __ENQUEUE_TASK_ERR +#undef __ENQUEUE_NATIVE_KERNEL + +#undef __CL_EXPLICIT_CONSTRUCTORS + +#undef __UNLOAD_COMPILER_ERR +#endif //__CL_USER_OVERRIDE_ERROR_STRINGS + +#undef __CL_FUNCTION_TYPE + +// Extensions +/** + * Deprecated APIs for 1.2 + */ +#if defined(CL_VERSION_1_1) +#undef __INIT_CL_EXT_FCN_PTR +#endif // #if defined(CL_VERSION_1_1) +#undef __CREATE_SUB_DEVICES + +#if defined(USE_CL_DEVICE_FISSION) +#undef __PARAM_NAME_DEVICE_FISSION +#endif // USE_CL_DEVICE_FISSION + +#undef __DEFAULT_NOT_INITIALIZED +#undef __DEFAULT_BEING_INITIALIZED +#undef __DEFAULT_INITIALIZED + +#undef CL_HPP_RVALUE_REFERENCES_SUPPORTED +#undef CL_HPP_NOEXCEPT + +} // namespace cl + +#endif // CL_HPP_ diff --git a/VS/Tutorial1/Tutorial1/Tutorial1.cpp b/VS/Tutorial1/Tutorial1/Tutorial1.cpp new file mode 100644 index 0000000..6315830 --- /dev/null +++ b/VS/Tutorial1/Tutorial1/Tutorial1.cpp @@ -0,0 +1,295 @@ +#include +#include +#include +#include + +#define __CL_ENABLE_EXCEPTIONS + +#include "CL\cl.hpp" + +std::string GetPlatformName(cl_platform_id id) +{ + size_t size = 0; + clGetPlatformInfo(id, CL_PLATFORM_NAME, 0, nullptr, &size); + + std::string result; + result.resize(size); + clGetPlatformInfo(id, CL_PLATFORM_NAME, size, + const_cast (result.data()), nullptr); + + return result; +} + +std::string GetDeviceName(cl_device_id id) +{ + size_t size = 0; + clGetDeviceInfo(id, CL_DEVICE_NAME, 0, nullptr, &size); + + std::string result; + result.resize(size); + clGetDeviceInfo(id, CL_DEVICE_NAME, size, + const_cast (result.data()), nullptr); + + return result; +} + +const char *getErrorString(cl_int error) +{ + switch (error){ + // run-time and JIT compiler errors + case 0: return "CL_SUCCESS"; + case -1: return "CL_DEVICE_NOT_FOUND"; + case -2: return "CL_DEVICE_NOT_AVAILABLE"; + case -3: return "CL_COMPILER_NOT_AVAILABLE"; + case -4: return "CL_MEM_OBJECT_ALLOCATION_FAILURE"; + case -5: return "CL_OUT_OF_RESOURCES"; + case -6: return "CL_OUT_OF_HOST_MEMORY"; + case -7: return "CL_PROFILING_INFO_NOT_AVAILABLE"; + case -8: return "CL_MEM_COPY_OVERLAP"; + case -9: return "CL_IMAGE_FORMAT_MISMATCH"; + case -10: return "CL_IMAGE_FORMAT_NOT_SUPPORTED"; + case -11: return "CL_BUILD_PROGRAM_FAILURE"; + case -12: return "CL_MAP_FAILURE"; + case -13: return "CL_MISALIGNED_SUB_BUFFER_OFFSET"; + case -14: return "CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"; + case -15: return "CL_COMPILE_PROGRAM_FAILURE"; + case -16: return "CL_LINKER_NOT_AVAILABLE"; + case -17: return "CL_LINK_PROGRAM_FAILURE"; + case -18: return "CL_DEVICE_PARTITION_FAILED"; + case -19: return "CL_KERNEL_ARG_INFO_NOT_AVAILABLE"; + + // compile-time errors + case -30: return "CL_INVALID_VALUE"; + case -31: return "CL_INVALID_DEVICE_TYPE"; + case -32: return "CL_INVALID_PLATFORM"; + case -33: return "CL_INVALID_DEVICE"; + case -34: return "CL_INVALID_CONTEXT"; + case -35: return "CL_INVALID_QUEUE_PROPERTIES"; + case -36: return "CL_INVALID_COMMAND_QUEUE"; + case -37: return "CL_INVALID_HOST_PTR"; + case -38: return "CL_INVALID_MEM_OBJECT"; + case -39: return "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"; + case -40: return "CL_INVALID_IMAGE_SIZE"; + case -41: return "CL_INVALID_SAMPLER"; + case -42: return "CL_INVALID_BINARY"; + case -43: return "CL_INVALID_BUILD_OPTIONS"; + case -44: return "CL_INVALID_PROGRAM"; + case -45: return "CL_INVALID_PROGRAM_EXECUTABLE"; + case -46: return "CL_INVALID_KERNEL_NAME"; + case -47: return "CL_INVALID_KERNEL_DEFINITION"; + case -48: return "CL_INVALID_KERNEL"; + case -49: return "CL_INVALID_ARG_INDEX"; + case -50: return "CL_INVALID_ARG_VALUE"; + case -51: return "CL_INVALID_ARG_SIZE"; + case -52: return "CL_INVALID_KERNEL_ARGS"; + case -53: return "CL_INVALID_WORK_DIMENSION"; + case -54: return "CL_INVALID_WORK_GROUP_SIZE"; + case -55: return "CL_INVALID_WORK_ITEM_SIZE"; + case -56: return "CL_INVALID_GLOBAL_OFFSET"; + case -57: return "CL_INVALID_EVENT_WAIT_LIST"; + case -58: return "CL_INVALID_EVENT"; + case -59: return "CL_INVALID_OPERATION"; + case -60: return "CL_INVALID_GL_OBJECT"; + case -61: return "CL_INVALID_BUFFER_SIZE"; + case -62: return "CL_INVALID_MIP_LEVEL"; + case -63: return "CL_INVALID_GLOBAL_WORK_SIZE"; + case -64: return "CL_INVALID_PROPERTY"; + case -65: return "CL_INVALID_IMAGE_DESCRIPTOR"; + case -66: return "CL_INVALID_COMPILER_OPTIONS"; + case -67: return "CL_INVALID_LINKER_OPTIONS"; + case -68: return "CL_INVALID_DEVICE_PARTITION_COUNT"; + + // extension errors + case -1000: return "CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR"; + case -1001: return "CL_PLATFORM_NOT_FOUND_KHR"; + case -1002: return "CL_INVALID_D3D10_DEVICE_KHR"; + case -1003: return "CL_INVALID_D3D10_RESOURCE_KHR"; + case -1004: return "CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR"; + case -1005: return "CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR"; + default: return "Unknown OpenCL error"; + } +} + +void CheckError(cl_int error) +{ + if (error != CL_SUCCESS) { + std::cerr << "OpenCL call failed with error " << getErrorString(error) << std::endl; + std::exit(1); + } +} + +enum VerboseLevel +{ + VERBOSE_OFF, + VERBOSE_BRIEF, + VERBOSE_DETAILED, + VERBOSE_FULL +}; + +using namespace std; + +void print_help() +{ + cerr << "OpenCLTutorial usage:" << endl; + + cerr << " -v : verbose level [0, 1, 2, 3]" << endl; + cerr << " -h : print this message" << endl; +} + +//std::string source_code; + +void AddSources(cl::Program::Sources& sources, const std::string& file_name) { + std::string* source_code = new std::string(std::istreambuf_iterator(std::ifstream(file_name)), (std::istreambuf_iterator())); + sources.push_back(std::make_pair((*source_code).c_str(), source_code->length() + 1)); +} + +int main(int argc, char **argv) +{ + VerboseLevel verbose_level = VERBOSE_OFF; + int platform_id = 0; + int device_id = 0; + + for (int i = 1; i < argc; i++) + { + if ((strcmp(argv[i], "-p") == 0) && (i < (argc - 1))) { platform_id = atoi(argv[++i]); } + else if ((strcmp(argv[i], "-d") == 0) && (i < (argc - 1))) { device_id = atoi(argv[++i]); } + else if ((strcmp(argv[i], "-v") == 0) && (i < (argc - 1))) { verbose_level = (VerboseLevel)atoi(argv[++i]); } + else if (strcmp(argv[i], "-h") == 0) { print_help(); } + } + + vector platforms; + + if (verbose_level != VERBOSE_OFF) + { + try + { + cl::Platform::get(&platforms); + + cout << "Found " << platforms.size() << " platform(s):" << endl; + + for (unsigned int i = 0; i < platforms.size(); i++) + { + cout << "\n " << (i + 1) << ") " << platforms[i].getInfo() << ", version: " << platforms[i].getInfo(); + + if (verbose_level > VERBOSE_BRIEF) + cout << ", vendor: " << platforms[i].getInfo(); + + if (verbose_level > VERBOSE_DETAILED) + cout << ", profile: " << platforms[i].getInfo() << ", extensions: " << platforms[i].getInfo(); + + cout << endl; + + vector devices; + + platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); + + cout << "\tFound " << devices.size() << " device(s):" << endl; + + for (unsigned int j = 0; j < devices.size(); j++) + { + cout << "\t " << (j + 1) << ") " << devices[j].getInfo() << ", version: " << devices[j].getInfo(); + + if (verbose_level > VERBOSE_BRIEF) + { + cout << ", vendor: " << devices[j].getInfo(); + cl_device_type device_type = devices[j].getInfo(); + cout << ", type: "; + if (device_type & CL_DEVICE_TYPE_DEFAULT) + cerr << "DEFAULT "; + if (device_type & CL_DEVICE_TYPE_CPU) + cerr << "CPU "; + if (device_type & CL_DEVICE_TYPE_GPU) + cerr << "GPU "; + if (device_type & CL_DEVICE_TYPE_ACCELERATOR) + cerr << "ACCELERATOR "; + cout << ", compute units: " << devices[j].getInfo(); + } + + if (verbose_level > VERBOSE_DETAILED) + { + } + + cout << endl; + } + } + } + catch (cl::Error err) { + cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; + } + } + + + //select device + cl::Device device; + + try + { + cl::Platform::get(&platforms); + + for (unsigned int i = 0; i < platforms.size(); i++) + { + vector devices; + platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); + + for (unsigned int j = 0; j < devices.size(); j++) + { + if ((i == platform_id) && (j == device_id)) + device = devices[j]; + break; + } + } + } + catch (cl::Error err) { + cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; + } + + cl::Context context({ device }); + + cl::Program::Sources sources; + + AddSources(sources, "kernels/simple_add.cl"); + + cl::Program program(context, sources); + + try + { + program.build({ device }); + } + catch (cl::Error err) { + cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; + } + + //host buffers + int A[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + int B[] = { 0, 1, 2, 0, 1, 2, 0, 1, 2, 0 }; + int C[sizeof(A) / sizeof(A[0])]; + + // create buffers on the device + cl::Buffer buffer_A(context, CL_MEM_READ_WRITE, sizeof(A)); + cl::Buffer buffer_B(context, CL_MEM_READ_WRITE, sizeof(B)); + cl::Buffer buffer_C(context, CL_MEM_READ_WRITE, sizeof(C)); + + //create queue to which we will push commands for the device. + cl::CommandQueue queue(context, device); + + //write arrays A and B to the device + queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, sizeof(A), A); + queue.enqueueWriteBuffer(buffer_B, CL_TRUE, 0, sizeof(B), B); + + cl::Kernel kernel_add = cl::Kernel(program, "simple_add"); + kernel_add.setArg(0, buffer_A); + kernel_add.setArg(1, buffer_B); + kernel_add.setArg(2, buffer_C); + + queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(sizeof(A) / sizeof(A[0])), cl::NullRange); + queue.finish(); + + queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, sizeof(C), C); + + std::cout << " result: \n"; + for (int i = 0; i<10; i++){ + std::cout << C[i] << " "; + } + + return 0; +} \ No newline at end of file diff --git a/VS/Tutorial1/Tutorial1/Tutorial1.vcxproj b/VS/Tutorial1/Tutorial1/Tutorial1.vcxproj new file mode 100644 index 0000000..df48f42 --- /dev/null +++ b/VS/Tutorial1/Tutorial1/Tutorial1.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {B9237F83-0D5A-4737-B260-24D4630C7173} + Tutorial1 + + + + Application + true + v120 + MultiByte + + + Application + true + v120 + MultiByte + + + Application + false + v120 + true + MultiByte + + + Application + false + v120 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + Level3 + Disabled + true + $(CUDA_PATH)\include + + + true + $(CUDA_PATH)\lib\$(Platform) + OpenCL.lib;%(AdditionalDependencies) + + + xcopy kernels $(TargetDir)\kernels /E /Y /I + + + + + Level3 + Disabled + true + $(CUDA_PATH)\include + + + true + $(CUDA_PATH)\lib\$(Platform) + OpenCL.lib;%(AdditionalDependencies) + + + %systemroot%\System32\xcopy kernels $(TargetDir)\kernels /E /Y /I + + + + + Level3 + MaxSpeed + true + true + true + $(CUDA_PATH)\include + + + true + true + true + OpenCL.lib;%(AdditionalDependencies) + $(CUDA_PATH)\lib\$(Platform) + + + xcopy kernels $(TargetDir)\kernels /E /Y /I + + + + + Level3 + MaxSpeed + true + true + true + $(CUDA_PATH)\include + + + true + true + true + OpenCL.lib;%(AdditionalDependencies) + $(CUDA_PATH)\lib\$(Platform) + + + %systemroot%\System32\xcopy kernels $(TargetDir)\kernels /E /Y /I + + + + + + + + + \ No newline at end of file diff --git a/VS/Tutorial1/Tutorial1/kernels/simple_add.cl b/VS/Tutorial1/Tutorial1/kernels/simple_add.cl new file mode 100644 index 0000000..70f6ffb --- /dev/null +++ b/VS/Tutorial1/Tutorial1/kernels/simple_add.cl @@ -0,0 +1,5 @@ +__kernel void simple_add(__global const int* A, __global const int* B, __global int* C) +{ + int id = get_global_id(0); + C[id] = A[id] + B[id]; +} diff --git a/src/Tutorial1.cpp b/src/Tutorial1.cpp index 7000244..9407d7e 100644 --- a/src/Tutorial1.cpp +++ b/src/Tutorial1.cpp @@ -1,4 +1,5 @@ #include +#include #include #include @@ -253,7 +254,14 @@ int main(int argc, char **argv) " } "; sources.push_back({ kernel_code.c_str(), kernel_code.length() }); - cl::Program program(context, sources); + //kernel from file + std::ifstream sourceFile("simple_add.cl"); + std::string sourceCode( + std::istreambuf_iterator(sourceFile), + (std::istreambuf_iterator())); + cl::Program::Sources source(1, std::make_pair(sourceCode.c_str(), sourceCode.length() + 1)); + + cl::Program program(context, source); try { diff --git a/src/opencl/simple_add.cl b/src/opencl/simple_add.cl new file mode 100644 index 0000000..70f6ffb --- /dev/null +++ b/src/opencl/simple_add.cl @@ -0,0 +1,5 @@ +__kernel void simple_add(__global const int* A, __global const int* B, __global int* C) +{ + int id = get_global_id(0); + C[id] = A[id] + B[id]; +} From fcf05f1e9475d8e4d8dc619fd1a611ec39d5ad1c Mon Sep 17 00:00:00 2001 From: gcielniak Date: Wed, 4 Nov 2015 12:22:56 +0000 Subject: [PATCH 08/97] Code moved to Utilities --- .gitignore | 3 +- VS/Tutorial1/Tutorial1/Tutorial1.cpp | 209 ++--------------------- VS/Tutorial1/Tutorial1/Tutorial1.vcxproj | 3 + VS/Tutorial1/Tutorial1/Utils.h | 195 +++++++++++++++++++++ 4 files changed, 213 insertions(+), 197 deletions(-) create mode 100644 VS/Tutorial1/Tutorial1/Utils.h diff --git a/.gitignore b/.gitignore index d6fd5d2..efb683e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,5 @@ bld/ *.opensdf *.sdf *.suo -*.filters \ No newline at end of file +*.filters +*.user \ No newline at end of file diff --git a/VS/Tutorial1/Tutorial1/Tutorial1.cpp b/VS/Tutorial1/Tutorial1/Tutorial1.cpp index 6315830..96ee1fc 100644 --- a/VS/Tutorial1/Tutorial1/Tutorial1.cpp +++ b/VS/Tutorial1/Tutorial1/Tutorial1.cpp @@ -1,130 +1,9 @@ #include -#include -#include #include #define __CL_ENABLE_EXCEPTIONS - #include "CL\cl.hpp" - -std::string GetPlatformName(cl_platform_id id) -{ - size_t size = 0; - clGetPlatformInfo(id, CL_PLATFORM_NAME, 0, nullptr, &size); - - std::string result; - result.resize(size); - clGetPlatformInfo(id, CL_PLATFORM_NAME, size, - const_cast (result.data()), nullptr); - - return result; -} - -std::string GetDeviceName(cl_device_id id) -{ - size_t size = 0; - clGetDeviceInfo(id, CL_DEVICE_NAME, 0, nullptr, &size); - - std::string result; - result.resize(size); - clGetDeviceInfo(id, CL_DEVICE_NAME, size, - const_cast (result.data()), nullptr); - - return result; -} - -const char *getErrorString(cl_int error) -{ - switch (error){ - // run-time and JIT compiler errors - case 0: return "CL_SUCCESS"; - case -1: return "CL_DEVICE_NOT_FOUND"; - case -2: return "CL_DEVICE_NOT_AVAILABLE"; - case -3: return "CL_COMPILER_NOT_AVAILABLE"; - case -4: return "CL_MEM_OBJECT_ALLOCATION_FAILURE"; - case -5: return "CL_OUT_OF_RESOURCES"; - case -6: return "CL_OUT_OF_HOST_MEMORY"; - case -7: return "CL_PROFILING_INFO_NOT_AVAILABLE"; - case -8: return "CL_MEM_COPY_OVERLAP"; - case -9: return "CL_IMAGE_FORMAT_MISMATCH"; - case -10: return "CL_IMAGE_FORMAT_NOT_SUPPORTED"; - case -11: return "CL_BUILD_PROGRAM_FAILURE"; - case -12: return "CL_MAP_FAILURE"; - case -13: return "CL_MISALIGNED_SUB_BUFFER_OFFSET"; - case -14: return "CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"; - case -15: return "CL_COMPILE_PROGRAM_FAILURE"; - case -16: return "CL_LINKER_NOT_AVAILABLE"; - case -17: return "CL_LINK_PROGRAM_FAILURE"; - case -18: return "CL_DEVICE_PARTITION_FAILED"; - case -19: return "CL_KERNEL_ARG_INFO_NOT_AVAILABLE"; - - // compile-time errors - case -30: return "CL_INVALID_VALUE"; - case -31: return "CL_INVALID_DEVICE_TYPE"; - case -32: return "CL_INVALID_PLATFORM"; - case -33: return "CL_INVALID_DEVICE"; - case -34: return "CL_INVALID_CONTEXT"; - case -35: return "CL_INVALID_QUEUE_PROPERTIES"; - case -36: return "CL_INVALID_COMMAND_QUEUE"; - case -37: return "CL_INVALID_HOST_PTR"; - case -38: return "CL_INVALID_MEM_OBJECT"; - case -39: return "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"; - case -40: return "CL_INVALID_IMAGE_SIZE"; - case -41: return "CL_INVALID_SAMPLER"; - case -42: return "CL_INVALID_BINARY"; - case -43: return "CL_INVALID_BUILD_OPTIONS"; - case -44: return "CL_INVALID_PROGRAM"; - case -45: return "CL_INVALID_PROGRAM_EXECUTABLE"; - case -46: return "CL_INVALID_KERNEL_NAME"; - case -47: return "CL_INVALID_KERNEL_DEFINITION"; - case -48: return "CL_INVALID_KERNEL"; - case -49: return "CL_INVALID_ARG_INDEX"; - case -50: return "CL_INVALID_ARG_VALUE"; - case -51: return "CL_INVALID_ARG_SIZE"; - case -52: return "CL_INVALID_KERNEL_ARGS"; - case -53: return "CL_INVALID_WORK_DIMENSION"; - case -54: return "CL_INVALID_WORK_GROUP_SIZE"; - case -55: return "CL_INVALID_WORK_ITEM_SIZE"; - case -56: return "CL_INVALID_GLOBAL_OFFSET"; - case -57: return "CL_INVALID_EVENT_WAIT_LIST"; - case -58: return "CL_INVALID_EVENT"; - case -59: return "CL_INVALID_OPERATION"; - case -60: return "CL_INVALID_GL_OBJECT"; - case -61: return "CL_INVALID_BUFFER_SIZE"; - case -62: return "CL_INVALID_MIP_LEVEL"; - case -63: return "CL_INVALID_GLOBAL_WORK_SIZE"; - case -64: return "CL_INVALID_PROPERTY"; - case -65: return "CL_INVALID_IMAGE_DESCRIPTOR"; - case -66: return "CL_INVALID_COMPILER_OPTIONS"; - case -67: return "CL_INVALID_LINKER_OPTIONS"; - case -68: return "CL_INVALID_DEVICE_PARTITION_COUNT"; - - // extension errors - case -1000: return "CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR"; - case -1001: return "CL_PLATFORM_NOT_FOUND_KHR"; - case -1002: return "CL_INVALID_D3D10_DEVICE_KHR"; - case -1003: return "CL_INVALID_D3D10_RESOURCE_KHR"; - case -1004: return "CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR"; - case -1005: return "CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR"; - default: return "Unknown OpenCL error"; - } -} - -void CheckError(cl_int error) -{ - if (error != CL_SUCCESS) { - std::cerr << "OpenCL call failed with error " << getErrorString(error) << std::endl; - std::exit(1); - } -} - -enum VerboseLevel -{ - VERBOSE_OFF, - VERBOSE_BRIEF, - VERBOSE_DETAILED, - VERBOSE_FULL -}; +#include "Utils.h" using namespace std; @@ -136,18 +15,11 @@ void print_help() cerr << " -h : print this message" << endl; } -//std::string source_code; - -void AddSources(cl::Program::Sources& sources, const std::string& file_name) { - std::string* source_code = new std::string(std::istreambuf_iterator(std::ifstream(file_name)), (std::istreambuf_iterator())); - sources.push_back(std::make_pair((*source_code).c_str(), source_code->length() + 1)); -} - int main(int argc, char **argv) { VerboseLevel verbose_level = VERBOSE_OFF; - int platform_id = 0; - int device_id = 0; + int platform_id = -1; + int device_id = -1; for (int i = 1; i < argc; i++) { @@ -157,71 +29,15 @@ int main(int argc, char **argv) else if (strcmp(argv[i], "-h") == 0) { print_help(); } } - vector platforms; - - if (verbose_level != VERBOSE_OFF) - { - try - { - cl::Platform::get(&platforms); - - cout << "Found " << platforms.size() << " platform(s):" << endl; - - for (unsigned int i = 0; i < platforms.size(); i++) - { - cout << "\n " << (i + 1) << ") " << platforms[i].getInfo() << ", version: " << platforms[i].getInfo(); - - if (verbose_level > VERBOSE_BRIEF) - cout << ", vendor: " << platforms[i].getInfo(); - - if (verbose_level > VERBOSE_DETAILED) - cout << ", profile: " << platforms[i].getInfo() << ", extensions: " << platforms[i].getInfo(); - - cout << endl; - - vector devices; - - platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); - - cout << "\tFound " << devices.size() << " device(s):" << endl; - - for (unsigned int j = 0; j < devices.size(); j++) - { - cout << "\t " << (j + 1) << ") " << devices[j].getInfo() << ", version: " << devices[j].getInfo(); - - if (verbose_level > VERBOSE_BRIEF) - { - cout << ", vendor: " << devices[j].getInfo(); - cl_device_type device_type = devices[j].getInfo(); - cout << ", type: "; - if (device_type & CL_DEVICE_TYPE_DEFAULT) - cerr << "DEFAULT "; - if (device_type & CL_DEVICE_TYPE_CPU) - cerr << "CPU "; - if (device_type & CL_DEVICE_TYPE_GPU) - cerr << "GPU "; - if (device_type & CL_DEVICE_TYPE_ACCELERATOR) - cerr << "ACCELERATOR "; - cout << ", compute units: " << devices[j].getInfo(); - } - - if (verbose_level > VERBOSE_DETAILED) - { - } - - cout << endl; - } - } - } - catch (cl::Error err) { - cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; - } - } + ListPlatformsDevices(verbose_level); + vector platforms; //select device cl::Device device; + cl::Context context(CL_DEVICE_TYPE_GPU); + try { cl::Platform::get(&platforms); @@ -233,8 +49,10 @@ int main(int argc, char **argv) for (unsigned int j = 0; j < devices.size(); j++) { - if ((i == platform_id) && (j == device_id)) + if ((i == platform_id) && (j == device_id)) { device = devices[j]; + context = cl::Context({ device }); + } break; } } @@ -243,7 +61,6 @@ int main(int argc, char **argv) cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; } - cl::Context context({ device }); cl::Program::Sources sources; @@ -253,7 +70,7 @@ int main(int argc, char **argv) try { - program.build({ device }); + program.build(); } catch (cl::Error err) { cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; @@ -270,7 +87,7 @@ int main(int argc, char **argv) cl::Buffer buffer_C(context, CL_MEM_READ_WRITE, sizeof(C)); //create queue to which we will push commands for the device. - cl::CommandQueue queue(context, device); + cl::CommandQueue queue(context); //write arrays A and B to the device queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, sizeof(A), A); @@ -280,8 +97,8 @@ int main(int argc, char **argv) kernel_add.setArg(0, buffer_A); kernel_add.setArg(1, buffer_B); kernel_add.setArg(2, buffer_C); - queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(sizeof(A) / sizeof(A[0])), cl::NullRange); + queue.finish(); queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, sizeof(C), C); diff --git a/VS/Tutorial1/Tutorial1/Tutorial1.vcxproj b/VS/Tutorial1/Tutorial1/Tutorial1.vcxproj index df48f42..c68a2f1 100644 --- a/VS/Tutorial1/Tutorial1/Tutorial1.vcxproj +++ b/VS/Tutorial1/Tutorial1/Tutorial1.vcxproj @@ -141,6 +141,9 @@ + + + diff --git a/VS/Tutorial1/Tutorial1/Utils.h b/VS/Tutorial1/Tutorial1/Utils.h new file mode 100644 index 0000000..86d43ee --- /dev/null +++ b/VS/Tutorial1/Tutorial1/Utils.h @@ -0,0 +1,195 @@ +#pragma once + +#include +#include +#include + +#define __CL_ENABLE_EXCEPTIONS +#include "CL\cl.hpp" + +std::string GetPlatformName(cl_platform_id id) +{ + size_t size = 0; + clGetPlatformInfo(id, CL_PLATFORM_NAME, 0, nullptr, &size); + + std::string result; + result.resize(size); + clGetPlatformInfo(id, CL_PLATFORM_NAME, size, + const_cast (result.data()), nullptr); + + return result; +} + +std::string GetDeviceName(cl_device_id id) +{ + size_t size = 0; + clGetDeviceInfo(id, CL_DEVICE_NAME, 0, nullptr, &size); + + std::string result; + result.resize(size); + clGetDeviceInfo(id, CL_DEVICE_NAME, size, + const_cast (result.data()), nullptr); + + return result; +} + +const char *getErrorString(cl_int error) +{ + switch (error){ + // run-time and JIT compiler errors + case 0: return "CL_SUCCESS"; + case -1: return "CL_DEVICE_NOT_FOUND"; + case -2: return "CL_DEVICE_NOT_AVAILABLE"; + case -3: return "CL_COMPILER_NOT_AVAILABLE"; + case -4: return "CL_MEM_OBJECT_ALLOCATION_FAILURE"; + case -5: return "CL_OUT_OF_RESOURCES"; + case -6: return "CL_OUT_OF_HOST_MEMORY"; + case -7: return "CL_PROFILING_INFO_NOT_AVAILABLE"; + case -8: return "CL_MEM_COPY_OVERLAP"; + case -9: return "CL_IMAGE_FORMAT_MISMATCH"; + case -10: return "CL_IMAGE_FORMAT_NOT_SUPPORTED"; + case -11: return "CL_BUILD_PROGRAM_FAILURE"; + case -12: return "CL_MAP_FAILURE"; + case -13: return "CL_MISALIGNED_SUB_BUFFER_OFFSET"; + case -14: return "CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"; + case -15: return "CL_COMPILE_PROGRAM_FAILURE"; + case -16: return "CL_LINKER_NOT_AVAILABLE"; + case -17: return "CL_LINK_PROGRAM_FAILURE"; + case -18: return "CL_DEVICE_PARTITION_FAILED"; + case -19: return "CL_KERNEL_ARG_INFO_NOT_AVAILABLE"; + + // compile-time errors + case -30: return "CL_INVALID_VALUE"; + case -31: return "CL_INVALID_DEVICE_TYPE"; + case -32: return "CL_INVALID_PLATFORM"; + case -33: return "CL_INVALID_DEVICE"; + case -34: return "CL_INVALID_CONTEXT"; + case -35: return "CL_INVALID_QUEUE_PROPERTIES"; + case -36: return "CL_INVALID_COMMAND_QUEUE"; + case -37: return "CL_INVALID_HOST_PTR"; + case -38: return "CL_INVALID_MEM_OBJECT"; + case -39: return "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"; + case -40: return "CL_INVALID_IMAGE_SIZE"; + case -41: return "CL_INVALID_SAMPLER"; + case -42: return "CL_INVALID_BINARY"; + case -43: return "CL_INVALID_BUILD_OPTIONS"; + case -44: return "CL_INVALID_PROGRAM"; + case -45: return "CL_INVALID_PROGRAM_EXECUTABLE"; + case -46: return "CL_INVALID_KERNEL_NAME"; + case -47: return "CL_INVALID_KERNEL_DEFINITION"; + case -48: return "CL_INVALID_KERNEL"; + case -49: return "CL_INVALID_ARG_INDEX"; + case -50: return "CL_INVALID_ARG_VALUE"; + case -51: return "CL_INVALID_ARG_SIZE"; + case -52: return "CL_INVALID_KERNEL_ARGS"; + case -53: return "CL_INVALID_WORK_DIMENSION"; + case -54: return "CL_INVALID_WORK_GROUP_SIZE"; + case -55: return "CL_INVALID_WORK_ITEM_SIZE"; + case -56: return "CL_INVALID_GLOBAL_OFFSET"; + case -57: return "CL_INVALID_EVENT_WAIT_LIST"; + case -58: return "CL_INVALID_EVENT"; + case -59: return "CL_INVALID_OPERATION"; + case -60: return "CL_INVALID_GL_OBJECT"; + case -61: return "CL_INVALID_BUFFER_SIZE"; + case -62: return "CL_INVALID_MIP_LEVEL"; + case -63: return "CL_INVALID_GLOBAL_WORK_SIZE"; + case -64: return "CL_INVALID_PROPERTY"; + case -65: return "CL_INVALID_IMAGE_DESCRIPTOR"; + case -66: return "CL_INVALID_COMPILER_OPTIONS"; + case -67: return "CL_INVALID_LINKER_OPTIONS"; + case -68: return "CL_INVALID_DEVICE_PARTITION_COUNT"; + + // extension errors + case -1000: return "CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR"; + case -1001: return "CL_PLATFORM_NOT_FOUND_KHR"; + case -1002: return "CL_INVALID_D3D10_DEVICE_KHR"; + case -1003: return "CL_INVALID_D3D10_RESOURCE_KHR"; + case -1004: return "CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR"; + case -1005: return "CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR"; + default: return "Unknown OpenCL error"; + } +} + +void CheckError(cl_int error) +{ + if (error != CL_SUCCESS) { + std::cerr << "OpenCL call failed with error " << getErrorString(error) << std::endl; + std::exit(1); + } +} + +enum VerboseLevel +{ + VERBOSE_OFF, + VERBOSE_BRIEF, + VERBOSE_DETAILED, + VERBOSE_FULL +}; + +void AddSources(cl::Program::Sources& sources, const std::string& file_name) { + std::string* source_code = new std::string(std::istreambuf_iterator(std::ifstream(file_name)), (std::istreambuf_iterator())); + sources.push_back(std::make_pair((*source_code).c_str(), source_code->length() + 1)); +} + +void ListPlatformsDevices(VerboseLevel verbose_level) { + std::vector platforms; + + if (verbose_level != VERBOSE_OFF) + { + try + { + cl::Platform::get(&platforms); + + std::cout << "Found " << platforms.size() << " platform(s):" << std::endl; + + for (unsigned int i = 0; i < platforms.size(); i++) + { + std::cout << "\n " << (i + 1) << ") " << platforms[i].getInfo() << ", version: " << platforms[i].getInfo(); + + if (verbose_level > VERBOSE_BRIEF) + std::cout << ", vendor: " << platforms[i].getInfo(); + + if (verbose_level > VERBOSE_DETAILED) + std::cout << ", profile: " << platforms[i].getInfo() << ", extensions: " << platforms[i].getInfo(); + + std::cout << std::endl; + + std::vector devices; + + platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); + + std::cout << "\tFound " << devices.size() << " device(s):" << std::endl; + + for (unsigned int j = 0; j < devices.size(); j++) + { + std::cout << "\t " << (j + 1) << ") " << devices[j].getInfo() << ", version: " << devices[j].getInfo(); + + if (verbose_level > VERBOSE_BRIEF) + { + std::cout << ", vendor: " << devices[j].getInfo(); + cl_device_type device_type = devices[j].getInfo(); + std::cout << ", type: "; + if (device_type & CL_DEVICE_TYPE_DEFAULT) + std::cout << "DEFAULT "; + if (device_type & CL_DEVICE_TYPE_CPU) + std::cout << "CPU "; + if (device_type & CL_DEVICE_TYPE_GPU) + std::cout << "GPU "; + if (device_type & CL_DEVICE_TYPE_ACCELERATOR) + std::cout << "ACCELERATOR "; + std::cout << ", compute units: " << devices[j].getInfo(); + } + + if (verbose_level > VERBOSE_DETAILED) + { + } + + std::cout << std::endl; + } + } + } + catch (cl::Error err) { + std::cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << std::endl; + } + } +} From 8ec55d1147731327e665af613cfb0c01d24d3f4a Mon Sep 17 00:00:00 2001 From: gcielniak Date: Thu, 5 Nov 2015 16:42:17 +0000 Subject: [PATCH 09/97] Device/platform selection + simple profiling --- VS/Tutorial1/Tutorial1/Tutorial1.cpp | 72 ++++++++++------------------ VS/Tutorial1/Tutorial1/Utils.h | 20 ++++++++ 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/VS/Tutorial1/Tutorial1/Tutorial1.cpp b/VS/Tutorial1/Tutorial1/Tutorial1.cpp index 96ee1fc..bed2829 100644 --- a/VS/Tutorial1/Tutorial1/Tutorial1.cpp +++ b/VS/Tutorial1/Tutorial1/Tutorial1.cpp @@ -1,4 +1,5 @@ #include +#include #include #define __CL_ENABLE_EXCEPTIONS @@ -17,7 +18,6 @@ void print_help() int main(int argc, char **argv) { - VerboseLevel verbose_level = VERBOSE_OFF; int platform_id = -1; int device_id = -1; @@ -25,42 +25,11 @@ int main(int argc, char **argv) { if ((strcmp(argv[i], "-p") == 0) && (i < (argc - 1))) { platform_id = atoi(argv[++i]); } else if ((strcmp(argv[i], "-d") == 0) && (i < (argc - 1))) { device_id = atoi(argv[++i]); } - else if ((strcmp(argv[i], "-v") == 0) && (i < (argc - 1))) { verbose_level = (VerboseLevel)atoi(argv[++i]); } + else if ((strcmp(argv[i], "-v") == 0) && (i < (argc - 1))) { ListPlatformsDevices((VerboseLevel)atoi(argv[++i])); } else if (strcmp(argv[i], "-h") == 0) { print_help(); } } - ListPlatformsDevices(verbose_level); - - vector platforms; - - //select device - cl::Device device; - - cl::Context context(CL_DEVICE_TYPE_GPU); - - try - { - cl::Platform::get(&platforms); - - for (unsigned int i = 0; i < platforms.size(); i++) - { - vector devices; - platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); - - for (unsigned int j = 0; j < devices.size(); j++) - { - if ((i == platform_id) && (j == device_id)) { - device = devices[j]; - context = cl::Context({ device }); - } - break; - } - } - } - catch (cl::Error err) { - cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; - } - + cl::Context context = GetContext(platform_id, device_id); cl::Program::Sources sources; @@ -74,39 +43,50 @@ int main(int argc, char **argv) } catch (cl::Error err) { cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; + return 0; } //host buffers - int A[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - int B[] = { 0, 1, 2, 0, 1, 2, 0, 1, 2, 0 }; - int C[sizeof(A) / sizeof(A[0])]; + //input + std::vector A = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //C++11 allows this type of initialisation + std::vector B = { 0, 1, 2, 0, 1, 2, 0, 1, 2, 0 }; + + //output + std::vector C(A.size()); // create buffers on the device - cl::Buffer buffer_A(context, CL_MEM_READ_WRITE, sizeof(A)); - cl::Buffer buffer_B(context, CL_MEM_READ_WRITE, sizeof(B)); - cl::Buffer buffer_C(context, CL_MEM_READ_WRITE, sizeof(C)); + cl::Buffer buffer_A(context, CL_MEM_READ_WRITE, A.size()*sizeof(int)); + cl::Buffer buffer_B(context, CL_MEM_READ_WRITE, B.size()*sizeof(int)); + cl::Buffer buffer_C(context, CL_MEM_READ_WRITE, C.size()*sizeof(int)); //create queue to which we will push commands for the device. - cl::CommandQueue queue(context); + cl::CommandQueue queue(context, CL_QUEUE_PROFILING_ENABLE); //write arrays A and B to the device - queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, sizeof(A), A); - queue.enqueueWriteBuffer(buffer_B, CL_TRUE, 0, sizeof(B), B); + queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, A.size()*sizeof(int), &A[0]); + queue.enqueueWriteBuffer(buffer_B, CL_TRUE, 0, B.size()*sizeof(int), &B[0]); + + cl::Event evt; cl::Kernel kernel_add = cl::Kernel(program, "simple_add"); kernel_add.setArg(0, buffer_A); kernel_add.setArg(1, buffer_B); kernel_add.setArg(2, buffer_C); - queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(sizeof(A) / sizeof(A[0])), cl::NullRange); + queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange, NULL, &evt); queue.finish(); - queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, sizeof(C), C); + queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, C.size()*sizeof(int), &C[0]); + + evt.wait(); std::cout << " result: \n"; - for (int i = 0; i<10; i++){ + for (int i = 0; i < C.size(); i++){ std::cout << C[i] << " "; } + cout << endl; + + cerr << "Time elapsed: " << evt.getProfilingInfo() - evt.getProfilingInfo() << " ns" << endl; return 0; } \ No newline at end of file diff --git a/VS/Tutorial1/Tutorial1/Utils.h b/VS/Tutorial1/Tutorial1/Utils.h index 86d43ee..05603ef 100644 --- a/VS/Tutorial1/Tutorial1/Utils.h +++ b/VS/Tutorial1/Tutorial1/Utils.h @@ -193,3 +193,23 @@ void ListPlatformsDevices(VerboseLevel verbose_level) { } } } + +cl::Context GetContext(int platform_id, int device_id) { + std::vector platforms; + + cl::Platform::get(&platforms); + + for (unsigned int i = 0; i < platforms.size(); i++) + { + std::vector devices; + platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); + + for (unsigned int j = 0; j < devices.size(); j++) + { + if ((i == platform_id) && (j == device_id)) + return cl::Context({ devices[j] }); + } + } + + return cl::Context(); +} From 27f57d32b2ca0b504d1b300c087665691f6ff62f Mon Sep 17 00:00:00 2001 From: gcielniak Date: Fri, 11 Dec 2015 15:32:06 +0000 Subject: [PATCH 10/97] 32 bit project - easier debugging --- VS/OpenCL Tutorial 1/OpenCL Tutorial 1.sln | 22 +++ .../Tutorial1/CL/cl.hpp | 0 .../Tutorial1/Tutorial1.cpp | 16 +- .../Tutorial1/Tutorial1.vcxproj | 85 ++++++++++ .../Tutorial1/Utils.h | 1 + .../Tutorial1/kernels/simple_add.cl | 0 VS/Tutorial1/Tutorial1.sln | 22 --- VS/Tutorial1/Tutorial1/Tutorial1.vcxproj | 150 ------------------ 8 files changed, 115 insertions(+), 181 deletions(-) create mode 100644 VS/OpenCL Tutorial 1/OpenCL Tutorial 1.sln rename VS/{Tutorial1 => OpenCL Tutorial 1}/Tutorial1/CL/cl.hpp (100%) rename VS/{Tutorial1 => OpenCL Tutorial 1}/Tutorial1/Tutorial1.cpp (95%) create mode 100644 VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj rename VS/{Tutorial1 => OpenCL Tutorial 1}/Tutorial1/Utils.h (99%) rename VS/{Tutorial1 => OpenCL Tutorial 1}/Tutorial1/kernels/simple_add.cl (100%) delete mode 100644 VS/Tutorial1/Tutorial1.sln delete mode 100644 VS/Tutorial1/Tutorial1/Tutorial1.vcxproj diff --git a/VS/OpenCL Tutorial 1/OpenCL Tutorial 1.sln b/VS/OpenCL Tutorial 1/OpenCL Tutorial 1.sln new file mode 100644 index 0000000..5ebc124 --- /dev/null +++ b/VS/OpenCL Tutorial 1/OpenCL Tutorial 1.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.30723.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial 1", "Tutorial1\Tutorial1.vcxproj", "{D1B684F7-2962-4A16-AFA1-3557BF51A62D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D1B684F7-2962-4A16-AFA1-3557BF51A62D}.Debug|Win32.ActiveCfg = Debug|Win32 + {D1B684F7-2962-4A16-AFA1-3557BF51A62D}.Debug|Win32.Build.0 = Debug|Win32 + {D1B684F7-2962-4A16-AFA1-3557BF51A62D}.Release|Win32.ActiveCfg = Release|Win32 + {D1B684F7-2962-4A16-AFA1-3557BF51A62D}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/VS/Tutorial1/Tutorial1/CL/cl.hpp b/VS/OpenCL Tutorial 1/Tutorial1/CL/cl.hpp similarity index 100% rename from VS/Tutorial1/Tutorial1/CL/cl.hpp rename to VS/OpenCL Tutorial 1/Tutorial1/CL/cl.hpp diff --git a/VS/Tutorial1/Tutorial1/Tutorial1.cpp b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp similarity index 95% rename from VS/Tutorial1/Tutorial1/Tutorial1.cpp rename to VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp index bed2829..da4c297 100644 --- a/VS/Tutorial1/Tutorial1/Tutorial1.cpp +++ b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp @@ -18,11 +18,10 @@ void print_help() int main(int argc, char **argv) { - int platform_id = -1; - int device_id = -1; + int platform_id = 0; + int device_id = 0; - for (int i = 1; i < argc; i++) - { + for (int i = 1; i < argc; i++) { if ((strcmp(argv[i], "-p") == 0) && (i < (argc - 1))) { platform_id = atoi(argv[++i]); } else if ((strcmp(argv[i], "-d") == 0) && (i < (argc - 1))) { device_id = atoi(argv[++i]); } else if ((strcmp(argv[i], "-v") == 0) && (i < (argc - 1))) { ListPlatformsDevices((VerboseLevel)atoi(argv[++i])); } @@ -37,8 +36,7 @@ int main(int argc, char **argv) cl::Program program(context, sources); - try - { + try { program.build(); } catch (cl::Error err) { @@ -76,12 +74,12 @@ int main(int argc, char **argv) queue.finish(); - queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, C.size()*sizeof(int), &C[0]); - evt.wait(); + queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, C.size()*sizeof(int), &C[0]); + std::cout << " result: \n"; - for (int i = 0; i < C.size(); i++){ + for (unsigned int i = 0; i < C.size(); i++){ std::cout << C[i] << " "; } cout << endl; diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj new file mode 100644 index 0000000..ef7ab2d --- /dev/null +++ b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj @@ -0,0 +1,85 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {D1B684F7-2962-4A16-AFA1-3557BF51A62D} + Project1 + Tutorial 1 + + + + Application + true + v120 + MultiByte + + + Application + false + v120 + true + MultiByte + + + + + + + + + + + + + + + Level3 + Disabled + true + $(CUDA_PATH)\include + + + true + $(CUDA_PATH)\lib\$(Platform) + OpenCL.lib;%(AdditionalDependencies) + + + %systemroot%\System32\xcopy "$(ProjectDir)kernels" "$(TargetDir)kernels" /E /Y /I + + + + + Level3 + MaxSpeed + true + true + true + + + true + true + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VS/Tutorial1/Tutorial1/Utils.h b/VS/OpenCL Tutorial 1/Tutorial1/Utils.h similarity index 99% rename from VS/Tutorial1/Tutorial1/Utils.h rename to VS/OpenCL Tutorial 1/Tutorial1/Utils.h index 05603ef..af0077c 100644 --- a/VS/Tutorial1/Tutorial1/Utils.h +++ b/VS/OpenCL Tutorial 1/Tutorial1/Utils.h @@ -127,6 +127,7 @@ enum VerboseLevel }; void AddSources(cl::Program::Sources& sources, const std::string& file_name) { + //TODO: add file existence check std::string* source_code = new std::string(std::istreambuf_iterator(std::ifstream(file_name)), (std::istreambuf_iterator())); sources.push_back(std::make_pair((*source_code).c_str(), source_code->length() + 1)); } diff --git a/VS/Tutorial1/Tutorial1/kernels/simple_add.cl b/VS/OpenCL Tutorial 1/Tutorial1/kernels/simple_add.cl similarity index 100% rename from VS/Tutorial1/Tutorial1/kernels/simple_add.cl rename to VS/OpenCL Tutorial 1/Tutorial1/kernels/simple_add.cl diff --git a/VS/Tutorial1/Tutorial1.sln b/VS/Tutorial1/Tutorial1.sln deleted file mode 100644 index db23609..0000000 --- a/VS/Tutorial1/Tutorial1.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial1", "Tutorial1\Tutorial1.vcxproj", "{B9237F83-0D5A-4737-B260-24D4630C7173}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B9237F83-0D5A-4737-B260-24D4630C7173}.Debug|x64.ActiveCfg = Release|x64 - {B9237F83-0D5A-4737-B260-24D4630C7173}.Debug|x64.Build.0 = Release|x64 - {B9237F83-0D5A-4737-B260-24D4630C7173}.Release|x64.ActiveCfg = Debug|x64 - {B9237F83-0D5A-4737-B260-24D4630C7173}.Release|x64.Build.0 = Debug|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/VS/Tutorial1/Tutorial1/Tutorial1.vcxproj b/VS/Tutorial1/Tutorial1/Tutorial1.vcxproj deleted file mode 100644 index c68a2f1..0000000 --- a/VS/Tutorial1/Tutorial1/Tutorial1.vcxproj +++ /dev/null @@ -1,150 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {B9237F83-0D5A-4737-B260-24D4630C7173} - Tutorial1 - - - - Application - true - v120 - MultiByte - - - Application - true - v120 - MultiByte - - - Application - false - v120 - true - MultiByte - - - Application - false - v120 - true - MultiByte - - - - - - - - - - - - - - - - - - - - - Level3 - Disabled - true - $(CUDA_PATH)\include - - - true - $(CUDA_PATH)\lib\$(Platform) - OpenCL.lib;%(AdditionalDependencies) - - - xcopy kernels $(TargetDir)\kernels /E /Y /I - - - - - Level3 - Disabled - true - $(CUDA_PATH)\include - - - true - $(CUDA_PATH)\lib\$(Platform) - OpenCL.lib;%(AdditionalDependencies) - - - %systemroot%\System32\xcopy kernels $(TargetDir)\kernels /E /Y /I - - - - - Level3 - MaxSpeed - true - true - true - $(CUDA_PATH)\include - - - true - true - true - OpenCL.lib;%(AdditionalDependencies) - $(CUDA_PATH)\lib\$(Platform) - - - xcopy kernels $(TargetDir)\kernels /E /Y /I - - - - - Level3 - MaxSpeed - true - true - true - $(CUDA_PATH)\include - - - true - true - true - OpenCL.lib;%(AdditionalDependencies) - $(CUDA_PATH)\lib\$(Platform) - - - %systemroot%\System32\xcopy kernels $(TargetDir)\kernels /E /Y /I - - - - - - - - - - - - \ No newline at end of file From 72a365c98b14a5fb5053d307675f41ace0d15bf1 Mon Sep 17 00:00:00 2001 From: gcielniak Date: Fri, 18 Dec 2015 17:32:17 +0000 Subject: [PATCH 11/97] Basic Tutorial cont. --- VS/OpenCL Tutorial 1/Tutorial1/Addons.h | 11 +++++ VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp | 49 ++++++++++--------- .../Tutorial1/Tutorial1.vcxproj | 1 + VS/OpenCL Tutorial 1/Tutorial1/Utils.h | 8 +-- 4 files changed, 43 insertions(+), 26 deletions(-) create mode 100644 VS/OpenCL Tutorial 1/Tutorial1/Addons.h diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Addons.h b/VS/OpenCL Tutorial 1/Tutorial1/Addons.h new file mode 100644 index 0000000..fa6af52 --- /dev/null +++ b/VS/OpenCL Tutorial 1/Tutorial1/Addons.h @@ -0,0 +1,11 @@ +#pragma once + +template +std::ostream& operator<< (std::ostream& out, const std::vector& v) { + if (!v.empty()) { + out << '['; + std::copy(v.begin(), v.end(), std::ostream_iterator(out, ", ")); + out << "\b\b]"; + } + return out; +} \ No newline at end of file diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp index da4c297..9e94b23 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp +++ b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp @@ -5,6 +5,7 @@ #define __CL_ENABLE_EXCEPTIONS #include "CL\cl.hpp" #include "Utils.h" +#include "Addons.h" using namespace std; @@ -12,15 +13,18 @@ void print_help() { cerr << "OpenCLTutorial usage:" << endl; - cerr << " -v : verbose level [0, 1, 2, 3]" << endl; + cerr << " -p : select platform " << endl; + cerr << " -d : select device" << endl; + cerr << " -v : list all platforms and devices, verbose level [0, 1, 2, 3]" << endl; cerr << " -h : print this message" << endl; } int main(int argc, char **argv) { + //Part 1 - handle command line options such as device selection, verbosity, etc. int platform_id = 0; int device_id = 0; - + for (int i = 1; i < argc; i++) { if ((strcmp(argv[i], "-p") == 0) && (i < (argc - 1))) { platform_id = atoi(argv[++i]); } else if ((strcmp(argv[i], "-d") == 0) && (i < (argc - 1))) { device_id = atoi(argv[++i]); } @@ -28,8 +32,15 @@ int main(int argc, char **argv) else if (strcmp(argv[i], "-h") == 0) { print_help(); } } + //Part 2 - host operations + + //2.1 Select computing devices cl::Context context = GetContext(platform_id, device_id); + + //create a queue to which we will push commands for the device + cl::CommandQueue queue(context); + //2.2 Load & build the device code cl::Program::Sources sources; AddSources(sources, "kernels/simple_add.cl"); @@ -44,47 +55,39 @@ int main(int argc, char **argv) return 0; } - //host buffers - //input + //Part 4 - memory allocation + //host - input std::vector A = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //C++11 allows this type of initialisation std::vector B = { 0, 1, 2, 0, 1, 2, 0, 1, 2, 0 }; - - //output + //host - output std::vector C(A.size()); - // create buffers on the device + //device - buffers cl::Buffer buffer_A(context, CL_MEM_READ_WRITE, A.size()*sizeof(int)); cl::Buffer buffer_B(context, CL_MEM_READ_WRITE, B.size()*sizeof(int)); cl::Buffer buffer_C(context, CL_MEM_READ_WRITE, C.size()*sizeof(int)); - //create queue to which we will push commands for the device. - cl::CommandQueue queue(context, CL_QUEUE_PROFILING_ENABLE); + //Part 5 - device operations - //write arrays A and B to the device + //5.1 Copy arrays A and B to device memory queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, A.size()*sizeof(int), &A[0]); queue.enqueueWriteBuffer(buffer_B, CL_TRUE, 0, B.size()*sizeof(int), &B[0]); - cl::Event evt; - + //5.2 Execute the device code (i.e. run the kernel) cl::Kernel kernel_add = cl::Kernel(program, "simple_add"); kernel_add.setArg(0, buffer_A); kernel_add.setArg(1, buffer_B); kernel_add.setArg(2, buffer_C); - queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange, NULL, &evt); - - queue.finish(); + queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange, NULL); - evt.wait(); + queue.finish();//wait until all processing is finished + //5.3 Copy the result from device to host queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, C.size()*sizeof(int), &C[0]); - std::cout << " result: \n"; - for (unsigned int i = 0; i < C.size(); i++){ - std::cout << C[i] << " "; - } - cout << endl; - - cerr << "Time elapsed: " << evt.getProfilingInfo() - evt.getProfilingInfo() << " ns" << endl; + std::cout << "A = : " << A << endl; + std::cout << "B = : " << B << endl; + std::cout << "C = : " << C << endl; return 0; } \ No newline at end of file diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj index ef7ab2d..e9fc8d9 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj +++ b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj @@ -74,6 +74,7 @@ + diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Utils.h b/VS/OpenCL Tutorial 1/Tutorial1/Utils.h index af0077c..adf34d7 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Utils.h +++ b/VS/OpenCL Tutorial 1/Tutorial1/Utils.h @@ -137,6 +137,7 @@ void ListPlatformsDevices(VerboseLevel verbose_level) { if (verbose_level != VERBOSE_OFF) { + std::cout << "----------------------------------------------------------------" << std::endl; try { cl::Platform::get(&platforms); @@ -145,7 +146,7 @@ void ListPlatformsDevices(VerboseLevel verbose_level) { for (unsigned int i = 0; i < platforms.size(); i++) { - std::cout << "\n " << (i + 1) << ") " << platforms[i].getInfo() << ", version: " << platforms[i].getInfo(); + std::cout << "\nPlatform " << i << ", " << platforms[i].getInfo() << ", version: " << platforms[i].getInfo(); if (verbose_level > VERBOSE_BRIEF) std::cout << ", vendor: " << platforms[i].getInfo(); @@ -159,11 +160,11 @@ void ListPlatformsDevices(VerboseLevel verbose_level) { platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); - std::cout << "\tFound " << devices.size() << " device(s):" << std::endl; + std::cout << "\n Found " << devices.size() << " device(s):" << std::endl; for (unsigned int j = 0; j < devices.size(); j++) { - std::cout << "\t " << (j + 1) << ") " << devices[j].getInfo() << ", version: " << devices[j].getInfo(); + std::cout << "\n Device " << j << ", " << devices[j].getInfo() << ", version: " << devices[j].getInfo(); if (verbose_level > VERBOSE_BRIEF) { @@ -188,6 +189,7 @@ void ListPlatformsDevices(VerboseLevel verbose_level) { std::cout << std::endl; } } + std::cout << "----------------------------------------------------------------" << std::endl; } catch (cl::Error err) { std::cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << std::endl; From 5ff16d6b20c86bf023a0be532becbd8b0201d156 Mon Sep 17 00:00:00 2001 From: gcielniak Date: Tue, 5 Jan 2016 17:25:23 +0000 Subject: [PATCH 12/97] Simple profiling added --- VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp | 20 +++++-- VS/OpenCL Tutorial 1/Tutorial1/Utils.h | 57 +++++++++++++------- 2 files changed, 52 insertions(+), 25 deletions(-) diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp index 9e94b23..ab9ecf9 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp +++ b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp @@ -15,7 +15,7 @@ void print_help() cerr << " -p : select platform " << endl; cerr << " -d : select device" << endl; - cerr << " -v : list all platforms and devices, verbose level [0, 1, 2, 3]" << endl; + cerr << " -l : list all platforms and devices, verbose level [0, 1, 2, 3]" << endl; cerr << " -h : print this message" << endl; } @@ -28,17 +28,20 @@ int main(int argc, char **argv) for (int i = 1; i < argc; i++) { if ((strcmp(argv[i], "-p") == 0) && (i < (argc - 1))) { platform_id = atoi(argv[++i]); } else if ((strcmp(argv[i], "-d") == 0) && (i < (argc - 1))) { device_id = atoi(argv[++i]); } - else if ((strcmp(argv[i], "-v") == 0) && (i < (argc - 1))) { ListPlatformsDevices((VerboseLevel)atoi(argv[++i])); } + else if ((strcmp(argv[i], "-l") == 0) && (i < (argc - 1))) { ListPlatformsDevices((VerboseLevel)atoi(argv[++i])); } else if (strcmp(argv[i], "-h") == 0) { print_help(); } } //Part 2 - host operations - //2.1 Select computing devices cl::Context context = GetContext(platform_id, device_id); + //display the selected device + cout << "Runinng on: " << GetPlatformName(platform_id) << ", " << GetDeviceName(platform_id, device_id) << endl; + //create a queue to which we will push commands for the device - cl::CommandQueue queue(context); +// cl::CommandQueue queue(context); + cl::CommandQueue queue(context, CL_QUEUE_PROFILING_ENABLE); //2.2 Load & build the device code cl::Program::Sources sources; @@ -78,10 +81,15 @@ int main(int argc, char **argv) kernel_add.setArg(0, buffer_A); kernel_add.setArg(1, buffer_B); kernel_add.setArg(2, buffer_C); - queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange, NULL); + + cl::Event prof_event; +// queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange); + queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange, NULL, &prof_event); queue.finish();//wait until all processing is finished + prof_event.wait(); //wait until all measurements are preformed + //5.3 Copy the result from device to host queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, C.size()*sizeof(int), &C[0]); @@ -89,5 +97,7 @@ int main(int argc, char **argv) std::cout << "B = : " << B << endl; std::cout << "C = : " << C << endl; + std::cout << GetFullProfilingInfo(prof_event, ProfilingResolution::PROF_US) << endl; + return 0; } \ No newline at end of file diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Utils.h b/VS/OpenCL Tutorial 1/Tutorial1/Utils.h index adf34d7..073cbba 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Utils.h +++ b/VS/OpenCL Tutorial 1/Tutorial1/Utils.h @@ -3,34 +3,25 @@ #include #include #include +#include #define __CL_ENABLE_EXCEPTIONS #include "CL\cl.hpp" -std::string GetPlatformName(cl_platform_id id) +std::string GetPlatformName(int platform_id) { - size_t size = 0; - clGetPlatformInfo(id, CL_PLATFORM_NAME, 0, nullptr, &size); - - std::string result; - result.resize(size); - clGetPlatformInfo(id, CL_PLATFORM_NAME, size, - const_cast (result.data()), nullptr); - - return result; + std::vector platforms; + cl::Platform::get(&platforms); + return platforms[platform_id].getInfo(); } -std::string GetDeviceName(cl_device_id id) +std::string GetDeviceName(int platform_id, int device_id) { - size_t size = 0; - clGetDeviceInfo(id, CL_DEVICE_NAME, 0, nullptr, &size); - - std::string result; - result.resize(size); - clGetDeviceInfo(id, CL_DEVICE_NAME, size, - const_cast (result.data()), nullptr); - - return result; + std::vector platforms; + cl::Platform::get(&platforms); + std::vector devices; + platforms[platform_id].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); + return devices[device_id].getInfo(); } const char *getErrorString(cl_int error) @@ -216,3 +207,29 @@ cl::Context GetContext(int platform_id, int device_id) { return cl::Context(); } + +enum ProfilingResolution { + PROF_NS = 1, + PROF_US = 1000, + PROF_MS = 1000000, + PROF_S = 1000000000 +}; + +std::string GetFullProfilingInfo(const cl::Event& evnt, ProfilingResolution resolution) { + std::stringstream sstream; + + sstream << "Queued " << (evnt.getProfilingInfo() - evnt.getProfilingInfo()) / resolution; + sstream << ", Submitted " << (evnt.getProfilingInfo() - evnt.getProfilingInfo()) / resolution; + sstream << ", Executed " << (evnt.getProfilingInfo() - evnt.getProfilingInfo()) / resolution; + sstream << ", Total " << (evnt.getProfilingInfo() - evnt.getProfilingInfo()) / resolution; + + switch (resolution) { + case PROF_NS: sstream << " [ns]"; break; + case PROF_US: sstream << " [us]"; break; + case PROF_MS: sstream << " [ms]"; break; + case PROF_S: sstream << " [s]"; break; + default: break; + } + + return sstream.str(); +} \ No newline at end of file From 6f933668b4ec71eda9fbe3bd651e2bc0f17486d8 Mon Sep 17 00:00:00 2001 From: gcielniak Date: Tue, 5 Jan 2016 22:34:25 +0000 Subject: [PATCH 13/97] Memory profiling --- VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp | 106 +++++++++--------- .../Tutorial1/Tutorial1.vcxproj | 6 + VS/OpenCL Tutorial 1/Tutorial1/Utils.h | 96 ++++++---------- 3 files changed, 97 insertions(+), 111 deletions(-) diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp index ab9ecf9..ac3ec88 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp +++ b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp @@ -24,80 +24,84 @@ int main(int argc, char **argv) //Part 1 - handle command line options such as device selection, verbosity, etc. int platform_id = 0; int device_id = 0; - + for (int i = 1; i < argc; i++) { if ((strcmp(argv[i], "-p") == 0) && (i < (argc - 1))) { platform_id = atoi(argv[++i]); } else if ((strcmp(argv[i], "-d") == 0) && (i < (argc - 1))) { device_id = atoi(argv[++i]); } - else if ((strcmp(argv[i], "-l") == 0) && (i < (argc - 1))) { ListPlatformsDevices((VerboseLevel)atoi(argv[++i])); } + else if (strcmp(argv[i], "-l") == 0) { cout << ListPlatformsDevices() << endl; } else if (strcmp(argv[i], "-h") == 0) { print_help(); } } - //Part 2 - host operations - //2.1 Select computing devices - cl::Context context = GetContext(platform_id, device_id); - //display the selected device - - cout << "Runinng on: " << GetPlatformName(platform_id) << ", " << GetDeviceName(platform_id, device_id) << endl; + //detect any potential exceptions + try { + + //Part 2 - host operations + //2.1 Select computing devices + cl::Context context = GetContext(platform_id, device_id); + + //display the selected device + cout << "Runinng on " << GetPlatformName(platform_id) << ", " << GetDeviceName(platform_id, device_id) << endl; - //create a queue to which we will push commands for the device -// cl::CommandQueue queue(context); - cl::CommandQueue queue(context, CL_QUEUE_PROFILING_ENABLE); + //create a queue to which we will push commands for the device + // cl::CommandQueue queue(context); + cl::CommandQueue queue(context, CL_QUEUE_PROFILING_ENABLE); - //2.2 Load & build the device code - cl::Program::Sources sources; + //2.2 Load & build the device code + cl::Program::Sources sources; - AddSources(sources, "kernels/simple_add.cl"); + AddSources(sources, "kernels/simple_add.cl"); - cl::Program program(context, sources); + cl::Program program(context, sources); - try { program.build(); - } - catch (cl::Error err) { - cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << endl; - return 0; - } - //Part 4 - memory allocation - //host - input - std::vector A = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //C++11 allows this type of initialisation - std::vector B = { 0, 1, 2, 0, 1, 2, 0, 1, 2, 0 }; - //host - output - std::vector C(A.size()); + //Part 4 - memory allocation + //host - input + std::vector A(40000000); + std::vector B(40000000); + //host - output + std::vector C(A.size()); - //device - buffers - cl::Buffer buffer_A(context, CL_MEM_READ_WRITE, A.size()*sizeof(int)); - cl::Buffer buffer_B(context, CL_MEM_READ_WRITE, B.size()*sizeof(int)); - cl::Buffer buffer_C(context, CL_MEM_READ_WRITE, C.size()*sizeof(int)); + //device - buffers + cl::Buffer buffer_A(context, CL_MEM_READ_WRITE, A.size()*sizeof(int)); + cl::Buffer buffer_B(context, CL_MEM_READ_WRITE, B.size()*sizeof(int)); + cl::Buffer buffer_C(context, CL_MEM_READ_WRITE, C.size()*sizeof(int)); - //Part 5 - device operations + //Part 5 - device operations - //5.1 Copy arrays A and B to device memory - queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, A.size()*sizeof(int), &A[0]); - queue.enqueueWriteBuffer(buffer_B, CL_TRUE, 0, B.size()*sizeof(int), &B[0]); + cl::Event A_event, B_event, C_event; - //5.2 Execute the device code (i.e. run the kernel) - cl::Kernel kernel_add = cl::Kernel(program, "simple_add"); - kernel_add.setArg(0, buffer_A); - kernel_add.setArg(1, buffer_B); - kernel_add.setArg(2, buffer_C); + //5.1 Copy arrays A and B to device memory + queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, A.size()*sizeof(int), &A[0], 0, &A_event); + queue.enqueueWriteBuffer(buffer_B, CL_TRUE, 0, B.size()*sizeof(int), &B[0], 0, &B_event); - cl::Event prof_event; -// queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange); - queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange, NULL, &prof_event); + //5.2 Execute the device code (i.e. run the kernel) + cl::Kernel kernel_add = cl::Kernel(program, "simple_add"); + kernel_add.setArg(0, buffer_A); + kernel_add.setArg(1, buffer_B); + kernel_add.setArg(2, buffer_C); - queue.finish();//wait until all processing is finished + cl::Event kernel_event; + // queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange); + queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange, NULL, &kernel_event); - prof_event.wait(); //wait until all measurements are preformed + queue.finish();//wait until all processing is finished - //5.3 Copy the result from device to host - queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, C.size()*sizeof(int), &C[0]); + //5.3 Copy the result from device to host + queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, C.size()*sizeof(int), &C[0], 0, &C_event); - std::cout << "A = : " << A << endl; - std::cout << "B = : " << B << endl; - std::cout << "C = : " << C << endl; + std::cout << "Upload A: " << GetFullProfilingInfo(A_event, ProfilingResolution::PROF_US) << endl; + std::cout << "Upload B: " << GetFullProfilingInfo(B_event, ProfilingResolution::PROF_US) << endl; + std::cout << "Download C: " << GetFullProfilingInfo(C_event, ProfilingResolution::PROF_US) << endl; + std::cout << "Kernel execution: " << GetFullProfilingInfo(kernel_event, ProfilingResolution::PROF_US) << endl; - std::cout << GetFullProfilingInfo(prof_event, ProfilingResolution::PROF_US) << endl; + // std::cout << "A = " << A << endl; + // std::cout << "B = " << B << endl; + // std::cout << "C = " << C << endl; + } + catch (cl::Error err) { + cerr << "ERROR: " << err.what() << ", " << getErrorString(err.err()) << endl; + } return 0; } \ No newline at end of file diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj index e9fc8d9..228eaad 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj +++ b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj @@ -63,12 +63,18 @@ true true true + $(CUDA_PATH)\include true true true + $(CUDA_PATH)\lib\$(Platform) + OpenCL.lib;%(AdditionalDependencies) + + %systemroot%\System32\xcopy "$(ProjectDir)kernels" "$(TargetDir)kernels" /E /Y /I + diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Utils.h b/VS/OpenCL Tutorial 1/Tutorial1/Utils.h index 073cbba..4d8dcbb 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Utils.h +++ b/VS/OpenCL Tutorial 1/Tutorial1/Utils.h @@ -109,83 +109,59 @@ void CheckError(cl_int error) } } -enum VerboseLevel -{ - VERBOSE_OFF, - VERBOSE_BRIEF, - VERBOSE_DETAILED, - VERBOSE_FULL -}; - void AddSources(cl::Program::Sources& sources, const std::string& file_name) { //TODO: add file existence check std::string* source_code = new std::string(std::istreambuf_iterator(std::ifstream(file_name)), (std::istreambuf_iterator())); sources.push_back(std::make_pair((*source_code).c_str(), source_code->length() + 1)); } -void ListPlatformsDevices(VerboseLevel verbose_level) { - std::vector platforms; +std::string ListPlatformsDevices() { - if (verbose_level != VERBOSE_OFF) - { - std::cout << "----------------------------------------------------------------" << std::endl; - try - { - cl::Platform::get(&platforms); - - std::cout << "Found " << platforms.size() << " platform(s):" << std::endl; - - for (unsigned int i = 0; i < platforms.size(); i++) - { - std::cout << "\nPlatform " << i << ", " << platforms[i].getInfo() << ", version: " << platforms[i].getInfo(); - - if (verbose_level > VERBOSE_BRIEF) - std::cout << ", vendor: " << platforms[i].getInfo(); - - if (verbose_level > VERBOSE_DETAILED) - std::cout << ", profile: " << platforms[i].getInfo() << ", extensions: " << platforms[i].getInfo(); + std::stringstream sstream; + std::vector platforms; - std::cout << std::endl; + cl::Platform::get(&platforms); - std::vector devices; + sstream << "Found " << platforms.size() << " platform(s):" << std::endl; - platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); + for (unsigned int i = 0; i < platforms.size(); i++) + { + sstream << "\nPlatform " << i << ", " << platforms[i].getInfo() << ", version: " << platforms[i].getInfo(); - std::cout << "\n Found " << devices.size() << " device(s):" << std::endl; + sstream << ", vendor: " << platforms[i].getInfo() << std::endl; - for (unsigned int j = 0; j < devices.size(); j++) - { - std::cout << "\n Device " << j << ", " << devices[j].getInfo() << ", version: " << devices[j].getInfo(); + std::vector devices; - if (verbose_level > VERBOSE_BRIEF) - { - std::cout << ", vendor: " << devices[j].getInfo(); - cl_device_type device_type = devices[j].getInfo(); - std::cout << ", type: "; - if (device_type & CL_DEVICE_TYPE_DEFAULT) - std::cout << "DEFAULT "; - if (device_type & CL_DEVICE_TYPE_CPU) - std::cout << "CPU "; - if (device_type & CL_DEVICE_TYPE_GPU) - std::cout << "GPU "; - if (device_type & CL_DEVICE_TYPE_ACCELERATOR) - std::cout << "ACCELERATOR "; - std::cout << ", compute units: " << devices[j].getInfo(); - } + platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); - if (verbose_level > VERBOSE_DETAILED) - { - } + sstream << "\n Found " << devices.size() << " device(s):" << std::endl; - std::cout << std::endl; - } - } - std::cout << "----------------------------------------------------------------" << std::endl; - } - catch (cl::Error err) { - std::cerr << "ERROR: " << err.what() << "(" << err.err() << ")" << std::endl; + for (unsigned int j = 0; j < devices.size(); j++) + { + sstream << "\n Device " << j << ", " << devices[j].getInfo() << ", version: " << devices[j].getInfo(); + + sstream << ", vendor: " << devices[j].getInfo(); + cl_device_type device_type = devices[j].getInfo(); + sstream << ", type: "; + if (device_type & CL_DEVICE_TYPE_DEFAULT) + sstream << "DEFAULT "; + if (device_type & CL_DEVICE_TYPE_CPU) + sstream << "CPU "; + if (device_type & CL_DEVICE_TYPE_GPU) + sstream << "GPU "; + if (device_type & CL_DEVICE_TYPE_ACCELERATOR) + sstream << "ACCELERATOR "; + sstream << ", compute units: " << devices[j].getInfo(); + sstream << ", clock freq [MHz]: " << devices[j].getInfo(); + sstream << ", max memory size [B]: " << devices[j].getInfo(); + sstream << ", max allocatable memory [B]: " << devices[j].getInfo(); + + sstream << std::endl; } } + sstream << "----------------------------------------------------------------" << std::endl; + + return sstream.str(); } cl::Context GetContext(int platform_id, int device_id) { From 10423654ede566b22a562fcbb005b41b9528c0e7 Mon Sep 17 00:00:00 2001 From: gcielniak Date: Wed, 6 Jan 2016 17:43:52 +0000 Subject: [PATCH 14/97] Kernels --- VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp | 42 +++++++++++++------ .../Tutorial1/Tutorial1.vcxproj | 6 ++- VS/OpenCL Tutorial 1/Tutorial1/Utils.h | 1 + .../Tutorial1/kernels/simple_add.cl | 12 ++++++ 4 files changed, 48 insertions(+), 13 deletions(-) diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp index ac3ec88..2ba0cd2 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp +++ b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp @@ -15,7 +15,8 @@ void print_help() cerr << " -p : select platform " << endl; cerr << " -d : select device" << endl; - cerr << " -l : list all platforms and devices, verbose level [0, 1, 2, 3]" << endl; + cerr << " -l : list all platforms and devices" << endl; + cerr << " -i : input length" << endl; cerr << " -h : print this message" << endl; } @@ -24,10 +25,12 @@ int main(int argc, char **argv) //Part 1 - handle command line options such as device selection, verbosity, etc. int platform_id = 0; int device_id = 0; + int input_length = 1; for (int i = 1; i < argc; i++) { if ((strcmp(argv[i], "-p") == 0) && (i < (argc - 1))) { platform_id = atoi(argv[++i]); } else if ((strcmp(argv[i], "-d") == 0) && (i < (argc - 1))) { device_id = atoi(argv[++i]); } + else if ((strcmp(argv[i], "-i") == 0) && (i < (argc - 1))) { input_length = atoi(argv[++i]); } else if (strcmp(argv[i], "-l") == 0) { cout << ListPlatformsDevices() << endl; } else if (strcmp(argv[i], "-h") == 0) { print_help(); } } @@ -57,8 +60,11 @@ int main(int argc, char **argv) //Part 4 - memory allocation //host - input - std::vector A(40000000); - std::vector B(40000000); + std::vector A = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //C++11 allows this type of initialisation + std::vector B = { 0, 1, 2, 0, 1, 2, 0, 1, 2, 0 }; +// std::vector A(input_length); +// std::vector B(input_length); + const int d = 5; //host - output std::vector C(A.size()); @@ -69,35 +75,47 @@ int main(int argc, char **argv) //Part 5 - device operations - cl::Event A_event, B_event, C_event; + cl::Event A_event, B_event, C_event, start_event, stop_event; + + queue.enqueueMarker(&start_event); + + start_event.wait(); //5.1 Copy arrays A and B to device memory queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, A.size()*sizeof(int), &A[0], 0, &A_event); queue.enqueueWriteBuffer(buffer_B, CL_TRUE, 0, B.size()*sizeof(int), &B[0], 0, &B_event); //5.2 Execute the device code (i.e. run the kernel) + cl::Kernel kernel_mult = cl::Kernel(program, "simple_mult"); + kernel_mult.setArg(0, buffer_A); + kernel_mult.setArg(1, buffer_B); + kernel_mult.setArg(2, buffer_C); + cl::Kernel kernel_add = cl::Kernel(program, "simple_add"); - kernel_add.setArg(0, buffer_A); + kernel_add.setArg(0, buffer_C); kernel_add.setArg(1, buffer_B); kernel_add.setArg(2, buffer_C); cl::Event kernel_event; - // queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange); - queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange, NULL, &kernel_event); - - queue.finish();//wait until all processing is finished + queue.enqueueNDRangeKernel(kernel_mult, cl::NullRange, cl::NDRange(A.size()), cl::NullRange); + queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(A.size()), cl::NullRange); //5.3 Copy the result from device to host queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, C.size()*sizeof(int), &C[0], 0, &C_event); + queue.enqueueMarker(&stop_event); + + stop_event.wait(); + std::cout << "Upload A: " << GetFullProfilingInfo(A_event, ProfilingResolution::PROF_US) << endl; std::cout << "Upload B: " << GetFullProfilingInfo(B_event, ProfilingResolution::PROF_US) << endl; std::cout << "Download C: " << GetFullProfilingInfo(C_event, ProfilingResolution::PROF_US) << endl; std::cout << "Kernel execution: " << GetFullProfilingInfo(kernel_event, ProfilingResolution::PROF_US) << endl; + std::cout << "Total: " << (C_event.getProfilingInfo() - A_event.getProfilingInfo()) / 1000 << endl; - // std::cout << "A = " << A << endl; - // std::cout << "B = " << B << endl; - // std::cout << "C = " << C << endl; + std::cout << "A = " << A << endl; + std::cout << "B = " << B << endl; + std::cout << "C = " << C << endl; } catch (cl::Error err) { cerr << "ERROR: " << err.what() << ", " << getErrorString(err.err()) << endl; diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj index 228eaad..0eae92f 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj +++ b/VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj @@ -53,8 +53,12 @@ OpenCL.lib;%(AdditionalDependencies) - %systemroot%\System32\xcopy "$(ProjectDir)kernels" "$(TargetDir)kernels" /E /Y /I + + + + %systemroot%\System32\xcopy "$(ProjectDir)kernels" "$(TargetDir)kernels" /E /Y /I + diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Utils.h b/VS/OpenCL Tutorial 1/Tutorial1/Utils.h index 4d8dcbb..c9aaaad 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Utils.h +++ b/VS/OpenCL Tutorial 1/Tutorial1/Utils.h @@ -129,6 +129,7 @@ std::string ListPlatformsDevices() { sstream << "\nPlatform " << i << ", " << platforms[i].getInfo() << ", version: " << platforms[i].getInfo(); sstream << ", vendor: " << platforms[i].getInfo() << std::endl; + sstream << ", extensions: " << platforms[i].getInfo() << std::endl; std::vector devices; diff --git a/VS/OpenCL Tutorial 1/Tutorial1/kernels/simple_add.cl b/VS/OpenCL Tutorial 1/Tutorial1/kernels/simple_add.cl index 70f6ffb..bad486a 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/kernels/simple_add.cl +++ b/VS/OpenCL Tutorial 1/Tutorial1/kernels/simple_add.cl @@ -3,3 +3,15 @@ __kernel void simple_add(__global const int* A, __global const int* B, __global int id = get_global_id(0); C[id] = A[id] + B[id]; } + +__kernel void simple_mult(__global const int* A, __global const int* B, __global int* C) +{ + int id = get_global_id(0); + C[id] = A[id] * B[id]; +} + +__kernel void simple_addmult(__global const int* A, __global const int* B, __global int* C) +{ + int id = get_global_id(0); + C[id] = A[id] * B[id] + B[id]; +} From 7f8be3007047130957dc006c0700ca142a1a3a44 Mon Sep 17 00:00:00 2001 From: gcielniak Date: Thu, 17 Jan 2019 11:24:38 +0000 Subject: [PATCH 15/97] updated project files --- .gitignore | 1 + OpenCL Tutorials.sln | 58 + README.md | 2 - Tutorial 1/Tutorial 1.cpp | 108 + Tutorial 1/Tutorial 1.vcxproj | 189 + .../Tutorial1 => Tutorial 1}/Utils.h | 76 +- Tutorial 1/desktop.ini | 5 + Tutorial 1/my_kernels_1.cl | 24 + Tutorial 2/Exception.h | 14 + Tutorial 2/Graphics/desktop.ini | 5 + Tutorial 2/Graphics/include/desktop.ini | 5 + .../Graphics/include/win32/GL/desktop.ini | 5 + Tutorial 2/Graphics/include/win32/GL/glut.h | 811 + Tutorial 2/Graphics/include/win32/desktop.ini | 5 + Tutorial 2/Graphics/lib/desktop.ini | 5 + Tutorial 2/Graphics/lib/win32/desktop.ini | 5 + .../Graphics/lib/win32/glut/desktop.ini | 5 + Tutorial 2/Graphics/lib/win32/glut/glut32.lib | Bin 0 -> 28704 bytes Tutorial 2/Graphics/lib/win64/desktop.ini | 5 + .../Graphics/lib/win64/glut/desktop.ini | 5 + Tutorial 2/Graphics/lib/win64/glut/glut32.lib | Bin 0 -> 26598 bytes Tutorial 2/Graphics/lodepng/desktop.ini | 5 + Tutorial 2/Graphics/lodepng/lodepng.cpp | 6168 ++++++++ Tutorial 2/Graphics/lodepng/lodepng.h | 1756 +++ Tutorial 2/ImageIO.h | 82 + Tutorial 2/Tutorial 2.cpp | 119 + Tutorial 2/Tutorial 2.vcxproj | 193 + Tutorial 2/Utils.h | 224 + Tutorial 2/desktop.ini | 5 + Tutorial 2/my_kernels_2.cl | 48 + Tutorial 2/test.png | Bin 0 -> 528863 bytes Tutorial 2/test_large.png | Bin 0 -> 2016411 bytes Tutorial 3/Tutorial 3.cpp | 126 + Tutorial 3/Tutorial 3.vcxproj | 196 + Tutorial 3/Utils.h | 224 + Tutorial 3/desktop.ini | 5 + Tutorial 3/my_kernels_3.cl | 158 + Tutorial 4/Tutorial 4.vcxproj | 159 + Tutorial 4/Workshop 4.cpp | 48 + Tutorial 4/desktop.ini | 5 + VS/OpenCL Tutorial 1/OpenCL Tutorial 1.sln | 22 - VS/OpenCL Tutorial 1/Tutorial1/Addons.h | 11 - VS/OpenCL Tutorial 1/Tutorial1/CL/cl.hpp | 12934 ---------------- VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp | 125 - .../Tutorial1/Tutorial1.vcxproj | 96 - .../Tutorial1/kernels/simple_add.cl | 17 - src/Tutorial1.cpp | 307 - src/opencl/simple_add.cl | 5 - 48 files changed, 10820 insertions(+), 13551 deletions(-) create mode 100644 OpenCL Tutorials.sln delete mode 100644 README.md create mode 100644 Tutorial 1/Tutorial 1.cpp create mode 100644 Tutorial 1/Tutorial 1.vcxproj rename {VS/OpenCL Tutorial 1/Tutorial1 => Tutorial 1}/Utils.h (81%) create mode 100644 Tutorial 1/desktop.ini create mode 100644 Tutorial 1/my_kernels_1.cl create mode 100644 Tutorial 2/Exception.h create mode 100644 Tutorial 2/Graphics/desktop.ini create mode 100644 Tutorial 2/Graphics/include/desktop.ini create mode 100644 Tutorial 2/Graphics/include/win32/GL/desktop.ini create mode 100644 Tutorial 2/Graphics/include/win32/GL/glut.h create mode 100644 Tutorial 2/Graphics/include/win32/desktop.ini create mode 100644 Tutorial 2/Graphics/lib/desktop.ini create mode 100644 Tutorial 2/Graphics/lib/win32/desktop.ini create mode 100644 Tutorial 2/Graphics/lib/win32/glut/desktop.ini create mode 100644 Tutorial 2/Graphics/lib/win32/glut/glut32.lib create mode 100644 Tutorial 2/Graphics/lib/win64/desktop.ini create mode 100644 Tutorial 2/Graphics/lib/win64/glut/desktop.ini create mode 100644 Tutorial 2/Graphics/lib/win64/glut/glut32.lib create mode 100644 Tutorial 2/Graphics/lodepng/desktop.ini create mode 100644 Tutorial 2/Graphics/lodepng/lodepng.cpp create mode 100644 Tutorial 2/Graphics/lodepng/lodepng.h create mode 100644 Tutorial 2/ImageIO.h create mode 100644 Tutorial 2/Tutorial 2.cpp create mode 100644 Tutorial 2/Tutorial 2.vcxproj create mode 100644 Tutorial 2/Utils.h create mode 100644 Tutorial 2/desktop.ini create mode 100644 Tutorial 2/my_kernels_2.cl create mode 100644 Tutorial 2/test.png create mode 100644 Tutorial 2/test_large.png create mode 100644 Tutorial 3/Tutorial 3.cpp create mode 100644 Tutorial 3/Tutorial 3.vcxproj create mode 100644 Tutorial 3/Utils.h create mode 100644 Tutorial 3/desktop.ini create mode 100644 Tutorial 3/my_kernels_3.cl create mode 100644 Tutorial 4/Tutorial 4.vcxproj create mode 100644 Tutorial 4/Workshop 4.cpp create mode 100644 Tutorial 4/desktop.ini delete mode 100644 VS/OpenCL Tutorial 1/OpenCL Tutorial 1.sln delete mode 100644 VS/OpenCL Tutorial 1/Tutorial1/Addons.h delete mode 100644 VS/OpenCL Tutorial 1/Tutorial1/CL/cl.hpp delete mode 100644 VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.cpp delete mode 100644 VS/OpenCL Tutorial 1/Tutorial1/Tutorial1.vcxproj delete mode 100644 VS/OpenCL Tutorial 1/Tutorial1/kernels/simple_add.cl delete mode 100644 src/Tutorial1.cpp delete mode 100644 src/opencl/simple_add.cl diff --git a/.gitignore b/.gitignore index efb683e..db1cb5d 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ build/ bld/ [Bb]in/ [Oo]bj/ +.vs *.opensdf *.sdf diff --git a/OpenCL Tutorials.sln b/OpenCL Tutorials.sln new file mode 100644 index 0000000..d4c2388 --- /dev/null +++ b/OpenCL Tutorials.sln @@ -0,0 +1,58 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.24720.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Workshop 4", "Tutorial 4\Tutorial 4.vcxproj", "{E95D4B5A-1F3F-4A31-931F-7A99CE219124}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial 1", "Tutorial 1\Tutorial 1.vcxproj", "{E99F5DFC-113A-4BC3-8253-90A6AC0C9A9D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial 2", "Tutorial 2\Tutorial 2.vcxproj", "{9167FEE5-0E64-4275-B2B2-A3F87F3A5C8F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial 3", "Tutorial 3\Tutorial 3.vcxproj", "{8CB4B79A-8170-44DE-88DC-C73EACB44CB2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E95D4B5A-1F3F-4A31-931F-7A99CE219124}.Debug|x64.ActiveCfg = Debug|x64 + {E95D4B5A-1F3F-4A31-931F-7A99CE219124}.Debug|x64.Build.0 = Debug|x64 + {E95D4B5A-1F3F-4A31-931F-7A99CE219124}.Debug|x86.ActiveCfg = Debug|Win32 + {E95D4B5A-1F3F-4A31-931F-7A99CE219124}.Debug|x86.Build.0 = Debug|Win32 + {E95D4B5A-1F3F-4A31-931F-7A99CE219124}.Release|x64.ActiveCfg = Release|x64 + {E95D4B5A-1F3F-4A31-931F-7A99CE219124}.Release|x64.Build.0 = Release|x64 + {E95D4B5A-1F3F-4A31-931F-7A99CE219124}.Release|x86.ActiveCfg = Release|Win32 + {E95D4B5A-1F3F-4A31-931F-7A99CE219124}.Release|x86.Build.0 = Release|Win32 + {E99F5DFC-113A-4BC3-8253-90A6AC0C9A9D}.Debug|x64.ActiveCfg = Debug|x64 + {E99F5DFC-113A-4BC3-8253-90A6AC0C9A9D}.Debug|x64.Build.0 = Debug|x64 + {E99F5DFC-113A-4BC3-8253-90A6AC0C9A9D}.Debug|x86.ActiveCfg = Debug|Win32 + {E99F5DFC-113A-4BC3-8253-90A6AC0C9A9D}.Debug|x86.Build.0 = Debug|Win32 + {E99F5DFC-113A-4BC3-8253-90A6AC0C9A9D}.Release|x64.ActiveCfg = Release|x64 + {E99F5DFC-113A-4BC3-8253-90A6AC0C9A9D}.Release|x64.Build.0 = Release|x64 + {E99F5DFC-113A-4BC3-8253-90A6AC0C9A9D}.Release|x86.ActiveCfg = Release|Win32 + {E99F5DFC-113A-4BC3-8253-90A6AC0C9A9D}.Release|x86.Build.0 = Release|Win32 + {9167FEE5-0E64-4275-B2B2-A3F87F3A5C8F}.Debug|x64.ActiveCfg = Debug|x64 + {9167FEE5-0E64-4275-B2B2-A3F87F3A5C8F}.Debug|x64.Build.0 = Debug|x64 + {9167FEE5-0E64-4275-B2B2-A3F87F3A5C8F}.Debug|x86.ActiveCfg = Debug|Win32 + {9167FEE5-0E64-4275-B2B2-A3F87F3A5C8F}.Debug|x86.Build.0 = Debug|Win32 + {9167FEE5-0E64-4275-B2B2-A3F87F3A5C8F}.Release|x64.ActiveCfg = Release|x64 + {9167FEE5-0E64-4275-B2B2-A3F87F3A5C8F}.Release|x64.Build.0 = Release|x64 + {9167FEE5-0E64-4275-B2B2-A3F87F3A5C8F}.Release|x86.ActiveCfg = Release|Win32 + {9167FEE5-0E64-4275-B2B2-A3F87F3A5C8F}.Release|x86.Build.0 = Release|Win32 + {8CB4B79A-8170-44DE-88DC-C73EACB44CB2}.Debug|x64.ActiveCfg = Debug|x64 + {8CB4B79A-8170-44DE-88DC-C73EACB44CB2}.Debug|x64.Build.0 = Debug|x64 + {8CB4B79A-8170-44DE-88DC-C73EACB44CB2}.Debug|x86.ActiveCfg = Debug|Win32 + {8CB4B79A-8170-44DE-88DC-C73EACB44CB2}.Debug|x86.Build.0 = Debug|Win32 + {8CB4B79A-8170-44DE-88DC-C73EACB44CB2}.Release|x64.ActiveCfg = Release|x64 + {8CB4B79A-8170-44DE-88DC-C73EACB44CB2}.Release|x64.Build.0 = Release|x64 + {8CB4B79A-8170-44DE-88DC-C73EACB44CB2}.Release|x86.ActiveCfg = Release|Win32 + {8CB4B79A-8170-44DE-88DC-C73EACB44CB2}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/README.md b/README.md deleted file mode 100644 index d9b2de1..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# OpenCL-Tutorials -OpenCL Tutorials diff --git a/Tutorial 1/Tutorial 1.cpp b/Tutorial 1/Tutorial 1.cpp new file mode 100644 index 0000000..63d94b0 --- /dev/null +++ b/Tutorial 1/Tutorial 1.cpp @@ -0,0 +1,108 @@ +#define CL_USE_DEPRECATED_OPENCL_1_2_APIS +#define __CL_ENABLE_EXCEPTIONS + +#include +#include + +#ifdef __APPLE__ +#include +#else +#include +#endif + +#include "Utils.h" + +void print_help() { + std::cerr << "Application usage:" << std::endl; + + std::cerr << " -p : select platform " << std::endl; + std::cerr << " -d : select device" << std::endl; + std::cerr << " -l : list all platforms and devices" << std::endl; + std::cerr << " -h : print this message" << std::endl; +} + +int main(int argc, char **argv) { + //Part 1 - handle command line options such as device selection, verbosity, etc. + int platform_id = 0; + int device_id = 0; + + for (int i = 1; i < argc; i++) { + if ((strcmp(argv[i], "-p") == 0) && (i < (argc - 1))) { platform_id = atoi(argv[++i]); } + else if ((strcmp(argv[i], "-d") == 0) && (i < (argc - 1))) { device_id = atoi(argv[++i]); } + else if (strcmp(argv[i], "-l") == 0) { std::cout << ListPlatformsDevices() << std::endl; } + else if (strcmp(argv[i], "-h") == 0) { print_help(); } + } + + //detect any potential exceptions + try { + //Part 2 - host operations + //2.1 Select computing devices + cl::Context context = GetContext(platform_id, device_id); + + //display the selected device + std::cout << "Runinng on " << GetPlatformName(platform_id) << ", " << GetDeviceName(platform_id, device_id) << std::endl; + + //create a queue to which we will push commands for the device + cl::CommandQueue queue(context); + + //2.2 Load & build the device code + cl::Program::Sources sources; + + AddSources(sources, "my_kernels_1.cl"); + + cl::Program program(context, sources); + + //build and debug the kernel code + try { + program.build(); + } + catch (const cl::Error& err) { + std::cout << "Build Status: " << program.getBuildInfo(context.getInfo()[0]) << std::endl; + std::cout << "Build Options:\t" << program.getBuildInfo(context.getInfo()[0]) << std::endl; + std::cout << "Build Log:\t " << program.getBuildInfo(context.getInfo()[0]) << std::endl; + throw err; + } + + //Part 4 - memory allocation + //host - input + std::vector A = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //C++11 allows this type of initialisation + std::vector B = { 0, 1, 2, 0, 1, 2, 0, 1, 2, 0 }; + + size_t vector_elements = A.size();//number of elements + size_t vector_size = A.size()*sizeof(int);//size in bytes + + //host - output + std::vector C(vector_elements); + + //device - buffers + cl::Buffer buffer_A(context, CL_MEM_READ_WRITE, vector_size); + cl::Buffer buffer_B(context, CL_MEM_READ_WRITE, vector_size); + cl::Buffer buffer_C(context, CL_MEM_READ_WRITE, vector_size); + + //Part 5 - device operations + + //5.1 Copy arrays A and B to device memory + queue.enqueueWriteBuffer(buffer_A, CL_TRUE, 0, vector_size, &A[0]); + queue.enqueueWriteBuffer(buffer_B, CL_TRUE, 0, vector_size, &B[0]); + + //5.2 Setup and execute the kernel (i.e. device code) + cl::Kernel kernel_add = cl::Kernel(program, "add"); + kernel_add.setArg(0, buffer_A); + kernel_add.setArg(1, buffer_B); + kernel_add.setArg(2, buffer_C); + + queue.enqueueNDRangeKernel(kernel_add, cl::NullRange, cl::NDRange(vector_elements), cl::NullRange); + + //5.3 Copy the result from device to host + queue.enqueueReadBuffer(buffer_C, CL_TRUE, 0, vector_size, &C[0]); + + std::cout << "A = " << A << std::endl; + std::cout << "B = " << B << std::endl; + std::cout << "C = " << C << std::endl; + } + catch (cl::Error err) { + std::cerr << "ERROR: " << err.what() << ", " << getErrorString(err.err()) << std::endl; + } + + return 0; +} \ No newline at end of file diff --git a/Tutorial 1/Tutorial 1.vcxproj b/Tutorial 1/Tutorial 1.vcxproj new file mode 100644 index 0000000..c5f37e4 --- /dev/null +++ b/Tutorial 1/Tutorial 1.vcxproj @@ -0,0 +1,189 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + Debug + x64 + + + Release + x64 + + + + {E99F5DFC-113A-4BC3-8253-90A6AC0C9A9D} + Tutorial 1 + 10.0.17763.0 + + + + Application + true + v141 + Unicode + + + Application + false + v141 + Unicode + true + + + Application + true + v141 + Unicode + + + Application + false + v141 + Unicode + true + + + + + + + + + + + + + + + + + false + + + true + + + false + + + true + + + + 0 + + + $(INTELOCLSDKROOT)include;%(AdditionalIncludeDirectories) + Win32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + Level3 + ProgramDatabase + + + + $(INTELOCLSDKROOT)lib\x86;%(AdditionalLibraryDirectories) + OpenCL.lib;%(AdditionalDependencies) + true + + + If exist "*.cl" copy "*.cl" "$(OutDir)\" + + + + + 0 + + + $(INTELOCLSDKROOT)include;%(AdditionalIncludeDirectories) + Win32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + Level3 + ProgramDatabase + + + + $(INTELOCLSDKROOT)lib\x86;%(AdditionalLibraryDirectories) + OpenCL.lib;%(AdditionalDependencies) + true + + + If exist "*.cl" copy "*.cl" "$(OutDir)\" + + + + + 0 + + + $(INTELOCLSDKROOT)include;%(AdditionalIncludeDirectories) + __x86_64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MaxSpeed + false + Default + MultiThreadedDLL + Level3 + ProgramDatabase + + + + $(INTELOCLSDKROOT)lib\x64;%(AdditionalLibraryDirectories) + OpenCL.lib;%(AdditionalDependencies) + true + true + true + + + If exist "*.cl" copy "*.cl" "$(OutDir)\" + + + + + 0 + + + $(INTELOCLSDKROOT)include;%(AdditionalIncludeDirectories) + __x86_64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + Disabled + false + EnableFastChecks + MultiThreadedDebugDLL + Level3 + ProgramDatabase + + + + $(INTELOCLSDKROOT)lib\x64;%(AdditionalLibraryDirectories) + OpenCL.lib;%(AdditionalDependencies) + true + + + If exist "*.cl" copy "*.cl" "$(OutDir)\" + + + + + + + + + + + + + \ No newline at end of file diff --git a/VS/OpenCL Tutorial 1/Tutorial1/Utils.h b/Tutorial 1/Utils.h similarity index 81% rename from VS/OpenCL Tutorial 1/Tutorial1/Utils.h rename to Tutorial 1/Utils.h index c9aaaad..652c644 100644 --- a/VS/OpenCL Tutorial 1/Tutorial1/Utils.h +++ b/Tutorial 1/Utils.h @@ -5,27 +5,39 @@ #include #include -#define __CL_ENABLE_EXCEPTIONS -#include "CL\cl.hpp" +#ifdef __APPLE__ +#include +#else +#include +#endif + +using namespace std; + +template +ostream& operator<< (ostream& out, const vector& v) { + if (!v.empty()) { + out << '['; + copy(v.begin(), v.end(), ostream_iterator(out, ", ")); + out << "\b\b]"; + } + return out; +} -std::string GetPlatformName(int platform_id) -{ - std::vector platforms; +string GetPlatformName(int platform_id) { + vector platforms; cl::Platform::get(&platforms); return platforms[platform_id].getInfo(); } -std::string GetDeviceName(int platform_id, int device_id) -{ - std::vector platforms; +string GetDeviceName(int platform_id, int device_id) { + vector platforms; cl::Platform::get(&platforms); - std::vector devices; + vector devices; platforms[platform_id].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); return devices[device_id].getInfo(); } -const char *getErrorString(cl_int error) -{ +const char *getErrorString(cl_int error) { switch (error){ // run-time and JIT compiler errors case 0: return "CL_SUCCESS"; @@ -101,41 +113,41 @@ const char *getErrorString(cl_int error) } } -void CheckError(cl_int error) -{ +void CheckError(cl_int error) { if (error != CL_SUCCESS) { - std::cerr << "OpenCL call failed with error " << getErrorString(error) << std::endl; - std::exit(1); + cerr << "OpenCL call failed with error " << getErrorString(error) << endl; + exit(1); } } -void AddSources(cl::Program::Sources& sources, const std::string& file_name) { +void AddSources(cl::Program::Sources& sources, const string& file_name) { //TODO: add file existence check - std::string* source_code = new std::string(std::istreambuf_iterator(std::ifstream(file_name)), (std::istreambuf_iterator())); - sources.push_back(std::make_pair((*source_code).c_str(), source_code->length() + 1)); + ifstream file(file_name); + string* source_code = new string(istreambuf_iterator(file), (istreambuf_iterator())); + sources.push_back(make_pair((*source_code).c_str(), source_code->length() + 1)); } -std::string ListPlatformsDevices() { +string ListPlatformsDevices() { - std::stringstream sstream; - std::vector platforms; + stringstream sstream; + vector platforms; cl::Platform::get(&platforms); - sstream << "Found " << platforms.size() << " platform(s):" << std::endl; + sstream << "Found " << platforms.size() << " platform(s):" << endl; for (unsigned int i = 0; i < platforms.size(); i++) { sstream << "\nPlatform " << i << ", " << platforms[i].getInfo() << ", version: " << platforms[i].getInfo(); - sstream << ", vendor: " << platforms[i].getInfo() << std::endl; - sstream << ", extensions: " << platforms[i].getInfo() << std::endl; + sstream << ", vendor: " << platforms[i].getInfo() << endl; + // sstream << ", extensions: " << platforms[i].getInfo() << endl; - std::vector devices; + vector devices; platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); - sstream << "\n Found " << devices.size() << " device(s):" << std::endl; + sstream << "\n Found " << devices.size() << " device(s):" << endl; for (unsigned int j = 0; j < devices.size(); j++) { @@ -157,22 +169,22 @@ std::string ListPlatformsDevices() { sstream << ", max memory size [B]: " << devices[j].getInfo(); sstream << ", max allocatable memory [B]: " << devices[j].getInfo(); - sstream << std::endl; + sstream << endl; } } - sstream << "----------------------------------------------------------------" << std::endl; + sstream << "----------------------------------------------------------------" << endl; return sstream.str(); } cl::Context GetContext(int platform_id, int device_id) { - std::vector platforms; + vector platforms; cl::Platform::get(&platforms); for (unsigned int i = 0; i < platforms.size(); i++) { - std::vector devices; + vector devices; platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); for (unsigned int j = 0; j < devices.size(); j++) @@ -192,8 +204,8 @@ enum ProfilingResolution { PROF_S = 1000000000 }; -std::string GetFullProfilingInfo(const cl::Event& evnt, ProfilingResolution resolution) { - std::stringstream sstream; +string GetFullProfilingInfo(const cl::Event& evnt, ProfilingResolution resolution) { + stringstream sstream; sstream << "Queued " << (evnt.getProfilingInfo() - evnt.getProfilingInfo()) / resolution; sstream << ", Submitted " << (evnt.getProfilingInfo() - evnt.getProfilingInfo()) / resolution; diff --git a/Tutorial 1/desktop.ini b/Tutorial 1/desktop.ini new file mode 100644 index 0000000..dce88a3 --- /dev/null +++ b/Tutorial 1/desktop.ini @@ -0,0 +1,5 @@ +[.ShellClassInfo] +InfoTip=This folder is shared online. +IconFile=C:\Program Files\Google\Drive\googledrivesync.exe +IconIndex=16 + \ No newline at end of file diff --git a/Tutorial 1/my_kernels_1.cl b/Tutorial 1/my_kernels_1.cl new file mode 100644 index 0000000..5c9e061 --- /dev/null +++ b/Tutorial 1/my_kernels_1.cl @@ -0,0 +1,24 @@ +//a simple OpenCL kernel which adds two vectors A and B together into a third vector C +__kernel void add(__global const int* A, __global const int* B, __global int* C) { + int id = get_global_id(0); + C[id] = A[id] + B[id]; +} + +//a simple smoothing kernel averaging values in a local window (radius 1) +__kernel void avg_filter(__global const int* A, __global int* B) { + int id = get_global_id(0); + B[id] = (A[id - 1] + A[id] + A[id + 1])/3; +} + +//a simple 2D kernel +__kernel void add2D(__global const int* A, __global const int* B, __global int* C) { + int x = get_global_id(0); + int y = get_global_id(1); + int width = get_global_size(0); + int height = get_global_size(1); + int id = x + y*width; + + printf("id = %d x = %d y = %d w = %d h = %d\n", id, x, y, width, height); + + C[id]= A[id]+ B[id]; +} diff --git a/Tutorial 2/Exception.h b/Tutorial 2/Exception.h new file mode 100644 index 0000000..292acb5 --- /dev/null +++ b/Tutorial 2/Exception.h @@ -0,0 +1,14 @@ +#pragma once + +#include + +class Exception +{ + std::string message; + +public: + Exception(const std::string s) : message(s) {}; + + virtual const std::string& what() const throw() { return message; } +}; + diff --git a/Tutorial 2/Graphics/desktop.ini b/Tutorial 2/Graphics/desktop.ini new file mode 100644 index 0000000..dce88a3 --- /dev/null +++ b/Tutorial 2/Graphics/desktop.ini @@ -0,0 +1,5 @@ +[.ShellClassInfo] +InfoTip=This folder is shared online. +IconFile=C:\Program Files\Google\Drive\googledrivesync.exe +IconIndex=16 + \ No newline at end of file diff --git a/Tutorial 2/Graphics/include/desktop.ini b/Tutorial 2/Graphics/include/desktop.ini new file mode 100644 index 0000000..dce88a3 --- /dev/null +++ b/Tutorial 2/Graphics/include/desktop.ini @@ -0,0 +1,5 @@ +[.ShellClassInfo] +InfoTip=This folder is shared online. +IconFile=C:\Program Files\Google\Drive\googledrivesync.exe +IconIndex=16 + \ No newline at end of file diff --git a/Tutorial 2/Graphics/include/win32/GL/desktop.ini b/Tutorial 2/Graphics/include/win32/GL/desktop.ini new file mode 100644 index 0000000..dce88a3 --- /dev/null +++ b/Tutorial 2/Graphics/include/win32/GL/desktop.ini @@ -0,0 +1,5 @@ +[.ShellClassInfo] +InfoTip=This folder is shared online. +IconFile=C:\Program Files\Google\Drive\googledrivesync.exe +IconIndex=16 + \ No newline at end of file diff --git a/Tutorial 2/Graphics/include/win32/GL/glut.h b/Tutorial 2/Graphics/include/win32/GL/glut.h new file mode 100644 index 0000000..97fcc1d --- /dev/null +++ b/Tutorial 2/Graphics/include/win32/GL/glut.h @@ -0,0 +1,811 @@ +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and related documentation and +// any modifications thereto. Any use, reproduction, disclosure, or +// distribution of this software and related documentation without an express +// license agreement from NVIDIA Corporation is strictly prohibited. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998, 2000, 2006. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ + +#ifdef _WIN32 + +/* GLUT 3.7 now tries to avoid including + to avoid name space pollution, but Win32's + needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 + /* This would put tons of macros in our clean name space. */ +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# define GLUT_APIENTRY_DEFINED + /* Cygwin and MingW32 are two free GNU-based Open Source compilation + environments for Win32. Note that __CYGWIN32__ is deprecated + in favor of simply __CYGWIN__. */ +# if defined(__MINGW32__) || defined(__CYGWIN32__) || defined(__CYGWIN__) +# ifdef i386 +# define APIENTRY __attribute__ ((stdcall)) +# else +# define APIENTRY +# endif +# else +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif +# endif + /* XXX This is from Win32's */ +# ifndef CALLBACK +# if defined(__MINGW32__) || defined(__CYGWIN32__) || defined(__CYGWIN__) +# define CALLBACK __attribute__ ((stdcall)) +# else +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define GLUT_WINGDIAPI_DEFINED +# if defined(__MINGW32__) || defined(__CYGWIN32__) || defined(__CYGWIN__) +# define WINGDIAPI +# else +# define WINGDIAPI __declspec(dllimport) +# endif +# endif +# if defined(__MINGW32__) || defined(__CYGWIN32__) || defined(__CYGWIN__) + /* Rely on Cygwin32/MingW32 to set wchar_t. */ + /* XXX Warning. The Cygwin32/MingW32 definition for wchar_t + is an "int" instead of the "short" used by Windows. */ +# include +# else + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif +# endif + +/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA + in your compile preprocessor options. */ +# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA) +# pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ +# pragma comment (lib, "user32.lib") /* link with Windows User lib */ +# pragma comment (lib, "gdi32.lib") /* link with Windows GDI lib */ +/* To enable automatic SGI OpenGL for Windows library usage for GLUT, + define GLUT_USE_SGI_OPENGL in your compile preprocessor options. */ +# ifdef GLUT_USE_SGI_OPENGL +# pragma comment (lib, "opengl.lib") /* link with SGI OpenGL for Windows lib */ +# pragma comment (lib, "glu.lib") /* link with SGI OpenGL Utility lib */ +# if defined(GLUT_STATIC_LIB) +# pragma comment (lib, "glutstatic.lib") /* link with static Win32 GLUT lib */ +# else +# pragma comment (lib, "glut.lib") /* link with Win32 GLUT lib */ +# endif +# else +# pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ +# pragma comment (lib, "glu32.lib") /* link with Microsoft OpenGL Utility lib */ +# if defined(GLUT_STATIC_LIB) +# pragma comment (lib, "glutstatic.lib") /* link with static Win32 GLUT lib */ +# else +# pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ +# endif +# endif +# endif + +/* To disable supression of annoying warnings about floats being promoted + to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor + options. */ +# if defined(_MSC_VER) && !defined(GLUT_NO_WARNING_DISABLE) +# pragma warning (disable:4244) /* Disable bogus VC++ 4.2 conversion warnings. */ +# pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ +# endif + +/* Win32 has an annoying issue where there are multiple C run-time + libraries (CRTs). If the executable is linked with a different CRT + from the GLUT DLL, the GLUT DLL will not share the same CRT static + data seen by the executable. In particular, atexit callbacks registered + in the executable will not be called if GLUT calls its (different) + exit routine). GLUT is typically built with the + "/MD" option (the CRT with multithreading DLL support), but the Visual + C++ linker default is "/ML" (the single threaded CRT). + + One workaround to this issue is requiring users to always link with + the same CRT as GLUT is compiled with. That requires users supply a + non-standard option. GLUT 3.7 has its own built-in workaround where + the executable's "exit" function pointer is covertly passed to GLUT. + GLUT then calls the executable's exit function pointer to ensure that + any "atexit" calls registered by the application are called if GLUT + needs to exit. + + Note that the __glut*WithExit routines should NEVER be called directly. + To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ + +/* XXX This is from Win32's */ +# if !defined(_MSC_VER) && !defined(__cdecl) + /* Define __cdecl for non-Microsoft compilers. */ +# define __cdecl +# define GLUT_DEFINED___CDECL +# endif +# ifndef _CRTIMP +# ifdef _NTSDK + /* Definition compatible with NT SDK */ +# define _CRTIMP +# else + /* Current definition */ +# ifdef _DLL +# define _CRTIMP __declspec(dllimport) +# else +# define _CRTIMP +# endif +# endif +# define GLUT_DEFINED__CRTIMP +# endif + +/* GLUT API entry point declarations for Win32. */ +# ifdef GLUT_BUILDING_LIB +/* MSDN article 835326 says "When you build a DLL by using the 64-bit + version of the Microsoft Visual C++ Compiler and Linker, you may + receive Linker error number LNK4197 if a function has been declared + for export more than one time." GLUT builds with glut.def that + declares GLUT's EXPORTS list so do not use __declspec(dllexport) + to keep 64-bit compiler happy. */ +# define GLUTAPI /*__declspec(dllexport)*/ +# else +# ifdef _DLL +# define GLUTAPI __declspec(dllimport) +# else +# define GLUTAPI extern +# endif +# endif + +/* GLUT callback calling convention for Win32. */ +# define GLUTCALLBACK __cdecl + +# if (_MSC_VER >= 800) || defined(__MINGW32__) || defined(_STDCALL_SUPPORTED) || defined(__CYGWIN32__) +# define GLUTAPIENTRY __stdcall +# else +# define GLUTAPIENTRY +# endif + +#endif /* _WIN32 */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef _WIN32 +# ifndef GLUT_BUILDING_LIB +# if __BORLANDC__ +# if defined(_BUILDRTLDLL) +void __cdecl __export exit(int __status); +# else +void __cdecl exit(int __status); +# endif +# else +# if _MSC_VER >= 1200 + extern _CRTIMP __declspec(noreturn) void __cdecl exit(int); +# else + extern _CRTIMP void __cdecl exit(int); +# endif +# endif +# endif +#else +/* non-Win32 case. */ +/* Define APIENTRY and CALLBACK to nothing if we aren't on Win32. */ +# define APIENTRY +# define GLUT_APIENTRY_DEFINED +# define CALLBACK +/* Define GLUTAPI and GLUTCALLBACK as below if we aren't on Win32. */ +# define GLUTAPI extern +# define GLUTAPIENTRY +# define GLUTCALLBACK +/* Prototype exit for the non-Win32 case (see above). */ +# ifdef __GNUC__ +extern void exit(int __status) __attribute__((__noreturn__)); +# else +extern void exit(int); +# endif +#endif + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, + glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, + glutJoystickFunc, glutForceJoystickFunc, glutStrokeWidthf, + glutStrokeLengthf (NOT FINALIZED!). +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 3 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. + + GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. + + GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. + + GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. + + GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. + + GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa + + GLUT_XLIB_IMPLEMENTATION=16 mjk's early GLUT 3.8 + + GLUT_XLIB_IMPLEMENTATION=17 mjk's GLUT 3.8 with glutStrokeWidthf and glutStrokeLengthf +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 17 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +#ifdef _WIN32 +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +GLUTAPI void *glutStrokeRoman; +GLUTAPI void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +GLUTAPI void *glutBitmap9By15; +GLUTAPI void *glutBitmap8By13; +GLUTAPI void *glutBitmapTimesRoman10; +GLUTAPI void *glutBitmapTimesRoman24; +GLUTAPI void *glutBitmapHelvetica10; +GLUTAPI void *glutBitmapHelvetica12; +GLUTAPI void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X ((GLenum) 100) +#define GLUT_WINDOW_Y ((GLenum) 101) +#define GLUT_WINDOW_WIDTH ((GLenum) 102) +#define GLUT_WINDOW_HEIGHT ((GLenum) 103) +#define GLUT_WINDOW_BUFFER_SIZE ((GLenum) 104) +#define GLUT_WINDOW_STENCIL_SIZE ((GLenum) 105) +#define GLUT_WINDOW_DEPTH_SIZE ((GLenum) 106) +#define GLUT_WINDOW_RED_SIZE ((GLenum) 107) +#define GLUT_WINDOW_GREEN_SIZE ((GLenum) 108) +#define GLUT_WINDOW_BLUE_SIZE ((GLenum) 109) +#define GLUT_WINDOW_ALPHA_SIZE ((GLenum) 110) +#define GLUT_WINDOW_ACCUM_RED_SIZE ((GLenum) 111) +#define GLUT_WINDOW_ACCUM_GREEN_SIZE ((GLenum) 112) +#define GLUT_WINDOW_ACCUM_BLUE_SIZE ((GLenum) 113) +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE ((GLenum) 114) +#define GLUT_WINDOW_DOUBLEBUFFER ((GLenum) 115) +#define GLUT_WINDOW_RGBA ((GLenum) 116) +#define GLUT_WINDOW_PARENT ((GLenum) 117) +#define GLUT_WINDOW_NUM_CHILDREN ((GLenum) 118) +#define GLUT_WINDOW_COLORMAP_SIZE ((GLenum) 119) +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES ((GLenum) 120) +#define GLUT_WINDOW_STEREO ((GLenum) 121) +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR ((GLenum) 122) +#endif +#define GLUT_SCREEN_WIDTH ((GLenum) 200) +#define GLUT_SCREEN_HEIGHT ((GLenum) 201) +#define GLUT_SCREEN_WIDTH_MM ((GLenum) 202) +#define GLUT_SCREEN_HEIGHT_MM ((GLenum) 203) +#define GLUT_MENU_NUM_ITEMS ((GLenum) 300) +#define GLUT_DISPLAY_MODE_POSSIBLE ((GLenum) 400) +#define GLUT_INIT_WINDOW_X ((GLenum) 500) +#define GLUT_INIT_WINDOW_Y ((GLenum) 501) +#define GLUT_INIT_WINDOW_WIDTH ((GLenum) 502) +#define GLUT_INIT_WINDOW_HEIGHT ((GLenum) 503) +#define GLUT_INIT_DISPLAY_MODE ((GLenum) 504) +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME ((GLenum) 700) +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_WINDOW_FORMAT_ID ((GLenum) 123) +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD ((GLenum) 600) +#define GLUT_HAS_MOUSE ((GLenum) 601) +#define GLUT_HAS_SPACEBALL ((GLenum) 602) +#define GLUT_HAS_DIAL_AND_BUTTON_BOX ((GLenum) 603) +#define GLUT_HAS_TABLET ((GLenum) 604) +#define GLUT_NUM_MOUSE_BUTTONS ((GLenum) 605) +#define GLUT_NUM_SPACEBALL_BUTTONS ((GLenum) 606) +#define GLUT_NUM_BUTTON_BOX_BUTTONS ((GLenum) 607) +#define GLUT_NUM_DIALS ((GLenum) 608) +#define GLUT_NUM_TABLET_BUTTONS ((GLenum) 609) +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_DEVICE_IGNORE_KEY_REPEAT ((GLenum) 610) +#define GLUT_DEVICE_KEY_REPEAT ((GLenum) 611) +#define GLUT_HAS_JOYSTICK ((GLenum) 612) +#define GLUT_OWNS_JOYSTICK ((GLenum) 613) +#define GLUT_JOYSTICK_BUTTONS ((GLenum) 614) +#define GLUT_JOYSTICK_AXES ((GLenum) 615) +#define GLUT_JOYSTICK_POLL_RATE ((GLenum) 616) +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE ((GLenum) 800) +#define GLUT_LAYER_IN_USE ((GLenum) 801) +#define GLUT_HAS_OVERLAY ((GLenum) 802) +#define GLUT_TRANSPARENT_INDEX ((GLenum) 803) +#define GLUT_NORMAL_DAMAGED ((GLenum) 804) +#define GLUT_OVERLAY_DAMAGED ((GLenum) 805) + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE ((GLenum) 900) +#define GLUT_VIDEO_RESIZE_IN_USE ((GLenum) 901) +#define GLUT_VIDEO_RESIZE_X_DELTA ((GLenum) 902) +#define GLUT_VIDEO_RESIZE_Y_DELTA ((GLenum) 903) +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA ((GLenum) 904) +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA ((GLenum) 905) +#define GLUT_VIDEO_RESIZE_X ((GLenum) 906) +#define GLUT_VIDEO_RESIZE_Y ((GLenum) 907) +#define GLUT_VIDEO_RESIZE_WIDTH ((GLenum) 908) +#define GLUT_VIDEO_RESIZE_HEIGHT ((GLenum) 909) +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL ((GLenum) 0) +#define GLUT_OVERLAY ((GLenum) 1) + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +GLUTAPI void GLUTAPIENTRY glutInit(int *argcp, char **argv); +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) +GLUTAPI void GLUTAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)); +#ifndef GLUT_BUILDING_LIB +static void GLUTAPIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); } +#define glutInit glutInit_ATEXIT_HACK +#endif +#endif +GLUTAPI void GLUTAPIENTRY glutInitDisplayMode(unsigned int mode); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI void GLUTAPIENTRY glutInitDisplayString(const char *string); +#endif +GLUTAPI void GLUTAPIENTRY glutInitWindowPosition(int x, int y); +GLUTAPI void GLUTAPIENTRY glutInitWindowSize(int width, int height); +GLUTAPI void GLUTAPIENTRY glutMainLoop(void); + +/* GLUT window sub-API. */ +GLUTAPI int GLUTAPIENTRY glutCreateWindow(const char *title); +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) +GLUTAPI int GLUTAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)); +#ifndef GLUT_BUILDING_LIB +static int GLUTAPIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); } +#define glutCreateWindow glutCreateWindow_ATEXIT_HACK +#endif +#endif +GLUTAPI int GLUTAPIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); +GLUTAPI void GLUTAPIENTRY glutDestroyWindow(int win); +GLUTAPI void GLUTAPIENTRY glutPostRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +GLUTAPI void GLUTAPIENTRY glutPostWindowRedisplay(int win); +#endif +GLUTAPI void GLUTAPIENTRY glutSwapBuffers(void); +GLUTAPI int GLUTAPIENTRY glutGetWindow(void); +GLUTAPI void GLUTAPIENTRY glutSetWindow(int win); +GLUTAPI void GLUTAPIENTRY glutSetWindowTitle(const char *title); +GLUTAPI void GLUTAPIENTRY glutSetIconTitle(const char *title); +GLUTAPI void GLUTAPIENTRY glutPositionWindow(int x, int y); +GLUTAPI void GLUTAPIENTRY glutReshapeWindow(int width, int height); +GLUTAPI void GLUTAPIENTRY glutPopWindow(void); +GLUTAPI void GLUTAPIENTRY glutPushWindow(void); +GLUTAPI void GLUTAPIENTRY glutIconifyWindow(void); +GLUTAPI void GLUTAPIENTRY glutShowWindow(void); +GLUTAPI void GLUTAPIENTRY glutHideWindow(void); +#if (GLUT_API_VERSION >= 3) +GLUTAPI void GLUTAPIENTRY glutFullScreen(void); +GLUTAPI void GLUTAPIENTRY glutSetCursor(int cursor); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI void GLUTAPIENTRY glutWarpPointer(int x, int y); +#endif + +/* GLUT overlay sub-API. */ +GLUTAPI void GLUTAPIENTRY glutEstablishOverlay(void); +GLUTAPI void GLUTAPIENTRY glutRemoveOverlay(void); +GLUTAPI void GLUTAPIENTRY glutUseLayer(GLenum layer); +GLUTAPI void GLUTAPIENTRY glutPostOverlayRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +GLUTAPI void GLUTAPIENTRY glutPostWindowOverlayRedisplay(int win); +#endif +GLUTAPI void GLUTAPIENTRY glutShowOverlay(void); +GLUTAPI void GLUTAPIENTRY glutHideOverlay(void); +#endif + +/* GLUT menu sub-API. */ +GLUTAPI int GLUTAPIENTRY glutCreateMenu(void (GLUTCALLBACK *func)(int)); +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) +GLUTAPI int GLUTAPIENTRY __glutCreateMenuWithExit(void (GLUTCALLBACK *func)(int), void (__cdecl *exitfunc)(int)); +#ifndef GLUT_BUILDING_LIB +static int GLUTAPIENTRY glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK *func)(int)) { return __glutCreateMenuWithExit(func, exit); } +#define glutCreateMenu glutCreateMenu_ATEXIT_HACK +#endif +#endif +GLUTAPI void GLUTAPIENTRY glutDestroyMenu(int menu); +GLUTAPI int GLUTAPIENTRY glutGetMenu(void); +GLUTAPI void GLUTAPIENTRY glutSetMenu(int menu); +GLUTAPI void GLUTAPIENTRY glutAddMenuEntry(const char *label, int value); +GLUTAPI void GLUTAPIENTRY glutAddSubMenu(const char *label, int submenu); +GLUTAPI void GLUTAPIENTRY glutChangeToMenuEntry(int item, const char *label, int value); +GLUTAPI void GLUTAPIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); +GLUTAPI void GLUTAPIENTRY glutRemoveMenuItem(int item); +GLUTAPI void GLUTAPIENTRY glutAttachMenu(int button); +GLUTAPI void GLUTAPIENTRY glutDetachMenu(int button); + +/* GLUT window callback sub-API. */ +GLUTAPI void GLUTAPIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void)); +GLUTAPI void GLUTAPIENTRY glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height)); +GLUTAPI void GLUTAPIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); +GLUTAPI void GLUTAPIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); +GLUTAPI void GLUTAPIENTRY glutEntryFunc(void (GLUTCALLBACK *func)(int state)); +GLUTAPI void GLUTAPIENTRY glutVisibilityFunc(void (GLUTCALLBACK *func)(int state)); +GLUTAPI void GLUTAPIENTRY glutIdleFunc(void (GLUTCALLBACK *func)(void)); +GLUTAPI void GLUTAPIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value); +GLUTAPI void GLUTAPIENTRY glutMenuStateFunc(void (GLUTCALLBACK *func)(int state)); +#if (GLUT_API_VERSION >= 2) +GLUTAPI void GLUTAPIENTRY glutSpecialFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); +GLUTAPI void GLUTAPIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); +GLUTAPI void GLUTAPIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK *func)(int button, int state)); +GLUTAPI void GLUTAPIENTRY glutButtonBoxFunc(void (GLUTCALLBACK *func)(int button, int state)); +GLUTAPI void GLUTAPIENTRY glutDialsFunc(void (GLUTCALLBACK *func)(int dial, int value)); +GLUTAPI void GLUTAPIENTRY glutTabletMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); +GLUTAPI void GLUTAPIENTRY glutTabletButtonFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); +#if (GLUT_API_VERSION >= 3) +GLUTAPI void GLUTAPIENTRY glutMenuStatusFunc(void (GLUTCALLBACK *func)(int status, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK *func)(void)); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI void GLUTAPIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state)); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +GLUTAPI void GLUTAPIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutSpecialUpFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); +GLUTAPI void GLUTAPIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +GLUTAPI void GLUTAPIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); +GLUTAPI GLfloat GLUTAPIENTRY glutGetColor(int ndx, int component); +GLUTAPI void GLUTAPIENTRY glutCopyColormap(int win); + +/* GLUT state retrieval sub-API. */ +GLUTAPI int GLUTAPIENTRY glutGet(GLenum type); +GLUTAPI int GLUTAPIENTRY glutDeviceGet(GLenum type); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +GLUTAPI int GLUTAPIENTRY glutExtensionSupported(const char *name); +#endif +#if (GLUT_API_VERSION >= 3) +GLUTAPI int GLUTAPIENTRY glutGetModifiers(void); +GLUTAPI int GLUTAPIENTRY glutLayerGet(GLenum type); +#endif + +/* GLUT font sub-API */ +GLUTAPI void GLUTAPIENTRY glutBitmapCharacter(void *font, int character); +GLUTAPI int GLUTAPIENTRY glutBitmapWidth(void *font, int character); +GLUTAPI void GLUTAPIENTRY glutStrokeCharacter(void *font, int character); +GLUTAPI int GLUTAPIENTRY glutStrokeWidth(void *font, int character); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI int GLUTAPIENTRY glutBitmapLength(void *font, const unsigned char *string); +GLUTAPI int GLUTAPIENTRY glutStrokeLength(void *font, const unsigned char *string); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 17) +GLUTAPI float GLUTAPIENTRY glutStrokeWidthf(void *font, int character); +GLUTAPI float GLUTAPIENTRY glutStrokeLengthf(void *font, const unsigned char *string); +#endif + +/* GLUT pre-built models sub-API */ +GLUTAPI void GLUTAPIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); +GLUTAPI void GLUTAPIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); +GLUTAPI void GLUTAPIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +GLUTAPI void GLUTAPIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +GLUTAPI void GLUTAPIENTRY glutWireCube(GLdouble size); +GLUTAPI void GLUTAPIENTRY glutSolidCube(GLdouble size); +GLUTAPI void GLUTAPIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +GLUTAPI void GLUTAPIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +GLUTAPI void GLUTAPIENTRY glutWireDodecahedron(void); +GLUTAPI void GLUTAPIENTRY glutSolidDodecahedron(void); +GLUTAPI void GLUTAPIENTRY glutWireTeapot(GLdouble size); +GLUTAPI void GLUTAPIENTRY glutSolidTeapot(GLdouble size); +GLUTAPI void GLUTAPIENTRY glutWireOctahedron(void); +GLUTAPI void GLUTAPIENTRY glutSolidOctahedron(void); +GLUTAPI void GLUTAPIENTRY glutWireTetrahedron(void); +GLUTAPI void GLUTAPIENTRY glutSolidTetrahedron(void); +GLUTAPI void GLUTAPIENTRY glutWireIcosahedron(void); +GLUTAPI void GLUTAPIENTRY glutSolidIcosahedron(void); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +GLUTAPI int GLUTAPIENTRY glutVideoResizeGet(GLenum param); +GLUTAPI void GLUTAPIENTRY glutSetupVideoResizing(void); +GLUTAPI void GLUTAPIENTRY glutStopVideoResizing(void); +GLUTAPI void GLUTAPIENTRY glutVideoResize(int x, int y, int width, int height); +GLUTAPI void GLUTAPIENTRY glutVideoPan(int x, int y, int width, int height); + +/* GLUT debugging sub-API. */ +GLUTAPI void GLUTAPIENTRY glutReportErrors(void); +#endif + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +/* GLUT device control sub-API. */ +/* glutSetKeyRepeat modes. */ +#define GLUT_KEY_REPEAT_OFF 0 +#define GLUT_KEY_REPEAT_ON 1 +#define GLUT_KEY_REPEAT_DEFAULT 2 + +/* Joystick button masks. */ +#define GLUT_JOYSTICK_BUTTON_A 1 +#define GLUT_JOYSTICK_BUTTON_B 2 +#define GLUT_JOYSTICK_BUTTON_C 4 +#define GLUT_JOYSTICK_BUTTON_D 8 + +GLUTAPI void GLUTAPIENTRY glutIgnoreKeyRepeat(int ignore); +GLUTAPI void GLUTAPIENTRY glutSetKeyRepeat(int repeatMode); +GLUTAPI void GLUTAPIENTRY glutForceJoystickFunc(void); + +/* GLUT game mode sub-API. */ +/* glutGameModeGet. */ +#define GLUT_GAME_MODE_ACTIVE ((GLenum) 0) +#define GLUT_GAME_MODE_POSSIBLE ((GLenum) 1) +#define GLUT_GAME_MODE_WIDTH ((GLenum) 2) +#define GLUT_GAME_MODE_HEIGHT ((GLenum) 3) +#define GLUT_GAME_MODE_PIXEL_DEPTH ((GLenum) 4) +#define GLUT_GAME_MODE_REFRESH_RATE ((GLenum) 5) +#define GLUT_GAME_MODE_DISPLAY_CHANGED ((GLenum) 6) + +GLUTAPI void GLUTAPIENTRY glutGameModeString(const char *string); +GLUTAPI int GLUTAPIENTRY glutEnterGameMode(void); +GLUTAPI void GLUTAPIENTRY glutLeaveGameMode(void); +GLUTAPI int GLUTAPIENTRY glutGameModeGet(GLenum mode); +#endif + +#ifdef __cplusplus +} + +#endif + +#ifdef GLUT_APIENTRY_DEFINED +# undef GLUT_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef GLUT_WINGDIAPI_DEFINED +# undef GLUT_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + +#ifdef GLUT_DEFINED___CDECL +# undef GLUT_DEFINED___CDECL +# undef __cdecl +#endif + +#ifdef GLUT_DEFINED__CRTIMP +# undef GLUT_DEFINED__CRTIMP +# undef _CRTIMP +#endif + +#endif /* __glut_h__ */ diff --git a/Tutorial 2/Graphics/include/win32/desktop.ini b/Tutorial 2/Graphics/include/win32/desktop.ini new file mode 100644 index 0000000..dce88a3 --- /dev/null +++ b/Tutorial 2/Graphics/include/win32/desktop.ini @@ -0,0 +1,5 @@ +[.ShellClassInfo] +InfoTip=This folder is shared online. +IconFile=C:\Program Files\Google\Drive\googledrivesync.exe +IconIndex=16 + \ No newline at end of file diff --git a/Tutorial 2/Graphics/lib/desktop.ini b/Tutorial 2/Graphics/lib/desktop.ini new file mode 100644 index 0000000..dce88a3 --- /dev/null +++ b/Tutorial 2/Graphics/lib/desktop.ini @@ -0,0 +1,5 @@ +[.ShellClassInfo] +InfoTip=This folder is shared online. +IconFile=C:\Program Files\Google\Drive\googledrivesync.exe +IconIndex=16 + \ No newline at end of file diff --git a/Tutorial 2/Graphics/lib/win32/desktop.ini b/Tutorial 2/Graphics/lib/win32/desktop.ini new file mode 100644 index 0000000..dce88a3 --- /dev/null +++ b/Tutorial 2/Graphics/lib/win32/desktop.ini @@ -0,0 +1,5 @@ +[.ShellClassInfo] +InfoTip=This folder is shared online. +IconFile=C:\Program Files\Google\Drive\googledrivesync.exe +IconIndex=16 + \ No newline at end of file diff --git a/Tutorial 2/Graphics/lib/win32/glut/desktop.ini b/Tutorial 2/Graphics/lib/win32/glut/desktop.ini new file mode 100644 index 0000000..dce88a3 --- /dev/null +++ b/Tutorial 2/Graphics/lib/win32/glut/desktop.ini @@ -0,0 +1,5 @@ +[.ShellClassInfo] +InfoTip=This folder is shared online. +IconFile=C:\Program Files\Google\Drive\googledrivesync.exe +IconIndex=16 + \ No newline at end of file diff --git a/Tutorial 2/Graphics/lib/win32/glut/glut32.lib b/Tutorial 2/Graphics/lib/win32/glut/glut32.lib new file mode 100644 index 0000000000000000000000000000000000000000..8d1ae527081e1d1fed9061a7284b4178c5fb26e0 GIT binary patch literal 28704 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 ev-w`p%9kzBe%EcboL98lS-u+{F!H}!~ literal 0 HcmV?d00001 diff --git a/Tutorial 2/Graphics/lib/win64/desktop.ini b/Tutorial 2/Graphics/lib/win64/desktop.ini new file mode 100644 index 0000000..dce88a3 --- /dev/null +++ b/Tutorial 2/Graphics/lib/win64/desktop.ini @@ -0,0 +1,5 @@ +[.ShellClassInfo] +InfoTip=This folder is shared online. +IconFile=C:\Program Files\Google\Drive\googledrivesync.exe +IconIndex=16 + \ No newline at end of file diff --git a/Tutorial 2/Graphics/lib/win64/glut/desktop.ini b/Tutorial 2/Graphics/lib/win64/glut/desktop.ini new file mode 100644 index 0000000..dce88a3 --- /dev/null +++ b/Tutorial 2/Graphics/lib/win64/glut/desktop.ini @@ -0,0 +1,5 @@ +[.ShellClassInfo] +InfoTip=This folder is shared online. +IconFile=C:\Program Files\Google\Drive\googledrivesync.exe +IconIndex=16 + \ No newline at end of file diff --git a/Tutorial 2/Graphics/lib/win64/glut/glut32.lib b/Tutorial 2/Graphics/lib/win64/glut/glut32.lib new file mode 100644 index 0000000000000000000000000000000000000000..9030aa1703f5003d0bac28474540301a6901dfd8 GIT binary patch literal 26598 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 yU;ZYl*V@Hw|7FIO-9p_ +#include + +#ifdef LODEPNG_COMPILE_CPP +#include +#endif /*LODEPNG_COMPILE_CPP*/ + +#if defined(_MSC_VER) && (_MSC_VER >= 1310) /*Visual Studio: A few warning types are not desired here.*/ +#pragma warning( disable : 4244 ) /*implicit conversions: not warned by gcc -Wall -Wextra and requires too much casts*/ +#pragma warning( disable : 4996 ) /*VS does not like fopen, but fopen_s is not standard C so unusable here*/ +#endif /*_MSC_VER */ + +const char* LODEPNG_VERSION_STRING = "20160124"; + +/* +This source file is built up in the following large parts. The code sections +with the "LODEPNG_COMPILE_" #defines divide this up further in an intermixed way. +-Tools for C and common code for PNG and Zlib +-C Code for Zlib (huffman, deflate, ...) +-C Code for PNG (file format chunks, adam7, PNG filters, color conversions, ...) +-The C++ wrapper around all of the above +*/ + +/*The malloc, realloc and free functions defined here with "lodepng_" in front +of the name, so that you can easily change them to others related to your +platform if needed. Everything else in the code calls these. Pass +-DLODEPNG_NO_COMPILE_ALLOCATORS to the compiler, or comment out +#define LODEPNG_COMPILE_ALLOCATORS in the header, to disable the ones here and +define them in your own project's source files without needing to change +lodepng source code. Don't forget to remove "static" if you copypaste them +from here.*/ + +#ifdef LODEPNG_COMPILE_ALLOCATORS +static void* lodepng_malloc(size_t size) +{ + return malloc(size); +} + +static void* lodepng_realloc(void* ptr, size_t new_size) +{ + return realloc(ptr, new_size); +} + +static void lodepng_free(void* ptr) +{ + free(ptr); +} +#else /*LODEPNG_COMPILE_ALLOCATORS*/ +void* lodepng_malloc(size_t size); +void* lodepng_realloc(void* ptr, size_t new_size); +void lodepng_free(void* ptr); +#endif /*LODEPNG_COMPILE_ALLOCATORS*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // Tools for C, and common code for PNG and Zlib. // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/* +Often in case of an error a value is assigned to a variable and then it breaks +out of a loop (to go to the cleanup phase of a function). This macro does that. +It makes the error handling code shorter and more readable. + +Example: if(!uivector_resizev(&frequencies_ll, 286, 0)) ERROR_BREAK(83); +*/ +#define CERROR_BREAK(errorvar, code)\ +{\ + errorvar = code;\ + break;\ +} + +/*version of CERROR_BREAK that assumes the common case where the error variable is named "error"*/ +#define ERROR_BREAK(code) CERROR_BREAK(error, code) + +/*Set error var to the error code, and return it.*/ +#define CERROR_RETURN_ERROR(errorvar, code)\ +{\ + errorvar = code;\ + return code;\ +} + +/*Try the code, if it returns error, also return the error.*/ +#define CERROR_TRY_RETURN(call)\ +{\ + unsigned error = call;\ + if(error) return error;\ +} + +/*Set error var to the error code, and return from the void function.*/ +#define CERROR_RETURN(errorvar, code)\ +{\ + errorvar = code;\ + return;\ +} + +/* +About uivector, ucvector and string: +-All of them wrap dynamic arrays or text strings in a similar way. +-LodePNG was originally written in C++. The vectors replace the std::vectors that were used in the C++ version. +-The string tools are made to avoid problems with compilers that declare things like strncat as deprecated. +-They're not used in the interface, only internally in this file as static functions. +-As with many other structs in this file, the init and cleanup functions serve as ctor and dtor. +*/ + +#ifdef LODEPNG_COMPILE_ZLIB +/*dynamic vector of unsigned ints*/ +typedef struct uivector +{ + unsigned* data; + size_t size; /*size in number of unsigned longs*/ + size_t allocsize; /*allocated size in bytes*/ +} uivector; + +static void uivector_cleanup(void* p) +{ + ((uivector*)p)->size = ((uivector*)p)->allocsize = 0; + lodepng_free(((uivector*)p)->data); + ((uivector*)p)->data = NULL; +} + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned uivector_reserve(uivector* p, size_t allocsize) +{ + if(allocsize > p->allocsize) + { + size_t newsize = (allocsize > p->allocsize * 2) ? allocsize : (allocsize * 3 / 2); + void* data = lodepng_realloc(p->data, newsize); + if(data) + { + p->allocsize = newsize; + p->data = (unsigned*)data; + } + else return 0; /*error: not enough memory*/ + } + return 1; +} + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned uivector_resize(uivector* p, size_t size) +{ + if(!uivector_reserve(p, size * sizeof(unsigned))) return 0; + p->size = size; + return 1; /*success*/ +} + +/*resize and give all new elements the value*/ +static unsigned uivector_resizev(uivector* p, size_t size, unsigned value) +{ + size_t oldsize = p->size, i; + if(!uivector_resize(p, size)) return 0; + for(i = oldsize; i < size; ++i) p->data[i] = value; + return 1; +} + +static void uivector_init(uivector* p) +{ + p->data = NULL; + p->size = p->allocsize = 0; +} + +#ifdef LODEPNG_COMPILE_ENCODER +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned uivector_push_back(uivector* p, unsigned c) +{ + if(!uivector_resize(p, p->size + 1)) return 0; + p->data[p->size - 1] = c; + return 1; +} +#endif /*LODEPNG_COMPILE_ENCODER*/ +#endif /*LODEPNG_COMPILE_ZLIB*/ + +/* /////////////////////////////////////////////////////////////////////////// */ + +/*dynamic vector of unsigned chars*/ +typedef struct ucvector +{ + unsigned char* data; + size_t size; /*used size*/ + size_t allocsize; /*allocated size*/ +} ucvector; + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned ucvector_reserve(ucvector* p, size_t allocsize) +{ + if(allocsize > p->allocsize) + { + size_t newsize = (allocsize > p->allocsize * 2) ? allocsize : (allocsize * 3 / 2); + void* data = lodepng_realloc(p->data, newsize); + if(data) + { + p->allocsize = newsize; + p->data = (unsigned char*)data; + } + else return 0; /*error: not enough memory*/ + } + return 1; +} + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned ucvector_resize(ucvector* p, size_t size) +{ + if(!ucvector_reserve(p, size * sizeof(unsigned char))) return 0; + p->size = size; + return 1; /*success*/ +} + +#ifdef LODEPNG_COMPILE_PNG + +static void ucvector_cleanup(void* p) +{ + ((ucvector*)p)->size = ((ucvector*)p)->allocsize = 0; + lodepng_free(((ucvector*)p)->data); + ((ucvector*)p)->data = NULL; +} + +static void ucvector_init(ucvector* p) +{ + p->data = NULL; + p->size = p->allocsize = 0; +} +#endif /*LODEPNG_COMPILE_PNG*/ + +#ifdef LODEPNG_COMPILE_ZLIB +/*you can both convert from vector to buffer&size and vica versa. If you use +init_buffer to take over a buffer and size, it is not needed to use cleanup*/ +static void ucvector_init_buffer(ucvector* p, unsigned char* buffer, size_t size) +{ + p->data = buffer; + p->allocsize = p->size = size; +} +#endif /*LODEPNG_COMPILE_ZLIB*/ + +#if (defined(LODEPNG_COMPILE_PNG) && defined(LODEPNG_COMPILE_ANCILLARY_CHUNKS)) || defined(LODEPNG_COMPILE_ENCODER) +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned ucvector_push_back(ucvector* p, unsigned char c) +{ + if(!ucvector_resize(p, p->size + 1)) return 0; + p->data[p->size - 1] = c; + return 1; +} +#endif /*defined(LODEPNG_COMPILE_PNG) || defined(LODEPNG_COMPILE_ENCODER)*/ + + +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_PNG +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned string_resize(char** out, size_t size) +{ + char* data = (char*)lodepng_realloc(*out, size + 1); + if(data) + { + data[size] = 0; /*null termination char*/ + *out = data; + } + return data != 0; +} + +/*init a {char*, size_t} pair for use as string*/ +static void string_init(char** out) +{ + *out = NULL; + string_resize(out, 0); +} + +/*free the above pair again*/ +static void string_cleanup(char** out) +{ + lodepng_free(*out); + *out = NULL; +} + +static void string_set(char** out, const char* in) +{ + size_t insize = strlen(in), i; + if(string_resize(out, insize)) + { + for(i = 0; i != insize; ++i) + { + (*out)[i] = in[i]; + } + } +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +/* ////////////////////////////////////////////////////////////////////////// */ + +unsigned lodepng_read32bitInt(const unsigned char* buffer) +{ + return (unsigned)((buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3]); +} + +#if defined(LODEPNG_COMPILE_PNG) || defined(LODEPNG_COMPILE_ENCODER) +/*buffer must have at least 4 allocated bytes available*/ +static void lodepng_set32bitInt(unsigned char* buffer, unsigned value) +{ + buffer[0] = (unsigned char)((value >> 24) & 0xff); + buffer[1] = (unsigned char)((value >> 16) & 0xff); + buffer[2] = (unsigned char)((value >> 8) & 0xff); + buffer[3] = (unsigned char)((value ) & 0xff); +} +#endif /*defined(LODEPNG_COMPILE_PNG) || defined(LODEPNG_COMPILE_ENCODER)*/ + +#ifdef LODEPNG_COMPILE_ENCODER +static void lodepng_add32bitInt(ucvector* buffer, unsigned value) +{ + ucvector_resize(buffer, buffer->size + 4); /*todo: give error if resize failed*/ + lodepng_set32bitInt(&buffer->data[buffer->size - 4], value); +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / File IO / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_DISK + +unsigned lodepng_load_file(unsigned char** out, size_t* outsize, const char* filename) +{ + FILE* file; + long size; + + /*provide some proper output values if error will happen*/ + *out = 0; + *outsize = 0; + + file = fopen(filename, "rb"); + if(!file) return 78; + + /*get filesize:*/ + fseek(file , 0 , SEEK_END); + size = ftell(file); + rewind(file); + + /*read contents of the file into the vector*/ + *outsize = 0; + *out = (unsigned char*)lodepng_malloc((size_t)size); + if(size && (*out)) (*outsize) = fread(*out, 1, (size_t)size, file); + + fclose(file); + if(!(*out) && size) return 83; /*the above malloc failed*/ + return 0; +} + +/*write given buffer to the file, overwriting the file, it doesn't append to it.*/ +unsigned lodepng_save_file(const unsigned char* buffer, size_t buffersize, const char* filename) +{ + FILE* file; + file = fopen(filename, "wb" ); + if(!file) return 79; + fwrite((char*)buffer , 1 , buffersize, file); + fclose(file); + return 0; +} + +#endif /*LODEPNG_COMPILE_DISK*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // End of common code and tools. Begin of Zlib related code. // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_ZLIB +#ifdef LODEPNG_COMPILE_ENCODER +/*TODO: this ignores potential out of memory errors*/ +#define addBitToStream(/*size_t**/ bitpointer, /*ucvector**/ bitstream, /*unsigned char*/ bit)\ +{\ + /*add a new byte at the end*/\ + if(((*bitpointer) & 7) == 0) ucvector_push_back(bitstream, (unsigned char)0);\ + /*earlier bit of huffman code is in a lesser significant bit of an earlier byte*/\ + (bitstream->data[bitstream->size - 1]) |= (bit << ((*bitpointer) & 0x7));\ + ++(*bitpointer);\ +} + +static void addBitsToStream(size_t* bitpointer, ucvector* bitstream, unsigned value, size_t nbits) +{ + size_t i; + for(i = 0; i != nbits; ++i) addBitToStream(bitpointer, bitstream, (unsigned char)((value >> i) & 1)); +} + +static void addBitsToStreamReversed(size_t* bitpointer, ucvector* bitstream, unsigned value, size_t nbits) +{ + size_t i; + for(i = 0; i != nbits; ++i) addBitToStream(bitpointer, bitstream, (unsigned char)((value >> (nbits - 1 - i)) & 1)); +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_DECODER + +#define READBIT(bitpointer, bitstream) ((bitstream[bitpointer >> 3] >> (bitpointer & 0x7)) & (unsigned char)1) + +static unsigned char readBitFromStream(size_t* bitpointer, const unsigned char* bitstream) +{ + unsigned char result = (unsigned char)(READBIT(*bitpointer, bitstream)); + ++(*bitpointer); + return result; +} + +static unsigned readBitsFromStream(size_t* bitpointer, const unsigned char* bitstream, size_t nbits) +{ + unsigned result = 0, i; + for(i = 0; i != nbits; ++i) + { + result += ((unsigned)READBIT(*bitpointer, bitstream)) << i; + ++(*bitpointer); + } + return result; +} +#endif /*LODEPNG_COMPILE_DECODER*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Deflate - Huffman / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#define FIRST_LENGTH_CODE_INDEX 257 +#define LAST_LENGTH_CODE_INDEX 285 +/*256 literals, the end code, some length codes, and 2 unused codes*/ +#define NUM_DEFLATE_CODE_SYMBOLS 288 +/*the distance codes have their own symbols, 30 used, 2 unused*/ +#define NUM_DISTANCE_SYMBOLS 32 +/*the code length codes. 0-15: code lengths, 16: copy previous 3-6 times, 17: 3-10 zeros, 18: 11-138 zeros*/ +#define NUM_CODE_LENGTH_CODES 19 + +/*the base lengths represented by codes 257-285*/ +static const unsigned LENGTHBASE[29] + = {3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, + 67, 83, 99, 115, 131, 163, 195, 227, 258}; + +/*the extra bits used by codes 257-285 (added to base length)*/ +static const unsigned LENGTHEXTRA[29] + = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, + 4, 4, 4, 4, 5, 5, 5, 5, 0}; + +/*the base backwards distances (the bits of distance codes appear after length codes and use their own huffman tree)*/ +static const unsigned DISTANCEBASE[30] + = {1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, + 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577}; + +/*the extra bits of backwards distances (added to base)*/ +static const unsigned DISTANCEEXTRA[30] + = {0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, + 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13}; + +/*the order in which "code length alphabet code lengths" are stored, out of this +the huffman tree of the dynamic huffman tree lengths is generated*/ +static const unsigned CLCL_ORDER[NUM_CODE_LENGTH_CODES] + = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + +/* ////////////////////////////////////////////////////////////////////////// */ + +/* +Huffman tree struct, containing multiple representations of the tree +*/ +typedef struct HuffmanTree +{ + unsigned* tree2d; + unsigned* tree1d; + unsigned* lengths; /*the lengths of the codes of the 1d-tree*/ + unsigned maxbitlen; /*maximum number of bits a single code can get*/ + unsigned numcodes; /*number of symbols in the alphabet = number of codes*/ +} HuffmanTree; + +/*function used for debug purposes to draw the tree in ascii art with C++*/ +/* +static void HuffmanTree_draw(HuffmanTree* tree) +{ + std::cout << "tree. length: " << tree->numcodes << " maxbitlen: " << tree->maxbitlen << std::endl; + for(size_t i = 0; i != tree->tree1d.size; ++i) + { + if(tree->lengths.data[i]) + std::cout << i << " " << tree->tree1d.data[i] << " " << tree->lengths.data[i] << std::endl; + } + std::cout << std::endl; +}*/ + +static void HuffmanTree_init(HuffmanTree* tree) +{ + tree->tree2d = 0; + tree->tree1d = 0; + tree->lengths = 0; +} + +static void HuffmanTree_cleanup(HuffmanTree* tree) +{ + lodepng_free(tree->tree2d); + lodepng_free(tree->tree1d); + lodepng_free(tree->lengths); +} + +/*the tree representation used by the decoder. return value is error*/ +static unsigned HuffmanTree_make2DTree(HuffmanTree* tree) +{ + unsigned nodefilled = 0; /*up to which node it is filled*/ + unsigned treepos = 0; /*position in the tree (1 of the numcodes columns)*/ + unsigned n, i; + + tree->tree2d = (unsigned*)lodepng_malloc(tree->numcodes * 2 * sizeof(unsigned)); + if(!tree->tree2d) return 83; /*alloc fail*/ + + /* + convert tree1d[] to tree2d[][]. In the 2D array, a value of 32767 means + uninited, a value >= numcodes is an address to another bit, a value < numcodes + is a code. The 2 rows are the 2 possible bit values (0 or 1), there are as + many columns as codes - 1. + A good huffman tree has N * 2 - 1 nodes, of which N - 1 are internal nodes. + Here, the internal nodes are stored (what their 0 and 1 option point to). + There is only memory for such good tree currently, if there are more nodes + (due to too long length codes), error 55 will happen + */ + for(n = 0; n < tree->numcodes * 2; ++n) + { + tree->tree2d[n] = 32767; /*32767 here means the tree2d isn't filled there yet*/ + } + + for(n = 0; n < tree->numcodes; ++n) /*the codes*/ + { + for(i = 0; i != tree->lengths[n]; ++i) /*the bits for this code*/ + { + unsigned char bit = (unsigned char)((tree->tree1d[n] >> (tree->lengths[n] - i - 1)) & 1); + /*oversubscribed, see comment in lodepng_error_text*/ + if(treepos > 2147483647 || treepos + 2 > tree->numcodes) return 55; + if(tree->tree2d[2 * treepos + bit] == 32767) /*not yet filled in*/ + { + if(i + 1 == tree->lengths[n]) /*last bit*/ + { + tree->tree2d[2 * treepos + bit] = n; /*put the current code in it*/ + treepos = 0; + } + else + { + /*put address of the next step in here, first that address has to be found of course + (it's just nodefilled + 1)...*/ + ++nodefilled; + /*addresses encoded with numcodes added to it*/ + tree->tree2d[2 * treepos + bit] = nodefilled + tree->numcodes; + treepos = nodefilled; + } + } + else treepos = tree->tree2d[2 * treepos + bit] - tree->numcodes; + } + } + + for(n = 0; n < tree->numcodes * 2; ++n) + { + if(tree->tree2d[n] == 32767) tree->tree2d[n] = 0; /*remove possible remaining 32767's*/ + } + + return 0; +} + +/* +Second step for the ...makeFromLengths and ...makeFromFrequencies functions. +numcodes, lengths and maxbitlen must already be filled in correctly. return +value is error. +*/ +static unsigned HuffmanTree_makeFromLengths2(HuffmanTree* tree) +{ + uivector blcount; + uivector nextcode; + unsigned error = 0; + unsigned bits, n; + + uivector_init(&blcount); + uivector_init(&nextcode); + + tree->tree1d = (unsigned*)lodepng_malloc(tree->numcodes * sizeof(unsigned)); + if(!tree->tree1d) error = 83; /*alloc fail*/ + + if(!uivector_resizev(&blcount, tree->maxbitlen + 1, 0) + || !uivector_resizev(&nextcode, tree->maxbitlen + 1, 0)) + error = 83; /*alloc fail*/ + + if(!error) + { + /*step 1: count number of instances of each code length*/ + for(bits = 0; bits != tree->numcodes; ++bits) ++blcount.data[tree->lengths[bits]]; + /*step 2: generate the nextcode values*/ + for(bits = 1; bits <= tree->maxbitlen; ++bits) + { + nextcode.data[bits] = (nextcode.data[bits - 1] + blcount.data[bits - 1]) << 1; + } + /*step 3: generate all the codes*/ + for(n = 0; n != tree->numcodes; ++n) + { + if(tree->lengths[n] != 0) tree->tree1d[n] = nextcode.data[tree->lengths[n]]++; + } + } + + uivector_cleanup(&blcount); + uivector_cleanup(&nextcode); + + if(!error) return HuffmanTree_make2DTree(tree); + else return error; +} + +/* +given the code lengths (as stored in the PNG file), generate the tree as defined +by Deflate. maxbitlen is the maximum bits that a code in the tree can have. +return value is error. +*/ +static unsigned HuffmanTree_makeFromLengths(HuffmanTree* tree, const unsigned* bitlen, + size_t numcodes, unsigned maxbitlen) +{ + unsigned i; + tree->lengths = (unsigned*)lodepng_malloc(numcodes * sizeof(unsigned)); + if(!tree->lengths) return 83; /*alloc fail*/ + for(i = 0; i != numcodes; ++i) tree->lengths[i] = bitlen[i]; + tree->numcodes = (unsigned)numcodes; /*number of symbols*/ + tree->maxbitlen = maxbitlen; + return HuffmanTree_makeFromLengths2(tree); +} + +#ifdef LODEPNG_COMPILE_ENCODER + +/*BPM: Boundary Package Merge, see "A Fast and Space-Economical Algorithm for Length-Limited Coding", +Jyrki Katajainen, Alistair Moffat, Andrew Turpin, 1995.*/ + +/*chain node for boundary package merge*/ +typedef struct BPMNode +{ + int weight; /*the sum of all weights in this chain*/ + unsigned index; /*index of this leaf node (called "count" in the paper)*/ + struct BPMNode* tail; /*the next nodes in this chain (null if last)*/ + int in_use; +} BPMNode; + +/*lists of chains*/ +typedef struct BPMLists +{ + /*memory pool*/ + unsigned memsize; + BPMNode* memory; + unsigned numfree; + unsigned nextfree; + BPMNode** freelist; + /*two heads of lookahead chains per list*/ + unsigned listsize; + BPMNode** chains0; + BPMNode** chains1; +} BPMLists; + +/*creates a new chain node with the given parameters, from the memory in the lists */ +static BPMNode* bpmnode_create(BPMLists* lists, int weight, unsigned index, BPMNode* tail) +{ + unsigned i; + BPMNode* result; + + /*memory full, so garbage collect*/ + if(lists->nextfree >= lists->numfree) + { + /*mark only those that are in use*/ + for(i = 0; i != lists->memsize; ++i) lists->memory[i].in_use = 0; + for(i = 0; i != lists->listsize; ++i) + { + BPMNode* node; + for(node = lists->chains0[i]; node != 0; node = node->tail) node->in_use = 1; + for(node = lists->chains1[i]; node != 0; node = node->tail) node->in_use = 1; + } + /*collect those that are free*/ + lists->numfree = 0; + for(i = 0; i != lists->memsize; ++i) + { + if(!lists->memory[i].in_use) lists->freelist[lists->numfree++] = &lists->memory[i]; + } + lists->nextfree = 0; + } + + result = lists->freelist[lists->nextfree++]; + result->weight = weight; + result->index = index; + result->tail = tail; + return result; +} + +static int bpmnode_compare(const void* a, const void* b) +{ + int wa = ((const BPMNode*)a)->weight; + int wb = ((const BPMNode*)b)->weight; + if(wa < wb) return -1; + if(wa > wb) return 1; + /*make the qsort a stable sort*/ + return ((const BPMNode*)a)->index < ((const BPMNode*)b)->index ? 1 : -1; +} + +/*Boundary Package Merge step, numpresent is the amount of leaves, and c is the current chain.*/ +static void boundaryPM(BPMLists* lists, BPMNode* leaves, size_t numpresent, int c, int num) +{ + unsigned lastindex = lists->chains1[c]->index; + + if(c == 0) + { + if(lastindex >= numpresent) return; + lists->chains0[c] = lists->chains1[c]; + lists->chains1[c] = bpmnode_create(lists, leaves[lastindex].weight, lastindex + 1, 0); + } + else + { + /*sum of the weights of the head nodes of the previous lookahead chains.*/ + int sum = lists->chains0[c - 1]->weight + lists->chains1[c - 1]->weight; + lists->chains0[c] = lists->chains1[c]; + if(lastindex < numpresent && sum > leaves[lastindex].weight) + { + lists->chains1[c] = bpmnode_create(lists, leaves[lastindex].weight, lastindex + 1, lists->chains1[c]->tail); + return; + } + lists->chains1[c] = bpmnode_create(lists, sum, lastindex, lists->chains1[c - 1]); + /*in the end we are only interested in the chain of the last list, so no + need to recurse if we're at the last one (this gives measurable speedup)*/ + if(num + 1 < (int)(2 * numpresent - 2)) + { + boundaryPM(lists, leaves, numpresent, c - 1, num); + boundaryPM(lists, leaves, numpresent, c - 1, num); + } + } +} + +unsigned lodepng_huffman_code_lengths(unsigned* lengths, const unsigned* frequencies, + size_t numcodes, unsigned maxbitlen) +{ + unsigned error = 0; + unsigned i; + size_t numpresent = 0; /*number of symbols with non-zero frequency*/ + BPMNode* leaves; /*the symbols, only those with > 0 frequency*/ + + if(numcodes == 0) return 80; /*error: a tree of 0 symbols is not supposed to be made*/ + if((static_cast(1) << maxbitlen) < numcodes) return 80; /*error: represent all symbols*/ + + leaves = (BPMNode*)lodepng_malloc(numcodes * sizeof(*leaves)); + if(!leaves) return 83; /*alloc fail*/ + + for(i = 0; i != numcodes; ++i) + { + if(frequencies[i] > 0) + { + leaves[numpresent].weight = (int)frequencies[i]; + leaves[numpresent].index = i; + ++numpresent; + } + } + + for(i = 0; i != numcodes; ++i) lengths[i] = 0; + + /*ensure at least two present symbols. There should be at least one symbol + according to RFC 1951 section 3.2.7. Some decoders incorrectly require two. To + make these work as well ensure there are at least two symbols. The + Package-Merge code below also doesn't work correctly if there's only one + symbol, it'd give it the theoritical 0 bits but in practice zlib wants 1 bit*/ + if(numpresent == 0) + { + lengths[0] = lengths[1] = 1; /*note that for RFC 1951 section 3.2.7, only lengths[0] = 1 is needed*/ + } + else if(numpresent == 1) + { + lengths[leaves[0].index] = 1; + lengths[leaves[0].index == 0 ? 1 : 0] = 1; + } + else + { + BPMLists lists; + BPMNode* node; + + qsort(leaves, numpresent, sizeof(BPMNode), bpmnode_compare); + + lists.listsize = maxbitlen; + lists.memsize = 2 * maxbitlen * (maxbitlen + 1); + lists.nextfree = 0; + lists.numfree = lists.memsize; + lists.memory = (BPMNode*)lodepng_malloc(lists.memsize * sizeof(*lists.memory)); + lists.freelist = (BPMNode**)lodepng_malloc(lists.memsize * sizeof(BPMNode*)); + lists.chains0 = (BPMNode**)lodepng_malloc(lists.listsize * sizeof(BPMNode*)); + lists.chains1 = (BPMNode**)lodepng_malloc(lists.listsize * sizeof(BPMNode*)); + if(!lists.memory || !lists.freelist || !lists.chains0 || !lists.chains1) error = 83; /*alloc fail*/ + + if(!error) + { + for(i = 0; i != lists.memsize; ++i) lists.freelist[i] = &lists.memory[i]; + + bpmnode_create(&lists, leaves[0].weight, 1, 0); + bpmnode_create(&lists, leaves[1].weight, 2, 0); + + for(i = 0; i != lists.listsize; ++i) + { + lists.chains0[i] = &lists.memory[0]; + lists.chains1[i] = &lists.memory[1]; + } + + /*each boundaryPM call adds one chain to the last list, and we need 2 * numpresent - 2 chains.*/ + for(i = 2; i != 2 * numpresent - 2; ++i) boundaryPM(&lists, leaves, numpresent, (int)maxbitlen - 1, (int)i); + + for(node = lists.chains1[maxbitlen - 1]; node; node = node->tail) + { + for(i = 0; i != node->index; ++i) ++lengths[leaves[i].index]; + } + } + + lodepng_free(lists.memory); + lodepng_free(lists.freelist); + lodepng_free(lists.chains0); + lodepng_free(lists.chains1); + } + + lodepng_free(leaves); + return error; +} + +/*Create the Huffman tree given the symbol frequencies*/ +static unsigned HuffmanTree_makeFromFrequencies(HuffmanTree* tree, const unsigned* frequencies, + size_t mincodes, size_t numcodes, unsigned maxbitlen) +{ + unsigned error = 0; + while(!frequencies[numcodes - 1] && numcodes > mincodes) --numcodes; /*trim zeroes*/ + tree->maxbitlen = maxbitlen; + tree->numcodes = (unsigned)numcodes; /*number of symbols*/ + tree->lengths = (unsigned*)lodepng_realloc(tree->lengths, numcodes * sizeof(unsigned)); + if(!tree->lengths) return 83; /*alloc fail*/ + /*initialize all lengths to 0*/ + memset(tree->lengths, 0, numcodes * sizeof(unsigned)); + + error = lodepng_huffman_code_lengths(tree->lengths, frequencies, numcodes, maxbitlen); + if(!error) error = HuffmanTree_makeFromLengths2(tree); + return error; +} + +static unsigned HuffmanTree_getCode(const HuffmanTree* tree, unsigned index) +{ + return tree->tree1d[index]; +} + +static unsigned HuffmanTree_getLength(const HuffmanTree* tree, unsigned index) +{ + return tree->lengths[index]; +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +/*get the literal and length code tree of a deflated block with fixed tree, as per the deflate specification*/ +static unsigned generateFixedLitLenTree(HuffmanTree* tree) +{ + unsigned i, error = 0; + unsigned* bitlen = (unsigned*)lodepng_malloc(NUM_DEFLATE_CODE_SYMBOLS * sizeof(unsigned)); + if(!bitlen) return 83; /*alloc fail*/ + + /*288 possible codes: 0-255=literals, 256=endcode, 257-285=lengthcodes, 286-287=unused*/ + for(i = 0; i <= 143; ++i) bitlen[i] = 8; + for(i = 144; i <= 255; ++i) bitlen[i] = 9; + for(i = 256; i <= 279; ++i) bitlen[i] = 7; + for(i = 280; i <= 287; ++i) bitlen[i] = 8; + + error = HuffmanTree_makeFromLengths(tree, bitlen, NUM_DEFLATE_CODE_SYMBOLS, 15); + + lodepng_free(bitlen); + return error; +} + +/*get the distance code tree of a deflated block with fixed tree, as specified in the deflate specification*/ +static unsigned generateFixedDistanceTree(HuffmanTree* tree) +{ + unsigned i, error = 0; + unsigned* bitlen = (unsigned*)lodepng_malloc(NUM_DISTANCE_SYMBOLS * sizeof(unsigned)); + if(!bitlen) return 83; /*alloc fail*/ + + /*there are 32 distance codes, but 30-31 are unused*/ + for(i = 0; i != NUM_DISTANCE_SYMBOLS; ++i) bitlen[i] = 5; + error = HuffmanTree_makeFromLengths(tree, bitlen, NUM_DISTANCE_SYMBOLS, 15); + + lodepng_free(bitlen); + return error; +} + +#ifdef LODEPNG_COMPILE_DECODER + +/* +returns the code, or (unsigned)(-1) if error happened +inbitlength is the length of the complete buffer, in bits (so its byte length times 8) +*/ +static unsigned huffmanDecodeSymbol(const unsigned char* in, size_t* bp, + const HuffmanTree* codetree, size_t inbitlength) +{ + unsigned treepos = 0, ct; + for(;;) + { + if(*bp >= inbitlength) return (unsigned)(-1); /*error: end of input memory reached without endcode*/ + /* + decode the symbol from the tree. The "readBitFromStream" code is inlined in + the expression below because this is the biggest bottleneck while decoding + */ + ct = codetree->tree2d[(treepos << 1) + READBIT(*bp, in)]; + ++(*bp); + if(ct < codetree->numcodes) return ct; /*the symbol is decoded, return it*/ + else treepos = ct - codetree->numcodes; /*symbol not yet decoded, instead move tree position*/ + + if(treepos >= codetree->numcodes) return (unsigned)(-1); /*error: it appeared outside the codetree*/ + } +} +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_DECODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Inflator (Decompressor) / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*get the tree of a deflated block with fixed tree, as specified in the deflate specification*/ +static void getTreeInflateFixed(HuffmanTree* tree_ll, HuffmanTree* tree_d) +{ + /*TODO: check for out of memory errors*/ + generateFixedLitLenTree(tree_ll); + generateFixedDistanceTree(tree_d); +} + +/*get the tree of a deflated block with dynamic tree, the tree itself is also Huffman compressed with a known tree*/ +static unsigned getTreeInflateDynamic(HuffmanTree* tree_ll, HuffmanTree* tree_d, + const unsigned char* in, size_t* bp, size_t inlength) +{ + /*make sure that length values that aren't filled in will be 0, or a wrong tree will be generated*/ + unsigned error = 0; + unsigned n, HLIT, HDIST, HCLEN, i; + size_t inbitlength = inlength * 8; + + /*see comments in deflateDynamic for explanation of the context and these variables, it is analogous*/ + unsigned* bitlen_ll = 0; /*lit,len code lengths*/ + unsigned* bitlen_d = 0; /*dist code lengths*/ + /*code length code lengths ("clcl"), the bit lengths of the huffman tree used to compress bitlen_ll and bitlen_d*/ + unsigned* bitlen_cl = 0; + HuffmanTree tree_cl; /*the code tree for code length codes (the huffman tree for compressed huffman trees)*/ + + if((*bp) + 14 > (inlength << 3)) return 49; /*error: the bit pointer is or will go past the memory*/ + + /*number of literal/length codes + 257. Unlike the spec, the value 257 is added to it here already*/ + HLIT = readBitsFromStream(bp, in, 5) + 257; + /*number of distance codes. Unlike the spec, the value 1 is added to it here already*/ + HDIST = readBitsFromStream(bp, in, 5) + 1; + /*number of code length codes. Unlike the spec, the value 4 is added to it here already*/ + HCLEN = readBitsFromStream(bp, in, 4) + 4; + + if((*bp) + HCLEN * 3 > (inlength << 3)) return 50; /*error: the bit pointer is or will go past the memory*/ + + HuffmanTree_init(&tree_cl); + + while(!error) + { + /*read the code length codes out of 3 * (amount of code length codes) bits*/ + + bitlen_cl = (unsigned*)lodepng_malloc(NUM_CODE_LENGTH_CODES * sizeof(unsigned)); + if(!bitlen_cl) ERROR_BREAK(83 /*alloc fail*/); + + for(i = 0; i != NUM_CODE_LENGTH_CODES; ++i) + { + if(i < HCLEN) bitlen_cl[CLCL_ORDER[i]] = readBitsFromStream(bp, in, 3); + else bitlen_cl[CLCL_ORDER[i]] = 0; /*if not, it must stay 0*/ + } + + error = HuffmanTree_makeFromLengths(&tree_cl, bitlen_cl, NUM_CODE_LENGTH_CODES, 7); + if(error) break; + + /*now we can use this tree to read the lengths for the tree that this function will return*/ + bitlen_ll = (unsigned*)lodepng_malloc(NUM_DEFLATE_CODE_SYMBOLS * sizeof(unsigned)); + bitlen_d = (unsigned*)lodepng_malloc(NUM_DISTANCE_SYMBOLS * sizeof(unsigned)); + if(!bitlen_ll || !bitlen_d) ERROR_BREAK(83 /*alloc fail*/); + for(i = 0; i != NUM_DEFLATE_CODE_SYMBOLS; ++i) bitlen_ll[i] = 0; + for(i = 0; i != NUM_DISTANCE_SYMBOLS; ++i) bitlen_d[i] = 0; + + /*i is the current symbol we're reading in the part that contains the code lengths of lit/len and dist codes*/ + i = 0; + while(i < HLIT + HDIST) + { + unsigned code = huffmanDecodeSymbol(in, bp, &tree_cl, inbitlength); + if(code <= 15) /*a length code*/ + { + if(i < HLIT) bitlen_ll[i] = code; + else bitlen_d[i - HLIT] = code; + ++i; + } + else if(code == 16) /*repeat previous*/ + { + unsigned replength = 3; /*read in the 2 bits that indicate repeat length (3-6)*/ + unsigned value; /*set value to the previous code*/ + + if(i == 0) ERROR_BREAK(54); /*can't repeat previous if i is 0*/ + + if((*bp + 2) > inbitlength) ERROR_BREAK(50); /*error, bit pointer jumps past memory*/ + replength += readBitsFromStream(bp, in, 2); + + if(i < HLIT + 1) value = bitlen_ll[i - 1]; + else value = bitlen_d[i - HLIT - 1]; + /*repeat this value in the next lengths*/ + for(n = 0; n < replength; ++n) + { + if(i >= HLIT + HDIST) ERROR_BREAK(13); /*error: i is larger than the amount of codes*/ + if(i < HLIT) bitlen_ll[i] = value; + else bitlen_d[i - HLIT] = value; + ++i; + } + } + else if(code == 17) /*repeat "0" 3-10 times*/ + { + unsigned replength = 3; /*read in the bits that indicate repeat length*/ + if((*bp + 3) > inbitlength) ERROR_BREAK(50); /*error, bit pointer jumps past memory*/ + replength += readBitsFromStream(bp, in, 3); + + /*repeat this value in the next lengths*/ + for(n = 0; n < replength; ++n) + { + if(i >= HLIT + HDIST) ERROR_BREAK(14); /*error: i is larger than the amount of codes*/ + + if(i < HLIT) bitlen_ll[i] = 0; + else bitlen_d[i - HLIT] = 0; + ++i; + } + } + else if(code == 18) /*repeat "0" 11-138 times*/ + { + unsigned replength = 11; /*read in the bits that indicate repeat length*/ + if((*bp + 7) > inbitlength) ERROR_BREAK(50); /*error, bit pointer jumps past memory*/ + replength += readBitsFromStream(bp, in, 7); + + /*repeat this value in the next lengths*/ + for(n = 0; n < replength; ++n) + { + if(i >= HLIT + HDIST) ERROR_BREAK(15); /*error: i is larger than the amount of codes*/ + + if(i < HLIT) bitlen_ll[i] = 0; + else bitlen_d[i - HLIT] = 0; + ++i; + } + } + else /*if(code == (unsigned)(-1))*/ /*huffmanDecodeSymbol returns (unsigned)(-1) in case of error*/ + { + if(code == (unsigned)(-1)) + { + /*return error code 10 or 11 depending on the situation that happened in huffmanDecodeSymbol + (10=no endcode, 11=wrong jump outside of tree)*/ + error = (*bp) > inbitlength ? 10 : 11; + } + else error = 16; /*unexisting code, this can never happen*/ + break; + } + } + if(error) break; + + if(bitlen_ll[256] == 0) ERROR_BREAK(64); /*the length of the end code 256 must be larger than 0*/ + + /*now we've finally got HLIT and HDIST, so generate the code trees, and the function is done*/ + error = HuffmanTree_makeFromLengths(tree_ll, bitlen_ll, NUM_DEFLATE_CODE_SYMBOLS, 15); + if(error) break; + error = HuffmanTree_makeFromLengths(tree_d, bitlen_d, NUM_DISTANCE_SYMBOLS, 15); + + break; /*end of error-while*/ + } + + lodepng_free(bitlen_cl); + lodepng_free(bitlen_ll); + lodepng_free(bitlen_d); + HuffmanTree_cleanup(&tree_cl); + + return error; +} + +/*inflate a block with dynamic of fixed Huffman tree*/ +static unsigned inflateHuffmanBlock(ucvector* out, const unsigned char* in, size_t* bp, + size_t* pos, size_t inlength, unsigned btype) +{ + unsigned error = 0; + HuffmanTree tree_ll; /*the huffman tree for literal and length codes*/ + HuffmanTree tree_d; /*the huffman tree for distance codes*/ + size_t inbitlength = inlength * 8; + + HuffmanTree_init(&tree_ll); + HuffmanTree_init(&tree_d); + + if(btype == 1) getTreeInflateFixed(&tree_ll, &tree_d); + else if(btype == 2) error = getTreeInflateDynamic(&tree_ll, &tree_d, in, bp, inlength); + + while(!error) /*decode all symbols until end reached, breaks at end code*/ + { + /*code_ll is literal, length or end code*/ + unsigned code_ll = huffmanDecodeSymbol(in, bp, &tree_ll, inbitlength); + if(code_ll <= 255) /*literal symbol*/ + { + /*ucvector_push_back would do the same, but for some reason the two lines below run 10% faster*/ + if(!ucvector_resize(out, (*pos) + 1)) ERROR_BREAK(83 /*alloc fail*/); + out->data[*pos] = (unsigned char)code_ll; + ++(*pos); + } + else if(code_ll >= FIRST_LENGTH_CODE_INDEX && code_ll <= LAST_LENGTH_CODE_INDEX) /*length code*/ + { + unsigned code_d, distance; + unsigned numextrabits_l, numextrabits_d; /*extra bits for length and distance*/ + size_t start, forward, backward, length; + + /*part 1: get length base*/ + length = LENGTHBASE[code_ll - FIRST_LENGTH_CODE_INDEX]; + + /*part 2: get extra bits and add the value of that to length*/ + numextrabits_l = LENGTHEXTRA[code_ll - FIRST_LENGTH_CODE_INDEX]; + if((*bp + numextrabits_l) > inbitlength) ERROR_BREAK(51); /*error, bit pointer will jump past memory*/ + length += readBitsFromStream(bp, in, numextrabits_l); + + /*part 3: get distance code*/ + code_d = huffmanDecodeSymbol(in, bp, &tree_d, inbitlength); + if(code_d > 29) + { + if(code_ll == (unsigned)(-1)) /*huffmanDecodeSymbol returns (unsigned)(-1) in case of error*/ + { + /*return error code 10 or 11 depending on the situation that happened in huffmanDecodeSymbol + (10=no endcode, 11=wrong jump outside of tree)*/ + error = (*bp) > inlength * 8 ? 10 : 11; + } + else error = 18; /*error: invalid distance code (30-31 are never used)*/ + break; + } + distance = DISTANCEBASE[code_d]; + + /*part 4: get extra bits from distance*/ + numextrabits_d = DISTANCEEXTRA[code_d]; + if((*bp + numextrabits_d) > inbitlength) ERROR_BREAK(51); /*error, bit pointer will jump past memory*/ + distance += readBitsFromStream(bp, in, numextrabits_d); + + /*part 5: fill in all the out[n] values based on the length and dist*/ + start = (*pos); + if(distance > start) ERROR_BREAK(52); /*too long backward distance*/ + backward = start - distance; + + if(!ucvector_resize(out, (*pos) + length)) ERROR_BREAK(83 /*alloc fail*/); + if (distance < length) { + for(forward = 0; forward < length; ++forward) + { + out->data[(*pos)++] = out->data[backward++]; + } + } else { + memcpy(out->data + *pos, out->data + backward, length); + *pos += length; + } + } + else if(code_ll == 256) + { + break; /*end code, break the loop*/ + } + else /*if(code == (unsigned)(-1))*/ /*huffmanDecodeSymbol returns (unsigned)(-1) in case of error*/ + { + /*return error code 10 or 11 depending on the situation that happened in huffmanDecodeSymbol + (10=no endcode, 11=wrong jump outside of tree)*/ + error = ((*bp) > inlength * 8) ? 10 : 11; + break; + } + } + + HuffmanTree_cleanup(&tree_ll); + HuffmanTree_cleanup(&tree_d); + + return error; +} + +static unsigned inflateNoCompression(ucvector* out, const unsigned char* in, size_t* bp, size_t* pos, size_t inlength) +{ + size_t p; + unsigned LEN, NLEN, n, error = 0; + + /*go to first boundary of byte*/ + while(((*bp) & 0x7) != 0) ++(*bp); + p = (*bp) / 8; /*byte position*/ + + /*read LEN (2 bytes) and NLEN (2 bytes)*/ + if(p + 4 >= inlength) return 52; /*error, bit pointer will jump past memory*/ + LEN = in[p] + 256u * in[p + 1]; p += 2; + NLEN = in[p] + 256u * in[p + 1]; p += 2; + + /*check if 16-bit NLEN is really the one's complement of LEN*/ + if(LEN + NLEN != 65535) return 21; /*error: NLEN is not one's complement of LEN*/ + + if(!ucvector_resize(out, (*pos) + LEN)) return 83; /*alloc fail*/ + + /*read the literal data: LEN bytes are now stored in the out buffer*/ + if(p + LEN > inlength) return 23; /*error: reading outside of in buffer*/ + for(n = 0; n < LEN; ++n) out->data[(*pos)++] = in[p++]; + + (*bp) = p * 8; + + return error; +} + +static unsigned lodepng_inflatev(ucvector* out, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings) +{ + /*bit pointer in the "in" data, current byte is bp >> 3, current bit is bp & 0x7 (from lsb to msb of the byte)*/ + size_t bp = 0; + unsigned BFINAL = 0; + size_t pos = 0; /*byte position in the out buffer*/ + unsigned error = 0; + + (void)settings; + + while(!BFINAL) + { + unsigned BTYPE; + if(bp + 2 >= insize * 8) return 52; /*error, bit pointer will jump past memory*/ + BFINAL = readBitFromStream(&bp, in); + BTYPE = 1u * readBitFromStream(&bp, in); + BTYPE += 2u * readBitFromStream(&bp, in); + + if(BTYPE == 3) return 20; /*error: invalid BTYPE*/ + else if(BTYPE == 0) error = inflateNoCompression(out, in, &bp, &pos, insize); /*no compression*/ + else error = inflateHuffmanBlock(out, in, &bp, &pos, insize, BTYPE); /*compression, BTYPE 01 or 10*/ + + if(error) return error; + } + + return error; +} + +unsigned lodepng_inflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings) +{ + unsigned error; + ucvector v; + ucvector_init_buffer(&v, *out, *outsize); + error = lodepng_inflatev(&v, in, insize, settings); + *out = v.data; + *outsize = v.size; + return error; +} + +static unsigned inflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings) +{ + if(settings->custom_inflate) + { + return settings->custom_inflate(out, outsize, in, insize, settings); + } + else + { + return lodepng_inflate(out, outsize, in, insize, settings); + } +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Deflator (Compressor) / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +static const size_t MAX_SUPPORTED_DEFLATE_LENGTH = 258; + +/*bitlen is the size in bits of the code*/ +static void addHuffmanSymbol(size_t* bp, ucvector* compressed, unsigned code, unsigned bitlen) +{ + addBitsToStreamReversed(bp, compressed, code, bitlen); +} + +/*search the index in the array, that has the largest value smaller than or equal to the given value, +given array must be sorted (if no value is smaller, it returns the size of the given array)*/ +static size_t searchCodeIndex(const unsigned* array, size_t array_size, size_t value) +{ + /*binary search (only small gain over linear). TODO: use CPU log2 instruction for getting symbols instead*/ + size_t left = 1; + size_t right = array_size - 1; + + while(left <= right) { + size_t mid = (left + right) >> 1; + if (array[mid] >= value) right = mid - 1; + else left = mid + 1; + } + if(left >= array_size || array[left] > value) left--; + return left; +} + +static void addLengthDistance(uivector* values, size_t length, size_t distance) +{ + /*values in encoded vector are those used by deflate: + 0-255: literal bytes + 256: end + 257-285: length/distance pair (length code, followed by extra length bits, distance code, extra distance bits) + 286-287: invalid*/ + + unsigned length_code = (unsigned)searchCodeIndex(LENGTHBASE, 29, length); + unsigned extra_length = (unsigned)(length - LENGTHBASE[length_code]); + unsigned dist_code = (unsigned)searchCodeIndex(DISTANCEBASE, 30, distance); + unsigned extra_distance = (unsigned)(distance - DISTANCEBASE[dist_code]); + + uivector_push_back(values, length_code + FIRST_LENGTH_CODE_INDEX); + uivector_push_back(values, extra_length); + uivector_push_back(values, dist_code); + uivector_push_back(values, extra_distance); +} + +/*3 bytes of data get encoded into two bytes. The hash cannot use more than 3 +bytes as input because 3 is the minimum match length for deflate*/ +static const unsigned HASH_NUM_VALUES = 65536; +static const unsigned HASH_BIT_MASK = 65535; /*HASH_NUM_VALUES - 1, but C90 does not like that as initializer*/ + +typedef struct Hash +{ + int* head; /*hash value to head circular pos - can be outdated if went around window*/ + /*circular pos to prev circular pos*/ + unsigned short* chain; + int* val; /*circular pos to hash value*/ + + /*TODO: do this not only for zeros but for any repeated byte. However for PNG + it's always going to be the zeros that dominate, so not important for PNG*/ + int* headz; /*similar to head, but for chainz*/ + unsigned short* chainz; /*those with same amount of zeros*/ + unsigned short* zeros; /*length of zeros streak, used as a second hash chain*/ +} Hash; + +static unsigned hash_init(Hash* hash, unsigned windowsize) +{ + unsigned i; + hash->head = (int*)lodepng_malloc(sizeof(int) * HASH_NUM_VALUES); + hash->val = (int*)lodepng_malloc(sizeof(int) * windowsize); + hash->chain = (unsigned short*)lodepng_malloc(sizeof(unsigned short) * windowsize); + + hash->zeros = (unsigned short*)lodepng_malloc(sizeof(unsigned short) * windowsize); + hash->headz = (int*)lodepng_malloc(sizeof(int) * (MAX_SUPPORTED_DEFLATE_LENGTH + 1)); + hash->chainz = (unsigned short*)lodepng_malloc(sizeof(unsigned short) * windowsize); + + if(!hash->head || !hash->chain || !hash->val || !hash->headz|| !hash->chainz || !hash->zeros) + { + return 83; /*alloc fail*/ + } + + /*initialize hash table*/ + for(i = 0; i != HASH_NUM_VALUES; ++i) hash->head[i] = -1; + for(i = 0; i != windowsize; ++i) hash->val[i] = -1; + for(i = 0; i != windowsize; ++i) hash->chain[i] = i; /*same value as index indicates uninitialized*/ + + for(i = 0; i <= MAX_SUPPORTED_DEFLATE_LENGTH; ++i) hash->headz[i] = -1; + for(i = 0; i != windowsize; ++i) hash->chainz[i] = i; /*same value as index indicates uninitialized*/ + + return 0; +} + +static void hash_cleanup(Hash* hash) +{ + lodepng_free(hash->head); + lodepng_free(hash->val); + lodepng_free(hash->chain); + + lodepng_free(hash->zeros); + lodepng_free(hash->headz); + lodepng_free(hash->chainz); +} + + + +static unsigned getHash(const unsigned char* data, size_t size, size_t pos) +{ + unsigned result = 0; + if(pos + 2 < size) + { + /*A simple shift and xor hash is used. Since the data of PNGs is dominated + by zeroes due to the filters, a better hash does not have a significant + effect on speed in traversing the chain, and causes more time spend on + calculating the hash.*/ + result ^= (unsigned)(data[pos + 0] << 0u); + result ^= (unsigned)(data[pos + 1] << 4u); + result ^= (unsigned)(data[pos + 2] << 8u); + } else { + size_t amount, i; + if(pos >= size) return 0; + amount = size - pos; + for(i = 0; i != amount; ++i) result ^= (unsigned)(data[pos + i] << (i * 8u)); + } + return result & HASH_BIT_MASK; +} + +static unsigned countZeros(const unsigned char* data, size_t size, size_t pos) +{ + const unsigned char* start = data + pos; + const unsigned char* end = start + MAX_SUPPORTED_DEFLATE_LENGTH; + if(end > data + size) end = data + size; + data = start; + while(data != end && *data == 0) ++data; + /*subtracting two addresses returned as 32-bit number (max value is MAX_SUPPORTED_DEFLATE_LENGTH)*/ + return (unsigned)(data - start); +} + +/*wpos = pos & (windowsize - 1)*/ +static void updateHashChain(Hash* hash, size_t wpos, unsigned hashval, unsigned short numzeros) +{ + hash->val[wpos] = (int)hashval; + if(hash->head[hashval] != -1) hash->chain[wpos] = hash->head[hashval]; + hash->head[hashval] = (unsigned int)wpos; + + hash->zeros[wpos] = numzeros; + if(hash->headz[numzeros] != -1) hash->chainz[wpos] = hash->headz[numzeros]; + hash->headz[numzeros] = (unsigned int)wpos; +} + +/* +LZ77-encode the data. Return value is error code. The input are raw bytes, the output +is in the form of unsigned integers with codes representing for example literal bytes, or +length/distance pairs. +It uses a hash table technique to let it encode faster. When doing LZ77 encoding, a +sliding window (of windowsize) is used, and all past bytes in that window can be used as +the "dictionary". A brute force search through all possible distances would be slow, and +this hash technique is one out of several ways to speed this up. +*/ +static unsigned encodeLZ77(uivector* out, Hash* hash, + const unsigned char* in, size_t inpos, size_t insize, unsigned windowsize, + unsigned minmatch, unsigned nicematch, unsigned lazymatching) +{ + size_t pos; + unsigned i, error = 0; + /*for large window lengths, assume the user wants no compression loss. Otherwise, max hash chain length speedup.*/ + unsigned maxchainlength = windowsize >= 8192 ? windowsize : windowsize / 8; + unsigned maxlazymatch = windowsize >= 8192 ? MAX_SUPPORTED_DEFLATE_LENGTH : 64; + + unsigned usezeros = 1; /*not sure if setting it to false for windowsize < 8192 is better or worse*/ + unsigned numzeros = 0; + + unsigned offset; /*the offset represents the distance in LZ77 terminology*/ + unsigned length; + unsigned lazy = 0; + unsigned lazylength = 0, lazyoffset = 0; + unsigned hashval; + unsigned current_offset, current_length; + unsigned prev_offset; + const unsigned char *lastptr, *foreptr, *backptr; + unsigned hashpos; + + if(windowsize == 0 || windowsize > 32768) return 60; /*error: windowsize smaller/larger than allowed*/ + if((windowsize & (windowsize - 1)) != 0) return 90; /*error: must be power of two*/ + + if(nicematch > MAX_SUPPORTED_DEFLATE_LENGTH) nicematch = MAX_SUPPORTED_DEFLATE_LENGTH; + + for(pos = inpos; pos < insize; ++pos) + { + size_t wpos = pos & (windowsize - 1); /*position for in 'circular' hash buffers*/ + unsigned chainlength = 0; + + hashval = getHash(in, insize, pos); + + if(usezeros && hashval == 0) + { + if(numzeros == 0) numzeros = countZeros(in, insize, pos); + else if(pos + numzeros > insize || in[pos + numzeros - 1] != 0) --numzeros; + } + else + { + numzeros = 0; + } + + updateHashChain(hash, wpos, hashval, numzeros); + + /*the length and offset found for the current position*/ + length = 0; + offset = 0; + + hashpos = hash->chain[wpos]; + + lastptr = &in[insize < pos + MAX_SUPPORTED_DEFLATE_LENGTH ? insize : pos + MAX_SUPPORTED_DEFLATE_LENGTH]; + + /*search for the longest string*/ + prev_offset = 0; + for(;;) + { + if(chainlength++ >= maxchainlength) break; + current_offset = hashpos <= (unsigned int)wpos ? (unsigned int)wpos - hashpos : (unsigned int)wpos - hashpos + windowsize; + + if(current_offset < prev_offset) break; /*stop when went completely around the circular buffer*/ + prev_offset = current_offset; + if(current_offset > 0) + { + /*test the next characters*/ + foreptr = &in[pos]; + backptr = &in[pos - current_offset]; + + /*common case in PNGs is lots of zeros. Quickly skip over them as a speedup*/ + if(numzeros >= 3) + { + unsigned skip = hash->zeros[hashpos]; + if(skip > numzeros) skip = numzeros; + backptr += skip; + foreptr += skip; + } + + while(foreptr != lastptr && *backptr == *foreptr) /*maximum supported length by deflate is max length*/ + { + ++backptr; + ++foreptr; + } + current_length = (unsigned)(foreptr - &in[pos]); + + if(current_length > length) + { + length = current_length; /*the longest length*/ + offset = current_offset; /*the offset that is related to this longest length*/ + /*jump out once a length of max length is found (speed gain). This also jumps + out if length is MAX_SUPPORTED_DEFLATE_LENGTH*/ + if(current_length >= nicematch) break; + } + } + + if(hashpos == hash->chain[hashpos]) break; + + if(numzeros >= 3 && length > numzeros) + { + hashpos = hash->chainz[hashpos]; + if(hash->zeros[hashpos] != numzeros) break; + } + else + { + hashpos = hash->chain[hashpos]; + /*outdated hash value, happens if particular value was not encountered in whole last window*/ + if(hash->val[hashpos] != (int)hashval) break; + } + } + + if(lazymatching) + { + if(!lazy && length >= 3 && length <= maxlazymatch && length < MAX_SUPPORTED_DEFLATE_LENGTH) + { + lazy = 1; + lazylength = length; + lazyoffset = offset; + continue; /*try the next byte*/ + } + if(lazy) + { + lazy = 0; + if(pos == 0) ERROR_BREAK(81); + if(length > lazylength + 1) + { + /*push the previous character as literal*/ + if(!uivector_push_back(out, in[pos - 1])) ERROR_BREAK(83 /*alloc fail*/); + } + else + { + length = lazylength; + offset = lazyoffset; + hash->head[hashval] = -1; /*the same hashchain update will be done, this ensures no wrong alteration*/ + hash->headz[numzeros] = -1; /*idem*/ + --pos; + } + } + } + if(length >= 3 && offset > windowsize) ERROR_BREAK(86 /*too big (or overflown negative) offset*/); + + /*encode it as length/distance pair or literal value*/ + if(length < 3) /*only lengths of 3 or higher are supported as length/distance pair*/ + { + if(!uivector_push_back(out, in[pos])) ERROR_BREAK(83 /*alloc fail*/); + } + else if(length < minmatch || (length == 3 && offset > 4096)) + { + /*compensate for the fact that longer offsets have more extra bits, a + length of only 3 may be not worth it then*/ + if(!uivector_push_back(out, in[pos])) ERROR_BREAK(83 /*alloc fail*/); + } + else + { + addLengthDistance(out, length, offset); + for(i = 1; i < length; ++i) + { + ++pos; + wpos = pos & (windowsize - 1); + hashval = getHash(in, insize, pos); + if(usezeros && hashval == 0) + { + if(numzeros == 0) numzeros = countZeros(in, insize, pos); + else if(pos + numzeros > insize || in[pos + numzeros - 1] != 0) --numzeros; + } + else + { + numzeros = 0; + } + updateHashChain(hash, wpos, hashval, numzeros); + } + } + } /*end of the loop through each character of input*/ + + return error; +} + +/* /////////////////////////////////////////////////////////////////////////// */ + +static unsigned deflateNoCompression(ucvector* out, const unsigned char* data, size_t datasize) +{ + /*non compressed deflate block data: 1 bit BFINAL,2 bits BTYPE,(5 bits): it jumps to start of next byte, + 2 bytes LEN, 2 bytes NLEN, LEN bytes literal DATA*/ + + size_t i, j, numdeflateblocks = (datasize + 65534) / 65535; + unsigned datapos = 0; + for(i = 0; i != numdeflateblocks; ++i) + { + unsigned BFINAL, BTYPE, LEN, NLEN; + unsigned char firstbyte; + + BFINAL = (i == numdeflateblocks - 1); + BTYPE = 0; + + firstbyte = (unsigned char)(BFINAL + ((BTYPE & 1) << 1) + ((BTYPE & 2) << 1)); + ucvector_push_back(out, firstbyte); + + LEN = 65535; + if(datasize - datapos < 65535) LEN = (unsigned)datasize - datapos; + NLEN = 65535 - LEN; + + ucvector_push_back(out, (unsigned char)(LEN & 255)); + ucvector_push_back(out, (unsigned char)(LEN >> 8)); + ucvector_push_back(out, (unsigned char)(NLEN & 255)); + ucvector_push_back(out, (unsigned char)(NLEN >> 8)); + + /*Decompressed data*/ + for(j = 0; j < 65535 && datapos < datasize; ++j) + { + ucvector_push_back(out, data[datapos++]); + } + } + + return 0; +} + +/* +write the lz77-encoded data, which has lit, len and dist codes, to compressed stream using huffman trees. +tree_ll: the tree for lit and len codes. +tree_d: the tree for distance codes. +*/ +static void writeLZ77data(size_t* bp, ucvector* out, const uivector* lz77_encoded, + const HuffmanTree* tree_ll, const HuffmanTree* tree_d) +{ + size_t i = 0; + for(i = 0; i != lz77_encoded->size; ++i) + { + unsigned val = lz77_encoded->data[i]; + addHuffmanSymbol(bp, out, HuffmanTree_getCode(tree_ll, val), HuffmanTree_getLength(tree_ll, val)); + if(val > 256) /*for a length code, 3 more things have to be added*/ + { + unsigned length_index = val - FIRST_LENGTH_CODE_INDEX; + unsigned n_length_extra_bits = LENGTHEXTRA[length_index]; + unsigned length_extra_bits = lz77_encoded->data[++i]; + + unsigned distance_code = lz77_encoded->data[++i]; + + unsigned distance_index = distance_code; + unsigned n_distance_extra_bits = DISTANCEEXTRA[distance_index]; + unsigned distance_extra_bits = lz77_encoded->data[++i]; + + addBitsToStream(bp, out, length_extra_bits, n_length_extra_bits); + addHuffmanSymbol(bp, out, HuffmanTree_getCode(tree_d, distance_code), + HuffmanTree_getLength(tree_d, distance_code)); + addBitsToStream(bp, out, distance_extra_bits, n_distance_extra_bits); + } + } +} + +/*Deflate for a block of type "dynamic", that is, with freely, optimally, created huffman trees*/ +static unsigned deflateDynamic(ucvector* out, size_t* bp, Hash* hash, + const unsigned char* data, size_t datapos, size_t dataend, + const LodePNGCompressSettings* settings, unsigned final) +{ + unsigned error = 0; + + /* + A block is compressed as follows: The PNG data is lz77 encoded, resulting in + literal bytes and length/distance pairs. This is then huffman compressed with + two huffman trees. One huffman tree is used for the lit and len values ("ll"), + another huffman tree is used for the dist values ("d"). These two trees are + stored using their code lengths, and to compress even more these code lengths + are also run-length encoded and huffman compressed. This gives a huffman tree + of code lengths "cl". The code lenghts used to describe this third tree are + the code length code lengths ("clcl"). + */ + + /*The lz77 encoded data, represented with integers since there will also be length and distance codes in it*/ + uivector lz77_encoded; + HuffmanTree tree_ll; /*tree for lit,len values*/ + HuffmanTree tree_d; /*tree for distance codes*/ + HuffmanTree tree_cl; /*tree for encoding the code lengths representing tree_ll and tree_d*/ + uivector frequencies_ll; /*frequency of lit,len codes*/ + uivector frequencies_d; /*frequency of dist codes*/ + uivector frequencies_cl; /*frequency of code length codes*/ + uivector bitlen_lld; /*lit,len,dist code lenghts (int bits), literally (without repeat codes).*/ + uivector bitlen_lld_e; /*bitlen_lld encoded with repeat codes (this is a rudemtary run length compression)*/ + /*bitlen_cl is the code length code lengths ("clcl"). The bit lengths of codes to represent tree_cl + (these are written as is in the file, it would be crazy to compress these using yet another huffman + tree that needs to be represented by yet another set of code lengths)*/ + uivector bitlen_cl; + size_t datasize = dataend - datapos; + + /* + Due to the huffman compression of huffman tree representations ("two levels"), there are some anologies: + bitlen_lld is to tree_cl what data is to tree_ll and tree_d. + bitlen_lld_e is to bitlen_lld what lz77_encoded is to data. + bitlen_cl is to bitlen_lld_e what bitlen_lld is to lz77_encoded. + */ + + unsigned BFINAL = final; + size_t numcodes_ll, numcodes_d, i; + unsigned HLIT, HDIST, HCLEN; + + uivector_init(&lz77_encoded); + HuffmanTree_init(&tree_ll); + HuffmanTree_init(&tree_d); + HuffmanTree_init(&tree_cl); + uivector_init(&frequencies_ll); + uivector_init(&frequencies_d); + uivector_init(&frequencies_cl); + uivector_init(&bitlen_lld); + uivector_init(&bitlen_lld_e); + uivector_init(&bitlen_cl); + + /*This while loop never loops due to a break at the end, it is here to + allow breaking out of it to the cleanup phase on error conditions.*/ + while(!error) + { + if(settings->use_lz77) + { + error = encodeLZ77(&lz77_encoded, hash, data, datapos, dataend, settings->windowsize, + settings->minmatch, settings->nicematch, settings->lazymatching); + if(error) break; + } + else + { + if(!uivector_resize(&lz77_encoded, datasize)) ERROR_BREAK(83 /*alloc fail*/); + for(i = datapos; i < dataend; ++i) lz77_encoded.data[i - datapos] = data[i]; /*no LZ77, but still will be Huffman compressed*/ + } + + if(!uivector_resizev(&frequencies_ll, 286, 0)) ERROR_BREAK(83 /*alloc fail*/); + if(!uivector_resizev(&frequencies_d, 30, 0)) ERROR_BREAK(83 /*alloc fail*/); + + /*Count the frequencies of lit, len and dist codes*/ + for(i = 0; i != lz77_encoded.size; ++i) + { + unsigned symbol = lz77_encoded.data[i]; + ++frequencies_ll.data[symbol]; + if(symbol > 256) + { + unsigned dist = lz77_encoded.data[i + 2]; + ++frequencies_d.data[dist]; + i += 3; + } + } + frequencies_ll.data[256] = 1; /*there will be exactly 1 end code, at the end of the block*/ + + /*Make both huffman trees, one for the lit and len codes, one for the dist codes*/ + error = HuffmanTree_makeFromFrequencies(&tree_ll, frequencies_ll.data, 257, frequencies_ll.size, 15); + if(error) break; + /*2, not 1, is chosen for mincodes: some buggy PNG decoders require at least 2 symbols in the dist tree*/ + error = HuffmanTree_makeFromFrequencies(&tree_d, frequencies_d.data, 2, frequencies_d.size, 15); + if(error) break; + + numcodes_ll = tree_ll.numcodes; if(numcodes_ll > 286) numcodes_ll = 286; + numcodes_d = tree_d.numcodes; if(numcodes_d > 30) numcodes_d = 30; + /*store the code lengths of both generated trees in bitlen_lld*/ + for(i = 0; i != numcodes_ll; ++i) uivector_push_back(&bitlen_lld, HuffmanTree_getLength(&tree_ll, (unsigned)i)); + for(i = 0; i != numcodes_d; ++i) uivector_push_back(&bitlen_lld, HuffmanTree_getLength(&tree_d, (unsigned)i)); + + /*run-length compress bitlen_ldd into bitlen_lld_e by using repeat codes 16 (copy length 3-6 times), + 17 (3-10 zeroes), 18 (11-138 zeroes)*/ + for(i = 0; i != (unsigned)bitlen_lld.size; ++i) + { + unsigned j = 0; /*amount of repititions*/ + while(i + j + 1 < (unsigned)bitlen_lld.size && bitlen_lld.data[i + j + 1] == bitlen_lld.data[i]) ++j; + + if(bitlen_lld.data[i] == 0 && j >= 2) /*repeat code for zeroes*/ + { + ++j; /*include the first zero*/ + if(j <= 10) /*repeat code 17 supports max 10 zeroes*/ + { + uivector_push_back(&bitlen_lld_e, 17); + uivector_push_back(&bitlen_lld_e, j - 3); + } + else /*repeat code 18 supports max 138 zeroes*/ + { + if(j > 138) j = 138; + uivector_push_back(&bitlen_lld_e, 18); + uivector_push_back(&bitlen_lld_e, j - 11); + } + i += (j - 1); + } + else if(j >= 3) /*repeat code for value other than zero*/ + { + size_t k; + unsigned num = j / 6, rest = j % 6; + uivector_push_back(&bitlen_lld_e, bitlen_lld.data[i]); + for(k = 0; k < num; ++k) + { + uivector_push_back(&bitlen_lld_e, 16); + uivector_push_back(&bitlen_lld_e, 6 - 3); + } + if(rest >= 3) + { + uivector_push_back(&bitlen_lld_e, 16); + uivector_push_back(&bitlen_lld_e, rest - 3); + } + else j -= rest; + i += j; + } + else /*too short to benefit from repeat code*/ + { + uivector_push_back(&bitlen_lld_e, bitlen_lld.data[i]); + } + } + + /*generate tree_cl, the huffmantree of huffmantrees*/ + + if(!uivector_resizev(&frequencies_cl, NUM_CODE_LENGTH_CODES, 0)) ERROR_BREAK(83 /*alloc fail*/); + for(i = 0; i != bitlen_lld_e.size; ++i) + { + ++frequencies_cl.data[bitlen_lld_e.data[i]]; + /*after a repeat code come the bits that specify the number of repetitions, + those don't need to be in the frequencies_cl calculation*/ + if(bitlen_lld_e.data[i] >= 16) ++i; + } + + error = HuffmanTree_makeFromFrequencies(&tree_cl, frequencies_cl.data, + frequencies_cl.size, frequencies_cl.size, 7); + if(error) break; + + if(!uivector_resize(&bitlen_cl, tree_cl.numcodes)) ERROR_BREAK(83 /*alloc fail*/); + for(i = 0; i != tree_cl.numcodes; ++i) + { + /*lenghts of code length tree is in the order as specified by deflate*/ + bitlen_cl.data[i] = HuffmanTree_getLength(&tree_cl, CLCL_ORDER[i]); + } + while(bitlen_cl.data[bitlen_cl.size - 1] == 0 && bitlen_cl.size > 4) + { + /*remove zeros at the end, but minimum size must be 4*/ + if(!uivector_resize(&bitlen_cl, bitlen_cl.size - 1)) ERROR_BREAK(83 /*alloc fail*/); + } + if(error) break; + + /* + Write everything into the output + + After the BFINAL and BTYPE, the dynamic block consists out of the following: + - 5 bits HLIT, 5 bits HDIST, 4 bits HCLEN + - (HCLEN+4)*3 bits code lengths of code length alphabet + - HLIT + 257 code lenghts of lit/length alphabet (encoded using the code length + alphabet, + possible repetition codes 16, 17, 18) + - HDIST + 1 code lengths of distance alphabet (encoded using the code length + alphabet, + possible repetition codes 16, 17, 18) + - compressed data + - 256 (end code) + */ + + /*Write block type*/ + addBitToStream(bp, out, BFINAL); + addBitToStream(bp, out, 0); /*first bit of BTYPE "dynamic"*/ + addBitToStream(bp, out, 1); /*second bit of BTYPE "dynamic"*/ + + /*write the HLIT, HDIST and HCLEN values*/ + HLIT = (unsigned)(numcodes_ll - 257); + HDIST = (unsigned)(numcodes_d - 1); + HCLEN = (unsigned)bitlen_cl.size - 4; + /*trim zeroes for HCLEN. HLIT and HDIST were already trimmed at tree creation*/ + while(!bitlen_cl.data[HCLEN + 4 - 1] && HCLEN > 0) --HCLEN; + addBitsToStream(bp, out, HLIT, 5); + addBitsToStream(bp, out, HDIST, 5); + addBitsToStream(bp, out, HCLEN, 4); + + /*write the code lenghts of the code length alphabet*/ + for(i = 0; i != HCLEN + 4; ++i) addBitsToStream(bp, out, bitlen_cl.data[i], 3); + + /*write the lenghts of the lit/len AND the dist alphabet*/ + for(i = 0; i != bitlen_lld_e.size; ++i) + { + addHuffmanSymbol(bp, out, HuffmanTree_getCode(&tree_cl, bitlen_lld_e.data[i]), + HuffmanTree_getLength(&tree_cl, bitlen_lld_e.data[i])); + /*extra bits of repeat codes*/ + if(bitlen_lld_e.data[i] == 16) addBitsToStream(bp, out, bitlen_lld_e.data[++i], 2); + else if(bitlen_lld_e.data[i] == 17) addBitsToStream(bp, out, bitlen_lld_e.data[++i], 3); + else if(bitlen_lld_e.data[i] == 18) addBitsToStream(bp, out, bitlen_lld_e.data[++i], 7); + } + + /*write the compressed data symbols*/ + writeLZ77data(bp, out, &lz77_encoded, &tree_ll, &tree_d); + /*error: the length of the end code 256 must be larger than 0*/ + if(HuffmanTree_getLength(&tree_ll, 256) == 0) ERROR_BREAK(64); + + /*write the end code*/ + addHuffmanSymbol(bp, out, HuffmanTree_getCode(&tree_ll, 256), HuffmanTree_getLength(&tree_ll, 256)); + + break; /*end of error-while*/ + } + + /*cleanup*/ + uivector_cleanup(&lz77_encoded); + HuffmanTree_cleanup(&tree_ll); + HuffmanTree_cleanup(&tree_d); + HuffmanTree_cleanup(&tree_cl); + uivector_cleanup(&frequencies_ll); + uivector_cleanup(&frequencies_d); + uivector_cleanup(&frequencies_cl); + uivector_cleanup(&bitlen_lld_e); + uivector_cleanup(&bitlen_lld); + uivector_cleanup(&bitlen_cl); + + return error; +} + +static unsigned deflateFixed(ucvector* out, size_t* bp, Hash* hash, + const unsigned char* data, + size_t datapos, size_t dataend, + const LodePNGCompressSettings* settings, unsigned final) +{ + HuffmanTree tree_ll; /*tree for literal values and length codes*/ + HuffmanTree tree_d; /*tree for distance codes*/ + + unsigned BFINAL = final; + unsigned error = 0; + size_t i; + + HuffmanTree_init(&tree_ll); + HuffmanTree_init(&tree_d); + + generateFixedLitLenTree(&tree_ll); + generateFixedDistanceTree(&tree_d); + + addBitToStream(bp, out, BFINAL); + addBitToStream(bp, out, 1); /*first bit of BTYPE*/ + addBitToStream(bp, out, 0); /*second bit of BTYPE*/ + + if(settings->use_lz77) /*LZ77 encoded*/ + { + uivector lz77_encoded; + uivector_init(&lz77_encoded); + error = encodeLZ77(&lz77_encoded, hash, data, datapos, dataend, settings->windowsize, + settings->minmatch, settings->nicematch, settings->lazymatching); + if(!error) writeLZ77data(bp, out, &lz77_encoded, &tree_ll, &tree_d); + uivector_cleanup(&lz77_encoded); + } + else /*no LZ77, but still will be Huffman compressed*/ + { + for(i = datapos; i < dataend; ++i) + { + addHuffmanSymbol(bp, out, HuffmanTree_getCode(&tree_ll, data[i]), HuffmanTree_getLength(&tree_ll, data[i])); + } + } + /*add END code*/ + if(!error) addHuffmanSymbol(bp, out, HuffmanTree_getCode(&tree_ll, 256), HuffmanTree_getLength(&tree_ll, 256)); + + /*cleanup*/ + HuffmanTree_cleanup(&tree_ll); + HuffmanTree_cleanup(&tree_d); + + return error; +} + +static unsigned lodepng_deflatev(ucvector* out, const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings) +{ + unsigned error = 0; + size_t i, blocksize, numdeflateblocks; + size_t bp = 0; /*the bit pointer*/ + Hash hash; + + if(settings->btype > 2) return 61; + else if(settings->btype == 0) return deflateNoCompression(out, in, insize); + else if(settings->btype == 1) blocksize = insize; + else /*if(settings->btype == 2)*/ + { + /*on PNGs, deflate blocks of 65-262k seem to give most dense encoding*/ + blocksize = insize / 8 + 8; + if(blocksize < 65536) blocksize = 65536; + if(blocksize > 262144) blocksize = 262144; + } + + numdeflateblocks = (insize + blocksize - 1) / blocksize; + if(numdeflateblocks == 0) numdeflateblocks = 1; + + error = hash_init(&hash, settings->windowsize); + if(error) return error; + + for(i = 0; i != numdeflateblocks && !error; ++i) + { + unsigned final = (i == numdeflateblocks - 1); + size_t start = i * blocksize; + size_t end = start + blocksize; + if(end > insize) end = insize; + + if(settings->btype == 1) error = deflateFixed(out, &bp, &hash, in, start, end, settings, final); + else if(settings->btype == 2) error = deflateDynamic(out, &bp, &hash, in, start, end, settings, final); + } + + hash_cleanup(&hash); + + return error; +} + +unsigned lodepng_deflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings) +{ + unsigned error; + ucvector v; + ucvector_init_buffer(&v, *out, *outsize); + error = lodepng_deflatev(&v, in, insize, settings); + *out = v.data; + *outsize = v.size; + return error; +} + +static unsigned deflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings) +{ + if(settings->custom_deflate) + { + return settings->custom_deflate(out, outsize, in, insize, settings); + } + else + { + return lodepng_deflate(out, outsize, in, insize, settings); + } +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Adler32 */ +/* ////////////////////////////////////////////////////////////////////////// */ + +static unsigned update_adler32(unsigned adler, const unsigned char* data, unsigned len) +{ + unsigned s1 = adler & 0xffff; + unsigned s2 = (adler >> 16) & 0xffff; + + while(len > 0) + { + /*at least 5550 sums can be done before the sums overflow, saving a lot of module divisions*/ + unsigned amount = len > 5550 ? 5550 : len; + len -= amount; + while(amount > 0) + { + s1 += (*data++); + s2 += s1; + --amount; + } + s1 %= 65521; + s2 %= 65521; + } + + return (s2 << 16) | s1; +} + +/*Return the adler32 of the bytes data[0..len-1]*/ +static unsigned adler32(const unsigned char* data, unsigned len) +{ + return update_adler32(1L, data, len); +} + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Zlib / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_DECODER + +unsigned lodepng_zlib_decompress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGDecompressSettings* settings) +{ + unsigned error = 0; + unsigned CM, CINFO, FDICT; + + if(insize < 2) return 53; /*error, size of zlib data too small*/ + /*read information from zlib header*/ + if((in[0] * 256 + in[1]) % 31 != 0) + { + /*error: 256 * in[0] + in[1] must be a multiple of 31, the FCHECK value is supposed to be made that way*/ + return 24; + } + + CM = in[0] & 15; + CINFO = (in[0] >> 4) & 15; + /*FCHECK = in[1] & 31;*/ /*FCHECK is already tested above*/ + FDICT = (in[1] >> 5) & 1; + /*FLEVEL = (in[1] >> 6) & 3;*/ /*FLEVEL is not used here*/ + + if(CM != 8 || CINFO > 7) + { + /*error: only compression method 8: inflate with sliding window of 32k is supported by the PNG spec*/ + return 25; + } + if(FDICT != 0) + { + /*error: the specification of PNG says about the zlib stream: + "The additional flags shall not specify a preset dictionary."*/ + return 26; + } + + error = inflate(out, outsize, in + 2, insize - 2, settings); + if(error) return error; + + if(!settings->ignore_adler32) + { + unsigned ADLER32 = lodepng_read32bitInt(&in[insize - 4]); + unsigned checksum = adler32(*out, (unsigned)(*outsize)); + if(checksum != ADLER32) return 58; /*error, adler checksum not correct, data must be corrupted*/ + } + + return 0; /*no error*/ +} + +static unsigned zlib_decompress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGDecompressSettings* settings) +{ + if(settings->custom_zlib) + { + return settings->custom_zlib(out, outsize, in, insize, settings); + } + else + { + return lodepng_zlib_decompress(out, outsize, in, insize, settings); + } +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER + +unsigned lodepng_zlib_compress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGCompressSettings* settings) +{ + /*initially, *out must be NULL and outsize 0, if you just give some random *out + that's pointing to a non allocated buffer, this'll crash*/ + ucvector outv; + size_t i; + unsigned error; + unsigned char* deflatedata = 0; + size_t deflatesize = 0; + + /*zlib data: 1 byte CMF (CM+CINFO), 1 byte FLG, deflate data, 4 byte ADLER32 checksum of the Decompressed data*/ + unsigned CMF = 120; /*0b01111000: CM 8, CINFO 7. With CINFO 7, any window size up to 32768 can be used.*/ + unsigned FLEVEL = 0; + unsigned FDICT = 0; + unsigned CMFFLG = 256 * CMF + FDICT * 32 + FLEVEL * 64; + unsigned FCHECK = 31 - CMFFLG % 31; + CMFFLG += FCHECK; + + /*ucvector-controlled version of the output buffer, for dynamic array*/ + ucvector_init_buffer(&outv, *out, *outsize); + + ucvector_push_back(&outv, (unsigned char)(CMFFLG >> 8)); + ucvector_push_back(&outv, (unsigned char)(CMFFLG & 255)); + + error = deflate(&deflatedata, &deflatesize, in, insize, settings); + + if(!error) + { + unsigned ADLER32 = adler32(in, (unsigned)insize); + for(i = 0; i != deflatesize; ++i) ucvector_push_back(&outv, deflatedata[i]); + lodepng_free(deflatedata); + lodepng_add32bitInt(&outv, ADLER32); + } + + *out = outv.data; + *outsize = outv.size; + + return error; +} + +/* compress using the default or custom zlib function */ +static unsigned zlib_compress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGCompressSettings* settings) +{ + if(settings->custom_zlib) + { + return settings->custom_zlib(out, outsize, in, insize, settings); + } + else + { + return lodepng_zlib_compress(out, outsize, in, insize, settings); + } +} + +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#else /*no LODEPNG_COMPILE_ZLIB*/ + +#ifdef LODEPNG_COMPILE_DECODER +static unsigned zlib_decompress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGDecompressSettings* settings) +{ + if(!settings->custom_zlib) return 87; /*no custom zlib function provided */ + return settings->custom_zlib(out, outsize, in, insize, settings); +} +#endif /*LODEPNG_COMPILE_DECODER*/ +#ifdef LODEPNG_COMPILE_ENCODER +static unsigned zlib_compress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGCompressSettings* settings) +{ + if(!settings->custom_zlib) return 87; /*no custom zlib function provided */ + return settings->custom_zlib(out, outsize, in, insize, settings); +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#endif /*LODEPNG_COMPILE_ZLIB*/ + +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_ENCODER + +/*this is a good tradeoff between speed and compression ratio*/ +#define DEFAULT_WINDOWSIZE 2048 + +void lodepng_compress_settings_init(LodePNGCompressSettings* settings) +{ + /*compress with dynamic huffman tree (not in the mathematical sense, just not the predefined one)*/ + settings->btype = 2; + settings->use_lz77 = 1; + settings->windowsize = DEFAULT_WINDOWSIZE; + settings->minmatch = 3; + settings->nicematch = 128; + settings->lazymatching = 1; + + settings->custom_zlib = 0; + settings->custom_deflate = 0; + settings->custom_context = 0; +} + +const LodePNGCompressSettings lodepng_default_compress_settings = {2, 1, DEFAULT_WINDOWSIZE, 3, 128, 1, 0, 0, 0}; + + +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_DECODER + +void lodepng_decompress_settings_init(LodePNGDecompressSettings* settings) +{ + settings->ignore_adler32 = 0; + + settings->custom_zlib = 0; + settings->custom_inflate = 0; + settings->custom_context = 0; +} + +const LodePNGDecompressSettings lodepng_default_decompress_settings = {0, 0, 0, 0}; + +#endif /*LODEPNG_COMPILE_DECODER*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // End of Zlib related code. Begin of PNG related code. // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_PNG + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / CRC32 / */ +/* ////////////////////////////////////////////////////////////////////////// */ + + +#ifndef LODEPNG_NO_COMPILE_CRC +/* CRC polynomial: 0xedb88320 */ +static unsigned lodepng_crc32_table[256] = { + 0u, 1996959894u, 3993919788u, 2567524794u, 124634137u, 1886057615u, 3915621685u, 2657392035u, + 249268274u, 2044508324u, 3772115230u, 2547177864u, 162941995u, 2125561021u, 3887607047u, 2428444049u, + 498536548u, 1789927666u, 4089016648u, 2227061214u, 450548861u, 1843258603u, 4107580753u, 2211677639u, + 325883990u, 1684777152u, 4251122042u, 2321926636u, 335633487u, 1661365465u, 4195302755u, 2366115317u, + 997073096u, 1281953886u, 3579855332u, 2724688242u, 1006888145u, 1258607687u, 3524101629u, 2768942443u, + 901097722u, 1119000684u, 3686517206u, 2898065728u, 853044451u, 1172266101u, 3705015759u, 2882616665u, + 651767980u, 1373503546u, 3369554304u, 3218104598u, 565507253u, 1454621731u, 3485111705u, 3099436303u, + 671266974u, 1594198024u, 3322730930u, 2970347812u, 795835527u, 1483230225u, 3244367275u, 3060149565u, + 1994146192u, 31158534u, 2563907772u, 4023717930u, 1907459465u, 112637215u, 2680153253u, 3904427059u, + 2013776290u, 251722036u, 2517215374u, 3775830040u, 2137656763u, 141376813u, 2439277719u, 3865271297u, + 1802195444u, 476864866u, 2238001368u, 4066508878u, 1812370925u, 453092731u, 2181625025u, 4111451223u, + 1706088902u, 314042704u, 2344532202u, 4240017532u, 1658658271u, 366619977u, 2362670323u, 4224994405u, + 1303535960u, 984961486u, 2747007092u, 3569037538u, 1256170817u, 1037604311u, 2765210733u, 3554079995u, + 1131014506u, 879679996u, 2909243462u, 3663771856u, 1141124467u, 855842277u, 2852801631u, 3708648649u, + 1342533948u, 654459306u, 3188396048u, 3373015174u, 1466479909u, 544179635u, 3110523913u, 3462522015u, + 1591671054u, 702138776u, 2966460450u, 3352799412u, 1504918807u, 783551873u, 3082640443u, 3233442989u, + 3988292384u, 2596254646u, 62317068u, 1957810842u, 3939845945u, 2647816111u, 81470997u, 1943803523u, + 3814918930u, 2489596804u, 225274430u, 2053790376u, 3826175755u, 2466906013u, 167816743u, 2097651377u, + 4027552580u, 2265490386u, 503444072u, 1762050814u, 4150417245u, 2154129355u, 426522225u, 1852507879u, + 4275313526u, 2312317920u, 282753626u, 1742555852u, 4189708143u, 2394877945u, 397917763u, 1622183637u, + 3604390888u, 2714866558u, 953729732u, 1340076626u, 3518719985u, 2797360999u, 1068828381u, 1219638859u, + 3624741850u, 2936675148u, 906185462u, 1090812512u, 3747672003u, 2825379669u, 829329135u, 1181335161u, + 3412177804u, 3160834842u, 628085408u, 1382605366u, 3423369109u, 3138078467u, 570562233u, 1426400815u, + 3317316542u, 2998733608u, 733239954u, 1555261956u, 3268935591u, 3050360625u, 752459403u, 1541320221u, + 2607071920u, 3965973030u, 1969922972u, 40735498u, 2617837225u, 3943577151u, 1913087877u, 83908371u, + 2512341634u, 3803740692u, 2075208622u, 213261112u, 2463272603u, 3855990285u, 2094854071u, 198958881u, + 2262029012u, 4057260610u, 1759359992u, 534414190u, 2176718541u, 4139329115u, 1873836001u, 414664567u, + 2282248934u, 4279200368u, 1711684554u, 285281116u, 2405801727u, 4167216745u, 1634467795u, 376229701u, + 2685067896u, 3608007406u, 1308918612u, 956543938u, 2808555105u, 3495958263u, 1231636301u, 1047427035u, + 2932959818u, 3654703836u, 1088359270u, 936918000u, 2847714899u, 3736837829u, 1202900863u, 817233897u, + 3183342108u, 3401237130u, 1404277552u, 615818150u, 3134207493u, 3453421203u, 1423857449u, 601450431u, + 3009837614u, 3294710456u, 1567103746u, 711928724u, 3020668471u, 3272380065u, 1510334235u, 755167117u +}; + +/*Return the CRC of the bytes buf[0..len-1].*/ +unsigned lodepng_crc32(const unsigned char* data, size_t length) +{ + unsigned r = 0xffffffffu; + size_t i; + for(i = 0; i < length; ++i) + { + r = lodepng_crc32_table[(r ^ data[i]) & 0xff] ^ (r >> 8); + } + return r ^ 0xffffffffu; +} +#else /* !LODEPNG_NO_COMPILE_CRC */ +unsigned lodepng_crc32(const unsigned char* data, size_t length); +#endif /* !LODEPNG_NO_COMPILE_CRC */ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Reading and writing single bits and bytes from/to stream for LodePNG / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +static unsigned char readBitFromReversedStream(size_t* bitpointer, const unsigned char* bitstream) +{ + unsigned char result = (unsigned char)((bitstream[(*bitpointer) >> 3] >> (7 - ((*bitpointer) & 0x7))) & 1); + ++(*bitpointer); + return result; +} + +static unsigned readBitsFromReversedStream(size_t* bitpointer, const unsigned char* bitstream, size_t nbits) +{ + unsigned result = 0; + size_t i; + for(i = nbits - 1; i < nbits; --i) + { + result += (unsigned)readBitFromReversedStream(bitpointer, bitstream) << i; + } + return result; +} + +#ifdef LODEPNG_COMPILE_DECODER +static void setBitOfReversedStream0(size_t* bitpointer, unsigned char* bitstream, unsigned char bit) +{ + /*the current bit in bitstream must be 0 for this to work*/ + if(bit) + { + /*earlier bit of huffman code is in a lesser significant bit of an earlier byte*/ + bitstream[(*bitpointer) >> 3] |= (bit << (7 - ((*bitpointer) & 0x7))); + } + ++(*bitpointer); +} +#endif /*LODEPNG_COMPILE_DECODER*/ + +static void setBitOfReversedStream(size_t* bitpointer, unsigned char* bitstream, unsigned char bit) +{ + /*the current bit in bitstream may be 0 or 1 for this to work*/ + if(bit == 0) bitstream[(*bitpointer) >> 3] &= (unsigned char)(~(1 << (7 - ((*bitpointer) & 0x7)))); + else bitstream[(*bitpointer) >> 3] |= (1 << (7 - ((*bitpointer) & 0x7))); + ++(*bitpointer); +} + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / PNG chunks / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +unsigned lodepng_chunk_length(const unsigned char* chunk) +{ + return lodepng_read32bitInt(&chunk[0]); +} + +void lodepng_chunk_type(char type[5], const unsigned char* chunk) +{ + unsigned i; + for(i = 0; i != 4; ++i) type[i] = (char)chunk[4 + i]; + type[4] = 0; /*null termination char*/ +} + +unsigned char lodepng_chunk_type_equals(const unsigned char* chunk, const char* type) +{ + if(strlen(type) != 4) return 0; + return (chunk[4] == type[0] && chunk[5] == type[1] && chunk[6] == type[2] && chunk[7] == type[3]); +} + +unsigned char lodepng_chunk_ancillary(const unsigned char* chunk) +{ + return((chunk[4] & 32) != 0); +} + +unsigned char lodepng_chunk_private(const unsigned char* chunk) +{ + return((chunk[6] & 32) != 0); +} + +unsigned char lodepng_chunk_safetocopy(const unsigned char* chunk) +{ + return((chunk[7] & 32) != 0); +} + +unsigned char* lodepng_chunk_data(unsigned char* chunk) +{ + return &chunk[8]; +} + +const unsigned char* lodepng_chunk_data_const(const unsigned char* chunk) +{ + return &chunk[8]; +} + +unsigned lodepng_chunk_check_crc(const unsigned char* chunk) +{ + unsigned length = lodepng_chunk_length(chunk); + unsigned CRC = lodepng_read32bitInt(&chunk[length + 8]); + /*the CRC is taken of the data and the 4 chunk type letters, not the length*/ + unsigned checksum = lodepng_crc32(&chunk[4], length + 4); + if(CRC != checksum) return 1; + else return 0; +} + +void lodepng_chunk_generate_crc(unsigned char* chunk) +{ + unsigned length = lodepng_chunk_length(chunk); + unsigned CRC = lodepng_crc32(&chunk[4], length + 4); + lodepng_set32bitInt(chunk + 8 + length, CRC); +} + +unsigned char* lodepng_chunk_next(unsigned char* chunk) +{ + unsigned total_chunk_length = lodepng_chunk_length(chunk) + 12; + return &chunk[total_chunk_length]; +} + +const unsigned char* lodepng_chunk_next_const(const unsigned char* chunk) +{ + unsigned total_chunk_length = lodepng_chunk_length(chunk) + 12; + return &chunk[total_chunk_length]; +} + +unsigned lodepng_chunk_append(unsigned char** out, size_t* outlength, const unsigned char* chunk) +{ + unsigned i; + unsigned total_chunk_length = lodepng_chunk_length(chunk) + 12; + unsigned char *chunk_start, *new_buffer; + size_t new_length = (*outlength) + total_chunk_length; + if(new_length < total_chunk_length || new_length < (*outlength)) return 77; /*integer overflow happened*/ + + new_buffer = (unsigned char*)lodepng_realloc(*out, new_length); + if(!new_buffer) return 83; /*alloc fail*/ + (*out) = new_buffer; + (*outlength) = new_length; + chunk_start = &(*out)[new_length - total_chunk_length]; + + for(i = 0; i != total_chunk_length; ++i) chunk_start[i] = chunk[i]; + + return 0; +} + +unsigned lodepng_chunk_create(unsigned char** out, size_t* outlength, unsigned length, + const char* type, const unsigned char* data) +{ + unsigned i; + unsigned char *chunk, *new_buffer; + size_t new_length = (*outlength) + length + 12; + if(new_length < length + 12 || new_length < (*outlength)) return 77; /*integer overflow happened*/ + new_buffer = (unsigned char*)lodepng_realloc(*out, new_length); + if(!new_buffer) return 83; /*alloc fail*/ + (*out) = new_buffer; + (*outlength) = new_length; + chunk = &(*out)[(*outlength) - length - 12]; + + /*1: length*/ + lodepng_set32bitInt(chunk, (unsigned)length); + + /*2: chunk name (4 letters)*/ + chunk[4] = (unsigned char)type[0]; + chunk[5] = (unsigned char)type[1]; + chunk[6] = (unsigned char)type[2]; + chunk[7] = (unsigned char)type[3]; + + /*3: the data*/ + for(i = 0; i != length; ++i) chunk[8 + i] = data[i]; + + /*4: CRC (of the chunkname characters and the data)*/ + lodepng_chunk_generate_crc(chunk); + + return 0; +} + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Color types and such / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*return type is a LodePNG error code*/ +static unsigned checkColorValidity(LodePNGColorType colortype, unsigned bd) /*bd = bitdepth*/ +{ + switch(colortype) + { + case 0: if(!(bd == 1 || bd == 2 || bd == 4 || bd == 8 || bd == 16)) return 37; break; /*grey*/ + case 2: if(!( bd == 8 || bd == 16)) return 37; break; /*RGB*/ + case 3: if(!(bd == 1 || bd == 2 || bd == 4 || bd == 8 )) return 37; break; /*palette*/ + case 4: if(!( bd == 8 || bd == 16)) return 37; break; /*grey + alpha*/ + case 6: if(!( bd == 8 || bd == 16)) return 37; break; /*RGBA*/ + default: return 31; + } + return 0; /*allowed color type / bits combination*/ +} + +static unsigned getNumColorChannels(LodePNGColorType colortype) +{ + switch(colortype) + { + case 0: return 1; /*grey*/ + case 2: return 3; /*RGB*/ + case 3: return 1; /*palette*/ + case 4: return 2; /*grey + alpha*/ + case 6: return 4; /*RGBA*/ + } + return 0; /*unexisting color type*/ +} + +static unsigned lodepng_get_bpp_lct(LodePNGColorType colortype, unsigned bitdepth) +{ + /*bits per pixel is amount of channels * bits per channel*/ + return getNumColorChannels(colortype) * bitdepth; +} + +/* ////////////////////////////////////////////////////////////////////////// */ + +void lodepng_color_mode_init(LodePNGColorMode* info) +{ + info->key_defined = 0; + info->key_r = info->key_g = info->key_b = 0; + info->colortype = LCT_RGBA; + info->bitdepth = 8; + info->palette = 0; + info->palettesize = 0; +} + +void lodepng_color_mode_cleanup(LodePNGColorMode* info) +{ + lodepng_palette_clear(info); +} + +unsigned lodepng_color_mode_copy(LodePNGColorMode* dest, const LodePNGColorMode* source) +{ + size_t i; + lodepng_color_mode_cleanup(dest); + *dest = *source; + if(source->palette) + { + dest->palette = (unsigned char*)lodepng_malloc(1024); + if(!dest->palette && source->palettesize) return 83; /*alloc fail*/ + for(i = 0; i != source->palettesize * 4; ++i) dest->palette[i] = source->palette[i]; + } + return 0; +} + +static int lodepng_color_mode_equal(const LodePNGColorMode* a, const LodePNGColorMode* b) +{ + size_t i; + if(a->colortype != b->colortype) return 0; + if(a->bitdepth != b->bitdepth) return 0; + if(a->key_defined != b->key_defined) return 0; + if(a->key_defined) + { + if(a->key_r != b->key_r) return 0; + if(a->key_g != b->key_g) return 0; + if(a->key_b != b->key_b) return 0; + } + /*if one of the palette sizes is 0, then we consider it to be the same as the + other: it means that e.g. the palette was not given by the user and should be + considered the same as the palette inside the PNG.*/ + if(1/*a->palettesize != 0 && b->palettesize != 0*/) { + if(a->palettesize != b->palettesize) return 0; + for(i = 0; i != a->palettesize * 4; ++i) + { + if(a->palette[i] != b->palette[i]) return 0; + } + } + return 1; +} + +void lodepng_palette_clear(LodePNGColorMode* info) +{ + if(info->palette) lodepng_free(info->palette); + info->palette = 0; + info->palettesize = 0; +} + +unsigned lodepng_palette_add(LodePNGColorMode* info, + unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + unsigned char* data; + /*the same resize technique as C++ std::vectors is used, and here it's made so that for a palette with + the max of 256 colors, it'll have the exact alloc size*/ + if(!info->palette) /*allocate palette if empty*/ + { + /*room for 256 colors with 4 bytes each*/ + data = (unsigned char*)lodepng_realloc(info->palette, 1024); + if(!data) return 83; /*alloc fail*/ + else info->palette = data; + } + info->palette[4 * info->palettesize + 0] = r; + info->palette[4 * info->palettesize + 1] = g; + info->palette[4 * info->palettesize + 2] = b; + info->palette[4 * info->palettesize + 3] = a; + ++info->palettesize; + return 0; +} + +unsigned lodepng_get_bpp(const LodePNGColorMode* info) +{ + /*calculate bits per pixel out of colortype and bitdepth*/ + return lodepng_get_bpp_lct(info->colortype, info->bitdepth); +} + +unsigned lodepng_get_channels(const LodePNGColorMode* info) +{ + return getNumColorChannels(info->colortype); +} + +unsigned lodepng_is_greyscale_type(const LodePNGColorMode* info) +{ + return info->colortype == LCT_GREY || info->colortype == LCT_GREY_ALPHA; +} + +unsigned lodepng_is_alpha_type(const LodePNGColorMode* info) +{ + return (info->colortype & 4) != 0; /*4 or 6*/ +} + +unsigned lodepng_is_palette_type(const LodePNGColorMode* info) +{ + return info->colortype == LCT_PALETTE; +} + +unsigned lodepng_has_palette_alpha(const LodePNGColorMode* info) +{ + size_t i; + for(i = 0; i != info->palettesize; ++i) + { + if(info->palette[i * 4 + 3] < 255) return 1; + } + return 0; +} + +unsigned lodepng_can_have_alpha(const LodePNGColorMode* info) +{ + return info->key_defined + || lodepng_is_alpha_type(info) + || lodepng_has_palette_alpha(info); +} + +size_t lodepng_get_raw_size(unsigned w, unsigned h, const LodePNGColorMode* color) +{ + /*will not overflow for any color type if roughly w * h < 268435455*/ + int bpp = lodepng_get_bpp(color); + size_t n = w * h; + return ((n / 8) * bpp) + ((n & 7) * bpp + 7) / 8; +} + +size_t lodepng_get_raw_size_lct(unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth) +{ + /*will not overflow for any color type if roughly w * h < 268435455*/ + int bpp = lodepng_get_bpp_lct(colortype, bitdepth); + size_t n = w * h; + return ((n / 8) * bpp) + ((n & 7) * bpp + 7) / 8; +} + + +#ifdef LODEPNG_COMPILE_PNG +#ifdef LODEPNG_COMPILE_DECODER +/*in an idat chunk, each scanline is a multiple of 8 bits, unlike the lodepng output buffer*/ +static size_t lodepng_get_raw_size_idat(unsigned w, unsigned h, const LodePNGColorMode* color) +{ + /*will not overflow for any color type if roughly w * h < 268435455*/ + int bpp = lodepng_get_bpp(color); + size_t line = ((w / 8) * bpp) + ((w & 7) * bpp + 7) / 8; + return h * line; +} +#endif /*LODEPNG_COMPILE_DECODER*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + +static void LodePNGUnknownChunks_init(LodePNGInfo* info) +{ + unsigned i; + for(i = 0; i != 3; ++i) info->unknown_chunks_data[i] = 0; + for(i = 0; i != 3; ++i) info->unknown_chunks_size[i] = 0; +} + +static void LodePNGUnknownChunks_cleanup(LodePNGInfo* info) +{ + unsigned i; + for(i = 0; i != 3; ++i) lodepng_free(info->unknown_chunks_data[i]); +} + +static unsigned LodePNGUnknownChunks_copy(LodePNGInfo* dest, const LodePNGInfo* src) +{ + unsigned i; + + LodePNGUnknownChunks_cleanup(dest); + + for(i = 0; i != 3; ++i) + { + size_t j; + dest->unknown_chunks_size[i] = src->unknown_chunks_size[i]; + dest->unknown_chunks_data[i] = (unsigned char*)lodepng_malloc(src->unknown_chunks_size[i]); + if(!dest->unknown_chunks_data[i] && dest->unknown_chunks_size[i]) return 83; /*alloc fail*/ + for(j = 0; j < src->unknown_chunks_size[i]; ++j) + { + dest->unknown_chunks_data[i][j] = src->unknown_chunks_data[i][j]; + } + } + + return 0; +} + +/******************************************************************************/ + +static void LodePNGText_init(LodePNGInfo* info) +{ + info->text_num = 0; + info->text_keys = NULL; + info->text_strings = NULL; +} + +static void LodePNGText_cleanup(LodePNGInfo* info) +{ + size_t i; + for(i = 0; i != info->text_num; ++i) + { + string_cleanup(&info->text_keys[i]); + string_cleanup(&info->text_strings[i]); + } + lodepng_free(info->text_keys); + lodepng_free(info->text_strings); +} + +static unsigned LodePNGText_copy(LodePNGInfo* dest, const LodePNGInfo* source) +{ + size_t i = 0; + dest->text_keys = 0; + dest->text_strings = 0; + dest->text_num = 0; + for(i = 0; i != source->text_num; ++i) + { + CERROR_TRY_RETURN(lodepng_add_text(dest, source->text_keys[i], source->text_strings[i])); + } + return 0; +} + +void lodepng_clear_text(LodePNGInfo* info) +{ + LodePNGText_cleanup(info); +} + +unsigned lodepng_add_text(LodePNGInfo* info, const char* key, const char* str) +{ + char** new_keys = (char**)(lodepng_realloc(info->text_keys, sizeof(char*) * (info->text_num + 1))); + char** new_strings = (char**)(lodepng_realloc(info->text_strings, sizeof(char*) * (info->text_num + 1))); + if(!new_keys || !new_strings) + { + lodepng_free(new_keys); + lodepng_free(new_strings); + return 83; /*alloc fail*/ + } + + ++info->text_num; + info->text_keys = new_keys; + info->text_strings = new_strings; + + string_init(&info->text_keys[info->text_num - 1]); + string_set(&info->text_keys[info->text_num - 1], key); + + string_init(&info->text_strings[info->text_num - 1]); + string_set(&info->text_strings[info->text_num - 1], str); + + return 0; +} + +/******************************************************************************/ + +static void LodePNGIText_init(LodePNGInfo* info) +{ + info->itext_num = 0; + info->itext_keys = NULL; + info->itext_langtags = NULL; + info->itext_transkeys = NULL; + info->itext_strings = NULL; +} + +static void LodePNGIText_cleanup(LodePNGInfo* info) +{ + size_t i; + for(i = 0; i != info->itext_num; ++i) + { + string_cleanup(&info->itext_keys[i]); + string_cleanup(&info->itext_langtags[i]); + string_cleanup(&info->itext_transkeys[i]); + string_cleanup(&info->itext_strings[i]); + } + lodepng_free(info->itext_keys); + lodepng_free(info->itext_langtags); + lodepng_free(info->itext_transkeys); + lodepng_free(info->itext_strings); +} + +static unsigned LodePNGIText_copy(LodePNGInfo* dest, const LodePNGInfo* source) +{ + size_t i = 0; + dest->itext_keys = 0; + dest->itext_langtags = 0; + dest->itext_transkeys = 0; + dest->itext_strings = 0; + dest->itext_num = 0; + for(i = 0; i != source->itext_num; ++i) + { + CERROR_TRY_RETURN(lodepng_add_itext(dest, source->itext_keys[i], source->itext_langtags[i], + source->itext_transkeys[i], source->itext_strings[i])); + } + return 0; +} + +void lodepng_clear_itext(LodePNGInfo* info) +{ + LodePNGIText_cleanup(info); +} + +unsigned lodepng_add_itext(LodePNGInfo* info, const char* key, const char* langtag, + const char* transkey, const char* str) +{ + char** new_keys = (char**)(lodepng_realloc(info->itext_keys, sizeof(char*) * (info->itext_num + 1))); + char** new_langtags = (char**)(lodepng_realloc(info->itext_langtags, sizeof(char*) * (info->itext_num + 1))); + char** new_transkeys = (char**)(lodepng_realloc(info->itext_transkeys, sizeof(char*) * (info->itext_num + 1))); + char** new_strings = (char**)(lodepng_realloc(info->itext_strings, sizeof(char*) * (info->itext_num + 1))); + if(!new_keys || !new_langtags || !new_transkeys || !new_strings) + { + lodepng_free(new_keys); + lodepng_free(new_langtags); + lodepng_free(new_transkeys); + lodepng_free(new_strings); + return 83; /*alloc fail*/ + } + + ++info->itext_num; + info->itext_keys = new_keys; + info->itext_langtags = new_langtags; + info->itext_transkeys = new_transkeys; + info->itext_strings = new_strings; + + string_init(&info->itext_keys[info->itext_num - 1]); + string_set(&info->itext_keys[info->itext_num - 1], key); + + string_init(&info->itext_langtags[info->itext_num - 1]); + string_set(&info->itext_langtags[info->itext_num - 1], langtag); + + string_init(&info->itext_transkeys[info->itext_num - 1]); + string_set(&info->itext_transkeys[info->itext_num - 1], transkey); + + string_init(&info->itext_strings[info->itext_num - 1]); + string_set(&info->itext_strings[info->itext_num - 1], str); + + return 0; +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +void lodepng_info_init(LodePNGInfo* info) +{ + lodepng_color_mode_init(&info->color); + info->interlace_method = 0; + info->compression_method = 0; + info->filter_method = 0; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + info->background_defined = 0; + info->background_r = info->background_g = info->background_b = 0; + + LodePNGText_init(info); + LodePNGIText_init(info); + + info->time_defined = 0; + info->phys_defined = 0; + + LodePNGUnknownChunks_init(info); +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} + +void lodepng_info_cleanup(LodePNGInfo* info) +{ + lodepng_color_mode_cleanup(&info->color); +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + LodePNGText_cleanup(info); + LodePNGIText_cleanup(info); + + LodePNGUnknownChunks_cleanup(info); +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} + +unsigned lodepng_info_copy(LodePNGInfo* dest, const LodePNGInfo* source) +{ + lodepng_info_cleanup(dest); + *dest = *source; + lodepng_color_mode_init(&dest->color); + CERROR_TRY_RETURN(lodepng_color_mode_copy(&dest->color, &source->color)); + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + CERROR_TRY_RETURN(LodePNGText_copy(dest, source)); + CERROR_TRY_RETURN(LodePNGIText_copy(dest, source)); + + LodePNGUnknownChunks_init(dest); + CERROR_TRY_RETURN(LodePNGUnknownChunks_copy(dest, source)); +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + return 0; +} + +void lodepng_info_swap(LodePNGInfo* a, LodePNGInfo* b) +{ + LodePNGInfo temp = *a; + *a = *b; + *b = temp; +} + +/* ////////////////////////////////////////////////////////////////////////// */ + +/*index: bitgroup index, bits: bitgroup size(1, 2 or 4), in: bitgroup value, out: octet array to add bits to*/ +static void addColorBits(unsigned char* out, size_t index, unsigned bits, unsigned in) +{ + unsigned m = bits == 1 ? 7 : bits == 2 ? 3 : 1; /*8 / bits - 1*/ + /*p = the partial index in the byte, e.g. with 4 palettebits it is 0 for first half or 1 for second half*/ + unsigned p = index & m; + in &= (1u << bits) - 1u; /*filter out any other bits of the input value*/ + in = in << (bits * (m - p)); + if(p == 0) out[index * bits / 8] = in; + else out[index * bits / 8] |= in; +} + +typedef struct ColorTree ColorTree; + +/* +One node of a color tree +This is the data structure used to count the number of unique colors and to get a palette +index for a color. It's like an octree, but because the alpha channel is used too, each +node has 16 instead of 8 children. +*/ +struct ColorTree +{ + ColorTree* children[16]; /*up to 16 pointers to ColorTree of next level*/ + int index; /*the payload. Only has a meaningful value if this is in the last level*/ +}; + +static void color_tree_init(ColorTree* tree) +{ + int i; + for(i = 0; i != 16; ++i) tree->children[i] = 0; + tree->index = -1; +} + +static void color_tree_cleanup(ColorTree* tree) +{ + int i; + for(i = 0; i != 16; ++i) + { + if(tree->children[i]) + { + color_tree_cleanup(tree->children[i]); + lodepng_free(tree->children[i]); + } + } +} + +/*returns -1 if color not present, its index otherwise*/ +static int color_tree_get(ColorTree* tree, unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + int bit = 0; + for(bit = 0; bit < 8; ++bit) + { + int i = 8 * ((r >> bit) & 1) + 4 * ((g >> bit) & 1) + 2 * ((b >> bit) & 1) + 1 * ((a >> bit) & 1); + if(!tree->children[i]) return -1; + else tree = tree->children[i]; + } + return tree ? tree->index : -1; +} + +#ifdef LODEPNG_COMPILE_ENCODER +static int color_tree_has(ColorTree* tree, unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + return color_tree_get(tree, r, g, b, a) >= 0; +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +/*color is not allowed to already exist. +Index should be >= 0 (it's signed to be compatible with using -1 for "doesn't exist")*/ +static void color_tree_add(ColorTree* tree, + unsigned char r, unsigned char g, unsigned char b, unsigned char a, unsigned index) +{ + int bit; + for(bit = 0; bit < 8; ++bit) + { + int i = 8 * ((r >> bit) & 1) + 4 * ((g >> bit) & 1) + 2 * ((b >> bit) & 1) + 1 * ((a >> bit) & 1); + if(!tree->children[i]) + { + tree->children[i] = (ColorTree*)lodepng_malloc(sizeof(ColorTree)); + color_tree_init(tree->children[i]); + } + tree = tree->children[i]; + } + tree->index = (int)index; +} + +/*put a pixel, given its RGBA color, into image of any color type*/ +static unsigned rgba8ToPixel(unsigned char* out, size_t i, + const LodePNGColorMode* mode, ColorTree* tree /*for palette*/, + unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + if(mode->colortype == LCT_GREY) + { + unsigned char grey = r; /*((unsigned short)r + g + b) / 3*/; + if(mode->bitdepth == 8) out[i] = grey; + else if(mode->bitdepth == 16) out[i * 2 + 0] = out[i * 2 + 1] = grey; + else + { + /*take the most significant bits of grey*/ + grey = (grey >> (8 - mode->bitdepth)) & ((1 << mode->bitdepth) - 1); + addColorBits(out, i, mode->bitdepth, grey); + } + } + else if(mode->colortype == LCT_RGB) + { + if(mode->bitdepth == 8) + { + out[i * 3 + 0] = r; + out[i * 3 + 1] = g; + out[i * 3 + 2] = b; + } + else + { + out[i * 6 + 0] = out[i * 6 + 1] = r; + out[i * 6 + 2] = out[i * 6 + 3] = g; + out[i * 6 + 4] = out[i * 6 + 5] = b; + } + } + else if(mode->colortype == LCT_PALETTE) + { + int index = color_tree_get(tree, r, g, b, a); + if(index < 0) return 82; /*color not in palette*/ + if(mode->bitdepth == 8) out[i] = index; + else addColorBits(out, i, mode->bitdepth, (unsigned)index); + } + else if(mode->colortype == LCT_GREY_ALPHA) + { + unsigned char grey = r; /*((unsigned short)r + g + b) / 3*/; + if(mode->bitdepth == 8) + { + out[i * 2 + 0] = grey; + out[i * 2 + 1] = a; + } + else if(mode->bitdepth == 16) + { + out[i * 4 + 0] = out[i * 4 + 1] = grey; + out[i * 4 + 2] = out[i * 4 + 3] = a; + } + } + else if(mode->colortype == LCT_RGBA) + { + if(mode->bitdepth == 8) + { + out[i * 4 + 0] = r; + out[i * 4 + 1] = g; + out[i * 4 + 2] = b; + out[i * 4 + 3] = a; + } + else + { + out[i * 8 + 0] = out[i * 8 + 1] = r; + out[i * 8 + 2] = out[i * 8 + 3] = g; + out[i * 8 + 4] = out[i * 8 + 5] = b; + out[i * 8 + 6] = out[i * 8 + 7] = a; + } + } + + return 0; /*no error*/ +} + +/*put a pixel, given its RGBA16 color, into image of any color 16-bitdepth type*/ +static void rgba16ToPixel(unsigned char* out, size_t i, + const LodePNGColorMode* mode, + unsigned short r, unsigned short g, unsigned short b, unsigned short a) +{ + if(mode->colortype == LCT_GREY) + { + unsigned short grey = r; /*((unsigned)r + g + b) / 3*/; + out[i * 2 + 0] = (grey >> 8) & 255; + out[i * 2 + 1] = grey & 255; + } + else if(mode->colortype == LCT_RGB) + { + out[i * 6 + 0] = (r >> 8) & 255; + out[i * 6 + 1] = r & 255; + out[i * 6 + 2] = (g >> 8) & 255; + out[i * 6 + 3] = g & 255; + out[i * 6 + 4] = (b >> 8) & 255; + out[i * 6 + 5] = b & 255; + } + else if(mode->colortype == LCT_GREY_ALPHA) + { + unsigned short grey = r; /*((unsigned)r + g + b) / 3*/; + out[i * 4 + 0] = (grey >> 8) & 255; + out[i * 4 + 1] = grey & 255; + out[i * 4 + 2] = (a >> 8) & 255; + out[i * 4 + 3] = a & 255; + } + else if(mode->colortype == LCT_RGBA) + { + out[i * 8 + 0] = (r >> 8) & 255; + out[i * 8 + 1] = r & 255; + out[i * 8 + 2] = (g >> 8) & 255; + out[i * 8 + 3] = g & 255; + out[i * 8 + 4] = (b >> 8) & 255; + out[i * 8 + 5] = b & 255; + out[i * 8 + 6] = (a >> 8) & 255; + out[i * 8 + 7] = a & 255; + } +} + +/*Get RGBA8 color of pixel with index i (y * width + x) from the raw image with given color type.*/ +static void getPixelColorRGBA8(unsigned char* r, unsigned char* g, + unsigned char* b, unsigned char* a, + const unsigned char* in, size_t i, + const LodePNGColorMode* mode) +{ + if(mode->colortype == LCT_GREY) + { + if(mode->bitdepth == 8) + { + *r = *g = *b = in[i]; + if(mode->key_defined && *r == mode->key_r) *a = 0; + else *a = 255; + } + else if(mode->bitdepth == 16) + { + *r = *g = *b = in[i * 2 + 0]; + if(mode->key_defined && 256U * in[i * 2 + 0] + in[i * 2 + 1] == mode->key_r) *a = 0; + else *a = 255; + } + else + { + unsigned highest = ((1U << mode->bitdepth) - 1U); /*highest possible value for this bit depth*/ + size_t j = i * mode->bitdepth; + unsigned value = readBitsFromReversedStream(&j, in, mode->bitdepth); + *r = *g = *b = (value * 255) / highest; + if(mode->key_defined && value == mode->key_r) *a = 0; + else *a = 255; + } + } + else if(mode->colortype == LCT_RGB) + { + if(mode->bitdepth == 8) + { + *r = in[i * 3 + 0]; *g = in[i * 3 + 1]; *b = in[i * 3 + 2]; + if(mode->key_defined && *r == mode->key_r && *g == mode->key_g && *b == mode->key_b) *a = 0; + else *a = 255; + } + else + { + *r = in[i * 6 + 0]; + *g = in[i * 6 + 2]; + *b = in[i * 6 + 4]; + if(mode->key_defined && 256U * in[i * 6 + 0] + in[i * 6 + 1] == mode->key_r + && 256U * in[i * 6 + 2] + in[i * 6 + 3] == mode->key_g + && 256U * in[i * 6 + 4] + in[i * 6 + 5] == mode->key_b) *a = 0; + else *a = 255; + } + } + else if(mode->colortype == LCT_PALETTE) + { + unsigned index; + if(mode->bitdepth == 8) index = in[i]; + else + { + size_t j = i * mode->bitdepth; + index = readBitsFromReversedStream(&j, in, mode->bitdepth); + } + + if(index >= mode->palettesize) + { + /*This is an error according to the PNG spec, but common PNG decoders make it black instead. + Done here too, slightly faster due to no error handling needed.*/ + *r = *g = *b = 0; + *a = 255; + } + else + { + *r = mode->palette[index * 4 + 0]; + *g = mode->palette[index * 4 + 1]; + *b = mode->palette[index * 4 + 2]; + *a = mode->palette[index * 4 + 3]; + } + } + else if(mode->colortype == LCT_GREY_ALPHA) + { + if(mode->bitdepth == 8) + { + *r = *g = *b = in[i * 2 + 0]; + *a = in[i * 2 + 1]; + } + else + { + *r = *g = *b = in[i * 4 + 0]; + *a = in[i * 4 + 2]; + } + } + else if(mode->colortype == LCT_RGBA) + { + if(mode->bitdepth == 8) + { + *r = in[i * 4 + 0]; + *g = in[i * 4 + 1]; + *b = in[i * 4 + 2]; + *a = in[i * 4 + 3]; + } + else + { + *r = in[i * 8 + 0]; + *g = in[i * 8 + 2]; + *b = in[i * 8 + 4]; + *a = in[i * 8 + 6]; + } + } +} + +/*Similar to getPixelColorRGBA8, but with all the for loops inside of the color +mode test cases, optimized to convert the colors much faster, when converting +to RGBA or RGB with 8 bit per cannel. buffer must be RGBA or RGB output with +enough memory, if has_alpha is true the output is RGBA. mode has the color mode +of the input buffer.*/ +static void getPixelColorsRGBA8(unsigned char* buffer, size_t numpixels, + unsigned has_alpha, const unsigned char* in, + const LodePNGColorMode* mode) +{ + unsigned num_channels = has_alpha ? 4 : 3; + size_t i; + if(mode->colortype == LCT_GREY) + { + if(mode->bitdepth == 8) + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = buffer[1] = buffer[2] = in[i]; + if(has_alpha) buffer[3] = mode->key_defined && in[i] == mode->key_r ? 0 : 255; + } + } + else if(mode->bitdepth == 16) + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = buffer[1] = buffer[2] = in[i * 2]; + if(has_alpha) buffer[3] = mode->key_defined && 256U * in[i * 2 + 0] + in[i * 2 + 1] == mode->key_r ? 0 : 255; + } + } + else + { + unsigned highest = ((1U << mode->bitdepth) - 1U); /*highest possible value for this bit depth*/ + size_t j = 0; + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + unsigned value = readBitsFromReversedStream(&j, in, mode->bitdepth); + buffer[0] = buffer[1] = buffer[2] = (value * 255) / highest; + if(has_alpha) buffer[3] = mode->key_defined && value == mode->key_r ? 0 : 255; + } + } + } + else if(mode->colortype == LCT_RGB) + { + if(mode->bitdepth == 8) + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = in[i * 3 + 0]; + buffer[1] = in[i * 3 + 1]; + buffer[2] = in[i * 3 + 2]; + if(has_alpha) buffer[3] = mode->key_defined && buffer[0] == mode->key_r + && buffer[1]== mode->key_g && buffer[2] == mode->key_b ? 0 : 255; + } + } + else + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = in[i * 6 + 0]; + buffer[1] = in[i * 6 + 2]; + buffer[2] = in[i * 6 + 4]; + if(has_alpha) buffer[3] = mode->key_defined + && 256U * in[i * 6 + 0] + in[i * 6 + 1] == mode->key_r + && 256U * in[i * 6 + 2] + in[i * 6 + 3] == mode->key_g + && 256U * in[i * 6 + 4] + in[i * 6 + 5] == mode->key_b ? 0 : 255; + } + } + } + else if(mode->colortype == LCT_PALETTE) + { + unsigned index; + size_t j = 0; + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + if(mode->bitdepth == 8) index = in[i]; + else index = readBitsFromReversedStream(&j, in, mode->bitdepth); + + if(index >= mode->palettesize) + { + /*This is an error according to the PNG spec, but most PNG decoders make it black instead. + Done here too, slightly faster due to no error handling needed.*/ + buffer[0] = buffer[1] = buffer[2] = 0; + if(has_alpha) buffer[3] = 255; + } + else + { + buffer[0] = mode->palette[index * 4 + 0]; + buffer[1] = mode->palette[index * 4 + 1]; + buffer[2] = mode->palette[index * 4 + 2]; + if(has_alpha) buffer[3] = mode->palette[index * 4 + 3]; + } + } + } + else if(mode->colortype == LCT_GREY_ALPHA) + { + if(mode->bitdepth == 8) + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = buffer[1] = buffer[2] = in[i * 2 + 0]; + if(has_alpha) buffer[3] = in[i * 2 + 1]; + } + } + else + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = buffer[1] = buffer[2] = in[i * 4 + 0]; + if(has_alpha) buffer[3] = in[i * 4 + 2]; + } + } + } + else if(mode->colortype == LCT_RGBA) + { + if(mode->bitdepth == 8) + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = in[i * 4 + 0]; + buffer[1] = in[i * 4 + 1]; + buffer[2] = in[i * 4 + 2]; + if(has_alpha) buffer[3] = in[i * 4 + 3]; + } + } + else + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = in[i * 8 + 0]; + buffer[1] = in[i * 8 + 2]; + buffer[2] = in[i * 8 + 4]; + if(has_alpha) buffer[3] = in[i * 8 + 6]; + } + } + } +} + +/*Get RGBA16 color of pixel with index i (y * width + x) from the raw image with +given color type, but the given color type must be 16-bit itself.*/ +static void getPixelColorRGBA16(unsigned short* r, unsigned short* g, unsigned short* b, unsigned short* a, + const unsigned char* in, size_t i, const LodePNGColorMode* mode) +{ + if(mode->colortype == LCT_GREY) + { + *r = *g = *b = 256 * in[i * 2 + 0] + in[i * 2 + 1]; + if(mode->key_defined && 256U * in[i * 2 + 0] + in[i * 2 + 1] == mode->key_r) *a = 0; + else *a = 65535; + } + else if(mode->colortype == LCT_RGB) + { + *r = 256u * in[i * 6 + 0] + in[i * 6 + 1]; + *g = 256u * in[i * 6 + 2] + in[i * 6 + 3]; + *b = 256u * in[i * 6 + 4] + in[i * 6 + 5]; + if(mode->key_defined + && 256u * in[i * 6 + 0] + in[i * 6 + 1] == mode->key_r + && 256u * in[i * 6 + 2] + in[i * 6 + 3] == mode->key_g + && 256u * in[i * 6 + 4] + in[i * 6 + 5] == mode->key_b) *a = 0; + else *a = 65535; + } + else if(mode->colortype == LCT_GREY_ALPHA) + { + *r = *g = *b = 256u * in[i * 4 + 0] + in[i * 4 + 1]; + *a = 256u * in[i * 4 + 2] + in[i * 4 + 3]; + } + else if(mode->colortype == LCT_RGBA) + { + *r = 256u * in[i * 8 + 0] + in[i * 8 + 1]; + *g = 256u * in[i * 8 + 2] + in[i * 8 + 3]; + *b = 256u * in[i * 8 + 4] + in[i * 8 + 5]; + *a = 256u * in[i * 8 + 6] + in[i * 8 + 7]; + } +} + +unsigned lodepng_convert(unsigned char* out, const unsigned char* in, + const LodePNGColorMode* mode_out, const LodePNGColorMode* mode_in, + unsigned w, unsigned h) +{ + size_t i; + ColorTree tree; + size_t numpixels = w * h; + + if(lodepng_color_mode_equal(mode_out, mode_in)) + { + size_t numbytes = lodepng_get_raw_size(w, h, mode_in); + for(i = 0; i != numbytes; ++i) out[i] = in[i]; + return 0; + } + + if(mode_out->colortype == LCT_PALETTE) + { + size_t palettesize = mode_out->palettesize; + const unsigned char* palette = mode_out->palette; + size_t palsize = static_cast(1) << mode_out->bitdepth; + /*if the user specified output palette but did not give the values, assume + they want the values of the input color type (assuming that one is palette). + Note that we never create a new palette ourselves.*/ + if(palettesize == 0) + { + palettesize = mode_in->palettesize; + palette = mode_in->palette; + } + if(palettesize < palsize) palsize = palettesize; + color_tree_init(&tree); + for(i = 0; i != palsize; ++i) + { + const unsigned char* p = &palette[i * 4]; + color_tree_add(&tree, p[0], p[1], p[2], p[3], (unsigned int)i); + } + } + + if(mode_in->bitdepth == 16 && mode_out->bitdepth == 16) + { + for(i = 0; i != numpixels; ++i) + { + unsigned short r = 0, g = 0, b = 0, a = 0; + getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode_in); + rgba16ToPixel(out, i, mode_out, r, g, b, a); + } + } + else if(mode_out->bitdepth == 8 && mode_out->colortype == LCT_RGBA) + { + getPixelColorsRGBA8(out, numpixels, 1, in, mode_in); + } + else if(mode_out->bitdepth == 8 && mode_out->colortype == LCT_RGB) + { + getPixelColorsRGBA8(out, numpixels, 0, in, mode_in); + } + else + { + unsigned char r = 0, g = 0, b = 0, a = 0; + for(i = 0; i != numpixels; ++i) + { + getPixelColorRGBA8(&r, &g, &b, &a, in, i, mode_in); + CERROR_TRY_RETURN(rgba8ToPixel(out, i, mode_out, &tree, r, g, b, a)); + } + } + + if(mode_out->colortype == LCT_PALETTE) + { + color_tree_cleanup(&tree); + } + + return 0; /*no error*/ +} + +#ifdef LODEPNG_COMPILE_ENCODER + +void lodepng_color_profile_init(LodePNGColorProfile* profile) +{ + profile->colored = 0; + profile->key = 0; + profile->alpha = 0; + profile->key_r = profile->key_g = profile->key_b = 0; + profile->numcolors = 0; + profile->bits = 1; +} + +/*function used for debug purposes with C++*/ +/*void printColorProfile(LodePNGColorProfile* p) +{ + std::cout << "colored: " << (int)p->colored << ", "; + std::cout << "key: " << (int)p->key << ", "; + std::cout << "key_r: " << (int)p->key_r << ", "; + std::cout << "key_g: " << (int)p->key_g << ", "; + std::cout << "key_b: " << (int)p->key_b << ", "; + std::cout << "alpha: " << (int)p->alpha << ", "; + std::cout << "numcolors: " << (int)p->numcolors << ", "; + std::cout << "bits: " << (int)p->bits << std::endl; +}*/ + +/*Returns how many bits needed to represent given value (max 8 bit)*/ +static unsigned getValueRequiredBits(unsigned char value) +{ + if(value == 0 || value == 255) return 1; + /*The scaling of 2-bit and 4-bit values uses multiples of 85 and 17*/ + if(value % 17 == 0) return value % 85 == 0 ? 2 : 4; + return 8; +} + +/*profile must already have been inited with mode. +It's ok to set some parameters of profile to done already.*/ +unsigned lodepng_get_color_profile(LodePNGColorProfile* profile, + const unsigned char* in, unsigned w, unsigned h, + const LodePNGColorMode* mode) +{ + unsigned error = 0; + size_t i; + ColorTree tree; + size_t numpixels = w * h; + + unsigned colored_done = lodepng_is_greyscale_type(mode) ? 1 : 0; + unsigned alpha_done = lodepng_can_have_alpha(mode) ? 0 : 1; + unsigned numcolors_done = 0; + unsigned bpp = lodepng_get_bpp(mode); + unsigned bits_done = bpp == 1 ? 1 : 0; + unsigned maxnumcolors = 257; + unsigned sixteen = 0; + if(bpp <= 8) maxnumcolors = bpp == 1 ? 2 : (bpp == 2 ? 4 : (bpp == 4 ? 16 : 256)); + + color_tree_init(&tree); + + /*Check if the 16-bit input is truly 16-bit*/ + if(mode->bitdepth == 16) + { + unsigned short r, g, b, a; + for(i = 0; i != numpixels; ++i) + { + getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode); + if((r & 255) != ((r >> 8) & 255) || (g & 255) != ((g >> 8) & 255) || + (b & 255) != ((b >> 8) & 255) || (a & 255) != ((a >> 8) & 255)) /*first and second byte differ*/ + { + sixteen = 1; + break; + } + } + } + + if(sixteen) + { + unsigned short r = 0, g = 0, b = 0, a = 0; + profile->bits = 16; + bits_done = numcolors_done = 1; /*counting colors no longer useful, palette doesn't support 16-bit*/ + + for(i = 0; i != numpixels; ++i) + { + getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode); + + if(!colored_done && (r != g || r != b)) + { + profile->colored = 1; + colored_done = 1; + } + + if(!alpha_done) + { + unsigned matchkey = (r == profile->key_r && g == profile->key_g && b == profile->key_b); + if(a != 65535 && (a != 0 || (profile->key && !matchkey))) + { + profile->alpha = 1; + alpha_done = 1; + if(profile->bits < 8) profile->bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } + else if(a == 0 && !profile->alpha && !profile->key) + { + profile->key = 1; + profile->key_r = r; + profile->key_g = g; + profile->key_b = b; + } + else if(a == 65535 && profile->key && matchkey) + { + /* Color key cannot be used if an opaque pixel also has that RGB color. */ + profile->alpha = 1; + alpha_done = 1; + } + } + + if(alpha_done && numcolors_done && colored_done && bits_done) break; + } + } + else /* < 16-bit */ + { + for(i = 0; i != numpixels; ++i) + { + unsigned char r = 0, g = 0, b = 0, a = 0; + getPixelColorRGBA8(&r, &g, &b, &a, in, i, mode); + + if(!bits_done && profile->bits < 8) + { + /*only r is checked, < 8 bits is only relevant for greyscale*/ + unsigned bits = getValueRequiredBits(r); + if(bits > profile->bits) profile->bits = bits; + } + bits_done = (profile->bits >= bpp); + + if(!colored_done && (r != g || r != b)) + { + profile->colored = 1; + colored_done = 1; + if(profile->bits < 8) profile->bits = 8; /*PNG has no colored modes with less than 8-bit per channel*/ + } + + if(!alpha_done) + { + unsigned matchkey = (r == profile->key_r && g == profile->key_g && b == profile->key_b); + if(a != 255 && (a != 0 || (profile->key && !matchkey))) + { + profile->alpha = 1; + alpha_done = 1; + if(profile->bits < 8) profile->bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } + else if(a == 0 && !profile->alpha && !profile->key) + { + profile->key = 1; + profile->key_r = r; + profile->key_g = g; + profile->key_b = b; + } + else if(a == 255 && profile->key && matchkey) + { + /* Color key cannot be used if an opaque pixel also has that RGB color. */ + profile->alpha = 1; + alpha_done = 1; + if(profile->bits < 8) profile->bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } + } + + if(!numcolors_done) + { + if(!color_tree_has(&tree, r, g, b, a)) + { + color_tree_add(&tree, r, g, b, a, profile->numcolors); + if(profile->numcolors < 256) + { + unsigned char* p = profile->palette; + unsigned n = profile->numcolors; + p[n * 4 + 0] = r; + p[n * 4 + 1] = g; + p[n * 4 + 2] = b; + p[n * 4 + 3] = a; + } + ++profile->numcolors; + numcolors_done = profile->numcolors >= maxnumcolors; + } + } + + if(alpha_done && numcolors_done && colored_done && bits_done) break; + } + + /*make the profile's key always 16-bit for consistency - repeat each byte twice*/ + profile->key_r += (profile->key_r << 8); + profile->key_g += (profile->key_g << 8); + profile->key_b += (profile->key_b << 8); + } + + color_tree_cleanup(&tree); + return error; +} + +/*Automatically chooses color type that gives smallest amount of bits in the +output image, e.g. grey if there are only greyscale pixels, palette if there +are less than 256 colors, ... +Updates values of mode with a potentially smaller color model. mode_out should +contain the user chosen color model, but will be overwritten with the new chosen one.*/ +unsigned lodepng_auto_choose_color(LodePNGColorMode* mode_out, + const unsigned char* image, unsigned w, unsigned h, + const LodePNGColorMode* mode_in) +{ + LodePNGColorProfile prof; + unsigned error = 0; + unsigned i, n, palettebits, grey_ok, palette_ok; + + lodepng_color_profile_init(&prof); + error = lodepng_get_color_profile(&prof, image, w, h, mode_in); + if(error) return error; + mode_out->key_defined = 0; + + if(prof.key && w * h <= 16) + { + prof.alpha = 1; /*too few pixels to justify tRNS chunk overhead*/ + if(prof.bits < 8) prof.bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } + grey_ok = !prof.colored && !prof.alpha; /*grey without alpha, with potentially low bits*/ + n = prof.numcolors; + palettebits = n <= 2 ? 1 : (n <= 4 ? 2 : (n <= 16 ? 4 : 8)); + palette_ok = n <= 256 && (n * 2 < w * h) && prof.bits <= 8; + if(w * h < n * 2) palette_ok = 0; /*don't add palette overhead if image has only a few pixels*/ + if(grey_ok && prof.bits <= palettebits) palette_ok = 0; /*grey is less overhead*/ + + if(palette_ok) + { + unsigned char* p = prof.palette; + lodepng_palette_clear(mode_out); /*remove potential earlier palette*/ + for(i = 0; i != prof.numcolors; ++i) + { + error = lodepng_palette_add(mode_out, p[i * 4 + 0], p[i * 4 + 1], p[i * 4 + 2], p[i * 4 + 3]); + if(error) break; + } + + mode_out->colortype = LCT_PALETTE; + mode_out->bitdepth = palettebits; + + if(mode_in->colortype == LCT_PALETTE && mode_in->palettesize >= mode_out->palettesize + && mode_in->bitdepth == mode_out->bitdepth) + { + /*If input should have same palette colors, keep original to preserve its order and prevent conversion*/ + lodepng_color_mode_cleanup(mode_out); + lodepng_color_mode_copy(mode_out, mode_in); + } + } + else /*8-bit or 16-bit per channel*/ + { + mode_out->bitdepth = prof.bits; + mode_out->colortype = prof.alpha ? (prof.colored ? LCT_RGBA : LCT_GREY_ALPHA) + : (prof.colored ? LCT_RGB : LCT_GREY); + + if(prof.key && !prof.alpha) + { + unsigned mask = (1u << mode_out->bitdepth) - 1u; /*profile always uses 16-bit, mask converts it*/ + mode_out->key_r = prof.key_r & mask; + mode_out->key_g = prof.key_g & mask; + mode_out->key_b = prof.key_b & mask; + mode_out->key_defined = 1; + } + } + + return error; +} + +#endif /* #ifdef LODEPNG_COMPILE_ENCODER */ + +/* +Paeth predicter, used by PNG filter type 4 +The parameters are of type short, but should come from unsigned chars, the shorts +are only needed to make the paeth calculation correct. +*/ +static unsigned char paethPredictor(short a, short b, short c) +{ + short pa = abs(b - c); + short pb = abs(a - c); + short pc = abs(a + b - c - c); + + if(pc < pa && pc < pb) return (unsigned char)c; + else if(pb < pa) return (unsigned char)b; + else return (unsigned char)a; +} + +/*shared values used by multiple Adam7 related functions*/ + +static const unsigned ADAM7_IX[7] = { 0, 4, 0, 2, 0, 1, 0 }; /*x start values*/ +static const unsigned ADAM7_IY[7] = { 0, 0, 4, 0, 2, 0, 1 }; /*y start values*/ +static const unsigned ADAM7_DX[7] = { 8, 8, 4, 4, 2, 2, 1 }; /*x delta values*/ +static const unsigned ADAM7_DY[7] = { 8, 8, 8, 4, 4, 2, 2 }; /*y delta values*/ + +/* +Outputs various dimensions and positions in the image related to the Adam7 reduced images. +passw: output containing the width of the 7 passes +passh: output containing the height of the 7 passes +filter_passstart: output containing the index of the start and end of each + reduced image with filter bytes +padded_passstart output containing the index of the start and end of each + reduced image when without filter bytes but with padded scanlines +passstart: output containing the index of the start and end of each reduced + image without padding between scanlines, but still padding between the images +w, h: width and height of non-interlaced image +bpp: bits per pixel +"padded" is only relevant if bpp is less than 8 and a scanline or image does not + end at a full byte +*/ +static void Adam7_getpassvalues(unsigned passw[7], unsigned passh[7], size_t filter_passstart[8], + size_t padded_passstart[8], size_t passstart[8], unsigned w, unsigned h, unsigned bpp) +{ + /*the passstart values have 8 values: the 8th one indicates the byte after the end of the 7th (= last) pass*/ + unsigned i; + + /*calculate width and height in pixels of each pass*/ + for(i = 0; i != 7; ++i) + { + passw[i] = (w + ADAM7_DX[i] - ADAM7_IX[i] - 1) / ADAM7_DX[i]; + passh[i] = (h + ADAM7_DY[i] - ADAM7_IY[i] - 1) / ADAM7_DY[i]; + if(passw[i] == 0) passh[i] = 0; + if(passh[i] == 0) passw[i] = 0; + } + + filter_passstart[0] = padded_passstart[0] = passstart[0] = 0; + for(i = 0; i != 7; ++i) + { + /*if passw[i] is 0, it's 0 bytes, not 1 (no filtertype-byte)*/ + filter_passstart[i + 1] = filter_passstart[i] + + ((passw[i] && passh[i]) ? passh[i] * (1 + (passw[i] * bpp + 7) / 8) : 0); + /*bits padded if needed to fill full byte at end of each scanline*/ + padded_passstart[i + 1] = padded_passstart[i] + passh[i] * ((passw[i] * bpp + 7) / 8); + /*only padded at end of reduced image*/ + passstart[i + 1] = passstart[i] + (passh[i] * passw[i] * bpp + 7) / 8; + } +} + +#ifdef LODEPNG_COMPILE_DECODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / PNG Decoder / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*read the information from the header and store it in the LodePNGInfo. return value is error*/ +unsigned lodepng_inspect(unsigned* w, unsigned* h, LodePNGState* state, + const unsigned char* in, size_t insize) +{ + LodePNGInfo* info = &state->info_png; + if(insize == 0 || in == 0) + { + CERROR_RETURN_ERROR(state->error, 48); /*error: the given data is empty*/ + } + if(insize < 33) + { + CERROR_RETURN_ERROR(state->error, 27); /*error: the data length is smaller than the length of a PNG header*/ + } + + /*when decoding a new PNG image, make sure all parameters created after previous decoding are reset*/ + lodepng_info_cleanup(info); + lodepng_info_init(info); + + if(in[0] != 137 || in[1] != 80 || in[2] != 78 || in[3] != 71 + || in[4] != 13 || in[5] != 10 || in[6] != 26 || in[7] != 10) + { + CERROR_RETURN_ERROR(state->error, 28); /*error: the first 8 bytes are not the correct PNG signature*/ + } + if(lodepng_chunk_length(in + 8) != 13) + { + CERROR_RETURN_ERROR(state->error, 94); /*error: header size must be 13 bytes*/ + } + if(!lodepng_chunk_type_equals(in + 8, "IHDR")) + { + CERROR_RETURN_ERROR(state->error, 29); /*error: it doesn't start with a IHDR chunk!*/ + } + + /*read the values given in the header*/ + *w = lodepng_read32bitInt(&in[16]); + *h = lodepng_read32bitInt(&in[20]); + info->color.bitdepth = in[24]; + info->color.colortype = (LodePNGColorType)in[25]; + info->compression_method = in[26]; + info->filter_method = in[27]; + info->interlace_method = in[28]; + + if(*w == 0 || *h == 0) + { + CERROR_RETURN_ERROR(state->error, 93); + } + + if(!state->decoder.ignore_crc) + { + unsigned CRC = lodepng_read32bitInt(&in[29]); + unsigned checksum = lodepng_crc32(&in[12], 17); + if(CRC != checksum) + { + CERROR_RETURN_ERROR(state->error, 57); /*invalid CRC*/ + } + } + + /*error: only compression method 0 is allowed in the specification*/ + if(info->compression_method != 0) CERROR_RETURN_ERROR(state->error, 32); + /*error: only filter method 0 is allowed in the specification*/ + if(info->filter_method != 0) CERROR_RETURN_ERROR(state->error, 33); + /*error: only interlace methods 0 and 1 exist in the specification*/ + if(info->interlace_method > 1) CERROR_RETURN_ERROR(state->error, 34); + + state->error = checkColorValidity(info->color.colortype, info->color.bitdepth); + return state->error; +} + +static unsigned unfilterScanline(unsigned char* recon, const unsigned char* scanline, const unsigned char* precon, + size_t bytewidth, unsigned char filterType, size_t length) +{ + /* + For PNG filter method 0 + unfilter a PNG image scanline by scanline. when the pixels are smaller than 1 byte, + the filter works byte per byte (bytewidth = 1) + precon is the previous unfiltered scanline, recon the result, scanline the current one + the incoming scanlines do NOT include the filtertype byte, that one is given in the parameter filterType instead + recon and scanline MAY be the same memory address! precon must be disjoint. + */ + + size_t i; + switch(filterType) + { + case 0: + for(i = 0; i != length; ++i) recon[i] = scanline[i]; + break; + case 1: + for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i]; + for(i = bytewidth; i < length; ++i) recon[i] = scanline[i] + recon[i - bytewidth]; + break; + case 2: + if(precon) + { + for(i = 0; i != length; ++i) recon[i] = scanline[i] + precon[i]; + } + else + { + for(i = 0; i != length; ++i) recon[i] = scanline[i]; + } + break; + case 3: + if(precon) + { + for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i] + (precon[i] >> 1); + for(i = bytewidth; i < length; ++i) recon[i] = scanline[i] + ((recon[i - bytewidth] + precon[i]) >> 1); + } + else + { + for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i]; + for(i = bytewidth; i < length; ++i) recon[i] = scanline[i] + (recon[i - bytewidth] >> 1); + } + break; + case 4: + if(precon) + { + for(i = 0; i != bytewidth; ++i) + { + recon[i] = (scanline[i] + precon[i]); /*paethPredictor(0, precon[i], 0) is always precon[i]*/ + } + for(i = bytewidth; i < length; ++i) + { + recon[i] = (scanline[i] + paethPredictor(recon[i - bytewidth], precon[i], precon[i - bytewidth])); + } + } + else + { + for(i = 0; i != bytewidth; ++i) + { + recon[i] = scanline[i]; + } + for(i = bytewidth; i < length; ++i) + { + /*paethPredictor(recon[i - bytewidth], 0, 0) is always recon[i - bytewidth]*/ + recon[i] = (scanline[i] + recon[i - bytewidth]); + } + } + break; + default: return 36; /*error: unexisting filter type given*/ + } + return 0; +} + +static unsigned unfilter(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, unsigned bpp) +{ + /* + For PNG filter method 0 + this function unfilters a single image (e.g. without interlacing this is called once, with Adam7 seven times) + out must have enough bytes allocated already, in must have the scanlines + 1 filtertype byte per scanline + w and h are image dimensions or dimensions of reduced image, bpp is bits per pixel + in and out are allowed to be the same memory address (but aren't the same size since in has the extra filter bytes) + */ + + unsigned y; + unsigned char* prevline = 0; + + /*bytewidth is used for filtering, is 1 when bpp < 8, number of bytes per pixel otherwise*/ + size_t bytewidth = (bpp + 7) / 8; + size_t linebytes = (w * bpp + 7) / 8; + + for(y = 0; y < h; ++y) + { + size_t outindex = linebytes * y; + size_t inindex = (1 + linebytes) * y; /*the extra filterbyte added to each row*/ + unsigned char filterType = in[inindex]; + + CERROR_TRY_RETURN(unfilterScanline(&out[outindex], &in[inindex + 1], prevline, bytewidth, filterType, linebytes)); + + prevline = &out[outindex]; + } + + return 0; +} + +/* +in: Adam7 interlaced image, with no padding bits between scanlines, but between + reduced images so that each reduced image starts at a byte. +out: the same pixels, but re-ordered so that they're now a non-interlaced image with size w*h +bpp: bits per pixel +out has the following size in bits: w * h * bpp. +in is possibly bigger due to padding bits between reduced images. +out must be big enough AND must be 0 everywhere if bpp < 8 in the current implementation +(because that's likely a little bit faster) +NOTE: comments about padding bits are only relevant if bpp < 8 +*/ +static void Adam7_deinterlace(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, unsigned bpp) +{ + unsigned passw[7], passh[7]; + size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned i; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + if(bpp >= 8) + { + for(i = 0; i != 7; ++i) + { + unsigned x, y, b; + size_t bytewidth = bpp / 8; + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) + { + size_t pixelinstart = passstart[i] + (y * passw[i] + x) * bytewidth; + size_t pixeloutstart = ((ADAM7_IY[i] + y * ADAM7_DY[i]) * w + ADAM7_IX[i] + x * ADAM7_DX[i]) * bytewidth; + for(b = 0; b < bytewidth; ++b) + { + out[pixeloutstart + b] = in[pixelinstart + b]; + } + } + } + } + else /*bpp < 8: Adam7 with pixels < 8 bit is a bit trickier: with bit pointers*/ + { + for(i = 0; i != 7; ++i) + { + unsigned x, y, b; + unsigned ilinebits = bpp * passw[i]; + unsigned olinebits = bpp * w; + size_t obp, ibp; /*bit pointers (for out and in buffer)*/ + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) + { + ibp = (8 * passstart[i]) + (y * ilinebits + x * bpp); + obp = (ADAM7_IY[i] + y * ADAM7_DY[i]) * olinebits + (ADAM7_IX[i] + x * ADAM7_DX[i]) * bpp; + for(b = 0; b < bpp; ++b) + { + unsigned char bit = readBitFromReversedStream(&ibp, in); + /*note that this function assumes the out buffer is completely 0, use setBitOfReversedStream otherwise*/ + setBitOfReversedStream0(&obp, out, bit); + } + } + } + } +} + +static void removePaddingBits(unsigned char* out, const unsigned char* in, + size_t olinebits, size_t ilinebits, unsigned h) +{ + /* + After filtering there are still padding bits if scanlines have non multiple of 8 bit amounts. They need + to be removed (except at last scanline of (Adam7-reduced) image) before working with pure image buffers + for the Adam7 code, the color convert code and the output to the user. + in and out are allowed to be the same buffer, in may also be higher but still overlapping; in must + have >= ilinebits*h bits, out must have >= olinebits*h bits, olinebits must be <= ilinebits + also used to move bits after earlier such operations happened, e.g. in a sequence of reduced images from Adam7 + only useful if (ilinebits - olinebits) is a value in the range 1..7 + */ + unsigned y; + size_t diff = ilinebits - olinebits; + size_t ibp = 0, obp = 0; /*input and output bit pointers*/ + for(y = 0; y < h; ++y) + { + size_t x; + for(x = 0; x < olinebits; ++x) + { + unsigned char bit = readBitFromReversedStream(&ibp, in); + setBitOfReversedStream(&obp, out, bit); + } + ibp += diff; + } +} + +/*out must be buffer big enough to contain full image, and in must contain the full decompressed data from +the IDAT chunks (with filter index bytes and possible padding bits) +return value is error*/ +static unsigned postProcessScanlines(unsigned char* out, unsigned char* in, + unsigned w, unsigned h, const LodePNGInfo* info_png) +{ + /* + This function converts the filtered-padded-interlaced data into pure 2D image buffer with the PNG's colortype. + Steps: + *) if no Adam7: 1) unfilter 2) remove padding bits (= posible extra bits per scanline if bpp < 8) + *) if adam7: 1) 7x unfilter 2) 7x remove padding bits 3) Adam7_deinterlace + NOTE: the in buffer will be overwritten with intermediate data! + */ + unsigned bpp = lodepng_get_bpp(&info_png->color); + if(bpp == 0) return 31; /*error: invalid colortype*/ + + if(info_png->interlace_method == 0) + { + if(bpp < 8 && w * bpp != ((w * bpp + 7) / 8) * 8) + { + CERROR_TRY_RETURN(unfilter(in, in, w, h, bpp)); + removePaddingBits(out, in, w * bpp, ((w * bpp + 7) / 8) * 8, h); + } + /*we can immediately filter into the out buffer, no other steps needed*/ + else CERROR_TRY_RETURN(unfilter(out, in, w, h, bpp)); + } + else /*interlace_method is 1 (Adam7)*/ + { + unsigned passw[7], passh[7]; size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned i; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + for(i = 0; i != 7; ++i) + { + CERROR_TRY_RETURN(unfilter(&in[padded_passstart[i]], &in[filter_passstart[i]], passw[i], passh[i], bpp)); + /*TODO: possible efficiency improvement: if in this reduced image the bits fit nicely in 1 scanline, + move bytes instead of bits or move not at all*/ + if(bpp < 8) + { + /*remove padding bits in scanlines; after this there still may be padding + bits between the different reduced images: each reduced image still starts nicely at a byte*/ + removePaddingBits(&in[passstart[i]], &in[padded_passstart[i]], passw[i] * bpp, + ((passw[i] * bpp + 7) / 8) * 8, passh[i]); + } + } + + Adam7_deinterlace(out, in, w, h, bpp); + } + + return 0; +} + +static unsigned readChunk_PLTE(LodePNGColorMode* color, const unsigned char* data, size_t chunkLength) +{ + unsigned pos = 0, i; + if(color->palette) lodepng_free(color->palette); + color->palettesize = chunkLength / 3; + color->palette = (unsigned char*)lodepng_malloc(4 * color->palettesize); + if(!color->palette && color->palettesize) + { + color->palettesize = 0; + return 83; /*alloc fail*/ + } + if(color->palettesize > 256) return 38; /*error: palette too big*/ + + for(i = 0; i != color->palettesize; ++i) + { + color->palette[4 * i + 0] = data[pos++]; /*R*/ + color->palette[4 * i + 1] = data[pos++]; /*G*/ + color->palette[4 * i + 2] = data[pos++]; /*B*/ + color->palette[4 * i + 3] = 255; /*alpha*/ + } + + return 0; /* OK */ +} + +static unsigned readChunk_tRNS(LodePNGColorMode* color, const unsigned char* data, size_t chunkLength) +{ + unsigned i; + if(color->colortype == LCT_PALETTE) + { + /*error: more alpha values given than there are palette entries*/ + if(chunkLength > color->palettesize) return 38; + + for(i = 0; i != chunkLength; ++i) color->palette[4 * i + 3] = data[i]; + } + else if(color->colortype == LCT_GREY) + { + /*error: this chunk must be 2 bytes for greyscale image*/ + if(chunkLength != 2) return 30; + + color->key_defined = 1; + color->key_r = color->key_g = color->key_b = 256u * data[0] + data[1]; + } + else if(color->colortype == LCT_RGB) + { + /*error: this chunk must be 6 bytes for RGB image*/ + if(chunkLength != 6) return 41; + + color->key_defined = 1; + color->key_r = 256u * data[0] + data[1]; + color->key_g = 256u * data[2] + data[3]; + color->key_b = 256u * data[4] + data[5]; + } + else return 42; /*error: tRNS chunk not allowed for other color models*/ + + return 0; /* OK */ +} + + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +/*background color chunk (bKGD)*/ +static unsigned readChunk_bKGD(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) +{ + if(info->color.colortype == LCT_PALETTE) + { + /*error: this chunk must be 1 byte for indexed color image*/ + if(chunkLength != 1) return 43; + + info->background_defined = 1; + info->background_r = info->background_g = info->background_b = data[0]; + } + else if(info->color.colortype == LCT_GREY || info->color.colortype == LCT_GREY_ALPHA) + { + /*error: this chunk must be 2 bytes for greyscale image*/ + if(chunkLength != 2) return 44; + + info->background_defined = 1; + info->background_r = info->background_g = info->background_b = 256u * data[0] + data[1]; + } + else if(info->color.colortype == LCT_RGB || info->color.colortype == LCT_RGBA) + { + /*error: this chunk must be 6 bytes for greyscale image*/ + if(chunkLength != 6) return 45; + + info->background_defined = 1; + info->background_r = 256u * data[0] + data[1]; + info->background_g = 256u * data[2] + data[3]; + info->background_b = 256u * data[4] + data[5]; + } + + return 0; /* OK */ +} + +/*text chunk (tEXt)*/ +static unsigned readChunk_tEXt(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) +{ + unsigned error = 0; + char *key = 0, *str = 0; + unsigned i; + + while(!error) /*not really a while loop, only used to break on error*/ + { + unsigned length, string2_begin; + + length = 0; + while(length < chunkLength && data[length] != 0) ++length; + /*even though it's not allowed by the standard, no error is thrown if + there's no null termination char, if the text is empty*/ + if(length < 1 || length > 79) CERROR_BREAK(error, 89); /*keyword too short or long*/ + + key = (char*)lodepng_malloc(length + 1); + if(!key) CERROR_BREAK(error, 83); /*alloc fail*/ + + key[length] = 0; + for(i = 0; i != length; ++i) key[i] = (char)data[i]; + + string2_begin = length + 1; /*skip keyword null terminator*/ + + length = (unsigned int)chunkLength < string2_begin ? 0 : (unsigned int)chunkLength - string2_begin; + str = (char*)lodepng_malloc(length + 1); + if(!str) CERROR_BREAK(error, 83); /*alloc fail*/ + + str[length] = 0; + for(i = 0; i != length; ++i) str[i] = (char)data[string2_begin + i]; + + error = lodepng_add_text(info, key, str); + + break; + } + + lodepng_free(key); + lodepng_free(str); + + return error; +} + +/*compressed text chunk (zTXt)*/ +static unsigned readChunk_zTXt(LodePNGInfo* info, const LodePNGDecompressSettings* zlibsettings, + const unsigned char* data, size_t chunkLength) +{ + unsigned error = 0; + unsigned i; + + unsigned length, string2_begin; + char *key = 0; + ucvector decoded; + + ucvector_init(&decoded); + + while(!error) /*not really a while loop, only used to break on error*/ + { + for(length = 0; length < chunkLength && data[length] != 0; ++length) ; + if(length + 2 >= chunkLength) CERROR_BREAK(error, 75); /*no null termination, corrupt?*/ + if(length < 1 || length > 79) CERROR_BREAK(error, 89); /*keyword too short or long*/ + + key = (char*)lodepng_malloc(length + 1); + if(!key) CERROR_BREAK(error, 83); /*alloc fail*/ + + key[length] = 0; + for(i = 0; i != length; ++i) key[i] = (char)data[i]; + + if(data[length + 1] != 0) CERROR_BREAK(error, 72); /*the 0 byte indicating compression must be 0*/ + + string2_begin = length + 2; + if(string2_begin > chunkLength) CERROR_BREAK(error, 75); /*no null termination, corrupt?*/ + + length = (unsigned int)chunkLength - string2_begin; + /*will fail if zlib error, e.g. if length is too small*/ + error = zlib_decompress(&decoded.data, &decoded.size, + (unsigned char*)(&data[string2_begin]), + length, zlibsettings); + if(error) break; + ucvector_push_back(&decoded, 0); + + error = lodepng_add_text(info, key, (char*)decoded.data); + + break; + } + + lodepng_free(key); + ucvector_cleanup(&decoded); + + return error; +} + +/*international text chunk (iTXt)*/ +static unsigned readChunk_iTXt(LodePNGInfo* info, const LodePNGDecompressSettings* zlibsettings, + const unsigned char* data, size_t chunkLength) +{ + unsigned error = 0; + unsigned i; + + unsigned length, begin, compressed; + char *key = 0, *langtag = 0, *transkey = 0; + ucvector decoded; + ucvector_init(&decoded); + + while(!error) /*not really a while loop, only used to break on error*/ + { + /*Quick check if the chunk length isn't too small. Even without check + it'd still fail with other error checks below if it's too short. This just gives a different error code.*/ + if(chunkLength < 5) CERROR_BREAK(error, 30); /*iTXt chunk too short*/ + + /*read the key*/ + for(length = 0; length < chunkLength && data[length] != 0; ++length) ; + if(length + 3 >= chunkLength) CERROR_BREAK(error, 75); /*no null termination char, corrupt?*/ + if(length < 1 || length > 79) CERROR_BREAK(error, 89); /*keyword too short or long*/ + + key = (char*)lodepng_malloc(length + 1); + if(!key) CERROR_BREAK(error, 83); /*alloc fail*/ + + key[length] = 0; + for(i = 0; i != length; ++i) key[i] = (char)data[i]; + + /*read the compression method*/ + compressed = data[length + 1]; + if(data[length + 2] != 0) CERROR_BREAK(error, 72); /*the 0 byte indicating compression must be 0*/ + + /*even though it's not allowed by the standard, no error is thrown if + there's no null termination char, if the text is empty for the next 3 texts*/ + + /*read the langtag*/ + begin = length + 3; + length = 0; + for(i = begin; i < chunkLength && data[i] != 0; ++i) ++length; + + langtag = (char*)lodepng_malloc(length + 1); + if(!langtag) CERROR_BREAK(error, 83); /*alloc fail*/ + + langtag[length] = 0; + for(i = 0; i != length; ++i) langtag[i] = (char)data[begin + i]; + + /*read the transkey*/ + begin += length + 1; + length = 0; + for(i = begin; i < chunkLength && data[i] != 0; ++i) ++length; + + transkey = (char*)lodepng_malloc(length + 1); + if(!transkey) CERROR_BREAK(error, 83); /*alloc fail*/ + + transkey[length] = 0; + for(i = 0; i != length; ++i) transkey[i] = (char)data[begin + i]; + + /*read the actual text*/ + begin += length + 1; + + length = (unsigned int)chunkLength < begin ? 0 : (unsigned int)chunkLength - begin; + + if(compressed) + { + /*will fail if zlib error, e.g. if length is too small*/ + error = zlib_decompress(&decoded.data, &decoded.size, + (unsigned char*)(&data[begin]), + length, zlibsettings); + if(error) break; + if(decoded.allocsize < decoded.size) decoded.allocsize = decoded.size; + ucvector_push_back(&decoded, 0); + } + else + { + if(!ucvector_resize(&decoded, length + 1)) CERROR_BREAK(error, 83 /*alloc fail*/); + + decoded.data[length] = 0; + for(i = 0; i != length; ++i) decoded.data[i] = data[begin + i]; + } + + error = lodepng_add_itext(info, key, langtag, transkey, (char*)decoded.data); + + break; + } + + lodepng_free(key); + lodepng_free(langtag); + lodepng_free(transkey); + ucvector_cleanup(&decoded); + + return error; +} + +static unsigned readChunk_tIME(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) +{ + if(chunkLength != 7) return 73; /*invalid tIME chunk size*/ + + info->time_defined = 1; + info->time.year = 256u * data[0] + data[1]; + info->time.month = data[2]; + info->time.day = data[3]; + info->time.hour = data[4]; + info->time.minute = data[5]; + info->time.second = data[6]; + + return 0; /* OK */ +} + +static unsigned readChunk_pHYs(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) +{ + if(chunkLength != 9) return 74; /*invalid pHYs chunk size*/ + + info->phys_defined = 1; + info->phys_x = 16777216u * data[0] + 65536u * data[1] + 256u * data[2] + data[3]; + info->phys_y = 16777216u * data[4] + 65536u * data[5] + 256u * data[6] + data[7]; + info->phys_unit = data[8]; + + return 0; /* OK */ +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +/*read a PNG, the result will be in the same color type as the PNG (hence "generic")*/ +static void decodeGeneric(unsigned char** out, unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize) +{ + unsigned char IEND = 0; + const unsigned char* chunk; + size_t i; + ucvector idat; /*the data from idat chunks*/ + ucvector scanlines; + size_t predict; + size_t numpixels; + + /*for unknown chunk order*/ + unsigned unknown = 0; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + unsigned critical_pos = 1; /*1 = after IHDR, 2 = after PLTE, 3 = after IDAT*/ +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + + /*provide some proper output values if error will happen*/ + *out = 0; + + state->error = lodepng_inspect(w, h, state, in, insize); /*reads header and resets other parameters in state->info_png*/ + if(state->error) return; + + numpixels = *w * *h; + + /*multiplication overflow*/ + if(*h != 0 && numpixels / *h != *w) CERROR_RETURN(state->error, 92); + /*multiplication overflow possible further below. Allows up to 2^31-1 pixel + bytes with 16-bit RGBA, the rest is room for filter bytes.*/ + if(numpixels > 268435455) CERROR_RETURN(state->error, 92); + + ucvector_init(&idat); + chunk = &in[33]; /*first byte of the first chunk after the header*/ + + /*loop through the chunks, ignoring unknown chunks and stopping at IEND chunk. + IDAT data is put at the start of the in buffer*/ + while(!IEND && !state->error) + { + unsigned chunkLength; + const unsigned char* data; /*the data in the chunk*/ + + /*error: size of the in buffer too small to contain next chunk*/ + if((size_t)((chunk - in) + 12) > insize || chunk < in) CERROR_BREAK(state->error, 30); + + /*length of the data of the chunk, excluding the length bytes, chunk type and CRC bytes*/ + chunkLength = lodepng_chunk_length(chunk); + /*error: chunk length larger than the max PNG chunk size*/ + if(chunkLength > 2147483647) CERROR_BREAK(state->error, 63); + + if((size_t)((chunk - in) + chunkLength + 12) > insize || (chunk + chunkLength + 12) < in) + { + CERROR_BREAK(state->error, 64); /*error: size of the in buffer too small to contain next chunk*/ + } + + data = lodepng_chunk_data_const(chunk); + + /*IDAT chunk, containing compressed image data*/ + if(lodepng_chunk_type_equals(chunk, "IDAT")) + { + size_t oldsize = idat.size; + if(!ucvector_resize(&idat, oldsize + chunkLength)) CERROR_BREAK(state->error, 83 /*alloc fail*/); + for(i = 0; i != chunkLength; ++i) idat.data[oldsize + i] = data[i]; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + critical_pos = 3; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + } + /*IEND chunk*/ + else if(lodepng_chunk_type_equals(chunk, "IEND")) + { + IEND = 1; + } + /*palette chunk (PLTE)*/ + else if(lodepng_chunk_type_equals(chunk, "PLTE")) + { + state->error = readChunk_PLTE(&state->info_png.color, data, chunkLength); + if(state->error) break; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + critical_pos = 2; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + } + /*palette transparency chunk (tRNS)*/ + else if(lodepng_chunk_type_equals(chunk, "tRNS")) + { + state->error = readChunk_tRNS(&state->info_png.color, data, chunkLength); + if(state->error) break; + } +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*background color chunk (bKGD)*/ + else if(lodepng_chunk_type_equals(chunk, "bKGD")) + { + state->error = readChunk_bKGD(&state->info_png, data, chunkLength); + if(state->error) break; + } + /*text chunk (tEXt)*/ + else if(lodepng_chunk_type_equals(chunk, "tEXt")) + { + if(state->decoder.read_text_chunks) + { + state->error = readChunk_tEXt(&state->info_png, data, chunkLength); + if(state->error) break; + } + } + /*compressed text chunk (zTXt)*/ + else if(lodepng_chunk_type_equals(chunk, "zTXt")) + { + if(state->decoder.read_text_chunks) + { + state->error = readChunk_zTXt(&state->info_png, &state->decoder.zlibsettings, data, chunkLength); + if(state->error) break; + } + } + /*international text chunk (iTXt)*/ + else if(lodepng_chunk_type_equals(chunk, "iTXt")) + { + if(state->decoder.read_text_chunks) + { + state->error = readChunk_iTXt(&state->info_png, &state->decoder.zlibsettings, data, chunkLength); + if(state->error) break; + } + } + else if(lodepng_chunk_type_equals(chunk, "tIME")) + { + state->error = readChunk_tIME(&state->info_png, data, chunkLength); + if(state->error) break; + } + else if(lodepng_chunk_type_equals(chunk, "pHYs")) + { + state->error = readChunk_pHYs(&state->info_png, data, chunkLength); + if(state->error) break; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + else /*it's not an implemented chunk type, so ignore it: skip over the data*/ + { + /*error: unknown critical chunk (5th bit of first byte of chunk type is 0)*/ + if(!lodepng_chunk_ancillary(chunk)) CERROR_BREAK(state->error, 69); + + unknown = 1; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + if(state->decoder.remember_unknown_chunks) + { + state->error = lodepng_chunk_append(&state->info_png.unknown_chunks_data[critical_pos - 1], + &state->info_png.unknown_chunks_size[critical_pos - 1], chunk); + if(state->error) break; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + } + + if(!state->decoder.ignore_crc && !unknown) /*check CRC if wanted, only on known chunk types*/ + { + if(lodepng_chunk_check_crc(chunk)) CERROR_BREAK(state->error, 57); /*invalid CRC*/ + } + + if(!IEND) chunk = lodepng_chunk_next_const(chunk); + } + + ucvector_init(&scanlines); + /*predict output size, to allocate exact size for output buffer to avoid more dynamic allocation. + If the decompressed size does not match the prediction, the image must be corrupt.*/ + if(state->info_png.interlace_method == 0) + { + /*The extra *h is added because this are the filter bytes every scanline starts with*/ + predict = lodepng_get_raw_size_idat(*w, *h, &state->info_png.color) + *h; + } + else + { + /*Adam-7 interlaced: predicted size is the sum of the 7 sub-images sizes*/ + const LodePNGColorMode* color = &state->info_png.color; + predict = 0; + predict += lodepng_get_raw_size_idat((*w + 7) >> 3, (*h + 7) >> 3, color) + ((*h + 7) >> 3); + if(*w > 4) predict += lodepng_get_raw_size_idat((*w + 3) >> 3, (*h + 7) >> 3, color) + ((*h + 7) >> 3); + predict += lodepng_get_raw_size_idat((*w + 3) >> 2, (*h + 3) >> 3, color) + ((*h + 3) >> 3); + if(*w > 2) predict += lodepng_get_raw_size_idat((*w + 1) >> 2, (*h + 3) >> 2, color) + ((*h + 3) >> 2); + predict += lodepng_get_raw_size_idat((*w + 1) >> 1, (*h + 1) >> 2, color) + ((*h + 1) >> 2); + if(*w > 1) predict += lodepng_get_raw_size_idat((*w + 0) >> 1, (*h + 1) >> 1, color) + ((*h + 1) >> 1); + predict += lodepng_get_raw_size_idat((*w + 0), (*h + 0) >> 1, color) + ((*h + 0) >> 1); + } + if(!state->error && !ucvector_reserve(&scanlines, predict)) state->error = 83; /*alloc fail*/ + if(!state->error) + { + state->error = zlib_decompress(&scanlines.data, &scanlines.size, idat.data, + idat.size, &state->decoder.zlibsettings); + if(!state->error && scanlines.size != predict) state->error = 91; /*decompressed size doesn't match prediction*/ + } + ucvector_cleanup(&idat); + + if(!state->error) + { + size_t outsize = lodepng_get_raw_size(*w, *h, &state->info_png.color); + *out = (unsigned char*)lodepng_malloc(outsize); + if(!*out) state->error = 83; /*alloc fail*/ + for(i = 0; i < outsize; i++) (*out)[i] = 0; + if(!state->error) state->error = postProcessScanlines(*out, scanlines.data, *w, *h, &state->info_png); + } + ucvector_cleanup(&scanlines); +} + +unsigned lodepng_decode(unsigned char** out, unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize) +{ + *out = 0; + decodeGeneric(out, w, h, state, in, insize); + if(state->error) return state->error; + if(!state->decoder.color_convert || lodepng_color_mode_equal(&state->info_raw, &state->info_png.color)) + { + /*same color type, no copying or converting of data needed*/ + /*store the info_png color settings on the info_raw so that the info_raw still reflects what colortype + the raw image has to the end user*/ + if(!state->decoder.color_convert) + { + state->error = lodepng_color_mode_copy(&state->info_raw, &state->info_png.color); + if(state->error) return state->error; + } + } + else + { + /*color conversion needed; sort of copy of the data*/ + unsigned char* data = *out; + size_t outsize; + + /*TODO: check if this works according to the statement in the documentation: "The converter can convert + from greyscale input color type, to 8-bit greyscale or greyscale with alpha"*/ + if(!(state->info_raw.colortype == LCT_RGB || state->info_raw.colortype == LCT_RGBA) + && !(state->info_raw.bitdepth == 8)) + { + return 56; /*unsupported color mode conversion*/ + } + + outsize = lodepng_get_raw_size(*w, *h, &state->info_raw); + *out = (unsigned char*)lodepng_malloc(outsize); + if(!(*out)) + { + state->error = 83; /*alloc fail*/ + } + else state->error = lodepng_convert(*out, data, &state->info_raw, + &state->info_png.color, *w, *h); + lodepng_free(data); + } + return state->error; +} + +unsigned lodepng_decode_memory(unsigned char** out, unsigned* w, unsigned* h, const unsigned char* in, + size_t insize, LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned error; + LodePNGState state; + lodepng_state_init(&state); + state.info_raw.colortype = colortype; + state.info_raw.bitdepth = bitdepth; + error = lodepng_decode(out, w, h, &state, in, insize); + lodepng_state_cleanup(&state); + return error; +} + +unsigned lodepng_decode32(unsigned char** out, unsigned* w, unsigned* h, const unsigned char* in, size_t insize) +{ + return lodepng_decode_memory(out, w, h, in, insize, LCT_RGBA, 8); +} + +unsigned lodepng_decode24(unsigned char** out, unsigned* w, unsigned* h, const unsigned char* in, size_t insize) +{ + return lodepng_decode_memory(out, w, h, in, insize, LCT_RGB, 8); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned lodepng_decode_file(unsigned char** out, unsigned* w, unsigned* h, const char* filename, + LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned char* buffer; + size_t buffersize; + unsigned error; + error = lodepng_load_file(&buffer, &buffersize, filename); + if(!error) error = lodepng_decode_memory(out, w, h, buffer, buffersize, colortype, bitdepth); + lodepng_free(buffer); + return error; +} + +unsigned lodepng_decode32_file(unsigned char** out, unsigned* w, unsigned* h, const char* filename) +{ + return lodepng_decode_file(out, w, h, filename, LCT_RGBA, 8); +} + +unsigned lodepng_decode24_file(unsigned char** out, unsigned* w, unsigned* h, const char* filename) +{ + return lodepng_decode_file(out, w, h, filename, LCT_RGB, 8); +} +#endif /*LODEPNG_COMPILE_DISK*/ + +void lodepng_decoder_settings_init(LodePNGDecoderSettings* settings) +{ + settings->color_convert = 1; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + settings->read_text_chunks = 1; + settings->remember_unknown_chunks = 0; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + settings->ignore_crc = 0; + lodepng_decompress_settings_init(&settings->zlibsettings); +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +#if defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) + +void lodepng_state_init(LodePNGState* state) +{ +#ifdef LODEPNG_COMPILE_DECODER + lodepng_decoder_settings_init(&state->decoder); +#endif /*LODEPNG_COMPILE_DECODER*/ +#ifdef LODEPNG_COMPILE_ENCODER + lodepng_encoder_settings_init(&state->encoder); +#endif /*LODEPNG_COMPILE_ENCODER*/ + lodepng_color_mode_init(&state->info_raw); + lodepng_info_init(&state->info_png); + state->error = 1; +} + +void lodepng_state_cleanup(LodePNGState* state) +{ + lodepng_color_mode_cleanup(&state->info_raw); + lodepng_info_cleanup(&state->info_png); +} + +void lodepng_state_copy(LodePNGState* dest, const LodePNGState* source) +{ + lodepng_state_cleanup(dest); + *dest = *source; + lodepng_color_mode_init(&dest->info_raw); + lodepng_info_init(&dest->info_png); + dest->error = lodepng_color_mode_copy(&dest->info_raw, &source->info_raw); if(dest->error) return; + dest->error = lodepng_info_copy(&dest->info_png, &source->info_png); if(dest->error) return; +} + +#endif /* defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) */ + +#ifdef LODEPNG_COMPILE_ENCODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / PNG Encoder / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*chunkName must be string of 4 characters*/ +static unsigned addChunk(ucvector* out, const char* chunkName, const unsigned char* data, size_t length) +{ + CERROR_TRY_RETURN(lodepng_chunk_create(&out->data, &out->size, (unsigned)length, chunkName, data)); + out->allocsize = out->size; /*fix the allocsize again*/ + return 0; +} + +static void writeSignature(ucvector* out) +{ + /*8 bytes PNG signature, aka the magic bytes*/ + ucvector_push_back(out, 137); + ucvector_push_back(out, 80); + ucvector_push_back(out, 78); + ucvector_push_back(out, 71); + ucvector_push_back(out, 13); + ucvector_push_back(out, 10); + ucvector_push_back(out, 26); + ucvector_push_back(out, 10); +} + +static unsigned addChunk_IHDR(ucvector* out, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth, unsigned interlace_method) +{ + unsigned error = 0; + ucvector header; + ucvector_init(&header); + + lodepng_add32bitInt(&header, w); /*width*/ + lodepng_add32bitInt(&header, h); /*height*/ + ucvector_push_back(&header, (unsigned char)bitdepth); /*bit depth*/ + ucvector_push_back(&header, (unsigned char)colortype); /*color type*/ + ucvector_push_back(&header, 0); /*compression method*/ + ucvector_push_back(&header, 0); /*filter method*/ + ucvector_push_back(&header, interlace_method); /*interlace method*/ + + error = addChunk(out, "IHDR", header.data, header.size); + ucvector_cleanup(&header); + + return error; +} + +static unsigned addChunk_PLTE(ucvector* out, const LodePNGColorMode* info) +{ + unsigned error = 0; + size_t i; + ucvector PLTE; + ucvector_init(&PLTE); + for(i = 0; i != info->palettesize * 4; ++i) + { + /*add all channels except alpha channel*/ + if(i % 4 != 3) ucvector_push_back(&PLTE, info->palette[i]); + } + error = addChunk(out, "PLTE", PLTE.data, PLTE.size); + ucvector_cleanup(&PLTE); + + return error; +} + +static unsigned addChunk_tRNS(ucvector* out, const LodePNGColorMode* info) +{ + unsigned error = 0; + size_t i; + ucvector tRNS; + ucvector_init(&tRNS); + if(info->colortype == LCT_PALETTE) + { + size_t amount = info->palettesize; + /*the tail of palette values that all have 255 as alpha, does not have to be encoded*/ + for(i = info->palettesize; i != 0; --i) + { + if(info->palette[4 * (i - 1) + 3] == 255) --amount; + else break; + } + /*add only alpha channel*/ + for(i = 0; i != amount; ++i) ucvector_push_back(&tRNS, info->palette[4 * i + 3]); + } + else if(info->colortype == LCT_GREY) + { + if(info->key_defined) + { + ucvector_push_back(&tRNS, (unsigned char)(info->key_r >> 8)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_r & 255)); + } + } + else if(info->colortype == LCT_RGB) + { + if(info->key_defined) + { + ucvector_push_back(&tRNS, (unsigned char)(info->key_r >> 8)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_r & 255)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_g >> 8)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_g & 255)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_b >> 8)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_b & 255)); + } + } + + error = addChunk(out, "tRNS", tRNS.data, tRNS.size); + ucvector_cleanup(&tRNS); + + return error; +} + +static unsigned addChunk_IDAT(ucvector* out, const unsigned char* data, size_t datasize, + LodePNGCompressSettings* zlibsettings) +{ + ucvector zlibdata; + unsigned error = 0; + + /*compress with the Zlib compressor*/ + ucvector_init(&zlibdata); + error = zlib_compress(&zlibdata.data, &zlibdata.size, data, datasize, zlibsettings); + if(!error) error = addChunk(out, "IDAT", zlibdata.data, zlibdata.size); + ucvector_cleanup(&zlibdata); + + return error; +} + +static unsigned addChunk_IEND(ucvector* out) +{ + unsigned error = 0; + error = addChunk(out, "IEND", 0, 0); + return error; +} + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + +static unsigned addChunk_tEXt(ucvector* out, const char* keyword, const char* textstring) +{ + unsigned error = 0; + size_t i; + ucvector text; + ucvector_init(&text); + for(i = 0; keyword[i] != 0; ++i) ucvector_push_back(&text, (unsigned char)keyword[i]); + if(i < 1 || i > 79) return 89; /*error: invalid keyword size*/ + ucvector_push_back(&text, 0); /*0 termination char*/ + for(i = 0; textstring[i] != 0; ++i) ucvector_push_back(&text, (unsigned char)textstring[i]); + error = addChunk(out, "tEXt", text.data, text.size); + ucvector_cleanup(&text); + + return error; +} + +static unsigned addChunk_zTXt(ucvector* out, const char* keyword, const char* textstring, + LodePNGCompressSettings* zlibsettings) +{ + unsigned error = 0; + ucvector data, compressed; + size_t i, textsize = strlen(textstring); + + ucvector_init(&data); + ucvector_init(&compressed); + for(i = 0; keyword[i] != 0; ++i) ucvector_push_back(&data, (unsigned char)keyword[i]); + if(i < 1 || i > 79) return 89; /*error: invalid keyword size*/ + ucvector_push_back(&data, 0); /*0 termination char*/ + ucvector_push_back(&data, 0); /*compression method: 0*/ + + error = zlib_compress(&compressed.data, &compressed.size, + (unsigned char*)textstring, textsize, zlibsettings); + if(!error) + { + for(i = 0; i != compressed.size; ++i) ucvector_push_back(&data, compressed.data[i]); + error = addChunk(out, "zTXt", data.data, data.size); + } + + ucvector_cleanup(&compressed); + ucvector_cleanup(&data); + return error; +} + +static unsigned addChunk_iTXt(ucvector* out, unsigned compressed, const char* keyword, const char* langtag, + const char* transkey, const char* textstring, LodePNGCompressSettings* zlibsettings) +{ + unsigned error = 0; + ucvector data; + size_t i, textsize = strlen(textstring); + + ucvector_init(&data); + + for(i = 0; keyword[i] != 0; ++i) ucvector_push_back(&data, (unsigned char)keyword[i]); + if(i < 1 || i > 79) return 89; /*error: invalid keyword size*/ + ucvector_push_back(&data, 0); /*null termination char*/ + ucvector_push_back(&data, compressed ? 1 : 0); /*compression flag*/ + ucvector_push_back(&data, 0); /*compression method*/ + for(i = 0; langtag[i] != 0; ++i) ucvector_push_back(&data, (unsigned char)langtag[i]); + ucvector_push_back(&data, 0); /*null termination char*/ + for(i = 0; transkey[i] != 0; ++i) ucvector_push_back(&data, (unsigned char)transkey[i]); + ucvector_push_back(&data, 0); /*null termination char*/ + + if(compressed) + { + ucvector compressed_data; + ucvector_init(&compressed_data); + error = zlib_compress(&compressed_data.data, &compressed_data.size, + (unsigned char*)textstring, textsize, zlibsettings); + if(!error) + { + for(i = 0; i != compressed_data.size; ++i) ucvector_push_back(&data, compressed_data.data[i]); + } + ucvector_cleanup(&compressed_data); + } + else /*not compressed*/ + { + for(i = 0; textstring[i] != 0; ++i) ucvector_push_back(&data, (unsigned char)textstring[i]); + } + + if(!error) error = addChunk(out, "iTXt", data.data, data.size); + ucvector_cleanup(&data); + return error; +} + +static unsigned addChunk_bKGD(ucvector* out, const LodePNGInfo* info) +{ + unsigned error = 0; + ucvector bKGD; + ucvector_init(&bKGD); + if(info->color.colortype == LCT_GREY || info->color.colortype == LCT_GREY_ALPHA) + { + ucvector_push_back(&bKGD, (unsigned char)(info->background_r >> 8)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_r & 255)); + } + else if(info->color.colortype == LCT_RGB || info->color.colortype == LCT_RGBA) + { + ucvector_push_back(&bKGD, (unsigned char)(info->background_r >> 8)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_r & 255)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_g >> 8)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_g & 255)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_b >> 8)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_b & 255)); + } + else if(info->color.colortype == LCT_PALETTE) + { + ucvector_push_back(&bKGD, (unsigned char)(info->background_r & 255)); /*palette index*/ + } + + error = addChunk(out, "bKGD", bKGD.data, bKGD.size); + ucvector_cleanup(&bKGD); + + return error; +} + +static unsigned addChunk_tIME(ucvector* out, const LodePNGTime* time) +{ + unsigned error = 0; + unsigned char* data = (unsigned char*)lodepng_malloc(7); + if(!data) return 83; /*alloc fail*/ + data[0] = (unsigned char)(time->year >> 8); + data[1] = (unsigned char)(time->year & 255); + data[2] = (unsigned char)time->month; + data[3] = (unsigned char)time->day; + data[4] = (unsigned char)time->hour; + data[5] = (unsigned char)time->minute; + data[6] = (unsigned char)time->second; + error = addChunk(out, "tIME", data, 7); + lodepng_free(data); + return error; +} + +static unsigned addChunk_pHYs(ucvector* out, const LodePNGInfo* info) +{ + unsigned error = 0; + ucvector data; + ucvector_init(&data); + + lodepng_add32bitInt(&data, info->phys_x); + lodepng_add32bitInt(&data, info->phys_y); + ucvector_push_back(&data, info->phys_unit); + + error = addChunk(out, "pHYs", data.data, data.size); + ucvector_cleanup(&data); + + return error; +} + +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +static void filterScanline(unsigned char* out, const unsigned char* scanline, const unsigned char* prevline, + size_t length, size_t bytewidth, unsigned char filterType) +{ + size_t i; + switch(filterType) + { + case 0: /*None*/ + for(i = 0; i != length; ++i) out[i] = scanline[i]; + break; + case 1: /*Sub*/ + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i]; + for(i = bytewidth; i < length; ++i) out[i] = scanline[i] - scanline[i - bytewidth]; + break; + case 2: /*Up*/ + if(prevline) + { + for(i = 0; i != length; ++i) out[i] = scanline[i] - prevline[i]; + } + else + { + for(i = 0; i != length; ++i) out[i] = scanline[i]; + } + break; + case 3: /*Average*/ + if(prevline) + { + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i] - (prevline[i] >> 1); + for(i = bytewidth; i < length; ++i) out[i] = scanline[i] - ((scanline[i - bytewidth] + prevline[i]) >> 1); + } + else + { + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i]; + for(i = bytewidth; i < length; ++i) out[i] = scanline[i] - (scanline[i - bytewidth] >> 1); + } + break; + case 4: /*Paeth*/ + if(prevline) + { + /*paethPredictor(0, prevline[i], 0) is always prevline[i]*/ + for(i = 0; i != bytewidth; ++i) out[i] = (scanline[i] - prevline[i]); + for(i = bytewidth; i < length; ++i) + { + out[i] = (scanline[i] - paethPredictor(scanline[i - bytewidth], prevline[i], prevline[i - bytewidth])); + } + } + else + { + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i]; + /*paethPredictor(scanline[i - bytewidth], 0, 0) is always scanline[i - bytewidth]*/ + for(i = bytewidth; i < length; ++i) out[i] = (scanline[i] - scanline[i - bytewidth]); + } + break; + default: return; /*unexisting filter type given*/ + } +} + +/* log2 approximation. A slight bit faster than std::log. */ +static float flog2(float f) +{ + float result = 0; + while(f > 32) { result += 4; f /= 16; } + while(f > 2) { ++result; f /= 2; } + return result + 1.442695f * (f * f * f / 3 - 3 * f * f / 2 + 3 * f - 1.83333f); +} + +static unsigned filter(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, + const LodePNGColorMode* info, const LodePNGEncoderSettings* settings) +{ + /* + For PNG filter method 0 + out must be a buffer with as size: h + (w * h * bpp + 7) / 8, because there are + the scanlines with 1 extra byte per scanline + */ + + unsigned bpp = lodepng_get_bpp(info); + /*the width of a scanline in bytes, not including the filter type*/ + size_t linebytes = (w * bpp + 7) / 8; + /*bytewidth is used for filtering, is 1 when bpp < 8, number of bytes per pixel otherwise*/ + size_t bytewidth = (bpp + 7) / 8; + const unsigned char* prevline = 0; + unsigned x, y; + unsigned error = 0; + LodePNGFilterStrategy strategy = settings->filter_strategy; + + /* + There is a heuristic called the minimum sum of absolute differences heuristic, suggested by the PNG standard: + * If the image type is Palette, or the bit depth is smaller than 8, then do not filter the image (i.e. + use fixed filtering, with the filter None). + * (The other case) If the image type is Grayscale or RGB (with or without Alpha), and the bit depth is + not smaller than 8, then use adaptive filtering heuristic as follows: independently for each row, apply + all five filters and select the filter that produces the smallest sum of absolute values per row. + This heuristic is used if filter strategy is LFS_MINSUM and filter_palette_zero is true. + + If filter_palette_zero is true and filter_strategy is not LFS_MINSUM, the above heuristic is followed, + but for "the other case", whatever strategy filter_strategy is set to instead of the minimum sum + heuristic is used. + */ + if(settings->filter_palette_zero && + (info->colortype == LCT_PALETTE || info->bitdepth < 8)) strategy = LFS_ZERO; + + if(bpp == 0) return 31; /*error: invalid color type*/ + + if(strategy == LFS_ZERO) + { + for(y = 0; y != h; ++y) + { + size_t outindex = (1 + linebytes) * y; /*the extra filterbyte added to each row*/ + size_t inindex = linebytes * y; + out[outindex] = 0; /*filter type byte*/ + filterScanline(&out[outindex + 1], &in[inindex], prevline, linebytes, bytewidth, 0); + prevline = &in[inindex]; + } + } + else if(strategy == LFS_MINSUM) + { + /*adaptive filtering*/ + size_t sum[5]; + unsigned char* attempt[5]; /*five filtering attempts, one for each filter type*/ + size_t smallest = 0; + unsigned char type, bestType = 0; + + for(type = 0; type != 5; ++type) + { + attempt[type] = (unsigned char*)lodepng_malloc(linebytes); + if(!attempt[type]) return 83; /*alloc fail*/ + } + + if(!error) + { + for(y = 0; y != h; ++y) + { + /*try the 5 filter types*/ + for(type = 0; type != 5; ++type) + { + filterScanline(attempt[type], &in[y * linebytes], prevline, linebytes, bytewidth, type); + + /*calculate the sum of the result*/ + sum[type] = 0; + if(type == 0) + { + for(x = 0; x != linebytes; ++x) sum[type] += (unsigned char)(attempt[type][x]); + } + else + { + for(x = 0; x != linebytes; ++x) + { + /*For differences, each byte should be treated as signed, values above 127 are negative + (converted to signed char). Filtertype 0 isn't a difference though, so use unsigned there. + This means filtertype 0 is almost never chosen, but that is justified.*/ + unsigned char s = attempt[type][x]; + sum[type] += s < 128 ? s : (255U - s); + } + } + + /*check if this is smallest sum (or if type == 0 it's the first case so always store the values)*/ + if(type == 0 || sum[type] < smallest) + { + bestType = type; + smallest = sum[type]; + } + } + + prevline = &in[y * linebytes]; + + /*now fill the out values*/ + out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/ + for(x = 0; x != linebytes; ++x) out[y * (linebytes + 1) + 1 + x] = attempt[bestType][x]; + } + } + + for(type = 0; type != 5; ++type) lodepng_free(attempt[type]); + } + else if(strategy == LFS_ENTROPY) + { + float sum[5]; + unsigned char* attempt[5]; /*five filtering attempts, one for each filter type*/ + float smallest = 0; + unsigned type, bestType = 0; + unsigned count[256]; + + for(type = 0; type != 5; ++type) + { + attempt[type] = (unsigned char*)lodepng_malloc(linebytes); + if(!attempt[type]) return 83; /*alloc fail*/ + } + + for(y = 0; y != h; ++y) + { + /*try the 5 filter types*/ + for(type = 0; type != 5; ++type) + { + filterScanline(attempt[type], &in[y * linebytes], prevline, linebytes, bytewidth, type); + for(x = 0; x != 256; ++x) count[x] = 0; + for(x = 0; x != linebytes; ++x) ++count[attempt[type][x]]; + ++count[type]; /*the filter type itself is part of the scanline*/ + sum[type] = 0; + for(x = 0; x != 256; ++x) + { + float p = count[x] / (float)(linebytes + 1); + sum[type] += count[x] == 0 ? 0 : flog2(1 / p) * p; + } + /*check if this is smallest sum (or if type == 0 it's the first case so always store the values)*/ + if(type == 0 || sum[type] < smallest) + { + bestType = type; + smallest = sum[type]; + } + } + + prevline = &in[y * linebytes]; + + /*now fill the out values*/ + out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/ + for(x = 0; x != linebytes; ++x) out[y * (linebytes + 1) + 1 + x] = attempt[bestType][x]; + } + + for(type = 0; type != 5; ++type) lodepng_free(attempt[type]); + } + else if(strategy == LFS_PREDEFINED) + { + for(y = 0; y != h; ++y) + { + size_t outindex = (1 + linebytes) * y; /*the extra filterbyte added to each row*/ + size_t inindex = linebytes * y; + unsigned char type = settings->predefined_filters[y]; + out[outindex] = type; /*filter type byte*/ + filterScanline(&out[outindex + 1], &in[inindex], prevline, linebytes, bytewidth, type); + prevline = &in[inindex]; + } + } + else if(strategy == LFS_BRUTE_FORCE) + { + /*brute force filter chooser. + deflate the scanline after every filter attempt to see which one deflates best. + This is very slow and gives only slightly smaller, sometimes even larger, result*/ + size_t size[5]; + unsigned char* attempt[5]; /*five filtering attempts, one for each filter type*/ + size_t smallest = 0; + unsigned type = 0, bestType = 0; + unsigned char* dummy; + LodePNGCompressSettings zlibsettings = settings->zlibsettings; + /*use fixed tree on the attempts so that the tree is not adapted to the filtertype on purpose, + to simulate the true case where the tree is the same for the whole image. Sometimes it gives + better result with dynamic tree anyway. Using the fixed tree sometimes gives worse, but in rare + cases better compression. It does make this a bit less slow, so it's worth doing this.*/ + zlibsettings.btype = 1; + /*a custom encoder likely doesn't read the btype setting and is optimized for complete PNG + images only, so disable it*/ + zlibsettings.custom_zlib = 0; + zlibsettings.custom_deflate = 0; + for(type = 0; type != 5; ++type) + { + attempt[type] = (unsigned char*)lodepng_malloc(linebytes); + if(!attempt[type]) return 83; /*alloc fail*/ + } + for(y = 0; y != h; ++y) /*try the 5 filter types*/ + { + for(type = 0; type != 5; ++type) + { + unsigned testsize = (unsigned int)linebytes; + /*if(testsize > 8) testsize /= 8;*/ /*it already works good enough by testing a part of the row*/ + + filterScanline(attempt[type], &in[y * linebytes], prevline, linebytes, bytewidth, type); + size[type] = 0; + dummy = 0; + zlib_compress(&dummy, &size[type], attempt[type], testsize, &zlibsettings); + lodepng_free(dummy); + /*check if this is smallest size (or if type == 0 it's the first case so always store the values)*/ + if(type == 0 || size[type] < smallest) + { + bestType = type; + smallest = size[type]; + } + } + prevline = &in[y * linebytes]; + out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/ + for(x = 0; x != linebytes; ++x) out[y * (linebytes + 1) + 1 + x] = attempt[bestType][x]; + } + for(type = 0; type != 5; ++type) free(attempt[type]); + } + else return 88; /* unknown filter strategy */ + + return error; +} + +static void addPaddingBits(unsigned char* out, const unsigned char* in, + size_t olinebits, size_t ilinebits, unsigned h) +{ + /*The opposite of the removePaddingBits function + olinebits must be >= ilinebits*/ + unsigned y; + size_t diff = olinebits - ilinebits; + size_t obp = 0, ibp = 0; /*bit pointers*/ + for(y = 0; y != h; ++y) + { + size_t x; + for(x = 0; x < ilinebits; ++x) + { + unsigned char bit = readBitFromReversedStream(&ibp, in); + setBitOfReversedStream(&obp, out, bit); + } + /*obp += diff; --> no, fill in some value in the padding bits too, to avoid + "Use of uninitialised value of size ###" warning from valgrind*/ + for(x = 0; x != diff; ++x) setBitOfReversedStream(&obp, out, 0); + } +} + +/* +in: non-interlaced image with size w*h +out: the same pixels, but re-ordered according to PNG's Adam7 interlacing, with + no padding bits between scanlines, but between reduced images so that each + reduced image starts at a byte. +bpp: bits per pixel +there are no padding bits, not between scanlines, not between reduced images +in has the following size in bits: w * h * bpp. +out is possibly bigger due to padding bits between reduced images +NOTE: comments about padding bits are only relevant if bpp < 8 +*/ +static void Adam7_interlace(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, unsigned bpp) +{ + unsigned passw[7], passh[7]; + size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned i; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + if(bpp >= 8) + { + for(i = 0; i != 7; ++i) + { + unsigned x, y, b; + size_t bytewidth = bpp / 8; + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) + { + size_t pixelinstart = ((ADAM7_IY[i] + y * ADAM7_DY[i]) * w + ADAM7_IX[i] + x * ADAM7_DX[i]) * bytewidth; + size_t pixeloutstart = passstart[i] + (y * passw[i] + x) * bytewidth; + for(b = 0; b < bytewidth; ++b) + { + out[pixeloutstart + b] = in[pixelinstart + b]; + } + } + } + } + else /*bpp < 8: Adam7 with pixels < 8 bit is a bit trickier: with bit pointers*/ + { + for(i = 0; i != 7; ++i) + { + unsigned x, y, b; + unsigned ilinebits = bpp * passw[i]; + unsigned olinebits = bpp * w; + size_t obp, ibp; /*bit pointers (for out and in buffer)*/ + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) + { + ibp = (ADAM7_IY[i] + y * ADAM7_DY[i]) * olinebits + (ADAM7_IX[i] + x * ADAM7_DX[i]) * bpp; + obp = (8 * passstart[i]) + (y * ilinebits + x * bpp); + for(b = 0; b < bpp; ++b) + { + unsigned char bit = readBitFromReversedStream(&ibp, in); + setBitOfReversedStream(&obp, out, bit); + } + } + } + } +} + +/*out must be buffer big enough to contain uncompressed IDAT chunk data, and in must contain the full image. +return value is error**/ +static unsigned preProcessScanlines(unsigned char** out, size_t* outsize, const unsigned char* in, + unsigned w, unsigned h, + const LodePNGInfo* info_png, const LodePNGEncoderSettings* settings) +{ + /* + This function converts the pure 2D image with the PNG's colortype, into filtered-padded-interlaced data. Steps: + *) if no Adam7: 1) add padding bits (= posible extra bits per scanline if bpp < 8) 2) filter + *) if adam7: 1) Adam7_interlace 2) 7x add padding bits 3) 7x filter + */ + unsigned bpp = lodepng_get_bpp(&info_png->color); + unsigned error = 0; + + if(info_png->interlace_method == 0) + { + *outsize = h + (h * ((w * bpp + 7) / 8)); /*image size plus an extra byte per scanline + possible padding bits*/ + *out = (unsigned char*)lodepng_malloc(*outsize); + if(!(*out) && (*outsize)) error = 83; /*alloc fail*/ + + if(!error) + { + /*non multiple of 8 bits per scanline, padding bits needed per scanline*/ + if(bpp < 8 && w * bpp != ((w * bpp + 7) / 8) * 8) + { + unsigned char* padded = (unsigned char*)lodepng_malloc(h * ((w * bpp + 7) / 8)); + if(!padded) error = 83; /*alloc fail*/ + if(!error) + { + addPaddingBits(padded, in, ((w * bpp + 7) / 8) * 8, w * bpp, h); + error = filter(*out, padded, w, h, &info_png->color, settings); + } + lodepng_free(padded); + } + else + { + /*we can immediately filter into the out buffer, no other steps needed*/ + error = filter(*out, in, w, h, &info_png->color, settings); + } + } + } + else /*interlace_method is 1 (Adam7)*/ + { + unsigned passw[7], passh[7]; + size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned char* adam7; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + *outsize = filter_passstart[7]; /*image size plus an extra byte per scanline + possible padding bits*/ + *out = (unsigned char*)lodepng_malloc(*outsize); + if(!(*out)) error = 83; /*alloc fail*/ + + adam7 = (unsigned char*)lodepng_malloc(passstart[7]); + if(!adam7 && passstart[7]) error = 83; /*alloc fail*/ + + if(!error) + { + unsigned i; + + Adam7_interlace(adam7, in, w, h, bpp); + for(i = 0; i != 7; ++i) + { + if(bpp < 8) + { + unsigned char* padded = (unsigned char*)lodepng_malloc(padded_passstart[i + 1] - padded_passstart[i]); + if(!padded) ERROR_BREAK(83); /*alloc fail*/ + addPaddingBits(padded, &adam7[passstart[i]], + ((passw[i] * bpp + 7) / 8) * 8, passw[i] * bpp, passh[i]); + error = filter(&(*out)[filter_passstart[i]], padded, + passw[i], passh[i], &info_png->color, settings); + lodepng_free(padded); + } + else + { + error = filter(&(*out)[filter_passstart[i]], &adam7[padded_passstart[i]], + passw[i], passh[i], &info_png->color, settings); + } + + if(error) break; + } + } + + lodepng_free(adam7); + } + + return error; +} + +/* +palette must have 4 * palettesize bytes allocated, and given in format RGBARGBARGBARGBA... +returns 0 if the palette is opaque, +returns 1 if the palette has a single color with alpha 0 ==> color key +returns 2 if the palette is semi-translucent. +*/ +static unsigned getPaletteTranslucency(const unsigned char* palette, size_t palettesize) +{ + size_t i; + unsigned key = 0; + unsigned r = 0, g = 0, b = 0; /*the value of the color with alpha 0, so long as color keying is possible*/ + for(i = 0; i != palettesize; ++i) + { + if(!key && palette[4 * i + 3] == 0) + { + r = palette[4 * i + 0]; g = palette[4 * i + 1]; b = palette[4 * i + 2]; + key = 1; + i = (size_t)(-1); /*restart from beginning, to detect earlier opaque colors with key's value*/ + } + else if(palette[4 * i + 3] != 255) return 2; + /*when key, no opaque RGB may have key's RGB*/ + else if(key && r == palette[i * 4 + 0] && g == palette[i * 4 + 1] && b == palette[i * 4 + 2]) return 2; + } + return key; +} + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +static unsigned addUnknownChunks(ucvector* out, unsigned char* data, size_t datasize) +{ + unsigned char* inchunk = data; + while((size_t)(inchunk - data) < datasize) + { + CERROR_TRY_RETURN(lodepng_chunk_append(&out->data, &out->size, inchunk)); + out->allocsize = out->size; /*fix the allocsize again*/ + inchunk = lodepng_chunk_next(inchunk); + } + return 0; +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +unsigned lodepng_encode(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h, + LodePNGState* state) +{ + LodePNGInfo info; + ucvector outv; + unsigned char* data = 0; /*uncompressed version of the IDAT chunk data*/ + size_t datasize = 0; + + /*provide some proper output values if error will happen*/ + *out = 0; + *outsize = 0; + state->error = 0; + + lodepng_info_init(&info); + lodepng_info_copy(&info, &state->info_png); + + if((info.color.colortype == LCT_PALETTE || state->encoder.force_palette) + && (info.color.palettesize == 0 || info.color.palettesize > 256)) + { + state->error = 68; /*invalid palette size, it is only allowed to be 1-256*/ + return state->error; + } + + if(state->encoder.auto_convert) + { + state->error = lodepng_auto_choose_color(&info.color, image, w, h, &state->info_raw); + } + if(state->error) return state->error; + + if(state->encoder.zlibsettings.btype > 2) + { + CERROR_RETURN_ERROR(state->error, 61); /*error: unexisting btype*/ + } + if(state->info_png.interlace_method > 1) + { + CERROR_RETURN_ERROR(state->error, 71); /*error: unexisting interlace mode*/ + } + + state->error = checkColorValidity(info.color.colortype, info.color.bitdepth); + if(state->error) return state->error; /*error: unexisting color type given*/ + state->error = checkColorValidity(state->info_raw.colortype, state->info_raw.bitdepth); + if(state->error) return state->error; /*error: unexisting color type given*/ + + if(!lodepng_color_mode_equal(&state->info_raw, &info.color)) + { + unsigned char* converted; + size_t size = (w * h * lodepng_get_bpp(&info.color) + 7) / 8; + + converted = (unsigned char*)lodepng_malloc(size); + if(!converted && size) state->error = 83; /*alloc fail*/ + if(!state->error) + { + state->error = lodepng_convert(converted, image, &info.color, &state->info_raw, w, h); + } + if(!state->error) preProcessScanlines(&data, &datasize, converted, w, h, &info, &state->encoder); + lodepng_free(converted); + } + else preProcessScanlines(&data, &datasize, image, w, h, &info, &state->encoder); + + ucvector_init(&outv); + while(!state->error) /*while only executed once, to break on error*/ + { +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + size_t i; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + /*write signature and chunks*/ + writeSignature(&outv); + /*IHDR*/ + addChunk_IHDR(&outv, w, h, info.color.colortype, info.color.bitdepth, info.interlace_method); +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*unknown chunks between IHDR and PLTE*/ + if(info.unknown_chunks_data[0]) + { + state->error = addUnknownChunks(&outv, info.unknown_chunks_data[0], info.unknown_chunks_size[0]); + if(state->error) break; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + /*PLTE*/ + if(info.color.colortype == LCT_PALETTE) + { + addChunk_PLTE(&outv, &info.color); + } + if(state->encoder.force_palette && (info.color.colortype == LCT_RGB || info.color.colortype == LCT_RGBA)) + { + addChunk_PLTE(&outv, &info.color); + } + /*tRNS*/ + if(info.color.colortype == LCT_PALETTE && getPaletteTranslucency(info.color.palette, info.color.palettesize) != 0) + { + addChunk_tRNS(&outv, &info.color); + } + if((info.color.colortype == LCT_GREY || info.color.colortype == LCT_RGB) && info.color.key_defined) + { + addChunk_tRNS(&outv, &info.color); + } +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*bKGD (must come between PLTE and the IDAt chunks*/ + if(info.background_defined) addChunk_bKGD(&outv, &info); + /*pHYs (must come before the IDAT chunks)*/ + if(info.phys_defined) addChunk_pHYs(&outv, &info); + + /*unknown chunks between PLTE and IDAT*/ + if(info.unknown_chunks_data[1]) + { + state->error = addUnknownChunks(&outv, info.unknown_chunks_data[1], info.unknown_chunks_size[1]); + if(state->error) break; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + /*IDAT (multiple IDAT chunks must be consecutive)*/ + state->error = addChunk_IDAT(&outv, data, datasize, &state->encoder.zlibsettings); + if(state->error) break; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*tIME*/ + if(info.time_defined) addChunk_tIME(&outv, &info.time); + /*tEXt and/or zTXt*/ + for(i = 0; i != info.text_num; ++i) + { + if(strlen(info.text_keys[i]) > 79) + { + state->error = 66; /*text chunk too large*/ + break; + } + if(strlen(info.text_keys[i]) < 1) + { + state->error = 67; /*text chunk too small*/ + break; + } + if(state->encoder.text_compression) + { + addChunk_zTXt(&outv, info.text_keys[i], info.text_strings[i], &state->encoder.zlibsettings); + } + else + { + addChunk_tEXt(&outv, info.text_keys[i], info.text_strings[i]); + } + } + /*LodePNG version id in text chunk*/ + if(state->encoder.add_id) + { + unsigned alread_added_id_text = 0; + for(i = 0; i != info.text_num; ++i) + { + if(!strcmp(info.text_keys[i], "LodePNG")) + { + alread_added_id_text = 1; + break; + } + } + if(alread_added_id_text == 0) + { + addChunk_tEXt(&outv, "LodePNG", LODEPNG_VERSION_STRING); /*it's shorter as tEXt than as zTXt chunk*/ + } + } + /*iTXt*/ + for(i = 0; i != info.itext_num; ++i) + { + if(strlen(info.itext_keys[i]) > 79) + { + state->error = 66; /*text chunk too large*/ + break; + } + if(strlen(info.itext_keys[i]) < 1) + { + state->error = 67; /*text chunk too small*/ + break; + } + addChunk_iTXt(&outv, state->encoder.text_compression, + info.itext_keys[i], info.itext_langtags[i], info.itext_transkeys[i], info.itext_strings[i], + &state->encoder.zlibsettings); + } + + /*unknown chunks between IDAT and IEND*/ + if(info.unknown_chunks_data[2]) + { + state->error = addUnknownChunks(&outv, info.unknown_chunks_data[2], info.unknown_chunks_size[2]); + if(state->error) break; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + addChunk_IEND(&outv); + + break; /*this isn't really a while loop; no error happened so break out now!*/ + } + + lodepng_info_cleanup(&info); + lodepng_free(data); + /*instead of cleaning the vector up, give it to the output*/ + *out = outv.data; + *outsize = outv.size; + + return state->error; +} + +unsigned lodepng_encode_memory(unsigned char** out, size_t* outsize, const unsigned char* image, + unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned error; + LodePNGState state; + lodepng_state_init(&state); + state.info_raw.colortype = colortype; + state.info_raw.bitdepth = bitdepth; + state.info_png.color.colortype = colortype; + state.info_png.color.bitdepth = bitdepth; + lodepng_encode(out, outsize, image, w, h, &state); + error = state.error; + lodepng_state_cleanup(&state); + return error; +} + +unsigned lodepng_encode32(unsigned char** out, size_t* outsize, const unsigned char* image, unsigned w, unsigned h) +{ + return lodepng_encode_memory(out, outsize, image, w, h, LCT_RGBA, 8); +} + +unsigned lodepng_encode24(unsigned char** out, size_t* outsize, const unsigned char* image, unsigned w, unsigned h) +{ + return lodepng_encode_memory(out, outsize, image, w, h, LCT_RGB, 8); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned lodepng_encode_file(const char* filename, const unsigned char* image, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned char* buffer; + size_t buffersize; + unsigned error = lodepng_encode_memory(&buffer, &buffersize, image, w, h, colortype, bitdepth); + if(!error) error = lodepng_save_file(buffer, buffersize, filename); + lodepng_free(buffer); + return error; +} + +unsigned lodepng_encode32_file(const char* filename, const unsigned char* image, unsigned w, unsigned h) +{ + return lodepng_encode_file(filename, image, w, h, LCT_RGBA, 8); +} + +unsigned lodepng_encode24_file(const char* filename, const unsigned char* image, unsigned w, unsigned h) +{ + return lodepng_encode_file(filename, image, w, h, LCT_RGB, 8); +} +#endif /*LODEPNG_COMPILE_DISK*/ + +void lodepng_encoder_settings_init(LodePNGEncoderSettings* settings) +{ + lodepng_compress_settings_init(&settings->zlibsettings); + settings->filter_palette_zero = 1; + settings->filter_strategy = LFS_MINSUM; + settings->auto_convert = 1; + settings->force_palette = 0; + settings->predefined_filters = 0; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + settings->add_id = 0; + settings->text_compression = 1; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} + +#endif /*LODEPNG_COMPILE_ENCODER*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +#ifdef LODEPNG_COMPILE_ERROR_TEXT +/* +This returns the description of a numerical error code in English. This is also +the documentation of all the error codes. +*/ +const char* lodepng_error_text(unsigned code) +{ + switch(code) + { + case 0: return "no error, everything went ok"; + case 1: return "nothing done yet"; /*the Encoder/Decoder has done nothing yet, error checking makes no sense yet*/ + case 10: return "end of input memory reached without huffman end code"; /*while huffman decoding*/ + case 11: return "error in code tree made it jump outside of huffman tree"; /*while huffman decoding*/ + case 13: return "problem while processing dynamic deflate block"; + case 14: return "problem while processing dynamic deflate block"; + case 15: return "problem while processing dynamic deflate block"; + case 16: return "unexisting code while processing dynamic deflate block"; + case 17: return "end of out buffer memory reached while inflating"; + case 18: return "invalid distance code while inflating"; + case 19: return "end of out buffer memory reached while inflating"; + case 20: return "invalid deflate block BTYPE encountered while decoding"; + case 21: return "NLEN is not ones complement of LEN in a deflate block"; + /*end of out buffer memory reached while inflating: + This can happen if the inflated deflate data is longer than the amount of bytes required to fill up + all the pixels of the image, given the color depth and image dimensions. Something that doesn't + happen in a normal, well encoded, PNG image.*/ + case 22: return "end of out buffer memory reached while inflating"; + case 23: return "end of in buffer memory reached while inflating"; + case 24: return "invalid FCHECK in zlib header"; + case 25: return "invalid compression method in zlib header"; + case 26: return "FDICT encountered in zlib header while it's not used for PNG"; + case 27: return "PNG file is smaller than a PNG header"; + /*Checks the magic file header, the first 8 bytes of the PNG file*/ + case 28: return "incorrect PNG signature, it's no PNG or corrupted"; + case 29: return "first chunk is not the header chunk"; + case 30: return "chunk length too large, chunk broken off at end of file"; + case 31: return "illegal PNG color type or bpp"; + case 32: return "illegal PNG compression method"; + case 33: return "illegal PNG filter method"; + case 34: return "illegal PNG interlace method"; + case 35: return "chunk length of a chunk is too large or the chunk too small"; + case 36: return "illegal PNG filter type encountered"; + case 37: return "illegal bit depth for this color type given"; + case 38: return "the palette is too big"; /*more than 256 colors*/ + case 39: return "more palette alpha values given in tRNS chunk than there are colors in the palette"; + case 40: return "tRNS chunk has wrong size for greyscale image"; + case 41: return "tRNS chunk has wrong size for RGB image"; + case 42: return "tRNS chunk appeared while it was not allowed for this color type"; + case 43: return "bKGD chunk has wrong size for palette image"; + case 44: return "bKGD chunk has wrong size for greyscale image"; + case 45: return "bKGD chunk has wrong size for RGB image"; + case 48: return "empty input buffer given to decoder. Maybe caused by non-existing file?"; + case 49: return "jumped past memory while generating dynamic huffman tree"; + case 50: return "jumped past memory while generating dynamic huffman tree"; + case 51: return "jumped past memory while inflating huffman block"; + case 52: return "jumped past memory while inflating"; + case 53: return "size of zlib data too small"; + case 54: return "repeat symbol in tree while there was no value symbol yet"; + /*jumped past tree while generating huffman tree, this could be when the + tree will have more leaves than symbols after generating it out of the + given lenghts. They call this an oversubscribed dynamic bit lengths tree in zlib.*/ + case 55: return "jumped past tree while generating huffman tree"; + case 56: return "given output image colortype or bitdepth not supported for color conversion"; + case 57: return "invalid CRC encountered (checking CRC can be disabled)"; + case 58: return "invalid ADLER32 encountered (checking ADLER32 can be disabled)"; + case 59: return "requested color conversion not supported"; + case 60: return "invalid window size given in the settings of the encoder (must be 0-32768)"; + case 61: return "invalid BTYPE given in the settings of the encoder (only 0, 1 and 2 are allowed)"; + /*LodePNG leaves the choice of RGB to greyscale conversion formula to the user.*/ + case 62: return "conversion from color to greyscale not supported"; + case 63: return "length of a chunk too long, max allowed for PNG is 2147483647 bytes per chunk"; /*(2^31-1)*/ + /*this would result in the inability of a deflated block to ever contain an end code. It must be at least 1.*/ + case 64: return "the length of the END symbol 256 in the Huffman tree is 0"; + case 66: return "the length of a text chunk keyword given to the encoder is longer than the maximum of 79 bytes"; + case 67: return "the length of a text chunk keyword given to the encoder is smaller than the minimum of 1 byte"; + case 68: return "tried to encode a PLTE chunk with a palette that has less than 1 or more than 256 colors"; + case 69: return "unknown chunk type with 'critical' flag encountered by the decoder"; + case 71: return "unexisting interlace mode given to encoder (must be 0 or 1)"; + case 72: return "while decoding, unexisting compression method encountering in zTXt or iTXt chunk (it must be 0)"; + case 73: return "invalid tIME chunk size"; + case 74: return "invalid pHYs chunk size"; + /*length could be wrong, or data chopped off*/ + case 75: return "no null termination char found while decoding text chunk"; + case 76: return "iTXt chunk too short to contain required bytes"; + case 77: return "integer overflow in buffer size"; + case 78: return "failed to open file for reading"; /*file doesn't exist or couldn't be opened for reading*/ + case 79: return "failed to open file for writing"; + case 80: return "tried creating a tree of 0 symbols"; + case 81: return "lazy matching at pos 0 is impossible"; + case 82: return "color conversion to palette requested while a color isn't in palette"; + case 83: return "memory allocation failed"; + case 84: return "given image too small to contain all pixels to be encoded"; + case 86: return "impossible offset in lz77 encoding (internal bug)"; + case 87: return "must provide custom zlib function pointer if LODEPNG_COMPILE_ZLIB is not defined"; + case 88: return "invalid filter strategy given for LodePNGEncoderSettings.filter_strategy"; + case 89: return "text chunk keyword too short or long: must have size 1-79"; + /*the windowsize in the LodePNGCompressSettings. Requiring POT(==> & instead of %) makes encoding 12% faster.*/ + case 90: return "windowsize must be a power of two"; + case 91: return "invalid decompressed idat size"; + case 92: return "too many pixels, not supported"; + case 93: return "zero width or height is invalid"; + case 94: return "header chunk must have a size of 13 bytes"; + } + return "unknown error code"; +} +#endif /*LODEPNG_COMPILE_ERROR_TEXT*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // C++ Wrapper // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_CPP +namespace lodepng +{ + +#ifdef LODEPNG_COMPILE_DISK +unsigned load_file(std::vector& buffer, const std::string& filename) +{ + std::ifstream file(filename.c_str(), std::ios::in|std::ios::binary|std::ios::ate); + if(!file) return 78; + + /*get filesize*/ + std::streamsize size = 0; + if(file.seekg(0, std::ios::end).good()) size = file.tellg(); + if(file.seekg(0, std::ios::beg).good()) size -= file.tellg(); + + /*read contents of the file into the vector*/ + buffer.resize(size_t(size)); + if(size > 0) file.read((char*)(&buffer[0]), size); + + return 0; /* OK */ +} + +/*write given buffer to the file, overwriting the file, it doesn't append to it.*/ +unsigned save_file(const std::vector& buffer, const std::string& filename) +{ + std::ofstream file(filename.c_str(), std::ios::out|std::ios::binary); + if(!file) return 79; + file.write(buffer.empty() ? 0 : (char*)&buffer[0], std::streamsize(buffer.size())); + return 0; +} +#endif /* LODEPNG_COMPILE_DISK */ + +#ifdef LODEPNG_COMPILE_ZLIB +#ifdef LODEPNG_COMPILE_DECODER +unsigned decompress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGDecompressSettings& settings) +{ + unsigned char* buffer = 0; + size_t buffersize = 0; + unsigned error = zlib_decompress(&buffer, &buffersize, in, insize, &settings); + if(buffer) + { + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned decompress(std::vector& out, const std::vector& in, + const LodePNGDecompressSettings& settings) +{ + return decompress(out, in.empty() ? 0 : &in[0], in.size(), settings); +} +#endif /* LODEPNG_COMPILE_DECODER */ + +#ifdef LODEPNG_COMPILE_ENCODER +unsigned compress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGCompressSettings& settings) +{ + unsigned char* buffer = 0; + size_t buffersize = 0; + unsigned error = zlib_compress(&buffer, &buffersize, in, insize, &settings); + if(buffer) + { + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned compress(std::vector& out, const std::vector& in, + const LodePNGCompressSettings& settings) +{ + return compress(out, in.empty() ? 0 : &in[0], in.size(), settings); +} +#endif /* LODEPNG_COMPILE_ENCODER */ +#endif /* LODEPNG_COMPILE_ZLIB */ + + +#ifdef LODEPNG_COMPILE_PNG + +State::State() +{ + lodepng_state_init(this); +} + +State::State(const State& other) +{ + lodepng_state_init(this); + lodepng_state_copy(this, &other); +} + +State::~State() +{ + lodepng_state_cleanup(this); +} + +State& State::operator=(const State& other) +{ + lodepng_state_copy(this, &other); + return *this; +} + +#ifdef LODEPNG_COMPILE_DECODER + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, const unsigned char* in, + size_t insize, LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned char* buffer; + unsigned error = lodepng_decode_memory(&buffer, &w, &h, in, insize, colortype, bitdepth); + if(buffer && !error) + { + State state; + state.info_raw.colortype = colortype; + state.info_raw.bitdepth = bitdepth; + size_t buffersize = lodepng_get_raw_size(w, h, &state.info_raw); + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const std::vector& in, LodePNGColorType colortype, unsigned bitdepth) +{ + return decode(out, w, h, in.empty() ? 0 : &in[0], (unsigned)in.size(), colortype, bitdepth); +} + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const unsigned char* in, size_t insize) +{ + unsigned char* buffer = NULL; + unsigned error = lodepng_decode(&buffer, &w, &h, &state, in, insize); + if(buffer && !error) + { + size_t buffersize = lodepng_get_raw_size(w, h, &state.info_raw); + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + } + lodepng_free(buffer); + return error; +} + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const std::vector& in) +{ + return decode(out, w, h, state, in.empty() ? 0 : &in[0], in.size()); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned decode(std::vector& out, unsigned& w, unsigned& h, const std::string& filename, + LodePNGColorType colortype, unsigned bitdepth) +{ + std::vector buffer; + unsigned error = load_file(buffer, filename); + if(error) return error; + return decode(out, w, h, buffer, colortype, bitdepth); +} +#endif /* LODEPNG_COMPILE_DECODER */ +#endif /* LODEPNG_COMPILE_DISK */ + +#ifdef LODEPNG_COMPILE_ENCODER +unsigned encode(std::vector& out, const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned char* buffer; + size_t buffersize; + unsigned error = lodepng_encode_memory(&buffer, &buffersize, in, w, h, colortype, bitdepth); + if(buffer) + { + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) +{ + if(lodepng_get_raw_size_lct(w, h, colortype, bitdepth) > in.size()) return 84; + return encode(out, in.empty() ? 0 : &in[0], w, h, colortype, bitdepth); +} + +unsigned encode(std::vector& out, + const unsigned char* in, unsigned w, unsigned h, + State& state) +{ + unsigned char* buffer; + size_t buffersize; + unsigned error = lodepng_encode(&buffer, &buffersize, in, w, h, &state); + if(buffer) + { + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + State& state) +{ + if(lodepng_get_raw_size(w, h, &state.info_raw) > in.size()) return 84; + return encode(out, in.empty() ? 0 : &in[0], w, h, state); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned encode(const std::string& filename, + const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) +{ + std::vector buffer; + unsigned error = encode(buffer, in, w, h, colortype, bitdepth); + if(!error) error = save_file(buffer, filename); + return error; +} + +unsigned encode(const std::string& filename, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) +{ + if(lodepng_get_raw_size_lct(w, h, colortype, bitdepth) > in.size()) return 84; + return encode(filename, in.empty() ? 0 : &in[0], w, h, colortype, bitdepth); +} +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_ENCODER */ +#endif /* LODEPNG_COMPILE_PNG */ +} /* namespace lodepng */ +#endif /*LODEPNG_COMPILE_CPP*/ diff --git a/Tutorial 2/Graphics/lodepng/lodepng.h b/Tutorial 2/Graphics/lodepng/lodepng.h new file mode 100644 index 0000000..9ecedd1 --- /dev/null +++ b/Tutorial 2/Graphics/lodepng/lodepng.h @@ -0,0 +1,1756 @@ +/* +LodePNG version 20160124 + +Copyright (c) 2005-2016 Lode Vandevenne + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +*/ + +#ifndef LODEPNG_H +#define LODEPNG_H + +#include /*for size_t*/ + +extern const char* LODEPNG_VERSION_STRING; + +/* +The following #defines are used to create code sections. They can be disabled +to disable code sections, which can give faster compile time and smaller binary. +The "NO_COMPILE" defines are designed to be used to pass as defines to the +compiler command to disable them without modifying this header, e.g. +-DLODEPNG_NO_COMPILE_ZLIB for gcc. +In addition to those below, you can also define LODEPNG_NO_COMPILE_CRC to +allow implementing a custom lodepng_crc32. +*/ +/*deflate & zlib. If disabled, you must specify alternative zlib functions in +the custom_zlib field of the compress and decompress settings*/ +#ifndef LODEPNG_NO_COMPILE_ZLIB +#define LODEPNG_COMPILE_ZLIB +#endif +/*png encoder and png decoder*/ +#ifndef LODEPNG_NO_COMPILE_PNG +#define LODEPNG_COMPILE_PNG +#endif +/*deflate&zlib decoder and png decoder*/ +#ifndef LODEPNG_NO_COMPILE_DECODER +#define LODEPNG_COMPILE_DECODER +#endif +/*deflate&zlib encoder and png encoder*/ +#ifndef LODEPNG_NO_COMPILE_ENCODER +#define LODEPNG_COMPILE_ENCODER +#endif +/*the optional built in harddisk file loading and saving functions*/ +#ifndef LODEPNG_NO_COMPILE_DISK +#define LODEPNG_COMPILE_DISK +#endif +/*support for chunks other than IHDR, IDAT, PLTE, tRNS, IEND: ancillary and unknown chunks*/ +#ifndef LODEPNG_NO_COMPILE_ANCILLARY_CHUNKS +#define LODEPNG_COMPILE_ANCILLARY_CHUNKS +#endif +/*ability to convert error numerical codes to English text string*/ +#ifndef LODEPNG_NO_COMPILE_ERROR_TEXT +#define LODEPNG_COMPILE_ERROR_TEXT +#endif +/*Compile the default allocators (C's free, malloc and realloc). If you disable this, +you can define the functions lodepng_free, lodepng_malloc and lodepng_realloc in your +source files with custom allocators.*/ +#ifndef LODEPNG_NO_COMPILE_ALLOCATORS +#define LODEPNG_COMPILE_ALLOCATORS +#endif +/*compile the C++ version (you can disable the C++ wrapper here even when compiling for C++)*/ +#ifdef __cplusplus +#ifndef LODEPNG_NO_COMPILE_CPP +#define LODEPNG_COMPILE_CPP +#endif +#endif + +#ifdef LODEPNG_COMPILE_CPP +#include +#include +#endif /*LODEPNG_COMPILE_CPP*/ + +#ifdef LODEPNG_COMPILE_PNG +/*The PNG color types (also used for raw).*/ +typedef enum LodePNGColorType +{ + LCT_GREY = 0, /*greyscale: 1,2,4,8,16 bit*/ + LCT_RGB = 2, /*RGB: 8,16 bit*/ + LCT_PALETTE = 3, /*palette: 1,2,4,8 bit*/ + LCT_GREY_ALPHA = 4, /*greyscale with alpha: 8,16 bit*/ + LCT_RGBA = 6 /*RGB with alpha: 8,16 bit*/ +} LodePNGColorType; + +#ifdef LODEPNG_COMPILE_DECODER +/* +Converts PNG data in memory to raw pixel data. +out: Output parameter. Pointer to buffer that will contain the raw pixel data. + After decoding, its size is w * h * (bytes per pixel) bytes larger than + initially. Bytes per pixel depends on colortype and bitdepth. + Must be freed after usage with free(*out). + Note: for 16-bit per channel colors, uses big endian format like PNG does. +w: Output parameter. Pointer to width of pixel data. +h: Output parameter. Pointer to height of pixel data. +in: Memory buffer with the PNG file. +insize: size of the in buffer. +colortype: the desired color type for the raw output image. See explanation on PNG color types. +bitdepth: the desired bit depth for the raw output image. See explanation on PNG color types. +Return value: LodePNG error code (0 means no error). +*/ +unsigned lodepng_decode_memory(unsigned char** out, unsigned* w, unsigned* h, + const unsigned char* in, size_t insize, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_decode_memory, but always decodes to 32-bit RGBA raw image*/ +unsigned lodepng_decode32(unsigned char** out, unsigned* w, unsigned* h, + const unsigned char* in, size_t insize); + +/*Same as lodepng_decode_memory, but always decodes to 24-bit RGB raw image*/ +unsigned lodepng_decode24(unsigned char** out, unsigned* w, unsigned* h, + const unsigned char* in, size_t insize); + +#ifdef LODEPNG_COMPILE_DISK +/* +Load PNG from disk, from file with given name. +Same as the other decode functions, but instead takes a filename as input. +*/ +unsigned lodepng_decode_file(unsigned char** out, unsigned* w, unsigned* h, + const char* filename, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_decode_file, but always decodes to 32-bit RGBA raw image.*/ +unsigned lodepng_decode32_file(unsigned char** out, unsigned* w, unsigned* h, + const char* filename); + +/*Same as lodepng_decode_file, but always decodes to 24-bit RGB raw image.*/ +unsigned lodepng_decode24_file(unsigned char** out, unsigned* w, unsigned* h, + const char* filename); +#endif /*LODEPNG_COMPILE_DISK*/ +#endif /*LODEPNG_COMPILE_DECODER*/ + + +#ifdef LODEPNG_COMPILE_ENCODER +/* +Converts raw pixel data into a PNG image in memory. The colortype and bitdepth + of the output PNG image cannot be chosen, they are automatically determined + by the colortype, bitdepth and content of the input pixel data. + Note: for 16-bit per channel colors, needs big endian format like PNG does. +out: Output parameter. Pointer to buffer that will contain the PNG image data. + Must be freed after usage with free(*out). +outsize: Output parameter. Pointer to the size in bytes of the out buffer. +image: The raw pixel data to encode. The size of this buffer should be + w * h * (bytes per pixel), bytes per pixel depends on colortype and bitdepth. +w: width of the raw pixel data in pixels. +h: height of the raw pixel data in pixels. +colortype: the color type of the raw input image. See explanation on PNG color types. +bitdepth: the bit depth of the raw input image. See explanation on PNG color types. +Return value: LodePNG error code (0 means no error). +*/ +unsigned lodepng_encode_memory(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_encode_memory, but always encodes from 32-bit RGBA raw image.*/ +unsigned lodepng_encode32(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h); + +/*Same as lodepng_encode_memory, but always encodes from 24-bit RGB raw image.*/ +unsigned lodepng_encode24(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h); + +#ifdef LODEPNG_COMPILE_DISK +/* +Converts raw pixel data into a PNG file on disk. +Same as the other encode functions, but instead takes a filename as output. +NOTE: This overwrites existing files without warning! +*/ +unsigned lodepng_encode_file(const char* filename, + const unsigned char* image, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_encode_file, but always encodes from 32-bit RGBA raw image.*/ +unsigned lodepng_encode32_file(const char* filename, + const unsigned char* image, unsigned w, unsigned h); + +/*Same as lodepng_encode_file, but always encodes from 24-bit RGB raw image.*/ +unsigned lodepng_encode24_file(const char* filename, + const unsigned char* image, unsigned w, unsigned h); +#endif /*LODEPNG_COMPILE_DISK*/ +#endif /*LODEPNG_COMPILE_ENCODER*/ + + +#ifdef LODEPNG_COMPILE_CPP +namespace lodepng +{ +#ifdef LODEPNG_COMPILE_DECODER +/*Same as lodepng_decode_memory, but decodes to an std::vector. The colortype +is the format to output the pixels to. Default is RGBA 8-bit per channel.*/ +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const unsigned char* in, size_t insize, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const std::vector& in, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#ifdef LODEPNG_COMPILE_DISK +/* +Converts PNG file from disk to raw pixel data in memory. +Same as the other decode functions, but instead takes a filename as input. +*/ +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const std::string& filename, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_DECODER */ + +#ifdef LODEPNG_COMPILE_ENCODER +/*Same as lodepng_encode_memory, but encodes to an std::vector. colortype +is that of the raw input data. The output PNG color type will be auto chosen.*/ +unsigned encode(std::vector& out, + const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#ifdef LODEPNG_COMPILE_DISK +/* +Converts 32-bit RGBA raw pixel data into a PNG file on disk. +Same as the other encode functions, but instead takes a filename as output. +NOTE: This overwrites existing files without warning! +*/ +unsigned encode(const std::string& filename, + const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +unsigned encode(const std::string& filename, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_ENCODER */ +} /* namespace lodepng */ +#endif /*LODEPNG_COMPILE_CPP*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +#ifdef LODEPNG_COMPILE_ERROR_TEXT +/*Returns an English description of the numerical error code.*/ +const char* lodepng_error_text(unsigned code); +#endif /*LODEPNG_COMPILE_ERROR_TEXT*/ + +#ifdef LODEPNG_COMPILE_DECODER +/*Settings for zlib decompression*/ +typedef struct LodePNGDecompressSettings LodePNGDecompressSettings; +struct LodePNGDecompressSettings +{ + unsigned ignore_adler32; /*if 1, continue and don't give an error message if the Adler32 checksum is corrupted*/ + + /*use custom zlib decoder instead of built in one (default: null)*/ + unsigned (*custom_zlib)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGDecompressSettings*); + /*use custom deflate decoder instead of built in one (default: null) + if custom_zlib is used, custom_deflate is ignored since only the built in + zlib function will call custom_deflate*/ + unsigned (*custom_inflate)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGDecompressSettings*); + + const void* custom_context; /*optional custom settings for custom functions*/ +}; + +extern const LodePNGDecompressSettings lodepng_default_decompress_settings; +void lodepng_decompress_settings_init(LodePNGDecompressSettings* settings); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/* +Settings for zlib compression. Tweaking these settings tweaks the balance +between speed and compression ratio. +*/ +typedef struct LodePNGCompressSettings LodePNGCompressSettings; +struct LodePNGCompressSettings /*deflate = compress*/ +{ + /*LZ77 related settings*/ + unsigned btype; /*the block type for LZ (0, 1, 2 or 3, see zlib standard). Should be 2 for proper compression.*/ + unsigned use_lz77; /*whether or not to use LZ77. Should be 1 for proper compression.*/ + unsigned windowsize; /*must be a power of two <= 32768. higher compresses more but is slower. Default value: 2048.*/ + unsigned minmatch; /*mininum lz77 length. 3 is normally best, 6 can be better for some PNGs. Default: 0*/ + unsigned nicematch; /*stop searching if >= this length found. Set to 258 for best compression. Default: 128*/ + unsigned lazymatching; /*use lazy matching: better compression but a bit slower. Default: true*/ + + /*use custom zlib encoder instead of built in one (default: null)*/ + unsigned (*custom_zlib)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGCompressSettings*); + /*use custom deflate encoder instead of built in one (default: null) + if custom_zlib is used, custom_deflate is ignored since only the built in + zlib function will call custom_deflate*/ + unsigned (*custom_deflate)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGCompressSettings*); + + const void* custom_context; /*optional custom settings for custom functions*/ +}; + +extern const LodePNGCompressSettings lodepng_default_compress_settings; +void lodepng_compress_settings_init(LodePNGCompressSettings* settings); +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_PNG +/* +Color mode of an image. Contains all information required to decode the pixel +bits to RGBA colors. This information is the same as used in the PNG file +format, and is used both for PNG and raw image data in LodePNG. +*/ +typedef struct LodePNGColorMode +{ + /*header (IHDR)*/ + LodePNGColorType colortype; /*color type, see PNG standard or documentation further in this header file*/ + unsigned bitdepth; /*bits per sample, see PNG standard or documentation further in this header file*/ + + /* + palette (PLTE and tRNS) + + Dynamically allocated with the colors of the palette, including alpha. + When encoding a PNG, to store your colors in the palette of the LodePNGColorMode, first use + lodepng_palette_clear, then for each color use lodepng_palette_add. + If you encode an image without alpha with palette, don't forget to put value 255 in each A byte of the palette. + + When decoding, by default you can ignore this palette, since LodePNG already + fills the palette colors in the pixels of the raw RGBA output. + + The palette is only supported for color type 3. + */ + unsigned char* palette; /*palette in RGBARGBA... order. When allocated, must be either 0, or have size 1024*/ + size_t palettesize; /*palette size in number of colors (amount of bytes is 4 * palettesize)*/ + + /* + transparent color key (tRNS) + + This color uses the same bit depth as the bitdepth value in this struct, which can be 1-bit to 16-bit. + For greyscale PNGs, r, g and b will all 3 be set to the same. + + When decoding, by default you can ignore this information, since LodePNG sets + pixels with this key to transparent already in the raw RGBA output. + + The color key is only supported for color types 0 and 2. + */ + unsigned key_defined; /*is a transparent color key given? 0 = false, 1 = true*/ + unsigned key_r; /*red/greyscale component of color key*/ + unsigned key_g; /*green component of color key*/ + unsigned key_b; /*blue component of color key*/ +} LodePNGColorMode; + +/*init, cleanup and copy functions to use with this struct*/ +void lodepng_color_mode_init(LodePNGColorMode* info); +void lodepng_color_mode_cleanup(LodePNGColorMode* info); +/*return value is error code (0 means no error)*/ +unsigned lodepng_color_mode_copy(LodePNGColorMode* dest, const LodePNGColorMode* source); + +void lodepng_palette_clear(LodePNGColorMode* info); +/*add 1 color to the palette*/ +unsigned lodepng_palette_add(LodePNGColorMode* info, + unsigned char r, unsigned char g, unsigned char b, unsigned char a); + +/*get the total amount of bits per pixel, based on colortype and bitdepth in the struct*/ +unsigned lodepng_get_bpp(const LodePNGColorMode* info); +/*get the amount of color channels used, based on colortype in the struct. +If a palette is used, it counts as 1 channel.*/ +unsigned lodepng_get_channels(const LodePNGColorMode* info); +/*is it a greyscale type? (only colortype 0 or 4)*/ +unsigned lodepng_is_greyscale_type(const LodePNGColorMode* info); +/*has it got an alpha channel? (only colortype 2 or 6)*/ +unsigned lodepng_is_alpha_type(const LodePNGColorMode* info); +/*has it got a palette? (only colortype 3)*/ +unsigned lodepng_is_palette_type(const LodePNGColorMode* info); +/*only returns true if there is a palette and there is a value in the palette with alpha < 255. +Loops through the palette to check this.*/ +unsigned lodepng_has_palette_alpha(const LodePNGColorMode* info); +/* +Check if the given color info indicates the possibility of having non-opaque pixels in the PNG image. +Returns true if the image can have translucent or invisible pixels (it still be opaque if it doesn't use such pixels). +Returns false if the image can only have opaque pixels. +In detail, it returns true only if it's a color type with alpha, or has a palette with non-opaque values, +or if "key_defined" is true. +*/ +unsigned lodepng_can_have_alpha(const LodePNGColorMode* info); +/*Returns the byte size of a raw image buffer with given width, height and color mode*/ +size_t lodepng_get_raw_size(unsigned w, unsigned h, const LodePNGColorMode* color); + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +/*The information of a Time chunk in PNG.*/ +typedef struct LodePNGTime +{ + unsigned year; /*2 bytes used (0-65535)*/ + unsigned month; /*1-12*/ + unsigned day; /*1-31*/ + unsigned hour; /*0-23*/ + unsigned minute; /*0-59*/ + unsigned second; /*0-60 (to allow for leap seconds)*/ +} LodePNGTime; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +/*Information about the PNG image, except pixels, width and height.*/ +typedef struct LodePNGInfo +{ + /*header (IHDR), palette (PLTE) and transparency (tRNS) chunks*/ + unsigned compression_method;/*compression method of the original file. Always 0.*/ + unsigned filter_method; /*filter method of the original file*/ + unsigned interlace_method; /*interlace method of the original file*/ + LodePNGColorMode color; /*color type and bits, palette and transparency of the PNG file*/ + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /* + suggested background color chunk (bKGD) + This color uses the same color mode as the PNG (except alpha channel), which can be 1-bit to 16-bit. + + For greyscale PNGs, r, g and b will all 3 be set to the same. When encoding + the encoder writes the red one. For palette PNGs: When decoding, the RGB value + will be stored, not a palette index. But when encoding, specify the index of + the palette in background_r, the other two are then ignored. + + The decoder does not use this background color to edit the color of pixels. + */ + unsigned background_defined; /*is a suggested background color given?*/ + unsigned background_r; /*red component of suggested background color*/ + unsigned background_g; /*green component of suggested background color*/ + unsigned background_b; /*blue component of suggested background color*/ + + /* + non-international text chunks (tEXt and zTXt) + + The char** arrays each contain num strings. The actual messages are in + text_strings, while text_keys are keywords that give a short description what + the actual text represents, e.g. Title, Author, Description, or anything else. + + A keyword is minimum 1 character and maximum 79 characters long. It's + discouraged to use a single line length longer than 79 characters for texts. + + Don't allocate these text buffers yourself. Use the init/cleanup functions + correctly and use lodepng_add_text and lodepng_clear_text. + */ + size_t text_num; /*the amount of texts in these char** buffers (there may be more texts in itext)*/ + char** text_keys; /*the keyword of a text chunk (e.g. "Comment")*/ + char** text_strings; /*the actual text*/ + + /* + international text chunks (iTXt) + Similar to the non-international text chunks, but with additional strings + "langtags" and "transkeys". + */ + size_t itext_num; /*the amount of international texts in this PNG*/ + char** itext_keys; /*the English keyword of the text chunk (e.g. "Comment")*/ + char** itext_langtags; /*language tag for this text's language, ISO/IEC 646 string, e.g. ISO 639 language tag*/ + char** itext_transkeys; /*keyword translated to the international language - UTF-8 string*/ + char** itext_strings; /*the actual international text - UTF-8 string*/ + + /*time chunk (tIME)*/ + unsigned time_defined; /*set to 1 to make the encoder generate a tIME chunk*/ + LodePNGTime time; + + /*phys chunk (pHYs)*/ + unsigned phys_defined; /*if 0, there is no pHYs chunk and the values below are undefined, if 1 else there is one*/ + unsigned phys_x; /*pixels per unit in x direction*/ + unsigned phys_y; /*pixels per unit in y direction*/ + unsigned phys_unit; /*may be 0 (unknown unit) or 1 (metre)*/ + + /* + unknown chunks + There are 3 buffers, one for each position in the PNG where unknown chunks can appear + each buffer contains all unknown chunks for that position consecutively + The 3 buffers are the unknown chunks between certain critical chunks: + 0: IHDR-PLTE, 1: PLTE-IDAT, 2: IDAT-IEND + Do not allocate or traverse this data yourself. Use the chunk traversing functions declared + later, such as lodepng_chunk_next and lodepng_chunk_append, to read/write this struct. + */ + unsigned char* unknown_chunks_data[3]; + size_t unknown_chunks_size[3]; /*size in bytes of the unknown chunks, given for protection*/ +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} LodePNGInfo; + +/*init, cleanup and copy functions to use with this struct*/ +void lodepng_info_init(LodePNGInfo* info); +void lodepng_info_cleanup(LodePNGInfo* info); +/*return value is error code (0 means no error)*/ +unsigned lodepng_info_copy(LodePNGInfo* dest, const LodePNGInfo* source); + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +void lodepng_clear_text(LodePNGInfo* info); /*use this to clear the texts again after you filled them in*/ +unsigned lodepng_add_text(LodePNGInfo* info, const char* key, const char* str); /*push back both texts at once*/ + +void lodepng_clear_itext(LodePNGInfo* info); /*use this to clear the itexts again after you filled them in*/ +unsigned lodepng_add_itext(LodePNGInfo* info, const char* key, const char* langtag, + const char* transkey, const char* str); /*push back the 4 texts of 1 chunk at once*/ +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +/* +Converts raw buffer from one color type to another color type, based on +LodePNGColorMode structs to describe the input and output color type. +See the reference manual at the end of this header file to see which color conversions are supported. +return value = LodePNG error code (0 if all went ok, an error if the conversion isn't supported) +The out buffer must have size (w * h * bpp + 7) / 8, where bpp is the bits per pixel +of the output color type (lodepng_get_bpp). +For < 8 bpp images, there should not be padding bits at the end of scanlines. +For 16-bit per channel colors, uses big endian format like PNG does. +Return value is LodePNG error code +*/ +unsigned lodepng_convert(unsigned char* out, const unsigned char* in, + const LodePNGColorMode* mode_out, const LodePNGColorMode* mode_in, + unsigned w, unsigned h); + +#ifdef LODEPNG_COMPILE_DECODER +/* +Settings for the decoder. This contains settings for the PNG and the Zlib +decoder, but not the Info settings from the Info structs. +*/ +typedef struct LodePNGDecoderSettings +{ + LodePNGDecompressSettings zlibsettings; /*in here is the setting to ignore Adler32 checksums*/ + + unsigned ignore_crc; /*ignore CRC checksums*/ + + unsigned color_convert; /*whether to convert the PNG to the color type you want. Default: yes*/ + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + unsigned read_text_chunks; /*if false but remember_unknown_chunks is true, they're stored in the unknown chunks*/ + /*store all bytes from unknown chunks in the LodePNGInfo (off by default, useful for a png editor)*/ + unsigned remember_unknown_chunks; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} LodePNGDecoderSettings; + +void lodepng_decoder_settings_init(LodePNGDecoderSettings* settings); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/*automatically use color type with less bits per pixel if losslessly possible. Default: AUTO*/ +typedef enum LodePNGFilterStrategy +{ + /*every filter at zero*/ + LFS_ZERO, + /*Use filter that gives minimum sum, as described in the official PNG filter heuristic.*/ + LFS_MINSUM, + /*Use the filter type that gives smallest Shannon entropy for this scanline. Depending + on the image, this is better or worse than minsum.*/ + LFS_ENTROPY, + /* + Brute-force-search PNG filters by compressing each filter for each scanline. + Experimental, very slow, and only rarely gives better compression than MINSUM. + */ + LFS_BRUTE_FORCE, + /*use predefined_filters buffer: you specify the filter type for each scanline*/ + LFS_PREDEFINED +} LodePNGFilterStrategy; + +/*Gives characteristics about the colors of the image, which helps decide which color model to use for encoding. +Used internally by default if "auto_convert" is enabled. Public because it's useful for custom algorithms.*/ +typedef struct LodePNGColorProfile +{ + unsigned colored; /*not greyscale*/ + unsigned key; /*if true, image is not opaque. Only if true and alpha is false, color key is possible.*/ + unsigned short key_r; /*these values are always in 16-bit bitdepth in the profile*/ + unsigned short key_g; + unsigned short key_b; + unsigned alpha; /*alpha channel or alpha palette required*/ + unsigned numcolors; /*amount of colors, up to 257. Not valid if bits == 16.*/ + unsigned char palette[1024]; /*Remembers up to the first 256 RGBA colors, in no particular order*/ + unsigned bits; /*bits per channel (not for palette). 1,2 or 4 for greyscale only. 16 if 16-bit per channel required.*/ +} LodePNGColorProfile; + +void lodepng_color_profile_init(LodePNGColorProfile* profile); + +/*Get a LodePNGColorProfile of the image.*/ +unsigned lodepng_get_color_profile(LodePNGColorProfile* profile, + const unsigned char* image, unsigned w, unsigned h, + const LodePNGColorMode* mode_in); +/*The function LodePNG uses internally to decide the PNG color with auto_convert. +Chooses an optimal color model, e.g. grey if only grey pixels, palette if < 256 colors, ...*/ +unsigned lodepng_auto_choose_color(LodePNGColorMode* mode_out, + const unsigned char* image, unsigned w, unsigned h, + const LodePNGColorMode* mode_in); + +/*Settings for the encoder.*/ +typedef struct LodePNGEncoderSettings +{ + LodePNGCompressSettings zlibsettings; /*settings for the zlib encoder, such as window size, ...*/ + + unsigned auto_convert; /*automatically choose output PNG color type. Default: true*/ + + /*If true, follows the official PNG heuristic: if the PNG uses a palette or lower than + 8 bit depth, set all filters to zero. Otherwise use the filter_strategy. Note that to + completely follow the official PNG heuristic, filter_palette_zero must be true and + filter_strategy must be LFS_MINSUM*/ + unsigned filter_palette_zero; + /*Which filter strategy to use when not using zeroes due to filter_palette_zero. + Set filter_palette_zero to 0 to ensure always using your chosen strategy. Default: LFS_MINSUM*/ + LodePNGFilterStrategy filter_strategy; + /*used if filter_strategy is LFS_PREDEFINED. In that case, this must point to a buffer with + the same length as the amount of scanlines in the image, and each value must <= 5. You + have to cleanup this buffer, LodePNG will never free it. Don't forget that filter_palette_zero + must be set to 0 to ensure this is also used on palette or low bitdepth images.*/ + const unsigned char* predefined_filters; + + /*force creating a PLTE chunk if colortype is 2 or 6 (= a suggested palette). + If colortype is 3, PLTE is _always_ created.*/ + unsigned force_palette; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*add LodePNG identifier and version as a text chunk, for debugging*/ + unsigned add_id; + /*encode text chunks as zTXt chunks instead of tEXt chunks, and use compression in iTXt chunks*/ + unsigned text_compression; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} LodePNGEncoderSettings; + +void lodepng_encoder_settings_init(LodePNGEncoderSettings* settings); +#endif /*LODEPNG_COMPILE_ENCODER*/ + + +#if defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) +/*The settings, state and information for extended encoding and decoding.*/ +typedef struct LodePNGState +{ +#ifdef LODEPNG_COMPILE_DECODER + LodePNGDecoderSettings decoder; /*the decoding settings*/ +#endif /*LODEPNG_COMPILE_DECODER*/ +#ifdef LODEPNG_COMPILE_ENCODER + LodePNGEncoderSettings encoder; /*the encoding settings*/ +#endif /*LODEPNG_COMPILE_ENCODER*/ + LodePNGColorMode info_raw; /*specifies the format in which you would like to get the raw pixel buffer*/ + LodePNGInfo info_png; /*info of the PNG image obtained after decoding*/ + unsigned error; +#ifdef LODEPNG_COMPILE_CPP + /* For the lodepng::State subclass. */ + virtual ~LodePNGState(){} +#endif +} LodePNGState; + +/*init, cleanup and copy functions to use with this struct*/ +void lodepng_state_init(LodePNGState* state); +void lodepng_state_cleanup(LodePNGState* state); +void lodepng_state_copy(LodePNGState* dest, const LodePNGState* source); +#endif /* defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) */ + +#ifdef LODEPNG_COMPILE_DECODER +/* +Same as lodepng_decode_memory, but uses a LodePNGState to allow custom settings and +getting much more information about the PNG image and color mode. +*/ +unsigned lodepng_decode(unsigned char** out, unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize); + +/* +Read the PNG header, but not the actual data. This returns only the information +that is in the header chunk of the PNG, such as width, height and color type. The +information is placed in the info_png field of the LodePNGState. +*/ +unsigned lodepng_inspect(unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize); +#endif /*LODEPNG_COMPILE_DECODER*/ + + +#ifdef LODEPNG_COMPILE_ENCODER +/*This function allocates the out buffer with standard malloc and stores the size in *outsize.*/ +unsigned lodepng_encode(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h, + LodePNGState* state); +#endif /*LODEPNG_COMPILE_ENCODER*/ + +/* +The lodepng_chunk functions are normally not needed, except to traverse the +unknown chunks stored in the LodePNGInfo struct, or add new ones to it. +It also allows traversing the chunks of an encoded PNG file yourself. + +PNG standard chunk naming conventions: +First byte: uppercase = critical, lowercase = ancillary +Second byte: uppercase = public, lowercase = private +Third byte: must be uppercase +Fourth byte: uppercase = unsafe to copy, lowercase = safe to copy +*/ + +/* +Gets the length of the data of the chunk. Total chunk length has 12 bytes more. +There must be at least 4 bytes to read from. If the result value is too large, +it may be corrupt data. +*/ +unsigned lodepng_chunk_length(const unsigned char* chunk); + +/*puts the 4-byte type in null terminated string*/ +void lodepng_chunk_type(char type[5], const unsigned char* chunk); + +/*check if the type is the given type*/ +unsigned char lodepng_chunk_type_equals(const unsigned char* chunk, const char* type); + +/*0: it's one of the critical chunk types, 1: it's an ancillary chunk (see PNG standard)*/ +unsigned char lodepng_chunk_ancillary(const unsigned char* chunk); + +/*0: public, 1: private (see PNG standard)*/ +unsigned char lodepng_chunk_private(const unsigned char* chunk); + +/*0: the chunk is unsafe to copy, 1: the chunk is safe to copy (see PNG standard)*/ +unsigned char lodepng_chunk_safetocopy(const unsigned char* chunk); + +/*get pointer to the data of the chunk, where the input points to the header of the chunk*/ +unsigned char* lodepng_chunk_data(unsigned char* chunk); +const unsigned char* lodepng_chunk_data_const(const unsigned char* chunk); + +/*returns 0 if the crc is correct, 1 if it's incorrect (0 for OK as usual!)*/ +unsigned lodepng_chunk_check_crc(const unsigned char* chunk); + +/*generates the correct CRC from the data and puts it in the last 4 bytes of the chunk*/ +void lodepng_chunk_generate_crc(unsigned char* chunk); + +/*iterate to next chunks. don't use on IEND chunk, as there is no next chunk then*/ +unsigned char* lodepng_chunk_next(unsigned char* chunk); +const unsigned char* lodepng_chunk_next_const(const unsigned char* chunk); + +/* +Appends chunk to the data in out. The given chunk should already have its chunk header. +The out variable and outlength are updated to reflect the new reallocated buffer. +Returns error code (0 if it went ok) +*/ +unsigned lodepng_chunk_append(unsigned char** out, size_t* outlength, const unsigned char* chunk); + +/* +Appends new chunk to out. The chunk to append is given by giving its length, type +and data separately. The type is a 4-letter string. +The out variable and outlength are updated to reflect the new reallocated buffer. +Returne error code (0 if it went ok) +*/ +unsigned lodepng_chunk_create(unsigned char** out, size_t* outlength, unsigned length, + const char* type, const unsigned char* data); + + +/*Calculate CRC32 of buffer*/ +unsigned lodepng_crc32(const unsigned char* buf, size_t len); +#endif /*LODEPNG_COMPILE_PNG*/ + + +#ifdef LODEPNG_COMPILE_ZLIB +/* +This zlib part can be used independently to zlib compress and decompress a +buffer. It cannot be used to create gzip files however, and it only supports the +part of zlib that is required for PNG, it does not support dictionaries. +*/ + +#ifdef LODEPNG_COMPILE_DECODER +/*Inflate a buffer. Inflate is the decompression step of deflate. Out buffer must be freed after use.*/ +unsigned lodepng_inflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings); + +/* +Decompresses Zlib data. Reallocates the out buffer and appends the data. The +data must be according to the zlib specification. +Either, *out must be NULL and *outsize must be 0, or, *out must be a valid +buffer and *outsize its size in bytes. out must be freed by user after usage. +*/ +unsigned lodepng_zlib_decompress(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/* +Compresses data with Zlib. Reallocates the out buffer and appends the data. +Zlib adds a small header and trailer around the deflate data. +The data is output in the format of the zlib specification. +Either, *out must be NULL and *outsize must be 0, or, *out must be a valid +buffer and *outsize its size in bytes. out must be freed by user after usage. +*/ +unsigned lodepng_zlib_compress(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings); + +/* +Find length-limited Huffman code for given frequencies. This function is in the +public interface only for tests, it's used internally by lodepng_deflate. +*/ +unsigned lodepng_huffman_code_lengths(unsigned* lengths, const unsigned* frequencies, + size_t numcodes, unsigned maxbitlen); + +/*Compress a buffer with deflate. See RFC 1951. Out buffer must be freed after use.*/ +unsigned lodepng_deflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings); + +#endif /*LODEPNG_COMPILE_ENCODER*/ +#endif /*LODEPNG_COMPILE_ZLIB*/ + +#ifdef LODEPNG_COMPILE_DISK +/* +Load a file from disk into buffer. The function allocates the out buffer, and +after usage you should free it. +out: output parameter, contains pointer to loaded buffer. +outsize: output parameter, size of the allocated out buffer +filename: the path to the file to load +return value: error code (0 means ok) +*/ +unsigned lodepng_load_file(unsigned char** out, size_t* outsize, const char* filename); + +/* +Save a file from buffer to disk. Warning, if it exists, this function overwrites +the file without warning! +buffer: the buffer to write +buffersize: size of the buffer to write +filename: the path to the file to save to +return value: error code (0 means ok) +*/ +unsigned lodepng_save_file(const unsigned char* buffer, size_t buffersize, const char* filename); +#endif /*LODEPNG_COMPILE_DISK*/ + +#ifdef LODEPNG_COMPILE_CPP +/* The LodePNG C++ wrapper uses std::vectors instead of manually allocated memory buffers. */ +namespace lodepng +{ +#ifdef LODEPNG_COMPILE_PNG +class State : public LodePNGState +{ + public: + State(); + State(const State& other); + virtual ~State(); + State& operator=(const State& other); +}; + +#ifdef LODEPNG_COMPILE_DECODER +/* Same as other lodepng::decode, but using a State for more settings and information. */ +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const unsigned char* in, size_t insize); +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const std::vector& in); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/* Same as other lodepng::encode, but using a State for more settings and information. */ +unsigned encode(std::vector& out, + const unsigned char* in, unsigned w, unsigned h, + State& state); +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + State& state); +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_DISK +/* +Load a file from disk into an std::vector. +return value: error code (0 means ok) +*/ +unsigned load_file(std::vector& buffer, const std::string& filename); + +/* +Save the binary data in an std::vector to a file on disk. The file is overwritten +without warning. +*/ +unsigned save_file(const std::vector& buffer, const std::string& filename); +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_PNG */ + +#ifdef LODEPNG_COMPILE_ZLIB +#ifdef LODEPNG_COMPILE_DECODER +/* Zlib-decompress an unsigned char buffer */ +unsigned decompress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGDecompressSettings& settings = lodepng_default_decompress_settings); + +/* Zlib-decompress an std::vector */ +unsigned decompress(std::vector& out, const std::vector& in, + const LodePNGDecompressSettings& settings = lodepng_default_decompress_settings); +#endif /* LODEPNG_COMPILE_DECODER */ + +#ifdef LODEPNG_COMPILE_ENCODER +/* Zlib-compress an unsigned char buffer */ +unsigned compress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGCompressSettings& settings = lodepng_default_compress_settings); + +/* Zlib-compress an std::vector */ +unsigned compress(std::vector& out, const std::vector& in, + const LodePNGCompressSettings& settings = lodepng_default_compress_settings); +#endif /* LODEPNG_COMPILE_ENCODER */ +#endif /* LODEPNG_COMPILE_ZLIB */ +} /* namespace lodepng */ +#endif /*LODEPNG_COMPILE_CPP*/ + +/* +TODO: +[.] test if there are no memory leaks or security exploits - done a lot but needs to be checked often +[.] check compatibility with various compilers - done but needs to be redone for every newer version +[X] converting color to 16-bit per channel types +[ ] read all public PNG chunk types (but never let the color profile and gamma ones touch RGB values) +[ ] make sure encoder generates no chunks with size > (2^31)-1 +[ ] partial decoding (stream processing) +[X] let the "isFullyOpaque" function check color keys and transparent palettes too +[X] better name for the variables "codes", "codesD", "codelengthcodes", "clcl" and "lldl" +[ ] don't stop decoding on errors like 69, 57, 58 (make warnings) +[ ] let the C++ wrapper catch exceptions coming from the standard library and return LodePNG error codes +[ ] allow user to provide custom color conversion functions, e.g. for premultiplied alpha, padding bits or not, ... +[ ] allow user to give data (void*) to custom allocator +*/ + +#endif /*LODEPNG_H inclusion guard*/ + +/* +LodePNG Documentation +--------------------- + +0. table of contents +-------------------- + + 1. about + 1.1. supported features + 1.2. features not supported + 2. C and C++ version + 3. security + 4. decoding + 5. encoding + 6. color conversions + 6.1. PNG color types + 6.2. color conversions + 6.3. padding bits + 6.4. A note about 16-bits per channel and endianness + 7. error values + 8. chunks and PNG editing + 9. compiler support + 10. examples + 10.1. decoder C++ example + 10.2. decoder C example + 11. state settings reference + 12. changes + 13. contact information + + +1. about +-------- + +PNG is a file format to store raster images losslessly with good compression, +supporting different color types and alpha channel. + +LodePNG is a PNG codec according to the Portable Network Graphics (PNG) +Specification (Second Edition) - W3C Recommendation 10 November 2003. + +The specifications used are: + +*) Portable Network Graphics (PNG) Specification (Second Edition): + http://www.w3.org/TR/2003/REC-PNG-20031110 +*) RFC 1950 ZLIB Compressed Data Format version 3.3: + http://www.gzip.org/zlib/rfc-zlib.html +*) RFC 1951 DEFLATE Compressed Data Format Specification ver 1.3: + http://www.gzip.org/zlib/rfc-deflate.html + +The most recent version of LodePNG can currently be found at +http://lodev.org/lodepng/ + +LodePNG works both in C (ISO C90) and C++, with a C++ wrapper that adds +extra functionality. + +LodePNG exists out of two files: +-lodepng.h: the header file for both C and C++ +-lodepng.c(pp): give it the name lodepng.c or lodepng.cpp (or .cc) depending on your usage + +If you want to start using LodePNG right away without reading this doc, get the +examples from the LodePNG website to see how to use it in code, or check the +smaller examples in chapter 13 here. + +LodePNG is simple but only supports the basic requirements. To achieve +simplicity, the following design choices were made: There are no dependencies +on any external library. There are functions to decode and encode a PNG with +a single function call, and extended versions of these functions taking a +LodePNGState struct allowing to specify or get more information. By default +the colors of the raw image are always RGB or RGBA, no matter what color type +the PNG file uses. To read and write files, there are simple functions to +convert the files to/from buffers in memory. + +This all makes LodePNG suitable for loading textures in games, demos and small +programs, ... It's less suitable for full fledged image editors, loading PNGs +over network (it requires all the image data to be available before decoding can +begin), life-critical systems, ... + +1.1. supported features +----------------------- + +The following features are supported by the decoder: + +*) decoding of PNGs with any color type, bit depth and interlace mode, to a 24- or 32-bit color raw image, + or the same color type as the PNG +*) encoding of PNGs, from any raw image to 24- or 32-bit color, or the same color type as the raw image +*) Adam7 interlace and deinterlace for any color type +*) loading the image from harddisk or decoding it from a buffer from other sources than harddisk +*) support for alpha channels, including RGBA color model, translucent palettes and color keying +*) zlib decompression (inflate) +*) zlib compression (deflate) +*) CRC32 and ADLER32 checksums +*) handling of unknown chunks, allowing making a PNG editor that stores custom and unknown chunks. +*) the following chunks are supported (generated/interpreted) by both encoder and decoder: + IHDR: header information + PLTE: color palette + IDAT: pixel data + IEND: the final chunk + tRNS: transparency for palettized images + tEXt: textual information + zTXt: compressed textual information + iTXt: international textual information + bKGD: suggested background color + pHYs: physical dimensions + tIME: modification time + +1.2. features not supported +--------------------------- + +The following features are _not_ supported: + +*) some features needed to make a conformant PNG-Editor might be still missing. +*) partial loading/stream processing. All data must be available and is processed in one call. +*) The following public chunks are not supported but treated as unknown chunks by LodePNG + cHRM, gAMA, iCCP, sRGB, sBIT, hIST, sPLT + Some of these are not supported on purpose: LodePNG wants to provide the RGB values + stored in the pixels, not values modified by system dependent gamma or color models. + + +2. C and C++ version +-------------------- + +The C version uses buffers allocated with alloc that you need to free() +yourself. You need to use init and cleanup functions for each struct whenever +using a struct from the C version to avoid exploits and memory leaks. + +The C++ version has extra functions with std::vectors in the interface and the +lodepng::State class which is a LodePNGState with constructor and destructor. + +These files work without modification for both C and C++ compilers because all +the additional C++ code is in "#ifdef __cplusplus" blocks that make C-compilers +ignore it, and the C code is made to compile both with strict ISO C90 and C++. + +To use the C++ version, you need to rename the source file to lodepng.cpp +(instead of lodepng.c), and compile it with a C++ compiler. + +To use the C version, you need to rename the source file to lodepng.c (instead +of lodepng.cpp), and compile it with a C compiler. + + +3. Security +----------- + +Even if carefully designed, it's always possible that LodePNG contains possible +exploits. If you discover one, please let me know, and it will be fixed. + +When using LodePNG, care has to be taken with the C version of LodePNG, as well +as the C-style structs when working with C++. The following conventions are used +for all C-style structs: + +-if a struct has a corresponding init function, always call the init function when making a new one +-if a struct has a corresponding cleanup function, call it before the struct disappears to avoid memory leaks +-if a struct has a corresponding copy function, use the copy function instead of "=". + The destination must also be inited already. + + +4. Decoding +----------- + +Decoding converts a PNG compressed image to a raw pixel buffer. + +Most documentation on using the decoder is at its declarations in the header +above. For C, simple decoding can be done with functions such as +lodepng_decode32, and more advanced decoding can be done with the struct +LodePNGState and lodepng_decode. For C++, all decoding can be done with the +various lodepng::decode functions, and lodepng::State can be used for advanced +features. + +When using the LodePNGState, it uses the following fields for decoding: +*) LodePNGInfo info_png: it stores extra information about the PNG (the input) in here +*) LodePNGColorMode info_raw: here you can say what color mode of the raw image (the output) you want to get +*) LodePNGDecoderSettings decoder: you can specify a few extra settings for the decoder to use + +LodePNGInfo info_png +-------------------- + +After decoding, this contains extra information of the PNG image, except the actual +pixels, width and height because these are already gotten directly from the decoder +functions. + +It contains for example the original color type of the PNG image, text comments, +suggested background color, etc... More details about the LodePNGInfo struct are +at its declaration documentation. + +LodePNGColorMode info_raw +------------------------- + +When decoding, here you can specify which color type you want +the resulting raw image to be. If this is different from the colortype of the +PNG, then the decoder will automatically convert the result. This conversion +always works, except if you want it to convert a color PNG to greyscale or to +a palette with missing colors. + +By default, 32-bit color is used for the result. + +LodePNGDecoderSettings decoder +------------------------------ + +The settings can be used to ignore the errors created by invalid CRC and Adler32 +chunks, and to disable the decoding of tEXt chunks. + +There's also a setting color_convert, true by default. If false, no conversion +is done, the resulting data will be as it was in the PNG (after decompression) +and you'll have to puzzle the colors of the pixels together yourself using the +color type information in the LodePNGInfo. + + +5. Encoding +----------- + +Encoding converts a raw pixel buffer to a PNG compressed image. + +Most documentation on using the encoder is at its declarations in the header +above. For C, simple encoding can be done with functions such as +lodepng_encode32, and more advanced decoding can be done with the struct +LodePNGState and lodepng_encode. For C++, all encoding can be done with the +various lodepng::encode functions, and lodepng::State can be used for advanced +features. + +Like the decoder, the encoder can also give errors. However it gives less errors +since the encoder input is trusted, the decoder input (a PNG image that could +be forged by anyone) is not trusted. + +When using the LodePNGState, it uses the following fields for encoding: +*) LodePNGInfo info_png: here you specify how you want the PNG (the output) to be. +*) LodePNGColorMode info_raw: here you say what color type of the raw image (the input) has +*) LodePNGEncoderSettings encoder: you can specify a few settings for the encoder to use + +LodePNGInfo info_png +-------------------- + +When encoding, you use this the opposite way as when decoding: for encoding, +you fill in the values you want the PNG to have before encoding. By default it's +not needed to specify a color type for the PNG since it's automatically chosen, +but it's possible to choose it yourself given the right settings. + +The encoder will not always exactly match the LodePNGInfo struct you give, +it tries as close as possible. Some things are ignored by the encoder. The +encoder uses, for example, the following settings from it when applicable: +colortype and bitdepth, text chunks, time chunk, the color key, the palette, the +background color, the interlace method, unknown chunks, ... + +When encoding to a PNG with colortype 3, the encoder will generate a PLTE chunk. +If the palette contains any colors for which the alpha channel is not 255 (so +there are translucent colors in the palette), it'll add a tRNS chunk. + +LodePNGColorMode info_raw +------------------------- + +You specify the color type of the raw image that you give to the input here, +including a possible transparent color key and palette you happen to be using in +your raw image data. + +By default, 32-bit color is assumed, meaning your input has to be in RGBA +format with 4 bytes (unsigned chars) per pixel. + +LodePNGEncoderSettings encoder +------------------------------ + +The following settings are supported (some are in sub-structs): +*) auto_convert: when this option is enabled, the encoder will +automatically choose the smallest possible color mode (including color key) that +can encode the colors of all pixels without information loss. +*) btype: the block type for LZ77. 0 = uncompressed, 1 = fixed huffman tree, + 2 = dynamic huffman tree (best compression). Should be 2 for proper + compression. +*) use_lz77: whether or not to use LZ77 for compressed block types. Should be + true for proper compression. +*) windowsize: the window size used by the LZ77 encoder (1 - 32768). Has value + 2048 by default, but can be set to 32768 for better, but slow, compression. +*) force_palette: if colortype is 2 or 6, you can make the encoder write a PLTE + chunk if force_palette is true. This can used as suggested palette to convert + to by viewers that don't support more than 256 colors (if those still exist) +*) add_id: add text chunk "Encoder: LodePNG " to the image. +*) text_compression: default 1. If 1, it'll store texts as zTXt instead of tEXt chunks. + zTXt chunks use zlib compression on the text. This gives a smaller result on + large texts but a larger result on small texts (such as a single program name). + It's all tEXt or all zTXt though, there's no separate setting per text yet. + + +6. color conversions +-------------------- + +An important thing to note about LodePNG, is that the color type of the PNG, and +the color type of the raw image, are completely independent. By default, when +you decode a PNG, you get the result as a raw image in the color type you want, +no matter whether the PNG was encoded with a palette, greyscale or RGBA color. +And if you encode an image, by default LodePNG will automatically choose the PNG +color type that gives good compression based on the values of colors and amount +of colors in the image. It can be configured to let you control it instead as +well, though. + +To be able to do this, LodePNG does conversions from one color mode to another. +It can convert from almost any color type to any other color type, except the +following conversions: RGB to greyscale is not supported, and converting to a +palette when the palette doesn't have a required color is not supported. This is +not supported on purpose: this is information loss which requires a color +reduction algorithm that is beyong the scope of a PNG encoder (yes, RGB to grey +is easy, but there are multiple ways if you want to give some channels more +weight). + +By default, when decoding, you get the raw image in 32-bit RGBA or 24-bit RGB +color, no matter what color type the PNG has. And by default when encoding, +LodePNG automatically picks the best color model for the output PNG, and expects +the input image to be 32-bit RGBA or 24-bit RGB. So, unless you want to control +the color format of the images yourself, you can skip this chapter. + +6.1. PNG color types +-------------------- + +A PNG image can have many color types, ranging from 1-bit color to 64-bit color, +as well as palettized color modes. After the zlib decompression and unfiltering +in the PNG image is done, the raw pixel data will have that color type and thus +a certain amount of bits per pixel. If you want the output raw image after +decoding to have another color type, a conversion is done by LodePNG. + +The PNG specification gives the following color types: + +0: greyscale, bit depths 1, 2, 4, 8, 16 +2: RGB, bit depths 8 and 16 +3: palette, bit depths 1, 2, 4 and 8 +4: greyscale with alpha, bit depths 8 and 16 +6: RGBA, bit depths 8 and 16 + +Bit depth is the amount of bits per pixel per color channel. So the total amount +of bits per pixel is: amount of channels * bitdepth. + +6.2. color conversions +---------------------- + +As explained in the sections about the encoder and decoder, you can specify +color types and bit depths in info_png and info_raw to change the default +behaviour. + +If, when decoding, you want the raw image to be something else than the default, +you need to set the color type and bit depth you want in the LodePNGColorMode, +or the parameters colortype and bitdepth of the simple decoding function. + +If, when encoding, you use another color type than the default in the raw input +image, you need to specify its color type and bit depth in the LodePNGColorMode +of the raw image, or use the parameters colortype and bitdepth of the simple +encoding function. + +If, when encoding, you don't want LodePNG to choose the output PNG color type +but control it yourself, you need to set auto_convert in the encoder settings +to false, and specify the color type you want in the LodePNGInfo of the +encoder (including palette: it can generate a palette if auto_convert is true, +otherwise not). + +If the input and output color type differ (whether user chosen or auto chosen), +LodePNG will do a color conversion, which follows the rules below, and may +sometimes result in an error. + +To avoid some confusion: +-the decoder converts from PNG to raw image +-the encoder converts from raw image to PNG +-the colortype and bitdepth in LodePNGColorMode info_raw, are those of the raw image +-the colortype and bitdepth in the color field of LodePNGInfo info_png, are those of the PNG +-when encoding, the color type in LodePNGInfo is ignored if auto_convert + is enabled, it is automatically generated instead +-when decoding, the color type in LodePNGInfo is set by the decoder to that of the original + PNG image, but it can be ignored since the raw image has the color type you requested instead +-if the color type of the LodePNGColorMode and PNG image aren't the same, a conversion + between the color types is done if the color types are supported. If it is not + supported, an error is returned. If the types are the same, no conversion is done. +-even though some conversions aren't supported, LodePNG supports loading PNGs from any + colortype and saving PNGs to any colortype, sometimes it just requires preparing + the raw image correctly before encoding. +-both encoder and decoder use the same color converter. + +Non supported color conversions: +-color to greyscale: no error is thrown, but the result will look ugly because +only the red channel is taken +-anything to palette when that palette does not have that color in it: in this +case an error is thrown + +Supported color conversions: +-anything to 8-bit RGB, 8-bit RGBA, 16-bit RGB, 16-bit RGBA +-any grey or grey+alpha, to grey or grey+alpha +-anything to a palette, as long as the palette has the requested colors in it +-removing alpha channel +-higher to smaller bitdepth, and vice versa + +If you want no color conversion to be done (e.g. for speed or control): +-In the encoder, you can make it save a PNG with any color type by giving the +raw color mode and LodePNGInfo the same color mode, and setting auto_convert to +false. +-In the decoder, you can make it store the pixel data in the same color type +as the PNG has, by setting the color_convert setting to false. Settings in +info_raw are then ignored. + +The function lodepng_convert does the color conversion. It is available in the +interface but normally isn't needed since the encoder and decoder already call +it. + +6.3. padding bits +----------------- + +In the PNG file format, if a less than 8-bit per pixel color type is used and the scanlines +have a bit amount that isn't a multiple of 8, then padding bits are used so that each +scanline starts at a fresh byte. But that is NOT true for the LodePNG raw input and output. +The raw input image you give to the encoder, and the raw output image you get from the decoder +will NOT have these padding bits, e.g. in the case of a 1-bit image with a width +of 7 pixels, the first pixel of the second scanline will the the 8th bit of the first byte, +not the first bit of a new byte. + +6.4. A note about 16-bits per channel and endianness +---------------------------------------------------- + +LodePNG uses unsigned char arrays for 16-bit per channel colors too, just like +for any other color format. The 16-bit values are stored in big endian (most +significant byte first) in these arrays. This is the opposite order of the +little endian used by x86 CPU's. + +LodePNG always uses big endian because the PNG file format does so internally. +Conversions to other formats than PNG uses internally are not supported by +LodePNG on purpose, there are myriads of formats, including endianness of 16-bit +colors, the order in which you store R, G, B and A, and so on. Supporting and +converting to/from all that is outside the scope of LodePNG. + +This may mean that, depending on your use case, you may want to convert the big +endian output of LodePNG to little endian with a for loop. This is certainly not +always needed, many applications and libraries support big endian 16-bit colors +anyway, but it means you cannot simply cast the unsigned char* buffer to an +unsigned short* buffer on x86 CPUs. + + +7. error values +--------------- + +All functions in LodePNG that return an error code, return 0 if everything went +OK, or a non-zero code if there was an error. + +The meaning of the LodePNG error values can be retrieved with the function +lodepng_error_text: given the numerical error code, it returns a description +of the error in English as a string. + +Check the implementation of lodepng_error_text to see the meaning of each code. + + +8. chunks and PNG editing +------------------------- + +If you want to add extra chunks to a PNG you encode, or use LodePNG for a PNG +editor that should follow the rules about handling of unknown chunks, or if your +program is able to read other types of chunks than the ones handled by LodePNG, +then that's possible with the chunk functions of LodePNG. + +A PNG chunk has the following layout: + +4 bytes length +4 bytes type name +length bytes data +4 bytes CRC + +8.1. iterating through chunks +----------------------------- + +If you have a buffer containing the PNG image data, then the first chunk (the +IHDR chunk) starts at byte number 8 of that buffer. The first 8 bytes are the +signature of the PNG and are not part of a chunk. But if you start at byte 8 +then you have a chunk, and can check the following things of it. + +NOTE: none of these functions check for memory buffer boundaries. To avoid +exploits, always make sure the buffer contains all the data of the chunks. +When using lodepng_chunk_next, make sure the returned value is within the +allocated memory. + +unsigned lodepng_chunk_length(const unsigned char* chunk): + +Get the length of the chunk's data. The total chunk length is this length + 12. + +void lodepng_chunk_type(char type[5], const unsigned char* chunk): +unsigned char lodepng_chunk_type_equals(const unsigned char* chunk, const char* type): + +Get the type of the chunk or compare if it's a certain type + +unsigned char lodepng_chunk_critical(const unsigned char* chunk): +unsigned char lodepng_chunk_private(const unsigned char* chunk): +unsigned char lodepng_chunk_safetocopy(const unsigned char* chunk): + +Check if the chunk is critical in the PNG standard (only IHDR, PLTE, IDAT and IEND are). +Check if the chunk is private (public chunks are part of the standard, private ones not). +Check if the chunk is safe to copy. If it's not, then, when modifying data in a critical +chunk, unsafe to copy chunks of the old image may NOT be saved in the new one if your +program doesn't handle that type of unknown chunk. + +unsigned char* lodepng_chunk_data(unsigned char* chunk): +const unsigned char* lodepng_chunk_data_const(const unsigned char* chunk): + +Get a pointer to the start of the data of the chunk. + +unsigned lodepng_chunk_check_crc(const unsigned char* chunk): +void lodepng_chunk_generate_crc(unsigned char* chunk): + +Check if the crc is correct or generate a correct one. + +unsigned char* lodepng_chunk_next(unsigned char* chunk): +const unsigned char* lodepng_chunk_next_const(const unsigned char* chunk): + +Iterate to the next chunk. This works if you have a buffer with consecutive chunks. Note that these +functions do no boundary checking of the allocated data whatsoever, so make sure there is enough +data available in the buffer to be able to go to the next chunk. + +unsigned lodepng_chunk_append(unsigned char** out, size_t* outlength, const unsigned char* chunk): +unsigned lodepng_chunk_create(unsigned char** out, size_t* outlength, unsigned length, + const char* type, const unsigned char* data): + +These functions are used to create new chunks that are appended to the data in *out that has +length *outlength. The append function appends an existing chunk to the new data. The create +function creates a new chunk with the given parameters and appends it. Type is the 4-letter +name of the chunk. + +8.2. chunks in info_png +----------------------- + +The LodePNGInfo struct contains fields with the unknown chunk in it. It has 3 +buffers (each with size) to contain 3 types of unknown chunks: +the ones that come before the PLTE chunk, the ones that come between the PLTE +and the IDAT chunks, and the ones that come after the IDAT chunks. +It's necessary to make the distionction between these 3 cases because the PNG +standard forces to keep the ordering of unknown chunks compared to the critical +chunks, but does not force any other ordering rules. + +info_png.unknown_chunks_data[0] is the chunks before PLTE +info_png.unknown_chunks_data[1] is the chunks after PLTE, before IDAT +info_png.unknown_chunks_data[2] is the chunks after IDAT + +The chunks in these 3 buffers can be iterated through and read by using the same +way described in the previous subchapter. + +When using the decoder to decode a PNG, you can make it store all unknown chunks +if you set the option settings.remember_unknown_chunks to 1. By default, this +option is off (0). + +The encoder will always encode unknown chunks that are stored in the info_png. +If you need it to add a particular chunk that isn't known by LodePNG, you can +use lodepng_chunk_append or lodepng_chunk_create to the chunk data in +info_png.unknown_chunks_data[x]. + +Chunks that are known by LodePNG should not be added in that way. E.g. to make +LodePNG add a bKGD chunk, set background_defined to true and add the correct +parameters there instead. + + +9. compiler support +------------------- + +No libraries other than the current standard C library are needed to compile +LodePNG. For the C++ version, only the standard C++ library is needed on top. +Add the files lodepng.c(pp) and lodepng.h to your project, include +lodepng.h where needed, and your program can read/write PNG files. + +It is compatible with C90 and up, and C++03 and up. + +If performance is important, use optimization when compiling! For both the +encoder and decoder, this makes a large difference. + +Make sure that LodePNG is compiled with the same compiler of the same version +and with the same settings as the rest of the program, or the interfaces with +std::vectors and std::strings in C++ can be incompatible. + +CHAR_BITS must be 8 or higher, because LodePNG uses unsigned chars for octets. + +*) gcc and g++ + +LodePNG is developed in gcc so this compiler is natively supported. It gives no +warnings with compiler options "-Wall -Wextra -pedantic -ansi", with gcc and g++ +version 4.7.1 on Linux, 32-bit and 64-bit. + +*) Clang + +Fully supported and warning-free. + +*) Mingw + +The Mingw compiler (a port of gcc for Windows) should be fully supported by +LodePNG. + +*) Visual Studio and Visual C++ Express Edition + +LodePNG should be warning-free with warning level W4. Two warnings were disabled +with pragmas though: warning 4244 about implicit conversions, and warning 4996 +where it wants to use a non-standard function fopen_s instead of the standard C +fopen. + +Visual Studio may want "stdafx.h" files to be included in each source file and +give an error "unexpected end of file while looking for precompiled header". +This is not standard C++ and will not be added to the stock LodePNG. You can +disable it for lodepng.cpp only by right clicking it, Properties, C/C++, +Precompiled Headers, and set it to Not Using Precompiled Headers there. + +NOTE: Modern versions of VS should be fully supported, but old versions, e.g. +VS6, are not guaranteed to work. + +*) Compilers on Macintosh + +LodePNG has been reported to work both with gcc and LLVM for Macintosh, both for +C and C++. + +*) Other Compilers + +If you encounter problems on any compilers, feel free to let me know and I may +try to fix it if the compiler is modern and standards complient. + + +10. examples +------------ + +This decoder example shows the most basic usage of LodePNG. More complex +examples can be found on the LodePNG website. + +10.1. decoder C++ example +------------------------- + +#include "lodepng.h" +#include + +int main(int argc, char *argv[]) +{ + const char* filename = argc > 1 ? argv[1] : "test.png"; + + //load and decode + std::vector image; + unsigned width, height; + unsigned error = lodepng::decode(image, width, height, filename); + + //if there's an error, display it + if(error) std::cout << "decoder error " << error << ": " << lodepng_error_text(error) << std::endl; + + //the pixels are now in the vector "image", 4 bytes per pixel, ordered RGBARGBA..., use it as texture, draw it, ... +} + +10.2. decoder C example +----------------------- + +#include "lodepng.h" + +int main(int argc, char *argv[]) +{ + unsigned error; + unsigned char* image; + size_t width, height; + const char* filename = argc > 1 ? argv[1] : "test.png"; + + error = lodepng_decode32_file(&image, &width, &height, filename); + + if(error) printf("decoder error %u: %s\n", error, lodepng_error_text(error)); + + / * use image here * / + + free(image); + return 0; +} + +11. state settings reference +---------------------------- + +A quick reference of some settings to set on the LodePNGState + +For decoding: + +state.decoder.zlibsettings.ignore_adler32: ignore ADLER32 checksums +state.decoder.zlibsettings.custom_...: use custom inflate function +state.decoder.ignore_crc: ignore CRC checksums +state.decoder.color_convert: convert internal PNG color to chosen one +state.decoder.read_text_chunks: whether to read in text metadata chunks +state.decoder.remember_unknown_chunks: whether to read in unknown chunks +state.info_raw.colortype: desired color type for decoded image +state.info_raw.bitdepth: desired bit depth for decoded image +state.info_raw....: more color settings, see struct LodePNGColorMode +state.info_png....: no settings for decoder but ouput, see struct LodePNGInfo + +For encoding: + +state.encoder.zlibsettings.btype: disable compression by setting it to 0 +state.encoder.zlibsettings.use_lz77: use LZ77 in compression +state.encoder.zlibsettings.windowsize: tweak LZ77 windowsize +state.encoder.zlibsettings.minmatch: tweak min LZ77 length to match +state.encoder.zlibsettings.nicematch: tweak LZ77 match where to stop searching +state.encoder.zlibsettings.lazymatching: try one more LZ77 matching +state.encoder.zlibsettings.custom_...: use custom deflate function +state.encoder.auto_convert: choose optimal PNG color type, if 0 uses info_png +state.encoder.filter_palette_zero: PNG filter strategy for palette +state.encoder.filter_strategy: PNG filter strategy to encode with +state.encoder.force_palette: add palette even if not encoding to one +state.encoder.add_id: add LodePNG identifier and version as a text chunk +state.encoder.text_compression: use compressed text chunks for metadata +state.info_raw.colortype: color type of raw input image you provide +state.info_raw.bitdepth: bit depth of raw input image you provide +state.info_raw: more color settings, see struct LodePNGColorMode +state.info_png.color.colortype: desired color type if auto_convert is false +state.info_png.color.bitdepth: desired bit depth if auto_convert is false +state.info_png.color....: more color settings, see struct LodePNGColorMode +state.info_png....: more PNG related settings, see struct LodePNGInfo + + +12. changes +----------- + +The version number of LodePNG is the date of the change given in the format +yyyymmdd. + +Some changes aren't backwards compatible. Those are indicated with a (!) +symbol. + +*) 08 dec 2015: Made load_file function return error if file can't be opened. +*) 24 okt 2015: Bugfix with decoding to palette output. +*) 18 apr 2015: Boundary PM instead of just package-merge for faster encoding. +*) 23 aug 2014: Reduced needless memory usage of decoder. +*) 28 jun 2014: Removed fix_png setting, always support palette OOB for + simplicity. Made ColorProfile public. +*) 09 jun 2014: Faster encoder by fixing hash bug and more zeros optimization. +*) 22 dec 2013: Power of two windowsize required for optimization. +*) 15 apr 2013: Fixed bug with LAC_ALPHA and color key. +*) 25 mar 2013: Added an optional feature to ignore some PNG errors (fix_png). +*) 11 mar 2013 (!): Bugfix with custom free. Changed from "my" to "lodepng_" + prefix for the custom allocators and made it possible with a new #define to + use custom ones in your project without needing to change lodepng's code. +*) 28 jan 2013: Bugfix with color key. +*) 27 okt 2012: Tweaks in text chunk keyword length error handling. +*) 8 okt 2012 (!): Added new filter strategy (entropy) and new auto color mode. + (no palette). Better deflate tree encoding. New compression tweak settings. + Faster color conversions while decoding. Some internal cleanups. +*) 23 sep 2012: Reduced warnings in Visual Studio a little bit. +*) 1 sep 2012 (!): Removed #define's for giving custom (de)compression functions + and made it work with function pointers instead. +*) 23 jun 2012: Added more filter strategies. Made it easier to use custom alloc + and free functions and toggle #defines from compiler flags. Small fixes. +*) 6 may 2012 (!): Made plugging in custom zlib/deflate functions more flexible. +*) 22 apr 2012 (!): Made interface more consistent, renaming a lot. Removed + redundant C++ codec classes. Reduced amount of structs. Everything changed, + but it is cleaner now imho and functionality remains the same. Also fixed + several bugs and shrunk the implementation code. Made new samples. +*) 6 nov 2011 (!): By default, the encoder now automatically chooses the best + PNG color model and bit depth, based on the amount and type of colors of the + raw image. For this, autoLeaveOutAlphaChannel replaced by auto_choose_color. +*) 9 okt 2011: simpler hash chain implementation for the encoder. +*) 8 sep 2011: lz77 encoder lazy matching instead of greedy matching. +*) 23 aug 2011: tweaked the zlib compression parameters after benchmarking. + A bug with the PNG filtertype heuristic was fixed, so that it chooses much + better ones (it's quite significant). A setting to do an experimental, slow, + brute force search for PNG filter types is added. +*) 17 aug 2011 (!): changed some C zlib related function names. +*) 16 aug 2011: made the code less wide (max 120 characters per line). +*) 17 apr 2011: code cleanup. Bugfixes. Convert low to 16-bit per sample colors. +*) 21 feb 2011: fixed compiling for C90. Fixed compiling with sections disabled. +*) 11 dec 2010: encoding is made faster, based on suggestion by Peter Eastman + to optimize long sequences of zeros. +*) 13 nov 2010: added LodePNG_InfoColor_hasPaletteAlpha and + LodePNG_InfoColor_canHaveAlpha functions for convenience. +*) 7 nov 2010: added LodePNG_error_text function to get error code description. +*) 30 okt 2010: made decoding slightly faster +*) 26 okt 2010: (!) changed some C function and struct names (more consistent). + Reorganized the documentation and the declaration order in the header. +*) 08 aug 2010: only changed some comments and external samples. +*) 05 jul 2010: fixed bug thanks to warnings in the new gcc version. +*) 14 mar 2010: fixed bug where too much memory was allocated for char buffers. +*) 02 sep 2008: fixed bug where it could create empty tree that linux apps could + read by ignoring the problem but windows apps couldn't. +*) 06 jun 2008: added more error checks for out of memory cases. +*) 26 apr 2008: added a few more checks here and there to ensure more safety. +*) 06 mar 2008: crash with encoding of strings fixed +*) 02 feb 2008: support for international text chunks added (iTXt) +*) 23 jan 2008: small cleanups, and #defines to divide code in sections +*) 20 jan 2008: support for unknown chunks allowing using LodePNG for an editor. +*) 18 jan 2008: support for tIME and pHYs chunks added to encoder and decoder. +*) 17 jan 2008: ability to encode and decode compressed zTXt chunks added + Also various fixes, such as in the deflate and the padding bits code. +*) 13 jan 2008: Added ability to encode Adam7-interlaced images. Improved + filtering code of encoder. +*) 07 jan 2008: (!) changed LodePNG to use ISO C90 instead of C++. A + C++ wrapper around this provides an interface almost identical to before. + Having LodePNG be pure ISO C90 makes it more portable. The C and C++ code + are together in these files but it works both for C and C++ compilers. +*) 29 dec 2007: (!) changed most integer types to unsigned int + other tweaks +*) 30 aug 2007: bug fixed which makes this Borland C++ compatible +*) 09 aug 2007: some VS2005 warnings removed again +*) 21 jul 2007: deflate code placed in new namespace separate from zlib code +*) 08 jun 2007: fixed bug with 2- and 4-bit color, and small interlaced images +*) 04 jun 2007: improved support for Visual Studio 2005: crash with accessing + invalid std::vector element [0] fixed, and level 3 and 4 warnings removed +*) 02 jun 2007: made the encoder add a tag with version by default +*) 27 may 2007: zlib and png code separated (but still in the same file), + simple encoder/decoder functions added for more simple usage cases +*) 19 may 2007: minor fixes, some code cleaning, new error added (error 69), + moved some examples from here to lodepng_examples.cpp +*) 12 may 2007: palette decoding bug fixed +*) 24 apr 2007: changed the license from BSD to the zlib license +*) 11 mar 2007: very simple addition: ability to encode bKGD chunks. +*) 04 mar 2007: (!) tEXt chunk related fixes, and support for encoding + palettized PNG images. Plus little interface change with palette and texts. +*) 03 mar 2007: Made it encode dynamic Huffman shorter with repeat codes. + Fixed a bug where the end code of a block had length 0 in the Huffman tree. +*) 26 feb 2007: Huffman compression with dynamic trees (BTYPE 2) now implemented + and supported by the encoder, resulting in smaller PNGs at the output. +*) 27 jan 2007: Made the Adler-32 test faster so that a timewaste is gone. +*) 24 jan 2007: gave encoder an error interface. Added color conversion from any + greyscale type to 8-bit greyscale with or without alpha. +*) 21 jan 2007: (!) Totally changed the interface. It allows more color types + to convert to and is more uniform. See the manual for how it works now. +*) 07 jan 2007: Some cleanup & fixes, and a few changes over the last days: + encode/decode custom tEXt chunks, separate classes for zlib & deflate, and + at last made the decoder give errors for incorrect Adler32 or Crc. +*) 01 jan 2007: Fixed bug with encoding PNGs with less than 8 bits per channel. +*) 29 dec 2006: Added support for encoding images without alpha channel, and + cleaned out code as well as making certain parts faster. +*) 28 dec 2006: Added "Settings" to the encoder. +*) 26 dec 2006: The encoder now does LZ77 encoding and produces much smaller files now. + Removed some code duplication in the decoder. Fixed little bug in an example. +*) 09 dec 2006: (!) Placed output parameters of public functions as first parameter. + Fixed a bug of the decoder with 16-bit per color. +*) 15 okt 2006: Changed documentation structure +*) 09 okt 2006: Encoder class added. It encodes a valid PNG image from the + given image buffer, however for now it's not compressed. +*) 08 sep 2006: (!) Changed to interface with a Decoder class +*) 30 jul 2006: (!) LodePNG_InfoPng , width and height are now retrieved in different + way. Renamed decodePNG to decodePNGGeneric. +*) 29 jul 2006: (!) Changed the interface: image info is now returned as a + struct of type LodePNG::LodePNG_Info, instead of a vector, which was a bit clumsy. +*) 28 jul 2006: Cleaned the code and added new error checks. + Corrected terminology "deflate" into "inflate". +*) 23 jun 2006: Added SDL example in the documentation in the header, this + example allows easy debugging by displaying the PNG and its transparency. +*) 22 jun 2006: (!) Changed way to obtain error value. Added + loadFile function for convenience. Made decodePNG32 faster. +*) 21 jun 2006: (!) Changed type of info vector to unsigned. + Changed position of palette in info vector. Fixed an important bug that + happened on PNGs with an uncompressed block. +*) 16 jun 2006: Internally changed unsigned into unsigned where + needed, and performed some optimizations. +*) 07 jun 2006: (!) Renamed functions to decodePNG and placed them + in LodePNG namespace. Changed the order of the parameters. Rewrote the + documentation in the header. Renamed files to lodepng.cpp and lodepng.h +*) 22 apr 2006: Optimized and improved some code +*) 07 sep 2005: (!) Changed to std::vector interface +*) 12 aug 2005: Initial release (C++, decoder only) + + +13. contact information +----------------------- + +Feel free to contact me with suggestions, problems, comments, ... concerning +LodePNG. If you encounter a PNG image that doesn't work properly with this +decoder, feel free to send it and I'll use it to find and fix the problem. + +My email address is (puzzle the account and domain together with an @ symbol): +Domain: gmail dot com. +Account: lode dot vandevenne. + + +Copyright (c) 2005-2016 Lode Vandevenne +*/ diff --git a/Tutorial 2/ImageIO.h b/Tutorial 2/ImageIO.h new file mode 100644 index 0000000..b17c658 --- /dev/null +++ b/Tutorial 2/ImageIO.h @@ -0,0 +1,82 @@ +#pragma once + +#include +#include +#include "Exception.h" +#include "lodepng.h" +#include // GLUT stuff - includes OpenGL headers as well + +using namespace std; + +namespace ImageIO { + + //helper image class - internal + class GLImage { + public: + GLImage(const std::vector& _buffer, unsigned int _width, unsigned int _height) : + buffer((GLubyte*)&_buffer[0]), width(_width), height(_height) {} + + GLubyte* buffer; + unsigned int width; + unsigned int height; + }; + + std::vector images; + + // display + // The GLUT display function + void display() + { + int id = glutGetWindow() - 1; + glClear(GL_COLOR_BUFFER_BIT); + // Draw image + glLoadIdentity(); + glRasterPos2f(-1, 1); + glPixelZoom(1, -1); + glDrawPixels(images[id]->width, images[id]->height, + GL_RGBA, GL_UNSIGNED_BYTE, + images[id]->buffer); + + glutSwapBuffers(); + } + + // keyboard + // The GLUT keyboard function + void keyboard(unsigned char key, int x, int y) { + if (key == 27) + exit(0); + } + + // Initialize OpenGL/GLUT + void Init(int argc, char**argv) { + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); + glClearColor(1.0, 1.0, 1.0, 0.0); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + } + + //load PNG file + void LoadPNGImage(const string& file_name, std::vector& image_buffer, unsigned int& width, unsigned int& height) { + // Create the image in the array + unsigned error = lodepng::decode(image_buffer, width, height, file_name.c_str()); + + if (error != 0) + throw Exception(lodepng_error_text(error)); + } + + //add display window for a specific image + void AddWindow(const string& window_name, const std::vector& image_buffer, const unsigned int width, const unsigned int height) { + glutInitWindowSize(width, height); + int id = glutCreateWindow(window_name.c_str()); + glutDisplayFunc(display); + glutKeyboardFunc(keyboard); + images.push_back(new GLImage(image_buffer, width, height)); + } + + //main loop that goes forever + void MainLoop() { + glutMainLoop(); + } +} diff --git a/Tutorial 2/Tutorial 2.cpp b/Tutorial 2/Tutorial 2.cpp new file mode 100644 index 0000000..a1f7ba5 --- /dev/null +++ b/Tutorial 2/Tutorial 2.cpp @@ -0,0 +1,119 @@ +#define CL_USE_DEPRECATED_OPENCL_1_2_APIS +#define __CL_ENABLE_EXCEPTIONS + +#include +#include + +#ifdef __APPLE__ +#include +#else +#include +#endif + +#include "Utils.h" +#include +#include "ImageIO.h" + +void print_help() { + std::cerr << "Application usage:" << std::endl; + + std::cerr << " -p : select platform " << std::endl; + std::cerr << " -d : select device" << std::endl; + std::cerr << " -l : list all platforms and devices" << std::endl; + std::cerr << " -h : print this message" << std::endl; +} + +int main(int argc, char **argv) { + //Part 1 - handle command line options such as device selection, verbosity, etc. + int platform_id = 0; + int device_id = 0; + + for (int i = 1; i < argc; i++) { + if ((strcmp(argv[i], "-p") == 0) && (i < (argc - 1))) { platform_id = atoi(argv[++i]); } + else if ((strcmp(argv[i], "-d") == 0) && (i < (argc - 1))) { device_id = atoi(argv[++i]); } + else if (strcmp(argv[i], "-l") == 0) { std::cout << ListPlatformsDevices() << std::endl; } + else if (strcmp(argv[i], "-h") == 0) { print_help(); } + } + + //detect any potential exceptions + try { + ImageIO::Init(argc, argv); + + unsigned int image_width, image_height; + std::vector image_before, image_after; + + ImageIO::LoadPNGImage("test.png", image_before, image_width, image_height); + + image_after.resize(image_before.size()); + + ImageIO::AddWindow("Before", image_before, image_width, image_height); + ImageIO::AddWindow("After", image_after, image_width, image_height); + + //a 3x3 convolution mask implementing an averaging filter + std::vector convolution_mask = { 1.f / 9, 1.f / 9, 1.f / 9, + 1.f / 9, 1.f / 9, 1.f / 9, + 1.f / 9, 1.f / 9, 1.f / 9 }; + + //Part 2 - host operations + //2.1 Select computing devices + cl::Context context = GetContext(platform_id, device_id); + + //display the selected device + std::cout << "Runinng on " << GetPlatformName(platform_id) << ", " << GetDeviceName(platform_id, device_id) << std::endl; + + //create a queue to which we will push commands for the device + cl::CommandQueue queue(context); + + //2.2 Load & build the device code + cl::Program::Sources sources; + + AddSources(sources, "my_kernels_2.cl"); + + cl::Program program(context, sources); + + //build and debug the kernel code + try { + program.build(); + } + catch (const cl::Error& err) { + std::cout << "Build Status: " << program.getBuildInfo(context.getInfo()[0]) << std::endl; + std::cout << "Build Options:\t" << program.getBuildInfo(context.getInfo()[0]) << std::endl; + std::cout << "Build Log:\t " << program.getBuildInfo(context.getInfo()[0]) << std::endl; + throw err; + } + + //device - buffers + cl::Buffer dev_image_before(context, CL_MEM_READ_ONLY, image_before.size()); + cl::Buffer dev_image_after(context, CL_MEM_READ_WRITE, image_after.size()); + //cl::Buffer dev_convolution_mask(context, CL_MEM_READ_ONLY, convolution_mask.size()*sizeof(float)); + + //Part 5 - device operations + + //5.1 Copy images to device memory + queue.enqueueWriteBuffer(dev_image_before, CL_TRUE, 0, image_before.size(), &image_before[0]); + //queue.enqueueWriteBuffer(dev_convolution_mask, CL_TRUE, 0, convolution_mask.size()*sizeof(float), &convolution_mask[0]); + + //5.2 Setup and execute the kernel (i.e. device code) + cl::Kernel kernel = cl::Kernel(program, "identity"); + kernel.setArg(0, dev_image_before); + kernel.setArg(1, dev_image_after); + //kernel.setArg(2, dev_convolution_mask); + + queue.enqueueNDRangeKernel(kernel, cl::NullRange, cl::NDRange(image_width*image_height), cl::NullRange); + + //5.3 Copy the result from device to host + queue.enqueueReadBuffer(dev_image_after, CL_TRUE, 0, image_after.size(), &image_after[0]); + + // loop until Esc is pressed + ImageIO::MainLoop(); + } + catch (const cl::Error& err) { + std::cerr << "ERROR: " << err.what() << ", " << getErrorString(err.err()) << std::endl; + } + catch (const Exception& exc) { + std::cerr << "ERROR: " << exc.what() << std::endl; + } + + return 0; +} + diff --git a/Tutorial 2/Tutorial 2.vcxproj b/Tutorial 2/Tutorial 2.vcxproj new file mode 100644 index 0000000..69d5be0 --- /dev/null +++ b/Tutorial 2/Tutorial 2.vcxproj @@ -0,0 +1,193 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + Debug + x64 + + + Release + x64 + + + + {9167FEE5-0E64-4275-B2B2-A3F87F3A5C8F} + Tutorial 1 + 10.0.17763.0 + + + + Application + true + v141 + Unicode + + + Application + false + v141 + Unicode + true + + + Application + true + v141 + Unicode + + + Application + false + v141 + Unicode + true + + + + + + + + + + + + + + + + + false + + + true + + + false + + + true + + + + 0 + + + $(INTELOCLSDKROOT)include;%(AdditionalIncludeDirectories) + Win32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + Level3 + ProgramDatabase + + + + $(INTELOCLSDKROOT)lib\x86;%(AdditionalLibraryDirectories) + OpenCL.lib;%(AdditionalDependencies) + true + + + If exist "*.cl" copy "*.cl" "$(OutDir)\" + + + + + 0 + + + $(INTELOCLSDKROOT)include;.\Graphics\include\win32;.\Graphics\lodepng;%(AdditionalIncludeDirectories) + Win32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + Level3 + ProgramDatabase + + + + $(INTELOCLSDKROOT)lib\x86;.\Graphics\lib\win32\glut;%(AdditionalLibraryDirectories) + OpenCL.lib;glut32.lib;%(AdditionalDependencies) + true + + + If exist "*.cl" copy "*.cl" "$(OutDir)\" + + + + + 0 + + + $(INTELOCLSDKROOT)include;%(AdditionalIncludeDirectories) + __x86_64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MaxSpeed + false + Default + MultiThreadedDLL + Level3 + ProgramDatabase + + + + $(INTELOCLSDKROOT)lib\x64;%(AdditionalLibraryDirectories) + OpenCL.lib;%(AdditionalDependencies) + true + true + true + + + If exist "*.cl" copy "*.cl" "$(OutDir)\" + + + + + 0 + + + $(INTELOCLSDKROOT)include;.\Graphics\include\win32;.\Graphics\lodepng;%(AdditionalIncludeDirectories) + __x86_64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + Disabled + false + EnableFastChecks + MultiThreadedDebugDLL + Level3 + ProgramDatabase + + + + $(INTELOCLSDKROOT)lib\x64;.\Graphics\lib\win64\glut;%(AdditionalLibraryDirectories) + OpenCL.lib;glut32.lib;%(AdditionalDependencies) + true + + + If exist "*.cl" copy "*.cl" "$(OutDir)\" + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Tutorial 2/Utils.h b/Tutorial 2/Utils.h new file mode 100644 index 0000000..652c644 --- /dev/null +++ b/Tutorial 2/Utils.h @@ -0,0 +1,224 @@ +#pragma once + +#include +#include +#include +#include + +#ifdef __APPLE__ +#include +#else +#include +#endif + +using namespace std; + +template +ostream& operator<< (ostream& out, const vector& v) { + if (!v.empty()) { + out << '['; + copy(v.begin(), v.end(), ostream_iterator(out, ", ")); + out << "\b\b]"; + } + return out; +} + +string GetPlatformName(int platform_id) { + vector platforms; + cl::Platform::get(&platforms); + return platforms[platform_id].getInfo(); +} + +string GetDeviceName(int platform_id, int device_id) { + vector platforms; + cl::Platform::get(&platforms); + vector devices; + platforms[platform_id].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); + return devices[device_id].getInfo(); +} + +const char *getErrorString(cl_int error) { + switch (error){ + // run-time and JIT compiler errors + case 0: return "CL_SUCCESS"; + case -1: return "CL_DEVICE_NOT_FOUND"; + case -2: return "CL_DEVICE_NOT_AVAILABLE"; + case -3: return "CL_COMPILER_NOT_AVAILABLE"; + case -4: return "CL_MEM_OBJECT_ALLOCATION_FAILURE"; + case -5: return "CL_OUT_OF_RESOURCES"; + case -6: return "CL_OUT_OF_HOST_MEMORY"; + case -7: return "CL_PROFILING_INFO_NOT_AVAILABLE"; + case -8: return "CL_MEM_COPY_OVERLAP"; + case -9: return "CL_IMAGE_FORMAT_MISMATCH"; + case -10: return "CL_IMAGE_FORMAT_NOT_SUPPORTED"; + case -11: return "CL_BUILD_PROGRAM_FAILURE"; + case -12: return "CL_MAP_FAILURE"; + case -13: return "CL_MISALIGNED_SUB_BUFFER_OFFSET"; + case -14: return "CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"; + case -15: return "CL_COMPILE_PROGRAM_FAILURE"; + case -16: return "CL_LINKER_NOT_AVAILABLE"; + case -17: return "CL_LINK_PROGRAM_FAILURE"; + case -18: return "CL_DEVICE_PARTITION_FAILED"; + case -19: return "CL_KERNEL_ARG_INFO_NOT_AVAILABLE"; + + // compile-time errors + case -30: return "CL_INVALID_VALUE"; + case -31: return "CL_INVALID_DEVICE_TYPE"; + case -32: return "CL_INVALID_PLATFORM"; + case -33: return "CL_INVALID_DEVICE"; + case -34: return "CL_INVALID_CONTEXT"; + case -35: return "CL_INVALID_QUEUE_PROPERTIES"; + case -36: return "CL_INVALID_COMMAND_QUEUE"; + case -37: return "CL_INVALID_HOST_PTR"; + case -38: return "CL_INVALID_MEM_OBJECT"; + case -39: return "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"; + case -40: return "CL_INVALID_IMAGE_SIZE"; + case -41: return "CL_INVALID_SAMPLER"; + case -42: return "CL_INVALID_BINARY"; + case -43: return "CL_INVALID_BUILD_OPTIONS"; + case -44: return "CL_INVALID_PROGRAM"; + case -45: return "CL_INVALID_PROGRAM_EXECUTABLE"; + case -46: return "CL_INVALID_KERNEL_NAME"; + case -47: return "CL_INVALID_KERNEL_DEFINITION"; + case -48: return "CL_INVALID_KERNEL"; + case -49: return "CL_INVALID_ARG_INDEX"; + case -50: return "CL_INVALID_ARG_VALUE"; + case -51: return "CL_INVALID_ARG_SIZE"; + case -52: return "CL_INVALID_KERNEL_ARGS"; + case -53: return "CL_INVALID_WORK_DIMENSION"; + case -54: return "CL_INVALID_WORK_GROUP_SIZE"; + case -55: return "CL_INVALID_WORK_ITEM_SIZE"; + case -56: return "CL_INVALID_GLOBAL_OFFSET"; + case -57: return "CL_INVALID_EVENT_WAIT_LIST"; + case -58: return "CL_INVALID_EVENT"; + case -59: return "CL_INVALID_OPERATION"; + case -60: return "CL_INVALID_GL_OBJECT"; + case -61: return "CL_INVALID_BUFFER_SIZE"; + case -62: return "CL_INVALID_MIP_LEVEL"; + case -63: return "CL_INVALID_GLOBAL_WORK_SIZE"; + case -64: return "CL_INVALID_PROPERTY"; + case -65: return "CL_INVALID_IMAGE_DESCRIPTOR"; + case -66: return "CL_INVALID_COMPILER_OPTIONS"; + case -67: return "CL_INVALID_LINKER_OPTIONS"; + case -68: return "CL_INVALID_DEVICE_PARTITION_COUNT"; + + // extension errors + case -1000: return "CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR"; + case -1001: return "CL_PLATFORM_NOT_FOUND_KHR"; + case -1002: return "CL_INVALID_D3D10_DEVICE_KHR"; + case -1003: return "CL_INVALID_D3D10_RESOURCE_KHR"; + case -1004: return "CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR"; + case -1005: return "CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR"; + default: return "Unknown OpenCL error"; + } +} + +void CheckError(cl_int error) { + if (error != CL_SUCCESS) { + cerr << "OpenCL call failed with error " << getErrorString(error) << endl; + exit(1); + } +} + +void AddSources(cl::Program::Sources& sources, const string& file_name) { + //TODO: add file existence check + ifstream file(file_name); + string* source_code = new string(istreambuf_iterator(file), (istreambuf_iterator())); + sources.push_back(make_pair((*source_code).c_str(), source_code->length() + 1)); +} + +string ListPlatformsDevices() { + + stringstream sstream; + vector platforms; + + cl::Platform::get(&platforms); + + sstream << "Found " << platforms.size() << " platform(s):" << endl; + + for (unsigned int i = 0; i < platforms.size(); i++) + { + sstream << "\nPlatform " << i << ", " << platforms[i].getInfo() << ", version: " << platforms[i].getInfo(); + + sstream << ", vendor: " << platforms[i].getInfo() << endl; + // sstream << ", extensions: " << platforms[i].getInfo() << endl; + + vector devices; + + platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); + + sstream << "\n Found " << devices.size() << " device(s):" << endl; + + for (unsigned int j = 0; j < devices.size(); j++) + { + sstream << "\n Device " << j << ", " << devices[j].getInfo() << ", version: " << devices[j].getInfo(); + + sstream << ", vendor: " << devices[j].getInfo(); + cl_device_type device_type = devices[j].getInfo(); + sstream << ", type: "; + if (device_type & CL_DEVICE_TYPE_DEFAULT) + sstream << "DEFAULT "; + if (device_type & CL_DEVICE_TYPE_CPU) + sstream << "CPU "; + if (device_type & CL_DEVICE_TYPE_GPU) + sstream << "GPU "; + if (device_type & CL_DEVICE_TYPE_ACCELERATOR) + sstream << "ACCELERATOR "; + sstream << ", compute units: " << devices[j].getInfo(); + sstream << ", clock freq [MHz]: " << devices[j].getInfo(); + sstream << ", max memory size [B]: " << devices[j].getInfo(); + sstream << ", max allocatable memory [B]: " << devices[j].getInfo(); + + sstream << endl; + } + } + sstream << "----------------------------------------------------------------" << endl; + + return sstream.str(); +} + +cl::Context GetContext(int platform_id, int device_id) { + vector platforms; + + cl::Platform::get(&platforms); + + for (unsigned int i = 0; i < platforms.size(); i++) + { + vector devices; + platforms[i].getDevices((cl_device_type)CL_DEVICE_TYPE_ALL, &devices); + + for (unsigned int j = 0; j < devices.size(); j++) + { + if ((i == platform_id) && (j == device_id)) + return cl::Context({ devices[j] }); + } + } + + return cl::Context(); +} + +enum ProfilingResolution { + PROF_NS = 1, + PROF_US = 1000, + PROF_MS = 1000000, + PROF_S = 1000000000 +}; + +string GetFullProfilingInfo(const cl::Event& evnt, ProfilingResolution resolution) { + stringstream sstream; + + sstream << "Queued " << (evnt.getProfilingInfo() - evnt.getProfilingInfo()) / resolution; + sstream << ", Submitted " << (evnt.getProfilingInfo() - evnt.getProfilingInfo()) / resolution; + sstream << ", Executed " << (evnt.getProfilingInfo() - evnt.getProfilingInfo()) / resolution; + sstream << ", Total " << (evnt.getProfilingInfo() - evnt.getProfilingInfo()) / resolution; + + switch (resolution) { + case PROF_NS: sstream << " [ns]"; break; + case PROF_US: sstream << " [us]"; break; + case PROF_MS: sstream << " [ms]"; break; + case PROF_S: sstream << " [s]"; break; + default: break; + } + + return sstream.str(); +} \ No newline at end of file diff --git a/Tutorial 2/desktop.ini b/Tutorial 2/desktop.ini new file mode 100644 index 0000000..dce88a3 --- /dev/null +++ b/Tutorial 2/desktop.ini @@ -0,0 +1,5 @@ +[.ShellClassInfo] +InfoTip=This folder is shared online. +IconFile=C:\Program Files\Google\Drive\googledrivesync.exe +IconIndex=16 + \ No newline at end of file diff --git a/Tutorial 2/my_kernels_2.cl b/Tutorial 2/my_kernels_2.cl new file mode 100644 index 0000000..ffeb687 --- /dev/null +++ b/Tutorial 2/my_kernels_2.cl @@ -0,0 +1,48 @@ +//a simple OpenCL kernel which copies all pixels from A to B +__kernel void identity(__global const uchar4* A, __global uchar4* B) { + int id = get_global_id(0); + B[id] = A[id]; +} + +//simple 2D identity kernel +__kernel void identity2D(__global const uchar4* A, __global uchar4* B) { + int x = get_global_id(0); + int y = get_global_id(1); + int width = get_global_size(0); //width in pixels + int id = x + y*width; + B[id] = A[id]; +} + +//2D averaging filter +__kernel void avg_filter2D(__global const uchar4* A, __global uchar4* B) { + int x = get_global_id(0); + int y = get_global_id(1); + int width = get_global_size(0); //width in pixels + int id = x + y*width; + + uint4 result = (uint4)(0);//zero all 4 components + + for (int i = (x-1); i <= (x+1); i++) + for (int j = (y-1); j <= (y+1); j++) + result += convert_uint4(A[i + j*width]); //convert pixel values to uint4 so the sum can be larger than 255 + + result /= (uint4)(9); //normalise all components (the result is a sum of 9 values) + + B[id] = convert_uchar4(result); //convert back to uchar4 +} + +//2D 3x3 convolution kernel +__kernel void convolution2D(__global const uchar4* A, __global uchar4* B, __constant float* mask) { + int x = get_global_id(0); + int y = get_global_id(1); + int width = get_global_size(0); //width in pixels + int id = x + y*width; + + float4 result = (float4)(0.0f,0.0f,0.0f,0.0f);//zero all 4 components + + for (int i = (x-1); i <= (x+1); i++) + for (int j = (y-1); j <= (y+1); j++) + result += convert_float4(A[i + j*width])*(float4)(mask[i-(x-1) + (j-(y-1))*3]);//convert pixel and mask values to float4 + + B[id] = convert_uchar4(result); //convert back to uchar4 +} diff --git a/Tutorial 2/test.png b/Tutorial 2/test.png new file mode 100644 index 0000000000000000000000000000000000000000..52fe60512cd4f5c4eae4684f67e5fe382686430e GIT binary patch literal 528863 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∨fH;tCtYIrcE1`w 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
C=KQTE?)G?US54cQ> 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 z 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%0A71ms+0f@%7gaW@j=V>_Y_PCL6FpV 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
-vnphBJoB%A&10it$kk9%&5htHs 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
Mr>|}sWz54d8IK<9ZmI2+f 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�Sj+(=DPTuh`zy@Y*l+f^cAzS8vt4YyT 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 literal 0 HcmV?d00001 diff --git a/Tutorial 2/test_large.png b/Tutorial 2/test_large.png new file mode 100644 index 0000000000000000000000000000000000000000..90d5e825ba03ab425c60cea7e06ee64c86407587 GIT binary patch literal 2016411 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
  • O?B20p0nV)tKC1r3iPYeQ`sPNPf94UY=Du=zj! z{Bn7D|0&IM-$xI<*NnDeslgZAZHs9){lKfT7M&`Oc2iST-K>^X^LRhIRJ-nhL#1pSb=#ANRmb>ZQ6S zw$R;$;o50&x=7UnJzxK7ZUD_rx-2L4@{pUZSP+LPb3^IhBv^6(r@tzAc0is^yK(8F* zloNo^FHR^7ST4pop-f;L^S->JAa(NV1zXa^g^$F0F{~kuu{H#87dw*YBBMl#GzXm0 z37tG9-?@`jcrjJX;#F7UE4Sb*tzOSTr|#BQuM?o0HPmo6Wg62UYO{VNxn9m$q#*` zZhBBJY}#pqBZqi2(zE~rew&j-?{FsUWNBs5J<;nTP|CNRQyjSD>yYJVcoJ6c#UHrY zX_bP2%*1kF7jDyVCvo^yH-|P&o{s7Q0KTDr>VhdQlk3!t?0bP&nCfHn%8?Wvk`or! z+Er}`-W=5-o=zx^z+B-@UABY?dBY3mF>;RWkB`_O4QAn!QF--f=TK;#kYsR7TeJ^# zR7r829A1ZxUk4TS4t~fvF6{(S^VBVF^fyiqLu=(*9<|xfRX&4^{sq4E+V0vRake_y z4RCZa8$5K?Mual?j?(c zc?%;y+#%CYev{2NVYWQtJ#g)-$tA|MLINF2_Ci&gXh$=!v{7}}Lpz-c39Dy3X*2d> z(BuZagC|_}Yyoq2vm!7u(%HzH82=Y-jnBsBk9Lbj^m}3=sDJ7RZ98Xm4`0I8-8i`7l0in*4!w`C_)i68`~bQ02!D zkVl=RwLETmW!pozrM>Y^V%gHs{o=W;w;?(8r}!fLTu`$Cd>W(i$6oroz)D>#(x@dc-RdAJRmfAzZursL`AO7SQXYetsRIZtsJ<$kL}@;U$DDx=4?vTj9rJG zF(IX@5GZnl_awa&%-r2|2zkdpkR|jfRe2vV)+TKA+vN{G-(7r(_vfF!Odap1434Mz z-Mh>4vkza)yG7GNv8~Q73w!_grSpov{PL}ff7H!}>A?n#iv>M9n^VUVNOzx~Lh~W` z^o!`6#7VO{Th++K9>QY84WDg;v4Q;6J|2UsPckLm#lPs?;`n_oxbJfP_msFgt_PnU z?=C+*J#^87o%TIkX;WVq25Yh8>8H=#ofx!peVm_nm&FT&Z*WhS=a=`(ug{VB;pdcn zo&~6AF{C3ayU-`b-}RA5JO*N}vB$5?wIwZvIc*d;hq5UT6BaVkhb-d3)yGOx!@@$} zrIsH(*14da2DkImLaPO-$IkacyA6(i786^I-1<}f!tsIMqwn{-$Qc@6?c_{9xQi_* z(=K$VKiK7|9gt;P`~jRAV7}5HB4MXH@yLpn$_bWw)0))}nd}1dX!m?Ibq;pm82Hdm zJJj4;R#o*7@X>J6Q%@os*wL{}!e;2NFy!Z`W9v+I{{ zeTh5+m-6G57g-&VdWk z-VlMW#g!)i<9E7nnN0n&eOg&{H@#&!FU`G3FUjDadW0BS ziv#~;anJ$yE(%rWFit3Z{@82z39#}~IWl$uB5`KB6I1xzMKmzAZNa7z-J@~1PCM%Y zq6{Cec#m!akKYaQ_hN5k7#{qe^wfd* zANbX8Ri5*}jV!Gjk-Cr;2MK#hwL+pPL)%~COAEf)5`IfJj=vWUDAVDFLP|co8h{9n5iPtr#l9ONlWcj5=Sq9?en(f3-b2{B0-ofr?ymUGxrlGj$p`Pe zb*qnQ+AED8&cQJ_Khnh$AEaIAV&8FfwFfpC*lpuskMAvL z!`8nIwVTjcA2!8seduNulD03vL8g&w@fk_D#Od3;%%EPQL*C-GUR02exkhw3f$9ZP5Me6-KPp}E0RPxzR{7mq-> z1dqlKz6S5RE9uDSTt3N_?DzQYBgck7<)86m7IV6bC4tSlNEQZn_{{(BnX5qIq6*J# z+T~l_+PYARt;-HvxL~y(201WYgh~|p)z9Y#BP4ty&yIU3&0#*7c;uPIWeZL(sUQ2P zT)~xmaDs~=xuZ|Aw$k1}@6h+@9=aR%prV~!9tO`-BnaZr$s<_ z=jOq2l{Y}2VozY3&X3MmjvbsSi9U0opGDp6rgJgw0-Q|x(##3RmcOU}+ofZn*5WN1`k4hkecxhNyjb|x z55a%B{PVBANcwR3s_l}t38b*WKVM{y4@0nRL)W=Ju?y3RR`jQ>p5RZCIP25ccRxns zi`zjqi)?IS{9)TK+~AYnWpmARL{06#kwc?CXPy_9QZzO#vt!Tct8@`oLX#RS{yklO z3y$$?;WxOo0qN%^KvEcw3>NaVIo+^D^!gZkefnelW*45rw-4u}ICV0I4o>ev?A$vH zcs15o-~>GVa7Nzw1Ek?!re&ZYj1Q6X68s*!YTv(#>kYLkH$?- zd6~!&+3BxiL!7u zSits$V10-l>;%T=gy2aZ=ttD(KuroraJJJ=zoFAE76wPBN^G1jprr81f8*yhereh_ zd11}hs_lNQjau}kRSTh^)0;Qn?QRw~S4b&*`e{3C2*u3)XgBel8(?a=ro+5(-+UuH zGpsOm$8UZ9c6m(sm-x%a^lyIs;XY;F0jRo8xdTKydk)IisNx-{!^u7tHv@qV&1g7@ zah#le@8E)oQhSF)0l}gO1~wP%@=_FGzI^%83qyBGmJi2uz(pUP1o?GX@E-$3Yn;nL zdO|=OW)L5_P8Ny#emewfzT2`kI;=+qbg zCejP`cG#gOs7oeJ&`R>;{dk63Tnc_|vy%hq?L^Ak9)TsdMS%|Nr@nJx11L>yI^Kyf z5jc|Bk;4(s0)_Bq*AgCbsN;NXH{|7U8gx-zAO1@-a5_ZeEeZdsv8B{0J^UD~LQkA- z4d&QA`mHunmS~+-`+=+;X%BjlD&W{jbxStok=KE(mBmE>nQbrbmiQvq*2n&|)v+A| z&zyfugB|^itfi~1U4XDt=w8ypuzQ%zkQ9XXN zui#8>j{$X|C~<_?m{8d8%X;y<_CLBQ2iMSa4m5uZ^3a`&M0NH;>NeDOZ&dOhWMLDqYTPFdp z#h3Wx)17ua>FBfNIf^I2fAI7kEj6FrrE(?=A5#)r+);>L(8u7dp7KefT)S)N-r@mrj?<=emb(n%{DobvTq zKjlBxoAcsp&&y=puL~fNuYI)o3=G{*mGCrvMA);?_({{}+FFm~-TGE^Zx3?bhDk@} z_-Fk4vp}I6pwYI=%+g(QFS+M4yAvF*Ia)tH(k>tP^*)!^gb-%~@`d)T;jnEgAD`=g zg}I?|WXW;ce?H)qh^v$A8cGs&3lJLI`;iRu|CEMf~E4-1Hha7gpfP z2fdz)(dB8w&Vj(L-x^%TR5<9&_M#kZC{34;~8{%_dh) zeF1tdWXPRLnVTFNG>;0e&=~iqUz~plmy@RZlm(jRk|8gAq-J3g!^CyI+y$Ca%^$rs zyKojR@URP!Lkni*D?_lQ-$a@DbBTh^;FE3quwYdWQe4xQOD?%|tli~_vmL*VUkTIJ z+Q1EgV9B^U?Qz=0MH<0-L9~3*|L948!;AhgRJ%dhVoR!(|NPKh9@H<732U#?TmC~x zULe|3^%-af##}(4503zLH#|7y^0j&5e1nCn@3~;B!fKOa>u@92;WM@BZ`o9S)lSlL z?M1%{iSL}hQU$hSN{7tYgx!4Tx4nP||I|#F_vRSv>-RgvI z$T@oX@k7d^_{MUT*+qxLSg8Qb$X@$3TDZYc}EG@nHcZK6Wz##Zgp zrq28OpEXGzXa4OaIt_ex4L(^^{Q2_o^8NDXUtQ=wUS1-dmA~3R=%M{7x)>F+UF|sa z!+iDcRTVtmUFtda{cH*3d;jzrJb21H+_?PhF%0Ps>^zKwM%`zyYX6Dr$80;f`a~2s zJCym-oCpv);OVkAz5=UnS`htyXV;bwW)xXM&Zm#lrt66b778;KC{GBwg1)EC$Dck9 zKE*j+g42B3*Lmr)>ji-uKd;Y3Z&=HrO@uwmyFE|a-ISluzDW9Od0QejW}(z|^hYn^ zini~|s~#vKK|9fvg2pLrSVzq`GblkwI2;oq|fA(|2a!2|aXU0~|#A zV(_KDb%*xS*qxns^%cqQ8UkAZgEhJhA6;y#-jWW^*Z0@UQ?Gq2EPa{!W&x?Bx!$7t zZ_gg-4aHO#Kl~{+O;;J0`P{U-k81Q9KRxyBm28o<4U5*DTLI~#WuQFhbBgubr~QX#kM+L1WIPUx9qa7S!YgmtzMQljq5bl4@R?&JQr)s8y6r2x z(4!yacnE*S4%`P*{dT(ypAntv^A?%C_s@7l&)P4&zHP5<`L*()K0TGza||JH51;Da zG=~jwcTb_0dTttdgqnd^^wV!l3(S>d+gQ|jM|9s;6?}iY+=Y*a;G|LKxRUth|S_`qOD$P zVDBRdN5RnnC?VOUc^&YoupzxL_zmOD_iTADkj`M;M(FR*!XH={T`I>oYCJjo$j0Cn zw&}#*EQM1*h|C49%Ec8y&QT810NiL-^tJnZc~O{ag|v(=_?Kiju>Fy5fNFH7ou`ay;*UeJaKqACx$({ zi|BiG1aNfcSPts+Rb{s4o_~rRfE#Ca( zb8snadzG$o=*ScqEZX#L`QcAc)=)unMlX4sC?3a_RY@o6piYh;o$AO9->HMgy|^ih z2`e+6rw`~4ac|l=PO0*$pF`Vdc^&GG^N-EaZp&&<7|EgSM=5P9cjjbVcm5UM(5`%q zubqYe(1ddXxIV&Bq*Oo#paU~_rvHl1_1A~A(I=!_8{bK9`j!syTS039I({G&Bxn0Ph*;#PbdNS~u*s&!+^rH?s zQ^Ygvg?OulCpGZWMUm*KA5Azgn$J9$G@U@V9-I@zuNTVs>xEB_>btstf9$Jixaa`> z>L^+2iv+egNox;2yV^K1`9HcFy2Ts*%TE1X%5tn9Uj5V$wBFFKUQfBQ@>-hP7O~5t z`=*P-K!{@U9CYg!MK9dYp!Z7CAirgNQ_dbIQQn2|vg054oMoIK3qE`#)-+xP`L(Y@ zrsEl$@qO}l%qi`#)PA10cZ4-9KgaUz;-O=UiDz)i>z#S+QW~R2h0?{}_{T8|en)rw zd*E8@&{&@7T979!4{XDvV{9aSyY@KkIE&+ByV@Z&D)Wba2G8P>H#=-jp0Y`e-jX&+ z>Vi%DS$U_UQ(q`g`tu3;(~gBHgskQ3AK9w_7d%>^?LvnwQ8qC;aG^!Ut546_#q(I( zhb((&4|K*)EPrz-YyFl?XubSq*RPr>*ZBEcoM_y_&d!sgYkqkd7m0iay8l&GZ+$eK zqfe=4dOMI?IDTq}|2ob8vypL5C@q*Gpt$UUBfXse67xpc>z?!Z_U> zVHkIgN9jdO`O)WRvF`hKTNsQH0UK0T-j-Kq6+hUT{!x2Mz~k5e{i!o@w0?1w>z<1v zM;eRdSvoDG!l4Ewi4bC2o^9jLitV!ur&-lhn`6bWD zNsgv_5s-2^Him_tpzOu9dVNQA@WX%;_~vF3_)LbRl zP5;r>L(jbFRdFVI)4l@U)1LI1xvSjz1J@|67g`7cYa4~8lEjhfe3|TN|AX-I7}>SA zG>p`2*PZ^SokoYbu+C}v9E@b4llRM$T0{wf$^h8ElsT#IT%9;aPi%i|Xyy%V3s8aS zM>~Skqi-|c45}1;|HK}k4o{KU_y;GNzG-2;k`jy;AGYU_vd|4L)j|A-*9x&c{%_h{ z`I)~U5VO`a-`*|JS=jl0dH(uKVYFj+=f$?ZzIdefrMreWlY6^av`hNfm*9Q;`7!vS zr}UH8T=)kxX*<2*_Z{zeh>Uo(yN#ger5`*#eW|^he}D5XvA0|#KRt$*faKr($OYhMlfclE? zsDB2zM*=NozPvs3Yrro0Jr;cb$T!_xe*HDq%@**~rPENUZ-66lJD)rXn`8nSiRAcf z2X64$;dkFJ`poz=?bgu%baYmhH16dQ?)>P?br7y+J{Z_prHY*ecVzB+;h@cLCO_dR zvUfoO?(pSf4i>S@JKjD$COwb8d!sJdix83%$RzLX(^Gijd(u|?qPZC+(Zvg>*wm+Q zXB^1yTX&=;uk*lzv$E!#IuD_zADWM&A}nb*XUq_%-^u$itXxySeZGr$#=h{_U0svk zssM9b$Fb@QZu(Gf@T|}Lmg*=h*^x?!Z5y|PL+e;@oa+t(rENkNY%Vn0Ph0=s zieAW6oCsmBWjVBI>Qwfm*#vvg9Qr(Z)vaC0(BabxQ8&{?;;7pucb^sa&)8pIE9?}Q<3dp6`5cB{5|MW>jK~((u zsBI2?Y%Yb})XbTqkImI%Qf$g!Gf(-f+>oG+C?lc$f$X8dzACS|Eq#Tz>NICMRfFBX z_mu^79Q}v&wq@|p>vQ-}r(Y$u@K*kk8RJWC3e(RY*}_}blgw}EdwgafCK0%#Q^&l- z;;RKf?*sJy*O?P!tcWinM&~18-!4r%lJCC1_Uq$zMY~6!ygLAAz%+pgjj+>Cz#~A| zC@0Z2_Jk0l!cgcVj3NHL3w|lLBZDjj4F|Z0aIGKwl)8pL{Un1!I!LM{k5aY5817r| zLZ}_yQm4XcypY@ugO-6NSb8zoi|K%kA_5-zd!Z|ohwvyriOSl6e9KbZq>XHFSe@;n z3Xss52`;g~!W+JF?u()W?{Q;`Y;%Wk422jLK?&IaazKs0J7K2-7~Ej!L=b%zsuKj% z)>DpQUQC%%f8}p3_BKAd26YrPNCQs0KvL|XXhaNMaN&bf+KH*Q2xQMqr=Ce2{OELG zj{q<+4rgq(lb|7y-R7s7qd1l)lkr_YOP3=`|x0Y2a%U(O}Xrc+iG8X3Ze_Tdab z=+qW`4W!M!8O|2w+!${C8m z0Rcx|oktU$00ls~Nzl9lAvi~{(!rx}wdf@_vV?L@jRM}Ij z{a|>;Qu|jT>JGni*2em{I%t+gCuxXvddU`&}46w zQ7Qk0kIf5QVRF_7h4G9I%+Ca@?He2F1(f_0cQGnBv`l@T5`4-_I*2K-xXaZ1wU4uj z?vPD+`ALBT-d&vWzjW1yC+P<2bey`%cbCEJg!#aG4as8zj^c+;9UR4%vIpe(0=sYV z*M6de?ImBpPphP^_mc3__@vw7I%Qqwhc~p~Szh{xS?aL^wAcdsq&;=}buhS3pJMzK zwMIdV!BzMZDtB-=*LZTS?|05&%%JnRqpkgdQ&WepSae~Ev2;_dlby+L2v77XY#yE9 zrEPQ4LrWh{-7W&;oO&_e9NHvuk~MTY;(`y|-sL=a7U$}V?Zt^#AN5yw2@aur2d?c% zPjr{MZ!X#riUYs%H?S#pljMiKQl2s{nop#?f+lI@DRZ=aun|5|f5v$^dk#;=8!)L{ zdmuDDoc=cFvHcnAZuC{%v9n+b9F2btY{NzvB__+;Ne94-zm)=r< zckNNzClej3f!itLThy)Hn}gv6Pqkkhjg6Tj(BO)O%;X9t_Wz`Km98`wgueK=!H zs+YMB|D9vVRR8Sl{{FH2EwAOHylLmyLG)~1;^+cZ`VTvs@p8uezN0gKsPooxGHluv zgk=QqPIGYfF{|c*S3h)fbZku>c*0Te@lD9~OMEvCf}TPmA{Bh56~*Z1M8RE~@YxqHeUA$J3+nc;=WhZtxTLmxm)8 z8@#`KiEMoYJ$&Bf;)pF%9pmdOo>KiG`F^i~!9ls;d(x)gUdES|f3l>m$K{?fhqpV1 z?U@JBon1f7+`53(}X@w_G55obImg@ADWgBu{sb zmxrIyzf=DD`db+Pe)*%tz!cv_A9f7cVFnL*x=T(wv%%0z3q)V~73OOamq$EDH=dOB zSnu?Kz@NTjY_>S7Uwh{t<7od5zhCZtzWn<2)8)^*FJ| zy{{zOO+~I=&xQ7f?PjWEvq*2y=s(&FmHd5*?ReVf zd+hct^9t{8)Q&+DzJe?Ddi@hA`gkUvpmqjv?NQ|6&Ny+OXvFQppDz>F&J&!%-smF7 z`UrfE5BSKtEkhSCT|_c=SG_YAQAyjp(Me?NF0`Dxqci-JHR<5)jfle!{h5CRaR5T^ zUmTG)$INfgn8S4nxm+S9I({Rz<;&Q1%Hn$EXCwV6{lTeuC~IsnFv*Li55Iv8(1SjW z7F$D~zSZTM5;6Yrk9-#&VzK@;XMEXRYwo~%cRmTX4w<-lgoW)l{weu(kQ#ToQ6vZ4 zeV zjS!cA(q0Yl8)Xc9xS#bXkNJ;T_)55b?s4Alm!BTqFJGwDXrmto?k@iOr!RMx z$N1!@5YvylCX#mI*YE!JAOBN#09IMJ3`Dv;EOi{!MGzUN8=^c0R`RqFCAEY2v6>tV zVkYOQDyu)|)PgX7;}BA(y)&`m()r;78^yJulFLYv+3n#0>m31qr_D;A!4w|-W|kL+ zfmPXb)|AWZF_Vs+6m-HAT7}OM3|IKu`U@+@srMrFlyfvDZXLAY&~pM~QH;@dvXr<% zdM>;fQpy-3CzXclB2m&252eb~ztCt~EgysW%9H^WDupVUKAZ2sLxsTj@ps^ zDu49awu=MS4%7@=+mdM2$m9i?zv2w!DAPqa)L<{%9D$8q@X!U;*i9E; z&+h|n`ax?)4=t;$K%Q#&q2K(iz4hWW=MJWcaC`+1EPU#;K@Lvgs$&RJr(6{7L$)qD zETV8pvIPqwErb^*X_}N>A@TyqrN|NCMb_CP0;vS zU`M{vDzC{LRKr8@Nl*F8we7m;4PEd#`J=ZfA6^fx{FJvY*&ORr8RvQ}iyGd(jV~|OeaZ+Hjm0usr&qXNsqlVzj_!+#t7(?UWMgu;f zbP~!_WKcf*lVcWI@K#DEuGr3R@$!+dWsbGM)r0fML>I}6UGi9XoZaEa=2FCeheGRg z*M0b_Z6>szpw9=C9{vwbEdmxGUB&k!uUNf0g3w()Hk;tUm0!zz3(_Q3Gy>E6- z2FzkWn40lA;Czj-u)aT4_^{=tAA2}-gD^HdOy$@Iznz)XjxiWrqFqAB7S3I?f7ERR`%e7K^~l z;x}37%~}1F;IVbIGiv7Y;W2sm@1wc|Ou0}P%s? zUrJk8C2*nYsV;WpJ)rYp4GVssE>BPQxzM#}pufFd-cs(Uf6qaE78@)kRrA$nY$7Ky z9PE=N7Hi1I&T5B|JrYFDTrfYn_~u`p(+2mKpTAfr)8BI465MUg5TFnL%TI0ES^tjQ z^d8f-K%1h(lV+QA9$sJ8t}hP}`@N4ydN0|hE@IzbUcWzFe)-F9!TEIg`uhFy=YM{_ z{J;L&ZH(E_!U=PPv6N`PEVU$bAg;BqKnpV(Rb>pPyW>3g&w;iXZJl>wK{+E+y$D?U2voa?XUj@ zmd>IN-vQX&snu7@!mlw1eDr0v;J5gr_m|Y_u1ah~7Z#^VhaSi_Iw`5>sWhR4H$keP zC*E@+>zgMXo{kO&YVtd_Bn_^c0#e6^JUYjTUfrPak%@zbSzhU;_)2e>xbz`=rV=y_ zeU80@>Z85T<{vxN=UNj2i}vYhbjr47d`VGg zvoqDy>*AYsO49rM`qlr$`HR5?k}V`3-@)1WW%%@dM4Qpr7LQ@x7{I^;Z*_^w`R&|{ z-(hRt*j+fZaIU}Gv{ik^{`uIw0WxEwUY>Ag$KvP96JHZi*{ORDkB`O?b`ZJ&^Tpr$ z``O`l|L~r)-NxyIk>UQ~?edd%oIaRCycZWfY0eHm?XBL^qpz7$eYh|0p_%sKmw4m5 zzyJ6D_<8$U%_GL2k0GiWht{ur>*g-ArnVK%5^O&58ht^sX1A z+5(dlb(B3$+C+}pRT>ADR&9AZWX}1gG+?1&LSAGsFcSxqoe5a*5^vphjMkrg#}2rg zH@G+uomZnx-QS-D<#?v>UZAH8A8@X--3yGu-QduvNKwCt=JHx&!&d+T8|XTO>Ph_w z)rojv6EFD4(RK*j+|BbVs={qh&%osFc`6l_vz$j-nTd879_V54;2|>P5a3AF)`hzZ znhc3SF>=CCO3s`j+2&z0nRZd?{`y>f8ELaJ}o7v@^i1B9!->XJ8uJuvpxDbhT6P z(zgr2<*~e^3_oE;M$Z;xwhbJ@%6Ae4uS{fDKXAJs2x?_@G%v@;h1<~Wpq5`vRe&#* zr>zGEoXdkCu6@9ysCHNX^1Co_)1KM^JOVq&cL0*r@~tnib@!Y|0)F?r@Pjcb!-)9F z-#Ws?qnq>-aMA_}Uy-ZstG`oskJi|{!GZc-^vKsI=yUmTw5==K=-0q%lKYr?eJ>?@ z3+-vIu?ehq*PZ0S6C|a%7rpZEel5@6j2Bll#ku7yN}uk|l! zHu6*Kf*YI#s-=lwHH>Y_YFh?QUj7>pm#5VSu+eNG+8@?O-5zMj-+J({r>iWBFR&Bv z<=lS*hkcBR%PVgqyNudL{@_}!JB}p1GQ#iNvgB#or72xrPkR)$Jce%l_Tdfv9F^(d zUi_Q4@x?8Dd;C8CHtv}5J#jdu;ggS#fgAV}5510=?VoJb0@e6XRuTo!(t*##SgZSo zR&-E)$uPE3xdUv{US3k(3)UlRb(7l0*2b^2Crq88w|ZHfI5w;f1o6cW1n2N?SiSa+ zIXo$9-@rF`^<%G{3_?Kuob-_y&kn9kJX-$4wkO(i~;hX0^1KYa_b&U}zvRK^Lr&4BHkzGGtaW_&KE@FaU4<4%yyKexC$n@nXG z%(t~!WzDfX3(`AQPks(*(UkE6!~bxIkB+r=-|&MWWYGZ~aNVIuk5OoCHuWN9eS;5b zSnRi10lMa=EhH+>27IIOEyt0?Jil}A{5)RkJ(3kT0c^NTJ^nhg#wZ1kc-Gdy+ApFz zkAB|wu{XNbR>7XC^V0hCM~i#GsfdYMRPqQg+Z|oJU0yR+nH}}1ZV}*>ezcK3n%dyQ zLuEKTN8}*n|8W{^#gK|4c<*EHzQ&7JEot%U4-b#JeeJH}(JPg>HAS%?$$mAa0@pTHLz3dyN0`blB(1FTcKDzP`L)e)$Ua;qnq2 z{w;0rzx~BmkUcINoXI~+N9B{gYa1A_7{*RRTmNAzYd4w!uN`-C*oj057FymeFPAUj z(HQ-hvhMT*7ri`uvTHPH>bAfWm{}KyZ2Acu1lI1OwM{!usjW96^80-Ml*;kiUF2g+ zWZci~76^T*{W^!IuQY8tRV`9kTcC)P9xA=1Uv{((WKW#e+wl6WtIu@m^!tU8!Jk zCI0{K7@%_qAy`@vN(OiBJ>g!RoS8-WN&vP8O?p4PzPX~^akB79Yv(ZB*Su68X_fG6 zF%7y{M$Yvlks)n=i0EUCV0@?r=IMj_h<;JI`9;71wE$=y@|d=}d-@W%w`1Gm18Q5v z#fIn0@SW==%-nBm-y^xR2yCq=)*Z!q=PbX6t7Dk;HRf6KBt*DfVjqZO&8-r+lM$F9;3gENsrN6clkxZPu|Jb^>*`8^92ip z>3_lX<=*aO{PTIK@1q}guk#qM9f9dz76AJ}kI3*jG%R{{2YAFFN}p^C&UnYbXs_@_ z=IHG1@BaP&<4=^(JNwgKS7Bz-O<0|g)r?>ZGZdy$L``D`zJ`g25QY*DUy0=hHiz`? zS}EM2SDXo9CF3j0OWtRXK!}HiMo#6s$KZ%kHN1Lz(bM;`v?C66VeyVU6L)-c?4j8+ z83Qv7I5-w|oc{+tfiejIv^x(Zlh_4|*2~$ih7=rK_y~b+L*;afRwwZ6H-|&#b{S~E zIQb4zfe(%hOBHQau*nqul2@E`kbH2LbQq6Hbigftp#>)A;v!4p&bM*_-iuxF>s{D@ zY^SJP$pcrI{9ha)l7C0niFM+Z(DXSt4lo*dCbHo2*I|U;v6uw zsyXBeyXV$9d~N!pyjD2;pqXFwq>trC|M-ws9OxcB-Y%Fq7DsJykHc#pB~4mfzLsN8 z97GpY3iqKep>Rp>yAU0z)Vd55@fYfJcc&^XK_wl{HCBjsQSyfgW{p#fBkLJ;N_#|ygLBt z7pK)JUgYImoH<_8HUSQxwHlGjvJ9(Ku?gr$MU6!zp8&v=sRSS z*Rdx*mbJV(2Rgaz3*otFst@E$lODW@nn=XX$h3Am6EphLF8bB*w7k#-dh)M4_us($ z5K>^=+uyujHuM4pcA=NvOrRF;)CqIr)5)kW;K7Y8?SXJ$YYRzhlhRCj@ow07>7HZz z%(lDWf8_+jhn?{mE2{@>w)JjtIoQD3&uxEE7hkuuHm%$wi(gIE&>j2f#X{QA-BR55 zf-P0S*S-^=65n?FI1kO~n+~#|g-60@TenM``KhA2+EF%6o7e=np zk$ilyq2*P+c)^0D{w{gaP_%v`bdE?D`(mTj*&sMH=B&@_+8S1xS2IA14cpx=a7cM_^r$ z+&yGWiaoRMwQF?R_YSWDNj-AJ4(&wgBUtFhhS9XcC50S=>|U@4q?;JNg9DoZRYzF4 zmM%(5_rrHA->^+Z=?VM!~nYG@kA{8}&ipab)4+Gnrk);q`MkNP30;-rU^PGAeCX1e)v;{WvUmGwif*J6tBL{U1x}!Ay zp>3CceL6;Y>Q%R)H8*-f3qblw7td{wp&ocr;q@!KPu&RJ{+gf1kuBi<`IooL>nD%A zK3ra2XHo3ew@;Vfz6M4^-SIzmVyZ{ZvEhC-6os?}JL_u*ECiTOfKH+PN;r#}a~Kc$ z(!~6dZw^+R@3l9(qg)>pEVi?}i%~RlL(MY)v|h+pXz?5%5))DO*0kV_(vNZtW&{`n|5L zzY7@^^G_oBkF3qp=e1}0OHID~Cmnmq{{zQXq&}xF(;;2sAu`wZu(aq{UrYYgH?}X# z96(^>cKKTH$3whA>Dx7GfKf-A{1jWXo9`jE;p^da-S@A;8)JRU*lnQ<{qC$|o~dgr z;wSCQ<0qBtvigZUePjK($7k2q-PxraA2oiH|BVpwKXg9x(3i`TML!F8c=_y6Ub~o6 zHx2Q0?_;2soIhV4pJvhB0^t+ewwQNk?#H&$|L)WozAOmdhu^q@;?ZaC!_&vB6-ExP zPv~RC$>U?_%4^WToBiGW-GBUF|1^F%S#22Y2uYNy6GkysqngcK{StZDGlI?^fK!K}_g{lGNf;Ti=iZ3Xo{e5Jr&05tl-I2g_qham5CaQN|! z*1*Go?kL0u7s^(|)|kWN&=Fl68@fQ3`rrB@<>BEP;O}YZ8$iZTG#JCykwP`HIFsY8 z+q37Q8E#*iLXHu)Vj7PQEb!5Ex=0sk8bU`KwKJ5LxW*J|Lp(2U{+F(}0qf)o+84Ib z%^WizeCWE4Iq|X+g4$kQC(SWBaOEgxc_Slgqq~*2I*DM)qy_XgE|BobU)q%eE==mo zBrf`gH^p5HI02s@li$h5LU-sbx|FRAFO4fLeB}qF9R-v|R!ZB84081Arw9Kv1gxL; zrt>7pAl}JH>P+3WzljU0htbiL3)M%WCPthsti6a`T|_TH)m!+DPyd~~TR9;#h|`|w zmrt_WG98yu-0J64*$nJ6vE;-?j@r#2DsLNx_VmZ=POOt(Eun98DqQeHmwo3)&MWis zDs(b?qYG!p@Ha3EUv|S+awwxTgeyO7Mmh-X#QfA++)HQE81F=e9jU|Cf)i~=`(0$1 z-D(}iVaxf0f9J&s|N1JSx=Fq~_B=3C*M&V)op2-%tTJs=41w*UMZ&G#g!a+Idy@do zL#Om|sOSAPsd)8;%HV{dxN_dQ!CqeMu;#y)&d8(fB0Ha>y}Pq^%Ha{fEbUbMn=exM# zB4XPV{a!ek^R%+R!F`nre}V79HRCz~TgOl`JrP6Tid=1?t0N30kr7{Z>u+uKb{9CW&+c5QW>D%UI+Km zbatRqpxSGWASn!F8yA9OY&>*IYswTa%<%RRCZB8-AT;!>$v08$@7+6~*yHdvcw4<^ zdTO4EhsW}9V3uZmPLAcJ_I7xbPj=~TOYw!T4%#1MciQIUgVDd(Y!Y(>4n<|#SJV-@ z7}`EMJfXFC^aHx}PO8O!%Ny9`dE2Qr6?7JR(q%&X24|9i>f8%_3Yy>dr=<+7Pzi$2 zNqo2--7kINcD&j1@&Uxr@gWg;6hAxu22Pm#6B3=r%z`U%PgcmAab$fXT_+vk`1SdS zh|1asn7UT}^dWv9kHZt1mA7Dc+P-cfBf7`fm2iW#ot>1%Jn6OErm8hCR~9Zyqr@iVZ(TgFlG z(XX2u{Oi%C$8gh@Fr{YNFKNW!(pG+zA^eqg%0ffCZyq}_=Hfru8X)y&39>TLbB!o; zgJ9ZyZ*qpN`9R=4n;)mm&|_bHZ)Ymc4q~{}vzsf@e)0~!kfGPmvB{%-=*uklq3)45 zWIG>AgH~d@($Wv{Idd`U)#jn)9CpFt2d`eM{u)Jp{pxXB{LdGG5pSD)ex<5jw449E zKEI~U+vT^n=d?@8=`wmU4!&8qd9!HnczJz^*51=jsf>oQzRNJ>zrCk!;y6aig0K&p zXk)IaAL~dvT9ABw{@%xc=Nt6if;m8>Ub)x~RNnVPY7qyH%q#e5Wr;XBI zeeA%Fq*|c~pg-ve=gX5&P{TPui32&BfquAF%=z zzGZm7p`Cy4XVHXgpL^paZDN5V^!UjDmX2USR3}esBs*nkqp^M5<(gT;r!*!MT@JrO zvjgE=UG+@H%}c!WQpTu|RVU|6ZAzo>a?5Y#lIDtFQmYH0In)hIcj^az>5#n(>WRDD z5zeUroEs|2=#+@$Q?KmAd&ddDebdEE%7QZ&(4BnBj!r_c@(Xwn>f`gP&(I+1 z`L)lqcH&ddc!N_-gi$GW(d+7_q62LcdYwOmv0F35RAD!EdXCM_jR%Wdmh+IZ^EDIk z)ES-PTi;_>ecU(c&vvIO3!d`A#?w#ezqTJ4zO&adXF&{{9de-3$2KuolZQ z&Ii^(N&)Q_a#U_$G>>T z=u`Ce`7XYL-G}dxPP^%^76|#G@BQler*E%)66+x_7WXVhevS;*9{Q+s>fc#S<{LuS zjkRzZ{vrn-q@SOIHFunezwEV0(szIN@Bj0kD3C-k#R^9GEKtKc%X3V}i!z_$bTeUE zW75FFbgnt-e49I=jUG5PkkmG9d z|HYZe@Yc~MRsoiGcni>A0haOTo7F?o2UX(3!RQ0b=)jpV`BkRY2|XPkJXYonr%rJ! z9GINtz3oLkeWsJbiGls~y>cnjiQ!d$aba-N8#aFBfw%>ov?#~v-1lo7y|h+IO zgMK~m@ISRa!qOs-pdNc#+T-|UB5n{!A~t7%MS1A350jb1$DR()2_yaB=Db#%y*ml# z@cASC%@aCsa~`39PD3hJ5|a-O>`eN%+R9WsIodayHN4BW<-h(u9MYHk4n(1s(tsv@ z`TzqVNgaB0?eT@mnR>kdOTFb;Ir?yRcYwA}XkL$aL%fW*4R+_W9yXJ|xIXHP?QY(! zegwM1o5!olXJEREsybC)Uii$}1hM&nF+n2t=w`w#{?wefBd}!JzFiv5V2+F?_nk-_ zgkXeQdC(qyqjUVGto|SYzQbCMMBq(%eRHB{iSTslJJ%Pb!qS2pPHFy1ebm=K_U<}< zQa1WYS#XpO1`0UUiYHOE4PM%&ce7Hjuy82PxiSTYZY(A<4fJovgsYD@{B2lVeS8G& z{CYOIKX5UP@}*1*yQ7TO>QC6o#uZ-<`kF~uZ28DIlVXQj`s6Gs49$vn;=#c_$R$ky z`Mbgf-|YMeKPu*^zUksd#`asdz=cQcFyLjNxC9fZ_Q&#;NPyS?To&eGTb#nwi-c?> z(MgZ53gm%h7gNu%<0~CN=%we~O-iOfhnkv&8MwW$+mKQ_4A4uRR!Z1*aIOvH5N`P; zNAHYAZZs4*hVOIMhRIy|!lvPLzUubS-uBq`6}J9u-Ffsc_MeHBur@E;+L17Ev_ga| z!67UzX8~<+z?Yu9pD7<~xf{I(3Hej)#W)Q$tcdhh%td8G+w>`~Zs>C!8lv7xz< zDa?O11ZEfdS5CX1rXM6-d(bBJD6!G8`xNHFSe?<4uyVo4mY0vVU7|by-=11g@&|w9 zSeZ909=yYg*G@{+X?o5xrcOC%X}j#?*7t$Up}7#(rv>s3-*5yM3&%@X6Sm#aQ5AN( zcs}NmV{49EnFV<&=`&s2IWm}(e-8avNy@{^i*vTUEJ-0lnW32s>Icxa=6b)Gh1LtRX3{>ZU1CaW~%<#Igj9_ZvtyE(dL zO&2~`5@#pApxP&HEM(=v%g#D7dZe_xWnME2ScA`Ft%VuZ26s&@Wg8Mj`e$MS4u3yYA`kwAoEM>oL{9_PZ| zwb^U?2;V|yc9Yp{%MPK!&uj45VK(y&HmSg3)%)e=$H)4|yT{Lcf&D|$zIN$jCj25j zeEa@V+7O`D zq)phph4`zze71qadGxK_+XtajNxHJoVQ4BqH~)-5y%tWp*@HM!8MZa_oIB$@n}Ab)sns{Brn zrw$fdzvI#HT${$a^5DXTu<+Ao9D~PM6`?BQPKYZ%VauhteYj6i!{AH=gE=ffF23oT zBKbS#|J`r{ho5?s{J{eUIo*)3=w$BK{NwwFmjUiMe!9Q%F^qxJCoF*Zigm|8!ljPK zm4m8v$Wa}ro1dq6Twm$VUB}4J_1}&y(~hy>oad%%d~axd)4$SLbU8O4bpu}r?hgCn z$@K&|V!Il|!dS{~kPd+EEc4}UI6`I`s)q^_F*4?*<)*|?ZF zqcKCfw@0Ra<&2$a^w4%=B4!=k+ff)#lleeQGjPrp9z!wlKmPnBKFrR*=rV0$L65rh zrRq2GeD^qTGWE%7EXL@@!T0il3H8E7a6YnCO2W^#X`grcu8*K=d2|*&6X=`nyZ)e| zw5#Lq|HHfkunhuIJOrzpG6xBSXicX?*k{H+-ghw$Ur;V^AW00q)~CEM-BQ_;zx5c_ z<_UEGS~Lo+u~uC{nS&z`;{X?4U3@_YI#y90x>?kKkt_`_$Eq^x@QVwnlj$V!7|HO< zP(S2BuNvCqHPFXMRh|QHA*IGB9)<4~^;VV#xC4R6gw+H39h5tvAzyImbcL1XgPMeyb{zniW8cXkA(oB0Ms@29}(+k;07WsCf3|~X*Dqlc`-UkPZmrV<3i93Jr z(W0qq7DO(%@j=wU!6^?1;>DZ8PC4oAGXhO7|7h&RXgjp>B=(rJgB_`B5+y%%lY!(F z)^T`%OWw#kFx6vIlZI_}b&!1q1$=h0nKBnI{R(JsEgo=7PhQ(NG+Pej;9a;4?m0d>y2Zjjvfc5eg5=`sn4l?=nNc~%BehO&Xm2=Rq5ant4*sYdHBeW zqm{pXZ`x<%R}QxQM=ZXhi`)lyd4ThT)%UdT@aNdDG)g~!cy)m-paC{0a>itQ<)PIH zLh{Z!cKTTI+qaSo&ic4RPvA$T;b_^(SH7@#Ro?TFS4hd6)lcXJAh}Wu25xdxcZWay zli>PgANLAe+o?Fh7x>cTFOp8~w8z+U2jC%B+{JMQM>yQgY#lh;0V2o2xjI!}`Ql&g~2e1UZsl)EjT)fJZ4o>6g_@0&} ze9#9ourR|t6f&iM8{ZGMd?hrVb8*)P2vSEM3FR|q_Tn*sxmgf>rmjaJ`tFiI7{jj% zVi-~9(1C+I-gN?*cx5S%AF_2Ka)R`&jO$;uDD)%m@_f=c*B>T-OBTlY_jNky4EioE z$>x)48-uS0xEzxnAIIlOlW*|~d&cX??m|+%L<6^S@3HW=ZS7bdH*euL+~&1T@;csz z_wJ|(Y44OOcH)q0>nT6D&=vQ7KELweN<(d`6rv?j7rc2=4NCc}($G+*@^ELXEE*UaoTT zPk8&_CKewY!@u02J+fT=nLG|Q_CafH3*o@7oXgYV=xb+&J`Fm>o}M+%CTA?N*ml&&M4MDK7Y%4^QX~?9_+1 zk3sfgDk8h^Ksz$eqkU{+`U_+s5%ZY2ay1>fmd8*kZf%GcJj!3b25$JRbbO!_8$1hg zU^lc*e)Yx4?*}=OUmV37da*^SC}i?RHkHS}3ct74!8^g&l4Q!juOCPoy3h)}`mXx3 z(eLMXY5WgQf;M@xOGw@P8o?->H-*&$LvopeW9n&Ra`4T=cL*Ms(Tx$tZW51Vc0LvUU0kLG zN>_OBD7?CCSY0qVvuS>Y4EmxATy)97#`t0W%q9{Ge0X&MtFiBM5ljxdVm?3RLN_?P z{JuM1BF|&w{rs4^F;O`CHD8NCxu$!(kFSVr_X0b09v@Th!PjC_hrZLsuaVbgz1MGv zzkR;Eh98T9-aF{sa&IrcU7j8v`vqc$ueaU@))F3{>7yNeUmYEp>jk$q@xp)kudjAI zSx`@pdHr_z8d?@U?C$I9oT3k36>jTCaEq|@SCM5F1T*@i+y@o@@be!pUw-=I<(J=H zVl#Z+_~T&jqH8bib!+~ye*YnQ)H2HEnm2`QH*>pat!+Pc|IzoLVaILv)ala~7zuJV z(mAPA3j5XQ^uvC{C9wS6*po3Q)lNDTYBv`3y1P1f`pH>*f6EbCwcE78+q;jvJVs~H zi-jP5HFa6xxAs^5XmAU)TZ=+`SXd?I(mf#Mg?MXsANk=cq`fy&H*X)Iue6Oe8yI>S z|ML6LaWixj=|lbKOZc@Obp;Pzb z)Jewha{3&7#x|$Dm9Yc%=<=KR zZ~>!!;CsUX55|z3tLN1JmPTyg}wG8MJew!X>7%g+EnV=O?Nml^eQOygPRW6 zfZLw}oWKx~8Uj_=$;14X4VM!ZZiBS)aMcTx&vl#(ElLO+Av}ic z6Aykirt_i88N?vM59d8p=)y$1lZxhGE+;9x)j4rK`-sBo694c{TxX$M)j2X^7yoe} zwUbDO4m>;HjZA?pPU*A}S=#}z!a1Zp0>1$-LUr5DJ-oET;=B2ygW{FYoZu2QXw_|9 z;Q<-r+WaNX5c-Z-b& zcl4tUz)WQrQu{6qYhfIzw-*!Ycd@v%hUfZGR;ej$#1MhpE&e;R$S&Te%F7Xorn+OnZVj>MZo7o%WzZRW1&;40j~Umi3>^w=9L z`ehC>HGkozGO*%hFTLBHbL}d>?iR~$eZ?(3+q{Wbe-I?)H~7(cxL!~m&XwhOi!Uh; ziLcKo1h&{ge&C$>;z`;HM`|b<8RQyQ+El}&(MLs0xC2DgFbte z<9}%+Q9e)Dcy-8zkUR1@JHXt^EKZl~nct#gylg0+8BnV$zhvxV$Z+%kM=x+BVNsJ^ zR&NIep0-zDCQN_D&-egXiYZ4zNU%{p6HVE*Z8(zQ5PC)<=yuoO$TyEKxwtpx75Aw- z94DR=nL197cYDQ*CB> zhA%<<;MuTvHY_|{L+1bV?tzo$Uxc<-U zwzfC8$HrQD@t=5k&LP)9k6>$atpbiDlg97lrJc4e{o#|eSctAVzKN@+zb8Jl@a6cR zos!c&<_yZ9&-^Mp)Gzl!YhXL!x4)yf2X5ut11>gv`q z#rFSx4Yl}&o^qje(2fjv8~fo;B9l5`dchJjoed_+kEedRYh=MwaKab)01nRJOG>+@ zLiK|tyRF{(`_Rv{0|w^et@;l>3xR!NCdkOuN(t@1fvMh;p79aI!TIfFZl+ew)(Kpg z?HsQ5r>^!+Ne@8UacrYT7~Qpc+mrqAbMd$8LE1v&cX*HTUULEFrX*V$xyD}VdqdM= z?0X+Ojvn$u^PQ~F~HugiJFKsxqHr!em!EBvdy13oGjW)j7au|9a*~wvn$sEZ=csg0?M<0pvK~E34NKU*L%MWSU z)SVaj<5eFB4Z06ccaM+VWmB6jV{q#0d|lEZW&z;s_4)Gh{Bn7DeZRcCykB15J(g~f z;nU?=6GqN&Z!cx@%j4bUZ~p2Jm#@G6*3AX)-%?-S_RMC+)KI9LF1TkADjWreca!}Z z+&H95yZ_pzkvo@TfelRB&BC55L^^zY{L+PRq3VrJ?aYrhGA>^(KmFn7E?9p3>MOi> z*4AlH3UAxN6Eb{`$9vn?+~V!31a#uxX989{#{QE2UP<8rp;&^ zFSxq`qYKxG-{yoU_GUHZeML9Wm`M*!62hsjaL#?6t`Feq$Ql!Zqz>*BcycwL3Ti^gVsvh7-#K z+M4~~LRCB6JkE{3`tbYjbG;t}>*L*lvncqG8nfuxn(c=K=%Qqz`sWKd5+gSqTaZUT z9H&paNf#pF%Yt*)7rIyp>F9+d@9Do?bPo&oGf%Yhw{qz4=_72~^=;dXPmAo2Pi{iY z0{&yJ*+A$!578A1r%#%pv}h`D!4rD}UBHsPOGu`hJX{HwskqU!RlU>yrNL z15Is8Q!5sf1uxK%?AV zlt7jIOaTg8u-JgejgX4XQ5_z>Od3Req~OBhc*cfRGq}Yaq0^- zy8I~1-OcUn2I>tQW6{*C4Ss1T0~(`4tF=Qf4cm!Z%A9ALcW^~r{ZI$v3$Hq=7rnBr zDj~@G9*qE^&Cq5`{xtY|CuZRboxmM#qwCPK@R~f2>1z0ON|hs#V5}bMcuOkubGWA&yS)htP=!ZSrfYjG1gH5p-xgxC0I!g^&$i@WRMa5(%76^cFd1n=N)N z)g_CJ_(=V+!{jE9qiT8n>36$GDGbeM06g6!8+XCd2}K8ObmSiSR`<)JRNIV$OM8)> zT>v-7sqq9>W1%T?Q8(IL`7ATD=%7 zF7!=i#1gb!`oi!Pc4BMl`gwH0Ab^5CG`L%bk&Q31JjE!XS}4{*T0d2 z3Kkz6V&lsZrq0CqoxmO%GYJox^s926e{woG4vdL(`x;~k?GuR`%-LNB^@xx5 z2J{9`aI!C46&;(QLjx$7feSH}!m~t>#UYJVL|4w$4c(!;j|sr4&nS<-Lsz_{*i8w- zmh+VLqD$Usuf|j8Oc(Ok-@oyvkxyRnCTv^wD}FcinxDAGjkL+N-GI|;cz4kwj=%c7 z9Mz+?iTumcEZ)R_bs{B)jgGzz%3xJTqsXdw{*E1_-QkKZh1;=97@qWHdKj4Q5{ey0 zn&cU8lBrEoJ{QPg;`E`hsnp}w6Yg@cHRH33asH6rsUr2lb0n+G>d`aax+rt!12&UC zW7YJ-4V{>T5o3!6?2RY#r;NSQTPhWIh#fp1JPOVZI%zxUFXW)tPQd7$9v`Z&8E*z2 zhPDUYoILi_vYe?LAGO7*V%mqk;p%QwM{v#y!N-2~3>O;3i;2*3-hA>EHit2N<*H;k z)5A>6%(t2==inQ=@|!tOs?cX*=3n&Mxk<{scczdfH8j!suz7ujJx{+;R=D8n8J4RZ zm8+zuJ^9PdUlOO6Z3{Z-S9Zg@yiQVelw4fb|HT%+Wu8{~!h#EC_AlK9nCKZ_q1ZFt z<~+O!z26rZ`q)l>DN5Ps_jCL=|JMbov<*9iD_P}7FafV=r7yo{qFmYd>NI@&P8^>0 zH_`6RLPnsU)640{D=)r;(JOr$_m&V##XpITGTqxb2y1k^wF`0 z(Pwzlt`R*s^@qJFZ|qIoxA@XXoVs+F^ZjEkR3c8UQaqmJUB2k`BI3J6p6Kkec^n@{ zvs!h|Z=bq_Ez{`Glc&$Kd3@&Q!kxX3FM>zgtuA15=I4)~3Dah14;A*&wkIQfCEvK! z`II&Y%>5^iai%Yq&MZL6r(ZkCs*l=IF5WWVR^GAdw1*49@w>yjaBDwzzQP((Y^}SU zgZo=>*!9Kteal5$ca*gM@Jlp2a+c4qLyn}P#yW`TCA4TXGTeLQ(+;OdW(Nt|3}R5_ zTVr~>bH*QYo*5e*QB3WuzA^khh7V)uw0r7?xVEH`c?UEd9=YW!Us>&(YAf5dC7u9) zK!3kJ65ZIzGW-Th;AY%(0WXfvgp#M{3frvuiA(xKlrg&|hhBk$t&fD0=Yh?;{@}CW z9vJW-+m~ts>|atm{3WkDr=n6j{GPf~Cb*(TyuZh0-(GWMthJWLRan4l-N@42s>%0+ zS0AhMHR1f8`Gjwu`yRbNKR;i7dw#tm&-r@_g^o6`R%O>aCFOF)Sdb>Zgp4H-BWq2{@9QFmrvotB7nBd+=K6m zJ*SJs54qOVqhrqu4cD<5WpElFqm{Iw_X>t@@61CdFg~upUaXs1neaYNO`^Y%-L5uv z<8kQ69CqII3(>LBStQgVC|868Pw}C~o_u&fo2Q>Bs!h1&=O4oZU&V^NXpWx@Tpvvg zPj_aQ~KOleFFG4=tKlKq$a~F?trkB^YEpECw4=&n03!|}zW8d@f2sRd+ z^dJAteEXrNl&>E;WLrmQUuj1E@SVTg*O%2!(@xTSmB1e;ZMSUBgz2|nBTMROzP;&O z>Tu&fywYU*Y6|)DHW~QXD=#B2oYk)m&T|9?zT$#3G&`3`dh<8VZ&;k)!1Y+r+Xegj zm{eHY!^7jqTCZo4G@H8ee4IYcWzjSp66; z=$c1F7bJ{->X?vxV%10HXRg8i)1?#U16t~NCBdgp=^OD&eg9`@uuVIZ@#N}{&FJZ$ z;*0ciKGY-7;VLxgK_4mNyz2#d8s19sY5M9~Fxjr&R1Zxt7p9C1`idIZZ!wS|H~6={Oip?) zzExmgU<()A>bJdO6Zv09F?osWqxq4qPDH&j0~Ni+Bn|#4kX@?k#2C9MStBfXbyWx? zlQ9!muu9K4e>(n5jNpx=$=9K*c6Y~P!G_-VZnNhQrc*fRb1rU^KO=eZlm;ErXZVKq z<2@@drab4uowFc5HpG_1;o=ks3E(;z4_+4#OW#p` z@*6uqy)AR}1)iM26@KP|J#C|H!OGckTqc3%Yo6@`~%gZrHTL;xjh}@T zKX5{ly|_FKr*Fsh&`81BCUy&#UsZbW^CNuH)Fpd(u8odOtR1ObTSyd6`5$_o0Pa?v z+e5pp9)-o>BO|xCz#=jWz9Fj<9l9u)$SzOdXRysVc?6q$e$m)4Wx~Mz&vh*<>}}ro znQ1FFN1X#TaHT1y;9`l0qu2cSp8Sj&Lx0**pKRN-9*om&Y(xL-L{08FFK_Gj(C+y( zFZnHoRHBHMB=avIGge9S3FsZW&)+WiRmA*?BS-L0eWhi^D81zLqY7x1 z)!>Q#s?XF_P6RhE=3;zg6so_Y*XukXu+q1O`RTNJsrBdr!{J|`2e5Xs^ZC_Vg0JPH zQQMS}?2cK-F4bxFfuHsZ?*L&}p1-bNq)e$rsXir88_9v^)*2k*@b!_)&?Q^vRe|k| zf%J>YmWxbE8(cX$pTcK+Y-r&EF8^l-9?24J`K|$lH9RD*GLb<%<((h!Dd9ufdB&1r z&A*xN(HG5``}p-eY|*g|8l%fu5P~0k{Zw$7^OhI$j>$s>VjY(FTZ_#iB2tMS+GuV{Gp3-^H92@ z`(#AF{JXL9F7iY+_05HH&1Ny6yPXm&X2W|QJikTOXYU?N*}Fd1w$TQ4eW8~z#$(T^ zQESS)#JL`Vj_Eq`YqRMej+7^F+sAwjj77>W6xOEMDBm92Ku#IkY>(ogihkBL_ zCp{*B_Ry(nQ*A!-;Sp@Q;pgdxtr)k57do;Dz`M+h6G(S_Y+s4zh@v{jEnEpP)yhOI zvK$jvTYO~3uXh-;$Jqoh^{4LWXKnZ!-KEWrn@V0mhd+4WC;u>b@eKxW^7kvZvV_hL z^p%4{y4PCeA*Yl7KMQ@@Cdev|aioNjFOQD!1BdM7J?1FAWRYoN`9G%wd1Og@q`$FQ zG70p0vG|8dDpc0SlYP$B0b58~H4tr!NffU0<3Q|&Dg5nmn&l$^JcpA|xcn?;(ycUk z`5foYBP@cYpRp!_FK#zm>S~hl=`C>GkTW&|!K@P`KY3))UtJ^S-Q5PaX=97=v%O8B>X{2_iIuo3cW zWO0qnziBfzPNqxxV;^ZwAJI=!8vismzp5>8$-4`__xQsZ3$zpcTZ~V!_NmWJj&V!> zg>MQkcYpg&9s$-NgHm211k|X27z)L9phy~n+o`~65N8dx0jyAFZqAs###-kiEY2D& zyznQK&P`B0?=%=CbgOsHdoghh* zT3|%v-Im?>O&6=z41iFcAhX0}U?pL9ar*Krd*tM%8^vpW zj||n=L56!gw+YVSh6ao>RBVIPvBN_w~X-accIf+>6IVBs!=hh$g`Kd!F{Zw1nHV zItJZ+1XX(RfcyQSR!(g<^k?ULa)a-dHjbwcDGQ(Uarj(Z!Yv&f2ki#yhSHI zb*BEje<%fAj3`+9b8vPc0Ic?pTopSoDQmw8a9gFw$NvfZw|6cv#QKi>*xfC^fy#lG zYNcg(Yv0V#@uJNH&*-RiLAQR3+fSv{6*j(UVfC{0&`Yh@7(J!k5-&V|6VTz|-~pF- z>7=Hjh$s=#>{%-qJ7l$`N{73wAmbdx9McbYS-WgoS@PkkOj33II zm5}~HQ;aSLpH@2R<+N=yHZ}CrAKV8?&b6ZxCV%Dtf<=WcMio!!ryqA`TL~=xr@qyN z>LzD4edQBO`bp1Y=NeqkZ5$e7IxJ9zFIL3UiU2z@k#4 z|J89pLP>qc8D3Jipu|dkvMPJ^sg3g+-f|9DJtx@m8av25)9#MZbNod3?c;XwPk4o< zIF+gwxS0>ZuRX>#M;~yY@}ZZ1(QXMlm)<}R-SHMUcF|qDXgfL&95{3<*UFrK)j>;> z9i6moi(}?CuB(eTX}k#4>8aE<>;>TP+P3f|)5y|3LRLz%u!J<2B-w2J*TJy|p6ud8 ziZ87UL0|tMeP}nGG8ch?EZxhCpln-#*u1U|0a&(Mq z-VGYQlvVCoFjY3TGUv{-f{8wTIe6eyC_$9?V#^nF3oZkU(U?>oN|cVYgP3;CB<7umU3ex99t7SSxc zxhS^7?|=OFKVN?N<+(fmeC<}>dboRvqKtV=P#GvUOjF%wm%yL_>ON~ zeEh3_^V8)i*I6;f%Rm3~Zmr9;rX4uImPm8Cn#yIGJmbueqjQ-`AnP+Xd*E zNDG&IUI5tg?DhscZMOb@;-TMh{`d~m_oxjm_Z(j@s=Qi%Js0v%YC%v-U}+XOTAc*ry%R zrsjWU_q*_geIy0(J(FwnHRs0ZqlM9PDsNfswsFPz=g;*!+VCBmvuHkX621ms7u=vc zFs*z-C|urB#|9MuyFsK2cWr~vz=taE{wv2dq<;N|bBX0R^rd+N`cefSQTEQ zkTd%7I!RUsyoPG=&}fGAzu zN1C>GkF01%N1ZICQjInBW-!IS6FK1t-yCz|rHR)Ap9qT4W7IN|}Fm zFD1W^aQTI~*(nDy{HP!1djVVS(;-ZxQ{Utf&z&5gml`G*-Z9rU3Ijv;?a-E=&M_li zY4w6dX62NJR&xFcR0 z(&i~Qq3nQ`@*b%+ats}L8k8>NJ)E5o6Os}7teal^)UD31`0`7|(uN@AI2@VqdsCL+ z|I|M+C3IIG9yN0Ha3*r)bLy#coA!TNFf}-bI0UpkLIgKBM;C8fj~qFJPkMP+-WIPi z2fc1yVOn$IA9cw_kGO`jAXCm>k`@d$0bKWdjaFpb@w z58rz%o=x9|O@k5dML`Azre#1f00Eiur8hinXuTsF{w6wf8_RiZbp~5U5-F~4%vpUG z4WRg=_K(1ICuZxXFUw1)KRWUV=s4I(X(qqFoV(Zsgbd;aCkMX(DFzEa*7RN_gdoQ2uBPsfTgMHF2zIySKG(9Ur=PG~F=7XJssFPo9Bl6%QQsx}0aH>2i zn|j)a4M7tma0EK|Kl&CPS6*RnPAC(Ge|jAFjSJwWZAUIN=^xF7oyq>d4oLV;4K%w5 z5ncjTSo+jo>FYyxAG8;T`qF|t<+tz)D~K!meY>VWX>g6avRw4K8y{-ZHv)6ToijM` zwYSO}8E~XdDy0s%8+`_>3(v{l5Dtq=xVG~N%kS{?(MFq|I9b{EN1a=IYp+uto>)$t zqC4Zez#BEIc$x2m5}s|#nuUqQ>6}RYx3B)rh3z4nK;FKBC3yRYZRSr8$)k^62xm?+ zU!A2B_=fM1XZ(V?Kky%3GQ?crOsXxQj(rSmbsQ7MmdbD9F049-3LgtEK4JJ68Ra1o zod%b2V|Pnfgo4dYu%rSzbGccBfj9i-+}6)UzkUe!wxm9K4Jleal$*m{{k02;^pUy2 zLO<#af1L-VUKb7Vq%3qtUt<$OOrmuLX4-9!Tl?Dd!sLH#h3vQk_U>JMZwFJxeISQs*o>^O9AuFZ@b z_?v~6mz4m>2Nxh9bFRlCq$Kp*0lAQ156ElVCZ72+SIXb_v^N(a;qRf8z)41a*_f!MR4uU)&DSy?zv(Sj=u~p?` zrxB(%l7_Ye&CHoS`uh;M67P<-*d|N1EAKTpE%x+L?O=KCZn%_{iST%I{gQV4&5pm< z@R;=DYcHt>L=%>qHUf(Xi{P}C@xEQzVC++0jd1qYy^3&brZ~pjn zdHwo)`Q_J_%U^!`)<^JOEzpHYJOBEqUvyz{AW~dj!gIg)n}+omAzr;s>gDA%JiDGs zI|u&x>(?kdb%W2xFmk=$4%9E2=i0iDmk0mTPd`WJkC(3z`}I9?_tC)ky6F4eYh!9a z(RbVbAvTO=j@W9StTH!FPW2qUj^AXPdq(!Hh1#*YKRDTO=hn2Rfx?5Y$GT|tEr56L zMAV363O{Vk4pR%P=H_83_<}dq=H0Cx$F$=wXs7K{_SLE<#IX?{Nr6R@p1!BOj0a%R ze@i`m)N8u-V@VaRh750blvH2-?*e(JYznJ`q{k1cH?|MyZNF*&H^9{qJmA4LcF{Tqd5i>v@y<}=g4cssNPp3nqxULO_?CF)QlDNfk8VhG z3|HnzA7c}#JL7Zk{_Q{gud@R%3VIAxUqZqKmIRZ|z6_E$$0=G@3p@E8#7>X{XG3r@)d7x# zWa$wer)M-D{_ByvzF)+)%Un?UOuV}vacwD&@(gr(=c#9sGEQRBbVxotyjg6Mm&0JM z^Y&stjY~yc{Ijq~T{YA>KlbzOR&p8D=>9$zqbAk(-n*XTm?Kx}h<0L{A0t$*9Y@c& zO5OmaEGc*b<7a%kNyG#%XI7jEIn%^#b1u``9+!!7)27W)ij` z?x8q)alpI6-6L^A(n&jE_~0#*?t3HIBp$RQ9zwVm>~MiPe3WhyU_0T!IT-@qwsMxM zLjEd$&TNF8qOs{*;v;$l#%kr`KZ^Q8Q0o!=>5?JEqJaR9bEV9wVw9DeThLmZ~^^K#y z(PQaI1bl2H)2d^y12;Iy*9Dj8vw8w>Xz24|!%zD0@x8?@FJ&$~-Rvn3@UVAvgKOc0 zrRgj*9@aZ*{}>!WheS@F4Rtk6UV4uASa%4$1c0*mj$(N)q{oFUQ+ zoFn_&S@aWc`QhE!@q_FK$DUgU&xyCa*om^hS_pu976c|N9sv)bfT7VzLU}ID1Jgd0 zzKQF|h-Y->PW>!?2*aBgnVM6+;lty=4h>;tQGag;`JoETMd^mNSu)EEMJKfW}x&+b$xZsX4CZ)kDawalCs=WV#cC7`=B%VXkO zzV!wN{x*(Z_C@Af-lvW^O?jw{gG;==CUCln3r_G$_f~#{#5aHYzz1zSCmlW9#r;6=wg z3*C+%fm2?2v|q5OKlpF| zFLR!_0#+hE?68&8anYzCb-}wJL#wQ%&3e6&fTQw&MEL7mTEbs05<7k;4To^m;R(`H z2FAD>9fr5wC`fQ#O?Docx}7tf{-pkf!G+$9o|hKA*kRaN`_h~-i&Wilo^s6=iP}~c z_g0qsT*!7IA+;=Ux=&$R$u()GnIuUG%f_=H>OZb~}qeuA_qU zk(`m+<8;Qj==jUim*m~2tpgPvT)TM$_x1h$^6OvTFTecd_449fiLtwI9Xx3l`iMMf zvCB_ScbB*4-`eiK{Q1}La0w4!)85n4flA+{oA7Dz&aTdHZx*`PXwI*0BFv(og#+)s z>*5%TXWy;oon4uyW-PytzWbV*=*2tOd=1y`ps&xD%j-9^a{U*4e(^H-pLPhHj%m?R z`*VV^&HUI-M0)RI^|do?&X$9r&24eS9BJx3bPUP$n7NI`?C3+#zaEl5HWHYe$1eD~ zWWDd>;`(;<6Z^Z@=FxA6wY`16pzrl&H))i(ncBbWN_gy;oIV#`(+{~bZL(tmouq;K z?oS&mQYE+%$IH~)03JKHVR@I2SNiCjpIt-AXZe4^4pw6@b9aN9y14s?|KorC)7!alO0l8}4FF#Lg<~UR2M7=~o)9z6xZ_&}l;ASX`8Ya* zjs}3W7wI|6n_XSW%P+|*Q|MOCq{{^?U2RU;qj`w0OBw4P82HR=%~|@wCgVBSp>B3 z2fyv)zL+CE7Z+%vm-DG#-N=WX!!3UF$Zp5XTT0S#ywgO*{B1jJeU4|pzyrpQZcQZX z+;76_bT1Ty;;7uC|8dMF9aF9hel}7&Km1eX>SL;N@H(cp3>P`px!l^8V6skTJjiPw z)b|LH{AA`Yah>Y~RnfV{v+?bBz_lA5w*7#@)!vc%b&6!HHB4IyaOsa%er|A=w;(Ux zlEUYdi%p-+WaRKSlTUQv**uT}TS50En>`mn^6DSTvkR=LC#}sEMHfSYWAFS|h7MNa z>{a+tpRHD0%g5lIcJbpA`qkZ&zhx7|q5Y_ z@XC2^Hn22E(u>*?YH#&VsiSUY5xzKoux}%bq;RkFN z)sPPn>D4>g>qFs7StlD1Bz~(q@{Moc8{thn6PKBg87pUyrziE)S)aBr%EuQDzjz%U zoVVUwXkei4RJF4K!Q^j$8aNpEI{gBl!|UQ)-pBSLlOuIzC-=y-Fxs!WaXxs2(oHCs zzL=j2{@GOx&)`^JGxgQugU07WF)(;t9SvS*X>9;T`SRpEadhC9p8RA*mcY7j0>Lh0 zbtRUgDHmf?`~%+MYv>Eh*VuOIg`eWM;+l4Ad2kHx&Mx@Q`~>dmeRRJ#guxyD10#PP z0kg<47jMO_{qx&}DR;eVk8-h*U&opwP%)>VxO4vCYxJ``C>QwkEq5L|;Ea2G7Rw>VLxZ+vuT;E~_sFafMJd#V2{QcpW>fG2;c6PaVbE|SNW!}Y;CURNfn(AQe4EVG|Q5`sk_%-d94--KxDEqnml4uQ9Gilf?vc5!nL3=JRYGpSym8oG8FzDBtNlDJPX|*gug}vsHc^-`oHX!v)=*;4J>qd}@kzDvo zxBLv<4SWgTN^o`Y`C2^fMiP{xqbnpx@a8Qk@5K!Y1yI6myt z!`)nvZsyxmYKu1q(H#wKjZ>b+xl;@pdAM!eb6^6e# zsvjWz&`Z+nw@^*Co<31Nny0-!a0rD7o_S)z&Howml(&p;V^f!T*W4WAgM_vly9n%K z36rAP9jt=R=fJ*h*beg9wb-f|T@{Xf?%u~c9D{i~lI zFF*hMCA1!ETk7EM;r{XRiNDHt+V|_FuNV&BzujM6zCB!?J$9FV)!l%>I+`J4Xu58x zfARQkEaKa1cd9vjOhZ2t=tCO|_;b_T3bP%YOz>q2Y31v1GFLrKHx4@pc$DrztN7iby44dz@Tx3wLTdds(@O$jL zKDTm?MDSjZlQ;8W!sYM>Zw~loJkpLS1~DMjCpEP!Iog?hjXxS31Y(;$B;yG{VuDwM za_RIZKXxxyUsnGdg7Jizv|2*zrOo;t+Yr!R1ua0z(m{f~^~-1Smw%yYzx3f*Y)xT+ zd*hkklx)4|I%R$QU7f=~Wh+Dc7&}7$NeF_>y48N_Oe^=h&O1*BGra*hpgL)?y8zRgy_0!HgY5qRNBqJnm@GUr!8$^uTuf$7aqmiZV5DRL9lvf$Yi5WiX8ewXo=U(g4Y5J{Rgo5Gq{)xj65#q?*GKzNkJoc2Pqs;RP)`^h&=$n;>oOzStp0amR~i)n zo$#T(^MgNGr#$*eVP#ENeQa3#Ld#I9%^E88+0ctV+Ft|97gVP3?6-EUKTasc%Cr-5 zmQ&kNim}9;s>MczZ*}Klb;?&~zGmFVfr6{s-}CGLknQ9@zm?%O46O;|-*#VH5ya&g zSaDQ-f2SWlKwFP3W6Wvdt()KW6JgtK={5i0Tt3j)zR}akdsR2^?nL)uXh2%$Ukgj~ zN+)6QZyG+jRaJ8FWEaEA@ zrFq4lux+r%E$=J$mgQe3+!G(Zg!V;FH$mRwV3{DgTQ{LQvcj`p)5*T~2n}0?5T2xv z?e2uugYVW>Cf&RF$7`?wd z%tc>dOYhWo?)$C^OBWLs|H`mknG_m_YCyFXn1;qU)C>Bq~g31^UwO`?rV7FVEjDzrDO)o>Tt)?n`Hq(OfvOxaOMYE&hox-!6Z6{B-%pfA=?+ z*XNgucM1CVh(}mEe~&DF49k;Qb`Fk--uG+3X_e}-UmguK ze<*Ex!h7)8tvFwpM=QE{@MYoPqK}O0os-z<7^G|*A2aUe9R2Q13+>aJHtaq6vvbRW z6rOt|ZllHBSpwCz?7=bl!5F~WK@NVxIQ2$$el~jZQOVg6W(J@xyDUdJXd+nPEv)SD zkh0$Rjo!S|v7I|X|LH5P@C8pPq-{!T_>PAe8$5N;nZ9t62~hvbFmT&%CP>d2->%2q zfbHXxNfSXi_*O~6muzb@ScttYsIs0DEDBn*f9EUJ4{UF=Bb%G0zP zG^LlayU3*-BTj9$ZCL$*L;MKc3Mqy@VRdHQ*s$`kVPUGUJANkV;Qsbm|BXaR+r9gq z{(03`f_5RISC6bdVIu$7aZ-%w^GnOowAgNZcT*VUK5?5geLTW}h2Vk1wXqv2JP%|~ z@ma}kTbn+zDU9E_#gaNcP_p*iwpA^@k#4-p^zLu}6NEKiQ0|-k7SKfHfeTDl-5i4pG81>cNw|Jqs9icl#|K6i&E6FHGqqPH~+$s*`jV4ax(TQT<$T zqwDKR6lxciNxk>O%pLQ=Ex-+yTx5ZyI0FlW!fkKw#dP8-mxhiTyfqkg(WCf)Jw$di z_wE6T)6vJM3e-Th{14sYM-Oz)^L)F7zWd9|%S+(M6?}14eQ9x8+WQk&n%%zehnwn$ zY@Hw_EZd`haPDxyP!{iqyrO+7>(%DoA z=;*0brhZ{#ba>|#3~KXU7Zd53NYN3UiT4HB83A`POop~mLUH3)66y#_yLJxJH{NZd z)xI-ea)_gYA`4Vyiq{y~Sr9RXHv9!U5^N~l&~g?=ufun=lDel1Oi=c&+B8M@O}q30 zXJ~%lcL6l|@dzfA?zC`d#SYdlvUS3qJUINu@{@D)-Q6qlS7%A_a36!j2mdCDaEQ;u zc66tfxpZ+3rTJW{}URa9`*`GHN{ z!|(EKOEsAMmEWD9&uL_w_`o;!nm2LIyQJseDPNw37FOXvCs~sxrS8dVVS-7Qayk^8 zm5)|w?BFiVf~B;4 zB}Dx76~pV`7RE*ojs)>dZ+u}K!qzPfoLkRG^$y~6a{R#Jygl=~y#Spi=>dPgzG#vN zj(o}Q#0Fq+!k{kMN1J#g%Ll)E2u{N@Udb|64_622q>Jgm6i5AG+5?{{yS?b;yX6m0 z$vbS&MIrPVzog4UGV3QI$bBws-rk-Adv?r+-iHpgq`Ue0sff(QOgfTqf;p0MeZ}Rebe(zaux^h9$fodzKrRj=8awdCy+z6~~mL;cook8cmW#dL9)!GHb`cb*^Y!lohzu zgOi;{?f1sRgQN2XxW%E8?*!`T$2^c(eoC*ywlW;|r#-_~7YWeYdV%<4;UThUBUs_+ zoTq1cKtFz`{vqYj?>%dQCor8iq<&mbX-y_M)~+W`-nErmo2kEtPY5nIqYD#;-Dt+A zr)WA}ow~Q7{Ysw=<7c+bK6?A3X9cGSV`8Y;!cJ$z{^dX1s~+u--T&*$f_mws(Hwy!tMI5)k{ zf`~atpES`oLyzyFJCFE<1g^UX)P=d^yR7fH?Z$l4-o35`tEt-U=<@wra@7mZ-_l;b zg33OZI`?2Y>acTVTukAWTGxr;+VH8;-S)encpUO?yXu`VD`XRK~fAZ{XB#VPwTcaU)LV1e6(Pkd= z?<>9J<1vR6?#%~X%JGx>zp*`(3tQdi7(0la9RII;%JeA?skT33 zZrk4cBlWF^bUwg{;sA`#Xy{C_mROk#z>vmi1}=R#{OAsWl8zwce*fl0zC!Tf zB>6fQr!s-@7GrQls00J9i_j{;k?b}$BM2XH7hMqPMDo^>kQgX6w;_^#H`t~eu9ce5MvTc40LC18LiJp|BRoGBtbRFo}1Np zAMTTHl4}duLuoaI}^S9JUoc!Z&-x4;bU7y0u&Ocf*^zGbJQt29|twZGyweb^r*@ za8c6jSCR2sCL{RlqMquh=W#4{Qn=7Sw{io>(Y8$;QgY>`n#LWy#7gTw0++Vb{t%7+ z)PYm;r)@&xdIv1ORtJ~z$_P4{t(Wxpm_SBUc@OCm znW*SrUR;b5v|PRmk2Zl}YCum9l>yts*qfw8*d`=i_P z9sdLO=g;vMf#a8qKg*wSXT}5V&tCAQ6RI=(PJIV@^m96HI)QY3gtj{Y&!&9Z*2S?d z=JgV*CxPzgu^PTc+a<0I%l}{>{o=W)&`+7X@bdQB>GkkT^ziH$J0^4NDn}>zVXayX z9{$)xTyK&@=4klnbYy1W{dg6@&<^v}133cGaV2nmKV0mQq3KK#_?dW1{3W9>L@*ZZ z_)tm7oPzR;u6aRZqgTQ!tG?6^EIqh`y0(o6)Ey>)-Q^Ve`cW?i5j|n}8(y{zEWQiU z!;AJ5M^fEA=Ct+qczbszHbtSuw)rJ8E{^u+6DGY2Ua6mSoe4Ur%WuzPA9N9(@S8Z{ zj7j)Wm&-0o=sFFe9O56cS^OG*h8MDv4-abtfM|N`uk*IlxxTX}#oBNCY;7p{!~c(g z?gV9EHb}2-or^cc!=po*kJC5Cmaf&K8#6yD;L}FNDeRctJ{flIn#_cum&`|&)l+pr1&E_`vFi^*waJim}6tgje@-yK^B9K{(BO~YVrQJs-YdiT%{W7A7lBOeiKDLxT*72Xvy;1@*`f`S={hGX) z$5t;y4qPgQ>%axpSWs^1UVEgC;BwI>=$0L8#W9sIG^YJq6qxP+%F(BQ#Nn!ZNv9nw zQg1&jp9PB!qn!5Z_Wjfk?94YKW6-!&QeB2tZ8R{B@x{R#e0Sd;f-C3ngfxCSt_KIb zbr(&nAHptJL}%vWK@nVdqvHrdKJ1>eM^wSzfAb-Xd2F+~%TXH*%q*sBuQFTNI))W^ z(vduEVGcDuU~VXpg&&lcIGE&?_7D9yN8gthRs8bH+vP96W&BLv{u;kxvF>{p z*nO?n<^rPXXF+OlFg9j!%?`oYSvO;27xrG`Su(Hql#B8|{_)}RvoZDg_44}S+AVr? zO~sFpD?Gz(vFB4FG@*au{gpjnJT~E-dgjWt13PeJ>qwEayd^{X_eOmLVq4z5|DJaI z{OPA$_xorG9jBeX&BD2{wY%`NdFp>AY>@GPNk!Gp+BfmEdv|n3-*U-31#9Zh29%p&;cChz+N( zEc1nL7R>p_`od5T-|UCq?ECa$lkDp%XHFi~#boD2M;C1`MtOoY7LO4dS8aZaM$k%QEV2mg&gX>fbX1+t@gRg4SMqKr^EJxG zCTzpCgVc(G!vSaLrDm0VfUbCismsVFD03{%#=|?B9nXWWgH$_L1_jCsO^a%++aE1Z z)bLYGH*}R9^)$>RKY4Lpy@*YyF6DzQOll=Eor4pf!K{rC4`T9x=QS+HOzH!WL)psJ zLHFSIqak!=eSP8vAUdSQ>LMMbW~EqevStD`Itf@YoZ_ClcyaQ6&}XB75>KyHR$7U7 z0#dplhG%hs&WkJmtlZ;Ysl_fx=|bHAmIe{?zwzP#cS7wGY)@l*O)^ap1@I$NM7UX< zrnL4LI_Y$s%q6WOjlB#7dM!s+b83MR#yS7EMUhLPIlreo2=oRI~@SdJ*bl>t<6*S&@Zl>CpC1FTb|H0 ziD@4>xZvIk-3?Gh%f%(M+%NgQIta20l{aDKmOBeigL``7nzHX%}_7d+kgB zYPXIAleeLX$D!}ogsBlO3IXi0KXl;i&Vdz6N<70cufp6XX)TrFeJHD#)Gv>v1j-z9wp1ZT~DThe;j%56-JjhZt-CXF!<0rMC+T;>BH%(aW`eUHSS* zI~P7ddh6ew^A|mRz{(SDaSEfUvemNMPR`oJJBlm>NPmRkqoKT7gg2L%eCOq319JQT zy$Kyxk&RBZq;hf(-^-iy=w=ootS2GyQZryqGRRt4Tn+XUSNn&w@2muTUGH*t@+VbfTt#A3X!ayrAg z$JUv}`XiHmnaZ>KYGk~HZ$O8RQ%2wBOnpnh(UH*p9Qs09CAiTFY;Xr#u0QyQY3GjN z0T*xmLu=_4WByfVEvn=_D^E`i>0=v_0X}%TF4qIal|h|q7ozg-l4)rT%+{Ge7aQ2# z_K(^c9iR02?9~CDm0_)7P44C1S7QxK$&eS00v9f{Lu^?+!OT?woWtjgpYRV(^RA2~ ziQ_}?8X*@+^CU&^CjaxjzO6iSvEUg!hEM)5_|}#!ptd*XTze?3*AN=L_g!XSj(lvl zH#=GfKXe~m1|R3p%g#hC;>{ds`YZf}>G{T|geLiBUYmM_pSJP-w^@{Co2i>N>q0t1 zZ&_xZX{Rm>>2CwT~9Uq6>D}`Q=pab((wHfBfUmg|TzxHCM#He0{t8`r-o}=5RsqDg84(*bY2; z@!^ed71()%w|bWUJiBrDf{t^E*?r{rlnd%F4|kU@fpg8O)b1pUlJ-f!TbV^MN3X$S zEPagvv}4ap-QA^HymUkvSns`<*N*XZLdvdn_0 zr=t2rUYvwTn=lNyuun#Er*EZkx_DtHp#?gNd~ILtUjLDF8syH(gIb@`AHoaUVpFvn zOvBoApwb>~nd;em+r#Xk7d|aSy`0w~AYa>x47GdslV)e|ZdhGxznsic2p^-9nO{5W zr+iM@FY#cn?t5+Gm-@w#KdncXk2!tQSe1F?Su)}y&%`GTZ(z~i`C`*K=22O&(hFUZ z?E@n6H;9vOd}cU`0Mmz6W;2PWV%sZmG@740ES=;z@=yDxPp?ny9-m}4BtGE-51tOY z*HHK%FO2$?Y5Y>#`G&6GwDGH&5*knb{rl(3TllIpVas`V(JJbW-i6{9iEi18vA{Hu zsk`Ca8~oh}WPv{Ubdx6d7(>oj^FHfPgJ1q(2KA<+_nhVG4`iMjsEJTo4Yd1mXLDKl zLF;`xH|ZjXpAONRRA{EY;2opt86R~%eW*Mg!nNnfN7njSJ~{bUTZ_NF{~p@pPJxYK zcrwO#9h~_XFXCwe9?_T-Y0KBlfZRA?Gr^hTIdxLI{?B3~pJQgE52rZs@DtqX$*^Ea z_AVmkTKv2NkO1YcVT>HnoaSE;O;lSF(zy+50150j5OpjNs6P&+oj#1s*S3bGI$w&G zR3UgM2p`iKFsf*nDt{^Ogf?-`6a3X^<>j~UzteHMxD~i!JB)*Cy+b-kHFJ5eqiA+Y z$qpZNU{+FdCP=~P$x*XP4g*SlqE#{6F$fKyp1V!e0c#AU?tn-fZFh6}Ua2_VSzy6t zxhZA?_=}bA8c<*Z(D#-3!JRW++RL%%F3AYvU(32HiBYt@(msJ3J)__)a zE5+2&o3fREvKI&LawaI6N!Z!<$}q#{PI`9m!QvxsiaXX?*|!wmZHfJM{YkhTR2 zI}Uk*`lo#pMqc{G=ixbZ;q-6$>v7Nz4=-kzUht}tsmIhOz3aDu|2vCK>vmt zd93QKcP%1I;7p*@vg6D7YU81!UY&5|5B})BkI3{xEBQmeG$z6JcEE(Dcy<26&s1{e zIHx{peJ^fi9q^zzyfn%E~B9%|=_gC~DkA}5us8(e^3_`$n619lPbwy=lK)qD zm=^QUaA-R+l08QZ*?IhkUvR;bba#R@(C@swd@e9YNBDu)4hn1^@`t}^m*wR{o>J|v z6>==DjXT;m*waDW)(qdl785qUB(FEp($DcKCvd{jD;__6uk{l@Y>Ylm0-4e{N%c~$ zeOf1Z(tKO#gH7g+ZBx@RJY3rf-srdVi9zoiM=JBNaK7gJewN5&JjOi(61ybZ4o;TG=W%mxDM#ze+Y zX-vh_G~Nrf!rju4rq3p?WlOto`RhV(VI@EKuq&IVnYq!_2jPsD#g$e7-S{5Dz$Zv= z9Kj&7pwtvxIa(SS3Z~sd8CL0zKf$35g-s8Bcs_X0Cad!+{e;^%+yn2N{QN~41vhYT z1mB@EBFwlcv28Z`RUTcn4I+Q^Ibd)_w$!zAMwy*PU3ySA{cM8AA4d;`r=QYuKK5C* z4t;;I;fMGPI~&}spB+hbKk`p~xah`t+nuD-Ki0m5E#F{Hpx-whSxfY)_q#q?tkiCo zKBC(BHC?dLz9x(UTiM^MNM58ws%+l(J{t`_S9il)otKVDV@)ruo>OW4Vv)5MnRyRGHr%~E}RC?$NjqS z8NRCL*Z{runj~<_U3!oUy}sTe@?Py2KfSOebNnALa#t=kWyhLV5TzJF2Y7ZSPd(Xo znx*nSX#y`=cK0}UH(|~3T)2LHe(NibzJ5(AvU()8&6ROH(3r<)arqzz89hFmp(lj!~b{B zqgi<5lS3yJ%uBmrA@ti8c+`1|!QLdYr>!uQFm@JRs|!`;EXeP5eiPHDOCvDmj@EH3 z?m<;_jYN;3@l`yy^p;uuS~MV zX}7@1_q!?$o9DcTK*wZ6>w5D*S%Gp6zL{T)eAkdT5H=Yl%(;v$-@&c@>k|g{TjpqR z)jrE7ymOxDj-x3otl-`L9D(LOx3-^?OlJ+b-5BYTa0j~&k(guhEV zzJuSN`N{CXw@L?V{lIJb8vV%Qo4qS?WDcJkQsSLEB-*)yMfA|OBN8oV#^1LX8xK-% z^cnV2Pes}%1A6GvpTBM^jLfAi*=x-7*^noWas2LY|LMQ{X%vqM=Li`@que;ycuw(Y zyqJ|8e=RG9gIwJZ=Oh!y0!I#~2^xOGd+QGkRRbBvYXug*HI7x5(1vX+VTyZlbh3~L z$QG3d%BNoWp^jwd+`BqS*!@za0%Ul}H@Mc3CEtLmu8Pt?tKiK~0jJsRvf+KV%+~O7 zF3#33SCJ6FzegwBxu;6({6w+nMZFK`nIqdpxb*s9zC z1f7(j-LX4ozrI_sIt8EqfknSIlK9%D^M*|?t=3UY*&%IwZ)Xd>@_F(b(9fxpN14H) z?Y_UyBOXxQwyVXc@_Iee!f+@4A${s4P1iFibwLxS6j(Ueg&j!VRk;If<-$|`Rkr1i z4i1h-0Fa;WC|&uW zjz5q!hrTm9n*fIiI$6L@TQBbdS#Eh(=UXP`^`AkbkAZJ{9k>!H8;2jY`2J*q+k6Lb z7eAfQr2g;q*c&tDGkJm8elT$H@o`)`5g2@dJv5hg$H@H6xRP-w4Zb^kjCsDS*2k4T zXL5e{n0jcCBe)Xp4T0boQ4h@Fw~ui61t%)LP{_v}7Ors48;1U*Spog;Bl%!AX!lUe z0p`QD)-G>(*-$;?xauHfxA6@Nw=}`%9}#u*oizOXzz6K`ju$*Bm;Zab@{zO{FkvQIpz4&~K{$hX2@6Z|@>$4wY#PHCv{#R!A7F~v3a_x@s z8^5&m=R6lU6UPJJ0cAML94@a?f2$dP0)m_je z3?aPWZ|3L+U*KNLOC?Vq;Df%+S5WEbgq36XJZ;3Kl#%iMh|v22Z=u;vlk zntbpq|Lt>$k8h%@#OpZVkDkm4GRFd2I5&IZ%X?!;c%Pg2$qD}XFos1Ibdmbxl?2s| ze!7eNDlrH{}8O_p|b8$qTiW^=mdO4%po4etgott=?7kNo5FBMW5mf?u zjqf@C=bVg(oV9UnHafCi!fqN;u6=rzY!(`$$6mLkoF;_&?X<_ty#{vt`_>yAl_{a^ zmi&;f+@jLp>E@evee!#>9R_qsO_7*x*r3kH2p3xz9M`aLbffGXZMvKftHm>6bdj9q zIhN1y-DE0Q`+vDRIHWMftl1(Z*J6|xKjU;;Y2n!FEwt%Bq{DTnnX?@C4COZebFsLPku z0~HnsOQu+C{J~xPsr3zEbfav1^T`Y!{A}u`g2m6W_jmvPKmAELqci9bP{A~Gm`sCM z=rNh8Y9qXFkj%71!w?Xo<48K84E#)tLL^NK0kO2uU9Zn|-Sor}SnPLbQ6MWX*g-9m? z8Y`H)J1((K-~-DLzP$!V_`~yF7!4056_H0}bVA<_$=BcyBh{lj(UlYS#J3GPacvAw zQ|1upZZFKbD@3+x2gWh_)v2_v6>yGpz7Dqd1bXPZQ5sh-5`|x~s0%sv?`(O;H`${P zaxTm)cF9j?PMiqvY>-ZA?^<;+H8|DlV4+@e)aR6x$}c5lr8y$v8I9(nrC}3xLMCk4 z?!wRpD0J{U?O2)c#LF-+f8|>%$Vx^4ot&2@nLGxd@;Xrtfk^PRA0#nb??)GKlhwP% z;5ZCSUS<*1ak7EZK^aIWFUjoP!19CU6dKTO+poGzS=;@<6t>l--smdv$UwWZkga_9 zS$uGbS08?XxqC>S7D=3p3#0v)?gmaa8Bq&gg@1P_!mSLUMxC+8Xlj33LkiSc$}|QZdm>8VWJ_d%wS=x z-jh}HP6V9~yBU3nR|n+GPx(w-f+6*8>EM6s75?NWBeF)j@-#{E#t;424$V(`^A^_z z_0cVEdUBSRgHLh{ZSAOjNQd5zWy;D^3P`iEE|2gDO}AW%y^LOzJ8wvpYnutm-%Lui zb$Njc&4GmzZtyAnz?VW}P%i{d7&*u%F=@x()}N*yZvNtJoy2G1bHbGA%Yl~;obhw( z(?|VB!sdBTRZ^)F+u;`q4_A0J-jr2(`k)VhWu-J}lc3ZA!(V~M*MW6oY`=!t_6tJ0 zBU%>N(!1*M)X5ot2U$UTY`6Qar zF|uFs3lHG84TQ>Z=;2YNX~Peh_6%Ql-E-?$&U=*I-e zpO9p2>-xpq!U>TfJgD1=Yclb)p}3QGtE*G-O5btY?gRUwJ38v7n^f%1{N$C-z`%XQ zdu*;B;z;yUKQ8hi=ajEZ<6GL+7UD8@MGMW_n$#CxQ&PLjwR-X_-wy6PY8&7u=H1$oZA

    D_6l#&O>lK!Os?p}qt4p9AZMXOp7P$^0VcYY2UmHq;D>Nnp<4$% z6}wWOjjH>|)RcXXq7O&vS~OMHv56Cap&7m^=hTH_24?o^Pi$zL68z=xV?6YHe73NG zS#4A5p032ffZ-L~qSd`Rn8`k5!&~sM3EVk1DV!KF@vaH%KhPUL|KMenujKe2&*ALE zge*Btt&r4u!0Nb+fZ$v3jt4iMWGS1$mYDGOd`S2MyY|w8Q-2m@5-)TxXh%lzrpjm@ z`NZp~LnkIt_7L=Ha8FW2R`JGGkmt`MbmLWl6(6J>MlSoqi$AIPK{Wib0UfubdF4H4 zyt%O1Rw^E3<5%l~P+1O*&o7O~aTgX+W?x;Do1_>*lgt0s)o-ccgiL(4e1O}JrO$jU zzSQ^F2yVr@D5A2_M;C-*4=~D?jjH3M`eAU$JIRd)j*?Vg3}~e(J#?qOJ-FU!R61q9 zaBvOXoq#8lC-OOPX6rSQKNQ2Ec~Ol z+IV4r?WuZDo*=_dEXvSUZSoJa)n9qiIwm6q+I5k6mq{IUtLHu8dGz`*{>4tO3+C8% zqN5(1Cw~84@AT?;@k*zveAZQCPBQ1I9CE=x5Bw=@xQlL49m9a3hU{wJdX_0;*&pHlv_MIS0;@N6JG~E9>ice-F2+H6BE!= zDRqZG{xmVJaR%Ou`!z2;R1srX1&e*K&ZXX9v@zBd`W$5FvsG^I|P=b%f zl5dBW*C}aNpp@esKcU;le^a-QZC5YTPO59P#1IgtJ2rDjSG!K6(X+W{_Pby49SeEj zE!I>A+30fKwK%pL1j!HlETA7d&k$GXR70uAnLEvbGanvav6H{r&4OUxktasw-2Cj^ zhZ>S^&i3}|#*T|FkUeI8cYKZf+M&1{9726KLpDewU-0uH-BDp$K#cGm{&!Bw_moBF z?0|>J)vr>A(T){ToK{)C?-O~6iG1uP^TO@@IeZ?sZ}(^0AHQa2L_`%uC{1X!W&Mfn_&8HmRRS zgW5LvjsGmpcD&A3?~mKXsIQ#&2p-rYO zSr#A+it?|vme)b8gZy!DG+pIb9qU}77#MZ~==@_qOPBI#JSS^#`KxB@|c77EdK#WsQU1%-sP1PAR~9Y`@01743>i9-ebsDBg=V$t^U&jr^U#= zyHGxwIrdd6V^rHo$iGV7++SZw~6eIkzb3e0&#xKk_+F9dyVTKD8qQYVEZ0M;{)A zkjTInU@48};yH4_vv11>X7b@6dJc}Z&sL^8{vdwHOQ!PFgS~WdsEnK27b7(d&elm% z|L^vGKMk`*^HgFKOwdNSwzWvGQKGoRlZe)(n3+`Gji@^4AzT`txgN9lje|cet|* zhz+!4^%0W5m(%RAJPX7bL^OsB-oH;H8*~#IDs_H4e9n0^`tZ3!fNYCT79JfApY@UK zZPgh*g27;lh>dNrnWO~VXFIeWn%S2BeIy8iD=_Hx9i`EE=~ghh5p$<59PqCG|1-|v zUmM@)!Cl)AT#J)jIMJ3nVMu~+Z16$j|6fwx_LAcnNRIsci4Mv`2`zmFMwS6$i~Qp^ z@zwOq&0VFj~pYPwCXswsr&i7TYi1-o<-l_omYOOt{CJ1|Mp2H z8@7eV9aAo1 z&Nyx0)PNh`($cT<&-x)B-m2LFX+F3Gv*Jg6o20{HFCggiwHvUK7Tou*<$U6NGaEBL z+r8zhPWGSk%VYRz`=H33ujNBaCjJ>LwM*My5>R8x;&)!Ycl_CUF(&7={a#0sr}l{t zTj(HFT-ng;cq(Nb*En{PtrMY4bcf8MIlgo1H`IeK6{hd~Y@ccGQsv)e^#qKU-Cvl4 zWX#+5Z3lw|j@oUHL-oU*H;YR0Rx&m!)!-|Qz}1pvDLq)j=#F*2fxi2$*Gd_=0@!uIIwH=;ie48;8ds-B7aW`iw zR(I0|*abg)R9*$?`O>wR=}w&T)w+?burp>h7IV&bh+JD6xFxxO{W%$j>WeE&@eSPA z&o**-;-ib78Y~`LC;ODCYwU_n=earW7%lrQ?j*U;Ob;LOVK}t+iGHE#Q*`1uGX8AUv-Ah!1s>*Pk8C-UEf4cAo#XHGnqrw#e~K4k`*2|RT!V)0t+j3-XJ4D z8Lf~0ldo0qtBxze15MRG$f};oN%-$wu;A1QO?n0ACJVf4@8Mwcp~HSShcgAYxOExK z+JUexc3KRYx#;+7$w%g*FMT>n94A}HErCt!Z=0s7Fju>>y&6PoTsTxW`lDb8hU^W5%sljPZRGeixzE_xddg${G^E|xI7)Q0>jlIk(j1A^S ziTCZY^Cci|s9@Ldo%}S5?e@kz?#Z^a-rY;XI{Qon6Q0#SnVulfl{dMuwAK zz^W}HA)BTA=IT9j%eU>@*W2yegR$A6{k_M^d5}9WEr_yK&~{Eozv7bxSvSgal9t9_K!;Jm>yZF<; z{da%<9C$c3;5lCVZ28Txy#{5n7UWJjzvFDc8i2s&w>rkpIBl!pPOg+A%=2bvf$3x= z`_G-d)J8T3hdWie04HGYGB!BD7udNHluc#e#fH9)b$FFK z{7*eua~F(`iMx|!0w}0~@xf*Vaur=~8^M;|m}PkhJPNScl?s^Uo=GfAa;P^XM`4(*t?2tOdhkNJVxUi_XA*clA1=8{&{yyB@~pRj-`u8N z;Jt${{ZsNnKf2Lxcfn7m6;MSvNGR!z5+S*#%7dCxfRXgVLdkevYBZzVao{;;s4? zkM#*AIdHJ;lCkknUf@Tr;i)O*y`WRvV@=1EnVjTsTs$dlHCOd$OWGF}v-NRBaX0uD z`VTs6P4dy}iAIvVxzY|cevDjnXkf1nvfxd0+K*R;!AtgaJi5+7FFu5)@=Vv1M#uU? zdYSrguDxyA13i53R=b6piLrZ~_Ef{`;13)>PL6hHu~m`}jYlz-E#O%89+*#if8pC$ z8Xj$cN@gGYr9oSvzQd+4d674~OYR~ls%$HzYBMyI(b4XY|Cow1Fxg6@nY+xp>}!0r z7E8LItxwqba#tJJE`;GB^zg6$JhaZ#U3|c~IB~wVMKk}HZZUHzv#oP!*=yBbej(ov zAJc!vj&x=`k-Yjwgf89$S$b^y+WA|l<;gFdkp5hjlfP@%Eh>K*n76M@etl|U@4_YZ zYWR+d&J4o!RgD4i&`U~<)*}O-TY2?AN99Q$t$z{!DQ)@y$E6qFs4hO)Yo(DVcv3VI zyYcekD7!<;}V@8lDqQ-5eiz;+d<}zl>e=P71X~unQKlv8Nj7#_gPU~O(GA^?0)+a1XjJ1i-0n;&zve3{r z&eP$@%3;T3pj^ym2bFrEwPQ5!Gya3m7|y%7jN7gPufMu6F0?Qvf8VD4p~t_2Kk{`^ z34JylrL=6yBWw6*f0v(_%2!-ChT}S8)h@QhUtD0Onej96E>b2xKd#u^L!++K*e%P^()>qg{QXb-+MCe#5Q2Fr*^wrZ|;Yt~vqfdRfWu}ilD0u9|tDqSx zl|Pi)AM!UTe7e)jhbs_d^BK2~?mM4IY*F8Mu$s!h-rX1wem8T#;UHj@lkMt@p=geD zeG?6&Et#vO(smJ(}kUYou;1E5b^Za9@1{<1;?4IKE2FiwBg4BJpR0X>FY0Fw!6&##0ot1 zf*)@29GLoEMa&%O>bU*kcVD(&AH3emhe@{W<>@)??pRwe!fW*v9KmDGVeZ^JA(PKm z`iVXP!hb^Z>e}P|;rD0Y+%XtD)p^>o8$Rfhi4JexE2)h|?4C>k$!Wt;aCg89fAfRORvdv1Tk30I989OL{B%d3I+DEb)GJZD z1Ji+k*1MU)M}sTS=nHEWuHbfuUQWAccRZxgbdf83<=p4a4~Mz4?|4iwF+dA6+q=31 zZYDB#hHs9^*oJ^+PAXGn&2jSRxL2(9RQT}I6lPGd;5XEoRehM$0_!BDIvL*`8YwQF zaFXNR1Lq)#j=N7?x}AY2Z3tj;L<#47clUuz@4L7ce#sPRqNDJZEb^C#Ds~K&zrI@l zDFerfqXST{+DP3X2(KMfTGWfb^>*tZ@p4#;fG-JV{en~ivv(x8ecQsL0aaC$L72fy zv9mYjDlYo4)-6xn|-<&5vUv@F?{>E3M zZniI99=31a9(oJ4t3Pi2zP<^r_-Pm1BaN%g2837Fv1RHTE9wAjXnR+o?b1LkWnJtG zKR#yC#lA~h_({Gy2GIvop7}_5jb+qpS@f1;i*^Q`xt5!k6kj~T!Y zF184CamYiXE*iMD2fU!S^HVtG=%q|8Ev*Kxyr1~@7x>e8zzPXRPWw6p8QJ>CluW0^ zi;uknEJNr_`F|;?6DA$xY~skrK+yS`)TZ6UX_YN{lH+KhdhX*4t(t#8QZZf>UC&@b znt?VQkG|=_53kz52)f%L^lXdXj-qXrXs1CrT;+e#Ngr)wiYh@naRd6cv+9NgW?}y< zZC0B2EG~vNF@k~y!NS_3!0#qTEcxNJC40(%4sYzx_{}#)5EH!t~!$s z#-W7|IefVboY@ycU>AP{NG@Nao09mPQodl(?_-S40roI^F_b-9A-Ibx_Ders-J@Ih zsk`u<@a{Hh|AX)P#o!)1<0mr)NE@cBoa@KQ)$*WTNxii#T&1V}a$uSOL%#HtDRvrv zMnhhFF#W;j#7{G%A3&G_>qs(w(;l$F*7DJZ%$Yj`r<)#}Bg5!GVjF2cEu3REAp;)= zTidq)9v2ozCveH>9p>5iOxPXY3D;!^ZKo>%-4BbWb@=<_o$4z?m#)cD8B#*F9*17} z*?9=R{9{KG7=AbQ=wz;$!7wVQjaS{dYfh3U2B|M^bea?Yb3B!iZClEosomWVzOGci z)6Vv~j#A!5l4N{vIJ}7xlNZ|B^c2Py&>&;-L!@(*xssB6e3FU(N6#q-SDV05pVRY9 z>WD4;;jNFF8^kO&lBR`@UsP^%vl|_ZuIk5;!-ZM*^sTYLB)GwcukxAm9QMw_)N_ZE zx{IVSyZ3|7!lU+PP&L?w&%n}I@{NJu?c!rVD%0Ytk5i96jCYLZjKj#`H8P`MET zSPL9I)*rIbjQQkQtms9`;J~x^DR%LBa!8-;z|Un*+#H>1KRM0u*x^G*%_(1Cy9ipm z048-Tr*aayJq$a>cRcfoPwAgh>C}G)Xs}b9gW+}J(av}9c7B#(G)6*a%A=#`#2n}< zHf}eU5^2duH`70)PCzYs^rI>{UVTQ2r(c(uj6Nm|Ca~5PybpWM@uto!o^`AYFT{&* z59lv+dKe!0JbrQ-$mk?v;EXpN(>$KEwfa$PAdIMAdxdU&B9)_7gSNs4WB85@@k2l1 z#dxT?D_L6I`6yA;t4?C-ocib6#X0c639=AOHD}DT>^g z7p8J#o3Rgrc5&EE`) z^KaYh!55I-QFxhoW#VDxw(c?{nvaXjU4iaYbfb*em)O&kat9j(v`=K|sgvD6&$`i-+JvH6U*{=l?s#3G}>_fio zgKWbaT`X)Hj&B&3bgd>ZdfL-TdV;Dc7iCL)yLQH)ktKPREuAgC%YT8D z;Yl{9##f}RBL+wK5IpJfD#sw(@B-AAUdAu*KkqwGHui18dd~5OjZWU^r1e81GLU!; z6xoRn2ui(kPwvi-e{>D?*hmV0r3ZKT49|0i1bpEyqF$c+poh-Jm6zddwpf;p42A;B z7j&@G3TJ`aVir#s)9ZcP!3&+{%%z5ri zYS=zJMPJ7RIwxIZZBUpp^4Es!5?WRo1(+@>h7S{bf!UXj46?}i9$bCladh$Osz~;} zo+ii&zBEAJUHp6SwW+rTXZm_h(0zP7^!9P;R_E#EIq*)yXM(?%-@c^7puMBJC+T4S zI+P$rzQ(55rEO}rA6yOA3B>g3YFRtf(5b)YXTb{I(xOTF4Dsr$xaiI;;%r4hktO*P zjKKt!8K}HC_Y~ROVQCyqb7Za0rGEWdXRi_=$WgY&Kj4@vMJ?hK1>o8}1RSh9#H#>$ zR~g^MFP!Zq=_vn0SDr_aTtTXhQ*OW`t@boHC;5^UUYgJheEG_8+iAMnSv)n40i zV58&eGr+W{U8+o;4gy1metQ))w1vdQ!wf9RJ^s=~s_M(tHjmH8=K|97FRHuG<_f* zf?1;ggr9c&IosjJAE1S2G@dHuLDKwO%%EGinz!p`>Wm#g_wH4^g9)%lJlq*vOAcso zunR2xx6`Kw# z^%ZvEr_(mZE|cGnaG)FiZe5eRYzqK)K#0E|Sw^ne8+fyYcW9;j*YcuTsycWaR(c%S3dNU!NnNK>A0qJVv_)kHPFbI zqlf4mQa+Pj?6@m`+HskIW%_Y1CJ((pwcb3=pTp>@e5TK#ixcnJSHEW-KT7-7!SGF$ z)Jx(gyZVzpd|wwaudzw$n2oRMx8sKq(Aajh9ox_vxsqL9bW(oun|e@mvI3k-v$oAxwCF6qQ({TCgLPrX&;wLzCVY5Zi)%5SibBQr*lo3?4NBqGNy0JiP zn|)}_xNmsTQbj|Ft(%oJdee`3ck+y*pwT|cH=pe!V{}|GEZV19+XB1peOwE9+};Mr zaTdN?7#jR$^vcJ$P{vXA$ru|={8P8>ul4eW7%cWFw?0$-%8Q;VU-IU$xEvNoq}5&l zgRgs~u5nBBuoekD8PYn5vqM|G_~o^6rz&xp*r+Thw~K-r-Tiq|fzPr-^?y}e*6!In zN@s+Mer1nechNc-`bi5nlTge5?1t58FV0+;)s`$Ivgcg*)URlN`tQ+MV;|io2fw{T zE^{Lb0{o)!Oam215vt>uE1)jKBIq_{sT-JJW9|;3s*?u-uEP$-9V5Z&&fe7Yjb46Skty zweel^Yy7vprhL(}U-q8%4u%X>PPq_D%5Tox)IcBXTt33TMV^j(Ql+uR`v>)T{JMS~ zI@Nn{l&7J|M~sz^Z96%Se={xJ&J!kY{cxdo5Z1CepT}0`gN_!|B7NwgF}~TD9v-~Y z-OUeg2fl^Z@Z@%5e~D@1$AQi7%iYEHyFdP+IQp8X^E-p>F2aSu`pf;@4Ty^TIE8cU_l>6x-u5arrs=U~l~?ZM^%KBIBgq+0X4?|LJDCyL{Px{OxbC#eC%Q z=H@1_XWP%8PuutJ;qxUtq_2%7GS~bW9?kdM@G*0f+c1uIo-QVxXHHISZx;Ww^^}NX z#)r|=c6E~&8k_v`@q!=;zbR_A|PDJ%*5RYV2S1 zd?~?(ZDXwv6rs~KHEnkKqE);M_di92iZ>p zlOgMKqw6stN??*>jdLACSm6Rcjd~9tNgd4QSitFdtU36jlHh2-SY>;F=zCm{vyX8a z6!%6s_zRZvX_z`I)Hp!5z-gs|Nw0dhj!F~2%A0&R@DN8sMPN!!wrSk*YM??gb^Z%3 zo`KIXb?Pw6Q*%ZR`eJJ6@E|C_A#i}I{NTcdj$rBqp7^P>UUoh&kDX3)2JQGCU0XQm z-6+ZLU?x65kH>wGkHFvv-0~ST)b}rX-Kp-ss;PCy9?_#9TDq%zmonw>R-d8+T?GJ~ zv~-Mjn~q&T^F!Mtdn}#AXYsN(u1++YpG{-0es;U2;ec^Rpg@Bu{E-EnUhz(92a`hY z9cY6L-*^`6Edb?T{ephof@{I-n1S=7wJ4AA$8~ z?kwtr1eXd4gY@406aBzz0K^wYUwD|S8UjlPuY65*j^8Vjb2uVF?HH;6$enujCbzXj z2RJ#(VF%t(n4sort9K>bUS4nC9$fi&-|nx^w?F>=Zu_S{+;6}C{r&ckPUUOLe*e2~ z3C8E!?aj7*y?6c)xGxEqx7)XGsh@q{yO6edcXze@a(}b^`t5%E_2G8={kMnh*RNmF zQQn2F_xs&8sQdcb*N3n1`*b+TcZZ2Db;F0(RPvy(2-QklTwS*tlr|rq8 zu0nib7;1y06;ojwer%W!c2_*^;H=B6$@Z9nnVX>>WqOL-;+>B~2H3SPiyXe(fp zqK8E4ky4HFnREEn54VL`e6CbI?8j@L-0HK7#=WOQNifw9l%r|l5&f65lnn!;$N0C$ z`D-`$@eM^Q=Nxa@>)$`vNnLX7e8atyYWrH*YH|~>kn&B1<1%QG6|eM~{1i_-9GlBu z{ksHLMzN)~bThu7V2)RQbya%G2Ul$^A3sU^uD+rc7-=1YUGQ+{#9w*uA3)_~Yb^X! zw&P*XAnU$&?8!_LFOylH>?AB;<0nd|Cc48n*+~6SX2V;{mF3u`s0-5rT*y>TwfJ)O z;OSa_R9=((UvhS^h+uNrM_aeq?2nSA2V&NjoQ<^dy0sMqb<0 zrrC^t6n0@EhV2E5@`5I~kwtuC_u>jYcV5}gxMqCL(J2P(32*E;vHU~tQvG*WDsS;Z zob((-$IggqOT|9;roQb%cP$GKgdGKd`g=RR7t;pP1RG74p zGAfn~fBXh7WN80oGS>b@Df%hP3EJa=;V1lsTCnWx49dWC+~=75IWCD2tkC6!JjuhW z^XY?HshU8W+;d@V*C9E2FAssWF%; zjS$ILxWQDW9P~ZdaXUD%XRP7ogo!ugq;I$fzj1IcHqm=+4*%#){qh`Ry1Bv=A0V_=^qQx zz{p>i{H88D@iB5cj<2BiDX~Fm{$2YU9ZKa-mC_%6#q5sZvquZr;d^wwSD3D`@hx0f zGyQtMm{%N#EgL2doz&zpp)pJfGGoN&KqSr^=-<@rD;kB;=3;gZ&XLvZf4E-pi?;p(mJ;BG_fppvU9-r&o=NgK(k$7uu=JMGpD`r>L~h6-NTDT&%kAFe5K>LNWGMbS?(%M!RD?|k4R6vnRc0s>cX#!f2qZD zIIz1|KxmL-C4-Ft)Qee9X7l47+xQP*-H4pB0qy=S5V4J@xz|7 zI8UQdQcz9C&c}5AV1?%Q!7}4!;korXqAw2|t`A;w;8(y+oi+m|f zKcGAEqu&Wc z5ubgpR%YM2XBG>0-<9)U*xL-2yYP4N7aB=<5b_at*J9wfJAJ}X<+Y5C>IcC!u}sHF zugTY;2KUgLdNVlBdA8EbzE=mufdp${;Gweh5uW_?#cM#MTtd&$c&DTiKj$OtK7M~y zd>@djK5=@?@3Wtu{PCv~-ZC;}d(PM=ymuh8!|o)KH~1w39(_aWBen8_v+;3HZSUx) z8+djtt^70hiKcqhEF~zljs!<>l?Qk}bmSQ6-qENqZNN~qbyD8G2;Owiy(<6@IoIyd zq`!sBM1pSdQCc~-*EY33zBCse;ycm##Lzikdue3+z&mOB0UbBpP2V(N@}=g%BVR_~ z471&l)kjuS0Jr#~WX=sx#VRK*BJ8m#vWh#AFr^be=C0&W_xgqlEu1ftIEKe0?aecydQW^&Py84?EqD zZEV`nbJ8lW9c3xo^FQyK)Xgtg8Z*V74}K=$86UPe4pMmceebSHTKvHOd23#Nt9{v| zRpzee#>t}DVbfRi3VZ#WUZ>8xmp0MielFEcsV}xk#aWnvQvSh*wCk&~j(V7W>hni@ zYm>p*8oNE52QBv1!7^RB&{uSE#D$9tg;75-qQ!x4d&qD29qcZA^{$1`pkuaHqA%?j zJ$T0-v?=LBfBbyxkD0O4Dnq^e?s+rb9zG<^R<-J-GDY^bpWzFNWvf#H%ib9r_5xQC zWQcW}v~-U*yo!Nh=CpZSCJ`^-^IorsEz94^L$>9IBU_H;$2Z7s0w*b| zKjajA+dz)RQ=)~7;uE(Q%ZtWbIC2hFOUOx5pnGJ}U1sePzvcGhzVcH5pQo`p$qSCL zh5R|@(_oB)F5_SNuimYbOs*G+GQY_DDZF$+CHei?tJt$i#*JMZ3K-ezSHY(b?${@J z^{;Gm9y)=+>BQ^MQ&)eJQy00*2Ol2xLyLVq{WSWcVxsa6V`9w6V=g%RSZe(zvgTZ0 z-KRgs{hIKkPvSOgO7A}I(s69rTC$Fvv!bYW0@3x2PCX)Gx}$c^dW2`EXjt>QU@PZp&5$Wp_oXIb5h-ZxL z_EbEjGT*10$^u!^MaIZtYW*-6s7T^p?$#X_n>MMxWBav;Hgby@^6?b7Z1A`k8tkbL zL$M5w$b=tpfxgK_6XnvuJUm+&qA{D4tK@)|F~ z%PcOZEaPpgS?HP=HgMB+_!WB%zQL)z4?_7w5r>i)o>QK!?be|_lTQ51napXj_ufKu zBYj}pofTPAzx?=_*RWw=E+bFh6PTZb2lU*;LYvJkU-sdbokon7;sqV=p_5n!+-3Wi z90ZpeTBMPS9>VvYygKRp+I%eYt?S_CyZO1Uhm`sL4D;w+OoEAeRJFQ3HH(c_}G2sjn^KZJ)UI_ z%-$NO{)&%_qcdK$c=-1I5?rs_KmB^UU1#2CQSrU+v5(9i!xdPf4>wJC1bLp=lBew} ziG*RSi<;$jbi~)+V;lZ%x_ox_9G$3 z+u4Y&`jJm|po7S9na19Q#aDL`#$V&7e4$fr<9F)LxFjk>I2KT_MYfl=;px}tVfa(j#*HM5<;9IJ4pzF{xfkT$s-YIFnZu^DOyJXez~^n~B&t8xa&lQaKRkRR9*a13YmIw@_GmJDp`OOf~Fe}JktL4_>*Yl7Sg@X`#_lV8%) zfEv_Or$50PVJymvyyRk)2pha~qB1DjrNfk?ZyXrE8`{9C3$q zzm6}5!n%s^_3mQ3x{57hukSyf`r=eJKKkHE-~|CTV@C~_RMl~Qy;Cc^c^pK$=;KX( z__4$h9;>DB%Z~h%a;e<{G5bV&$(u#LPW}b2{sLEhx>_S3S)ekod{3uvlK_6bU55_s zU1Z??hXMxF$HHsd=M??cZO5I+l`GdL1-+4j&N>ubR}B7HZw7rKn!$CUL= z7N|eM5q#y`pe1?rYne%OGqIh6Y-U$^wrLcDZ z+lP^mEkEcxM{2dDPBPg=r{`F4@V0#^%5NSe7<_)N!r@cEYYfYIb;bYS=6_-XM1jYz zM`Q3l?Jd5*)+tIq(l{a}8i1u1_HxX|dYIIelgevR2JhtuOT$R1QhrhOC98 zA;RvBrC`)d{l?E@MlkxOU1wcLcN~4X$bok_p;32DFsF~&slyo<+uVht-juEUmEe$0 zIXS1x4o-uQ&c=4(0}s0xGr_9l!3W1+Xw2W+8al;;J|6Y6Aa|N4+Te2RT#OMfS2Fn_ zR|mk^#Lwo3raJT*Zz~UYL4VP;2jUnkUs?Im>_>kFH2Sz`Ea!M1eiq#HGtRUXdD=qo zC64w^(`3R;cb^}#wDJ3OtiSlogS7OGI!lQzLzyfYNYiHy+W#;>&hc2F+GAu^)(OF6 zMc!a5PvLLJC}yD%R(3rHcX=gG%IF~R!elXIT5IZzJmpn9X*^Hupy;4c-TZPEx_dj@ z0oXhVP-<4rcCpf#0>?XKQdV{-dAblU&DX*AtbwE9K?V~e0{;7-J z2d)pkhHo));^58~`8$r&E=DivHogqOz>PfWK-Yzv{Kh}^h1xw`#eQte8E_o@%BH>X z1Nz=+1|+-u8{caiNu02-QQj40ZyOodApK9y)2XL?>PYB~e@=S?QrVj9*=e0ke1@`5 z-$drJQGMjVNnlKlFD^26j1CfFqoWy<4BX&ex~(qrqgS?q(IlGQz>g@uzjBjgq!Odp9^C!?Q?yg0j z00t&DN5mb-ppj`&7jER+3v;?2BM5AEnK^gUH!{8ejaJmxWFuoep1=VY^>$Jeg1 zbrK!;UVP2DJJGy1%*D!!^LZr`X|4iFM@h{>T2-J8>cVTz+PxPZahxH|64whygJb+KNlOGE5#Gubt3lyn4G0FH! z+Zj6rE1=>+OBPdc1MRWnUNJBA;1>tz43ARVW%gnWuHIWBy0-ikLPoKD7eM!H*nrTqHiFjb_|Hppg^I$OlCicG9o$qhoXvlUF7X3r-Syrq95q+$qu4uY=cYCzy+K z=GW?EA71#Zj9IjVgAeK}=`eX`=3?}g_R+D#v=8<9N&UI?Mn}Yzh7bGDj=H97V(6k# zko@boN;y1iPzcF6Jq;}eWD77|2*i8i$1Zob*gEALuy{hVzQZAtQ(hw3v2o0?4{z|9 z;lmwuXag@>J3lngnz8r93m29`H@<#%bFuyImoJ&O-EObX-Xa&fs~>*8++S?p?$5US zS&NFV&!el)fivFv@%VarY}LXQOSwbPjYgJvGuceV*f6mv6>0|zi8?B20k zXz`VUh1&3Ze*PS~=YiK1Cf?lp=t%6v?%BNV@Y|QW?Q3-N?)7Y`-+618c+VX6r{UGB zJNy#+W1N1dBO=m)z1U-X`+5lf(LG!89afq6kBD? z9O^gjO^vzO7!HTHH&!Y z&SRkP1Z{YNeg(J=(t;DNAa7xL1(f}X_mF8z;_XPU#XG`kftN3=rNwr8$D@M+Hr`HrEZ|vCys8nwm zU_MtM$AO_~M1j}Fr4ya>7u!XanW(6UCfo?-JdL1S8Q4Jyk8<)2k!*w4U~prCHAdL$2q=}eM#nCg%J#V9k;4gCr}_Tl%pH@C?jzeB@S z2*+-Jj?fY5xE&HeUXIU|uXh7xe>gm+lY8HOd2sdPYJl2U(zwS<@(2upS@$z0HKepgy$}#g)qzAL|<3^`V_g~y4da$ zWGw)CH^@DGURkV6fNqVm?cvS~oTI)3-rgBV4-ugg0dkW^%E{sRIrg#`?lgGH#}uLX@&Ox+G#739xF z6}dE_qal;Jhi6}riaha`AvrOolf>GY9W$}OZ}Jt6%<(xfB8b3u;2OHx9XFkUj<%S> z_%K=V)rrVpYFcq6B2L}%j-S!Xifa(z^P>&zb#rWkpdDMwV2Zu8?VJ}QbS)d+@iF=z zvDwr~*$qq|gCkRP&_&P|J2!ZxlcFmvX>dVOY)w56PzPdrs*Kq$+9q&>sSL%cUkjZ; zRUVb1i=j9Cmxt`p<_`lyrXVcfz^=4(h9=)(0gG?RsMzRPbkq5(PTJnRoqf4VS>?=$ zoxzL5Kc*e%Q)a@T5-jL-+v~5?$F#E-@7SPsL@oSDC%*BU!(wO=S=F5KCC|X4Z-N@= zY(>?7qp!tF&*^e!$6j_=>VSFi(8wo6m(K`44gZ5sYGTW}f zxNXYn>tJ?YU&&!?I*VSm*!mN`;-LduV6~4{B6EIxNV~eYH1!5QzQdiliq>kvMz!6`&K+W_uhD0*i~gU{M)rO@0{#3qi6atv#fimiCizn4PNR?Tk!ev=ga+N%I6v>-rokb! z`$o!lwtGCf3w{@js-MxPNi`ob#xU=}@@mgFkn+;m;(x3na0p7|?fO(i$H$79(Tz zB-Yd&B6G%_^$Rl3T)>@l+Akm%Cy#;is5JWoEcq=ey*?3R0U;UGPFJ(|G9Sg`V>c}e zub1&BK@Yv^H@d#KO4~`DAlAkpUOHcUn-7ne|8`*!Sgdhzk@|1Zee%gV7mNZgaPh4G zlBW{ehX$O+*!byFX8PxVTX1}#x3Fcb?8yPV&=pu%y0|MAkduy5(FYttGUM<=_>XVI zpJwramxot=651Y%q&w}E4;x<$e!iH0)up!Yav1dy91HqXE7P=Alcbwqxp&PdR&H zH+cH-u$=cIUD_^RjY3ja+&h#jlumsDWUY|4o4UQ|mb@+~#UZuPso^*{W0$dW_}l-R zH(A{2MdLm0TTfss5RH|_{QRYHfxwx6#-0E9kH6dQa_|yeT89W^`^VpXJx|*d1zu(` z_W9U%w8MXhA3Po2yXc0y^tfS9P05W0+Fw!_G+y-d+W5FO;bOo|<4N@!nm)`(7UO;I z1tcGw#zMyCnJovmoWz{lv+b8(5_8U8qGONW9y9k0AB}B??b|Qk;&WG9rlXzr9)iDo z@sAvxr_SyD`S!1W_ig*->s|N~r=p|A$iQajZpZ7}^T-|Fie8_in;$=)`sL#vKM&jA zemiX69}j5{=A-kTKfPXkGWy|{FKKIs7k42Je?K$FJ9YssG-{vJ4Gdjre{>m-O1{21 zz7|=J+R-R#{3&)YUe{N6Upv8g#dyI*-@R!5V2m1cVJ!2*z?g$sj<9B_j14dT_;3C< ze`XY&kz{hYl01WXR;;t>xiH#J7jqDWbd+b~a8o^qHORm=*`oYiBsix2)T=sjEKyV^E8%7Er%q_hKp^MgNnl#=K&J7> z)zqo%awquIDaoI@#7oY8K4nmrx6n0!)&OU6mGkIQFbs5s?I3Oc#5W~3c%*K1uxka* zHk$mZ-_*f#Q+6nJpqEnt5UV7?UrJ&!Q^0cFs!RaKqLS#TV=JXYLA=2FPs!j|*udhpXjIfl2kt5k)f z4;D|6@mG0MkDbXyg+*4Fkx3^h4_t$7QU_iAm_%re5ZPLktOUp%Zc;c+-3~r=41urR z!->vkz3}__`8jrePB~Z&ksLGGTJ~|?N7)4F@cjDx)DG6b==pHm9-sM2WXvd}lb)1W z6jE=q9?v;uy5Zxm~g0bS1&$5OsRLbsjp4#2 z{RO8w=xI{T%W>O9P>m4;K8*{dJq z!Vs|NJATrV_%=K}BhxT2bak?P0(LrpTdY?n`rh~Q$=Jai`0!UewMlj<>$_aT%P}2s zC;2<>6g4gXk!Ha?1!dOu!4tf;;>?DeJ`9KQ7tH8kBy3!yv!0DD)FpE91a5q1=R3Im ze{}unb|p!2C2E>uIskl%$Oz`Z%H*(EWUbpT(La0jTjl#US86068f4Y}rMdH6TKe4NX8^$_!#`d}RG9yN zeQac$N!TQ(3vcV*oZv+J0;evEEA2i9lb5~BBskQ{9BXLiC%w|`PMn$X z1HV?Z%Dd+i^jFd3Pb@*NaXDpU+lv0y52F{r(f`C&lLe8(No~FAKg#;NG+6t zdt^js7TCqK$unkY-^>Gpw~w@im-=Y-E_Qa}oqF>4M#l@O58mPlTqkfnm>Q zuXCwLGofw!&M{rSd@xZ)#Kf0Qz`;FyyiZOii#|%IFz$M!%KFG&uXYY>yH$9zA6fkI zC-w|K0hqD00=5s&IX>-^AI43mn-}dHuUYiFzPj4JeEG8d^y3fP?|%4k`||m^cg_6i zk3VOBw*BQF|G549yB{;r{t~#)+sBXB+vVle_W9GNE)05!{?(;-JfC+l@hoFoY1pQCrY?Qtw}wtbDFa9{mQl0Wi*sqRvAp0TELORb9x9L}`be4;NBD zle~5o(P#DI*g@44y`}xMQBQVCASE^ML?fkl0Dn%+Gq_Uuku`=6P5Gqg%3)}+f5$<1DmemA3~h|)e9!`0s2IbDv1;Kz@I{j{^#wPyl=~`1 z`A@!>fbVB*kG%NFTnazsFLundIr?H}_~2-zd-`+RL)=AC+(-`-lln!Eelh~ZJ)M+-~gu?y&-V*$2$OuMjV zQywB#FBqjiv59IVUABw;3REvRQb8-zVJ$IZL8mA`@eeKjC%CQ!K zhQ%#5?cLa7|FbU;N2WWE3+r$AO5}XLOS^j6{>Ptw4%~6OZ~6GcCj+`%p}5`TTSmoyK<}>oJ|2cL|cca?xq+VUEpLTn>__ICbMoeWe!}W%2?$ zcTUzxsEmAiM}E40fje-gfB1`!fTXg*>^U&U1+cTnN9iqT7y?hB_L8d+@xvzdv`~R# z23=FPM&kJuM8gUG(#S6~VHyXW0Zs8pJB@a(0$uVAn&uYG;LVR+b-=x{m`rua5Ib%k zVnjih=s8Onv2ATtsWWnDEEecMg~h<_N~D(@nAkBwJN$6 z4=s(gU$08ur0^rJ^do~t9ULS2$X}T5B3l|sZP3#lRv-%1?LuAZ@$vE*C**6r%O`mnXgfFxj1WFSu5)#z zN5$I*S1T+g&eeICOh)Ms^%YM3# z+F_X#q~oD)ZOWvAyM&54Gb=wB?b7Opaq&(p0aV&?Fx$zc~s0RINUwKH@|-;rk>V$moryB|r80 z2uJ?ltWUZ^OLycacl_Q!$gzQDeJHT_Lt$c3Ij)T+bLdZ*{n)2I+``m%jvhMYb=m^H z;;EHWn)>7Wve4Bb)X(J==fILJeagU2a~!=Szhyhl3Y>(R1q!*^0K0TyH1+sznM_)<|e<7-DKao zZIkJ&b*qh`u}Z3_4;R}ynSt}vySkH|9v&8cS(zOUTKqznG~P?EA@dxu^fz9|zfyiXf#Y4(fny*|0q zMjB%hhkLOmW%#4pSN%3+&xZ~0Qg7%dE9KfzW9hp*I0bw<#j~;*w?war9gf>QBwxD+ zUtCb+9~~}yJ+=Yd&n57(M(b0iPU-J549+PlSoo`k3rJy6AO*j@fx+vOwD%3r=VKBBUAG`uz*W?VI|E`VEIu?ZadYVJA(5dP*OYiyEp z;};iXtDpS3h?P8d!-`@ zfBpMEZ~u>f`={*>zxyeAd)$1T^x*Ed=<(`s=sU;`8Pm;s_vj$H%Y;?TrN5Jmf%W+G z#u4=f?@Ox|Yno?m`zbCw-5N8V#~5L&mV9SC1rG*fgf?W7Da>^ez^W z1I>Pz4lEu+qVdp1?l_6qLY5VO=Z-J_PVD?o9b@yH%(j0uAljCPn*Kk=sU6-ho87;SQ%8*9<*zI^t}D} z0w zeu5ji@F0@1G#Y{QDN0+5WAkO%@SB!LMz>I!p!V^|q)t{tAD#}J!@gD5?&XCS!LVC? zq+4{W73$IH8!*scopu@%+ybgl;Wpn$)&MM!tPa2L21q720lE2Pus|Z%wY86d8~D@6 zNgPUH5UD+oIFX#{A+}W107>`ctK$nVstY8-mU^QrJlJ4M zM$2VDKQEpP8}V*e7;6tsnLzC`^9jFbs9lam-NJnvZ z{}A1}JwVrlS~Av8;=_-3J2+jci18Fzm0NB*3zL2d$2@>6r2x42fV&iXiBvhiOU;6g(i zm+EbQ?H)NR>PAJ==xSR_W)VFPoM<{ynmjVp!=GUX%x_vS@of zm9yh(20CDq&t~9@H^1^wec{*Ls}u89YW|Lc+^;?ze0V{ZY{}@Kt>BTB9wZlXDrNqJ zANbVi6;QbL6fW|MZ9;-+_^0K@(hTh)4piH|IFz$lz#KW+Cj@^7!eUD5b&))9q!X{& zzr(^OAlPLp&g}I8`c^PxwAfT1tgiLd3f0;5l0*|J&H*otT#*e}IrLYBz&P;s<;78b zY)Yy}{#$NGM}%oa1rFYnOkEf4*I*8c+G+)R)N4=WG@t^x*{$ zNqu_d&FOnzz`t|b@`1Lsdd0vNN0PqRnReIG;82IH7LK+#Fga#7@|Sj!^86p#Qs^vx z0;XH)e(dO=P)T#J+OsV{ZA%SzNrNMG+Na=UXbfMWpR#7IS_{a0dq_8#w?u|j03;mHyH@dj0X zGqE!#eN;9$yk(v-k7}dGzHhcL{OCS~#DTXm(0jJ}hF^3<_taEr z@soPhE6Te}*(sFcAW0j?_LR?9A@x$i?#p(qA9_odlRxptq`C{T$}=v(hcSf-yknE| zKK>hfyW7uQY=?{`z5BV3>t+`H`P1hvq>T@_>j%!~?e_ck?RfLw*?$XLl{9b`6EkU! z2z?B&cS{l_@}-YCb@$t@FYl=Gfw%}0rem$>x39dA_bTh~PX0PjcrfSl4ne77&%kA+Qz`-Su}B9bIha zaIpy+2A}b77ZFpR9W2mv{1|zMKaWI4Zn8%V^0YnjH#U#V?8KH*?=+9U@}N=QYEzEk z7@Y)N>ddh%|Ej*0`JHKlaC@hidD+m=ZZ%=>Gsl8U{0(fWgnaC!9ZehK`+ME;JaZwf znVi0eYko&o<}5#{Q=0{v)#@K{xMs4*twXVz$I5<8}zLRlhUV z5@S04%+~%j_(YOZ3kiuG9-n?DK=7^p4)5-q>sTzvGfFJK@E9LAc4W>~Ty)3>+AiiM zhK?!OBJ!OkUgAL;t5~r~Kyq^2zW#8v{r<uaFYI=7LW{ zNl5<~*~3mB$@S=NAARoPPRw_5=mO`xyY)iN+}mAw0vu8n(tc#U_8+yDX%!FRY+`Asw8m--!U7ulh zoHhkU->3=Bg(<$0ee9zB)K3Z*>_Kz-^I!hgUrh`+Ri6t-Bn0N&A*mGj=O|9l>Z7*p za8o(?y;H4pvv*tulTsf{AJxK5QLUA@@Zn0J3LLrAPg?TY;myFwm8rhdjo$OqKzlVhkT6FPrKvGloa}of5_yU$W#wH! z3=y^qrs`$|OphVN=eOrLaj$ZQZda4Tm%GjSJ~NQ`PCcDmJJO;Je`%n{F0`VMM49vu z1{%3^6)_ySy+=Q?TGcwN|R+m8W`=nLP41Xn+iTdmV8n zLU@Xd^6+IKx_i~wk`L}>)ox@Gz;vi4wh^qq38ukUJ%)?aB`V7b`tWo>kbom!5a@gM zlK=E{9}!(aaXav1<#|f5^g`+`Hm0GlCmm`_eP>%`6abG6KyD?Dm*K2%u1=j~z?H-D zQr>sIq@_#RXIJ`iOjPZTuWP5hb)FqlZ{DMk@-+}qKR~YL6h{idO-KEx@~$1c2Io$v zgQsjcZGhr9UPhbf-A}p0?dqp@!9=0k$LkD`a(MsfN|UQDH`{IW_pm?4`@TfnK2EbUSe8eB*)=6!psztkFJyQMQ}6^+%F_|T89E(M#*b~T z1{)00cxpynd~Di}0U#UHF4?y|rl5SVOJu?d-oUpk1L_cuPbSvFn9SaZfM$N$^|Jj+ zYz~3Jg-1HX)d-P{!10IBZQJc}-~*>Rji|@paX{?3`U^g7LyQU+w#JAYc5o=CJ_v5_ zlya_JX@2OGUh-!G8vCIIfm68lUBFbxzddGHI@ST^*fzLRA8_Ot(+rP8Uq_AhB>OJP zlcjzzZD0Y2a!^%AmAOQ+ExF*GxWpN8Mwj$M9&*nki*GRxY!?GUL{Tqf?fd|RKzhH~ zq}I)dVLJHyrD_)@vhO&vV1aL&mj_3wJL~_(hvZkU%D}>bZupkppJljPyqps6xPzpmU?IYpa&U>_d5h(7$t+U2Sb2S$4-F+A|A9%nF` z!nTFbCkq;`zS86Pa`sd7OW9pkUVj2HJ8_a9&RWly zwC8YyFxoEUk;`2=VIZ)3{lJlB7F0}bV~J#XFEgvag=hNfS3F~%#=GFGe&T=gsvahTnCuEp)rj{2}?;PW>TUb=y52!MW>f*Lm8K7?Z;pr+{mH ztE=toaL9!I)AsfA$L+kj$Y!3!9^r59D36cxgXqy>uP)FQt{Vf`o~*o}AE{v5XR#{u z!Ns@8CRKI#!E10{bW!qZJ9URq!v%q(L@c6Df^^$*f(YuvgJiqWnOMLnRKfMUd;~(xY?7RHL+Q|KEd`ekjT=Zw-h}uDQ{DHiw7dh)2 zFPYOtY3$|W7aa?yKjwn{!YjU#$3N6||e!KF9jh^2ujXfi9!I{m>#?=gC?>)K-m5;sK=8n+e(?J%ZZ^x<$W12jMSrx)|DH2HvVcin z=;?F00T{HZC%S<&x{+I#2~9lNH>La}KH+iqmy_&e1?Qy&{lnFExV&h8^>oAsd!#(P z8`59q-+7K-!pq(F_=)w6*!6jP2%*u3kNxz{!n6(VZa+jWABtpy`aYQG_uAve+Alk2 z>z#j3Vtd*b-V^gWPPVA`>|KD-8yJ54!Td0PVrc}pN?YyRHsD7exX5-qX1@4vnz{7! zH*QF&yj%?jnN)RXFL@7{(&uBRxlA-A^>Jqw2(atGYf$nt@9|s#+gAX-n!W5o{#*%#obB@XD za3{3m^Q#^TK5*4fiVG5p4kmK$I8)%)fmdXos?mi5h)Q$lObul*Zt|V45|azyl{fps z#vsMp#VZc6V+c)yfY!}1r%Ow&V-Mj;jz)i$S>l)}ZwI%R!aedug4ogC-~l?v9W151 zx4g1*j)&vWj7_41kk4^`bO0xBz(VsH1eOlzd~nu=&JilR>gKSWs4%%xd9AAsj63e+ zgKO2E&w+D%7XR*d{I_|*VGp;Lk2a84_&d&rJ?09DmK~V-CCK5USC+}1KRzy#n`;yD zd=2R$0hj+O)|tWQtgJTRhQDqg0QIjrpcC8Vr_LBCX>8=KytbbtI%y}Fvf3w+OQ2D^ z6WWwNWd>uQZlSaM>?G+z{WuiDfma}cxFTcFZ%+kY(wd-qonW280$p{m8gX5bxjH{= zKYaSQ_2VBoH>fT5(U}SN&F$m%%da=vgC6d~Vf*ddec!3j7onPvN7F=DS61l-epgh< zt8LNQ>1jHc@GK9%4UQH=d(}sWVzB56?+kP$!I!<*H9(bj?C&&uwx^wZ$$$94baI4` zbmAoHqOx*Zc`j&rf%SMyC)>eS+vYcD(a0ZI1HH;K`F(sa$JJ+XrHw}q+IAOy zT1R^ydoRB+;O>Mezq$IKEpWXm7d}(7@FNj_-FZqKdDUYFOTiGIvmie0d}OPfcp65N zhVC05;S;WwPkZjwZE%nzA8#hM)rq`r#bg(aP8~2jv;GTP;K7nnmEHxKBqoXZJ)YgZ zAAhm;7p_aE?Js*ag13eK11oMEBt6 z^{pI6$1b9D(IjB7mp5%)K7R76?((aDze}ZEoNCYc*oDp}Z|ciZ7M#_G7?8G=cG^O` zX_%?o`Z>2RKIm0Qs{dsV^~61JqhB_l1INSr@Y^=UHt=FC$HTYUR8y;zAE{;PrTzEZ z4~})FqPk(YUpI~rCKhAU@C*NLYCB4O=_zS3Z+U0fUafH#e!rGl3TW$M331MSsV8 zaqT$X5G28owl(i)&QCiCiWQ&mZt!jJ`d%N^dt?zK3KvwXFAMWse6Jl#S6$;mdf*?b zhhfKlIftWovUNhWr^Q1rKF#2x?o3!)x7(3FRKDm_Gv&HG>=sXhy)zyQO zPmz21C>*bgJ$OmIxjW|XWkx>`sfUlZHb0ZRu`Q48KIN@~M~2R};FVj9sE-CGe&L>& zK6L4*K0$Z+rw>qH-n3tO8@?-balhHUICES+cJ)>-a3n+h`m$$ms4-K&=dXaaBz&jrapW-pX&2bi>#A|mNB== z>f={Tbupy=oXK+ajP8!3W5G-_$;sZUzpQN8l;d0Z$Q%2@*S=qW>@nWJ(Pw1_7rgo@ zzMZY_7VP2?yu)v*6qnRKJ{9%z_7+F%-QDKNjJeD0BC?)spRQbl-1?*j|Fzh3e(}70 zzBFUzN^&&<5A$tjCt6DeYKHzRXM!6xC$TM zr)NQ7#%&fKx^Nd97U(R@Sw!JKeH7Ql-|%Cc=jj#47Vi4RVR`CgFW(;T9*Ks-*w`y* z+!^T(S2QdN8j~G@ON=6kJ z!-whPs@Kq1aR@Hj$S&t&D|Y2eGA-V8VNqaE-M`f1w@6PM4_xC0^rKlH#pohYc<&v4 zIuT4~z{>Ae-?Z9eoH+IgKN+91k+KyZa@hU{9`|yI$iz2~Q z2(o2f*G8M1)lS3_c%)b)ddFMvhF6gEQC-9y6LS-n={mk+UbWG=q2n|*wphxRzMwl7 zLc&XMoqTZ7giIFDj@!pHZ8vXN1bjX|Y!AoiEJXX{MtHpskCOMIrx8}y^eSHXh=zF` zetiUkZSZn+mG)xp5p&+`H3-Sn{V5?Y05`98sj75 z+|_5S6FwqCAN`FE>(BaScJr#L$V-pwZp|Ja*<}2chtaXF1vRm{ccOxg9(aonfqwbn zYx!zCjSN2C5uivpI5`V{aWSNGudWYFVvg~nV9RDv+Cq7KJ~-+hG`W|b{_)TM@mH&e zI6XLiNf)Hg$$?SO;IP7MC<=4nWu3L1PH+ z>NfDfJv^{uS!x3WDUZ`mCo=gnAf2lt$?ZlLy<=nVsM_%+4_~#igCOXno&4y-yYI`} zevHmKE{*ycECUBXz|^Qsv}D!i`iuSq!Q_o&r`n!Ut9pbthus$K8Q|^uQ%@d{oa1q9 z31|KVhkooat#WSRRc^qi9FBn%EHzmA@~%INSMJR8=N&#ZV-$gfq(MGj=LU{N)rwGOCF3m7mk3BdC7m^cfQoc zTqMki&M~LKIruEBWQ*Tfm;lJP0I91yy+~wdR~b6D1il1Sw|F1UqZ1!P5e!rJ^!%k? ziktVnq}4_i@1C&ug>L>D3|&oe71SdouDbmC{bu|A-Pe;(a{RR2-_4{`*)W{29Xv}X z25ts;Y_Jw@l%YGiQcYXoT{%wKX$ElY%GZ3k_}-VA!UuWioIY%GK5e1CoU$2okKHGY z?pUn$2@LuM+EU+*k;7P`^u>sFXb$u1orysKdc>pmY1`x1Vo3@r@6hTXe%D9glAHdd zx+n-gkm)D~y#sF74SHnYJmn%~eg8_}mQK}ojP~G(T;1{;M;}>3jNYq{(jC3o%5(Uq zd*zd#EV3yL;<>v5-0(I7Mmn5wTaLzui)+f+$biAfVbPn&Wed&(fyOC_0zdCVi&XUq zdHN90h=$${H~N-2sWKL5WEdf{CvF!NYy~I}?|EkQE-2u6M>_3ku$zKS2fEAAzA5hc$Ut zw>Ci+GucwJ@dzx4S6X;4?C8c7)|KL!)3@(=+DV#R+sEQvLTCCXXM^YOWK9YuDVaTa z@Y{BjQ@pjGt<7?tW2nUQE*w>kNc;|^}}#D8n3+V$+=V=MymQuF-oy*NET1{7Ml2~KB$s~Eq*mp z0)L}V8vTm##gqnP4oW)v-gr||c-L;yM+ISR5gp9Ji(=*U7QCsmWV0`i$p^_-_#s-# zrJRP4c*0(VUYs_KZUaZx+0*%geWg((K@;6g%mBFitizVditGlp7EjbK;3Vy|7r^yv zv4e@U*U?x6>R2MbjwRABdnZxf&71Q@TN=GO8ar0+p@j^N`vELGgvV&J;|t7HU&+^p zQp=26qA@fWFnb=Yt&7DbVu32X@d@oCenTHqRGjR}8{0>si;*xjW=pMcjBLu$!M_&A zcT%r(9H%^Tm^_iMxC5)dtlvgwCUd;VuP^aW)fw-Oo#1J^%pw0}8TpMb_{w&np5M-U z4qH~O5BU%?~qnx(s9Fyz3<;DTzRfb1+ zatvRN`_zLzGI>GRyXh<@y3?yqy2OVX_ftV#^er&9jmh8J9Nl+(6kKN?j@!q}=WHi^ zx0o^AL-xkCCfTgdj^xBA#w|GEfp6-UeG$|hdi~%OKYZ z83eVH#SeFjSHc3yB`Jw`huv$8Yt? z=O->2r(SS>2u|9V_h!>>w!(#_@TII5RM-N);g3CMK_m7IK5dl^Y}$-#-fSq5vi%?< z)Zd7zUTEgT__gg_z@lA^tFJW)uEtl1-|RjNL$fm$%Dy+o@YCe*DRI9~owa=hI_;(J z-%Hup3|#L)+Ri+V8gz8F(!f;e>YW~Do*=O&SoROEvF)^}N$v}kH@3}>fN96t@ zlb0Af7k^Tgg!i^P=YmFd(~fc)-6&e)XXsoV>z#dFh-9s_!?F;J4#HNW4O^(M2<74d zGqI{>#%FMp2Qen+)u~F#a?n>!q^EhfqAq@@t`f-#~07H+q?TdeTBK{v-p2_Ghfr~i9L}@TfMqIa{T zFCJ9;Ppl5#({{KFFVTk^F@6k=i;MVObe$O)iv-3iw!%+D&y=!0>rrQmi7xWpJp@yN zqVXK{Tn67&WatNVBGltC^U`4IV!t`5b{aVz?kqT-ZTAoQfEH%if^fonyU|YTu?- zEL0h?W#2`EY`ZAcpM#NuT_e}N?=f4%LE1F1!fwe^uZteT5!98d_~Dd+PJZ-|qCSGE zp;xa7di-|IhYvxdcf+O5++{j<`H>TDa8m6>*HSVyt~OA%rNfk~Q@>KTaA{Wo0b2R9 z2WQ|c*a*ba`K49@CLWZ(*Ne2yrRqO?ufbtyB2t-S&k!SjDpfv=r{GM@1ozAByGMV6?#0zr42PFs=#McwP?^9{`N8nl4(5Z8Oyw!` zbvHU97p4qOJtk=J@7P6MHl~*`EbvDDI9i-EJ~(Z028*C0V+O;GF-1%U^=4D~{ep{RU@-ca$wOZm zks{Q=!v(UOl*agTbs~Pk>D-poPPE1NvIzX#0s7m(Q;K{$-*YF>REGzxhP50m{Hu+% z98cNA0EBQi6I~cS&>shfeX+I{3>bKcdY3FHPG0B4xBZi->PBEx2$oqU>d} zPi}P9Mb#9a8KC9Bc))-OeRw<0!GBpwz5K*gIM>3k2_~G9qmtTr==>`=;tt#M068r~ z*uHS#1)HhYwv@E=s!c5a>(d9>k8DF zBNuf|@aVXb~2e%Wr16Y^^}XZxVMchAZpi}QVKCCSq_c#KVae9wQ!QnZpbu=rhN2u&Mh z*=+O~I{G#f=RT&E^5R1)xEKC;C-m^JHh5oo+Vg57G{ObDbv)6t*!_JS{v0vU@0AXOVtcL<6p%vIA0T9mhbS8r2O+$PPQ6dV_|%`IQKlfkb!RW zHO5fliJ;I67Xfp(qKVELH_9VxALoPyj5fB*I$KaEYjFy9UW8>nbmk?3T``V}TqvXpQUWXTX>e~0$@-2QnF-xo{`lMNy z<74We6TL5``kx7T``(oI3F`0=4CO~`I`KGWj!O&Q@L8y_h*$p`nZzQK-P+<+kz@pKxynlB`7XSmu6=y>rl zgfE{@wjVy8WQ^!*n{1u_GV-`++efzBuO-X#*&L~7;TxeOixZTSZezDU5Ut<)CEbO0 z5!i_vd{=KQUKmR?ZUp~cC25bL(S?b&Sm+fjWJlNIbD*`^;Z1&YTc0_PujqeL$Jp6N z>LNc*$lo?kw`^9PV_TH%(_r=4{b-`amE^@>^=+{wl>(V|5t-SUsqnP3)r&IPhr6&| zG7s?XMEnW#K{4~30IxVvU&Rj`p*8#HIeBYgaK5HWFW>?|LEw^S&L`H2chyVq>3^uB zb0|{72RKed*JL<*v7kHf@J<^N_l^7MfHzv)f_Heb(U0MmdQ-+u!&_Cjx4GumN0Jx$ zdq-ko(WynpB>i45LX^IGq)46E!+XPVDih76E3ir)#0}_5cX)ew8NRh!Fl3Xe0pUHo zuJ)U=fx}<6$*u#no)1ol`;{q*n*|x;!O{QRQC$s}{_y8KcmpeQ>{`O{lc|@#Kt$dI z4^I+xEMu%6SaG9va${4<&n%wB?Ar3xg;?j#H~Z8NUH+;bj5aqzJU%_(D2URQKV9_Q zpU;_i-Q3<}&XigOO}P|1vQ=%G&EvuFyW`fKz;XSgV2g74w3V4x#PK1a^Z2E&;c7a^ zXA6|u_Pd`xCH|xbOWviscF!yp20rakobm*jJN12?`_reZ?fTL}d~}o`poe=np7qsI z(Pnfo`t^AD;Vh+MVf>+Y)J48{W$GP=*W}#ZJVm~f$SQ$jw~N=*J-T}Xa}2NpKEZhflreZ01jt@FxWxpZ71-dL05Wi7pE5d> z1$T>DU-Z*~R=&Nw9eo0OC;qJopGL$17%{L80^g6Ml*&g{D|Nnz+$(=ooQm+jIlr_5(@RDG&B|6WlRx^(aTx2SKG+hP(U1HU+!t>2XE7Px(WjMr;&?Y-C!+i#Q!_S;8_5}#^CFuEcunaoY~50%JDiplu(Y>!W|?H-uWqq!xxh1Oa5Hd4sFg4 z&O|6dn@`lQic)|e(@rBPTunPGkK+rjKEMm66sxBRUiP~yPB02i9g@$mW0Snn*pVhe z+bDJZiYs24^6?EzY1LWz&v^pshwU-)gm!}Z)!}UW`0+B89}?7V`Xbq|7eBuY-30!0 z03Hc3fK1fvt>V5Y>;2Z$6@_92ct`aHG?<4NsMX3;QIcA z>$Ut}u<70u`U+|A6*HE;y!+4zAH; z+J5m-G&>|uC*DDxP82@zLI=cOgQyk6s2P0jK*5Uvn#a@7Okw@y^{$k_jy!8{5x)0r z;`STQdf)v2ameV%m4gqJHk}xYU4eYvaeo12X4{e)3b0t z*m+nJUh~rdDgh4{90s7p71VGP-(U`mz4*XC2TnaOt&{yqj$ipJzf%V8{kH17KM%J2 zlCO*bvUgX(F+L0?|2oj>#fn~l(Jw8%?l`ljqxMz#k+F5yfQ`Wb0NkJHdSx&|_1 z!hwNL{r@wS-WqhKe97=y2Ah4**h{^0D4TZEsAyD?qGdBs?)(u43XfMf^T)T~??Ocj z4aY{ei>@@XrX+dddTo>+h|+*NCyOU(=!3-$$mp;8OiT7Si;AX!5?P^S(a6?BG&Dy@z>UmVeOJrTDe}@|WW2k4L3`XXK>&@x;ki!t)>)|fj&)b?j=K+r1aDZJo` zUI4;_ZvNA&{GC7T#CWpuzK-LAQ(geU;J?-gzav}p?mSyaUNw z5+o-U!Yn8xJ4rm-?LfbH&Sdz7jRQcp&Fe;8qqkt`*ly}Yn+hSUod@%%a@qq8v>muR zv6F3!OaTrrUBpY<{o(Ur`*;;uk9X0haccgQXL7y#6d!d^%mrY5L0F3+i^ekxS?s~K zd`Q1Pe$fl@;nkYxyuYtj&EDh7yh5t=lIM&MO`Nc|aPa0=8G%1K2M-JT;L|ZR=o==c zuDRySr#+fE<1skFdmNNZ?qq_$^y9#>YzoXPzv>oo>XD~7cb)@7w=>7% ztJyPE=!{>KG{F32?9wso=ufI%2vIx*tUjv~ywY{Dy&|b)$>aZhCx3K71`F=ZBQyJ^ zE?boE)UjW(^b5#fXaU*$`hM{~)#$EQx-bV42aen2!K1v`13&8|bK$^E5RYl=@ilQ6 zrqC6S%-_V{m-y57Z+E>Z2zM5>8zX{KyK#qK`$O?H@*VKy_;l7eI>xR4#2$$s#w%%h zZS&sIXHNe4(;@UfY~Q~9vfbYN7DgYplZ(gnc@{FyvYkc_)iO7X9A7_uOk2O(?#oy~q(*i_sqs-rM>zcl<@y_nC*@hlQ))b$5Kfz?*rU1;mGR=^piE?*`c< zdX8E;w`#j{lGGcnA|KhK$=)S-@ zr(w^;gFtTra$H~rX@t>GY=|O~qc-5wiDYV&+P-g4beMey1`STB6TtCd%xM(6ARIQZ zv%na`r6JBBMhg$V@P&)vPwjA2*daRmh*nxrxYH=F?-K!=fWGKYpd|0`Hz<-v{^a4T zbYeWRcYu{mT}PEc;c z#S^oHMxQxHFAcTzVTQ12IuU1!l`h)Uk-}Eg?gj6Hkl)bc2L+vd4%$)V$ClGs3}5(> zdKXR3L3Ob#@=ijVePWAb$*ob$0>7lldp}f=won8Cj4tcBFXQ7Gy4wco126Ud8kGn4l{ROO+84J z_mQ{B>B0}y(@Wc#D=IQ}d*a(*)25?!C4D-`_$ZmknDf&NUc8uid-nM697bHtMxYS&8OBAGQHE`|MR!I?YD2o?e;Eq4=tU| z=wa-(YqK~FRM^G91^YfzFL|uj6_tmFbQtN(EIh)oZs%5irKMl?rYCkSkKwEDLQEcA zj^4-5=n6h~sJtk0+PD}19Y@4zVp~^@W}v$JUTB0|Q~6I>@5I$fw_JX)hnL;nMn1`D zCxpkGX?3f;wZkn>nAv4YUSWc>b`DYd2}UWWu9PW97Efb)@;aXUUI;;GDD7qNOd2?{ zY1g3xEUE2#$?QD(tiK0=JXQ?0#MV((7sA3s@#UA(_^QF1_JYCGz+aBh5mQ{eXrGY; zU-uYHT6CpX9#&blaQ0f~|6eLE>Sp8f`j;6D($^TV3tItcyMs=h{Ng1oSBRb$q4W8c z?)*rVIX}EixXBNm;H_Wgu>OZeVX{U3rN{PRIi@e^RaUV1Nh`1WD9*k($LO_FZL3a* z2W#Vvv|{<bEE6-lsY0L+|=h@ySB%zPS zUT0#2Q@#>7{+N7u^yS20*52Joe7u7zc(ZRC+vP>mkyz)-J;7_sWE$ADFkAV^*2$=S z{16UWgl{;b?&Ot@K0f`oy2*#8I!vl;JAHX#5Z>F5h_OklzlA@VDKDi`WMmn6@ZVUJ zxYu9u*mvwm3xO-G9adQfo`WmeDX-GPSDwfKSI*@*t`3W7QuFFdNKV@yKgpIs(fCNp z)8AE3crd03JN4^UG{zZvy)a^NB-s;V(w9_@_lf@`C;Ay*n$j634FBc5GI(EYXzO2t z5B~$74HHS@J9E6s{Ku{H@wL$#*rrUxfI4p+-)(8UR{rR?LIxKdbsV>NYj)KSUY__S zk+}<>d?%9`Y2ZbY>~mtFuy>I>$6o>P|Hi2B2-c=v`|H5&dJ#}6asZkW-Aubp{dbdn zsd6i^XU{zkkX?P>M2i12b!X)1+o4MzF10_HgUGKg_?(8x-k6a7ygCgI3siVB?v+@i zlS#I*)vn2hAh_^C_sjR_DF5R(vlzqnh=J?eq^EPf;7wrBrUDmV$l3Fhn+n^5>BKj6 zjWO8~#rj?3Soq*x_MH@t_l1tkds8R4$;__o75feEj;C$c?x;qO{IoCBFD}fce(^gW zKFKhPeFy|k{M50#?C48n?*r>NF0`*N&NC_YohQ8%o*%c5=P%n2nb02&WSjBbVA5@#FT7zyG{_xekBHcURQo@iw6Mz1U|gG`5MoTxipv?WNeXt;*|D?&RWcZE4YKdPaZvn?|mG&bTO|)OP%;h+jf{U zJ{8-H9oLs_*ToikIIF&s=LU?F`x);po+Uce>;g5cCAH26@4iFlIX)MDwe9HeH2J5e z$IioCR1yEIEzn=*^`U=mkuB`E|Bh4Ajn@YF()IDqW3!rvj2lR@kDksg@a6dK{#!r3^V5%C(|)uai(rqGIt#mr zw?0Us-=fR=@aBfo$B=UOTrc#7-qDRdp>EOh>yKC4p?5&Wr!vQRtj{K<9TMZV^X>cH zal5&F$vhD+p% z!sR7@8ocV5n`%qF@SbyDHTKR+{VSWaorH!x3^ZQf34+cg(d>DS>r-Ka|KXiafs8+m ze>)3}KmO%^^&=plr-AaO34Ts{*WFI69e9oiJY_l45hb?{9Oin=QR@(P_5#t=S%dQ4 znTJ+RFxb^nSy32A?{R75UyhwNxHwH=oirPl;dBELTq%RUFWoP!eN2`7KBAb+VXcL! z1%6~)fvKqSk0y$<0e$c`W#2}>gO|t3&uDuW$24v@6&Is}c`Ya}y$;UVbTCl*{5_oEv~ayZ zkpg&%D>P;yV*Gu0pzR1pSIsjJPG0NfjBdf@7)}%L;>)p(eEr%ftCea);z0IxuW|;~$YdZE0cYUfw&r z?~f&md!?0M3R|fIm`sTJc!d1@f6M#=xAdSb;AQCsiuR*w?RRpz43Idqj^xuCR`K0h7WqBi|D2JM$huv&)08cs~!9I zgqZ5@b&b!ucsSzn2eHiL9zVkl+K~y}Y>vUy7CGjxrCaPF8=ZQjhcZ{JoOn8qVRa!t z_0^@nVAGk#;^%ji&U>&dW(X;VW`uV`}lN7WJZ2OZ8(mOuQ zW^sZz-jUSDO7{eIw%`h%RkQOs2)-~}d*gv$M~d*wJZwl_skRNw#2q!KJ(lnMu^$>H zX3eY6+UZ+c=pJoyq$%_45S#dzz3Ia&Mh2FB9qCVY8Xdo@i{36Gyi#HIG-?K=uw`;XS01WtEs8)X6?D z?XOhDn`4#mmRxaU7Qhlq(nmC|U^n>i0;jv~=nNfvk;mjwndyLbxQBt%j|@46(?Wwq zB?}_>K;k9-+4{-2%$|rA1n2$4!Oh1@^Q`X^>zzWS2lgcs{PT>V$w5+jm`S}mbv}PS z-G2J|al1bF;-@d|K4Mb4jPMpX^){tP>+VRZeuql6iYRVQIU4*pyrj0}%?=t-K z@nrjlA5OQgS0~%$A>-Oh{NAMObo#+LWrQvb0Z6-h(u6D`w^;(hS5Cwnz` zXWzalMg78h{$3Z9_B%<>jkSZL3-mAU=ps}6%c4PS2HrV5oV)#HVCJqp^ps_M3vaTF zZ5taRH$Ct`E@NCx@5Ypg#@neeAOzKO_B|ZiuM||p7f{!KyrT={vyWHt(4J z!d8z76kBIc7lj?&*blF?BNnqGvB1xM`T;bSOexD={dGaR7h%X#{>YR%A=fb-odj>W zNG9DQ!`|9s@xsX`dycLRPdg7OJGx7bjp&&j_)ktJ7U7+p9=Ain-lyyM(z#gh)VUbC zp44&yz+%)@?~YRkSHZ`J#gE`4OUT7n&bGU|hrW;f_U5sVIbWP#1@A@lyKVExx&=Z! z&^c~n*U)@%muh|%w$L_47kA2c&V89zymeRJmye%P@0fYlQ|}JEy}jFRzu!?_A0Ix1 zS2yQ)j5{0#Lv-<&J}$NRh(~b~rMmy|hs*8jmqX%Ppu*RUF9zSG>@m8IzI^cG`^|H= z^y(d_v$;F(SiT?Pc^cpJ*MAI%bBp3)jBNJIL2npJ&1tWJ;s=2@{^$o;QkCqG9|F^x z&XQT54VC#&r#nK;IpK~?gTC>iFoTnByQr$JTy%odScVgjX88->Kd18$4Oq0*TwekH zpMQm5vi8PNh5-;T0X2Z~x*FP=apozl!O&O}a(r~d2|~$JM{t^kvT$&yu-#59XW2Sg zC@+Bu4hpoYng62#!UiuzErn442kl_0H6a@W(>T!^SV_lLV(_hjU4P*}EZeJ75&GMe z>wj>liN_Um7hduXZ0e^7zZzm2b^fV0i5?AN(it+8RFVC|Zz)iivpNfYbxge?zw_^Q z?REh9t>8U_jKD0GB1f-UrV;e6wG_-CFn`Ib3<+dM9c}cSEbcJ@H7xWFFZ5c4?4yJH zgS~i_kk_7*^)LynG&V}^oc4U_jC^>|Ni`?=Wi!O94)El$dnfVxKAH79Hi1@0!xnTb2(&5_ zJLhN4LxVoZp%oVr{Vf0h|MW>jK~&ZBp^g6VIdq{1YY;a!#Nz}GGUA8Kt}Y%QEK-e* ziBmkuCw;$Cs2ydi2H@0r1$}XrJRPxbz9e&&6zUe@fbLgoPJ7k#K_pO*HzC_-A z0WjmfbSB>0U;y>9U4Qb}NbrO{yZz^X{%yNWCt`qdkN4RB)75o@x)5bh@$KfWw`AYm zzijsjur@aaKBYsbeL~+r57*jRCyw-*BC0S!Gl&!)yyuZN0u&BHfqrxB3Q_$+erWP{ z`t|q(o@|c~{7HMKvE5J9p=QDr3xP+QPVhSk?N(`$3v+Yw*U1*2-r)`KBm*CL+LrSAU4OyhUy#FA{%IaT$m80-2mjQqzA9#l?P9@X-m7mC%^ucRQadI!0l%}&#!m&L=5^^ zgRlk5KRPHat~rmB1u1_>4gr+pWDU&i>rXPNne})G9$@hysR$PV-b}KuWbo=jyXl@w|;I{P<+? z?)=g%+^<*9;mMvp*=0;Rdo-w!VC8kkF&b!g@w#iiu;3IV4~OFuc+wG!yatez^mKek z%S#?!0vo{MtuAbVt4(rT9|;uR0r97^OsKoqm2Gq|Hm;1VLoz=@Ycz0xM-u^kM_>{s zyGOTW#v#L}4d-Z8uW&m~UKbf4Ql9utB$K$2PyTGPh!-7%10QPZ#UT_^m*0rZV;AVd zV|0M;!948<&NR2?9Yc#glT{VrPr>V=@o2xcYYZ7gnG9!BA&mCUAikIL(jJh~>0L|p z=g;D*`NY^dM`5^M?@v{eMR+P? zQvH&Qeud{t?1}U6(pZ$fJ@v+?c~weM+zDi50t4H~Gky|O{71jUcJPZq$#X+ueJk)K z895wuQCVHM(njG~e93y7$d^*_G09H4^6QH%mS{6G$sPc7s_PwJ8EhpqVW2mDD;}i% zgpRL4y35Xr*s4PPCeUz{p8VJO37q(wIMP_6y2TjM?nu@njTB+x-w$cvZIHa~8(ZLW zTAOB1{$#+b&IMmdnMVf6S{dO8P5FH+F;($QS#5(Yv!IhL`%dP;7=N*UDtJ84mu!70 z*Bz8zF?4Y_v|eLEs#s+8E-sV#E|T$=P+1ogdZPojb>GM6G7u)%hl{7^He;y!Z~e#{ zXS%u5mJi!)#&dU%#yF`MK2n>b(y}{;bi;mUIlfy&x!Y}gwam_WuL+=7i zZgm*G>onQdzmnCvMd>WZaCpqoBCrnuIG+!J+2}0vQ`t=|0s%d{kp1aX<`wt<9eX@% z=jrgTFF$O5`u*>=fBe&@?O*@$we%H@$L|t9 z8XhA@_T~o|Z~vAbzWJap3>$jNo4Lx!(HIbTO&xwX#Eauze-a<24E6VV_{gp(qz~}{ z$I155kvXL4=q>*{kFlKHwkCd#pYiM7n2C5Xk!*hicuPvbh@N}nb*-X+1a z6ZF@ZsFem&vf~BOW&6SGcd+V&jg|FW?8=@q_CrU!hWU1Xs5baY*~bq(CRd&XAuI)U zctIub*@^Rfj9jbT&Bcn9RFpRtCARqFd`N>0E#Bga6gw@jI4v2mC+z@DJfscuMu?25 zPdGdqro6skoE`iY%-WwpRUU_D3usz}d4|RM&cgr&kFQdnrM|mHFRxy<&zXlEE_`TG z8;D=Zr6qDH)j?YI`}f*ccyb+^T;QMI05&qGxS6 z$>ZS`22E#Qli$u9gPw^pF4i zZ+~s!?%S^HXx4t@6nw2TL!o+W)j@L@B`_5yZ|4!14klCRaRV@`p{(>8s3U}CZ9vz~ zLqmp|1IP!P=~~F zht4bTQIy9Er*WkqvXO@~amwn}r41S~0L3N7$bc5X;ACX5f$Ria2d7pL3_ta*$cKUe zY}5qS^_OaXdrm`yclbs_Jz?3MSUEKS7m#u+FzBpwneAxg;Wsq^yBn>%rl|UnmyM1D zE_q#8rA)_u4udzyJ9yJ@U?D@VFlht%31V#kfiJJlD}mtY)SwOR)JsMndQ6%1v+|!~ zorx2U2p*VydBYJ~YABjuU?XpBpSsF=7h!_+UL`VVXif$ONu8?O!qpR05Ldf{^6cd& zv$XBoVW}8A^>4>J@9bOMH0XvS9Yx^0PmnM0>+%(t2G782V&x4@baLFbnKX9~qJv>@ zr1Wu&L@FIYaL#)@1TC7+j}O+j$TxHnGMqKflLtm z`}PpI@Sp=q_wx9-U0s~_rLVrOY;o`|9ms8b(;a-z(Tz^Vc=GIY?!55m#K=J&?KHvL zl^tJa=1=JbeAQW-o)mrL+`ImIH(!+NQDb)@ve_&Of(ow0{622SVgzJ~y5(p#N0r&W zZ%K>Z;R7bO1BUu?j+58h!ubZDh&~Mr>5p9>(~hV4pi`HMF8PazO7sg)5c!xu{Vb4; zJ+b@ZrZf|`I#@zy_YKM^_rZgnh*bkm+=_bo8bT&ErV$ z#SYq~!E$WA9ipGWfkXq{_eowS?a^W53%Pd?{pR4p?<^V&%G7V6{Zb*}d}==Q|(eB|kMLzdp zDSP^m_?eisCafp*ziAWTN|PM;M*|;$6a!kHLXzkXedmkUj_ra?eE}Em_{Ph$vt?K9 zh+J>>7wh#$^(lDce{*MiFeb2*yE?3F{?GP-9U@Cf%5xB0bEjtbX3z2+nCyEOGPug= z2yTl~Cad`5Gx?c}cH$cujK9ij{1Bh2!4m|1DkZ<_BLvq)_P!@7G)~MA{K-!iTXvBu zH1!FMNx@kx$uIx-#3Rqtq}fy7 znN)s;_B=v7bQ_G(4+7%_{!v#+9zBWi`U`Cij&_i#Lar_%=0^tnX%B&TO^$sW!OX9u zj2ZE@>(YWH+s+~#0JX?$!vfsmHe_JjxrPo{aZ5iPt);JfetF0~JR_sm>gCm z@>1MaQiPWIQWxFQZ-~|O(Z%1SKHeETCcLUrj5tyK<#ZkqOuP+P^O9-Po;#;7-U|J; zjG#1`9NC;dZ$X>AzFI{DgYz`)06bb5KwVy3WWsM!e33EQ*><=*$>cZ_(a3z^VhOe^ zM1&U;)ILUtx9l&>Q{ZB!=!E=dX+LBT%lL@C@bUgGP^YPXzTGF*{C4ZzTIbt$U$oRt zqQY?5Hrq$UZ5d-uoJoATf9xEi@12WHTqria>sV`#UHthp6Ki+d@(FF5>+yL$-PluE z=tg-kM_-4-W$!NXL6gQzcNS^~)%SU1@Cfti_J<#@x6jejKm2^QeYrS|oZe?metpJq zJEUD+ohSAm?_!(B?IJX;FV42>Tro#AZ=YmJVegcVAFPW>{oq~dkLlpq;FNMbqEBR)d`!Ygce^mOZ7?hd4tQ zu=iMr4v*_NH08>SP}$NA8(r8Cm$EZfk{V}%yBEkRO|>vS_4LrT)VOGaGd{J(){QXQ ziz2^%!F|s%cRl4Fq17=^fD}eI;Vyit6g}pr#A03N(9uB=P;W|%i_Ps%<5%(0;?r+y z1IAd>?@i+8a8jB%E=rw$hsNr|Mu&V!{gL5n;URc=ctFo1!`|l}KRVN<>GElwJo7Q5Lu?V3jdOe|QKZ(VLjwSQcL5m60>&vE51L(fU+=7jSOT)J0|O zrE!nmSAK9aaOmsbPXEWh{LjB)2;vzi2J!GwWOeTV610;DMr_^)FBpMqz*%L18%Hh4 z=JzNWYhX(gb!&Nb`ur{C14C#*SymOF^P&ly9Xt(=aoQTa<%4equWKt4DI+jt&+*6r zFP?Uo%JNpnPD3c2!iV=55my}?I0BzPos09)QLwGvVU3l8ycb;1>_*P;6VhN&};<2y$~Q=}7SeSA8`2E&TK|<;7KMl^YEMz6K@=jL%-A^ZeoS+4l9*MLLzI z1ow;5{q_6p_U*en{?4{MPBW&I&Grgz-g-q%Eb5eytX~I2!!^u^i&O3&l0^SFXz4EFdbLhWX^lLcWCIK z=!406ca&N=EqOG9lN&h2XD7%3=A+tX7m5O4(W$qH4Z+H3I zQKl@tOlTNf8Te{HU_rx!@16ggkB^Kk)n$8SK8#^Pt_%``-1>g1$pfp%$!q&_oSkEX z3-TD)kU6&!7~C4PH?HOU6<^NC z+<3st2|_kOd#oJ09kIbPOOx<%@3QEnf(N@+6O3OTWV>l!ILUD@_BM z!0;7m(OdC*oiDua)532vh{b#R>pgG5i|3UeTwa>yxoIG`S4;xuY~g_4R(bdHJ~d#FXaHES@LY$8{!@AS z=t=tfE{x?^E*~&ZU3hKA3hmFMV;42Rn6;7-Yr|g3;c4E}+%fiwb$C^_?%;zKZ(?}k zOmfL!W2cExv%OEt4{Y#hUo=>{_=2=4ePQscpC4YuJqyo`h4SEX zMDIDIQ+;aV2H#2k+<}6IagJJQNbzGn%Jy*Wx*Pch0$z3Icxu}5UQsTkJ+^O~DE~9= zq7&4_hw*o3bLXAKIp$as7OA$ycP5?gvXu+7i9h`HwdPG48OzM*R-S(y4}gjet>~Qc zN9QA>F_y*WXsZ6rP8L3zf=_eyQM&d`WC{wt!lrX4(T+#Iohpqj(NnwoqHthAg)TA< z4?Xa&DLSgX_gHO#ES4Qyk=-3-+O-9>K-K1WAP+HSku0Z)Bl;3GM-Mp4Up?Ui0{9hz8e{clu@Q+|i0FXx#gpY@Bq z-o15wnf;luRmObjX#4o@WyW#m;h*n@NBx{dMhl_nefoH{efoUa#e*Z^qUX{>l8#T$ zdxy~XZ;#t|cM83n_px0U58a?ZY!_dnxwMIW+#K7ruS&T|@Z512EoDsM9nLjyDjFjh zo6M6nqr=9O){Xq(W%_~fOFFk8!4!P^aB-*{78&Pe5_BfEUqv4uuP?G40vGwy2+rJz zr*`ODD9rG&{JAL459#jdA^I^NjqQK=#Rn7SvE^uWyR)^7Z*SK_SAK>T@eSDPn z{EbDj&#^Jr&W}t8ji1m$#QX&t_;TS={+i}2TX6qXM8N2iTU%7c)buv70E zPrc%f^{S)D(F<{@Ye5h7j_*~MMPL0KQRxXusznyJ{hHh30aCZ_nsN|7~siQPI^ zYi{6!TUSLNl`H*#F_O&6SX&Y^<;ADXNA8q8Jy=Lho#}Q`i9Oi zUcyFjvYkaneB>9rT}X|S&3G9}^a8)nv9X~=wO!;STyLlU_)q`#*EP`UN;)DM4@ICP zp`1Ud!Hc!ZM3gyL3nFnq`J8DQj-ZixIbID3V^vC0JO4#SB+OrfJ0a{jI%PYLq699f zN+Ce9wedFIohIj9_)CrUnl!ZGt+IiM(r0itvh|>lU~I|9f)c^5%1wTBl#?109=Sn0 zI13V(@aXha?&j&V=WZQ^T!=o@=@q`l3At}#p8m;4G zghm^eR9VO#_ehZFyWiA-8a}$pkL~$EkJ+=dhKF8-g^HERQm8UkoTa%UAbJVSOx2RoBUziORH9 zgTT207GJ?XE}}Ag**<>!vOU~A_5FS~_fOlyeS+QX{dVoMaj5ugdj?_s1bqf#eV0a*RsS<6 z4A*>gu0$nZrUP)x`F%PykNdjn+%H2VnD&-%cLnYXfox_o<{15qo;sk&Zw4UoMQqS* z^uQ^f~bJi!z?wXL#LVoiQ9 zLB9qsPIciQ{s)hVZz;tlD-|^uI3oK>^6)^1<9|3DdDkMd68_YI07LbtZ@ zPsw^ce#M#n(%CwHU&i11VTc`WQeg8}sdjk!te-}wFs+U36L-PIx3jg+Nqileco}|P zWdoRPEr2*SY2mNSex++4D)^JX`q@?f9^Xu`rfs?6-uRNV;Pnr)&-rAvo|DEaz8agq z@fP0@{E{p#=-my5JD$oQx_y7>>*t{}uZ^?@Fup>5&dK){GxFDVyi)I^ z%f4+aI3&3K?~+=*`?NIzUzyPw-Ly|Y=J}y*Oa5yNNrJbw-t9m9f$RV5gCj++@x-lR zDa0WVwaO=YIbQXL_Q0-lH~<%-aVE9X{&$dgP0E18p5(6YXB+#*u57f&jeeY()kgC7??W3k~2Ql&djZ@L+qIA3`=%Rabb1Dv)dpAJ$me16$Nn{i>New#Aw#A1^> z$oRsQ2WM}+NHTcd;aeM!T^;9mT7v8S1Q8*h_8nG*}}779J5Nw8g9 zuKn3~cwSFz%;He^l^wl$&sFsn_!pTg|vcga3Py%uC-MY~^lRVP2brDglEkvQ&d zu(S9L){V~_6H>o1Cso&E3_!bvWOpH$-h-fz?1q=#HCT9fu#H}L&qP>@pQm_?#6vx} zEW~<@&%#r05=dQj`p&)#b>YC*`QdcC%4FQfI4%z#wvV4qwvUJ7_Q#(;ZvXs`KV*z` zviVMdUE0={1zrpwyVqY?aSwj?IQaZ z@A3?H)kFQ)n92A{+=_+RHN20t*fCr3y&j4Q26+K|C`%I2SIL})VW|_>lf6U zJ)5?FPn@hD?Qs&BvEeN2@HZFokB`QR{37)_ZVo+m4lZLUkMnAq7BIal?6=#8?YG|^ zSUYlsj}Pa;vt|5x+b?>edGp&%7bzdSy5?@{d#hibFZ#razWVF+b&m1+vVHw{-N&#k z=JK_ESvkk+E>O;8%;t444sNNEw)3cz`Ko z6RXFc@z*w!Z9e`mbGVwhq7hc0(?2G=q4kt9} zI6TnAlIeq39C&w@fo<=Qy_RN?hi)cTYJaI8d9Tv`y+)v6I`!|kh(AZIkH?2DqJQ~_ zFS^XE7hbbpzL|Noy9eDA62oi!-AB*qblS%_j=r9K3={UW(T=gT+5XB%U@rEj)xi2d zQsPtNUF?xP59#B_?@||T`Lumk`?a$0Q}$>6MmGJyxtJI@>~&sOClo)}FslFKKmW^L z1(aTW4=RpD7%P>XR0gO5?0Y*`F*WU3lo5!+z)qmN2}+=IzU!rX%9>y@4NdB~{4y8C zv^@D8Xym{qMF$$l!b^pMoD6kL@Bys>aSLAef!!N*8&sJ|ZuT`}9NA!}JS2~7=$01| zBm0I5EjIA=%)pW!N4@(aMGY4D0qbL6$!v|(AA?Uv(_6L4+7aR68@U33^&A>l7arh1bQ@-}EDaV{?ZZ%Kc@K6)& zXeR&(6dZ17bNWuEC?$V79(t}N$x_Y2w$n@M%kNW%E_%f|xRzYw%<9o&{4>X+*Bpk` z-cC*r`|;?6r8HoUA3U*NWmh+8CL*JcrK`%y2W8R=Jc$mCe4ho`iYx+@Fg&jLP{%0@BF0Kg=zK_xlmZO2it$jnd5e|=eA$|Eb? zP7>U-#ksmP?KSlhkk8IC08HsTz6+9l1w6ENzSt4sY+m;435m<|@b+?_&LR9JVE)(N zzHQ%r^BBnE_U$f{gNsk8cd^~xJZ#^R=Tql5ciAThAI>kgj~_2L@1DtDQifaM$2;}z z(=oZde6*Xww0&2EZd@6_fi z%@RuBc2u8HC^zsH2H3@-!({sp^6yj2@=yIE{>7taXm|Cf;7d)sRrVA|W-X-{8>0e? zCqjd@3;p&Stpk=v74s|ad~^+-UiF$p2c+tqhym3KP=tRL4@VQ-RLM3d=}6Ma)loF| z6w`T%qhxf{!E=$9z|bAOCXIc_zRTZz4}vFrN8S}TCfQG{T5!eD0eAdow=-SL-ZnVL zSDf#@5+233f!paO@f`!$WVDa%&?Phqv%{`eY|KP;HnMjRP#tE!(<)B&7LMi*z2Ztf zAFA)=yt>o7RRnU5UrNe_oZ$pcL(s8f3lL3CuY8xM+3Hh?E5L>?`79f}IR=ZaZKbi{ zo32_1?7Ote-BqW z2NrMAy1U@D&&w9jk`z}vh~42mBGnj>^RiUMI8`1Vv`a9%(xxSj?!dH?wtz-po0EJz z8ppvggGG4oDvShPR<_EXgINHwjXbqQ>Z>#HNW1`x06o*i=%52t{6sFy00z+@&u6Rrl|cwzGJ7 zNxOYN{%i`4@|2C;q~h-p4i>M;i5}{AITY(gCmG5IXvQHDd|>CUj2_}Wlg54(vbs%P zCQIaPjh%jFVaue-Q?D56Qu*qkSfwowzv@cP)dSb|Jd6%~cF&JLpine{@0}xoX^?K1Id~~rb zIBedXSN_7_g}4zsjn~<_fJfGo$dF?X*ScFff5C}XWW@)@bKXbs(iK?L6H`sd&o81c zJ`tdfC$jMqu@yWa&kw6CbbKd6xa*Wc&Tkm)oEJ;JtM} zZU6i~K5c*c`Fi_!{=8kB9y3Wk?_}MA-lxlqx$b}KW3C=;Ju$(5eu!LN!xDQx--WN_ zJ>6%l^|vmTJ>?v476o2DM5j?MeHf#AWer{FCw5`R2N=n}9M%tMlfENA+j{Tx+Xaa6 ze|oDQ)Q`sBZ16GT2mU0lzod+9*^Pgpt!fhuIpDi2H zN=#e0_bDwjIVo*Xsz}pyAC>^g)NlcIW4TxfnTI*tkBp6Z#lN z;rP&4%T6W}k7-x;4{2w0?#Q3{%gwi&?dHZ)OQ+kn%nvPw-MQ<~`|&a#)wZ=q?}dMK z2jFAkRO;!Q`^anzOg?J7fApyGLr8hG)JH6&y|&jY-s4lsqS!>WbOJmn?JO`QXDKPV z>z&HZ*$!@ci~{(3B#hi?E5ShoNz`h;p?^xg3uJBI+D&k@_0$J)%%7t>3nFlvbIwJQ z*f$7WdW)t*J2c}EjZcUqxvQRC^=pT7~urca`FxgVa)l;mjsD5=+c0|t$_|r3mOz9 ztw~{1@_M+Jw=;BV3!Lm(2uXg*hKE6A;~4LG;h^~Ai|Rno@&Os#`6mEa&8=!<^mf|C zlMZ{~44oOQ4BcebDZsR0D^aef+4+~P!7sYd$R_}femQdkZFMsN)ZV5;sGKE3$0j6c zTrv7A^s#hO$gRilcwUz|K%lh+wj9* zJ0SJSXGCG+9I!dRYF^4b#!!|umij^Pan9_W`xRBsN0-vlcWDKI5;l_Uof7TXLfkpI z8ia!vocuU!j#HL~8bJaVCIWk&K%`h13e{(}31|WYU62d>@K8Nwt50Pc8QP`fDAHCA zyo`S~rEcX*J&p3D_4cy8X76I9lL*6a(D1dUMNcYS@<%tro7#b)wCGm5%-`NVgDZaq z8}%7^gQfw$w{(X``af}tbnP*Eg{1GAimr6PWbK^`zEXsD5i{oohaR8sSjWTdecw5A zmvQ3vdynS|VhLyo=C^klK;36xm>~Y3BgnDG+SiL>BW41;#lMs7`|bDbx8J^Jz;&1U zAGW*f4Jhw3&~n$GcT9!CHdcA321#O18($RJ;fiZ7ix>X@zcp+YN+2hk~*!I z!!>DGseYR@F&$6Zu;@fr(Y=@f!Jf#!^nKE-j78L$HeKf#mcj}CO zt8-_&{IzrT>aFv&!QrAEEvegqX*OJ~izbylGdrA^={4ZH|Hvg zF<{Z1$K&X;F(h#FL&0}+XX?JsTj}re!iVFPFK^@q zV;rLmCqK5S4Zvl4Zx{3>tcs%+lm>}*KeU|FgyYtWui&qKmGkkx?BnuF9=cnv^FWmU z(3x@r)&IMMUiS?sb6$FZXV>K;c73!yu~vB(KV)WuV(>(u#Mg;kwj9G-W@2}HxQlPv z6IK@u%NFJrB*(Mz{zaGGQ`G@$@M#PB*S_~B+f0^#rbZCP0w@hnJ8lWzqFd#wn}o)z zKRJsJpxd@M-1WG~0s~#-W-hi^V;%Uw%)L_+A14p4w_|dG>w-h_-|8YT$Ef0CEz~bR zeAChV7h}XTJZc}so!{%7yi#_BYughyjS!-p(CIm4^|rNvDc&Klu4Nn4QRdfO#1CEJfv>FjL1WkaRl{kev0v<-ax!+wKByA zrD@|-i!g9a`wXTLCpN_qTH;Nz%R>GEQ78Gm^Cdp8d<_oz@8XVn8ML@Tp%bsvVGH?Z z(TlFAcN`_38+mUUxekYm-i-sVuV`MJT;$lht`fiN^QoUnbm^u3dGO=sJUA@?+T5LI z?{zC)=5LYiaCy3Y{&>Fq@Wb`?!TyMYs`O|h4nt%BD^Y*WQ`NQ_{aF((|%m3*w|FHe^yQ|phreD>( zh_Cv>=sY^i9>;Kezg_KL%RM>uZs+jnu9%DPPc0UHVmpfnd$6p|xt4u03v=3MofGql zH*Gm}y+^I{C5x)5FmWwm^uX}Y#w-3A#B~mLOAJq$;gT*EbOo4qqnlWE&&u5qYO6uMH2j52t zE{HRK%D6Qe3keG>aN;R3rgOExg*OW$LQ&8sfhFVki*_Xb%w6TtUGm*EEPus5<@}{c zq7nZmcEkqp(Wm`RuC~SS=FTeRVAX3xDsDWql?kwkPR#u)C~@NPXEh~ zMwao@H~!I~quPP-lgI;oI6-0f>_7POZVr6- z#{1qmROcRHob4^zTkLkX9Lk4-$KJ2%PhO!EB?U%|n)rD<-lZ&at+bt4Ku=!f4zbWC z3!RBkZsyotZUdvuXBYe~kRG2swwt`n1@GfSIw1>=-+k%#?q$2Vcl?z3o%jE}geJV& zf~US-dgrcpWn_&t8(W?uJ6-b|?_xfSJWlzl^`iELU=vgH3G8U>rwy_p zvobkud+~N}(^XRPpO`c}@scB*hW3R?aZ>##IQlrem=?U1IyCLkIZ3ST5N!8d&A0po z&%{768IIWPPyh07eFxxhWe?b3lEs27=NF92(*qzF_q}U5l|#5XX7;ax>N1tG0Z8n7+1cuR>tl~w0!LA?We{*%3qpma(K z0|`)YrOn1>zRYx&;C*_y?$y%&{mX3zO}gX+{Dspspu23X#8&{h}v>*FRj?(ECv zU4a+rm<{s#KD+!H+>ggD5JnN<+v6(<-qGuPBqe;ZW#sbMK<{LZ&EOu+l;{_ zm{c%f)CTa=wwB`#d|G$a$-ksd1cT2hH0-)C@sXU4KJbf4X!nl0?wpLZ=w$(zynMyJ zHqY_$wZT2~Ut^MA<;kYJb)Di1aCqO_`bwqI{spF~>JZ-+4u;m0vC|vdKgSd2cbtK=A6e&EUHvG0ertfW+5vp;;mVYv?PqPfl>0){bv>0qbK+eBe3bx2Uc9k(9@jDbvOSoBFBQ z-%KQT+R$`2@^*|+8asgF99Fl+NY1m*U->AE^4go7W^iqT$K$8&N^%EGV|ro7mamI) z`nt$w(R$URKjCNbvwU9yGqJQ>Cuip~@P+Gs^jWy*r;?|hi9s(E({B{P9v6xVcN$pU+!cnzsg-o zaIu@aeg<#n82CsVuuqTlDoejq9oyn%9?=W#Oo}>(3gMtiqDRh2*3@ZVFgmt@br)MO zb)4jGNO$LTGMs8AP!<>GF3G^#hm^i?#m$4@V$HQ{KNio`w)E} z1JBNVkYZ%$xP&gz%|?$G!H4eo+02(LGom+c>Z`n>)Ahfmwb%jZ4{_`{d$ z?fP)uCo4iWyhH^t*=hQm%fn^xo~Nz_tmp0e`eOUx>vhHmnY=$7x6dEFyY4A?PlEU3 z_D_HQ{q~2Sf7mXsPPQLEUvEGE_-Xs`hmYIWPv_g$ujkvx>(lLbUoW}{d3CvMU%v$3 z=d11NDr1ZcJd7praTZ>;50ByBJHgCh+(l^NRR82ILW@=}+hrI&&9OQkJ{+qPY3_QC z&Ui(X(}k$uIn5Zn9|&RV*rVfv^mlCw@lAH?hd&y7Ee?%8Hns#7dN$yNIY22#a76i0 zx<&im>77a+uRbRKW&5xH{uX^6qS&k8IBb9W_L#Bn$#$Pu@9rhe;c;H$+%7bjdE&w7 zP+SZ?Uro(PkF}nB+M&r$|4iY%K)hy=tm1r>}>m>tN(iFUewD z-y@ee$e*TvpLisG6uthc@<;9*;|Hxt#&~pL{OvJaxYLfNaOZ+wgD2N4H2E+C)zWt3 zoR~-V;)T4>=ktKrLRxL3siqLy!ei^YTxHG@S$9}%5&wL>?`c*iIQtH9L0$|^~rfzU_%&(Sq3|SJ`N{KJq4nr;?Pd_s8u*?Mh#2ge1V^r3W%U17; zTt1#spS2LKJYuqK=?0BOJ$;uOUOaZX`YVKZl^EsgzoU=L<;&Ojk9m>TCV9Np-GH9R zy1O^O3Vm%SHt=4|tII0_mfn*W?vW|7@O`ht@6!p-;VyL>k(Z9Qh zU!Ev0{uCK}{Lu$;`T>t)yy0oy-#&Mp9x|@@uzmY(o|m@ctKq%-)_CJ7dwf&sMcaz4 zPf4VHeY8r(lRE^#WiI-h`IkrjQ*7bS$bEJ_ITtMno#GH51#Ug>B zBeZIV(o~b~vh6SsCxld{Hy(z!8Z!AEjK(p+me;UN6V(a09QQ7^RK#-!YLH0qMb~{) zXUE^{WfTp$!N1xpUca6JDJ=t_oVw(+<2BfZ58l?z`NG`*nRD^ee&+tL4>iuVBDN-Y$4Vh6Wb&5)*S8{bvAF`Aur+KDZ(mzP$edKM5NHoJ9K#+96f0 za?mRRNYhzxkCzYR=riYdE_?XfPvxs`%Q?SV6AV1UuVXG9b*dvag-XESC&`aur}GtL z(NvOJs<~R40EJXj1SDhcMtqm}fyJ3VqLlMKQWc@_PygOKL*FXnLsFLT)BVUO-#N<% zF1WN!`f10YJjcZ;aAhyM3&7#uWcdE^wz5AQAJTVQNK1b94PJ#0t^`ew>AIuORUB7A zzkPe?mC(lrcjsAzOAx-dxc3~K-tUls((U7Rb9a~E?n=$=_P_u8*X@_TJ#4>y`@UU% z{-G)Tw>wxkIvpxSbxpXHZ&( zTA%M5ShWpwKQXbf8Rh7|?~ExAIM$YOg3pwVPofXj?59$*F4FVGh~`8=nV8T4gJ>uhHh! z3-4pwMGxHQx3|#e*9myed$((C8yVp&smOvqzf_&RWbrt37r*#W4i=2QV)!)}9(|NR zA?)6Ge$T%I0$%kyh$*eux^STrS={;2!4{T6#`O1@*4Hp^X7Jhhq z)BE5Uz0~&MePR`Urha{)`GXq{cb@H>R}Wy?4me=`Dmk3d^YoKLQ{BNixYj1U@igcE zXa1`DzPx4j;e_oKP4V#DiHdd|yRLR-@LJz~M{jL#jD|ut4MBfnlF>AXn;i8HRPNSz zjknNf#(?%U3B|VB5+6J|4f4T7rsii4l8=&RE?R}3+L3P+y6`KF4$+x>^rtPRPRd?k z%cG6V`U8_3v%oi700rVM;GNiO{SI_fr?AnfF@g3Lk1Wq^JovEbVZ(DL*0wgR0%dbN zHj308_sKHRsXE%;47%lqw-k0E08lCcsjh;PU-gcQKx(j|tcuj~#hdZA-U3$0vW9i!IGl zft=mRnY^*3_Mc6=o7L56TTNrfPSWx49A?9J>!De_6fDPkd&xFU+t|%&P`L#zsI+zJh@C3OYOc_4tsQGXf)+NL2 zYtyvkwns9QozU^v84gD$_VR^9r(z<1GT~qTLdJ7)DLX?+6=yZq`}0si&Tko z=NFmCvO~vp0VQ)}HNWXyZ242yn2P-@8dmn0W!?=KxSZ&}(ROE>aVWn0z_JGJM_c0X z_<=h8dMsH&h+Jp~&31Wqx?THtmcDGCEA_t6;3 zqkb8Cefu`=WWKqduW8=h8mB#$=4JGAG{(!ks3Dh*M-Qms~VL}J0vxvQ&BT|B+Zxb&A_?zh|f)9vozWV?MZwmsRt zN3UI$N?U$zJB>sZ063{}w(~$VUJli=Ar3#qxB2grCt3oJSN^4K@fZHvc94JC?0S-m zkJ&d7E3%0vlI*!C7aU?$=teBsn?0TKZ^NUfY5(TxuXT3qyrK_m`_=sz-PzEKzQex@ zG@E`8jl{_Tw_r1PQY-!){GkOB3uhNJQ7Hj8wQXg4qcQr3$?LOSkT)NwozX{#PKHqD zn~_VqTNf?)3%+LjGdLxC@YC>yhd!R2M8As<2_~&LEw$k7Yf`pg=7P}hkK9S@+CD02 z7FzK*II9Q0-V`-@nb^(_*fH)RPyeP3;3H+r?&2d(KX~-Eb8&qWTRx<1od+G=pJXm} zADG03v^9%={80WeG2r3par<<2kdw0bviD&o7R)35-mQGH{q~D_-l=7wwvn^&_PZax zZWjqi+K3N;wD;Z@>arby3xu~fFWb$7M};GIHXpx91Kl2?Z*q3t z&pz70EB+G5mKYM$#shtnJ9{4I3(G0YU$~BZUGR>qOlTan+6)v@@g+GG7pyDvPT}z4 z>(OzGw$m_^@&(A=(?`@DQm1`&;o*;Omu32i|AeL2aY4Dp2X5oH|M<`U_E&D#3Vx|v zz#xoRU~y2y0#YYF8c~WUxl9ESBXytpIvl2hahkO>O!oa3m{1>1do;)170CFs%9W+D zh6rZ_0RMo=33dYKn1GHnq^2M?*qDxB>J8SZJM<_#2W2t2Iaj}wa@>J$#OP$q797gl z4c3=h=47rykeh4+)7$p}YUsrc`#NNZ2_`b8F8-r!dUY-zFkIcK9lG&glP{gKJFV!` zW-t<_>Y%-OvP?(4#sQt?0crOTAv{2r9u4y3(siIf?B$xWgy5Wio5xtMStq#xE)20)l&n_l8~8yyH5GGNWSA*se_LU_~7aSTPnJ` zSGn=u`cRIaP+4^oIFikRlQu&Slh=WzpdZ*y?gC5Y4f2&SSq2sXz{_+PaAF*d;87vT z6=e${9wE^*XFsrhl8Ir=HbJBO920EsJJ_kOxt$z9Xt)LcF>ujhD!dftQQo7gIc~o` z??PbumUJKqL>~9eK%6(RnOHR3xgi@wIFzV^PDXMtN;3~SDRct zxeLBuez^^v$bWK`4v<}^gA_b3T;Wc~Lw1XRbTpG!9yvjiZbu~}I~`I8o$~404=_FE zrvsgg>~>9A5Hlr^&)e1ImvppJYbSQ;bb3{m{^&Gioyhb^3a+#VJo{w3tCr8aR9f`3(Z?1J}jIY-~!jWLr?0$Vso{Vq}ogyRVg~G4`m-X?V-5Q2voU>yiON=d%VwL3*JUwHtz$H z1`a=CC-P67(Qje0b@z>J*qJGx{KdWis)t!T3EqH^JwF@{pEsu0UMsa@Xftfm^OFlYxgN`k_=;v2hg5h)UO#I*R2FLIb zddZ)=7h><7E*y*AO6$0bzOVJ8_f*lx7ujpQlxc6NvKCb<%dVtZ&{no*>UYI7lmBCrsi}BV-Gp>%Q?SaBwN=n5sDQFEpB+axKA7VIGe} zk6(=+H6Ck2fm!;KI>-zh9_r5Ft&_xT&2Np+tAhd14zuq#%U}K_(Q);oPW>R~d^qRj z1CL;z=aKNjCR4Ezz5r7Pq^UP|)~FjlFdhR2jxVQ@dMmFsj2=opzBcv6{L!_z=p$qo zCx_%uEva}SVaE|-RL*+`Ais|YCOH=Qs*{v0f8@iJg?%wHe*?4g0@m@IPkne7efgui zzzVu;|A9N#Mw3gHz=+-I$>aOvFZ~D$$0XG0CFQki&SOk<=nw8rm>qL7uwb+UXM7~* zeBnt93U2(OL6^oaz2gG@RI4?R;4n$iUf_26yL_!zo1lh9s?b5o-jADzd(wGo}W+`tyo7KsszouqccmLE~e zyM6w(-DEP!k0y?iCunm{{~qxT05Tohe7wBezJC6=U1k5f-+kTw{m*~ce)rRt?f3ui zb^G~;!}g~?{6m-kFzqOXWXqUn0X#Ke=o0knL*w@$={IKV`eTJln1g*?fgK3Ol%CvUfQ}Pm$;P zSOrK^g6R!U-(Sv*gG1ZFP(=@Y{p_z7y4p13pt$=W=!Vp$6BoRqh+?^M-xwr z!=h3fUX<20V5h($QGEOR=@ ztbp&FXkV+1*!ON;K=_9@c0Ubco!b<*Xf*MiUA5mn)t0(+5G@xES}p>&4Yz%THhSH5 zom5G5pFLKS*Kv31l;3P{y^RUT8GXph`L6Ds&m;df^N|>wVd!ojgOj&>6h(N%mvKdW zK2|VbX=q2MI8*LDdEToz{dY>j2R`Y<-N5erb8VwCqTNNR#2@G3)$-Np*&%K0e7m{L z9PeS~CpWj>J3jjS={obRyX~=$;9BdjuE5WYJx=1|AGZ6Om+kxUzF)uAKH&DXYZndv z_Uo_P-OcUhgB~6~J{&%7zkR>S{4o9#UY;^heMQ!Xv`3Evcm1Jutcs#XFdT|a z!SO$HsK^_BUXJ7<`uJT8UVXG(@CoO!FCQ`lL{7{q_POe%xYTJgruE?Z&m_U^ca~w1MFhjdS00&v& zGXOt}aXBN0dyeysvPXalTKM1%y$Y58>MN@<;n-p1V-SB41!M{7DEjp+#tXZ%AO+R% zTiFt{dv}q7RGYi4l26AmeCZo(Mou#Iof3jcRh0^H0+TTW1cI5Q2ZAHuFEVx@E(!SM zF)~yb{Mgup9P$_%@W`bTYrx4i&NY0-Wy?=?k!v1XPG#Dkz{wsF#K7btlGcGDTQERA z@cCtSPNLjX^4C?|ov<4etG`>^YhGyI3hl{vt0Pt?` z(gkj|$a!cQSRB(9abSV)m~*@w6Gc$zwJQKY(VekEcL?|SkSC*!Xo25w(R@p zQrV;R+L?vg^;nV@Wkbvd_+aBobX!`1pDVDEm}rNAp@&uOsZDlKvpyf;N=%)^;2d`$ zI&k!-t+ox@g2xiDyj`W?E&R6wOL>m9RdV+A2`R5GlG>(~r!L>pW{_=LYuyYG3RvLX zf74>(G}T*}Z->r@gO#JM1rD)2g{|t_&Egc?O{r&5r>FT>ndr_b`6&gk0RjCm#-3`c zWZKX1y0esj6hq4!*Fs-DpSG88Fy9otl>u9MAKc0foQq#^_FagL%#AO5lJ8L>gQDJf zLLXpKOB4ngPAVIlVzF^4N*+Gwec?fKWaqb=cy-y%RZ`?-rcGHEp_H?ZfEYqCX# z{GT?PV|V%3qsR|v=}o?a`l^YDf$zS!$WSsF`(cwIK@R6bPwJGSyp97P1u%{UVfeHHZ7J$kt zhS1-%kHBQ&j3FK@uAFg@vJ#u_oAm0NIZiK=d~xf|M>{B&&C3aFiu!BoX>Oy0W(b}Mr1@@h0@Zv`<4XcHkx!d}!PvEce-N^J{u`uH+y8IN}?l_!Bo5Ou3(k__Z-#u=R zuJQ&Cd-w4=ei|Jcvp$crW$gFRr$Qbc@O`$Oo*O$p)q}oH`+~^64J|cO0UtH94PJFq&Yt9( zco{#7o$0SJDChDgzG?l=gC}*2o1X)7fFWgKkAB6_plVk)zv)xrH|B3qnAmRd&pewB zB>RrH(`He@zdU_~+v)gW`E$2qvGReyB>xyX@bTLNe6g=ZXl)s6-w#TLleC#Lap8G8 zTt4-V-YyK8R~a9%U2N-X?T3R4P~O>@_!DNt$g9Kkc6t42ySaVr4IC8VrUH)yd-c*? z=GyL<<6d6dBw+iP$9MC*w9DVVySZcDEBN`-`S#;K{KNL2|M}m+_ni7^E63A5((B8@ zKE4W%e=f!g;Eg0fJN}xi$XNCp%SazTtaby3h_qSsle1rxCPDF294Hdg1j zcNC_)_Di`~r9Wkl)pc1d(yGXZw+lB?Utc-zGAN0*;&V1+1zJoJnyO1 zwnM-0!Jq2CY1f|W>ij;Zl2Pu(6xE-F@3bLpqXlwfvl+kPX}K0n;gqdYJi8W8KDvX>7aS{qfXe04-*9${lN`E zkN5~a_$lOrcX(TbCQqUh3>X-80G#|Tl8_COBs>WOLnrth#UJVm@u%s;mT%IgwnPW~ zZv5OyrOI)6%)XO=-R~x7DoZ`RZL73KeQ?={E~13M8MX-2>(lVrLd)JD#iE^j9o*yb zF)`$+i-Z>R+zDuKcbEK!zVj~w($wulC3O2Fry1jak}{PR8I)Y&d7PGa1o)Y`AOr;lL=QRM-#}B&qlF8fQ?)F$a4zX zgQYAWg?W`ZsWD|grsHMzi4)5dsy}79)1KlPM2PvcfZPdpU-4F13BK ztBGII(uXmV$t*rP&J29-L~2FtHGYo)Tk8Zzj_c0@5&Cq;58_YhLtR)`ZhYgFCdNL- zTer8jeeKGx-*2{G{`TwkU;q1;?RzKS7Lq<}_YWVoo15qD#!Nnw$qd2zlttTH?enr- zUHRyn$EnY{nCOEdJNb+y)N%Ko`lGZ!ZfAkY|?g?zqW+{I%flmOgL)$NPPKqP7&-O)i{@eq*$AKKaXZe03PhKC+&zpGyl-q@fQa><@CGSZ!6i$wB+ zUt2K;D6eHs3N1JgOkVd%E?najJy^t{g5)PPw)7}D^qTCB#ghxitTzlSemic@zPxAa z`_!==-o$M!6h4o(;zPe!_|UK0QX=FZ>AIgBIo@HxEWlP(sV zdc7k#{8`VKCs+8?zIYwGby4!ndqB7CcRyWkU%y^%KYqRnFCK9f4?-dQg{idh9DaC8 z+q&4UuRm^w!&T;N7VX?nak_o`cGK8$R3)^ouCBKa=67lzJqmo;_HH4NyO=iwvKIu< zvNmyX`EmRG&wt#${d&Ls=YM@moHz^q%qr7{wcCgi{Q0MCM%Kn+7Z%Jj$s9h&NYCtR zEYIi6DL$~Wgq*&2i}j4 z$W#Ar+e9n4?Rgm=!B23&D#j?E_nSsHrCFr@<~a41jHiG8m;d?Kc9=Que4etg`ZC2!fI}UXk1##pK?(1IoO%)X>j{?f;?idDSIo5~N6p=;8 zo?2s&53b6LgHFFVi-DADa?{1YoLLA(Up@Gw4jx0pU3WZ)6L*o4LzEx#&`E&9Dm+v{ zClgG@!E0^pQJ{x~o`tPQGw((bWmM(J+f9fp# z;eYg?GZ`5TK#KdderV>rlgYvio%QaRKy(3Ru4GTA(hjdY$6r!`M!-5w_9QHXFM~0G zSVI4;4UR+&xH;?~zkHAdRlf{06Ua>($>A<7iJf$k^T=-op*dy)?~UjJm@T|IcKf%* zu(sLI*O~T1AHmTepUop3^7lxP?^Qzpboxe%<&&A`;J zDoW^-R&W$V{p|Tp_-@;7`yJWEBgajxv(xV$uhZ7ow(_;J_6Om+`QgdN9`#dlgkC3A zsY54ZT?^a2%Z=V*rw#^Vn@+|9D^)+i569>g?G|O9Nm1~(zY?b+cgq#3mZSD7IngHZ zAdhzIhmO_Z4Lknc(N>5WqPWMFW80M+^I`NFvw9bx0%drdIue-K=D2j61o*vQ*d%0l zo&g9h^&cwp&GHca7ITjMf-ryk)%G37o38L5*~QIlZFecBc8SjW5`1x{CBx6u3%%mQ z4cgi=+%u4QeUv=3)&;NEu|xPWXr)d50nRp)pU??x2d%-+7RAl}eMDsRDovj^?Q!LW zNV!B8$6XxEpKZaFuQtw+#n$|mrwk7?+jcxW;Z=M*MQ8b1z^Qj&tKSUr zbL?*NsUO_pYmWJ;tMg&7{)5h|Pox|$K1LsEk}bTFr|pa^hy|wX$EJ}F&fy2QIX^Gv zoDc3k!b4dpr<*PSz()_{PMZ(-;HPh}Jsw{TiMEHK0dMH=cRaK#(dKajZr*RqCYKMHvZ>AbD)N%0`;;( zLH~o1R7ov~C2BtdC0bX2KGq%!iGRe+HlP}5^d&dzYi%nu5$=Cu%i~sJ5>&?D> za)%u8>sS4xPQ53HYJ>1x_ETT%owy&W$)IPi^O5t4H(SS;-KLFsq|7+WjT*R0D}o>s z=!~h3^ewKRW#az0{q2{#?fcEKcii0F&s}SG_ZdTZ9aZ^Hn@{l1VfA3{!SAmx58J`G zI}k5|{* zZ{H)=Eq}?l|HTXb@#oGca#X|F$Vg|yPv61CSy&}7r>Udd0$tlgWa&6Kg4Ql4(-xCi zp8FIDJ?@I&JT*#LY4G;uG#pYMV$Ej-XFzY;0^A|ENK7 ztkEuCf}?#{&OJ4h*-rVI@eVmcM?9?zQyrhnmtTD{`?d`@qmLQ4kVkw3iALIS_#XT! zXCEN%5Vn}S#yaA-(T9c3rR(usJfvc~l;n$DwL|bkZ=L4~JmDO;HbY;vLvrb`uMe|{ zZvoOa`UrOL5w3SMg~o-rsTDkDo*>9UAhuQ(ZEpGtcYp56Ree|So4%KB?CTf$ryMt* z-jhae)Ax~3eABj(l)y^bt9FF%eswxj=xL>em%h3W%zO|eP(i`}I%Wn3d#b{jzih@t z$Bwt;yXnQFpx!eVZwcMVpzX$gy#?uqFQ?m2zx&enZ+`#H;#=lbJC4({my};^7iV*K zpauK?{^hs66Z9#*+&LQig(*+bU7TNLUKjg?&-;7xH1p7_=*t2gCbgB+iE@0Afz7?& z&;I!Mp>gQ`J}oiFE<&^|s2m@t?sD!iVe>kRr*trJn{9F&oc$tq?}QtDh}-x`Zyy^c zH@frGRUg;QrmYEAUQMuc&yM+PT{xuGPM+C)Kc6yk3{ZLG3UtfY;mWDILVfV0xNX7l z6nfrK&!FS7#wB}s@FB-X+xPKLu}R)ezilC~_*bA=w+|p^nFy?>OLEw8d@8}^_j+NQ zFYu4FH~MLQwysMhhm5xNMgR1#-T|oIK2Z)SavSu;1l?D0EeX@v8~B2Oz7yyg69ITI zzQX{*8fS`7Wi)#*j!SnB&KgxG8p)>s)UyLn`c-C&GjwRM8yxEvg_wB+sDkBB!^KkSr_SWh0J?{07S8eBq0AYG z_$L?>9EV8rBg!r+IuI8|JSI%P=Kx?h=?yTF1`Xp@paE!0bahdQip>D6QmzxdW7J zKJz}0{HAjatj9nM3i{};t3a;w=GcJ8djK6%Wt&=I<^9!nYD9Ge^1t-hyv+N;Tv=KouoI6$^3S$dT^ zxo#WK$D7d9iFUu&mNE_qkL8zbB7fs}P(U+$MbFVg`3TzD##slZFRiakTlJWBzqA;* zdDJc?Ij)Zd-pTmt3|8qIez9^m4nz({YP17`A5{{s+Wz)-3u^3a18>qclZ5h|oU_zb z$FYCIyTm8hrX}GcJ`@~eEk3)BcPv#I?qZz@h?=jXd!=@Gg+W zLCTv{-^Js;;eosKF``W5>I%xz9L`_OQVzXY|h=`5{P$l4DK#q;0OBXa>-u3Codc}Z~4m{V`Ne!ufNp?0y430 za7fGT(DYs?dUifAGe(&t{_u_P7(7ew-9nE%7Jp}4&n{+UDN9Wgyj09NduHO@1;WS} zVh?FLE|^*%yZ6qmI3e9<mOT^ugAtE)rhXrB>W=ZDkn)5oinU35{$-`$;5+8FH@WzuC$W}hFv=&d?tbF#gpy$7~ob4rsJ8FC)*%Iy`~yiPwRvd5yW z+oVdy8~u=4aSlWmyTVi3Vr*GoYnur?JCH>g6v@;c_({;z4fv`9{{EHTjE|wGY(rK}&&O8~AqL+2dCmm9L)pBFz0CeK_t| zW3Rgs9EC>d!}p0H$L--h@iMk|Lxrcl z9@F*QKX@7|T8=XM!JzQzY5$ir7_WIU$G3QRe>?Abe@eR&e|+GF0%vYxlAhDFf2}9g z;$NZXAdNxa_!Jw&o2tubxozB---2|kk&R3dJoR4KON?ClPRto?MCS0PolU&g7E>oM z6El+9clBt>QYXTsc5IcO_nxkp&&_JXkXU1mUfg7tC+FyEFR>RO82B*#U@Lg|O*GlN z3j^AM(v45mkEOQv7&m-9pFyo>DYA|033 zm}7tOM_Gw;Fy3h68NjrhG+T95uA6Bu%B}Td9BjCY(e9ACJOs;8dw8n`KWt< ztWIi`1bGJGsJ)$;eWA)fiy#ep)luq2|HT=>*;i0xTk@;q=VhhJ$EV03kfX=1AP!FX zyfya2CmPD3=>Un%_?p3eaJDXrX?P}#Lyx|PhfdmhYkkT_%nI60EA{BwprrwTtwSGq zi&S`OBgrIWj`{DdD|GN1{qcJWu3U6iJ&{L%5vYPN`K?bA$*XRJ;OJm{W`Ys_rA0mj zUodq7!6JOm6%ugA;{zs3A0FPtXv*j~2gnDcB@KFSenUTkmH{DaVQ;@HFDLZa#l6`7 z(FZz?zVvk4!Jd~w+gnWHKMxsY@=3RFYo`rHJI(SC7;+rjMkC*-uekX*e+OPZlr^ZO zs(@NUF_)K2AG%;}@adg?bgJnYWY*WxEHBbtYL?isFUBpR57n7+zGG2x_zLylMi*RE z(tMmd=HqnVjwYRoJTlT_C+T##%Q=f`bUHrMv>!uDZtYHcR;sPg$-oD+EGS7nnhDVL zFX!|TB;|8Yi$;Bw&*#`6zO^&(pQ~{>hdcGfXbTV8U}>g!d?7fJ*E=Z6YxZ(-JPU}C zt1%)xC|8&4#Y--fwb8U~?XX4h#vb$Y*(!f3%m5S@+8H|!tr;|G@8mIPh_7ejr_M}_ z#DJk?Khontn=$yOM{uDN-I~D6#56F0#(TsstCe z|1t1=$BQ;pT{=%4sV^yqCqMBC{=%hv)m8o;kMp)i4Ny|&Jn-RV1}Ea)UMJ@%7_gmY zc}aHp$no$$Ws*B&;zh}O(sPgu~Sta1ZSsW8k`d=R%~$0M(C;EGy?t|EdXr1#xCT7aJ87lXZPJ4YY*TC z7q#;Xfa6zVTYZ!~cN)(mDJMJMjrD2;Ah<_|tT*wzdQR5T4XpU=m@DA= zckn6C+_Q4H>mwP>pZJ>sxYV`VN`jeCy>2NzH9Xs#v0dE5?v@tJHiYH{%8 z#dylyT$u=dINzQ!(Z9R94Ik-;FT5)-bTbCjGQFp=clqY$QP)qOziyvCeolWK2FmL! zjrq#2$B4aOtgf8Av&?-=P{y(R-{0KFEU|0GY33hK8RzWI1oL|IDB}u(SugnkA_4?VwgQU zNdAjYpe#nDl@9LOBsz}Vh3s+gr>->c@qMNK=qD9c3~k#kBwodV@$Y5dV{`ycULV^G zer?{33o9*HZL;H0V}yXN`HM2!_}uVdljez{f!`&VI@u2ezNVfWKFa^p-{-mdL?wag z#qz|;X$RWx@Rp2SuHmyn1aD*KYx@}9z%Ra~#^IdHPt?HyV)>6dXQ5jX13!J>#3p=` z%b45vaKS8n&E2Xq=2~g!PrNV8UPo%o!GGw3JKg6G=1jdgDzNHy-6QAKq4Vr(kJMjy zCNAL@Z1Mx-j>t7`o;FUWQwOs4*t>4ZR_aEq(m|kO!({dwKNUb?=tD ztgVa%K3!jIUp`;*=ItqQco2nM^aW^r2pTElCz%P{-@= z@ng*1C*;&eqOhb)&6IbjAART_#85m(0l_nVIX((A9s?5|PXG1a|KqQ&+!$DlAOQ}u zPUi*V9CQTgATI?ofQgx6gb2C3szSqmhtCJBnGF}3kk;F@dXAXDf}BZfDI ziW4hpqO6>uI|H3P=x8hu1Rvq?(iWOyJgkOR6$B1`^fg8_py(YB0rt3JdC1mAiN|(& zl{)8+^JB;=7UIZL1;dZc$!iVb!!gtpDcdun5u%Q zr_KbWoTHI{#hr6#EQFvT`1sYPm6r@KC1ux6uLvg9TF{2a=I4Z8;3rsi`XN!E1lj0F zJ{~3IZ6NWdkP7~k=Dfi#fv1f%_4pH=PtbRsf5oyd0?<7i$?gOoKfFt>K)71uDm#14 z;I8b<|L_K9>Bx+2%2P6@L50`S9oT53!Kxo3P$9Y+l=MD}d;(z?anyklK>ivq>RR0GSH!idbi|9cc$6f_U>V#2!qdRZrAIue7yPf~vydfQMMm!g|ay;w5b50)}gn&)G4yclm{gxj zqv=9p@TyrH_{iQs&M}3U(7BhKzwQ*07kOHqv(V~bdgsl=!h2Wf%^l@ z{KyoHcs@;Fa;LM$aEJx>!6Sq9(Sbkpm{j(|MSyDKaFfle2V4~C;&_g!cOJDuFL1?! zo_IL%R=q(ra!;bGq1i&Zi)woXJdBxeba5{m*?LDXv$laQeYP+4L4%Mq zRGCrPq{h8JbHrmZ>*B3tswBsDKdZ5P~}+pmlE{9yE&`gjO$ zU8uB~OFy5 z{@EDTyT+W+sjUkDV{P)uB@)VUZgQ3 zt7CQZTkizJaxcE37rBf%`{mJNCjP&l}b?Q;2P`HZ5RzWN2lQILGw%vnV2M7Dmg!9GMivKog)tkO$$B{bgm1B(($q%>XuiDZ7#b|On4oTakpT3Sn zn;}%HU~ig(L;q-JAti z+FT#s&2jy3^*^tEGq!j>rbhec%%whf=VRub9JIjVRCo_~+&n3Doae}?m?I7vPgz(r zudyKSZr=wDDmL(_y*qC|SQO8>&cr)EU&7l<=5C)qU4_r+;w*Elv||hRXF2Ac=NI#& zh`ajjFArzir%#vL4`06|J|qr>u`ZYkzKa2#yr6;TBXDTpXZqZ;L`I1&92q zsuXmLFc>;Ep+QMN#H9>5}wE~@Uan_>uz#0snD}aLXcR2hL#09y-q5 z)%Bj|rr;6WSfBI zG4hz$DI-ds>H?cGi+dM`kHP<>i@;U%6yHocgxlA5ANrLli+%HsLG4}pibwQgB7B8D z*w&-LZja|roj8RMSZ>=nl|9brWAP;Dhi6(@KFV+VxIKM^USUI`9<4cj%~}oq+WF%YelZ$j12uMUh1ROMa96L`1E~w8kvhLaGGvA z)17}YYqSs;G_tv~kT!yF{GfOuhb%rB9fP0xsUjcU{P-suOT8i$7&ypKoxw%c^ffu{ zxm0;Wqc6Q@r(JG!%0v4FQj?2af1F@CIP|4sBd}=^e#V zeAK`j(sg&*-}65*!K1G$ozhcf7^w_+DR0Tc0x*Zs;pi+ro&2R=zs8o*40y_YiP3Rg zWT)>KI_)EnIdDF3iV4Toix;tk9~v)I7s;;f#Wenr3OzXtE< zYr#uooTTm~wo*(d)3?JBTJ#lv@XjE|`s&91$fccNZtm#Mv3ilK?OH+px{!j$oi{o$ zw2JrTc+R~GNY3yKO=6{b@KkSsD@Q>ST3!c{?Cv|J%DBxW#{~`gDUQ9)=wr7_^*?^y z_@oSQKrQH!kGGd?{4)uU$II2u&M7n2gW<;%iuG>7FX87P#@Xp zgpG~#iNpWmVU2t1UrFlptCAf<(sld@Tww5bYQiHfhmLohDHMw>e3mH#;ZjKIbBE)v zj~PE^j#T)9h0erDeB(|2_$nV1FZh*(tMRYlr+SD@I+<5Hc+~Uq^uC8LTjegE9X{tP z=CEhmb7I5t{lbT*+QWp$4{POZWGM%+(enrPAoSF&HVYh|Q=JcM|LDmUV`2~euNb6F z^A$d;ym2p}eZ4}ms#1O{zjCN2Dj0Voh2o6)r@c-4>C-m(=?jaudci9lfX!Gxvh?*q z`}_cp{Di;sYuAB;pCEKI{a#LskRDTyZR7+N*2&lUQpb6YPlI=2D18LC$G-Y5Ek4fQ zOdN|ilV=^9gcaU71r!_^V78}klToB;TAGU)y(lO>dYJGOW4>Ko; zET?DB+sD9Wh?Ox50&`KoYhW%ie)F|Z6Mym>GGCuxY#+a5eA>IyOzz_+<=29OF~I5e z-JN_46q?7x4PzD`5jj5ic*fKA?YFz^A2U9@+Kv_+qrcv9n#OVS?OXUibi)4pe7@af zTz8BQx%kI!#y#l7i{l^B4;?0dVp`y`>!bVU#(6Ua8Q&aR7K5=^j{E+?jvL}<`gL&7 z&~)49aeE5Ce4$0)#0KMq;A?vb)Qd(<+&FlB8x?}zNr6P{z#e0O!^{|%vwDblVs)v5D@^hp0$n#z%t3-IC0K#-@a$x zKAdUe&&~Pjx6#YFL4@?xQ_}Hkiv;cOlj_r{4{bwD_8k{w@3Svmq|1puxN|}HYy0Sd z8>%0?ZF||bEXVc|_{NfeXo3d>{An| z-?>F-bUIOd#oGGpjUNlJ9?=~{>ZYweS^!K|<6PkHBaaw}j`7Y}&I0r{MtN@RiF{F) zMQnGVn?JpY-@JSO=JprAyuJPW)5Gog)919SUvD4YKinSPXV&!iDH8Dk?IQg^bfnL~ zn-AK&e*2u*@X#3Y_-P;csa;cJ3$EVf`PBIF=FP+H-~avR+u#53Q|5!(WxSVMi9;-Q z`|4SKcK8@rU-gdu9_jC0o7MYwAELXrw}12~a$>?$l;$!RnLWd2fh#6xvff~fvGMov z9Q0j$;jebHXM4IyTp}lhKBQfWixSQlrFQ^kKl98-!D!jFRT#9!<3cJlC*B8Pcwoy| zzCMRWE!{tzQ^z*&rl|9g!1DjohGX$;t4|hutPO3>wD_@hAl`aX*D-JFf*(FRht@_e zy0uh%Fgz;P_s;(V^TM9GU{d~{|L6bJ9|Q^mdFEA}^I3QhIGG}+xC@eDXy=jhCdX2( z5$EM3lm$-BAgk?ih^cjuI+`#9XAKaRvj=F9q{Bg~6!On8Ty2~Iduc>YQ$E8}Fgih! z{PG&a909E^E~*nc-~+uNayiOK;Xmauq<2BoK5-TDxbjmsiNbp|p|sFYAE_C|>bP-u zjU#$6+-0oRE1&3C7))MpY@&o`a^o`&0B3V?WlskA^yahx&3CxK)r``j%(Gw!r@a2q zq?;U<{RYy==cIVTfA(b|Xo@QbsdkAQ9Ld8sxxJT%?eN$a#%4S9X8)(k8xErTi$)x_ zU%-){pw|Xn{izq6IS^#3iyRx+o(cDO9AGDi{3p^_U@1?jXR>@~x>K<4cuXDj%4_xl z*Ll1G!}c0d5KlKbr@v>5(ZMI}9T=P3fPC>`b`3SrOun>78E4N!Q!0tjBOf~L0F&S_ zkl39Wb3J#4-~kP8J-F#c=K+r1(KadOi}>q%rb5V7I*)ktBOMmG((ZI-Pmit!rL*y} zn6yuix(Y39+n4a>n7`NPp*{P~E^SYt*V~Mf*RTI2Z~UR@c)WD6TXs_Y=<*$Yv=sfM z4*b0%E%?b}Pc|KD7v*CEuO=|;2&UWp+xrCW==V9XBK{?4;=K!`*=U3=ku>q`qF@@O z^D=bNfA)cqi^H>MT_37^8=R{oe?fm~=X8=EAC1l=bmUb}Lpyx2VcUGpEo}C&)xgNG zV-pqRwXGK25TI504#F$J)&;-F=Zu^n&~q1Nubc%@!(nh1o;`yP`VM-#C*K8wz7slE zFTeRESU-71(F2P?lDgHC6Y<{UIQ!{AE`O(|%a`RRcU-}zrGmm=^l>dHXg`G?=GHH^ z;B?GJ(Bp9_`E5_IX|IkaLupi3OS7SEb}dgW*GFxDfrj*=|H}ql=#Ae;(&|P!vQ0k6 zWLzD%e@xB`-}dEvbntnRNc?~Ut>C|^*U$W2@)x&8aseEfu9Lwe9lmVy7j+Ca?9l{= z+YPeG3vPE&CgVccJ->J%5qfwCjEfd{HNmi`-NjpI6W{s%?x@P9t!rWA(#M8o?PC+` zg8RHkTkK2i?%{lsiK)H^m) zhuI&U+=>1C1ET?!ABu$$>$<2=z3cyG7qXJu-TRFffgeBXKgoU{yzJGlcn4++;^h73 zJiyII$IsgIkG!*g@uLf0Xm>&ofZ2}U8LMrOb9n2WlG&=7z%aW>ne*~kUUH&I;8C3w z7H>coZ}ZdEl%Kj`WxS<4XaKc;L#6MrmSqn&Isoz)){1+TbDp@m!^yv*>4n_q&c==p zlD~KqAjooTV(JVA@a^YXZ+JHO0U;i&Eh!^|95TvVO1ZJJpdgypm&L6YggZ_e+|FG% zvT&2L__PI>VBl{ss@9`%(2UfHh3dO{x%p30&gs&-r)C%V;5U{OPf{z@#c$x08TuKX z;B^zNz#6WMfK+u`V!ff~Y-G zsqz)YC2`urKKSB9QMm{x{bnEMx@v7)lkwGaV(4t`+#F@L@A!n@Wvt=l`tDxFKyBQG zKJhE{+J>}=SGRW`d@*p`GPfzZ|%a|$kyOgZqR zd&<#F+3hiU^JU}5&^He&>wqv`zucXK*FN>6`bG}L5bT5XUd%mG{Z8#Kr?e|I8_0Xh1LyCrs<-ump?tWe;U30K*_p0*u`c~Th7Q^4B?RqCDdLFkWE7^BfaK9oR-?gat^Dl31 z|N3A3=UoiyoaA+8yA7lDcI8{;6zxAXTtq;l_(s^CszlKoH6(z$Gcm?HGI11BRYl8Mn{((`>ug- z}!r5ErEzgxqJoSr)_`I}L6#3TPeku37SX%FXV4_zSDW>V!<2WYDE2*2=hF;GoC~5ZH+3NazH}1byr%`T zf#V7Mu8*Nu41}~rDXZ@2K62MrrVs2^XE``>0>AiA*t^=xLYan%; zI$?J9HPAIdoz`4s?mIWN-|RQRVasf#34!ALE31(!HgL7w06tT~#IpEkvN79s7k$!; z#Z~sHJp}Vhk3}ec9ywxT@2J>@Uo?OPj(%&yz*fQW6g*~6R>!qx!H<5@wjxV&wZ+h_ zUJ3(GbdW(a6TvqdsFy93diNh;Wrrq>j6@Ysf4PnZUrO^2cNjwJ&QD&>@4(u6aUgbR z3^!0fuQelIvUU|Lw#gvl?&84>AujrKp@KhDxBTO|dfitA%UpOxJ2WEdX#?WB9sB;{JVNz~U+XWv0ZR?11PgHkU( zbq^kXy?C-diA<3*U}6d%fQ>Hu1@N*H-uN$h>>!dKlm^8;NZNu1pUZhhQjNo@D^)l2 znc8i-@Mr^(6Te@|CyUH)4Yc(4yVEHYBct~~70;zBOt`A4bxP>H=n_xPJ9+_QTfLxi zSlaC`)A=mEv{sWoqmp7vOpKq8ZqCbm>g1S>8c+Fs3dIQnehXW`3ZJC@@yGgF3Q_2l z*c>CH43}4xz{fU`pUPj^up$ z4~6W?SM$d^xr04EU@6^%%X$yA`CKREcauc>L_Q9QVK520jh4U!1<1SQQe!l)M zdHJ<1sFOVTU--z?7gz70zc!v;6|NBBA5!TDPg|N}``UkS)p>kmBC=odgTIr-9E(SN zBs;MEm`x@y?f_uR>K>oL3b$r?ctOb6u6Lq$JeK-_tS3hwts9#-UmH;{zv)=nB3WTl zo_1AThk%Jf$2@`ga>dnQMHhwP!xx%t`~69d`H(nm&u<&2&1{0^OX#>LtvuK};p8{` zY`&Xv7b7lT5^nhN{A#`owwhO{A7rD9MLNbD6Wy)-(jz|bfM<&CJ8<#lE`I*gyEnJ@ z*?KogJlDeN<5R|zsn;)XMh4^J9Ol^Fd~a@#(aEoW{v1pn`azIy8FxHCeY<`7?0tQo zZ-4&t*W0J`8=pVFzWwRb>)XfYx3@q3`P=P}pTFJy@mFOJw~xvH^6mciDdIe4K;Ub^ z>cIbz|KA?MOLU~cvKPH;Z_!`fxIRHa;j4Pd`K4oy;xeytZG)atBXZ0a*>|>yehQZ? z+4Y4SP#?pzL{cwhIps_G?v91)v*6ex)!@jv*1opOhS9rE>T1u$l>FXd`P{h^f9ee) z!68nx4=*PvOM5bZu;{z5;%c8s!B?9ntL-JJ5&}u4HnQ>@r(Awh&fAXZv6!?)lyWWx zQ1Rgj^5n1I81B*6KgJq4Ui-^AAB!$>`od4Kw>%YVrsUX1k6l;b&oWZajihj@+wmXk zWlzQ5IzQh$*T*I{hNttSv|;ah6O-PC!9G5V5*Eh(hPGyCME6}gAo7}IyxVXoM;f~8hhs}?m9wmNy{580rZ@>BF?d^T~=ZAY1jxE!k9=szk z^FgoF6oZ~>hqPp0--#aIxdG+Qx(H3O3%lZjTz9vB`jb2Ug5!37`}n8F=rg>3dx~7* zQG7g=EW*7{=l;vPueX2s`**khT8Xs=#GmlUoesF6WQvJ|*;#}|4uK!tU+D9Ha zefxatW=LjhKMvNo+Ieg*)>JR4OKwqR{c{M#9{hH%$lx>h1WPe#OaI6J?7#X$JDcIF z(Spri8ycqCp(eus+kk^G6vi1z<3~XzAZ-{?hJ=~^;2>LY31*!zIlnAYgM{WPPR0fA zph+XZn1HneHaq+TKbm2ryeosN?}^BU7lJlWC~Yu`WVx0gFvoaQ_6%KqFT>F;jcjJ{y4rMvFhjMsx zj;CZgn=gP1AYzV_Pc9DYQOpk3SFz<5Tum4R{^H6{u=hA;?=FA~59&bMEw+o@jA7_t zSN#z4$b-8kf;U0VqB9i56JgFBa^+S)^$X24%=t?ffXNm+v{T5R>iiBYHSxXrzXELK zxMkIofO9=^d^IGU1RL|WiUX;?AZrH}s0J^!D{FFc-cB$3KJJ#%mZaPu*j69N-r`Rm z#SOgP#sFfEvucZ=V1^P-NBlOtkP|(V`q&5Vw$XslO~mYEXnFCK_*rQNzrnluYgcQ> z^82`Nbk~K+OD`s~=XgA@*LdekC%xHT~1a z&$nNH{g{sBDM0Q3Ak zHn?L$z}w9CHe zRDbe^Q@!DF&epSe@ni$n#lie!Y72^XyZ(HDSq{8Bysht$F*^E&-K|lG!th0Oxn}c% zvvTG9@Yf2qr0?=2IY|BUxb@1ir|XmzKibV7EqZSsm8#?ziO5^|u9VF4&Kqg=1}}~n z#O7SZqMklU+PhSKXtQ`Bf92puU}H-8(|77=3;ZK>JK;!PFR&!3)&;x9Imi07tAE5l zx`EAUdEH{j$lz5=ik{};1cgjR$(M-d<%usrr_zoFmXsb>4Jp| zEs>$Jkgc+S3|~2D{FNx)F1|6F1?JMh#S0pu!Du_}Z+CAx2M`=N-ruj4yIS?fBAhby6602FFhpYscGORWbYayrGV~ zDX$X1c>Hp<6ZhyJ(u12k`6~@zMPK-{vYfRql0c_-dJq#j^Dn1XnSwJnS6RtAO4_t z(aXx|$CDQ0Ls`+K!uj`^g#m?CMk z(Am>P)1`4YpVL08Mf@R_)Ny$6T%MeK?ZAhJ+RX>{Ipe}UMW6QL0>~Eqw*Txg-N&!D z$Jp!h=dU;4@A#OB{PW|h96#Rv{XcxX{o|j$-u~zR^-s5d`t{B2AO7jf?H_-=Wukw( z{llNX-adbQ+q?N5pWfU)2ca*7if&KolTdRklS$L*`j)(LzBJ`35QlKONKd*s)rTwb|*X{Citdzp{24LfX32>1Lz z3BMSB^{3{;fM!l}zDEbgd)s5=cG0vvmjj6ph|T7?Dn?7O4}a`yco3lr`~>mY|G1sJ z#-HjY*!fxV=AU9tV1lZCu6+l#V;(HE&ZW=nZI0WY!eIl8zO#NZEKo|0L=SJbiR4|+*n zvE|q~S)?NyxVDg-A6ZUaYZ zcRu#{g|Ha?%`e6Fn;~?c>DPAOX9?r z+b1#y+b_TS>Gr$7_^EV0e*RN%eZKwg|MkDP{p zWwQI?BxC%evA%NRlbz8u|0{6vz(+RgDLLk2Smj4}96fdUKHoV0Io;9e%00z6dE~$O zFaB!_fHA9vB=`yd8Tk3B%84za#C5=j=m{hjqYg-i8Tr|2yd3JhIyeNA6!%Q=3c>D< zg$*iF^nw=;YH7&urU=^Pq<*%3jz0C+ViOzXlos&t3JX2~I9?DbmcZx~oi7Ig4ZKRF zu;jc-(C8o}23f;L6>c;r(^a9Zp+mgYxesIg{ z1WFNG1%APeW5PXr)j{nLp0mgIS>*HrQ4`ZTZoo|-u4+ABe+r)s3gcOOC?6IZgS%JyYs1jE+5WiLI!Wv+Go!7*yomX|Zg}*D7#IAS?rU=k>9#)h~;WX!Xalh&De{!U(yv$Gi zsxT_dAf=CxrGDS70y&7#3%3qK3wF2yBRUs4|KY#no~lAKeA_%WHs6?i_;$;__%amx zCFZ8n>s2$v!kfBprI6~(LR z97S^TeD97i0F~*B)##2!bY^z$D7!vR72an#SEFKs6qtn6G_}R*l}7lI*}7yqd9wSD z@0zSQK6=2{?k*)0Y}H6;sk)pcKGesY!j}@~%@3Zo`5en(+w@y42N`XQ5BPPgIW`$M zwn29~MK@dpw2OEbhlhj7=WM>z1>flUbbx#a$cZ%`(OA2KzgbE2bJ|8U(zsJaE(Oqn zG#NYi$~jHxT*0H8g6@$OE1K0jcyp2(eQZHIKsbM;(W?ACei9nf$#7O@j#Ix?{QDvG zE;BrZrSZG+E;0t=bLz$|X1mB=TsdLC97fky|3fFu19=T3E_yvCj1=G}`A&1p#yn9i zdO-u?fwM*O71EWQ@VbeeL8>dCEiCWjD6}dM7$vivxO8wuooQFoY3ayQ7oYhJmxTA> zm(j)g7OegIHOUL2`VQL3H=tbKIzOC0frl@BO5{YFuQhHxY42;-z{HETdpS8iI<$G$ zvA)!#w#Fzu{vQj3Bulhyg#P?P{776;9-1cSW&N5w>L0~`x3BM0lir4(k!mL~nzYI9 z~WR0xxWfwOUx)C=~RRtqXd|XgkDq@!FdRU$H93T{wfYx*H8`>d4Qjw7WO= z(ab@TRH`wqS{@S~isZt7Et<4?>r9VlzxEY;cqFrnruu*6Bkb<7qj&q^`F=qw`5{_% zfyt-Yp;0l{UO-7fNs}Z(U*PVlVm* zg49`sKA|Gu6@)y~B6TocD2LZexA`m2$X#WXuj3bJAq+oN4!N{9JnJu`C;hHkd=4|- zM|Z((!j(z1K3R3`CVIjf{j~okdx~7}Eyo#KX=ixz)2H?#b`l=?niou`-th-^HDu@= zxmTan_jFchF^}EIaq0Qkru^hM^MQ`(%6HmY>R6!jh+iT~z~EE%>h>7Ldy~w^&u{wP zvX4)<+aLe&uY|}Ow$k-2PxNbaBe+zXE_^7sPOv#t2JSEw}UFGPQqts@LF38DH&zsMjN4_p_ zMD~t}%-0HUd>Fdf!}DW0x+u;b^AF>X=%Zs?v1Rq>}{hmbkQ#$5CeAIKcpeA&C{pHlYh!r|?%^QnG( zBxUa&Uftej`||wp_U``G?O*)W``f?#tKal%#GgO@`S#~epKs4k;qvRKmd6j5JNZFBAQvDIB|9bwr?dyPyqqy42Mve9E|$qzp5)LfVa zhMnJg%$e=@%zYQxjU&8r!3ReB-~4C) z<$wJL8LqxjdIiY2L7eB={nl`%oIW#cA7p*^jX|$Q9Q2wc0=5dvnBlI27-D7zZwKpD zMsVf7L-Evk13H9O5r^0y^UsOKD2g2R#0=wR24sG!G1Qd(ox^g&O$l z)yZ(Ot0E^YZI#(6`5H-sW*r)(@p7&v7zD5x@=)#ZYZ$?0!$6z@DTngwwB=WYU_7?Y zaS*qjt2+jbaIYqPM!z}j!m4`ZmA>Y*K;^ZW#b{l$qvycWZx@1_W|u9Jxa-Rcitqba zZ|@Y;SVEG`?~8*^xLtMugP<1ciZczWgWE8M%icwjg*cvG$}n0A)xrY8E;TN;t}p=g44VD_%8DMC=E2= z#0$K^n3FOU4r0f;5%}Pp9~eAEhMb?fD5^soL)gmp^L;Yt5Zg9VRQcdc-4WbiEV~!q zf`-12o$10K@Gba>MP$KvGNDNd>cEbstY|cF{A@lTwOynHt=%Db@t)t>W%5IGvPkq5 zT6n`#^1rt|@L<5_|FLuG^SfU4FMz&D{&1eQA@8L1K^r)qw7TPmLsow)>2`R8W|NN| zb%%Dp@S5Xb?u72Ng?<^g_2=(BHd(*QO^BL{esRt&Quo>T@h0BmxjKvdbdobQt~%d! ziN)GFWnykhil2{yKQu?_dwQ`)b$a+|LARGazcuOHd2-;ocm?D5^aIjxZSQb-WenfG0~|Bc9?dV-~q7gSQ_Q zt1pZOIKe!u7T2MP7mxS*m9G@L_=H!wqnAXm&?aln+vd~_`s(@OGv)F(HVA+Il0ALp ze{~WZSYany@|^>pzd)K@^l;icQCre>PM7GcY$bd|%`2X?`ucVJ@Q;E9QR`fONjC5Q zL#KTx`-$->?*edsG+Eoh+Q0ROl~ao@jpS!cQeE?c#>T;T!a$sYfI`l)Jlp8N=M>07>)Yq>7fj8tf3?Nlqt*)DPrMzIX%|%1cGw*c zi;aQG@%n=AZEODt%+HGKrEC`*uQr^ry0y8_zzTdizU;SSER2DRPo)|73hL??-#IBr}*WxQ}VK#;z{KZeWt6h?B z(NxRTp5)=9i}lG{-O(I8{~*P5UR_*Cp0dK`yo)O#iEPJGm1lYOg(8QPy?Xdy2D;@x zN^{sW`BNBNdp*H;nEsM-0;W9VXMd6f$=*SZ4RhXapF0Qq`NMtY&?%3;#A)xCwug%f ze@%P$p7c+@KHmQH+57wwk6g?XmxAoe)91EP;|g=hkAc}2!|!jOGe7mZ0C&8@`}p~v z!t2-DU;X}fw-4{$+#Wyvxfex0eN^|Zcl7wriDp_WZ5+>n-@d7{|nBAY({;5qPZXNeVEgNUCQlCWEC z7oPAv*4QTa!n^ii?0N1|q@hvOs7+6A&!9S9Iq?! zoG0|asoks6>R;zwbfSZtr;EscdcbH5o?oR1zTM)6vEAp9ax&cMPHRG%H|jI-N5c&cB|OMe|ELkc2cLELj0?D=fy?_EFSmX zKterw-Tri7)p6S#zWC@KIXJQ(J)o0+%MUK>y1Hkv&x@t$^TFjsu3&U^}b2`OM z7U0&t;%9;B-5$Y39mU48~4sXHj0if{swl@a93$sp*qOG$)24E6jbMI zNq|1bFMhzQfNzbsgD~*bi70D-#hy!lwF{VRU94Bfi8A$?mmH0^>4HHk`qr-K-Dy+o zVBy|Cg?#0^eiqGFY2o>zUmbZ9jsg`E3vz~uiL5T^xg%P3*Q#;H=t2S&c*(v zU@G4|4y~7VlZ~$6>-kmQ!~8ohCdbd<@_aM=7mNO);%N*c}S z_2{zp3OYJt9Qc8Ot!?ps*^8c!{v^k1OGn)5IWmyur^GKXj?A30x>DdQ-_BlRr*uqZh#8zPF1r|E#AT+-dzx4yXVB9tv zAJzw!+2|}~hkqmS>em1{dHeuYS!69;KV>;Td6+%}?k0J3L-)aVTE zzc%cPyHU!Om*araN#kzt(U(P%0F1vJwvFXrbt*yr&$mu|YJRellX_v2E^_X!BdY90 z`rsE&w7Kc}vUzCh=hz9CTmcPn9zVtyQpXMT5%iNnw>;#qi%YWbpS&(O8(WkPoo}n& zQxD&#O&vLoe9DhZm^tx8I(Uvg&iScxj(;r6zt%-VvVhaEPmu6?Q8i^kZ8lHl};lN2QHh zV|0PlIJ95r^rS_Aj9HCe`gPvgKJ$^t?}be6ihPPzeYC*%g4oZ|v$5OPZ%>gYGFV7R zA9(J@o2?>4olpGaCpqM=Wex@WS;X16xz;M}9IJZaY06H#I=VQibTE_(-6xI|IBESy zd<}SQ&BsEH49J4bUCoinqRdrY5Vyc+@YU1$DrE#R5INk{Y+Ql@bJJ-%X%_#;It_)VuHtf z!Irb^TQ9#K^=%<&k{|r13}4yMS2u@lj5+mf!<}(-xX=gb=Qf_*m==cSQ(5)Dx~IKq zGv?bb7yIMqrvHo#<$!|a%_C%8+Y?tlZw;$ zcCX*ie^uV+S8dO~esXalai+dchvxjDmGe+ed=oRY`P=Q|pEB?I>b?5AA){Xr4(?Z9 zKL`Kq_U@XOzWVyu*G%=U!uYTY2|nQSC41wx#u$E%XTk*EiEVw21i6BbA0Pi~*`+76 zsw;4^jb#s$c7=&b=>&On=pHs2N=@`pajnx9`MqmbqgzhGbFcbtDFs`P?U z4HzATsI^v(-HzFbBSiaKO1;X_x&oCB0FP+Q2{;%2CKCzBBzUB*Mu(q>gKjry%U|l` zgp(QI{D-UL8lS}^Do=KJz+>uBczr<1d2|h@K>Iq*2WM?ex9Wx?3$mQrd*aIbfa;9s z;l~YpoA?Ju>XB~^$O5YcWinZmynDIJt~Aq7C(jy}1XfGHWr4eY*jJ1N9WDW?cTdX0mz?b2`115v8@4le z+T#m?KW4m}avipgnJw8Y^zak?RJP!1$3yO%(+?78_nkS>1-*BI{?$Mrts=1Pl!KdZ zLlaeTyTHcR*)ON{q0oeje9{K?=+mc;e>OPVV3Qx6xT@ZE89$>>^=4)IMC)|O@P(IG zUYwg)8XBGaAX&2UiTdCCyn{vZ=hx1Hp3%#3-;t_f+g=!8uh7~6Ks$Dv?Mv{nU;a`Q zTk_%fzqU@t^o=w>v`Ze~6C3d3PQ)&}g;!8*W5E-y8rNHc93fDc)TIZo?P!w+7rOAC z1wj+t-hEnp`~arFM3%yqkMZOV-`;Hl0-ei{^wU-uTp_ay4W+F%nk+mS`2@UYaD5UQ zg-N}0Ts~fow{IVC)jM~&EN?t+vfmaOy^=9hAz_GcP!(tLVpgVFiFcXh_3nH;As z{Zzi!_3`>uHokz3cGx-B7Wz{bT*?g`i!W{9pQVeR4kD%SQ+hck3f`NoT$$ti%5{8Y zeNWK%sff+e&tZHV4qB+{k_-o%iZ3*x;|(m9hsWAOaVnQCF3<^~_T7Q$B5w949+YBn z)}qDpUEbj@st&GFo?p+Cg1YrE$v2mmp;>ev=c#V$=_$u*Wx4D<>y2OUfq^sG&4YL6 zaN;X<9Oa)F*tTXLAh@K-3ufov^G6T=MR%ni;VXA3BtN@z>`0#;pyrfSdEblk7ym4? zkO_cJ4)!fc7eT+Kq9a zsvD!=x2%*uai*~?o6LQTXzh0RM{Beta?{87h7Au>rE}Zx(`jQONs?j0!`n>i)7vL2 z^}<84=d<|8&$2;Z6HvR@T`~BZ{w-L`>iDyjwLX$`<)Pp9tBn5nY50aO<#1`Q^lI8O z1oM~1@#w4EU-;Q0+()PQZc%k9O{Rk)u-Z$G_(tQ3I_2>@zop+cok{^FUkd79j_1>r z;-#KcSuVV-n{*Yulu3u)&UY+o9ej@UDaKw-+a{_n@i@gfD)j(0MyJ2!hr0_t6;jxR zzsO#H%U+Y{!dCs0k5seQ{(Bz0{71LaNoQ>`KJa&BRkk=eAM!CocRFvb5KhB;AD2$u zj*-lN{&`So?0dpLT}0odUHldp+22?vV>e^4>_2CQ@3k`?0sNHl96#-%;IqX$^-TCZ z4ji1XpELf;KJ>#;+u5hD83U&68SCJWA(eO0Bek^zXe`X|bN!k`ugCV}*&^S@Z;g3L zbfB&6f(2VlSH%}R^)-OW7;O~QGtL{1mPbV$-=Ps0Wqe|O0ax%)>#A=bTbI8af}`)o zsut2exW!55ht!-E~n z>Xx^TmoHq|$j7&Sl)ci0*S2-A!C&8tqn1wUh_7_l_?-QGeeFOjJA9Deg`&QjE?KkV z+M&%cd$vy&qv464rLcO=f#7Y3-{bXJSKG@unB;^9zBXCZeG5%w9}dTp4_{~<-DKDO z%a|p&wg9xm|HAQAXZ8STKA#RP$NyZ%%KyW3c#ztsWlUYd$v-?)7S7N%?oO}^Cw+EN zDD*f7TBWJ_@Y3nAe`U^b0K4E%Z~C*JAKoR-#9p!CL&iY&Z|^IIMZcT(aX#;^UmxEQ z&&{LnqxX)rdto#<_Mv?I7BSK!MrLHxbH*Zpwx?WZF zn7z9U?=xS0^)@wPm&fq@kh!KO{N6oeF8e^9+iw)q zet3d^j+?w>GI@CFX#@<0`9?_K?L4v3_LlnYd{iGz^8~WqhkrNzbZp1&sV7@ z#yBa~)ael`Ei#cUPbG5sYV`MC{Pkb|fpG2A1KlegFa&-RItMDv(Rwv7c@_q%R6Smh z)%ikv4hUQW-{I+ylx+}}`hj1A1{%gVYrxvU;+pPEl+rlIEZA#8ntvO71y?r8>_92` zjDilg(Wt)ju;a52whOixt0YI9?NuhO!_|z^AKYZ9^R)1)lLm|8++=xGWA~vEJ* z6Z@sE8c=kS*#m#{pgeg|z!uDMn1nw85*b+Amoaf4!{n-p4HbG3lUf_C*n*ByUs-p;?G zj@DImcyn$q>1b%jd;WIyD1MU3m^_UGeLiY%o=6$lp1ZinWV^dBWpCZl*uEovqG3HJ zpoNdXlFnMS7lTH++nYoTi-8~Bdm(Cc72ngy$Z&!_?&ze-rqgTNAc_pJTOra8O!DIo z@aRm~%pGy-WY$jVE8Gf+tf+yR|) zQx8lfC0v7ZV3Kp%i=@m#A^h#UQ)UoiQ)X|lseB8Vp&H${W9+T#(*wcILa5Zm+wi6g z9=H`bCc|mFJx4RRE#}Zuimo~rz364}W9KDt$)KIp|JW~CIuN>GCpZ=dr$-fedoU+2 zsU;1oGO%ZBG8!|PXl14QX>Q8W@}>)@#ILn)i3jy6TW$~he4 zd%Egifq>c;`nb$-FQ&wP+OcA77y7f9hyUTDk@?Taqoc)Ep&dFA zI2#+W&Dw_;SfAnhfo;Fhwy$2%cF*UqOiu7{{GC2FPNa!E?_;0O`ql+FNLt9y7Wv|jEt$jF1U(-Xp6-|$&$u_Bue>Q$ZE;iyjE%RH&={@PxmH5R3 zxOAVgGvNY%>K3PioUZPrk5c%4T>ps7jnVX~ELk{pET;p*@Tmq|uu0K+^5rdBkio@{ z(HbRxZQm-V*L+T_H)fD8l@D#6DDjE62FS^$>yvm-7Z!8uy>XRaz4#)14;0PRO}0m0 zH9q|{To$A{Mr}2Ev!71eX2@n>fBZ4|y(<&WZ2av^1a0k8iBMVPX?wU!K3DPH98TK} zY<#yi9^Kmd2Qk1^hefwKco6HHvM)e=Lobfx{M?zsbCHJMVt8%mA9}^N{)TAUJ&TU7 z$=Q_pts)!#(6QLV$2ayc8P6D_Jg*KO)?ZAI-uu*&FjGAmD_*Yp(pGaKj^mu`Zvn65 z$6FUSF2($ij;-wZ_{(uXJHb{3`oM}12sgHZ!w;BjCmr9S^Vu!BtMGIHw=#KhR;G>f z2!&@6uJ30ItSzIj$~KjZW^0GWU_$fq7dYEi5P&kZ>z898b*{xIpaJOOmbez)UKW5- z&mx1g`GI=Fdp2V>{htc87uih8Q)hSeB`>(NSuvN{`q*9ufN*{BC6ClEoop8Hc7Zwk z1qa<52f2&SE1x`uM{4g?HXi9%vUtOHq=d)fpo!@#7YKu-PhF(U+~SdZ$^$olK5}JC zev!i!=h;&c-+e*qVia8T$tS>G3rJwhdx}G0(rk3q&(?nN%Exoh%gg9=9+L9fEvd1C z4pRolk9H3mJ7(8nWv}T~3g`Q$gw0xrr=V=c|25IG~uZ}XmoEJ7k#1w4|&I6l&0GrUo-s-Rw+T-DSa{L3{ zOHXi+S=_bgRa|f&ZL+$pu0=e5lR zx3Sdh?hhSvsIRw2sNhQ5*Vf`q*qY<7C6+0-hs3+Imdfrlz zCZ5>hB5#eMg6?bV)YcYyZc6#|Xijx^d-v``=IZZ*|Ml&+KmT(3@b2C1{rh*fpFX_n zmxn!4tPe2t3#Y+N<{-RM?bo=i=QNKGjdYZEYF+W1kL_{Y)}Y;}ExLj+GWBk|=uvDl zzlqaivzP4YcYEa!m7uzwcE@%YxmyhLN2}<5y1IccFjf~#$3VK*9ldo@mN8UdIz8e zqDBWPNfp2q#we$ctL402Rpr_vGq`s8-BK2VEAIpklg9IiFgk$tRhM2$_45<`4;3`)fDN3UB(T>{yK`dnp zhM`2Jz~8xjHD&k+RP#2W8+|fNiIFKhoV#w?!3ZER_!NEdTW83o98S@IBV9806hAo# z)fzMvN?-jDOdj^)Gy*^xF2j2~_N1UI44yW)<3JuUyRQxr?SK>?ejJVLSAeekXokni zddb|!d{XrGj;_K(>iMWgpQn!=`a=BB-HLx;P3p0nN*0RLMMpTgNPMSr>9`HYc*b-2 zfn!JS6L|ZU%>vL>e0Mj6hrqgH$l~AI_?&@|1w)Gq4;J+3@y)Jyyi4XoVBfueb^DNr z_Tl~A?JjuKe|r8DyeYqn3@P*excXRi6m79ter!XaT8WNR=8ABAAtim`Y}!hLCH>Py z%BoMbEDGwpg0BYL4N0TdWoUj90< z<2>P??IiddeRKOW&0X~D&oR7$K-*WcOpqLtbpzh;Wf7WR##h^c1g>qi@@VhzdGbE9cZVm zQBf<~1;)U)gWu?-3zXR_Z&;O=gYp^r?T?fv!9%Z&>y0~sg$Mp1;0Nke=4CA(UzY&o z_3R5TMu}bM9ot^=W?S6PG3G)KG5Tvg{03=hIx3!KzNDVx2k!h#!uB<;=d^D;OwL#m zs={@VuG*FFe|~}Kgd6Sl%b9pZ&+wUyV{Opmy?#EFjW40n<6eAAk$B3|FaECciCxQU z@=!kmadE3<$sLU=#lVG48UNO%HcLYxwG4E1w7dNWfz!>~DFNc@R zvnRiIMt=b%Lv1wPB{u1!jM`p)C0V6hWnhDo4%SA(%hhJlZCq-Vz+JFi3@$ckcPu8k zvjK1~d?g!>={S1Wz%WN}$Vq*;cJh*(23zVc|H#~5;l~es@4_V-Yahzpx#gI?6AZX& zYC<$*mlnd@_PtvRvjM2jkpIHfn(qEnxqO+du|?|XU%;e3)b*8|_v2Iv9OXY~TdI0t z0~nqgtBT(ONBSs7{7*9*53|DLCp>*x*8OX(#rR~O#dSxyAc46oT zoGQ(pYin@vk^0&NCws@CZO=~=AGQFOJ}AB(sZ!5)D0H0XfbN{rCcod z(S7Sp5%q@tZwyWwb!MKxCw76+B3jC_!E+WKpEF0;!l5zPE=DeI{6#yJtB>QUfcdEX ztGO8*@t;UQwSlE$x(F=!=rg>~aTx2qJe<3yOsorU+$XNwh24~d1}ij1gAael2j~Z{ z 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

    SGCm9%(LRM}+rxDA0uoU8|NSw-Pq_Q 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

    b`bIq=i3;zNIj)Y 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

    bM_ zQ-8@5rDg=8;}EDxo0f(S4-Y^WI^dyO_RHRCW~|yrtf{Rzv)0WLE`i1xo7-aa`Di$R zqqnz{>&Xu%(cV=XjV)DCTF!N=Pry*6&>mMq*BoY+JbVE?S^BGv65PY4X;9B%j0ngF zc@DF&Ytap5tW%>;{*^w}EA9`fE{v9|`t9*HGd%}}-Om16>Nc~q3^rA9M)sg>z+fw4 z-wpaY*h;()uP z7qfE{F*ExN9WWV7>(jBmxdi^M%Aq)B&&@1M#=vk#tZppDZ~Vqr!QRheZ^QkpNm?zf zID&?dRPdCUjR)uyr{z{vmBz-_M!v4@lFr4o4jnnzM^~T&>+77zI2CK)+=E?9s*$M} z(K>K-6xuh`B!>B=l{kOp3^Z(eiHhj%?UwoC1e#D@=yY#`&-;2DrhqZoT#Fv-WKXMO zeoo!y6xu>&z8F!bu;pf6e|~P2vntM@VV3@)H{|1DWJ_y%6ZVdMh7ZuoCza}k={5P?fGQkX*+Pda^k2+}wBY$Oe3!JdXxz|QTslBGzE9@GbVclRIOWZb~ zUt6=Zw{=3}_HW-|ZyHiYAF~$@!m-jrI#BQ1A9!kJ3Rz_aV|@-GC=u14dYcr>YYRsju8uWk3VZu1vFq4ou5l)v(qE_GJ$lQm8Hwi|JG}%iIz@dj~7~ zwND>Ce1Z(?Pn&gSYKlGI({RQT);0`+EGl+S!s$=cN(62S17nXD(o?kHq-+EOy`s=QNmhxC~(5w6(R9u-EL_Gw0)nKmJKNE^WLCaNN81II&M1cH-jlMr^K`<=6ym>(nyKtOMRe53TFuw5+@|UmJNooyj~p zZ^Ug)&|+Ov9ece7CYYv@d5 zHaaCUeV5jeBZbx<%B=Z?nRxc}8M9mYnWZbwLLT6w zg_sqNBAeE?u}5 z4suyqS&hn?x-9WEaB4=}^yC8Yq88feLnn<#RUJBWV>jv2VEg3EY+{mAr-lkT7@Vyi zD1!jXcD~bjrE?U_W4S+SHRZ3pO}n{=LAp}T#jH~UWIenl{$E_0PN$xe+P%g$IMRJE zDNXxM8KA6@UJb}PY2P5fx)vb^O>L!otAV!7nmY#{lvS2x6`k_C7Ma!5pq~WV+qA;6 z8Qfsf7i_7eD5p;TxJ(us_eH_DQ&LypC+gQDz16w>` zcB9F2nOp+a85kTu#wsssp}`7OR($iDzZN5-Ph7@$6o8_ zbC#Zq4?55xt5Ndm+b@3S!i94v@@0r)Kjvqa(_wMu^pHqB78VvEcm(D3n{nsvgA}^c z5W4_KM@o4KREshZm=zV-;P)iX4xf)F4@aY-xSCA@{&J`~V3t-FV))!ZRKvh#k65yF z^@S_(80G)$*#b=Jq$NNT`#(Rk5_OgJQ4O(l_O-`D1o^_$I>w036q|>Zq*4}an}u)! z@Ue;g>iS|1k??&VeRMY-KYS3s_KmM0giB*_aTey-j$t-p3gKoXexUbs{N%@vVrj^dT$&iB03%Fzij&tmpTxuIgy1?+hmZ+dpL*rTeYl{4#>IIBwr@ z#QtHt`s%A3+%pW1qwE#2f4CAiUc3;`o{#aq#pvudo6His@;H0$63Q3_@WDa=YCx60 zboJE(2mqRZ#+xq;Lpb9Q;A|?8Dir=2#CdpB0b`X%KhJIkicya3-3^GhopYFFFDs)Q z0vZ|`j7E%zmtTApp}D}dAo@cXk@KkpbVztcjct;u^U@3q`$-8x9MYgN@8nEdTWi_7 zTNuP8G1TYuStE4CoSi}#9X$es${3Ai?FKQ20C4_G_IVfLBLq3v&E zG|z0NG$Og4fGG`hXwwXlau`X^fA$hw`rC{X+POi z<5!_6n9hk-tlM4&>2OA2`doq|hZeA%e9q{IjukG&HFap(i)oj$5jYkizb62db*_xj z+S&#{JO}vdNkc?~PQYx`*|O#wHiB&ABkULGkuL`w34Tif5>8LgmIMGZdj{Gl9wG-+ zpwxe52pT-;=_Or7e-NO8AIw#C*_~h0nsl;@wS`sBNT;hI$7aN+JVWz<$|6#VGcxwPq zPXHS>IbMNgpgZm%SlMEK&7Rl?RL#vybI$A&V6LOBIsTo0_z&QNt+;dlP8w%|D6?U; zly&e6tTf!^6R%MiGIPv1*;u<(G%cTK+!q?M?m+~{eUEf3|Lb6rCo%(w>zh3X z+h#_c4j3IxI(MW;vx5vMm@#DbuBC$NIayZ6vDqTZ2A$JpEjk=SfSo}S9U1JErKdVJ zYCg@HFX93{Kp8{HG%ifvtg@(KiCkgTLukB17XS^>D$3v(u_`N9r-$+ z)x{m1t?a{Q_B<9OvnqfsI*hfAJRQYApMplz!AF_Vbn48h)CJO&hE#2RMGO!1#?a|* z_OgimDv1kMoKRoKt{f!BVPleRawv_?d(NQ(IkCR9no<6veI2f|nSpzN46&TvK$Uxt zlW6&jx%BRVnQ0pQwj9yWvlr4jAYJTs`SO*d%{`vY?0xTLkiua<_Toc|peJ^6e`P>r zf;}&rF#sI$p#i2-HK$#BvYee6MLHtc?mTJB=FCj@OXr?=z9f+Qkgd`@SS^8a7+JM}7#B-NK9eTqos^em-0wV0EJuui6oeqBEb%#_a zv(?2KITiNulbgV1mPa`x&CEr=#KHz3RxwOxW@l19+H6~iaWcx82OZy%V(jP~M~nw&Q)W3``f$ zwenvXfL2C~@k~X~$=+rfuy4KnhU}J^IVTwOwKWbk*ovhEr#g0J7Tfyzc3xL-V*p>n zQfJ=Y)?qs3*3AwD=c+3-M3vnJv#d}Mx7s>LEWE{aP4LJbWaxkU4PH1m90Q!=!$bl(xmj@Ldce)?2_R zw)EAqVfVuzfcyoUq#V8doU;ONSs6lpItZ~omsj)za5V92kd$J%3&J)NE9du9#1Hi;~2V*fUCD8QY& z6JWraxccI?c=q&uoEqv+j5_vwGL|gwYpy}Qu3&SHL5G|1@yBKZRv~w5hd<9nO)W;4<$Rt+B`Zen1dD^8v63j2~;3TQcOb4z=iIrT#P>7V{JXJ(0D zSFCRxVdoqovlr0^)9_)$zxN;fVKg>x$Ix&?VCKX}AAT4IPUz-d4#c#j#49&nZa~+p@^5q6$?9BbRt!Bb z&Y5AQLwUB~CehGvx>^WF_)slA0y5<3{sT$rCn4z)v9Eyz9xCoZR+twQc~bT-6S zzWRE!chtw|#7I`hui36J38p6SPtBafQumADyWApzq z{^0L^gZ-LLeQufSNy$;%eDOvm2e?*!1f|6dvAJwXJo0qsC~>>}`3&e-C2|5yZEWtw z>H<6iKh*H-VqtrlSJi;2cGlzU=`-p0wc<Pj)RNhSaA-~Rph;SWBIzV4cso?Kz=1)J0|@R7&!(0Rn) z{QcL!ey4LzKv!pTyz<6{tbpw3Xo|irp2Ml~aMlv%IXAb#{hp_6)cI%cQ-dK}(4<3! zlmUw?1~v+E@fi8U9TNjtp=gGk8E>|ZvOlu}Eew=eO=3pA0W~qd1NyWd^+%|8b?VKp zEb)GAkmG!Idv$K_uEy)Hy%CQdKZceZj;CE~5Pd)K>)eb}dpivZ&`{REbsn3xWSK6zc|9*DopKsK9GeeU{9QqVD5jojPZb{+<} z7+TRkw!zvBT=>3q-e-_$u(uz5WqGuLeY4*SNg8vU@ACX|^3gIf*er5~&-|DF)&G!Z zWA9V@SvR+Kf~OXspSrZQY{j>@xXPIf#M6<->@QfS8k^_o#Q1kiJ#B`;?VVuBg2so! zN)T@vrpBv)b(sThfsizKIy+i<2qzd8O5cp~YK$m-N1l$y^1?Ph>3Bdjqextc83hV8 zojw|beZ505HSZ{Vz-Fm}Ya^pxJ)M2Ys2y$HY|wE$e)c5Z`rI3FdhiT}@Kip$SqK_b z8lg8|yoz%6fVMLd-PhL@&&Mq1-GR_bVjhCB@1K)zoN#G>wCSl?KyC-bRTH0k`HlGa z0|;bklLIq#@-RO9_+fnR?bGq|Uwnu_s)@m&Q-H{20BSYQUCA1|P(brhg`m3o$)i}9 zMbKc(4)hPiSHJdpeD}MbvQ8T^0-UBNvL~EP?(KzP#@c`JpWj8OEI@=EQBz+QpM3gp zTzlar0AnwnJ)enp-oJ(MVVTrHmTYYA%*E5uPvRTjdV}Y5+EZf!C8LiY-ufUu|CP5O zo)v@~&)Nv!EZ&VSnA+)WzxCT+i@*5G@5jXS6bxRB@EeWE@zrc@dFgyd{P@T3#M_^{ z8IK-4<@57#`;#RA%xXM;G#a<>K8$yM`pX#S^`U`&&UHPS0PH$EicppcIX(0B_0@46 zFfls%H22Ap?QI0jJmB*(AgiIS3_;k%{^?=2DY;oN7*QBYu1V!CksDR9KHf-64$a`j z1DH(1O4MmOw{`qFRy5jd&S^AQBhBBl@iJ7XK+2}qFj!7MOD7Bh1EVj?Z{SRwI)Zu) ze@k%c0oG~Gp?u|mhAbP>DBFjDxHo4}$r_A;>zEQKS{iI~VHw`Cw#@Y5KQjtdMrMFG zy-HAHmVrj6rFw__D*&<|3Af{!{Jf>KX4(LFFj#dqnh_yS@$j6f*VB1o**t&aIy(O> zXK_u3+(&`ajBrwTd2b!{?twj@6tcyYS7Zq0ONX@&4n_^tVs;vLukl8qVA5FZI)!|m^FLP=hjK0g4P%_o6+Gs z_S7?D!fjJt8JJiGRN1r5_gLm2kQf`CfP{)rR&#ll3U_J8=%A5lBkU!dy-uhEw%luS z8o&iOu%zhD{RioEu@{@~(Ltv}LnpICLo{+7g7ftG)1+M^kQ$3-xHYx6rxNs>eddP` zAHqKxhde3Y%gAD#$ie2@d(OCzky;*z(NS-re7cMGOj+ zrMzd{N?tINd}v@0W727)oYevJ0-Xy;ED5j=&hZ}d0RCG;nYA?5#y7t9WsJvCj{PK_ zK7GbDxunm)d6+3HKS9EAr=KE|H{f5dY!)^^AKOq8UG;PoVsh7&gS}N zI$U%#8Hsf&Xf0rJ$G{gd)rh(dbIV2DD|-mDHQeU_nyyEG_eND+p%sK{utXr8c)gs4_6v8cc>O1E-fl!bx36PD8SQFetF5Dle$Ei>t-k~3fZCFlXKnk z@0PB@ztD}PIWE#(a?+RmW^{;YFrzWJRiRH{Yex&`v4)Z2^i>_48oa^&v1a6g&OUqO zC==2V$7{Pgt9e%H2AzWP_7=vQ88piPMlT@En%%3TN4ceev$Qma3_8YGYRGIeTW{FM z`6Mg_MsFi`bt>8)NBttL9_ZL)KaFndv|3wU1rS$6M|*cVHFW0M_s3pGX1?h3bV!qJ zFYK+V{4$u~xoa#o)i+@1&Zm>)g%@7RGn$&3M6Z;jW9l57;+wADn0Z+v*x{AqJdf>R#V7wC7V523<>g2N-!R#-EKRUQqVy z3|NPb4Hnw6A&L)>e_e6$+_@ZtU_*N|G|XTuEjF0A#yZ>BtEyO7T*BU{&F^%Ou@1{| z&Gfb;Slwins})v*;B#qt4jV_KSshhXRRf=zMGL+0`MCvf4)3?z-@wes=!2YkZC3pu zazw161J_`I6%J-&n*HD1*~=PtVrSzJe%p?cV`!Z7nVDKlo#CFO&O@%4nQC8R9lq+> z(i5;6d$G3#PUm{N$N`OUgP9#&h2DY68_V~6E}uyo&+K63uMO{&^JYbhWwO-XUTflM zj#&qSdm&A$AH9dcWF0>n$hU>Lx%leWzl{9Zin6MRfAH`A?fBr<4`O9&8kyc0t(|r8 zi=Y2A2YcA-zQ3nC-u>{C`1ID}_~B2+!7xS9**<^`*%Pa4>Z0P9n_G?PnMHKhP`v); zo9LR&SQN8?p_DD>&t8o8-~TvzhkLN!8j(k}Jo5qib0+@a555s&6OZF--?+%x?4?b# ziB5X*=oz%UotVJ~w*7)Fj_fhMusD;MkLS-_0%sAAWR? z*JsmdxrHvYucVGTE7^A7;X9w+jg%if1Ep@#0ID(7i>m z0*zaOZkD<>lX7F^`6PO+uAn;)c+c{7X8avM|8?x4S^E7web{z|>ATG>PKuTV!6E`J z=~O;iUP~S_6RCmo*B;+QZWV^Z?eI5jPw3;qxfkNy_dZ}Ru=P31#f5q7TX6c^STr_P z#h1VQwfOG$ehg26Pm$f)D;4F{$&ZW6qv*Gau#d0V@AAXw@Wk}gMBKdjLd?%ha;}X$*AeG}4b3&%TB_pW z`2nzUS6si|pTV(vcjx2(@*n;CarI_roIcM!6wR|o;PX0rZBE7?{NcAU(EHcldkn6y zZBb)PP0ytc8XoFHH&w$s$Jo&&(ARF-m-6r$GS0SL7cUPWgD2pnh`xa~c%dSmJ=ut+ z#*=8M#};a@fhLA?Aj|*qr{9ZR&iK*O3Gm+-_QOK_{1+qf`L`~|?N6Si?Xa{`@Sjvx zIrOS5`=o0pm>Fr+;o9nY_N^9MTghe;fp%;oI#_$h_C&Ub(FtDP*n&LXOedm_D}&hv zUTTo{)!0i`4px@h<6Deq;1{fdFxc7ILY{~p4T^53y{8-$52XEwOejNMD@&Az2KePy zF`n(b436s05-ZlJ+mW?5UwkQM;dQaOefGqL+t8aq^TrnB5cvK4g-hvY(vM&!a%)?A zJi)f34 zKs7|azG9SqhYjdMsM%WtL;P?r`^_0`)i7QJOu1qG-CZ$wsz0MR>m1tn$V{}N04)Jo zN3iO297O1mGsp|1GlJ0HQs+xaa0z5Q9nqUW}` zxgOhTt5?eg5vBe;R{*199bIcU-@54yLY%`sT7YeYzE5 zU1s0gQ4;-e24no%C4^lA=h#$)5I>F=E}e$4DzoWv~ zgw)>lPE=Hz#j%2NSdQY-ZG?-;cNH)?0l`1OfC4OZG{qQ1W+ulLz-D9ZS^Ul4`x4Ju z&Hl}yPywwNd)iGpt`z(>H#cijLre#c##HvFDn`h1&PFsfiZ!;(7BhoJaIN!2$BzbU z!C|J+<#b9XK$^w14XAPQAq>xZ1c{cV>KqXC34%>W@Y*(t=hg@o%RL3h1tYBtrjwgW z5TF|BD#6bjd1h>gIlVVBjc2IF=q-RP!9IVm zx&$*iNpzyBoQ;F)WE7wqy*prk&2q`C7WV%$&}mT1C34Po>>x(-+%h_Q3Bx- z_C2%J_)P9C_sTKvtVP4d*J?0W=8=gS`DXH2N@fO*O3X4ZCk+?#T0i`EfU&%^G@r(_ zjoD{rr;tfaasB4C?9FE1J)On&nX{*%N=gN#L);7;GtX@7EI?Q3m`S43I(yymj5?x> zdK;l+d4&vG-cw#x21)4zu&-7d`&Y=y(7|cBfCi1zxQ)WfM~w!B*dP0WX&87edl;0S zzvWWyozC;jNagxE4s}GD<}MFxV&Jtlx5lG~_Y;Jj?4LwOOK;q~`eHQKwqbO3b0qsY z1-q%C9`Mtd4vC`^CzLI+A6Mdk`k((9`l10EDF;9TWHv1!DFmv_0&(z(y!jaoq!Sr~ zLQt4d&Poi>Upd5dOzQ~Ld1G4&9UnSXbmHiA_AJfb`^*S|0rR~YC}vlrqlbI>ZRWKO zx6B0F6F3y!uiTN&rLlrjPN#Gs+s>b*-^^m?EPS8f!^YZ>G3z%f>%9v!?Kzq)=PmtP z_QvEc8bsVG&q#r#^TuiNM_v!Q=N7zdrXjSzI?O8G+_H~d!C{!?zPvYs7OY!7)p2Y& z3IdoqiH-Hb#75gmWY)K! zk>8c|{+}hD+?aKhXMj_uvU(;<;(2cdNRY`T+|TnhgT-s*`61K&(s8R}J!w+sEen>% zG^ho<%23NmJ#0Ty*HD|XRKC-h;#r%4xbNgnXi6uYnes-Xb!Qm}P&ONI6q6{E)SK!@ zuaWd!&b`<-OT?7DYv3}Y>z(bLnIUZ^-|6AAS)!c%0xPOhHX1;5n1w^1iq-4vy_pT4wE%&{;9CP^_9Zf^ zKc0r7=a-9g-`TUQWLVz@aBpR1k|q0AbC~UJf3IEWCR+}q<6I0;#$FUKjKAyTOZg2Q zSpM7A-j+cg+uca#$`gD1h+mPcDSy<#8X_sL%S({`Wzo^yeLOtbODF#P{CJk_ zT1j(qv~9YvKt;^1wg`w7J2#9kT~b@K`BlHW^E+OX;*5>hBFFkvC%aJ9NvQ zP|KDBZgM@&t-i6I&m5<5E&dk^iRsORI6f+gdk>yOTUT9NygD59P1PCHGN7r!rZcmW z=XYq?0Y-fWdeMJo?^^n02C&(^+t8SMucJYEX_lisV=cGrN7w8hZboxULo~NS!)ptP zq3yLRzl(`%-tI6FdC+Vc`zdE2le61c+lDlX!ilJsZrSQXp49Om_D5KyBe)s)rY!T^ z?J+F2F>|)uY*}=e1Fv*$I)uhSQuc&S+$min&nzid|ExlH_9L$bL)wPMzFpF>*;a`S z!Hqf}+QIDEXOw5qQKFvF(6xG@xuF%BS!X@U^2#){)tS=K=FSp(gRH7WcJ8dj(5c?o z;mp-A_EooUlvyh+-~`V|M_+SOXDlqNKu<@|n9id`Xsj{DMkmt&qS0)72l-i^;+Qhv zIWcC7seR~KV^*1rkqq}QVU&uwZ12$8+6m2?A-JD-Vq?vLWe)s8FC$M3?kJ<%Fs!Xg zvj?(STCM09+dyb*v~^%_)z(9EI#A8XIfw@6+%`Cs6(!M?gUD*)`#=11?9A2FRX_dN zN6_jrHq9Z|-HOhZo_PFJ=h|~tSQ|aPoaaFa&$GnZI1lV#bz>F#X%?edVRvrdN8W5k zoxHfUn~5Q2v)kh3tH1X7=;~~Y`g(Lu*>U{d-~4i1d!e86n&Qk4Wu6;zj7$b_7T9;K6t-F7IL7i@j^Xg5XeWPI+r;asoQ7;cq-c zS2u641;$ofywJoo24iIOF?g^AnZ64h)~D^D^F&fr!&AG-yK^%O;J&h0 zTUv$obfz3~9y|lMXBoL(h1@=XZ^bgR({qT-LPnAUChU=z{V}S>&acw0!ntQSWXKvacm{m0BEo~U=Q89zMz#$Hq)m{P*BQu^p9z%W? z!4tN?stnsL%*@Qj=#!Dm%(X|n(|hf&?r@oU?VfUzt)}Aj*G@xk1}rzDl>5DS^HMw? zzaKyQ$=$f|a(67Rk3jFXQrl1Y*#sSLZ>`4%@861l^Y8yw+`D_1=cQKGCi!RUBS;#vB1?nWL4Y2y67tE>b)J8ODY;}%R1-1)WS+w7A9eaSh`c)~g?_WYM zn#=%#O#5qQW+qxX+>^1CpPlX9yk{PrP?o_WW7OrGvHby8kY#P?J}Z!HRa1>lN=%22 zuLF;L^3lUMH8haU@|o%RJn{l9qV1l^et#6XJ%mIzwyfJ zQPMnA|D6g1yxAS;_`@jGc=6(=PG5*yAKZkZT`R^~@y94vdA7)}8 zkhq4ujVzt%8fb~x*_l{gScM7e_`J<_*))v1XV0Eyhbys6PGVPT1hq@-Wlb3y~hv;Aa5{2m=LeV^y5La0YNO!gEx`^89Mp z+;nYi10~mkAexJBe(MY2B(?Doqfkw;FaiA9I*E%{&PP{2hV}k5jC{m13Hl+d(qoKO z8w(e~6fJCUB?Ro~_M-UL{@`~|1Sj!qWQt8*kB$ygE-`{po;DcX+FFjcKK~j_xf=H$ zJWVIzYp-9AhY#+>m%n-mp}G)#-Q6h3xw!ku62w;&U;6Ub;$QvwkK=#(XFrNFfVQ>8 zmH3l?@sqfAxhvlO^2>bYB$iNCmi_+4pMM(v*1!En@!$S`z8}ln&*?ul(Qj%iMM%Ji z2Wto|OOYEh{nWm2-JNyu*6Ww!+LfW`0F>5PJ^=86rcly4N;aZ@pfRpq?2QW-d*bHx zGpzYS44!I;8!w%XQ>U6Ug7PXtYp}mIu3qg$Sye%po&4OMub<&PU;N?)7^)&JUuorx zcQ{)N6=>@iaBq|X{m$MhTq|;q9ltL4*N7-Wut-ZPT!;o?ZMGXm7fe_0WUqB66QiIu z3N&d0Wt|gde3TYpL_jY_K8;wPpr|a7&{=i@7}7}7=uPJz!bkc|gSc2>!Z(a0;fPSRt1<&Ei7T9WdmvX&y2m(NL#2YOYoN2t20;Et`>0nS02&T7SYBLQ4zUlbld00`Hou`wu zuqKUL4V6Mv&-H2an<=0I)#+L&l>}h27JD$*PoS3Pc1`t~yoJNZV zk4_aGDrRVC@G2Y@|is=;eNrJ++pD2QqP4xQDvL=UoIZgx8C*YlOHd@05!#sG?q zc@Otr;jY{ki1-|4iP>znuD&r_H57s<>(SDN5m{RupMLr&bYj^@86Zt(nno4-hMdzW zYPOMbbrnFbL&+(^8oUNyEDsu=nC5k}05|fSDl6*%?igeItOHs(y}7;zSZR*h%7!Qd z)*K#k7Cifx-M0UWl=YXYuBnuOQ3j;&1%UZ^o6&XXD=ek79Oy6j0d6 zo~|N`0ZkZeIv(m9G3NFJ?q)Xo>^mrOd;eg_pg?sxN_R$PKXb_FAeJ}t3wrlQ%eoGE z-QbabF-j;1Fe^!ePCC^YB#rt80fi0|vuxOsEb}&_#_VOMIezB&Q5NiDJPAQ8Ep}fu z>O3cTR0nsVbXk7a5uV;8&Ysu!ymYD~QYWC`&6_(#`ZFhFW)}MXyq?)2g-kG=Kwc^b zq;OC3&`OjqT)_-ld-A1oADOCw=<9;kbjm}A{_e(@jqI9uOTO2Psyz&N!MT&c&G>Zx z>{<22FMcszeDTHj`+xuM$2Y(JjriKvz7|)nT#c7seKm#$hT_7RVT{NwaKJ!6w<`kf_Gj6{4Dmu0=x^1@3XU|iRg2i{M4WQn@Qsevg0y?IN%S7YWFqtVtI?s}FIBMX&JHfSz` zhU{aT{gOCy9dn29u(V(%k7cS^k_s)R6PfE*VQ?7*m#5XCK7&CEdv$Kx^OJKj6US^n zo35*q%)*r}s?BWV+G0Bav2xt=bU)Y{{w?S+9c4z(E$26z&r)A2JZ!W+eCkv*);TPv zI?B=A_JWlL#bL@xX-`MR2|BYG`DF=z4%KOF2KzLobF{IcDQQh(xv93<-9pC!m^m*q zGIe~(KV~*LJ=cLlHDDL_)a*rDEi@uKb4o0-R41SExd+2@V#2bg1!R+sWA%D*I(d|B z?wf%>X+ZUCrsI1be+Um(#-%HlQa}MgM$|Co9Y-E!AvJdFiwH0+fk_|eMl zMsy$}FJbsX)9jNKKrJmT;jk(Vcmp6sMF;TNCi0*Q*`N-zuk;eQb0_Jz6TLGqcrFKU zw0Af0Ic(4Vi`X^8@$;X40;sG;XR;3NSySE^_wE%EJPJRp&a^)5sSV_eP6eF^tvWo)?CZIkGF+N*inWe++nMyKlfb42 z(1?S0I924m6$z!#!baE=P`PSmt9>aAmRFR6^%~k@hCTLv4hJ1P-5U=d-j3PXaqhbu zzx~_47EeY-196D%?}>%^C3NahEX^&&-t0~cTq}#GV;{uLm#)MwfB9*2bXUZwGwpHf zlV8FgOKH2k^X_|zYi(C#sq+W#JwaDh$2`2PQ~hwSC>mIsjF?4s?#8JhCnLJ|F*Hzcf~{_`U!_g)&;R+8xOsChCZ{H_=iB1*Uwk_*B0E05{Q!O} zi%DdlnWxX6&tgAqupegYm9sa+(bwOFoGg!X=gwy9hqjKkr1?8w{nh#PXaFBnR~It> z4Co}bMh08$u#Fw(#BB$x7!0+7!b%MTc~08j-dpD$72rXq;U96Pwd_M1*!&>nqk$EJ zPNz?wN|_}#GNVx2&0vE55|zEx3StCtg!i^O$$*?yT4wC!03K-6_5;e?D6;a=a_$xM zJGySo_7D!C(ecl};!1JJ`f3cCbcJm*JF}43U5A}?q7z*wxR}*`j5+}gcAWxa<>Yg# zJ&=vQf0(mhTwRO>Y^9dgMtF84XGb)EpR)J2LJ?UikL94*OsdlPca(gYiAjgM{FT4k ziezms{?)&HCrZxT==hFJJ59g0{`uU6vnVzc3reT4rXiMBSE98E0Z?K6J_;5vqriRr zwKv(wIX2_~AfUnrP;+rpbgyYT6y#&LoMc=8O=o{={^9741Sx)OD!H%xx1R>2W z&EeQ=7r4B#01-FGH^2SW_~fIJEGKAfZjbHNEjFk=9f~&fy>{aT6zwFyw*-g`d*Fzv+Ut9=;HTQRrj|&pe@xlQF~9L0G2nYuq_eLX(c#vf6PL&7p9Y#y;qgaaPDtL7B3`l^06{2 z2;(1RSFg(v+kn+ z-AC65vJAs0j`p!a>;#_AOkEDWkgjcJ1jZl2T%n|)VwR4M5vOH+=3o@WyH}g(7<6hR zpb`LGiQG_FTgGpRyxBDzJ7B@H)sS=`Luop(G}1Maxiss-7)zQth&?{Py}iy^ngWi= z#a7f|SXW?p)?!dJ)>W|Y^IUr`9Vt5L?2%`Gymdh8>hcoGU^x|x*}6XSK89Zcgssg? zWw$qzz=;!sURUCUYu7NEo@d6hQBSj;$||7gT~pgFxdW`TKbDZ(eBnChyTyL(!>@DE z)7^=}zJ}qxlYLmF7oAC#D)rgeb#57DzZM%PULG}r4_W#M{Y24T^mX^(4G%Qno{U600MU$Y_e5GNhF;xVm6=9nD+YrA zvZ1;$P7Rz+KyQFyW@4(PzOyljk=oJL5)+e;0d*^3zc`1o*eeB= zi}D(?Q`Y1Bg#n&ZWu{|lH@^MNFGOQ)X@ zXGW*lS>9V^EYBV8DSzPu-scbmTR;fz((%Z}l~D!^SU&HQj*HQ!tbxB-o|suc7*<}y za(VeTzxZ8eMF!&dGlU9H`F^g!x%eEl$Z`h+@kj1wW+Tt1;fTTRSzFpB-w5Uv7(52F z!RwwaYsu_f=uDk24cPczhll{iX#S&zkK*p#`|)Rg`mf>#KloAn@W($*qrpk?mTD-U z?GJRoTDy9Bvvl5)X?1f8hC?YJub6vVzF^R!t+@k`2*!XwYv662@XDkH^qiSfozTYR zOBc|O73_Zn`VSDueRO(e1|4VP9yq{8OyYUi2hLt?zUDOrZVo}=5fE1DsMF{)`~6hL zsX_F0eIq~D6r51fin@rsXhbJlRw`|oIj8{Eap9TeFek37)5~(#qC@3YS=1Y#1RvO^ zvjFT4*?UW03+Gf(RdDi^qi4+Kb0CsgEypL8Kb^;r0&1T{ECn<3AnAGN=Eq z9FP_dwxgl37NdA0ogcR75Hx$%(yz|mL$H^|ycaACpMh2m(ZBp|#){7Y38pNSHw>!S zG`|vg=wLNqCHrm@ex4J#?p_`Ox*gtRmSGu}c5=6db5mnu%6W}5<)fw7(r-?&=Q%7B zt75;pG2k9PdIo(~vY(dVVoGv7A6F-UbZZ%rx_@zXIhtCVV|so%b&C@pvs9N+^vN@;a_IC9m%d0pKbZ&7aOa)dzm#EXs9y&tbx70U7S67hdW;W?WDvD)*zJV`; zFgjF?>YI_yabvV|?(mqnKwgF8pn*c`4Dmw|GTqD>&$JT$)Zvgu1E2TY>KdA&p`|HG zpqrzjgV;b9r4yg$RS!!~%6+G}JNU?r@P5i7r$w3-pf1)>knZhuBu@{VvV^TU15sr> zpE}YkK(kFW1Ulin1}9CfXb=|jyo(t8?J0}q=EjkqbIA5i*2?FRjT&J(o*gPOx46h! zwqs>&B^@vtn>tYp5U9h=?$BARExGEs4ZS*6O> z>RJRMduI?Hu*_K>v!(-hu|6K%8_8aK)wP9Qt~x#&(ebXV&0!UI!%DOG;sW z0`uwsbbwd}f;b-y?Hp(W|LyH=#Lbs4MrU7BEUe9kgB2$y$Jm2nXav~=ZJd7n;apXJJy78iz|sTbuV%l_@tE>-L>kn5S_gU~c&w|pE9u)lYE}<95W`?V z3wpsxq6P{K;t66Z(H9P!+&chEa~2MWsln)8T3m%b$~do<_~p;v1D|ONnuK6BI`>9V zJbgM6jm?edh9=I&-j}6u4!vRDQL8VsU1w(JlUM%HKl=Un-~Weyi2Nyu|KdOYuc5cC zcDBGLs$oz_U{%j<(>`@ndwmd%m=wbZs@BLQXzGE+D z;R6Sb+G?x{tZxQ#Dfo0d>Koa&=ab3*(so;O zFM75t7U$Q~p=!@g1LpGG0y47;I&zZq{LDP}#I8X;I5F1tWkuk-LT0{Mf`wK|@|1p! zQ^TiXQ+y6d)*?%W2K(cKcb`O8m%O=xuAGl+mrli3zx)dFeiu4fW4{~Y`VH_evQ@or z^2!Gve3S_w83+QmeE8no=%K#92Q{SWT&jL6jPK5Uqo=pJm1q0>&)FXI`Dz}&Sl zKK3kLf8#~ow}%`lkK3Ql#lQ9kZ-v?6@4a(7S{tjNpR@67WFqa33zyHv!qON#TpVw{ z_DW{Dee}UCaQ#9&e>x48t3lTe$AbsY;Lk$fLOf>j1uP1l+R31!e5{{k5_`anIAm}8 z2ZzCt_tI(DjEu1FxVl^nZt%{aX$I!a02U*G23z14fz4z0PDa?4GOy;WGxh3jvKfbOZQNXM?HP^qHx7QKF09L=rmnV~2S z(AQ-^+oTM$WqoFc&sDQ$^Gl1Uvx*FwPEE|EjGusytQM)_zT!`_pw0Z&J}_vn_!D#L zNH_D{Y{|B^=D2e4Y&^dAC_eYbP1fIh@|}%UGygPjDq{w4^_4GuCGOpR7}FE8DX?>N zG&gjDtp@b!>T2A&^(lY(_cIhOn%QF@$?-O9uxH!2&|*Iru9zaB{y$FC%1A|V-6oBKxg{$%Z z`cM8UzVP<%#b5m8FHxAaVY69@D*NN@t_MdGuf1{!MwyCNU$#_mK3;wGA_jJK+`n@> zE?ztn14A8g=4?m2^6~{3crd!VnqidM?C&xRKs8RdcC$EdfjSElF!W)46&3dWo;iJR~_>`}(E93iX)Y&s^5 z+}d1PXMm-!8n$Z)3p1>;UlV_C0ca%1Whoj|8U@meWtc|m2R(6CfEo0zh8_f^otU6Lj=dPRd=Ewdo(O`wtN`6vke z)}T?*8$qu&TMEJL^J;i&{IUV8!F{uI3T25BHCmoS4KRE)5ER;#TtjD`fbT?!iHbi4 zKsN%gy{G%Hp?rkGbUofjgJ0v^3^mi750Mob)*Bcv4jZtUH@n0-PXL?^2uPom=P2b0 zI!d_*Tb2OIKsCQkhH4!jC>Bd>be>hCbd4l6)&ts_o7hwv0Iz0woXx5&-F3npo5}s1 z9<`iwXFx>b&McT^OKmfQra9kd3A~5l>p38X{n06yO@z7M)>9kB^7DT5 z@;8mCU;OMB$c>IX`x-#g{M-@>68e)KIFoT?Y%$76=ZS`tPA?6k8o*;;R}Y}_I4Zcu zjq5MQLvn-RnP}Ud-P#zf|kQZH3X6Zsh22gyK zg50oG1w72YIgH2bD&Md1YF3BYWdQPvVC^`0M!S!&~te|LlK`AAIkx;|G8J-FWwd z4>F79qgx-woloz^#~*$e_wU`oAbJ8wH*;W>f6=2ngV_?E)8J5lf}8>SU;(0fd%AP7 zr+rN?T)q%<7%HVzrFqt#VSPhwW`|5nJx}bCWyQ!&orXTACj_$_sH=!lu)_0<>>T&o7)hlojsfEk#X#fdEQ3{$u5IjFz@6b3PCv4@Vj zPX~}gES6RlIh&)@Wljv0){O4!h&ed46^A{J%rHh^7av4#e;2@5qpTPVRt4bH(Iqt| zdnXMz`O)eLC$^T9sx#Km56~%et!`5AxlWxI_4PFX-*WWOQZ`UOJl>A8X9u8lb@v|k zL5iM0Lp}rd=oA5ddEj)a!GG!}4M78= z(uP2$6ywl6wuH_;fd+!OfJ;xu&su`|7S_IpJU75ulGD}KG2AmKp$zZ>d?tq^@w2Zh zZ}!bJgzhS#TXja_AS9LLXBs4a#tD@5jkU?wmPX3sIYM~|McXb*1X_~XPgw?E0 z&cD%MZ&j?XEMP1{Z=H?Y*K)}!FgM0DYqj^>GUs6iM)q2BiQIo*qa1qHIJcZRC$+;E z_2`KjX#b-R?}x)S1~Kd$2(-IZm~hBWBA==f$B3!2ryYc8=9$Cz)-dXIOwNIa&E#BJ z*~Gw{PorD|xObp~dubRt^|>|q-)vhm&otz80=@b6tI02(?Z8l9j7?8qFAU~@GlQ7& zgV~KU^Hbcb91=9+TSs^)^7Dw_4IEY{O&N@_gnSP^+FILA-hMth%KOEmCG1}lw#q)V z0dCtvHu65(M(Bj~nhw~ot&uoPIi<7CK8`x0ihOuo(>J(_nY{62D1htOZJFi)wC+%iJq%dR2N|zyH~Y|G8)kUPEAFM)yc^K5fnyu` zi|^z?jaGGVR!Fd?X8h@#*aTy2Vvsu!M46<`Y2eVzN1Y{RR6!KH*S>h*BYsxLW%h0@ zSdBdxI(sVj*KDG@ckkpL8ccCwwWZ$Kw-bF}=2mrec|3mdIGwZI-7Tr_b+C%J@7=wh z2`*-?>ToMpFLM^(_{KNc??@e^-p)1zW}R0f$B;Qrv3>mHDSKN1eXgK;AV{8FjAsJF zkAL=8ad5I0LqqmgTZyZ-V`^%{CLD>0iN$#IcpAPbiU0YZzr$Wv#+SbIX59Md9`;9R zTz}yu&aNT{UJk)OY)d@8Kg#tg;H$gvmF-?Qdu$X38NKzn*TbHtpJJc>r~m1X*rS#B z`qyv7*-L%#y}$Y{a=sF|+MIh*UELUOzx~B{^yoP2oOq zt;n%#*Fd#>;&-vL#Sfmt+~R6nzG#^#^ugYr8XiXO%xAfznYgG@u6G7;w_Jr2%XoThsW~xi;>RP}BccZznH#XJ}u(@B%^_qPp9f{*6CdSg)%TdMj zIC6XIB-=o&Z!g5Re*JA^=5&1Nt2bg{d4}_-%XtKoQ!}~7r%$=o)?ti}O@}?>#>T8_ zG@#p*@^j>gz3dw9eiM)?khO!S zhhuVdJn2ARg^3|%plORN&aFgMS$(|p!i(|IdmqJ5e|#H^Uz%BpEb{v+KGwrnOMeNdHs!7V|2tmpp9{6a40_aIp+{;fZNC7#aCX< zwcFeL?AdN`$5GsW@Cd%B;@^=tfPae)tKx%?CSvs2Bs706djndvx4pHGyr{~uZ5{n) zPU-a7c^g=LV6?CN&GwevDQl=-@YyYY=H z-;rh7Ug^MPfo3r47xCWW{mWNgh{feO^j8b~WI_`p0LB;ecei(?j8IRy&X%?|_yBo} zU0?vjxe#OHlYGR$V?FW~-MQ|dpTJ&RE?_!sUvQIrqN8_aYBnnrIA` z(D(D9Y{3111IX;8lTwU)qu>HbsL2(xI5*&!#R#BmZoj>~g~4%@sh2H)aKUVOaaHsT zbjHI+kCK@5=59ck!>7(AK-t<@j=|xc7(P3M^4*Tz!!540n^AasLaZ)tW7LfynC4iU zK(Zpf^yM$dgD3Z+8Gyfvf;|u8UB7ube*ViJr|{PRURm0Y@zI48q+Ojod7pv7)|i=o z&SCGz)vM=Y9b)|E*S{Sfy?+-4+7MT-4aG|@Ux=Ul@CiqB62JKAEjHD%!SWbBeVXTL zjIOS343bZ>d48>ZYYvMu^7GQom*c^M`zV6S%;bCJwHvv)4oK1QWb_4{4YTY53YIa< z9Yu|zD#rkqZK zm2vUhFz0ZBU@u{9%_vg@PFQ9#5e+D%l4C%0*)afqk-s?%Whd5GmjS$o2vdMKKu8c| zS>!&S%}hbSU=v`n0>IHw10bob$e$e%Uc~zSx6~*HIXPY;Jvp-e<6js;MCF$AO_b665IiG zF^r6~@{@-Lc=COIPUBZL@ZEwcg^k}{SK}r7J)ukl87e|Su7;n}E_DESeGO*;CT~t- zGfN`?O@bi}0L$Hsf*aK^l5eCx9dBIA&!HNbrI4?6oc(yE;;(4Il1h8Bror&p`gJvv+GwVYKmlHBev34yx z(_!LsSvFQEAmr(?;is zK>{P86XW9;F!qYz8^voweIty@1RFo=aJ39+9ieRIn&mOdOM9UT>PMeXB|T=j4YF-@ zc?FpQ?d%&+*bg%{O+QyT+vL8`oOUPE^oWgSmuK}w@tot+tJGlQm~wlST5!+?RNMkD%r znd#^G4)&jlmd5sY@bq5%;=Lb7cOSC;a6NkZJL1Z@i}B$3y_lXEMVZzjTPNbe#d9$} zWmDzjbm*&mr8jxQrt4SFUyH%+VfLf~`2-(h{BCj|9W0W#4lx0(N>bYJ`B7_pDHjS( zKn-m*xNpC+AzzCWv`9`V2#59DunF-Aresc9wq~>|?(z zqsmUpzV^bkoJ#4$V#{{-0m4-_;O=lhNoQunI1%{Vg$wCqk|-*WFA2&D;x~bo88|wC zK5MkB9IY$^yn(b2F`#w)6^4zhvX5q(qDPShZ7rNR`)F@I4f&i@jXpMr;rZIfO^1)V zdH(=9M%8q5HOA$u7vhc2y$q7w^dODeQdy!Jb2QkGS^`qEe$Q4>k<1E z+^-c~wF=nZP5!jOe>rqxIjKEZcaU#&Jexe+-P4^_CYI@FKEI$NA5ZPvK~v2=EEey%42a~Rt8{}IS*7|1UM z?mVwD_Uec|*+fU1(Y7s~U~imHBM+HvSc!3B=7O0IW{BIjRa(%YBR}f6(!kJhhZfI0 zb<(!kD)yn%X{~NBSgY|bPp8~PmN?KvJvzs;mOwZ5G&%y0IV59y$8zl+PM@Fm#1Kbu z_4-+K$r|*qoxRW;3{clpp3aeCu-YDm{=)ns#+1GO%Gf)n`GQs0XN8E9PCYxb7&h0% zj1g_fcF#xyO!?H?Hw6BkWxs3V+}TTU`_sGNA*YQtC9T+BQhDRg3ReRu$^n~`XLh&-!d>pHJoy96)Pg#Dsw>)8_)ro*$7YaH?XwdiYy z)soU>Kk6FmqZ7GgHluW>Oi}h&F`*;QfbbU2Y*YLi^py@nd()|7#CYnS>6zI~ zs_>i|nya9Th1`dxCR=xu!SiCN%9P(4mS%99mFA!aG0YNtU`F#kXI55Gokp>aPy6m& zzI+Lqs7f58{+ynkj5^LiU80kE%Asic$DCI|wrs8M!HX~~wxCrE>J6RZ4GqocJ!wK` zWFg?MqgB0Eg=|zPm;q-0X0v7dT3iCBAR}7Zn)7+BRI9_LD2{SIi=oVZD%k8z|LW^E z;vqJgMsXwh#_FBaPv}>JwukI_e}50ptkc!9?*n)n{8$YQpE(uJo{n-pmQf#Mut^*8 z;^otE^XB=OHOmco>;C=xmycp_uqn=58p{5CfBnN-QCew#%IbLhXa*g%hOKrg?%W&4 zX2j-&FPj=_V{&Xh#>N-22VHAhQ&{FVyMV2@yvKFnn;r2_E&FpEufF9-8g&pY&?AO3|e$}$Xee2(>o4tn1o(+%))Oi?eXdDd(c&J z@{^^dW#3=zyjT9#~qrhg_4!ce(DP`{S`NwH1r=;^$I$e>MlKY;A7jXAMwX zLT5F=gUaR~{pdr^a-02Hh|OK>{Gqz&>u-RktbVJA(b2_t{(L5b<;pRq4zDb4#pI;H zHmC#n54$FQvqjb%c-W)`v&zku(&>G4Txf@8P-Gw7*V5X`UZ6?Y7wxuAWM`Bj1fUyj zHAG^{MrR<1n{3y01{!jJ=97od;`Xh_@Y7K=qr(qR%Hq!L$5CBZ9Oo{o*QRr?os)3q z-e~j=bRs`m+3&^ZLw9}udp}Fs>~^{?@?~sl99>xhU6*9=ryCjhmw#~^xwxM+|K=O7 z#DD+)ekb|{%h<=uJhMTo!x%g@9N+u?r^v^qxPALhW`bFn{$gT!+g`l?(FfS>*lNg=39ww>z$vf-_<-llRtLyLW$U@~XR?jL`sx~c zRRgV6rk<4^I@-Eod3h-@n)aVxt?kXx(bEC%6tbe_^%d+HgNf%aoQr$+?&jzHGTYF~ zfI7atulS=HOlWHhliIA1GVlb;WVMo+snz9Gg&`lDbpi8X*J=Ohy@$T$(5K^LQ{W1o zh1Zm+pzU-{YU351_!?G&uR}ZzVLJe8C=b;`yYS-C-mkLQkpZIjLIoD|i%!;#u{Dkk zcl|~y=qWLb{YjimjuY5`b9?|}twRM> zlM}B}(INazZM0O%3-baG<}wP|1!>T8&@#w8K;+b5Pl8ZKkYBiT1_tR$;l)*8zP0%H zy=R#+Y{u2(%mj-s&JENkQ<=9Rm`vw&64vQcr{V-q*xTC!5ph4jmJN0HQN-Esl=o;9 z^z?ORW}jp8zxU@K#{6s{{nMIpn^W%qe&2W#!MVE@{inJRJ{$3${oj8QJ>C6r>Ec<| z;6%sb_{tYQ7k~Dz-T@>=y!6V=`1ZHI#hMqncWK;s@uvDDEMpKf^mGp(yjAqu@e+Ug zul~#bC016KvzcTMAho@<4JN9HDGZf41iD#wZ@v8n2f*{rY;vuG`1-eA3+raS{%e0T z{)d11qqumnH9EVR53nBuK%7>HQj- zW=R-5*4VB^;F@P<|H5X=b^xrkwK{t=sEeXT&)0+XNQ&LBf)`89` zzZLG56ze$hce631VfVyLLk%xSt@GqO54!+rbbl?A^0PWAEI+gth0~9X%DIOs)9e+d z(}3smymV^mIJcLY?~yqLOGe=id0k*$=CkvB?xEw*b$Dt-lp%;bJJXg0M7)Kg!PqD_ zy8vShAyLWx>!8#C_PlhC=AN?mmLr+UT+VY=^L*~7du6tz0RtU!K7(|T_vD(zJbg~B z#K7^4TQGjzKPO|U0ChAwAy^Qqp>HXT^kBB0=d9z<&mLnTS~gz6Jq`~ro}f#e(w53; z7?`=>&t~!(!7WT3JIZWiofnq-x_2i$k0rwUC=d6`OcEV4Dk=Hd^Km^XP^$uj>EXr&xdU^+P5^GyKhQQ8VDmb%s%^=y~-oO33 zzY+FEdid}Tw23K&F{7c;+1<{0B8NxDa~OlAt2S@nhi*17SeBO@H{TBp9kT8z_|g*Q z5@h!w^0pU%s3S&TF`IH;C26!@fFgKyin_z0R0p%O^PCs7j=|>NpFJMoEbHTq*WQTB z7cW6<$1yrS7H7|#iIvUec<23}AcxyxW??)hFlzXYO+Aa|wtAj%4dC$vFksIL^ZrFjZx*<89j4CXHMOOe+&?%^Uldvo+Yn& zZt{Ztp3HhWH8_x;ZK$hfzgv^Pwl)MBIPhfef#ilV@2^Av+NeqD%lt3AQbB(~+z*QNu^) zgNB=iSjt2&fDYBqGF-f#4ggF1bR?Qpppmbk3`6GUHR$9)fr~Q6wiALM*JbMkg?7QI zVXFeOseM<$acTC3=i#6WC&kJ)I)I#5?0R)RdZuQC7;rI*$}b(|w(GF0lV6 z8NV-Hz6ie#MtfUZo_izm_tfy|=~~b2feCer8KYTxjm*-~XBPdL za|6-c*8$Cy#qGPdkb@2asYXAP=KzRHm(POD%2-cBtiv}tKs1QeTlVC%6x%WsdtW*D z;Ki3O^O<3;pY#(SFcxw=NdiHiQ zN)PcR9hk*&fXuc(tC>mr(4&DXaiN*V;sVcQL#OBgw6U`vOY9vtZHkFIvs4IQ67eGXaL z1`nA%e-Kj`zz$Jz(1?L%TU<1AmO32dJ2Muf8ug?ZCjxylx8yOa6Y5(qu;Fj}&T24i z@vXyCp0PQ;&c7m_Q^&>va@x#cOWnmiJ7Cf5eGA=LvSc4D@qzp1^jKe$rv)z#Y}pZC zvGqEH{K3hRIvxu_szRo+azuR~J!(K(nPc|Uk!8H)@D+yX3A)PZ+ttw1=<~smvm!*#gZxY>dn!PRK^J~yYIeNux!}T<1?e8srnx$p$ z#8ce+;loj$fxX8Nvj?KGK_{K~&EToc+}&rV)?1eB(2I49PI1iPu^E)bapvq`^bGez z4cOQLQ)U}>wL77*9;05leH?Q$tL%YokZk7=1!ELBceIC$+dmH5Bx(FxT5nHCdwCmh zlWq)P6eFY5304F&K_|)+jb7zz6SS(sOsAHU#C;C&viQq3E>>~aO2&YU0km;wU9p+j z9~z42bhG8uXB#Wn4shTOa#q=C;G_#1%l=gIy7%;YI_fvqR>HxIb#)cU#m%U1va}x} zD>ehg0UX=V70<`DmD^@(4I&R$c}CYOP02?{dh`z$#>m&%qQg?XX~0_jphL=^l~d}* zdiM3o3s=w+)iE(T36HfPXWWB*)@G?Q`cApeMf}|%cec4vXSB35rLNKmYOhOfmCg;F zp5ir|+3PITxzg1IEki#BC^fdV+nnC21z?~>!&^Gg81Crkh^J2;g9E^l$VWC01Kx5# zur;d3$(qXPRpi4G*AO>2NX>MC>(^h3@zJSVr*?~hqiS%3`?$HZ&U0<1lj93tcqxvN zmGg7cSvLCeOE1Ud=z9FK|KZ26xqb|`aY#&ayz<7)`0d|&JBCgV#IuJ^CISN z*+rIGuC9Y(Bg}-?nYGKcZ2@Enp{)-lrm@p6TtY|AfZ>}H8{fGz0XA$#2eu%;9Qv^e z?RT>0md!e4-sFuF{15bf>t$Xs!lQ|qh4AzBwN z4nqUVLF5Yjuftd!U{>+o;U@ODJ$unL;6npL_27_;m(S-UZ(B%YUuo!09Bgl3%cYCa z*(Spb4D`h+v{F-38e41J6Z=OS<;7RcntL9NEzqF}EDg=*y7|QP4w9HaH(GI12A!IL zDqU&^=o}KG9U|Y~eeZ5gh__wEjq8Jn;mgX8;P;C7{Fg7YSM%5;??xSTqhG3`tR~)k z^QE|b`$2s1i(iYM|Kz=R^k_0>r>#1ujJvl-puJt_4mk%Vx^V6?eAJBX6kwpvxOMvp z=Uo%eo=nF!{LR&l{-M*R%kCZNdw)GqW*0 zGZvfBVkNqGa&9UvUA&Nil^yg*T_bjjI4`uXVN&ed3eHKa>dXpfMeL%JbdE`z1^|`E zs4~tG`wl8yT3>}_aJ+e>U9?%2eB(5bn#Z(`aZ zx`Vw(#_zBR2GPyL%c=lnBrLZdaU$>@0stjHH=khN zURx~)11DLX6tNjb#Q{83byX15UYtF9E)69kp*j@$2D%Y|$MOD$*7EN`a1~jqU=&5; zW_5KlUVioE1VIy1lK^atO*YZKOlFgek58mS!QmK2A!_T&qOG$&KKS%wlwB*zs?htQ z1EZL;1jHL1gqZl9qd$1H| zFEsN#izG#0Tybbmjmp9(ToHd;k$AD zdMYCwmcRFVzZE@wgYoID`|6f7;7*@C4N%;|kU5Aq-nxn=8 z)A!>ye&db!^FR4T+`m7^0q?SwA{e(g4ol~>QiHH6yU!4k|klWDm1fS7{=6%MKi z9i(&2ba3s?bW%YWhpb5hS#a*)4>PBnmT1J&Y>_Ny$nn@;m)n4UEWUfGm-Xv0$P z7MRI3@gvtdh)SNplH~f@%BbRJ^SjOFE5(@5*`)(XX0EBhVC335oOEvLL@VRLb&y$# zTIuV&zk&zR=x?rX;^!is+02?lK2s6Z+*DSpIvW!X@5SgtB9x<&)Q%=XO;Kt7bX;D&Dg}vwON?A{4a`J+uvjSwleZFeWPA5e@ zg2u+W?zMgObXxjZ_tT6$$G>y?q*?b-z4m=Gt2CXUH7G#t;l4|Y zW;(RD8#%Tw4nm)Q-9IyXoG7cJ-rq3_FTl36nhitX>-;E1pbEURZv@ZeITfP-jQ(Nw zr5s6z3xBoTO+c-Yk&X`5Tg0_Am~_B6)T4+G>9D{bBejL5XO<-#BaXW_2XIY^RtVmw1sf!=|9z4I^6v)C>g6oHYjA8x5Q5H*TV}5ZK9%#xkhUvNK`0&H`0Jbaa^B$n0ou4-n z{1~+pT#P`c{F4qXoeme!J4T$V0aEq>v;5P^i}L>7)*MyR;!d zPJ^DWLcdM(TpXZ*VJJPYhk{S(PagJ5?Sy@ChJH2YG24p~{n^ z12Y}GHcZK0m_ewMvJ}4YKc7c=t+OEq;qbOXCX+@|A#fu=*J-Y!Bk#j|%|t3V7=0G` z&@4cnv96Y%3t75m^$IM^oM>rlP2i&uEbtM`a2d4*A9tMv2baq!C6^8NQe zjC&6s#Q4-iOafrnFhrIXml88M_@}3@H_n|q7yW}n@Z<}e1z`K_H{tQd#5w2ro4kA# z?4Z%FqhB!Sep{Za)3vp&A#S{Qg>_r*SdURV3ob+Fv+wpIU0Pm9-C@77LeE1TH9j7Y7zWk2*r^%cxUa>{!D!)M0hiwX6r4PMlI2 zgM9;uIW7HDuGmL;cW(pz30;;R#pvks%%oB`);Cng@VTKld+t=~8w1hHON-G799?FbY*~9c4iyS%+95QN8{cgOEY{facNN4>(4$^I@Zk)H2YoSLMN?`Ib~)E z`b6VJv|u1tel&Z}0CP@Wg)Yr*mcx|SmNq#I%3eg$ulr_MuttjHuK_K8`fX6iY5vO? zMDmD%c8y-|?U1KUfV=YAEUKJl&$o^f4F>tqEP<{br`sNeLll(7;uUetg^Tt!nt{K| zIZK^+2k4k35`2mAr;+18Gt0w_e%kAD zYIZX9A`*rBVmP5oTiZIqY;*5xW|o7sCMG6QFAoe1r*USB3&qCL(q4S>$vyA{M&U*w zi^Y=b48$U%#0FMEOpK54GqR8KP)^z>(XvNr!eLu;vrEy^>|hmiH`qoxIA-7NPiIzz z^3s+GI%hlEyVAI|l-<4dyfys&n_1hFlM~4&W^tM&VlOu{hBe$QEww4U{H`-mT&{E4 z^5_Zn&eG_#Yq)|v=Il2OX+cZnF*iA%StPdW(9qVXtwW|b)iQg)?u&y8n7I^e(9&KL zD{GV3Ob!GajTdg5fu4)l+bwka0x}%j%(wDW8kXh^1^h{X5^?F zLA#uv0U1lEce9Mm%s2-~)`B^0o$>@(X>T@rd}j3*XXf){%L<(%@TZR6ZC)22rOx1b z>S>Kwdno%QZL1gS!3oND`9=qfJ?Sz78=chAZh5apvKit5o@q}9r?_Kh{UAQM^(nkk z$Ub#CxN^}wYG|#Gn=f9=_o-vN&zUplp+Oz54nu2o7cPfOoL zWid87n^~!1aBYj_Y#D(JKyRv}l##Zk$g+84j~Sae7zdhnT6=eI57=lqTfR)euMT7y z8t%&=%M!A)4BNzkZtgb+p1M&yRM*&;`)ld#pZt$Mk5fba=olUueP?N_ttxu^J6Xd< zJbLsXP7ilx7NP zhaOQsB0sb{579v@tNStX^hw%H9qdJScN6=x70*T%*yodY?ahmswW!QBL-F?Q=U_t1 zdKXg$nULb7dxsUJGZuV4F+Rq1x}w`Y*!(S%rI3er!0ja!2hrTp6z{(GOKi5ixODjn zI2qgE;RI`4hn~mz>;Q6VCVueUkK@{vYskOVn48~cpRU6D_G;aSKDEgX(GPR1YZICs ziN}x7fynCPeUmWCVsGOlo+Gy&JsjaY=HSWo++&ACS=F+>ijBZCtS@h*{1k)9<0gO^ zAlL;{OOHBwtqL^obNiD!;JC`nd=)EN@w5kTSDWR%w;g5Jrb7-#54}!;@hZ}ZTAA|8z}qysPaJNAh}hs0FrZaa`Zjd5OY7>0p3aU~ z#WvaB-sPJ0$U>3~>KQm~+aQNQTB}pEPi?!TKf#|ZD>fl52Y^7E%T8XCotgW{rJ1PDkv~KDhqUYs24p`d})7h4uMnj+n_{V@@NSM&I@hIWT)`WX26o zjZ!s5*63jiOk>7|y(~;2-`L)Uk!sOcEU3vw{H1KNXq<+GQ6C$OE05U1YNk0j+cKwQs(~K^y}zmZGDx7NJ=K!A^RP0M6p*>}}%rsd(d! zHvsStAjXv#KGn%4+l1O?@8#J%@wfiQw_g>zC8m#-->@5C3r@D{|<36O=smgeGb z{;l8P{SjaM^4l4)SXp0=2M_OYP-hYNBM9)PY3$k{)IMNFK!5g&cM!s7*^BY$>+4A; z+XBMKe|4m^wl~0d596y}c^v`G>*ZVV&2PLI@Bi|r2$mX%e?P8V??u>Sz||eb;9xyW zv4g-YN1@d~@EtIMk!T}j5;*68!m{_5PB!nOQq$NqwNz%)AkmOA)6ddf(|?Ouv*o@; z#YXQiqyY+ua`y2g0i@ADokKRF*3o36PM<)cbV`!S*$9vs3(|nbqRi=JGs`Ykowfz? z6a4CPVOcO`Q8WV(qR6!Z27Qh7RI=VI?S+VSQdnLoP}R9-TC46b4N6Of%VAuf-&^Q-s)ylq zB4`ZTxL*g{32XB?T(gd{V4Y^jm2xJ9=fwD7FZC&9?gYzCt5)mf|)#Ady1&5eNVnl#qR0f>d+7wj9)rB?AX?!9Z&nUKZ@&o97s zpBxpRkzWM9=7;xFhA7OWIp61Jb^d8U=>*O)V1S@sIbE3do1vz|On~Mda1&@3?asbt zd9-KATFmThK(H&EeV>jzg>)L6oV^CHG@|h%9~dpM-u?IMv0|eQy6?RtoiJj z!8m{JbkeGQMa_a59h*RjcXBR;l=*fH>qn0s<++ce2h+v zqp(vfT#np8X4JBOmTcMY&Hhkkc$+;j z&$TSyZSU;HP;x@tdOq(GGSyy5y?~$FcR!77%Q$Pxp^c;X@Z)#mMZj7$#?*!LSE9S4 z3xlyYI(CviU zo*v|LZDw`9@%kHa`O>8{+{`xYV;wr2yE|Hwe@>s)xWiauf2Auk*_4qwF#rGHL}!~$ z9|H$ayR-(4D^mrSIn_$jU=q zD?b!cT+4IPxtLB={;2aKhb2kp{M|3t>Ss0Zlmp5^`5_0Ua2=zzu4Sh3xO-8SJSM2-9>}rJ?&Vs{=raRBKwV}a1-ZEkpJusi zDSHWTiCYBi_Da}A%`p*@w11>1T!pM z_wJ5;2H7*NVL7kuK)QOm;^s>?qo=<&!JIP93I%no&uidK9?+4!3>Y+GEG@fN?PjJS z$Tv5(V|lT_mku#7J3<4{tPX>#-hOsrHZ!`ES@wt3v1#_GnNRMYnNACH3yF`EIeziD z>=C+w=eH5QnOn+uC%lS3Eb)|XH0YI0I`Pc#F}vpRe6|jzP0C?4g&WSLQHzwMV6_r>=mbzSbgp9X5EP$U9XcJVZB)6 z`3%Ms=(|+%O?m5i8MyFV4JJ4xGux5yq2y_P)Ob)X7$DVQFpiOI=3RAVU6v)guV%`b z$*aR*6*>_&>s<6c29Ug_=chcgl*v9n8v16It(YN>Zmq8?lutIN~#{&`tx`zrYJlW>)s@?He5I*Z|36iagsoN`jGfh93k zWtL$ZxRQ^|qG@hwMb=cXwuN-onyIKhUW105YUp5`v5Du)<+;Nm>=a#YIxm!;viy1dWl_u~A8OYqP^W}BpQ8f?0;zKR%O-;qV~ zj5yCs8Ur`-pxNr>6*V!#8f)sCSRZl&`qgSO!NANb%frpSP(~<=4Mj|$$L-N)siT3& z;ZwuVW;ObiGjDB4oBe!~D zXt)E~*^1ej8O{hE;Tg^NF(_yze`jY;w0CK^j}~MKd#C|zCW`z~C}%{+>=iPcGsBv# zs&}wcM_b%@;ROuj# zf1Fe9#hnAgUF_R4)_;;^?{ibj(Ny0ZPwtK9Fo~lBvqQ}es)(MR*0hiNdxv6WaXWF1 z!{XM`DYgTx9K=Ipaex1*`0)?#hyBqyJ6qG4rhOsqtEw)Jw?6+8*l;8&uzepqc$C=0 zprrEO!Fj*_n_rK`Wv;)v*UeGumf?4Arn=&{VNM)>P~ERxQV#KAZ$Zp zBj@6PnPt|o3N3X;TT@%i&(5P~%r2^mYuB&D(}xcdyV;K8(#6y9*4r<~d+)x>S(imO z7|Z}qeLeUb-8eKf6rX-_H?Ca07>}Ml&Fo@>3I^()KAmP=6@>((nj&;=OSagtT5n}_ zK5dlFj*fWpcsxcPEyV5HV>vYA3tt(AK3Ai+zZF^35wr8F@%Yht(z7k1%;Xv!9Rrt+ z=0xGKsRiWMW_0znMSDkcOwGYZ99NWH|XG5>0j8|*hLmI=5p}#d~ZXFqFwq02! ziimTLj}7$H##evsYsiVMr1Q0<)y$w_qIfUu3h~wK!UFP4IoFOnhwcGNmg<^;zP@T7Pjn|TKs{TF+(tEW zwgx=FB|>cYM48&x+nZVi8lc2=ZCWvWIirK|u*}orMEqJoZ zO&REOG_|*7K*k=GCWg3ACYh+OZ5v|XTiK;;Yc+xnQGEkqq6V;pLF3}$a^6*xdc_ta z`f9`=FSGf zL_lk%Kw#LmrJ^(IqN@i2Jlah!zXqAcfLS(1H*^F^*lyY?V8qn;_LhDQuke5pu|3O- z+Up2d-Io0Zw*KQ&R598LY z(M)}nA~`#%t)r(wMM3PRDdP&*(l{ zu4S4p91kc#h#(PNo7om-+n8RiV^pA`6Ay8ijz9nAa1(pXnHgt>gHF)=7iQLpStv6` zv7$`bx@2hirkMRVT42dz0u0`3&nyi_vlMiynL(j4&OUqmt3Xi*$S=N66>g?PW`gp> zmhGmaj^}kRYvDPK{*3q{pmYkl9tUnXxWNo4os*i8I;+iO%Kk)L!17tIY38T~n-LnH zO$VUov%GA-O${6kexoA%jq~+vd=>#*j&z5%EP+*M3OwW=wjm8LGn!ndY0TaeqD;eD z5U5dW`HKdiQ_7`5qt()$hP+_ibZ`x-OzB4mW)Dr2fV5;!IGqtXo4lt)pqwjaAIms@ z``sz1Q}%E__b7!P{9`tY*?qpg36IyIaHi)M(|NYRy(TccG!DDE`=T79)aXk?a~pu< zA%*C^aY+?Ypmu3w~Z;J~nC<`03s~8-9a+19%d zT|sLb%Fl+ogWRJ&jR8wpEIYBU&)ob>W=ohE<9f~NunBkuVgPJ9BAwJW^7MHO^z~+A z^1XvCR8>fRBab}usqUiq}ALX9rleplbHwLDDEB5LnYTR>)W9? z+vyZoTAYVMkW=vA3Bc*$(|hsLUwk)i-+e#s-2WIEKal((Jvu23_C(igMoR-AISq4r z)HOw8O+9DVn~uURzB^jlIg{G3N1f%Frr2-uIhCmnHXS{dvS&L50EQ7m9fkg_jQg31 zAn=>c|~W1GE86~z51d77N0SD6Y(C&QfHU+ zsua~(?4FgDVDxM*#i>)h(88~Vp|G!9jO!!cSgRSaX6;$BucJ_BnOPIw&!CC-bbYSH zaz=U2pL6{@uQJg-yf#IbKLtX9-CQ%vm51ePL`%vAzkF7&BOo!LC#dm#nbpn17)2Mj zC~|e`nUSUwFrS~lIB>wSzXvu<%U=RFqod#KSWGNTbVLBGs?hI&nHm=W>B089s=I3GyW5A$L5kz_- z0OtK|P0dloHTt@H0PcMmZPgL1V|;RKB1_61K6o6v8~f<^Q*ry2k#02`=fL_jV4X1T zur%eHV08vep+mVg`C}j5yC2J3Px)aKUHZ{MVL74CA!to~j8;(BXux!Kw4>j*`I`;* zkNAwT+FrzafKT|4eN*?3Jb#|_wYai`+yw2TyTyIn2>H5|L7Qekr$L(T?pA)TO-yJI zPX636V+h)FuK=h(SHHHA%Ay4@ugoy3tfSp&wq=O{KkMVUy0((fpfRQ~ zWAM^}23h*UJ{p8kkLwgZ;tZTP?esk}?p&A1-EyNPTQ zA3gv>V+28G2JrTF%%IQ`J#uXj zzr!Of}lL~Yjb9aR+Ux@o6&Xq=uNS0SsKmm z=tB0MoK9!v0sL8_F$A5U$slRyO~Vvfp^TIV#bx=tIuy1KvftMRYcoo|mvxR}n^OzW+Of<7cr{)f}oHl~JjFiF&oN~wvT^r?#ds#;Ag?&TSapGnB{`K_q@C?XZ^oDYK4g90AZ@}Jw zvSqjS1T~}23Zjrmw5l_SuTBe(eh}Ix><$l-|C6Fws!lz4JKUc>QJu zY^!UV;^Dn#@WNI&L}PMtIfJ`m0V{J5Iq~&xzR9z-$H>Fc*xA(ay&tF11s{BHE57-S zSK`XGGssVSK2LBCWpV9=>#>HNeEQ63Y|NU>M%Rw)>~8{Fu7gLXIQzQn`ML&gEiFO2 z@Szz=6%`Hfsj9{Hf8(V9fr4FFhn4O)A zJA4Nk=W76X{zV&u2uKMf)$Z*R=C!vF-sB0{b zx!LKsaq|WA?P2`GfAqKF`pfOSuESWn_882$9^<2P(cak}gZ-U6FZ>3%dd4+%W%1IB zFUFa(eK9c5ll}?&2J6^bm|I~jzSna3>P$}R=wQt{bkK!c+iTct*qNpEU`tCt(aF$V zLN@kP*kNUzm}+>q7rc2AAAR!ExOk~8-g@&ae>;x8eus&y$3OT7zXKm`#1_12_Aq8H z^wt2TZb`ka?0WQA$GQEtccI^>85q(IvmK9pFU#QnK5(h}(h3hNlFT?a!|xYA{vgK2 z7m<6#arMfLwDA`gR=J;*8x4sG#qjFG3ulMp+{M%AfQbyk*s5V_(n;(mF*JA)WqNU z!@m)uW6$HGTX$n(Y#Li+I30;P-a5d~VVb)}o`_{jNZ6>KHT&TdZ%!rSDT#dyVvKp_{BS zFzIS($svvn$R2wVB9l3DkaF5gOG}H$5#&Cfvlpw_xT&!LyJ$Z%RSgnKFUpR^C6het z`RZ`fa^!AFoIC5h33+as>zEb0k@`se>QE_LDU?>2j0OIO29@1b+Ub7H0U^BJ*8{Jx zPx|M?945o~4BBG-*n4IIPK`}LC(2@Uz}oTZcUI>yxJ+h4Aq}5D9eo2`D8#}zZ-uQ& z-Spl4!<{U#HFeoY-{8OiPj9rZ0YET|fP9Yen?+wE_U`w=kB<=kTyNy4r_ga$*62whf5fifMkfK`QnI3T_o59gE-j zov+59|Jer^XSEOt1|N!jXZsKVJc6>{NWlH2uY4iiyLBs?>Pq9n#liUYx4#lU`oTM~ zzPuk_|LQC8_LpD#Ri;T9#kwS{p;M?2`nrk|AW4qOyuuT-%8b z?xTUEF(v@dtS1ahvpN;L2S*xaD*h(c-I$77<~{&i*}PJ~WdyX4&BPZ9!^}+;y~{HS zqSsxbG&P@#f(woTT7~SZoERx`gjp1nWu+Kee5-_Xav{68zK%K_nNCNur;{Y0BkAER!i1iWsN>L-*e-ne5TS>t<{z2+SzaF{pv1Q%L8VjlXqlXdD_9GZNsM zbUNw0D!fOL!{>O-K6`>%otm!K#`HRe(izEq3ry86naQRXA0Vo;Nde@vQX}vF?D|!{ z8qO*Uhu#=z%}fdJ#=UGfJ~A>I^$m@HK+Z{J&3@_t)9GRKz5~$myiqSD>n3^*T0j-sPS?i$c>0TsjtX@R@BS zzv&qB{+~tAjgS`;w*fb)AFeF#w7iD%EpF-ihs zdMd^z=CZ6o@N8Cs0L1ba!MD+8jSBnojgC%250=!`XPLrt

    qJNX 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

      F*UH+!!&O6DU3iIT3dZD_JD;maM6* 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 z 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≠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


      hh^i~3Qzr^^o$nhNo7d%QgF14! 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 z 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%0Dw9&b@=&j0~Hz*(*VJ_Ij3w}^0Sfj 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 hNuZvC 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

    KfRXxm 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%0A~Q5$;ZYQ``B#X8#7FUiB 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