From 2faf524b850959c28fdda19998bdc291a0380415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Novomesk=C3=BD?= Date: Mon, 13 Jul 2026 19:38:22 +0200 Subject: [PATCH] More HEIF-related tests. New option `KIMAGEFORMATS_HEIC_TEST` for testing images with HEVC codec only. Existing option `KIMAGEFORMATS_HEIF_TEST` is used for testing other possible (mostly quite rare) codecs that might be used by HEIF images - uncompressed, deflate, zlib, brotli, jpeg. --- .kde-ci.yml | 2 +- CMakeLists.txt | 6 ++++-- README.md | 8 +++++++- autotests/CMakeLists.txt | 14 ++++++++++---- .../crop_orientation1.heic} | Bin .../read/{heif => heic}/crop_orientation1.png | Bin .../crop_orientation2.heic} | Bin .../read/{heif => heic}/crop_orientation2.png | Bin .../crop_orientation3.heic} | Bin .../read/{heif => heic}/crop_orientation3.png | Bin .../crop_orientation4.heic} | Bin .../read/{heif => heic}/crop_orientation4.png | Bin .../crop_orientation5.heic} | Bin .../read/{heif => heic}/crop_orientation5.png | Bin .../crop_orientation6.heic} | Bin .../read/{heif => heic}/crop_orientation6.png | Bin .../crop_orientation7.heic} | Bin .../read/{heif => heic}/crop_orientation7.png | Bin .../crop_orientation8.heic} | Bin .../read/{heif => heic}/crop_orientation8.png | Bin .../{heif/metadata.heif => heic/metadata.heic} | Bin .../metadata.heic.json} | 0 autotests/read/{heif => heic}/metadata.png | Bin .../orientation1.heic} | Bin .../orientation1.heic.json} | 0 .../orientation2.heic} | Bin .../orientation2.heic.json} | 0 .../orientation3.heic} | Bin .../orientation3.heic.json} | 0 .../orientation4.heic} | Bin .../orientation4.heic.json} | 0 .../orientation5.heic} | Bin .../orientation5.heic.json} | 0 .../orientation6.heic} | Bin .../orientation6.heic.json} | 0 .../orientation7.heic} | Bin .../orientation7.heic.json} | 0 .../orientation8.heic} | Bin .../orientation8.heic.json} | 0 .../read/{heif => heic}/orientation_all.png | Bin .../read/{heif/rgb.heif => heic/rgb.heic} | Bin autotests/read/{heif => heic}/rgb.png | Bin .../read/{heif/rgba.heif => heic/rgba.heic} | Bin autotests/read/{heif => heic}/rgba.png | Bin autotests/read/heif/brotli.heif | Bin 0 -> 10515 bytes autotests/read/heif/brotli.png | Bin 0 -> 11122 bytes autotests/read/heif/deflate.heif | Bin 0 -> 5789 bytes autotests/read/heif/deflate.png | Bin 0 -> 4794 bytes autotests/read/heif/jpeg.heif | Bin 0 -> 21828 bytes autotests/read/heif/jpeg.heif.json | 7 +++++++ autotests/read/heif/jpeg.png | Bin 0 -> 20498 bytes autotests/read/heif/uncompressed.heif | Bin 0 -> 148391 bytes autotests/read/heif/uncompressed.png | Bin 0 -> 11902 bytes autotests/read/heif/zlib.heif | Bin 0 -> 9118 bytes autotests/read/heif/zlib.png | Bin 0 -> 8560 bytes 55 files changed, 29 insertions(+), 8 deletions(-) rename autotests/read/{heif/crop_orientation1.heif => heic/crop_orientation1.heic} (100%) rename autotests/read/{heif => heic}/crop_orientation1.png (100%) rename autotests/read/{heif/crop_orientation2.heif => heic/crop_orientation2.heic} (100%) rename autotests/read/{heif => heic}/crop_orientation2.png (100%) rename autotests/read/{heif/crop_orientation3.heif => heic/crop_orientation3.heic} (100%) rename autotests/read/{heif => heic}/crop_orientation3.png (100%) rename autotests/read/{heif/crop_orientation4.heif => heic/crop_orientation4.heic} (100%) rename autotests/read/{heif => heic}/crop_orientation4.png (100%) rename autotests/read/{heif/crop_orientation5.heif => heic/crop_orientation5.heic} (100%) rename autotests/read/{heif => heic}/crop_orientation5.png (100%) rename autotests/read/{heif/crop_orientation6.heif => heic/crop_orientation6.heic} (100%) rename autotests/read/{heif => heic}/crop_orientation6.png (100%) rename autotests/read/{heif/crop_orientation7.heif => heic/crop_orientation7.heic} (100%) rename autotests/read/{heif => heic}/crop_orientation7.png (100%) rename autotests/read/{heif/crop_orientation8.heif => heic/crop_orientation8.heic} (100%) rename autotests/read/{heif => heic}/crop_orientation8.png (100%) rename autotests/read/{heif/metadata.heif => heic/metadata.heic} (100%) rename autotests/read/{heif/metadata.heif.json => heic/metadata.heic.json} (100%) rename autotests/read/{heif => heic}/metadata.png (100%) rename autotests/read/{heif/orientation1.heif => heic/orientation1.heic} (100%) rename autotests/read/{heif/orientation1.heif.json => heic/orientation1.heic.json} (100%) rename autotests/read/{heif/orientation2.heif => heic/orientation2.heic} (100%) rename autotests/read/{heif/orientation2.heif.json => heic/orientation2.heic.json} (100%) rename autotests/read/{heif/orientation3.heif => heic/orientation3.heic} (100%) rename autotests/read/{heif/orientation3.heif.json => heic/orientation3.heic.json} (100%) rename autotests/read/{heif/orientation4.heif => heic/orientation4.heic} (100%) rename autotests/read/{heif/orientation4.heif.json => heic/orientation4.heic.json} (100%) rename autotests/read/{heif/orientation5.heif => heic/orientation5.heic} (100%) rename autotests/read/{heif/orientation5.heif.json => heic/orientation5.heic.json} (100%) rename autotests/read/{heif/orientation6.heif => heic/orientation6.heic} (100%) rename autotests/read/{heif/orientation6.heif.json => heic/orientation6.heic.json} (100%) rename autotests/read/{heif/orientation7.heif => heic/orientation7.heic} (100%) rename autotests/read/{heif/orientation7.heif.json => heic/orientation7.heic.json} (100%) rename autotests/read/{heif/orientation8.heif => heic/orientation8.heic} (100%) rename autotests/read/{heif/orientation8.heif.json => heic/orientation8.heic.json} (100%) rename autotests/read/{heif => heic}/orientation_all.png (100%) rename autotests/read/{heif/rgb.heif => heic/rgb.heic} (100%) rename autotests/read/{heif => heic}/rgb.png (100%) rename autotests/read/{heif/rgba.heif => heic/rgba.heic} (100%) rename autotests/read/{heif => heic}/rgba.png (100%) create mode 100644 autotests/read/heif/brotli.heif create mode 100644 autotests/read/heif/brotli.png create mode 100644 autotests/read/heif/deflate.heif create mode 100644 autotests/read/heif/deflate.png create mode 100644 autotests/read/heif/jpeg.heif create mode 100644 autotests/read/heif/jpeg.heif.json create mode 100644 autotests/read/heif/jpeg.png create mode 100644 autotests/read/heif/uncompressed.heif create mode 100644 autotests/read/heif/uncompressed.png create mode 100644 autotests/read/heif/zlib.heif create mode 100644 autotests/read/heif/zlib.png diff --git a/.kde-ci.yml b/.kde-ci.yml index 523d120..926db59 100644 --- a/.kde-ci.yml +++ b/.kde-ci.yml @@ -7,5 +7,5 @@ Dependencies: Options: test-before-installing: True require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows'] - cmake-options: "-DKIMAGEFORMATS_WITH_KNOWN_CRASHES_JXR=ON -DKIMAGEFORMATS_HEIF=ON -DKIMAGEFORMATS_HEIF_TEST:STRING=OFF -DKIMAGEFORMATS_HEJ2_TEST:STRING=OFF -DKIMAGEFORMATS_AVCI_TEST:STRING=OFF" + cmake-options: "-DKIMAGEFORMATS_WITH_KNOWN_CRASHES_JXR=ON -DKIMAGEFORMATS_HEIF=ON -DKIMAGEFORMATS_HEIC_TEST:STRING=OFF -DKIMAGEFORMATS_HEIF_TEST:STRING=OFF -DKIMAGEFORMATS_HEJ2_TEST:STRING=OFF -DKIMAGEFORMATS_AVCI_TEST:STRING=OFF" per-test-timeout: 90 diff --git a/CMakeLists.txt b/CMakeLists.txt index 70eb6f2..30743f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,8 +65,10 @@ set_package_properties(libavif PROPERTIES option(KIMAGEFORMATS_DDS "Enable plugin for DDS format" ON) option(KIMAGEFORMATS_HEIF "Enable plugin for HEIF format" OFF) -set(KIMAGEFORMATS_HEIF_TEST "ALL" CACHE STRING "Enable HEIF tests: OFF, READ_ONLY, ALL") -set_property(CACHE KIMAGEFORMATS_HEIF_TEST PROPERTY STRINGS "OFF" "READ_ONLY" "ALL") +set(KIMAGEFORMATS_HEIC_TEST "ALL" CACHE STRING "Enable HEIC tests: OFF, READ_ONLY, ALL") +set_property(CACHE KIMAGEFORMATS_HEIC_TEST PROPERTY STRINGS "OFF" "READ_ONLY" "ALL") +set(KIMAGEFORMATS_HEIF_TEST "ALL" CACHE STRING "Enable HEIF tests: OFF, ALL") +set_property(CACHE KIMAGEFORMATS_HEIF_TEST PROPERTY STRINGS "OFF" "ALL") set(KIMAGEFORMATS_HEJ2_TEST "ALL" CACHE STRING "Enable HEJ2 tests: OFF, READ_ONLY, ALL") set_property(CACHE KIMAGEFORMATS_HEJ2_TEST PROPERTY STRINGS "OFF" "READ_ONLY" "ALL") set(KIMAGEFORMATS_AVCI_TEST "ALL" CACHE STRING "Enable AVCI tests: OFF, ALL") diff --git a/README.md b/README.md index be305a7..6b37ef4 100644 --- a/README.md +++ b/README.md @@ -357,12 +357,18 @@ plugin: **If you are interested in compiling the plugin without running the tests, also use the following string options:** -- `KIMAGEFORMATS_HEIF_TEST` to change the behaviour of HEIF tests. Set to +- `KIMAGEFORMATS_HEIC_TEST` to change the behaviour of HEIC tests. Set to `"OFF"` (no test at all) or `"READ_ONLY"` (run read tests only). +Required codecs: HEVC / H.265. +- `KIMAGEFORMATS_HEIF_TEST` to change the behaviour of HEIF tests. Set to +`"OFF"` (no test at all). +Required codecs: uncompressed, deflate, zlib, brotli, jpeg. - `KIMAGEFORMATS_HEJ2_TEST` to change the behaviour of HEJ2 tests. Set to `"OFF"` (no test at all) or `"READ_ONLY"` (run read tests only). +Required codecs: JPEG 2000. - `KIMAGEFORMATS_AVCI_TEST` to change the behaviour of AVCI tests. Set to `"OFF"` (no test at all). +Required codecs: Advanced Video Coding / H.264. ### The EXR plugin diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index 1558c54..2ee89c0 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -119,15 +119,21 @@ if (TARGET avif) endif() if (LibHeif_FOUND) - if (KIMAGEFORMATS_HEIF_TEST STREQUAL "ALL" OR KIMAGEFORMATS_HEIF_TEST STREQUAL "READ_ONLY") + if (KIMAGEFORMATS_HEIC_TEST STREQUAL "ALL" OR KIMAGEFORMATS_HEIC_TEST STREQUAL "READ_ONLY") kimageformats_read_tests( - heif + heic ) endif() - if (KIMAGEFORMATS_HEIF_TEST STREQUAL "ALL") + if (KIMAGEFORMATS_HEIC_TEST STREQUAL "ALL") # because the plug-ins use RGB->YUV conversion which sometimes results in 1 value difference. kimageformats_write_tests(FUZZ 1 - heif-nodatacheck-lossless + heic-nodatacheck-lossless + ) + endif() + + if (KIMAGEFORMATS_HEIF_TEST STREQUAL "ALL") + kimageformats_read_tests( + heif ) endif() diff --git a/autotests/read/heif/crop_orientation1.heif b/autotests/read/heic/crop_orientation1.heic similarity index 100% rename from autotests/read/heif/crop_orientation1.heif rename to autotests/read/heic/crop_orientation1.heic diff --git a/autotests/read/heif/crop_orientation1.png b/autotests/read/heic/crop_orientation1.png similarity index 100% rename from autotests/read/heif/crop_orientation1.png rename to autotests/read/heic/crop_orientation1.png diff --git a/autotests/read/heif/crop_orientation2.heif b/autotests/read/heic/crop_orientation2.heic similarity index 100% rename from autotests/read/heif/crop_orientation2.heif rename to autotests/read/heic/crop_orientation2.heic diff --git a/autotests/read/heif/crop_orientation2.png b/autotests/read/heic/crop_orientation2.png similarity index 100% rename from autotests/read/heif/crop_orientation2.png rename to autotests/read/heic/crop_orientation2.png diff --git a/autotests/read/heif/crop_orientation3.heif b/autotests/read/heic/crop_orientation3.heic similarity index 100% rename from autotests/read/heif/crop_orientation3.heif rename to autotests/read/heic/crop_orientation3.heic diff --git a/autotests/read/heif/crop_orientation3.png b/autotests/read/heic/crop_orientation3.png similarity index 100% rename from autotests/read/heif/crop_orientation3.png rename to autotests/read/heic/crop_orientation3.png diff --git a/autotests/read/heif/crop_orientation4.heif b/autotests/read/heic/crop_orientation4.heic similarity index 100% rename from autotests/read/heif/crop_orientation4.heif rename to autotests/read/heic/crop_orientation4.heic diff --git a/autotests/read/heif/crop_orientation4.png b/autotests/read/heic/crop_orientation4.png similarity index 100% rename from autotests/read/heif/crop_orientation4.png rename to autotests/read/heic/crop_orientation4.png diff --git a/autotests/read/heif/crop_orientation5.heif b/autotests/read/heic/crop_orientation5.heic similarity index 100% rename from autotests/read/heif/crop_orientation5.heif rename to autotests/read/heic/crop_orientation5.heic diff --git a/autotests/read/heif/crop_orientation5.png b/autotests/read/heic/crop_orientation5.png similarity index 100% rename from autotests/read/heif/crop_orientation5.png rename to autotests/read/heic/crop_orientation5.png diff --git a/autotests/read/heif/crop_orientation6.heif b/autotests/read/heic/crop_orientation6.heic similarity index 100% rename from autotests/read/heif/crop_orientation6.heif rename to autotests/read/heic/crop_orientation6.heic diff --git a/autotests/read/heif/crop_orientation6.png b/autotests/read/heic/crop_orientation6.png similarity index 100% rename from autotests/read/heif/crop_orientation6.png rename to autotests/read/heic/crop_orientation6.png diff --git a/autotests/read/heif/crop_orientation7.heif b/autotests/read/heic/crop_orientation7.heic similarity index 100% rename from autotests/read/heif/crop_orientation7.heif rename to autotests/read/heic/crop_orientation7.heic diff --git a/autotests/read/heif/crop_orientation7.png b/autotests/read/heic/crop_orientation7.png similarity index 100% rename from autotests/read/heif/crop_orientation7.png rename to autotests/read/heic/crop_orientation7.png diff --git a/autotests/read/heif/crop_orientation8.heif b/autotests/read/heic/crop_orientation8.heic similarity index 100% rename from autotests/read/heif/crop_orientation8.heif rename to autotests/read/heic/crop_orientation8.heic diff --git a/autotests/read/heif/crop_orientation8.png b/autotests/read/heic/crop_orientation8.png similarity index 100% rename from autotests/read/heif/crop_orientation8.png rename to autotests/read/heic/crop_orientation8.png diff --git a/autotests/read/heif/metadata.heif b/autotests/read/heic/metadata.heic similarity index 100% rename from autotests/read/heif/metadata.heif rename to autotests/read/heic/metadata.heic diff --git a/autotests/read/heif/metadata.heif.json b/autotests/read/heic/metadata.heic.json similarity index 100% rename from autotests/read/heif/metadata.heif.json rename to autotests/read/heic/metadata.heic.json diff --git a/autotests/read/heif/metadata.png b/autotests/read/heic/metadata.png similarity index 100% rename from autotests/read/heif/metadata.png rename to autotests/read/heic/metadata.png diff --git a/autotests/read/heif/orientation1.heif b/autotests/read/heic/orientation1.heic similarity index 100% rename from autotests/read/heif/orientation1.heif rename to autotests/read/heic/orientation1.heic diff --git a/autotests/read/heif/orientation1.heif.json b/autotests/read/heic/orientation1.heic.json similarity index 100% rename from autotests/read/heif/orientation1.heif.json rename to autotests/read/heic/orientation1.heic.json diff --git a/autotests/read/heif/orientation2.heif b/autotests/read/heic/orientation2.heic similarity index 100% rename from autotests/read/heif/orientation2.heif rename to autotests/read/heic/orientation2.heic diff --git a/autotests/read/heif/orientation2.heif.json b/autotests/read/heic/orientation2.heic.json similarity index 100% rename from autotests/read/heif/orientation2.heif.json rename to autotests/read/heic/orientation2.heic.json diff --git a/autotests/read/heif/orientation3.heif b/autotests/read/heic/orientation3.heic similarity index 100% rename from autotests/read/heif/orientation3.heif rename to autotests/read/heic/orientation3.heic diff --git a/autotests/read/heif/orientation3.heif.json b/autotests/read/heic/orientation3.heic.json similarity index 100% rename from autotests/read/heif/orientation3.heif.json rename to autotests/read/heic/orientation3.heic.json diff --git a/autotests/read/heif/orientation4.heif b/autotests/read/heic/orientation4.heic similarity index 100% rename from autotests/read/heif/orientation4.heif rename to autotests/read/heic/orientation4.heic diff --git a/autotests/read/heif/orientation4.heif.json b/autotests/read/heic/orientation4.heic.json similarity index 100% rename from autotests/read/heif/orientation4.heif.json rename to autotests/read/heic/orientation4.heic.json diff --git a/autotests/read/heif/orientation5.heif b/autotests/read/heic/orientation5.heic similarity index 100% rename from autotests/read/heif/orientation5.heif rename to autotests/read/heic/orientation5.heic diff --git a/autotests/read/heif/orientation5.heif.json b/autotests/read/heic/orientation5.heic.json similarity index 100% rename from autotests/read/heif/orientation5.heif.json rename to autotests/read/heic/orientation5.heic.json diff --git a/autotests/read/heif/orientation6.heif b/autotests/read/heic/orientation6.heic similarity index 100% rename from autotests/read/heif/orientation6.heif rename to autotests/read/heic/orientation6.heic diff --git a/autotests/read/heif/orientation6.heif.json b/autotests/read/heic/orientation6.heic.json similarity index 100% rename from autotests/read/heif/orientation6.heif.json rename to autotests/read/heic/orientation6.heic.json diff --git a/autotests/read/heif/orientation7.heif b/autotests/read/heic/orientation7.heic similarity index 100% rename from autotests/read/heif/orientation7.heif rename to autotests/read/heic/orientation7.heic diff --git a/autotests/read/heif/orientation7.heif.json b/autotests/read/heic/orientation7.heic.json similarity index 100% rename from autotests/read/heif/orientation7.heif.json rename to autotests/read/heic/orientation7.heic.json diff --git a/autotests/read/heif/orientation8.heif b/autotests/read/heic/orientation8.heic similarity index 100% rename from autotests/read/heif/orientation8.heif rename to autotests/read/heic/orientation8.heic diff --git a/autotests/read/heif/orientation8.heif.json b/autotests/read/heic/orientation8.heic.json similarity index 100% rename from autotests/read/heif/orientation8.heif.json rename to autotests/read/heic/orientation8.heic.json diff --git a/autotests/read/heif/orientation_all.png b/autotests/read/heic/orientation_all.png similarity index 100% rename from autotests/read/heif/orientation_all.png rename to autotests/read/heic/orientation_all.png diff --git a/autotests/read/heif/rgb.heif b/autotests/read/heic/rgb.heic similarity index 100% rename from autotests/read/heif/rgb.heif rename to autotests/read/heic/rgb.heic diff --git a/autotests/read/heif/rgb.png b/autotests/read/heic/rgb.png similarity index 100% rename from autotests/read/heif/rgb.png rename to autotests/read/heic/rgb.png diff --git a/autotests/read/heif/rgba.heif b/autotests/read/heic/rgba.heic similarity index 100% rename from autotests/read/heif/rgba.heif rename to autotests/read/heic/rgba.heic diff --git a/autotests/read/heif/rgba.png b/autotests/read/heic/rgba.png similarity index 100% rename from autotests/read/heif/rgba.png rename to autotests/read/heic/rgba.png diff --git a/autotests/read/heif/brotli.heif b/autotests/read/heif/brotli.heif new file mode 100644 index 0000000000000000000000000000000000000000..f80e7c6837e3f5b36121bf82b83836dc1a32a7af GIT binary patch literal 10515 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 literal 0 HcmV?d00001 diff --git a/autotests/read/heif/brotli.png b/autotests/read/heif/brotli.png new file mode 100644 index 0000000000000000000000000000000000000000..773d1ca91dc603e0a9ea098dac4f8c84c6c7496f GIT binary patch literal 11122 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 G$o~PpqU-el literal 0 HcmV?d00001 diff --git a/autotests/read/heif/deflate.heif b/autotests/read/heif/deflate.heif new file mode 100644 index 0000000000000000000000000000000000000000..6ee7104ccc0416aad1ae89d0960770e37d81fb5c GIT binary patch literal 5789 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 C#LvF~ literal 0 HcmV?d00001 diff --git a/autotests/read/heif/deflate.png b/autotests/read/heif/deflate.png new file mode 100644 index 0000000000000000000000000000000000000000..080113d8fe5edd78d30770e0da17905205d61dd2 GIT binary patch literal 4794 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 literal 0 HcmV?d00001 diff --git a/autotests/read/heif/jpeg.heif b/autotests/read/heif/jpeg.heif new file mode 100644 index 0000000000000000000000000000000000000000..3faa016281716f58078da2f4d70193b8f3fe93a4 GIT binary patch literal 21828 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

