From 3019a9172b36b9e2033d92dccdb8ff8e2282da7c Mon Sep 17 00:00:00 2001 From: Talustus Date: Sat, 6 Apr 2013 11:50:07 +0200 Subject: [PATCH] FB2PNG: Add fb2png source to TWRP * Add Source of fb2png to TWRP tree * Android.mk by PhilZ-cwm6 * Makefile for CrossCompiling via external toolchan by me (Talustus) Change-Id: If9680688df6e4c9c567f74f46dfc303566b868ba --- Android.mk | 5 + fb2png/.gitignore | 5 + fb2png/Android.mk | 77 + fb2png/AndroidManifest.xml | 0 fb2png/COPYING | 17 + fb2png/Makefile | 17 + fb2png/adb_screenshoot.c | 191 ++ fb2png/ascreenshooter.py | 106 + fb2png/fb.c | 132 ++ fb2png/fb.h | 42 + fb2png/fb2png-jni.c | 30 + fb2png/fb2png.c | 121 + fb2png/fb2png.h | 26 + fb2png/img_process.c | 254 +++ fb2png/img_process.h | 84 + fb2png/jni/Application.mk | 1 + fb2png/libpng/include/png.h | 3301 ++++++++++++++++++++++++++++ fb2png/libpng/include/pngconf.h | 616 ++++++ fb2png/libpng/include/pnglibconf.h | 209 ++ fb2png/libpng/lib/libpng.a | Bin 0 -> 852712 bytes fb2png/log.h | 85 + fb2png/main.c | 61 + fb2png/run.sh | 23 + fb2png/view888 | 21 + 24 files changed, 5424 insertions(+) create mode 100644 fb2png/.gitignore create mode 100644 fb2png/Android.mk create mode 100644 fb2png/AndroidManifest.xml create mode 100644 fb2png/COPYING create mode 100644 fb2png/Makefile create mode 100644 fb2png/adb_screenshoot.c create mode 100644 fb2png/ascreenshooter.py create mode 100644 fb2png/fb.c create mode 100644 fb2png/fb.h create mode 100644 fb2png/fb2png-jni.c create mode 100644 fb2png/fb2png.c create mode 100644 fb2png/fb2png.h create mode 100644 fb2png/img_process.c create mode 100644 fb2png/img_process.h create mode 100644 fb2png/jni/Application.mk create mode 100644 fb2png/libpng/include/png.h create mode 100644 fb2png/libpng/include/pngconf.h create mode 100644 fb2png/libpng/include/pnglibconf.h create mode 100644 fb2png/libpng/lib/libpng.a create mode 100644 fb2png/log.h create mode 100644 fb2png/main.c create mode 100644 fb2png/run.sh create mode 100644 fb2png/view888 diff --git a/Android.mk b/Android.mk index f393bae9..7aa6decb 100644 --- a/Android.mk +++ b/Android.mk @@ -333,4 +333,9 @@ ifeq ($(TW_INCLUDE_CRYPTO), true) include $(commands_recovery_local_path)/crypto/ics/Android.mk endif +# FB2PNG +ifeq ($(TW_INCLUDE_FB2PNG), true) + include $(commands_recovery_local_path)/fb2png/Android.mk +endif + commands_recovery_local_path := diff --git a/fb2png/.gitignore b/fb2png/.gitignore new file mode 100644 index 00000000..e32c4320 --- /dev/null +++ b/fb2png/.gitignore @@ -0,0 +1,5 @@ +*.o +fb2png +adb_screenshoot +libs +obj diff --git a/fb2png/Android.mk b/fb2png/Android.mk new file mode 100644 index 00000000..6d7b25e0 --- /dev/null +++ b/fb2png/Android.mk @@ -0,0 +1,77 @@ +# Makefile for Android to build fb2png +# +# Copyright (C) 2012 Kyan +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + +#Ported to CWM source for PhilZ Touch recovery +#Special thanks to talustus for his help in cross compiling and the Makefile +#Thanks to McKael @xda for his help in fixing for Nexus 4 + +LOCAL_PATH:= $(call my-dir) + +# We need to build this for both the device (as a shared library) +# and the host (as a static library for tools to use). + +# <-- Build libpng +include $(CLEAR_VARS) + +LOCAL_MODULE := libpng +LOCAL_SRC_FILES := libpng/lib/libpng.a + +include $(PREBUILT_STATIC_LIBRARY) +# --> + + +# <-- Build libfb2png +include $(CLEAR_VARS) + +LOCAL_MODULE := libfb2png +LOCAL_SRC_FILES := \ + fb2png.c \ + img_process.c \ + fb.c + +LOCAL_C_INCLUDES +=\ + external/libpng\ + external/zlib + +LOCAL_CFLAGS += -DANDROID +LOCAL_STATIC_LIBRARIES := libpng libz + +include $(BUILD_STATIC_LIBRARY) +# --> + + +# <-- Build fb2png bin +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := main.c +LOCAL_MODULE := fb2png +LOCAL_FORCE_STATIC_EXECUTABLE := true +LOCAL_MODULE_TAGS := eng +LOCAL_CFLAGS += -DANDROID +LOCAL_STATIC_LIBRARIES := libfb2png libpng libz libc + +LOCAL_C_INCLUDES +=\ + external/libpng\ + external/zlib + +LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES +LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin + +include $(BUILD_EXECUTABLE) +# --> diff --git a/fb2png/AndroidManifest.xml b/fb2png/AndroidManifest.xml new file mode 100644 index 00000000..e69de29b diff --git a/fb2png/COPYING b/fb2png/COPYING new file mode 100644 index 00000000..0c5d9230 --- /dev/null +++ b/fb2png/COPYING @@ -0,0 +1,17 @@ +/* + * Author: Kyan He + * + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ diff --git a/fb2png/Makefile b/fb2png/Makefile new file mode 100644 index 00000000..5ee843c3 --- /dev/null +++ b/fb2png/Makefile @@ -0,0 +1,17 @@ +# NDK +CC := arm-linux-androideabi-gcc +CFLAGS += -g -static -DANDROID +LDFLAGS += -lpng -lz -lm + +ALL: fb2png adb_screenshoot + +fb2png: main.o fb.o img_process.o fb2png.o + $(CC) $(CFLAGS) main.o fb.o img_process.o fb2png.o -o fb2png $(LDFLAGS) + # $(CC) $(CFLAGS) main.o fb.o img_process.o fb2png.o -o fb2png + +adb_screenshoot: adb_screenshoot.o fb.o img_process.o + $(CC) $(CFLAGS) adb_screenshoot.o fb.o img_process.o -o adb_screenshoot $(LDFLAGS) + +clean: + rm -f *.o + rm -f fb2png adb_screenshoot diff --git a/fb2png/adb_screenshoot.c b/fb2png/adb_screenshoot.c new file mode 100644 index 00000000..afd54cad --- /dev/null +++ b/fb2png/adb_screenshoot.c @@ -0,0 +1,191 @@ +/* + * -- http://android-fb2png.googlecode.com/svn/trunk/adb_screenshoot.c -- + * + * Copyright 2011, Kyan He + * + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include +#include +#include + +#include "fb.h" +#include "log.h" + +#define DEFAULT_SAVE_PATH "fbdump.png" + +/* defined in $T/system/core/adb/framebuffer_service.c */ +#define DDMS_RAWIMAGE_VERSION 1 +struct fbinfo { + unsigned int version; + unsigned int bpp; + unsigned int size; + unsigned int width; + unsigned int height; + unsigned int red_offset; + unsigned int red_length; + unsigned int blue_offset; + unsigned int blue_length; + unsigned int green_offset; + unsigned int green_length; + unsigned int alpha_offset; + unsigned int alpha_length; +} __attribute__((packed)); + +static int remote_socket(const char *host, int port) +{ + struct sockaddr_in sa; + struct hostent *hp; + int s; + + if(!(hp = gethostbyname(host))){ return -1; } + + memset(&sa, 0, sizeof(sa)); + sa.sin_port = htons(port); + sa.sin_family = hp->h_addrtype; + memcpy((void*) &sa.sin_addr, (void*) hp->h_addr, hp->h_length); + + if((s = socket(hp->h_addrtype, SOCK_STREAM, 0)) < 0) { + return -1; + } + + if(connect(s, (struct sockaddr*) &sa, sizeof(sa)) != 0){ + close(s); + return -1; + } + + return s; +} + +char *target = "usb"; +static int adb_fd; + +/** + * Write command through adb protocol. + * Return + * Bytes have been wrote. + */ +static int adb_write(const char *cmd) +{ + char buf[1024]; + int sz; + + /* Construct command. */ + sz = sprintf(buf, "%04x%s", strlen(cmd), cmd); + + write(adb_fd, buf, sz); + +#if 0 + D("<< %s", buf); +#endif + return sz; +} + +/** + * Read data through adb protocol. + * Return + * Bytes have been read. + */ +static int adb_read(char *buf, int sz) +{ + sz = read(adb_fd, buf, sz); + if (sz < 0) { + E("Fail to read from adb socket, %s", strerror(errno)); + } + buf[sz] = '\0'; +#if 0 + D(">> %d", sz); +#endif + return sz; +} + +static int get_fb_from_adb(struct fb *fb) +{ + char buf[1024]; + const struct fbinfo* fbinfo; + + /* Init socket */ + adb_fd = remote_socket("localhost", 5037); + if (adb_fd < 0) { + E("Fail to create socket, %s", strerror(errno)); + } + + adb_write("host:transport-"); + adb_read(buf, 1024); + + adb_write("framebuffer:"); + adb_read(buf, 1024); + + /* Parse FB header. */ + adb_read(buf, sizeof(struct fbinfo)); + fbinfo = (struct fbinfo*) buf; + + if (fbinfo->version != DDMS_RAWIMAGE_VERSION) { + E("unspport adb version"); + } + + /* Assemble struct fb */ + memcpy(fb, &fbinfo->bpp, sizeof(struct fbinfo) - 4); + fb_dump(fb); + + fb->data = malloc(fb->size); + if (!fb->data) return -1; + + /* Read out the whole framebuffer */ + int bytes_read = 0; + while (bytes_read < fb->size) { + bytes_read += adb_read(fb->data + bytes_read, fb->size - bytes_read); + } + + return 0; +} + +int fb2png(const char* path) +{ + struct fb fb; + + if (get_fb_from_adb(&fb)) { + D("cannot get framebuffer."); + return -1; + } + + return fb_save_png(&fb, path); +} + +int main(int argc, char *argv[]) +{ + char fn[128]; + + if (argc == 2) { + //if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")) { + if (argv[1][0] == '-') { + printf( + "Usage: fb2png [path/to/output.png]\n" + " The default output path is ./fbdump.png\n" + ); + exit(0); + } else { + sprintf(fn, "%s", argv[1]); + } + } else { + sprintf(fn, "%s", DEFAULT_SAVE_PATH); + } + + return fb2png(fn); +} diff --git a/fb2png/ascreenshooter.py b/fb2png/ascreenshooter.py new file mode 100644 index 00000000..1e994840 --- /dev/null +++ b/fb2png/ascreenshooter.py @@ -0,0 +1,106 @@ +#!/usr/bin/python + +import socket +import sys +import struct +import time + +# debug +VERBOSE = True + +def D(msg): + if VERBOSE: print(msg) + +# "struct fbinfo" is defined in $T/system/core/adb/framebuffer_service.c +def fbinfo_unpack(data): + keys = ("version", + "bpp", + "size", + "width", + "height", + "red_offset", + "red_length", + "blue_offset", + "blue_length", + "green_offset", + "green_length", + "alpha_offset", + "alpha_length" + ) + # the data is little-endian + values = struct.unpack("> [%s]" % len(data)) + D(data) + + if data[0:4] == 'FAIL': + return False + else: + return True + + +target = '' +# use getopt module in future +for arg in sys.argv: + if arg == '-q': + VERBOSE = False + if target != 'any': + # compatiable with "adb -d", redirect commands to usb + if arg == '-d': + target = 'usb' + # compatiable with "adb -e", redirect commands to emulator + elif arg == '-e': + target = 'local' + +if target == '': target ='any' + +s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + +D("connecting") +try: + s.connect(("localhost", 5037)) +except socket.error: + print 'Cannot connect to localhost:5037' + print socket.error + sys.exit(0) + +D("connected") + +if not communicate("host:transport-%s" % target): + sys.exit(1) +#communicate("host:transport-usb:shell:ls /data") +communicate("framebuffer:") + +data = s.recv(52) +fbinfo_unpack(data) + +t0 = float(time.time()) +save() +t1 = float(time.time()) +print t1 - t0 + diff --git a/fb2png/fb.c b/fb2png/fb.c new file mode 100644 index 00000000..2ed47890 --- /dev/null +++ b/fb2png/fb.c @@ -0,0 +1,132 @@ +/* + * -- http://android-fb2png.googlecode.com/svn/trunk/fb.c -- + * + * Copyright 2011, Kyan He + * + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include + +#include "log.h" +#include "fb.h" +#include "img_process.h" + +void fb_dump(const struct fb* fb) +{ + D("%12s : %d", "bpp", fb->bpp); + D("%12s : %d", "size", fb->size); + D("%12s : %d", "width", fb->width); + D("%12s : %d", "height", fb->height); + D("%12s : %d %d %d %d", "ARGB offset", + fb->alpha_offset, fb->red_offset, + fb->green_offset, fb->blue_offset); + D("%12s : %d %d %d %d", "ARGB length", + fb->alpha_length, fb->red_length, + fb->green_length, fb->blue_length); +} + +/** + * Returns the format of fb. + */ +static int fb_get_format(const struct fb *fb) +{ + int ao = fb->alpha_offset; + int ro = fb->red_offset; + int go = fb->green_offset; + int bo = fb->blue_offset; + +#define FB_FORMAT_UNKNOWN 0 +#define FB_FORMAT_RGB565 1 +#define FB_FORMAT_ARGB8888 2 +#define FB_FORMAT_RGBA8888 3 +#define FB_FORMAT_ABGR8888 4 +#define FB_FORMAT_BGRA8888 5 + + /* TODO: use offset */ + if (fb->bpp == 16) + return FB_FORMAT_RGB565; + + /* TODO: validate */ + if (ao == 0 && ro == 8) + return FB_FORMAT_ARGB8888; + + if (ao == 0 && bo == 8) + return FB_FORMAT_ABGR8888; + + if (ro == 0) + return FB_FORMAT_RGBA8888; + + if (bo == 0) + return FB_FORMAT_BGRA8888; + + /* fallback */ + return FB_FORMAT_UNKNOWN; +} + +int fb_save_png(const struct fb *fb, const char *path) +{ + char *rgb_matrix; + int ret = -1; + + /* Allocate RGB Matrix. */ + rgb_matrix = malloc(fb->width * fb->height * 3); + if(!rgb_matrix) { + free(rgb_matrix); + return -1; + } + + int fmt = fb_get_format(fb); + D("Framebuffer Pixel Format: %d", fmt); + + switch(fmt) { + case FB_FORMAT_RGB565: + /* emulator use rgb565 */ + ret = rgb565_to_rgb888(fb->data, + rgb_matrix, fb->width * fb->height); + break; + case FB_FORMAT_ARGB8888: + /* most devices use argb8888 */ + ret = argb8888_to_rgb888(fb->data, + rgb_matrix, fb->width * fb->height); + break; + case FB_FORMAT_ABGR8888: + ret = abgr8888_to_rgb888(fb->data, + rgb_matrix, fb->width * fb->height); + break; + case FB_FORMAT_BGRA8888: + ret = bgra8888_to_rgb888(fb->data, + rgb_matrix, fb->width * fb->height); + break; + case FB_FORMAT_RGBA8888: + ret = rgba8888_to_rgb888(fb->data, + rgb_matrix, fb->width * fb->height); + break; + default: + D("Unsupported framebuffer type."); + break; + } + + if (ret != 0) + D("Error while processing input image."); + else if (0 != (ret = save_png(path, rgb_matrix, fb->width, fb->height))) + D("Failed to save in PNG format."); + + free(rgb_matrix); + return ret; +} diff --git a/fb2png/fb.h b/fb2png/fb.h new file mode 100644 index 00000000..25922c83 --- /dev/null +++ b/fb2png/fb.h @@ -0,0 +1,42 @@ +/* + * -- http://android-fb2png.googlecode.com/svn/trunk/fb.h -- + * + * Copyright 2011, Kyan He + * + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __FB_H__ +#define __FB_H__ + +struct fb { + unsigned int bpp; + unsigned int size; + unsigned int width; + unsigned int height; + unsigned int red_offset; + unsigned int red_length; + unsigned int blue_offset; + unsigned int blue_length; + unsigned int green_offset; + unsigned int green_length; + unsigned int alpha_offset; + unsigned int alpha_length; + void* data; +}; + +int fb_save_png(const struct fb *fb, const char *path); + +#endif diff --git a/fb2png/fb2png-jni.c b/fb2png/fb2png-jni.c new file mode 100644 index 00000000..d2de33c2 --- /dev/null +++ b/fb2png/fb2png-jni.c @@ -0,0 +1,30 @@ +/* + * -- http://android-fb2png.googlecode.com/svn/trunk/fb2png-jni.c -- + * + * Copyright 2011, Kyan He + * + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include + +#include "fb2png.h" + +jint Java_im_kyan_android_graphics_FrameBuffer_captureScreen( JNIEnv *env, + jobject this, + jstring path ) +{ + return fb2png("/data/local/fbdump.png"); +} diff --git a/fb2png/fb2png.c b/fb2png/fb2png.c new file mode 100644 index 00000000..a357b7fe --- /dev/null +++ b/fb2png/fb2png.c @@ -0,0 +1,121 @@ +/** + * fb2png Save screenshot into .png. + * + * Copyright (C) 2012 Kyan + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +#include +#include +#include +#include +#include +#include +#include + +#include "log.h" +#include "fb2png.h" +#include "fb.h" + +/** + * Get the {@code struct fb} from device's framebuffer. + * Return + * 0 for success. + */ +int get_device_fb(const char* path, struct fb *fb) +{ + int fd; + int bytespp; + int offset; + char *x; + struct fb_var_screeninfo vinfo; + + fd = open(path, O_RDONLY); + if (fd < 0) return -1; + + if(ioctl(fd, FBIOGET_VSCREENINFO, &vinfo) < 0) { + D("ioctl failed, %s\n", strerror(errno)); + return -1; + } + + bytespp = vinfo.bits_per_pixel / 8; + + fb->bpp = vinfo.bits_per_pixel; + fb->size = vinfo.xres * vinfo.yres * bytespp; + fb->width = vinfo.xres; + fb->height = vinfo.yres; + fb->red_offset = vinfo.red.offset; + fb->red_length = vinfo.red.length; + fb->green_offset = vinfo.green.offset; + fb->green_length = vinfo.green.length; + fb->blue_offset = vinfo.blue.offset; + fb->blue_length = vinfo.blue.length; + fb->alpha_offset = vinfo.transp.offset; + fb->alpha_length = vinfo.transp.length; + +#ifdef ANDROID + /* HACK: for several of 3d cores a specific alignment + * is required so the start of the fb may not be an integer number of lines + * from the base. As a result we are storing the additional offset in + * xoffset. This is not the correct usage for xoffset, it should be added + * to each line, not just once at the beginning */ + + offset = vinfo.xoffset * bytespp; + + /* Android use double-buffer, capture 2nd */ + offset += vinfo.xres * vinfo.yoffset * bytespp; +#else + offset = 0; +#endif + + x = malloc(fb->size); + if (!x) return -1; + + lseek(fd, offset, SEEK_SET); + + if (read(fd, x ,fb->size) != fb->size) goto oops; + + fb->data = x; + close(fd); + + return 0; + +oops: + close(fd); + free(x); + return -1; +} + +int fb2png(const char *path) +{ + struct fb fb; + int ret; + +#ifdef ANDROID + ret = get_device_fb("/dev/graphics/fb0", &fb); +#else + ret = get_device_fb("/dev/fb0", &fb); +#endif + + if (ret) { + D("Failed to read framebuffer."); + return -1; + } + + fb_dump(&fb); + + return fb_save_png(&fb, path); +} + diff --git a/fb2png/fb2png.h b/fb2png/fb2png.h new file mode 100644 index 00000000..c5eea9cd --- /dev/null +++ b/fb2png/fb2png.h @@ -0,0 +1,26 @@ +/* + * -- http://android-fb2png.googlecode.com/svn/trunk/fb2png.h -- + * + * Copyright 2011, Kyan He + * + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __FB2PNG_H__ +#define __FB2PNG_H__ + +int fb2png(const char *path); + +#endif diff --git a/fb2png/img_process.c b/fb2png/img_process.c new file mode 100644 index 00000000..eb75e9a2 --- /dev/null +++ b/fb2png/img_process.c @@ -0,0 +1,254 @@ +/* + * -- http://android-fb2png.googlecode.com/svn/trunk/img_process.c -- + * + * Copyright 2011, Kyan He + * + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include + +#include "img_process.h" +#include "log.h" + +int rgb565_to_rgb888(const char* src, char* dst, size_t pixel) +{ + struct rgb565 *from; + struct rgb888 *to; + + from = (struct rgb565 *) src; + to = (struct rgb888 *) dst; + + int i = 0; + /* traverse pixel of the row */ + while(i++ < pixel) { + + to->r = from->r; + to->g = from->g; + to->b = from->b; + /* scale */ + to->r <<= 3; + to->g <<= 2; + to->b <<= 3; + + to++; + from++; + } + + return 0; +} + +int argb8888_to_rgb888(const char* src, char* dst, size_t pixel) +{ + int i; + struct argb8888 *from; + struct rgb888 *to; + + from = (struct argb8888 *) src; + to = (struct rgb888 *) dst; + + i = 0; + /* traverse pixel of the row */ + while(i++ < pixel) { + + to->r = from->r; + to->g = from->g; + to->b = from->b; + + to++; + from++; + } + + return 0; +} + +int abgr8888_to_rgb888(const char* src, char* dst, size_t pixel) +{ + int i; + struct abgr8888 *from; + struct rgb888 *to; + + from = (struct abgr8888 *) src; + to = (struct rgb888 *) dst; + + i = 0; + /* traverse pixel of the row */ + while(i++ < pixel) { + + to->r = from->r; + to->g = from->g; + to->b = from->b; + + to++; + from++; + } + + return 0; +} + +int bgra8888_to_rgb888(const char* src, char* dst, size_t pixel) +{ + int i; + struct bgra8888 *from; + struct rgb888 *to; + + from = (struct bgra8888 *) src; + to = (struct rgb888 *) dst; + + i = 0; + /* traverse pixel of the row */ + while(i++ < pixel) { + + to->r = from->r; + to->g = from->g; + to->b = from->b; + + to++; + from++; + } + + return 0; +} + +int rgba8888_to_rgb888(const char* src, char* dst, size_t pixel) +{ + int i; + struct rgba8888 *from; + struct rgb888 *to; + + from = (struct rgba8888 *) src; + to = (struct rgb888 *) dst; + + i = 0; + /* traverse pixel of the row */ + while(i++ < pixel) { + + to->r = from->r; + to->g = from->g; + to->b = from->b; + + to++; + from++; + } + + return 0; +} + +static void +stdio_write_func (png_structp png, png_bytep data, png_size_t size) +{ + FILE *fp; + size_t ret; + + fp = png_get_io_ptr (png); + while (size) { + ret = fwrite (data, 1, size, fp); + size -= ret; + data += ret; + if (size && ferror (fp)) + E("write: %m\n"); + } +} + +static void +png_simple_output_flush_fn (png_structp png_ptr) +{ +} + +static void +png_simple_error_callback (png_structp png, + png_const_charp error_msg) +{ + E("png error: %s\n", error_msg); +} + +static void +png_simple_warning_callback (png_structp png, + png_const_charp error_msg) +{ + fprintf(stderr, "png warning: %s\n", error_msg); +} + +/* save rgb888 to png format in fp */ +int save_png(const char* path, const char* data, int width, int height) +{ + FILE *fp; + png_byte **volatile rows; + png_struct *png; + png_info *info; + + fp = fopen(path, "w"); + if (!fp) { + int errsv = errno; + E("Cannot open file %s for writing.\n", path); + return errsv; + } + + rows = malloc(height * sizeof rows[0]); + if (!rows) goto oops; + + int i; + for (i = 0; i < height; i++) + rows[i] = (png_byte *) data + i * width * 3 /*fb.stride*/; + + png = png_create_write_struct (PNG_LIBPNG_VER_STRING, NULL, + png_simple_error_callback, + png_simple_warning_callback); + if (!png) { + E("png_create_write_struct failed\n"); + goto oops; + } + + info = png_create_info_struct (png); + if (!info) { + E("png_create_info_struct failed\n"); + png_destroy_write_struct (&png, NULL); + goto oops; + } + + png_set_write_fn (png, fp, stdio_write_func, png_simple_output_flush_fn); + png_set_IHDR (png, info, + width, + height, +#define DEPTH 8 + DEPTH, + PNG_COLOR_TYPE_RGB, + PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_DEFAULT, + PNG_FILTER_TYPE_DEFAULT); + + png_color_16 white; + + white.gray = (1 << DEPTH) - 1; + white.red = white.blue = white.green = white.gray; + + png_set_bKGD (png, info, &white); + png_write_info (png, info); + + png_write_image (png, rows); + png_write_end (png, info); + + png_destroy_write_struct (&png, &info); + + fclose(fp); + free (rows); + return 0; + +oops: + fclose(fp); + free (rows); + return -1; +} diff --git a/fb2png/img_process.h b/fb2png/img_process.h new file mode 100644 index 00000000..871cfc93 --- /dev/null +++ b/fb2png/img_process.h @@ -0,0 +1,84 @@ +/* + * -- http://android-fb2png.googlecode.com/svn/trunk/img_process.h -- + * + * Copyright 2011, Kyan He + * + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __IMG_PROCESS_H__ +#define __IMG_PROCESS_H__ + +/** + * rgba8888 is found on Desire HD Linux localhost 2.6.35.10-g931a37e #1 + * PREEMPT Wed Nov 9 14:04:03 CST 2011 armv7l GNU/Linux + */ + + +typedef struct rgb888 { + char r; + char g; + char b; +} rgb888_t; + +typedef rgb888_t rgb24_t; + +typedef struct argb8888 { + char a; + char r; + char g; + char b; +} argb8888_t; + +typedef struct abgr8888 { + char a; + char b; + char g; + char r; +} abgr8888_t; + +typedef struct bgra8888 { + char b; + char g; + char r; + char a; +} bgra8888_t; + +typedef struct rgba8888 { + char r; + char g; + char b; + char a; +} rgba8888_t; + +typedef struct rgb565 { + short b:5; + short g:6; + short r:5; +} rgb565_t; + +int rgb565_to_rgb888(const char* src, char* dst, size_t pixel); + +int argb8888_to_rgb888(const char* src, char* dst, size_t pixel); + +int abgr8888_to_rgb888(const char* src, char* dst, size_t pixel); + +int bgra8888_to_rgb888(const char* src, char* dst, size_t pixel); + +int rgba8888_to_rgb888(const char* src, char* dst, size_t pixel); + +int save_png(const char* path, const char* data, int width, int height); + +#endif diff --git a/fb2png/jni/Application.mk b/fb2png/jni/Application.mk new file mode 100644 index 00000000..a720a091 --- /dev/null +++ b/fb2png/jni/Application.mk @@ -0,0 +1 @@ +APP_BUILD_SCRIPT := $(call my-dir)/../Android.mk diff --git a/fb2png/libpng/include/png.h b/fb2png/libpng/include/png.h new file mode 100644 index 00000000..0ad09eb6 --- /dev/null +++ b/fb2png/libpng/include/png.h @@ -0,0 +1,3301 @@ + +/* png.h - header file for PNG reference library + * + * libpng version 1.6.1 - March 28, 2013 + * Copyright (c) 1998-2013 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * This code is released under the libpng license (See LICENSE, below) + * + * Authors and maintainers: + * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat + * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger + * libpng versions 0.97, January 1998, through 1.6.1 - March 28, 2013: Glenn + * See also "Contributing Authors", below. + * + * Note about libpng version numbers: + * + * Due to various miscommunications, unforeseen code incompatibilities + * and occasional factors outside the authors' control, version numbering + * on the library has not always been consistent and straightforward. + * The following table summarizes matters since version 0.89c, which was + * the first widely used release: + * + * source png.h png.h shared-lib + * version string int version + * ------- ------ ----- ---------- + * 0.89c "1.0 beta 3" 0.89 89 1.0.89 + * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] + * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] + * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] + * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] + * 0.97c 0.97 97 2.0.97 + * 0.98 0.98 98 2.0.98 + * 0.99 0.99 98 2.0.99 + * 0.99a-m 0.99 99 2.0.99 + * 1.00 1.00 100 2.1.0 [100 should be 10000] + * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] + * 1.0.1 png.h string is 10001 2.1.0 + * 1.0.1a-e identical to the 10002 from here on, the shared library + * 1.0.2 source version) 10002 is 2.V where V is the source code + * 1.0.2a-b 10003 version, except as noted. + * 1.0.3 10003 + * 1.0.3a-d 10004 + * 1.0.4 10004 + * 1.0.4a-f 10005 + * 1.0.5 (+ 2 patches) 10005 + * 1.0.5a-d 10006 + * 1.0.5e-r 10100 (not source compatible) + * 1.0.5s-v 10006 (not binary compatible) + * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) + * 1.0.6d-f 10007 (still binary incompatible) + * 1.0.6g 10007 + * 1.0.6h 10007 10.6h (testing xy.z so-numbering) + * 1.0.6i 10007 10.6i + * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) + * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) + * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) + * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) + * 1.0.7 1 10007 (still compatible) + * 1.0.8beta1-4 1 10008 2.1.0.8beta1-4 + * 1.0.8rc1 1 10008 2.1.0.8rc1 + * 1.0.8 1 10008 2.1.0.8 + * 1.0.9beta1-6 1 10009 2.1.0.9beta1-6 + * 1.0.9rc1 1 10009 2.1.0.9rc1 + * 1.0.9beta7-10 1 10009 2.1.0.9beta7-10 + * 1.0.9rc2 1 10009 2.1.0.9rc2 + * 1.0.9 1 10009 2.1.0.9 + * 1.0.10beta1 1 10010 2.1.0.10beta1 + * 1.0.10rc1 1 10010 2.1.0.10rc1 + * 1.0.10 1 10010 2.1.0.10 + * 1.0.11beta1-3 1 10011 2.1.0.11beta1-3 + * 1.0.11rc1 1 10011 2.1.0.11rc1 + * 1.0.11 1 10011 2.1.0.11 + * 1.0.12beta1-2 2 10012 2.1.0.12beta1-2 + * 1.0.12rc1 2 10012 2.1.0.12rc1 + * 1.0.12 2 10012 2.1.0.12 + * 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned) + * 1.2.0beta1-2 2 10200 2.1.2.0beta1-2 + * 1.2.0beta3-5 3 10200 3.1.2.0beta3-5 + * 1.2.0rc1 3 10200 3.1.2.0rc1 + * 1.2.0 3 10200 3.1.2.0 + * 1.2.1beta1-4 3 10201 3.1.2.1beta1-4 + * 1.2.1rc1-2 3 10201 3.1.2.1rc1-2 + * 1.2.1 3 10201 3.1.2.1 + * 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6 + * 1.0.13beta1 10 10013 10.so.0.1.0.13beta1 + * 1.0.13rc1 10 10013 10.so.0.1.0.13rc1 + * 1.2.2rc1 12 10202 12.so.0.1.2.2rc1 + * 1.0.13 10 10013 10.so.0.1.0.13 + * 1.2.2 12 10202 12.so.0.1.2.2 + * 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6 + * 1.2.3 12 10203 12.so.0.1.2.3 + * 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3 + * 1.0.14rc1 13 10014 10.so.0.1.0.14rc1 + * 1.2.4rc1 13 10204 12.so.0.1.2.4rc1 + * 1.0.14 10 10014 10.so.0.1.0.14 + * 1.2.4 13 10204 12.so.0.1.2.4 + * 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2 + * 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3 + * 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3 + * 1.0.15 10 10015 10.so.0.1.0.15 + * 1.2.5 13 10205 12.so.0.1.2.5 + * 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4 + * 1.0.16 10 10016 10.so.0.1.0.16 + * 1.2.6 13 10206 12.so.0.1.2.6 + * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 + * 1.0.17rc1 10 10017 12.so.0.1.0.17rc1 + * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 + * 1.0.17 10 10017 12.so.0.1.0.17 + * 1.2.7 13 10207 12.so.0.1.2.7 + * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 + * 1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5 + * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 + * 1.0.18 10 10018 12.so.0.1.0.18 + * 1.2.8 13 10208 12.so.0.1.2.8 + * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 + * 1.2.9beta4-11 13 10209 12.so.0.9[.0] + * 1.2.9rc1 13 10209 12.so.0.9[.0] + * 1.2.9 13 10209 12.so.0.9[.0] + * 1.2.10beta1-7 13 10210 12.so.0.10[.0] + * 1.2.10rc1-2 13 10210 12.so.0.10[.0] + * 1.2.10 13 10210 12.so.0.10[.0] + * 1.4.0beta1-5 14 10400 14.so.0.0[.0] + * 1.2.11beta1-4 13 10211 12.so.0.11[.0] + * 1.4.0beta7-8 14 10400 14.so.0.0[.0] + * 1.2.11 13 10211 12.so.0.11[.0] + * 1.2.12 13 10212 12.so.0.12[.0] + * 1.4.0beta9-14 14 10400 14.so.0.0[.0] + * 1.2.13 13 10213 12.so.0.13[.0] + * 1.4.0beta15-36 14 10400 14.so.0.0[.0] + * 1.4.0beta37-87 14 10400 14.so.14.0[.0] + * 1.4.0rc01 14 10400 14.so.14.0[.0] + * 1.4.0beta88-109 14 10400 14.so.14.0[.0] + * 1.4.0rc02-08 14 10400 14.so.14.0[.0] + * 1.4.0 14 10400 14.so.14.0[.0] + * 1.4.1beta01-03 14 10401 14.so.14.1[.0] + * 1.4.1rc01 14 10401 14.so.14.1[.0] + * 1.4.1beta04-12 14 10401 14.so.14.1[.0] + * 1.4.1 14 10401 14.so.14.1[.0] + * 1.4.2 14 10402 14.so.14.2[.0] + * 1.4.3 14 10403 14.so.14.3[.0] + * 1.4.4 14 10404 14.so.14.4[.0] + * 1.5.0beta01-58 15 10500 15.so.15.0[.0] + * 1.5.0rc01-07 15 10500 15.so.15.0[.0] + * 1.5.0 15 10500 15.so.15.0[.0] + * 1.5.1beta01-11 15 10501 15.so.15.1[.0] + * 1.5.1rc01-02 15 10501 15.so.15.1[.0] + * 1.5.1 15 10501 15.so.15.1[.0] + * 1.5.2beta01-03 15 10502 15.so.15.2[.0] + * 1.5.2rc01-03 15 10502 15.so.15.2[.0] + * 1.5.2 15 10502 15.so.15.2[.0] + * 1.5.3beta01-10 15 10503 15.so.15.3[.0] + * 1.5.3rc01-02 15 10503 15.so.15.3[.0] + * 1.5.3beta11 15 10503 15.so.15.3[.0] + * 1.5.3 [omitted] + * 1.5.4beta01-08 15 10504 15.so.15.4[.0] + * 1.5.4rc01 15 10504 15.so.15.4[.0] + * 1.5.4 15 10504 15.so.15.4[.0] + * 1.5.5beta01-08 15 10505 15.so.15.5[.0] + * 1.5.5rc01 15 10505 15.so.15.5[.0] + * 1.5.5 15 10505 15.so.15.5[.0] + * 1.5.6beta01-07 15 10506 15.so.15.6[.0] + * 1.5.6rc01-03 15 10506 15.so.15.6[.0] + * 1.5.6 15 10506 15.so.15.6[.0] + * 1.5.7beta01-05 15 10507 15.so.15.7[.0] + * 1.5.7rc01-03 15 10507 15.so.15.7[.0] + * 1.5.7 15 10507 15.so.15.7[.0] + * 1.6.0beta01-40 16 10600 16.so.16.0[.0] + * 1.6.0rc01-08 16 10600 16.so.16.0[.0] + * 1.6.0 16 10600 16.so.16.0[.0] + * 1.6.1beta01-10 16 10601 16.so.16.1[.0] + * 1.6.1rc01 16 10601 16.so.16.1[.0] + * 1.6.1 16 10601 16.so.16.1[.0] + * + * Henceforth the source version will match the shared-library major + * and minor numbers; the shared-library major version number will be + * used for changes in backward compatibility, as it is intended. The + * PNG_LIBPNG_VER macro, which is not used within libpng but is available + * for applications, is an unsigned integer of the form xyyzz corresponding + * to the source version x.y.z (leading zeros in y and z). Beta versions + * were given the previous public release number plus a letter, until + * version 1.0.6j; from then on they were given the upcoming public + * release number plus "betaNN" or "rcNN". + * + * Binary incompatibility exists only when applications make direct access + * to the info_ptr or png_ptr members through png.h, and the compiled + * application is loaded with a different version of the library. + * + * DLLNUM will change each time there are forward or backward changes + * in binary compatibility (e.g., when a new feature is added). + * + * See libpng-manual.txt or libpng.3 for more information. The PNG + * specification is available as a W3C Recommendation and as an ISO + * Specification, defines should NOT be changed. + */ +#define PNG_INFO_gAMA 0x0001 +#define PNG_INFO_sBIT 0x0002 +#define PNG_INFO_cHRM 0x0004 +#define PNG_INFO_PLTE 0x0008 +#define PNG_INFO_tRNS 0x0010 +#define PNG_INFO_bKGD 0x0020 +#define PNG_INFO_hIST 0x0040 +#define PNG_INFO_pHYs 0x0080 +#define PNG_INFO_oFFs 0x0100 +#define PNG_INFO_tIME 0x0200 +#define PNG_INFO_pCAL 0x0400 +#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ +#define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ +#define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ +#define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ +#define PNG_INFO_IDAT 0x8000 /* ESR, 1.0.6 */ + +/* This is used for the transformation routines, as some of them + * change these values for the row. It also should enable using + * the routines for other purposes. + */ +typedef struct png_row_info_struct +{ + png_uint_32 width; /* width of row */ + png_size_t rowbytes; /* number of bytes in row */ + png_byte color_type; /* color type of row */ + png_byte bit_depth; /* bit depth of row */ + png_byte channels; /* number of channels (1, 2, 3, or 4) */ + png_byte pixel_depth; /* bits per pixel (depth * channels) */ +} png_row_info; + +typedef png_row_info * png_row_infop; +typedef png_row_info * * png_row_infopp; + +/* These are the function types for the I/O functions and for the functions + * that allow the user to override the default I/O functions with his or her + * own. The png_error_ptr type should match that of user-supplied warning + * and error functions, while the png_rw_ptr type should match that of the + * user read/write data functions. Note that the 'write' function must not + * modify the buffer it is passed. The 'read' function, on the other hand, is + * expected to return the read data in the buffer. + */ +typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp)); +typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t)); +typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp)); +typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32, + int)); +typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32, + int)); + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop)); +typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop)); + +/* The following callback receives png_uint_32 row_number, int pass for the + * png_bytep data of the row. When transforming an interlaced image the + * row number is the row number within the sub-image of the interlace pass, so + * the value will increase to the height of the sub-image (not the full image) + * then reset to 0 for the next pass. + * + * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to + * find the output pixel (x,y) given an interlaced sub-image pixel + * (row,col,pass). (See below for these macros.) + */ +typedef PNG_CALLBACK(void, *png_progressive_row_ptr, (png_structp, png_bytep, + png_uint_32, int)); +#endif + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) +typedef PNG_CALLBACK(void, *png_user_transform_ptr, (png_structp, png_row_infop, + png_bytep)); +#endif + +#ifdef PNG_USER_CHUNKS_SUPPORTED +typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp, + png_unknown_chunkp)); +#endif +#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED +/* not used anywhere */ +/* typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp)); */ +#endif + +#ifdef PNG_SETJMP_SUPPORTED +/* This must match the function definition in , and the application + * must include this before png.h to obtain the definition of jmp_buf. The + * function is required to be PNG_NORETURN, but this is not checked. If the + * function does return the application will crash via an abort() or similar + * system level call. + * + * If you get a warning here while building the library you may need to make + * changes to ensure that pnglibconf.h records the calling convention used by + * your compiler. This may be very difficult - try using a different compiler + * to build the library! + */ +PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef); +#endif + +/* Transform masks for the high-level interface */ +#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ +#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ +#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ +#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ +#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ +#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ +#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ +#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ +#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ +#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ +#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ +#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ +#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only */ +/* Added to libpng-1.2.34 */ +#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER +#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ +/* Added to libpng-1.4.0 */ +#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ +/* Added to libpng-1.5.4 */ +#define PNG_TRANSFORM_EXPAND_16 0x4000 /* read only */ +#define PNG_TRANSFORM_SCALE_16 0x8000 /* read only */ + +/* Flags for MNG supported features */ +#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 +#define PNG_FLAG_MNG_FILTER_64 0x04 +#define PNG_ALL_MNG_FEATURES 0x05 + +/* NOTE: prior to 1.5 these functions had no 'API' style declaration, + * this allowed the zlib default functions to be used on Windows + * platforms. In 1.5 the zlib default malloc (which just calls malloc and + * ignores the first argument) should be completely compatible with the + * following. + */ +typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp, + png_alloc_size_t)); +typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp)); + +/* Section 3: exported functions + * Here are the function definitions most commonly used. This is not + * the place to find out how to use libpng. See libpng-manual.txt for the + * full explanation, see example.c for the summary. This just provides + * a simple one line description of the use of each function. + * + * The PNG_EXPORT() and PNG_EXPORTA() macros used below are defined in + * pngconf.h and in the *.dfn files in the scripts directory. + * + * PNG_EXPORT(ordinal, type, name, (args)); + * + * ordinal: ordinal that is used while building + * *.def files. The ordinal value is only + * relevant when preprocessing png.h with + * the *.dfn files for building symbol table + * entries, and are removed by pngconf.h. + * type: return type of the function + * name: function name + * args: function arguments, with types + * + * When we wish to append attributes to a function prototype we use + * the PNG_EXPORTA() macro instead. + * + * PNG_EXPORTA(ordinal, type, name, (args), attributes); + * + * ordinal, type, name, and args: same as in PNG_EXPORT(). + * attributes: function attributes + */ + +/* Returns the version number of the library */ +PNG_EXPORT(1, png_uint_32, png_access_version_number, (void)); + +/* Tell lib we have already handled the first magic bytes. + * Handling more than 8 bytes from the beginning of the file is an error. + */ +PNG_EXPORT(2, void, png_set_sig_bytes, (png_structrp png_ptr, int num_bytes)); + +/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a + * PNG file. Returns zero if the supplied bytes match the 8-byte PNG + * signature, and non-zero otherwise. Having num_to_check == 0 or + * start > 7 will always fail (ie return non-zero). + */ +PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, png_size_t start, + png_size_t num_to_check)); + +/* Simple signature checking function. This is the same as calling + * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). + */ +#define png_check_sig(sig, n) !png_sig_cmp((sig), 0, (n)) + +/* Allocate and initialize png_ptr struct for reading, and any other memory. */ +PNG_EXPORTA(4, png_structp, png_create_read_struct, + (png_const_charp user_png_ver, png_voidp error_ptr, + png_error_ptr error_fn, png_error_ptr warn_fn), + PNG_ALLOCATED); + +/* Allocate and initialize png_ptr struct for writing, and any other memory */ +PNG_EXPORTA(5, png_structp, png_create_write_struct, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn), + PNG_ALLOCATED); + +PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size, + (png_const_structrp png_ptr)); + +PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structrp png_ptr, + png_size_t size)); + +/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp + * match up. + */ +#ifdef PNG_SETJMP_SUPPORTED +/* This function returns the jmp_buf built in to *png_ptr. It must be + * supplied with an appropriate 'longjmp' function to use on that jmp_buf + * unless the default error function is overridden in which case NULL is + * acceptable. The size of the jmp_buf is checked against the actual size + * allocated by the library - the call will return NULL on a mismatch + * indicating an ABI mismatch. + */ +PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structrp png_ptr, + png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)); +# define png_jmpbuf(png_ptr) \ + (*png_set_longjmp_fn((png_ptr), longjmp, (sizeof (jmp_buf)))) +#else +# define png_jmpbuf(png_ptr) \ + (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) +#endif +/* This function should be used by libpng applications in place of + * longjmp(png_ptr->jmpbuf, val). If longjmp_fn() has been set, it + * will use it; otherwise it will call PNG_ABORT(). This function was + * added in libpng-1.5.0. + */ +PNG_EXPORTA(9, void, png_longjmp, (png_const_structrp png_ptr, int val), + PNG_NORETURN); + +#ifdef PNG_READ_SUPPORTED +/* Reset the compression stream */ +PNG_EXPORTA(10, int, png_reset_zstream, (png_structrp png_ptr), PNG_DEPRECATED); +#endif + +/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ +#ifdef PNG_USER_MEM_SUPPORTED +PNG_EXPORTA(11, png_structp, png_create_read_struct_2, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn, + png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), + PNG_ALLOCATED); +PNG_EXPORTA(12, png_structp, png_create_write_struct_2, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn, + png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), + PNG_ALLOCATED); +#endif + +/* Write the PNG file signature. */ +PNG_EXPORT(13, void, png_write_sig, (png_structrp png_ptr)); + +/* Write a PNG chunk - size, type, (optional) data, CRC. */ +PNG_EXPORT(14, void, png_write_chunk, (png_structrp png_ptr, png_const_bytep + chunk_name, png_const_bytep data, png_size_t length)); + +/* Write the start of a PNG chunk - length and chunk name. */ +PNG_EXPORT(15, void, png_write_chunk_start, (png_structrp png_ptr, + png_const_bytep chunk_name, png_uint_32 length)); + +/* Write the data of a PNG chunk started with png_write_chunk_start(). */ +PNG_EXPORT(16, void, png_write_chunk_data, (png_structrp png_ptr, + png_const_bytep data, png_size_t length)); + +/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ +PNG_EXPORT(17, void, png_write_chunk_end, (png_structrp png_ptr)); + +/* Allocate and initialize the info structure */ +PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_const_structrp png_ptr), + PNG_ALLOCATED); + +/* DEPRECATED: this function allowed init structures to be created using the + * default allocation method (typically malloc). Use is deprecated in 1.6.0 and + * the API will be removed in the future. + */ +PNG_EXPORTA(19, void, png_info_init_3, (png_infopp info_ptr, + png_size_t png_info_struct_size), PNG_DEPRECATED); + +/* Writes all the PNG information before the image. */ +PNG_EXPORT(20, void, png_write_info_before_PLTE, + (png_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(21, void, png_write_info, + (png_structrp png_ptr, png_const_inforp info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the information before the actual image data. */ +PNG_EXPORT(22, void, png_read_info, + (png_structrp png_ptr, png_inforp info_ptr)); +#endif + +#ifdef PNG_TIME_RFC1123_SUPPORTED + /* Convert to a US string format: there is no localization support in this + * routine. The original implementation used a 29 character buffer in + * png_struct, this will be removed in future versions. + */ +#if PNG_LIBPNG_VER < 10700 +/* To do: remove this from libpng17 (and from libpng17/png.c and pngstruct.h) */ +PNG_EXPORTA(23, png_const_charp, png_convert_to_rfc1123, (png_structrp png_ptr, + png_const_timep ptime),PNG_DEPRECATED); +#endif +PNG_EXPORT(241, int, png_convert_to_rfc1123_buffer, (char out[29], + png_const_timep ptime)); +#endif + +#ifdef PNG_CONVERT_tIME_SUPPORTED +/* Convert from a struct tm to png_time */ +PNG_EXPORT(24, void, png_convert_from_struct_tm, (png_timep ptime, + const struct tm * ttime)); + +/* Convert from time_t to png_time. Uses gmtime() */ +PNG_EXPORT(25, void, png_convert_from_time_t, (png_timep ptime, time_t ttime)); +#endif /* PNG_CONVERT_tIME_SUPPORTED */ + +#ifdef PNG_READ_EXPAND_SUPPORTED +/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ +PNG_EXPORT(26, void, png_set_expand, (png_structrp png_ptr)); +PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structrp png_ptr)); +PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structrp png_ptr)); +PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_EXPAND_16_SUPPORTED +/* Expand to 16-bit channels, forces conversion of palette to RGB and expansion + * of a tRNS chunk if present. + */ +PNG_EXPORT(221, void, png_set_expand_16, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) +/* Use blue, green, red order for pixels. */ +PNG_EXPORT(30, void, png_set_bgr, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED +/* Expand the grayscale to 24-bit RGB if necessary. */ +PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED +/* Reduce RGB to grayscale. */ +#define PNG_ERROR_ACTION_NONE 1 +#define PNG_ERROR_ACTION_WARN 2 +#define PNG_ERROR_ACTION_ERROR 3 +#define PNG_RGB_TO_GRAY_DEFAULT (-1)/*for red/green coefficients*/ + +PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structrp png_ptr, + int error_action, double red, double green)) +PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structrp png_ptr, + int error_action, png_fixed_point red, png_fixed_point green)) + +PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structrp + png_ptr)); +#endif + +#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED +PNG_EXPORT(35, void, png_build_grayscale_palette, (int bit_depth, + png_colorp palette)); +#endif + +#ifdef PNG_READ_ALPHA_MODE_SUPPORTED +/* How the alpha channel is interpreted - this affects how the color channels of + * a PNG file are returned when an alpha channel, or tRNS chunk in a palette + * file, is present. + * + * This has no effect on the way pixels are written into a PNG output + * datastream. The color samples in a PNG datastream are never premultiplied + * with the alpha samples. + * + * The default is to return data according to the PNG specification: the alpha + * channel is a linear measure of the contribution of the pixel to the + * corresponding composited pixel. The gamma encoded color channels must be + * scaled according to the contribution and to do this it is necessary to undo + * the encoding, scale the color values, perform the composition and reencode + * the values. This is the 'PNG' mode. + * + * The alternative is to 'associate' the alpha with the color information by + * storing color channel values that have been scaled by the alpha. The + * advantage is that the color channels can be resampled (the image can be + * scaled) in this form. The disadvantage is that normal practice is to store + * linear, not (gamma) encoded, values and this requires 16-bit channels for + * still images rather than the 8-bit channels that are just about sufficient if + * gamma encoding is used. In addition all non-transparent pixel values, + * including completely opaque ones, must be gamma encoded to produce the final + * image. This is the 'STANDARD', 'ASSOCIATED' or 'PREMULTIPLIED' mode (the + * latter being the two common names for associated alpha color channels.) + * + * Since it is not necessary to perform arithmetic on opaque color values so + * long as they are not to be resampled and are in the final color space it is + * possible to optimize the handling of alpha by storing the opaque pixels in + * the PNG format (adjusted for the output color space) while storing partially + * opaque pixels in the standard, linear, format. The accuracy required for + * standard alpha composition is relatively low, because the pixels are + * isolated, therefore typically the accuracy loss in storing 8-bit linear + * values is acceptable. (This is not true if the alpha channel is used to + * simulate transparency over large areas - use 16 bits or the PNG mode in + * this case!) This is the 'OPTIMIZED' mode. For this mode a pixel is + * treated as opaque only if the alpha value is equal to the maximum value. + * + * The final choice is to gamma encode the alpha channel as well. This is + * broken because, in practice, no implementation that uses this choice + * correctly undoes the encoding before handling alpha composition. Use this + * choice only if other serious errors in the software or hardware you use + * mandate it; the typical serious error is for dark halos to appear around + * opaque areas of the composited PNG image because of arithmetic overflow. + * + * The API function png_set_alpha_mode specifies which of these choices to use + * with an enumerated 'mode' value and the gamma of the required output: + */ +#define PNG_ALPHA_PNG 0 /* according to the PNG standard */ +#define PNG_ALPHA_STANDARD 1 /* according to Porter/Duff */ +#define PNG_ALPHA_ASSOCIATED 1 /* as above; this is the normal practice */ +#define PNG_ALPHA_PREMULTIPLIED 1 /* as above */ +#define PNG_ALPHA_OPTIMIZED 2 /* 'PNG' for opaque pixels, else 'STANDARD' */ +#define PNG_ALPHA_BROKEN 3 /* the alpha channel is gamma encoded */ + +PNG_FP_EXPORT(227, void, png_set_alpha_mode, (png_structrp png_ptr, int mode, + double output_gamma)) +PNG_FIXED_EXPORT(228, void, png_set_alpha_mode_fixed, (png_structrp png_ptr, + int mode, png_fixed_point output_gamma)) +#endif + +#if defined(PNG_GAMMA_SUPPORTED) || defined(PNG_READ_ALPHA_MODE_SUPPORTED) +/* The output_gamma value is a screen gamma in libpng terminology: it expresses + * how to decode the output values, not how they are encoded. The values used + * correspond to the normal numbers used to describe the overall gamma of a + * computer display system; for example 2.2 for an sRGB conformant system. The + * values are scaled by 100000 in the _fixed version of the API (so 220000 for + * sRGB.) + * + * The inverse of the value is always used to provide a default for the PNG file + * encoding if it has no gAMA chunk and if png_set_gamma() has not been called + * to override the PNG gamma information. + * + * When the ALPHA_OPTIMIZED mode is selected the output gamma is used to encode + * opaque pixels however pixels with lower alpha values are not encoded, + * regardless of the output gamma setting. + * + * When the standard Porter Duff handling is requested with mode 1 the output + * encoding is set to be linear and the output_gamma value is only relevant + * as a default for input data that has no gamma information. The linear output + * encoding will be overridden if png_set_gamma() is called - the results may be + * highly unexpected! + * + * The following numbers are derived from the sRGB standard and the research + * behind it. sRGB is defined to be approximated by a PNG gAMA chunk value of + * 0.45455 (1/2.2) for PNG. The value implicitly includes any viewing + * correction required to take account of any differences in the color + * environment of the original scene and the intended display environment; the + * value expresses how to *decode* the image for display, not how the original + * data was *encoded*. + * + * sRGB provides a peg for the PNG standard by defining a viewing environment. + * sRGB itself, and earlier TV standards, actually use a more complex transform + * (a linear portion then a gamma 2.4 power law) than PNG can express. (PNG is + * limited to simple power laws.) By saying that an image for direct display on + * an sRGB conformant system should be stored with a gAMA chunk value of 45455 + * (11.3.3.2 and 11.3.3.5 of the ISO PNG specification) the PNG specification + * makes it possible to derive values for other display systems and + * environments. + * + * The Mac value is deduced from the sRGB based on an assumption that the actual + * extra viewing correction used in early Mac display systems was implemented as + * a power 1.45 lookup table. + * + * Any system where a programmable lookup table is used or where the behavior of + * the final display device characteristics can be changed requires system + * specific code to obtain the current characteristic. However this can be + * difficult and most PNG gamma correction only requires an approximate value. + * + * By default, if png_set_alpha_mode() is not called, libpng assumes that all + * values are unencoded, linear, values and that the output device also has a + * linear characteristic. This is only very rarely correct - it is invariably + * better to call png_set_alpha_mode() with PNG_DEFAULT_sRGB than rely on the + * default if you don't know what the right answer is! + * + * The special value PNG_GAMMA_MAC_18 indicates an older Mac system (pre Mac OS + * 10.6) which used a correction table to implement a somewhat lower gamma on an + * otherwise sRGB system. + * + * Both these values are reserved (not simple gamma values) in order to allow + * more precise correction internally in the future. + * + * NOTE: the following values can be passed to either the fixed or floating + * point APIs, but the floating point API will also accept floating point + * values. + */ +#define PNG_DEFAULT_sRGB -1 /* sRGB gamma and color space */ +#define PNG_GAMMA_MAC_18 -2 /* Old Mac '1.8' gamma and color space */ +#define PNG_GAMMA_sRGB 220000 /* Television standards--matches sRGB gamma */ +#define PNG_GAMMA_LINEAR PNG_FP_1 /* Linear */ +#endif + +/* The following are examples of calls to png_set_alpha_mode to achieve the + * required overall gamma correction and, where necessary, alpha + * premultiplication. + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); + * This is the default libpng handling of the alpha channel - it is not + * pre-multiplied into the color components. In addition the call states + * that the output is for a sRGB system and causes all PNG files without gAMA + * chunks to be assumed to be encoded using sRGB. + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); + * In this case the output is assumed to be something like an sRGB conformant + * display preceeded by a power-law lookup table of power 1.45. This is how + * early Mac systems behaved. + * + * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_GAMMA_LINEAR); + * This is the classic Jim Blinn approach and will work in academic + * environments where everything is done by the book. It has the shortcoming + * of assuming that input PNG data with no gamma information is linear - this + * is unlikely to be correct unless the PNG files where generated locally. + * Most of the time the output precision will be so low as to show + * significant banding in dark areas of the image. + * + * png_set_expand_16(pp); + * png_set_alpha_mode(pp, PNG_ALPHA_STANDARD, PNG_DEFAULT_sRGB); + * This is a somewhat more realistic Jim Blinn inspired approach. PNG files + * are assumed to have the sRGB encoding if not marked with a gamma value and + * the output is always 16 bits per component. This permits accurate scaling + * and processing of the data. If you know that your input PNG files were + * generated locally you might need to replace PNG_DEFAULT_sRGB with the + * correct value for your system. + * + * png_set_alpha_mode(pp, PNG_ALPHA_OPTIMIZED, PNG_DEFAULT_sRGB); + * If you just need to composite the PNG image onto an existing background + * and if you control the code that does this you can use the optimization + * setting. In this case you just copy completely opaque pixels to the + * output. For pixels that are not completely transparent (you just skip + * those) you do the composition math using png_composite or png_composite_16 + * below then encode the resultant 8-bit or 16-bit values to match the output + * encoding. + * + * Other cases + * If neither the PNG nor the standard linear encoding work for you because + * of the software or hardware you use then you have a big problem. The PNG + * case will probably result in halos around the image. The linear encoding + * will probably result in a washed out, too bright, image (it's actually too + * contrasty.) Try the ALPHA_OPTIMIZED mode above - this will probably + * substantially reduce the halos. Alternatively try: + * + * png_set_alpha_mode(pp, PNG_ALPHA_BROKEN, PNG_DEFAULT_sRGB); + * This option will also reduce the halos, but there will be slight dark + * halos round the opaque parts of the image where the background is light. + * In the OPTIMIZED mode the halos will be light halos where the background + * is dark. Take your pick - the halos are unavoidable unless you can get + * your hardware/software fixed! (The OPTIMIZED approach is slightly + * faster.) + * + * When the default gamma of PNG files doesn't match the output gamma. + * If you have PNG files with no gamma information png_set_alpha_mode allows + * you to provide a default gamma, but it also sets the ouput gamma to the + * matching value. If you know your PNG files have a gamma that doesn't + * match the output you can take advantage of the fact that + * png_set_alpha_mode always sets the output gamma but only sets the PNG + * default if it is not already set: + * + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_DEFAULT_sRGB); + * png_set_alpha_mode(pp, PNG_ALPHA_PNG, PNG_GAMMA_MAC); + * The first call sets both the default and the output gamma values, the + * second call overrides the output gamma without changing the default. This + * is easier than achieving the same effect with png_set_gamma. You must use + * PNG_ALPHA_PNG for the first call - internal checking in png_set_alpha will + * fire if more than one call to png_set_alpha_mode and png_set_background is + * made in the same read operation, however multiple calls with PNG_ALPHA_PNG + * are ignored. + */ + +#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED +PNG_EXPORT(36, void, png_set_strip_alpha, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) +PNG_EXPORT(37, void, png_set_swap_alpha, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) +PNG_EXPORT(38, void, png_set_invert_alpha, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) +/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ +PNG_EXPORT(39, void, png_set_filler, (png_structrp png_ptr, png_uint_32 filler, + int flags)); +/* The values of the PNG_FILLER_ defines should NOT be changed */ +# define PNG_FILLER_BEFORE 0 +# define PNG_FILLER_AFTER 1 +/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ +PNG_EXPORT(40, void, png_set_add_alpha, (png_structrp png_ptr, + png_uint_32 filler, int flags)); +#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ + +#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) +/* Swap bytes in 16-bit depth files. */ +PNG_EXPORT(41, void, png_set_swap, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) +/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ +PNG_EXPORT(42, void, png_set_packing, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ + defined(PNG_WRITE_PACKSWAP_SUPPORTED) +/* Swap packing order of pixels in bytes. */ +PNG_EXPORT(43, void, png_set_packswap, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) +/* Converts files to legal bit depths. */ +PNG_EXPORT(44, void, png_set_shift, (png_structrp png_ptr, png_const_color_8p + true_bits)); +#endif + +#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ + defined(PNG_WRITE_INTERLACING_SUPPORTED) +/* Have the code handle the interlacing. Returns the number of passes. + * MUST be called before png_read_update_info or png_start_read_image, + * otherwise it will not have the desired effect. Note that it is still + * necessary to call png_read_row or png_read_rows png_get_image_height + * times for each pass. +*/ +PNG_EXPORT(45, int, png_set_interlace_handling, (png_structrp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) +/* Invert monochrome files */ +PNG_EXPORT(46, void, png_set_invert_mono, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_BACKGROUND_SUPPORTED +/* Handle alpha and tRNS by replacing with a background color. Prior to + * libpng-1.5.4 this API must not be called before the PNG file header has been + * read. Doing so will result in unexpected behavior and possible warnings or + * errors if the PNG file contains a bKGD chunk. + */ +PNG_FP_EXPORT(47, void, png_set_background, (png_structrp png_ptr, + png_const_color_16p background_color, int background_gamma_code, + int need_expand, double background_gamma)) +PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structrp png_ptr, + png_const_color_16p background_color, int background_gamma_code, + int need_expand, png_fixed_point background_gamma)) +#endif +#ifdef PNG_READ_BACKGROUND_SUPPORTED +# define PNG_BACKGROUND_GAMMA_UNKNOWN 0 +# define PNG_BACKGROUND_GAMMA_SCREEN 1 +# define PNG_BACKGROUND_GAMMA_FILE 2 +# define PNG_BACKGROUND_GAMMA_UNIQUE 3 +#endif + +#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED +/* Scale a 16-bit depth file down to 8-bit, accurately. */ +PNG_EXPORT(229, void, png_set_scale_16, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED +#define PNG_READ_16_TO_8 SUPPORTED /* Name prior to 1.5.4 */ +/* Strip the second byte of information from a 16-bit depth file. */ +PNG_EXPORT(48, void, png_set_strip_16, (png_structrp png_ptr)); +#endif + +#ifdef PNG_READ_QUANTIZE_SUPPORTED +/* Turn on quantizing, and reduce the palette to the number of colors + * available. + */ +PNG_EXPORT(49, void, png_set_quantize, (png_structrp png_ptr, + png_colorp palette, int num_palette, int maximum_colors, + png_const_uint_16p histogram, int full_quantize)); +#endif + +#ifdef PNG_READ_GAMMA_SUPPORTED +/* The threshold on gamma processing is configurable but hard-wired into the + * library. The following is the floating point variant. + */ +#define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001) + +/* Handle gamma correction. Screen_gamma=(display_exponent). + * NOTE: this API simply sets the screen and file gamma values. It will + * therefore override the value for gamma in a PNG file if it is called after + * the file header has been read - use with care - call before reading the PNG + * file for best results! + * + * These routines accept the same gamma values as png_set_alpha_mode (described + * above). The PNG_GAMMA_ defines and PNG_DEFAULT_sRGB can be passed to either + * API (floating point or fixed.) Notice, however, that the 'file_gamma' value + * is the inverse of a 'screen gamma' value. + */ +PNG_FP_EXPORT(50, void, png_set_gamma, (png_structrp png_ptr, + double screen_gamma, double override_file_gamma)) +PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structrp png_ptr, + png_fixed_point screen_gamma, png_fixed_point override_file_gamma)) +#endif + +#ifdef PNG_WRITE_FLUSH_SUPPORTED +/* Set how many lines between output flushes - 0 for no flushing */ +PNG_EXPORT(51, void, png_set_flush, (png_structrp png_ptr, int nrows)); +/* Flush the current PNG output buffer */ +PNG_EXPORT(52, void, png_write_flush, (png_structrp png_ptr)); +#endif + +/* Optional update palette with requested transformations */ +PNG_EXPORT(53, void, png_start_read_image, (png_structrp png_ptr)); + +/* Optional call to update the users info structure */ +PNG_EXPORT(54, void, png_read_update_info, (png_structrp png_ptr, + png_inforp info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read one or more rows of image data. */ +PNG_EXPORT(55, void, png_read_rows, (png_structrp png_ptr, png_bytepp row, + png_bytepp display_row, png_uint_32 num_rows)); +#endif + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read a row of data. */ +PNG_EXPORT(56, void, png_read_row, (png_structrp png_ptr, png_bytep row, + png_bytep display_row)); +#endif + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the whole image into memory at once. */ +PNG_EXPORT(57, void, png_read_image, (png_structrp png_ptr, png_bytepp image)); +#endif + +/* Write a row of image data */ +PNG_EXPORT(58, void, png_write_row, (png_structrp png_ptr, + png_const_bytep row)); + +/* Write a few rows of image data: (*row) is not written; however, the type + * is declared as writeable to maintain compatibility with previous versions + * of libpng and to allow the 'display_row' array from read_rows to be passed + * unchanged to write_rows. + */ +PNG_EXPORT(59, void, png_write_rows, (png_structrp png_ptr, png_bytepp row, + png_uint_32 num_rows)); + +/* Write the image data */ +PNG_EXPORT(60, void, png_write_image, (png_structrp png_ptr, png_bytepp image)); + +/* Write the end of the PNG file. */ +PNG_EXPORT(61, void, png_write_end, (png_structrp png_ptr, + png_inforp info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the end of the PNG file. */ +PNG_EXPORT(62, void, png_read_end, (png_structrp png_ptr, png_inforp info_ptr)); +#endif + +/* Free any memory associated with the png_info_struct */ +PNG_EXPORT(63, void, png_destroy_info_struct, (png_const_structrp png_ptr, + png_infopp info_ptr_ptr)); + +/* Free any memory associated with the png_struct and the png_info_structs */ +PNG_EXPORT(64, void, png_destroy_read_struct, (png_structpp png_ptr_ptr, + png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); + +/* Free any memory associated with the png_struct and the png_info_structs */ +PNG_EXPORT(65, void, png_destroy_write_struct, (png_structpp png_ptr_ptr, + png_infopp info_ptr_ptr)); + +/* Set the libpng method of handling chunk CRC errors */ +PNG_EXPORT(66, void, png_set_crc_action, (png_structrp png_ptr, int crit_action, + int ancil_action)); + +/* Values for png_set_crc_action() say how to handle CRC errors in + * ancillary and critical chunks, and whether to use the data contained + * therein. Note that it is impossible to "discard" data in a critical + * chunk. For versions prior to 0.90, the action was always error/quit, + * whereas in version 0.90 and later, the action for CRC errors in ancillary + * chunks is warn/discard. These values should NOT be changed. + * + * value action:critical action:ancillary + */ +#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ +#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ +#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ +#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ +#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ +#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ + +/* These functions give the user control over the scan-line filtering in + * libpng and the compression methods used by zlib. These functions are + * mainly useful for testing, as the defaults should work with most users. + * Those users who are tight on memory or want faster performance at the + * expense of compression can modify them. See the compression library + * header file (zlib.h) for an explination of the compression functions. + */ + +/* Set the filtering method(s) used by libpng. Currently, the only valid + * value for "method" is 0. + */ +PNG_EXPORT(67, void, png_set_filter, (png_structrp png_ptr, int method, + int filters)); + +/* Flags for png_set_filter() to say which filters to use. The flags + * are chosen so that they don't conflict with real filter types + * below, in case they are supplied instead of the #defined constants. + * These values should NOT be changed. + */ +#define PNG_NO_FILTERS 0x00 +#define PNG_FILTER_NONE 0x08 +#define PNG_FILTER_SUB 0x10 +#define PNG_FILTER_UP 0x20 +#define PNG_FILTER_AVG 0x40 +#define PNG_FILTER_PAETH 0x80 +#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ + PNG_FILTER_AVG | PNG_FILTER_PAETH) + +/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. + * These defines should NOT be changed. + */ +#define PNG_FILTER_VALUE_NONE 0 +#define PNG_FILTER_VALUE_SUB 1 +#define PNG_FILTER_VALUE_UP 2 +#define PNG_FILTER_VALUE_AVG 3 +#define PNG_FILTER_VALUE_PAETH 4 +#define PNG_FILTER_VALUE_LAST 5 + +#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* EXPERIMENTAL */ +/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ + * defines, either the default (minimum-sum-of-absolute-differences), or + * the experimental method (weighted-minimum-sum-of-absolute-differences). + * + * Weights are factors >= 1.0, indicating how important it is to keep the + * filter type consistent between rows. Larger numbers mean the current + * filter is that many times as likely to be the same as the "num_weights" + * previous filters. This is cumulative for each previous row with a weight. + * There needs to be "num_weights" values in "filter_weights", or it can be + * NULL if the weights aren't being specified. Weights have no influence on + * the selection of the first row filter. Well chosen weights can (in theory) + * improve the compression for a given image. + * + * Costs are factors >= 1.0 indicating the relative decoding costs of a + * filter type. Higher costs indicate more decoding expense, and are + * therefore less likely to be selected over a filter with lower computational + * costs. There needs to be a value in "filter_costs" for each valid filter + * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't + * setting the costs. Costs try to improve the speed of decompression without + * unduly increasing the compressed image size. + * + * A negative weight or cost indicates the default value is to be used, and + * values in the range [0.0, 1.0) indicate the value is to remain unchanged. + * The default values for both weights and costs are currently 1.0, but may + * change if good general weighting/cost heuristics can be found. If both + * the weights and costs are set to 1.0, this degenerates the WEIGHTED method + * to the UNWEIGHTED method, but with added encoding time/computation. + */ +PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structrp png_ptr, + int heuristic_method, int num_weights, png_const_doublep filter_weights, + png_const_doublep filter_costs)) +PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, + (png_structrp png_ptr, int heuristic_method, int num_weights, + png_const_fixed_point_p filter_weights, + png_const_fixed_point_p filter_costs)) +#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ + +/* Heuristic used for row filter selection. These defines should NOT be + * changed. + */ +#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ +#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ +#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ +#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ + +#ifdef PNG_WRITE_SUPPORTED +/* Set the library compression level. Currently, valid values range from + * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 + * (0 - no compression, 9 - "maximal" compression). Note that tests have + * shown that zlib compression levels 3-6 usually perform as well as level 9 + * for PNG images, and do considerably fewer caclulations. In the future, + * these values may not correspond directly to the zlib compression levels. + */ +PNG_EXPORT(69, void, png_set_compression_level, (png_structrp png_ptr, + int level)); + +PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structrp png_ptr, + int mem_level)); + +PNG_EXPORT(71, void, png_set_compression_strategy, (png_structrp png_ptr, + int strategy)); + +/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a + * smaller value of window_bits if it can do so safely. + */ +PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structrp png_ptr, + int window_bits)); + +PNG_EXPORT(73, void, png_set_compression_method, (png_structrp png_ptr, + int method)); +#endif + +#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED +/* Also set zlib parameters for compressing non-IDAT chunks */ +PNG_EXPORT(222, void, png_set_text_compression_level, (png_structrp png_ptr, + int level)); + +PNG_EXPORT(223, void, png_set_text_compression_mem_level, (png_structrp png_ptr, + int mem_level)); + +PNG_EXPORT(224, void, png_set_text_compression_strategy, (png_structrp png_ptr, + int strategy)); + +/* If PNG_WRITE_OPTIMIZE_CMF_SUPPORTED is defined, libpng will use a + * smaller value of window_bits if it can do so safely. + */ +PNG_EXPORT(225, void, png_set_text_compression_window_bits, + (png_structrp png_ptr, int window_bits)); + +PNG_EXPORT(226, void, png_set_text_compression_method, (png_structrp png_ptr, + int method)); +#endif /* PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */ + +/* These next functions are called for input/output, memory, and error + * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, + * and call standard C I/O routines such as fread(), fwrite(), and + * fprintf(). These functions can be made to use other I/O routines + * at run time for those applications that need to handle I/O in a + * different manner by calling png_set_???_fn(). See libpng-manual.txt for + * more information. + */ + +#ifdef PNG_STDIO_SUPPORTED +/* Initialize the input/output for the PNG file to the default functions. */ +PNG_EXPORT(74, void, png_init_io, (png_structrp png_ptr, png_FILE_p fp)); +#endif + +/* Replace the (error and abort), and warning functions with user + * supplied functions. If no messages are to be printed you must still + * write and use replacement functions. The replacement error_fn should + * still do a longjmp to the last setjmp location if you are using this + * method of error handling. If error_fn or warning_fn is NULL, the + * default function will be used. + */ + +PNG_EXPORT(75, void, png_set_error_fn, (png_structrp png_ptr, + png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); + +/* Return the user pointer associated with the error functions */ +PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structrp png_ptr)); + +/* Replace the default data output functions with a user supplied one(s). + * If buffered output is not used, then output_flush_fn can be set to NULL. + * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time + * output_flush_fn will be ignored (and thus can be NULL). + * It is probably a mistake to use NULL for output_flush_fn if + * write_data_fn is not also NULL unless you have built libpng with + * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's + * default flush function, which uses the standard *FILE structure, will + * be used. + */ +PNG_EXPORT(77, void, png_set_write_fn, (png_structrp png_ptr, png_voidp io_ptr, + png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); + +/* Replace the default data input function with a user supplied one. */ +PNG_EXPORT(78, void, png_set_read_fn, (png_structrp png_ptr, png_voidp io_ptr, + png_rw_ptr read_data_fn)); + +/* Return the user pointer associated with the I/O functions */ +PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_const_structrp png_ptr)); + +PNG_EXPORT(80, void, png_set_read_status_fn, (png_structrp png_ptr, + png_read_status_ptr read_row_fn)); + +PNG_EXPORT(81, void, png_set_write_status_fn, (png_structrp png_ptr, + png_write_status_ptr write_row_fn)); + +#ifdef PNG_USER_MEM_SUPPORTED +/* Replace the default memory allocation functions with user supplied one(s). */ +PNG_EXPORT(82, void, png_set_mem_fn, (png_structrp png_ptr, png_voidp mem_ptr, + png_malloc_ptr malloc_fn, png_free_ptr free_fn)); +/* Return the user pointer associated with the memory functions */ +PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structrp png_ptr)); +#endif + +#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED +PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structrp png_ptr, + png_user_transform_ptr read_user_transform_fn)); +#endif + +#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED +PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structrp png_ptr, + png_user_transform_ptr write_user_transform_fn)); +#endif + +#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED +PNG_EXPORT(86, void, png_set_user_transform_info, (png_structrp png_ptr, + png_voidp user_transform_ptr, int user_transform_depth, + int user_transform_channels)); +/* Return the user pointer associated with the user transform functions */ +PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr, + (png_const_structrp png_ptr)); +#endif + +#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED +/* Return information about the row currently being processed. Note that these + * APIs do not fail but will return unexpected results if called outside a user + * transform callback. Also note that when transforming an interlaced image the + * row number is the row number within the sub-image of the interlace pass, so + * the value will increase to the height of the sub-image (not the full image) + * then reset to 0 for the next pass. + * + * Use PNG_ROW_FROM_PASS_ROW(row, pass) and PNG_COL_FROM_PASS_COL(col, pass) to + * find the output pixel (x,y) given an interlaced sub-image pixel + * (row,col,pass). (See below for these macros.) + */ +PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structrp)); +PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structrp)); +#endif + +#ifdef PNG_READ_USER_CHUNKS_SUPPORTED +/* This callback is called only for *unknown* chunks. If + * PNG_HANDLE_AS_UNKNOWN_SUPPORTED is set then it is possible to set known + * chunks to be treated as unknown, however in this case the callback must do + * any processing required by the chunk (e.g. by calling the appropriate + * png_set_ APIs.) + * + * There is no write support - on write, by default, all the chunks in the + * 'unknown' list are written in the specified position. + * + * The integer return from the callback function is interpreted thus: + * + * negative: An error occured, png_chunk_error will be called. + * zero: The chunk was not handled, the chunk will be saved. A critical + * chunk will cause an error at this point unless it is to be saved. + * positive: The chunk was handled, libpng will ignore/discard it. + * + * See "INTERACTION WTIH USER CHUNK CALLBACKS" below for important notes about + * how this behavior will change in libpng 1.7 + */ +PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structrp png_ptr, + png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); +#endif + +#ifdef PNG_USER_CHUNKS_SUPPORTED +PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structrp png_ptr)); +#endif + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +/* Sets the function callbacks for the push reader, and a pointer to a + * user-defined structure available to the callback functions. + */ +PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structrp png_ptr, + png_voidp progressive_ptr, png_progressive_info_ptr info_fn, + png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); + +/* Returns the user pointer associated with the push read functions */ +PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, + (png_const_structrp png_ptr)); + +/* Function to be called when data becomes available */ +PNG_EXPORT(92, void, png_process_data, (png_structrp png_ptr, + png_inforp info_ptr, png_bytep buffer, png_size_t buffer_size)); + +/* A function which may be called *only* within png_process_data to stop the + * processing of any more data. The function returns the number of bytes + * remaining, excluding any that libpng has cached internally. A subsequent + * call to png_process_data must supply these bytes again. If the argument + * 'save' is set to true the routine will first save all the pending data and + * will always return 0. + */ +PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structrp, int save)); + +/* A function which may be called *only* outside (after) a call to + * png_process_data. It returns the number of bytes of data to skip in the + * input. Normally it will return 0, but if it returns a non-zero value the + * application must skip than number of bytes of input data and pass the + * following data to the next call to png_process_data. + */ +PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structrp)); + +#ifdef PNG_READ_INTERLACING_SUPPORTED +/* Function that combines rows. 'new_row' is a flag that should come from + * the callback and be non-NULL if anything needs to be done; the library + * stores its own version of the new data internally and ignores the passed + * in value. + */ +PNG_EXPORT(93, void, png_progressive_combine_row, (png_const_structrp png_ptr, + png_bytep old_row, png_const_bytep new_row)); +#endif /* PNG_READ_INTERLACING_SUPPORTED */ +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ + +PNG_EXPORTA(94, png_voidp, png_malloc, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); +/* Added at libpng version 1.4.0 */ +PNG_EXPORTA(95, png_voidp, png_calloc, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); + +/* Added at libpng version 1.2.4 */ +PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); + +/* Frees a pointer allocated by png_malloc() */ +PNG_EXPORT(97, void, png_free, (png_const_structrp png_ptr, png_voidp ptr)); + +/* Free data that was allocated internally */ +PNG_EXPORT(98, void, png_free_data, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 free_me, int num)); + +/* Reassign responsibility for freeing existing data, whether allocated + * by libpng or by the application; this works on the png_info structure passed + * in, it does not change the state for other png_info structures. + * + * It is unlikely that this function works correctly as of 1.6.0 and using it + * may result either in memory leaks or double free of allocated data. + */ +PNG_EXPORTA(99, void, png_data_freer, (png_const_structrp png_ptr, + png_inforp info_ptr, int freer, png_uint_32 mask), PNG_DEPRECATED); + +/* Assignments for png_data_freer */ +#define PNG_DESTROY_WILL_FREE_DATA 1 +#define PNG_SET_WILL_FREE_DATA 1 +#define PNG_USER_WILL_FREE_DATA 2 +/* Flags for png_ptr->free_me and info_ptr->free_me */ +#define PNG_FREE_HIST 0x0008 +#define PNG_FREE_ICCP 0x0010 +#define PNG_FREE_SPLT 0x0020 +#define PNG_FREE_ROWS 0x0040 +#define PNG_FREE_PCAL 0x0080 +#define PNG_FREE_SCAL 0x0100 +#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +# define PNG_FREE_UNKN 0x0200 +#endif +/* PNG_FREE_LIST 0x0400 removed in 1.6.0 because it is ignored */ +#define PNG_FREE_PLTE 0x1000 +#define PNG_FREE_TRNS 0x2000 +#define PNG_FREE_TEXT 0x4000 +#define PNG_FREE_ALL 0x7fff +#define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ + +#ifdef PNG_USER_MEM_SUPPORTED +PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_const_structrp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED PNG_DEPRECATED); +PNG_EXPORTA(101, void, png_free_default, (png_const_structrp png_ptr, + png_voidp ptr), PNG_DEPRECATED); +#endif + +#ifdef PNG_ERROR_TEXT_SUPPORTED +/* Fatal error in PNG image of libpng - can't continue */ +PNG_EXPORTA(102, void, png_error, (png_const_structrp png_ptr, + png_const_charp error_message), PNG_NORETURN); + +/* The same, but the chunk name is prepended to the error string. */ +PNG_EXPORTA(103, void, png_chunk_error, (png_const_structrp png_ptr, + png_const_charp error_message), PNG_NORETURN); + +#else +/* Fatal error in PNG image of libpng - can't continue */ +PNG_EXPORTA(104, void, png_err, (png_const_structrp png_ptr), PNG_NORETURN); +#endif + +#ifdef PNG_WARNINGS_SUPPORTED +/* Non-fatal error in libpng. Can continue, but may have a problem. */ +PNG_EXPORT(105, void, png_warning, (png_const_structrp png_ptr, + png_const_charp warning_message)); + +/* Non-fatal error in libpng, chunk name is prepended to message. */ +PNG_EXPORT(106, void, png_chunk_warning, (png_const_structrp png_ptr, + png_const_charp warning_message)); +#endif + +#ifdef PNG_BENIGN_ERRORS_SUPPORTED +/* Benign error in libpng. Can continue, but may have a problem. + * User can choose whether to handle as a fatal error or as a warning. */ +PNG_EXPORT(107, void, png_benign_error, (png_const_structrp png_ptr, + png_const_charp warning_message)); + +#ifdef PNG_READ_SUPPORTED +/* Same, chunk name is prepended to message (only during read) */ +PNG_EXPORT(108, void, png_chunk_benign_error, (png_const_structrp png_ptr, + png_const_charp warning_message)); +#endif + +PNG_EXPORT(109, void, png_set_benign_errors, + (png_structrp png_ptr, int allowed)); +#else +# ifdef PNG_ALLOW_BENIGN_ERRORS +# define png_benign_error png_warning +# define png_chunk_benign_error png_chunk_warning +# else +# define png_benign_error png_error +# define png_chunk_benign_error png_chunk_error +# endif +#endif + +/* The png_set_ functions are for storing values in the png_info_struct. + * Similarly, the png_get_ calls are used to read values from the + * png_info_struct, either storing the parameters in the passed variables, or + * setting pointers into the png_info_struct where the data is stored. The + * png_get_ functions return a non-zero value if the data was available + * in info_ptr, or return zero and do not change any of the parameters if the + * data was not available. + * + * These functions should be used instead of directly accessing png_info + * to avoid problems with future changes in the size and internal layout of + * png_info_struct. + */ +/* Returns "flag" if chunk data is valid in info_ptr. */ +PNG_EXPORT(110, png_uint_32, png_get_valid, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 flag)); + +/* Returns number of bytes needed to hold a transformed row. */ +PNG_EXPORT(111, png_size_t, png_get_rowbytes, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +#ifdef PNG_INFO_IMAGE_SUPPORTED +/* Returns row_pointers, which is an array of pointers to scanlines that was + * returned from png_read_png(). + */ +PNG_EXPORT(112, png_bytepp, png_get_rows, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Set row_pointers, which is an array of pointers to scanlines for use + * by png_write_png(). + */ +PNG_EXPORT(113, void, png_set_rows, (png_const_structrp png_ptr, + png_inforp info_ptr, png_bytepp row_pointers)); +#endif + +/* Returns number of color channels in image. */ +PNG_EXPORT(114, png_byte, png_get_channels, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +#ifdef PNG_EASY_ACCESS_SUPPORTED +/* Returns image width in pixels. */ +PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image height in pixels. */ +PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image bit_depth. */ +PNG_EXPORT(117, png_byte, png_get_bit_depth, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image color_type. */ +PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image filter_type. */ +PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image interlace_type. */ +PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image compression_type. */ +PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); + +/* Returns image resolution in pixels per meter, from pHYs chunk data. */ +PNG_EXPORT(122, png_uint_32, png_get_pixels_per_meter, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(123, png_uint_32, png_get_x_pixels_per_meter, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(124, png_uint_32, png_get_y_pixels_per_meter, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +/* Returns pixel aspect ratio, computed from pHYs chunk data. */ +PNG_FP_EXPORT(125, float, png_get_pixel_aspect_ratio, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +PNG_FIXED_EXPORT(210, png_fixed_point, png_get_pixel_aspect_ratio_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) + +/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ +PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(128, png_int_32, png_get_x_offset_microns, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); +PNG_EXPORT(129, png_int_32, png_get_y_offset_microns, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +#endif /* PNG_EASY_ACCESS_SUPPORTED */ + +#ifdef PNG_READ_SUPPORTED +/* Returns pointer to signature string read from PNG header */ +PNG_EXPORT(130, png_const_bytep, png_get_signature, (png_const_structrp png_ptr, + png_const_inforp info_ptr)); +#endif + +#ifdef PNG_bKGD_SUPPORTED +PNG_EXPORT(131, png_uint_32, png_get_bKGD, (png_const_structrp png_ptr, + png_inforp info_ptr, png_color_16p *background)); +#endif + +#ifdef PNG_bKGD_SUPPORTED +PNG_EXPORT(132, void, png_set_bKGD, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_color_16p background)); +#endif + +#ifdef PNG_cHRM_SUPPORTED +PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *white_x, double *white_y, double *red_x, + double *red_y, double *green_x, double *green_y, double *blue_x, + double *blue_y)) +PNG_FP_EXPORT(230, png_uint_32, png_get_cHRM_XYZ, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *red_X, double *red_Y, double *red_Z, + double *green_X, double *green_Y, double *green_Z, double *blue_X, + double *blue_Y, double *blue_Z)) +PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_white_x, png_fixed_point *int_white_y, + png_fixed_point *int_red_x, png_fixed_point *int_red_y, + png_fixed_point *int_green_x, png_fixed_point *int_green_y, + png_fixed_point *int_blue_x, png_fixed_point *int_blue_y)) +PNG_FIXED_EXPORT(231, png_uint_32, png_get_cHRM_XYZ_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_red_X, png_fixed_point *int_red_Y, + png_fixed_point *int_red_Z, png_fixed_point *int_green_X, + png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, + png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, + png_fixed_point *int_blue_Z)) +#endif + +#ifdef PNG_cHRM_SUPPORTED +PNG_FP_EXPORT(135, void, png_set_cHRM, (png_const_structrp png_ptr, + png_inforp info_ptr, + double white_x, double white_y, double red_x, double red_y, double green_x, + double green_y, double blue_x, double blue_y)) +PNG_FP_EXPORT(232, void, png_set_cHRM_XYZ, (png_const_structrp png_ptr, + png_inforp info_ptr, double red_X, double red_Y, double red_Z, + double green_X, double green_Y, double green_Z, double blue_X, + double blue_Y, double blue_Z)) +PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_white_x, + png_fixed_point int_white_y, png_fixed_point int_red_x, + png_fixed_point int_red_y, png_fixed_point int_green_x, + png_fixed_point int_green_y, png_fixed_point int_blue_x, + png_fixed_point int_blue_y)) +PNG_FIXED_EXPORT(233, void, png_set_cHRM_XYZ_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_red_X, png_fixed_point int_red_Y, + png_fixed_point int_red_Z, png_fixed_point int_green_X, + png_fixed_point int_green_Y, png_fixed_point int_green_Z, + png_fixed_point int_blue_X, png_fixed_point int_blue_Y, + png_fixed_point int_blue_Z)) +#endif + +#ifdef PNG_gAMA_SUPPORTED +PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA, (png_const_structrp png_ptr, + png_const_inforp info_ptr, double *file_gamma)) +PNG_FIXED_EXPORT(138, png_uint_32, png_get_gAMA_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, + png_fixed_point *int_file_gamma)) +#endif + +#ifdef PNG_gAMA_SUPPORTED +PNG_FP_EXPORT(139, void, png_set_gAMA, (png_const_structrp png_ptr, + png_inforp info_ptr, double file_gamma)) +PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, png_fixed_point int_file_gamma)) +#endif + +#ifdef PNG_hIST_SUPPORTED +PNG_EXPORT(141, png_uint_32, png_get_hIST, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_16p *hist)); +#endif + +#ifdef PNG_hIST_SUPPORTED +PNG_EXPORT(142, void, png_set_hIST, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_uint_16p hist)); +#endif + +PNG_EXPORT(143, png_uint_32, png_get_IHDR, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *width, png_uint_32 *height, + int *bit_depth, int *color_type, int *interlace_method, + int *compression_method, int *filter_method)); + +PNG_EXPORT(144, void, png_set_IHDR, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, + int color_type, int interlace_method, int compression_method, + int filter_method)); + +#ifdef PNG_oFFs_SUPPORTED +PNG_EXPORT(145, png_uint_32, png_get_oFFs, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, + int *unit_type)); +#endif + +#ifdef PNG_oFFs_SUPPORTED +PNG_EXPORT(146, void, png_set_oFFs, (png_const_structrp png_ptr, + png_inforp info_ptr, png_int_32 offset_x, png_int_32 offset_y, + int unit_type)); +#endif + +#ifdef PNG_pCAL_SUPPORTED +PNG_EXPORT(147, png_uint_32, png_get_pCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, png_charp *purpose, png_int_32 *X0, + png_int_32 *X1, int *type, int *nparams, png_charp *units, + png_charpp *params)); +#endif + +#ifdef PNG_pCAL_SUPPORTED +PNG_EXPORT(148, void, png_set_pCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_charp purpose, png_int_32 X0, png_int_32 X1, + int type, int nparams, png_const_charp units, png_charpp params)); +#endif + +#ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(149, png_uint_32, png_get_pHYs, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, + int *unit_type)); +#endif + +#ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(150, void, png_set_pHYs, (png_const_structrp png_ptr, + png_inforp info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); +#endif + +PNG_EXPORT(151, png_uint_32, png_get_PLTE, (png_const_structrp png_ptr, + png_inforp info_ptr, png_colorp *palette, int *num_palette)); + +PNG_EXPORT(152, void, png_set_PLTE, (png_structrp png_ptr, + png_inforp info_ptr, png_const_colorp palette, int num_palette)); + +#ifdef PNG_sBIT_SUPPORTED +PNG_EXPORT(153, png_uint_32, png_get_sBIT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_color_8p *sig_bit)); +#endif + +#ifdef PNG_sBIT_SUPPORTED +PNG_EXPORT(154, void, png_set_sBIT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_color_8p sig_bit)); +#endif + +#ifdef PNG_sRGB_SUPPORTED +PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structrp png_ptr, + png_const_inforp info_ptr, int *file_srgb_intent)); +#endif + +#ifdef PNG_sRGB_SUPPORTED +PNG_EXPORT(156, void, png_set_sRGB, (png_const_structrp png_ptr, + png_inforp info_ptr, int srgb_intent)); +PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_const_structrp png_ptr, + png_inforp info_ptr, int srgb_intent)); +#endif + +#ifdef PNG_iCCP_SUPPORTED +PNG_EXPORT(158, png_uint_32, png_get_iCCP, (png_const_structrp png_ptr, + png_inforp info_ptr, png_charpp name, int *compression_type, + png_bytepp profile, png_uint_32 *proflen)); +#endif + +#ifdef PNG_iCCP_SUPPORTED +PNG_EXPORT(159, void, png_set_iCCP, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_charp name, int compression_type, + png_const_bytep profile, png_uint_32 proflen)); +#endif + +#ifdef PNG_sPLT_SUPPORTED +PNG_EXPORT(160, int, png_get_sPLT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_sPLT_tpp entries)); +#endif + +#ifdef PNG_sPLT_SUPPORTED +PNG_EXPORT(161, void, png_set_sPLT, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_sPLT_tp entries, int nentries)); +#endif + +#ifdef PNG_TEXT_SUPPORTED +/* png_get_text also returns the number of text chunks in *num_text */ +PNG_EXPORT(162, int, png_get_text, (png_const_structrp png_ptr, + png_inforp info_ptr, png_textp *text_ptr, int *num_text)); +#endif + +/* Note while png_set_text() will accept a structure whose text, + * language, and translated keywords are NULL pointers, the structure + * returned by png_get_text will always contain regular + * zero-terminated C strings. They might be empty strings but + * they will never be NULL pointers. + */ + +#ifdef PNG_TEXT_SUPPORTED +PNG_EXPORT(163, void, png_set_text, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_textp text_ptr, int num_text)); +#endif + +#ifdef PNG_tIME_SUPPORTED +PNG_EXPORT(164, png_uint_32, png_get_tIME, (png_const_structrp png_ptr, + png_inforp info_ptr, png_timep *mod_time)); +#endif + +#ifdef PNG_tIME_SUPPORTED +PNG_EXPORT(165, void, png_set_tIME, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_timep mod_time)); +#endif + +#ifdef PNG_tRNS_SUPPORTED +PNG_EXPORT(166, png_uint_32, png_get_tRNS, (png_const_structrp png_ptr, + png_inforp info_ptr, png_bytep *trans_alpha, int *num_trans, + png_color_16p *trans_color)); +#endif + +#ifdef PNG_tRNS_SUPPORTED +PNG_EXPORT(167, void, png_set_tRNS, (png_structrp png_ptr, + png_inforp info_ptr, png_const_bytep trans_alpha, int num_trans, + png_const_color_16p trans_color)); +#endif + +#ifdef PNG_sCAL_SUPPORTED +PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, (png_const_structrp png_ptr, + png_const_inforp info_ptr, int *unit, double *width, double *height)) +#if defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ + defined(PNG_FLOATING_POINT_SUPPORTED) +/* NOTE: this API is currently implemented using floating point arithmetic, + * consequently it can only be used on systems with floating point support. + * In any case the range of values supported by png_fixed_point is small and it + * is highly recommended that png_get_sCAL_s be used instead. + */ +PNG_FIXED_EXPORT(214, png_uint_32, png_get_sCAL_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, + png_fixed_point *width, png_fixed_point *height)) +#endif +PNG_EXPORT(169, png_uint_32, png_get_sCAL_s, + (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, + png_charpp swidth, png_charpp sheight)); + +PNG_FP_EXPORT(170, void, png_set_sCAL, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, double width, double height)) +PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, png_fixed_point width, + png_fixed_point height)) +PNG_EXPORT(171, void, png_set_sCAL_s, (png_const_structrp png_ptr, + png_inforp info_ptr, int unit, + png_const_charp swidth, png_const_charp sheight)); +#endif /* PNG_sCAL_SUPPORTED */ + +#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED +/* Provide the default handling for all unknown chunks or, optionally, for + * specific unknown chunks. + * + * NOTE: prior to 1.6.0 the handling specified for particular chunks on read was + * ignored and the default was used, the per-chunk setting only had an effect on + * write. If you wish to have chunk-specific handling on read in code that must + * work on earlier versions you must use a user chunk callback to specify the + * desired handling (keep or discard.) + * + * The 'keep' parameter is a PNG_HANDLE_CHUNK_ value as listed below. The + * parameter is interpreted as follows: + * + * READ: + * PNG_HANDLE_CHUNK_AS_DEFAULT: + * Known chunks: do normal libpng processing, do not keep the chunk (but + * see the comments below about PNG_HANDLE_AS_UNKNOWN_SUPPORTED) + * Unknown chunks: for a specific chunk use the global default, when used + * as the default discard the chunk data. + * PNG_HANDLE_CHUNK_NEVER: + * Discard the chunk data. + * PNG_HANDLE_CHUNK_IF_SAFE: + * Keep the chunk data if the chunk is not critical else raise a chunk + * error. + * PNG_HANDLE_CHUNK_ALWAYS: + * Keep the chunk data. + * + * If the chunk data is saved it can be retrieved using png_get_unknown_chunks, + * below. Notice that specifying "AS_DEFAULT" as a global default is equivalent + * to specifying "NEVER", however when "AS_DEFAULT" is used for specific chunks + * it simply resets the behavior to the libpng default. + * + * INTERACTION WTIH USER CHUNK CALLBACKS: + * The per-chunk handling is always used when there is a png_user_chunk_ptr + * callback and the callback returns 0; the chunk is then always stored *unless* + * it is critical and the per-chunk setting is other than ALWAYS. Notice that + * the global default is *not* used in this case. (In effect the per-chunk + * value is incremented to at least IF_SAFE.) + * + * IMPORTANT NOTE: this behavior will change in libpng 1.7 - the global and + * per-chunk defaults will be honored. If you want to preserve the current + * behavior when your callback returns 0 you must set PNG_HANDLE_CHUNK_IF_SAFE + * as the default - if you don't do this libpng 1.6 will issue a warning. + * + * If you want unhandled unknown chunks to be discarded in libpng 1.6 and + * earlier simply return '1' (handled). + * + * PNG_HANDLE_AS_UNKNOWN_SUPPORTED: + * If this is *not* set known chunks will always be handled by libpng and + * will never be stored in the unknown chunk list. Known chunks listed to + * png_set_keep_unknown_chunks will have no effect. If it is set then known + * chunks listed with a keep other than AS_DEFAULT will *never* be processed + * by libpng, in addition critical chunks must either be processed by the + * callback or saved. + * + * The IHDR and IEND chunks must not be listed. Because this turns off the + * default handling for chunks that would otherwise be recognized the + * behavior of libpng transformations may well become incorrect! + * + * WRITE: + * When writing chunks the options only apply to the chunks specified by + * png_set_unknown_chunks (below), libpng will *always* write known chunks + * required by png_set_ calls and will always write the core critical chunks + * (as required for PLTE). + * + * Each chunk in the png_set_unknown_chunks list is looked up in the + * png_set_keep_unknown_chunks list to find the keep setting, this is then + * interpreted as follows: + * + * PNG_HANDLE_CHUNK_AS_DEFAULT: + * Write safe-to-copy chunks and write other chunks if the global + * default is set to _ALWAYS, otherwise don't write this chunk. + * PNG_HANDLE_CHUNK_NEVER: + * Do not write the chunk. + * PNG_HANDLE_CHUNK_IF_SAFE: + * Write the chunk if it is safe-to-copy, otherwise do not write it. + * PNG_HANDLE_CHUNK_ALWAYS: + * Write the chunk. + * + * Note that the default behavior is effectively the opposite of the read case - + * in read unknown chunks are not stored by default, in write they are written + * by default. Also the behavior of PNG_HANDLE_CHUNK_IF_SAFE is very different + * - on write the safe-to-copy bit is checked, on read the critical bit is + * checked and on read if the chunk is critical an error will be raised. + * + * num_chunks: + * =========== + * If num_chunks is positive, then the "keep" parameter specifies the manner + * for handling only those chunks appearing in the chunk_list array, + * otherwise the chunk list array is ignored. + * + * If num_chunks is 0 the "keep" parameter specifies the default behavior for + * unknown chunks, as described above. + * + * If num_chunks is negative, then the "keep" parameter specifies the manner + * for handling all unknown chunks plus all chunks recognized by libpng + * except for the IHDR, PLTE, tRNS, IDAT, and IEND chunks (which continue to + * be processed by libpng. + */ +PNG_EXPORT(172, void, png_set_keep_unknown_chunks, (png_structrp png_ptr, + int keep, png_const_bytep chunk_list, int num_chunks)); + +/* The "keep" PNG_HANDLE_CHUNK_ parameter for the specified chunk is returned; + * the result is therefore true (non-zero) if special handling is required, + * false for the default handling. + */ +PNG_EXPORT(173, int, png_handle_as_unknown, (png_const_structrp png_ptr, + png_const_bytep chunk_name)); +#endif + +#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +PNG_EXPORT(174, void, png_set_unknown_chunks, (png_const_structrp png_ptr, + png_inforp info_ptr, png_const_unknown_chunkp unknowns, + int num_unknowns)); + /* NOTE: prior to 1.6.0 this routine set the 'location' field of the added + * unknowns to the location currently stored in the png_struct. This is + * invariably the wrong value on write. To fix this call the following API + * for each chunk in the list with the correct location. If you know your + * code won't be compiled on earlier versions you can rely on + * png_set_unknown_chunks(write-ptr, png_get_unknown_chunks(read-ptr)) doing + * the correct thing. + */ + +PNG_EXPORT(175, void, png_set_unknown_chunk_location, + (png_const_structrp png_ptr, png_inforp info_ptr, int chunk, int location)); + +PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structrp png_ptr, + png_inforp info_ptr, png_unknown_chunkpp entries)); +#endif + +/* Png_free_data() will turn off the "valid" flag for anything it frees. + * If you need to turn it off for a chunk that your application has freed, + * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); + */ +PNG_EXPORT(177, void, png_set_invalid, (png_const_structrp png_ptr, + png_inforp info_ptr, int mask)); + +#ifdef PNG_INFO_IMAGE_SUPPORTED +/* The "params" pointer is currently not used and is for future expansion. */ +PNG_EXPORT(178, void, png_read_png, (png_structrp png_ptr, png_inforp info_ptr, + int transforms, png_voidp params)); +PNG_EXPORT(179, void, png_write_png, (png_structrp png_ptr, png_inforp info_ptr, + int transforms, png_voidp params)); +#endif + +PNG_EXPORT(180, png_const_charp, png_get_copyright, + (png_const_structrp png_ptr)); +PNG_EXPORT(181, png_const_charp, png_get_header_ver, + (png_const_structrp png_ptr)); +PNG_EXPORT(182, png_const_charp, png_get_header_version, + (png_const_structrp png_ptr)); +PNG_EXPORT(183, png_const_charp, png_get_libpng_ver, + (png_const_structrp png_ptr)); + +#ifdef PNG_MNG_FEATURES_SUPPORTED +PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structrp png_ptr, + png_uint_32 mng_features_permitted)); +#endif + +/* For use in png_set_keep_unknown, added to version 1.2.6 */ +#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 +#define PNG_HANDLE_CHUNK_NEVER 1 +#define PNG_HANDLE_CHUNK_IF_SAFE 2 +#define PNG_HANDLE_CHUNK_ALWAYS 3 +#define PNG_HANDLE_CHUNK_LAST 4 + +/* Strip the prepended error numbers ("#nnn ") from error and warning + * messages before passing them to the error or warning handler. + */ +#ifdef PNG_ERROR_NUMBERS_SUPPORTED +PNG_EXPORT(185, void, png_set_strip_error_numbers, (png_structrp png_ptr, + png_uint_32 strip_mode)); +#endif + +/* Added in libpng-1.2.6 */ +#ifdef PNG_SET_USER_LIMITS_SUPPORTED +PNG_EXPORT(186, void, png_set_user_limits, (png_structrp png_ptr, + png_uint_32 user_width_max, png_uint_32 user_height_max)); +PNG_EXPORT(187, png_uint_32, png_get_user_width_max, + (png_const_structrp png_ptr)); +PNG_EXPORT(188, png_uint_32, png_get_user_height_max, + (png_const_structrp png_ptr)); +/* Added in libpng-1.4.0 */ +PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structrp png_ptr, + png_uint_32 user_chunk_cache_max)); +PNG_EXPORT(190, png_uint_32, png_get_chunk_cache_max, + (png_const_structrp png_ptr)); +/* Added in libpng-1.4.1 */ +PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structrp png_ptr, + png_alloc_size_t user_chunk_cache_max)); +PNG_EXPORT(192, png_alloc_size_t, png_get_chunk_malloc_max, + (png_const_structrp png_ptr)); +#endif + +#if defined(PNG_INCH_CONVERSIONS_SUPPORTED) +PNG_EXPORT(193, png_uint_32, png_get_pixels_per_inch, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +PNG_EXPORT(194, png_uint_32, png_get_x_pixels_per_inch, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +PNG_EXPORT(195, png_uint_32, png_get_y_pixels_per_inch, + (png_const_structrp png_ptr, png_const_inforp info_ptr)); + +PNG_FP_EXPORT(196, float, png_get_x_offset_inches, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ +PNG_FIXED_EXPORT(211, png_fixed_point, png_get_x_offset_inches_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +#endif + +PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structrp png_ptr, + png_const_inforp info_ptr)) +#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ +PNG_FIXED_EXPORT(212, png_fixed_point, png_get_y_offset_inches_fixed, + (png_const_structrp png_ptr, png_const_inforp info_ptr)) +#endif + +# ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structrp png_ptr, + png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, + int *unit_type)); +# endif /* PNG_pHYs_SUPPORTED */ +#endif /* PNG_INCH_CONVERSIONS_SUPPORTED */ + +/* Added in libpng-1.4.0 */ +#ifdef PNG_IO_STATE_SUPPORTED +PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_const_structrp png_ptr)); + +/* Removed from libpng 1.6; use png_get_io_chunk_type. */ +PNG_REMOVED(200, png_const_bytep, png_get_io_chunk_name, (png_structrp png_ptr), + PNG_DEPRECATED) + +PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, + (png_const_structrp png_ptr)); + +/* The flags returned by png_get_io_state() are the following: */ +# define PNG_IO_NONE 0x0000 /* no I/O at this moment */ +# define PNG_IO_READING 0x0001 /* currently reading */ +# define PNG_IO_WRITING 0x0002 /* currently writing */ +# define PNG_IO_SIGNATURE 0x0010 /* currently at the file signature */ +# define PNG_IO_CHUNK_HDR 0x0020 /* currently at the chunk header */ +# define PNG_IO_CHUNK_DATA 0x0040 /* currently at the chunk data */ +# define PNG_IO_CHUNK_CRC 0x0080 /* currently at the chunk crc */ +# define PNG_IO_MASK_OP 0x000f /* current operation: reading/writing */ +# define PNG_IO_MASK_LOC 0x00f0 /* current location: sig/hdr/data/crc */ +#endif /* ?PNG_IO_STATE_SUPPORTED */ + +/* Interlace support. The following macros are always defined so that if + * libpng interlace handling is turned off the macros may be used to handle + * interlaced images within the application. + */ +#define PNG_INTERLACE_ADAM7_PASSES 7 + +/* Two macros to return the first row and first column of the original, + * full, image which appears in a given pass. 'pass' is in the range 0 + * to 6 and the result is in the range 0 to 7. + */ +#define PNG_PASS_START_ROW(pass) (((1&~(pass))<<(3-((pass)>>1)))&7) +#define PNG_PASS_START_COL(pass) (((1& (pass))<<(3-(((pass)+1)>>1)))&7) + +/* A macro to return the offset between pixels in the output row for a pair of + * pixels in the input - effectively the inverse of the 'COL_SHIFT' macro that + * follows. Note that ROW_OFFSET is the offset from one row to the next whereas + * COL_OFFSET is from one column to the next, within a row. + */ +#define PNG_PASS_ROW_OFFSET(pass) ((pass)>2?(8>>(((pass)-1)>>1)):8) +#define PNG_PASS_COL_OFFSET(pass) (1<<((7-(pass))>>1)) + +/* Two macros to help evaluate the number of rows or columns in each + * pass. This is expressed as a shift - effectively log2 of the number or + * rows or columns in each 8x8 tile of the original image. + */ +#define PNG_PASS_ROW_SHIFT(pass) ((pass)>2?(8-(pass))>>1:3) +#define PNG_PASS_COL_SHIFT(pass) ((pass)>1?(7-(pass))>>1:3) + +/* Hence two macros to determine the number of rows or columns in a given + * pass of an image given its height or width. In fact these macros may + * return non-zero even though the sub-image is empty, because the other + * dimension may be empty for a small image. + */ +#define PNG_PASS_ROWS(height, pass) (((height)+(((1<>PNG_PASS_ROW_SHIFT(pass)) +#define PNG_PASS_COLS(width, pass) (((width)+(((1<>PNG_PASS_COL_SHIFT(pass)) + +/* For the reader row callbacks (both progressive and sequential) it is + * necessary to find the row in the output image given a row in an interlaced + * image, so two more macros: + */ +#define PNG_ROW_FROM_PASS_ROW(y_in, pass) \ + (((y_in)<>(((7-(off))-(pass))<<2)) & 0xF) | \ + ((0x01145AF0>>(((7-(off))-(pass))<<2)) & 0xF0)) + +#define PNG_ROW_IN_INTERLACE_PASS(y, pass) \ + ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1) +#define PNG_COL_IN_INTERLACE_PASS(x, pass) \ + ((PNG_PASS_MASK(pass,1) >> ((x)&7)) & 1) + +#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED +/* With these routines we avoid an integer divide, which will be slower on + * most machines. However, it does take more operations than the corresponding + * divide method, so it may be slower on a few RISC systems. There are two + * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. + * + * Note that the rounding factors are NOT supposed to be the same! 128 and + * 32768 are correct for the NODIV code; 127 and 32767 are correct for the + * standard method. + * + * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] + */ + + /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ + +# define png_composite(composite, fg, alpha, bg) \ + { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ + * (png_uint_16)(alpha) \ + + (png_uint_16)(bg)*(png_uint_16)(255 \ + - (png_uint_16)(alpha)) + 128); \ + (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } + +# define png_composite_16(composite, fg, alpha, bg) \ + { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ + * (png_uint_32)(alpha) \ + + (png_uint_32)(bg)*(65535 \ + - (png_uint_32)(alpha)) + 32768); \ + (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } + +#else /* Standard method using integer division */ + +# define png_composite(composite, fg, alpha, bg) \ + (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ + (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ + 127) / 255) + +# define png_composite_16(composite, fg, alpha, bg) \ + (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ + (png_uint_32)(bg)*(png_uint_32)(65535 - (png_uint_32)(alpha)) + \ + 32767) / 65535) +#endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ + +#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(201, png_uint_32, png_get_uint_32, (png_const_bytep buf)); +PNG_EXPORT(202, png_uint_16, png_get_uint_16, (png_const_bytep buf)); +PNG_EXPORT(203, png_int_32, png_get_int_32, (png_const_bytep buf)); +#endif + +PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_const_structrp png_ptr, + png_const_bytep buf)); +/* No png_get_int_16 -- may be added if there's a real need for it. */ + +/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */ +#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(205, void, png_save_uint_32, (png_bytep buf, png_uint_32 i)); +#endif +#ifdef PNG_SAVE_INT_32_SUPPORTED +PNG_EXPORT(206, void, png_save_int_32, (png_bytep buf, png_int_32 i)); +#endif + +/* Place a 16-bit number into a buffer in PNG byte order. + * The parameter is declared unsigned int, not png_uint_16, + * just to avoid potential problems on pre-ANSI C compilers. + */ +#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); +/* No png_save_int_16 -- may be added if there's a real need for it. */ +#endif + +#ifdef PNG_USE_READ_MACROS +/* Inline macros to do direct reads of bytes from the input buffer. + * The png_get_int_32() routine assumes we are using two's complement + * format for negative values, which is almost certainly true. + */ +# define PNG_get_uint_32(buf) \ + (((png_uint_32)(*(buf)) << 24) + \ + ((png_uint_32)(*((buf) + 1)) << 16) + \ + ((png_uint_32)(*((buf) + 2)) << 8) + \ + ((png_uint_32)(*((buf) + 3)))) + + /* From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the + * function) incorrectly returned a value of type png_uint_32. + */ +# define PNG_get_uint_16(buf) \ + ((png_uint_16) \ + (((unsigned int)(*(buf)) << 8) + \ + ((unsigned int)(*((buf) + 1))))) + +# define PNG_get_int_32(buf) \ + ((png_int_32)((*(buf) & 0x80) \ + ? -((png_int_32)((png_get_uint_32(buf) ^ 0xffffffffL) + 1)) \ + : (png_int_32)png_get_uint_32(buf))) + + /* If PNG_PREFIX is defined the same thing as below happens in pnglibconf.h, + * but defining a macro name prefixed with PNG_PREFIX. + */ +# ifndef PNG_PREFIX +# define png_get_uint_32(buf) PNG_get_uint_32(buf) +# define png_get_uint_16(buf) PNG_get_uint_16(buf) +# define png_get_int_32(buf) PNG_get_int_32(buf) +# endif +#else +# ifdef PNG_PREFIX + /* No macros; revert to the (redefined) function */ +# define PNG_get_uint_32 (png_get_uint_32) +# define PNG_get_uint_16 (png_get_uint_16) +# define PNG_get_int_32 (png_get_int_32) +# endif +#endif + +/******************************************************************************* + * SIMPLIFIED API + ******************************************************************************* + * + * Please read the documentation in libpng-manual.txt (TODO: write said + * documentation) if you don't understand what follows. + * + * The simplified API hides the details of both libpng and the PNG file format + * itself. It allows PNG files to be read into a very limited number of + * in-memory bitmap formats or to be written from the same formats. If these + * formats do not accomodate your needs then you can, and should, use the more + * sophisticated APIs above - these support a wide variety of in-memory formats + * and a wide variety of sophisticated transformations to those formats as well + * as a wide variety of APIs to manipulate ancillary information. + * + * To read a PNG file using the simplified API: + * + * 1) Declare a 'png_image' structure (see below) on the stack and set the + * version field to PNG_IMAGE_VERSION. + * 2) Call the appropriate png_image_begin_read... function. + * 3) Set the png_image 'format' member to the required sample format. + * 4) Allocate a buffer for the image and, if required, the color-map. + * 5) Call png_image_finish_read to read the image and, if required, the + * color-map into your buffers. + * + * There are no restrictions on the format of the PNG input itself; all valid + * color types, bit depths, and interlace methods are acceptable, and the + * input image is transformed as necessary to the requested in-memory format + * during the png_image_finish_read() step. The only caveat is that if you + * request a color-mapped image from a PNG that is full-color or makes + * complex use of an alpha channel the transformation is extremely lossy and the + * result may look terrible. + * + * To write a PNG file using the simplified API: + * + * 1) Declare a 'png_image' structure on the stack and memset() it to all zero. + * 2) Initialize the members of the structure that describe the image, setting + * the 'format' member to the format of the image samples. + * 3) Call the appropriate png_image_write... function with a pointer to the + * image and, if necessary, the color-map to write the PNG data. + * + * png_image is a structure that describes the in-memory format of an image + * when it is being read or defines the in-memory format of an image that you + * need to write: + */ +#define PNG_IMAGE_VERSION 1 + +typedef struct png_control *png_controlp; +typedef struct +{ + png_controlp opaque; /* Initialize to NULL, free with png_image_free */ + png_uint_32 version; /* Set to PNG_IMAGE_VERSION */ + png_uint_32 width; /* Image width in pixels (columns) */ + png_uint_32 height; /* Image height in pixels (rows) */ + png_uint_32 format; /* Image format as defined below */ + png_uint_32 flags; /* A bit mask containing informational flags */ + png_uint_32 colormap_entries; + /* Number of entries in the color-map */ + + /* In the event of an error or warning the following field will be set to a + * non-zero value and the 'message' field will contain a '\0' terminated + * string with the libpng error or warning message. If both warnings and + * an error were encountered, only the error is recorded. If there + * are multiple warnings, only the first one is recorded. + * + * The upper 30 bits of this value are reserved, the low two bits contain + * a value as follows: + */ +# define PNG_IMAGE_WARNING 1 +# define PNG_IMAGE_ERROR 2 + /* + * The result is a two bit code such that a value more than 1 indicates + * a failure in the API just called: + * + * 0 - no warning or error + * 1 - warning + * 2 - error + * 3 - error preceded by warning + */ +# define PNG_IMAGE_FAILED(png_cntrl) ((((png_cntrl).warning_or_error)&0x03)>1) + + png_uint_32 warning_or_error; + + char message[64]; +} png_image, *png_imagep; + +/* The samples of the image have one to four channels whose components have + * original values in the range 0 to 1.0: + * + * 1: A single gray or luminance channel (G). + * 2: A gray/luminance channel and an alpha channel (GA). + * 3: Three red, green, blue color channels (RGB). + * 4: Three color channels and an alpha channel (RGBA). + * + * The components are encoded in one of two ways: + * + * a) As a small integer, value 0..255, contained in a single byte. For the + * alpha channel the original value is simply value/255. For the color or + * luminance channels the value is encoded according to the sRGB specification + * and matches the 8-bit format expected by typical display devices. + * + * The color/gray channels are not scaled (pre-multiplied) by the alpha + * channel and are suitable for passing to color management software. + * + * b) As a value in the range 0..65535, contained in a 2-byte integer. All + * channels can be converted to the original value by dividing by 65535; all + * channels are linear. Color channels use the RGB encoding (RGB end-points) of + * the sRGB specification. This encoding is identified by the + * PNG_FORMAT_FLAG_LINEAR flag below. + * + * When the simplified API needs to convert between sRGB and linear colorspaces, + * the actual sRGB transfer curve defined in the sRGB specification (see the + * article at http://en.wikipedia.org/wiki/SRGB) is used, not the gamma=1/2.2 + * approximation used elsewhere in libpng. + * + * When an alpha channel is present it is expected to denote pixel coverage + * of the color or luminance channels and is returned as an associated alpha + * channel: the color/gray channels are scaled (pre-multiplied) by the alpha + * value. + * + * The samples are either contained directly in the image data, between 1 and 8 + * bytes per pixel according to the encoding, or are held in a color-map indexed + * by bytes in the image data. In the case of a color-map the color-map entries + * are individual samples, encoded as above, and the image data has one byte per + * pixel to select the relevant sample from the color-map. + */ + +/* PNG_FORMAT_* + * + * #defines to be used in png_image::format. Each #define identifies a + * particular layout of sample data and, if present, alpha values. There are + * separate defines for each of the two component encodings. + * + * A format is built up using single bit flag values. All combinations are + * valid. Formats can be built up from the flag values or you can use one of + * the predefined values below. When testing formats always use the FORMAT_FLAG + * macros to test for individual features - future versions of the library may + * add new flags. + * + * When reading or writing color-mapped images the format should be set to the + * format of the entries in the color-map then png_image_{read,write}_colormap + * called to read or write the color-map and set the format correctly for the + * image data. Do not set the PNG_FORMAT_FLAG_COLORMAP bit directly! + * + * NOTE: libpng can be built with particular features disabled, if you see + * compiler errors because the definition of one of the following flags has been + * compiled out it is because libpng does not have the required support. It is + * possible, however, for the libpng configuration to enable the format on just + * read or just write; in that case you may see an error at run time. You can + * guard against this by checking for the definition of the appropriate + * "_SUPPORTED" macro, one of: + * + * PNG_SIMPLIFIED_{READ,WRITE}_{BGR,AFIRST}_SUPPORTED + */ +#define PNG_FORMAT_FLAG_ALPHA 0x01U /* format with an alpha channel */ +#define PNG_FORMAT_FLAG_COLOR 0x02U /* color format: otherwise grayscale */ +#define PNG_FORMAT_FLAG_LINEAR 0x04U /* 2 byte channels else 1 byte */ +#define PNG_FORMAT_FLAG_COLORMAP 0x08U /* image data is color-mapped */ + +#ifdef PNG_FORMAT_BGR_SUPPORTED +# define PNG_FORMAT_FLAG_BGR 0x10U /* BGR colors, else order is RGB */ +#endif + +#ifdef PNG_FORMAT_AFIRST_SUPPORTED +# define PNG_FORMAT_FLAG_AFIRST 0x20U /* alpha channel comes first */ +#endif + +/* Commonly used formats have predefined macros. + * + * First the single byte (sRGB) formats: + */ +#define PNG_FORMAT_GRAY 0 +#define PNG_FORMAT_GA PNG_FORMAT_FLAG_ALPHA +#define PNG_FORMAT_AG (PNG_FORMAT_GA|PNG_FORMAT_FLAG_AFIRST) +#define PNG_FORMAT_RGB PNG_FORMAT_FLAG_COLOR +#define PNG_FORMAT_BGR (PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_BGR) +#define PNG_FORMAT_RGBA (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_ARGB (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_AFIRST) +#define PNG_FORMAT_BGRA (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_ABGR (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_AFIRST) + +/* Then the linear 2-byte formats. When naming these "Y" is used to + * indicate a luminance (gray) channel. + */ +#define PNG_FORMAT_LINEAR_Y PNG_FORMAT_FLAG_LINEAR +#define PNG_FORMAT_LINEAR_Y_ALPHA (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_ALPHA) +#define PNG_FORMAT_LINEAR_RGB (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR) +#define PNG_FORMAT_LINEAR_RGB_ALPHA \ + (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA) + +/* With color-mapped formats the image data is one byte for each pixel, the byte + * is an index into the color-map which is formatted as above. To obtain a + * color-mapped format it is sufficient just to add the PNG_FOMAT_FLAG_COLORMAP + * to one of the above definitions, or you can use one of the definitions below. + */ +#define PNG_FORMAT_RGB_COLORMAP (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_BGR_COLORMAP (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_RGBA_COLORMAP (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_ARGB_COLORMAP (PNG_FORMAT_ARGB|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_BGRA_COLORMAP (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_COLORMAP) +#define PNG_FORMAT_ABGR_COLORMAP (PNG_FORMAT_ABGR|PNG_FORMAT_FLAG_COLORMAP) + +/* PNG_IMAGE macros + * + * These are convenience macros to derive information from a png_image + * structure. The PNG_IMAGE_SAMPLE_ macros return values appropriate to the + * actual image sample values - either the entries in the color-map or the + * pixels in the image. The PNG_IMAGE_PIXEL_ macros return corresponding values + * for the pixels and will always return 1 for color-mapped formats. The + * remaining macros return information about the rows in the image and the + * complete image. + * + * NOTE: All the macros that take a png_image::format parameter are compile time + * constants if the format parameter is, itself, a constant. Therefore these + * macros can be used in array declarations and case labels where required. + * Similarly the macros are also pre-processor constants (sizeof is not used) so + * they can be used in #if tests. + * + * First the information about the samples. + */ +#define PNG_IMAGE_SAMPLE_CHANNELS(fmt)\ + (((fmt)&(PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA))+1) + /* Return the total number of channels in a given format: 1..4 */ + +#define PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)\ + ((((fmt) & PNG_FORMAT_FLAG_LINEAR) >> 2)+1) + /* Return the size in bytes of a single component of a pixel or color-map + * entry (as appropriate) in the image: 1 or 2. + */ + +#define PNG_IMAGE_SAMPLE_SIZE(fmt)\ + (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)) + /* This is the size of the sample data for one sample. If the image is + * color-mapped it is the size of one color-map entry (and image pixels are + * one byte in size), otherwise it is the size of one image pixel. + */ + +#define PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(fmt)\ + (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * 256) + /* The maximum size of the color-map required by the format expressed in a + * count of components. This can be used to compile-time allocate a + * color-map: + * + * png_uint_16 colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(linear_fmt)]; + * + * png_byte colormap[PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(sRGB_fmt)]; + * + * Alternatively use the PNG_IMAGE_COLORMAP_SIZE macro below to use the + * information from one of the png_image_begin_read_ APIs and dynamically + * allocate the required memory. + */ + +/* Corresponding information about the pixels */ +#define PNG_IMAGE_PIXEL_(test,fmt)\ + (((fmt)&PNG_FORMAT_FLAG_COLORMAP)?1:test(fmt)) + +#define PNG_IMAGE_PIXEL_CHANNELS(fmt)\ + PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_CHANNELS,fmt) + /* The number of separate channels (components) in a pixel; 1 for a + * color-mapped image. + */ + +#define PNG_IMAGE_PIXEL_COMPONENT_SIZE(fmt)\ + PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_COMPONENT_SIZE,fmt) + /* The size, in bytes, of each component in a pixel; 1 for a color-mapped + * image. + */ + +#define PNG_IMAGE_PIXEL_SIZE(fmt) PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_SIZE,fmt) + /* The size, in bytes, of a complete pixel; 1 for a color-mapped image. */ + +/* Information about the whole row, or whole image */ +#define PNG_IMAGE_ROW_STRIDE(image)\ + (PNG_IMAGE_PIXEL_CHANNELS((image).format) * (image).width) + /* Return the total number of components in a single row of the image; this + * is the minimum 'row stride', the minimum count of components between each + * row. For a color-mapped image this is the minimum number of bytes in a + * row. + */ + +#define PNG_IMAGE_BUFFER_SIZE(image, row_stride)\ + (PNG_IMAGE_PIXEL_COMPONENT_SIZE((image).format)*(image).height*(row_stride)) + /* Return the size, in bytes, of an image buffer given a png_image and a row + * stride - the number of components to leave space for in each row. + */ + +#define PNG_IMAGE_SIZE(image)\ + PNG_IMAGE_BUFFER_SIZE(image, PNG_IMAGE_ROW_STRIDE(image)) + /* Return the size, in bytes, of the image in memory given just a png_image; + * the row stride is the minimum stride required for the image. + */ + +#define PNG_IMAGE_COLORMAP_SIZE(image)\ + (PNG_IMAGE_SAMPLE_SIZE((image).format) * (image).colormap_entries) + /* Return the size, in bytes, of the color-map of this image. If the image + * format is not a color-map format this will return a size sufficient for + * 256 entries in the given format; check PNG_FORMAT_FLAG_COLORMAP if + * you don't want to allocate a color-map in this case. + */ + +/* PNG_IMAGE_FLAG_* + * + * Flags containing additional information about the image are held in the + * 'flags' field of png_image. + */ +#define PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB 0x01 + /* This indicates the the RGB values of the in-memory bitmap do not + * correspond to the red, green and blue end-points defined by sRGB. + */ + +#define PNG_IMAGE_FLAG_FAST 0x02 + /* On write emphasise speed over compression; the resultant PNG file will be + * larger but will be produced significantly faster, particular for large + * images. Do not use this option for images which will be distributed, only + * used it when producing intermediate files that will be read back in + * repeatedly. For a typical 24-bit image the option will double the read + * speed at the cost of increasing the image size by 25%, however for many + * more compressible images the PNG file can be 10 times larger with only a + * slight speed gain. + */ + +#define PNG_IMAGE_FLAG_16BIT_sRGB 0x04 + /* On read if the image is a 16-bit per component image and there is no gAMA + * or sRGB chunk assume that the components are sRGB encoded. Notice that + * images output by the simplified API always have gamma information; setting + * this flag only affects the interpretation of 16-bit images from an + * external source. It is recommended that the application expose this flag + * to the user; the user can normally easily recognize the difference between + * linear and sRGB encoding. This flag has no effect on write - the data + * passed to the write APIs must have the correct encoding (as defined + * above.) + * + * If the flag is not set (the default) input 16-bit per component data is + * assumed to be linear. + * + * NOTE: the flag can only be set after the png_image_begin_read_ call, + * because that call initializes the 'flags' field. + */ + +#ifdef PNG_SIMPLIFIED_READ_SUPPORTED +/* READ APIs + * --------- + * + * The png_image passed to the read APIs must have been initialized by setting + * the png_controlp field 'opaque' to NULL (or, safer, memset the whole thing.) + */ +#ifdef PNG_STDIO_SUPPORTED +PNG_EXPORT(234, int, png_image_begin_read_from_file, (png_imagep image, + const char *file_name)); + /* The named file is opened for read and the image header is filled in + * from the PNG header in the file. + */ + +PNG_EXPORT(235, int, png_image_begin_read_from_stdio, (png_imagep image, + FILE* file)); + /* The PNG header is read from the stdio FILE object. */ +#endif /* PNG_STDIO_SUPPORTED */ + +PNG_EXPORT(236, int, png_image_begin_read_from_memory, (png_imagep image, + png_const_voidp memory, png_size_t size)); + /* The PNG header is read from the given memory buffer. */ + +PNG_EXPORT(237, int, png_image_finish_read, (png_imagep image, + png_const_colorp background, void *buffer, png_int_32 row_stride, + void *colormap)); + /* Finish reading the image into the supplied buffer and clean up the + * png_image structure. + * + * row_stride is the step, in byte or 2-byte units as appropriate, + * between adjacent rows. A positive stride indicates that the top-most row + * is first in the buffer - the normal top-down arrangement. A negative + * stride indicates that the bottom-most row is first in the buffer. + * + * background need only be supplied if an alpha channel must be removed from + * a png_byte format and the removal is to be done by compositing on a solid + * color; otherwise it may be NULL and any composition will be done directly + * onto the buffer. The value is an sRGB color to use for the background, + * for grayscale output the green channel is used. + * + * background must be supplied when an alpha channel must be removed from a + * single byte color-mapped output format, in other words if: + * + * 1) The original format from png_image_begin_read_from_* had + * PNG_FORMAT_FLAG_ALPHA set. + * 2) The format set by the application does not. + * 3) The format set by the application has PNG_FORMAT_FLAG_COLORMAP set and + * PNG_FORMAT_FLAG_LINEAR *not* set. + * + * For linear output removing the alpha channel is always done by compositing + * on black and background is ignored. + * + * colormap must be supplied when PNG_FORMAT_FLAG_COLORMAP is set. It must + * be at least the size (in bytes) returned by PNG_IMAGE_COLORMAP_SIZE. + * image->colormap_entries will be updated to the actual number of entries + * written to the colormap; this may be less than the original value. + */ + +PNG_EXPORT(238, void, png_image_free, (png_imagep image)); + /* Free any data allocated by libpng in image->opaque, setting the pointer to + * NULL. May be called at any time after the structure is initialized. + */ +#endif /* PNG_SIMPLIFIED_READ_SUPPORTED */ + +#ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED +/* WRITE APIS + * ---------- + * For write you must initialize a png_image structure to describe the image to + * be written. To do this use memset to set the whole structure to 0 then + * initialize fields describing your image. + * + * version: must be set to PNG_IMAGE_VERSION + * opaque: must be initialized to NULL + * width: image width in pixels + * height: image height in rows + * format: the format of the data (image and color-map) you wish to write + * flags: set to 0 unless one of the defined flags applies; set + * PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB for color format images where the RGB + * values do not correspond to the colors in sRGB. + * colormap_entries: set to the number of entries in the color-map (0 to 256) + */ +PNG_EXPORT(239, int, png_image_write_to_file, (png_imagep image, + const char *file, int convert_to_8bit, const void *buffer, + png_int_32 row_stride, const void *colormap)); + /* Write the image to the named file. */ + +PNG_EXPORT(240, int, png_image_write_to_stdio, (png_imagep image, FILE *file, + int convert_to_8_bit, const void *buffer, png_int_32 row_stride, + const void *colormap)); + /* Write the image to the given (FILE*). */ + +/* With both write APIs if image is in one of the linear formats with 16-bit + * data then setting convert_to_8_bit will cause the output to be an 8-bit PNG + * gamma encoded according to the sRGB specification, otherwise a 16-bit linear + * encoded PNG file is written. + * + * With color-mapped data formats the colormap parameter point to a color-map + * with at least image->colormap_entries encoded in the specified format. If + * the format is linear the written PNG color-map will be converted to sRGB + * regardless of the convert_to_8_bit flag. + * + * With all APIs row_stride is handled as in the read APIs - it is the spacing + * from one row to the next in component sized units (1 or 2 bytes) and if + * negative indicates a bottom-up row layout in the buffer. + * + * Note that the write API does not support interlacing or sub-8-bit pixels. + */ +#endif /* PNG_SIMPLIFIED_WRITE_SUPPORTED */ +/******************************************************************************* + * END OF SIMPLIFIED API + ******************************************************************************/ + +#ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED +PNG_EXPORT(242, void, png_set_check_for_invalid_index, + (png_structrp png_ptr, int allowed)); +# ifdef PNG_GET_PALETTE_MAX_SUPPORTED +PNG_EXPORT(243, int, png_get_palette_max, (png_const_structp png_ptr, + png_const_infop info_ptr)); +# endif +#endif /* CHECK_FOR_INVALID_INDEX */ + +/******************************************************************************* + * IMPLEMENTATION OPTIONS + ******************************************************************************* + * + * Support for arbitrary implementation-specific optimizations. The API allows + * particular options to be turned on or off. 'Option' is the number of the + * option and 'onoff' is 0 (off) or non-0 (on). The value returned is given + * by the PNG_OPTION_ defines below. + * + * HARDWARE: normally hardware capabilites, such as the Intel SSE instructions, + * are detected at run time, however sometimes it may be impossible + * to do this in user mode, in which case it is necessary to discover + * the capabilities in an OS specific way. Such capabilities are + * listed here when libpng has support for them and must be turned + * ON by the application if present. + * + * SOFTWARE: sometimes software optimizations actually result in performance + * decrease on some architectures or systems, or with some sets of + * PNG images. 'Software' options allow such optimizations to be + * selected at run time. + */ +#ifdef PNG_SET_OPTION_SUPPORTED +#ifdef PNG_ARM_NEON_API_SUPPORTED +# define PNG_ARM_NEON 0 /* HARDWARE: ARM Neon SIMD instructions supported */ +#endif +#define PNG_OPTION_NEXT 2 /* Next option - numbers must be even */ + +/* Return values: NOTE: there are four values and 'off' is *not* zero */ +#define PNG_OPTION_UNSET 0 /* Unset - defaults to off */ +#define PNG_OPTION_INVALID 1 /* Option number out of range */ +#define PNG_OPTION_OFF 2 +#define PNG_OPTION_ON 3 + +PNG_EXPORT(244, int, png_set_option, (png_structrp png_ptr, int option, + int onoff)); +#endif + +/******************************************************************************* + * END OF HARDWARE OPTIONS + ******************************************************************************/ + +/* Maintainer: Put new public prototypes here ^, in libpng.3, and project + * defs, scripts/pnglibconf.h, and scripts/pnglibconf.h.prebuilt + */ + +/* The last ordinal number (this is the *last* one already used; the next + * one to use is one more than this.) Maintainer, remember to add an entry to + * scripts/symbols.def as well. + */ +#ifdef PNG_EXPORT_LAST_ORDINAL + PNG_EXPORT_LAST_ORDINAL(244); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* PNG_VERSION_INFO_ONLY */ +/* Do not put anything past this line */ +#endif /* PNG_H */ diff --git a/fb2png/libpng/include/pngconf.h b/fb2png/libpng/include/pngconf.h new file mode 100644 index 00000000..d9dbff08 --- /dev/null +++ b/fb2png/libpng/include/pngconf.h @@ -0,0 +1,616 @@ + +/* pngconf.h - machine configurable file for libpng + * + * libpng version 1.6.1 - March 28, 2013 + * + * Copyright (c) 1998-2013 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + * + */ + +/* Any machine specific code is near the front of this file, so if you + * are configuring libpng for a machine, you may want to read the section + * starting here down to where it starts to typedef png_color, png_text, + * and png_info. + */ + +#ifndef PNGCONF_H +#define PNGCONF_H + +/* To do: Do all of this in scripts/pnglibconf.dfa */ +#ifdef PNG_SAFE_LIMITS_SUPPORTED +# ifdef PNG_USER_WIDTH_MAX +# undef PNG_USER_WIDTH_MAX +# define PNG_USER_WIDTH_MAX 1000000L +# endif +# ifdef PNG_USER_HEIGHT_MAX +# undef PNG_USER_HEIGHT_MAX +# define PNG_USER_HEIGHT_MAX 1000000L +# endif +# ifdef PNG_USER_CHUNK_MALLOC_MAX +# undef PNG_USER_CHUNK_MALLOC_MAX +# define PNG_USER_CHUNK_MALLOC_MAX 4000000L +# endif +# ifdef PNG_USER_CHUNK_CACHE_MAX +# undef PNG_USER_CHUNK_CACHE_MAX +# define PNG_USER_CHUNK_CACHE_MAX 128 +# endif +#endif + +#ifndef PNG_BUILDING_SYMBOL_TABLE /* else includes may cause problems */ + +/* From libpng 1.6.0 libpng requires an ANSI X3.159-1989 ("ISOC90") compliant C + * compiler for correct compilation. The following header files are required by + * the standard. If your compiler doesn't provide these header files, or they + * do not match the standard, you will need to provide/improve them. + */ +#include +#include + +/* Library header files. These header files are all defined by ISOC90; libpng + * expects conformant implementations, however, an ISOC90 conformant system need + * not provide these header files if the functionality cannot be implemented. + * In this case it will be necessary to disable the relevant parts of libpng in + * the build of pnglibconf.h. + * + * Prior to 1.6.0 string.h was included here; the API changes in 1.6.0 to not + * include this unnecessary header file. + */ + +#ifdef PNG_STDIO_SUPPORTED + /* Required for the definition of FILE: */ +# include +#endif + +#ifdef PNG_SETJMP_SUPPORTED + /* Required for the definition of jmp_buf and the declaration of longjmp: */ +# include +#endif + +#ifdef PNG_CONVERT_tIME_SUPPORTED + /* Required for struct tm: */ +# include +#endif + +#endif /* PNG_BUILDING_SYMBOL_TABLE */ + +/* Prior to 1.6.0 it was possible to turn off 'const' in declarations using + * PNG_NO_CONST; this is no longer supported except for data declarations which + * apparently still cause problems in 2011 on some compilers. + */ +#define PNG_CONST const /* backward compatibility only */ + +/* This controls optimization of the reading of 16 and 32 bit values + * from PNG files. It can be set on a per-app-file basis - it + * just changes whether a macro is used when the function is called. + * The library builder sets the default; if read functions are not + * built into the library the macro implementation is forced on. + */ +#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED +# define PNG_USE_READ_MACROS +#endif +#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) +# if PNG_DEFAULT_READ_MACROS +# define PNG_USE_READ_MACROS +# endif +#endif + +/* COMPILER SPECIFIC OPTIONS. + * + * These options are provided so that a variety of difficult compilers + * can be used. Some are fixed at build time (e.g. PNG_API_RULE + * below) but still have compiler specific implementations, others + * may be changed on a per-file basis when compiling against libpng. + */ + +/* The PNGARG macro was used in versions of libpng prior to 1.6.0 to protect + * against legacy (pre ISOC90) compilers that did not understand function + * prototypes. It is not required for modern C compilers. + */ +#ifndef PNGARG +# define PNGARG(arglist) arglist +#endif + +/* Function calling conventions. + * ============================= + * Normally it is not necessary to specify to the compiler how to call + * a function - it just does it - however on x86 systems derived from + * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems + * and some others) there are multiple ways to call a function and the + * default can be changed on the compiler command line. For this reason + * libpng specifies the calling convention of every exported function and + * every function called via a user supplied function pointer. This is + * done in this file by defining the following macros: + * + * PNGAPI Calling convention for exported functions. + * PNGCBAPI Calling convention for user provided (callback) functions. + * PNGCAPI Calling convention used by the ANSI-C library (required + * for longjmp callbacks and sometimes used internally to + * specify the calling convention for zlib). + * + * These macros should never be overridden. If it is necessary to + * change calling convention in a private build this can be done + * by setting PNG_API_RULE (which defaults to 0) to one of the values + * below to select the correct 'API' variants. + * + * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout. + * This is correct in every known environment. + * PNG_API_RULE=1 Use the operating system convention for PNGAPI and + * the 'C' calling convention (from PNGCAPI) for + * callbacks (PNGCBAPI). This is no longer required + * in any known environment - if it has to be used + * please post an explanation of the problem to the + * libpng mailing list. + * + * These cases only differ if the operating system does not use the C + * calling convention, at present this just means the above cases + * (x86 DOS/Windows sytems) and, even then, this does not apply to + * Cygwin running on those systems. + * + * Note that the value must be defined in pnglibconf.h so that what + * the application uses to call the library matches the conventions + * set when building the library. + */ + +/* Symbol export + * ============= + * When building a shared library it is almost always necessary to tell + * the compiler which symbols to export. The png.h macro 'PNG_EXPORT' + * is used to mark the symbols. On some systems these symbols can be + * extracted at link time and need no special processing by the compiler, + * on other systems the symbols are flagged by the compiler and just + * the declaration requires a special tag applied (unfortunately) in a + * compiler dependent way. Some systems can do either. + * + * A small number of older systems also require a symbol from a DLL to + * be flagged to the program that calls it. This is a problem because + * we do not know in the header file included by application code that + * the symbol will come from a shared library, as opposed to a statically + * linked one. For this reason the application must tell us by setting + * the magic flag PNG_USE_DLL to turn on the special processing before + * it includes png.h. + * + * Four additional macros are used to make this happen: + * + * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from + * the build or imported if PNG_USE_DLL is set - compiler + * and system specific. + * + * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to + * 'type', compiler specific. + * + * PNG_DLL_EXPORT Set to the magic to use during a libpng build to + * make a symbol exported from the DLL. Not used in the + * public header files; see pngpriv.h for how it is used + * in the libpng build. + * + * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come + * from a DLL - used to define PNG_IMPEXP when + * PNG_USE_DLL is set. + */ + +/* System specific discovery. + * ========================== + * This code is used at build time to find PNG_IMPEXP, the API settings + * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL + * import processing is possible. On Windows systems it also sets + * compiler-specific macros to the values required to change the calling + * conventions of the various functions. + */ +#if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ + defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) + /* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or + * MinGW on any architecture currently supported by Windows. Also includes + * Watcom builds but these need special treatment because they are not + * compatible with GCC or Visual C because of different calling conventions. + */ +# if PNG_API_RULE == 2 + /* If this line results in an error, either because __watcall is not + * understood or because of a redefine just below you cannot use *this* + * build of the library with the compiler you are using. *This* build was + * build using Watcom and applications must also be built using Watcom! + */ +# define PNGCAPI __watcall +# endif + +# if defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 800)) +# define PNGCAPI __cdecl +# if PNG_API_RULE == 1 + /* If this line results in an error __stdcall is not understood and + * PNG_API_RULE should not have been set to '1'. + */ +# define PNGAPI __stdcall +# endif +# else + /* An older compiler, or one not detected (erroneously) above, + * if necessary override on the command line to get the correct + * variants for the compiler. + */ +# ifndef PNGCAPI +# define PNGCAPI _cdecl +# endif +# if PNG_API_RULE == 1 && !defined(PNGAPI) +# define PNGAPI _stdcall +# endif +# endif /* compiler/api */ + /* NOTE: PNGCBAPI always defaults to PNGCAPI. */ + +# if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) +# error "PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed" +# endif + +# if (defined(_MSC_VER) && _MSC_VER < 800) ||\ + (defined(__BORLANDC__) && __BORLANDC__ < 0x500) + /* older Borland and MSC + * compilers used '__export' and required this to be after + * the type. + */ +# ifndef PNG_EXPORT_TYPE +# define PNG_EXPORT_TYPE(type) type PNG_IMPEXP +# endif +# define PNG_DLL_EXPORT __export +# else /* newer compiler */ +# define PNG_DLL_EXPORT __declspec(dllexport) +# ifndef PNG_DLL_IMPORT +# define PNG_DLL_IMPORT __declspec(dllimport) +# endif +# endif /* compiler */ + +#else /* !Windows */ +# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) +# define PNGAPI _System +# else /* !Windows/x86 && !OS/2 */ + /* Use the defaults, or define PNG*API on the command line (but + * this will have to be done for every compile!) + */ +# endif /* other system, !OS/2 */ +#endif /* !Windows/x86 */ + +/* Now do all the defaulting . */ +#ifndef PNGCAPI +# define PNGCAPI +#endif +#ifndef PNGCBAPI +# define PNGCBAPI PNGCAPI +#endif +#ifndef PNGAPI +# define PNGAPI PNGCAPI +#endif + +/* PNG_IMPEXP may be set on the compilation system command line or (if not set) + * then in an internal header file when building the library, otherwise (when + * using the library) it is set here. + */ +#ifndef PNG_IMPEXP +# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) + /* This forces use of a DLL, disallowing static linking */ +# define PNG_IMPEXP PNG_DLL_IMPORT +# endif + +# ifndef PNG_IMPEXP +# define PNG_IMPEXP +# endif +#endif + +/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat + * 'attributes' as a storage class - the attributes go at the start of the + * function definition, and attributes are always appended regardless of the + * compiler. This considerably simplifies these macros but may cause problems + * if any compilers both need function attributes and fail to handle them as + * a storage class (this is unlikely.) + */ +#ifndef PNG_FUNCTION +# define PNG_FUNCTION(type, name, args, attributes) attributes type name args +#endif + +#ifndef PNG_EXPORT_TYPE +# define PNG_EXPORT_TYPE(type) PNG_IMPEXP type +#endif + + /* The ordinal value is only relevant when preprocessing png.h for symbol + * table entries, so we discard it here. See the .dfn files in the + * scripts directory. + */ +#ifndef PNG_EXPORTA + +# define PNG_EXPORTA(ordinal, type, name, args, attributes)\ + PNG_FUNCTION(PNG_EXPORT_TYPE(type),(PNGAPI name),PNGARG(args), \ + extern attributes) +#endif + +/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument, + * so make something non-empty to satisfy the requirement: + */ +#define PNG_EMPTY /*empty list*/ + +#define PNG_EXPORT(ordinal, type, name, args)\ + PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY) + +/* Use PNG_REMOVED to comment out a removed interface. */ +#ifndef PNG_REMOVED +# define PNG_REMOVED(ordinal, type, name, args, attributes) +#endif + +#ifndef PNG_CALLBACK +# define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args) +#endif + +/* Support for compiler specific function attributes. These are used + * so that where compiler support is available incorrect use of API + * functions in png.h will generate compiler warnings. + * + * Added at libpng-1.2.41. + */ + +#ifndef PNG_NO_PEDANTIC_WARNINGS +# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED +# define PNG_PEDANTIC_WARNINGS_SUPPORTED +# endif +#endif + +#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED + /* Support for compiler specific function attributes. These are used + * so that where compiler support is available, incorrect use of API + * functions in png.h will generate compiler warnings. Added at libpng + * version 1.2.41. Disabling these removes the warnings but may also produce + * less efficient code. + */ +# if defined(__GNUC__) +# ifndef PNG_USE_RESULT +# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) +# endif +# ifndef PNG_NORETURN +# define PNG_NORETURN __attribute__((__noreturn__)) +# endif +# if __GNUC__ >= 3 +# ifndef PNG_ALLOCATED +# define PNG_ALLOCATED __attribute__((__malloc__)) +# endif +# ifndef PNG_DEPRECATED +# define PNG_DEPRECATED __attribute__((__deprecated__)) +# endif +# ifndef PNG_PRIVATE +# if 0 /* Doesn't work so we use deprecated instead*/ +# define PNG_PRIVATE \ + __attribute__((warning("This function is not exported by libpng."))) +# else +# define PNG_PRIVATE \ + __attribute__((__deprecated__)) +# endif +# endif +# if ((__GNUC__ != 3) || !defined(__GNUC_MINOR__) || (__GNUC_MINOR__ >= 1)) +# ifndef PNG_RESTRICT +# define PNG_RESTRICT __restrict +# endif +# endif /* __GNUC__ == 3.0 */ +# endif /* __GNUC__ >= 3 */ + +# elif defined(_MSC_VER) && (_MSC_VER >= 1300) +# ifndef PNG_USE_RESULT +# define PNG_USE_RESULT /* not supported */ +# endif +# ifndef PNG_NORETURN +# define PNG_NORETURN __declspec(noreturn) +# endif +# ifndef PNG_ALLOCATED +# if (_MSC_VER >= 1400) +# define PNG_ALLOCATED __declspec(restrict) +# endif +# endif +# ifndef PNG_DEPRECATED +# define PNG_DEPRECATED __declspec(deprecated) +# endif +# ifndef PNG_PRIVATE +# define PNG_PRIVATE __declspec(deprecated) +# endif +# ifndef PNG_RESTRICT +# if (_MSC_VER >= 1400) +# define PNG_RESTRICT __restrict +# endif +# endif + +# elif defined(__WATCOMC__) +# ifndef PNG_RESTRICT +# define PNG_RESTRICT __restrict +# endif +# endif /* _MSC_VER */ +#endif /* PNG_PEDANTIC_WARNINGS */ + +#ifndef PNG_DEPRECATED +# define PNG_DEPRECATED /* Use of this function is deprecated */ +#endif +#ifndef PNG_USE_RESULT +# define PNG_USE_RESULT /* The result of this function must be checked */ +#endif +#ifndef PNG_NORETURN +# define PNG_NORETURN /* This function does not return */ +#endif +#ifndef PNG_ALLOCATED +# define PNG_ALLOCATED /* The result of the function is new memory */ +#endif +#ifndef PNG_PRIVATE +# define PNG_PRIVATE /* This is a private libpng function */ +#endif +#ifndef PNG_RESTRICT +# define PNG_RESTRICT /* The C99 "restrict" feature */ +#endif +#ifndef PNG_FP_EXPORT /* A floating point API. */ +# ifdef PNG_FLOATING_POINT_SUPPORTED +# define PNG_FP_EXPORT(ordinal, type, name, args)\ + PNG_EXPORT(ordinal, type, name, args); +# else /* No floating point APIs */ +# define PNG_FP_EXPORT(ordinal, type, name, args) +# endif +#endif +#ifndef PNG_FIXED_EXPORT /* A fixed point API. */ +# ifdef PNG_FIXED_POINT_SUPPORTED +# define PNG_FIXED_EXPORT(ordinal, type, name, args)\ + PNG_EXPORT(ordinal, type, name, args); +# else /* No fixed point APIs */ +# define PNG_FIXED_EXPORT(ordinal, type, name, args) +# endif +#endif + +#ifndef PNG_BUILDING_SYMBOL_TABLE +/* Some typedefs to get us started. These should be safe on most of the common + * platforms. + * + * png_uint_32 and png_int_32 may, currently, be larger than required to hold a + * 32-bit value however this is not normally advisable. + * + * png_uint_16 and png_int_16 should always be two bytes in size - this is + * verified at library build time. + * + * png_byte must always be one byte in size. + * + * The checks below use constants from limits.h, as defined by the ISOC90 + * standard. + */ +#if CHAR_BIT == 8 && UCHAR_MAX == 255 + typedef unsigned char png_byte; +#else +# error "libpng requires 8 bit bytes" +#endif + +#if INT_MIN == -32768 && INT_MAX == 32767 + typedef int png_int_16; +#elif SHRT_MIN == -32768 && SHRT_MAX == 32767 + typedef short png_int_16; +#else +# error "libpng requires a signed 16 bit type" +#endif + +#if UINT_MAX == 65535 + typedef unsigned int png_uint_16; +#elif USHRT_MAX == 65535 + typedef unsigned short png_uint_16; +#else +# error "libpng requires an unsigned 16 bit type" +#endif + +#if INT_MIN < -2147483646 && INT_MAX > 2147483646 + typedef int png_int_32; +#elif LONG_MIN < -2147483646 && LONG_MAX > 2147483646 + typedef long int png_int_32; +#else +# error "libpng requires a signed 32 bit (or more) type" +#endif + +#if UINT_MAX > 4294967294 + typedef unsigned int png_uint_32; +#elif ULONG_MAX > 4294967294 + typedef unsigned long int png_uint_32; +#else +# error "libpng requires an unsigned 32 bit (or more) type" +#endif + +/* Prior to 1.6.0 it was possible to disable the use of size_t, 1.6.0, however, + * requires an ISOC90 compiler and relies on consistent behavior of sizeof. + */ +typedef size_t png_size_t; +typedef ptrdiff_t png_ptrdiff_t; + +/* libpng needs to know the maximum value of 'size_t' and this controls the + * definition of png_alloc_size_t, below. This maximum value of size_t limits + * but does not control the maximum allocations the library makes - there is + * direct application control of this through png_set_user_limits(). + */ +#ifndef PNG_SMALL_SIZE_T + /* Compiler specific tests for systems where size_t is known to be less than + * 32 bits (some of these systems may no longer work because of the lack of + * 'far' support; see above.) + */ +# if (defined(__TURBOC__) && !defined(__FLAT__)) ||\ + (defined(_MSC_VER) && defined(MAXSEG_64K)) +# define PNG_SMALL_SIZE_T +# endif +#endif + +/* png_alloc_size_t is guaranteed to be no smaller than png_size_t, and no + * smaller than png_uint_32. Casts from png_size_t or png_uint_32 to + * png_alloc_size_t are not necessary; in fact, it is recommended not to use + * them at all so that the compiler can complain when something turns out to be + * problematic. + * + * Casts in the other direction (from png_alloc_size_t to png_size_t or + * png_uint_32) should be explicitly applied; however, we do not expect to + * encounter practical situations that require such conversions. + * + * PNG_SMALL_SIZE_T must be defined if the maximum value of size_t is less than + * 4294967295 - i.e. less than the maximum value of png_uint_32. + */ +#ifdef PNG_SMALL_SIZE_T + typedef png_uint_32 png_alloc_size_t; +#else + typedef png_size_t png_alloc_size_t; +#endif + +/* Prior to 1.6.0 libpng offered limited support for Microsoft C compiler + * implementations of Intel CPU specific support of user-mode segmented address + * spaces, where 16-bit pointers address more than 65536 bytes of memory using + * separate 'segment' registers. The implementation requires two different + * types of pointer (only one of which includes the segment value.) + * + * If required this support is available in version 1.2 of libpng and may be + * available in versions through 1.5, although the correctness of the code has + * not been verified recently. + */ + +/* Typedef for floating-point numbers that are converted to fixed-point with a + * multiple of 100,000, e.g., gamma + */ +typedef png_int_32 png_fixed_point; + +/* Add typedefs for pointers */ +typedef void * png_voidp; +typedef const void * png_const_voidp; +typedef png_byte * png_bytep; +typedef const png_byte * png_const_bytep; +typedef png_uint_32 * png_uint_32p; +typedef const png_uint_32 * png_const_uint_32p; +typedef png_int_32 * png_int_32p; +typedef const png_int_32 * png_const_int_32p; +typedef png_uint_16 * png_uint_16p; +typedef const png_uint_16 * png_const_uint_16p; +typedef png_int_16 * png_int_16p; +typedef const png_int_16 * png_const_int_16p; +typedef char * png_charp; +typedef const char * png_const_charp; +typedef png_fixed_point * png_fixed_point_p; +typedef const png_fixed_point * png_const_fixed_point_p; +typedef png_size_t * png_size_tp; +typedef const png_size_t * png_const_size_tp; + +#ifdef PNG_STDIO_SUPPORTED +typedef FILE * png_FILE_p; +#endif + +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double * png_doublep; +typedef const double * png_const_doublep; +#endif + +/* Pointers to pointers; i.e. arrays */ +typedef png_byte * * png_bytepp; +typedef png_uint_32 * * png_uint_32pp; +typedef png_int_32 * * png_int_32pp; +typedef png_uint_16 * * png_uint_16pp; +typedef png_int_16 * * png_int_16pp; +typedef const char * * png_const_charpp; +typedef char * * png_charpp; +typedef png_fixed_point * * png_fixed_point_pp; +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double * * png_doublepp; +#endif + +/* Pointers to pointers to pointers; i.e., pointer to array */ +typedef char * * * png_charppp; + +#endif /* PNG_BUILDING_SYMBOL_TABLE */ + +#endif /* PNGCONF_H */ diff --git a/fb2png/libpng/include/pnglibconf.h b/fb2png/libpng/include/pnglibconf.h new file mode 100644 index 00000000..b9c75e83 --- /dev/null +++ b/fb2png/libpng/include/pnglibconf.h @@ -0,0 +1,209 @@ +/* pnglibconf.h - library build configuration */ + +/* libpng version 1.6.1 - March 28, 2013 */ + +/* Copyright (c) 1998-2012 Glenn Randers-Pehrson */ + +/* This code is released under the libpng license. */ +/* For conditions of distribution and use, see the disclaimer */ +/* and license in png.h */ + +/* pnglibconf.h */ +/* Machine generated file: DO NOT EDIT */ +/* Derived from: scripts/pnglibconf.dfa */ +#ifndef PNGLCONF_H +#define PNGLCONF_H +/* options */ +#define PNG_16BIT_SUPPORTED +#define PNG_ALIGNED_MEMORY_SUPPORTED +/*#undef PNG_ARM_NEON_API_SUPPORTED*/ +/*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ +/*#undef PNG_ARM_NEON_SUPPORTED*/ +#define PNG_BENIGN_ERRORS_SUPPORTED +#define PNG_BENIGN_READ_ERRORS_SUPPORTED +/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ +#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED +#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_COLORSPACE_SUPPORTED +#define PNG_CONSOLE_IO_SUPPORTED +#define PNG_CONVERT_tIME_SUPPORTED +#define PNG_EASY_ACCESS_SUPPORTED +/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ +#define PNG_ERROR_TEXT_SUPPORTED +#define PNG_FIXED_POINT_SUPPORTED +#define PNG_FLOATING_ARITHMETIC_SUPPORTED +#define PNG_FLOATING_POINT_SUPPORTED +#define PNG_FORMAT_AFIRST_SUPPORTED +#define PNG_FORMAT_BGR_SUPPORTED +#define PNG_GAMMA_SUPPORTED +#define PNG_GET_PALETTE_MAX_SUPPORTED +#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED +#define PNG_INCH_CONVERSIONS_SUPPORTED +#define PNG_INFO_IMAGE_SUPPORTED +#define PNG_IO_STATE_SUPPORTED +#define PNG_MNG_FEATURES_SUPPORTED +#define PNG_POINTER_INDEXING_SUPPORTED +#define PNG_PROGRESSIVE_READ_SUPPORTED +#define PNG_READ_16BIT_SUPPORTED +#define PNG_READ_ALPHA_MODE_SUPPORTED +#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_READ_BACKGROUND_SUPPORTED +#define PNG_READ_BGR_SUPPORTED +#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_READ_COMPOSITE_NODIV_SUPPORTED +#define PNG_READ_COMPRESSED_TEXT_SUPPORTED +#define PNG_READ_EXPAND_16_SUPPORTED +#define PNG_READ_EXPAND_SUPPORTED +#define PNG_READ_FILLER_SUPPORTED +#define PNG_READ_GAMMA_SUPPORTED +#define PNG_READ_GET_PALETTE_MAX_SUPPORTED +#define PNG_READ_GRAY_TO_RGB_SUPPORTED +#define PNG_READ_INTERLACING_SUPPORTED +#define PNG_READ_INT_FUNCTIONS_SUPPORTED +#define PNG_READ_INVERT_ALPHA_SUPPORTED +#define PNG_READ_INVERT_SUPPORTED +#define PNG_READ_OPT_PLTE_SUPPORTED +#define PNG_READ_PACKSWAP_SUPPORTED +#define PNG_READ_PACK_SUPPORTED +#define PNG_READ_QUANTIZE_SUPPORTED +#define PNG_READ_RGB_TO_GRAY_SUPPORTED +#define PNG_READ_SCALE_16_TO_8_SUPPORTED +#define PNG_READ_SHIFT_SUPPORTED +#define PNG_READ_STRIP_16_TO_8_SUPPORTED +#define PNG_READ_STRIP_ALPHA_SUPPORTED +#define PNG_READ_SUPPORTED +#define PNG_READ_SWAP_ALPHA_SUPPORTED +#define PNG_READ_SWAP_SUPPORTED +#define PNG_READ_TEXT_SUPPORTED +#define PNG_READ_TRANSFORMS_SUPPORTED +#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_READ_USER_CHUNKS_SUPPORTED +#define PNG_READ_USER_TRANSFORM_SUPPORTED +#define PNG_READ_bKGD_SUPPORTED +#define PNG_READ_cHRM_SUPPORTED +#define PNG_READ_gAMA_SUPPORTED +#define PNG_READ_hIST_SUPPORTED +#define PNG_READ_iCCP_SUPPORTED +#define PNG_READ_iTXt_SUPPORTED +#define PNG_READ_oFFs_SUPPORTED +#define PNG_READ_pCAL_SUPPORTED +#define PNG_READ_pHYs_SUPPORTED +#define PNG_READ_sBIT_SUPPORTED +#define PNG_READ_sCAL_SUPPORTED +#define PNG_READ_sPLT_SUPPORTED +#define PNG_READ_sRGB_SUPPORTED +#define PNG_READ_tEXt_SUPPORTED +#define PNG_READ_tIME_SUPPORTED +#define PNG_READ_tRNS_SUPPORTED +#define PNG_READ_zTXt_SUPPORTED +/*#undef PNG_SAFE_LIMITS_SUPPORTED*/ +#define PNG_SAVE_INT_32_SUPPORTED +#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SEQUENTIAL_READ_SUPPORTED +#define PNG_SETJMP_SUPPORTED +#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED +#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED +/*#undef PNG_SET_OPTION_SUPPORTED*/ +#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SET_USER_LIMITS_SUPPORTED +#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED +#define PNG_SIMPLIFIED_READ_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_SUPPORTED +#define PNG_STDIO_SUPPORTED +#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_TEXT_SUPPORTED +#define PNG_TIME_RFC1123_SUPPORTED +#define PNG_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_USER_CHUNKS_SUPPORTED +#define PNG_USER_LIMITS_SUPPORTED +#define PNG_USER_MEM_SUPPORTED +#define PNG_USER_TRANSFORM_INFO_SUPPORTED +#define PNG_USER_TRANSFORM_PTR_SUPPORTED +#define PNG_WARNINGS_SUPPORTED +#define PNG_WRITE_16BIT_SUPPORTED +#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_WRITE_BGR_SUPPORTED +#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED +#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED +#define PNG_WRITE_FILLER_SUPPORTED +#define PNG_WRITE_FILTER_SUPPORTED +#define PNG_WRITE_FLUSH_SUPPORTED +#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED +#define PNG_WRITE_INTERLACING_SUPPORTED +#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED +#define PNG_WRITE_INVERT_ALPHA_SUPPORTED +#define PNG_WRITE_INVERT_SUPPORTED +#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED +#define PNG_WRITE_PACKSWAP_SUPPORTED +#define PNG_WRITE_PACK_SUPPORTED +#define PNG_WRITE_SHIFT_SUPPORTED +#define PNG_WRITE_SUPPORTED +#define PNG_WRITE_SWAP_ALPHA_SUPPORTED +#define PNG_WRITE_SWAP_SUPPORTED +#define PNG_WRITE_TEXT_SUPPORTED +#define PNG_WRITE_TRANSFORMS_SUPPORTED +#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_WRITE_USER_TRANSFORM_SUPPORTED +#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED +#define PNG_WRITE_bKGD_SUPPORTED +#define PNG_WRITE_cHRM_SUPPORTED +#define PNG_WRITE_gAMA_SUPPORTED +#define PNG_WRITE_hIST_SUPPORTED +#define PNG_WRITE_iCCP_SUPPORTED +#define PNG_WRITE_iTXt_SUPPORTED +#define PNG_WRITE_oFFs_SUPPORTED +#define PNG_WRITE_pCAL_SUPPORTED +#define PNG_WRITE_pHYs_SUPPORTED +#define PNG_WRITE_sBIT_SUPPORTED +#define PNG_WRITE_sCAL_SUPPORTED +#define PNG_WRITE_sPLT_SUPPORTED +#define PNG_WRITE_sRGB_SUPPORTED +#define PNG_WRITE_tEXt_SUPPORTED +#define PNG_WRITE_tIME_SUPPORTED +#define PNG_WRITE_tRNS_SUPPORTED +#define PNG_WRITE_zTXt_SUPPORTED +#define PNG_bKGD_SUPPORTED +#define PNG_cHRM_SUPPORTED +#define PNG_gAMA_SUPPORTED +#define PNG_hIST_SUPPORTED +#define PNG_iCCP_SUPPORTED +#define PNG_iTXt_SUPPORTED +#define PNG_oFFs_SUPPORTED +#define PNG_pCAL_SUPPORTED +#define PNG_pHYs_SUPPORTED +#define PNG_sBIT_SUPPORTED +#define PNG_sCAL_SUPPORTED +#define PNG_sPLT_SUPPORTED +#define PNG_sRGB_SUPPORTED +#define PNG_tEXt_SUPPORTED +#define PNG_tIME_SUPPORTED +#define PNG_tRNS_SUPPORTED +#define PNG_zTXt_SUPPORTED +/* end of options */ +/* settings */ +#define PNG_API_RULE 0 +#define PNG_CALLOC_SUPPORTED +#define PNG_COST_SHIFT 3 +#define PNG_DEFAULT_READ_MACROS 1 +#define PNG_GAMMA_THRESHOLD_FIXED 5000 +#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE +#define PNG_INFLATE_BUF_SIZE 1024 +#define PNG_MAX_GAMMA_8 11 +#define PNG_QUANTIZE_BLUE_BITS 5 +#define PNG_QUANTIZE_GREEN_BITS 5 +#define PNG_QUANTIZE_RED_BITS 5 +#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1) +#define PNG_TEXT_Z_DEFAULT_STRATEGY 0 +#define PNG_WEIGHT_SHIFT 8 +#define PNG_ZBUF_SIZE 8192 +#define PNG_Z_DEFAULT_COMPRESSION (-1) +#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0 +#define PNG_Z_DEFAULT_STRATEGY 1 +#define PNG_sCAL_PRECISION 5 +#define PNG_sRGB_PROFILE_CHECKS 2 +/* end of settings */ +#endif /* PNGLCONF_H */ diff --git a/fb2png/libpng/lib/libpng.a b/fb2png/libpng/lib/libpng.a new file mode 100644 index 0000000000000000000000000000000000000000..5b6288c41956f5615ab61415cb2c121242df76ee GIT binary patch literal 852712 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 z zCFSs5hr)Cp$r@_KFU22!j?#;FVYyxF^6@6$o3H$Eh_C%{)PSWd^bdZ6Qi=0%EB{9K z5v9IPsdK3$WN0X!HWtwmmybmG-tUw$hpSq71425INweawFtfksexdX@U+toXv0NF_ zy6i!$_!!F9xW_ZEyk7X***=3R>Q5Oo;5?U#?=ZaA+~G=bEdF*;!%z-2b$EZLa{M#a zfK6_lQftEB&h{;V3dh-44fGbG@Z$eOJ{&PeFYFxyl_To)0^ZHYnIkfGhM}!ORX*Z6 zdpX4M@4?}Sn`}-gy(1XFxOd^~d++0K7keZAevacvo*c;mqWWWbe?oPQkN*}9zUSc_ zl>mRW8g;GwC8&4<kt|C$Cj3mgo;(@hM!L z;b@Le5XZ07nt6$0xW=by&HUt?#+j&Ow<9X2uv=mSLn+V4CF>OSNc@1TVzUafAfYyo zO=mKk!d{85*cnyQMvlBbM?uA_%Ty@66VD=(;xlv%rHMwyH&e4Rq?6wVj6MU8zQ@1m z+mR|S{*upFQON@&&ZLy>y+$tjYf$Xvd=GT@2;KcKnGB<|*^z26P6|A(IsI z;PWJ$srH0RYN|a!NM$fII+R}WcOZ2I(Mep=N$}av=w)00GQTU09mk^97}g`PFeEFmJem@%`hr%y zhVmT~y_Q4k#7`Mlld)zD9dAz(VK3E zs_$_{IM#wcoc*Z6>0!lA!FgxH@oFfW4o3#f#*rt%Jou%GD%f+4Zq(}fDVkRM1Y6Cv z>{$>TmC4MZ%X{#1^e|K)yG$+JSl#SzkdyX@_FIhpE~p;!0W!t@kn^l#W;2`*Ic9|7 zqpw+`Z9pz!?E1Q)A{x~;Sd{Xc@6=FUEIq+B% zcwEgG%aq;pRHZ$B9(XLH$Fl;DWr4>hQC018l}CD7s6F<^ql7xa=h7pC)CoQ}@VJ{X z4pWnVdRnPHRtFx3(PMewaaiE-QdC&`66KMep3olo5TlOq5_)V1JYEuboR)yc$;u-= zZPFg!3p`Gy$6ErAlLL=@S(RO(Jkrw+?J=*riLrtnR|Os`0*~BdU|*v=($fL$ab)1} z8hZR`;PINk<7{;CcB9HwdMaX_yTMu%cxjIp5@De<-d6#^q$HGblDK z3}&AWsyjAp6g~>K_ZZYuI6+X<;TWE4dG@E`T3}pGraFE-?B9Ekf2-OM23LTF3D!+Q zkUD?AWlBFm!1_A*R`T~0`%*S-DO>rZuSweH3ivEiO-f2NQs2O9vC80-Eq+h6V+hke zU$?3Bw*p5VV&@Z<+VlC!^B}ktDbMFC&zFFo#>ROXJS@Rs53vg`0iRCOjbraC;iA-P zjoQ7QQfr}_aqL4i=dN0n5vSTynGqLhn`qA#99${b5ZH8)vWbhq+NO(?P5gSfiflDJ zwBfLaYn!kq!74D0S)0}wHL=MBFEEZBY~mYg?9tjL+7p9~M*+v2VDf3SvS}#Xv`wRx zO_zczo3`WRYaI4iZPP5A7Z}H^O}mYn*tC>t#<7D~Zat8|w{dwS!zANo%OHeID` z`X$`7O;;&2Lgk$=Rnp!UD)0Nj;r%(*{9AR2((4M$FI*h4o+fp- zD({7G)821Y-UpDs$KH6EJqVZ7B=WNmfba(J;;S$?2WME$T~^<|jO#YlbTS$YaLVxa z6#E@yxV_$1%|8X}aNwFB6_~JInZVb$=__}=GQl1XzkS$_ziitaG0|U}_PaFj`?B); zUEufStly(CGO&N6(@uXLYB%D2C-D0l<@ZQ9>!kk%Z&KGgHHx|1X}@Vx7b6jj!O=pW zY9}yFx3SR8ZiS)E;+zI}*NF&1H9|X8kduQTcPevclQ%H8cG>d~^7qIGvm4g@$Kb`2 zncJEpH;bb#jRnQDBi^3mXYQazZItWFnkl^PC3eO8hrrS`YS|w zMWHb~rB>(n&@kP4s^!LmJPNAz}{@=e1z zqz`DKm}B~Y<`o~y+HREdi#e*dJB#0LNXHV`V-M2lU>f*JrwOp(gkB~cgH$@0*SanZ zQt7bA7ZtK5o$E9p6}K=ILr{jodHah4=PcmL@kxbP^md(DmcmH{ZeJM zhm6)%FBPkchp-L2RfUYJ=~Vk2mh1gGB!Eq_Ir}^%MR%=2BCh?a!}|@}7!~gtfvdnL7JtMl^P0nTepNEeg4Z0j ztWzSPr`oI7j((-XV_3bRl|;3jcZ$iB zuT+3%!A)n%S1NzUkaOwM{TIclVd zV%~_ezY*m;qkOB@3tFO!ndAX3 zH9v#26rY3zWz-&G?T0VJ3S~WUF{%UA5qrf=ENeq!#n;e^GgVN|U5R48i3{{jgzVgv zhi;2E6nyU|su;JiBqnH!X>Bjm{i6}#ImO1}3CiLN;HHalg329k6f0_HA3jl;aTB>J z)`>1#(>375s#rCL)&042umN!lW~IN%EkG27|AO0#(6ve^-3jSrO0Ra6WGf}eSG*V7 zvTL-Jv~VSkJ&^4Rti(6nk&*}wZDozJvKzUw@)~6&Z(nLFuW{LPjRe0xW6`5&V;UY8l_E;v`~7jw(@(FprV~hE9Yw~Y2kJpsAywOMWm|m=PM&0WTdL1 z%{LWInYcii_$;K_#04&kXcM(nMrsZd5!E$_(Eh%TiqVvzj1kovK~&#YQN0&L^?ehS z8on)e*~EOpsMPRH^KYoF>hyA{S~7gQL)~P^LoGwpXR$gxsiS7Jyzzvnd!A-e`J{@v z7TUTfo>W!*Ch%fz1GArUscTOt<}NTW)?#}iY9w#SpJJD*)>enlus7@Q8-wuMRQPuX z;kT*qf5h;4^V)vZrLJnKRwHXpvB$ESzT>J!l%eHea1V>$4nllKg}8wssB(EnF3RE$ z*?7O}QWN&_wmMi~FK?lrVqeZw?9=u#v@p z7U_|>t+v*l2xSxi?_Qi@w=+Sfc`CaYbvLx1$gY0`(Vyn=T6>TYsO&n;(`{JsLKL9g z+w0E;mwnDSMtHW~6UR_`>5vNgn5;Qlh4d_AKgIr-#t-#u-l?FbdV}5#*2RJLP^G;| zYad`?jP%qpAT`J6uoni}Bb7F*JHmdNy;Y^B`T%N9*4mE;+LcQC6RrIRW?PNcre>Aa z-X3VzDD7{w_Rr7|*%_@(&5YLeOH3*=N}C-&Ea|~^ey*qX)lhSx)-DUQ=PK<&t^E`m z`W78FHJ51Z>4A2O(jK6-^HC%0rCOVs%eD53Kzpgu9;vmLqHOIubvaX$o6u3tTLSGn zJ#KPlU#QFZPH!B}F#{{(%W*qBf$XqsyX+ur?DUK#7?|59rMh%-Q{7XY?IZ0xfBjJZ zxuK}$PA{udr}H4dR8vk--riA`n>xGGIh{tLfFfzApdJ#)qbFO0m~D^jV&mk9p5UBM z#>H2J;!a&`H`OV^K&XUIj+qb#qF|DsF&zPEN~G{fnpS>0K^~#sJW&>D=dSiC3A!H{ zQHFFO*QVqL9#y1WOJD;-p}asj9Tm|LD;tk4(?%)Mt;9Y*p>52n|# z>`qzb9=RbfqX)-n=yBOl9OU`&A&S(Va2Rhsy}@FJfdxa@DY-@eCzja#x@1GgazMW> zbnm535aLP4iNfSgSD;)@raLNm5Rb}_Yyfz7v(BcGDwyIBMPR2M#+x$lv`{Rlc)iP1 zEPV(L{FP8V!M@ao5fJyy<~40CMI=lT@{+V)h{A9GuwQ1y>EXEOP$t2lMxLJ-gbPgl z(2H33)`Bqg&=s1;uoG7~F3fcr13ER=sS30y*J&Z>@?58tplfrTo&epL>$C}UTdva% z(0#d12S7cx@LB7NKnLbJah1C^*NN-b>LoPR4GKM6_KtM}b3*+nSNDRfaR+dEQ2YKG z0JU&*ROBMDZH=cQ!@;S9q9|8k5wu#3?V-;-;u3uxL`kpRaD>uAr@_i82$9>G=HYNG zS!P943~8lO3(9Z<=;mA}u0?;H>r{ZTL@CD;+3e%m@njsdm^f9Rdql3`hBJw}THH{!4K%#YC>-hNGkWOdN=g zKyfI#tTYJlLTHT89tfAH(?Cl9lW;IPBG-Mx(NTUmj!>p%oq|y4YoYe3kjuZ}P$<6% zM<|r6QxFP$J)wOnpr#z_PQs)rpG<|9^pVBtvVFH2Sh4PBhO-eeE zprx0F{qBUbW0gKc+>67-?e~XxasUTjjdT#;sX!;j0QoqS3QyFC%$i7G$jaS>O@~$- zq3qy-^M+ifHqfnyIvrF_L8ftSI1dL4kjN!hoEMq6DDQ?N6c?Q?S5D&z^byLItaL(F zdU-fFE<+>r1nu`SBPDIp1}NmZY1kOb7pmxj29i!MDyQ)T`Un}5l}^Y?17j$~o^KjM z(0&7BNDpcQ6mt0!#$c+gf0V~KCeJpybQ+gIP}G0wvD#!}2!e zB}gT`@Lm7-l2lkL2A?qAI58l86*FWJmn>J|U|dA5IpQ34>L2BsaCGqUhH?rj3AMD- z1OfvIWily01P}^?3zFO`&uEEUB@9PP`Gq(-c;V~*L%lAwT9s3fY6i4lIR$ycb;BMw zLSb>~ZxRkhPn@jJdl0$U2KQ2v1JvdAvku<*M*om0)LO5!0#oR;Q8@(#z_14?kAZb` zTBe)=k91n0oC1$rmgC+f8cgJ(7tVt!LHRQ{LPpX_&3v*|f=+`t8Ol}(1~g9xrf|7F z&m(fp3XudAnz~DHAQA$_p;D%Ft&)x>Xlc;gWu+6If%J8y7^IlemC9)%LHi9ZG_JnU zgKIUnU|gerd*SeR?Z{z~{?X$=ZM8zKXCVc7VR@M{JIH@}sZ~zn3G@+46s7gbDX^7J z7b>TT1nnV6XBC_nj%!`p;_!sNU8^Z;coQ6M(vDff8OmB5q4J~C7UdK~O{dMuDX17+ zM&pB*A&+$Gh9rmD0y-5bryP$lII;gB=HXDC2v2(8K!}6_Iv@NH@fjS5j<8;wi3|nKgiXr1^daIFbw2nZ;%*#JA?y`rBA2K_ z_LF{{>%^re?zjzU^#bjk>%>K*3v->gQZy;oiOWILa-FI`Yjd5rurn{$iK{m)xlUZ7 z;pZPhc5xkMRj$)NFpAKZc4`TPJhcf*Ao8`Um1 zDXD^1cFYQZs_=SL(R~&A3+9*VZ?b^Q+bt_m>%G{dIfo&h2By9d9zI zZm6xOtkxoK5Hlit);fc&N{u!3by~akup}wwB z?Wr=t`5lGaC1r$xPi>>x?qpSMEdRl`+N@$^nGshsmRDtJtW?izV3o5f>grJP zYEy{OkztGwqa;O|JVXWGLVKnGaKKY6%YIj3NM@cI;4CIJ( zaq|wmah^G3>=4oBE$*0Q$8Yc`Ns_r!#hnfp67^m(S8;8bmVjVU6m(rE$pMWh2(TMOiO=y;l3xzUt%__Suaf!E}m$u3pq5`&91AT zTccK|c&Q5F%7EpBJRQ#b(rJPE!#HYkTym5%MwH_^ z*SOMm3y6w+6;AMNRep9>y<~wuc^x5sTIv=LB`@nGRi8^fHx_tGS&!j6SFcF zZ<{M6!I6PiBVQE$)O1J7g?ASDAGgXngYF%8;|gJG3F5vG`yl9oRgUSJyQ) zurW}1!UrUCB^Dok%ymLphTX&~pLq=Qnk+t|o240xn`A;fWASlBIFIyhu3zI}*Z)u({V*~s#-J{8zpMfq+K(iyeQjkA;s-@c&~sw=7x z6B}*i&d2oVKDVI;jao=BQv{iY`k89TcU`qMlhN@(J^Bg@tLv&%h3L8cm<85SQj(~Z=O=DJGtz?=$JF+TjY zfJIeZF$euJ-K2*q(6AIM zKi+XRzkE3Nz)^sMi|s`?xJGV%193hWhgl>agLAHLn;(}pHsjcWV=E5xiSN{QBu;kaekxHZ*FYpi}7)7b5*tV{})1S&Gf!AD=Yg}G|cH! zTT|COuTMo?RRg-K>Wb+#ealJ)1mQA!`PGF=rlPT_3O-9_(Po^Z1aOY5*55MM?$Afy zMge{x!HI4l1Ii-PWP#`-&;>#8&2=@10Se3_E27HN?P_;fJhp$A#r;mlaRv^aAMQ9k z-*P6BFl#VUx|BC$!NE!~jVK5nl??p24^o4H+Ux}6sFz4<)}s_*Cy|N8bh zeSE*0Uee;RhYC>=U0=LqbpJD$;(ntaZtY!$7fr(~)PcoIM)x1k@20VemiUXcGyXac z`bZB?+{TiAqesVv^tohw7cKTnNB8S{Moti85%lcdN?hVEA@=S&x)1z~?LBr(-!Xm1 z$5!?o*Y&1;q9O74t)oY)_#e)72SfZ1J=_OL9n)uQ@4lC~@lnXF>d|hh#BGqwa?_*S zrWr8s;QUdjbhrD9aQ^xH5_Mjp&KHHw>3)Y#{eLK(JN%N?-lcA*8C`BhB~kT7XCdN3 z5kha53b$4H*{S?I?9V`MU()3v+S})1*f+EP8Aso6y5xPSJ9m^DM&> zPru$}S&mFUL+9lTe>QSwOh5d|$77vq!l{mGtX77U8Qc;7Xf1rb*gJ@^Z&d9$we|(qGrG4>b8QaF1&~+Tg z1f5BS{U9cY)zx+7lSAiMgwCfZZ4TVDHeP{JuH`(_(nCfi?5)tAma93iOf2*urwR?8 z>A~3!mUF3RZcSYkh8|cJYqT;Ijg3|VMk&<|HLA~R!k{&JrnZ?TSTif;%&91EoK-WU$!e-^!T_MA&YE6PIeTV9eRExvRo9GR zj-EOyk4!{(P@v|S3{ki9fjQJ`;$)qfGFf@mb00mCsjYw)zV$=LkAXiX=KZXSrurGy z0yT&UdC`-LxfKm{%zznn=!7aTE@G@^u&GnU0ft#6qm&r{pe;E=;YJISX*Kq?l>I8- z)lj^)`nu{`3q33r0%UDyel_O03-rjzYRuH45OsbumLqelOeONHE>qD^F$ZNOvB4}& zvIAL)R2f;}Wr)i9>KQX?Dr-=rjVyVqk-;^h0#r54Qo)&$(kWz8f{8y0w-Sq*<#XyW z5|Ej%8bmU#rqEQuBpy9?MRRSFRgNUg#Hd-7x-NmH3Qj5mBRNg3sLjl(u(D%yU8y?^ zfl(S5WiwEdcC}`M4B*7H(W+{mGiSb~y|S>NuOs0+Sl5{hLcri&udC>#0aV{mB}BzA zfd>nOK{3m+Ms0ol?B;A91*L}pMN@X9%V2_`wpmIH0#{3FIy+`G)X$M<4>wmplFR2? za~N8+S}RnG$8&11z*2=35ME5i;zJiq)li%3)KxN?&sM)V)pN>q6;#yMEx>Oczl_gC+J^^;MQE}Zs;=!*-`vy}EjHrp)30PeiLRyL6(LEkDN|)X8&uUiz;~uOTTjgL zu`I5J8wpvfH065eB70p0mH;T$oq%MIYS2{f*H@|L09^^PUL`8q!k4QGuhT89n6^wN z;V2Uws>+l)u2(>=`UQ2R*Hl(!IG>(TTa8PbH&P_WdFAPwEi-B>W;UYM;sr``XK}hd zPZ`S=Did6rn3OUFbPTr#x^PrX(onIVP^H8OvQ4hZzfc7UH3wXq*K6%27elpFnjRgM zs!-WwT#g5_T^O6+?EL`-m0d;3#+Fk+`i7FWRjnM9>vk1Ad^P$YTpyv{HD`^{wCGrN ztf;jruB)i2RaxKR64CYBBug#W%MGJ!2^i^Nt`^m!wkmTDaIQnX)naX+++3)v zz$zhZKsZFP!Ykr|-|~T24^#uGD+H$?G^E*F_#JxQ@Q_FQnGB zkerQ2wuoY}sMaCWkTUHZZ~W!h z#6f5i?g(4D7VEK$T7d~Vdz0yhX}pvo8>6av$sK*69u$}X{r&r$<6GbNEvJH z=;^^lRYg;U8C_5ux>40wjiG0imC4lT{NS5y=3w~)V@O#{4=tOSG@$3wnXKxmzQ`8f z#uEC7U;w6DGu>Ba$4MAqT-#h-SDEcYR!j(HRa&N43Kgz4n0@N&Qq9C!7#!2P}SR14;c(d8x>Sw+O6jk=$^wj z+|-zu5zIqEsxV06pbynpS*gYyxU+%&K=B-}Xl$C$xyUs(i_;>Nzw5?sKTo0P~|%A6F|XMO9$GqN7Y@Q$|rsMENFRj zD=2Aiv=(%1K64617b$LVLBG6~nW8S^aBWvtqFz4D7M(Orp{B}=Lbz^h)n_VDN0}Fh z4Xb=AA&ty3j!tpmv6T-+%5=~!-NA=9G)T9K!d4}ot@PnhLv|9W?r{#k_|k$43b5W- z(7&`F{+A9YD8iNAP+ePH(O6w9OWUCqP&ZpD<)JQ&V^A6XqaW4TN<&%AELDM}GI2hq zOHws|p(!$FjM)|^=US2LG!$Q`xs~itcd+H^uB>mwa6}D|FoiZZA~}9w_a(~->Qt{5 zsM9I%fLl;Cm?<&iLo4tm$HRMRj9bv)hDNcfUWY4isPACOWw+Syid1(js~Z}_-Ha+4 zMiHLz1nstoJD7o)#zt*e!F;-A4of*S0HhCDbI5jFITx`W8<~(zS@K3VZA2BE&Jj6+ z(RC?%dr((vGgVRbf<90oWd1Cp05w8U^HAkOPpxw1@VblEH9a)Rk#b_(G69zX7>ZW4 z#2BT{sjtIeU{-Z=11`&&N^TwEyv8Ia$SB>b=Cns_8ndktO;??O@v63A82>83aFM9; zLo-Kh-KS@7i>cz`bpaWhLKC714DoR5P3SJYY8qvzg()qU5{xIc=S63YnqhF!MhOqC zX1aiRC9&e0m`$-|bS{U6VXU~p>RX-BS6Pia@WueOKcxn3U3S>Qs;n-_><~S}F`QiK zYHY%Lb80|_#+8MoZRYqXW2uHywe9+{#Y&L6uP=Glpzrso+ikPzn;TG{)EHJzl1x*r z+F`vpE{G5%+OhHvv^!aPt-Kz0XP#dT_qYUPd=gWL^GinxBJ7I1QU z)bQwCw@$3q^VD#9zH0VZSd#J_pSV|S%0O+f(JO#D;*iwT+?E-!GH=gnRqYMw6Q^V zD2ps6AnsnGS6yL)y#&g*U~;XZMLtP4{1KD}3vXtExE<`g0 zRcdNQQF;|?_yrf7T~LIMy!gNL<3q47%c|hbMaw>s_w&xchA-cX*+oUywq@%G3YUdKXM7N68u&2g4f4{Y zlaJsq9Y&8&&O8H-JiH~W$H!-S!`=AfvorKpfP+6i)3O6NG}Yq{`!;8pd#krJa*Mwt zIy6;k{P6LW40KEy`P9i)I;d{s!!efqsayc_m{Fm4k+cj$*X zx92mRM$WzYVfo|^oV)VFa&E~FbMD8Fg~H=z{4nQEd{xFJjq~TA_qIx~8l!QRIm3*o zM0N8e9Jg2{({U@Xq@kXK+Wkt(K%rArJ-t~L66CyM`gANrS;DYF6;{kNPiL>jumaC; z0?PupnrA=yHlhr^o|3Xj*9 zN$<*#ADmkI$}OvaC-O6KtpE>)Hw)pRDN*^yWSj6F#kui=Q!6nIkJ#`;en$2jxH+e2 z$uvCfewciD7P4@>^FrxB(-g$}D$W@m>kWS=%&@Gpu?^1rDC4n3(CA%pgMOEEN4?*P zo^ihkdf^|#;%^TQ)a8sK_(MHz12;dT_az+6Ib}~kk54;}9Kz{sL3;Ni0@ed2 z$K*594(H&vb`k1vC<1dz3{_t%u?*Ka`f6U+yi6D#%aL)0!+YXRJfC-%@_<^-&%{GV z&-(1Uu+Ys(F~bkXK#p%~ggrnXU8mI&7;Gy!$8Gwj<;#O$w4CFwuzYifGklK2!g9}K zHsYh4x@5+VU9%oD3WvbJ>+Kr*;g7q4CiA)dSQl%{XV9YdFuJ z2=R3|-xT7n;Cx4jZ^!uo9JGP(A)(?cin}MLBkmskg5TlKA-k7&C98 zd;qwaFOg3IH$SGQ3f#<_C|}e;en$uX!w&q%;AVbB|9oS&nOBj&*Fk@G2mVi5qIB+uuBIoBU%^Zk)0l1k1k+W`@IS@J5ov>Pln^C5c9$MSNupoZHL{byiTlO{8&YOV`b7!SQi_g_SE`;OMnX|4?i6D&HK`@$xL z!M%izg20E|@i@do2X{@?W7k~R46Mw_sT@g8M&(F?xO0|Bv&kyw_R%1QAPG6zCO2#P zR|Pp+gu_ zh}yssChEDHjt-%6XP9dDRPF|;&~mi#tX9>w9du)~W}Pb3A0*0=4Pd$kZ)cLmI;?^J<~RNYvit zfbbz>LvrqSWFrZ0H|Vfoufts)6HvININTn9j<>laca?MKR$368+9Gi1J?ca5Z5j{3 zHkOcsR?ca+!nbAl`n~Swpq~}oN5lY#W0~$)sNfsvx}S}42oapGhwDBNFX9l+ceQoL zK$P=B%Jb0YbRVpr#p*r+{U7-d^gBfGNg|(29EEs@qcN@^V(`irjZwcvc}C<-BA(sOTZFF^-YR^(@HXMwgzpr7 zK)A(uEW*ntBK!j3gM^O|zCk!Yq(J@c!gmWlD4Z|9r@R{x;q?+eQ22$yCkw96<^}b8s3BpSR&lMaac%|Sqg7XFOfnXKR zeS(h(J}0ObhZ;xpeO%I7o1`AU`!qd5s|36Y^UHe<1iHLAEcH zzb?pczmV?|WP3yYonQ*>1Nm`+y#>z^93{w)>QImE4RNj@$KK@k3a%CWx!`MpZwu}e z{8lg-(f;{LK!(GY6%x-D94Ry^0Tqjs}Q_a@Mgig z1RoZBR`6B9w*_|zekN$gB!0o3g8c-C2#y!55WH6KX2H7z9~OL8@KwRL1$PO4CTL^c ztI{vnQ?Q@l5W(?+6@u3a-Yj^R;KPE?3cf1%w%{(o&jf9>-zt8=o`U@ZhX{@r2@VzH`T_l2Ey!;WkY6u&o8bL|>jZxx$PZmo z|967B1wR*b(4SJ?S+GE`ui$xtV+E%Q&K6uC_&vc@g8X_a!+l=xSAyFF+Xeq2Xruq8 zexBe7f+d3I3yv3@CCGOT(%(ITj|x65_^ROl3UZu4{eKJc!#L!}3Z5)DP;io9rC@{L z&4PCct`U4%@GZd)1V0u$D9E?!G2VQ^lLb!~94a_oaGGF7aG~HGf~|s23ce-yf#Ao2 z2L+=T@G$e+TS3- zO2K7V;8wv81^*^^P|(9|2B!Z=!2-b& z!9jwf1Sbp55Nr}$EO>|D1A^-WpBLOD_>SN%!SlLlJEjU=BY3^wQo(x!*9tx@_@dzd z2)-})XTdK7JxnZ^-ZT+o)h>c3hdMBHx_evaTM!AptocZFcJxYrZmuSxh~!8?f1 zzgzG@abHJ-{*%Ht3cf*v{#%0YiTf@h^#3gUpMtyzM14;%kBIagON9Oj!b=3tB0~RM z!I9!VkqG_C!eD|kTM zza>JSb4XP`1&<>_zo%dyaX*s?{XxP<3tmQq{uIF(;+`QwzghSa!8?i2zen&PasLSs z`cDaeNpLd}`db9Ii~C1J=>J9dzXWZ}g{dDAJc0RMHKTUXl;pY&#eJ{veS%*Jek&Nq{v3v%Cc=Lg!IOzdZ-3zf1kWZy{{oR;EPSHy ztA)=bBD~pxbH#n3@D{;41n(AnkcjXf75-zv7l^Ru*TUZv{9hvU-xK*q!v7-tAHx4l zggxI0b~-`(%Ok=)U+_f1lLh+|5&oIN&k?+s2z#aozgloQ5&E-5ex2~^g)bF;ClT@9 zLp<5C9uoJbhzR!uk-seXn#kW0`R|4QLHM7A|DA|%KPMvG@5DV-pu;_u2>J1XClX=r zX(AsW{2bxKgpU<|1rh$Q609J?|20I|-7I{8@LPm07ru%J|EmRCMg9|!uNVGH;hTj2 zM))@2?+f28{A1w<1>K(7t~?^_>On-j1%kcB{Y)b4A0&K?;AA57rwYyz_eLW0=LugX zxRMC{Rf229{b?ff*9(6|_$J{W2>zJ}|DOncN`${JM9y;_Q6kcFr0}DKpD6qk;r)f5 zDSVjVrGiz0je?5=?-6{6=-@gO{4o*7GepGyqVP81ZwcQj{13u+3jeF{{ldQ!Ocm*oO#v`U##vggxhpe5CM;g-;cnDekqx=L%ma{QH6r2>wKHgWwy2+XZ(MVaHy< z1LFQ25%zc|0a+m}fQ6}Aq2>&E;FBbPR#Qj_%{Eig)Si$ikpCWQRE3Cq~MtHOE z1;TF;ew*-ng+CztNg~qytl+C6e@pmp1^*!K?L^r1cX9t*@H=sjpQ`Oi6QOsUV3D}@ z5k64(xxz0NoI->>R|{Sv?#)Ex*8<_o1n&{|Rl*+?zE1cr1YZ;P-w6L55%Ih)xJTUg z6A{lpgX!8Ia(T=?@ug#Uuzuf_dsBEtW@@ZEw31i2BL{yf1vBGS>F2!AIEFA;fv!Slp@ zBoTV!gijUuG{IVNpG$<^jlype`5l4}i2IL-(Bl_5X~zbUZxq}t?(Y(z_kr*~i~JM8 ze~G(YqV-}#gqKfr&@K!168FADgf~F=P>~N4oFML35usNlJR|ZZ!4`4Z=A1M4n z;Uk1k5&Bu_4f+rz7=vlV4&ttfN#yf{uNK}ae53F- z;X8!y6wdv}v}eC?&(%Cegj>GwZo+#DFBPutqr?AT;bTNTPIyLmlkgVdON6%yUn{&# z_$J{ygzpr-PxyY}UkkT9ZEu1Id$`X><*)Dp;p)CSQIpAi0x@QuRTgl`ePRrn6!JB9BPzF#QSq4?Jy%=cKV7vmNk)ELE@)>*LPQ}<)yuj)w(M- z_@%wye)ruc>KtyCHKElPQ&YfBp`>8ML^Krr8HG5oy4ZnzMVi&6w z@nl+eIW4WbFvURl6F4P&0r9ousyyq7TXzx|5$-e zQ_Nbr)5>dYUm0&V}Yk8?#9(28sF3;hT= z2tPK`uk_&;iHbA6h{R9bfzUN!M=7^jRoc+1{6B?njT`q-WN<6D`e?fl5Aq{!!cM@x zNXS0q$0w*K_>DuEjPG*%cYST_7N?D$7&q1_)SKAA!_*~HkBrS<{b}q+3C4$f{i<&( zZYAsV@|}o523RSgBr`R{r^P`bL`lqsx63IngVm8{PKeni|jyc zaAMISWE6t<0m|9&BJBt~;=xNXV)VTh1mk=6;BSj^hYMb-oq< zC+zh8V2=fhw^Ly?>Wv1s7JoXZIq_C9*kktn(UN5}zZqy{^9^fow@`MEd-D)QG3hN`8qu{Qk<-U67T9 zEl#pOLiX=%#%)HoaEX&#hWzq>z-(~~mpMsxXZ|XFkj*Vz?j$c@Y!7I7a}rcVE9O`mm=bC4DO&)-wh^-l6r)}8g5Zg7$xQ~I2y z8=d43#`_CR+nnT6Owoq5xa;f|ZgP^tnK>_hs_55F@+%aCzwyL;N?Y9IHKqp{BVW;UnVWo=%59o1ca!*{yyd^D=?XV_0{yY$r^m+|h?@qX>5DjO;- z|8JVMc*&2Lv7g=z9h9$^{0pu6J1}rI(z>kiXLOUN5lbd{Iv z#pHjh>HV;o%HL`FfS3M+Nw93qf9R!Gvwl0mS9|GcEC)~c8ZW(%g%}b3pqHLPyQ9J% z^3uO%Fg2cDQOV4KbJ#Agy zTfOuvl%Htdt*X*CFMSF#{$!DF_tFE{lAI!ZhnMEQZ@)erzC4od%+fvIF6hGeRz%X=f9nsn^A%qiN$=&wK1AYM6-l4Z_=XB!9Z5gR z^j{#nHIgo+{6gVtBk4afzKbM(*G1BsnZ9AdpNOQ}SjmUm`hs~Tl75}_V}$Vau$THH zg>Q(Y$I{+W!Z$|JCoz4arM%iAY3}Fp#|YmPNqB>h*`rz?eTL43@wa;aZi zBk3sZpCC1NGPv6A+xn1~LKh628 zztWVSpRQ+m?-&11_~~xUk5;kw89&{f_CIX@O4+;KPv6P*;SrnL#@xaUe)@aNpU1?$ zjeh!RhWEJeHb0F?gysKK_$EKSo9TH{_+~%-GurnviGK_1q5gAX-&Q~UIP2TgXRAF65o<&`UTqaNAbTbn(oH(-)VnemH+Z+n$Mg1d+ciz z$9L0xk2`Xs&!d>)m53|S!zpAIc*><7p+}0GGvJcA4oOJZ(SdysgX&15=de|CFyvxC z8XcsWm*kes=((E3RJR#DkJp=1m{2`X^nCU}PGO$vfTDxh_Bw_6s>6v6(d;PID@2F> zT*VF&_yzLCDJ)1bo1!zAOHN@?avRy~3gnSf*p!?~R?8OIDV&%59V&cuj!x~u z=w4!$+gU*UuwF^PF~80UeL;$?c@bi-lW@~Eq2m_wb6H(6>i~HJITkr zqT6&t+w5d3>F+e%ZYL)*-rsBG9d>dx)B7G*?ojpZJ=su9qN=^>#sD{>rkf(b<;~2=v6}Trj*6Zw5y#X5N_VDQFQUhOy`Xt zk{Yo_vgjJ2jy8R^P)~YYE~-1it$-ak;n?PkTFhc%HOIb#uPybFzb%-Nxgq8)kX zp*&)d7acY(X?_M?y?qODy_51Kzd+piGjGN5>gPca)98}O@&kUlXQgKpF0}clflpN+fgTu^j zW;hBuz?fL5s8pz^Q)y}OEle#e{7Gu1MMg=U!UA#1jLb?)i}bzk&+~cKT6+ui?Y-XX zdjELeb?vq9=kuJ;r}eCLKNWe6VMg&+n6p39%`hdye<5mS`1vfV=VdQ}Ib6sbKH#VP z16J>Y>T7|M%Lc>|QZ_$On});ZoL@&4LMwkHbLmio=i6gZS}JIQX*_4XcOK@LeYnEQ zxy&>DvD1f(ww#6D5h;&oAFe!dF853W&F#aLN6sP@^JHz2vslIaK3sX^T%qDgPX3$B zw=2Ep7>jyl=_kE82r?FB!1;5TGmYL-(W%FOKbKnr{Rg6u`!9!eC!dU_IZfUsv2vqW z;X1)sVMpJe@pSU}ZePwa@9SdkA+g8#wb*m=%UCb2_MR2fpNT1F+r}5ByFY86laGUm zXf0wd|9R&3r@ViO8xPf`pUk+88xH8$L`HMTX%j2?gBirNUNJ0Ue@3ix=OPr*P&kb& zkS=erSgsVyoIM)LlNmE64Xu@#eWSNQ?A?I>LYY-^qsG`}=kDa+$*}MC9uRBaz<)pY z30jdqNm(qqiWWD}zbCz)i^Ui5UnsLe&issje}XM1zc17EwD+D^`vCv_+&+cY3a7o; zmy0%`@bc?WQn}0B*>qKkqRMTRX>R_t@F6$trm6p3+F9wI3?K5RLL>J&m)mF2Qh1P8 z@kwaMqBZz0bT7gGdffe~=+F6@{5es+DUvsr?=8flH{-vbdoK;e8vmRDaWty&d6%WJ zOVhgwC6~95N;IS1J5dGmE~jUa5z*dH!gAiClt{U~pF(xbyW$$L8SnjL_>p&|v02c2 z5W`$zY!)V#w>LO>SKS2Hkr9J>FGU{YRo)}+ihA=oU0&5Z@iW=`eH2DsHIoq;F|zkE zBtEZ(apa_kZ|>yPjT2vrdw&C&lvi&;DD7R&@EVLX4(VJ8-+NsMhp{OC3)Ui4(Y(iF z47CqmDTUhjL@OJh8|4GAyhditfX~5pZtUZHg`)RZw)=_lHU;uyI?^1Q^lKO(Kj8A4 zP)YB>9WLoT;L}DVA~u;$2CPHslCcFV@$y6OPNXKbkPCa}?DZij+PjiYE;nYmz3W3# zy!RiG?${z@R?z#eA*rzUbhL%oVq-R__oX4J$cZxW*cI9vTBR`up8Re?C8kTUwEV{gJiX%Q@Ly zkEFO$q}jV~!(iZSl$1M#o5BM*#JE%b1lP`>F~|V7!PrX;vi2Ip9$z?i8(8@U4nkON z<3&&o2BC-JE)&;77$mO=2Ani}82U0alh7FYIutXYD55p$jKb|sIfeSC&=$@JyD8LD zw_PGYUv}Vb!~HINI!)r-&bZtLti3B6i4Dk}&U&BL16N&YV1V^^hb~5wUlhC}2 zB446)*E3FEqWA^WN+Z4iafC#1J);=8)frX_92r6H<9?RCtGiI*{0?-d<90tQaefCT z66Zp+eTnnsPz-B?4T*CnBwnYw`3(9#i8LeJjr(C3^7R)J>H8Sz=b?3)l=yutGroj= zI=E{b_p6Kp-$930U%`OkmWfyNhU<;tFqw!qO^jD%^lCD+j8|p!>N1GNt8w&-`<(Eq z7c9DuidXc;L3p>qn4kJ77$e6Jp*SNuGc@#-;p^+)5?NzBZB;uXE&c>@O#J?MM2 zk6v*r-o$Djz4|!BVVj{a{{4df&4nJm59z*ufA=ky9?2nv^-lkxHid7|ueGpvCcj+n zzD0L8(H*J`o6cdEPS)Y>hA!WsF*$RX?)Lib4%6MQjk`%K>cKAEJcIifbZ_$A4dz|~ zpLLDi0<*oiM^>Q&cavP9dADv|%?N)F+U~zxx;}_Ivfg&_j)Js}M$L;H$p6Gv)ml&Gp>-KXCVvkIYJvteFM@Bj)o%C@SApWY% zMS-2{c!>*7y6B`Ch(}HzSV5;npxo;Whmh;KGy1zw1=oq=e?`@3G^ zq#XK0o4tGc-j2su0xD@Q*Mvf`kD9_c#R74A63lbx7B3WwWi{t5D7GPorU<9i>8gZ;UU48E)XO9(e!HE_`)5*m|g~zTubpE zGTj2vbuvstJ{wctXSxl=%9#4GVnE%vnI<9!2&j`#%0=^IxRE9Tja}yoF~T2B-@}bG z5sc~OP{~Ep4{;++gmL0_(IP;DDCZH3n?>RPe{}N(Zr7PlFs6P=-+@*fjv~&js|$hj zi)v`gMRNuf!_;7fGyGnvX+MT<5>uv|BHV~Cfibd1;vRqWf+^Jm(=`%o0}G`+3X}iR z?`AlW!+FSTVmIz^m8JPLxDhsi#`prJjagticbjkOS5D51w}^uZ>wxaLQ^>LTTPCyWDvG4Haaqj`Va2#!GGP*MU@KMc;Jij0GifMTO07`J{x zDV7^kn>K1)Dq6mGoCPew&FmnqGipCOXx@q&@#6u=YmCx*7?{otOntxUS0`@zO~f86 z)wx8@0X%2@+nDs3iBuLwa(?NG9df)bm7@MwheXz^cqYDb|=XN1Q_jrliCc)@9BIL)!8|LQd?c zC!A8&B4=n;Q>I-MYU}WU{Z@Pc5o)Mb)O5(qN<@4;j|{u@EizZ47C)#*El%uswP4^0 zQqO5k2BXe6Xz)POML=@BfdA(bQ3edbv%_vkMk&p?y%98;Njklf_C?C@xfs+;r_bSbNDRJ z3TcPi;39$2*hY>!@K(>^4mO31FG`~6aUc65`VKclKcbs z(hg6yQ751-3n$9g9c#&JD*dK z=RC3vg`5$+7SDuan=y^-(YXCgGx-#z&%h=|+-&xZ%-1aGg8RzU4l~qo$w<8rUpN&^7gqstk38DCLjuvr7 z^56X@*4i#E6Ox>d081_>&%#`+y zS`c<$*KM`N;Z^uD^mA*iJ4wo%1flCeI`{}3*TTb z6`KW&%(&mH+31~C?^UI|u`|6(XL`fxFP+u(8Lxh(H~gNm*`>4ApXY73Zf2^ibXJph z%$Zp>r+k*Tb|b>`@@JNK`6+K@sS zHrso_o!P&%1lDKvFDt>DDX#0YQQDepC@tC78`Vd;Hk}-p&asx%yxQ`8mccN$aJmZI zO(6ZQt!rzNwjwmUHZW;N6wHV^9*l+HlWavd04ifcYp7JJ($f41gYZ&Twl_A_cQ}Tm z5d@_H6|q>(m|K$9SHI{hhM{ImQqo1DX=X8I!U0ZRGCCOsPBMU2@-emvm$Z|um1WLa zGw*R3qPXCPoEUqPU$NVNwC(Nf-;$B2s`~aaqd&qoNlagLc?)e zQ%7C)D2Lod4sz1h?$oYWzFccZum&&{mAOo-9H^DFQRd;CLgd2>7?XMwqSPp5JSN>~ zt&XG8aHQP1c2SN_EUGFOl{!+ci^@y{oT}Ppr3N;0ZIg{H?ch0uQs%!lpK% zU^!$NI&+i5T1};0X|aXISF*gbWbG;@!TYT6jM*$CeH-u~8M=k=N=H*}3qcjHtcXiGFdGFXj5hpja{B1%47($6~K&)5s?F9sBYixsah$syr9 zy^?YZntgb{Btfv*I>^`!Q2LHft*C10;7&z5HXu-(+XUF(F@cVuFHE7PmPK&uvw1Rc~P+uLMrz+@!PjB;kk5N>Sk6}2al zO{(@fObBY7<(Rx;2-n?*(9*`#qqVK8TF@tFunGi2873j0T2a?hvqqOwEE*=lw5zO& zi8z?0QVTlzP$^~5e;8I{+re^J;{;~0{9h58LLf6uuWy@=UxZRUzz2aPcV<@0M1lh- z>a%323@T>6l3^3gqGNT3t!|B+1FmYsn7!J-8YhFwL}JW9vy#hUCfr||78CHpn;}i= zZ@7Vk1}oE!noMD4cb`G4))}kccBE%3%F-kND3{NAsLh$zW<3&PB;`o$^a^L%Us)!`g!~ zql4{nY16CCAc&PtE0+5vr7|nxx=I7iE^O25u-38S&{L^uAp#gyn2gn{WD~Zwo6u5C zTS#+w)aorGc0DG5GT@;&f>d+NN(*tk=`&3I#k!2IQv1s~vj-Lpa+xr=FwtW&0Dt&s-Jtkq)6aEXz@tg7v7D#O&wJx%W?Q4pMh9<*BJb(Y3WAKQouWc7SFwG?(R3)Nvl9m;sSHiMHSH`&V5k!4K1F{Y`TT zS1K5nA+jFJ=p>le$kbqB$rhVl(Uxw-<1lT-QpL3*uxAX`CG60ovY3``#^bci;Im3f z`cYY{h7%mjQ>5yn(D{7E&Sk}oEU9(%>P(w5<-+7Bj0U6s&0sKzrz3hH1m)b694M@Xc?E$Tx`~%G2C(Ao%6ULq9cv z=dE!X;NoLdy0&Rs zN-XYakB{9?SJ?ydDzXYAid`zt#!dUy_(b+fVTbV>i<=kiEip>@XSg(+6eHm)&21@5o@UNQ+y{y@zkgb|V zx0K);Qy~qjd7Et9%itYwf8t8#kq8^9*vr1y9`Z|R(9j6lx*{(<8X1FXzh8gy68%|g7U3`0mlvYbH ztpEQMXE_g2m=^sq zA@klaI~I~pgIu0vKgeL?|9C&c4X1eU5YP8WeE9z&CphaIFXlNpb~*0Yi)DS06@Zjy z;HKTBxM}|ipuK2bi<|XfKW>_@1lo({>#YE!+=biDcWD0>$lWLwbfe<_PN1FJ(ENWO z+c^#8$0_SY|DMHd=QT8c#To)>{u|tOo&0TA<$m5-v@EAa~ztV3faza zD05LO@s;idF!ksgI*&P%2m}JWm%a|d=nlu)P zb<6oUDp(tc5>s@3*DBEEqeD4g7Si&`ZuOCzSeF%qwd^nYe8utht`SLbg-N;H3Nt&X za@dRkhPRi^crX-`6OOM#(b0DjQ3*Nj4Mm}|ukmo4?-*s67a@yjK7n`^%87_cODz%h z+1Gd&kXKWNy{)RxK84@Wd4O`U+GiKL+$r(0s^G{Ze8n#sVPS^X%hL zOnO!mF^2I}A>;7?5&k_wJO}<0&oy(G2nL2Y;vWI$0mlU*`#~a(1v>oBA>Xzn4kJQ9 zmN*d@jwYfLL=?n6+Zx@m-4QDkFIT)uu}-mBv0ZVk;wHsA6dzICtGG|`CB@ej-&SOK zF#KHP7mV_>|&)#a}D(yCC$JXDX6op7OU#WNJoRh+6gUy<*7Gn`K;b}HVY zc#q=$DDF|@2Q%pIpyE-*V~TtimgYr@#flRY%N3U>HY=`E+@iQcai`)Q#eIqg6^|+& zQ;ehUlJFIa70KI6{c^=6ip`4a6t^hiQ!8SBr{W&PeToMak18HhjOS|jip7c(6w4Kt zC^jpuQ{1AsLvg3#9>sl%2NjPh9#f3xY50o8iW3ye6_+SBE3Q-AqPRnGr{W&PeToMa zk18HhjAJa2{8ubioS;~)xJ0p8ah>88#T|+}756CaQ#`16RPmVNpp#7aXDObiI7M-; zVx{78#cLFARQ!VC{fZAOeqZrtimxjELGgXXUKoIw4+9kOT?&!Q6#3mDn$K3eQgNB$ z8pX|uUr_vt;-iXBEAop0^p79q{E-?^iVm(K)GRpcwS)SsX@OYsWDCdJi?Hzn91NbzySpD7+x{Da~@6!UPpnBfjmJX7&}#VLxHDXv!RR{TGTzg7H;;sBfjroY1! z=P0gJyj$^yihoq>S7_V~R2-pLqIi+wG{yOf*D7`^?o|A);xmdbD88=v7sUi7pp0*k z;#rF06)#a-pjfTAQSlbV`xSR73U4L+72ZnVpH%-JiZL7|X1Ill!xc*vKdxA=c!gr4 z;wr_BiZ?6nQ2d(WZp9xe9#DKu@omKq6nkTiF7-ljq~ch`iHdU+mndGX_^je9iam;d zR*VcX{`XcKq<9VybI0=)FCyZet~gim3L@-XrPxM9KCV}JgW~l>+&2?pzFpG9h28@+XOiSGCIRM1;3W^*0h>|FeqQ6z@>;FR8qfi15Edg!}I)KB4B% zsQE8c7XD1w7yeB6|F-J?UF~sgCh1npC&FHTBGaw%aFvTyzDRMh>dz)3K64c>Q}e6T zyiw)lDz8%c(~38#{&ph#*`e62<`1g*!z%Aq`AL<3L`43+pz^QPyoU(?ey{kh>VHT? zIuqEaBn}`Vy+uUWPb!X7bK%*9x$tbl{w1nEn+W{{YJZX95;d<=^H!BR)O@w#dNmi` zP5AS9)xT5mD{B6*;$Fp{DjrmPgNS$^ReVqNJ>&_~Cp??*|76NQOz)it`i^YG@FxD0 zaa{`k(A_$bVHj^zzgXo`mCIGGP&ut~hsv8(-lFn-DnFp|9+mg1{F2HCRenR|qbhTY zit*vg4~$=t%1M=rRW4N-J2p5eP*rOg3jPy6!8zkE_+RrAbT=bXc;GrtU=;R1hB)LF z;5YN-oB#L@K6nChcU5oe;kW(q&3V3MkD7Pc5$f+5Oa1wx=C}UA8!#*<*?qXX-?kop zD}MLzZ9TL@Ig+e9~!_K^5KU==pVm@@03=&hO*D! zJN)(@kGu&=cE# z5_v{|KwI_FJ-D{q+@UXYEdl>UHS#bSp&P4JQ+;E6# zWj>uU_CQZEeZy;B>8B5!GWO}7UWj83zPoSDvCG7`VQb^EBRSx6u;$U^C9lyv&9U4Y zQk=zWK!1CYSE96g)84UN*E4U(Ex_;l+c=NZID4htNA`~G?Ah6`vxndE-_>txPn!8i zeh0)C%c=bBk*z&Dp4`?GcPb8}-Q_!Q<0be1&P(q5om;x;HM}=}82O1jM7g8f9znT9 zmTox2^rPO~=@xH%Es{KR81LjC9_2U}y3L<{jd6(~tvlwKI>WT=h;;R!d(UUtGar~n z+Oul$yShutkMY`taCSsYJ@cGS;f0`E);+IuwczQd!?pcOPxl3?VQ&IJ6f-iPIPnmwyhz)__9{e));r&-gY9*^m`Bd?M8msHs==9 z9b#S2spvek6K#cl@9AgSAN&I~&HN+u2kE+#{11#L>I~|G$)EH@!$V@*m4|+STobGt zs0TxKM{Y-YZtvOMZ&ObMbpx}6PPFA)+0IP;>^?&EF0_aHP`_9vdxm!+9-ZhLOnoEw z$V+8gd!8A#wTE>ng1W@KeW|Ro=e_G6A740jKk^lQ&GnDx?uQ-5^QFF>J#KR2Ylqye zJ;%E5mHZvB@jy?0_brFqip{TmSdoJ|dD#)x5w@L_lnL5UX?NcesCz*V?dndq;^Nmn zEX{ds0NNh>e`9aiHnfrXN3ezSnTYyByKr~-uOEK+nHbbW+RI;xdfACSrQmO915;kh zO}^0MI-8K+)lv^9z)pl8226J!KHzrsu#b7#-PTi3@Iud^Qrew}ICjE*jp09WE^&zOC>2Nc0SC+r;)Q%U^74lt-gyYz9}FLD?#Qc%%K^x5qh7L%wjiIGS1cpTCqw;h z$I%~$JZD{Yc^liQ1xD@b5;Fws2x>54fT8H+}p!) zU>P&*QVu9n+GDwPqkgl$4wuJGC=V%r^mS2ZBic}fxcwa4ry`F_^lT z<=rzcXvT(~%`NX2}aC zO`S1s>hu{?=UhDFfheA1Ehw*;G<#CRf*F(BXV05nGkMy)_KGP}nxNf2f6ly)sncdv zFPJ~0v3>FMbo(Wjw3bhrlE&SB@$4BL9g8l;y!H)Bk~i8dL- zUcz`k0OS7zayL%2{ENA=V*ub%#<1Xg5Lrz1RrkZPzff)a=208o&^b1uV+fw;< zZa_N&Fm~i%TtI(&Co%HpTegnC_;d~KX}GI!WB&5yHr%lP=0J?2r^3x?n6rrAAAWdN zMgPokgmGkl>K1H}_)*Px7GVr4#TZ7J>7w2*&~{E_e*of~gS2q2_wVe)VCQ$3|I=SP zkF;SPhX2uu?jt91?^axf`PTu=XV~Y@Kk^R7N6x{Xhkx|T`eTuHX?_Iuehj~J;WymA z$@vf_rYDT24F~>XjGlkwdyFsK9xn{qeVFqvghjjWLjBGEA{}%i>45)KBc8`ii;WZf zAM*WBT4WCQU!-Ls@{W1JbqLF%3;sQgI!V0^=-al#Z{~m8L0#55!FtE>=|tsX^Z5q& z^`Goud^~RYtREOxPiWqXIM}#y96MflSbu)>Z~WN{fBs#0(vL?`jtSbJe_0z(>^?lTZ|8vN!#W4dt?cZ__Ay`T;KC#0%eLiAAGQr< z+j4R-_ZVN+mBV=-=8m~A>*3rFYmgxepk_I9U2wd40OkXoy-GLThW_kU_CK#@}EvpYF5eV{`xW{sZF`-hX%rb;#~Na9zqdwHMm!v-Kt?Y1V~yKjIkj=0EL6 z97A4(_anZIdbkH^W8BgAzL~xM!ubcL9k?ovkOy-w)~L)k591~D-$cIqH(nE=KW{S6 zxYxjaEz0($A8610h4XVF#;gkA_RK|_I_x1WjKl7+pOf}E9_^OxEvjn^tN%XY3o{Ju zCO&NAjF)THz;8w;j=|ib;q`9^h;#}4ailTCQvwze*r zZHFOb>s5x`t!nCMO!EE2+9ds?{W+~2$*N?4^<>?@(kY)gDAie*u= zqFG+wGlZzfONou-ZE}?FS`L_whJOp%@ZuQWg2opy^left2o$JI^i;g%?Z13z{Pj&Q zUX7Rd{*BvAa}<+_iSIefx~`>lMMGn@Czzur@$7<$##0P_+uywlHJcxf=CutwFyRa2 zsq?V`cU=C}AEW07nQA4RMj|=iqjpPO@49--HHJSP(E^%nNxz`y!3f))PN zxfr`*(M|*u=3l)QmQTRH`ZnTe`Bx9&42b1l{S!j7{Hx>9@GSo-&-p}^fAx7J&+@OH ziGVHt>Mlgz@~@WD{siS;eHih||1M2G7U6@aSoD1SXOOK<7wso#@d1pUYFcu}hYkm=O0c5M66&-q%pJvQI8M#|@ZlI^jk*6SA{U&rydJP&R zTYVos#f7T$_U+IDZ9;rmU--IhJ$BYewi-VlKF2<{5CaOyR^$Ib<^*J`@i&m7*!FXw zNwU@Wg$(UZBW{hvZ=qYCY&Cuz;vTzukyzdyi3=I$Jx1ISi4R5e0wL1+co~cAXU40YUc8u@k>h8O<<)B9T^9`)jJ*5}_D@og{u1S9!|5#RCRXEH@^ z9+6Ub&x=oG`5rZ;f6VKhNwyjnX2ZAI5ml0{#$RBpe6rQ}^~}1zn!MT)jZb44`DCl{ zK8&PKwi>^l0r_OB@mA*Z`|Kn@OB{_arO*E`;^(6Ak28`!*=qc6OoC6g8vhb~_Q_V` zUuN=svekH!wcRIMP29k&3&>UzUt~QC$W{~GEQf$>HE}WJfNVAK6UI9rTTNj09wu8& z+`?iF$W{~2GOhvHYT_qMSzq_pl7|mO6L_javQ;C0E1LK%?GJK0rIXkbO%O4#Mc?WfNV99rvJlSQ{MZdiBi^v;qG-(l@3G`W0>)0sQF9LL>05^ zOqCBt6W?ceqtyPPXySC{*Jzbrk0yk`CFM>*eI?myf?OXUTQ%|@qls_Rzw_0aY9dMV zfNVAKJy!C7Y&FrF@ejyW6GCAVkgX>6F+Ks=YT_)WFCbe@tfF~9wwm}8&9Bh-Jd=~y z#rkxm%KLH>9`hq0TTNWd_yuIEiDu?+mD)d$li=ZckgZOT@_s2NF^;XWM&*M!2_9kv z*{U%=l#>v0*gBP8&q?$`MuTjXXUkB&If-|f-hga1@fPzdAX`oBWBy#@E;Qv6OU!3_ zI$hH%Y>OqTX&#WRCf;EBHfnr##1i$a{{h)*;xDXk0oiIoNSXt()x-X1Hema);4b%5ODnAoTtYZ8Evem>E+7HN96J(eRk*y{cFuZ_lHSrYl zd$0Q^G;@-zCO*OX`;5!8rWguhiRYM}fNVAKQ|9-64gbAZViv;-$W{|SXMH)~>X6+l z@f_<*K(?AFWPDy#_nUhqzQFo<$ZeML-_k4be;9s`J4C&J1p ziWD%(QPJrIGmxzght5eWkpz;h4nc}!Aoa;sWgPX%R^vRc>yxd@u<4Vn$_Ui!6C8m+ zwkiXVPqr!pj!(8Kqk>PiDno`(wi;)l_++bbRuP|UHU2M#Zpl{T94>saRT)csveh`x z5&LAT@lPV7dd=I8e2I)m#+gmM>X}R66^qZO+0`T~0@-T(w=`>Jj}#fPI^G|d=98_) zv1t(^Ta9mqrGRWTzJ#XNJcMvbwi^F7+DfmDXG>Ms;>Ot(_u685-fb|Y0CLmjlPeLyfkgdiC(Py7*HBKs+fNV8BiFxFct;WBF z8WxbP#^0mq)24sf=f*cNE1qXokZd)+jp6!atMMHaeX`YfGn4Rwv3$^tzryss$eAIk zz8ilNRX-qGjsKK+_432gPhRr?S4Z9WU5wRlO|SH}8-J9R|4<|u z`;Hs`9=$qhOy7gZIQwL)@jhr`z1}mi!UBQc2=Dd25xXJ@hoa;1v*#$JfNb>)=*OZb zBkTHXMmjtYtTsTa0H5>;5v(SjMGOOi)x>v@^I?M3H{dM@R*T^>e>BaeMXnQ%=~tgx zYJ*^v#hSQ<#y-KS3CAZ`HR1RKt0o+uU^Ouo86PHCpTnc~lzrs|uM)pD-i!!7>e@6Wy!D<0&LShq&2?VPwS*!~a|3jaAg4M)G zdbBR`2%LfbGjR|4?J&XWR#Y$$tp1SU;E(_bR!70pSd?D(IfU9+1cKH384hR00l{j4 z60DkFqY1Wo5Ud(8H}O8kmw;e3!FPLde1g@)iwG{~i)y(r!IP9ZUse$Wt7o!u-5*II zR7xI~Ka=raZ7L4s9wD2Z>-sZX$);1})#g4Kddg4G1yxCjVV6Wf?mKEZ0@CW;|~ z)yYiJQ<0|_<_d&Gg4GQSQ!@M)qGpDFn>qZv>>n_PhckzLg4M(XWMNJg!74{ZOR%~V zY7nfFr8WO$=F*|agHXq!wAAOX_#?sUK!lOtsxBZ{O>m(W5UeJ++6V|%6I^Ws1go;1 z2nbdaTy2C2R?lLAT*>vB7wUlhGWzbjzf z$^SgFw#lm%E6cw8w zjV~|4eLr?~KEW#O<+G0g!RoKY&FkWZvuxvrgSeA_A({&aR%s>wat3j&*BcY3ShPR> z`?}n%2t_m;4iX50)eFV)M6t{nqp>`Kp)hGq{%U6Sjb63bYs7zlnMrbU#@JLC*G!e}95^csk8=J?*_L)_#Nk zzV6$;m0pY)2v%KGs{EN~j+S8cizq5fu(}pLSb|l)hX#Vxzr%+Ng4Hjf^z$k{UdRla zivRxZnfSj7cRwonagHW`PIL&eByVmLG-ATnU)sy7VH`OTx`t+T7=j&sRP04)%p&t1Jt8q4cD}i8@fyb_R zh4EMnB?wmk$awr2(Y2JSPJAhSP`cGhWXY-7DU6Xg+G!^pE% z)X~fmteOqUfMAtg#;$u0Rzn1q+lPgc6&Jk z+#8V;cT3cD3-PS<3`ftKFV^Or}>BL2e3F;qShE; zg-Akg@L$k6VUZo<$0^T7jzT^H^%C4e_#HfVnV4^dJai)dI&klTXGP?HcQ=V;2?S?Z zK~pHYZKCTg1Tm(|SGe8j?u#&_wW$b;YIiW=An}>boccSohOI#}a%a-?Y{q@KTY`G$ zZg=VCJ>2}-#eCo0cDmaRt>n4r_1x{84U@`e#HEbbolJy#*@zcuc9#eX!CG+!dJA`C z#HDw+XxbpXyb(U0E-@J?>rA)e^w;TVWJKaQ*BRt~krBHc&rslkpE|(VdS?(`&@dT# zyKx4yq5O`a>&-AQWmO`cK1NTu z1?84X0{O7VIb}NjjIC*6>wVwWbg{(`J+L(YiadA6xXe$6yaabKjNU*XrZmT}RLY^1 zEJhdUju{7=%OH*(2djL2xo0>o$1%Be*~NJJ9?VgyN^5$nlV7r}#xtGTh=nh?1FJ z{GljOH=Hr_=|1%d%~(9y4^Kv0&Hu(XcsR(dLTz!Mi@J>4OSs>HZ+r>O)Sl<0r$`{g z!BUT(i?SjQgAAu{F=u`mb?NMF+|0y}`A&Z+P8ax2e<@BI=ybUIFzfJRE?sq@L9B)D zV{mCo=`ohlSDvzs5k-Gta^RpOqX_<{@Vu86*&&rc zhSQgs17G!AI!mIT?@E`!$(;M{cbhdJOK8NY!H4WlOA$G8Nn^ zbA~R3{%+hW)a+a_+bL#yp+6Goxd~=x!d+C%oKZ{R@P4&FSoHSM{;1XXdtCJoc?{za z^+&%4Kh`1l81^i&A4euIMLUtP?gY;Iv0AQ_QLv& zFgR6;^OcB}=c!Vjzf!T;8FdKu9)>;BLHt7+-F$dZ#78^sKc$0cXX`rUJ^UG4100!#S+-Vol^Jv&~>9Z zGSo99o(Dj@XZV3da~SV0;C9NMglkLSTvmgg{r^n@=S=Qqd|TEM5R;vmRL&vpW>Ptm zo>h!rfeu$=%%7ayR!g+|B(1?&d<@q0lrB2s08VMeF2%ix|^3Wg=NbW1mmUxD!C@&zZQ3hw3arW!Odh5IrSy&E0l84{B_*$n=k^#I1f1z zz*m}~OSs7BiUa)7%^}AkQl7v<@=89^c^ z(&2okc{^@Ig+SvF|13>wMQbi$ohUCS(4yz8TIvVHxpo0=21Mj!7ix?+=AwBLHv%Hi zI26zXXmKKrR9FXTh&x4V;X8l=aeyU?xwsvD9d6I**ny2zYxT0gs$bL$ij!W(jL3;_ zIA%1j#EqB{XdH?e=f(?gdro>+4i#OvLnPuM^PR^t=ZbizxbN7LL&YI+@5hejSz3%i z(nL~_^K3-euT(T2g&Pqj%onAfZ!|Spb8TjghgJn{&uQO{#%(T6zt`brwh%epg*q8F z-wl0)LZERdTR6Kuu_-M-ZTu7Dd^nr}nm>;le%s&zEkD|HC0|fO42hf@hkc>>A8?0! z3AB7)=;}S=QqVzv244z@oZv$3_d>Kg0{ZZgK;uxFX_^$%xddbC*T~J#`U!5-$b%jg zMVwtYmyH4#tA3epr51`4!SKsvyN#0Y6H(6R!-02{Pr5WgPuFbd!K_MmZg@#3<8%E~DHI*lCn|0SAoo4FJCv1|K+68_6k< zQ!yUEQ+-e_1#}oCPcrQ=%3Xk`jnWn^Q@_RJwBUV4jr5s|=J(=;pC8ro%aN`gFfIij zG3q#xb90pADC?YdkK%@p1R96Rk!y`Y%r@DR61nb(IAwlUwhi(FYEIE4FOFHr5kO+DfsQJ39IB)4wF8SC5ST7%DkXqPxn)MfV)7pOk5L-mR4L>>6SB*|B* z*r`Fy#e>vpjS$VJO0p{mG!ErJU^;gjOty>ZT$`4_bRJE~o{RCvn$o)^;`74207pzK z2&JN2I2FK$707%7y$JP}jL9C{h^*k#MqNPU`XbyMY4>-y;S+(zp+s==elKn`xLr9^ zM8({1kk%Y+@HnO;VYwJLT<^)DA}y}{HcIm>Er$QR*s3@HIAWBq1Ab?eZvg&als2~l zH**6wa|1VX12=yDbG`H)Ze|ftzJ3)NN@?C_fMg4S#-S+*O>;$SF2R^Cu<@a3TukQ? zj5iq}8!dl0q5Dh4L51}r(DEHpt6Xf&v$nXXlJ9gO6+|w3kRps5=A!vExKX(4)ELT- zn$8VO{ov@fQQXcW&>M`;TXF)c8PPDo%nwZc)G<<9#UnrD;h0R|hpRS;?8Dd~Zv>Ee z1}EQ}Eq4(&Xpj4zlw++bH{n zq91;tX?IpOA;@34{NOF}8cJ+Dk{P)Nyk zmai+`8EzVGAo=>@2{(thYvk+Nw=rnIJs~mBbO?o_*5a*+>JXr7L|Y!{=&f2i#o@qbWlt z!*bdhW$3Q5x^&$MK|^qkyWp+APLirYUn25Et$%SKTt4f#kW5YrA1^-z|E!zbfbNIQIp zPRVc@se7K)@iiSDX7i=A!!tI%2tHjKD9`kS^&Os*2{e4VBp%BNX*)dWLOCERvOe;} zOQwm#(=3@dc8l1EIep2H(-R!BQM2_h0GN^RtL z2*v6-Jj6jEgSZN2NPG+tBh9bE_xY zjA^7hp1`1)P?Px-W@5zi7QT^Taia?!t)O<8tBr?asi)umr!}6Kpq6}CpBg+Lf!Elo zIvk#Jm`px29wZQgH9pf{Q4aDqhY#{;R`2jcfHIBq;DG5M>d6eolLO+dNPL(dVzT9n zC{}d%%pd&_7=X#qC)C^=&Ka-JTVQs~{@DqQ(heW6(;4`?`M_G0e85d5858;B+N$|z zn(7d5B%gn0Y4JTHYMCY@+~_<9OD!o^kQksN#QF}m8BF}yQN|l%>tOx>?wz>z;I`Ki zIN}xwH$AwEVJ~h|ti#=jo5w5d#qEceaP#x*Z-?|pp?%v$O&8Sm+5+_<++2LTgWF!? z(T*nIwo8FD)SUcJ#m#omg`3lUd+mpMDe44|@1${WMTv4^Y%fmFkKuNpR~XVShPn}V zGj7%bdrgwT_YCB2#Qi5Won2fo!|i7BLsze80>xy_^0LyBmfEYqm)Y8kk)Wxi1oMEB zREm7jB@Hz-B~_r2ZU!yv>M>OBQMk_N7%wBM+00Ce1)k*zQ_t>gtclPj!C5l zO{l(>c(cqy!?9_N=l05=T*=2@@HOOQgT*l zNlEGG68w43Tr;ywtxhMFdV^A4(@ZEMV=BD7`Z*;Rmv}Ap-jI~nI@9~1b5BW0r|S8TzHA z#p7l*dTUbN{%cYt-hh;Mb?Tf;$BjOxWNe9-PI-M&-e+=V4k#`i183fMy_9!y3c+|y zq8QsWW|r4?CZfRq_7qbQi80-7Y}T?_}kd4l+A))vqzs} zqtvupIK5dTYRmL%_%J|EoqwNB{zC~?(y>Lz25k3lz*fC z&;O;xV~eMIiPWXu`|Iy9VV+eF^cHUHDn7^ShyQWj@{O}*HO?BtQ12}{yR5`Zrl5V} ze{p+->Jhyw+*slLa{WfH|3>dq8@<2wid^WT3e57JUBB_Xv(7?g8I6!4=b+-8#~@3J z`Om_Q#8R>1vEEwN*vQzkr6PD`rH!+^lX8bsMShM$ara7MhpQL@lDR zT)NTwewJfzk~9YI2Vl`Lmc8#8Z!Wc-czHANqepCTOE-FdbG~b0)hIB#(S$GHdUsy8 zQG$(3Yi#h^HjWKNL0YY31S)(*y*Fs1_s45rD4fp5R_dLW@)o7MSDcyJTD*s^tCxB^ z2Fr(w^lt?lg(FI1`TJQUL8~e|lRnqr7WJuZAv&)Lh#*{4UUse*q2LoL6 z#Vchgh)!09W5ZC(39C_kWPYZL7c;}FB}ukUUwj7BFs*gEs=XZysx7s3ZFoH&A@Fs7 z_UOUbPeG|p!G;P}*;d$U=M;n{GF{iW=-Mmo80z)*#-@5p=?ePbfGImnI&D1ZXj@U! zAyW@B2QLy$vy3upB8H?J0>S16d3-B*3f*UV2i0_$v(|7nDH#))X3dm~e%Lv+$ve)M ze4m3Y1!^I6X0EB<763Q0p}v(|R08Xjb&FSJJ4}4jja5#turT#5Yrc-WMhY9 zn8??+wJxVubP{~^q0%lxmP5b3PUv~tE7Nst%bPmzsRnFmu(HZ5om|MZx)2D88w6n> zb!L%EF)k`qEHlA6Rkh7^Z4zq0WF6iK2=A)+O%YWEABt#LqZx}lVzi}AnVFQM4C7i2 zL(2uHsa1-X@#4Zp{8Tb{^YM$yRdr1bjUDaMYTg!gu(Ahz)N7BsSswl!%-R`8Xk%V@&bg1!@# zwW_%eO--s+#y*?vtiZHa)vOiXsS?(CCOoU!*4CxLK5tq)Hd>lGOr`M)D2+zElAGXI zZ~HAkGOw+wrJb9bWYxCqile3BiN~lTwBnVE6|=_%R(45@qn=Co1RX?pSS1y?B-HlG z-0n4->5^Aj`?XRuD0k@;{Wi(o(J;?DpIT9cukc`pw!Ia-pBXl!0`s#!mTTVcRkRmi zes=IHK1{t#BuvEHv$ND6zcQJ`Kav2WA>A-moKCpLOZLn5Wx8=qd#GIev01xi=@=xv zlJ#^aqp5axn6I>=riBUR+qF8G;gJq(rUtv~vQdEyF+-2P9aY<^6+vSD(Va!fZ+|4p z$Rabun&C?d55?1tkM`iiDP-gUyd6MREgR`bmx(FHS zq*#JJpY@B=t;OO(MxHNAMy_vp0SZ>XlHSgXUgU)RGklJJurooq7IOqH$SQuEA% zGbvG96KO}TmKGhCf?{_A^bi<-lWuPKWWBuWNi zS#aTlY~c>qj=*MC988MC^~>)DF_kEDoS-s;CXsI%hRAj^HVdsX%si zDkVo3>;ySaYp>LSNrqFI?~4mFLC#qDn8C)>Z=F7J_P`MmJr7fCAK959AK5Ow8D>w* zTU!v*#<~@4sF_VQm0G#O?VJ5q(7G8#=_XBZ9aZfAba5bg%dv|?mk6Q70UdHaOnuXJ zVwZjeI!)+FHnOh5O#0T)gKp7-9nJ=ss^Gz>bUdrgR08b6t=OG4k&@{om#*UBM{9=Z zGFgLJ`(%>NF3#k)1j5=SV-;fUTwRB!j2Th$hZFm(vkAS1X@L@bZ3TXxDRYE&XDxHx z#EIj0+L69S<~XKpI9hs|6>TQRxwp14C!lSz;|rNCw+>1s?Ut#`0(Fy6j`_? zq6^~@05Vv8Ei_oj0Nbz|_BVXb8 zQ~D;vSwhl^taERzR~em|8S?oc%63BRaLrJ_^8&h7MVw6A_8+`TU{VXYB$b75M$f{W zM-~V3bvF3)ineqsj&EouAZI6-$-q$Q`a%FQ1WgL#>x9epXE z*xOZsSmOf5?i@JNrcAjoISPZ&=zlW?O)AE-gepEEaopih=A66WVkZ{Ob@SYQ(L#5C zJJ1{C4t9q`PL1%4GS1&Q_~z(`t`k|8!21Jy*k!M$p_rT)bhCRyHJxksMmot%i@>|P(~@-9h? zvSvKhw+->UB$QSg9uL~R1GDV#Y?}G7ZYsjFe(@ApIb`vR;cSXZIYUbhoY9_*E6-|; zhdenE?LrW~Js!Oh|5NR2mSbDYNnxR4u+ge8?@3ALlVX?Yq^hx{ikHreV34lLQsbZv zyR~)ID|9-q>Z?WdQokI-Lx?LkENO#ypZGnR=}(`@BMj`KB~i?)|F>wtz;(=2%jUeP&@e`%P7 zG&fwQRi8Fa?u{o z{n^Xf<52{wrdb;HlA(IQbnyBY?mSVMzqgUz3OHmwqiXx;Mi|2tyLUJ|i9SHf)ybkg==CnY5BxKI0bDm)?4bM&zkU#7{7liz${os(0vESv7 zNhZHJhcK5Pkcgg>BlXLgVv_2tRe@uG3wa9=%|pfn%H2@2eOU8{p=LX@GL-)1p?~1*Tp`OQ(5g01^A_`GdcbPeP{j&(B!V_x#zHvF14^iw{hn zxtOxx!b|^w0F~$X87ul8TH`ZngKeZAa*+L|z3A`jxM|jjo96!j+Kc9_%WS`oKuz~Iw56E|gI zA4edlZ%oBqnRrnqUY3oQtqVD#fc?ePx#yj8PM{;(v(y_K=&ey}=Z3U=d*h5|_S-yo z)L)Y}$8PMdv24=$JAU#2DR66cGVxjux0JY3TeJK`dxf&A722^EC%WOslQbgxJA}vE z2E{Is@MP3g@?-1_F?*l%qb~!|miU$RB2ZVj0IttR4HM(0X%+Txn}yj*=AM)DeG%+Ii&p1#oSrhNJnUb4 zmfSI8c1C*EE?8vBRsHL@I8$!2=0PEIGu$s^+dQnM6uLg*v3htoEZW%{;q=6s$#Wg< zKpU?=@){VP4S*WPnCgMEAQIxcJgt&=spH_Gby!z6i&O(!#X?krjoaW=Fq&n{tf}D# zJ|>l>taL!tN# z5%!NNa?Rsmy2x>Wv=ICf!q6Gm`ynE{ZXzcCPpiyvnsOZD75ynvOaeVjVn-4&AS|JN zIrd5vqfyASF@6w{7=A#2xQ93oYYU7ILn{!zBG*D57EMV^g_(|GBG%^PiP&tJPF#ey znu&|CA4I$YFC!2aV9Y^Y480QZBO;tm;u5?$PW&X&g*+O172GKvBUU2*SkMk#iue$# zkdMUqNI$U}`9`e4ek7*cLu--m#5(L95$oYUu>oT%u@UhhHetSsJRZ6X=^$Q>wF$8q z=_M}5*iXbFho2)F+KTxvF^v})h*Oc@C>zOd#bTg`@pLuuWcWkGBDa%>L3$*n{6pK3 zU&P5sClUU{E5Rb2O|#0i#Ws)Xt%_Xs1HE4gSUxj2gitL2XX9Gu^nt7&PM$q zmZRPgSEBq2jXa$Qc{6c3!Y3jg_W`{#k#5SfP%nrVBRt||*i#^4PlvB}54{xiiipK8 zU(X)89`%oS9pM-vuA6BKM#Y*$27MSqjx9g2@A?p55U_>$u5if=0(Q_OXZe}#(j z+7ROTF_kY>yi&1Au|=^{@ixW#6xlyBy^kyYM3J9irvC30xu&Je^&s(N#nTnJr$T*x zdz&~J=O|8AoU6E0 zk^DTgcdg=0iaQj)u1JP2+Iv=!FPu^So#NjVbD~DSP;rFfSj9<-9Czqm_|SkYD)UPM z)Ze0bm*UqHA5(lr@wbZaDn>D0(S3i#;fiI76BRF2yh?GoBF8e6h++ifa^aRJ=p+LB+=upH+NW@%M`FE9PN* zmGBkGDM0xG#TknH4j=WK6xS%;sCb9sgNlzSKCAe$;_nsTSLEjoC49xviWex(P+Y9o zq_{@$M#Vc6A5?ry@ma-}6@RbzzG5Ec2NJ&GXvGT@XDBXKY*JjKc%$MSiVrG2rueMl z%Zk5Od|xpS^9>1KakSzEiZc`!D>f;vQM^&{4#fu*A5(l*@nyx|E0SE5;SN+Bp;)T; zaYcUZhxV>eY*bvS*rj-zVz=Tq6!$3pSn(yr-zvVN7{LIL(f9I1Go;$p=Oiu^ni?f*#edBwjeMli3W zd5PlXiq|TBRq;8+zbd|`7{z>&?h6!)6h|qJQ>;|npm>wwU5XDXen;^Kiu|Gy{r{8V zzZ6fx1eE%N70*;WS8uUZG z@dA7cUiE*Z_zNQ3y`cCC5%D;p=6_WAFDf5X*~5Z`{^t|nKB3r;2=_zP{Ph2ewKsu} zs>s^LZ{2&l`*x>8nofWiBV0&;2!V6}B_c{dP*Bv!CYus=P?iX&xD6pJB8!F{AxNvZ zjx!S#9dy)*!pxxJ3<@ebjBhXW1X15nM`s*I&G$T2)gkiYeDDAN`}&ugs#A69oKvSx zom#uEhP!FFkA^SM@TEE&t;6dWg5G2u&eiF6=x~h=H|qSYI^4k!e0S^oUuk%c&flxU zH+1@+7()Ip8D4;&+Sjm|r|9??B0sF*JPmhZ2>H6`u$#{Bt@AI|@FfgEceqZ!R;N$Y z@JtQQWeB_lI{hx4UZdf48s4noC`0hyt;5H4{?j`DHyUox@EaQb6GN0ctiz)^KcVwa zYWPc?{|_CSXQLeS5Yl0L9hNc#z4LT<0Ym8jQXO8yusimn~xrXo6@J5E9 zyH$sEI{!%>zNy2*I{$qg{+S`KdbeT-`e7ZmWr%VebbdDtmuUE6 zhQJ@B!%;eayoRsWVUr2@LqJtPcVq}TN;Q0e&L7AS{D zoUP$JhA7uwhn;kOcb$KphWlxFu!e_ec%+8MYIurEh=%)UxI)9DG|W3r zEI&uX%QejV9i$i4u-vBu+@Rt8I{%P{k7$_ZDx~+hhQHIWfwEG645>d2ki@`mG`;10P`&Q60^n z#e9=JE-SH(uv3mb*F2-FyvN5zq&8)gN8?6hV~S7R$c-u7Sc?D9)bt5XW|DR!YPpf+ zp0etfow1Q!Da#lg$8zos!x)`}*m)unO(H*q{1cwi6|rTJ6|p|Xu9O*Bme}Yv#P$t{ z#v6>Ou{6Ceo0AWgDSn{-G-q zqB3fkmCvzFwbv{k7pRT(c?xf zfwU%LZ1Ox|thS76lA|$|vk|_45Wm)*EJSD`j3D$H*Ti8jc_DXeD%h|&)iGoyIvN8L zMyLwUgIL;y6Q%(ku8D9=Qn)pVwJ2v9Ba#~q6veO=0@@>z*b)TI5y_(nMeTvc{6p&! zpWpZL2?KmA$V55K$bm)?Srs!~H(^vGtl!rtYWJl?^gtu@b&~YWP_(rO)u2k(B+-8Y z{d0DuR-@h`w5jnP)O}5TH2z|Aef)*m_3_`-ua8@Omc_8+n_LCloI@(z7*RM%@m%S_1y-?9J3#Y`&QJ+p3Z#SMmy7^o*{`0-jc&F|vzcwQy zR^vwF&$#R3-Jh?Cb>9<>H`Qk(G9X6=WO^DhyP?e~%KCfIr>=K5HRTmTj{$piEEtN$ zZFe2)ZC%P~SeK%0I1M{fOgB*8Z{H*Br8$js?KLvZcG0$IWM$R)A;kQ?=*(MHwQAT&IM0nQ)94vXX-)3 z?>P{SZxSLF0{j%>Yl;8|gRvaIPd*lnKd}|M_;ob?5YnlC>VA`H#;E@nYHQI3wa|ZU zyyK&*W5vI}C)VltHL-5Hqw(TR(YVx8G>~Yj^(Uw=5sD_KL02{9uwS&*CfJR#$q~t` zp*Px%a66jNwRk47N>p}YJC2O|%c4sQ@L-#9HC9ha`0Kz%zZo0cYgcMXaZRELZMVT% zhQ1h$124Wbgf@w+icbQs!0y#C|E7Cl8GF`9`=FiNg0{h}%;Y5qzv{RvMSW3!)Z-J- z-;>Z;#-1Bt^XpPa#V+)Rbt&rb|F!<8JL-`7v-(VpNgZxcIy5g>mY^Qb)p}e4|I*Y# zm#k+t>IZ!#*q;gzr~P?#AA|nlF6u`8ovZZ*pCPRJsK9ncU?XgLqu(FfZdtMKTL_D7y91DlnC9Y{4UZWr=|7rU>Lxs>})7w0^a(D zJ>&G}hbD|4)kZbP@gh8*U)JN}qgA_7A^2aTG8$i49!(ms-KOejQbeQ4t%b{CqGD;n zZkQT-s$p5|seRFS5cLg0FJ9EofV~)=bsw)n{TeZDcwmoB4JbQ&dE#%dxil{EL=3c% zC(Bi=`}hu&sf_MQ^{$8}Pt-<}{sz!1N7-uNm9LXN!v-&mQ<7Kj^5qFpwKn03bsx_` z*?=)B?n9ZsgO3+&D1zgXy(?BEJ_YQDY$5vNyD@g{-g9;@43VF6OstB=b68jKX{rP- z@Fp)Ca;JIuP*#AKT?rpnu`YEDc!}Vsi`MT-aqKdppi_&yD0~mv z*Z|!Sd?5LR8g`~UmC#F-s+(PbdV(%}BIOLYs9z)+r|hD9ZK4|W>jRz{7?14+Rlg8u zddi8jGU0`-+Q=jQzd|PR>m6O4C`9^E_>3H+|ApzsPRORlB-Z~MIVY${nBe~n#(eix z%nOW(No?5#jPg3fM1Y(2kA4D+bKP{_E_Q8GT-_i$r>_?|~+M&nVWZN$>gbayqb1l{K& z8{)2aS;W2S#)qRXu6SQp?ktsL?cj$27Ov+Z(K9Ymio=8zb^*e=M`4&Om*xTO+Mpp!5BG$+v(7G zZUV;#c_#Yt7`%Wy1YI!i0vmbJcVG{>$z0g?=fE`@0K4y`@*C7x%eG;;kC4aypM&&V zJj{=j>`IXzc?rCC7-L&rZuq@a2tGWw!>%?s%MKJa>`Y;vm8{ENn=(4=N<#JV9bCk7sniTx(urL6E1 zG58+nh<>Io>`zp#O!$m3ajSY&q78HzKpg$9KtwWnvG1Kgzcyn>Q(nw{!Q*bjJ(?1c zqbcZoBk4+d;9P9=jItugXkx8tJ0@9YK&j@X4WD<88@`@^1zb&cv0Y74?ws?kq z6!b07XWt=Bjy1VGc1hZ7gWM^{B+o=s(`xD(uX$XZrsc!^q;kVJ0PYWNss zBSRq9b$CYN8HDEwJT2=m4s~QZimGU`-7V30Zln%nuZ^z+{U!st3SE|9{aHrZMr6CJ ziyK+z5idn8*mr<-7PttqH$=0at=}GZ8`ia%0NbSvV7onl_D>e09lg~UODfQpqo`{w z@XIld8)K#aanMF9@I?-&?gO3;pNh3X9{qjGc7nb(Z*FSZ zo^GQ(@Kdp~(YFlLOV0;By>VA6rxJY+Pd=UwoJ$19CgC^pir|~!x04g~n2?LQa=gmN z(*}4)v3~j*Yq;9eXi_G$S8wR9;0NINs-r?w-;H5oY!bE<;5w!eag0R)jQJ<2XX=;z zFi*FA2ekd^c7l3XumwR|xC3RW-=GQKK)FC8zY^;P*g5)uxDx5~FJGV@!R}ZG^x-;S zN8_?t(fGsd-f8@<+pg5ZeX(9d+M`HY@Ab+#^0V-*N8i|$>M~ ziE+p)VAI(m6t!MPeoI{(HjV8IVIzH3?@G}&1Z@Mne6Wdaf5kkjYH7lI+B}PLa<0Ys zlMOj(D?K1%BWzC0St;jO)C=zS1fV9X6G+Cyp0(=^xNz!pc>ppIevPUk!oCW>g zitK2NL})9t1I$SqcBWRK+)C(YHF!Q9s>3?4F8*w!E}kC(p3Aun?FID(?!ibj*~^V3 zH)0LN^(TFOf5@0i-%_b)Ql^b)iwz!+#3Al*@TYwa25x!9x>PaBSrt1P%aGn1`Z)pJ zSoJ#^UEq`fr%yRT&_O?v`tmkJ;}OtzqdQZ3;B#mvoZHiG(CV>bzyWtz4D+PeFCTli z@!^^8Hr~4mb2HF;93gFHyW_-I=ZChw+gP(0HU!(D-Tbl<>%Xqi_+v=h-fTlV;`hd) z@%w!~xi)?!wgY#G0405whUifY5w+!-%;Fx58q;r1f#k#|dsxg&y zEe8(k8jP++-KkI18@{6$<(>h(KIJ=8jn!y>*g#no>dG|)+RH@SDxVQeN}mTh?Rp)9 z{lb^RX4SlaW8;WqKlpd{%QB9yY*)-T*sq7emT6P}O}|wcO_Gnd0(Gv6#$Sg`r+qeY zhiKgP7=vi5#KD$TfHuOh#(My3Xgri@cxYWhxY48sG7hhJEA`Cp-ip`bd1e1w@jVDR zZ-(EHa?fLZLPt~V9~R0`XOv0y72w^+@f7*q$Onz=r^HF;xd!?Za92_$jYC^)iBqg` z?g9?SbIKmvzt-S5>$=c=1pFG**loZ*B=6X|)DX035VCQc8t#QZ4s8do*2&_wm~)1r zV&C^oC%L|6f6B-6JYYGdRpur*f5D_8@9)rCQYalChmKqJZCQs(#kb7B8Uyl>cUSPG zjMy6uaE_V}`Jl_VRk|!zV=POU9cyAWk(vbOnblak7WBb3AfU*SGiO=xMN z>rK)4)=r&b%Zz2Qjyd!{n^M)GrLi(&XR0YA5*s3JY(r^Bwf=0VNSuVt(00pEUyO}% z-jNS`bsJ#+kdr>4PlKF8Cpo{0Ae}ZEsX|&U+N4sooeP=S_SF&PuhMOG4)jlZ&pA2ZzsKGx!fgn- zpVxBCr>$UrTlU9s?2phf{Y%TWH|m}=g6lr6hQ4j+EFX2uhrVey84XKgoU3m|eK{`V zV;$;3Z@FwA$jLrR-)U9eosfDfN17hDs4oXJIHt1Ch63wOtN@+m<(S`Kezl~0xm-7M zj9gKnbVpiCDpn* z+0^L+=s&bO^7tX7Y$xAU<6wCR^DERvR4Y2yLpBq1qM$>Y`UGWzhMN2C=G+A|a@{TP zaU+sG=#)N@`@E;m3%M`Hc3OmeySm8;xM!yvw-tboHmEG{WDfnDG?1vmb(telo_bljbc`4=*mCzUHu-{ps9gW_?88Oby zg7%!)Lyx`P`0&=Z8*3nYwB6f{n19H9*NWD=Qp--j2hGA5i}?V@Jb|(tcR3FK5_wUd z8jq`?#~K%7Z>v^vKF2Zn*~ogiKV2VMA204w6YGh!bCP0{FYrAGw-QREWw<= zXqBSPwZZeCTLW7BUc_JF4DNf{Fe)cl2Jb)eeTm%5imnvKSIA4BsWf5JpykKL?L4&ZqSPd%R9c(&nLi>DgTB0QWkvj2=~=pcOp`#JlNfxem^*y}_ew!mwg*DuasSf*4$ly=51;+bkRBh4Dzse%_Ni99>=5ViWxG<3 zPu-Prs_%<=K$mI925wIEDcuYoI4X|uD1HrO;~3{emSy)TUD4)F_;d?-*pCP-((x&X zv%C$PAPpl@kwCe;u{s|<7yA&S;ymXY+9Iu7$8Sb@nU3Fzctpovl+^LH{ze`_&tc9(D8MM$8>x>;zxBHdw_vMI=&h4 z1BkP(q{aTnG4)QQ8xb|%W!{ooSJG~& zN0gJgP4kla)$*`B^?Dy@lmB-pkG4HQ8Cv4sjXrpK8vPg3*pEq*ZI1nDjN94C4?yoY z{6F*4ed_e`3(i1uF49N`XV0=Ov(JDt?F?x=7dxH)_%o!9K0{i?8PcveL)xWhNE>*D zwEkyE>wAW@UPzYhW&4*r`sTEVfTOF;9(;M z4;?o6sv*OMj2d1s__8aeTsdOsRD73t=BSawW-Yw*()q&&UQ&f;;lgo4t40kQv~bX6 zBNkR%a>;Cmjvd+yV)5C4q2DQ-o~80Kj>AKB~?z|V=S@U-i7B*i^T z_{qFn#Ni8*;oguhI5H{vM+9xn==*#)j7!bxiuRe>KI+$?zJPST=Pik?6A^H4(5VwjJHy4LvN)*C_4~(>Vx`FX8P`5 zfd28;o1nKExqr&I(eO5OI*~esf1j9q412FJl;N2v%LTc{$5|D}Ew(w!gfPy<#3?#O zy~!gxc_H}qM_IPfAjCUBR>pA-5@_fCg}#nwDS4~|)2S!o(+2t>o#$56d)mgh|3RL- zM|()~c@ciJ4fuP&pXU|jSQ}k}=Tbbw z@r=SV9#3~X?IM3kwFjLJz4lAl4>dJ)tAjrz-*jIr?tKJpJ~G)LeI@#W0exXzPPu-g zZRQ??XrGwW=wnIx^pCRoibjh&=dd+K) z@sY`&VQ>DY=%@9^bw;`@{CVCt8uo$KJn;YT7Vsy?Cv6*bo(bBG>Aa8yd$}e#1^DEL zbjY2Z#QAt2rg1F5f7a#Mx35Kctk)%P3*~v|XM`?~bgZkglkXyg-cJ^t>Q6YE|8X1e z{IX@6Y=R#vM1N!7gnrc-9PTmok!NsQaR#>)ds!P%CO2v0EDn1bSj)n$YH>HIHk!?S zQ|iB6uXlk1eKuH$Uqh#AuWd8@*@)z`fO9c^hY+_L*214*Zq%?g+o?a8bjrKO%xDhQ z+FTpvCV!x9!>c8MAypeCyds0A~^{Q_bkpq znsCofJSg$TC(URy+rWM~&PC7%$0ff;7{Ymw?4u1)3w%5Rd+9tUEv$VjWw?h^&v$w& zE@FpMdlPR--I)!CQ-$;uuw6gu_u^}B#a}|6QM)eXuUGw4KnBVb4DFOYgmQ%-FY8S` zg{lu&tV0NRu1@EEri=7>NOzG=`G_wt&!K#;l)e>zSjs(0(tZ2fQ?@sgiYs0 z*=A#t|3aS$=(-u&mx$`I2|xCp(YNzh24moOtOJrh)U6MEB=5rEu1s znI~HCV%?hQMx#mgce6zr?s{P_A{TvgS@wLyT|?QK5v@pMKwobl?Wbg01i$xFvgOqO zPq~)0;2Wq%ogfS6m%Njd9?$4!DQ_C){za~(ew*Z|;O{)+E)pCYY){^Aa1qKo4&}9} z!P38ON*%lfd*==Cukf+`OY7uXIM}cW`%XA-_0msb4q;%wrs}>}5z-vgc^me@tKsu@ z;yjvTJoRXzO*aD$MK+~8=xYM~op=t~I0t*K?EmlsRx!?feY7>e5H(PNy?gExrt9E? zEfi}$Y1$5Gdw?54co3nBGL$1-hIe>Et9j*PHJywoHKy7S-Z8-#+m6V7khd2_s1_V zjBeaZC_-M{<(*?ehPEA(XYJt2bWg?Fm=&28vq6_UDRU0*13^C8q3lyg_eAPqn1lBd zF6UafuT#Cx!*g%$mExP3DcpSsG=-)ls-dSHLd5Eg`{Nrz9b+zJTY7-|L0cQ2Liix= z9fpwhU^|sohr2LK!RP6Q4Y&t`GcN4m!6Xufu@7fA%VNBjY~tJuWB%$ObjW&Q{~deQ zIPbz5HCVAChVgv0+$%vo_hO%HYI;K$(d6K?AA*ekHjEENc}-$}1Z!AhN}_@7*rWKl;@KsKM&o55oKL|SR zpw~o0H2Hh9%ZTFWtNAmqmjd~)2Htl~IQlBv&nb@{#@zRJ!SZ$QQhz?&apd}%^Z#fZbBz}5nZ?geUb zPu9S=if`aFu5G}b#fDn!!A(hQ!#=ERgHUaJ{cD|KbF$fgw>CcH!~Sh9+6?VB5or%$ zkCy3dvl>_36L#Cy$a5m@wHl!xx7jha8S2L|%to8>EX0rYLS28HH262Am87d-tG$ zHj{Rj0eize`|W+eD}pwt*ns{23kzek%M}%n(XwJ}_gwM~)us9)Jp$M+Ulyx2=EQ76 z`6jkmx?kDoS1dz(^e6N$`2G;ia6|9J>y3BfT&GYb#PD)>z!X4%i_<5R<-uXzB4LrV{L{x_G%-9ISAxoTUhmLV%$^AKzmr_%VXG= zSzTO?^8nYmc$EHOb6;p`g8kbvFpma4_fc8@gHnDgk(OQJLv~-JGEoRxn1jVEv?13K z6)ncPp@_Hi`Tbku^*JqXw^#kXRW8DoAC89t2ehz9qa05eo?<-QLy_a6yHSmc?gq3I z?96;euFW}Lfe*59)~Ls>ilk4&9K()7yI@0H_lH4`0y-;<6jZdr?cN6uNY;xPs}?dXPKea0j*G~O1oyBFlnEk@GM_#kQ9jyXZskU0uekTXwzFzi#)61@jdAfV z;NfXF(#Uxu#x3k;a{i9PRE*cm@vO?zk0tuaWmLr4MvB#C?lr#x~sE zF;nj?P`4R)^{3r1LnBJGmWh{(`YVJwIN<~%iS^F{b;K4!9JJ4c1FiVRm1Tl z`c?*H;&&S;7yBFL!K-b^%e%W4?sc#)Qg=a&U94B3PNyDT25#ElPM(&EF$XT@aOVQlW;p>Z9Or05VU;ta}t}aV2op8xTET8p#3`^{IZA) ze~owGTlUj8VH51DZGHpWKwrh$_}yFCSJ4O4<2B{5Leb=z) zG1Ygs9vArL2Oi#UH*i;$^K7GGGi)C=T&dSCNc4-eM2C--(d8efbx1^24Z)$@jT z+LD^1Vc_QRP7U`Pfg2dhwE^g-`zXr})wused$Mdq!@T#-vR{G!=ZHJzrjOMcZ!^|- zJlC1>%>BK%#=914yyYpZ4+Em=TD`X0jI|x>b!u%V>kXgAI{#>Ghca?)SE2SAc&C1E z>Ct#i*2v^LTBf>)svpL6DHHFZf2h|QXW@P-_e`O~?BC1$qwtZkYyfM$ljKXDT<<&v zn7VCFYY`s||7p8QH%2wrP0LdrT{fp`IpTawn;8W=LFz>@&-D=J;=IvFP5UyA75rYqM)<27^F!&!u-2E~ao~KTR{J=gJ5`SBEYCRx=NjqxLdaBe@3bGI z{x~)?`!TaVj`JvaUy^eTj`f_g(4UbO$9z#4O}3qaH9-|YN!DRgn%@6bcKBP$&U<8( zz1pb3n7a>0Afq|H$@%8#Z9ft6FVXz4++R(fzqIw_*wXOQST)WDI)P3T#tg5k=wR=n z+1^sx-r$E;pG94`(T(^%&UUG1=#qM-JiPlsItc|s#-%aR{207AzNGi1I8Ji@#_@$V zB*#J65a*lBqwS>aCOy7XfyN1R{?7-hGZ(88{$=UQjuBapaSr>P#s=&s;CrJLA&i&Y zdmEYLnu~LC;tAN24O_EATaO#yEpX3@e$NY?eFGZ@&WSXxSq-}bKKvQ>UR4>}-FE!U zWhx~7mSwF9#mm4r_EY8L*jR;gs#@tMaZZKrmtnu8BV^9$^*;K`$RzAK&j)jQO7Bi_k6(@p;F*?zyeY?jVZBHioENL_!&D@KJOhKyWnEUP=gRnjb1b1UEXAhofc$UMDNAHXAdolR#%gIl%pNsVd_h-3X=|z-Qgl_ZX-@(l;V%ZbAJ~Z}={8AgK3e zTI!kkkE88RPkR_?oZoQHB-oeNMbN9_+Lkb~qw_9oEsuFxMmP^c*6+uY0-- z(|>|j%exI}8)cox{RIBVpGd#*C(-!J*-dFP(y{L%Bac=Awm7I5v;hh4w{Wm%NwQ?Mn4JH2u~Z>Q71JB~DYPXYDg zI_wbcWE{eJ;Sla(I`G+CL-Tu_xa}y{TO6}0IX+fG2hbVEKi>Oi+w&aQ#`jFQo@YC& zH2ju@f$uQU#~7GfqP$G6sNnY*1G%6@noP@yyqhvy%ms0`gnNhlE;j361I~&3E@f0; z9RZ)j^L^5?L+hkoSUwYY!c{zTxfUU;_fjyXoov8Zlzu{pbN;nFT-^ruI51|ayKGukF`j{s+9ZTb5FINxiV zyc}T&VHbohLhMWCl_NYKVKu_*5Q<>iRfGd=lNfjM1n3V&$ht`0 z2x*5c9l*5tb0tQ+i9 z>VR=&N1%f{%lz&n%VACSMlEDIf%YoLeJ0Xb3z&C{D0AALX}vA)F`dQs!d^%EJdEdr z#7*B>;u?c{Y5ZN~ z_BC);`D0#H>{)oYY0Z9?z5`Wwnv92ZxwNmMjKmS3zqh4q@DrW1?Bt!Ew{L5SQ_1u( z@Bylh)yOlje@cA!nwnG&?k`XuCceX*gLM__l;%qu`jfQ3qQ4>h0_sN_IDtBHZY#( ziS?#mT?Jh39i(l6K9YSC!=v<55y;Lu{Tp%{p-riY5$r3wOH)R}`c$xDX^Q*dR)pU( zSN23*xC7Uw@=MpITJkSGgG}VR5PBg`jvG&*Zq<0!{uaC9*fcFdJl)p^|IbLLlWp;j8|cfm97WJ61G94*}qFaB+r5!)PwhBt%zj`cbU1~v|=2U~?7ZT8nZ%ijc=X_IPy0mdg>u}<{%_>-4rt5#|8H_cxrcJHumz1Y??;f1?}rG`yq7Et0Q;nKyZkD_^v9F7o*!Tke$Ux6PkNylE^eU*$4;o_y)K zi&qrQUvQgCG`x&_`r@kTQx{GD&m@h>?i9R*cjkimH-n%Q(4Bkp!bM=?F1)#_YR+sB zSTr9r=gz-nx;uGJ)vU=S@+CHWk@~!;w^8ny3nt$-q3k+Uob~I6BJZ@={&;O4|q|;rp_>ZI{tsegyyvhG}tOYZtOqeE zFt+#1DgRLsRg>pTU$kiYf5b`KM#WW^DLj|&a#prR<8kL#Et)-l-kHqJ(B=SpMcXf! zF=zg*ZqcBDgJHdkrY~q=nY7y$R-}yk4EB5FY`kg+racVrtAc^en7?4UD_>cJx~B8^ zvZ>SaM!}foPM&w0L|*95psmvG_?ja5+M%1PP?hPE@PefIB}|m>Hd9%%=T4qEy`MYn zW|;C+Ah}Z~&zYmko{lEVo=)%#WrykhhPPHvpIfy^^$+L(FMCoQ67;E)$CI5Rv2glLH=|?BM&D+Uv~rDRy`F}^x6)H?`N}gkmU{Ktsru_m-aL<8cK!l( z`X9e&O6f|XNwxG-J=vX#S6WM%7#Lz#FEj<}ZXoh*vUmGTs;t7o;SD$M_L$S&u2Rp=h|ug)p1BlWDV{ zb>qDGx6V`c$QNg6+ip=0mYO!bYSApxW1F1v!TPmbKjCYK(Z(fB`BpGuEu1y~<~el0 z?xLF)P*$|Wt+S@jb8nVb-E56gE95tV{yN=BRj-)7ct<>B0ZP`zH?r zXDjBVrs=sohk>sjP6$lL!$Voq@pZ-}T~KR{qc+p_jKa*_W24A(U~D}K$O_khme*c` z|JG)RWM8s@(ZQJSdj>s>s4tADngxbaLvmMAJhQ+C5$p>XzP?~J z%5x(wOB?=4RfcDd#`aHIV0h+gWdEdF4bMCUI8F!f^~|3n=>(lWT7aq))XG0;$_&GE z(+e^$PeO%G7iiqGc)Wy) zoYt62dTv`Gp$vjWRSrc=%giVnR|S1OhA%G8XV$jKlg@?DwF z@~nZ%CzQ@FZ!Uj(bH0q}^3_NUvW2~NC8C*ZC(7MQ+L3~Po`%u*8PwLA6Tq_g8VPU7 zt1MLm`0X^-03+)luzY_OB$jnoHsYU%8H}&ZMf?j{$*dsS%l9uqK3Vh7%0A1yl<`OW zh<7msnmTI>+RfM3{1~LOo`XgE`kB;A7JhEd@LgzL1RSq@3I2z&{(%PY^*1YI5@pHy zEel*^PLV0I@IT1p;MdIi8dQ9POui|~YyX8Qe5sZ160=sOY$3Kx{u@lzcd1F0XN8Dz znMw6|Z7Rid>`Spo&ssp<*O~`qSxS)A75{wW&5vXXxnxaeb+0o&mno9mBj}q>o@t_| zwEh_k=7i<19S(BNL1@6g@p&>pPr3zt%)f~}%_^uiok1Yr-^`zkw+fb<4&Pbe-$KP% z1*=TwGt}9??G32MDp+eeF_86dS75E_JjJqgo$=o)*kn2unE7{pCXu(9PCXjI|9}GP zOs6Nr^Y2o~QPX*!$Pev9Ev$mwrt>^WJ*vRRO=mHYf1!|{G9A9j(Em%S+bXCxon26( z|5plp+H^L6qyJg9gH^D{bk@R?`S&PrujyO>7XIfH_>$?YB;Q{vu)%b8qm+N|tg~2l zzv=vf$iI0;g5R0WDpuj858>vZE6XW@>G@xwr9)SiGloL`R)MQ5rxlSK6u8!M9)+#> zUsYhOVHjvn=I#M^8LL6w^`0Xmi>bQ>n!KbtnUE@MlEL|Tj6yD?uHmJ5C0nq zeB5$2Ks^7S6!;Vfk!Q8 zH=FD)3OokYQOJ)5%d#=cxq%goEAY7Gj3(cd0#8`Z1e)ky75J&;1ZdBV3jEx1u)A#d zPbly!%bCL(om5hNV>!8O-%l0a?=1gRyj|G;nF6bA=R)%R@Bc!*(7v`agVz2xc3boX z+v&^t{$1&6t?kTb8~sD&*4j=d8pA)8O>VHA+sWt~1#YyRUexoy6u8NDYFOWI6}Z`U zenlbwt-vj|a}BHTodUPo&Ra{d_CL6qu~ea@avS@r{P_8_+08fAXGJ@cK9kbYnIM`$PO2heMp=o zn{Kxq<~s%bt;J;ca;xBRJA56ykw06*&)DIC#LpFNz{Voy0p*o+EbnIr8tK^N-r$ z*7Sv4HGIqt^W9tiB8?xj!*7z`xf(uhhxyJie^2pyS)UVjxCdTIucr5v z9j+w3GF{(q?C^Wk?}ehbtnYG9xD(~+FD6KMl_z`yJHo|cri9me!e6j64-i`ec8xCwv~|AFAO!p72uYW0;2bdcw15jhAcqCE&9?uF&n(;0g2H zJO1Gs-jDjS{^PYg2Rz~1XipO~e9#kqn)W$K+t(pa_+H9aso}Rh;m@hx$r}HNCp?Av znIaa*_CD$fkDz>0HGIqyz6%ZKpQhoMCp?b&nXcjEp73tUUnK^}@$ZBu{4n|7qV=)L z8~&8~x=pB&XstK=GwSCK@ri05Z}@uFw_4Y4lQ;Yw>$6nOLac&q-tZ%YYqY#|-tgP( zPpfo&qTcZL?4PSO{Gd1d8u_o){p}%d_#^h`bsFC74f|++o6_y)4gZPty)RkQW&0iT zhOc1z91vYl%qoa^!#UK~L2X}OdBa0#KZi8`Zy-PY$=ka8ciyl|`#2)>knIbvV|_o+ z{FeK|pUQzpmtW-ze?$9>iK}J%ul0rhLjEbyQ^IvVBWo-wgoxnf^wUvWIU=ZECS&%D7j=&`fI?G|(1coRm z&!MFRE>+Ok&cDh1G6m&395n*N6?BdqQUX^hsJ#;>=2Z&n;JgBT1xCm>24UqxZ3Sjf zS!O|zvxj*%?vQm@$#6LkAq#uKa(UaOi&nJJj$K6%L1^z#|HLQaC$d zJ%L|x`j5^4$}on&uN1gfIOmdbJ!^`gNjSfvQub10tDr$R|3K>oUQpnE;rxq@`JzHT zARNA1I;D};$L^z8HzN^5a!YO7I-c!iOgmWJ2`~GoR zHYS`a&;tTT6{F+Ad4;Htjm~pnThX8gB59IeZ@{X)cjtiSa2~xCTDM?kj@n*+dupa zOI?}fr`TU*s(xfD_E&4rR_rS@=nX%BCULIOpkrj+k7_$3Ob2wcA4JVP&b1~jQc)e3 zW}>K$|8b=zq${PUPSl_kew0M7)1Yl+y-bZ>Z_WkXtj!dDlKBzhUYne<53;45ndU{P zqhdQ-%cpgDg9c4inHx1|D?W2H=ne0t^O~zc)a@>qfiurMPPU7w*ZJmX@bKE?l>HAh zYRFk^J^~pOtx#lb2p`2ryYRJf> zXdGANRt)UxP1f}zlW$|sx{F$hnHMA5YZECujMfV}Bdw>%m+L}jw58m)5$00Q8Dpu@ z$_{hA;#_N~sykt>SDdjL^ve~AGfsnnFxM;2cnxM4SvKf96Rg1qvbg!=Txab^+-s9@ z))s1Jmi3-Y;asAP;D$m5_cbyegBV8E8me}-^)HFiBvH7!P$(Q1GAO5!#c$U*H&`8! z=e4`ye;YX~mw2#76m)L12FTnYGM967MTPZN8(>-3T19V>cv(YWCC*LOLRscES%&j; zRfglgk@Xq|9A|+<$>M86ou63`N%Y4hI`=zT2-SXypI zFJBH!E4+Yp=;LEU(v+9N!ZObDQES-X4R=DH&N$ykO0?`uxW9}t-xvu7rJ-kB;8XS& zYCD~|7y5dDt1UWUj@0&#FtUvPI;A~QjCPeytBgm;_-o9HoKObECF2Eb#MT+gv~6YS zVGTNAPT8Dn4F<#A2FZ8eCO*%G-#gZber=?+V!4A?X_GS@)d z=a445Blb8uq4Atv8LuMAYg0w0ZSR40vOb5v!MSSllk39Ze6`7W1zd5kO58zZ&xGEB zw}?NYSk??A1eb_=m|jerY8kh#1hLGDj_?_InRABc?W^5!dj&h^m)mj^-;woz?I=nPcSJL@~>~2U^Iymc-DI&ImZz%&~u!kmF25 zsm$>MP>8eKlW6432?{ghyov_NoTxB!{Bsx1G%~N})+pz-+_lb}G)0!ncRnD^$!#GK zci)FWC7DxL4YQ!oVe4j2rHq`B@(sC})77|9?5u<`GG{0b5$9|2o2j5aP)R>f4}OV) zUYq~3-$1SG%$L378s=B95Z5CRP=+AYx{ax`s2blV^u7Lz>yYe(k>D?96b9z(;|gZr zLlWZ2#X`iSFXk?zYMKsvmCRIKPJp`Nwc`g_MfX$Z5!Smb1vU zD$jA&w19%n4XB%ctjY^HRV|<#=RtTD|2UPG>pb29$~P=B_m6*>a`Z&B&_C%A>?$L8@7hAHE(8#Tr{#t{c9EjMmypX@%ilFjcWm z=N1`R-@;hMy*6u*`vP3DIAP1Z4KWpUIBO^e{qb&>lW1{u-ArzpSPT)2mih0mUCh!W|#jePMe*-R9o^*MNLB!>(! zk*Yd}!-bg0MMZlb`nZ_H`gLf3HPPpgZTsCsmJ3cW{1}Mh54PL}5dA?bPty8>O=2#+ zx_I4YF{7h6pSrj3&cbQUc$Oeuo@8nXay2^bhKY)O9wDA;M%(8hT8D!3;TFVU&r8T? z|9`tPCJly|(qPUpf+UywBIt-MTJ-_kYs{18vqhRu2UiNe-R9WY!Ie@yVsqr|;9f_? zKVfrlgj6_y02l-PWV{_dYxr!eeI#bU8HqE)Be-Lro9+Y*GrKcL4+Uit*2-# zU@`h!CRZS-ipe{(x-t1?;(*h07)Qk@uOOEqwC^f}&vi(18YS)GIiz);T?JCoG!7Hw zGEl?kK+Miu2Wt2U!dwVy_&l^sXReaO7+L-!!qU9PNb_2ctYWFCv0gc{q8)l%%+4~- zOHss_;@MQ}1PS5IKt@lPzp)%y#U*UB-^+}-h<2GWbAcfaO86-v4h7;|B9=nW;;@%1 zef;<%UNT>ee=0TLQE%C$MX?H z>&BN$KMkPUQbhj5$T~z?f!w*o&qqohJn)nfmHXI{bYgF!_GUqRN~36dQR0=(j4Y1f z;S~6mPU*HPk-cpN(mGeb!bL>d-@}A=&>=)*cX^($>`p5Gb-;bNVJ1o?zPaA$BYRh= zn)j@?yUc)*$h=12vRy8a&;(emQF@dEz&2$ElqrTmP&OF!w}L_Bn(uly99iwE`~1${yY zjijJ9u!KlH{!PPk{!~MpAK<>2xqdiE9|h^vBz+#bwD?x)WdQIff`S$j!u7B;yaBMP zkjj6W@ULk-3jPORqo)C(-XvX_Gt!~R{V}_Y9D$;a;h`Xt94&})R+SE`ay76(fLj7z zf&lUU@MF9K5^oyudR73fuCtQ2QKmnEboxXEb;azi=VBn00!gv?Qledm45MTla;Ud# zsne^FRxCS4uGH!j!g%AaAcjAL=mUGBMI_;i74WQk{JZs zH-onUypV@k3K_oWLLOy_BA#TK>+K79kR^(^FJZ2C`b&4wg95BYL5SpK(X*sT9H6Ay94M49k%#nfC#3T7_)k_Y@TX7Nbg{0Lw}c_aG0SlD$Y!Ubww1dYMe` z#mP2>Y``-eN$-F|w=0mi0zkKG5qTJqu0(qrD2K?!5=G1qql<_rMj6HcF_8YYlMtkH z0*`r@@g3_d>(oik&tC;0qg*8Dsm~LFSe58#|Api+=cZB5lc*WU>yEqGMC9b)T)>?j z4hagr3~-NO976gE?n9dErx~U6o#NR{xoRQdhHj`55C>s!QsdjRnY5w}NK@n6bD5l9 z*Atf0(qCt?)BKUJlzVTcTvv1gEL-D+Ot!`_!m<&5lgUPyNB9+-iB+IL6BUqC^;E(w2)jN(={;5Q}Q2bC)R z5{TkpCMTu~32#94#aoilF97$YJ#0h7Wx3Zg?}ieTO^hxnLz1)!`Zw$>8C{Tv=Mmr( zcR|g?my&L4q!|OB!v7O^s75-aQLWO$QO^nx`T)sY=1e!lfmT}}OQ9@dqaAtY*~gmj zYKpkM6;*UQa*IEunw*^Q$ zj_i`hkvM1xAP)-g)AJBgW|H3;FYx1%Ur!Xr;N~%m$C$GXkjTqo44V5L22u3pd+P*@e;D8l%#F_;h^-GNK>}{NRYPfhcL?4ACm*bxrC*yKQ70LIfSLH zKM|y@?;^}iR`H~~NO_VlPaDL~CES7H)E74u1(! zLG?tug*Nw5knQj{z$F!I2dTw`M3Nn13cL03U=JXTVPkUAt>Gnvzo$P@`8xr#O;S>} zHvskI$!-(M7B3J$>mrx)Cs<5Qq`PKvm+9YtBV}l!qim*Ma^UKoNg-PizMZx0A>mTO zAJNQuW^$4^8F0xea8R?6zLNSPBu3`o-vMGTq+h&HcHg@J^Am|dp0(76Wc7orY6Foa zD?_qM5|*rlWYrpFO1QF6tOAl%Ard1&P`Z=UB&$}ERbOPtPsv^uk$NAW$u)5ma+KaD zWm4}^!X|Z7DSgOGgzH(w$(bbbA>q!MfTzg(ZvmGaB2n2cvn5h7*~@lO@a2SMyC`@T zV7AK*Qnc2d5Ipo^GBC`G~q@1r1mi1pL;V)Qd77NL0Zjh90Si924M%j>k z0n1P61FTV@>L2VI&UyIFY2?Nu>HbkD`^T-MAlEuwWdGPoSdIlnvVZ)VuRYd0BO}?wCX|SlHyWQ zJV1(4!Gk5ruaKw|tl(pWrGgdwEnq5mh~$@r3YUD-tl;aUfek~VQtoFY$>7jjPguIE zM>FWI{)@0|p2y{RU?#*q?{0dT#*Dp?Lyj%EhzzBGPi8y;ndI2=Ga#1CLgJ6dmQ_gk z7&xj2eJ*9*1ynVHe38K(^g4@1fv851Z{&6TzatU;Klgmp0Z(_xrAClYP>vuj5{Khq zqvc5T`9MqgzBaObx|6mMc?n21w5P@dOPa{#&8W6C;#m^46hE|&@lTyEQsEOXG>nzV zD#N4ZKk)#S{w!dn^kjfaKTKFEJr$tR|4vvc`L6*gxhM3cl-d~J;57+w$zD`g+5Gnb z4uDIDByIi&3IB@l-5jNwWTAHnOFyJeM*l@v`hOv{cn<2Rx`8QMZXn>2Lu4Ymfj0ww z$Cytf>1PzYj?Gfd{Jq!O;C+?PxEQDT{1R{i<_TnUJB-9P0F;C<{TdVlWUj9)DI@Ti1g4c# z04Vzwz~6z#&j9fpgb_O|K~lANuqteiPS8hsmmN|TQPGEYuz|%p*y0*g`C&@*7+!6H z5`!;=sPHOR8#2|r;4a16rXJx}Tyk@?KBq4%(5lECz5xJB_ znuIaL$O6s*^IL`UXX0=;3Bj>7<1B3poY&3vNCTZF;25H{=-eth!)kSQtJWecLf$=t zyw7nH!7MZ~GA>32ZY8uetXBOpF3cDPIc%MdzT?RP3QoKkFw2)MtX3Hr#1sIX%;sWc zuz5c~M^PadXd}7?hh-Bn!(*^`u!{^bg;2?@Isz^MgDlP8L#$92NZnd;@}xP1H76jD zbat~G9+J<|jCF1sGG=<)Q>8L8GBbi1EZZ(y$QsC!xjj)KF!4}QS61pQkE(@~1;3c6 z@+sKaeOlz?_r#=IDXnWzl{`lyOI5W8ae!5NSZNh`jM8iqq|RkJiKz5$G9CEc zPt~2pi%$tauty6JM0#d`Fl8uV1RgE}rWQs;OHTkFE-nZbrUrJjDLnuK^4wg5q}zpfA(jJX$)95!=X zCUDxclrNFmbw_Ilt7F@QaZ4?q$O%g=?0(TKOopYXc$9IX;>v(Dtic; zPJS>{7^ZQT!El?3!?T_G!1EZwsG#p*wlGGe^Kubku7eYOuh&~p=OffXrYzDagjBK7 zh{;a{{x8OZcLu8jg;589axmPZ;)M*k6t|4K8W2?v>SeTo!KW(q&SqK0QI>ou%eVv0vWz<=%eYgr zjFW=kA7#k_E7Mpn!+aHA%uoq7fr1^=C=6}McmgHk0TxR#JRy@Ss+;ARKzV41#9$ba zvQ0SHEZc;%Y{Z~&_-QeT%}_Pqgfj?gQ{ewY-P^}kRb1=iJDCupM#PF0g=&;kc}dPW z2?4RC78Q9p1V}=VsJSWrO@bVEYBtpjJYyoS#WwUY7R!D?Q z&Y{W2EIVv+jx{KcCfo9?tbjo@D%&gBL~IfNLwUp%aQNvYSBMm$artoBUg@TgNqM2f z^O*Q?Nxae}z8M~NtZejWqBW#j&=&1{aOGmhV=(%Lvj<+L^=Z*r#iU-hUX9{Sg1oJQ zN>%~O9(J=+$fI|!l0AVcz-8gF)Zlf|r})t;g6I{Depsrfg3((fPDK!%gNx5-YYq{g|H895TYWkQ=W$W{cy0T(D7I`MQ|KE ziDlMbK;&i|@MB@w>EL7RBrrJ3!(ElVsEO=sFSe-`xEc;aD`5wm@$!ytqGylrZz3EL zZ!O`3c;^$WUVp^c3KrwBZMw9mzY7k((BW84HIsKdY8qxUAy{DjLy6oigv^Z!%NBu$ z%n=xz<@rsPn#iX13O~5oMW!^Lu(1@0DeEsJa--0IDTu-=;E)o5;TUbhs>o(aL_Vg& zP*P6ZZ2i-TyWx<1!YksfCLFa~!g2A=CGbHJbWA7O^IKHyQ+Fj0Mn zAom@i1co_13~z)(MtcE#wgNBVQ{tVw7Vrhj4aaE_Rwbd!hBA7;kY@Tf>ji> z%Bu*pC^Wr~0!f36m)e|7kBwCu#HtNU@>^D!#>!!=To*0dTOrXI7t0#Pv#I%wVv5E) zL*nI*%y&@-Au7lqiri7#ynbAk?1;0#=nvHek)A4nAoJ zjcY9+TZL6Yu%Yt_8-#n~ZonS#RuJ}DE@3}hp0~uC{Lv-e<(o(yfE(dY!!#J`Be)As)5Ti({fu@M9Ii+3I&pYL(J>Ow%7cq>)_4xl}OOTal3B=*p@9(wpGCGZIc z#alxd27ACA1=wl5gkOrcfjjesc^iI;oOY|E($T24*49EVD7=P~1jlDm1#=w|C> zM*AhB^9Tpv&`h`V1i79Um?s5YL0}ayMSyK@6$I7>xNLU$QWNtDvabsB8NA%P zC|P6euxgkzfK>x;9xA{#$@$aat$_pARSUeXb-GI7dUXnFWir|%7jqM}T4Z5|vStlX z=7^R%`D|MIZS!*ZBl`q0$n5ZzEXd2eT3F5Il#L$_apqCn8AZRdiet|)IP!>WHcXvJ zE6ES69k+?SsZlK_aL+d&e{2(xB}EycZDKbPSZZX4OOMTirAB^GdN;a3i0q(M+{jkJ7C?5; z5^i*TmF%EZ+{nhkq9;43f^nNhfj3e4#2WF(HW7C!pU5uFVhUFi8&D2EaIncWCEPo` zE;YrrWP?~gtP@MIRybQ*%9X#RSOdpU+Loe^CzR}3f5cDu$ySAuT@y}r zO%JoESy>a-xhAZ0jjxkKgBzq=vtpZcjp}q=x*E-ce4-o3h_+h>0~z}T8wu;5@~$0_ z@0tPmt`U&Wj(JM@YitvdJ(7GPn*in609LD?xL*7vn~0fxY83iY8M+E;!Hq!hy1@nB zJVc^mcwP0z5NDzr7SUxmTp4f02|TT_7X!J>!c)2FK{!6#20a&wuDM}RH^kPeY?gP6 z3vN+O%+_xB_ledUhr;3lvHC_Q$xlB_Mo%2O!tV`TJIPI+(huU|-&lw0S$I}Jx@q_*H!%I1@5zdYp z^c{jjRRoFNG93xB+^kGs!YwWhDxn!t6siIv!}=blL~^cL#7_8`4H0r$*bj!IZHFFU zxl<{S3;O#Av==s7+>f$*ajh-kT&%GLgYUYL(Nd09J0gH_8xi;!$CO#KT-#8En%m4Z`=nsV7&x8pI}iK8nKW1QyND&s%IB=*{2z= ziW&Y>7H0vA%!!ew%GdkDRfxInbj+aeLXyFn`2=+4iS2&t=Dfw*Rwlg{$eIj|1q`az zU@ktlOYl5rB!e0?m}pn6)obA04;N~^DO7kb+!@|O8*pp3;SBb&VYa6cqHq{wHt>m^ zT>n$}PAJ2d-OsMH!kBJ@><*M{NhNjv&JMbQ_#RrRRX<6OK4OJzU`+ zsxxUKRPZK^WyRx9Oe(baWkWv#$43*yqt>5C8jr-q+Rs?bVCi@EF^4vG_Sa1mz$8hixt`hIuZGi2T zy9cn>dXE5(TJK4~DeKL@6w?J9l>rK^w+t}RdZz=*t+y7iz zhO%vd?bf>wu-|$Q0ghVlNx&)V%}2=%k<#-U>K5ej030+C_DgneCUCnK-Zv4BSuP=8 za|5Um@6Ci-%O&($E}`FY346qVn+Y$7w~A08w%kk@Wz8bk`n}oHixzH$GhX*0Ll1YJ zq1Dow<8Z>K$Hwy~L6Ym?*qVtv;sig&HG469D;#ou6u{t6tJ)ldQs@Ih?GvXQN<0oX z$m_-vryP21gd07*_JVZ~j^hDwh@>``Pz{GyO+$#amQA1nvQ>dM88k((+(>C~Xyrla zUN~l!xX1ea*bM(yIAoT<;84eB=mud`5^Sj74M@H!p%sS#{QXv_adz!sv2!-g00qHNaW!dJnMbMSt04J zMgVfLQ^P|Kvirf(Py%D0CX`Py8T>i8Y&^Rr@}Lj~`PG1Zqs7aEKMO>`e4gsDy8N-p zrDPv;I&C@7mYYj`R@~3yI!!KD1V-jK5zI|HdR*q5&>#wp9737=D``v35I~{zjsoyx z6Sy??i1nTXoDjQfJm1)wu;L*icoXCBSQB2yF@pt?!JC2%-V~0*^J8rFL`K9qlCTzz zY$6i|o4}J}WD{eO#4UstWfKouHi6bsnwT$E+(Mv1WD{u>bQ6{-o7gMtn+bcwdrR2n zlPEPRAojy<-Uk6}k=>kWez_QQb70%ewC$MMMjU2S3+%a>HrRyyagH^&85P5Xi8i%r z!elt(rF%Bf!&7JIH3Xgo6+S&HEI-paTe;PQw3QjeQmr|XgkP1Y5LbQhx)k7bm2gnY0{L`?!|N=BH;Cg~ z0a_$G2|CI49yT^6EW`ZR=s@7C4p}@$YcB z2XJ)&FOz#+a$oDx7y*;66zhUT5$ao$eO8iXu3^}-J+4&=;i^T50@&Va?SHnXSF6B^ zX-Y$o?np_y(xp8V(S7JM=bi+zuNHgV>Jepe9mJGDHkN&7K@GMa63 z^Jx1)I8Ljuk97vGvm4$uYBdG)+6GO#;bjC*URPJpiz2&1FNjW76Cp zt+`C#3zDqA*c^p8wrkC${HMgexio6*KtZNF6b_?%9?|CSCPuQEx+%zsKjKl4DIk*n z3}ia!a^Wq_CsxDddQ0-%y8^-WuaG`sveMoe_SXx1_>HG5tJMa!0O0c1R zXIOx2HA>bh2y8N;I}vv03L8qWp?=&wVC{wD|~%K zO+UEN9vCSvGg4kC(oTQeIZ=e3Q7q-Vt!E32qG2fPZ9PL_9W7-4DT|>N;3U9RQw5Az z07rpPHSP9wZ$luntM4&~(Vt_}+R?*AHLV>zc_{peww8khNJxBpSbTd}e7m0-#q*FG zml_k`;aEqzG#u@+!2`U<;Lu43Wl(|T@B+l-&mo0Y#uQ|6VGY-h5E>s^&IM|2q#6pM zv^Ml?RZ$_rX0Oyh}FGzg2=N_X75b z*I(ctLs7f~=Pagwt(2laOq>ME11lH1>}W6jy&^JqHDH_dI(w;bv#@-7b3jfOmT&J+ zkQ0SfIY~ol@2#+xlC=_4wG6T>70kPW~+ErXxq> zmJauaWri^>T8xVtYCJ9!+NQf;`kiL>#UeNiw}cqnAneL6xpEV|)<$eoylk|eUN!jZ z;V^`rLdUg9`!&JPWfD3s2=&X5q3rPknyh1DZ52fE8{}>C$DY>_MmpoLSd-*0Z@swQTisQLR!osgWa`P`H6R8K!h#9F&wvBiY@v1D-vOaOtjtMoP(~(TmW2 zI4oodj3E3>VKlF;8Xj83hg1dg9hp0={&hX{?16)Rf~LE!$0qO+n&8k1te^2=e{PkNtq_#)|f4SZda;>oDx@?aEIbB%u2@Awq z*$c3O{>qH?l@G`D6Om`K;V*EC7+wU2Mp~=Eq1+4&LMg<^rwL^PW$-vS?x`a3z&X|^ z3jn9A*QLml@07;gPA}I*!#yNQRj&e-uxltMVz*yWw>86mE)xTb>|E-=YKeZHdB?K_ zCV#|wopMSur)-NvD>cpaTwL=eC~Q6nx9zP^^TVen6&b+xlE&ba_P1&7~q* z6DpJiU{NcZ0+GStaWoAclgjqG@?DY`Q>kubKGV1Q{JL8K7THcF&&gmc3Kq$0RLUAQ za+DJaPyZVR$_xw1_=}It17${pWG1^JaWc%|hKU&S;9$)5o}tKUfz%xcCw%}KkHMjY zCti&wXKd zBM_k_)mD((gjLCGAG2N;o1r^|RmIRF)*B9G+_SL|&U^imk-b?HKf38C7}RnR*2m*7 z8QBNkgiCI9-pfb+CTo+6&&Iw0j>7QrWgF{meW3QLc%AJ7y)_V+) zBZ8G-HT@D=6$n-Zf__O-V@d?)5^Q=mIyGy+VtQ=(+kn)CY0ar5`!HD43-$>B?I3#? z&?@t*wiUrthN>lO7VmrlRb%E^5lUmeO9RsT5q!`}6PTh%2T9MT1sO#UBo{6M>UsqZ zvm?RkTDBsTjhaAL6;%$AlC2>yQ^tdIkh>aJR4z-|*!03YJq`!|3K!0VX+6ViGg=oW<`SG1845uv@!olx{v#>`A?+!tJHzT~#VR$(lrW68$LrwHnU<3xEjfX>X zB(#!XL;bOMB3RQUw1O~KymL1I`mYgs55tS2xyG}JP5n}k*pY^Y!T z41H2U{gITc&2VguMC#=Fi%3!48W61}e~2Zy&RQn8O|2yIlP$2=pByN=6%G~?o)K>) zfs!HPb3k4wtO~*;@y?q9m~Od*3d?oH!7sgRfManHw^;vBB0sMJenD7vJNPU*4GyJF zO*XVL2=$9D2(8))!DmEG6`>aQ-dGH+0r0yo@bc3yOgpqh3Zl;qqWkNNBZzklj+HP3 z5ep>p{2~B#g+~gSMh#do)_P15j{ZDEA1W#ys+|I~@gSquHt=>!I9`wd_rP%}1UO{9 zOf)k!=3=^7aEBnjD-&*v4DWzLi4qtbDp7_u3agS}L;VuvcWib`X!Tyee(QDiQusI= z>y^lF%!E^B`1#-=WdegkDKj)rSd~Koh1N?LE8dDVfOVF;9k9cCUE)O`Ckd;9Kw%7` zl&3JfdjKzpw}N0(_j6VTmW@*##PK^gg-^gSXT($1pHJimZov1u4rNDzhg=dE9Lgm_ zhYG8bU_*T?g1A+M2%RZ{RSN(u*1HApl=bceJZHVG4EQ~s8evsap2A3)f*DqjJPgPD z5RY2_5F$U;gImNsPN~E_e}-g;!0=Fps48DVEBPs&GV67b8R`kEieS~$Qt)TOtvv?# zyY&`Aah)iyZ2>H`-moSceJ-QNB+lF^0IO+kplNQPX>Op&@3|F-vq7R)GR|@9Wt>rx zWF_OYTCYp}FoY9@@?@@=0bt;jc*1CFWH{xkZ*Knq|$<9p0!ky=|~DC6DgC=w=tLvP^+On-Q87}XqRuX`N_Z|Us(%O zEo^E|w%a&~&W<*u*O=^(Pn>LEwB-_&-mTVre42TamHzpH_y0nM+!s|-j)&wu_MpeF{rM^@4zxx`5Q%8xG zj?T0wO!$;9Mg47Hw|2BQ7swxS(gQdHgl~621Gs&T%h>mWkktPLp1QilO`Yvct#ut@ z{i9%6-`C(vp#LEsPm5gF!tR83)Ox4RD8Ipb9D|E^z6sBwwp1Mj_+2rU=)&b_q5QBh ziEboYS2Drl*V3f8L5?f+_~l1G7&Lz%g|rqQKT=AvzO}WZ!7=%bZZZ?eWlfEBsSaj{ z9~32TNkIk|16Io8 zPsRE?Eyu^gytMcA0c6U1LFshUvb0N$Kjlg_`>ls84$7@eg?T}sT$(Q3hiKrn1(Q{KzI5GJmDK?_G$&ueGB- z?eW(#uj5$8pP=lXfzgJ)2H9PX1U>!)B*PLOe@jwEpM=K`ecFMDKR#(~NOZS1$d71> z0YWt(@HSRzQ#~d%ujQhE#5WyfV!^mv-ztUPYb z{E>SIooeQghgvTGX zrxb@CVeqG1Z8Rxgk6*SF0a*sh3P6h<^9df)z+o=H1>JgaLGP{@Jh(fRrESVFf&6e5 zKiA|w6~)g#@taTlU{n7f+-kt>fpga=$QHrzD^t_q%Hb;DT)e{{5RadT3a3N;ly%op zg!2noOpD*dau+|;6oZ=#mxfyb*AM3|ellqr9KVTl0*>EHKLzKm7A!zo;rMx?G~6<{ zlW?ctusg@UPA7L5GDqO}i6M8z5T_SzEgZiCCR^6p_L4SbC-+5VUdRw-LZWh*lP*N@r)jIx+8hh5k?uFjN=g_ckLJq891I0=P^3> zMF1DhFxteUcZc8(!|}MjJ94*GbvpUgkmY$b9+Hw@nnJ_pK`Wl2Itk~l4Ult(@(#m) z1nwxDyY^#_>0;daBh6Y=X|CvA1tFyxmX=$Hbx z70z8@K99B4z^x61^S7T`;oLzso==Oxxr^t~-1&K)Gjn-&;rj}3*Lj&e?okVL7x|~) z+)0uDiBBEnaMZCPq-QJqJK%Q0@o?0=O2qR=8zwtKrtbt%Y;f|5k1r;^e8V z%%j^o?DELGap$YMC_4(S2rdTau3_+xfGdDwxVzSk#YkFgcW83Iq1(gg!nx=1BsSS` zujAI!gmWh%!@04O;qKx#KyJ=E0LOiR{skFsg6oIlemi%C)8?)>cX8j^Nyz1UDIO3S13bEu70!SZ`QgKH@rk1z~;gx4^Z+ac>#7c=;D- zXV3p8{$9!>em>lgkREQQa(kP&!^T~;;4gq{h2zGdLvSbHcnf(t`Q4D)1Gg8Bn}Xbx z2R}FZaA(naxD9aJUgR$RS_U@*t%h3@;&boK2spRHhI>=WL-zeo;U^%=Eh#ekSfy;;E%W=L!@BbL$ z!cpG8RIUP84OauV0?u8nh?j!n>+{`kd*S#Be?MFibh(SK!1uuI%h1nvoLk_w!fgws z>t3oJ0*`N0-IX&5Wd%1BZWx@qM&K1r3mo4LZN^I=_a4W+#Bp-`G=A-MkcH#B4|nl> z$$GdAaC{NMcO`ts!519;aPB%1;x7pCPlosvAwD0ZuZ43@(VdWTYPcXlrs| zw7H=nTHo1L+?s6fURI1pVV!tf&{V%L87+%Uh$h<`TDu#Yy#JftuH{`~M|W4J(-5ui zYWx2{3pD>9wfwL1SS-&@{*T&ElT)I4e2=})@JZfd_(ZBRxx^B;X=G@+4J834 zeBF4Smu|Fv?C*sgc!}^|XJ_ra8{2xry9Zc~LYP72c_pkw=@OB*)Jx8T&|CtSD9-HBa^A9WiGn z%45&Wh|Zi5E#DcN&{7mFo(X%4?kbMX1Vp3LqtO{KFG@fDLtVDHIb#0i#mmfXkuq~p z-=fVke>v0K*At0G&CrNxilVSOI!Mp z(o9Y7kn=>%UsguU-@UiZ)StrgjpjGrM$?~#99$AH3nLM8DGFmow78kto+{zr1{4tS zBn+*jC$CG2qnQ4w{DX(~Iay=OSrK#n#-!x!CnC`_+f1T8StdVX(h*zirK&Ew@Vr3H z=L0qLtqe%ihxzmEeJIRWv^+Yixa1YdN_6~6^A~U9`O%`%F|*6^t~BQ*%#t`wSR6MO z^qJe@X3?&wxvVeJ8l4fH6Duk=XGij$FiTmyFK2Ho89OdoY%a8g)*3O(B9hl}W@y|r zM$8BaK;y6`HqV-6&Ps?4#nH;y_dYgfG%ZBeYOq}@~2uXtv%)uj8-ElP__XT%JS@b3_t;MtKj$}?woq5#cuYn?OKT#6czrbIJJ<7W45 zedgq#jb=!^#2jCqFnzgwRi>>kZ@78j_Qa}k^YfK`=1*A>v#Tc(E1mOg^OhISTRJu= zY20n{3ZzSz+<2~eeFbx#Mepdhw?yyMwum1I19vQH5h#M^w8zmYq0PLrGP0^1m>-Xp_eA^6ek8sFNj68!H%uhE>>?B#;$`Q? zU48!Xw!YFarKYOS+@I6O@n(Ev7KVx>Mh-Me^Wli8d)r)wzY+Vl*jyf&RxN~_DYyo7|rb4Q!aJrVO)Pe}78 zFS3co&X~Q*d}(DL+WG}QH7)Uy3ihHOBKdtec{LRH3H3@E*)|EGkyUM+(gq{BW2~4> zOH(wBadQ#JGlrSRR>aMV7=+d4x>A4%;`gp z`^@Ki`ploveV&K^uci;-eP%!0m+>1+?|`=o{$IiMr}8GnqtBWT#Z8L+bb@KY#Bo-9 z!fZ1uF>ds@e)F+7+FgA7BF-O6A{-1;k(uL*WP&+25}lJ=WCm|cRxZxCFs{uQXa2l0 zuClRNi)NuCZ|+Z)n{?s}CM|vc;c`>hXU^JaS~p_0depx#aG6%r8Riny-=mM3yWqR$ z%A5x`it8Z%UoA%&Wq3NpV?pD+z;6- z^V-UI3yME)5=uw97)G;2=9eosnr&Ga1^O027^9-u(PKx(L~aXI_RSoNl0Y%p)|}Ydd1Y^Q9&YE|(2Ss=6yhv;uI%mA6 zq;x{*m}tr3WEl#qn01ZTj{b3G#9YV~Lv&oJ=|!{d&5D#&M$Oxp@*l{Gl+HFEiL*~9 zBc;)qXgL~XX(BoSIg6ObFhIv5<5$fo9aA>0lI;hY^CRQSF?4deT-zQor_Sp$t1%9q zgpI4)6F|}t(yJEFDvFhu{KTTMCDGCf79+DQ%dVo5aV6tMS78J^$M(YW;^oo^VlpB2 z+R>d+Mk7MZ{9{qVJTWw0jCEGjB>Pa*eJv&)pK0D*nTT;-Z7mrWGf%9Ho1ehwhkD|_ zm^CeCo-*WReq_;XNuSV8@%>1I37#BRZMoLkV z#n2YTn&nn0F|Jf~_*~4@loYQH@fn4lI{2kEyqMb3yi_j`4ETfF=ZA*lqlS8g8D?3?d#mv9%s{pR;sG90ws!02<5#U(A}$RgTIaV(U@4_jr6u;OCrxn-bE+%}6% zR%W;e7)M!V)5h_uAjR7g^Y3DfG5?VzVYyP{;thNxZJqYz&e=2;{U%~w&Wc3MzgZ7c zjNwl<6w0!Q-7%XjZre)H5^6!Nr3}jDn#tsvd!$PZ%FV0EH7~4;xAwGS3d=ik0Xxl@ z@ncI$rd48ALW{ZAwtbtxv{?6x3lJ_C|?Xp<{8{neHRUW7w~(SMxIV%3G>6V zcbR4J2_;E$eqO;{cbShQOm`pfyhNEDf}tu44g9|yf1m7$H{WHN`|jc$!jHW^H%8)? z$$a~cw{7L3ug!9mdv_E!yyYCS+EJaXN9j&OFg@7<aH z#-Y9;)h4k9)Q_o1V3EMPcT-_?mPBSyx3p9#e~dmq!a`-R4aOZ4=FuhDmuFFm?MsKI zxsllT*%&@Qj7bBH-?kvVpM;o92B$$*eU_OWFDK@`t2aH@N@4@^d>+@gy>2>fiOepZ zpfgUS6zfkcG!JX*IlgjW>-k!H-rDgPEXR*CXYOJ;GkG7D-4M*dW@+M4vg*e%c(fTJ z1v`^tjuXQTlISRHH|Hj#3~Yhei6O~FPj;i^rf3?KxUy?Xv?k513CW+iG%h_mX3iI7 zk@4eKo5BQdL(u{-5x_TX@m({`A21R3V`U!0?Oe%ha}E|*iA5Q!*u|WC$6*n6Ur+oC zW|&=-#dDimOo#8^Y|h*DteLZGwk-K(w4h~gH2<{gIl0VPyPh*ccbQvvnTvLr*2HsQ zV0_7*l!b;Gja5R^vpw-y&CSW?WDCZ&*sNKL7n#fOSO7~+Ecnegvp0ghuyi$6D_EK1 zu?|+fczhI#CCe8Tl^0{lCbRpJcyg8b)g5^S=VJjJzhGL@d=2yUD=XvZI)md?SbDQO z@u&(bjr@2;MP+3LycLT!p&pt`#?CUIli?r>gLTWDeuPn* zBIW&NCnNWn%~^e1Y~t=5J@5iN%;6*+H62(`#mz>@`~oE*C9{bs)6+7QW ziP=-JyfyFO4idJ!mW6wj_zc{)mlQ>d#uddHqPTIwq>GjhTjJ(-xNra71$g{Wi~%WO zrr3T4MOP>8Hq#O;0j!jS%ReTbJ7M%3Hl8py+YTYQ#j~WuiqV>B**Un=NsQi&dl0M> zt7dY^k=nIkF$Pp&o)c-$9)^eG9o^|vH+J}9(+qa5V4uhm?h3LSFJw~~w_wQT3%kRU zBsVx=BN=?}+vC&7tuwk8&u$fJ#N$-A&xKD}Wk2WAWP2kv@GMNGyS!9=SC`j`y*^Ey z*j8{ke7`obrU_=EX1vSUEH~1H)JlX?`rb123gtk zrKYHZh)ZstB-Dp7-5 z>tWI2rsZlfHrS;*>Po!ZWE+vUw7#>Q#hPdjDa*86HotNUSCa_gu{gKy$<9P6aNSR4 z>zq4)gv)(j;jPVNqUZ@$gI~mL^?0z)U2$S|Ql7R8qpr1SNmHwbS0PNU9eYZU z_Nq$kMyuQGmM5<()tYw2*j0xz^->Ke>UL}xu5at|+(vYX9PCqT?7&tp%DKJaRyX!E zdfax7!fLjg(wh>AWJ3~-uZwNe>tdX)x~0j+bc?8T*+DUMb~IoETU{G=qPtzJvPX=n z)1f_nZaW`da@2RXrm=H2#Xaq|S=lC*uIH{#*)cz07rbvJH^JJb8Enq8{VrqA8>(1# z>Z3DtF)?b8W}}<0y`?QpolTzhc)Nif-H01ayS&EkwzlQm;@ghB=&~mZ?N9P#(}Ez| zP`&g^$RTIg=G(#jdMpa0iPoUI%ltjZK~qPA)b@|c=vdsH@;9=1vP;*tjD^c=-MKAy z%ecdsb&;{-*p{5^?S@`t^K`og{p@oeI*HTwTDv*C4dDqKXXr-R)uoy`+mh(2jnaFV zZChb>iyjB4&Q@%6YxJO+9!tY-}ZQGo;HKkiR8ZnZ$qQL5w%JA7G z<1{SDXuDJ-txhK*egFowT^x~ z6~zIPE!eIW#AsX4DX+Z=V}&$SnM}|?trg)t=(2TLXLKx%nlNFauj!J3`5SPefef1m zyXdgX9X(HBr#o~sJ+Gysa{ZF}B#vyLIv88$csBVInhwU~BszqgwaV<9w&U257#q~l zm85p5MRRBu22%4WbmJwgfpDKkr`Bbav;^+b=19f$pJ%PJRpf?yYamRko0!s3@g~Ka zp&zB=HDl6B%V08KveJabz+m_dFE{JB4(a50vyh$At&fnFjE?ryj6eKfu=jM~rz2BC zOH;#Q3?p4~jOEtu`t~$W?sVZm4jM2w$4jT|TAWN_$Zv1Pm}AG8&~Z3_WY!^)>yvb{ zqg^_Rtif$Qx-zT6ANm@)JF#R=yBQY?N86-Mch0J-9*bLT1X8kgVb`*}D^#0}T`Ak+ zc&?78G<0^IG3DB7ofF)2Br}>0B5r|W7X+s}EXc~XL#rL&Q95?TftJWF?y4`eE=E6M z6{EnL?3uP;j>TkSi$)r;?W^q_ID%0%?K<1%-ggK@RwMqBWI*ZKwVhqy$Xw3x%N=D* zVpY_I!-iNrbS=g4M!N=U!%iSse`AUWMh-o@6WY1Y;Q(cX-9n!2KTx!!2}l0Wtz<+KukK9EHUqv!@Iw6B@^G4o$~&4ni`tWz4b2 zoIOj>?k%sA!B>_#(g?8aC3H%S_aQeyM`In9`nWwqNd%nmWYg^kdnoU9W@3>V)RI3&d`3-!du6sEx6xVW?{Lv?0tsUbvvaQ*<}|GPlk4N z)zE=uzO)p(U=o|rcu<>|JSCR{MhiP9h1NiJ@JrgJqtiez)cQ@r&XoR0$@;*SCrORN zMcVU64%^so3y*{LG@ZR`VTIenE3GUJsaV%msZK^+d+;KtBOO;lUdMAO9jSUW zC>d=+s%1c<%22D){#bYZJtg0jYM|951Og915MQ3CZKcJk_lF6{sK*k@%_g_$!4v}MD7}q+;Vn? zr+v4?#7(EIMOkPMI9D8cn84fJU_msWYO4UF{~{&v?^_=$BZFmremd(Y~!D~)shEYbZo;Zy zA%;KUV2Q_!b72xXENEM@Kk@`c&61gE}G|nn@_6A)Huum%nJch7cI`c4hsQ&eCglj%7I54ita|l+O#MP$?o?V`y z{s-iU6)S@_7PoDJ3k#8$O5Q+5fN|Jf3-l3-)eL-UK9a7WAZ zq&je}IEgXVj#1=FNkV|jJMH3rZNIH01pLZ!Qi<`LS_QoR3;m}y4HmW>Ak)^XaeExhN+H@S*m`C-0^a0%Ncdx3R4C*W+QZu#3zmN@Jf$-517fJ-McFnPc&?KJk1V&{;Jpw}&+KBtu0i<#)5|j3lRx7GH^DYNd(7Y6%G##QC#pJIdDE`H{$mBBu-+K`-z+z-3uGqXOFGc@ahtP9Pstc$WP&b}lYXFKyD@g6R`L|rjB{~T`^Xm_oL z=eof|9?V*m-H$DPUZDn%zZToYuNz$WVAlQF_nCWhRu8%-_wF-R<@KLgK6tW|8-=5p z$3#cLgIV`w-)mOq+%xFz+*N1v=S>-m<3A%*-_SGcQPt}P4}CD}p6t8Ls+|5oQwEQ6 zdKwYFUG$tLy(xqF17&gz&4XPcH!RR|SFWEY9^u@A@Ts9ZxwzBM#POih#2qD?ar6k` zIUo9fJWmZACe> zP0DJuxhLoDL9256&$uhk*Si+NEYB&l|L*Knra#9I<8i?$2n*L2>y{Uf3^E@sul!}E zWjI+NvQ`gD+uB8W{x;Ks531iOgKKC%FCMvL-JP}_Oc~tbc{ z)Nm|n1P&csXUibmUi`MlFWpW=Iembx8ka{NpV|k#DEtSrR%hR1?#@{?2xp01T7{Eb z`1{(XpBBI9w;5@DK>lK`zWF7$oGi)(_2TT{F{Be>haXnX_TcJ<$B*duzvx!i)v1ws9))KrwSAYG&g?QuYDBSRc z1ykJ%ImlC|9~nF@9tQC6_6sjTSXzuh8c($% z*H+Dn)TePju@DbA1|*WeE4C&S$N%=iSD<*P$HVX^7fvh6_qLSeNglZ{On4Yp{A<}K zv%EYU9VeghDVGO_?kF_6kX-viN506QEH9iw75V>3jwde}2hB__>MKw`!Pz$ve#+rA zrCi4#x0(j&MLCAgR8+Q?o{O<0bUctUywC&(ze*mBM zc9{x=u};Erbr0c~Ec%bTTv$3oZvId370T1-OF=GNA49rOAK=kGREuxlYWSUQc)j(n z;QJHIfL<=FA9PsXu#i5S;`jA!fZxTTimbz)S3r+mE^IyMu)YH58v-8fI~UHim&f6E zap3hXJB)G(MRZ}`%8Hz0uOWcA5KIh@q?FBgl4A)TLr<&YcU z8ars`{RjNv{7yuE*;!c5%#JJP^WYCPBd_I>EN^fq0p}&Uz6LKkN0zr4702=SGjP-g zQqm0T+gz6Ay>b=;^m6(f?J&&G@&5dt;}gw*9Fq>GKsra-b`S@7P=f6(8}SQ(Yn8_m zWM5#Iy|TQK@Q~)3(8-^I-(FcBPVI)ST<K{~P+8tr!Ec4LmyOT$r@gYgC*X1GQ5XMUD4gkWJ!-EkZ?Do^pE~(H7X{&m z;7$7tFxUGH=vPAYQP68b^qZhlexu5j^~)*n?3L^N6`qQaJR98h5IqQSV3)UkT9{fX)la4+p&y&R)6RW$+h-=qun~7oz!zn!_Qw6n=iL#>HoO@v|NFvh6um z5YSgacB0=ca=lN09ucCir>+o9eQQJUXCRz3*H^Cm)0cse%eJ@Ra~?MR-J$S0#IMNE zzb6!406j-SbQ9#)WXN+(Z!fFAf{O;Z&>tY5$3aG}T<=!U`$F-Tf<6|a?*Ls8l4pK- zPhhVs?=FP9djyx?4P%1vhY`Lx6n_)w6(RaD(C(gq@t+0l?j=aS0=gn3|7+0uLNx6O zKKEhsyQL&Z{|Mvz<4>;lN6;-H`Z(z0A$@-VJuDP{3Up40&PLmeg=nTv`|V}ZKgmU& zT(-W0&sbm$f%xv;#+6q-?qi(%NQC!>^p6JZ?sF*5^hi7T0(fdZuB3(spNp{e9Gw(| zPlmp2A^p_HdmDRM`J!tBdMf0PXUOv&$H|u?+}+o>{G_iB!kZC3!XM9by*AK=A)4t2 zpIxx&Po5gY?}Gf440+!7*vrZv3en3Ue=sE91A1AAUIlt{h?e|^;uk>ip=qif<#|8k z%l-KUzmEYrm~V2u&w(Bm3a7r{a}L(NebWPdUxfVbko=>dSBGfEmrv|U6dS)c9>o6& zDZ*01Y@uL~^H5v4*4EmM~dSM2g%Ak8Q z=!Y`suV&DDGw5Gs(EO^VyJ-L4Kp)0pcLDq#LJK+HA1iHsM`zGigLcogD9^FGaRk~Z zkn}%i$S=;I@64b#WYAA!(9dPiFJ;ib&!GR3LFa~=JoEeE4El-;dO`+0HG{q}gHB}7 zOET!YGw9D|&|l7=znMXQH-r9Z2L1aC`Y#!DZm3I3{xfKPhL7u&DO&&6W`xhlpciJ) zw}IY+_@gxbr$D=Bj%*JbGUT7gpkK(Kf1E+TokdA`izTQh9>DXc%u zzPLiWC;jx_(2tZ~AM^01^uZ~US8x7{ zJ=vhp6@Hm5@Bdu5Say|YvQ|zMj`)R*0}C|%YWX{!f8~$m;#oMtO8M8uD-niRCNWB_ zks?uQw?cJrRV8MQ7xTwUtnpG3<3)13#2sJu{=*%S@e?N4CSu=! z^R06dXJxSURcynL5+u13y1rFND^xOpuap})uuoMto7?@hb<@h{Tz74G-JGdY=iX3V zSAFeu1ByXu2Qb{n5or5s}wNj4u?bA_%g3=(LB38S)izwrY-`u_ z(>G+$GiD9QuWTm^mB(!^J}Wz1h}KG}&CJtu^(p+S3ctuMhS&D=GG^lkj>rly3%LaEg`Zug**(2_#7fm1%;!ztxd|qPAahj`-wX1 zW$Tfo;Ml%-x>1U1U6{WGNn)^M>}I?SGTeW;Q_D45w+DzS89B61+p+2!8$o# z$83t2T@?iVqf4sB?=C`y%Yp6v_;Zoxf09;Gon23v+dhG*u(Y7xW@ppJWdc{=Sd>+af;zrpxp2d$6SeYh@%d5k!1GyMTyKP!|$o$QKdM@r#J1NEgWb_1#xob<?Pte*lUPa!ET0s2lv;+uOb~hOB((?@QM479`XBlrVccpz`dx3AJ*_A zmBZ@{w{;#9oT1P=c(+CA}0Xs2lN?3W9O z2Qi)yA4RzGYta{m{{-cxxRv-_$fIuze-Y(JgdO`8j}w22_{7cV59m9?e}?)dzJhU$ z_;ctZ{sQ9-@t4p;JOn+&U!ffme+_$xuRDxwPZ3{3 zy%S;Idd1B^(}(&d#!+v?nWz`yY}6ld4(b7YeE4rrZbZaS5r2zzsdPE|KJ$N~*y5I` z#Weal<@*)aDsEQfJ4B98TY;tu@63qU%d{QHacBqe3$TZ{0iXS5cs1Tl66c|Oh&Q6Y z66d3QOKp0Gh_Hw62&wlJkmIvA9teFoMCjw^LnkGKov zL3{@7f%q-V-^6E8&%_sCAMrV~cj6w5XT;|*?_3M~Hp-E>7xf0@I98^(nwWrn3_pf; ztGJ)|2J{hsh5n;>T=A4*-gP#-jQA$XLFsbE8pTH9TPPQ$`-#WVK8at!I7a+4>WBEY z=Xuuy{}cU(2!1&c_SF*qgz_MsK)nGM{1@gE;$JZC1I;3oJ8?1e13502VGLvYm`waG z%9Z$6=pp_NW%ms%9r>a>W{b? z{eyTA=@DOrjYKcYYbE{~b`yV!^ofVj{)oRsyC9;!cvCGsiHQEdch9CBc9TZ_*C_5J z9zuO7&3De`R;*Wuov@$Sg>i41jW>#Dvb=Jo`T2jwUr)rw+}+CO&j1V`l;!Os=3>8t z^7#(hEP;OFQnU{u(m6(4hW0ic^005Z;$|ZB?@*fWoXzcMw?xEyg}4It&9Lzf5+Q$t zcxIM&Qu#yUmS3xwCL$fagEl?r|HNL*PsBUzzSiv3s4o;{_NP4WJjDwXFCu1p-bWNK zBR**Nv1Z@rd80|+k9s8{KDv$|vME@tc#Gmf#iU|N5k(~OD-~BMA}Qg2T5*dah8*Fe z>kEEY@u1=#6h~y)@G**075TGPw0EH*_ehamsklb*^NM>FUsilmk^4&+ZyU;p_>>~w zLzDis;vW_NqL^)L_+Z706|Yb%RlGrQzG9c+D#ZWV(^^aBjnBok@8pUSCC5o#Q*C{@# z`0t9(D;`jMRq;*5e<*T~B-0SFBZR zRa~LCMsb7UHpShF`xOr<9#cG}n17b0uUMowNwHk9RVu9a>ZK3R>c*HYZNyqZd2T?xL@&*;xWZjiusrjr2G|&6elT`E7mHu zDy~pmqqsqFo8oT8{fdVak13u~#PKzozG9K$B*j^Zb&9tt-l2G(;(Em|EACMIw&DTB zUn?F{{F`FlU~9*R6$=$h6(=jsR;*QAq_|A+ZpC$qUsC+K;vU796o0MwhTkugNlb0-&Q;m3lz4?4=a`_UawfCxKOcO@jk_e6}KurrT9I?A1nS& zG3!G%y&;O1Dn=BqQH(3rDkc?|Dc+;_S;a3a{=4E{#UClYrTDJmIpRSfyC6m{ROfd{FU=ivOng zwBn13Zz_Hm3sBZ`nPRPCi{kx?pHtkc$e)vByz@V7agt(#;@yht6(3XFq41E;!MSx6_bj~6z@^|tl~Enf1vo1;x83nSNu=K_Y}__X6?98@jAsu z#gyVo#WjkbSKO-jO~scL4=cW@cuMgs+z7B-hbdm6I8|}3Vp1`!*sJ)U;**NcD*iz6 z6~*5x^0_h7%f8qmp9hn^M3K*VNq<~%s$!Mm0>yU46^i#Mu2=lB;ts`cEB;9FkRpE` zmFfLOF=x1?KcrZo7*+g?BA*vC-jj;oR{W77_hvHuEyZ^g&lzF)BNWFfeq3>yBKKx8 z{u0GL#RnB1QG8PIMa5SXf2;VW;@=bp;f9ZTKcrZw7*o7Pv0Sl6u}QH@u~+fiiU$>6 zQ+!kL?}}$%V$(gJhNd$B7Sk-ajc_uh>RJ{B9!hb%*lr zR9vOu4{G?sO7pop3=Alcd6BP4iWYYSG+>` zV~NN|nesoW{5gtzo-g^-a6Z?keeKHcQvOQiuTuW!l>Q)NJ zdKB-{@HHC#Ii(*{d{S{I5#{<_rC(I~=Ssgugx!B2LjN0ze1DL$^qpBkn- z-?I?+D*yXR|4{K&BGUbn(r+pLClUERrQv5>Zs~j?5UHrecHg zZ&h5X{JV(Ro_CMp{Y0d{j)?R&DZNGMCzRfy^m9t@Rr)2R4=Vkt(npkjOX(9zzo&H0 zNSofdM5I4d=}VO^R643O-#^j5Pbxh{={ZVQD_y5_qtYEprl|&i7!{_cz77LQ8*GaX1lnT&g&Zi1?F;$mcX7 z;?GlTQe33r-Ado4^eUzACqmCUnjMCAW>%KtCrzpMQ0D{S~+BJ8?=h;+vik-rJbpG<_FDT5pRX^dlmaN`~eOBoYEVV{<6}KEBy_ncPYJB>F+E3GsWL2{-@$Uh_EB)N^8ft zMA&`4;)O(n7ijnxrK3t;t@JfYPgi=D(({$BCqi$NVp91_6nhjO(C~*8Hz@xx#jh&= zYl=@Pf49zx=s#%Ac<^f99O@6^bRwpFl+Y ze^U9CMC5ax@*5S~h|t@u^le1wTcv#dWIW@oQ(Uk7#}vP&_>_h}LqxgNdM;PGRPie1U#IjmrROU)5Mg(-;$q^xc;7{Yz8y+N4^cJO`P@3<@8UHz@_bUC8(g&4(RcXFAr~F$=pHTWerE|vE@N#nm{E8(VhyG`*MMCg59>F+51n22Fr8Cqx2r7UsU>l(!W&tu+o20`Zy8g_*doU6oW?joJmCfhAMp#@d3R5Q#wLK z_|-~Zqx1}=XDfY^(#?vk#0M}w5fQ&v`Ky#(tMq4xD8GjlH){A-H2iByKdtn$N`GJJ z{~$i#c|TVEua*B>BJ{qlcud3J(Qy1!pM>Wq;zyiqIS^4U7b#t+^k}8al)jqyfahJK z{29uhO+>m?it{ymp@!p!{3ITJ^-I#j52Q+ZcPhO`>4%iwp!6e3Z&Ui~O7B+sc_Qrj zuJV7R{GTfQn$o{l`p-(gr-Gs`ST{{-n}zrROMpv(osP0@1ff=?#6Hja zs?tvqVc)Yv$i1NSe<=N9BJ})L=|2*Y&YOzw5D}kyNy$G$@d6_BeN?eX`7uSDM3Q)u zHM~M`zVaK0(ATWESi{pA-lKHC(w|a#ozk0>-lFsqO7BqmIi>d!k-zUN|Df`JuJjS5 z|Df~xj@lRWYvNb2a>*m2Ow;QvOP%?^60fr8g)(uDDC_IU?-b zM}(a}R{qbG{~P7Mq5QX%{)f`s>&E!}rU~PpPeeY4D?O5kd|atGR>N^ZPvk$T^c1D% zDE&{03zgrdbf?mHD1E=;=M^8(@UIY&?!PI1UBh>2_;-~4fzm%w`WH(7PU$}qk-xW; z|2O5or}SA95RUwwM@0TFRV-G-nL@GSYQ;|wAwN~aE0w-c>3XFTO5dvV5~c4{`aUA^ z_aG7WJ*xD-Dn3p`Iy)7=MTFcB6o008Si}EFg#B+5q4zI}*;iTq5XAz;QAEfUDaMFM z?`jR7qVx=IIYo}qNL(l-&IuSMxw ziO6TS^6ymsegBWRHvyBXy4HrzSXEt|6xB4Xoem}i4T=P@Ks2Z%DFzj9P>V?rQL2GP zh(MRns2HOKG=m7*LaU%)mvKx&62t+Vl43Ao!o6YApy4JpaMIYB%uQ~t-WdCT-+fk9 zR}*t{zvus+=j(@JowfHqYp=cbT5GR8oO1|K&qI>`h``4r{~5{ODflkI_X_@|;70`i z1tIGB6(Q>XjimpH5cPCQzIm}%&QFN;h6$1XIl&`>e^KzL;Fk&>6Z~s}#|58Bi27#> zoG0l^2vN`Ngy8F&lD<~bHwfM)aJ#^_1pZE7NhC>(B07g2x3{=L(U( zKyY=g5O}lTYo+|Nf^Qdmzu*T1&kBB0aK7h??ftXhVbCPrn-ISdf{zqDA^04@`CJpr z^WAVPug)t1=kra(j}ZdryX1)fS?~`9uQ9!RzDteyF~P?QK11+?;CBk15}fZiBmEY^ zw+p^QaK6Kg`3D8(du)iG5?r%9+#*E%c!X^6{Kg@T=SRH1p%+{<{7YXNG5q48kw{b} zdH)ZMMlTvZJQ5jt@dXzSQ|XD|-ItBOT-PB;`P1=slP(NxgAc)Rpv-3B$7FX$kaGPr(PY>UpWjZMYaBrWXEiPvN z1=JI~p!57(Aocnw3uVj8g{6)#=woJBh*UPa4$9Y{o<4n>)%`Z`fw)hLrVBMgo4ePA zw2{M_UEF^v5NUIbNL%|KIy*aPBM_T55zoOzE>jN{YGd$?pGZ?<#?slg|?3ed`fCdmZWap`pn9MUkd?4H10o5C5sBA@T7+ zZ8IuGH?d|t8^pV*KI*Ay#h3r=R~cRZ8J53i1!8T>#*?g?H4Hh%vGe%9?)x?sKo3M! zzuR*^1I+N>2VzFR=F3lvfPYaB0Lvfo6WBXZt!?3!k8q36N`Z{e+Jyi8ytH0IVe|Ya za2dD_|2>ai1*`h17Q7T$)-Uv{fCYa7!CSx4ujln0a6Z-_b*e+~I2f=#(s@VlVzkRL zjZ1kQhvTx&HVV9c4;5QqGJeYI`@z0-iE$UN`EC$vr11slfX`yZ!7a@FvN2Sp@YRKW zmAngi)@Wm#O8yZG?m^qE%jp=kAWoZW))jQNXuNelWDs0T%2SPH>ITve{wE7fH||v_ zBoqvXkaB~uO{FM8Ujd(Xt?>h-^!NbOPMN-zkI*Kk9*yyB+RO^-G$#mQ`&t)QL2h*^ z!=dN#J;-w|W?i%4tb%ZS4^akY-CD!pyM29|2lXPl-f%8pZI5_pi{Z@Uy<7cAH0xRo zX9;-sZM#Yp-fTEGqi)}09=g?V_!>iBn^!n(IKO1!Z`CO_o-~}rB=xk1K5IBZg=YOtpUof2S!Ki#Mc<64!;n6?eiyr!# z;XK27cX?>WaCk7>xBHH2Qr>Sk(;!vft2}*V)_rU^lh}mUcxVc;GM!dvk?)689LUOa z{>m0HVh6g`bp9K?=F52KdeiA(6ZUv$i|Neby?Z^h)pWkjdVlPpn@wj8D|*vIx0;U4 z267Gn%4yS?$%@|c&?il2AS?QbhdygM&$B~+=Aqk7hp$)l9rDl}rt>ur@g4Ti7ffd} zD>~w#yG`dsQsyKB6}@IU3n`p;L^!51jHG_*CA=Bx@ihkkc9y6UWZ2k!kJ#IQH*(v|-p(pr2Ezn<9DMiXcIBa0fLr(%?Q`58QMuK9lF zp()F`l=c389tfg;E$1Y;`U4FX{cAag*rGpqvRZFBuTv-g;^nqjPL`7VFHa{oTFwA+ z^`VDuvK+p{)c28xwpvbtl>gg9AGDldWb&^b`jF-D5WMeW4}I8jZf5iU=AoM{X9%1B ziHB~noX1(X(?cJzLSxtjP51Cet5Y`j1{_yDpxD`ek-(}`JY$L+N?WZg}z4qz997-v_e;seqY_| z??YDT5cB)#cPmvoW`+2GhVN|2KW>HogY};y_z5fY9_t$@<+E1k^OV=Qf}gZPZ?cz% z=sb^W)}69Ke2~L8Oz_`Xp$nM*C876cD^$a-93k!f&PGx7#5fjrt1RGngH~$^SUPU$8?zV|%X@ ze77B%N`C)E@Yn2+$@YCs`YU6H4Cap)e7_w!!2IdL&jC9$milzP;0Nu{?^xeV(XT^x z=$qs(A^2fC#22FZ>ZSZKJLIQ)X6YkUe;>C)-ywgq1wUbj9%p;z2%ZIf%BMl_lXhq$ z`Ag~(&Q$$thknKSZxwm0^@Z+Z`DMB{60P@z&Lq8W=wGX1`4(SjFx!)o_O<##yV#!P zDxfgyHv2*e;wyyTt-cT+jPb3N_N0BGpHkn}3I4b*^a<-(9Q>)0FoissBS?=mh0? zSnmJW7wRDY$8;I8{h{x(z3)nW&Hm6&$aMxCRE9sgH3>=<=nHR||dbht)cZ#ByJM|s#8YAEoJrgJyyYScL4ALC)4 zb=VXB%RH>spJGiF|50zS zN$U;=AOBMx`W;Y)uK2(IQzV*oFX&ERbiMxv9=cn1?jxxkY$-w?-T489vYRZMbs63H z8!5l+q5E~`r|isEyut@`hmRro_j^v~pzeggy#FXgVb&ee9X{0OKju|*On1IP^lcA4 z4$5rcJ6_=vx^q3zpFg1P&FaoJ=)3>8SJ6q`d783%*F#<1p?C62*mO#FD#&DRqmtEc zb!RHM`n4z64|J!Eg@0421p8;*X(g%OdbuC!4xi}oOT6;2?wn%ohaOj$72L^tKl0FK zBlJ-Zpqjo=af!8uAZpU=bB)hITYOdz zUOm?cYI*g<1@(pa?4UhC(0~@40`;&b8h5agz2wlIYEaQUs@D}O@u*Jk&i(a8?menA z1T{mmNc09lEiL!}1$CoAx7Kqcx+`ekWNa%{GGDk65q(`y!(;tsK`oE!0zrMDH$cc< zC@5NTGy2kAWQ+yfU>zmYXuODPpT(Mb9)kXb?b{6-r9yovggXrOEPLj0Qu;=b-OzVY z-oDfLHh@tV2>lQpYkyPCeBr0G;COVqeV6envV-4c!|pcD0#Tnu(mg*yxAw6gG#+6+ z42SK94XPXJ3E$kXOtZI2wN{8WZ*LPc5E{#R+SF_t^@LhjOS<%AVv2n9fW zy4yc0_2lKGn<lbF3Vaj_ z*hkf(0VO=0Ek9Ojc@r(;gisA@0U8j8Lbap;ZMuN{^Gjnel7io)l(NQSxb|5r)bkGH zI`$;fL9iI&RL-7adOlbSadu{3YZg?0SRqa^?5U<_pn(vl81^(lE7T;yzE03!h*J!E zx}ZI@U~hKF_2!f0Vk|{^gV`Td`Ycu)+{KFLnHQ;)k@&w-=NdpSE=Ba3j^bMIB8qmt zd7UaUQx)Naz$-%M-iv%{!RJZ*>*jJ*j*nbbsz6$m(}JVP#?5A%%6&@ZGOYHfu-(0= zeOeHYBEVWyx!@V>@>|TK>YjJiJq)eAdpL+|L6e%hSQQBlVik9p2J{M_>BIk(I+rNQ z7%i)Z@0PWj&GS{^3sqr;iC*Cv*21P~!7C~3d(5e-+zt4@N`;SHk@3pXp~Jvf_crq` zRje8RSLzS4i26^p%xB%kf-^{OulbBB_&xkzrNTdkcpkk!pp+KOQUmsz|E7u^!~d1K zTPni%7OQR6&(L|n@1myy3%!N2QIJWX(OV!J1IYxEdXm&MC~n|Z{kNbH9E*g&-8vV= ztcO6LBF@LjeAdPIze?|e|0m(six<5Zn5q9X>v5=S#e^G?>a+OXs!DxnsTj*@y$?X~ zMpR6>9Lq7z_fcWRwY-EGIq#q!E2ff|QHPm13Rg_Ca1U(CS%JGMrcY2M9j6igu;O~J zWZ2>Jl@&9*lD$8(aLG+t#f=+qH^Zr~Kn4{vo78=MoWaEE2P&EoCkQcA%wjW)y8g}% z2&iHxS}%Hxd%e3nCsOLb#7pNH+k4_v~xVD`@^`=XYv1@Z=zLJ#p^!S z8rp;&!nH?Z$$6*V;>%6=g=h-r>57seJxo`T<$j3xn_V>-qlaEet;Hxk4(TDd4W;y-J zuz>Rm^r>%_SJH6`WmwqxO&QkP;d8UT*+o9~L2HUwA7^e^UPQCVif_(TaMJsB$Y8wh z7Dl?xO7y3%smRqf@_0MNM!lPf{_rg$^VEt4=H21NBICSO$h$o3Uo?v(eRuy3MST`m zVgo7s$61H!oIYA$4X$q~;wFrN3B5{gqt^hihkIE>b?mlcS-)1TUkN7lVJxAIeHgvaSBS0x`}(i~F1f9CCf`Y*4<~vDexQ0Q{?{WqDbB%f z1AdoaAHbs;;f&~eNb;ygNcE>g71apIypJEq?1paYQ+1Nqj~`vl@)DV;By$du&fxm6 zK9#wb5xp5q>(e-Ld=scvv($p8*?t}_b-jk$V!<6AqUn|TfKXKrGxWJorQS;q`(7CB zdvP?>!04~_=ivm(A=RRk|7KVUq|8;o>m@69~SbF5~67UeZJY@7^iJ+z2kB_-XHU?!4J2Pg_+(Z{#Sopxf7T>4L@C*;N^L>d-qQ4x_4qRmo?49 zk2MqS_pVDdGk+_7sF{G-Wny4%i%Ob6z!IjGOdGs-LLp6QV+St0`$|0VzB}>LwTaAq z!Mnu&>hEg&4?V}u|23{|fLrKK}Ry+l-{&`Oz7dbQ}>MT(Ak+ewKc z&8ORUqK6}aJ9d`>@(af^o3zW-q}TS%CnHnPoPKC zf2?DEx0G&$lf|rVskaqVd3Oqks(mvqOg54cx+|vL+Bkns62Xp#k%Od0kIlT< zjr>}@m&PRnrU_d~jT13dh~Ht?I5KwK!WJgAxk#JSxO5iYq{{g>vlXqR#zpROVo8n5 z2qkJsjmuR;<*l|H2fEOt@_fYAySo|u7LlaJxi~TPV))|yoQ{_gHLh2cu%yOmbP2_q zk&8ER+FqWnaVp%EQ2Kf}XWnJW8Yi>FyFSESq{vBa_Z*EA*6vA3jkDBJnn-~2)KXfL z#%F0<~D_L)_ z`e#LvTO6n7v5mZslPu;fUDB|4X6a4cDvML9QkExB-oe=ulj&gS5SYeAZ>Gr`nwi8& z5tGylm6^aP(A))$^-UV5GNWO*8s`d2uY_?kY+pJa1U1I$%$ut*=vT%*SL58ka}Ydh zq2@S>til+t-@&eGs9!j9iN+1)BC0X0hx2Gyyr_PGl5vB^c%6LlTMtT#jf;w(mS+V2 z=~+pQF*NgTU#2l8l}pC3yqtF3bdAAj@tV;mua!|R!AqbUG={jRCGq?KlRSmyc%yNt zn@Q@`*G%AFAN;)G$x=A~wmy8(0z?_ibwR|G*gqJtESb(((u;>O0N^T#$Uxw)w^ zdH$@W^B2sSIeX#I==qE0+>9?4G%kSWo4@FMyyE@*Aw$kzFn`whH_e`Xe*NNw=ix&E zOK(39r&boj;WpIInt%TAAs3xLf6?p(OXoCb|7UcUEL)=ZSh{3!i2|F+gGjU43cTGK zjU6(NJYy(@THzW^Mj7~YX5bG<>B19P38lC^k#~Z)p=iAVBWIA2tb@rlv_)0z-L|F z`@HGAysN*nRTgefRJ3s0{6%wMgLu6=-sN784~H*?xi&1uE9lYrO${&# z>OoheL9C<|M7#lGgr=;VL*x=FCv%h|7tTt*rg((P9!O%#2WL=X)4hhV7<|D0X{lDldFxz&wcO<7(=x?l%ZLhtqXUB0#?FRlC|AF~@9=He?R^C9dd>=TXO3YocN=56!mG##5qu-FR$p%Z02jJ^?Z!F4y@ycB_icumy{ zB|m-p%*MHMDGiU=xr-YY@>VpneBddLEenx87jNsw(KQTT4T~4fhXTz(oH~ClLQlHh z1@L}z#JiJ<2&PQ6l})Hf0577S>2P8}n9=IzEI{K(#R~&H8FmGI{4h;1 zfG$}Y6b1@-(=yEyFC@j=l#zIDL@OH$wE2yyTgeGWEk$KvL({y*IhuSL-3Bk=SM z@NZD8GXL6b!Xpza7$!PXtG~5={sPt7({#&gpl6;4b@6#6B^PHHAs1xWFa#h>zu3Nl4A{lJk}=DHEO7&zM7rn^PaeQI3=& zxThs$QW(+m!-Q~ysd8@)?Dx2W=^UQ#whLumq?n-_s)`G}7i!#R|p z&y>_;?#&yzm4ucz!5fI)%wuqM+dO=kf5t}uSMnh zUN%&C#y8*VuhSh{mt{&QSTX|7vhFB1LT@x!z?PH(J`OEpTWOa!h3K+Cv5_*HDSB)* zuWC%zqpOv#>_&Rd?d+&!<*}Y}URPW_B{C+0_&zc$Iu!q+7exj_Cl@y?XsBP(aIQ?q z$_&c$9g5eo;fx%69*)k=YbTq)j?~onE`7$R&J&xmva$%4F=5y8RX3MXx);99Yt`&} z_!rdxae1>Fm%vM_u>!$uakXj@UGn^fC0;nvH4`iwP({*zHzTAvs^zDK#Y?pE_7`1# zc}S!@0Ed5M&R@uIx@=S;C3vz~625ptTi4o+*OSFSMG2O7K%x?pibGW{9OA@0mlFvu zR_YcCd+yN_ki->amVO#`stf^Ut71+y%s^1e(lHd`qegJV^BR^eh9=IRJyW!-+)8Ne zT{c1%l?z!`j2TJ4Tqa6@5DC*gx7xMPq2wi6PO){ZZ7N&5-5ZNAIcUU$(`%55GdS`1 z2OZ{3EXr3VlzMu?Q<}m~?>3!NAwJe6=fl@}YMtcxB-*A1&bf%7fW*hDOPx zraZJ7AI0B`%%xq6W%cJuj){#+(MWvS4+E|j{1lylvV8A5Q>6+a=yLsm2Uv{ZjFwbp zaTFVR(+jdams5YM3KLHo4ZEf)jGaoOp7)imZr&C2ibE}Wn)XE1@f2v8vQ65RG_Tv8 z@aW#el5v_+v~vIMMRT4bQ~m3y7a)-4+d?ck2q{>5Y_@c$UnlOaADnXPPzoXZ2d+^9DEM z)prd#@uzFXogwVIVWXq;HxgH)L*e`MRYtS9($cU3r~a5e5Wmr(z#MM8NyrlB3DuxHA4PzJ?zT!ZW4J-Eb6G&JqYWeLU08%`_t zWeDogVrE$$c`i%V_-@yUNGtvo^SJz2&R^_no}9=Zc6v(urEp!m2bbC)9EiHA*okF% zcjCI7-ncS)Xm*KSYuP=x)NZTOv6@vd*j(e=dzhb%HAfb58yx*eSjA9``wu67|_?5SJ9@#IX}aRAgle`bPv7qSdF2yD6!%x- zntJQ~dFAI6QKA1@8BRHHobdi|Xr=7WM1AC^>+kgZGJ`@PQ+cee(q^}wWPbP7nq{2w zE>ok0bp4s9wcgaQdsg;mVpJo4>_6|18q)P=Dvc?}vB_2TXF^)^@BE`o`R({}H78xD zOX-jJW%#iyWybQ804d*u;IjdXe~PbC+|s{Z!-wYa0dVg_?YtVMf{MRig+&Zi?|to4 ztr>Ws7nhXPILtt-{E!3j;dIO8-!@C0#mLz;L$*eh`eF$0)@ zk7SP;FfQs4-xE(eBcxst(hm9TI*KaTmk?qfKnU@kONbyON{I5572%Zv;{vA&yis6- zK#l_}zeFHUWf5N~aErhf1ZD&t6nI?VNr4{-{8(TB4uSM~3p`sO$1bK{Bk+2G^93#v zm=d^A;FAJ(2z*^2A8{hR_XNH#@I!%q$dLJG2pk}AxWF+2Ckm_=m=t)o!21Ml6R6&a z0J?kxk@SBe@LhqY1pb#mA6yd4RSWDd@B)FO1x^r{5ZEa2E`b{aZWZ`lfv*UBOW<*V z?E?QI(1s%>AH4H>Wqb8k3G63u zsKA)OYXsgXaG}6E1@f^Uw&M|j-xm0?z_$dxEAV}R9|^300rLLO3OrZf#RAo7Cgfiy z_pN;CzA01l}WXi@#;Kc&36nLG$`2v>-yhq>`f!`MRvcR_lzANy3fgcI1fNxgy3p`ig#R9Js zc%8uc0+$KAN8lEL-xm0?z_$dxEAV}R|1Hqz;niOwaDc!I1dbATjldfO-YjsLz%>FN z6!?U|=LG&p;J*s|g~0a({+B=-0}C9tnRKEloPFAE$m@Opt?7r0E|T7eG>d|Kd( z0{06%Dljkbj{+HJu)dxGKQHh+f$E!1$p4z)(*@2Kc)P$g0v{6iltA@OC)~eJ@FN0q z0zVMgDUff%AV2*CensF_0&fsFU*IjldfP zE);mDz|pCufX#JULx>Hfzt%uByf$uO#+`1xKrRB zfrkYCO5pDW{!QR#5c-mj&kFpaz^et`DzH`HYXT1l{Efi>64)QH8tIJ}xJ2Mqf%^oW z68JlT9|^P(<0-iaJWJrY0w)W+Rp1JNEdn1CxLx2Y0uKm0Deyl8G5}?LA%T4a4iY#* z;52~^0>2?}wZM%6(*oZRcu3$0fgJ)r6zD^Y%ldl@>?bfP@GAnZ5;#rZ9D$1krUc$6 zaI3)Y2;433#{!QDEC~F)!2cE)08ixW41xUx4ih*^V4J|F2@(5!N8tAfp%c3#e~;il z7W|OlZwvk_!A}bQd%^!x@Q(>WpNo`)79r?=h7ft`TTj6I2!6KYe^KxY1s^H+7(&pw zLg3dVf3oD?DEMr_7Ye>u@H+)xA^80Q5$Ku3|*vdA@TC zY8o8Tcas~#V}uwYkTIbE_JhMmZF2Qk?>xfnpnmR(!ic^rU0q8T_js zVjfhXmT7B|RxHCj{%*&6zivmmhB|cAQM?CgQ(G)M8D*xG(L=aU%47K?-%Td`u%2kK ztkC=w-YFIdx4Ax)Darsd;FzXmu>_jIYWuH7;kQTo`iC+0{bby)Yqu0kZ9*kN#o7_- zU1$>v`Xwt1BZj8j5y&3_dS*CXse|U{@qVNh|GQy;oHMF(x{z!XGXtMVhg@_|De z^3)42jcsjq(Uy)PP5n|Y?Nlkv!%r4*&@o1OX}>8;(k6s#x`Of4PYT8*`wAl; zZ$^5vyRK(*o;n$X4tRPrt)OpTSEXI z&XBZiA>;QMsB{!z-pMgl(Y zt3x)_8_Idk&^EVnP%MAukkQb!iORm?_%sY67TzCA8fs#)g3>}d-q>pXq&y&Y_^}*TA|@7^Lh1F$q5DWqC0yFDfq8- zUv17)4~*!_{74=5?`w4p@R&mRfxY&-=i=9YFLXJ)?_|Gz`xQhvoA~KJExgYq?bfos zWm~%V-3xwKmUt!KN4m9#`Oqh63-iY(+T6GPhce`S5Ax|>i}uJm`<#X+SD4zb;h5J$ zC(^5REdogY>b(`a;vdSrD@j|?ngNXb+I1u%Y3XH z7Gh>I{3Oam(*>rP(M-FJzHzikxtQ5nP2a|JJvtsbGbIOK@)JD%%#h_h@LkX|Y0%(% zCRgN*?4fo&d8qxqbUL>tmCn7Aekiv)^-wOLP0tz0%$H(ytru#U^aXl$@0Z}~sGB*w z{}JQa431~DdUTAc1AYTMUtc(;bF7_kCt?<2k7?5zy^1ub1~>%MdWC^ zp(~X&ZtpmJ*f8qOqypM*TYH=B6<_uAfbxGn z)0}$;{W6$7?*7+L^$u?<(ctx1=+5c-G!AKS5P-i8gE#ZiRNjIvYH9Ribc3sBuE_U6ULUp*GIY>( zj`1~d@RfjGL}5b+fAt;9p$Aj>sfhRN6w+JLx&G*5m}3WZ#4kE>Hf%!AyzSbNG}^TjZZLcbxiTmfaY7SxCKM$#MHNR%?!bTWeaY5&(Ce=O|9ioD|* z;iK(3aZWs~+eoKP=t;;uyrCLCI=d#kCfg^n!G>qc z>aY_tQXG4)FQ6jjD_9Thzz!e%IkqX@>k(n>c(mOQ`TOx6S}puvm6a4*IK?L@ng1$~tL56Gd92H8bn=h1`h2lK7G4`qJY?$M0rjO=~ce?*gZLH+Yb zj67ypY_IP-plI)xR3OR zcS3)RbJ3^q?mqi+$drBr{hebRQUiV?5y%MkV}$?IP8-o9Mv>hl7Uv5HqzhjgLEfTf5;dB{f%yT1Ge~f8231+BY^u%_*w^L z!zkAyH9O;^Zax%9FVEh)cm@0td{Zj@9Q_M?3dXhBS$}vX{8J(WJ8KW1kB!8-bRe;A zhcB`MzHDOdz~0suIo{}zH+JbQ2X{r_i#R6eJMPU#;DfU4f7Hz~%|`o`;VRjuB90M}!2O}|dQ$8BnM$KtmNe9>lTFPB2+IHukK-PDp82UtF_&8tsBTpeBwKd>(A*VdJM0crBR&KA~J zRg9W|j|xL4Vu<}AlW`w=@$Bg_>QyL(aia&nVP!eAK_@tcVxeLoRAuxfJP)`8A}| zpMNOvS$X_kE&MSyH-@jQ!kqC_JD-j;hm#Jz~63h?nk&Lz$PWbD)zFnd}b zDB2f#w9o8!3_eB8wN1pXFq5h99oIeqIxAvz)77P2s)tX>?kVPaWVmjQVTd zIzL_5874lVaA&y9em>l+W39p78Ew{)e~R_`F7oPyU+Exj2z~;19Q0P7iP-hFbnfw9 z>D;Ei%d^icPUjx3TbUh*HHpWo(zz!tNauEjn{%qJXmd`FrVD*9*zc15ap)9d{mp>= zpl2g+9%|k7n)b%@JA>0O&rFWNJQH(E&iQEzI%Ifg1?HLX*OWQe7y=Q>`2K7~ls1F0 z8!|8U3H^nQeE3(D#`$}4jOX7lk5l{doL{h?iuSg!Ob7Z;Xs*^T@^oMX_}yC7;&QG* zdG!{au=gJv->=1`Oq+1+XdCh$kL+68Ie?h_1K^xvJr7wMgH|A(U0#5!bDT#Vmpn6S zWOe_f0z`oI6!^*kdkgyD?(;3!RiW=!(#m$R6y7o3V7>7I_Tg*Sg3eaNsN?az_*A$0 zK&Py}d8gG^=Ok>bq6La@U6R{0-ZA9N@+vlq)oZ#HU zsVZEH_EH}W%u|OC#XXm4-c_45Ygkyi_O&qrG^r_pMSDQ`emCly9iLa)C3hBu$ptPTA#1F5C%+XXB6^si=sr&3Vu4Q16rS=r`u-LwxsC%Aq3^uv95YQ5NJsQjV z&^FGIo(DhFcT~2Hd_f*JX3!5>)tFux2RX`cXlHN$(`P4Hl&T^vK_lU^CE9&&%h z>GwxgU|cpABv@&Fn}84b?q4WaQ3^m|dp zOF&Z(Ru$ew->#q!O|<4L%#k_X_5xq46RWct^v}=^x5xKF=8!kOtcrPep*=nkc*cu0 z9mIHgW}nM4oRhMQk1?ONkMTgQ^0!=Xfvm4Z{nWFfox(12XCbWyIu(YDzl64=18r`4 zV4HjI7t)0~*xrt0YwkJlwlmwBqx}6%H)VZu=4L}D7iFFO3$n(tHF;zH>b&v(eR<=p z_4&IIx7>~S=H1!*@^@#}=g+x4ojZG8IydALV#5RJ+>T^3=rx00Gw3zvYEeIJzZ$&O zK*n`L(uLqzYBL&pcEbN%q! zftcjpp5PnMu&O~Pmgn`~KIyDIcn;Q_Ytp&C_;EaGQ)3s(VGWn~pAl;n^{@x{Q8o}q zzd*K(-v%u{<_=zQ%pLNrV{RLGqCK!*Fm84@5!ggB->#?jx<-1hik%tLVZ9^23F{1T zbPUAH8!IZZosn7j6yovC8|9v@yyqUdC*v0D-RSdqWzjc}%=&x!2Ij$s(HGPW#(8%^ z7UeceTlL-WhO%4bUkB5_!sgKz@V&XGP<~*)V=i@At>-{*jmYwB{0#JszpC(@hJJxg zab1Vkw2={Kx4D%2?;!`He^vgsl=8Y_jy%-{*tQkY8*wWD|Uv7;Vo^i3RVtQD>9PS^tZB7ZL{8=O>_+|*X>Pp2!#f2-9V z*VJbFOLB}CK7mXI&4SJBgw4Qqf@OK|`L#ogW9}fdcksqzSZlz#SPR!prWAI7b|4CW z$5`dx(gm)KH=+NG@L`NM6AE8JKF1I(vCr0b?6ZyJK6@C`TDG~JsrvkuKp=~yLU+bS z#6anH+ou6Ovb=9rM_LN@sC>YB`hm6CQN7c-&aj@>!|%3pZMzBWoWZ(M$J;H?3#L(L zcwT;su4fgUn!Z`%pU}aYxl4X$fEIZUrjNIiuNLrCM>FXxt zuu)q(yt2)`4`Ua{ydCh1YU~2sfHdN-MPbMIodo}^BbE4ZVPt)?n*eR2FJhNUtf}+^ z?6o|5G0Ggn+$P?y)qO65SP#B;#xPu?egihZI-CT?qa8=uoeb9^kG5MH*07RD!`z7L zlb=J|S};H3`Um!xRDZD_h~rI;=yNYEDP?$nG0nlf+~eh3zL>^))!aVOmBw`imA0cR zjdJ}H_~*QiYX>O}D1rU7m`zfgyobpP3*c?>`zoRu{p0K(!PZ&A$A$M!tLx`oO76wMJCxkM3MRnn`kz>_{ z(B>S%!}qGXVp?_KQuxA}@G%$ZuHjUxF*N|bCg6Sx`4BD;- z%uOJ_O31JJS)}zvthqDNk_#lUzCw9M(kA=}`el#HzOG5`abN1YC$|D+E24+o zsCFKX*G?+nJjgnZiCU~heT&V)^#zn2Am{Qylm#D!O_r5iIW(QCKy1|`nsKdI3N&6n z#j^}J0a5rf+Gs|b^Ll1%-i&5*4&o&L8uCSB6nj=enc$M(;_8colPsc4}*=7Qb%dl~dTfcyfGO&IGQj3LHC zRt9XTB6G;a`g*MyKjP{!>@md~vKrP?E#%oKV`1+PdsBI9=&Gy}nU&RJ&G~S|q@5Q& z136g}He`KCz{sYP?8l)PFAdB;^+bA~+K+EcXQAo(4f) zg>Yg+o^sLYZ}ipKuoiZm{wuN*Bak`dJ=#KFYLlS@dr)Q%#_i>K+;VBL{DCs`gkS^G=Uh;UtKo7*#k_z(R(BLjUzzO#3I4)zP0 zhuuk0C#y&IoMifc<38FT?_+tU9h7oUppT|N|B7X~{{9Ba7Hx`iPaXYIw2g9^Vy-?2 zaW&TK5bMN_x-qN?TCoLLYup^{6*gyS52FWTPYkkS8^HfM+MfnKxEHv|FgzO!iw$D$ zk7sF8op)=jpLN3?E6ZgD->&L3B1cb>Cf72s?*32d(yl+SJsoHLv|H#4e7M)X4{Xo& zSufXzaMlB(*~EesZQ&Y2kbC3QAI~NyU<{f7pF08VCB#}pd=&bBlxt>2!8Yn$_SO3$ zN75TmMvrT9e@8D3TB!-xcbnk)5))j%&<_;pr$Ijj`bp4FjDlW|a(%H;u0Jyh{MNgi zpV2QAdH%`ib!gx-BfR1s1NU(K1-`v>&+Dh%V}J(}_2VVGu2sDEQ`-3h(4g-q%9Z<; zlq>tLD9?Un?MJ#^YQLh3I-n~~CJVdELYE;=#Ut8^b71tL?7t!{`tf2r|4(QI%4q$g z`-^9LTUGw;+e0fg*K9v5I>tg-J!d~E)I%Ad^Cw=g(^sxct zQRl*dV*raj2EMWY{VtVRDrK;KSDT7f<b0o1O-SQ&`U&SUQ@ zyJ`aH#;yR(D_pGYcQEGS7;8)Yc4B!J9rTDE9hLXNH|gPqtR5K;A2I2q5nBL#nxuTv zD)48JCf3td#ZfMDxog12f*6m(fNEThr`%VeUu>(2fzZBHpl@T`#8{6yPHQ9DpeL_| zop^09lDE26a<)r(*=U2s`oO2H+5kI<;3suP%IbVf*~JvKj;Y#(ddyfuR$XV7KvuMK ztRF_|UHVt@|1-GLr;u{Oi>;(HE?al#=BNzfyWnk`FFMva>V!* zToqfDwaR1}LOada9PBfK{}^aS*jKb?^d+DPXl8DKjm`#76VzFfQd=Qg)mF&1C;EzW zcx*$K>ae4rhw+N^bfHJOq({1>XGKJQ;FIwK`=?x1lce3W`&H;~JFz~y8vJvdQ|(84 zsdK8`fF^M2oCQePQ0Hu1Q$Ex=AFlne@rctFc)C|sZ>+43E=0Zb30CYpmvNJpX>k!> zJQ9dtzdF_{kN5)N!NdaotL^gXGYW_mg6kubX8p$Pd(saC5R+P&6vn?|JUXL*SRn`-%7Yfh^>l81g#ESv z=RA(OS{Q4Z;Yo-)N29;EE{^qQT$@-srQZJ>a$@^&eio`Zqi`IwoT0S0F^ZlE9k3Ap zoGu3g?W7zy22c*fDFfncKjp$SAFe4Eru%VCpB;c)c-CaM(v2Af*l=(?_%5$gi$LxX z$UOqNM<{Q^+qkB$au9>@+Qc>GY=IunzB~zfAN0gHp25AKhv%yE2IfcuxnGAlgn>2= zWQ^9+lijdTD!)V9g#D=v?pvIz^BQLbD%hV|ALzmc*Ty*>#H%J^(ki1Okq;oAMx5yO zL7ox5iiujDzU@H0ZhcLsDn65F888}NJ;W6{Y{c3iJb)zd3+ zj;ONb%w6FJDtTU^FJevFqo%R{_NsFSzVL}^>`7Ep7Jgh~zogoiS#Lm(j6i06FU*5` z`5>D+S!e2mi*tFfBb>zxpKwj>1mc1dZlL$_oZm|2e3Mt@xSpm3V3X6ZrgkUz!`j*a ztX*@RJ%aQBNMD`6I$K)LGfvjD3Hq93I=40jTZass^ai)HMay^Yu=77fAEF&DWpUjD zm^)2qX`lW$)|287=4w({kE?HK-)!62U5STs*FT5x0&8?V^p^H5*AB>9iEVBllzB;O z$?4av%5RQGvWdl;+_c~0F9JR~<92>ZC3K`EU5Ge`f9v*dkSwG|wNa7q=>Ztp0{n=R?`8xJT z0!?djkKA;&ipl+G|I;^N{cIlgMj#^{I(0VWrOqNIyngb9kCye(QLm4pE4@C7u2g+w zqmQtMUTcMMRtCCCeG5k5S270?vyWC||3(Y`0CS9zKd^21gFUYD2ezH^$5(B9Y6AR0 zW)J2N%iVEke}B;9Ssz~<@)f$LkUmZH3_dS7L$1F_IYD0M5GFkR`+`?K1pP3_vy zm6)eZE=1y+T+DyogU=~6$C@$MhWhNy{em3?Y>5Gf=sBxO6 zjTpMoRlY2aaRO^%4_>n(UjsiDpS95qhgwg~S+UU_w|67-7``cqHefE|Lx1vII%36+ zak|zq2=Mp#4a9FderL-y=hGjkmrzVnXHItfKt2Caz&dgv_&U~UTfirD(w9o)Cnw-X zGrqjD80RT(S(9^;`0ZPhdo{T+XC{1*!?n5TYptx4dH2k^yVB;a%tk#BOY4L8r7Qcy zn)N=ZwUxd^!q8%S;7a#Y>o}uHUx{-G1`@GHoHjWJ%%lA^WxlyWW851rtWf(k*TWA^ zuKEwzyZJ!DNd@@)U|9XO4+J$iuH4cIPd^Jl0BO={M;kedx!h6hCoq4X5R>y8-pT zlGvE*9G}Qvhkd!ouKN~tTwQ%;l)!DP3#q$~X z4Vp)~T5TufdoBD6edVC-NUPuC-3uRj_LJzN^d8qleaF9t{n5l8mvymTw zI?H}U+!EAN(1Y!G?rJ^c4H>X+1Ir(6ryNw@rZy`Xw2bSoWYB+HbCzvaI)i(tH=Qvp zKN)RzTDIA0Jk_`OcWW&=`J)VAFYd9j_Rm-CpImqx=RJ7-ud$7)gvzzcyh@Emi z$f$;OMGhk#KkPd2xyf&|xhvx7+@uAd8{gpKTwQiod~?nmf%_2`P$%jFQ!xL5Tyc*b zKkTlCPg#+~J!pTRWrI8AwRG+XY#!}*+h{Me2hbsny1?`t;)z=4yYNesS7l#`Zc#DH zfWV|2)}LxmyyETazKZl?)7whzBhL2j1Z11pK3=oEFG`vv*KF^8k*^Lv)D!)y!FT>U z_AjQvcfJVt9)5V=Nyl-(pX2uqe%}Lr4Dcv^NANq0-y!^dhTp&8hpmqe`d1wAQ~mT7 z_Gni|S7t|oPsY+OLI+LQKiA;~ujARCc+Nq4+U`yl?rp<-TsvHiIbG1mPIG_gHHfG#?4rFs(m%OF}L+C z>_>yv%eW@(*8oWy`}W`;&sJ#Dt5z!ey0)-f?Cc@br)AQGy8F_F3fPwo``XR=X;YY6 zbG^*~Z|hNx^>;$1?do3IP9o3q6VdDV+~3r~i?kc)1#QNTzt^6EZ9Pbz0o#bcE+T>E zY|Mh4z*lJ6FZ`?n&kB@yyIpv@Rd{O@-tPSo)&|JeIP6zWYg4|R_r3}~XFH5ga5*>6)~)qI_#z}K5);LZE2Y{Aj=qf0Cao6 zw6)pGCWCLptFg7%Q;p*dAMrgdY0z)*e%{CXc^~ipw0n7>cL@`zQ!8$XnRV-SsU#CnTf-0r$1Wq#dcX4 z3wZ|0alGtS1~|u4j-5lH|E!PW73*WY)~GF|I+brjS@y>^l%*fjA$#YxHrKg{dI1|i zdl6T4P=^QaN7>9CSLrk0i;`x@wF&r=q*-!p1JZZV9yoTt|2G-CGvEd1Dx3p6&$J`= zYxM8dr`z1l@e5!}Gt?Lj+flxq{(KkoGx+4%tQwD>#rcyUzM+|d48FZCZ|*=pe*4^P z;K_Sc{<)j)$qqu9b2nq&gCEPDyB0XcV?71?Z2|9~$9pZ%uyOyECkJH%&G%*lC^zWY zb=iRmdgK3Q$H@*Nz8yX+4Vi<+OVk0J)7rehe^!kr2QYTvH+UR=2O)p7+m7vVf23?= zQsKL3_iGKFOzUpMm$O&iegOm~V`NbsU zgtIGb2irj2$>+oS2WJN#SdU+KK3TU8K6$2?{l6S_4qS!3Wb{3KOYocUFF41*_;VL* zhViG4IEeEGKjO$&;v4m8mt%Jou_bL-V_XTlWjskg4myY@XYg!N?bortPG9U3A2Ano zWu8=LWkA0y)E4~z?jxEW#@asb`eYG0xQ<$tYjiT{Wd2HpJxUT)~U^He=6(vD3A=z^F&gd^NUF=bG-WSZihfv1v4Uj}3WNGaWdd zxlZMQ+eojb4bUIc=bt08_=SoiCKc+6b>D!x@4~o~IehZP7=0w451E{U&FN0&oio+A zg7r+!PtH&@xR#c#s=GQ}#Tc~`X^fvw9|L-TzBdNpIWFoCWYQT=aJ@dLB@eqVpnVT( zS~i9H95&M`?#9CmlZK3jagtPc67FlXH|=j?0?e6^bE!;a6McTe{6 zIq07R<`CeW{`;ZH1F{D0RsI`g228sr`w-eh|4-jd{bl@V&wy#(A4oH4;}mXCsWmIK_yd_e9)k&dPz)`09B<(EAj)Z&OYn1{AlF~lI?ndKzLu056FNZEgZQx3z)S9|^C}A;ymPAfNJueyOq7SM=0;fx$&5?$9u*(UmyeK`{M3_^$VoJ=PIpo;)` zPUa5$cy8wIyYc=dEZBebs~Y|$6{4WmJNX67|395~Q+W6N6W+V#;~wv|!h3Kb_`WM$ zbq4#A{t0rSob9r{ggkZjC*-T6A8dsK()ZB^v0r_l7a!)WYgAxeL(6Q+V-Kn-z;(_{ zdL`GNdB$Ke*EM1-?zny%F%QH#ePU}~Po%5DEC)!R&a>8m#38g9{vB~UV&)E%#aU9V z1N%)KaI78I;>U51*L>b)4emi7s%JG=Cl;x&r#7W9ldx>PiRoLNaH@Cv7R&{h#$~bSQpQKkkRsk zarOb`l6T@bFK46>Qy#@@wcaQU#S8`OABKwtS4ZOjpuu? zpYon-;d#qUM$bnz9cOj){P-2P)%VNLqOet;POQ1nHQ?7{);Hjbx-a`Y7zJg z_66!OaLxFSZD#-DoCeao`7A!D%dxn&kI=yL1;OI|ET`i<2lpGfpIU`7T#Hrb3b3!o z^F|i*u((##7uR9n0l7!EseXS+=9NmOIU0 zJ@Eq8`%Cp;9oRHcj}gNet(aF2^iS18{WtNx1=2MlhuY1^o_4H9XL*IKTyx$`PEwxzatL8xxlP}y*8dxAoYb zH*~D&bB^HkJ)WnD;e2?E@%{<7n5H95kBurz!?WhVEzoA1iu2=zin2Xq^hY58+yb=k$y(|7;3-%zI$FY4DrGI}1>L>Ya%1lm0yR zBJz52>`6T}4sm&<43rLHps@&3*O(7_+(G&HeS=i6fOpBCT^z8!`Jjp1-^teDe%Y z4dy{Sdx_@__}qZ%cXh4<``f%1=kkKZb3HHOnrFTa0MhojFJ{3XaX*~24O|Ct&HHf< z@Dc2j<*;v_wYXPaHnwZAjhG*CFPP^*X?vazsEBdDVRGS{s-DS(ivg`ss0U|piaLlr zDxCR3J*cBc4CheLo>tU>z4`oh>Kf|89##kIEl=aQJkluAE9!HR&XcHzba?+!l;ysP zuYPrw{>L|Kbyn$P4Em57pSNPr$2j^Kd{G~pV~8=**z1oTM_*1ZOd5`{2(mG;Ut?kn z!kL_$c>%^E#AbT*GEe8>cY?58%;Rg*sPCodk=)MIk=zR{M{;#9aGaS@pnL}+Ryp@c z*gw{oJ5zytXG;b4+FM-i^{(#=ox{Gnj{QpdN5~TXb97#dXR#NvfnV0`;IsdFe6-8> zAJ2Ta-gyt~*(WC8hqD5JCLrTR@63m{x9^?#7=!U_blwMj!mj5!L~)r&-JL z0bFxlO*%nb=W$Ki6}ZNE+FI6U?Z7@W@LvEYACBONBTa+Pp(IAzm;=L?(r9;N65_Rqxv}68zR=YoNAZK-L%JTp z_y}l{2K)@q6w%jF_SCrssh4{_H}ihJI|%m7GbpN_B>EOIrF=o}B%cwqBk4-$zK$`G zx}VcgALyRs9G&)ZklQ(^?5&aJ(|rubBlKt+D<_p zv7ft>$G}gf zvwoHIl{`PqbBXL1gMA!D`w-Xod3F_Jiypbt<=G>ic``1#F zJ9rXt2F`=6RIxev;!mJg5zI*==_=T2K?CGC#CZ+*`7WR@;l;GYn3U%V7?X0GFSfC~eORaH z;Cnqz*0;FoT?U{7TZT@hb8(D+Bl@? z!0(ujI#vKikiHHu0C+zjV|A>NANKYeO4^$PN0^~C;-yy^^F*^y7 zz6&sna<2jMd6!z;+aLEb_F$}k679Ai8#_!pT9Lm1HWBTM7!+2YI;W={6O3rU+KNmUhOrQP6=fFFYZ}$0}wtdE{ z?MrOX9mO+&9E%(WI3LCsnf(TytxoVGzvuB8LiOC+8@GbTXRg_wt*CQdyXAke`$^0L z9ovo%X*t&mxzzgVRKw)`y9(fA7%sgul^7o$Nc3V!plcqPapT% zpMmpEFZBEiy?-#1u>VRZeIq>Q(3?xqmmYuV8+cdd+zFf?GY|URuV)%F)8T_T+H5V_-!dkB5VIQc)iJkvMa{d-?p_nXlRvG!qIWB&BJUY>_c z!D(@_PuQ+e#O8i~Zy0jAEd>RJvB$v55Uw^-ym-Tcf%~ce8Guy42~%A|;Im9v6cVR} zan4eJbsFmh#Bsh+`UcOjPMGR`QJypKI8^db-0$Tz4}Jb1*R6Psz~HqG96MqEV;Fai z^Lm~YzH^+{rg^P{_lTc_9?#`z?>yTc-jC*;uoa0R0Ok9%&Wvxw}HI-|C&CfN~G&a}1mx1Q2a#+8RcXjjiEma~NMT z3fDM7;Tkx1`_ehZ2OaBdj}1*KxA>a43RBCd4|;x>R6Hh0NVo=pAQ1?`^;J~^-=A!5 zVSskKq&aShuzYj1VRHjMJJ@RQ3+yzp72h~V=b#6g>$YrB+$lWy&gK-ZVW`i)hijYb zTEqB$p>zj6%dHx)G@gZ}?f_lmEG}WUSw4QM`V3#a#s{YHxmNYz^NYgU@%2l)iY8}R20TnGsE`RE7vwP;FFjQ7{j--Bb#rt`yaMk5rntM2x)4@o6gZ_`7)~GQ-4|+ zxrlDZckaauKb6{gNse*oa=b&Gjt!sLgbUN=Z}77YdsuEo8&s)(J-$FI4g|fv1blSU z@LdSH_wWVy^_c!a%u(_ZWnI%f60kkZpbvFpaJ*H4@)JhzYNo*8@xZJpO!1 z_>+lS+>OL1K7#sROk7&TdYO#+KTK*QZpI%n30}{|tly14VG1o{2cQJy3c|+s}Btg?8ReGh9}*y?!mqz(DTbV z=&;Z53fXBK!0CYg1gC6Tb zBr5Pdg${YFV+`^sg${eH0GmJfI&$JoKjg8#N8ulxkFn}aKjpC=ViSfofQVdqt#mXk z@Z(%@)Zw+RXOPb*w9{)nja~~3E40gN-Gd<&_z#74d#&GMmlXJkLVLUx_MS%IXA150 zT7RXZ=M>uKwR$iw0wW6T_gaPQg`X>QpV#VR>Yi8Vey>%BXag@R^nlkokI5NR=s~Y_ z9ik2VLZJg*%Z~{YctxRuUh5Do|5BktUaNx1dDTvi*P37$uPOA9*ZMYFbVQ*eUTYqv zW#HEe9raoT?7{!!Z1Sd$c`b`AdR=i3d#xX``9~Fc#A`jwF8hr_k9yG_pue3X18LlA z&0;2huh0pvbvgaMsnBCyYu87B{!yXFz19kj=eHDk!fVZE?;lg>Nw4)cX5+tARFhsS zH5uq}<@c0##^#pIM&Qp1-Q%-fVq*WN1Ce7c_$&|m=xt6|%mttI38wB{m8&kFwV28I zo8or+tOXnle^+Dj%RZ}#jwThl*JrI@p8uiH9-mds_Wo0$U-4NVVcOqQ=)FE`Et_yk zq4)VL9CR9i_Z8afvo2xt|E18c`mEg){IU=b5U%$9$pn91UqEzhUc5KkN&=ME?tI{t?L2{~{Yd z>I>aRf0?%YxG%(Scmx*P_=GRCg1ww=-YM-l<_qCpI3sYOjsMvfYU0YY%C>jX7vjJA zfjqmtlfKY#=J#Urq_npqA+&+<d##NRC4|1h{nh@&cB2{bS;|ZZC^HXQz6A7W`8Gpp&@q#z~SVHI_`oGoA zN2fn@7Ug%CYERVV5B-4oxx+l5`o|yoG26SxZeNc-bTRp#l7kIzdapn9L$>cuJKjEj z=mpNFPP;w*{?Ny%f0vDa%^#Ye|1NvJJ?sxXz@_jDHongvdYAd@(f#KSb+Wx*we=79 zLsv2%_+Lx%anK*y&i?+Ic}n6P@P|scK0IuugX~Qo^oQPOe!gMHH{=hUq`hz1_^>~8 zJID98ZTyfwG|KipX5%CN(0h#U3ETguKXfkTzh}ochIrvP@O>LU><@jK{(fZRNBp6D zws+WkTh@=G{?HcYd&GPT!_J#N?hhq1U!(T;I_VGbgO-6Y+yA6L^b^kKU)cJm{GmrV zUJje~E;|rWsh#E&xruAb8 z1#eeqhiM%p_l|&cc&BNdMfA>33EE{^Tz`XIYWeLkEiSjg`_*dSXIflsgAb^kO}}X! zgNxuJ3jLO8J&UmteEbFRJ78Mp%>nuyg$|k)o|!d*2ia0@`jBb0Fnxmz*_%FWS{s<7 zA1L&YX?4=k50&tUX;o49kXm#`P3s*t{+CPz4t-3k0{e*IVddzsX;l;bl|ql0*86PW zt4jE&X{{#u8lK;P?zm~?VY~;AC`S{B8OuZP*9v{pw75D2?Zc*HrZvi_e*doI>Nv8& znE$8}d&0D`Dg37vOgL})NzR6+-W0;P?w| z)C_$K+WsqT6vnQEZ~s-EOQ4AtT%mrohd0joeYBN0zzMj<^RQ6%<2OL^%;ynOqW?M% zdpp!lt?RWv<^Bebnl&Ef{^K_4Q|^mx)E~MB9pEpq(V&s|XGT-%d5pf#K|lM;J@eti z@5|uQM|U&tMSmyw*LyfDm9q`nw{mvl)V6NaZB@=HZPXk3Cw<*yqxjnRrg6=j^9U5Gf!X;C;8hvTR;j;qObk8dpJDUz28Pi{yTIl zLj1O#zuklDl;8$KBQ&y8POY)n8HvB6-(8+mkP{zddv|+wQN%~nGrx}^o$CLJ=RF`H z9#i}8^Ki_{|82yKxmM=#N{YP!9Nk)*fko!})W`aTX8r%9?&lf;SEMS(# zJ^x1C@1xMnMd&@tU*_G0c7=F8=wIvQGDyEX#q+Q8s{NKP#PbyYdas)0!4S_={1rAj zP0mF88*DT&#PbyYjW#;nNSwhA+2~Dxo5U}&H*WHNhN<+?apEK$*L&|1%7gfwW%5G8 zY+lcpjfblsvYV-G@cvLlhDC&D6-tDAh}n$ONLGcR1n_sLM|WJEX(gEyDMTFpo8r?H!Dp8b;y+O!nu!gCh51{LYbMP+rzivfL}6 zugQPV`#TZi-7mAuzfnYfq-B2JZ4`W*_I~0GGO4~0e&@(BB##r7y|*D{Bo4A&hrG)~ z?4$UdWnSfo@Sqcy^L$~<@WgX49j9$mSLW`5$h2m41@2>5NTx;12(3L#nOn{4!A>j$ zVcKq!SKWO5=;g#>p6dC1_v3etxf8zwfZ43f=Fy$}7`_`YToX&40m1Kk7QeI1SIHDH z{us%RW8mc_u6-1v-g<=ddmXD7&em6u&cyXJ=1KQizhgudb%F)0YG@_i_=HGW*0-=8 zCT>)cN!E*?CRQrR3C=uloor6|l;D4DeX{vab(W1lI8~04;5BVLt0iR9UZhL5qW0W0v(9wxvSx zlB~O3Sh7`%xe(Z(cq!J+E-cmX(RtuTe&02@57mr7)fH%rbpgpWI*vUUi5l}+pLJnD zs}{!$flW%%vKn1jk`;Af$(9#R0-JRlr5H6DOSR^>cwxiGPy)65N^J5gSO|&&xA1V; zsz-kYqB^QCAxnWarj6rn33@NEgTZrD)RA|)I&xW~E@kdg*tLd_CIh=~fT-Wc%elcl z_~EIGbWW-fJcjx!8uwx{kTBa>HfEoX@SsZ(>DYg1S)Ay64TEF)kS8&P5=r>QWd;nc zn|PRPcALeZgg9QzFH4>KgDn_U=3Y7ZLrX%dFm25q8%=PV9Zx|+;jE{I(&tBJbMAU$doIW#z$&4 zwHlr>brSw6R8p#{nn2(jFwPlAe$8B;aLpO#;3f?&ETGWL+&M_8U7vR+O^93S`7$6;C#9}m#SJ4D6D12mchCFP@!Xf{ygqmSwKh>zD` z#r&2@`$qspfVuOaCLR1O`e+0R!K9%u2Tcl{0`L#3D;&W=3VsVD2>zaJeAc8;7)cyK z+2{y9OTl9lTxecP!6eh9)M4&?QN9MrMdCZjr07D>7V+N=2(k_QA7GITnOQQrHUZDP z3qQD?LH>7%%ZN@E{z>3)g~Js65-=N(hC2V7fxBvpAS9lghk8t)V5wRBunWt6Gd%`Eyho3HS4;ER{A zl@FL@5JT52{tl;NpNM>teMg?R~v z($Y^F<_m&V0!tf(*ipdJC{_(wqV510cQ=Odvx=r6|2L8UA{bc_{N!WlO9d)XJ!8as>t-@GR48@)WV4&Al zNr-#F$oxLYW}e_lI917f8bouo;Fkbr4_)Nhgjn{F`z*70u_p@rAHbK?Lwga8!dsOn zrD3LIcY@4RY!(vFTO<`-u+2Zy%sS7Xbz^S@Q*p`ZQ{3q=DGh#wTuDVgIQtb>IN2D| z*p>|9=MF{?G0fc(C?0h(vd2JXP@NLNgCJ!-jgfETKLegNfCj9AeGZ`eMeL8tX4)81 zdkjFEKM|Wrz%UN?Lwo{o(9YwdlHhbQvyagua{F5`bvbC6C%HTQormWLHN+2ap&l3h zZsI=ffd3%)UgATPe~)~HTnxd z@g)_-ogfO?cSP39VFJ;21xq6a$&-TdT2fjC><6h*3!Q%moeO1V4rky$1+Su97vxR> zme#_W;pMUtrL|fN9#hcI3A)WNJ%Zj(D>p;K^a{?)JK0dRr)xln!=i(TrV08>>imuw zOceZ&!Zyt5g7Hd_+7_Dc)9`$+$!SmxI!}H&&ci^J#eBY(i}`BM7L78$^S$puaXoQa ztQQD=H*l=5OF3q)@|rZ$3wQ?bl4I&BG4(spl&Pz{T%6wrzF15toIAIL=Ia=3X1Uj- zm0`eHSiAq>SSlAw9|aAfOqSW=H7Um9wK9-1(scYSBHF4%zr&{P@|qO0K)MI;aYuBQ zh<;azewU5C%WG0B7w|IRc1QFs5q(>U8f^9bUXx;#fEk$ek2s?Di|7TQA=WR#vH7Ui zq*xc=I*`X4(MLt}W+mE=Lu~W=UXx;@AblQieY$Se_eJ!Zpe<@=Cx2hM^*P`<6elSML;|Nn3spKYEF2cL1goMGIylTIKK?OndCF+I2TIi0UmXnC;2!g zt_MvyPx5gL-wa$iPx7&2c}vS;aXw3M)v;Ba#Pe}P3vM;wYk)sEmgkG*{{U?f@3Al! z_;|H}!`N7!#g+YfpJ`r_fg>FmoY#x^JRV@0>m`VJPeInKkotug5L|&ZrczKNm-R0z zv7d2#sX9zw%$2eqrtfl0_q$Ag!)5wWsprn)l~?oUim{dcpO-q5cZlQRuRfE_8^Y4} zKFW_}qDd0-U&ZiZG;0YS*1~Ze=IL=7vl5uatHJmv&jUK3RYAkE5*C~UejgYMj-m1c zRI(%BtTb?h{W>sgtC$pCc;Pv``O}0OV0OWEpv_5!^nOaO2bK?PzL0uyFe-h{a{bs4)e+Hh#t0|*^%b}Xt!iiET%(IbiV@W2ARyv$I;jAVn zo0m?Ne3MWsNkyJPo`!MFC>9H2HyA34C4zsGxD27C^2f(>#AV221vq5RMki-6(S3j; z^evs4FE^U41k+g32`BG3oJ)msJvrI^j7sD$7iul3MmDeVDIYV$#~mQ6VHuK`x`8v| znJPk2T4>%IKsMR~Cg*EPnqfQ*`VME#wgLSq+KoF~rF@ZlCrV%xnWGa~UVs9fE%qcvd|u z4gr#2ZD}ixuD&YjgWxT#1$w`rzoDvh^#h{%ci=`A^(;hFq;)?f!kIi}3a^~$=CT;wSz>TaNOsx*UUdnDla@HiW zn|?~+WbA&;YXtuv;xoA8xHge-ndc!_h0x>5nOV%G;s#-a!GL?79ZzVJE5*bLaFoea zf?q{kOy-H^2AVtqbEg12yv!GJn;6UrBB2FP_FBFF(#Ur!kR>rR*wS~LvntWo**@e?g>&O4z7VjT8Awzqj0Oxw}LLCw_eZ( zfv&DYe>JGE)@J7+9-B3y9+&B(Pm%{x^?x9!fOnzW_@uu20?Vgz(Um5FQd^ z|IH94ZD|Q%pU~geAv_}J3XF3J;TtN1N=||ixHO+iH0h`hYu8l}`qu?|5F!4XR^mZGpo5P^iCIFWMg^p zO{bw7fEiiCw1Rk=w54B(>uuW7s}8Cxy_QHz_t=(>NJxWXiB>8AgWA#wQGHEY`ip}q zOYbCdFaDlw>0PlDLUM7^1S`yuwCpFMb^#dDvY$F=p0wVXu=;6C6g`Ew;_M}TJyL*Ib@JuogI zZV}nPgC`+wjiU&vUKH8wMwSJwBESn;^CA(g0#h_Ej-$}b7tQ^mNv#e*0sqYcA ztyvLAp}9dc|3u9+YO%GVl`dk5%q@pWMjVCK`J#0dTZaMrPwt|2O*g5VjA>B^dd6}+ zLw8BK^e$|d*!c`37V-W{bGKMJL7X=)+qjoez|W_ITLCOj_HK6y?ui(gP1u8)pP9~{ zJ5KibGl73jaI-Wk1-q?YzOq3 z#`(OU<&?`hhTlRgj4x~1abY%V+20F#r^r&S5AdFreMguNYuR@NeVVdqlw+?+ug{mn z9MN(M1bvrs=w}ND&gN>%q;wGDG6c=E3w1xQw%jZ6YSGMw1pDz~OO8^2sea5C9Q~M8 z2wQ!CM=)L_g0-UfGb%Cz>jVu#!dTLaOueY(ZWYEYV2Ippg1$((tV#UlV`=$^mR%#v zVy-r{d5xeq12xjP1hFmRyIvTNX}JbL-=>^#vH2VZka@_Gi%`_4M$12j@{ibKsdKYK z7LW6822CBW9FmO0fUAY#kk~sHV>0vOUKo4M;?AxTcv`M)a4GJ}Hea&x;Va0#+Y0n$ zK{JVN0y-w>)j-v9^9#YZ5dTkx_=?4d@G2x@$w4ISt`&CU7R}%kFqso3Ayd##5Jd+q zp1}@!99Z@kl$Od>fD2|k1L6@7Gv!2F;eR8}`M>C%sk&uJ|7p^eLk7 z|9ct8&jZUYaQwe%Jqb(y1)}o*N5Ru!Q2BpL@SA|6=O^HcLrHx3rE&MsHQO2x^ev+B z6_mCnd=$Q_9beWA`pN(?Px@$v;O08zDJ0k`aJk7T%R>1B!~Eh5lU~OF*MeOQSR@C) zU!1|XJ_&rWoN9e>22Zuj5_J;PE!?}n&GfT>?-BeV;EeFgf;~+P=iYk-`vowp9q;1T z9GPL#;r=V|-v!7wT&!ox$PBI>sVntN8Igu>1g>V*$PCV`YgfT7?|L_1n8CkucLUGk zUGCjAT*zCsQ<=SUq_*&+KVWYwYQG@&+K0+l7>;9Q5;m)2kcCvkRmgPzri zE<1vRUPu-)UnHy_fW?Wau(yFN338Xqw#$j{$CF-zg)JYWW!`)_&*7{W&JJ?2>%md- z)k5te)ksT0=XC<;?*j1`6UGw$GxaP3L5$rq8RG~TONK!{Kr$Nr4I%#pWNIrc=~7^b zR$=MDvd10I-<-)vSAq!7^g3XB{)$+-Mi@&n(fKpbbG+!DD2z%Pg+oiQUBqz0GE=aA zVA%ywVGJ2U`iZhr58_RC~n5uCJgj2mW={!a+G17zA%*bBgx9E0wY9F5Xr?~2`%V4yFtroQNKCWSNo zGH|kUz)|w=3pI^YXcU9KlS3Enx<$HdH8|N3kQu|Lg;Wd@6ZjdynusBRpB1c!7!uei z*rULf^h5dMusKiSyIV$xv1Ag|22fQLdxiQ#h#T1{m{dykOG*|t_+Z70c3eM@h+l+k zb{oj_{j88C=o?WgEb(#(@LwwBVMNBqxgfHgW1zo9dortz&){s!A#cefICGG8&caeP z3oAGa%UrW?tvw6#uv{#LteTtG+0=SaF9VgKJQ8{aMoYyq|FCN&9l6~pow-{=1X+dn zX=%lS65^6!kbhxIPfOx(8USO-ILQ4VD~)8y@+)FK1yLoJbY3jj4r1uaj|uhwm6r5EX90C2Z_U!;r-d^N&T5BqfpC6D zPWCZyn2TY_g;_}F3r+sbZXQT7Wu?E`Fs=ms$5;l{anXS!uJ*TprjCmaB=N}PH^9|u ze;|pgeZ!S#n5_1XCvmlJC(dV_%U?Qij6T*?Ife4GA?B=tu^UjzCjHa$b+Cxl)PIv0J~ zsS^6%h29DJZqm24BGXsTVw8#30B_xU&Dg0^1Xc)^L+p`mGAAdnD1wRt9);t#eC1d zR;TE;SzK+e2A-7#W8HuVjAdR+FJGQT!v`ol1SxaxEFNx-0#D1gh3D~5$h=P&*&}Qk z5)+fe9ETjXv|flZP-S!XtZ%^PziDHi%}_QzEjFMK;8SgQn2wE&`e6O3Stj+{uHzpS zxa5R=iMnF?lr&bKZayVVy%ZAaXl8KMy*!#JUDOmrF*u6@tCd_n(g>VggnydU?)!&= z_JOS~&nY~;2o2&m`;plG8c`msDRkNOKr!rwB!}+-Q)fI+3yw1$G~ja{_$r=lGWgzN zJj{IqE>dF;qk5}YZd$t;G}T+ha@*_YfiL1SA7;sH-tqHaz*UrGa+~foAJhjJkHBkG?_0xMw-*SOayx(tT#svzS3L;S0l%J|GSakCtF^lVgu zf`^H}#AHnqd4<^*gpN76kop64uuo9fUx{JeQCM(2_IgQmhRvo#gQ5&sf&%{4)jnaHic{XdZS4znTuX|4%!{n-PW zngMHqO#VZ_vkyX1oh*0CmEq?=q``NSVekpu`UPWrKf{}#KZgCGGVp|?Hvv4A-X|nq ztAS^a&>(N2Fn=KJ*ao87G5k>SbT{xN;}H5NtSxOp`+qFT-vXWU`WcaW8W>J~OnO}_gWgS!qPAAOsLvyBkL-RtjOnfoTKXAGKdwho6lVMDs{xLA* z%CA(h0Q$~0yrGMxUp)PqIXGIF2@%|k$AWlZp}`_(n%B%RQJHog@MVy|J=vm_KsGKU zc|+3^XoN!6496mmpJo6JDhEVEHW!*iXNvB0@Dr$;WDDEeS!bDxEYfi>K~Hmtt5A|1 zMR9soHe#R`^20(pJHd&=Fg^mlL=oqwfNuwezuav7ggAe$tuJkym+NY9s@oZpT;OMr z=f)j+knj1~=JGkhO(Yjj^DLi3diY$MUNLZa!s`d01c+ zvmhHUD|cHu0SRQ8MH0AP;}%b>4V6BPxP=#peyQf0h7%_(j{+DJOWu%;dRS|d{}up& zuprwN2)VpZ8-cJ;TpFcH=a$8}6%EsN_q?V~VnreKULkEpscm&pGq0CBM(+Z7kl zqX25NJjU`U07Ea&w&F3CI~FLe$5JE2hD5ZOqWb`7nC8;o5dd?+a#GcuT#(N< z^+AON*{)o~xg~L~lMBt&>y-9MBc}lL$r1@*J%c6hGW8le$F!_?TmS|FV3EhuIHR0J z7Iq0(6oM*r(4NRvj!IeZ#$>N?&(LmG_@)KC zUYCUm5cCh~l~FIu(-&hci#1Z+$f6cQ6Vz@LNz#I~EO-Mnd<^c^cS1viH>0cOY-GV3 z&_zVwi4GC%nHO#&0QPn}%1!|GM%^fU;<}6lBcVhtN)^!t78N$R5Fr&wbY*nGJB=yb zfwBi+8qT7`>%RK|9B6#p;1mE!(b2@&Ik5?c?dFyrhT7u%UG zd~~7>;M#}u0A*+)V@fd2{Obmfk4S{3hVJm`aaj0MqIdYoP8*z_VEnw@)q=?uZ;#20 zq{c{LV})vHs?K0s=T@V|_u<@KMoYr!+z19@I{K#{rntxtJd1GE+)e7?|XktVJx70bb*d-7!{D z0j9B$MZQ!^c#)G2*_y@%hQtRuL|Rq^AataI;~RB25xqvRI>vLkbQ$txEQ$aK`rz&l z3S;(Dt4kcNXVC}n8n>A-RydnYW4)ffsA>~>{>yxXg<${|wow!+`eGJJzd}b30XBm1 zQ;+3g0FuPwbs^s(B|`?81=H@DySkyUr57I4xG^4~Gtu%9ipu*&7JShQ63OBez-#Q- z9b<+40J?4$MfuDr*IPMn$0j-2k1ysqs= z!3+G{A2^-qtoxda2~nuotZUnR6z4F2qvbftlK?DO{3BtF7;%8hAi6>~X4Z`mbfDxWVX-N!@Mmb1)5(h_4END*_7F%1>F!KkTnNMO^ z%s4v&Uizo*lof)PoowQuqs&YHg82ku}FDT)l*pVktDpX3$@sf2~%I(Z>l4`9w&MpQk6C7){m zJx}|gY$pJISdi`VLvAmCODxL~sV|S6K$$m3(JPYS4L}(_h-3j+=Tj?Vc3pepvrKg3 zH6o)vR=y-ibQGtpYI8~S1zZw5cvc(ZpnoprLBv4+tTP7sXPq&qmf}d#-uO_|VE~#J z{Rn6nf~XG8$FKsp8m$GVV^z(a%Oj1P>=;!#08@zCbRWzf1O$v$qaXv)n$Zo7Apq8F zIvNs3rH34!rCP8DLiWy(WZpL#7aeFlYf19m%~W z@g%?$!7LC80NMrXYXELV;zfWdiaN$r#8?3E8qp3PE4=_53nU|Zxd2o-(AYxP5keS3 z><}D0#Rb>urhppPappH$Pve|rUC`|neP=A?gJlOYDuGZQM<5yS&c}W*)mf;RZe$`< zOwJ*SHlQz8(O9L}SfAr47Bdm-GS^wp5QO;khZ&d$>Nq-j)aOqlX^kS=hu}gciBI=I z+CF+#(sn|R!Pp7F*~Tq+*rgz&;Cz;OQcKHQ7|Vfb9^k|H5%Ajn7ryQ{?I%I}#57r( zKaH%do<Oyf;RXN%AOFyjF&L**5odQ6eg;KAedZFl4 z#MLX}>J?gjKbF2RfbK9ZyW;?jvpxZUc^1n2Iu5&|04>G(1ONkg)W^z67nAi#08Fr` zm9W;u!&(;)%h~sxDXinJuvlLsnOe(O4A|7Mu+HYg9SfDYwQ(QLT;OAtZ2+v_vgk`I z%XMPN%>rxON`ULksS}oaZ0q|`4ggMLbKi)j z=`i=h0H4WZJjYN@+V!ln(OCd@oc-YCf#$j(N74}hEFMLXD%|2QifUEWeulw41n^_1 zM~sCr)(-=4c%?<~N3vl7v~zp>;4rKrP|+Q`odGf~AX$abCmkb4|}PGzCE&Ws=$R`#Ui^O>;i9L)|V!vNQqpCsMs)Xu zSn$(g2OvbFr}<-GK@8)lk+wWFW+z50G7_kJ!z<=4&xq{@b`ZeWSSnM_@Y4;WzZK%| z6olADm%q5s>Hf%JYyCzv5MDJmHi^2STZ~c}a=Z~`Lg;O|cq;;?QsB&;xX|g|n9qCw zW>O)FVgQ@PQrU1E5v>;XPAThEJ&7fszC@2>;HZtVe0UY3sT&0!Iz^R_m?i;G)enNA z`azwNxK0Um_&6z2M;$&I>dGSh^a5}!+zTIv#E)~(QVUMMaLeLcr#%sHx&Ul0OFpEF zQA6L9MwP`NfD$Z+q`o}HlCC_)iWp0_-ZkFZVC)zGivWv4NO+BQPmGo+4myhwO=lC6 z0V1RmBZyAT0hk#AFpx9R4%==pV`=$_I9W%#DztT4DF>W3;g+!Av&H!LdsmE=4n^0Z zc@AlD!GPC_dklG6k6Xq=%q3MoeBS|Uke%(Q#LVLNu?B*!idWQq~TZVFH) z&vhwFlep&TE!7dL)TAtsasVM5Ve-sur{Q1NZp?KueTH#Y4)F?r1(oIJ2iM9Oouj~{ zM*;N9^0=xy>mm8=01RY4huo{GIvf{?oIc@}u^0e&jaDr3aOIC zARvgH&>A!@Ek=wcrW?^c|NggE5w$S}99$>?YSJV~mLjo8l4==?WB{Vt6=Nk;(cM~^ zLUN+w1FVGrCWj>-qD9@=5s_aBz{*gIqC-{rjPhYs<>SG500{8;-bPi`9^>jIRBsoZ z5~`1?D%EpDr-bVDs;bqCAVlvT9Lum|bgmKA2GSltfCoD`3yBd?Avz800;va(U{vyG zf>pZ5$H(Q2QhTB)YI4x;w`E*MbR!^*0US?64g*}P-%+3^0k$Vr*}Bs`(G)f5DFuAW zxIAS6%>_7~h^PcRZ7KkX*>Ww{RHGEF7CCHZ(pH1S+&Wf?sJ?QnQidd&=tilM?U*2X z06?dih7ks!$_JRMRh3U9_o}MSDs@Ihr-V8w!Y!c=9~0(;L(!wET4x{R4+GfeEC+?{ ztTiJbjRBmN5TP8bu{Z(1BDy=q%A`Ve#aLkkuI{2CbUhD;aG9)M$lNUzA0 zus8^iP+3vwbUK~7l%eT3+lh|S!@}MvC7&k7^59&y-7!Jb5su~@2nntPwBo*<-GwA@&ek=NetQ!MKFMwsr&X_xJ7?E6gR3UCz#w-KyL>Lr7-^hdW2X zoe-5OvH zVNG?!PCKZzR!-5H!dfvUJa%)cnw(Pdp?6GFpLR%ou?&Th{U{EqDj&YbeK>3spTVzC zRX%1vs;XL@PySZ`xJ>k-ve$81CTysg)V`ZF5k}Zn_@xo1q;&Gep3&AFF;-LvPV**_haku@ zS}|4;fbM-h2ujq z6dx!~hNf81*{6kZv49M*a$F(1Vyq~0tvh3Jb53hHKP)vzqztQim?fXJ$9;<~q-7Fiv4PN4tCq*K56ZNWF3}ge8da=)Q=}5?ZUA?PEDtJi9TP=T(ZGBFMOd=2 zJP5V70t8a1;$vZ_B7V{9?- zrtrst=#^psj!0OP1LX1rD-{ay#aK~ofd(T^mc%<};WT~}0OKsi#dwPuW5p07EuI)F z^oAwCD{g5K8ae~61waSO4y6i*4t4{SOcBq{o2KEToxnM%hG2xcz5ep~U@;HPilmd$rfCTK6To-b6m!nynu!YjtG8UBp ztgF5lEBy-b#}1$}0C24eG|?fXQWl*6B+rbovQHtN7%SA3w8o8;>PUUyF#zT=&UO-5 z2v!u}Y8y!^5~qV1sUkUlQE|FL>#3&TXZ6pwKz!%imRnibTn z1t`rnBaKKS0DsgnXr)=9ql{~=r)CtOG;cG~h;#sOygYgym$FC#p#NF$ z-8&d0W{edsYCt@)x)mwJ8!JbJ)7&*;XfH=drFjmw^mK1bU0m5o0Noafa*5WU<18UL zLxCRa0lWspa!l2OT7~=w0E;e*UI6ayFrCALZV>tb9$bFYn~N4E?-0QCuTPvEzl7?h z4Ld4Mlw%+r0WeCI$5cJclCLfRJx_b5EMFmnh{sSIR#m=rHvx% zRZaOA0sw%zAH|@mW?YKhE&$Ye6m6<{1jR{J9W1~)34lQKGMr%nP|d#_Jq|#%55+-M zokYQRO@LZ~qFz)2`(6tRe zZ1~g1eAC{zMVjw6q35vV;V z*dkP`QLw8~J%z$2ahC*9utlJTQS_*4FA6pe)PpG4I8?Jxs5Z)E>y)@lx=^?#P@%+K zvId3fdS^{#6PS9g!b46Q*0K$p4zf6-td^0zmhIu7AUOwRJ^)K2+s08L(kQC|Sd-XJ z_BY9FXd8g_4wT&h?19~a7wsQaGee02O8>HK1jgE0Wf z7BZt!SIN|IaU!`7rOI77bI0)^(ny}lW3kR7$weS@z`&&*Hzaq0)Fb3dy_k`lgaMQ) zgQ$|@X#zkpryK_q>n!_ZaFug#l>>x~k|PX9$t>7mBy-72LRYa~gpwlL$y=rZm&c=4H~8jWS~300;iE*1~jb@a<{EaOl-grKqK<|NoB0hKWbHCD>Bhxk}o z8RK~8c<~r3UE{{p6{}(##q17`vC7pg#qn;*jd4h`Ydl7-tBZ=`Im(T3BzFTS!cyg{ zIG&@GF%E0yiLu1<5oRwS$!Iy~>+uxe28W1|5jD<>>4tHnC(8&gZbQ){led`b zZdeu_$J7CE#{n~NN~LZgTb{AQNK1i25ddWSUNIqS^JCCB0zexJYbl zpO75I95lK}HM|@}L{-~R>`_&1j!OYwriXb_j$)sxav#+@Rj>n`Zh$*)IFQwL4uW+^ zDQnUQP_=S8VfBL4FH+@NY9HJjnChw?YtJ44dRzX3&C5{##l|mS_JKR{ze@CjdsHOU zvvheG+r?JgMhduL0Om{ttqc#(X)`mwxIt)1NM30MUsw|?#g(yy{Y7u-DPxZ&Q!totoQ~Z%|L=o+KArS-# zoC}b&N4G1o9x(R-uooCZaa2_;h*QNCZwEMCfCM~!J}R}>J%RWO4F_zVvhqo zAtYxER=`^&;Ix?dCM)ik{&%nYY$;c`Js|Z0uy@pfoB(cOK+n zePfvx^I?Y-l%19nF^_}x2&uRi#h|KcXNQ1}0!~Xk58Wq~WVirb32^mpCD2+x0`DM; z-#@kwqys{hMarOaaZ**ISE5G%=+ZS; z;ot{=DvM+>bx%3VFaYEV6!ogwiK16k-M$LMYDwHzN!(XS+*ipkT#ky{5+8geiQAHR z1SL8GJmeVj_n5 ztQ`_ySv=M<#>y1Cu62yX%^vpAtV(w!%~BJyIo_;F-7KEQ#oJZMcByPSQ$KF1G;XRi zZmQH}syJ?{l%`Z4mB#z1ROh7}QFTcROIREP;Li(BjFlq_@x@qSDsYl<3`JP=6N^HC z$g|R@5MPWH<_q$ChvEl2li}q`+Dcdy0OT(dR*DqjiLp|w5O0hXyQ5jKLD1M0W0MX5 z;EKh7qT_ZZRE8DeiLr9pcwoD$0X&3`H?NG%<3u1i-ik7|f|G*eL6oW=oq<5|DUdlD zFcS0tCb_kl0X=br+I63KE;ey6#Us zN_gzgfv3iFIY&&7SSV-FD_RjlTX5}k+9BBs!0hfvF{G-)D8^M)drCrsvj7mxMNzD( zG7^?VRkFwc_|b;oiTF)(q-BYSqZI`@AS7p=v;iHQ zD%B2jOi0eS?*Mv8NX`i`=kZBN%uXr!wnr?T&J{%ReW0PiItL`B3aKOuMY*c7s0Q%f z^j7>|-i10}X^An)w@?nLDvJ?-mSTNWvE1gD3aOOlX%j<$Hk6>#np21)2r_$}rBbSl zD^<3E+77^F?AIdz^RO0S<+u{j(c}PS2v{%2eXOW9IR_KDasG&lzgFur z1f^1@Nqr#EEleKqv7%f$`6YT1z&#sFzP}Rn6s=Fb?;6Rhg`!qfPoVH!E7VjJldAeb zoigf-icT4IPKlrs+$oT#A4F39%jaI05z7UZ58#Ajxdy=H97O~m{|l$vH*|M`&<&t0 z%RT^PSquZ@59)Ne8T$y(aR4P*@{OgC)bXYQ%>jh)VlK7kZ#NcRIyXjI-c))!>7=Q^ z)<;n7m?~l{TroFBTGv$iF49R;ajw_i*B}W@tLqPSofq{tc&fTVJnpq(N;;OOs@vn^ zrYm#`Y<+b*`%$=74X;>i^I8AiO>RrWcEY0PGre$5$97%$RPD%bjk4i==~gkxtri#&7QrBkEj$xM!tEA-iI%6ax^WyDbp}!EVru5EBW>=D{dDLYj?%#v>zbszarwi|%uYuIMHRx)yr3%4W_{~MPB5Nkh* zAypkkvFCcB7T$n;JpckjC=RP?(#J6#0i>d!dsl1Y_DkdTOXK!SX+J9VOKHDdjF!^= zgsRehs@N~3{Wh`htbj+MZa{s?9LxkE2f&oE%m-jsHwyLR0O?CL2Ys-XBniV+Jd~+o zy(||+xvEy9Xavv}OXc5LERtY4EauB9z^w(ijtQqkr>8`g6H!GYs!T2-^7++mEBk;R z0LWNkWk4ajVyp})WM_<(5rwqJSUIYYJ7TO%0MH2)$RIn+WxfY!9{_*f?T)dsPa(Tv ztQ=5?8DnJtfVLb$!LD}AfH0ECE_d0j1R4QI*sQbx5Q5J6lu2(PODfarndvnEo39p? zdJt5eo%Kj((iMeHo~Y{Ej(XAZK1l^`>|urZL@VNHMZ4o^#qCJ(wBlx)AxNvV;+`s2 zjsTFWJ7TP;w3g-}8-)Puy>`cRjwK4cGLB!n!jc>{E9iLbwRrVv&gMj!O?hrI4HSFUw8xk!2~(sP*;ME8l_}v0M?yIoV9EnSCugUE^{)beE3Io2)>v%RFhE9C8;QeRh8Z{U=>t4Q)6(Q zwx0qnlZ5|@G>Ik@$&spnFOCkERHZ|5t}Kzn?BGOz1r>NIsO{D|8WoyU?~pc}PJ*U$ zG*$#l97wnv$H3S)*I(Dg4tHIg>x5qJaM#DVPFtDoK}n9YFB<}SOi0dx=mXON@X(DV zU&M@hl8%}DFaZ0Y44duR9g&+N+!6}atLhkvBdWRv<{AN*Ssf^79aXn+rCv()BH@uRy^(2;jdpGFL2?S+N05J4eknK7bCU;V}B`l_62tbg95_DW9A;cU2xZ@~} zsj5yLh4YkSDf#+v1d;6KSBmH2S`;0sI)LJ^s^&w1O0Ee)n@Xo7u2T}%DT(VKLuzY- z4kfS-jG&+d7C6l1xDQ8zq{FsGGTf^W91XJg zit;mE42}OscM?)mcAX=U#CLw->{vG^$uaNrQrx3+a>eg&dPHRe7jkEugX!F~wW=lB zQqxq`e6z6zgw4%Ox7M{ptG3o`+g4L`YfaL}CCR%56wlvn@yU>5IO|;fU zt2Vc6uBzD_ZD?*X7SC0dN#0bm`R1)H&D)!5tF|<>;p69DI3v^ei;LX4xu&tMYWYfI z?!366)@VyZgv2X8K&)wu)Ylk|F1k>vwl&w**cB6ha;wNW>#L5*sa zN`7k8&D_$^*jU#hpVYL;?o_5-7?+M`()d%ZB5&H>&{!+URl(YQE?<1Jt!-}J7HMv+ zlkc%<2b^B=$sU_f*R+{~RR#EM{O6_VGODVyRepzM3P(O{GKIn^Qe5DOIiva$mpQbl zU1RqfzZYQ}5`IGydNzV7+bAo>zx?jC;{wpOH?=lwZK|scL()Jt43-z8Y{ew1iW<1y zh^k0zuCHm~`D$E8C|qt^>ziAmVq&9%O|iTQncN zhJRW z{-h=&=@H{rjfo{TJYw7lT5a?8O^tQN=WVvQh#33~5dCUn5#uqfPtAz&jE!P7-o80% zoHbp^D>Py(vT>R1OGAoDBw}1*W1E{Bn_H@E{Wdqz=x}2Z<6Z}45=0O2I7FIRzEWGl zcQx#cDY`M+AvoF)j~I&`ItBBz{+(0F#upttuAUb$9+b(kVMw1IzpfMX=$ z_@CK~3rCDpH_gt%7B?+wv`j%GMu&|@>)N8)+j}mW5tya?P#|KQqp^lr8ax-7`@mM#606v!(eqS=+UzZKu(V9j6hnZrhZ)mKO9t zB-&y;u4Qf$^i><((zv~~UMMHE0QWep(VFP?R-vcPQBmC1(t!P}i;-zFA}!5ZTk2X{ z8*Z&rVba}oXJFRh0EN8uXW+4otT}N1#>ROs=8YPu=#vj2~%h0xnWU;x4%jFjA zEzdvu!&ng`$L6)|FdmCn2kmObh8vA5KBBZ)zrn7{1aHMrL7nln50YM(vhY;Z)@?CX zxE32B@UwOCRWrVZot2{KwXN9Ku=QNJ*13tsCN~x_qEpZaR&Sgw0z6W~VYI#Rv_Wsh z*hBI~^L)iF-x$qzK=U=LdgJ@ni(Pz8=c~a}K@S7?#&o^$ZPk1iwYH_{snZ|};7jvtJzJ5kX27Ua|Ed}VL} z+P4P4w(5;<{XGUa4&a-A^~Tp#)&lAQjesa%0KnHpW?(MpS5@+jQTlCRd{>&@`0`1< zUXrip`u{@LZ;I6KlhiMh)b{=_emh1H-$Qx2UO(o}K0p#qCHQ7E{boS@T0s3yK{Zv-$3I1D%fI0_gCoCG)%$N*#l@&S6|oBN6Y#eix+ zEubBsH~r!_zVWIXz+Cc0Z)^)+<)+``rsetWwKjn6lmCm}0oefn-x= z`=EOOycfC;un({wpf^6qQVjSoSuHmSnN!rug*<@I2JqHn-tftLfA!V{dM}_4&=1%L z*bg`e;JwMifH8pHPO%O%-xP68wYQUSbiISY^v&|5v~ye~QmXalqZ_5eBoysNnv zupi)TE0KRd5Re7n!wbB{SU*#vFsoW1iUDq4bTqg0CWPn0K8|p z53nC_0Khw)^)`t*?-s5G@W~Lp@iu+ZBY<{5C!h<^4;TRGt#LKl3*e&^ymOd074t@4 zz4e2(51{WXJ`?=__y++4fI$FnG}c@2B3#}C@RdO~t%Lct2neFa+Se!g}NV#p8epz)8R)fHx59Z3y*4fDwR|kMRKDExvkl^ZB$| z9{Bly0ze@^-~a2D=fgy&%N0Ym98dwM1=Ir?0TDnH&<@xG;GM!<0NyR!1JE07GR{%Z z#sK30-j1v{#?Sb)Za;YY0S5sCfFZyzfVUlM8;4QXTQb_50!Rhq0r>O_?=aRI>3lM( z8c++U2Q&iooyh-}TpMKD0eb+vFIjIxs1E~10esA60>HbGCjqAbddtK$nJmB>KoOuE zPz|UB)B_@bD4-3{4(I@M0`!)LdOqO)($Vrmkma4t79bg*w+QM{0B>{d0Pv9=KCh!U z&EE&we!zj#_~XEj0geN#0^}Po2+$k(6M#(6asau2JU~8R4WI~64yXV$0`x{5+HC`^ z9ncBr0`vgf_UV^*Tc63+nRE?%YscKw4;l@iJ_z6~(R$;vm3*wN7{Dix>H)lwxgD?v z;A~f5odj5bBtQm$w=?Gf@&S6QM4b=B@n+@@KqsIVpttHmj2plqzzARzz?&}h#yc)~ z<6s4#5>O4`-Isdft(Uxua35el-~fQPVd`xZb>32V3~(H90>Jw*^~M`elL0A!JU~8x zH)iUMcg{8fB7hTslYmKp-gvW{zJab2b-nR+nv^2+9iSJ$f1CLiGjHYS0Pufi{Rb-l zHPsvcd(Hvm0?5~!TbKU?^Z#4g(3_@do0`u5<|+aF`;!07rIez70s8+qE$5aw0y+N2 zNm;#}S_i%LpaV_;^j25_`vCp7kfswK0Pt^|LV(`fH23-7VaNs{X8}?HVL%Q*ZyVdqm-0YQ(U7ladA4b`m*^bs|Ep)T%88zxSD@WafdR-KkI}{xnxQs~#HXu$#orpUq zFB2-{c3U1sZ+FZ?Gt$y)Bty=Gh;>qJpMo4-aRm?>e?SaGbafl1Pl-q1L~lt zK$4kB2$Wi?QBh$MAiNYSmGH=mXM~`D2q6g%Q4|%tK4E;eRcopBU9C~k+E!aseBEk0 zlVJp{y;`fSZEg8|K6`)8WHRc#-@ksNhtFASzt>)S?X~wg`veb^Bc5=C(fPod)-^;1}-X+}VS#EGwRj zsP1Kv(nVX{AFThhthlV)?f+@#V)xkGK$E*X5~_CR1gombfF}UmmHg+lNU*GUld_v! z6E3L=p&pw;;gO+ocSVFbUJ`VVjtne~R86XSd!pMnf{Z6`<3A{}Y_j{J(-y37*9L2v zwz;d@##Xokg6^?zBA1d-$n6sxJkenEGMjS1pdbLSRC-q~O? zv$4#*JE*>+lXrVe9(yKb`Q4}1MY4SEKDRCHK2kLW)MM**Bji^mKwn$tqDYEURA1%Z@2jt_t}Y3?-wmQ$BaJ0trki4$8)kcb#bx-{U(DN_U`~zO zx6NG`bcY7rm2Kp?N12R`(v*`iivLXHKllIx{zW49iS=#nFMTFrPEaB#NA*9xJa;^@ zxGsw=`}lI!|GKP5xFkGzQ&ZSo9(0c~k*OsGLAN=A?q`^#ZTA@>C*xY%TVo{?S& zxg*_t6W?tKrrqJ`BEsBjHw4|kIA4GNS0~usP|eYMuBn{6e|`Pi3r#gW#h7Y}ZFKkg zKZW_2yr_Lr2!>(u^im8f_tN@JZofA<%swk|`yw1hV(@Ol-TY^(VdNRcJ-A;~wJkV$ z?QF-j*_xs~+|V;X3@D1g$?6nACB4Sfp3SsHA} z{mFT5-+God1$FqHuihQ(a~qBAXf!4y>^``@-u)lnZWtwYhyIPYC!=e2mvDr^Bt5X9 z&Fxp;L}Rcb==~dUPYk+4c2}3ckQIlk#=3(dQ>)w)>)pdw&>D^@FD@S$S_CP(oBeI2 z?vThH_qckuV0YEzY3^12h+*>EPhT5GXVbDNuv*mdO}?O8_@w*bx;FPA zUj*|Hbm7Sy_voN|>lH=_TlO@~x1xtNi%f%(7em8;pB-5oE*T4BKbcm<&jEZZvOkm+ z!FC21=S;6Me2DOR@IT3lG|^W1M{xl8M~+Q}UWw3uWQ4jmZ-_M2OhQcG7&ndxcVtEO zK;~r3wD$YI0{p01iE$;8u*O!JSyZMo4>O!SsVLif) zi{PUnMKwN;ht}2E)H&|`8+MbPtGmU{2VDjW5NdTjd_pHgXJ-p{9*6s-=&* zLq09tTsnpGC(M$&tZh+gF~`n=$t=!2Ww(3h6(+ONCMN%ZkBw|}&kDLbd{4Ti#?+NI zmb%00pO|7&jH`!9cDG+%j~cs4f25(TI5aU-7CJ8+cFQ6i6T{UL!|vjG-Q4WYJy<>p z|24Y(>pMc#h};MjtaAHu=(?u{LyJR;Aq8d)mu0#z)YKH3G$tILih5Us7Kw|YS=|t> zGW9^}VzB+j(i+?Br>eV=95@dXgYJTQC>zuz)K)SX1>L$K5}IO^+8tA0=I+?gRx`40 z3|rtv1{If0#khUh*Nf;hQ*u605jtbJ(;9whVW@}8itdrYVf1Ztl ziEF?�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%0D!p$o z%qleQk|EnrTH-6 zy$+MnG{YQg4nXY^EC9AwD7MRpf$f!wEq^^jv(HRjRekFe+dnWT*iKVy z@S0B8PFMJuzvSE7E^d(WfbaK52h~hd*Ma=xH`3*s1S>H9T?(MbVA5g3_0&hHn%p9aZ=ziV~@CK@vs!NxC=>W&q&m~|22 zbfd&nC4U0E*9zLxa_HO~sg|HwMC!_2rYgs`Qr%L>)Ctsj&qG%mqYC$ipsdX0x> zSVT6JrAB4p4*)Vtt;#YDSg&2o(OhMib5tCEa-(;1wP7|XlpC|Xn+F+YLZL4Z<+h1A zSK+?}ehN2A%y|mu{vki7uZHo5o*IClX`X%qM!e7_jTmMp^EB)~+u@V3818IF{F^WK zKg;b)tFO_a!-Yt|4vhq%HRnXb4xiuQf)1nM?)y3-3mgdo;(^l*f}m-R?!uK&Ss&m7 zks~Cfd`#}p#k9j6d?dn5xUbWrI21}g0ccP&AR3lblqA|wmF<9ZAInB0v!r(FYM$Y$ zC74eM(uKGdrMy^BG3{DuUgT=FXSl3)%+GQs`iinxP{Bz+MHZsnI+znxw(diYiSGea zbi!;WcYsbiqZxaa#6$L8EROb)!jPG{PmxT5MvH>^N(Jj9f=RAZMKD1tG)LB;ZwWc@ zJnbvwLd5MoAP?(s)c`;_<1L zF=WGoh%@hY6@c2r?gaQTpEaFunPLq z2Cx>74}31_u|Z-nEPX{8B~et9)t$6Ap%{h zs-#r0LhTHyic)gRdITN{Ke%1^?ckKbQ__+pQB3(%rCxIcpqt`;4MOVUWyDoS$qh^g z6+>o_e1fdZZyFN_zQDt1LS1SCLh4gmsx*$-N}GmihjmH{9-(eCd8&Z!qpoHxd&|-gEkPZRpG%K z2(>iDhTB!7rex(2e>6qA2t~0!k&NW!sgH3JKobY0y{Ns20$==3IE0Q$p3LfL+LPO9 zPxcB$kg2aK^j!tH?1H@v1sJ7+r8zanqJ_5?uG&ylEKwYc$W^yxu_|5^tMVd}DN)HF z!{iBg{Kiej0;Bf^hDjlS{_kf55nZNO?OBLw!Bf(A76Wa=V;OU62vaI~{6+v>xY)Xh zVpOrSGinVUiufSlW<2QZo*KBwsZvoB2!`UZjTUnQ15`Ddur%u?WGAKe8av7jU@UU`(LB({uTjXD?+#aNUp>kGjaFEQi7$u#F$%pZj3=g!> z5Ad)96VmHOxSLlarXR)wDn|gy9TntSi9h^^SS~$w=pa`KU+Cahi;rXRh)NyD;x#(h zUVL18@uEEikx8>WCW_xZfqn>v;IWOl<^~3aYQ);WKuja{1_sEnM57*Ewo`j@(IDEB z6N^fbIia%Y(#0X8 z5hW9Nq{0j`$MF?@5pg^4l<;NL2Re#iA0Aa<2H4)mWo2oK*q&Sz(Id{;huL)LVkg~I zj4F19!-)Cmvb7)Q_(j}nK0s79;}4D{28y@3JtiQ|ZnE(L8*E(+?grJ&5F zOBaoYXpJHm=W3Owv(SsUP~5A7TWD3!K7Vy%8j}3mPhp+ zb=uIrb4?xUQ}iI)kb{Lwd>ckRsG^F)=2Jj5`C>b;kd7)E`r~K=coO(*JOv)pNe~ZL zeBj0)UK*m_c?hm=7#YOz2f zu=c#D$M_Wzh|EX!sko5sH-Zx#JV?DLDkcNZOR`k^&w|!AHa1P0Dv|$?NOk?#)I<{n z;X7*5SMU~Lixk0K~c7141s z5I4PPeqCd|!6Q&b`U!*Qj7y0n44&jFQcI}IZi&kMPCV_M<#{5i7-{gxU=d3gJjql

eMePfnG_8$6BF9x>F*$J0n9(FR{UX`I^A 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 Phx>a0uHWAaaDD#^SC3CH literal 0 HcmV?d00001 diff --git a/fb2png/log.h b/fb2png/log.h new file mode 100644 index 00000000..96e90d79 --- /dev/null +++ b/fb2png/log.h @@ -0,0 +1,85 @@ +/** + * fb2png Save screenshot into .png. + * + * Copyright (C) 2012 Kyan + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +#ifndef __KYAN_LOG_H__ +#define __KYAN_LOG_H__ + +#include + +#ifdef ANDROID_XXX + +#ifndef LOG_TAG +#define LOG_TAG "tag" +#endif + +#include + +#define D LOGD +#define E LOGE + +#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__) +#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , LOG_TAG, __VA_ARGS__) +#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , LOG_TAG, __VA_ARGS__) +#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , LOG_TAG, __VA_ARGS__) +#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , LOG_TAG, __VA_ARGS__) + +#else /* ANDROID */ + +#include +#include +#include + +#if DEBUG == 1 + +#define LOG_FUNCTION_NAME \ + fprintf(stderr, "\033[0;1;31m__func__: %s\033[0;0m\n", __FUNCTION__); + +#else + +#define LOG_FUNCTION_NAME + +#endif + +static void +D(const char *msg, ...) +{ + va_list ap; + + va_start (ap, msg); + vfprintf(stdout, msg, ap); + fprintf(stdout, "\n"); + va_end (ap); + fflush(stdout); +} + +static void +E(const char *msg, ...) +{ + va_list ap; + + va_start (ap, msg); + vfprintf(stderr, msg, ap); + fprintf(stderr, ", %s", strerror(errno)); + fprintf(stderr, "\n"); + va_end (ap); +} + +#endif /* ANDROID */ + +#endif diff --git a/fb2png/main.c b/fb2png/main.c new file mode 100644 index 00000000..84e08a96 --- /dev/null +++ b/fb2png/main.c @@ -0,0 +1,61 @@ +/** + * fb2png Save screenshot into .png. + * + * Copyright (C) 2012 Kyan + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +#include +#include +#include +#include "fb2png.h" + +#ifdef ANDROID + #define DEFAULT_SAVE_PATH "/data/local/fbdump.png" +#else + #define DEFAULT_SAVE_PATH "fbdump.png" +#endif + +int main(int argc, char *argv[]) +{ + char fn[PATH_MAX]; + int ret; + + if (argc == 2 && argv[1][0] != '-') { + if (strlen(argv[1]) >= PATH_MAX) { + printf("Output path is too long!\n"); + exit(-1); + } + sprintf(fn, "%s", argv[1]); + } else if (argc == 1) { + sprintf(fn, "%s", DEFAULT_SAVE_PATH); + } else { + //if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")) + printf( + "Android Screenshooter - fb2png\n" + "Author: Kyan He \n" + "Modified by Phil3759 & McKael @xda\n" + "Base version 0.0.2 ---> v0.0.5 <2013>\n" + "Usage: fb2png [path/to/output.png]\n" + " The default output path is /data/local/fbdump.png\n" + ); + exit(0); + } + + if (0 == (ret = fb2png(fn))) + printf("Saved image to %s\n", fn); + + exit(ret); +} diff --git a/fb2png/run.sh b/fb2png/run.sh new file mode 100644 index 00000000..e7e03544 --- /dev/null +++ b/fb2png/run.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# +# helper script for capture picture on device +# +# Kyan He @ Tue Feb 15 12:42:48 CST 2011 +# +# + +ADB_OPTIONS= +PNG="/data/local/fbdump.png" + +if [ ! "$FB2PNG" = "" ]; +then + +adb $ADB_OPTIONS push $FB2PNG /data/local +adb $ADB_OPTIONS shell chmod 777 /data/local +adb $ADB_OPTIONS shell /data/local/fb2png + +adb $ADB_OPTIONS pull $PNG +adb $ADB_OPTIONS shell rm $PNG +else + echo "define \$FB2PNG first" +fi diff --git a/fb2png/view888 b/fb2png/view888 new file mode 100644 index 00000000..6e10dcd2 --- /dev/null +++ b/fb2png/view888 @@ -0,0 +1,21 @@ +#!/bin/sh +# +# view argb8888 +# +# Modified: +# Kyan He @ Tue Feb 15 01:45:54 CST 2011 +# +# Initial version +# Kyan He @ Mon Sep 20 11:45:54 CST 2010 +# + +if ! which ffmpeg >/dev/null; +then + echo "no ffmpeg found" +elif [[ ! $# -eq 2 ]]; +then + echo "Usage: `basename $0` x" +else + ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt rgb24 -s $2 -i $1 -f image2 -vcodec png $1.png +fi +