h*_BxYyBaj?Za%uvr|d1KIn}o8 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 M{(q#Q`p?mS0cuJv9{>OV literal 0 HcmV?d00001 diff --git a/autotests/read/heif/jpeg.heif.json b/autotests/read/heif/jpeg.heif.json new file mode 100644 index 0000000..7c15475 --- /dev/null +++ b/autotests/read/heif/jpeg.heif.json @@ -0,0 +1,7 @@ +[ + { + "fileName" : "jpeg.png", + "fuzziness" : 1, + "description" : "Minimum fuzziness value to pass the test on all architectures." + } +] diff --git a/autotests/read/heif/jpeg.png b/autotests/read/heif/jpeg.png new file mode 100644 index 0000000000000000000000000000000000000000..d58b8203702d52bb463a0fac278c5b27ce8bb5a7 GIT binary patch literal 20498 zcmXtAcRZDE*grTp_A#Lgqn=?49hDO18?#EGuMXCR_I2`@Q_$ z_dWkqpO2pNJkNdK*Y#bOP(2+r5<+@H1Oh>#p{{IzKw!aNu@ES1_@f^!cMbj#{6tAf zPeVzG)yc)t>WSTB1cE2VH>UpPcX`HUGvhqAtFNul&TV>WE7@$3d9PJU^hOB_rQVnv z5xo`VxFQf4__VQ+CF~A9jr9X26I_K2{1AVP#Fc9G(21LbS1qI^*1p$xN7Z;>>hC@N zI6{eYyGyt)wDL_y@$1IBNb(j|B(X;4@3`bfu>x2jTqHU$&orjqcA15?`uFARc-Wc{zZSBPI|<_w2S_a4=6H{S~gh3YPti zD5*25Dod9;4Q-_u`rGP}EGJ}s9#5(B^T%@a7#Dm?SEHO+D~T%TznuEo{VAkm-5@r3 z!sK5_(CHgHzF-r>Zf?#{S-EDj#q3mt6E3|Nds)%|^RC_qIo`dHvemG0wWt2y-r#ua zB2IK(QKBOzNXa}~d1RS+eQkMdbwXtI%n#u`>hf`CTjT_RU`1#sE8O-RU47tTLNzp+ zK4SVX>5Cf@NkxukcwPI~$U>a!?fcLcch`t3T-RjiDRWwEyzH(uQ{?DtiDm{8y8pmq z;}y%@|6(_BdgfW5>b=&vQo_bMDeb@FI4r!&Ri2DCN%4}1)0qpWA zYL6e!?Jf_A2n$nCQtq#e%uMD>OG{G=n9$PD&@eNv&CRLAa&Xf{5wz`1A%_MBt*orL zxVioJMyx-7{!Hfj@k#$X?POt20fAqC|E9%}MIs8BBqb#`H#b>)cY2k6$}kle7J3~m z=AWLNNL-mh^(>i-r3gN#-supm_c@$P>N<*&JwMsDPJiCg(GeDR3I0E}VZrWnbJ)|N zqQ7;%-W?}uW@Z!X_2+)GZ86f!G@?&ENheuF(nK< zGyGd-w0U|aN=}SEBDJT2y8?@{&GvJ;jJJDxEGM^aItMDSdp?c>ULQa8%^4jYD#9AK zMGAWQrI{J_xc1w;2_tp_e0+RYuXc5H$+-RtH!c3UKQd5o7rxJk747r|XC9{lsd@9} zP@(aDJ9h?Vp~F%*rOWE`{j1br%@(Ei3k?efVzz&@v_vw97kTfmUA}yonVH!~HiH$_ z;#ognd-ckd_V#uSb@k!0$2Xrpmz*Op^W7Z?#3h;}W|Y7dWfw53llDJ55wZRi&2c5E zSTkt^dmhO8!=f}Lg(0Imze7d`&*YNZ((fmm)6I`s z!u1OVNPbqc|KJf2I9n<2t~*}4;Z`GNKf2RIBjSw%$!mf@@=f`K4V@560) zDD%BHT~^V45~}zToT}lpo4;q+pk}KXNU9MsgmDkHhp}32W+q3-*v8P9rE*Z87_I~Sbyq1|0|6yBKg%6;w-n( z+^F2D>-8nR$?jV3{YVzMbV~L}gmzGWzHStYTwQLiGH=4mmoGIrC{)8T%JyEpeCfB- ztM<3X!`ft*;qtOrO2p~F>G8g9hAflA-?P)>44*9xomdHMX{t|#%djmPvYp)BBSS(E zIV{Sl7AKk9c?OF&*1w6^{^rrt`gd6pvH#)$0|y6(R=PA@WL#VvJ{fZ-0i_y7waKFN z(0c?QYx@xRNhb#-##K@go*+e2plr$70M(a7E^*ZHCcHPZ#M zIlU~GF6}NA6lYh;3ZzB2+mA>#Y%NjhN<07Sq?0h@O@QwT3k{vh{Yav)VUy?oxBA)5 zME=VtHa50w9_@KYy(dM;*yEoi`tB z&X8l-K7HC6!Qipbll3d@hHGH+6U*!XoN0*|9yU4|=;`UHKRe>%;CK;tH4<>$|zb2~k{P7HOXKJ@SKwtBl>Tz$&>v&JJbJ27Ke9fH7y z?ZC3KvUK0Qk>mY!*Xd?*3>J-`DWj~9#1EgAa5{D>LKQahkQ#N4?C8t<{B~1K!Gytq z`fp?8Z{=p3c4?yu2I!fYNs;JKNH7UpOC!{3!CpsQA59oit6sy zl_Q~uGW0b$3RZlmto)-hS)|#*IjCthBv#t2+la}`B%hkXRz*NO{{TiJJnPUm|Vz!x5 zYn@ylwG#`FXN_ymHMk=D3aUK~zma?~&t#8RkIO^7f`OyCB(t-v4nZGT|G`i9Y(J0M zepal*iE1ssU&u4oKC}6)wpJ~QnPf`G$BY`6jUn7_+V7)`8jBqFFG@8r z+lLmVv_*==Lr@X}S@+id^2N2+9WC*-{IDa9BF8#|?Vooui2}K~)2|ChH5)@Fuy0kK z%%MR>78S#;)->A9^Vw56U5B7$SnkorE0w|3+83zMaacwZ6BFod8nG|tSoQ>n@q&77 zI8YXUzSvWQ&V~ur>G39{Hpsj~R=Upra_yE;Ln}|z`NB~pp4N%+<5@BIaQpj95~aSV zME}>Bw>Z)_htpl0(0j6qSDGqD?AF$x&CQ9Wkf0DW!8RC)jS=gN_Bj`wf6O;n((cjC zB!OC}!cu9GaaFC6h(BK)&lmGE4t&n)&rcnbwO(?hQykNTDxV(h#&yiCoC!RB-h!Lv ze95uG>AU8-x~K*ZRnraU#iTQwWUZF@ZQXR~#p&s-wVL&^iqy#-QUa&Lt+|nMYf9ub zIGZ|YQrBMkBA_zxCcLId%p$4{3h;kTVJ_}SuRxJX(8C$rI-_w;qfVfnXON{=3C+Xd zZ*`$jX_KX}bL_s+0m7^HEQm~&6~zXdXX*C`G_S%#7NPh?%8i|!oxMFSBg&zLcha?( zu=L`8o_#4YcN&1Zyr4ONbP`}U(@0Tkq;-DQTq!(mE)Smhr+oC55ih5k|AEz5vLWBM33{+fB> zWoR^3%BhsJEYhiDIA6-I|DCzqdB7ZxLcT99R^vi9AGO+FPS#3HPuD@eC@yx?&}fI6 z%eb=CoVA)PFP5?j*W|x)Wpj5oP15z99uG3*Rr;o*D1BO5+TtKl9c~LPK^}u*e3YE! zSX}Rvm5+#)sR0j_4GYErJBEW`Diap?)r%Ky>*J@bEdEp|q={?Ro(5)nzPs3@DwZ__ zPAUKmBjJbJVL!}Eji?B59~UPH?C*&8ba{BoVuGfBHDP&cVbsb;h}%gu^C%`zIqGuR zKOz{!o0^(n*NAjWZyzle^Cf5&Rq1)NV@B-Gps=F?X@xD@CL4nqbxMr*ePk!>#MlE^ zQHuHf&pkcS6-|6CpEFA8JC21q{DX+(Zc4vq4av@CEBSZvQ1qB0By0oRE6l>lcK*`ikqIcdpL zOkg0kr$L@UX^Om)-h&7BpYKn7*;yJWfU8k*X-&Q*`pm*TY$;r5R-euqa_v!z8?1Zx z{4GW^*$hE63ILd|Z>@=dT2&m?X14Xm>r%)cw3mT37It45&QXhUnI2{qmDkk#30)kC-3Sos?AQ^B{gc;JUmq)y{n3DA z7@ql)@s_^MSDWQjroDGPS~xQl->j_I9f@ZC`^>c@?h7{(AUgN zbLe8+I;jhPz6x^3+Z*A$>G}sPK9Dsel#=`C;2_iK@*5d-)W?E?2vv5CSc}p(GCl3I z@s{C_q|Wl$JLG!xVi1Hu*jOACp&1!0zBq53?;7RzZ+c3{BZQqMyyZ` z`;M%1nraHb!Dp?0rOa|)+K8W;!#-MCD>fI}%1s6ZqTxTrxg!&gqSSZdBurI_X@cd( zE1iQ_LogUbb&tq9JdHeqT2r!jtgK>U)akF*25AILCTGhE-^$-`UtvXAz;i%hW8E~L zR@$MQ{qX4%@wbOgc*8Ryds?jS?5(Dr@x7lPi$7bj*ZJNE$cmSbk0205N}8z7A${Dy zo@G@|hpm9n)zy`gt3NsMVUEi0U*ytym-IRnC*^!ttcWwFvA=&4G&$=;qdAh((qz2%Rsg=!ef}}i<3-@KGJGwN6|T;Q zM(IV9=dxTq9~c<02_bsBOO(C6(d(O-kRGG6mwk+U$|c5D*kz?;d>5{c_d%tvTL-7q zNNdx-;gSFkPXlG1r}TJp7>#w;+g-pR&%L}{nnt|{^vul2_PQ}xIOd0Hd@{llBzQQQ zNJXJ!Et`$&IZ;oeaN_@3w3bg8eY0%Y9XGZ6Z7Iwo1fv;76T zTI9E_pM0?EgGLER3&RjVidoSX*w@BOnQpj;G*6Ss9w4?*lG0w-vvYIg$N+c$#Z8uq-3}XE z1%CB{0kH(D{9LI&43w&(@$)#EpNfi#va_+J{$lg;@|vIDEHw03`W@Q0Kv=KkJr1Qm z&z~hrZ#WYVaRQK$EoNc$>qHATg_GwG`iAcADCYA3T;^*5xT-ni9(Wv2ll5QTb?@PZaV1JFZK z9P0?Q7bT=Mv7sKJkyCSX!L9z2i0d-e_s+|JeF~xVVcg} zTelvG(l7ctJ(FUxJKXgA*4Cz8aq{P>WkgxsW+$o|NB*S$ZrCaH)R#drxf9j|O<)q8 zo?@g|l@aA5-~7-00$HVHWU@|hHRSluD@DaCza@8B6&ezqDlyS`?M2HSZ$;H3v(4__ zwT8{>jiEp~pBy+ZU{lf4^HLE$lX?*JfqLTl) zdlZoXs-8c8Zc#ei-cFz>&vOq8crif#0&XOPQ|dE)JsU}}yxc3E(j}EvR9DAL z|8;mdBd>pvlu-iF4NNO==g;zewY#_>IF;IM4%qr*PmdaZCh#5loB{T3yH4XJip0#J zr{#8bbPEP}DMA@5o?bZ(Tv}evN@0us*%xmoe++2YJ6eUch>0byT}%G})9jj8V& zIuWWkL8i>{h_>pWVT38oOGb<;C5EH@u9@$hEIncdv2e=eM0UiOZ>bS6vSCIp-mXWr zP3H8J$~B`lk8F-)r>L4lEJl?ZG&M8Kl8%lJhlW@r!klONoalpafIOy*p$Au%2MZPW z=7z`Gzpj)E8AHRJh#X=6Z0eC955q&Mj(qYy-NRD4t9*&1uOr@My_gxRa)rIhah8n0 zglFIfE3+veF>d;~KclU+lKg(gtpL>#Fe)*JdRSUon(Fj56%WDAK%*dvcuBFIqh3Fw zWfP6qvym_P_2!9Q02Fc1C@zgR%x}Z7eg9GXGisU4 zq2-H?1bBRBWh5?c-HIE*@hrev+fe3@8*6yO?3mi$`rb3Qn9RNanIU<=I3>(b zdvbhu2;1lkl{>xZiDtL(SZ3-a_Nw*!l`07=F)SoxQu*6+0>t->LPNflz^o0qJXEy6 zbVNzmf&->@Zo;&jH8J^l`07Mic{wE|<)(*X-AneHvX2=W2L>)(J$K6KiF{*N5d5!^ zLqjpxElAWxPh?^DC|ShX;m?;sfV-*j;y17=?q3xS(BnrvM}=RHm<{^Qj74v9#^8oP z@iSnPo%kQGe%*P1ozr`eiSyFe$A=Y*)G-*lb$55yt9IP>bJGt|R8%0Z4I_z@j1Wk2 z@V2gtipEp!{9{AR3Jv}KjakTSlSxOk3T%=s;h{+ebjx%jJe<%U2WzmtQ-{``Bt%!QMOLtp4DOicxF zYi5bd$MyXDsaa|i{)JzjtifLSANr9TQQ)&%j7&)h30)a-{-FQJ%F3ozip#*RqrGPF z<8XU^GpnkNpe2rG;iX>O8~Ggqi|~gmYA?;%>Bs8*{b3)Gm{tbKI>YVge?W7d-MW4I zwwYN}E{m59J891yteG{nAUp#Fg+{1sVh&?%*N1JXv7u$EKxpfckisa-d>NF67&YTw8Dr&p?YjYC9upNVD=QC zKsMm}gs>unW%bDHy>FSUZU!g@jg5_+pUlfm`0l6G)ZF0S(bhtg2oezy;o#t0sj26R zBM_YUVqGmAO~JYnZt&R}Te57AUHFaGJ3z&kXlQQu9qOqxc!~wGdhM@8(Bn>C?VXAo z`2Aa*gMyDF6CZ<9a*h~`nK8v;5_cT;S^YdTSZr2oSRh&DsEK`WbVPyFH!z?8iYs{T zDNc3t_V>bHMAI)Zr=W@c^sb;8P=kJTcKY<(Kpa2bkuXqJe(~xRe%%Q>mr>#1@=$Tk zDdo>3tUCxLQ4CJFKqJm!D^kIv&gU>fd>jN-k|7gR!1>fG7TMV=vo42)#$Suf>Pc(A zITN@#JL~f%gfqp`-B9kSK?&DII6n<9YkhH}at9$N)leAunnemVE ztZ%MArG9iykH#_)Q|f6`sxnx1BbRLh0Pavqg`l7l}p2nd?;z`iEUeKxlE~v5iDnIG`NuC)4#A$7! z-rvEY2=<9UWl6_(=1iL&ar3AEDU0QP6_%v4@bK`@Plx)B*ELJ#qr&3ZSUW|2co+^GiH?6j%P_sE0hVcXGH}S;cU!gVtl-O9lCK; zI=}HfPvdR$Bgd)y%KGp=$5JCudG`x43b@a1m_xD%$8nNICeEIrS{K(-z*&(It3&?!mzDc|5 zCi#|UHa(caR zHgA2_pX=IJP9Dd5BW?cep6*Zdi^#B0=*pe$L|<0o2@J7~0ZZ)cXjw2(hOp&5&&|}| zF*Z+v$Wei;ztUwoW;U61NkuuafT!(xox=P5ZF{|rqhrnm$jxi*Zgo6rnFe)4ixGFu zLJm$&ZzZ^7U=LhBEL<6@+Rj!9TZ!Nsw1w?ZlxJ-uu|P2FibLytB=w$d$II8x&+pEi zgaO-H&rLSsgXd!sJwFmBhy=fFG}D+Nk;qIc)>w}6vNARInX2-m2*=Hk&&`o z4+`hu;{$PG7}_SF^UbgK3J1ZdeAF8GY;8=EpFf;keg?QcISWe^y)QQSmhg}ZToE!^ z*3LLi=dlz+U-9GGsaRO*t-9!KW(F!)HMTwvnL^u0ky*WMVsZkqZNOKOV+8+0Z||4d zK?By|)(yJPpbvp|-q6tS_APy~79OR89u>pYJBy2pupJs38yT_a2||@AsHyjWS=frw z?`$^^UwEJ2)MNE82_3acU@hR0J(%wO2>TvbVv?ZQ+5UvTcvT0{8}P^8Tzj;lQ9oj5 zT55rtR~F9fWucGFPkQZPK0dq34p@ejzQ=oS-@g4i?p5&dBd?T{l#C3MZ{B#Vcm4jj zH%QXpGhXH4(c__Njbb4qA`0phh(tsL6c-n_TS|HF@rNs7QPI$Ntc}qnc$Lfslr12o z>vWQy{mdD$lLemx>JL)H?kx_yL0@px=+Y=9#!DW42ZeosMVX17Ngq4X(oMwSC)W% ze5+(*LcPMSdRzRABi0h6-5>AmhSb#t!Npdg(EY9X`b4~nXQ4m8`)P4)%hpS% zBlZ(@X{Q`LiD}muf7GR^wNoj|RBYDxo}ZmQ{QeRbi99$s01u|t)F1pR*hsL^Un{d! znV140D>VX3;;F5zGFwcq&Cb@=C_GK3LJ;e{N1#Rq4KEnL!SNf` zHMN$x^T9%6Grz+;_QgC;{k$1X%=ET=HnIod3>sDc#6$*1`^w5nY%E2n^7QO%1z=O;^T)Yvw_iVX67iCQd?W=>f!=grD<^nU=Xh z-yizHLNoQ8!WBB5+CKw79gJTZDk^0f52{G{-CLPR6n{-*??_=m!SQl&z5Ci&`y2n! z3R+p8gM#8Z!ifm|BUe|~yPu363ehr3XARh@fZB0*G zwAH0cKi}%jQM(*xlBI_+jesR5B!r_@@ZkfPF2o9GXyZtQkYY z{Zq7z<7h0O0W#zIuk&&VBXfYfki(dSdQ2v9{5#!&$2-2{ATXVRHOk4wH8?oej>{Hu$3W^G0w9@3F0sv7cr#Z_Y|KO))-cu@)8) z0f?n%V1V5<1`&k(d~1M250i%$-GFrej_X~o#+v}UtL|bzQwJy!i}888KdxP!@8hX=N{ zymcx4pTKwPND^d`a(iEkAyYs@r8=ApBBQ^0+Qyi@)5B@x@dI@%=?W5$`9@|OD0l)U zmFO=4+FWr){D~cN@?@GJ)E|vEi}ml^!DW=P&&M#NcNhhgYBKFB7+YVP>sdKY0~Z$0CO0;z%xBrO3^e6%gaRXNd5Fd!)ALH z?|4UF-}&t1urUaKX1i08WilWpBjfz9#{?*zr~#6s_;?^F4e@rMu2F=-sr`K4{%NHG zsDvh9{VTI&dB`ZVLR~+HMSLs0r0IdP@C&gyw6cByixKvlY49M6c;%R-(&ZRamWWHCM4Xsb4R90P!+9gXSV`^+TzmEPosNe zt)PN}pRaTC=F@Tc&+_v3&aQZ2vXRlu;LN{&%Zwo_3~aP^sTyl<{{V7eygWo>Dw}m> z4|6jzGJ0*0B=WsDctKf?6LkYKh^FlT9E6;NC;7uEN=;1#m*&gvJBp}SL0>frAu0D231H*kEkiF8 zymn2WD-Lw8g&ebc_eQj|(1gKYiltwFnwX!@?VBoeHV?6vp-=bXpm;Rx3LF#>ApL@iNFVW1ST>#Q)T;dX{@P!Fp5-%= zq}rr8y=^*(R08!i{hOE2Pb-ETglOTVf_y(-M}s}Mp%ed5A>(o&895lIjcTyi zJXC_}z+NvRl<N>v1;S2(Qwq+bCnT~iHf&oAJ0!}wy0i-ozvBhgM#mU@ zASNOTi-=f-ssY>5*(18Qmi=t;VWs__FIHDSJmE^h^kT_tB03pzdToT0k=R&vRSk@e zZC}dn7rsy7+@f0$z`}*F*`MC z(8R&P0U`{Z1i~t6e<(eqE1yH<4T4T7tP|5O$)KNO~^Fbm_PCLYeH-5d61tz z+y=2(kLGENx}^}UG8_3@VfA@LHWm|$|4Hd>-ZbIIglZV-Y(R)i;Olf*@$vI(-MmSO zLQYLh@xLUQO9r+Jm?-z%yL1WXK;f>;Ld47XQa-F|B@+V!07-BLA%EwDc){Sp2D`P+ zNyr89yd^&N7v$NDS2uDC_e#6Nua01a$?xHJcLjTRSWSTlBj ze8GSrFvGidlai9=XJ?_4@^N$HbGBDJ13f&k5K*lIxjRE1s>hEX69y{^Bq<5w{!o1` zoeu5?pRO`awY64nHDt5&d8od>BAZ9`^oc^UNXBbt0f@wtCyS5-fn|UbMf_CGZtJU$ zgGyL{frVpnIU8eqLINn=Wo5$e4`U%$5UR{W1r-_+np4*aLhvdjk&F#8j|e%I`B3YmfoxX*p4Tt!7|U{E0Y zZ%6JSHK);Oc<|UzWV~wA`yMvfejcy)p8#WRXlQ8D(BwrLoga8-QF3R1*`uPObeA9S zffdn)3Tuvq7z0>lb|YnCOIxy-XMAY+ccPs4?sHH;wIw6LxywTZ*aqHbmR_4>8Ne20 zFqrZ2Zyl8y5E^b4F}~MhXbe%{r-qioR9rfX+E~!PckekAG1xqt5Akrm65NU|wVE9L z{M55OMvn)Qp>Pfak|wHLt#=lBp|Qp%enN_cA@>D3X)y#P%`f{Q7g@F$NF;pP^- zbSEfJ$_Sv>^z=sn_P_9EykSS+0F(g4wz1tU2TNU*_Ta4^kENponuaD{k7t9_wT;?> zu}8JL(P|cvtpM@0#H+?&Wl3UJ&;^&+4t%73e`-$xMfcjZYwrtQ2QivE6X=P^SwaPP z2fO2J<2xAy6d18a@ha}ydwCswvHv4xH{4TK4ED0qfr#T1~~~H z8S}}&U9-k2Dfe*XNntkz$!xyXX-rAf#_OGu#<5JGku`i(aX|y%lq(J0Yk)xf(nU$5!CzvmV zXp2XWAT$UFnPGQp6HkGxy6D#EuMq}YU1#D?h6RdQA)%q|KYwoR?KvF2tdZ7nN}&eU zqH;aio}4RABfnoEfq4896H|`;gZQ17|6HfP8*k!yd#>wC*J6umczH=_!~%Q=T@M5_ zSSvB0FQCu=c_-Lt`+4b{CVsFd1V_Ti2166yE9rE+XK(XmetJ4KI=ZJRVqb#t{USLn z?faqSMcGa63?G2W=I95@__kE9Zu~$}Z&_apFlwRiA^T+b)Xhy)GzYRLpvwr!#PlQV zFZsxxgSwN$pa>9p0`jLo>;X`0e`&&cO(Bo(*-li17oj~##HWpas%nwm{~6lAaN zbeXGSmxI~m%NxFb4@wu0dGqD~dh@GSuj-GM3ZT+la4$F##^;}DBUIguLv(Pc&aB-C z;ON*uf+^wzSrQBy;$PuMlaR)ynVz0rXwSXK_=Yb&d-jY;(q$HoA{Jp*LezcWjCk}t z8?@EB#GBeA&dgMMdxZ40*2MF~ zWMu1oc|>y@JsvzFBISS|yF66Jbezg_K7F!-tS3GxV?&0PrY60xWk_w5eAgLJY8VCR zx2@7{r^@EgxwREc%g5X6uo-{lmTDBUwr-wSN*D0jfq~D5Z#$ilHU#nU@gM_>%gQp# zsLp| z4X+&=4UN#SuntfY#{W}x>{D({RXW;=%4 z^*h}i8gzZap;1OhA^%3smjd6u!aB{2P#BLDvjX=$l0 zKCq$kFR&;K5I~~cw&}yCR6I{n&?ZJf4B#vNhV2g_Ykv?#0RHE`3W|-5opq^7N}`Es z1!1$+ef6zo-e{F8H|M9{qn?o{$nH3;cR1)!$A?h2 z|8E0+99V+h7{v1FHgAOL4CGbA*W^u2P2(zzW>G!W=H(->z1;!g0E#fk?*}XMs<3ch zcQ+YcJ*1o919}6%&|7v{nVFd?Vbmma!nsgVJZE@=8lz)kO2O5DQvH>ge#285LjTaP zVI}^%dzn+PXrRDHgEvYuzqnWhj|JCQSg-*y@gMaD-uqf~Y67%RP@|o=^t^F2Vgake z2j*cemH}o(n3*WTn!zPti)riVScc$ov^ob&h%5mXPJ(2j+hWtO5x}~O$pct4s33jN zJiuA?2ZKn>U4ZVNqFk8gqI*V(CcBCW0RsE8TrQ%KM6760zszYgrxaXPyoqQ*##ji?7z3~OI zu$nU3ah1h@r=B(#&0Xj%B_$U{^QzFGM{l;udo1rbYO$*jv(4_K$54@62si`>zy*ghjS@GWP zmDQjIG`u!*+^i(1P;l0+%-en3^Jc`77!KCsSs5(+P}!9Oyc0f#>R$r zidfW=OW?O+Db+%gwbE4(`G%21Ix^Og>t)7q+4`E#krpE6@KvjLT32l5OQ`f zb}wl7G|tYOAlJi8;l|~Uq;KUx zr3EU+FCbubLPJ1609)A6qV?tRoP_9Q_1G7qDo{g`lb;AD_sj~q3!7BAJO)6=zbyuo z`n=fxv|v%jdrf?%hY{j?@Lxg60m&Dnyy$kz=(VU0nToobkXY8#47Ai$MdIRKH=E{F zLy&eApka6gK3!JZP;7O;Zvaa(tl2j219;l63^_A6iT&bG2{n6v zY2LxbR?xcmbf!wWLTnqnO9d8I#m2t8o6uY6>F7p2t@Z-nF@QVe1d)`Utj|m(t3?dI z%0$+tClh4Dy4^wJ3n}Sz?+p*b%^L=rS{^ELrRRzVB_Ampvb%CcKwU?>7tTPS9as&dKNSm0FBC2Xz<;UJ%HH@83h*1}*?m47gG%O)Gh38t{BB z4vwC@`giYIEQRkF8XAJ>os?8lS-G(5B`z)=p?d4qt$wc2ITtu*LVf-H;AyDlIJ>*! zE#iat1QDZz#6&na@OOp?RnJTBFBpfEnkM}C2BK%t4LE~ZhaBQcK=ywh2(Zu6F1Sfm znZRS`8eAwQRSa$9nf5corH|l+(MJFdVy{w*g0wDdwc<~ol)DiaAz0&&MMeMCE~{a_ zyoSyf9!?x>WwJ&NS$Po1K=r*cHo1L>rqI^ZoOXD`-jJtQK?tLQo?c!cBNq(3?vSBy zD>QssY6Pev1P`7G-h5gbSc|@La&l`{02d>spiDt0f!6~cD!2pSvTQLS+0+P#wBBxo z9h8ZegrkNL!zmw0ee*_L+;2mT7KLVF>N@ynTI}KM49jR$F3HXwRFenvi~b(JxeUHuv_dW-&VXID|~HK1Rhut{w^O@_#Uf1v1aKI5>AS$Q^*r zBy~)kf-OlM7QAV1@ZmR1BDS|L&bG&mMa-dk#G>Qlk%M9KtmY=8u&_|hz3L4(&fG}setl*+hx@I#Bb$>2ZOb$Ir<-N!%-h2fkRdu{pQWW z+8XROPif{HruCH-MjD!-$>*^5euPre&1Bh_t$RgygQVqrxb?Vg?DmJ-d+x5FEg#6IAua+KP<8i^S)i`MTVFeKMS8{y z(Gmk%daQd)C*@|teuNcCC(>dkCgQ-wlb{K%5=AI%tkzQ`-~>)k8UO~s_p5V+6NzcW zva5#M{78OaVglT-%SJCN+6IE_$2RP6&b714%C=ybJN$+j3iJ;cI*qt-4!1w&BFSFN zIs}CMs-$G{@nv|w^qE$UNCly{XP`C!j&j&JY_`~hy*EPn0?1k8=a?DP1_}g*RTyFN zKGm7r1S<8;(pQ!Ta$!Jv>1v6}N5XBns>EDi2T~apKxlK%;yP4#sHc0s%)eu})`d@^ zrN<#BKpVl=BLrNiu1=PZFYH)f0=t3{D!*g-$cB|872S1OVt`N9Q)Hb@LgzRjx(L2o zoSz>mHk0!XZZ=_%j6_@|Nz(x+5lHi`KPUl+(bmRB3HK>Au{;7sz=e}n76Sl#=4d@3 z#LtXK1(xAk8bSL9fglyS_`Lu}qWk?o<_Q>Oyl#WdSuXB<@2S#D;?jL*A`*3+;f`Go zcXwtvKWXp49w<{_Pgk0~Vwc~}uBh07$tt}Zn{NJO>E~ryTu*z>vfjwUVa+?&1)>cR zq#O}|D$r^x|9c78?|UUhy>o8nf}wsq=DIA02z?dI($-+G%1K3dnd9ezOT*o2k9AWA z2Z4PCVDSP#*WnCfyJxQCooXcu2Y1hxQzFFuoG3$TaZI2E0lcPFDtaF=28QT=@A)mR zRrw(hv6UxsAgU3Ql3K};fhxln!bwZWs^M~SunCd-7|+SXhFROSR)|0BNPwZw!3wi* zs<(dFi9w6`(zq?8DaR9lN8>0cSbSOOWeGP5PKC4mEXXg{K!4Q9knKv}6LDWL0%)Oz zYM{j}Gvbf5TR2-bI}gkjk;37mAP{{tJK6?MV8JNqg1qkis6sy1;0Xjcm?STa9_8_2 zsdak56!4rd|KD5C#F@7*Ue8+!Xj{P1NZy@FNRW@F@07n%aE7sc#g1oEmk0teZ`)hH zMKFRj69gkPt^zz=O4>R* zmAl4Qc5i?p^Sajk?utGu72-O0`f=@>xxZjov-!u55)KrM=t=+j?FyPEg2^k+Brg@N(B5$W)M##A(V7{-7}Z+iG=&X_CZZL>>-y#5su1C~ zTj?4f)@I#4pAJAxuC2+!;JWvSr#T8J`O2o<#VI5JVJj^$(aN!tydlQQafJ(=PI{V| zQVAXZacUhQjs&!e`-QUZE3_AvZp>18l{vyNUX{^T0xCounb&=3!WaDw&fK&Lya}T> z(TbXruo0skUYrCnBCm4sYJwe@&A2hV5;2W4ED}JkKLX=K zhR1C~aCVvBk1*s=j)kO|O9ci6J$m#A>H`G@1#`j0n$nX6HD1g|X^xWNLbz%hB+m-3 zMvuVFAXRJO95ENSBE<=T7sLryw~G_m5oMUv;F-ZG&ty#(mfYd6=Xay$8r8_tUV+k z8GwfH8$;;rzd6gwA1j-hj)M&e1yxB&X}&Yr6^7}7oO?f!i*VS3=~+{FE5~L==QNYV zAjQwz&mLrYivfyADo<=w45v%F-RW$!T`hq`3SrV=$J4gCVMa$ z1bHSPxnrfUEukGlO9Jil^L-`;h8xe8Zo}`#048(}UUfShL2PgY-~Pa;Qbdumo(1)1 z_Hys&o~21RTR>299!I*4hnLrDci=9FaZX|P zc&I>An*??VO3%GIpXWdZU^A-J>UOuLobl>J*v>jSGpUY zl=Ky}6Nvp{Fc<<#E)){G&~SNm6*%+fix~RTL5cK^t|u7xV3_ia<@jJ&5F_&QVm1OM z+udATmLSy#mN4x8i-a;rgb=#8KCl(_N3N0#W9mx_@el1cLRf~UPq)L>+EH_9SVE%${H*_&(Cq}0eslYtm77003!)boSgAu~ZfK0pkWnP0x_fkuQPCZ-B& zW<7%V01QcAX(YoCb7-ils9YbQY4C<|T|I^HpuYjb`bI`Z#>QcMqRLO8w#zd*J$qL8 z;ll{{wQ87FTwujNfBo9q*pP3D(&JI4#?E052??=LUL~5@(!J)rK#;Yuq;v!mA_i^Y z;ZmLyQC^^Y)xz=tL!CtRoW&$1?ZenMEX>S1q2`_Z6ZowPklBT$XK5K}W)RgwAs8FP zk(0@)W;w9-;0#1>2DvgkVAY6~_bWB}q{rjq;{)pLkVCb)6S9OaM($)I$V33}f@)v) z%;o|S2L)64i1d>_4sRU6=#uO~t^>LaYhdb5hG-*i)NgkBWO?{S8cx4j9&l;Ig1jdz z96);=(`%z#Dj1_qg+@avAraOaI%&7MuC5ud?^mQu8x!fh%PQGQv9rK>Va{xLjdfvz z!mf<|2_mc2xQ;HOrKCj2a%`qocb1?bgDvJg2+g1eZZxVM;{X8#Qw)Ysb5Q?N!I=j& zbw*MA0WVP;){2<0B@kp$Nt9@zRn{hw2t-7sNNcO;Kr6OFM2kQnCJ2IHC}ISm>5g{x>T121{diXPczV~wPcfa2`_xNReJv|j6xQz~g7@4-H z>$p<*AM!563(!qXaW3{0&aSYo-dHGzh20-%0c)I`M7#322df(16=&zP)8Xl=%vcaY z9Jjp$-&U8~{vJAe;~gwG4E$BVY^80{c9vJE|iv_75PP zs7RArQ>uO%l*!9A2oljV;VwL|Z{OKauDnZjljiPT5C0B>!EmO|CfQGO1_=&V^63&h zK%RS)sD5>{`e^c`_zqzFYVr*GenZ2?fPf{uQ?S=>7Fu76&(I<;tzrmmhoLym^pX{+ z2U3Ep0IyD(c-PwR$X}*#z~6|v9!`@GR+q`#dRM{f-v)wY4?iKi^RZ$BXbT8jAIOvx znfSIZWvK#tx$7^Df#>8{GAcG7rp6mL`=q3$JwMh0&M(!otX59YsS>;c3|@n^nVw}P zYR}-Fkq(W`!ymea^z-SBCwgDY_O9p8(kh>f{5${E8u!MZcPl`o=g!8PM^ z8D8w+VhSyb=7)Tlg;3^rx<8{^VjD-eK;VuSIy`9Yo9O85tW_%Ayu82wlSMqijAP+7 zNHxvYtR0Q{r-#!eEt4z2>f#abgo1-}3)>Ue%_%i>+hiwk5JY8dliBpEkHw7H@VX*b z-7P(#_LRT0yldQ$S$=%xuvBqq=R0!%|Nq{OhZMOYD#Fnumlqiwo$}AC9yA$<03{_f zk;&~1(WlJPA8oc1+OrqcC4ELzznE@q6S~9^ ziH6pCF3@tYjpIVJjRa=aJ=@nex$bQ6U!cO-=C#zu7!{pPhi$~JAP%rA{N@Nwg@NX2 zS=0HNIe1ENmn(z4<5s*p%niB;I8NjHvM?o<4q(`^H(kXa-ETNTzOm~6lX|z3=qj!= z-T7$C&}Ke=aPKvh>PIM3IAD7JkZ&Po3h?iSU9%Dq7sytK@Brl!Nlr;UbVOoRzYdfI zjS7)@Q4l6Pvm0>Ezgmy!G^+!lI&^ z*y-@El-E@<&jJ6aqP87+kOhBc2%qmmk6I{9KwdE8xluX%UuwqoWY>pr`y zR1$C{Oo^I7DRMX*Y`wiS3-$j=>jM>e2oUmY!wm6tyzE@co$vR=HQo zq|xVFol3;pSuz%pGZ1_-&7q2y7yY41f0Zph_mO#fwJK8jfn&{7t#+$(n^tRkkD9a$ hu*^D4d;QsCOGE_+$s^%cvyt^j2>Bx3jo^dQ{{hyv>6-um literal 0 HcmV?d00001 diff --git a/autotests/read/heif/uncompressed.heif b/autotests/read/heif/uncompressed.heif new file mode 100644 index 0000000000000000000000000000000000000000..282ad7a7def8054141eaadbd90555271e0df52b1 GIT binary patch literal 148391 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 Q^_2tUq?9Eq#Z5x~4^YSg?*IS* literal 0 HcmV?d00001 diff --git a/autotests/read/heif/zlib.heif b/autotests/read/heif/zlib.heif new file mode 100644 index 0000000000000000000000000000000000000000..698c5be92f3fc0c1b9be8a345471e4c700e7eee7 GIT binary patch literal 9118 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 literal 0 HcmV?d00001 diff --git a/autotests/read/heif/zlib.png b/autotests/read/heif/zlib.png new file mode 100644 index 0000000000000000000000000000000000000000..d551fe86d09b55f1e59683e5160dbc8122171799 GIT binary patch literal 8560 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 Oz$nV9$<#@ih5ZkNf6y@i literal 0 HcmV?d00001